comparison Monsters.h @ 0:9c0607679772

init
author Ritor1
date Sat, 12 Jan 2013 09:45:18 +0600
parents
children 2799737f8a74
comparison
equal deleted inserted replaced
-1:000000000000 0:9c0607679772
1 #pragma once
2
3
4
5 /* 334 */
6 enum MONSTER_TYPE
7 {
8 MONSTER_DEVIL_1 = 0x16,
9 MONSTER_DEVIL_3 = 0x18,
10 MONSTER_DRAGON_1 = 0x19,
11 MONSTER_DRAGON_3 = 0x1B,
12 MONSTER_ELEMENTAL_WATER_1 = 0x2E,
13 MONSTER_ELEMENTAL_WATER_3 = 0x30,
14 MONSTER_ELF_ARCHER_1 = 0x31,
15 MONSTER_ELF_ARCHER_3 = 0x33,
16 MONSTER_ELF_SPEARMAN_1 = 0x34,
17 MONSTER_ELF_SPEARMAN_3 = 0x36,
18 MONSTER_GHOST_1 = 0x46,
19 MONSTER_GHOST_3 = 0x48,
20 MONSTER_HARPY_1 = 0x55,
21 MONSTER_HARPY_3 = 0x57,
22 MONSTER_LICH_1 = 0x5B,
23 MONSTER_LICH_3 = 0x5D,
24 MONSTER_OOZE_1 = 0x70,
25 MONSTER_OOZE_3 = 0x72,
26 MONSTER_PEASANT_ELF_FEMALE_1_1 = 0x85,
27 MONSTER_PEASANT_ELF_MALE_3_3 = 0x96,
28 MONSTER_SKELETON_1 = 0xC7,
29 MONSTER_SKELETON_3 = 0xC9,
30 MONSTER_TITAN_1 = 0xD3,
31 MONSTER_TITAN_3 = 0xD5,
32 MONSTER_VAMPIRE_1 = 0xD9,
33 MONSTER_VAMPIRE_3 = 0xDB,
34 MONSTER_WIGHT_1 = 0xDF,
35 MONSTER_WIGHT_3 = 0xE1,
36 MONSTER_ZOMBIE_1 = 0xE5,
37 MONSTER_ZOMBIE_3 = 0xE7,
38 MONSTER_PEASANT_GOBLIN_MALE_3_3 = 0xF9,
39 MONSTER_TROLL_3 = 0xFC,
40 MONSTER_TREANT_1 = 0xFD,
41 MONSTER_TREANT_3 = 0xFF,
42 MONSTER_GHOUL_1 = 0x100,
43 MONSTER_GHOUL_3 = 0x102,
44 };
45
46 /* 335 */
47 enum MONSTER_SPECIAL_ABILITY_TYPE
48 {
49 MONSTER_SPECIAL_ABILITY_NONE = 0x0,
50 MONSTER_SPECIAL_ABILITY_SHOT = 0x1,
51 MONSTER_SPECIAL_ABILITY_SUMMON = 0x2,
52 MONSTER_SPECIAL_ABILITY_EXPLODE = 0x3,
53 };
54
55 /* 336 */
56 enum MONSTER_SUPERTYPE
57 {
58 MONSTER_SUPERTYPE_UNDEAD = 0x1,
59 MONSTER_SUPERTYPE_KREEGAN = 0x2,
60 MONSTER_SUPERTYPE_DRAGON = 0x3,
61 MONSTER_SUPERTYPE_ELF = 0x4,
62 MONSTER_SUPERTYPE_WATER_ELEMENTAL = 0x5,
63 MONSTER_SUPERTYPE_TREANT = 0x6,
64 MONSTER_SUPERTYPE_TITAN = 0x7,
65 MONSTER_SUPERTYPE_8 = 0x8,
66 };
67
68
69
70 /* 187 */
71 #pragma pack(push, 1)
72 struct MonsterInfo
73 {
74 enum HostilityRadius: unsigned __int8
75 {
76 Hostility_Friendly = 0,
77 Hostility_Close = 1,
78 Hostility_Short = 2,
79 Hostility_Medium = 3,
80 Hostility_Long = 4
81 };
82
83 char *pName;
84 char *pTexture;
85 unsigned __int8 uLevel;
86 unsigned __int8 uTreasureDropChance;
87 unsigned __int8 uTreasureDiceRolls;
88 unsigned __int8 uTreasureDiceSides;
89 unsigned __int8 uTreasureLevel;
90 unsigned __int8 uTreasureType;
91 unsigned __int8 uFlying;
92 unsigned __int8 uMovementType;
93 unsigned __int8 uAIType;
94 HostilityRadius uHostilityType;
95 char field_12;
96 unsigned __int8 uSpecialAttack;
97 unsigned __int8 uSpecialAttackType;
98 unsigned __int8 uAttack1Type;
99 unsigned __int8 uAttack1DamageDiceRolls;
100 unsigned __int8 uAttack1DamageDiceSides;
101 unsigned __int8 uAttack1DamageBonus;
102 unsigned __int8 uMissleAttack1Type;
103 unsigned __int8 uAttack2Chance;
104 unsigned __int8 uAttack2Type;
105 unsigned __int8 uAttack2DamageDiceRolls;
106 unsigned __int8 uAttack2DamageDiceSides;
107 unsigned __int8 uAttack2DamageBonus;
108 unsigned __int8 uMissleAttack2Type;
109 unsigned __int8 uSpell1UseChance;
110 unsigned __int8 uSpell1ID;
111 unsigned __int8 uSpell2UseChance;
112 unsigned __int8 uSpell2ID;
113 unsigned __int8 uResFire;
114 unsigned __int8 uResAir;
115 unsigned __int8 uResWater;
116 unsigned __int8 uResEarth;
117 unsigned __int8 uResMind;
118 unsigned __int8 uResSpirit;
119 unsigned __int8 uResBody;
120 unsigned __int8 uResLight;
121 unsigned __int8 uResDark;
122 unsigned __int8 uResPhysical;
123 unsigned __int8 uSpecialAbilityType;
124 unsigned __int8 uSpecialAbilityDamageDiceRolls;
125 unsigned __int8 uSpecialAbilityDamageDiceSides;
126 unsigned __int8 uSpecialAbilityDamageDiceBonus;
127 unsigned __int8 uNumCharactersAttackedPerSpecialAbility;
128 char field_33;
129 unsigned __int16 uID;
130 unsigned __int16 bQuestMonster;
131 unsigned __int16 uSpellSkillAndMastery1;
132 unsigned __int16 uSpellSkillAndMastery2;
133 __int16 field_3C_some_special_attack;
134 __int16 field_3E;
135 unsigned int uHP;
136 unsigned int uAC;
137 unsigned int uExp;
138 unsigned int uBaseSpeed;
139 unsigned int uRecoveryTime;
140 unsigned int uAttackPreference;
141 };
142 #pragma pack(pop)
143
144 /* 188 */
145 #pragma pack(push, 1)
146 struct MonsterPlacement
147 {
148 unsigned int uNumStrings;
149 char *pSubstrings[30];
150 };
151 #pragma pack(pop)
152
153 /* 189 */
154 #pragma pack(push, 1)
155 struct MonsterStats
156 {
157 void Initialize();
158 void InitializePlacements();
159 signed int _4563FF(const char *Str2);
160
161 static bool BelongsToSupertype(unsigned int uMonsterInfoID, enum MONSTER_SUPERTYPE eSupertype);
162
163 MonsterInfo pInfos[265];
164 MonsterPlacement pPlacement;
165 unsigned int uNumMonsters;
166 unsigned int uNumPlacements;
167 int field_5B9C;
168 };
169 #pragma pack(pop)
170
171
172
173 #pragma pack(push, 1)
174 struct MonsterDesc
175 {
176 unsigned __int16 uMonsterHeight;
177 unsigned __int16 uMonsterRadius;
178 unsigned __int16 uMovementSpeed;
179 __int16 uToHitRadius;
180 unsigned int uTintColor;
181 unsigned __int16 pSoundSampleIDs[4];
182 char pMonsterName[32];
183 char pSpriteNames[10][10];
184 };
185 #pragma pack(pop)
186
187
188 #pragma pack(push, 1)
189 struct MonsterList
190 {
191 inline MonsterList(): //----- (00458429)
192 uNumMonsters(0), pMonsters(nullptr)
193 {}
194 unsigned __int16 GetMonsterByName(const char *pMonsterName);
195 void ToFile();
196 void FromFile(void *pSerialized);
197 bool FromFileTxt(const char *Args);
198
199 unsigned int uNumMonsters;
200 struct MonsterDesc *pMonsters;
201 };
202 #pragma pack(pop)
203
204
205 extern struct MonsterStats *pMonsterStats;
206 extern struct MonsterList *pMonsterList;