World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Файл Player.h

См. исходные тексты.

Классы

struct  LloydBeacon
 
struct  PlayerSpellbookChapter
 
struct  PlayerSpells
 
union  PlayerEquipment
 
struct  Player
 

Перечисления

enum  PLAYER_BUFFS {
  PLAYER_BUFF_RESIST_AIR = 0, PLAYER_BUFF_BLESS = 1, PLAYER_BUFF_RESIST_BODY = 2, PLAYER_BUFF_RESIST_EARTH = 3,
  PLAYER_BUFF_FATE = 4, PLAYER_BUFF_RESIST_FIRE = 5, PLAYER_BUFF_HAMMERHANDS = 6, PLAYER_BUFF_HASTE = 7,
  PLAYER_BUFF_HEROISM = 8, PLAYER_BUFF_RESIST_MIND = 9, PLAYER_BUFF_PAIN_REFLECTION = 10, PLAYER_BUFF_PRESERVATION = 11,
  PLAYER_BUFF_REGENERATION = 12, PLAYER_BUFF_SHIELD = 13, PLAYER_BUFF_STONESKIN = 14, PLAYER_BUFF_ACCURACY = 15,
  PLAYER_BUFF_ENDURANCE = 16, PLAYER_BUFF_INTELLIGENCE = 17, PLAYER_BUFF_LUCK = 18, PLAYER_BUFF_STRENGTH = 19,
  PLAYER_BUFF_WILLPOWER = 20, PLAYER_BUFF_SPEED = 21, PLAYER_BUFF_RESIST_WATER = 22, PLAYER_BUFF_WATER_WALK = 23
}
 
enum  PlayerSpeech {
  SPEECH_1 = 1, SPEECH_2 = 2, SPEECH_3 = 3, SPEECH_4 = 4,
  SPEECH_5 = 5, SPEECH_6 = 6, SPEECH_7 = 7, SPEECH_8 = 8,
  SPEECH_9 = 9, SPEECH_10 = 10, SPEECH_11 = 11, SPEECH_12 = 12,
  SPEECH_CantRestHere = 13, SPEECH_14 = 14, SPEECH_NoRoom = 15, SPEECH_DO_POTION_FINE = 16,
  SPEECH_17 = 17, SPEECH_18 = 18, SPEECH_19 = 19, SPEECH_20 = 20,
  SPEECH_21 = 21, SPEECH_GoodDay = 22, SPEECH_GoodEvening = 23, SPEECH_24 = 24,
  SPEECH_25 = 25, SPEECH_26 = 26, SPEECH_27 = 27, SPEECH_28 = 28,
  SPEECH_29 = 29, SPEECH_30 = 30, SPEECH_31 = 31, SPEECH_32 = 32,
  SPEECH_33 = 33, SPEECH_34 = 34, SPEECH_35 = 35, SPEECH_36 = 36,
  SPEECH_37 = 37, SPEECH_NotEnoughGold = 38, SPEECH_39 = 39, SPEECH_40 = 40,
  SPEECH_41 = 41, SPEECH_42 = 42, SPEECH_43 = 43, SPEECH_44 = 44,
  SPEECH_45 = 45, SPEECH_46 = 46, SPEECH_47 = 47, SPEECH_48 = 48,
  SPEECH_49 = 49, SPEECH_50 = 50, SPEECH_51 = 51, SPEECH_52 = 52,
  SPEECH_53 = 53, SPEECH_54 = 54, SPEECH_55 = 55, SPEECH_56 = 56,
  SPEECH_57 = 57, SPEECH_58 = 58, SPEECH_59 = 59, SPEECH_60 = 60,
  SPEECH_61 = 61, SPEECH_62 = 62, SPEECH_63 = 63, SPEECH_64 = 64,
  SPEECH_Yell = 65, SPEECH_Falling_scream = 66, SPEECH_67 = 67, SPEECH_68 = 68,
  SPEECH_69 = 69, SPEECH_70 = 70, SPEECH_CarriageReady = 71, SPEECH_SetSail = 72,
  SPEECH_73 = 73, SPEECH_74 = 74, SPEECH_75 = 75, SPEECH_76 = 76,
  SPEECH_77 = 77, SPEECH_78 = 78, SPEECH_79 = 79, SPEECH_80 = 80,
  SPEECH_81 = 81, SPEECH_82 = 82, SPEECH_83 = 83, SPEECH_84 = 84,
  SPEECH_85 = 85, SPEECH_86 = 86, SPEECH_87 = 87, SPEECH_88 = 88,
  SPEECH_89 = 89, SPEECH_90 = 90, SPEECH_91 = 91, SPEECH_92 = 92,
  SPEECH_93 = 93, SPEECH_94 = 94, SPEECH_95 = 95, SPEECH_96 = 96,
  SPEECH_97 = 97, SPEECH_98 = 98, SPEECH_99 = 99, SPEECH_100 = 100,
  SPEECH_101 = 101, SPEECH_PickMe = 102, SPEECH_103 = 103, SPEECH_IDENTIFY_MONSTER_WEAKER = 104,
  SPEECH_IDENTIFY_MONSTER_STRONGER = 105, SPEECH_IDENTIFY_MONSTER_106 = 106, SPEECH_107 = 107, SPEECH_108 = 108,
  SPEECH_109 = 109, SPEECH_110 = 110
}
 
enum  CHARACTER_RACE { CHARACTER_RACE_HUMAN = 0, CHARACTER_RACE_ELF = 1, CHARACTER_RACE_GOBLIN = 2, CHARACTER_RACE_DWARF = 3 }
 
enum  PLAYER_SKILL_TYPE : signed __int8 {
  PLAYER_SKILL_STAFF = 0, PLAYER_SKILL_SWORD = 1, PLAYER_SKILL_DAGGER = 2, PLAYER_SKILL_AXE = 3,
  PLAYER_SKILL_SPEAR = 4, PLAYER_SKILL_BOW = 5, PLAYER_SKILL_MACE = 6, PLAYER_SKILL_BLASTER = 7,
  PLAYER_SKILL_SHIELD = 8, PLAYER_SKILL_LEATHER = 9, PLAYER_SKILL_CHAIN = 10, PLAYER_SKILL_PLATE = 11,
  PLAYER_SKILL_FIRE = 12, PLAYER_SKILL_AIR = 13, PLAYER_SKILL_WATER = 14, PLAYER_SKILL_EARTH = 15,
  PLAYER_SKILL_SPIRIT = 16, PLAYER_SKILL_MIND = 17, PLAYER_SKILL_BODY = 18, PLAYER_SKILL_LIGHT = 19,
  PLAYER_SKILL_DARK = 20, PLAYER_SKILL_ITEM_ID = 21, PLAYER_SKILL_MERCHANT = 22, PLAYER_SKILL_REPAIR = 23,
  PLAYER_SKILL_BODYBUILDING = 24, PLAYER_SKILL_MEDITATION = 25, PLAYER_SKILL_PERCEPTION = 26, PLAYER_SKILL_DIPLOMACY = 27,
  PLAYER_SKILL_TIEVERY = 28, PLAYER_SKILL_TRAP_DISARM = 29, PLAYER_SKILL_DODGE = 30, PLAYER_SKILL_UNARMED = 31,
  PLAYER_SKILL_MONSTER_ID = 32, PLAYER_SKILL_ARMSMASTER = 33, PLAYER_SKILL_STEALING = 34, PLAYER_SKILL_ALCHEMY = 35,
  PLAYER_SKILL_LEARNING = 36, PLAYER_SKILL_CLUB = 37, PLAYER_SKILL_MISC = 38, PLAYER_SKILL_INVALID = -1
}
 
enum  PLAYER_CLASS_TYPE : unsigned __int8 {
  PLAYER_CLASS_KNIGHT = 0, PLAYER_CLASS_CHEVALIER = 1, PLAYER_CLASS_CHAMPION = 2, PLAYER_CLASS_BLACK_KNIGHT = 3,
  PLAYER_CLASS_THEIF = 4, PLAYER_CLASS_ROGUE = 5, PLAYER_CLASS_SPY = 6, PLAYER_CLASS_ASSASSIN = 7,
  PLAYER_CLASS_MONK = 8, PLAYER_CLASS_INITIATE = 9, PLAYER_CLASS_MASTER = 10, PLAYER_CLASS_NINJA = 11,
  PLAYER_CLASS_PALADIN = 12, PLAYER_CLASS_CRUSADER = 13, PLAYER_CLASS_HERO = 14, PLAYER_CLASS_VILLIAN = 15,
  PLAYER_CLASS_ARCHER = 16, PLAYER_CLASS_WARRIOR_MAGE = 17, PLAYER_CLASS_MASTER_ARCHER = 18, PLAYER_CLASS_SNIPER = 19,
  PLAYER_CLASS_RANGER = 20, PLAYER_CLASS_HUNTER = 21, PLAYER_CLASS_RANGER_LORD = 22, PLAYER_CLASS_BOUNTY_HUNTER = 23,
  PLAYER_CLASS_CLERIC = 24, PLAYER_CLASS_PRIEST = 25, PLAYER_CLASS_PRIEST_OF_SUN = 26, PLAYER_CLASS_PRIEST_OF_MOON = 27,
  PLAYER_CLASS_DRUID = 28, PLAYER_CLASS_GREAT_DRUID = 29, PLAYER_CLASS_ARCH_DRUID = 30, PLAYER_CLASS_WARLOCK = 31,
  PLAYER_CLASS_SORCERER = 32, PLAYER_CLASS_WIZARD = 33, PLAYER_CLASS_ARCHMAGE = 34, PLAYER_CLASS_LICH = 35
}
 
enum  CHARACTER_EXPRESSION_ID : unsigned __int16 {
  CHARACTER_EXPRESSION_INVALID = 0, CHARACTER_EXPRESSION_1 = 1, CHARACTER_EXPRESSION_CURSED = 2, CHARACTER_EXPRESSION_WEAK = 3,
  CHARACTER_EXPRESSION_SLEEP = 4, CHARACTER_EXPRESSION_FEAR = 5, CHARACTER_EXPRESSION_DRUNK = 6, CHARACTER_EXPRESSION_INSANE = 7,
  CHARACTER_EXPRESSION_POISONED = 8, CHARACTER_EXPRESSION_DISEASED = 9, CHARACTER_EXPRESSION_PARALYZED = 10, CHARACTER_EXPRESSION_UNCONCIOUS = 11,
  CHARACTER_EXPRESSION_PERTIFIED = 12, CHARACTER_EXPRESSION_13 = 13, CHARACTER_EXPRESSION_14 = 14, CHARACTER_EXPRESSION_15 = 15,
  CHARACTER_EXPRESSION_16 = 16, CHARACTER_EXPRESSION_17 = 17, CHARACTER_EXPRESSION_18 = 18, CHARACTER_EXPRESSION_19 = 19,
  CHARACTER_EXPRESSION_20 = 20, CHARACTER_EXPRESSION_21 = 21, CHARACTER_EXPRESSION_22 = 22, CHARACTER_EXPRESSION_23 = 23,
  CHARACTER_EXPRESSION_24 = 24, CHARACTER_EXPRESSION_25 = 25, CHARACTER_EXPRESSION_26 = 26, CHARACTER_EXPRESSION_27 = 27,
  CHARACTER_EXPRESSION_28 = 28, CHARACTER_EXPRESSION_29 = 29, CHARACTER_EXPRESSION_30 = 30, CHARACTER_EXPRESSION_31 = 31,
  CHARACTER_EXPRESSION_32 = 32, CHARACTER_EXPRESSION_33 = 33, CHARACTER_EXPRESSION_DMGRECVD_MINOR = 34, CHARACTER_EXPRESSION_DMGRECVD_MODERATE = 35,
  CHARACTER_EXPRESSION_DMGRECVD_MAJOR = 36, CHARACTER_EXPRESSION_37 = 37, CHARACTER_EXPRESSION_38 = 38, CHARACTER_EXPRESSION_39 = 39,
  CHARACTER_EXPRESSION_SCARED = 46, CHARACTER_EXPRESSION_54 = 54, CHARACTER_EXPRESSION_55 = 55, CHARACTER_EXPRESSION_56 = 56,
  CHARACTER_EXPRESSION_57 = 57, CHARACTER_EXPRESSION_FALLING = 58, CHARACTER_EXPRESSION_DEAD = 98, CHARACTER_EXPRESSION_ERADICATED = 99
}
 
