Так. Кто-то там учил, что сначала надо составлять техдокументацию
a потом сдавать её как курсовой и лишь потом писать софт.
1. Сменяемый вид городов.
1.1. Функционал: поддержка разных видов городского экрана (скинов) для одного и того же вида городов (т.е, динамическая смена координат строений, их дефов, масок и обводок). Привязка скина к городу с возможностью сохранения в течении всей игры. Возможность управления отображаемым скином (т.е - возможность задавать скин, узнавать текущий используемый скин, наличие сообщения, сигнализирующего о начале отрисовки городского экрана).
1.2. Основной проблемой в данной задаче является достаточно надежный механизм закрепления скина за конкретным городом.
Возможные пути решения:
- случайная раздача скинов городам на старте карты.
- возложить это на ERM-скриптера. В таком случае от системы потребуются:
- наличие триггера на начало отрисовки города
- возможность грузить заданный скин во время этого триггера.
Определение того, какой конкретно скин будет грузиться, возлагается на ERM-скриптера. С одной стороны, это усложняет его работу, с другой - повышает гибкость системы - хранить номер последнего заданного скина в структуре города, к примеру - на месте неиспользуемых битов в поле для строений. При этом уменьшается сложность скрипта (фактически - достаточно один раз задать требуемый вид города)
- хранить номер последнего заданного скина во отдельной таблице. Это увеличит сложность, но вместе с тем увеличит и надежность.
1.3. Детали технической реализации.
За отрисовку экрана города отвечает функция 005C6C70
За используемый фон: таблица префиксов в 00643050, формирование имени происходит в 005C6E52
За глубины отрисовки: таблица в 00642EC4
За имена дефов строений: 00643074
За координаты: 68AA0E
За имена масок и обводок: 68A3DC
Всего зданий - 44
Таким образом, скин должен менять достаточно большое количество разнородных параметров, притом его формат должен быть открыт для дальнейших изменений и легок для обработки.
_____________
Писать фигню в час ночи - весело!