Sidebar

MainUI C++ Beta

TigerHeart01

Member
Jun 26, 2017
98
0
6
a1batross said:
2 TigerHeart01: Проверю кастом гейм. Падать там вроде нечему.
Догадка не оправдалась. Игра крашится даже при наличии папок с другими модами.

[ADDED=TigerHeart01]1542543405[/ADDED]
В ходе многочисленных экспериментов выяснилось, что крашится только версия 4281 и 4260. А вот с версией 4150 никакого краша нет.
И в версии 3887 тоже всё Ок.
Видать краш закрался где-то между версиями 4150 и 4260.
 
Last edited:

Ku2zoff

New member
Aug 12, 2010
312
34
5
0
TigerHeart01 said:
Или может быть даже так : -lang fargus, -lang 7wolf.... Это сработает ?
Я думаю, что логично было бы в качестве ключа указывать суффикс, идущий после gamedir, как в стим-версии. При -lang russian движок и меню ищут файлы локализации (и вообще любые файлы) в modname_russian, например. Локализация, это ведь не только ценный мех текст, но вообще любые ресурсы. Можно ведь и надписи-декали локализировать, и любые текстуры из вадов, моделей и спрайтов.
 

a1batross

Umu~!
Jan 6, 2015
664
27
https://github.com/FWGS/xash3d-deploy/tree/menudll_orig-latest

Сделал автосборку шестой студией на Travis CI и загрузку по ссылке выше. Теперь там всегда будет последняя версия mainui_cpp собранная под оригинальнй движок, да и Дядя Миша не придерётся, что опять сосущим компилятором не собирается.
 
  • Like
Reactions: Qwertyus

TigerHeart01

Member
Jun 26, 2017
98
0
6
Ku2zoff said:
Я думаю, что логично было бы в качестве ключа указывать суффикс, идущий после gamedir, как в стим-версии. При -lang russian движок и меню ищут файлы локализации (и вообще любые файлы) в modname_russian, например. Локализация, это ведь не только ценный мех текст, но вообще любые ресурсы. Можно ведь и надписи-декали локализировать, и любые текстуры из вадов, моделей и спрайтов.
То есть в случае с локализациями не нужно выделываться, а просто прибегнуть к обычной подмене файлов ? То есть, папка будет всегда одна - modname_russian, например, а в ней просто заменять звуковые и текстовые файлы ?
 

mittorn

New member
Apr 22, 2010
1,213
15
0
2 TigerHeart01:
да, по тому же принципу что и с custom - локализация в движке подразумевает наложение локализации на оригинальную игру.
При этом остаются в пролёте моды читающие файлы напрямую (вроде XDM)
 

TigerHeart01

Member
Jun 26, 2017
98
0
6
В файле main.cpp нашёл строки
resumeGame.SetNameAndStatus( L( "GameUI_GameMenu_ResumeGame" ), MenuStrings[IDS_MAIN_RETURNHELP] );
...
newGame.SetNameAndStatus( L( "GameUI_NewGame" ), MenuStrings[IDS_MAIN_NEWGAMEHELP] );
Ба ! Знакомая функция MenuStrings... Скопипастили у Дяди Миши ? )))
И ведь читаете же индексы из strings.lst ( IDS_MAIN_RETURNHELP и IDS_MAIN_NEWGAMEHELP ) ! Ну так почему же не продолжить использовать и дальше индексы из strings.lst ?
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 TigerHeart01: меню изначально делалось из моей версии. А я его в свою очередь взял из Quake2 Evolved, а там взяли и допилили кармаковское оригинальное меню из ку2, которое на самом деле меню из ку1.
 

a1batross

Umu~!
Jan 6, 2015
664
27
Таки да. mainui_cpp изначально был портом mainui. Что-то осталось, как MenuStrings[], например. На что кстати название вполне себе намекает.
 

TigerHeart01

Member
Jun 26, 2017
98
0
6
Хм... По-моему, это называется "костыль"...
// disable playermodel preview for HLRally to prevent crash
if( !stricmp( gMenu.m_gameinfo.gamefolder, "hlrally" ))
hideModels = true;
А если юзер назовёт папку с этим модом как-нибудь по-другому ?...

[ADDED=TigerHeart01]1542719122[/ADDED]
Вот здесь не уверен :
Q_strncpy( profileDesc, "Presets:", CS_SIZE );
Заворачивать строку в L() ?
 
Last edited:

a1batross

Umu~!
Jan 6, 2015
664
27
2 TigerHeart01:
да.