enum  PLAYER_SEX : uint8_t { SEX_MALE = 0, SEX_FEMALE = 1 }
 

Функции

void DamagePlayerFromMonster (unsigned int uObjID, int a2, struct Vec3_int_ *pPos, signed int a4)
 
bool IsDwarfPresentInParty (bool b)
 
bool ShouldLoadTexturesForRaceAndGender (unsigned int _this)
 
int PlayerCreation_GetUnspentAttributePointCount ()
 
int CycleCharacter (bool backwards)
 
unsigned int SkillToMastery (unsigned int skill_value)
 

Переменные

NZIArray< struct Player *, 5 > pPlayers
 
enum PlayerSpeech PlayerSpeechID
 

Перечисления

◆ PLAYER_BUFFS

Элементы перечислений
PLAYER_BUFF_RESIST_AIR 
PLAYER_BUFF_BLESS 
PLAYER_BUFF_RESIST_BODY 
PLAYER_BUFF_RESIST_EARTH 
PLAYER_BUFF_FATE 
PLAYER_BUFF_RESIST_FIRE 
PLAYER_BUFF_HAMMERHANDS 
PLAYER_BUFF_HASTE 
PLAYER_BUFF_HEROISM 
PLAYER_BUFF_RESIST_MIND 
PLAYER_BUFF_PAIN_REFLECTION 
PLAYER_BUFF_PRESERVATION 
PLAYER_BUFF_REGENERATION 
PLAYER_BUFF_SHIELD 
PLAYER_BUFF_STONESKIN 
PLAYER_BUFF_ACCURACY 
PLAYER_BUFF_ENDURANCE 
PLAYER_BUFF_INTELLIGENCE 
PLAYER_BUFF_LUCK 
PLAYER_BUFF_STRENGTH 
PLAYER_BUFF_WILLPOWER 
PLAYER_BUFF_SPEED 
PLAYER_BUFF_RESIST_WATER 
PLAYER_BUFF_WATER_WALK 

См. определение в файле Player.h строка 13

◆ PlayerSpeech

Элементы перечислений
SPEECH_1 
SPEECH_2 
SPEECH_3 
SPEECH_4 
SPEECH_5 
SPEECH_6 
SPEECH_7 
SPEECH_8 
SPEECH_9 
SPEECH_10 
SPEECH_11 
SPEECH_12 
SPEECH_CantRestHere 
SPEECH_14 
SPEECH_NoRoom 
SPEECH_DO_POTION_FINE 
SPEECH_17 
SPEECH_18 
SPEECH_19 
SPEECH_20 
SPEECH_21 
SPEECH_GoodDay 
SPEECH_GoodEvening 
SPEECH_24 
SPEECH_25 
SPEECH_26 
SPEECH_27 
SPEECH_28 
SPEECH_29 
SPEECH_30 
SPEECH_31 
SPEECH_32 
SPEECH_33 
SPEECH_34 
SPEECH_35 
SPEECH_36 
SPEECH_37 
SPEECH_NotEnoughGold 
SPEECH_39 
SPEECH_40 
SPEECH_41 
SPEECH_42 
SPEECH_43 
SPEECH_44 
SPEECH_45 
SPEECH_46 
SPEECH_47 
SPEECH_48 
SPEECH_49 
SPEECH_50 
SPEECH_51 
SPEECH_52 
SPEECH_53 
SPEECH_54 
SPEECH_55 
SPEECH_56 
SPEECH_57 
SPEECH_58 
SPEECH_59 
SPEECH_60 
SPEECH_61 
SPEECH_62 
SPEECH_63 
SPEECH_64 
SPEECH_Yell 
SPEECH_Falling_scream 
SPEECH_67 
SPEECH_68 
SPEECH_69 
SPEECH_70 
SPEECH_CarriageReady 
SPEECH_SetSail 
SPEECH_73 
SPEECH_74 
SPEECH_75 
SPEECH_76 
SPEECH_77 
SPEECH_78 
SPEECH_79 
SPEECH_80 
SPEECH_81 
SPEECH_82 
SPEECH_83 
SPEECH_84 
SPEECH_85 
SPEECH_86 
SPEECH_87 
SPEECH_88 
SPEECH_89 
SPEECH_90 
SPEECH_91 
SPEECH_92 
SPEECH_93 
SPEECH_94 
SPEECH_95 
SPEECH_96 
SPEECH_97 
SPEECH_98 
SPEECH_99 
SPEECH_100 
SPEECH_101 
SPEECH_PickMe 
SPEECH_103 
SPEECH_IDENTIFY_MONSTER_WEAKER 
SPEECH_IDENTIFY_MONSTER_STRONGER 
SPEECH_IDENTIFY_MONSTER_106 
SPEECH_107 
SPEECH_108 
SPEECH_109 
SPEECH_110 

См. определение в файле Player.h строка 46

46  {
47  SPEECH_1 = 1,
48  SPEECH_2 = 2,
49  SPEECH_3 = 3,
50  SPEECH_4 = 4,
51  SPEECH_5 = 5,
52  SPEECH_6 = 6,
53  SPEECH_7 = 7,
54  SPEECH_8 = 8,
55  SPEECH_9 = 9,
56  SPEECH_10 = 10,
57  SPEECH_11 = 11,
58  SPEECH_12 = 12,
60  SPEECH_14 = 14,
61  SPEECH_NoRoom = 15, // when placing to inventory
63  SPEECH_17 = 17,
64  SPEECH_18 = 18,
65  SPEECH_19 = 19,
66  SPEECH_20 = 20,
67  SPEECH_21 = 21,
68  SPEECH_GoodDay = 22, // greets on dialogue start
69  SPEECH_GoodEvening = 23,
70  SPEECH_24 = 24, // damage - owww
71  SPEECH_25 = 25, // weak
72  SPEECH_26 = 26, // fear
73  SPEECH_27 = 27, // poisoned
74  SPEECH_28 = 28, // diseased
75  SPEECH_29 = 29, // insane
76  SPEECH_30 = 30, // cursed
77  SPEECH_31 = 31, // drunk
78  SPEECH_32 = 32, // uncnocious
79  SPEECH_33 = 33, // dead
80  SPEECH_34 = 34, // petrified
81  SPEECH_35 = 35, // eradicated
82  SPEECH_36 = 36,
83  SPEECH_37 = 37,
85  SPEECH_39 = 39, // cant use that
86  SPEECH_40 = 40,
87  SPEECH_41 = 41,
88  SPEECH_42 = 42,
89  SPEECH_43 = 43,
90  SPEECH_44 = 44,
91  SPEECH_45 = 45,
92  SPEECH_46 = 46,
93  SPEECH_47 = 47,
94  SPEECH_48 = 48,
95  SPEECH_49 = 49,
96  SPEECH_50 = 50,
97  SPEECH_51 = 51,
98  SPEECH_52 = 52, // ATTACK MISSED??
99  SPEECH_53 = 53,
100  SPEECH_54 = 54,
101  SPEECH_55 = 55,
102  SPEECH_56 = 56,
103  SPEECH_57 = 57,
104  SPEECH_58 = 58,
105  SPEECH_59 = 59,
106  SPEECH_60 = 60,
107  SPEECH_61 = 61,
108  SPEECH_62 = 62,
109  SPEECH_63 = 63,
110  SPEECH_64 = 64,
111  SPEECH_Yell = 65,
113  SPEECH_67 = 67,
114  SPEECH_68 = 68,
115  SPEECH_69 = 69,
116  SPEECH_70 = 70,
117  SPEECH_CarriageReady = 71, // travelling by carriage
118  SPEECH_SetSail = 72, // travelling by sea
119  SPEECH_73 = 73,
120  SPEECH_74 = 74,
121  SPEECH_75 = 75,
122  SPEECH_76 = 76,
123  SPEECH_77 = 77,
124  SPEECH_78 = 78,
125  SPEECH_79 = 79,
126  SPEECH_80 = 80,
127  SPEECH_81 = 81,
128  SPEECH_82 = 82,
129  SPEECH_83 = 83,
130  SPEECH_84 = 84,
131  SPEECH_85 = 85,
132  SPEECH_86 = 86,
133  SPEECH_87 = 87,
134  SPEECH_88 = 88,
135  SPEECH_89 = 89,
136  SPEECH_90 = 90,
137  SPEECH_91 = 91,
138  SPEECH_92 = 92,
139  SPEECH_93 = 93,
140  SPEECH_94 = 94,
141  SPEECH_95 = 95,
142  SPEECH_96 = 96,
143  SPEECH_97 = 97,
144  SPEECH_98 = 98,
145  SPEECH_99 = 99, // zombie
146  SPEECH_100 = 100,
147  SPEECH_101 = 101,
148  SPEECH_PickMe = 102,
149  SPEECH_103 = 103,
153  SPEECH_107 = 107, // its just you and me now
154  SPEECH_108 = 108,
155  SPEECH_109 = 109,
156  SPEECH_110 = 110,
157 };

◆ CHARACTER_RACE

Элементы перечислений
CHARACTER_RACE_HUMAN 
CHARACTER_RACE_ELF 
CHARACTER_RACE_GOBLIN 
CHARACTER_RACE_DWARF 

См. определение в файле Player.h строка 160

160  {
162  CHARACTER_RACE_ELF = 1,
165 };

◆ PLAYER_SKILL_TYPE

enum PLAYER_SKILL_TYPE : signed __int8
Элементы перечислений
PLAYER_SKILL_STAFF 
PLAYER_SKILL_SWORD 
PLAYER_SKILL_DAGGER 
PLAYER_SKILL_AXE 
PLAYER_SKILL_SPEAR 
PLAYER_SKILL_BOW 
PLAYER_SKILL_MACE 
PLAYER_SKILL_BLASTER 
PLAYER_SKILL_SHIELD 
PLAYER_SKILL_LEATHER 
PLAYER_SKILL_CHAIN 
PLAYER_SKILL_PLATE 
PLAYER_SKILL_FIRE 
PLAYER_SKILL_AIR 
PLAYER_SKILL_WATER 
PLAYER_SKILL_EARTH 
PLAYER_SKILL_SPIRIT 
PLAYER_SKILL_MIND 
PLAYER_SKILL_BODY 
PLAYER_SKILL_LIGHT 
PLAYER_SKILL_DARK 
PLAYER_SKILL_ITEM_ID 
PLAYER_SKILL_MERCHANT 
PLAYER_SKILL_REPAIR 
PLAYER_SKILL_BODYBUILDING 
PLAYER_SKILL_MEDITATION 
PLAYER_SKILL_PERCEPTION 
PLAYER_SKILL_DIPLOMACY 
PLAYER_SKILL_TIEVERY 
PLAYER_SKILL_TRAP_DISARM 
PLAYER_SKILL_DODGE 
PLAYER_SKILL_UNARMED 
PLAYER_SKILL_MONSTER_ID 
PLAYER_SKILL_ARMSMASTER 
PLAYER_SKILL_STEALING 
PLAYER_SKILL_ALCHEMY 
PLAYER_SKILL_LEARNING 
PLAYER_SKILL_CLUB 
PLAYER_SKILL_MISC 
PLAYER_SKILL_INVALID 

См. определение в файле Player.h строка 170

170  : signed __int8 {
171  PLAYER_SKILL_STAFF = 0,
172  PLAYER_SKILL_SWORD = 1,
174  PLAYER_SKILL_AXE = 3,
175  PLAYER_SKILL_SPEAR = 4,
176  PLAYER_SKILL_BOW = 5,
177  PLAYER_SKILL_MACE = 6,
181  PLAYER_SKILL_CHAIN = 10,
182  PLAYER_SKILL_PLATE = 11,
183  PLAYER_SKILL_FIRE = 12,
184  PLAYER_SKILL_AIR = 13,
185  PLAYER_SKILL_WATER = 14,
186  PLAYER_SKILL_EARTH = 15,
187  PLAYER_SKILL_SPIRIT = 16,
188  PLAYER_SKILL_MIND = 17,
189  PLAYER_SKILL_BODY = 18,
190  PLAYER_SKILL_LIGHT = 19,
191  PLAYER_SKILL_DARK = 20,
194  PLAYER_SKILL_REPAIR = 23,
201  PLAYER_SKILL_DODGE = 30,
208  PLAYER_SKILL_CLUB = 37,
209  PLAYER_SKILL_MISC = 38,
211 };

◆ PLAYER_CLASS_TYPE

