M.A.X.    Вы вошли как гость
Российский Клуб игроков M.A.X.
 
[Новости]   [Новичку]   [Энциклопедия]   [Документы]   [Файлы]   [Игроки]   [Архивы]   [Архив форума]  
[Новый сайт]   [M.A.X. Gold]   [Партии]  

 
 
 
Архив форума  МаксГолд
[Основной форум] [Голосования] [МаксГолд] [Off-Topic]
 


Список стейтов и их диалогов (свернуто)  -  Hruks,  08.06.2010  11:04:36

Поанализировал я код. Ох...
Итак.
Вот, что удалось накопать - спискок диалогов, разбитых по стейтам:

0 - ST_THEMENU
0 Multiplayer
1 Options
3 Updates? - Ссылка в одном месте и то, ничего не делается. похоже мёртвый
4 Load/Save
5 Single - не обнаружил функциональности
7 Map select
10 Main Menu

3 - ST_SETGAME
2 ClanSelect
3 Buy/Upgrade - зря он так тесно с игровым переплетается. Можно было и разделить.
6 Player Setup

2 - ST_INSGAME
0 EndTurn
4 Load/Save
41 Какое-то считывание? - не разобрался что именно
42 Запись? - не разобрался что именно

1 - ST_THEGAME
2 Build
3 Transfer - какой именно?
4 Transfer2 - какой именно?
5 Boom
6 UpgradeLab
7 Mine - дорабатывать нужно
8 SaveLoad
9 UnitInfo
10 UpgradeMany
13 Reports

У меня предложение. Даже несколько.
1. Создать для них константы. Всё равно в коде во многих местах стоят коменты. С константами нагляднее намного.
2. Номера сделать полностью уникальными. Не только в пределах стейтов, а вообще уникальными. Константы частично решают возложенную проблему, но уникальные id ещё лучше. По этому id можно сразу стейт определить. Я бы предложил 3х значный id - первая цифра номер стейта (сдвинуть их на 1, чтобы со 100 начиналась нумерация, то есть стейт ST_THEMENU будет 1, стейт ST_THEGAME будет 2 и так далее), а последние две цифры - это id диалога. Например Options будет 100+1=101, Boom будет 205.
3. В функции calcmnuinfo, draw_framemnu, sdimenuok, onmnubtn и возможно другие добавить все эти константы вместо цифт и коментов.
4. Разделить функции из пункта 3, а также draw_framemnu, draw_framedyn, draw_framebase и подобные, а также mg_msdown, onmnubtn, mg_keydown, mg_keyup и подобные по стейтам. Вызывать из оригиналов эти кусочки.
5. Разделить обработчик кнопок ionmnubtn на обработчики по стейтам.

Для начала хватит.
Просьба прокоментировать диалоги в стейтах и по пунктам рассмотреть предложения.