annotate Engine/Objects/Player.h @ 2544:c674d547cc7c

GUIWindow switch logic refactored into behaviour classes
author a.parshin
date Mon, 11 May 2015 09:51:04 +0200
parents b6140dfeac27
children 117c219bf913
rev   line source
2498
Ritor1
parents:
diff changeset
1 #pragma once
Ritor1
parents:
diff changeset
2 #include "Items.h"
2499
68cdef6879a0 engine folder
Ritor1
parents: 2498
diff changeset
3 #include "../Spells/Spells.h"
68cdef6879a0 engine folder
Ritor1
parents: 2498
diff changeset
4 #include "../Conditions.h"
2498
Ritor1
parents:
diff changeset
5
Ritor1
parents:
diff changeset
6
Ritor1
parents:
diff changeset
7
Ritor1
parents:
diff changeset
8 enum PLAYER_BUFFS
Ritor1
parents:
diff changeset
9 {
Ritor1
parents:
diff changeset
10 PLAYER_BUFF_RESIST_AIR = 0,
Ritor1
parents:
diff changeset
11 PLAYER_BUFF_BLESS = 1,
Ritor1
parents:
diff changeset
12 PLAYER_BUFF_RESIST_BODY = 2,
Ritor1
parents:
diff changeset
13 PLAYER_BUFF_RESIST_EARTH = 3,
Ritor1
parents:
diff changeset
14 PLAYER_BUFF_FATE = 4,
Ritor1
parents:
diff changeset
15 PLAYER_BUFF_RESIST_FIRE = 5,
Ritor1
parents:
diff changeset
16 PLAYER_BUFF_HAMMERHANDS = 6,
Ritor1
parents:
diff changeset
17 PLAYER_BUFF_HASTE = 7,
Ritor1
parents:
diff changeset
18 PLAYER_BUFF_HEROISM = 8,
Ritor1
parents:
diff changeset
19 PLAYER_BUFF_RESIST_MIND = 9,
Ritor1
parents:
diff changeset
20 PLAYER_BUFF_PAIN_REFLECTION = 10,
Ritor1
parents:
diff changeset
21 PLAYER_BUFF_PRESERVATION = 11,
Ritor1
parents:
diff changeset
22 PLAYER_BUFF_REGENERATION = 12,
Ritor1
parents:
diff changeset
23 PLAYER_BUFF_SHIELD = 13,
Ritor1
parents:
diff changeset
24 PLAYER_BUFF_STONESKIN = 14,
Ritor1
parents:
diff changeset
25 PLAYER_BUFF_ACCURACY = 15,
Ritor1
parents:
diff changeset
26 PLAYER_BUFF_ENDURANCE = 16,
Ritor1
parents:
diff changeset
27 PLAYER_BUFF_INTELLIGENCE = 17,
Ritor1
parents:
diff changeset
28 PLAYER_BUFF_LUCK = 18,
Ritor1
parents:
diff changeset
29 PLAYER_BUFF_STRENGTH = 19,
Ritor1
parents:
diff changeset
30 PLAYER_BUFF_WILLPOWER = 20,
Ritor1
parents:
diff changeset
31 PLAYER_BUFF_SPEED = 21,
Ritor1
parents:
diff changeset
32 PLAYER_BUFF_RESIST_WATER = 22,
Ritor1
parents:
diff changeset
33 PLAYER_BUFF_WATER_WALK = 23
Ritor1
parents:
diff changeset
34 };
Ritor1
parents:
diff changeset
35
Ritor1
parents:
diff changeset
36
Ritor1
parents:
diff changeset
37 #define PLAYER_GUILD_BITS__SPIRIT_MEMBERSHIP 58
Ritor1
parents:
diff changeset
38 #define PLAYER_GUILD_BITS__ARCOMAGE_WIN 103
Ritor1
parents:
diff changeset
39 #define PLAYER_GUILD_BITS__ARCOMAGE_LOSE 104
Ritor1
parents:
diff changeset
40
Ritor1
parents:
diff changeset
41
Ritor1
parents:
diff changeset
42 /* 301 */
Ritor1
parents:
diff changeset
43 enum PlayerSpeech
Ritor1
parents:
diff changeset
44 {
Ritor1
parents:
diff changeset
45 SPEECH_1 = 1,
Ritor1
parents:
diff changeset
46 SPEECH_2 = 2,
Ritor1
parents:
diff changeset
47 SPEECH_3 = 3,
Ritor1
parents:
diff changeset
48 SPEECH_4 = 4,
Ritor1
parents:
diff changeset
49 SPEECH_5 = 5,
Ritor1
parents:
diff changeset
50 SPEECH_6 = 6,
Ritor1
parents:
diff changeset
51 SPEECH_7 = 7,
Ritor1
parents:
diff changeset
52 SPEECH_8 = 8,
Ritor1
parents:
diff changeset
53 SPEECH_9 = 9,
Ritor1
parents:
diff changeset
54 SPEECH_10 = 10,
Ritor1
parents:
diff changeset
55 SPEECH_11 = 11,
Ritor1
parents:
diff changeset
56 SPEECH_12 = 12,
2543
b6140dfeac27 GameOver h/cpp
a.parshin
parents: 2499
diff changeset
57 SPEECH_CantRestHere = 13,
2498
Ritor1
parents:
diff changeset
58 SPEECH_14 = 14,
Ritor1
parents:
diff changeset
59 SPEECH_NoRoom = 15, // when placing to inventory
Ritor1
parents:
diff changeset
60 SPEECH_DO_POTION_FINE = 16,
Ritor1
parents:
diff changeset
61 SPEECH_17 = 17,
Ritor1
parents:
diff changeset
62 SPEECH_18 = 18,
Ritor1
parents:
diff changeset
63 SPEECH_19 = 19,
Ritor1
parents:
diff changeset
64 SPEECH_20 = 20,
Ritor1
parents:
diff changeset
65 SPEECH_21 = 21,
Ritor1
parents:
diff changeset
66 SPEECH_GoodDay = 22, // greets on dialogue start
Ritor1
parents:
diff changeset
67 SPEECH_GoodEvening = 23,
Ritor1
parents:
diff changeset
68 SPEECH_24 = 24,
Ritor1
parents:
diff changeset
69 SPEECH_25 = 25,
Ritor1
parents:
diff changeset
70 SPEECH_26 = 26,
Ritor1
parents:
diff changeset
71 SPEECH_27 = 27,
Ritor1
parents:
diff changeset
72 SPEECH_28 = 28,
Ritor1
parents:
diff changeset
73 SPEECH_29 = 29,
Ritor1
parents:
diff changeset
74 SPEECH_30 = 30,
Ritor1
parents:
diff changeset
75 SPEECH_31 = 31,
Ritor1
parents:
diff changeset
76 SPEECH_32 = 32,
Ritor1
parents:
diff changeset
77 SPEECH_33 = 33,
Ritor1
parents:
diff changeset
78 SPEECH_34 = 34,
Ritor1
parents:
diff changeset
79 SPEECH_35 = 35,
Ritor1
parents:
diff changeset
80 SPEECH_36 = 36,
Ritor1
parents:
diff changeset
81 SPEECH_37 = 37,
Ritor1
parents:
diff changeset
82 SPEECH_NotEnoughGold = 38,
Ritor1
parents:
diff changeset
83 SPEECH_39 = 39,
Ritor1
parents:
diff changeset
84 SPEECH_40 = 40,
Ritor1
parents:
diff changeset
85 SPEECH_41 = 41,
Ritor1
parents:
diff changeset
86 SPEECH_42 = 42,
Ritor1
parents:
diff changeset
87 SPEECH_43 = 43,
Ritor1
parents:
diff changeset
88 SPEECH_44 = 44,
Ritor1
parents:
diff changeset
89 SPEECH_45 = 45,
Ritor1
parents:
diff changeset
90 SPEECH_46 = 46,
Ritor1
parents:
diff changeset
91 SPEECH_47 = 47,
Ritor1
parents:
diff changeset
92 SPEECH_48 = 48,
Ritor1
parents:
diff changeset
93 SPEECH_49 = 49,
Ritor1
parents:
diff changeset
94 SPEECH_50 = 50,
Ritor1
parents:
diff changeset
95 SPEECH_51 = 51,
Ritor1
parents:
diff changeset
96 SPEECH_52 = 52,
Ritor1
parents:
diff changeset
97 SPEECH_53 = 53,
Ritor1
parents:
diff changeset
98 SPEECH_54 = 54,
Ritor1
parents:
diff changeset
99 SPEECH_55 = 55,
Ritor1
parents:
diff changeset
100 SPEECH_56 = 56,
Ritor1
parents:
diff changeset
101 SPEECH_57 = 57,
Ritor1
parents:
diff changeset
102 SPEECH_58 = 58,
Ritor1
parents:
diff changeset
103 SPEECH_59 = 59,
Ritor1
parents:
diff changeset
104 SPEECH_60 = 60,
Ritor1
parents:
diff changeset
105 SPEECH_61 = 61,
Ritor1
parents:
diff changeset
106 SPEECH_62 = 62,
Ritor1
parents:
diff changeset
107 SPEECH_63 = 63,
Ritor1
parents:
diff changeset
108 SPEECH_64 = 64,
Ritor1
parents:
diff changeset
109 SPEECH_Yell = 65,
Ritor1
parents:
diff changeset
110 SPEECH_Falling_scream = 66,
Ritor1
parents:
diff changeset
111 SPEECH_67 = 67,
Ritor1
parents:
diff changeset
112 SPEECH_68 = 68,
Ritor1
parents:
diff changeset
113 SPEECH_69 = 69,
Ritor1
parents:
diff changeset
114 SPEECH_70 = 70,
Ritor1
parents:
diff changeset
115 SPEECH_CarriageReady = 71, // travelling by carriage
Ritor1
parents:
diff changeset
116 SPEECH_SetSail = 72, // travelling by sea
Ritor1
parents:
diff changeset
117 SPEECH_73 = 73,
Ritor1
parents:
diff changeset
118 SPEECH_74 = 74,
Ritor1
parents:
diff changeset
119 SPEECH_75 = 75,
Ritor1
parents:
diff changeset
120 SPEECH_76 = 76,
Ritor1
parents:
diff changeset
121 SPEECH_77 = 77,
Ritor1
parents:
diff changeset
122 SPEECH_78 = 78,
Ritor1
parents:
diff changeset
123 SPEECH_79 = 79,
Ritor1
parents:
diff changeset
124 SPEECH_80 = 80,
Ritor1
parents:
diff changeset
125 SPEECH_81 = 81,
Ritor1
parents:
diff changeset
126 SPEECH_82 = 82,
Ritor1
parents:
diff changeset
127 SPEECH_83 = 83,
Ritor1
parents:
diff changeset
128 SPEECH_84 = 84,
Ritor1
parents:
diff changeset
129 SPEECH_85 = 85,
Ritor1
parents:
diff changeset
130 SPEECH_86 = 86,
Ritor1
parents:
diff changeset
131 SPEECH_87 = 87,
Ritor1
parents:
diff changeset
132 SPEECH_88 = 88,
Ritor1
parents:
diff changeset
133 SPEECH_89 = 89,
Ritor1
parents:
diff changeset
134 SPEECH_90 = 90,
Ritor1
parents:
diff changeset
135 SPEECH_91 = 91,
Ritor1
parents:
diff changeset
136 SPEECH_92 = 92,
Ritor1
parents:
diff changeset
137 SPEECH_93 = 93,
Ritor1
parents:
diff changeset
138 SPEECH_94 = 94,
Ritor1
parents:
diff changeset
139 SPEECH_95 = 95,
Ritor1
parents:
diff changeset
140 SPEECH_96 = 96,
Ritor1
parents:
diff changeset
141 SPEECH_97 = 97,
Ritor1
parents:
diff changeset
142 SPEECH_98 = 98,
Ritor1
parents:
diff changeset
143 SPEECH_99 = 99,
Ritor1
parents:
diff changeset
144 SPEECH_100 = 100,
Ritor1
parents:
diff changeset
145 SPEECH_101 = 101,
Ritor1
parents:
diff changeset
146 SPEECH_PickMe = 102,
Ritor1
parents:
diff changeset
147 SPEECH_103 = 103,
Ritor1
parents:
diff changeset
148 SPEECH_IDENTIFY_MONSTER_WEAKER = 104,
Ritor1
parents:
diff changeset
149 SPEECH_IDENTIFY_MONSTER_STRONGER = 105,
Ritor1
parents:
diff changeset
150 SPEECH_IDENTIFY_MONSTER_106 = 106,
Ritor1
parents:
diff changeset
151 SPEECH_107 = 107,
Ritor1
parents:
diff changeset
152 SPEECH_108 = 108,
Ritor1
parents:
diff changeset
153 SPEECH_109 = 109,
Ritor1
parents:
diff changeset
154 SPEECH_110 = 110,
Ritor1
parents:
diff changeset
155 };
Ritor1
parents:
diff changeset
156
Ritor1
parents:
diff changeset
157
Ritor1
parents:
diff changeset
158
Ritor1
parents:
diff changeset
159 /* 339 */
Ritor1
parents:
diff changeset
160 enum CHARACTER_RACE
Ritor1
parents:
diff changeset
161 {
Ritor1
parents:
diff changeset
162 CHARACTER_RACE_HUMAN = 0,
Ritor1
parents:
diff changeset
163 CHARACTER_RACE_ELF = 1,
Ritor1
parents:
diff changeset
164 CHARACTER_RACE_GOBLIN = 2,
Ritor1
parents:
diff changeset
165 CHARACTER_RACE_DWARF = 3,
Ritor1
parents:
diff changeset
166 };
Ritor1
parents:
diff changeset
167
Ritor1
parents:
diff changeset
168 /* 332 */
Ritor1
parents:
diff changeset
169 enum CHARACTER_ATTRIBUTE_TYPE
Ritor1
parents:
diff changeset
170 {
Ritor1
parents:
diff changeset
171 CHARACTER_ATTRIBUTE_STRENGTH = 0,
Ritor1
parents:
diff changeset
172 CHARACTER_ATTRIBUTE_INTELLIGENCE = 1,
Ritor1
parents:
diff changeset
173 CHARACTER_ATTRIBUTE_WILLPOWER = 2,
Ritor1
parents:
diff changeset
174 CHARACTER_ATTRIBUTE_ENDURANCE = 3,
Ritor1
parents:
diff changeset
175 CHARACTER_ATTRIBUTE_ACCURACY = 4,
Ritor1
parents:
diff changeset
176 CHARACTER_ATTRIBUTE_SPEED = 5,
Ritor1
parents:
diff changeset
177 CHARACTER_ATTRIBUTE_LUCK = 6,
Ritor1
parents:
diff changeset
178 CHARACTER_ATTRIBUTE_HEALTH = 7,
Ritor1
parents:
diff changeset
179 CHARACTER_ATTRIBUTE_MANA = 8,
Ritor1
parents:
diff changeset
180 CHARACTER_ATTRIBUTE_AC_BONUS = 9,
Ritor1
parents:
diff changeset
181
Ritor1
parents:
diff changeset
182 CHARACTER_ATTRIBUTE_RESIST_FIRE = 10,
Ritor1
parents:
diff changeset
183 CHARACTER_ATTRIBUTE_RESIST_AIR = 11,
Ritor1
parents:
diff changeset
184 CHARACTER_ATTRIBUTE_RESIST_WATER = 12,
Ritor1
parents:
diff changeset
185 CHARACTER_ATTRIBUTE_RESIST_EARTH = 13,
Ritor1
parents:
diff changeset
186 CHARACTER_ATTRIBUTE_RESIST_MIND = 14,
Ritor1
parents:
diff changeset
187 CHARACTER_ATTRIBUTE_RESIST_BODY = 15,
Ritor1
parents:
diff changeset
188
Ritor1
parents:
diff changeset
189 CHARACTER_ATTRIBUTE_SKILL_ALCHEMY = 16,
Ritor1
parents:
diff changeset
190 CHARACTER_ATTRIBUTE_SKILL_STEALING = 17,
Ritor1
parents:
diff changeset
191 CHARACTER_ATTRIBUTE_SKILL_TRAP_DISARM = 18,
Ritor1
parents:
diff changeset
192 CHARACTER_ATTRIBUTE_SKILL_ITEM_ID = 19,
Ritor1
parents:
diff changeset
193 CHARACTER_ATTRIBUTE_SKILL_MONSTER_ID = 20,
Ritor1
parents:
diff changeset
194 CHARACTER_ATTRIBUTE_SKILL_ARMSMASTER = 21,
Ritor1
parents:
diff changeset
195 CHARACTER_ATTRIBUTE_SKILL_DODGE = 22,
Ritor1
parents:
diff changeset
196 CHARACTER_ATTRIBUTE_SKILL_UNARMED = 23,
Ritor1
parents:
diff changeset
197
Ritor1
parents:
diff changeset
198 CHARACTER_ATTRIBUTE_LEVEL = 24,
Ritor1
parents:
diff changeset
199 CHARACTER_ATTRIBUTE_ATTACK = 25,
Ritor1
parents:
diff changeset
200 CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS = 26,
Ritor1
parents:
diff changeset
201 CHARACTER_ATTRIBUTE_MELEE_DMG_MIN = 27,
Ritor1
parents:
diff changeset
202 CHARACTER_ATTRIBUTE_MELEE_DMG_MAX = 28,
Ritor1
parents:
diff changeset
203 CHARACTER_ATTRIBUTE_RANGED_ATTACK = 29,
Ritor1
parents:
diff changeset
204 CHARACTER_ATTRIBUTE_RANGED_DMG_BONUS = 30,
Ritor1
parents:
diff changeset
205 CHARACTER_ATTRIBUTE_RANGED_DMG_MIN = 31,
Ritor1
parents:
diff changeset
206 CHARACTER_ATTRIBUTE_RANGED_DMG_MAX = 32,
Ritor1
parents:
diff changeset
207 CHARACTER_ATTRIBUTE_RESIST_SPIRIT = 33,
Ritor1
parents:
diff changeset
208
Ritor1
parents:
diff changeset
209 CHARACTER_ATTRIBUTE_SKILL_FIRE = 34,
Ritor1
parents:
diff changeset
210 CHARACTER_ATTRIBUTE_SKILL_AIR = 35,
Ritor1
parents:
diff changeset
211 CHARACTER_ATTRIBUTE_SKILL_WATER = 36,
Ritor1
parents:
diff changeset
212 CHARACTER_ATTRIBUTE_SKILL_EARTH = 37,
Ritor1
parents:
diff changeset
213 CHARACTER_ATTRIBUTE_SKILL_SPIRIT = 38,
Ritor1
parents:
diff changeset
214 CHARACTER_ATTRIBUTE_SKILL_MIND = 39,
Ritor1
parents:
diff changeset
215 CHARACTER_ATTRIBUTE_SKILL_BODY = 40,
Ritor1
parents:
diff changeset
216 CHARACTER_ATTRIBUTE_SKILL_LIGHT = 41,
Ritor1
parents:
diff changeset
217 CHARACTER_ATTRIBUTE_SKILL_DARK = 42,
Ritor1
parents:
diff changeset
218 CHARACTER_ATTRIBUTE_SKILL_MEDITATION = 43,
Ritor1
parents:
diff changeset
219 CHARACTER_ATTRIBUTE_SKILL_BOW = 44,
Ritor1
parents:
diff changeset
220 CHARACTER_ATTRIBUTE_SKILL_SHIELD = 45,
Ritor1
parents:
diff changeset
221 CHARACTER_ATTRIBUTE_SKILL_LEARNING = 46
Ritor1
parents:
diff changeset
222 };
Ritor1
parents:
diff changeset
223
Ritor1
parents:
diff changeset
224 #pragma warning( push )
Ritor1
parents:
diff changeset
225 #pragma warning( disable: 4341 )
Ritor1
parents:
diff changeset
226 /* 328 */
Ritor1
parents:
diff changeset
227 enum PLAYER_SKILL_TYPE: signed __int8
Ritor1
parents:
diff changeset
228 {
Ritor1
parents:
diff changeset
229 PLAYER_SKILL_STAFF = 0,
Ritor1
parents:
diff changeset
230 PLAYER_SKILL_SWORD = 1,
Ritor1
parents:
diff changeset
231 PLAYER_SKILL_DAGGER = 2,
Ritor1
parents:
diff changeset
232 PLAYER_SKILL_AXE = 3,
Ritor1
parents:
diff changeset
233 PLAYER_SKILL_SPEAR = 4,
Ritor1
parents:
diff changeset
234 PLAYER_SKILL_BOW = 5,
Ritor1
parents:
diff changeset
235 PLAYER_SKILL_MACE = 6,
Ritor1
parents:
diff changeset
236 PLAYER_SKILL_BLASTER = 7,
Ritor1
parents:
diff changeset
237 PLAYER_SKILL_SHIELD = 8,
Ritor1
parents:
diff changeset
238 PLAYER_SKILL_LEATHER = 9,
Ritor1
parents:
diff changeset
239 PLAYER_SKILL_CHAIN = 10,
Ritor1
parents:
diff changeset
240 PLAYER_SKILL_PLATE = 11,
Ritor1
parents:
diff changeset
241 PLAYER_SKILL_FIRE = 12,
Ritor1
parents:
diff changeset
242 PLAYER_SKILL_AIR = 13,
Ritor1
parents:
diff changeset
243 PLAYER_SKILL_WATER = 14,
Ritor1
parents:
diff changeset
244 PLAYER_SKILL_EARTH = 15,
Ritor1
parents:
diff changeset
245 PLAYER_SKILL_SPIRIT = 16,
Ritor1
parents:
diff changeset
246 PLAYER_SKILL_MIND = 17,
Ritor1
parents:
diff changeset
247 PLAYER_SKILL_BODY = 18,
Ritor1
parents:
diff changeset
248 PLAYER_SKILL_LIGHT = 19,
Ritor1
parents:
diff changeset
249 PLAYER_SKILL_DARK = 20,
Ritor1
parents:
diff changeset
250 PLAYER_SKILL_ITEM_ID = 21,
Ritor1
parents:
diff changeset
251 PLAYER_SKILL_MERCHANT = 22,
Ritor1
parents:
diff changeset
252 PLAYER_SKILL_REPAIR = 23,
Ritor1
parents:
diff changeset
253 PLAYER_SKILL_BODYBUILDING = 24,
Ritor1
parents:
diff changeset
254 PLAYER_SKILL_MEDITATION = 25,
Ritor1
parents:
diff changeset
255 PLAYER_SKILL_PERCEPTION = 26,
Ritor1
parents:
diff changeset
256 PLAYER_SKILL_DIPLOMACY = 27,
Ritor1
parents:
diff changeset
257 PLAYER_SKILL_TIEVERY = 28,
Ritor1
parents:
diff changeset
258 PLAYER_SKILL_TRAP_DISARM = 29,
Ritor1
parents:
diff changeset
259 PLAYER_SKILL_DODGE = 30,
Ritor1
parents:
diff changeset
260 PLAYER_SKILL_UNARMED = 31,
Ritor1
parents:
diff changeset
261 PLAYER_SKILL_MONSTER_ID = 32,
Ritor1
parents:
diff changeset
262 PLAYER_SKILL_ARMSMASTER = 33,
Ritor1
parents:
diff changeset
263 PLAYER_SKILL_STEALING = 34,
Ritor1
parents:
diff changeset
264 PLAYER_SKILL_ALCHEMY = 35,
Ritor1
parents:
diff changeset
265 PLAYER_SKILL_LEARNING = 36,
Ritor1
parents:
diff changeset
266 PLAYER_SKILL_CLUB = 37,
Ritor1
parents:
diff changeset
267 PLAYER_SKILL_MISC = 38,
Ritor1
parents:
diff changeset
268 PLAYER_SKILL_INVALID = -1
Ritor1
parents:
diff changeset
269 };
Ritor1
parents:
diff changeset
270 #pragma warning( pop )
Ritor1
parents:
diff changeset
271
Ritor1
parents:
diff changeset
272 /* 329 */
Ritor1
parents:
diff changeset
273 enum PLAYER_CLASS_TYPE: unsigned __int8
Ritor1
parents:
diff changeset
274 {
Ritor1
parents:
diff changeset
275 PLAYER_CLASS_KNIGHT = 0,
Ritor1
parents:
diff changeset
276 PLAYER_CLASS_CHEVALIER = 1,
Ritor1
parents:
diff changeset
277 PLAYER_CLASS_CHAMPION = 2,
Ritor1
parents:
diff changeset
278 PLAYER_CLASS_BLACK_KNIGHT = 3,
Ritor1
parents:
diff changeset
279 PLAYER_CLASS_THEIF = 4,
Ritor1
parents:
diff changeset
280 PLAYER_CLASS_ROGUE = 5,
Ritor1
parents:
diff changeset
281 PLAYER_CLASS_SPY = 6,
Ritor1
parents:
diff changeset
282 PLAYER_CLASS_ASSASSIN = 7,
Ritor1
parents:
diff changeset
283 PLAYER_CLASS_MONK = 8,
Ritor1
parents:
diff changeset
284 PLAYER_CLASS_INITIATE = 9,
Ritor1
parents:
diff changeset
285 PLAYER_CLASS_MASTER = 10,
Ritor1
parents:
diff changeset
286 PLAYER_CLASS_NINJA = 11,
Ritor1
parents:
diff changeset
287 PLAYER_CLASS_PALADIN = 12,
Ritor1
parents:
diff changeset
288 PLAYER_CLASS_CRUSADER = 13,
Ritor1
parents:
diff changeset
289 PLAYER_CLASS_HERO = 14,
Ritor1
parents:
diff changeset
290 PLAYER_CLASS_VILLIAN = 15,
Ritor1
parents:
diff changeset
291 PLAYER_CLASS_ARCHER = 16,
Ritor1
parents:
diff changeset
292 PLAYER_CLASS_WARRIOR_MAGE = 17,
Ritor1
parents:
diff changeset
293 PLAYER_CLASS_MASTER_ARCHER = 18,
Ritor1
parents:
diff changeset
294 PLAYER_CLASS_SNIPER = 19,
Ritor1
parents:
diff changeset
295 PLAYER_CLASS_RANGER = 20,
Ritor1
parents:
diff changeset
296 PLAYER_CLASS_HUNTER = 21,
Ritor1
parents:
diff changeset
297 PLAYER_CLASS_RANGER_LORD = 22,
Ritor1
parents:
diff changeset
298 PLAYER_CLASS_BOUNTY_HUNTER = 23,
Ritor1
parents:
diff changeset
299 PLAYER_CLASS_CLERIC = 24,
Ritor1
parents:
diff changeset
300 PLAYER_CLASS_PRIEST = 25,
Ritor1
parents:
diff changeset
301 PLAYER_CLASS_PRIEST_OF_SUN = 26,
Ritor1
parents:
diff changeset
302 PLAYER_CLASS_PRIEST_OF_MOON = 27,
Ritor1
parents:
diff changeset
303 PLAYER_CLASS_DRUID = 28,
Ritor1
parents:
diff changeset
304 PLAYER_CLASS_GREAT_DRUID = 29,
Ritor1
parents:
diff changeset
305 PLAYER_CLASS_ARCH_DRUID = 30,
Ritor1
parents:
diff changeset
306 PLAYER_CLASS_WARLOCK = 31,
Ritor1
parents:
diff changeset
307 PLAYER_CLASS_SORCERER = 32,
Ritor1
parents:
diff changeset
308 PLAYER_CLASS_WIZARD = 33,
Ritor1
parents:
diff changeset
309 PLAYER_CLASS_ARCHMAGE = 34,
Ritor1
parents:
diff changeset
310 PLAYER_CLASS_LICH = 35
Ritor1
parents:
diff changeset
311 };
Ritor1
parents:
diff changeset
312
Ritor1
parents:
diff changeset
313
Ritor1
parents:
diff changeset
314
Ritor1
parents:
diff changeset
315
Ritor1
parents:
diff changeset
316 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
317 struct LloydBeacon
Ritor1
parents:
diff changeset
318 {
Ritor1
parents:
diff changeset
319 unsigned __int64 uBeaconTime;
Ritor1
parents:
diff changeset
320 int PartyPos_X;
Ritor1
parents:
diff changeset
321 int PartyPos_Y;
Ritor1
parents:
diff changeset
322 int PartyPos_Z;
Ritor1
parents:
diff changeset
323 __int16 PartyRot_X;
Ritor1
parents:
diff changeset
324 __int16 PartyRot_Y;
Ritor1
parents:
diff changeset
325 int SaveFileID;
Ritor1
parents:
diff changeset
326 };
Ritor1
parents:
diff changeset
327 #pragma pack(pop)
Ritor1
parents:
diff changeset
328
Ritor1
parents:
diff changeset
329
Ritor1
parents:
diff changeset
330
Ritor1
parents:
diff changeset
331 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
332 struct PlayerSpellbookChapter
Ritor1
parents:
diff changeset
333 {
Ritor1
parents:
diff changeset
334 std::array<char, 11> bIsSpellAvailable;
Ritor1
parents:
diff changeset
335 };
Ritor1
parents:
diff changeset
336 #pragma pack(pop)
Ritor1
parents:
diff changeset
337
Ritor1
parents:
diff changeset
338 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
339 struct PlayerSpells
Ritor1
parents:
diff changeset
340 {
Ritor1
parents:
diff changeset
341 union
Ritor1
parents:
diff changeset
342 {
Ritor1
parents:
diff changeset
343 struct
Ritor1
parents:
diff changeset
344 {
Ritor1
parents:
diff changeset
345 PlayerSpellbookChapter pFireSpellbook;
Ritor1
parents:
diff changeset
346 PlayerSpellbookChapter pAirSpellbook;
Ritor1
parents:
diff changeset
347 PlayerSpellbookChapter pWaterSpellbook;
Ritor1
parents:
diff changeset
348 PlayerSpellbookChapter pEarthSpellbook;
Ritor1
parents:
diff changeset
349 PlayerSpellbookChapter pSpiritSpellbook;
Ritor1
parents:
diff changeset
350 PlayerSpellbookChapter pMindSpellbook;
Ritor1
parents:
diff changeset
351 PlayerSpellbookChapter pBodySpellbook;
Ritor1
parents:
diff changeset
352 PlayerSpellbookChapter pLightSpellbook;
Ritor1
parents:
diff changeset
353 PlayerSpellbookChapter pDarkSpellbook;
Ritor1
parents:
diff changeset
354 char _pad_0;
Ritor1
parents:
diff changeset
355 };
Ritor1
parents:
diff changeset
356 struct
Ritor1
parents:
diff changeset
357 {
Ritor1
parents:
diff changeset
358 std::array<PlayerSpellbookChapter, 9> pChapters;
Ritor1
parents:
diff changeset
359 char _pad_1;
Ritor1
parents:
diff changeset
360 };
Ritor1
parents:
diff changeset
361 struct
Ritor1
parents:
diff changeset
362 {
Ritor1
parents:
diff changeset
363 std::array<char, 99> bHaveSpell;
Ritor1
parents:
diff changeset
364 char _pad_1;
Ritor1
parents:
diff changeset
365 };
Ritor1
parents:
diff changeset
366 };
Ritor1
parents:
diff changeset
367 };
Ritor1
parents:
diff changeset
368 #pragma pack(pop)
Ritor1
parents:
diff changeset
369
Ritor1
parents:
diff changeset
370
Ritor1
parents:
diff changeset
371
Ritor1
parents:
diff changeset
372 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
373 union PlayerEquipment
Ritor1
parents:
diff changeset
374 {
Ritor1
parents:
diff changeset
375 union
Ritor1
parents:
diff changeset
376 {
Ritor1
parents:
diff changeset
377 struct
Ritor1
parents:
diff changeset
378 {
Ritor1
parents:
diff changeset
379 unsigned int uShield;
Ritor1
parents:
diff changeset
380 unsigned int uMainHand;
Ritor1
parents:
diff changeset
381 unsigned int uBow;
Ritor1
parents:
diff changeset
382 unsigned int uArmor;
Ritor1
parents:
diff changeset
383 unsigned int uHelm;
Ritor1
parents:
diff changeset
384 unsigned int uBelt;
Ritor1
parents:
diff changeset
385 unsigned int uCloak;
Ritor1
parents:
diff changeset
386 unsigned int uGlove;
Ritor1
parents:
diff changeset
387 unsigned int uBoot;
Ritor1
parents:
diff changeset
388 unsigned int uAmulet;
Ritor1
parents:
diff changeset
389 std::array<unsigned int, 6> uRings;
Ritor1
parents:
diff changeset
390 //unsigned int field_2C;
Ritor1
parents:
diff changeset
391 //unsigned int field_30;
Ritor1
parents:
diff changeset
392 //unsigned int field_34;
Ritor1
parents:
diff changeset
393 //unsigned int field_38;
Ritor1
parents:
diff changeset
394 //unsigned int field_3C;
Ritor1
parents:
diff changeset
395 };
Ritor1
parents:
diff changeset
396 std::array<unsigned int, 16> pIndices;
Ritor1
parents:
diff changeset
397 };
Ritor1
parents:
diff changeset
398 };
Ritor1
parents:
diff changeset
399 #pragma pack(pop)
Ritor1
parents:
diff changeset
400
Ritor1
parents:
diff changeset
401
Ritor1
parents:
diff changeset
402
Ritor1
parents:
diff changeset
403
Ritor1
parents:
diff changeset
404
Ritor1
parents:
diff changeset
405 enum CHARACTER_EXPRESSION_ID: unsigned __int16
Ritor1
parents:
diff changeset
406 {
Ritor1
parents:
diff changeset
407 CHARACTER_EXPRESSION_INVALID = 0,
Ritor1
parents:
diff changeset
408 CHARACTER_EXPRESSION_1 = 1,
Ritor1
parents:
diff changeset
409 CHARACTER_EXPRESSION_CURSED = 2,
Ritor1
parents:
diff changeset
410 CHARACTER_EXPRESSION_WEAK = 3,
Ritor1
parents:
diff changeset
411 CHARACTER_EXPRESSION_SLEEP = 4,
Ritor1
parents:
diff changeset
412 CHARACTER_EXPRESSION_FEAR = 5,
Ritor1
parents:
diff changeset
413 CHARACTER_EXPRESSION_DRUNK = 6,
Ritor1
parents:
diff changeset
414 CHARACTER_EXPRESSION_INSANE = 7,
Ritor1
parents:
diff changeset
415 CHARACTER_EXPRESSION_POISONED = 8,
Ritor1
parents:
diff changeset
416 CHARACTER_EXPRESSION_DISEASED = 9,
Ritor1
parents:
diff changeset
417 CHARACTER_EXPRESSION_PARALYZED = 10,
Ritor1
parents:
diff changeset
418 CHARACTER_EXPRESSION_UNCONCIOUS = 11,
Ritor1
parents:
diff changeset
419 CHARACTER_EXPRESSION_PERTIFIED = 12,
Ritor1
parents:
diff changeset
420 CHARACTER_EXPRESSION_13 = 13,
Ritor1
parents:
diff changeset
421 CHARACTER_EXPRESSION_14 = 14,
Ritor1
parents:
diff changeset
422 CHARACTER_EXPRESSION_15 = 15,
Ritor1
parents:
diff changeset
423 CHARACTER_EXPRESSION_16 = 16,
Ritor1
parents:
diff changeset
424 CHARACTER_EXPRESSION_17 = 17,
Ritor1
parents:
diff changeset
425 CHARACTER_EXPRESSION_18 = 18,
Ritor1
parents:
diff changeset
426 CHARACTER_EXPRESSION_19 = 19,
Ritor1
parents:
diff changeset
427 CHARACTER_EXPRESSION_20 = 20,
Ritor1
parents:
diff changeset
428 CHARACTER_EXPRESSION_21 = 21,
Ritor1
parents:
diff changeset
429 CHARACTER_EXPRESSION_22 = 22,
Ritor1
parents:
diff changeset
430 CHARACTER_EXPRESSION_23 = 23,
Ritor1
parents:
diff changeset
431 CHARACTER_EXPRESSION_24 = 24,
Ritor1
parents:
diff changeset
432 CHARACTER_EXPRESSION_25 = 25,
Ritor1
parents:
diff changeset
433 CHARACTER_EXPRESSION_26 = 26,
Ritor1
parents:
diff changeset
434 CHARACTER_EXPRESSION_27 = 27,
Ritor1
parents:
diff changeset
435 CHARACTER_EXPRESSION_28 = 28,
Ritor1
parents:
diff changeset
436 CHARACTER_EXPRESSION_29 = 29,
Ritor1
parents:
diff changeset
437 CHARACTER_EXPRESSION_30 = 30,
Ritor1
parents:
diff changeset
438 CHARACTER_EXPRESSION_31 = 31,
Ritor1
parents:
diff changeset
439 CHARACTER_EXPRESSION_32 = 32,
Ritor1
parents:
diff changeset
440 CHARACTER_EXPRESSION_33 = 33,
Ritor1
parents:
diff changeset
441 CHARACTER_EXPRESSION_DMGRECVD_MINOR = 34,
Ritor1
parents:
diff changeset
442 CHARACTER_EXPRESSION_DMGRECVD_MODERATE = 35,
Ritor1
parents:
diff changeset
443 CHARACTER_EXPRESSION_DMGRECVD_MAJOR = 36,
Ritor1
parents:
diff changeset
444 CHARACTER_EXPRESSION_37 = 37,
Ritor1
parents:
diff changeset
445 CHARACTER_EXPRESSION_38 = 38,
Ritor1
parents:
diff changeset
446 CHARACTER_EXPRESSION_39 = 39,
Ritor1
parents:
diff changeset
447
Ritor1
parents:
diff changeset
448 // ?
Ritor1
parents:
diff changeset
449
Ritor1
parents:
diff changeset
450 CHARACTER_EXPRESSION_SCARED = 46, // like falling
Ritor1
parents:
diff changeset
451
Ritor1
parents:
diff changeset
452 CHARACTER_EXPRESSION_54 = 54,
Ritor1
parents:
diff changeset
453 CHARACTER_EXPRESSION_55 = 55,
Ritor1
parents:
diff changeset
454 CHARACTER_EXPRESSION_56 = 56,
Ritor1
parents:
diff changeset
455 CHARACTER_EXPRESSION_57 = 57,
Ritor1
parents:
diff changeset
456 CHARACTER_EXPRESSION_FALLING = 58,
Ritor1
parents:
diff changeset
457
Ritor1
parents:
diff changeset
458 // ?
Ritor1
parents:
diff changeset
459
Ritor1
parents:
diff changeset
460 CHARACTER_EXPRESSION_DEAD = 98,
Ritor1
parents:
diff changeset
461 CHARACTER_EXPRESSION_ERADICATED = 99,
Ritor1
parents:
diff changeset
462 };
Ritor1
parents:
diff changeset
463
Ritor1
parents:
diff changeset
464
Ritor1
parents:
diff changeset
465 enum PLAYER_SEX: unsigned __int8
Ritor1
parents:
diff changeset
466 {
Ritor1
parents:
diff changeset
467 SEX_MALE = 0,
Ritor1
parents:
diff changeset
468 SEX_FEMALE = 1
Ritor1
parents:
diff changeset
469 };
Ritor1
parents:
diff changeset
470
Ritor1
parents:
diff changeset
471 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
472 struct Player
Ritor1
parents:
diff changeset
473 {
Ritor1
parents:
diff changeset
474 static const unsigned int INVETORYSLOTSWIDTH = 14;
Ritor1
parents:
diff changeset
475 static const unsigned int INVETORYSLOTSHEIGHT = 9;
Ritor1
parents:
diff changeset
476
Ritor1
parents:
diff changeset
477
Ritor1
parents:
diff changeset
478 Player();
Ritor1
parents:
diff changeset
479
Ritor1
parents:
diff changeset
480 void SetVariable(enum VariableType var, signed int a3);
Ritor1
parents:
diff changeset
481 void AddVariable(enum VariableType var, signed int val);
Ritor1
parents:
diff changeset
482 void SubtractVariable(enum VariableType VarNum, signed int pValue);
Ritor1
parents:
diff changeset
483 bool CompareVariable(enum VariableType VarNum, signed int pValue);
Ritor1
parents:
diff changeset
484 void UseItem_DrinkPotion_etc(signed int a2, int a3);
Ritor1
parents:
diff changeset
485 bool AddItem(struct ItemGen *pItem);
Ritor1
parents:
diff changeset
486 int GetActualAttribute(CHARACTER_ATTRIBUTE_TYPE attrId, unsigned short Player::* attrValue, unsigned short Player::* attrBonus);
Ritor1
parents:
diff changeset
487 int GetBaseStrength();
Ritor1
parents:
diff changeset
488 int GetBaseIntelligence();
Ritor1
parents:
diff changeset
489 int GetBaseWillpower();
Ritor1
parents:
diff changeset
490 int GetBaseEndurance();
Ritor1
parents:
diff changeset
491 int GetBaseAccuracy();
Ritor1
parents:
diff changeset
492 int GetBaseSpeed();
Ritor1
parents:
diff changeset
493 int GetBaseLuck();
Ritor1
parents:
diff changeset
494 int GetBaseLevel();
Ritor1
parents:
diff changeset
495 int GetActualLevel();
Ritor1
parents:
diff changeset
496 int GetActualMight();
Ritor1
parents:
diff changeset
497 int GetActualIntelligence();
Ritor1
parents:
diff changeset
498 int GetActualWillpower();
Ritor1
parents:
diff changeset
499 int GetActualEndurance();
Ritor1
parents:
diff changeset
500 int GetActualAccuracy();
Ritor1
parents:
diff changeset
501 int GetActualSpeed();
Ritor1
parents:
diff changeset
502 int GetActualLuck();
Ritor1
parents:
diff changeset
503 int GetActualAttack(bool a2);
Ritor1
parents:
diff changeset
504 int GetMeleeDamageMinimal();
Ritor1
parents:
diff changeset
505 int GetMeleeDamageMaximal();
Ritor1
parents:
diff changeset
506 int CalculateMeleeDamageTo(bool ignoreSkillBonus, bool ignoreOffhand, unsigned int uTargetActorID);
Ritor1
parents:
diff changeset
507 int GetRangedAttack();
Ritor1
parents:
diff changeset
508 int GetRangedDamageMin();
Ritor1
parents:
diff changeset
509 int GetRangedDamageMax();
Ritor1
parents:
diff changeset
510 int CalculateRangedDamageTo(int a2);
Ritor1
parents:
diff changeset
511 char *GetMeleeDamageString();
Ritor1
parents:
diff changeset
512 char *GetRangedDamageString();
Ritor1
parents:
diff changeset
513 bool CanTrainToNextLevel();
Ritor1
parents:
diff changeset
514 unsigned int GetExperienceDisplayColor();
Ritor1
parents:
diff changeset
515 int CalculateIncommingDamage(DAMAGE_TYPE dmg_type, int amount);
Ritor1
parents:
diff changeset
516 ITEM_EQUIP_TYPE GetEquippedItemEquipType(ITEM_EQUIP_TYPE uEquipSlot);
Ritor1
parents:
diff changeset
517 PLAYER_SKILL_TYPE GetEquippedItemSkillType(ITEM_EQUIP_TYPE uEquipSlot);
Ritor1
parents:
diff changeset
518 bool IsUnarmed();
Ritor1
parents:
diff changeset
519 bool HasItemEquipped(ITEM_EQUIP_TYPE uEquipIndex);
Ritor1
parents:
diff changeset
520 bool HasEnchantedItemEquipped(int uEnchantment);
Ritor1
parents:
diff changeset
521 bool WearsItem(int item_id, ITEM_EQUIP_TYPE equip_type);
Ritor1
parents:
diff changeset
522 int StealFromShop( ItemGen *itemToSteal, int a3, int reputation, int a5, int *fineIfFailed);
Ritor1
parents:
diff changeset
523 int StealFromActor(unsigned int uActorID, int _steal_perm, int reputation);
Ritor1
parents:
diff changeset
524 void Heal(int amount);
Ritor1
parents:
diff changeset
525 int ReceiveDamage(signed int amount, DAMAGE_TYPE dmg_type);
Ritor1
parents:
diff changeset
526 int ReceiveSpecialAttackEffect(int attType, struct Actor *pActor);
Ritor1
parents:
diff changeset
527 unsigned int GetSpellSchool(unsigned int uSpellID);
Ritor1
parents:
diff changeset
528 int GetAttackRecoveryTime(bool bRangedAttack);
Ritor1
parents:
diff changeset
529 int GetMaxHealth();
Ritor1
parents:
diff changeset
530 int GetMaxMana();
Ritor1
parents:
diff changeset
531 int GetBaseAC();
Ritor1
parents:
diff changeset
532 int GetActualAC();
Ritor1
parents:
diff changeset
533 unsigned int GetBaseAge();
Ritor1
parents:
diff changeset
534 unsigned int GetActualAge();
Ritor1
parents:
diff changeset
535 int GetBaseResistance(enum CHARACTER_ATTRIBUTE_TYPE a2);
Ritor1
parents:
diff changeset
536 int GetActualResistance(enum CHARACTER_ATTRIBUTE_TYPE a2);
Ritor1
parents:
diff changeset
537 void SetRecoveryTime(signed int sRecoveryTime);
Ritor1
parents:
diff changeset
538 void RandomizeName();
Ritor1
parents:
diff changeset
539 unsigned int GetMajorConditionIdx();
Ritor1
parents:
diff changeset
540 int GetParameterBonus(int player_parameter);
Ritor1
parents:
diff changeset
541 int GetSpecialItemBonus(int enchantmentId);
Ritor1
parents:
diff changeset
542 int GetItemsBonus(enum CHARACTER_ATTRIBUTE_TYPE attr, bool a3 = false);
Ritor1
parents:
diff changeset
543 int GetMagicalBonus(enum CHARACTER_ATTRIBUTE_TYPE a2);
Ritor1
parents:
diff changeset
544 int GetActualSkillLevel(PLAYER_SKILL_TYPE uSkillType);
Ritor1
parents:
diff changeset
545 int GetSkillBonus(enum CHARACTER_ATTRIBUTE_TYPE a2);
Ritor1
parents:
diff changeset
546 enum CHARACTER_RACE GetRace();
Ritor1
parents:
diff changeset
547 PLAYER_SEX GetSexByVoice();
Ritor1
parents:
diff changeset
548 void SetInitialStats();
Ritor1
parents:
diff changeset
549 void SetSexByVoice();
Ritor1
parents:
diff changeset
550 void Reset(PLAYER_CLASS_TYPE classType);
Ritor1
parents:
diff changeset
551 PLAYER_SKILL_TYPE GetSkillIdxByOrder(signed int order);
Ritor1
parents:
diff changeset
552 void DecreaseAttribute(int eAttribute);
Ritor1
parents:
diff changeset
553 void IncreaseAttribute(int eAttribute);
Ritor1
parents:
diff changeset
554 void Player::Zero();
Ritor1
parents:
diff changeset
555 unsigned int GetStatColor(int uStat);
Ritor1
parents:
diff changeset
556 bool DiscardConditionIfLastsLongerThan(unsigned int uCondition, signed __int64 uTime);
Ritor1
parents:
diff changeset
557 int SelectPhrasesTransaction(ItemGen *pItem, int building_type, int BuildID_2Events, int a5);
Ritor1
parents:
diff changeset
558 int GetBodybuilding();
Ritor1
parents:
diff changeset
559 int GetMeditation();
Ritor1
parents:
diff changeset
560 bool CanIdentify(ItemGen *pItem);
Ritor1
parents:
diff changeset
561 bool CanRepair(ItemGen *pItem);
Ritor1
parents:
diff changeset
562 int GetMerchant();
Ritor1
parents:
diff changeset
563 int GetPerception();
Ritor1
parents:
diff changeset
564 int GetDisarmTrap();
Ritor1
parents:
diff changeset
565 char GetLearningPercent();
Ritor1
parents:
diff changeset
566 bool CanFitItem(unsigned int uSlot, unsigned int uItemID);
Ritor1
parents:
diff changeset
567 int FindFreeInventoryListSlot();
Ritor1
parents:
diff changeset
568 int CreateItemInInventory(unsigned int uSlot, unsigned int uItemID);
Ritor1
parents:
diff changeset
569 int HasSkill(unsigned int uSkillType);
Ritor1
parents:
diff changeset
570 void WearItem(unsigned int uItemID);
Ritor1
parents:
diff changeset
571 int AddItem(int uSlot, unsigned int uItemID);
Ritor1
parents:
diff changeset
572 int AddItem2(int uSlot, ItemGen *Src);
Ritor1
parents:
diff changeset
573 int CreateItemInInventory2(unsigned int index, ItemGen *Src);
Ritor1
parents:
diff changeset
574 void PutItemArInventoryIndex(int uItemID, int itemListPos, int uSlot);
Ritor1
parents:
diff changeset
575 void RemoveItemAtInventoryIndex(unsigned int uSlot);
Ritor1
parents:
diff changeset
576 bool CanAct();
Ritor1
parents:
diff changeset
577 bool CanSteal();
Ritor1
parents:
diff changeset
578 bool CanEquip_RaceAndAlignmentCheck(unsigned int uItemID);
Ritor1
parents:
diff changeset
579 void SetCondition(unsigned int uConditionIdx, int a3);
Ritor1
parents:
diff changeset
580 bool ProfessionOrGuildFlagsCorrect(unsigned int uClass, int a3);
Ritor1
parents:
diff changeset
581 void PlaySound(PlayerSpeech speech, int a3);
Ritor1
parents:
diff changeset
582 void PlayEmotion(CHARACTER_EXPRESSION_ID expression, int a3);
Ritor1
parents:
diff changeset
583 void ItemsEnchant(int enchant_count);
Ritor1
parents:
diff changeset
584 unsigned int GetItemIDAtInventoryIndex(int *a2);
Ritor1
parents:
diff changeset
585 bool IsPlayerHealableByTemple();
Ritor1
parents:
diff changeset
586 int GetBaseIdentifyPrice(float a2);
Ritor1
parents:
diff changeset
587 int GetBaseRepairPrice(int a2, float a3);
Ritor1
parents:
diff changeset
588 int GetBaseBuyingPrice(int a2, float a3);
Ritor1
parents:
diff changeset
589 int GetBaseSellingPrice(int a2, float a3);
Ritor1
parents:
diff changeset
590 int GetPriceRepair(int a2, float a3);
Ritor1
parents:
diff changeset
591 int GetPriceIdentification(float a2);
Ritor1
parents:
diff changeset
592 int GetBuyingPrice(unsigned int uRealValue, float price_multiplier);
Ritor1
parents:
diff changeset
593 int GetPriceSell(int uRealValue, float price_multiplier);
Ritor1
parents:
diff changeset
594 int GetTempleHealCostModifier(float a2);
Ritor1
parents:
diff changeset
595 int GetConditionDayOfWeek(unsigned int uCondition);
Ritor1
parents:
diff changeset
596 bool NothingOrJustBlastersEquipped();
Ritor1
parents:
diff changeset
597 void SalesProcess(unsigned int inventory_idnx, int item_index, int _2devent_idx);//0x4BE2DD
Ritor1
parents:
diff changeset
598 bool Recover(signed int a2);
Ritor1
parents:
diff changeset
599 bool CanCastSpell(unsigned int uRequiredMana);
Ritor1
parents:
diff changeset
600 void PlayAwardSound();
Ritor1
parents:
diff changeset
601 void EquipBody(ITEM_EQUIP_TYPE uEquipType);
Ritor1
parents:
diff changeset
602 bool HasUnderwaterSuitEquipped();
Ritor1
parents:
diff changeset
603 bool HasItem(unsigned int uItemID, bool checkHeldItem);
Ritor1
parents:
diff changeset
604 void OnInventoryLeftClick();
Ritor1
parents:
diff changeset
605
Ritor1
parents:
diff changeset
606 bool PlayerHitOrMiss(Actor *pActor, int a3, int a4);
Ritor1
parents:
diff changeset
607
Ritor1
parents:
diff changeset
608 unsigned int GetMultiplierForSkillLevel(unsigned int skillValue, int mult1, int mult2, int mult3, int mult4);
Ritor1
parents:
diff changeset
609 int CalculateMeleeDmgToEnemyWithWeapon( ItemGen * weapon, unsigned int uTargetActorID , bool addOneDice);
Ritor1
parents:
diff changeset
610 bool WearsItemAnyWhere(int item_id);
Ritor1
parents:
diff changeset
611 float GetArmorRecoveryMultiplierFromSkillLevel( unsigned char armour_skill_type, float param2, float param3, float param4, float param5 );
Ritor1
parents:
diff changeset
612 void SetSkillByEvent(unsigned __int16 Player::* skillToSet, unsigned __int16 skillValue);
Ritor1
parents:
diff changeset
613 void AddSkillByEvent( unsigned __int16 Player::* skillToSet, unsigned __int16 addSkillValue);
Ritor1
parents:
diff changeset
614 void PlayAwardSound_Anim();
Ritor1
parents:
diff changeset
615 void PlayAwardSound_Anim_Face(PlayerSpeech speech);
Ritor1
parents:
diff changeset
616 void PlayAwardSound_Anim97();
Ritor1
parents:
diff changeset
617 void PlayAwardSound_Anim97_Face(PlayerSpeech speech);
Ritor1
parents:
diff changeset
618 void PlayAwardSound_Anim98();
Ritor1
parents:
diff changeset
619 void PlayAwardSound_Anim98_Face(PlayerSpeech speech);
Ritor1
parents:
diff changeset
620
Ritor1
parents:
diff changeset
621 bool IsWeak();
Ritor1
parents:
diff changeset
622 bool IsDead();
Ritor1
parents:
diff changeset
623 bool IsEradicated();
Ritor1
parents:
diff changeset
624 bool IsZombie();
Ritor1
parents:
diff changeset
625 bool IsCursed();
Ritor1
parents:
diff changeset
626 bool IsPertified();
Ritor1
parents:
diff changeset
627 bool IsUnconcious();
Ritor1
parents:
diff changeset
628 bool IsAsleep();
Ritor1
parents:
diff changeset
629 bool IsParalyzed();
Ritor1
parents:
diff changeset
630 bool IsDrunk();
Ritor1
parents:
diff changeset
631
Ritor1
parents:
diff changeset
632 void SetCursed(unsigned long long state);
Ritor1
parents:
diff changeset
633 void SetWeak(unsigned long long state);
Ritor1
parents:
diff changeset
634 void SetAsleep(unsigned long long state);
Ritor1
parents:
diff changeset
635 void SetAfraid(unsigned long long state);
Ritor1
parents:
diff changeset
636 void SetDrunk(unsigned long long state);
Ritor1
parents:
diff changeset
637 void SetInsane(unsigned long long state);
Ritor1
parents:
diff changeset
638 void SetPoisonWeak(unsigned long long state);
Ritor1
parents:
diff changeset
639 void SetDiseaseWeak(unsigned long long state);
Ritor1
parents:
diff changeset
640 void SetPoisonMedium(unsigned long long state);
Ritor1
parents:
diff changeset
641 void SetDiseaseMedium(unsigned long long state);
Ritor1
parents:
diff changeset
642 void SetPoisonSevere(unsigned long long state);
Ritor1
parents:
diff changeset
643 void SetDiseaseSevere(unsigned long long state);
Ritor1
parents:
diff changeset
644 void SetParalyzed(unsigned long long state);
Ritor1
parents:
diff changeset
645 void SetUnconcious(unsigned long long state);
Ritor1
parents:
diff changeset
646 void SetDead(unsigned long long state);
Ritor1
parents:
diff changeset
647 void SetPertified(unsigned long long state);
Ritor1
parents:
diff changeset
648 void SetEradicated(unsigned long long state);
Ritor1
parents:
diff changeset
649 void SetZombie(unsigned long long state);
Ritor1
parents:
diff changeset
650
Ritor1
parents:
diff changeset
651 void SetCondWeakWithBlockCheck (int blockable);
Ritor1
parents:
diff changeset
652 void SetCondInsaneWithBlockCheck (int blockable);
Ritor1
parents:
diff changeset
653 void SetCondDeadWithBlockCheck (int blockable);
Ritor1
parents:
diff changeset
654 void SetCondUnconsciousWithBlockCheck( int blockable );
Ritor1
parents:
diff changeset
655
Ritor1
parents:
diff changeset
656 inline bool IsRaceHuman() {return GetRace() == CHARACTER_RACE_HUMAN;}
Ritor1
parents:
diff changeset
657 inline bool IsRaceDwarf() {return GetRace() == CHARACTER_RACE_DWARF;}
Ritor1
parents:
diff changeset
658 inline bool IsRaceElf() {return GetRace() == CHARACTER_RACE_ELF;}
Ritor1
parents:
diff changeset
659 inline bool IsRaceGoblin() {return GetRace() == CHARACTER_RACE_GOBLIN;}
Ritor1
parents:
diff changeset
660
Ritor1
parents:
diff changeset
661 inline bool IsMale() { return GetSexByVoice() == SEX_MALE;}
Ritor1
parents:
diff changeset
662 inline bool IsFemale() { return !IsMale();}
Ritor1
parents:
diff changeset
663
Ritor1
parents:
diff changeset
664 ItemGen* GetMainHandItem();
Ritor1
parents:
diff changeset
665 ItemGen* GetOffHandItem();
Ritor1
parents:
diff changeset
666 ItemGen* GetBowItem();
Ritor1
parents:
diff changeset
667 ItemGen* GetArmorItem();
Ritor1
parents:
diff changeset
668 ItemGen* GetHelmItem();
Ritor1
parents:
diff changeset
669 ItemGen* GetBeltItem();
Ritor1
parents:
diff changeset
670 ItemGen* GetCloakItem();
Ritor1
parents:
diff changeset
671 ItemGen* GetGloveItem();
Ritor1
parents:
diff changeset
672 ItemGen* GetBootItem();
Ritor1
parents:
diff changeset
673 ItemGen* GetAmuletItem();
Ritor1
parents:
diff changeset
674 ItemGen* GetNthRingItem(int ringNum);
Ritor1
parents:
diff changeset
675 ItemGen* GetNthEquippedIndexItem(int index);
Ritor1
parents:
diff changeset
676 ItemGen* GetItem(unsigned int PlayerEquipment::* itemPos);
Ritor1
parents:
diff changeset
677 int GetPlayerIndex();
Ritor1
parents:
diff changeset
678
Ritor1
parents:
diff changeset
679 static void _42ECB5_PlayerAttacksActor();
Ritor1
parents:
diff changeset
680 static void _42FA66_do_explosive_impact(int a1, int a2, int a3, int a4, __int16 a5, signed int a6);
Ritor1
parents:
diff changeset
681
Ritor1
parents:
diff changeset
682 std::array<__int64, 20> pConditions;
Ritor1
parents:
diff changeset
683 unsigned __int64 uExperience;
Ritor1
parents:
diff changeset
684 char pName[16];
Ritor1
parents:
diff changeset
685 PLAYER_SEX uSex;
Ritor1
parents:
diff changeset
686 PLAYER_CLASS_TYPE classType;
Ritor1
parents:
diff changeset
687 unsigned __int8 uCurrentFace;
Ritor1
parents:
diff changeset
688 char field_BB;
Ritor1
parents:
diff changeset
689 unsigned __int16 uMight;
Ritor1
parents:
diff changeset
690 unsigned __int16 uMightBonus;
Ritor1
parents:
diff changeset
691 unsigned __int16 uIntelligence;
Ritor1
parents:
diff changeset
692 unsigned __int16 uIntelligenceBonus;
Ritor1
parents:
diff changeset
693 unsigned __int16 uWillpower;
Ritor1
parents:
diff changeset
694 unsigned __int16 uWillpowerBonus;
Ritor1
parents:
diff changeset
695 unsigned __int16 uEndurance;
Ritor1
parents:
diff changeset
696 unsigned __int16 uEnduranceBonus;
Ritor1
parents:
diff changeset
697 unsigned __int16 uSpeed;
Ritor1
parents:
diff changeset
698 unsigned __int16 uSpeedBonus;
Ritor1
parents:
diff changeset
699 unsigned __int16 uAccuracy;
Ritor1
parents:
diff changeset
700 unsigned __int16 uAccuracyBonus;
Ritor1
parents:
diff changeset
701 unsigned __int16 uLuck;
Ritor1
parents:
diff changeset
702 unsigned __int16 uLuckBonus;
Ritor1
parents:
diff changeset
703 __int16 sACModifier;
Ritor1
parents:
diff changeset
704 unsigned __int16 uLevel;
Ritor1
parents:
diff changeset
705 __int16 sLevelModifier;
Ritor1
parents:
diff changeset
706 __int16 sAgeModifier;
Ritor1
parents:
diff changeset
707 int field_E0;
Ritor1
parents:
diff changeset
708 int field_E4;
Ritor1
parents:
diff changeset
709 int field_E8;
Ritor1
parents:
diff changeset
710 int field_EC;
Ritor1
parents:
diff changeset
711 int field_F0;
Ritor1
parents:
diff changeset
712 int field_F4;
Ritor1
parents:
diff changeset
713 int field_F8;
Ritor1
parents:
diff changeset
714 int field_FC;
Ritor1
parents:
diff changeset
715 int field_100;
Ritor1
parents:
diff changeset
716 int field_104;
Ritor1
parents:
diff changeset
717 union
Ritor1
parents:
diff changeset
718 {
Ritor1
parents:
diff changeset
719 struct
Ritor1
parents:
diff changeset
720 {
Ritor1
parents:
diff changeset
721 unsigned __int16 skillStaff;
Ritor1
parents:
diff changeset
722 unsigned __int16 skillSword;
Ritor1
parents:
diff changeset
723 unsigned __int16 skillDagger;
Ritor1
parents:
diff changeset
724 unsigned __int16 skillAxe;
Ritor1
parents:
diff changeset
725 unsigned __int16 skillSpear;
Ritor1
parents:
diff changeset
726 unsigned __int16 skillBow;
Ritor1
parents:
diff changeset
727 unsigned __int16 skillMace;
Ritor1
parents:
diff changeset
728 unsigned __int16 skillBlaster;
Ritor1
parents:
diff changeset
729 unsigned __int16 skillShield;
Ritor1
parents:
diff changeset
730 unsigned __int16 skillLeather;
Ritor1
parents:
diff changeset
731 unsigned __int16 skillChain;
Ritor1
parents:
diff changeset
732 unsigned __int16 skillPlate;
Ritor1
parents:
diff changeset
733 unsigned __int16 skillFire;
Ritor1
parents:
diff changeset
734 unsigned __int16 skillAir;
Ritor1
parents:
diff changeset
735 unsigned __int16 skillWater;
Ritor1
parents:
diff changeset
736 unsigned __int16 skillEarth;
Ritor1
parents:
diff changeset
737 unsigned __int16 skillSpirit;
Ritor1
parents:
diff changeset
738 unsigned __int16 skillMind;
Ritor1
parents:
diff changeset
739 unsigned __int16 skillBody;
Ritor1
parents:
diff changeset
740 unsigned __int16 skillLight;
Ritor1
parents:
diff changeset
741 unsigned __int16 skillDark;
Ritor1
parents:
diff changeset
742 unsigned __int16 skillItemId;
Ritor1
parents:
diff changeset
743 unsigned __int16 skillMerchant;
Ritor1
parents:
diff changeset
744 unsigned __int16 skillRepair;
Ritor1
parents:
diff changeset
745 unsigned __int16 skillBodybuilding;
Ritor1
parents:
diff changeset
746 unsigned __int16 skillMeditation;
Ritor1
parents:
diff changeset
747 unsigned __int16 skillPerception;
Ritor1
parents:
diff changeset
748 unsigned __int16 skillDiplomacy;
Ritor1
parents:
diff changeset
749 unsigned __int16 skillThievery;
Ritor1
parents:
diff changeset
750 unsigned __int16 skillDisarmTrap;
Ritor1
parents:
diff changeset
751 unsigned __int16 skillDodge;
Ritor1
parents:
diff changeset
752 unsigned __int16 skillUnarmed;
Ritor1
parents:
diff changeset
753 unsigned __int16 skillMonsterId;
Ritor1
parents:
diff changeset
754 unsigned __int16 skillArmsmaster;
Ritor1
parents:
diff changeset
755 unsigned __int16 skillStealing;
Ritor1
parents:
diff changeset
756 unsigned __int16 skillAlchemy;
Ritor1
parents:
diff changeset
757 unsigned __int16 skillLearning;
Ritor1
parents:
diff changeset
758 };
Ritor1
parents:
diff changeset
759 std::array<unsigned __int16, 37> pActiveSkills;
Ritor1
parents:
diff changeset
760 };
Ritor1
parents:
diff changeset
761 unsigned char _achieved_awards_bits[64];
Ritor1
parents:
diff changeset
762 PlayerSpells spellbook;
Ritor1
parents:
diff changeset
763 char field__1F5[2]; // used to be [31]
Ritor1
parents:
diff changeset
764 int pure_luck_used;
Ritor1
parents:
diff changeset
765 int pure_speed_used;
Ritor1
parents:
diff changeset
766 int pure_intellect_used;
Ritor1
parents:
diff changeset
767 int pure_endurance_used;
Ritor1
parents:
diff changeset
768 int pure_willpower_used;
Ritor1
parents:
diff changeset
769 int pure_accuracy_used;
Ritor1
parents:
diff changeset
770 int pure_might_used;
Ritor1
parents:
diff changeset
771 union //214h
Ritor1
parents:
diff changeset
772 {
Ritor1
parents:
diff changeset
773 struct
Ritor1
parents:
diff changeset
774 {
Ritor1
parents:
diff changeset
775 std::array<ItemGen, 126> pInventoryItemList;
Ritor1
parents:
diff changeset
776 std::array<ItemGen, 12> pEquippedItems;
Ritor1
parents:
diff changeset
777 };
Ritor1
parents:
diff changeset
778 std::array<ItemGen, 138> pOwnItems;
Ritor1
parents:
diff changeset
779 };
Ritor1
parents:
diff changeset
780
Ritor1
parents:
diff changeset
781 std::array<int, 126> pInventoryMatrix;
Ritor1
parents:
diff changeset
782 __int16 sResFireBase;
Ritor1
parents:
diff changeset
783 __int16 sResAirBase;
Ritor1
parents:
diff changeset
784 __int16 sResWaterBase;
Ritor1
parents:
diff changeset
785 __int16 sResEarthBase;
Ritor1
parents:
diff changeset
786 __int16 field_177C;
Ritor1
parents:
diff changeset
787 __int16 sResMagicBase;
Ritor1
parents:
diff changeset
788 __int16 sResSpiritBase;
Ritor1
parents:
diff changeset
789 __int16 sResMindBase;
Ritor1
parents:
diff changeset
790 __int16 sResBodyBase;
Ritor1
parents:
diff changeset
791 __int16 sResLightBase;
Ritor1
parents:
diff changeset
792 __int16 sResDarkBase;
Ritor1
parents:
diff changeset
793 __int16 sResFireBonus;
Ritor1
parents:
diff changeset
794 __int16 sResAirBonus;
Ritor1
parents:
diff changeset
795 __int16 sResWaterBonus;
Ritor1
parents:
diff changeset
796 __int16 sResEarthBonus;
Ritor1
parents:
diff changeset
797 __int16 field_1792;
Ritor1
parents:
diff changeset
798 __int16 sResMagicBonus;
Ritor1
parents:
diff changeset
799 __int16 sResSpiritBonus;
Ritor1
parents:
diff changeset
800 __int16 sResMindBonus;
Ritor1
parents:
diff changeset
801 __int16 sResBodyBonus;
Ritor1
parents:
diff changeset
802 __int16 sResLightBonus;
Ritor1
parents:
diff changeset
803 __int16 sResDarkBonus;
Ritor1
parents:
diff changeset
804 std::array<SpellBuff, 24> pPlayerBuffs;
Ritor1
parents:
diff changeset
805 unsigned int uVoiceID;
Ritor1
parents:
diff changeset
806 int uPrevVoiceID;
Ritor1
parents:
diff changeset
807 int uPrevFace;
Ritor1
parents:
diff changeset
808 int field_192C;
Ritor1
parents:
diff changeset
809 int field_1930;
Ritor1
parents:
diff changeset
810 unsigned __int16 uTimeToRecovery;
Ritor1
parents:
diff changeset
811 char field_1936;
Ritor1
parents:
diff changeset
812 char field_1937;
Ritor1
parents:
diff changeset
813 unsigned int uSkillPoints;
Ritor1
parents:
diff changeset
814 int sHealth;
Ritor1
parents:
diff changeset
815 int sMana;
Ritor1
parents:
diff changeset
816 unsigned int uBirthYear;
Ritor1
parents:
diff changeset
817 PlayerEquipment pEquipment;
Ritor1
parents:
diff changeset
818 int field_1988[49];
Ritor1
parents:
diff changeset
819 char field_1A4C;
Ritor1
parents:
diff changeset
820 char field_1A4D;
Ritor1
parents:
diff changeset
821 char lastOpenedSpellbookPage;
Ritor1
parents:
diff changeset
822 unsigned __int8 uQuickSpell;
Ritor1
parents:
diff changeset
823 char playerEventBits[64];
Ritor1
parents:
diff changeset
824 char _some_attack_bonus;
Ritor1
parents:
diff changeset
825 char field_1A91;
Ritor1
parents:
diff changeset
826 char _melee_dmg_bonus;
Ritor1
parents:
diff changeset
827 char field_1A93;
Ritor1
parents:
diff changeset
828 char _ranged_atk_bonus;
Ritor1
parents:
diff changeset
829 char field_1A95;
Ritor1
parents:
diff changeset
830 char _ranged_dmg_bonus;
Ritor1
parents:
diff changeset
831 char field_1A97;
Ritor1
parents:
diff changeset
832 char uFullHealthBonus;
Ritor1
parents:
diff changeset
833 char _health_related;
Ritor1
parents:
diff changeset
834 char uFullManaBonus;
Ritor1
parents:
diff changeset
835 char _mana_related;
Ritor1
parents:
diff changeset
836 CHARACTER_EXPRESSION_ID expression;
Ritor1
parents:
diff changeset
837 unsigned __int16 uExpressionTimePassed;
Ritor1
parents:
diff changeset
838 unsigned __int16 uExpressionTimeLength;
Ritor1
parents:
diff changeset
839 __int16 field_1AA2;
Ritor1
parents:
diff changeset
840 int _expression21_animtime;
Ritor1
parents:
diff changeset
841 int _expression21_frameset;
Ritor1
parents:
diff changeset
842 std::array<LloydBeacon, 5> pInstalledBeacons;
Ritor1
parents:
diff changeset
843 char uNumDivineInterventionCastsThisDay;
Ritor1
parents:
diff changeset
844 char uNumArmageddonCasts;
Ritor1
parents:
diff changeset
845 char uNumFireSpikeCasts;
Ritor1
parents:
diff changeset
846 char field_1B3B;
Ritor1
parents:
diff changeset
847 };
Ritor1
parents:
diff changeset
848 #pragma pack(pop)
Ritor1
parents:
diff changeset
849
Ritor1
parents:
diff changeset
850 void __fastcall DamagePlayerFromMonster(unsigned int uObjID, int a2, struct Vec3_int_ *pPos, signed int a4);
Ritor1
parents:
diff changeset
851 bool IsDwarfPresentInParty(bool b);
Ritor1
parents:
diff changeset
852 bool ShouldLoadTexturesForRaceAndGender(unsigned int _this);
Ritor1
parents:
diff changeset
853 int PlayerCreation_GetUnspentAttributePointCount();
Ritor1
parents:
diff changeset
854 int CycleCharacter(bool backwards);
Ritor1
parents:
diff changeset
855 unsigned int SkillToMastery(unsigned int skill_value);
Ritor1
parents:
diff changeset
856
Ritor1
parents:
diff changeset
857 extern NZIArray<struct Player *, 5> pPlayers;