enum PLAYER_CLASS_TYPE : unsigned __int8
Элементы перечислений
PLAYER_CLASS_KNIGHT 
PLAYER_CLASS_CHEVALIER 
PLAYER_CLASS_CHAMPION 
PLAYER_CLASS_BLACK_KNIGHT 
PLAYER_CLASS_THEIF 
PLAYER_CLASS_ROGUE 
PLAYER_CLASS_SPY 
PLAYER_CLASS_ASSASSIN 
PLAYER_CLASS_MONK 
PLAYER_CLASS_INITIATE 
PLAYER_CLASS_MASTER 
PLAYER_CLASS_NINJA 
PLAYER_CLASS_PALADIN 
PLAYER_CLASS_CRUSADER 
PLAYER_CLASS_HERO 
PLAYER_CLASS_VILLIAN 
PLAYER_CLASS_ARCHER 
PLAYER_CLASS_WARRIOR_MAGE 
PLAYER_CLASS_MASTER_ARCHER 
PLAYER_CLASS_SNIPER 
PLAYER_CLASS_RANGER 
PLAYER_CLASS_HUNTER 
PLAYER_CLASS_RANGER_LORD 
PLAYER_CLASS_BOUNTY_HUNTER 
PLAYER_CLASS_CLERIC 
PLAYER_CLASS_PRIEST 
PLAYER_CLASS_PRIEST_OF_SUN 
PLAYER_CLASS_PRIEST_OF_MOON 
PLAYER_CLASS_DRUID 
PLAYER_CLASS_GREAT_DRUID 
PLAYER_CLASS_ARCH_DRUID 
PLAYER_CLASS_WARLOCK 
PLAYER_CLASS_SORCERER 
PLAYER_CLASS_WIZARD 
PLAYER_CLASS_ARCHMAGE 
PLAYER_CLASS_LICH 

См. определение в файле Player.h строка 215

◆ CHARACTER_EXPRESSION_ID

enum CHARACTER_EXPRESSION_ID : unsigned __int16
Элементы перечислений
CHARACTER_EXPRESSION_INVALID 
CHARACTER_EXPRESSION_1 
CHARACTER_EXPRESSION_CURSED 
CHARACTER_EXPRESSION_WEAK 
CHARACTER_EXPRESSION_SLEEP 
CHARACTER_EXPRESSION_FEAR 
CHARACTER_EXPRESSION_DRUNK 
CHARACTER_EXPRESSION_INSANE 
CHARACTER_EXPRESSION_POISONED 
CHARACTER_EXPRESSION_DISEASED 
CHARACTER_EXPRESSION_PARALYZED 
CHARACTER_EXPRESSION_UNCONCIOUS 
CHARACTER_EXPRESSION_PERTIFIED 
CHARACTER_EXPRESSION_13 
CHARACTER_EXPRESSION_14 
CHARACTER_EXPRESSION_15 
CHARACTER_EXPRESSION_16 
CHARACTER_EXPRESSION_17 
CHARACTER_EXPRESSION_18 
CHARACTER_EXPRESSION_19 
CHARACTER_EXPRESSION_20 
CHARACTER_EXPRESSION_21 
CHARACTER_EXPRESSION_22 
CHARACTER_EXPRESSION_23 
CHARACTER_EXPRESSION_24 
CHARACTER_EXPRESSION_25 
CHARACTER_EXPRESSION_26 
CHARACTER_EXPRESSION_27 
CHARACTER_EXPRESSION_28 
CHARACTER_EXPRESSION_29 
CHARACTER_EXPRESSION_30 
CHARACTER_EXPRESSION_31 
CHARACTER_EXPRESSION_32 
CHARACTER_EXPRESSION_33 
CHARACTER_EXPRESSION_DMGRECVD_MINOR 
CHARACTER_EXPRESSION_DMGRECVD_MODERATE 
CHARACTER_EXPRESSION_DMGRECVD_MAJOR 
CHARACTER_EXPRESSION_37 
CHARACTER_EXPRESSION_38 
CHARACTER_EXPRESSION_39 
CHARACTER_EXPRESSION_SCARED 
CHARACTER_EXPRESSION_54 
CHARACTER_EXPRESSION_55 
CHARACTER_EXPRESSION_56 
CHARACTER_EXPRESSION_57 
CHARACTER_EXPRESSION_FALLING 
CHARACTER_EXPRESSION_DEAD 
CHARACTER_EXPRESSION_ERADICATED 

См. определение в файле Player.h строка 341

341  : unsigned __int16 {
382 
383  // ?
384 
385  CHARACTER_EXPRESSION_SCARED = 46, // like falling
386 
392 
393  // ?
394 
397 };

◆ PLAYER_SEX

Элементы перечислений
SEX_MALE 
SEX_FEMALE 

См. определение в файле Player.h строка 399

399 : uint8_t { SEX_MALE = 0, SEX_FEMALE = 1 };

Функции

◆ DamagePlayerFromMonster()

void DamagePlayerFromMonster ( unsigned int  uObjID,
int  a2,
struct Vec3_int_ *  pPos,
signed int  a4 
)

См. определение в файле Player.cpp строка 6928

