Хук поставлен правильно.
Code:
// Замки
// 6971F0 (18h*9[число типов городов])
// 6A60B0 ()
//
// + 24h dw * 8 = количество доступных для найма монстров
// +150h dd + dd = постройки
// 0 01 - 0 Гильдия магов ур 1
// 02 - 1 2
// 04 - 2 3
// 08 - 3 4
// 10 - 4 5,?(6,7)
// 20 - 5 таверна
// 40 - 6 верфь(0,4,7,8),?(1,2,3,5,6)
// 80 - 7 форт (+ слева картинка)
// 1 01 - 8 цитадель (+)
// 02 - 9 замок (+)
// 04 - 10 управа (+)
// 08 - 11 префектура (+)
// 10 - 12 муниципалитет (+)
// 20 - 13 капитолий (+)
// 40 - 14 рынок
// 80 - 15 хранилище ресурсов
// 2 01 - 16 кузница
// 02 - 17 маяк(0),таинств.пруд(1),торг.арт.(2,5,8),?(3),вуаль тьмы(4),
// чер.ход(6),кл.бог.войны(7)
// 04 - 18 баст.гриф.(0-3),гильд горн.(1-2),крылья воятеля(2-2),инкуб(3-1),
// взрыт.мог.(4-1),гриб.кольца(5-1),стол(6-1),кв.капитана(7-1),сад жизни(8-1)
// 08 - 19 баст.гриф.+(0-3+),гильд горн.(1-2+),крылья воятеля(2-2+),инкуб(3-1+),
// взрыт.мог.(4-1+),гриб.кольца(5-1+),стол(6-1+),кв.капитана(7-1+),сад жизни(8-1+)
// 10 - 20 ?(0,1,2,3,4,5,6,7,8)
// 20 - 21 конюшни(0),фонтан уд(1),см.башня(2),сер.тучи(3),ус.ч.магии(4),
// водов.маны(5),гил.н.раб(6),знаки страха(7),ун.магии(8)
// 40 - 22 бр.меча(0),сокровищ(1),библ(2),врата замка(3),преобр.ск(4),
// портал выз(5),дв.балист(6),обелиск крови(7),?(8)
// 80 - 23 ?(0,1,4,7,8),стена зн.(2),орден огня(3),ак.б.иск(5),храм волх(6)
// 3 01 - 24 ?(0,2,4,5,6,7,8),мол.дендр(1-5),клетки(3-3)
// 02 - 25 ?(0,2,4,5,6,7,8),мол.дендр(1-5+),клетки(3-3+)
// 04 - 26 грааль
// 08 - 27 ?(x)
// 10 - 28 ?(x)
// 20 - 29 ?(x)
// 40 - 30 жил 1 (x-1)
// 80 - 31 жил 2 (x-2)
// 4 01 - 32 жил 3 (x-3)
// 02 - 33 жил 4 (x-4)
// 04 - 34 жил 5 (x-5)
// 08 - 35 жил 6 (x-6)
// 10 - 36 жил 7 (x-7)
// 20 - 37 жил 1+ (x-1+)
// 40 - 38 жил 2+ (x-2+)
// 80 - 39 жил 3+ (x-3+)
// 5 01 - 40 жил 4+ (x-4+)
// 02 - 41 жил 5+ (x-5+)
// 04 - 42 жил 6+ (x-6+)
// 08 - 43 жил 7+ (x-7+)
// +158h dd + dd = модификаторы и производители существ
// теже жилища
// 0 80 - форт слева картинка
// 2 08 - "Инкубатор"
// 3 40 - "Бесы" карт
// 80 - "Гоги"
// 4 01 - "Адские Гончие"
// 02 - "Демоны"
// 04 - "Порождение Зла"
// 08 - "Эфриты"
// 10 - "Дьяволы"
// 20 - + "Черти" ("Бесы")
// 40 - + "Магоги" ("Гоги")
// 80 - + "Церберы" ("Адские Гончие")
// 5 01 - + "Рогатые Демоны" ("Демоны")
// 02 - + "Адские Отродья" ("Порождение Зла")
// 04 - + "Султаны Эфритов" ("Эфриты")
// 08 - + "Архидьяволы" ("Дьяволы")
struct _CastleSetup_{
Byte Number; //* +0 0,1,2,...
char Owner; //*O +1 0,...
char BuiltThisTurn; // +2 - уже строили в этот турн (0-нет, 1-да, 2-не наш город)
Byte _u2; //* +3 0
Byte Type; //*T +4 0,1...,8
Byte x; //* +5
Byte y; //* +6
Byte l; //* +7
Byte Pos2PlaceBoatX;//* +8 помещать лодку при покупки в Shipyard
Byte Pos2PlaceBoatY;//* +9
Byte _uAa[2]; // +0A
int IHero; //* +0Ch = номер героя внутри города (-1 - никого нет)
int VHero; //* +10h = номер героя снаружи города (-1 - никого нет)
char MagLevel; //*G +14h = уровень магической гильдии в городе (исп. AI для постройки)
Byte _u15;
Word Monsters[2][7];//*M- +16h ко-лво простых и апгрейднутых
char _u32; //*- +32 = ?
char _u33; //* +33 = 1
char _u34; //* +34 = 0
Byte _u35a[3];
int _u38; //* +38 = -1
int _u3C; //* +3C = -1
short _u40; //*- +40
Word _u42; // +42
int Spels[5][6]; //*G- +44 сами заклинания
char MagicHild[5]; //*G- +BCh = колво заклинаний в уровне гильдии
Byte _uC1[3];
char _uC4; //* +C4 = 0
Byte _uC5[3];
_AMes_ Name; //*N +C8 -> Имя города
int _u8[3]; //* +D4 = 0
Dword GuardsT[7]; //*M +E0 = охрана замка
Dword GuardsN[7]; //*M +FC = кол-во охраны
Dword GuardsT0[7]; //*M- +118 = охрана замка
Dword GuardsN0[7]; //*M- +134 = кол-во охраны
Byte Built[8]; //*B +150h = уже построенные здания (0400)
Byte Bonus[8]; //*B +158h = бонус на существ, ресурсы и т.п., вызванный строениями
Dword BMask[2]; //*B- +160h = маска доступных для строения строений
};