Начал адаптировать код MainUI C++ в свою клиентку для Counter-Strike.
Среди экспериментов: удалось "обмануть" движок и не только рисовать, но и корректно получать события от движка в меню в запущенной игре. Получается своеобразная замена VGUI.
Если коротко:
* Добавлена возможность менять логотипы в новом движке
* Поддержка wordwrapping(перенос на новую строку, если не хватает места)
* Переписаны атласы рендереры шрифтов. Теперь вместо создания новых текстур, атлас динамически расширяется если не хватает места для нового глифа.
* Сортировка в таблицах!
* В Steam версии Half-Life в меню Controls могли показываться как #Valve_%s. Теперь они показываются нормально, при условии если у вас resource/valve_english.txt и resource/gameui_english.txt.
Стало гораздо стабильнее, чем год назад. В благодаря тому, что это меню уже по умолчанию используется в Xash3D FWGS.
Очень многое как обычно спрятано в сорцах, много что стало делать ещё проще, чем я расписывал в ОП-посте. Желающим посмотреть предлагаю, как ни странно, посмотреть самим, а моддерам как обычно: "вы мне готовый дизайн, я вам menu.dll".
В архиве две дллки. В generated_buttons та, которая с помощью встроенного рендерера шрифтов рисует WON-овские кнопки. В won_buttons классическая.
Наверное если вырезать этот проклятый UTF, то заработает.
Post automatically merged:
На варианте generated_buttons сломана анимация кнопок при смене меню.
Post automatically merged:
Очень сырое всё, пока нельзя использовать.
Post automatically merged:
Это меню, если хочете знать написано в лучших традициях Линукса. То есть первая реакция - офигеть как всё круто и красиво. Дальше куда ни ткнёшь - лезут какие-то баги, причём иногда через раз, например. Анимация меню почему-то то притормаживает, то вообще не срабатывает. Точно так же модели игрока меняются с задержкой, High Quality галка для моделей вообще не работает. Ну в меню казябры какие-то, я скрины приложил. Если покопаться думаю можно найти еще и еще. Стабильностью тут и не пахнет, можно охарактеризовать термином "в целом работает".
2 ElbeR:
да вообще избавиться от пререндеренных изображений. Круто же -- можно создавать кнопку с любым именем и не лазить в этот монструозный фотошоп делать кнопки.
В СS16Client у меня по умолчанию эта опция включена.
2 Дядя Миша:
как добиться вылета в game options? у меня всё рисуется. Может в won были какие-то хитрости?
Post automatically merged:
2 a1batross:
у тебя же вроде работала анимация для генерированных кнопок? 2 Дядя Миша:
как я понял, там наоборот не работает из-за вырезанного utf-8
Видимо, .scr или локализация для него юникодовая. В общем, русской won халфы у меня нету, а без неё гадать что не так - похоже на битву экстрасенсов.
Post automatically merged:
после долгого поиска крашей словил краш при попытке сменить лого на старом движке. Это единственный краш, но они и не должно работать так. в билдах под старый движок лого отключено.
Post automatically merged:
2 a1batross:
приложил бы pdb к менюхе, шестёрка их умеет генерить