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