6929  {
6930  Player* playerPtr; // ebx@3
6931  Actor* actorPtr; // esi@3
6932  int spellId; // eax@38
6933  signed int recvdMagicDmg; // eax@139
6934  int v72[4]; // [sp+30h] [bp-24h]@164
6935  int healthBeforeRecvdDamage; // [sp+48h] [bp-Ch]@3
6936  unsigned int uActorID; // [sp+4Ch] [bp-8h]@1
6937 
6938  uActorID = PID_ID(uObjID);
6939  int pidtype = PID_TYPE(uObjID);
6940 
6941  if (pidtype != 2) {
6942  if (pidtype != 3) __debugbreak();
6943 
6944  if (a4 == -1) __debugbreak();
6945 
6946  playerPtr = &pParty->pPlayers[a4];
6947  actorPtr = &pActors[uActorID];
6948  healthBeforeRecvdDamage = playerPtr->sHealth;
6949  if (PID_TYPE(uObjID) != 3 || !actorPtr->ActorHitOrMiss(playerPtr))
6950  return;
6951 
6952  if (playerPtr->GetActualSkillMastery(PLAYER_SKILL_UNARMED) >= 4 &&
6953  rand() % 100 < playerPtr->GetActualSkillLevel(PLAYER_SKILL_UNARMED)) {
6954  auto str = localization->FormatString(637, playerPtr->pName); // evades damage
6956  playerPtr->PlaySound(SPEECH_6, 0);
6957  return;
6958  }
6959 
6960  ItemGen* equippedArmor = playerPtr->GetArmorItem();
6961  SoundID soundToPlay;
6962  if (!equippedArmor || equippedArmor->IsBroken() ||
6963  (equippedArmor->GetPlayerSkillType() != PLAYER_SKILL_CHAIN &&
6964  equippedArmor->GetPlayerSkillType() != PLAYER_SKILL_PLATE)) {
6965  int randVal = rand() % 4;
6966  switch (randVal) {
6967  case 0:
6968  soundToPlay = (SoundID)108;
6969  break;
6970  case 1:
6971  soundToPlay = (SoundID)109;
6972  break;
6973  case 2:
6974  soundToPlay = (SoundID)110;
6975  break;
6976  case 3:
6977  soundToPlay = (SoundID)44;
6978  break;
6979  default:
6980  Error("Unexpected sound value");
6981  }
6982  } else {
6983  int randVal = rand() % 4;
6984  switch (randVal) {
6985  case 0:
6986  soundToPlay = (SoundID)105;
6987  break;
6988  case 1:
6989  soundToPlay = (SoundID)106;
6990  break;
6991  case 2:
6992  soundToPlay = (SoundID)107;
6993  break;
6994  case 3:
6995  soundToPlay = (SoundID)45;
6996  break;
6997  default:
6998  Error("Unexpected sound value");
6999  }
7000  }
7001  pAudioPlayer->PlaySound(soundToPlay, PID(OBJECT_Player, a4 + 80), 0, -1, 0, 0);
7002  int dmgToReceive = actorPtr->_43B3E0_CalcDamage(dmgSource);
7003  if (actorPtr->pActorBuffs[ACTOR_BUFF_SHRINK].Active()) {
7004  __int16 spellPower = actorPtr->pActorBuffs[ACTOR_BUFF_SHRINK].uPower;
7005  if (spellPower > 0)
7006  dmgToReceive /= spellPower;
7007  }
7008 
7009  int damageType;
7010  switch (dmgSource) {
7011  case 0:
7012  damageType = actorPtr->pMonsterInfo.uAttack1Type;
7013  break;
7014  case 1:
7015  damageType = actorPtr->pMonsterInfo.uAttack2Type;
7016  break;
7017  case 2:
7018  spellId = actorPtr->pMonsterInfo.uSpell1ID;
7019  damageType = pSpellStats->pInfos[spellId].uSchool;
7020  break;
7021  case 3:
7022  spellId = actorPtr->pMonsterInfo.uSpell2ID;
7023  damageType = pSpellStats->pInfos[spellId].uSchool;
7024  break;
7025  case 4:
7026  damageType =
7028  break;
7029  default:
7030  case 5:
7031  damageType = 4; // yes, the original just assigned the value 4
7032  break;
7033  }
7034  // if (!engine->config->NoDamage()) {
7035  dmgToReceive =
7036  playerPtr->ReceiveDamage(dmgToReceive, (DAMAGE_TYPE)damageType);
7037  if (playerPtr->pPlayerBuffs[PLAYER_BUFF_PAIN_REFLECTION].Active()) {
7038  int actorState = actorPtr->uAIState;
7039  if (actorState != Dying && actorState != Dead) {
7040  int reflectedDamage = actorPtr->CalcMagicalDamageToActor(
7041  (DAMAGE_TYPE)damageType, dmgToReceive);
7042  actorPtr->sCurrentHP -= reflectedDamage;
7043  if (reflectedDamage >= 0) {
7044  if (actorPtr->sCurrentHP >= 1) {
7046  uActorID, PID(OBJECT_Player, a4),
7047  0); // todo extract this branch to a function
7048  // once Actor::functions are changed to
7049  // nonstatic actor functions
7050  Actor::AggroSurroundingPeasants(uActorID, 1);
7051  } else {
7052  if (pMonsterStats->pInfos[actorPtr->pMonsterInfo.uID].bQuestMonster & 1 &&
7053  !engine->config->NoBloodsplats()) {
7054  int splatRadius = _4D864C_force_sw_render_rules && !engine->config->NoHugeBloodsplats()
7055  ? 10 * actorPtr->uActorRadius
7056  : actorPtr->uActorRadius;
7058  actorPtr->vPosition.x,
7059  actorPtr->vPosition.y,
7060  actorPtr->vPosition.z, 1.0, 0.0, 0.0,
7061  (float)splatRadius, 0, 0);
7062  }
7063  Actor::Die(uActorID);
7065  Actor::AggroSurroundingPeasants(uActorID, 1);
7066  if (actorPtr->pMonsterInfo.uExp)
7069  ->pInfos[actorPtr->pMonsterInfo.uID]
7070  .uExp);
7071  int speechToPlay = SPEECH_51;
7072  if (rand() % 100 < 20)
7073  speechToPlay =
7074  actorPtr->pMonsterInfo.uHP >= 100 ? 2 : 1;
7075  playerPtr->PlaySound((PlayerSpeech)speechToPlay, 0);
7076  }
7077  }
7078  }
7079  }
7080  if (!engine->config->NoDamage() &&
7081  actorPtr->pMonsterInfo.uSpecialAttackType &&
7082  rand() % 100 < actorPtr->pMonsterInfo.uLevel *
7083  actorPtr->pMonsterInfo.uSpecialAttackLevel) {
7084  playerPtr->ReceiveSpecialAttackEffect(
7085  actorPtr->pMonsterInfo.uSpecialAttackType, actorPtr);
7086  }
7087  //}
7088  if (!pParty->bTurnBasedModeOn) {
7089  int actEndurance = playerPtr->GetActualEndurance();
7090  int recoveryTime =
7091  (int)((20 - playerPtr->GetParameterBonus(actEndurance)) *
7092  flt_6BE3A4_debug_recmod1 * 2.133333333333333);
7093  playerPtr->SetRecoveryTime(recoveryTime);
7094  }
7095  int yellThreshold = playerPtr->GetMaxHealth() / 4;
7096  if (yellThreshold < playerPtr->sHealth &&
7097  yellThreshold >= healthBeforeRecvdDamage &&
7098  playerPtr->sHealth > 0) {
7099  playerPtr->PlaySound(SPEECH_48, 0);
7100  }
7102  return;
7103  } else {
7104  SpriteObject* v37 = &pSpriteObjects[uActorID];
7105  int uActorType = PID_TYPE(v37->spell_caster_pid);
7106  int uActorID = PID_ID(v37->spell_caster_pid);
7107  if (uActorType == 2) { // item
7108  Player* playerPtr; // eax@81
7109  if (a4 != -1) {
7110  playerPtr = &pParty->pPlayers[a4];
7111  } else {
7112  int activePlayerCounter = 0;
7113  for (int i = 1; i <= 4; i++) {
7114  if (pPlayers[i]->CanAct()) {
7115  v72[activePlayerCounter] = i;
7116  activePlayerCounter++;
7117  }
7118  }
7119  if (activePlayerCounter) {
7120  playerPtr =
7121  &pParty
7122  ->pPlayers[v72[rand() % activePlayerCounter] -
7123  1]; // &stru_AA1058[3].pSounds[6972 *
7124  // *(&v72 + rand() % v74) + 40552];
7125  }
7126  }
7127  int v68;
7128  int v69;
7129  if (uActorType != OBJECT_Player ||
7130  v37->spell_id != SPELL_BOW_ARROW) {
7131  int playerMaxHp = playerPtr->GetMaxHealth();
7133  v37->spell_skill, playerMaxHp);
7134  v69 = pSpellStats->pInfos[v37->spell_id].uSchool;
7135  } else {
7136  v68 = pParty->pPlayers[uActorID].CalculateRangedDamageTo(0);
7137  v69 = 0;
7138  }
7139  playerPtr->ReceiveDamage(v68, (DAMAGE_TYPE)v69);
7140  if (uActorType == OBJECT_Player && !_A750D8_player_speech_timer) {
7143  uSpeakingCharacter = uActorID + 1;
7144  }
7145  return;
7146  } else if (uActorType == 3) { // actor
7147  Actor* actorPtr = &pActors[uActorID];
7148  if (a4 == -1) a4 = stru_50C198.which_player_to_attack(actorPtr);
7149  Player* playerPtr = &pParty->pPlayers[a4];
7150  int dmgToReceive = actorPtr->_43B3E0_CalcDamage(dmgSource);
7151  unsigned __int16 spriteType = v37->uType;
7152 
7153  if (v37->uType == 545) { // arrows
7154  // GM unarmed 1% chance to evade attack per skill point
7155  logger->Info(L"Arrpow");
7156  if (playerPtr->GetActualSkillMastery(PLAYER_SKILL_UNARMED) >= 4 &&
7157  rand() % 100 < playerPtr->GetActualSkillLevel(PLAYER_SKILL_UNARMED)) {
7158  auto str = localization->FormatString(637, playerPtr->pName); // evades damage
7160  playerPtr->PlaySound(SPEECH_6, 0);
7161  return;
7162  }
7163  } else if (spriteType == 555 || spriteType == 510 || // dragonflies firebolt
7164  spriteType == 500 || spriteType == 515 ||
7165  spriteType == 505 || spriteType == 530 || // all missile types?
7166  spriteType == 525 || spriteType == 520 ||
7167  spriteType == 535 || spriteType == 540) {
7168  if (!actorPtr->ActorHitOrMiss(playerPtr)) return;
7169  if (playerPtr->pPlayerBuffs[PLAYER_BUFF_SHIELD].Active())
7170  dmgToReceive >>= 1;
7171  if (playerPtr->HasEnchantedItemEquipped(36)) dmgToReceive >>= 1;
7172  if (playerPtr->HasEnchantedItemEquipped(69)) dmgToReceive >>= 1;
7173  if (playerPtr->HasItemEquipped(EQUIP_ARMOUR) &&
7174  playerPtr->GetArmorItem()->uItemID ==
7176  dmgToReceive >>= 1;
7177  if (playerPtr->HasItemEquipped(EQUIP_TWO_HANDED)) {
7178  ItemGen* mainHandItem = playerPtr->GetMainHandItem();
7179  if (mainHandItem->uItemID == ITEM_RELIC_KELEBRIM ||
7180  mainHandItem->uItemID == ITEM_ARTIFACT_ELFBANE ||
7181  (mainHandItem->GetItemEquipType() == EQUIP_SHIELD &&
7182  playerPtr->GetActualSkillMastery(
7183  PLAYER_SKILL_SHIELD) == 4))
7184  dmgToReceive >>= 1;
7185  }
7186  if (playerPtr->HasItemEquipped(EQUIP_SINGLE_HANDED)) {
7187  ItemGen* offHandItem = playerPtr->GetOffHandItem();
7188  if (offHandItem->uItemID == ITEM_RELIC_KELEBRIM ||
7189  offHandItem->uItemID == ITEM_ARTIFACT_ELFBANE ||
7190  (offHandItem->GetItemEquipType() == EQUIP_SHIELD &&
7191  playerPtr->GetActualSkillMastery(
7192  PLAYER_SKILL_SHIELD) == 4))
7193  dmgToReceive >>= 1;
7194  }
7195  }
7196  if (actorPtr->pActorBuffs[ACTOR_BUFF_SHRINK].Active()) {
7197  int spellPower =
7199  if (spellPower > 0) dmgToReceive /= spellPower;
7200  }
7201  int damageType;
7202  switch (dmgSource) {
7203  case 0:
7204  damageType = actorPtr->pMonsterInfo.uAttack1Type;
7205  break;
7206  case 1:
7207  damageType = actorPtr->pMonsterInfo.uAttack2Type;
7208  break;
7209  case 2:
7210  spellId = actorPtr->pMonsterInfo.uSpell1ID;
7211  damageType = pSpellStats->pInfos[spellId].uSchool;
7212  break;
7213  case 3:
7214  spellId = actorPtr->pMonsterInfo.uSpell2ID;
7215  damageType = pSpellStats->pInfos[spellId].uSchool;
7216  break;
7217  case 4:
7218  damageType =
7220  break;
7221  case 5:
7222  damageType = 4;
7223  break;
7224  }
7225  // if (!engine->config->NoDamage()) {
7226  int reflectedDmg = playerPtr->ReceiveDamage(
7227  dmgToReceive, (DAMAGE_TYPE)damageType);
7229  .Active()) {
7230  unsigned __int16 actorState = actorPtr->uAIState;
7231  if (actorState != Dying && actorState != Dead) {
7232  recvdMagicDmg = actorPtr->CalcMagicalDamageToActor(
7233  (DAMAGE_TYPE)damageType, reflectedDmg);
7234  actorPtr->sCurrentHP -= recvdMagicDmg;
7235  if (recvdMagicDmg >= 0) {
7236  if (actorPtr->sCurrentHP >= 1) {
7237  Actor::AI_Stun(uActorID, PID(OBJECT_Player, a4),
7238  0);
7239  Actor::AggroSurroundingPeasants(uActorID, 1);
7240  } else {
7241  if (pMonsterStats->pInfos[actorPtr->pMonsterInfo.uID].bQuestMonster & 1 &&
7242  !engine->config->NoBloodsplats()) {
7243  int splatRadius = _4D864C_force_sw_render_rules && !engine->config->NoHugeBloodsplats()
7244  ? 10 * actorPtr->uActorRadius
7245  : actorPtr->uActorRadius;
7247  actorPtr->vPosition.x,
7248  actorPtr->vPosition.y,
7249  actorPtr->vPosition.z, 1.0, 0.0, 0.0,
7250  (float)splatRadius, 0, 0);
7251  }
7252  Actor::Die(uActorID);
7254  Actor::AggroSurroundingPeasants(uActorID, 1);
7255  if (actorPtr->pMonsterInfo.uExp)
7258  ->pInfos[actorPtr->pMonsterInfo.uID]
7259  .uExp);
7260  int speechToPlay = SPEECH_51;
7261  if (rand() % 100 < 20)
7262  speechToPlay =
7263  actorPtr->pMonsterInfo.uHP >= 100 ? 2
7264  : 1;
7265  playerPtr->PlaySound((PlayerSpeech)speechToPlay,
7266  0);
7267  }
7268  }
7269  }
7270  }
7271  //}
7272  if (!dmgSource &&
7273  !engine->config->NoDamage() &&
7274  actorPtr->pMonsterInfo.uSpecialAttackType &&
7275  rand() % 100 < actorPtr->pMonsterInfo.uLevel *
7276  actorPtr->pMonsterInfo.uSpecialAttackLevel) {
7277  playerPtr->ReceiveSpecialAttackEffect(
7278  actorPtr->pMonsterInfo.uSpecialAttackType, actorPtr);
7279  }
7280  if (!pParty->bTurnBasedModeOn) {
7281  int actEnd = playerPtr->GetActualEndurance();
7282  int recTime =
7283  (int)((20 - playerPtr->GetParameterBonus(actEnd)) *
7284  flt_6BE3A4_debug_recmod1 * 2.133333333333333);
7285  playerPtr->SetRecoveryTime(recTime);
7286  }
7287  return;
7288  } else {
7289  return;
7290  }
7291  }
7292 }

Перекрестные ссылки _43AFE3_calc_spell_damage(), Actor::_43B3E0_CalcDamage(), _4D864C_force_sw_render_rules, __debugbreak(), _A750D8_player_speech_timer, SpellBuff::Active(), ACTOR_BUFF_SHRINK, Actor::ActorHitOrMiss(), DecalBuilder::AddBloodsplat(), Actor::AggroSurroundingPeasants(), Actor::AI_Stun(), Actor::ApplyFineForKillingPeasant(), MonsterInfo::bQuestMonster, ViewingParams::bRedrawGameUI, Party::bTurnBasedModeOn, Actor::CalcMagicalDamageToActor(), Dead, decal_builder, Actor::Die(), Dying, engine, EQUIP_ARMOUR, EQUIP_SHIELD, EQUIP_SINGLE_HANDED, EQUIP_TWO_HANDED, MonsterInfo::field_3C_some_special_attack, flt_6BE3A4_debug_recmod1, Localization::FormatString(), GameUI_StatusBar_OnEvent(), Player::GetActualEndurance(), Player::GetActualSkillLevel(), Player::GetActualSkillMastery(), Player::GetArmorItem(), ItemGen::GetItemEquipType(), Player::GetMainHandItem(), Player::GetMaxHealth(), Player::GetOffHandItem(), Player::GetParameterBonus(), ItemGen::GetPlayerSkillType(), Party::GivePartyExp(), Player::HasEnchantedItemEquipped(), Player::HasItemEquipped(), Log::Info(), ItemGen::IsBroken(), ITEM_ARTIFACT_ELFBANE, ITEM_ARTIFACT_GOVERNORS_ARMOR, ITEM_RELIC_KELEBRIM, localization, logger, OBJECT_Player, Actor::pActorBuffs, pActors, pAudioPlayer, SpellStats::pInfos, MonsterStats::pInfos, PLAYER_BUFF_PAIN_REFLECTION, PLAYER_BUFF_SHIELD, PLAYER_SKILL_CHAIN, PLAYER_SKILL_PLATE, PLAYER_SKILL_SHIELD, PLAYER_SKILL_UNARMED, PlayerSpeechID, AudioPlayer::PlaySound(), Player::PlaySound(), Actor::pMonsterInfo, pMonsterStats, Player::pName, pParty, Player::pPlayerBuffs, pPlayers, Party::pPlayers, pSpellStats, pSpriteObjects, Player::ReceiveDamage(), Player::ReceiveSpecialAttackEffect(), Actor::sCurrentHP, Player::SetRecoveryTime(), Player::sHealth, SPEECH_44, SPEECH_48, SPEECH_51, SPEECH_6, SPELL_BOW_ARROW, SpriteObject::spell_caster_pid, SpriteObject::spell_id, SpriteObject::spell_level, SpriteObject::spell_skill, stru_50C198, Actor::uActorRadius, Actor::uAIState, MonsterInfo::uAttack1Type, MonsterInfo::uAttack2Type, MonsterInfo::uExp, MonsterInfo::uHP, MonsterInfo::uID, ItemGen::uItemID, MonsterInfo::uLevel, SpellBuff::uPower, SpellInfo::uSchool, uSpeakingCharacter, MonsterInfo::uSpecialAttackLevel, MonsterInfo::uSpecialAttackType, MonsterInfo::uSpell1ID, MonsterInfo::uSpell2ID, SpriteObject::uType, viewparams, Actor::vPosition и stru319::which_player_to_attack().

