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