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

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