Используется в area_of_effect__damage_evaluate() и sub_43A97E().

+ Граф вызовов:
+ Граф вызова функции:

◆ IsDwarfPresentInParty()

bool IsDwarfPresentInParty ( bool  b)

См. определение в файле Player.cpp строка 6915

6915  {
6916  for (uint i = 0; i < 4; ++i) {
6917  CHARACTER_RACE race = pParty->pPlayers[i].GetRace();
6918 
6919  if (race == CHARACTER_RACE_DWARF && a1)
6920  return true;
6921  else if (race != CHARACTER_RACE_DWARF && !a1)
6922  return true;
6923  }
6924  return false;
6925 }

Перекрестные ссылки CHARACTER_RACE_DWARF, pParty и Party::pPlayers.

Используется в CharacterUI_LoadPaperdollTextures().

+ Граф вызова функции:

◆ ShouldLoadTexturesForRaceAndGender()

bool ShouldLoadTexturesForRaceAndGender ( unsigned int  _this)

См. определение в файле Player.cpp строка 6879

6879  {
6880  CHARACTER_RACE race; // edi@2
6881  PLAYER_SEX sex; // eax@2
6882 
6883  for (int i = 1; i <= 4; i++) {
6884  race = pPlayers[i]->GetRace();
6885  sex = pPlayers[i]->GetSexByVoice();
6886  switch (_this) {
6887  case 0:
6888  if ((race == CHARACTER_RACE_HUMAN ||
6889  race == CHARACTER_RACE_ELF ||
6890  race == CHARACTER_RACE_GOBLIN) &&
6891  sex == SEX_MALE)
6892  return true;
6893  break;
6894  case 1:
6895  if ((race == CHARACTER_RACE_HUMAN ||
6896  race == CHARACTER_RACE_ELF ||
6897  race == CHARACTER_RACE_GOBLIN) &&
6898  sex == SEX_FEMALE)
6899  return true;
6900  break;
6901  case 2:
6902  if (race == CHARACTER_RACE_DWARF && sex == SEX_MALE)
6903  return true;
6904  break;
6905  case 3:
6906  if (race == CHARACTER_RACE_DWARF && sex == SEX_FEMALE)
6907  return true;
6908  break;
6909  }
6910  }
6911  return false;
6912 }

Перекрестные ссылки CHARACTER_RACE_DWARF, CHARACTER_RACE_ELF, CHARACTER_RACE_GOBLIN, CHARACTER_RACE_HUMAN, pPlayers, SEX_FEMALE и SEX_MALE.

Используется в CharacterUI_LoadPaperdollTextures().

+ Граф вызова функции:

◆ PlayerCreation_GetUnspentAttributePointCount()

int PlayerCreation_GetUnspentAttributePointCount ( )

См. определение в файле Player.cpp строка 223

223  {
224  int CurrentStatValue = 50;
225  int RemainingStatPoints = 50;
226  int raceId;
227  int StatBaseValue;
228  int PenaltyMult;
229  int BonusMult;
230 
231  for (int playerNum = 0; playerNum < 4; playerNum++) {
232  raceId = pParty->pPlayers[playerNum].GetRace();
233 
234  for (int statNum = 0; statNum <= 6; statNum++) {
235  switch (statNum) {
236  case 0:
237  CurrentStatValue = pParty->pPlayers[playerNum].uMight;
238  break;
239  case 1:
240  CurrentStatValue =
241  pParty->pPlayers[playerNum].uIntelligence;
242  break;
243  case 2:
244  CurrentStatValue = pParty->pPlayers[playerNum].uWillpower;
245  break;
246  case 3:
247  CurrentStatValue = pParty->pPlayers[playerNum].uEndurance;
248  break;
249  case 4:
250  CurrentStatValue = pParty->pPlayers[playerNum].uAccuracy;
251  break;
252  case 5:
253  CurrentStatValue = pParty->pPlayers[playerNum].uSpeed;
254  break;
255  case 6:
256  CurrentStatValue = pParty->pPlayers[playerNum].uLuck;
257  break;
258  }
259 
260  StatBaseValue = StatTable[raceId][statNum].uBaseValue;
261 
262  if (CurrentStatValue >=
263  StatBaseValue) { // bonus or penalty increase
264  PenaltyMult = StatTable[raceId][statNum].uDroppedStep;
265  BonusMult = StatTable[raceId][statNum].uBaseStep;
266  } else { // less than base
267  PenaltyMult = StatTable[raceId][statNum].uBaseStep;
268  BonusMult = StatTable[raceId][statNum].uDroppedStep;
269  }
270 
271  RemainingStatPoints +=
272  PenaltyMult * (StatBaseValue - CurrentStatValue) / BonusMult;
273  }
274  }
275 
276  return RemainingStatPoints;
277 }

Перекрестные ссылки pParty, Party::pPlayers, StatTable, PlayerCreation_AttributeProps::uBaseStep, PlayerCreation_AttributeProps::uBaseValue и PlayerCreation_AttributeProps::uDroppedStep.

Используется в CreateParty_EventLoop(), Player::IncreaseAttribute() и GUIWindow_PartyCreation::Update().

+ Граф вызова функции:

◆ CycleCharacter()

int CycleCharacter ( bool  backwards)

См. определение в файле Player.cpp строка 6825

6825  {
6826  const int PARTYSIZE = 4;
6827  int valToAdd = backwards ? (PARTYSIZE - 2) : 0;
6828  int mult = backwards ? -1 : 1;
6829 
6830  for (int i = 0; i < (PARTYSIZE - 1); i++) {
6831  int currCharId =
6832  ((uActiveCharacter + mult * i + valToAdd) % PARTYSIZE) + 1;
6833  if (pPlayers[currCharId]->uTimeToRecovery == 0) {
6834  return currCharId;
6835  }
6836  }
6837  return uActiveCharacter;
6838 }

Перекрестные ссылки pPlayers и uActiveCharacter.

Используется в Application::Game::EventLoop().

+ Граф вызова функции:

◆ SkillToMastery()

unsigned int SkillToMastery ( unsigned int  skill_value)

См. определение в файле Player.cpp строка 7854

7854  {
7855  // attempt to depreciate ?
7856  // use GetActualSkillMastery instead
7857 
7858  switch (skill_value & 0x1C0) {
7859  case 0x100:
7860  return 4; // Grandmaster
7861  case 0x80:
7862  return 3; // Master
7863  case 0x40:
7864  return 2; // Expert
7865  case 0x00:
7866  return 1; // Normal
7867  }
7868 
7869  assert(false); // should not get here
7870  return 0;
7871 }

Используется в _42777D_CastSpell_UseWand_ShootArrow(), Actor::_43B3E0_CalcDamage(), _4B254D_SkillMasteryTeacher(), Actor::AI_SpellAttack(), Actor::DamageMonsterFromParty(), DrawSpellDescriptionPopup(), Player::GetArmorRecoveryMultiplierFromSkillLevel(), Player::GetAttackRecoveryTime() и Player::UseItem_DrinkPotion_etc().

+ Граф вызова функции:

Переменные

◆ pPlayers

NZIArray<struct Player*, 5> pPlayers

См. определение в файле Player.cpp строка 46

Используется в stru262_TurnBased::_406457(), Actor::_427102_IsOkToCastSpell(), CastSpellInfoHelpers::_427E01_cast_spell(), _494035_timed_effects__water_walking_damage__etc(), _4B254D_SkillMasteryTeacher(), Actor::AI_SpellAttack(), AlchemyMagicShopWares(), Actor::ApplyFineForKillingPeasant(), ArmorShopWares(), BankDialog(), BLV_ProcessPartyActions(), CharacterUI_DrawPaperdoll(), CharacterUI_LoadPaperdollTextures(), CharacterUI_StatsTab_ShowHint(), ClickNPCTopic(), ContractSelectText(), Player::CreateItemInInventory(), CycleCharacter(), DamagePlayerFromMonster(), DrawSpellDescriptionPopup(), stru262_TurnBased::End(), EnterHouse(), Player::EquipBody(), Application::Game::EventLoop(), EventProcessor(), SpriteObject::ExplosionTraps(), FillAwardsData(), Application::Game::GameLoop(), GameUI_DrawItemInfo(), GameUI_DrawPortraits(), GameUI_InitializeDialogue(), GameUI_OnPlayerPortraitLeftClick(), GameUI_WritePointedObjectStatusString(), GetHouseGoodbyeSpeech(), ItemGen::GetIdentifiedName(), Player::GetPlayerIndex(), OutdoorLocation::GetTravelDestination(), Chest::GrabItem(), GuildDialog(), GUIWindow_Transition::GUIWindow_Transition(), GUIWindow::HouseDialogManager(), HouseUI_CheckIfPlayerCanInteract(), Inventory_ItemPopupAndAlchemy(), LoadSpellbook(), MonsterPopup_Draw(), ODM_ProcessPartyActions(), Engine::OnGameViewportClick(), WinApiWindow::OnOSMenu(), OnPaperdollLeftClick(), OnSelectNPCDialogueOption(), OnSelectShopDialogueOption(), Chest::Open(), GUIWindow_Spellbook::OpenSpellbook(), GUIWindow_Spellbook::OpenSpellbookPage(), PrepareToLoadBLV(), Keyboard::ProcessInputActions(), Chest::PutItemInChest(), Player::ReceiveSpecialAttackEffect(), Rest(), Player::SetCondition(), Player::SetRecoveryTime(), ShopDialogDisplayEquip(), ShopDialogIdentify(), ShopDialogLearn(), ShopDialogRepair(), ShopDialogSellEquip(), ShouldLoadTexturesForRaceAndGender(), ShowPopupShopItem(), stru262_TurnBased::Start(), stru262_TurnBased::StartTurn(), sub_4B1447_party_fine(), sub_4B6478(), TavernDialog(), TempleDialog(), TownHallDialog(), TrainingDialog(), TravelByTransport(), Mouse::UI_OnMouseLeftClick(), UI_OnMouseRightClick(), UIShop_Buy_Identify_Repair(), GUIWindow_Spellbook::Update(), GUIWindow_CharacterRecord::Update(), GUIWindow_Rest::Update(), GUIWindow_Chest::Update(), GUIWindow_Inventory_CastSpell::Update(), Actor::UpdateActorAI(), WeaponShopWares(), WetsuitOff(), WetsuitOn() и stru319::which_player_to_attack().

◆ PlayerSpeechID

enum PlayerSpeech PlayerSpeechID

См. определение в файле Player.cpp строка 48

Используется в DamagePlayerFromMonster(), GameUI_DrawPortraits(), GetHouseGoodbyeSpeech(), Chest::Open() и PrepareToLoadBLV().

