Я хотел написать пост про то, как хранятся в экзе деревья отстройки (битовое поле в памяти создается при старте из хитровыкрученных данных), но без мата не получается. Поэтому пусть полежит так.
Код
int depend_tables[] =
{
0, -1, //первое число - номер здания, дальше - требования, завершаем минус единицей
1, 0, -1,
2, 1, -1,
5, -1,
7, -1,
8,7, -1,
9,8, -1,
11, 5, -1,
12, 11, 14, 16, 0, -1,
13, 12, 9, -1,
14, -1,
15, 14, -1,
16, -1,
17, 16, -1, //artif <- smith
21, 0, 7, -1, //managen <- fort, mguild
22, 9, -1, //moat???
30, 7, 16, -1,
37, 30, -1,
18, 30, -1,
19, 30, 37, -1,
31, 7, 16, -1,
38, 31, -1,
32, 7, 16, -1,
39, 32, -1,
33, 31, -1,
40, 33, -1,
34, 30, 8, 14, -1,
41, 34, 35, -1,
35, 32, 8, 0, -1,
42, 35, 36, 17, -1,
36, 35, 34, 9, 1, -1,
43, 2, -1,
26, -1, //грааль
-100 //конец
};
*(int*)0x4EBA98 = (int)depend_tables; //для конфлюкса. Иные адреса раньше по коду.