Костыль этот ещё с оригинального меню. Впрочем, он уже там несколько лет. Может запустить да проверить...
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 TigerHeart01: когда-то очень давно hlrally крашился при показе этих моделек. Теперь всё в порядке, но хак остался для истории.
 

a1batross

Umu~!
Jan 6, 2015
664
27
А. Кстати. Можно делать так:

L( MenuStrings[ idx ] )

Суть L в том, что если он не находит перевода в словаре, то он возвращает оригинальную строку.
 

TigerHeart01

Member
Jun 26, 2017
98
0
6
Так всё же, что на счёт
Q_strncpy( profileDesc, "Presets:", CS_SIZE );


[ADDED=TigerHeart01]1542721861[/ADDED]
a1batross said:
А. Кстати. Можно делать так:

L( MenuStrings[ idx ] )
А MenuStrings[ idx ] в таком случае выносить в отдельный файл ?

[ADDED=TigerHeart01]1542722231[/ADDED]
Всё !!! Уже всё закончил ! Остались только эти два вопроса.
 
Last edited:

Ku2zoff

New member
Aug 12, 2010
312
34
5
0
TigerHeart01 said:
папка будет всегда одна - modname_russian, например, а в ней просто заменять звуковые и текстовые файлы ?
Я имел в виду, что папок может быть несколько. modname_russian7wolf, modname_russianFargus или просто modname_russian. Какие ресурсы хочешь, такие и подгружаешь, запуская с разных батников или ярлыков. Самый нормальный, на мой взгляд, подход. И мешанины из файлов в главной папке мода не будет.

[ADDED=Ku2zoff]1542723769[/ADDED]
Исключение разве что можно сделать для стим-версий модов, у которых есть modname_language.txt в папке resource. Насколько я знаю, ни один любительский мод это не поддерживает.
 
Last edited:

a1batross

Umu~!
Jan 6, 2015
664
27
2 TigerHeart01:
не, я имел ввиду менять так:

Было: MenuStrings[IDS_MAIN_NEWGAMEHELP]
Стало: L( MenuStrings[IDS_MAIN_NEWGAMEHELP] )

Хотя нет, забудь, плохая идея.

Лучше избавиться от MenuStrings в данном случае. Сделать L( "Xash_NewGameHelp" ), например. Ну как ты делал ранее.

Про Presets уже ответил выше. Коротко и ясно: Да. :)
 

TigerHeart01

Member
Jun 26, 2017
98
0
6
a1batross said:
2 TigerHeart01:
не, я имел ввиду менять так:

Было: MenuStrings[IDS_MAIN_NEWGAMEHELP]
Стало: L( MenuStrings[IDS_MAIN_NEWGAMEHELP] )
Ну я так и поменял.
a1batross said:
Хотя нет, забудь, плохая идея.
Что значит "забудь" ? Я уже всё поменял.
a1batross said:
Лучше избавиться от MenuStrings в данном случае. Сделать L( "Xash_NewGameHelp" ), например.
А в чём принцыпиальная разница между IDS_MAIN_NEWGAMEHELP и Xash_NewGameHelp ? Почему нельзя оставить L( "IDS_MAIN_NEWGAMEHELP" ) ?
 

mittorn

New member
Apr 22, 2010
1,213
15
0
2 TigerHeart01:
Чтоб вся локализация была в одном стиле
Valve_ - строки из valve_russian.txt
Gameui_ - строки из gameui_russian.txt
Xash_ - строки из xash3d_russian.txt который будет добавлен к xash-extras
 

TigerHeart01

Member
Jun 26, 2017
98
0
6
Готово!

[ADDED=TigerHeart01]1542740335[/ADDED]
Только там у вас так всё напутано. То "Return to the Main menu", то "Go back to the Main menu", то "... to the previous menu".
Кстати, я там кое-где позволил себе вставить некоторые комментарии - пояснения касательно замены строк, почему я заменил именно так, а не иначе.

[ADDED=TigerHeart01]1542741636[/ADDED]
a1batross said:
https://github.com/FWGS/xash3d-deploy/tree/menudll_orig-latest

Сделал автосборку шестой студией на Travis CI и загрузку по ссылке выше. Теперь там всегда будет последняя версия mainui_cpp собранная под оригинальнй движок
Всё работает идеально !
Вот только как бы научиться шрифт менять ?
Где-то я что-то видел об этом, но не охота половину форума заново перечитывать. :(
 

Attachments

Last edited:

Game Server

CSM TV

Page QR Code

QR Code

Donate Campaign

Total amount
$0.00
Goal
$25.00

Latest profile posts

TestUser wrote on TRUP@C's profile.
Master?
TestUser wrote on TRUP@C's profile.
Hello Father

Members online

No members online now.

Discord