SPEECH_86
@ SPEECH_86
Definition: Player.h:132
SpriteObject
Definition: SpriteObject.h:189
Player::ReceiveSpecialAttackEffect
int ReceiveSpecialAttackEffect(int attType, struct Actor *pActor)
Definition: Player.cpp:1851
SPEECH_68
@ SPEECH_68
Definition: Player.h:114
CHARACTER_EXPRESSION_PERTIFIED
@ CHARACTER_EXPRESSION_PERTIFIED
Definition: Player.h:354
Player::SetRecoveryTime
void SetRecoveryTime(signed int sRecoveryTime)
Definition: Player.cpp:2593
Player
Definition: Player.h:401
Actor::vPosition
struct Vec3_short_ vPosition
Definition: Actor.h:298
SPEECH_39
@ SPEECH_39
Definition: Player.h:85
PLAYER_SKILL_BLASTER
@ PLAYER_SKILL_BLASTER
Definition: Player.h:178
PLAYER_CLASS_CRUSADER
@ PLAYER_CLASS_CRUSADER
Definition: Player.h:229
PLAYER_SKILL_MONSTER_ID
@ PLAYER_SKILL_MONSTER_ID
Definition: Player.h:203
PLAYER_SKILL_DAGGER
@ PLAYER_SKILL_DAGGER
Definition: Player.h:173
CHARACTER_EXPRESSION_17
@ CHARACTER_EXPRESSION_17
Definition: Player.h:359
Actor::AI_Stun
static void AI_Stun(unsigned int uActorID, signed int edx0, int arg0)
Definition: Actor.cpp:1815
PLAYER_CLASS_PRIEST_OF_MOON
@ PLAYER_CLASS_PRIEST_OF_MOON
Definition: Player.h:243
PLAYER_CLASS_HUNTER
@ PLAYER_CLASS_HUNTER
Definition: Player.h:237
PLAYER_BUFF_PAIN_REFLECTION
@ PLAYER_BUFF_PAIN_REFLECTION
Definition: Player.h:24
PLAYER_CLASS_INITIATE
@ PLAYER_CLASS_INITIATE
Definition: Player.h:225
SPEECH_82
@ SPEECH_82
Definition: Player.h:128
uSpeakingCharacter
int uSpeakingCharacter
Definition: mm7_data.cpp:764
Dying
@ Dying
Definition: Actor.h:79
CHARACTER_EXPRESSION_30
@ CHARACTER_EXPRESSION_30
Definition: Player.h:372
SPEECH_IDENTIFY_MONSTER_STRONGER
@ SPEECH_IDENTIFY_MONSTER_STRONGER
Definition: Player.h:151
PLAYER_SKILL_STAFF
@ PLAYER_SKILL_STAFF
Definition: Player.h:171
PLAYER_CLASS_CHEVALIER
@ PLAYER_CLASS_CHEVALIER
Definition: Player.h:217
PLAYER_CLASS_VILLIAN
@ PLAYER_CLASS_VILLIAN
Definition: Player.h:231
PLAYER_BUFF_RESIST_MIND
@ PLAYER_BUFF_RESIST_MIND
Definition: Player.h:23
PLAYER_CLASS_RANGER_LORD
@ PLAYER_CLASS_RANGER_LORD
Definition: Player.h:238
Player::GetActualSkillMastery
int GetActualSkillMastery(PLAYER_SKILL_TYPE uSkillType)
Definition: Player.cpp:3179
SPEECH_49
@ SPEECH_49
Definition: Player.h:95
SPEECH_63
@ SPEECH_63
Definition: Player.h:109
CHARACTER_EXPRESSION_SCARED
@ CHARACTER_EXPRESSION_SCARED
Definition: Player.h:385
pSpriteObjects
std::array< SpriteObject, MAX_SPRITE_OBJECTS > pSpriteObjects
Definition: SpriteObject.cpp:34
PLAYER_CLASS_CLERIC
@ PLAYER_CLASS_CLERIC
Definition: Player.h:240
PLAYER_CLASS_ASSASSIN
@ PLAYER_CLASS_ASSASSIN
Definition: Player.h:223
SPEECH_57
@ SPEECH_57
Definition: Player.h:103
SPEECH_61
@ SPEECH_61
Definition: Player.h:107
pMonsterStats
struct MonsterStats * pMonsterStats
Definition: Monsters.cpp:8
ItemGen::GetItemEquipType
ITEM_EQUIP_TYPE GetItemEquipType()
Definition: Items.cpp:1504
PLAYER_BUFF_SHIELD
@ PLAYER_BUFF_SHIELD
Definition: Player.h:27
CHARACTER_EXPRESSION_23
@ CHARACTER_EXPRESSION_23
Definition: Player.h:365
PLAYER_BUFF_ACCURACY
@ PLAYER_BUFF_ACCURACY
Definition: Player.h:29
PLAYER_BUFF_STRENGTH
@ PLAYER_BUFF_STRENGTH
Definition: Player.h:33
SPEECH_110
@ SPEECH_110
Definition: Player.h:156
Player::ReceiveDamage
int ReceiveDamage(signed int amount, DAMAGE_TYPE dmg_type)
Definition: Player.cpp:1816
SpellStats::pInfos
SpellInfo pInfos[100]
Definition: Spells.h:192
DecalBuilder::AddBloodsplat
void AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9)
Definition: DecalBuilder.cpp:50
CHARACTER_EXPRESSION_55
@ CHARACTER_EXPRESSION_55
Definition: Player.h:388
PlayerSpeechID
enum PlayerSpeech PlayerSpeechID
Definition: Player.cpp:48
PLAYER_SKILL_AXE
@ PLAYER_SKILL_AXE
Definition: Player.h:174
SPEECH_80
@ SPEECH_80
Definition: Player.h:126
SpellInfo::uSchool
SPELL_SCHOOL uSchool
Definition: Spells.h:183
SPEECH_19
@ SPEECH_19
Definition: Player.h:65
SPEECH_25
@ SPEECH_25
Definition: Player.h:71
EQUIP_SHIELD
@ EQUIP_SHIELD
Definition: Items.h:231
Actor
Definition: Actor.h:151
SPEECH_67
@ SPEECH_67
Definition: Player.h:113
AudioPlayer::PlaySound
void PlaySound(SoundID eSoundID, int pid, unsigned int uNumRepeats, int x, int y, int a7)
Definition: AudioPlayer.cpp:195
CHARACTER_EXPRESSION_DMGRECVD_MAJOR
@ CHARACTER_EXPRESSION_DMGRECVD_MAJOR
Definition: Player.h:378
PlayerCreation_AttributeProps::uBaseStep
unsigned char uBaseStep
Definition: Player.cpp:55
CHARACTER_EXPRESSION_16
@ CHARACTER_EXPRESSION_16
Definition: Player.h:358
MonsterInfo::uSpell1ID
uint8_t uSpell1ID
Definition: Monsters.h:147
engine
std::shared_ptr< Engine > engine
Definition: Engine.cpp:130
CHARACTER_RACE_DWARF
@ CHARACTER_RACE_DWARF
Definition: Player.h:164
PLAYER_SKILL_EARTH
@ PLAYER_SKILL_EARTH
Definition: Player.h:186
PLAYER_CLASS_MASTER
@ PLAYER_CLASS_MASTER
Definition: Player.h:226
SPEECH_96
@ SPEECH_96
Definition: Player.h:142
SPEECH_103
@ SPEECH_103
Definition: Player.h:149
PLAYER_SKILL_CLUB
@ PLAYER_SKILL_CLUB
Definition: Player.h:208
CHARACTER_EXPRESSION_39
@ CHARACTER_EXPRESSION_39
Definition: Player.h:381
PLAYER_SKILL_MIND
@ PLAYER_SKILL_MIND
Definition: Player.h:188
localization
Localization * localization
Definition: Localization.cpp:11
MonsterInfo::field_3C_some_special_attack
int16_t field_3C_some_special_attack
Definition: Monsters.h:173
SPEECH_NotEnoughGold
@ SPEECH_NotEnoughGold
Definition: Player.h:84
SPEECH_83
@ SPEECH_83
Definition: Player.h:129
PLAYER_CLASS_HERO
@ PLAYER_CLASS_HERO
Definition: Player.h:230
PLAYER_SKILL_LEARNING
@ PLAYER_SKILL_LEARNING
Definition: Player.h:207
PLAYER_BUFF_WATER_WALK
@ PLAYER_BUFF_WATER_WALK
Definition: Player.h:37
CHARACTER_EXPRESSION_DEAD
@ CHARACTER_EXPRESSION_DEAD
Definition: Player.h:395
CHARACTER_EXPRESSION_SLEEP
@ CHARACTER_EXPRESSION_SLEEP
Definition: Player.h:346
SPEECH_46
@ SPEECH_46
Definition: Player.h:92
PLAYER_CLASS_ARCHMAGE
@ PLAYER_CLASS_ARCHMAGE
Definition: Player.h:250
Actor::CalcMagicalDamageToActor
int CalcMagicalDamageToActor(DAMAGE_TYPE dmgType, int incomingDmg)
Definition: Actor.cpp:4314
CHARACTER_EXPRESSION_INSANE
@ CHARACTER_EXPRESSION_INSANE
Definition: Player.h:349
PLAYER_SKILL_BOW
@ PLAYER_SKILL_BOW
Definition: Player.h:176
SPEECH_42
@ SPEECH_42
Definition: Player.h:88
Party::pPlayers
std::array< Player, 4 > pPlayers
Definition: Party.h:310
SPEECH_DO_POTION_FINE
@ SPEECH_DO_POTION_FINE
Definition: Player.h:62
CHARACTER_EXPRESSION_33
@ CHARACTER_EXPRESSION_33
Definition: Player.h:375
PLAYER_CLASS_PALADIN
@ PLAYER_CLASS_PALADIN
Definition: Player.h:228
CHARACTER_EXPRESSION_DMGRECVD_MINOR
@ CHARACTER_EXPRESSION_DMGRECVD_MINOR
Definition: Player.h:376
SpriteObject::uType
SPRITE_OBJECT_TYPE uType
Definition: SpriteObject.h:215
SPEECH_98
@ SPEECH_98
Definition: Player.h:144
CHARACTER_EXPRESSION_CURSED
@ CHARACTER_EXPRESSION_CURSED
Definition: Player.h:344
Actor::ActorHitOrMiss
bool ActorHitOrMiss(Player *pPlayer)
Definition: Actor.cpp:4293
SEX_FEMALE
@ SEX_FEMALE
Definition: Player.h:399
SEX_MALE
@ SEX_MALE
Definition: Player.h:399
Actor::Die
static void Die(unsigned int uActorID)
Definition: Actor.cpp:1906
CHARACTER_EXPRESSION_UNCONCIOUS
@ CHARACTER_EXPRESSION_UNCONCIOUS
Definition: Player.h:353
SPEECH_PickMe
@ SPEECH_PickMe
Definition: Player.h:148
SPEECH_51
@ SPEECH_51
Definition: Player.h:97
SPEECH_17
@ SPEECH_17
Definition: Player.h:63
SPEECH_48
@ SPEECH_48
Definition: Player.h:94
SPEECH_26
@ SPEECH_26
Definition: Player.h:72
PLAYER_CLASS_ROGUE
@ PLAYER_CLASS_ROGUE
Definition: Player.h:221
pPlayers
NZIArray< struct Player *, 5 > pPlayers
Definition: Player.cpp:46
PLAYER_BUFF_RESIST_FIRE
@ PLAYER_BUFF_RESIST_FIRE
Definition: Player.h:19
PLAYER_SKILL_ITEM_ID
@ PLAYER_SKILL_ITEM_ID
Definition: Player.h:192
PLAYER_SKILL_FIRE
@ PLAYER_SKILL_FIRE
Definition: Player.h:183
SPEECH_Falling_scream
@ SPEECH_Falling_scream
Definition: Player.h:112
PLAYER_CLASS_ARCHER
@ PLAYER_CLASS_ARCHER
Definition: Player.h:232
Player::GetActualEndurance
int GetActualEndurance()
Definition: Player.cpp:1099
PLAYER_SKILL_UNARMED
@ PLAYER_SKILL_UNARMED
Definition: Player.h:202
PLAYER_CLASS_WIZARD
@ PLAYER_CLASS_WIZARD
Definition: Player.h:249
Dead
@ Dead
Definition: Actor.h:80
SPEECH_10
@ SPEECH_10
Definition: Player.h:56
ACTOR_BUFF_SHRINK
@ ACTOR_BUFF_SHRINK
Definition: Actor.h:41
Player::GetMainHandItem
ItemGen * GetMainHandItem()
Definition: Player.cpp:7542
SPEECH_IDENTIFY_MONSTER_WEAKER
@ SPEECH_IDENTIFY_MONSTER_WEAKER
Definition: Player.h:150
SPEECH_47
@ SPEECH_47
Definition: Player.h:93
Actor::uAIState
AIState uAIState
Definition: Actor.h:307
PLAYER_CLASS_RANGER
@ PLAYER_CLASS_RANGER
Definition: Player.h:236
PLAYER_CLASS_ARCH_DRUID
@ PLAYER_CLASS_ARCH_DRUID
Definition: Player.h:246
SPEECH_9
@ SPEECH_9
Definition: Player.h:55
PLAYER_SKILL_LIGHT
@ PLAYER_SKILL_LIGHT
Definition: Player.h:190
SPEECH_60
@ SPEECH_60
Definition: Player.h:106
SPEECH_100
@ SPEECH_100
Definition: Player.h:146
CHARACTER_EXPRESSION_13
@ CHARACTER_EXPRESSION_13
Definition: Player.h:355
CHARACTER_EXPRESSION_22
@ CHARACTER_EXPRESSION_22
Definition: Player.h:364
Actor::ApplyFineForKillingPeasant
static void ApplyFineForKillingPeasant(unsigned int uActorID)
Definition: Actor.cpp:1223
SPEECH_40
@ SPEECH_40
Definition: Player.h:86
PLAYER_SKILL_BODYBUILDING
@ PLAYER_SKILL_BODYBUILDING
Definition: Player.h:195
stru319::which_player_to_attack
int which_player_to_attack(struct Actor *pActor)
Definition: Actor.cpp:3754
PLAYER_SKILL_PERCEPTION
@ PLAYER_SKILL_PERCEPTION
Definition: Player.h:197
CHARACTER_EXPRESSION_FALLING
@ CHARACTER_EXPRESSION_FALLING
Definition: Player.h:391
CHARACTER_EXPRESSION_29
@ CHARACTER_EXPRESSION_29
Definition: Player.h:371
CHARACTER_EXPRESSION_38
@ CHARACTER_EXPRESSION_38
Definition: Player.h:380
SPEECH_97
@ SPEECH_97
Definition: Player.h:143
PLAYER_SKILL_MISC
@ PLAYER_SKILL_MISC
Definition: Player.h:209
SPEECH_31
@ SPEECH_31
Definition: Player.h:77
CHARACTER_EXPRESSION_25
@ CHARACTER_EXPRESSION_25
Definition: Player.h:367
PLAYER_SKILL_DIPLOMACY
@ PLAYER_SKILL_DIPLOMACY
Definition: Player.h:198
CHARACTER_RACE_HUMAN
@ CHARACTER_RACE_HUMAN
Definition: Player.h:161
SPEECH_69
@ SPEECH_69
Definition: Player.h:115
DAMAGE_TYPE
DAMAGE_TYPE
Definition: Items.h:10
SPEECH_11
@ SPEECH_11
Definition: Player.h:57
pParty
Party * pParty
Definition: Party.cpp:30
CHARACTER_EXPRESSION_28
@ CHARACTER_EXPRESSION_28
Definition: Player.h:370
CHARACTER_EXPRESSION_WEAK
@ CHARACTER_EXPRESSION_WEAK
Definition: Player.h:345
PLAYER_SKILL_TIEVERY
@ PLAYER_SKILL_TIEVERY
Definition: Player.h:199
CHARACTER_EXPRESSION_19
@ CHARACTER_EXPRESSION_19
Definition: Player.h:361
CHARACTER_EXPRESSION_PARALYZED
@ CHARACTER_EXPRESSION_PARALYZED
Definition: Player.h:352
SPEECH_52
@ SPEECH_52
Definition: Player.h:98
PLAYER_SKILL_SPIRIT
@ PLAYER_SKILL_SPIRIT
Definition: Player.h:187
SPEECH_Yell
@ SPEECH_Yell
Definition: Player.h:111
SPEECH_20
@ SPEECH_20
Definition: Player.h:66
SPEECH_14
@ SPEECH_14
Definition: Player.h:60
PLAYER_CLASS_PRIEST
@ PLAYER_CLASS_PRIEST
Definition: Player.h:241
EQUIP_ARMOUR
@ EQUIP_ARMOUR
Definition: Items.h:230
SPEECH_GoodDay
@ SPEECH_GoodDay
Definition: Player.h:68
PLAYER_BUFF_SPEED
@ PLAYER_BUFF_SPEED
Definition: Player.h:35
EQUIP_SINGLE_HANDED
@ EQUIP_SINGLE_HANDED
Definition: Items.h:227
PLAYER_SKILL_DODGE
@ PLAYER_SKILL_DODGE
Definition: Player.h:201
SPEECH_SetSail
@ SPEECH_SetSail
Definition: Player.h:118
Log::Info
void Info(const wchar_t *pFormat,...)
Definition: Log.cpp:11
viewparams
struct ViewingParams * viewparams
Definition: mm7_data.cpp:22
CHARACTER_EXPRESSION_26
@ CHARACTER_EXPRESSION_26
Definition: Player.h:368
PLAYER_CLASS_PRIEST_OF_SUN
@ PLAYER_CLASS_PRIEST_OF_SUN
Definition: Player.h:242
SPEECH_33
@ SPEECH_33
Definition: Player.h:79
SPEECH_84
@ SPEECH_84
Definition: Player.h:130
CHARACTER_EXPRESSION_14
@ CHARACTER_EXPRESSION_14
Definition: Player.h:356
MonsterInfo::uID
uint16_t uID
Definition: Monsters.h:169
PLAYER_SKILL_MEDITATION
@ PLAYER_SKILL_MEDITATION
Definition: Player.h:196
ItemGen::uItemID
int uItemID
Definition: Items.h:326
MonsterInfo::uExp
unsigned int uExp
Definition: Monsters.h:177
SPEECH_CarriageReady
@ SPEECH_CarriageReady
Definition: Player.h:117
SPEECH_44
@ SPEECH_44
Definition: Player.h:90
PLAYER_BUFF_BLESS
@ PLAYER_BUFF_BLESS
Definition: Player.h:15
PLAYER_SKILL_AIR
@ PLAYER_SKILL_AIR
Definition: Player.h:184
ItemGen::GetPlayerSkillType
unsigned char GetPlayerSkillType()
Definition: Items.cpp:1512
PLAYER_CLASS_LICH
@ PLAYER_CLASS_LICH
Definition: Player.h:251
SPEECH_1
@ SPEECH_1
Definition: Player.h:47
SpriteObject::spell_id
int spell_id
Definition: SpriteObject.h:228
SPEECH_37
@ SPEECH_37
Definition: Player.h:83
MonsterInfo::bQuestMonster
uint16_t bQuestMonster
Definition: Monsters.h:170
pActors
std::array< Actor, 500 > pActors
Definition: Actor.cpp:38
CHARACTER_EXPRESSION_INVALID
@ CHARACTER_EXPRESSION_INVALID
Definition: Player.h:342
PLAYER_SKILL_LEATHER
@ PLAYER_SKILL_LEATHER
Definition: Player.h:180
SPEECH_27
@ SPEECH_27
Definition: Player.h:73
Actor::uActorRadius
uint16_t uActorRadius
Definition: Actor.h:295
SPEECH_43
@ SPEECH_43
Definition: Player.h:89
PLAYER_SKILL_MACE
@ PLAYER_SKILL_MACE
Definition: Player.h:177
CHARACTER_EXPRESSION_56
@ CHARACTER_EXPRESSION_56
Definition: Player.h:389
SPEECH_64
@ SPEECH_64
Definition: Player.h:110
PLAYER_SKILL_TRAP_DISARM
@ PLAYER_SKILL_TRAP_DISARM
Definition: Player.h:200
PLAYER_CLASS_DRUID
@ PLAYER_CLASS_DRUID
Definition: Player.h:244
SPEECH_2
@ SPEECH_2
Definition: Player.h:48
Player::pName
char pName[16]
Definition: Player.h:637
SPEECH_87
@ SPEECH_87
Definition: Player.h:133
SPEECH_91
@ SPEECH_91
Definition: Player.h:137
PLAYER_SKILL_WATER
@ PLAYER_SKILL_WATER
Definition: Player.h:185
SPEECH_3
@ SPEECH_3
Definition: Player.h:49
CHARACTER_EXPRESSION_DMGRECVD_MODERATE
@ CHARACTER_EXPRESSION_DMGRECVD_MODERATE
Definition: Player.h:377
MonsterStats::pInfos
MonsterInfo pInfos[265]
Definition: Monsters.h:194
SPEECH_55
@ SPEECH_55
Definition: Player.h:101
stru_50C198
stru319 stru_50C198
Definition: Actor.cpp:41
MonsterInfo::uSpecialAttackType
SPECIAL_ATTACK_TYPE uSpecialAttackType
Definition: Monsters.h:133
MonsterInfo::uSpecialAttackLevel
uint8_t uSpecialAttackLevel
Definition: Monsters.h:134
PLAYER_CLASS_SORCERER
@ PLAYER_CLASS_SORCERER
Definition: Player.h:248
CHARACTER_EXPRESSION_32
@ CHARACTER_EXPRESSION_32
Definition: Player.h:374
CHARACTER_EXPRESSION_31
@ CHARACTER_EXPRESSION_31
Definition: Player.h:373
Player::GetMaxHealth
int GetMaxHealth()
Definition: Player.cpp:2354
PLAYER_BUFF_RESIST_AIR
@ PLAYER_BUFF_RESIST_AIR
Definition: Player.h:14
CHARACTER_RACE
CHARACTER_RACE
Definition: Player.h:160
SPEECH_CantRestHere
@ SPEECH_CantRestHere
Definition: Player.h:59
PLAYER_CLASS_THEIF
@ PLAYER_CLASS_THEIF
Definition: Player.h:220
PLAYER_BUFF_INTELLIGENCE
@ PLAYER_BUFF_INTELLIGENCE
Definition: Player.h:31
Player::GetParameterBonus
int GetParameterBonus(int player_parameter)
Definition: Player.cpp:2623
PLAYER_SKILL_SPEAR
@ PLAYER_SKILL_SPEAR
Definition: Player.h:175
SPEECH_92
@ SPEECH_92
Definition: Player.h:138
PlayerCreation_AttributeProps::uBaseValue
unsigned char uBaseValue
Definition: Player.cpp:52
PLAYER_CLASS_SNIPER
@ PLAYER_CLASS_SNIPER
Definition: Player.h:235
ITEM_RELIC_KELEBRIM
@ ITEM_RELIC_KELEBRIM
Definition: Items.h:173
SPEECH_IDENTIFY_MONSTER_106
@ SPEECH_IDENTIFY_MONSTER_106
Definition: Player.h:152
SPEECH_6
@ SPEECH_6
Definition: Player.h:52
SPEECH_28
@ SPEECH_28
Definition: Player.h:74
PLAYER_SKILL_SHIELD
@ PLAYER_SKILL_SHIELD
Definition: Player.h:179
PLAYER_BUFF_STONESKIN
@ PLAYER_BUFF_STONESKIN
Definition: Player.h:28
pSpellStats
struct SpellStats * pSpellStats
Definition: Spells.cpp:32
PLAYER_SKILL_ALCHEMY
@ PLAYER_SKILL_ALCHEMY
Definition: Player.h:206
SPEECH_56
@ SPEECH_56
Definition: Player.h:102
SPEECH_93
@ SPEECH_93
Definition: Player.h:139
PLAYER_CLASS_MASTER_ARCHER
@ PLAYER_CLASS_MASTER_ARCHER
Definition: Player.h:234
ItemGen::IsBroken
bool IsBroken()
Definition: Items.h:304
Party::GivePartyExp
void GivePartyExp(unsigned int pEXPNum)
Definition: Party.cpp:938
PLAYER_CLASS_BOUNTY_HUNTER
@ PLAYER_CLASS_BOUNTY_HUNTER
Definition: Player.h:239
SPEECH_21
@ SPEECH_21
Definition: Player.h:67
SPEECH_54
@ SPEECH_54
Definition: Player.h:100
EQUIP_TWO_HANDED
@ EQUIP_TWO_HANDED
Definition: Items.h:228
PLAYER_CLASS_BLACK_KNIGHT
@ PLAYER_CLASS_BLACK_KNIGHT
Definition: Player.h:219
PLAYER_CLASS_NINJA
@ PLAYER_CLASS_NINJA
Definition: Player.h:227
PLAYER_BUFF_ENDURANCE
@ PLAYER_BUFF_ENDURANCE
Definition: Player.h:30
OBJECT_Player
@ OBJECT_Player
Definition: Actor.h:68
Party::bTurnBasedModeOn
bool bTurnBasedModeOn
Definition: Party.h:305
PLAYER_CLASS_WARLOCK
@ PLAYER_CLASS_WARLOCK
Definition: Player.h:247
PLAYER_BUFF_WILLPOWER
@ PLAYER_BUFF_WILLPOWER
Definition: Player.h:34
PLAYER_SKILL_STEALING
@ PLAYER_SKILL_STEALING
Definition: Player.h:205
_4D864C_force_sw_render_rules
char _4D864C_force_sw_render_rules
Definition: mm7_data.cpp:208
uint8_t
unsigned __int8 uint8_t
Definition: SDL_config.h:35
PLAYER_SKILL_CHAIN
@ PLAYER_SKILL_CHAIN
Definition: Player.h:181
SPEECH_58
@ SPEECH_58
Definition: Player.h:104
PLAYER_SEX
PLAYER_SEX
Definition: Player.h:399
Player::GetOffHandItem
ItemGen * GetOffHandItem()
Definition: Player.cpp:7540
PLAYER_BUFF_FATE
@ PLAYER_BUFF_FATE
Definition: Player.h:18
SPEECH_50
@ SPEECH_50
Definition: Player.h:96
CHARACTER_EXPRESSION_27
@ CHARACTER_EXPRESSION_27
Definition: Player.h:369
SPEECH_75
@ SPEECH_75
Definition: Player.h:121
CHARACTER_EXPRESSION_DISEASED
@ CHARACTER_EXPRESSION_DISEASED
Definition: Player.h:351
SPEECH_35
@ SPEECH_35
Definition: Player.h:81
decal_builder
static DecalBuilder * decal_builder
Definition: Player.cpp:43
PLAYER_BUFF_HEROISM
@ PLAYER_BUFF_HEROISM
Definition: Player.h:22
SPEECH_24
@ SPEECH_24
Definition: Player.h:70
SpriteObject::spell_level
int spell_level
Definition: SpriteObject.h:229
Actor::sCurrentHP
int16_t sCurrentHP
Definition: Actor.h:290
Actor::AggroSurroundingPeasants
static void AggroSurroundingPeasants(unsigned int uActorID, int a2)
Definition: Actor.cpp:717
MonsterInfo::uHP
unsigned int uHP
Definition: Monsters.h:175
SPEECH_108
@ SPEECH_108
Definition: Player.h:154
Player::HasEnchantedItemEquipped
bool HasEnchantedItemEquipped(int uEnchantment)
Definition: Player.cpp:1592
PLAYER_BUFF_RESIST_EARTH
@ PLAYER_BUFF_RESIST_EARTH
Definition: Player.h:17
CHARACTER_RACE_GOBLIN
@ CHARACTER_RACE_GOBLIN
Definition: Player.h:163
CHARACTER_EXPRESSION_ERADICATED
@ CHARACTER_EXPRESSION_ERADICATED
Definition: Player.h:396
SpellBuff::Active
bool Active() const
Definition: Spells.h:162
PLAYER_SKILL_SWORD
@ PLAYER_SKILL_SWORD
Definition: Player.h:172
flt_6BE3A4_debug_recmod1
float flt_6BE3A4_debug_recmod1
Definition: mm7_data.cpp:716
SPEECH_GoodEvening
@ SPEECH_GoodEvening
Definition: Player.h:69
CHARACTER_EXPRESSION_18
@ CHARACTER_EXPRESSION_18
Definition: Player.h:360
uint
unsigned int uint
Definition: MM7.h:4
MonsterInfo::uSpell2ID
uint8_t uSpell2ID
Definition: Monsters.h:149
uActiveCharacter
unsigned int uActiveCharacter
Definition: mm7_data.cpp:555
Localization::FormatString
String FormatString(unsigned int index,...) const
Definition: Localization.cpp:17
CHARACTER_EXPRESSION_57
@ CHARACTER_EXPRESSION_57
Definition: Player.h:390
PLAYER_CLASS_WARRIOR_MAGE
@ PLAYER_CLASS_WARRIOR_MAGE
Definition: Player.h:233
SPEECH_78
@ SPEECH_78
Definition: Player.h:124
__debugbreak
void __cdecl __debugbreak(void)
Actor::_43B3E0_CalcDamage
int _43B3E0_CalcDamage(signed int dmgSource)
Definition: Actor.cpp:1314
SPEECH_70
@ SPEECH_70
Definition: Player.h:116
SPEECH_18
@ SPEECH_18
Definition: Player.h:64
SpellBuff::uPower
unsigned __int16 uPower
Definition: Spells.h:166
SPEECH_59
@ SPEECH_59
Definition: Player.h:105
PLAYER_BUFF_RESIST_BODY
@ PLAYER_BUFF_RESIST_BODY
Definition: Player.h:16
PLAYER_SKILL_REPAIR
@ PLAYER_SKILL_REPAIR
Definition: Player.h:194
SPEECH_12
@ SPEECH_12
Definition: Player.h:58
CHARACTER_EXPRESSION_37
@ CHARACTER_EXPRESSION_37
Definition: Player.h:379
CHARACTER_EXPRESSION_15
@ CHARACTER_EXPRESSION_15
Definition: Player.h:357
GameUI_StatusBar_OnEvent
void GameUI_StatusBar_OnEvent(const String &str, unsigned int num_seconds)
Definition: UIStatusBar.cpp:33
PLAYER_SKILL_INVALID
@ PLAYER_SKILL_INVALID
Definition: Player.h:210
PLAYER_BUFF_REGENERATION
@ PLAYER_BUFF_REGENERATION
Definition: Player.h:26
Player::sHealth
int sHealth
Definition: Player.h:766
Player::PlaySound
void PlaySound(PlayerSpeech speech, int a3)
Definition: Player.cpp:7874
SPEECH_8
@ SPEECH_8
Definition: Player.h:54
SpriteObject::spell_skill
int spell_skill
Definition: SpriteObject.h:230
SPEECH_79
@ SPEECH_79
Definition: Player.h:125
SPEECH_77
@ SPEECH_77
Definition: Player.h:123
SPELL_BOW_ARROW
@ SPELL_BOW_ARROW
Definition: Spells.h:121
CHARACTER_EXPRESSION_54
@ CHARACTER_EXPRESSION_54
Definition: Player.h:387
SPEECH_76
@ SPEECH_76
Definition: Player.h:122
ViewingParams::bRedrawGameUI
int bRedrawGameUI
Definition: Viewport.h:74
SPEECH_74
@ SPEECH_74
Definition: Player.h:120
CHARACTER_EXPRESSION_1
@ CHARACTER_EXPRESSION_1
Definition: Player.h:343
SoundID
SoundID
Definition: AudioPlayer.h:10
SPEECH_107
@ SPEECH_107
Definition: Player.h:153
PLAYER_CLASS_SPY
@ PLAYER_CLASS_SPY
Definition: Player.h:222
PLAYER_CLASS_CHAMPION
@ PLAYER_CLASS_CHAMPION
Definition: Player.h:218
Player::GetArmorItem
ItemGen * GetArmorItem()
Definition: Player.cpp:7548
SPEECH_81
@ SPEECH_81
Definition: Player.h:127
PLAYER_BUFF_RESIST_WATER
@ PLAYER_BUFF_RESIST_WATER
Definition: Player.h:36
SPEECH_90
@ SPEECH_90
Definition: Player.h:136
PLAYER_SKILL_DARK
@ PLAYER_SKILL_DARK
Definition: Player.h:191
PLAYER_SKILL_BODY
@ PLAYER_SKILL_BODY
Definition: Player.h:189
SPEECH_62
@ SPEECH_62
Definition: Player.h:108
PLAYER_SKILL_MERCHANT
@ PLAYER_SKILL_MERCHANT
Definition: Player.h:193
SPEECH_4
@ SPEECH_4
Definition: Player.h:50
ITEM_ARTIFACT_ELFBANE
@ ITEM_ARTIFACT_ELFBANE
Definition: Items.h:184
CHARACTER_RACE_ELF
@ CHARACTER_RACE_ELF
Definition: Player.h:162
pAudioPlayer
AudioPlayer * pAudioPlayer
Definition: AudioPlayer.cpp:20
SPEECH_95
@ SPEECH_95
Definition: Player.h:141
SPEECH_30
@ SPEECH_30
Definition: Player.h:76
Player::GetActualSkillLevel
int GetActualSkillLevel(PLAYER_SKILL_TYPE uSkillType)
Definition: Player.cpp:3017
SPEECH_53
@ SPEECH_53
Definition: Player.h:99
CHARACTER_EXPRESSION_POISONED
@ CHARACTER_EXPRESSION_POISONED
Definition: Player.h:350
SPEECH_36
@ SPEECH_36
Definition: Player.h:82
MonsterInfo::uAttack1Type
uint8_t uAttack1Type
Definition: Monsters.h:135
PLAYER_BUFF_LUCK
@ PLAYER_BUFF_LUCK
Definition: Player.h:32
Player::HasItemEquipped
bool HasItemEquipped(ITEM_EQUIP_TYPE uEquipIndex)
Definition: Player.cpp:1583
ItemGen
Definition: Items.h:263
logger
Log * logger
Definition: IocContainer.cpp:47
PlayerSpeech
PlayerSpeech
Definition: Player.h:46
CHARACTER_EXPRESSION_24
@ CHARACTER_EXPRESSION_24
Definition: Player.h:366
PLAYER_BUFF_HAMMERHANDS
@ PLAYER_BUFF_HAMMERHANDS
Definition: Player.h:20
PlayerCreation_AttributeProps::uDroppedStep
unsigned char uDroppedStep
Definition: Player.cpp:54
PLAYER_SKILL_ARMSMASTER
@ PLAYER_SKILL_ARMSMASTER
Definition: Player.h:204
PLAYER_CLASS_KNIGHT
@ PLAYER_CLASS_KNIGHT
Definition: Player.h:216
SPEECH_45
@ SPEECH_45
Definition: Player.h:91
SPEECH_73
@ SPEECH_73
Definition: Player.h:119
CHARACTER_EXPRESSION_21
@ CHARACTER_EXPRESSION_21
Definition: Player.h:363
_A750D8_player_speech_timer
int64_t _A750D8_player_speech_timer
Definition: mm7_data.cpp:763
PLAYER_BUFF_HASTE
@ PLAYER_BUFF_HASTE
Definition: Player.h:21
Actor::pMonsterInfo
struct MonsterInfo pMonsterInfo
Definition: Actor.h:292
SPEECH_109
@ SPEECH_109
Definition: Player.h:155
MonsterInfo::uAttack2Type
uint8_t uAttack2Type
Definition: Monsters.h:141
SPEECH_89
@ SPEECH_89
Definition: Player.h:135
CHARACTER_EXPRESSION_20
@ CHARACTER_EXPRESSION_20
Definition: Player.h:362
PLAYER_BUFF_PRESERVATION
@ PLAYER_BUFF_PRESERVATION
Definition: Player.h:25
SPEECH_99
@ SPEECH_99
Definition: Player.h:145
SPEECH_85
@ SPEECH_85
Definition: Player.h:131
SPEECH_41
@ SPEECH_41
Definition: Player.h:87
CHARACTER_EXPRESSION_DRUNK
@ CHARACTER_EXPRESSION_DRUNK
Definition: Player.h:348
CHARACTER_EXPRESSION_FEAR
@ CHARACTER_EXPRESSION_FEAR
Definition: Player.h:347
ITEM_ARTIFACT_GOVERNORS_ARMOR
@ ITEM_ARTIFACT_GOVERNORS_ARMOR
Definition: Items.h:157
Player::pPlayerBuffs
std::array< SpellBuff, 24 > pPlayerBuffs
Definition: Player.h:756
SPEECH_5
@ SPEECH_5
Definition: Player.h:51
SPEECH_29
@ SPEECH_29
Definition: Player.h:75
MonsterInfo::uLevel
uint8_t uLevel
Definition: Monsters.h:122
PLAYER_CLASS_GREAT_DRUID
@ PLAYER_CLASS_GREAT_DRUID
Definition: Player.h:245
SPEECH_34
@ SPEECH_34
Definition: Player.h:80
PLAYER_CLASS_MONK
@ PLAYER_CLASS_MONK
Definition: Player.h:224
SpriteObject::spell_caster_pid
int spell_caster_pid
Definition: SpriteObject.h:232
SPEECH_32
@ SPEECH_32
Definition: Player.h:78
SPEECH_NoRoom
@ SPEECH_NoRoom
Definition: Player.h:61
SPEECH_88
@ SPEECH_88
Definition: Player.h:134
StatTable
PlayerCreation_AttributeProps StatTable[4][7]
Definition: Player.cpp:59
SPEECH_94
@ SPEECH_94
Definition: Player.h:140
_43AFE3_calc_spell_damage
int _43AFE3_calc_spell_damage(int spellId, int spellLevel, signed int skillMastery, int currentHp)
Definition: Spells.cpp:745
SPEECH_7
@ SPEECH_7
Definition: Player.h:53
PLAYER_SKILL_PLATE
@ PLAYER_SKILL_PLATE
Definition: Player.h:182
SPEECH_101
@ SPEECH_101
Definition: Player.h:147
Actor::pActorBuffs
struct SpellBuff pActorBuffs[22]
Definition: Actor.h:315