annotate Engine/Objects/Monsters.h @ 2508:491f0babd563

use_music_folder
author Ritor1
date Thu, 02 Oct 2014 11:52:31 +0600
parents 82d5d92a097c
children
rev   line source
2497
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
1 #pragma once
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
2
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
3
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
4
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
5 /* 334 */
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
6 enum MONSTER_TYPE
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
7 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
8 MONSTER_DEVIL_1 = 0x16,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
9 MONSTER_DEVIL_2 = 0x17,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
10 MONSTER_DEVIL_3 = 0x18,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
11 MONSTER_DRAGON_1 = 0x19,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
12 MONSTER_DRAGON_2 = 0x1A,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
13 MONSTER_DRAGON_3 = 0x1B,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
14 MONSTER_ELEMENTAL_WATER_1 = 0x2E,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
15 MONSTER_ELEMENTAL_WATER_3 = 0x30,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
16 MONSTER_ELF_ARCHER_1 = 0x31,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
17 MONSTER_ELF_ARCHER_3 = 0x33,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
18 MONSTER_ELF_SPEARMAN_1 = 0x34,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
19 MONSTER_ELF_SPEARMAN_3 = 0x36,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
20 MONSTER_GHOST_1 = 0x46,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
21 MONSTER_GHOST_3 = 0x48,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
22 MONSTER_HARPY_1 = 0x55,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
23 MONSTER_HARPY_2 = 0x56,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
24 MONSTER_HARPY_3 = 0x57,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
25 MONSTER_LICH_1 = 0x5B,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
26 MONSTER_LICH_3 = 0x5D,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
27 MONSTER_OOZE_1 = 0x70,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
28 MONSTER_OOZE_2 = 0x71,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
29 MONSTER_OOZE_3 = 0x72,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
30 MONSTER_PEASANT_ELF_FEMALE_1_1 = 0x85,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
31 MONSTER_PEASANT_ELF_MALE_3_3 = 0x96,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
32 MONSTER_SKELETON_1 = 0xC7,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
33 MONSTER_SKELETON_3 = 0xC9,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
34 MONSTER_TITAN_1 = 0xD3,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
35 MONSTER_TITAN_3 = 0xD5,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
36 MONSTER_VAMPIRE_1 = 0xD9,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
37 MONSTER_VAMPIRE_3 = 0xDB,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
38 MONSTER_WIGHT_1 = 0xDF,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
39 MONSTER_WIGHT_3 = 0xE1,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
40 MONSTER_ZOMBIE_1 = 0xE5,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
41 MONSTER_ZOMBIE_3 = 0xE7,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
42 MONSTER_PEASANT_GOBLIN_MALE_3_3 = 0xF9,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
43 MONSTER_TROLL_1 = 0xFA,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
44 MONSTER_TROLL_2 = 0xFB,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
45 MONSTER_TROLL_3 = 0xFC,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
46 MONSTER_TREANT_1 = 0xFD,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
47 MONSTER_TREANT_3 = 0xFF,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
48 MONSTER_GHOUL_1 = 0x100,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
49 MONSTER_GHOUL_3 = 0x102,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
50 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
51
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
52 /* 335 */
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
53 enum MONSTER_SPECIAL_ABILITY_TYPE
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
54 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
55 MONSTER_SPECIAL_ABILITY_NONE = 0x0,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
56 MONSTER_SPECIAL_ABILITY_SHOT = 0x1,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
57 MONSTER_SPECIAL_ABILITY_SUMMON = 0x2,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
58 MONSTER_SPECIAL_ABILITY_EXPLODE = 0x3,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
59 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
60
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
61 enum MONSTER_MOVEMENT_TYPE
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
62 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
63 MONSTER_MOVEMENT_TYPE_SHORT = 0x0,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
64 MONSTER_MOVEMENT_TYPE_MEDIUM = 0x1,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
65 MONSTER_MOVEMENT_TYPE_LONG = 0x2,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
66 MONSTER_MOVEMENT_TYPE_GLOBAL = 0x3,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
67 MONSTER_MOVEMENT_TYPE_FREE = 0x4,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
68 MONSTER_MOVEMENT_TYPE_STAIONARY = 0x5,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
69 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
70
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
71
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
72 /* 336 */
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
73 enum MONSTER_SUPERTYPE
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
74 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
75 MONSTER_SUPERTYPE_UNDEAD = 0x1,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
76 MONSTER_SUPERTYPE_KREEGAN = 0x2,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
77 MONSTER_SUPERTYPE_DRAGON = 0x3,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
78 MONSTER_SUPERTYPE_ELF = 0x4,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
79 MONSTER_SUPERTYPE_WATER_ELEMENTAL = 0x5,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
80 MONSTER_SUPERTYPE_TREANT = 0x6,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
81 MONSTER_SUPERTYPE_TITAN = 0x7,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
82 MONSTER_SUPERTYPE_8 = 0x8,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
83 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
84
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
85 enum SPECIAL_ATTACK_TYPE : unsigned __int8
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
86 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
87 SPECIAL_ATTACK_NONE = 0,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
88 SPECIAL_ATTACK_CURSE = 1,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
89 SPECIAL_ATTACK_WEAK = 2,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
90 SPECIAL_ATTACK_SLEEP = 3,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
91 SPECIAL_ATTACK_DRUNK = 4,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
92 SPECIAL_ATTACK_INSANE = 5,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
93 SPECIAL_ATTACK_POISON_WEAK = 6,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
94 SPECIAL_ATTACK_POISON_MEDIUM = 7,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
95 SPECIAL_ATTACK_POISON_SEVERE = 8,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
96 SPECIAL_ATTACK_DISEASE_WEAK = 9,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
97 SPECIAL_ATTACK_DISEASE_MEDIUM = 10,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
98 SPECIAL_ATTACK_DISEASE_SEVERE = 11,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
99 SPECIAL_ATTACK_PARALYZED = 12,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
100 SPECIAL_ATTACK_UNCONSCIOUS = 13,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
101 SPECIAL_ATTACK_DEAD = 14,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
102 SPECIAL_ATTACK_PETRIFIED = 15,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
103 SPECIAL_ATTACK_ERADICATED = 16,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
104 SPECIAL_ATTACK_BREAK_ANY = 17,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
105 SPECIAL_ATTACK_BREAK_ARMOR = 18,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
106 SPECIAL_ATTACK_BREAK_WEAPON = 19,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
107 SPECIAL_ATTACK_STEAL = 20,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
108 SPECIAL_ATTACK_AGING = 21,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
109 SPECIAL_ATTACK_MANA_DRAIN = 22,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
110 SPECIAL_ATTACK_FEAR = 23,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
111 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
112
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
113
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
114 /* 187 */
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
115 #pragma pack(push, 1)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
116 struct MonsterInfo
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
117 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
118 enum HostilityRadius: unsigned __int8
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
119 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
120 Hostility_Friendly = 0,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
121 Hostility_Close = 1,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
122 Hostility_Short = 2,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
123 Hostility_Medium = 3,
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
124 Hostility_Long = 4
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
125 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
126
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
127 inline MonsterInfo():
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
128 pName(nullptr), pPictureName(nullptr)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
129 {}
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
130
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
131 char *pName;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
132 char *pPictureName;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
133 unsigned __int8 uLevel;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
134 unsigned __int8 uTreasureDropChance;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
135 unsigned __int8 uTreasureDiceRolls;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
136 unsigned __int8 uTreasureDiceSides;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
137 unsigned __int8 uTreasureLevel;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
138 unsigned __int8 uTreasureType;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
139 unsigned __int8 uFlying;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
140 unsigned __int8 uMovementType;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
141 unsigned __int8 uAIType;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
142 HostilityRadius uHostilityType;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
143 char field_12;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
144 SPECIAL_ATTACK_TYPE uSpecialAttackType;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
145 unsigned __int8 uSpecialAttackLevel;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
146 unsigned __int8 uAttack1Type;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
147 unsigned __int8 uAttack1DamageDiceRolls;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
148 unsigned __int8 uAttack1DamageDiceSides;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
149 unsigned __int8 uAttack1DamageBonus;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
150 unsigned __int8 uMissleAttack1Type;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
151 unsigned __int8 uAttack2Chance;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
152 unsigned __int8 uAttack2Type;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
153 unsigned __int8 uAttack2DamageDiceRolls;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
154 unsigned __int8 uAttack2DamageDiceSides;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
155 unsigned __int8 uAttack2DamageBonus;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
156 unsigned __int8 uMissleAttack2Type;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
157 unsigned __int8 uSpell1UseChance;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
158 unsigned __int8 uSpell1ID;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
159 unsigned __int8 uSpell2UseChance;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
160 unsigned __int8 uSpell2ID;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
161 unsigned __int8 uResFire;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
162 unsigned __int8 uResAir;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
163 unsigned __int8 uResWater;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
164 unsigned __int8 uResEarth;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
165 unsigned __int8 uResMind;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
166 unsigned __int8 uResSpirit;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
167 unsigned __int8 uResBody;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
168 unsigned __int8 uResLight;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
169 unsigned __int8 uResDark;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
170 unsigned __int8 uResPhysical;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
171 unsigned __int8 uSpecialAbilityType; // 0 SPECIAL_ABILITY_TYPE_NONE
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
172 // 1 SPECIAL_ABILITY_TYPE_SHOT
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
173 // 2 SPECIAL_ABILITY_TYPE_SUMMON
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
174 // 3 SPECIAL_ABILITY_TYPE_EXPLODE
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
175 unsigned __int8 uSpecialAbilityDamageDiceRolls;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
176 unsigned __int8 uSpecialAbilityDamageDiceSides;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
177 unsigned __int8 uSpecialAbilityDamageDiceBonus;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
178 unsigned __int8 uNumCharactersAttackedPerSpecialAbility;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
179 char field_33;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
180 unsigned __int16 uID;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
181 unsigned __int16 bQuestMonster;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
182 unsigned __int16 uSpellSkillAndMastery1;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
183 unsigned __int16 uSpellSkillAndMastery2;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
184 __int16 field_3C_some_special_attack;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
185 __int16 field_3E;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
186 unsigned int uHP;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
187 unsigned int uAC;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
188 unsigned int uExp;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
189 unsigned int uBaseSpeed;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
190 signed int uRecoveryTime;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
191 unsigned int uAttackPreference;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
192 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
193 #pragma pack(pop)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
194
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
195
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
196
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
197 /* 189 */
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
198 #pragma pack(push, 1)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
199 struct MonsterStats
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
200 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
201 void Initialize();
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
202 void InitializePlacements();
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
203 signed int FindMonsterByTextureName(const char *Str2);
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
204
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
205 static bool BelongsToSupertype(unsigned int uMonsterInfoID, enum MONSTER_SUPERTYPE eSupertype);
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
206
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
207 MonsterInfo pInfos[265]; //0 - 5b18h
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
208 char *pPlaceStrings[31]; //5B18h placement counts from 1
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
209 unsigned int uNumMonsters; //5B94h
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
210 unsigned int uNumPlacements; //5B98h
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
211 int field_5B9C;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
212 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
213 #pragma pack(pop)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
214
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
215
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
216
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
217 #pragma pack(push, 1)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
218 struct MonsterDesc_mm6
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
219 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
220 unsigned __int16 uMonsterHeight;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
221 unsigned __int16 uMonsterRadius;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
222 unsigned __int16 uMovementSpeed;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
223 __int16 uToHitRadius;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
224 unsigned __int16 pSoundSampleIDs[4];
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
225 char pMonsterName[32];
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
226 char pSpriteNames[10][10];
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
227 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
228
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
229 struct MonsterDesc
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
230 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
231 unsigned __int16 uMonsterHeight;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
232 unsigned __int16 uMonsterRadius;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
233 unsigned __int16 uMovementSpeed;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
234 __int16 uToHitRadius;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
235 signed int sTintColor;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
236 unsigned __int16 pSoundSampleIDs[4];
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
237 char pMonsterName[32];
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
238 char pSpriteNames[10][10];
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
239 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
240 #pragma pack(pop)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
241
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
242
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
243 #pragma pack(push, 1)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
244 struct MonsterList
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
245 {
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
246 inline MonsterList(): //----- (00458429)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
247 uNumMonsters(0), pMonsters(nullptr)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
248 {}
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
249 signed __int16 GetMonsterIDByName(const char *pMonsterName);
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
250 void ToFile();
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
251 void FromFile(void *data_mm6, void *data_mm7, void *data_mm8);
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
252 bool FromFileTxt(const char *Args);
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
253
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
254 signed int uNumMonsters;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
255 struct MonsterDesc *pMonsters;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
256 };
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
257 #pragma pack(pop)
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
258
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
259
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
260 extern struct MonsterStats *pMonsterStats;
82d5d92a097c for MVS2012
Ritor1
parents:
diff changeset
261 extern struct MonsterList *pMonsterList;