World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура Party

#include <Party.h>

+ Граф связей класса Party:

Открытые члены

 Party ()
 
void Zero ()
 
void UpdatePlayersAndHirelingsEmotions ()
 
void RestAndHeal ()
 
unsigned int GetPartyFame ()
 
void CreateDefaultParty (bool bDebugGiveItems=false)
 
void Reset ()
 
void ResetPosMiscAndSpellBuffs ()
 
bool HasItem (unsigned int uItemID)
 
void SetHoldingItem (ItemGen *pItem)
 
int GetFirstCanAct ()
 
int GetNextActiveCharacter ()
 
bool _497FC5_check_party_perception_against_level ()
 
bool AddItemToParty (ItemGen *pItem)
 
void Yell ()
 
void CountHirelings ()
 
void GivePartyExp (unsigned int pEXPNum)
 
int GetPartyReputation ()
 
void PartyFindsGold (unsigned int uNumGold, int _1_dont_share_with_followers___2_the_same_but_without_a_message__else_normal)
 
void sub_421B2C_PlaceInInventory_or_DropPickedItem ()
 
int GetGold () const
 
int GetFood () const
 
bool WizardEyeActive ()
 
int WizardEyeSkillLevel ()
 
bool TorchlightActive ()
 
bool FlyActive ()
 
bool WaterWalkActive ()
 
bool ImmolationActive ()
 
int ImmolationSkillLevel ()
 
bool FeatherFallActive ()
 
bool Invisible ()
 
bool GetRedAlert ()
 
void SetRedAlert ()
 
bool GetYellowAlert ()
 
void SetYellowAlert ()
 
GameTimeGetPlayingTime ()
 
bool IsPartyEvil ()
 
bool IsPartyGood ()
 
int _46A89E_immolation_effect (int *affected, int affectedArrSize, int effectRange)
 

Открытые статические члены

static void SetGold (int amount)
 
static void AddGold (int amount)
 
static void TakeGold (int amount)
 
static void SetFood (int amount)
 
static void TakeFood (int amount)
 
static void GiveFood (int amount)
 
static void Sleep8Hours ()
 

Открытые атрибуты

int field_0
 
unsigned int uPartyHeight
 
unsigned int uDefaultPartyHeight
 
int sEyelevel
 
unsigned int uDefaultEyelevel
 
int field_14_radius
 
int y_rotation_granularity
 
unsigned int uWalkSpeed
 
int y_rotation_speed
 
int field_24
 
int field_28
 
GameTime playing_time
 
GameTime last_regenerated
 
PartyTimeStruct PartyTimes
 
Vec3_int_ vPosition
 
int sRotationY
 
int sRotationX
 
Vec3_int_ vPrevPosition
 
int sPrevRotationY
 
int sPrevRotationX
 
int sPrevEyelevel
 
int field_6E0
 
int field_6E4
 
int uFallSpeed
 
int field_6EC
 
int field_6F0
 
int floor_face_pid
 
int walk_sound_timer
 
int _6FC_water_lava_timer
 
int uFallStartY
 
unsigned int bFlying
 
char field_708
 
unsigned __int8 hirelingScrollPosition
 
char cNonHireFollowers
 
char field_70B
 
unsigned int uCurrentYear
 
unsigned int uCurrentMonth
 
unsigned int uCurrentMonthWeek
 
unsigned int uCurrentDayOfMonth
 
unsigned int uCurrentHour
 
unsigned int uCurrentMinute
 
unsigned int uCurrentTimeSecond
 
unsigned int uNumFoodRations
 
int field_72C
 
int field_730
 
unsigned int uNumGold
 
unsigned int uNumGoldInBank
 
unsigned int uNumDeaths
 
int field_740
 
int uNumPrisonTerms
 
unsigned int uNumBountiesCollected
 
int field_74C
 
std::array< __int16, 5 > monster_id_for_hunting
 
std::array< __int16, 5 > monster_for_hunting_killed
 
unsigned char days_played_without_rest
 
unsigned __int8 _quest_bits [64]
 
std::array< unsigned __int8, 16 > pArcomageWins
 
char field_7B5_in_arena_quest
 
char uNumArenaPageWins
 
char uNumArenaSquireWins
 
char uNumArenaKnightWins
 
char uNumArenaLordWins
 
std::array< char, 29 > pIsArtifactFound
 
std::array< char, 39 > field_7d7
 
unsigned char _autonote_bits [26]
 
std::array< char, 60 > field_818
 
std::array< char, 32 > field_854
 
int uNumArcomageWins
 
int uNumArcomageLoses
 
bool bTurnBasedModeOn
 
int field_880
 
int uFlags2
 
PartyAlignment alignment
 
std::array< SpellBuff, 20 > pPartyBuffs
 
std::array< Player, 4 > pPlayers
 
std::array< NPCData, 2 > pHirelings
 
ItemGen pPickedItem
 
unsigned int uFlags
 
std::array< std::array< ItemGen, 12 >, 53 > StandartItemsInShops
 
std::array< std::array< ItemGen, 12 >, 53 > SpecialItemsInShops
 
std::array< std::array< ItemGen, 12 >, 32 > SpellBooksInGuilds
 
std::array< char, 24 > field_1605C
 
char pHireling1Name [100]
 
char pHireling2Name [100]
 
int armageddon_timer
 
int armageddonDamage
 
std::array< int, 4 > pTurnBasedPlayerRecoveryTimes
 
std::array< int, 53 > InTheShopFlags
 
int uFine
 
float flt_TorchlightColorR
 
float flt_TorchlightColorG
 
float flt_TorchlightColorB
 
float TorchLightLastIntensity
 

Подробное описание

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

Конструктор(ы)

◆ Party()

Party::Party ( )
inline

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

153  Zero();
154  }

Перекрестные ссылки Zero().

+ Граф вызовов:

Методы

◆ Zero()

void Party::Zero ( )

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

72  {
73  uFlags2 = 0;
74  uNumGoldInBank = 0;
75 
76  uCurrentYear = 0;
77  uCurrentMonth = 0;
80  uCurrentHour = 0;
81  uCurrentMinute = 0;
83 
86  vPosition.x = 0;
87  vPosition.y = 0;
88  vPosition.z = 0;
89  uFallStartY = 0;
90  sRotationY = 0;
91  sRotationX = 0;
92  uFallSpeed = 0;
93  field_28 = 0;
94  uDefaultPartyHeight = 192;
95  field_14_radius = 37;
97  y_rotation_speed = 90;
98 
99  uWalkSpeed = 384;
100  walk_sound_timer = 0;
101 
102  field_24 = 5;
104  field_708 = 15;
105  field_0 = 25;
106 
107  uNumDeaths = 0;
108  uNumPrisonTerms = 0;
111  monster_id_for_hunting.fill(0);
112  memset(_quest_bits, 0, sizeof(_quest_bits));
113  pArcomageWins.fill(0);
114  uNumArenaPageWins = 0;
117  uNumArenaLordWins = 0;
118 }

Перекрестные ссылки _6FC_water_lava_timer, _quest_bits, days_played_without_rest, field_0, field_14_radius, field_24, field_28, field_708, monster_for_hunting_killed, monster_id_for_hunting, pArcomageWins, sRotationX, sRotationY, uCurrentDayOfMonth, uCurrentHour, uCurrentMinute, uCurrentMonth, uCurrentMonthWeek, uCurrentTimeSecond, uCurrentYear, uDefaultPartyHeight, uFallSpeed, uFallStartY, uFlags2, uNumArenaKnightWins, uNumArenaLordWins, uNumArenaPageWins, uNumArenaSquireWins, uNumBountiesCollected, uNumDeaths, uNumGoldInBank, uNumPrisonTerms, uWalkSpeed, vPosition, walk_sound_timer, y_rotation_granularity и y_rotation_speed.

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

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

◆ UpdatePlayersAndHirelingsEmotions()

void Party::UpdatePlayersAndHirelingsEmotions ( )

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

657  {
658  int v4; // edx@27
659 
661 
662  for (int i = 0; i < 4; ++i) {
663  Player *player = &pPlayers[i];
664  player->uExpressionTimePassed +=
665  (unsigned short)pMiscTimer->uTimeElapsed;
666 
667  uint condition = player->GetMajorConditionIdx();
669  if (player->uExpressionTimePassed < player->uExpressionTimeLength)
670  continue;
671 
672  player->uExpressionTimePassed = 0;
673  if (player->expression != 1 || rand() % 5) {
675  player->uExpressionTimeLength = rand() % 256 + 32;
676  } else {
677  v4 = rand() % 100;
678  if (v4 < 25)
680  else if (v4 < 31)
682  else if (v4 < 37)
684  else if (v4 < 43)
686  else if (v4 < 46)
688  else if (v4 < 52)
690  else if (v4 < 58)
692  else if (v4 < 64)
694  else if (v4 < 70)
696  else if (v4 < 76)
698  else if (v4 < 82)
700  else if (v4 < 88)
702  else if (v4 < 94)
704  else
706  }
707 
708  for (unsigned int j = 0; j < pPlayerFrameTable->uNumFrames; ++j) {
709  PlayerFrame *frame = &pPlayerFrameTable->pFrames[j];
710  if (frame->expression == player->expression) {
711  player->uExpressionTimeLength = 8 * frame->uAnimLength;
712  break;
713  }
714  }
715  } else if (player->expression != CHARACTER_EXPRESSION_DMGRECVD_MINOR &&
718  player->uExpressionTimePassed >= player->uExpressionTimeLength) {
719  player->uExpressionTimeLength = 0;
720  player->uExpressionTimePassed = 0;
721 
722  switch (condition) {
723  case Condition_Dead:
725  break;
726  case Condition_Pertified:
728  break;
731  break;
732  case Condition_Cursed:
734  break;
735  case Condition_Weak:
737  break;
738  case Condition_Sleep:
740  break;
741  case Condition_Fear:
743  break;
744  case Condition_Drunk:
746  break;
747  case Condition_Insane:
749  break;
754  break;
759  break;
760  case Condition_Paralyzed:
762  break;
765  break;
766  default:
767  Error("Invalid condition: %u", condition);
768  }
769  }
770  }
771 
772  for (int i = 0; i < 2; ++i) {
773  NPCData *hireling = &pParty->pHirelings[i];
774  if (!hireling->evt_C) continue;
775 
776  hireling->evt_B += pMiscTimer->uTimeElapsed;
777  if (hireling->evt_B >= hireling->evt_C) {
778  hireling->evt_A = 0;
779  hireling->evt_B = 0;
780  hireling->evt_C = 0;
781 
782  Assert(sizeof(NPCData) == 0x4C);
783  memset(hireling, 0, sizeof(*hireling));
784 
787  viewparams->bRedrawGameUI = true;
788  }
789  }
790 }

Перекрестные ссылки ViewingParams::bRedrawGameUI, CHARACTER_EXPRESSION_1, 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_29, CHARACTER_EXPRESSION_30, CHARACTER_EXPRESSION_54, CHARACTER_EXPRESSION_55, CHARACTER_EXPRESSION_56, CHARACTER_EXPRESSION_57, CHARACTER_EXPRESSION_CURSED, CHARACTER_EXPRESSION_DEAD, CHARACTER_EXPRESSION_DISEASED, CHARACTER_EXPRESSION_DMGRECVD_MAJOR, CHARACTER_EXPRESSION_DMGRECVD_MINOR, CHARACTER_EXPRESSION_DMGRECVD_MODERATE, CHARACTER_EXPRESSION_DRUNK, CHARACTER_EXPRESSION_ERADICATED, CHARACTER_EXPRESSION_FEAR, CHARACTER_EXPRESSION_INSANE, CHARACTER_EXPRESSION_PARALYZED, CHARACTER_EXPRESSION_PERTIFIED, CHARACTER_EXPRESSION_POISONED, CHARACTER_EXPRESSION_SLEEP, CHARACTER_EXPRESSION_UNCONCIOUS, CHARACTER_EXPRESSION_WEAK, cNonHireFollowers, Condition_Cursed, Condition_Dead, Condition_Disease_Medium, Condition_Disease_Severe, Condition_Disease_Weak, Condition_Drunk, Condition_Eradicated, Condition_Fear, Condition_Good, Condition_Insane, Condition_Paralyzed, Condition_Pertified, Condition_Poison_Medium, Condition_Poison_Severe, Condition_Poison_Weak, Condition_Sleep, Condition_Unconcious, Condition_Weak, Condition_Zombie, CountHirelings(), NPCData::evt_A, NPCData::evt_B, NPCData::evt_C, PlayerFrame::expression, Player::expression, Player::GetMajorConditionIdx(), hirelingScrollPosition, PlayerFrameTable::pFrames, pHirelings, pMiscTimer, pParty, pPlayerFrameTable, pPlayers, PlayerFrame::uAnimLength, Player::uExpressionTimeLength, Player::uExpressionTimePassed, PlayerFrameTable::uNumFrames, Timer::uTimeElapsed и viewparams.

Используется в Engine::Draw(), RestAndHeal() и RestAndHeal().

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

◆ RestAndHeal()

void Party::RestAndHeal ( )

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

793  {
794  Player *pPlayer; // esi@4
795  bool have_vessels_soul; // [sp+10h] [bp-8h]@10
796 
797  for (uint i = 0; i < 20; ++i) pParty->pPartyBuffs[i].Reset();
798 
799  for (int pPlayerID = 0; pPlayerID < 4; ++pPlayerID) {
800  pPlayer = &pParty->pPlayers[pPlayerID];
801  for (uint i = 0; i < 20; ++i) pPlayer->pPlayerBuffs[i].Reset();
802 
803  pPlayer->Zero();
804  if (pPlayer->conditions_times[Condition_Dead] ||
807  continue;
808  }
809 
810  pPlayer->conditions_times[Condition_Unconcious].Reset();
811  pPlayer->conditions_times[Condition_Drunk].Reset();
812  pPlayer->conditions_times[Condition_Fear].Reset();
813  pPlayer->conditions_times[Condition_Sleep].Reset();
814  pPlayer->conditions_times[Condition_Weak].Reset();
815 
816  pPlayer->uTimeToRecovery = 0;
817  pPlayer->sHealth = pPlayer->GetMaxHealth();
818  pPlayer->sMana = pPlayer->GetMaxMana();
819  if (pPlayer->classType == PLAYER_CLASS_LICH) {
820  have_vessels_soul = false;
821  for (uint i = 0; i < 126; i++) {
822  if (pPlayer->pInventoryItemList[i].uItemID ==
824  pPlayer->pInventoryItemList[i].uHolderPlayer ==
825  pPlayerID + 1)
826  have_vessels_soul = true;
827  }
828  if (!have_vessels_soul) {
829  pPlayer->sHealth = pPlayer->GetMaxHealth() / 2;
830  pPlayer->sMana = pPlayer->GetMaxMana() / 2;
831  }
832  }
833 
834  if (pPlayer->conditions_times[Condition_Zombie]) {
835  pPlayer->sMana = 0;
836  pPlayer->sHealth /= 2;
837  } else if (pPlayer->conditions_times[Condition_Poison_Severe] ||
839  pPlayer->sHealth /= 4;
840  pPlayer->sMana /= 4;
841  } else if (pPlayer->conditions_times[Condition_Poison_Medium] ||
843  pPlayer->sHealth /= 3;
844  pPlayer->sMana /= 3;
845  } else if (pPlayer->conditions_times[Condition_Poison_Weak] ||
847  pPlayer->sHealth /= 2;
848  pPlayer->sMana /= 2;
849  }
850  if (pPlayer->conditions_times[Condition_Insane]) pPlayer->sMana = 0;
852  }
854 }

Перекрестные ссылки Player::classType, Condition_Dead, Condition_Disease_Medium, Condition_Disease_Severe, Condition_Disease_Weak, Condition_Drunk, Condition_Eradicated, Condition_Fear, Condition_Insane, Condition_Pertified, Condition_Poison_Medium, Condition_Poison_Severe, Condition_Poison_Weak, Condition_Sleep, Condition_Unconcious, Condition_Weak, Condition_Zombie, Player::conditions_times, days_played_without_rest, Player::GetMaxHealth(), Player::GetMaxMana(), ITEM_LICH_JAR_FULL, Player::pInventoryItemList, PLAYER_CLASS_LICH, pParty, pPartyBuffs, Player::pPlayerBuffs, pPlayers, Player::sHealth, Player::sMana, ItemGen::uHolderPlayer, ItemGen::uItemID, UpdatePlayersAndHirelingsEmotions(), Player::uTimeToRecovery и Player::Zero().

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

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

◆ GetPartyFame()

unsigned int Party::GetPartyFame ( )

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

302  {
303  unsigned __int64 total_exp = 0;
304  for (uint i = 0; i < 4; ++i) total_exp += pPlayers[i].uExperience;
305  return std::min(
306  (unsigned int)(total_exp / 1000),
307  UINT_MAX); // min wasn't present, but could be incorrect without it
308 }

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

Используется в GameUI_InitializeDialogue(), GUIWindow_QuickReference::Update() и GUIWindow_Dialogue::Update().

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

◆ CreateDefaultParty()

void Party::CreateDefaultParty ( bool  bDebugGiveItems = false)

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

311  {
312  Player *pCharacter; // esi@3
313  int uSkillIdx; // eax@11
314  unsigned int v16; // [sp-4h] [bp-44h]@26
315  signed int uNumPlayers; // [sp+18h] [bp-28h]@1
316  ItemGen Dst; // [sp+1Ch] [bp-24h]@10
317 
318  pHireling1Name[0] = 0;
319  pHireling2Name[0] = 0;
320  this->hirelingScrollPosition = 0;
321  memset(&pHirelings, 0, sizeof(pHirelings));
322 
323  strcpy(this->pPlayers[0].pName, localization->GetString(509)); // Zoltan
324  this->pPlayers[0].uPrevFace = 17;
325  this->pPlayers[0].uCurrentFace = 17;
326  this->pPlayers[0].uPrevVoiceID = 17;
327  this->pPlayers[0].uVoiceID = 17;
328  this->pPlayers[0].uMight = 30;
329  this->pPlayers[0].uIntelligence = 5;
330  this->pPlayers[0].uWillpower = 5;
331  this->pPlayers[0].uEndurance = 13;
332  this->pPlayers[0].uAccuracy = 13;
333  this->pPlayers[0].uSpeed = 14;
334  this->pPlayers[0].uLuck = 7;
335  this->pPlayers[0].pActiveSkills[PLAYER_SKILL_LEATHER] = 1;
336  this->pPlayers[0].pActiveSkills[PLAYER_SKILL_ARMSMASTER] = 1;
337  this->pPlayers[0].pActiveSkills[PLAYER_SKILL_BOW] = 1;
338  this->pPlayers[0].pActiveSkills[PLAYER_SKILL_SWORD] = 1;
339 
340  strcpy(this->pPlayers[1].pName, localization->GetString(506)); // Roderic
341  this->pPlayers[1].uPrevFace = 3;
342  this->pPlayers[1].uCurrentFace = 3;
343  this->pPlayers[1].uPrevVoiceID = 3;
344  this->pPlayers[1].uVoiceID = 3;
345  this->pPlayers[1].uMight = 13;
346  this->pPlayers[1].uIntelligence = 9;
347  this->pPlayers[1].uWillpower = 9;
348  this->pPlayers[1].uEndurance = 13;
349  this->pPlayers[1].uAccuracy = 13;
350  this->pPlayers[1].uSpeed = 13;
351  this->pPlayers[1].uLuck = 13;
352  this->pPlayers[1].pActiveSkills[PLAYER_SKILL_LEATHER] = 1;
353  this->pPlayers[1].pActiveSkills[PLAYER_SKILL_STEALING] = 1;
354  this->pPlayers[1].pActiveSkills[PLAYER_SKILL_DAGGER] = 1;
355  this->pPlayers[1].pActiveSkills[PLAYER_SKILL_TRAP_DISARM] = 1;
356 
357  strcpy(this->pPlayers[2].pName, localization->GetString(508)); // Serena
358  this->pPlayers[2].uPrevFace = 14;
359  this->pPlayers[2].uCurrentFace = 14;
360  this->pPlayers[2].uPrevVoiceID = 14;
361  this->pPlayers[2].uVoiceID = 14;
362  this->pPlayers[2].uMight = 12;
363  this->pPlayers[2].uIntelligence = 9;
364  this->pPlayers[2].uWillpower = 20;
365  this->pPlayers[2].uEndurance = 22;
366  this->pPlayers[2].uAccuracy = 7;
367  this->pPlayers[2].uSpeed = 13;
368  this->pPlayers[2].uLuck = 7;
369  this->pPlayers[2].pActiveSkills[PLAYER_SKILL_ALCHEMY] = 1;
370  this->pPlayers[2].pActiveSkills[PLAYER_SKILL_LEATHER] = 1;
371  this->pPlayers[2].pActiveSkills[PLAYER_SKILL_BODY] = 1;
372  this->pPlayers[2].pActiveSkills[PLAYER_SKILL_MACE] = 1;
373 
374  strcpy(this->pPlayers[3].pName, localization->GetString(507)); // Alexis
375  this->pPlayers[3].uPrevFace = 10;
376  this->pPlayers[3].uCurrentFace = 10;
377  this->pPlayers[3].uEndurance = 13;
378  this->pPlayers[3].uAccuracy = 13;
379  this->pPlayers[3].uSpeed = 13;
380  this->pPlayers[3].uPrevVoiceID = 10;
381  this->pPlayers[3].uVoiceID = 10;
382  this->pPlayers[3].uMight = 5;
383  this->pPlayers[3].uIntelligence = 30;
384  this->pPlayers[3].uWillpower = 9;
385  this->pPlayers[3].uLuck = 7;
386  this->pPlayers[3].pActiveSkills[PLAYER_SKILL_LEATHER] = 1;
387  this->pPlayers[3].pActiveSkills[PLAYER_SKILL_AIR] = 1;
388  this->pPlayers[3].pActiveSkills[PLAYER_SKILL_FIRE] = 1;
389  this->pPlayers[3].pActiveSkills[PLAYER_SKILL_STAFF] = 1;
390 
391  for (uNumPlayers = 0; uNumPlayers < 4; uNumPlayers++) {
392  pCharacter = &pParty->pPlayers[uNumPlayers];
393 
394  if (pCharacter->classType == PLAYER_CLASS_KNIGHT)
395  pCharacter->sResMagicBase = 10;
396 
397  pCharacter->lastOpenedSpellbookPage = 0;
398  for (int i = 0; i < 9; i++) { // for Magic Book
399  if (pPlayers[uNumPlayers].pActiveSkills[12 + i]) {
400  pCharacter->lastOpenedSpellbookPage = i;
401  break;
402  }
403  }
404 
405  pCharacter->uExpressionTimePassed = 0;
406 
407  if (bDebugGiveItems) {
408  Dst.Reset();
409  pItemsTable->GenerateItem(2, 40, &Dst); // ring
410  pCharacter->AddItem2(-1, &Dst);
411  for (uSkillIdx = 0; uSkillIdx < 36; uSkillIdx++) {
412  if (pCharacter->pActiveSkills[uSkillIdx]) {
413  switch (uSkillIdx) {
414  case PLAYER_SKILL_STAFF:
415  pCharacter->WearItem(ITEM_STAFF_1);
416  break;
417  case PLAYER_SKILL_SWORD:
418  pCharacter->WearItem(ITEM_LONGSWORD_1);
419  break;
420  case PLAYER_SKILL_DAGGER:
421  pCharacter->WearItem(ITEM_DAGGER_1);
422  break;
423  case PLAYER_SKILL_AXE:
424  pCharacter->WearItem(ITEM_AXE_1);
425  break;
426  case PLAYER_SKILL_SPEAR:
427  pCharacter->WearItem(ITEM_SPEAR_1);
428  break;
429  case PLAYER_SKILL_BOW:
430  pCharacter->WearItem(ITEM_CROSSBOW_1);
431  break;
432  case PLAYER_SKILL_MACE:
433  pCharacter->WearItem(ITEM_MACE_1);
434  break;
435  case PLAYER_SKILL_SHIELD:
436  pCharacter->WearItem(ITEM_BUCKLER_1);
437  break;
439  pCharacter->WearItem(ITEM_LEATHER_1);
440  break;
441  case PLAYER_SKILL_CHAIN:
442  pCharacter->WearItem(ITEM_CHAINMAIL_1);
443  break;
444  case PLAYER_SKILL_PLATE:
445  pCharacter->WearItem(ITEM_PLATE_1);
446  break;
447  case PLAYER_SKILL_FIRE:
448  pCharacter->AddItem(-1, ITEM_SPELLBOOK_FIRE_STRIKE);
449  break;
450  case PLAYER_SKILL_AIR:
451  pCharacter->AddItem(
453  break;
454  case PLAYER_SKILL_WATER:
455  pCharacter->AddItem(
457  break;
458  case PLAYER_SKILL_EARTH:
459  pCharacter->AddItem(-1, ITEM_SPELLBOOK_EARTH_SLOW);
460  break;
461  case PLAYER_SKILL_SPIRIT:
462  pCharacter->AddItem(-1,
464  break;
465  case PLAYER_SKILL_MIND:
466  pCharacter->AddItem(-1,
468  break;
469  case PLAYER_SKILL_BODY:
470  pCharacter->AddItem(-1,
472  break;
474  case PLAYER_SKILL_REPAIR:
480  pCharacter->AddItem(-1, ITEM_POTION_BOTTLE);
481  v16 = 5 * (rand() % 3 + 40); // simple reagent
482  pCharacter->AddItem(-1, v16);
483  break;
484  case PLAYER_SKILL_DODGE:
485  pCharacter->AddItem(-1, ITEM_BOOTS_1);
486  break;
488  pCharacter->AddItem(-1, ITEM_GAUNTLETS_1);
489  break;
490  default:
491  break;
492  }
493  }
494  }
495  for (int i = 0; i < 138; i++) {
496  if (pCharacter->pInventoryItemList[i].uItemID != 0)
497  pCharacter->pInventoryItemList[i].SetIdentified();
498  }
499  }
500 
501  pCharacter->sHealth = pCharacter->GetMaxHealth();
502  pCharacter->sMana = pCharacter->GetMaxMana();
503  }
504 }

Перекрестные ссылки Player::AddItem(), Player::AddItem2(), Player::classType, ItemsTable::GenerateItem(), Player::GetMaxHealth(), Player::GetMaxMana(), Localization::GetString(), hirelingScrollPosition, ITEM_AXE_1, ITEM_BOOTS_1, ITEM_BUCKLER_1, ITEM_CHAINMAIL_1, ITEM_CROSSBOW_1, ITEM_DAGGER_1, ITEM_GAUNTLETS_1, ITEM_LEATHER_1, ITEM_LONGSWORD_1, ITEM_MACE_1, ITEM_PLATE_1, ITEM_POTION_BOTTLE, ITEM_SPEAR_1, ITEM_SPELLBOOK_AIR_FEATHER_FALL, ITEM_SPELLBOOK_BODY_FIRST_AID, ITEM_SPELLBOOK_EARTH_SLOW, ITEM_SPELLBOOK_FIRE_STRIKE, ITEM_SPELLBOOK_MIND_MIND_BLAST, ITEM_SPELLBOOK_SPIRIT_BLESS, ITEM_SPELLBOOK_WATER_POISON_SPRAY, ITEM_STAFF_1, Player::lastOpenedSpellbookPage, localization, Player::pActiveSkills, pHireling1Name, pHireling2Name, pHirelings, Player::pInventoryItemList, pItemsTable, PLAYER_CLASS_KNIGHT, PLAYER_SKILL_AIR, PLAYER_SKILL_ALCHEMY, PLAYER_SKILL_ARMSMASTER, PLAYER_SKILL_AXE, PLAYER_SKILL_BODY, PLAYER_SKILL_BOW, PLAYER_SKILL_CHAIN, PLAYER_SKILL_DAGGER, PLAYER_SKILL_DIPLOMACY, PLAYER_SKILL_DODGE, PLAYER_SKILL_EARTH, PLAYER_SKILL_FIRE, PLAYER_SKILL_ITEM_ID, PLAYER_SKILL_LEARNING, PLAYER_SKILL_LEATHER, PLAYER_SKILL_MACE, PLAYER_SKILL_MEDITATION, PLAYER_SKILL_MIND, PLAYER_SKILL_PERCEPTION, PLAYER_SKILL_PLATE, PLAYER_SKILL_REPAIR, PLAYER_SKILL_SHIELD, PLAYER_SKILL_SPEAR, PLAYER_SKILL_SPIRIT, PLAYER_SKILL_STAFF, PLAYER_SKILL_STEALING, PLAYER_SKILL_SWORD, PLAYER_SKILL_TRAP_DISARM, PLAYER_SKILL_UNARMED, PLAYER_SKILL_WATER, pParty, pPlayers, ItemGen::Reset(), ItemGen::SetIdentified(), Player::sHealth, Player::sMana, Player::sResMagicBase, Player::uExpressionTimePassed, ItemGen::uItemID и Player::WearItem().

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

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

◆ Reset()

void Party::Reset ( )

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

507  {
508  Zero();
509 
510  field_708 = 15;
511  sEyelevel = 160;
512  uNumGold = 200;
513  uNumFoodRations = 7;
514 
517 
518  // game begins at 9 am
519  this->playing_time = GameTime(0, 0, 9);
520  this->last_regenerated = GameTime(0, 0, 9);
521  this->uCurrentHour = 9;
522 
523  bTurnBasedModeOn = false;
524 
525  uActiveCharacter = 1;
526  ::pPlayers.ZerothIndex() = &pPlayers[0];
527  for (uint i = 0; i < 4; ++i) ::pPlayers[i + 1] = &pPlayers[i];
528 
529  pPlayers[0].Reset(PLAYER_CLASS_KNIGHT);
530  pPlayers[0].uCurrentFace = 17;
531  pPlayers[0].uPrevVoiceID = 17;
532  pPlayers[0].uVoiceID = 17;
533  pPlayers[0].SetInitialStats();
534 
535  pPlayers[0].uSex = pPlayers[0].GetSexByVoice();
536  pPlayers[0].RandomizeName();
537  strcpy(pPlayers[0].pName, localization->GetString(509));
538 
539  pPlayers[1].Reset(PLAYER_CLASS_THEIF);
540  pPlayers[1].uCurrentFace = 3;
541  pPlayers[1].uPrevVoiceID = 3;
542  pPlayers[1].uVoiceID = 3;
543  pPlayers[1].SetInitialStats();
544  pPlayers[1].uSex = pPlayers[1].GetSexByVoice();
545  pPlayers[1].RandomizeName();
546  strcpy(pPlayers[1].pName, localization->GetString(506));
547 
548  pPlayers[2].Reset(PLAYER_CLASS_CLERIC);
549  pPlayers[2].uCurrentFace = 14;
550  pPlayers[2].uPrevVoiceID = 14;
551  pPlayers[2].uVoiceID = 14;
552  pPlayers[2].SetInitialStats();
553  pPlayers[2].uSex = pPlayers[3].GetSexByVoice();
554  pPlayers[2].RandomizeName();
555  strcpy(pPlayers[2].pName, localization->GetString(508));
556 
558  pPlayers[3].uCurrentFace = 10;
559  pPlayers[3].uPrevVoiceID = 10;
560  pPlayers[3].uVoiceID = 10;
561  pPlayers[3].SetInitialStats();
562  pPlayers[3].uSex = pPlayers[3].GetSexByVoice();
563  pPlayers[3].RandomizeName();
564  strcpy(pPlayers[3].pName, localization->GetString(507));
565 
566  for (uint i = 0; i < 4; ++i) {
567  pPlayers[i].uTimeToRecovery = 0;
568  for (uint j = 0; j < 20; ++j) pPlayers[i].conditions_times[j].Reset();
569 
570  for (uint j = 0; j < 24; ++j) pPlayers[i].pPlayerBuffs[j].Reset();
571 
572  pPlayers[i].expression = CHARACTER_EXPRESSION_1;
573  pPlayers[i].uExpressionTimePassed = 0;
574  pPlayers[i].uExpressionTimeLength = rand() % 256 + 128;
575  }
576 
577  for (uint i = 0; i < 20; ++i) pPartyBuffs[i].Reset();
578 
580  WINDOW_CharacterWindow_Stats; // default character ui - stats
581  uFlags = 0;
582  memset(_autonote_bits, 0, sizeof(_autonote_bits));
583  memset(_quest_bits, 0, sizeof(_quest_bits));
584  pIsArtifactFound.fill(0);
585 
587 
588  memcpy(pNPCStats->pNewNPCData, pNPCStats->pNPCData, 0x94BCu);
589  memcpy(pNPCStats->pGroups_copy, pNPCStats->pGroups, 0x66u);
590  pNPCStats->pNewNPCData[3].uFlags |= 128; //|= 0x80u; Lady Margaret
592  pEventTimer->Pause();
593 
594  this->pPickedItem.uItemID = 0;
595 }

Перекрестные ссылки _494035_timed_effects__water_walking_damage__etc(), _autonote_bits, _quest_bits, PartyTimeStruct::_shop_ban_times, alignment, bTurnBasedModeOn, CHARACTER_EXPRESSION_1, current_character_screen_window, field_708, Localization::GetString(), last_regenerated, localization, PartyAlignment_Neutral, PartyTimes, Timer::Pause(), pEventTimer, NPCStats::pGroups, NPCStats::pGroups_copy, pIsArtifactFound, PLAYER_CLASS_CLERIC, PLAYER_CLASS_KNIGHT, PLAYER_CLASS_SORCERER, PLAYER_CLASS_THEIF, playing_time, NPCStats::pNewNPCData, NPCStats::pNPCData, pNPCStats, pPartyBuffs, pPickedItem, pPlayers, SetUserInterface(), sEyelevel, uActiveCharacter, uCurrentHour, NPCData::uFlags, uFlags, ItemGen::uItemID, uNumFoodRations, uNumGold, WINDOW_CharacterWindow_Stats и Zero().

Используется в CreateParty_EventLoop(), Application::Game::GameLoop(), Application::Game::Loop() и PartyCreationUI_Loop().

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

◆ ResetPosMiscAndSpellBuffs()

void Party::ResetPosMiscAndSpellBuffs ( )

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

627  {
628  this->vPosition.y = 0;
629  this->vPosition.z = 0;
630  this->vPosition.x = 0;
631  this->uFallStartY = 0;
632  this->sRotationY = 0;
633  this->sRotationX = 0;
634  this->uFallSpeed = 0;
635  this->field_28 = 0;
636  this->uDefaultPartyHeight = 120;
637  this->field_14_radius = 37;
638  this->y_rotation_granularity = 25;
639  this->uWalkSpeed = 384;
640  this->y_rotation_speed = 90;
641  this->field_24 = 5;
642  this->_6FC_water_lava_timer = 0;
643  this->field_708 = 15;
644  this->field_0 = 25;
645 
646  for (int playerId = 0; playerId < 4; playerId++) {
647  for (int buffId = 0; buffId < 24; buffId++) {
648  this->pPlayers[playerId].pPlayerBuffs[buffId].Reset();
649  }
650  }
651  for (int buffId = 0; buffId < 20; buffId++) {
652  this->pPartyBuffs[buffId].Reset();
653  }
654 }

Перекрестные ссылки _6FC_water_lava_timer, field_0, field_14_radius, field_24, field_28, field_708, pPartyBuffs, pPlayers, sRotationX, sRotationY, uDefaultPartyHeight, uFallSpeed, uFallStartY, uWalkSpeed, vPosition, y_rotation_granularity и y_rotation_speed.

◆ HasItem()

bool Party::HasItem ( unsigned int  uItemID)

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

216  {
217  for (int player = 0; player < 4; player++) {
218  for (int itemPos = 0; itemPos < 138; itemPos++) {
219  if (pParty->pPlayers[player].pOwnItems[itemPos].uItemID == uItemID)
220  return true;
221  }
222  }
223  return false;
224 }

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

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

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

◆ SetHoldingItem()

void Party::SetHoldingItem ( ItemGen pItem)

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

Перекрестные ссылки mouse, pPickedItem, Mouse::SetCursorBitmapFromItemID(), sub_421B2C_PlaceInInventory_or_DropPickedItem() и ItemGen::uItemID.

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Player::AddVariable(), Player::EquipBody(), EventProcessor(), Chest::GrabItem(), ItemInteraction(), Actor::LootActor(), Chest::OnChestLeftClick(), OnPaperdollLeftClick() и Player::SetVariable().

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

◆ GetFirstCanAct()

int Party::GetFirstCanAct ( )

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

156  { // added to fix some nzi problems entering shops
157  for (int i = 0; i < 4; ++i) {
158  if (this->pPlayers[i].CanAct()) return i + 1;
159  }
160 
161  __debugbreak(); // should not get here
162  return 1;
163 }

Перекрестные ссылки __debugbreak() и pPlayers.

Используется в ContractSelectText(), EnterHouse(), TavernDialog(), TempleDialog() и TrainingDialog().

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

◆ GetNextActiveCharacter()

int Party::GetNextActiveCharacter ( )

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

166  {
167  int v2; // eax@4
168  signed int v8; // esi@23
169  int v12; // [sp+Ch] [bp-4h]@1
170 
171  if (uActiveCharacter > 0 && this->pPlayers[uActiveCharacter - 1].CanAct() &&
172  this->pPlayers[uActiveCharacter - 1].uTimeToRecovery <
173  1) // avoid switching away from char that can act
174  return uActiveCharacter;
175 
176  v12 = 0;
177  if (pParty->bTurnBasedModeOn) {
179  return 0;
180  }
181  v2 = PID_ID(pTurnEngine->pQueue[0].uPackedID);
182  return v2 + 1;
183  }
184 
187  playerAlreadyPicked.fill(false);
188 
189  for (int i = 0; i < 4; i++) {
190  if (!this->pPlayers[i].CanAct() ||
191  this->pPlayers[i].uTimeToRecovery > 0) {
192  playerAlreadyPicked[i] = true;
193  } else if (!playerAlreadyPicked[i]) {
194  playerAlreadyPicked[i] = true;
195  if (i >
196  0) // TODO(_) check if this condition really should be here. it is
197  // equal to the original source but still seems kind of weird
198  return i + 1;
199  break;
200  }
201  }
202 
203  for (int i = 0; i < 4; i++) {
204  if (this->pPlayers[i].CanAct() &&
205  this->pPlayers[i].uTimeToRecovery == 0) {
206  if (v12 == 0 || this->pPlayers[i].uSpeedBonus > v8) {
207  v8 = this->pPlayers[i].uSpeedBonus;
208  v12 = i + 1;
209  }
210  }
211  }
212  return v12;
213 }

Перекрестные ссылки bTurnBasedModeOn, OBJECT_Player, playerAlreadyPicked, pParty, pPlayers, stru262_TurnBased::pQueue, pTurnEngine, TE_ATTACK, stru262_TurnBased::turn_stage, uActiveCharacter и TurnBased_QueueElem::uPackedID.

Используется в _494035_timed_effects__water_walking_damage__etc(), Application::Game::EventLoop(), Application::Game::OnEscape(), Player::Recover() и Player::SetRecoveryTime().

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

◆ _497FC5_check_party_perception_against_level()

bool Party::_497FC5_check_party_perception_against_level ( )

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

130  {
131  int uMaxPerception; // edi@1
132  signed int v5; // eax@3
133  bool result; // eax@7
134 
135  uMaxPerception = 0;
136  for (int i = 0; i < 4; i++) {
137  if (this->pPlayers[i].CanAct()) {
138  v5 = this->pPlayers[i].GetPerception();
139  if (v5 > uMaxPerception) uMaxPerception = v5;
140  }
141  }
142  if (uLevelMapStatsID && (signed int)uLevelMapStatsID < 77)
143  result = uMaxPerception >= 2 * pMapStats->pInfos[uLevelMapStatsID]._per;
144  else
145  result = 0;
146  return result;
147 }

Перекрестные ссылки MapInfo::_per, MapStats::pInfos, pMapStats, pPlayers и uLevelMapStatsID.

Используется в Engine::Draw().

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

◆ AddItemToParty()

bool Party::AddItemToParty ( ItemGen pItem)

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

1096  {
1097  unsigned int v2; // eax@1
1098  char *v5; // eax@8
1099  // Texture_MM7 *v7; // ebx@10
1100  signed int v8; // esi@10
1101  Player *v9; // edi@11
1102  int v10; // eax@11
1103  // int v21; // [sp+24h] [bp-4h]@10
1104 
1105  v2 = pItem->uItemID;
1106  if (!pItemsTable->pItems[v2].uItemID_Rep_St) pItem->SetIdentified();
1107 
1108  v5 = pItemsTable->pItems[v2].pIconName;
1109  if (v5) {
1110  auto texture = assets->GetImage_ColorKey(v5, 0x7FF);
1111  v8 = 0;
1112  uint current_player = uActiveCharacter;
1113  for (int i = 0; i < 4; i++) {
1114  current_player = current_player + i;
1115  if (current_player > 4) current_player = current_player - 4;
1116  v9 = ::pPlayers[current_player];
1117  v10 = v9->AddItem(-1, pItem->uItemID);
1118  if (v10) {
1119  memcpy(&v9->pInventoryItemList[v10 - 1], pItem, 0x24u);
1120  pItem->Reset();
1121  pAudioPlayer->PlaySound(SOUND_gold01, 0, 0, -1, 0, 0);
1122  v9->PlaySound(SPEECH_60, 0);
1123 
1124  if (texture) {
1125  texture->Release();
1126  }
1127  return true;
1128  }
1129  }
1130  if (texture) {
1131  texture->Release();
1132  }
1133  } else {
1134  logger->Warning(L"Invalid picture_name detected ::addItem()");
1135  }
1136  return false;
1137 }

Перекрестные ссылки Player::AddItem(), assets, AssetsManager::GetImage_ColorKey(), logger, pAudioPlayer, Player::pInventoryItemList, ItemsTable::pItems, pItemsTable, AudioPlayer::PlaySound(), Player::PlaySound(), pPlayers, ItemGen::Reset(), ItemGen::SetIdentified(), SOUND_gold01, SPEECH_60, uActiveCharacter, ItemGen::uItemID и Log::Warning().

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), ItemInteraction() и Actor::LootActor().

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

◆ Yell()

void Party::Yell ( )

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

598  {
599  Actor *v0; // esi@5
600  int v1; // edi@9
601  int v2; // ebx@9
602  int v3; // eax@9
603 
604  if (pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].Active()) {
606  }
607 
608  if (!pParty->bTurnBasedModeOn) {
609  for (unsigned int i = 0; i < uNumActors; i++) {
610  v0 = &pActors[i];
611  if (v0->Actor::CanAct() &&
612  v0->pMonsterInfo.uHostilityType !=
614  v0->pMonsterInfo.uMovementType !=
616  v1 = abs(v0->vPosition.x - pParty->vPosition.x);
617  v2 = abs(v0->vPosition.y - pParty->vPosition.y);
618  v3 = abs(v0->vPosition.z - pParty->vPosition.z);
619  if (int_get_vector_length(v1, v2, v3) < 512)
620  Actor::AI_Flee(i, 4, 0, 0);
621  }
622  }
623  }
624 }

Перекрестные ссылки Actor::AI_Flee(), bTurnBasedModeOn, MonsterInfo::Hostility_Long, int_get_vector_length(), MONSTER_MOVEMENT_TYPE_STAIONARY, pActors, PARTY_BUFF_INVISIBILITY, pParty, pPartyBuffs, uNumActors и vPosition.

Используется в Keyboard::ProcessInputActions().

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

◆ CountHirelings()

void Party::CountHirelings ( )

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

57  { // non hired followers
59 
60  for (unsigned int i = 0; i < pNPCStats->uNumNewNPCs; ++i) {
61  NPCData *npc = &pNPCStats->pNewNPCData[i];
62  if (npc->Hired() &&
63  (!pHirelings[0].pName || strcmp(npc->pName, pHirelings[0].pName))) {
64  if (!pHirelings[1].pName || strcmp(npc->pName, pHirelings[1].pName))
66  }
67  }
68 }

Перекрестные ссылки cNonHireFollowers, NPCData::Hired(), pHirelings, NPCData::pName, NPCStats::pNewNPCData, pNPCStats и NPCStats::uNumNewNPCs.

Используется в Player::AddVariable(), ClickNPCTopic(), Application::Game::EventLoop(), OnSelectNPCDialogueOption(), Player::SetVariable(), Player::SubtractVariable() и UpdatePlayersAndHirelingsEmotions().

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

◆ GivePartyExp()

void Party::GivePartyExp ( unsigned int  pEXPNum)

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

938  {
939  signed int pActivePlayerCount; // ecx@1
940  int pLearningPercent; // eax@13
941  int playermodexp;
942 
943  if (pEXPNum > 0) {
944  pActivePlayerCount = 0;
945  for (uint i = 0; i < 4; ++i) {
946  if (!pParty->pPlayers[i].conditions_times[Condition_Unconcious] &&
947  !pParty->pPlayers[i].conditions_times[Condition_Dead] &&
948  !pParty->pPlayers[i].conditions_times[Condition_Pertified] &&
949  !pParty->pPlayers[i].conditions_times[Condition_Eradicated]) {
950  pActivePlayerCount++;
951  }
952  }
953  if (pActivePlayerCount) {
954  pEXPNum = pEXPNum / pActivePlayerCount;
955  for (uint i = 0; i < 4; ++i) {
956  if (!pParty->pPlayers[i]
957  .conditions_times[Condition_Unconcious] &&
958  !pParty->pPlayers[i].conditions_times[Condition_Dead] &&
959  !pParty->pPlayers[i]
960  .conditions_times[Condition_Pertified] &&
961  !pParty->pPlayers[i]
962  .conditions_times[Condition_Eradicated]) {
963  pLearningPercent = pParty->pPlayers[i].GetLearningPercent();
964  playermodexp = pEXPNum + pEXPNum * pLearningPercent / 100;
965  pParty->pPlayers[i].uExperience += playermodexp;
966  if (pParty->pPlayers[i].uExperience > 4000000000) {
967  pParty->pPlayers[i].uExperience = 0;
968  }
969  }
970  }
971  }
972  }
973 }

Перекрестные ссылки Condition_Dead, Condition_Eradicated, Condition_Pertified, Condition_Unconcious, pParty и pPlayers.

Используется в Actor::DamageMonsterFromParty(), DamagePlayerFromMonster(), Application::Game::EventLoop(), WinApiWindow::OnOSMenu() и Actor::UpdateActorAI().

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

◆ GetPartyReputation()

int Party::GetPartyReputation ( )

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

922  {
923  DDM_DLV_Header *v0; // ebx@1
924  signed int v1; // esi@3
925 
926  v0 = &pOutdoor->ddm;
928  v1 = 0;
929  if (CheckHiredNPCSpeciality(Pirate)) v1 += 5;
931  if (CheckHiredNPCSpeciality(Gypsy)) v1 += 5;
932  if (CheckHiredNPCSpeciality(Duper)) v1 += 5;
934  return v1 + v0->uReputation;
935 }

Перекрестные ссылки Burglar, CheckHiredNPCSpeciality(), OutdoorLocation::ddm, IndoorLocation::dlv, Duper, FallenWizard, Gypsy, LEVEL_Outdoor, pIndoor, Pirate, pOutdoor, uCurrentlyLoadedLevelType и DDM_DLV_Header::uReputation.

Используется в Actor::ApplyFineForKillingPeasant(), BuildDialogueString(), Player::GetMerchant(), UIShop_Buy_Identify_Repair() и GUIWindow_QuickReference::Update().

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

◆ PartyFindsGold()

void Party::PartyFindsGold ( unsigned int  uNumGold,
int  _1_dont_share_with_followers___2_the_same_but_without_a_message__else_normal 
)

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

978  {
979  NPCData *v12; // ecx@21
980  unsigned int v13; // ecx@23
981  int hirelingCount; // [sp+Ch] [bp-4h]@6
982 
983  int hirelingSalaries = 0;
984  unsigned int goldToGain = amount;
985 
986  String status;
987  if (_1_dont_share_with_followers___2_the_same_but_without_a_message__else_normal ==
988  2) {
989  } else if (
990  _1_dont_share_with_followers___2_the_same_but_without_a_message__else_normal ==
991  1) {
992  status =
993  localization->FormatString(467, amount); // You found %lu gold!
994  } else {
995  unsigned char buf[1024];
996  hirelingCount = 0;
997  for (int i = 0; i < 2; i++) {
998  if (this->pHirelings[i].pName) {
999  hirelingCount++;
1000  buf[hirelingCount] = i;
1001  }
1002  }
1003  for (uint i = 0; i < pNPCStats->uNumNewNPCs; i++) {
1004  if (pNPCStats->pNewNPCData[i].uFlags & 0x80 &&
1005  (!this->pHirelings[0].pName ||
1006  strcmp(pNPCStats->pNewNPCData[i].pName,
1007  this->pHirelings[0].pName)) &&
1008  (!this->pHirelings[1].pName ||
1009  strcmp(pNPCStats->pNewNPCData[i].pName,
1010  this->pHirelings[1].pName))) {
1011  hirelingCount++;
1012  buf[hirelingCount] = i + 2;
1013  }
1014  }
1015  for (int i = 0; i < hirelingCount; i++) {
1016  uchar thisBufId = buf[i];
1017  if (thisBufId < 2)
1018  v12 = &this->pHirelings[thisBufId];
1019  else
1020  v12 = &pNPCStats->pNPCData[thisBufId + 499];
1021  v13 = v12->uProfession;
1022  if (v13)
1023  hirelingSalaries +=
1024  pNPCStats->pProfessions[v13]
1025  .uHirePrice;
1026  }
1028  goldToGain += (signed int)(10 * goldToGain) / 100;
1030  goldToGain += (signed int)(20 * goldToGain) / 100;
1032  goldToGain += (signed int)(10 * goldToGain) / 100;
1033  if (hirelingSalaries) {
1034  hirelingSalaries =
1035  (signed int)(goldToGain * hirelingSalaries / 100) / 100;
1036  if (hirelingSalaries < 1) hirelingSalaries = 1;
1037  status = localization->FormatString(
1038  466, goldToGain,
1039  hirelingSalaries); // You found %lu gold (followers take %lu)!
1040  } else {
1041  status = localization->FormatString(467, amount); // You found %lu gold!
1042  }
1043  }
1044  AddGold(goldToGain - hirelingSalaries);
1045  if (status.length() > 0) GameUI_StatusBar_OnEvent(status.c_str(), 2u);
1046 }

Перекрестные ссылки AddGold(), Banker, CheckHiredNPCSpeciality(), Factor, Localization::FormatString(), GameUI_StatusBar_OnEvent(), localization, pHirelings, Pirate, NPCData::pName, NPCStats::pNewNPCData, NPCStats::pNPCData, pNPCStats, NPCStats::pProfessions, NPCData::uFlags, NPCProfession::uHirePrice, NPCStats::uNumNewNPCs и NPCData::uProfession.

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Player::AddVariable(), Arena_SelectionFightLevel(), GameResultsApply(), Chest::GrabItem(), ItemInteraction(), Actor::LootActor(), Chest::OnChestLeftClick(), Player::StealFromActor() и Player::UseItem_DrinkPotion_etc().

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

◆ sub_421B2C_PlaceInInventory_or_DropPickedItem()

void Party::sub_421B2C_PlaceInInventory_or_DropPickedItem ( )

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

1048  {
1049  if (!pParty->pPickedItem.uItemID) {
1050  return;
1051  }
1052 
1054 
1055  int v2 = ::pPlayers[uActiveCharacter]->AddItem(-1, pParty->pPickedItem.uItemID);
1056  if (uActiveCharacter && v2 != 0) {
1057  memcpy(&::pPlayers[uActiveCharacter]->pInventoryItemList[v2 - 1], &pParty->pPickedItem, 0x24u);
1059  } else {
1060  int v12 = 0;
1061  for (v12 = 0; v12 < 4; v12++) {
1062  int v4 = pParty->pPlayers[v12].AddItem(-1, pParty->pPickedItem.uItemID);
1063  if (v4) {
1064  memcpy(&pParty->pPlayers[v12].pInventoryItemList[v4 - 1], &pParty->pPickedItem, sizeof(ItemGen));
1066  break;
1067  }
1068  }
1069  if (v12 == 4) {
1071  object.uType = (SPRITE_OBJECT_TYPE)pItemsTable->pItems[pParty->pPickedItem.uItemID].uSpriteID;
1072  object.spell_caster_pid = OBJECT_Player;
1073  object.uObjectDescID = pObjectList->ObjectIDByItemID(object.uType);
1074  object.vPosition.y = pParty->vPosition.y;
1075  object.vPosition.x = pParty->vPosition.x;
1076  object.vPosition.z = pParty->sEyelevel + pParty->vPosition.z;
1077  object.uSoundID = 0;
1078  object.uFacing = 0;
1079  object.uAttributes = 8;
1080  object.uSpriteFrameID = 0;
1081  object.uSectorID = pIndoor->GetSector(pParty->vPosition.x, pParty->vPosition.y,
1083  memcpy(&object.containing_item, &pParty->pPickedItem, sizeof(object.containing_item));
1084  object.Create(pParty->sRotationY, 184, 200, 0);
1086  }
1087  }
1088 
1089  if (texture) {
1090  texture->Release();
1091  texture = nullptr;
1092  }
1093 }

Перекрестные ссылки assets, ItemGen::GetIconName(), AssetsManager::GetImage_ColorKey(), IndoorLocation::GetSector(), mouse, OBJECT_Player, ObjectList::ObjectIDByItemID(), pIndoor, ItemsTable::pItems, pItemsTable, pObjectList, pParty, pPickedItem, pPlayers, Mouse::RemoveHoldingItem(), sEyelevel, sRotationY, uActiveCharacter, ItemGen::uItemID и vPosition.

Используется в _42777D_CastSpell_UseWand_ShootArrow(), Actor::LootActor(), SetHoldingItem() и Player::StealFromActor().

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

◆ GetGold()

int Party::GetGold ( ) const

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

264  {
265  if (engine->config->debug_infinite_gold) {
266  return 99999;
267  }
268 
269  return uNumGold;
270 }

Перекрестные ссылки engine и uNumGold.

Используется в _4B254D_SkillMasteryTeacher(), AddGold(), BankDialog(), ClickNPCTopic(), Player::CompareVariable(), Application::Game::EventLoop(), GameUI_DrawFoodAndGold(), GetHouseGoodbyeSpeech(), GuildDialog(), OnSelectNPCDialogueOption(), Party_Image_MM7::Serialize(), sub_4B6478(), Player::SubtractVariable(), TavernDialog(), TempleDialog(), TownHallDialog(), TrainingDialog(), TravelByTransport() и UIShop_Buy_Identify_Repair().

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

◆ SetGold()

void Party::SetGold ( int  amount)
static

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

281  {
282  pParty->uNumGold = amount;
283 
285 }

Перекрестные ссылки pParty, ui_play_gold_anim() и uNumGold.

Используется в AddGold(), Application::Game::EventLoop(), Application::Game::GameLoop(), WinApiWindow::OnOSMenu() и Player::SetVariable().

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

◆ AddGold()

void Party::AddGold ( int  amount)
static

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

287  {
288  SetGold(pParty->GetGold() + amount);
289 }

Перекрестные ссылки GetGold(), pParty и SetGold().

Используется в BankDialog(), Application::Game::EventLoop(), WinApiWindow::OnOSMenu(), PartyFindsGold() и Player::SalesProcess().

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

◆ TakeGold()

void Party::TakeGold ( int  amount)
static

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

292  {
293  if (amount <= pParty->uNumGold)
294  pParty->uNumGold -= amount;
295  else
296  pParty->uNumGold = 0;
297 
299 }

Перекрестные ссылки pParty, ui_play_gold_anim() и uNumGold.

Используется в BankDialog(), ClickNPCTopic(), GuildDialog(), OnSelectNPCDialogueOption(), sub_4B6478(), Player::SubtractVariable(), TavernDialog(), TempleDialog(), TownHallDialog(), TrainingDialog(), TravelByTransport() и UIShop_Buy_Identify_Repair().

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

◆ GetFood()

int Party::GetFood ( ) const

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

272  {
273  if (engine->config->debug_infinite_food) {
274  return 99999;
275  }
276 
277  return uNumFoodRations;
278 }

Перекрестные ссылки engine и uNumFoodRations.

Используется в _494035_timed_effects__water_walking_damage__etc(), Player::CompareVariable(), Application::Game::EventLoop(), GameUI_DrawFoodAndGold(), Party_Image_MM7::Serialize(), Player::SubtractVariable(), TavernDialog() и UseNPCSkill().

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

◆ SetFood()

void Party::SetFood ( int  amount)
static

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

239  {
240  pParty->uNumFoodRations = amount;
242 }

Перекрестные ссылки pParty, ui_play_food_anim() и uNumFoodRations.

Используется в Application::Game::EventLoop(), GiveFood(), Player::SetVariable() и TavernDialog().

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

◆ TakeFood()

void Party::TakeFood ( int  amount)
static

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

245  {
246  if (pParty->uNumFoodRations <= amount)
247  pParty->uNumFoodRations = 0;
248  else
249  pParty->uNumFoodRations -= amount;
250 
252 }

Перекрестные ссылки pParty, ui_play_food_anim() и uNumFoodRations.

Используется в _494035_timed_effects__water_walking_damage__etc(), Application::Game::EventLoop() и Player::SubtractVariable().

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

◆ GiveFood()

void Party::GiveFood ( int  amount)
static

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

255  {
256  pParty->uNumFoodRations += amount;
257 
258  if (pParty->uNumFoodRations > 0xFFFF)
259  Party::SetFood(0xFFFFu);
260 
262 }

Перекрестные ссылки pParty, SetFood(), ui_play_food_anim() и uNumFoodRations.

Используется в Player::AddVariable(), Application::Game::EventLoop(), WinApiWindow::OnOSMenu(), Player::UseItem_DrinkPotion_etc() и UseNPCSkill().

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

◆ Sleep8Hours()

void Party::Sleep8Hours ( )
static

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

899  {
905  }
906  if (_506F14_resting_stage == 2) {
907  pMessageQueue_50CBD0->AddGUIMessage(UIMSG_Escape, 0, 0);
908  }
909  } else {
910  Rest(6u);
913  }
915 }

Перекрестные ссылки _506F14_resting_stage, _506F18_num_minutes_to_sleep, ViewingParams::bRedrawGameUI, OutdoorLocation::LoadActualSkyFrame(), pMessageQueue_50CBD0, Rest(), UIMSG_Escape и viewparams.

Используется в GUIWindow_Rest::Update().

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

◆ WizardEyeActive()

bool Party::WizardEyeActive ( )
inline

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

193  {
194  return bool(pPartyBuffs[PARTY_BUFF_WIZARD_EYE].expire_time);
195  }

Перекрестные ссылки PARTY_BUFF_WIZARD_EYE и pPartyBuffs.

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

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

◆ WizardEyeSkillLevel()

int Party::WizardEyeSkillLevel ( )
inline

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

196  {
197  return pPartyBuffs[PARTY_BUFF_WIZARD_EYE].uSkill;
198  }

Перекрестные ссылки PARTY_BUFF_WIZARD_EYE и pPartyBuffs.

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

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

◆ TorchlightActive()

bool Party::TorchlightActive ( )
inline

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

199  {
200  return bool(pPartyBuffs[PARTY_BUFF_TORCHLIGHT].expire_time);
201  }

Перекрестные ссылки PARTY_BUFF_TORCHLIGHT и pPartyBuffs.

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

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

◆ FlyActive()

bool Party::FlyActive ( )
inline

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

202  {
203  return bool(pPartyBuffs[PARTY_BUFF_FLY].expire_time);
204  }

Перекрестные ссылки PARTY_BUFF_FLY и pPartyBuffs.

Используется в _493938_regenerate(), BLV_ProcessPartyActions(), GameUI_DrawPartySpells() и ODM_ProcessPartyActions().

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

◆ WaterWalkActive()

bool Party::WaterWalkActive ( )
inline

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

205  {
206  return bool(pPartyBuffs[PARTY_BUFF_WATER_WALK].expire_time);
207  }

Перекрестные ссылки PARTY_BUFF_WATER_WALK и pPartyBuffs.

Используется в _493938_regenerate(), GameUI_DrawPartySpells() и ODM_ProcessPartyActions().

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

◆ ImmolationActive()

bool Party::ImmolationActive ( )
inline

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

208  {
209  return bool(pPartyBuffs[PARTY_BUFF_IMMOLATION].expire_time);
210  }

Перекрестные ссылки PARTY_BUFF_IMMOLATION и pPartyBuffs.

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

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

◆ ImmolationSkillLevel()

int Party::ImmolationSkillLevel ( )
inline

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

211  {
212  return pPartyBuffs[PARTY_BUFF_IMMOLATION].uSkill;
213  }

Перекрестные ссылки PARTY_BUFF_IMMOLATION и pPartyBuffs.

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

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

◆ FeatherFallActive()

bool Party::FeatherFallActive ( )
inline

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

214  {
215  return bool(pPartyBuffs[PARTY_BUFF_FEATHER_FALL].expire_time);
216  }

Перекрестные ссылки PARTY_BUFF_FEATHER_FALL и pPartyBuffs.

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

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

◆ Invisible()

bool Party::Invisible ( )
inline

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

217  {
218  return bool(pPartyBuffs[PARTY_BUFF_INVISIBILITY].expire_time);
219  }

Перекрестные ссылки PARTY_BUFF_INVISIBILITY и pPartyBuffs.

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Player::_42ECB5_PlayerAttacksActor(), Actor::_SelectTarget() и ODM_ProcessPartyActions().

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

◆ GetRedAlert()

bool Party::GetRedAlert ( )
inline

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

221  {
222  return (uFlags & PARTY_FLAGS_1_ALERT_RED) != 0;
223  }

Перекрестные ссылки PARTY_FLAGS_1_ALERT_RED и uFlags.

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

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

◆ SetRedAlert()

void Party::SetRedAlert ( )
inline

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

Перекрестные ссылки PARTY_FLAGS_1_ALERT_RED и uFlags.

Используется в Actor::MakeActorAIList_BLV() и Actor::MakeActorAIList_ODM().

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

◆ GetYellowAlert()

bool Party::GetYellowAlert ( )
inline

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

225  {
226  return (uFlags & PARTY_FLAGS_1_ALERT_YELLOW) != 0;
227  }

Перекрестные ссылки PARTY_FLAGS_1_ALERT_YELLOW и uFlags.

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

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

◆ SetYellowAlert()

void Party::SetYellowAlert ( )
inline

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

Перекрестные ссылки PARTY_FLAGS_1_ALERT_YELLOW и uFlags.

Используется в Actor::MakeActorAIList_BLV() и Actor::MakeActorAIList_ODM().

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

◆ GetPlayingTime()

GameTime& Party::GetPlayingTime ( )
inline

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

230 { return this->playing_time; }

Перекрестные ссылки playing_time.

Используется в GUIWindow::_41D73D_draw_buff_tooltip(), CastSpellInfoHelpers::_427E01_cast_spell(), ItemGen::_439DF3_get_additional_damage(), SpriteObject::_46BEF1_apply_spells_aoe(), _46BFFA_update_spell_fx(), _493938_regenerate(), _494035_timed_effects__water_walking_damage__etc(), Player::AddVariable(), Actor::AI_SpellAttack(), stru262_TurnBased::AITurnBasedAction(), AlchemyMagicShopWares(), ArmorShopWares(), BuildDialogueString(), CharacterUI_StatsTab_ShowHint(), Player::CleanupBeacons(), Player::CompareVariable(), Actor::DamageMonsterFromParty(), DoSavegame(), EnterHouse(), EventCastSpell(), Application::Game::EventLoop(), Application::Game::GameLoop(), GameUI_CharacterQuickRecord_Draw(), GameUI_DrawItemInfo(), GameUI_DrawRightPanelItems(), Player::GetBaseAge(), Player::GetConditionDaysPassed(), GetHouseGoodbyeSpeech(), GuildDialog(), Inventory_ItemPopupAndAlchemy(), stru262_TurnBased::NextTurn(), ODM_LoadAndInitialize(), OnMapLoad(), WinApiWindow::OnOSMenu(), OnTimer(), PrepareToLoadBLV(), Rest(), RestAndHeal(), SaveGame(), Player::SetBeacon(), Player::SetCondition(), Player::SetVariable(), sub_44FA4C_spawn_light_elemental(), sub_4B1447_party_fine(), TempleDialog(), GUIWindow_LloydsBook::Update(), GUIWindow_House::Update(), Actor::UpdateActorAI(), Player::UseItem_DrinkPotion_etc(), UseNPCSkill() и WeaponShopWares().

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

◆ IsPartyEvil()

bool Party::IsPartyEvil ( )

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

1139 { return _449B57_test_bit(_quest_bits, 100); }

Перекрестные ссылки _449B57_test_bit() и _quest_bits.

Используется в Actor::ApplyFineForKillingPeasant(), Player::CanEquip_RaceAndAlignmentCheck() и Actor::InitializeActors().

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

◆ IsPartyGood()

bool Party::IsPartyGood ( )

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

1141 { return _449B57_test_bit(_quest_bits, 99); }

Перекрестные ссылки _449B57_test_bit() и _quest_bits.

Используется в Actor::ApplyFineForKillingPeasant(), Player::CanEquip_RaceAndAlignmentCheck() и Actor::InitializeActors().

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

◆ _46A89E_immolation_effect()

int Party::_46A89E_immolation_effect ( int *  affected,
int  affectedArrSize,
int  effectRange 
)

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

1145  {
1146  int v5; // ebx@3
1147  int v17; // [sp+Ch] [bp-10h]@3
1148  int v18; // [sp+10h] [bp-Ch]@3
1149  int affectedCount; // [sp+18h] [bp-4h]@1
1150 
1151  affectedCount = 0;
1152  for (size_t i = 0; i < uNumActors; ++i) {
1153  v5 = abs(pActors[i].vPosition.x - this->vPosition.x);
1154  v17 = abs(pActors[i].vPosition.y - this->vPosition.y);
1155  v18 = abs(pActors[i].vPosition.z - this->vPosition.z);
1156  if (int_get_vector_length(v5, v17, v18) <= effectRange) {
1157  if (pActors[i].uAIState != Dead && pActors[i].uAIState != Dying &&
1158  pActors[i].uAIState != Removed &&
1159  pActors[i].uAIState != Disabled &&
1160  pActors[i].uAIState != Summoned) {
1161  affected[affectedCount] = i;
1162  affectedCount++;
1163  if (affectedCount >= affectedArrSize) break;
1164  }
1165  }
1166  }
1167  return affectedCount;
1168 }

Перекрестные ссылки Dead, Disabled, Dying, int_get_vector_length(), pActors, Removed, Summoned, uNumActors и vPosition.

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

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

Данные класса

◆ field_0

int Party::field_0

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

Используется в Party_Image_MM7::Deserialize(), ResetPosMiscAndSpellBuffs(), Party_Image_MM7::Serialize() и Zero().

◆ uPartyHeight

◆ uDefaultPartyHeight

unsigned int Party::uDefaultPartyHeight

◆ sEyelevel

◆ uDefaultEyelevel

unsigned int Party::uDefaultEyelevel

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

Используется в Party_Image_MM7::Deserialize(), Application::Game::EventLoop(), Engine::MM7_Initialize() и Party_Image_MM7::Serialize().

◆ field_14_radius

int Party::field_14_radius

◆ y_rotation_granularity

int Party::y_rotation_granularity

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

Используется в _set_3d_modelview_matrix(), Party_Image_MM7::Deserialize(), Engine::Draw(), ResetPosMiscAndSpellBuffs(), Party_Image_MM7::Serialize() и Zero().

◆ uWalkSpeed

unsigned int Party::uWalkSpeed

◆ y_rotation_speed

int Party::y_rotation_speed

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

Используется в Party_Image_MM7::Deserialize(), ResetPosMiscAndSpellBuffs(), Party_Image_MM7::Serialize() и Zero().

◆ field_24

int Party::field_24

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

Используется в BLV_ProcessPartyActions(), Party_Image_MM7::Deserialize(), ODM_ProcessPartyActions(), ResetPosMiscAndSpellBuffs(), Party_Image_MM7::Serialize() и Zero().

◆ field_28

int Party::field_28

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

Используется в Party_Image_MM7::Deserialize(), ResetPosMiscAndSpellBuffs(), Party_Image_MM7::Serialize() и Zero().

◆ playing_time

GameTime Party::playing_time

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

Используется в Party_Image_MM7::Deserialize(), GetPlayingTime(), Reset() и Party_Image_MM7::Serialize().

◆ last_regenerated

GameTime Party::last_regenerated

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

Используется в _493938_regenerate(), Party_Image_MM7::Deserialize(), Reset() и Party_Image_MM7::Serialize().

◆ PartyTimes

◆ vPosition

Vec3_int_ Party::vPosition

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

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Player::_42ECB5_PlayerAttacksActor(), _45063B_spawn_some_monster(), _46A89E_immolation_effect(), _46EF01_collision_chech_player(), Actor::_SelectTarget(), _set_3d_modelview_matrix(), Actor::AI_MeleeAttack(), Actor::AI_MissileAttack1(), Actor::AI_MissileAttack2(), Actor::AI_Pursue1(), Actor::AI_SpellAttack(), Actor::AI_SpellAttack1(), Actor::AI_SpellAttack2(), area_of_effect__damage_evaluate(), Arena_SelectionFightLevel(), ArenaFight(), BLV_ProcessPartyActions(), stru10::CalcFaceBounding(), ViewingParams::CenterOnPartyZoomIn(), ViewingParams::CenterOnPartyZoomOut(), check_event_triggers(), CheckActors_proximity(), Actor::DamageMonsterFromParty(), Party_Image_MM7::Deserialize(), Engine::Draw(), DrawBook_Map_sub(), Engine::DrawGUI(), Engine::DropHeldItem(), EventCastSpell(), Application::Game::EventLoop(), EventProcessor(), OutdoorLocation::ExecDraw(), SpriteObject::ExplosionTraps(), Application::Game::GameLoop(), GameUI_DrawMinimap(), GameUI_GetMinimapHintText(), Actor::GetDirectionInfo(), OutdoorLocation::GetNumFoodRequiredToRestInCurrentPos(), GUIWindow_MapBook::GUIWindow_MapBook(), Inventory_ItemPopupAndAlchemy(), Actor::MakeActorAIList_BLV(), Actor::MakeActorAIList_ODM(), ODM_ProcessPartyActions(), ODM_UpdateUserInputAndOther(), Chest::Open(), AudioPlayer::PlaySound(), PrepareToLoadBLV(), PrepareToLoadRestUI(), ResetPosMiscAndSpellBuffs(), SaveGame(), SaveNewGame(), Party_Image_MM7::Serialize(), Player::SetBeacon(), SpawnActor(), sub_4070EF_prolly_detect_player(), sub_421B2C_PlaceInInventory_or_DropPickedItem(), sub_44FA4C_spawn_light_elemental(), TeleportToStartingPoint(), TravelByTransport(), GUIWindow_Travel::Update(), GUIWindow_MapBook::Update(), UpdateObjects(), AudioPlayer::UpdateSounds(), Yell() и Zero().

◆ sRotationY

◆ sRotationX

◆ vPrevPosition

Vec3_int_ Party::vPrevPosition

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

Используется в Party_Image_MM7::Deserialize(), Engine::Draw(), SaveGame(), SaveNewGame() и Party_Image_MM7::Serialize().

◆ sPrevRotationY

int Party::sPrevRotationY

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

Используется в Party_Image_MM7::Deserialize(), Engine::Draw(), SaveGame(), SaveNewGame() и Party_Image_MM7::Serialize().

◆ sPrevRotationX

int Party::sPrevRotationX

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

Используется в Party_Image_MM7::Deserialize(), Engine::Draw(), SaveGame(), SaveNewGame() и Party_Image_MM7::Serialize().

◆ sPrevEyelevel

int Party::sPrevEyelevel

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

Используется в Party_Image_MM7::Deserialize(), Engine::Draw() и Party_Image_MM7::Serialize().

◆ field_6E0

int Party::field_6E0

◆ field_6E4

int Party::field_6E4

◆ uFallSpeed

◆ field_6EC

int Party::field_6EC

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ field_6F0

int Party::field_6F0

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

Используется в Party_Image_MM7::Deserialize(), ODM_ProcessPartyActions() и Party_Image_MM7::Serialize().

◆ floor_face_pid

int Party::floor_face_pid

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

Используется в BLV_ProcessPartyActions(), Party_Image_MM7::Deserialize(), DoPrepareWorld(), ODM_ProcessPartyActions() и Party_Image_MM7::Serialize().

◆ walk_sound_timer

int Party::walk_sound_timer

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

Используется в BLV_ProcessPartyActions(), Party_Image_MM7::Deserialize(), ODM_ProcessPartyActions(), Party_Image_MM7::Serialize() и Zero().

◆ _6FC_water_lava_timer

int Party::_6FC_water_lava_timer

◆ uFallStartY

◆ bFlying

◆ field_708

char Party::field_708

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

Используется в Party_Image_MM7::Deserialize(), Reset(), ResetPosMiscAndSpellBuffs(), Party_Image_MM7::Serialize() и Zero().

◆ hirelingScrollPosition

◆ cNonHireFollowers

char Party::cNonHireFollowers

◆ field_70B

char Party::field_70B

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ uCurrentYear

◆ uCurrentMonth

◆ uCurrentMonthWeek

unsigned int Party::uCurrentMonthWeek

◆ uCurrentDayOfMonth

◆ uCurrentHour

◆ uCurrentMinute

◆ uCurrentTimeSecond

unsigned int Party::uCurrentTimeSecond

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

Используется в _494035_timed_effects__water_walking_damage__etc(), Party_Image_MM7::Deserialize(), RestAndHeal(), Party_Image_MM7::Serialize() и Zero().

◆ uNumFoodRations

unsigned int Party::uNumFoodRations

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

Используется в Party_Image_MM7::Deserialize(), GetFood(), GiveFood(), Reset(), SetFood() и TakeFood().

◆ field_72C

int Party::field_72C

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ field_730

int Party::field_730

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ uNumGold

unsigned int Party::uNumGold

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

Используется в Party_Image_MM7::Deserialize(), GetGold(), Reset(), SetGold() и TakeGold().

◆ uNumGoldInBank

unsigned int Party::uNumGoldInBank

◆ uNumDeaths

◆ field_740

int Party::field_740

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ uNumPrisonTerms

◆ uNumBountiesCollected

◆ field_74C

int Party::field_74C

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ monster_id_for_hunting

std::array<__int16, 5> Party::monster_id_for_hunting

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

Используется в Party_Image_MM7::Deserialize(), Actor::Die(), Party_Image_MM7::Serialize() и Zero().

◆ monster_for_hunting_killed

std::array<__int16, 5> Party::monster_for_hunting_killed

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

Используется в Arena_SelectionFightLevel(), Party_Image_MM7::Deserialize(), Actor::Die(), Party_Image_MM7::Serialize() и Zero().

◆ days_played_without_rest

unsigned char Party::days_played_without_rest

◆ _quest_bits

◆ pArcomageWins

std::array<unsigned __int8, 16> Party::pArcomageWins

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

Используется в Party_Image_MM7::Deserialize(), GameResultsApply(), Party_Image_MM7::Serialize() и Zero().

◆ field_7B5_in_arena_quest

char Party::field_7B5_in_arena_quest

◆ uNumArenaPageWins

◆ uNumArenaSquireWins

◆ uNumArenaKnightWins

◆ uNumArenaLordWins

◆ pIsArtifactFound

std::array<char, 29> Party::pIsArtifactFound

◆ field_7d7

std::array<char, 39> Party::field_7d7

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ _autonote_bits

unsigned char Party::_autonote_bits[26]

◆ field_818

std::array<char, 60> Party::field_818

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ field_854

std::array<char, 32> Party::field_854

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

Используется в Party_Image_MM7::Deserialize(), PartyCreationUI_LoopInternal() и Party_Image_MM7::Serialize().

◆ uNumArcomageWins

int Party::uNumArcomageWins

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

Используется в GUIWindow_CharacterRecord::CharacterUI_AwardsTab_Draw(), Party_Image_MM7::Deserialize(), GameResultsApply() и Party_Image_MM7::Serialize().

◆ uNumArcomageLoses

int Party::uNumArcomageLoses

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

Используется в GUIWindow_CharacterRecord::CharacterUI_AwardsTab_Draw(), Party_Image_MM7::Deserialize(), GameResultsApply() и Party_Image_MM7::Serialize().

◆ bTurnBasedModeOn

◆ field_880

int Party::field_880

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ uFlags2

int Party::uFlags2

◆ alignment

◆ pPartyBuffs

◆ pPlayers

std::array<Player, 4> Party::pPlayers

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

Используется в _42777D_CastSpell_UseWand_ShootArrow(), CastSpellInfoHelpers::_427E01_cast_spell(), Player::_42ECB5_PlayerAttacksActor(), _493938_regenerate(), _494035_timed_effects__water_walking_damage__etc(), _497FC5_check_party_perception_against_level(), AddItemToParty(), area_of_effect__damage_evaluate(), Arena_SelectionFightLevel(), ArenaFight(), BLV_ProcessPartyActions(), BookUI_Spellbook_DrawCurrentSchoolBackground(), BuildDialogueString(), CharacterUI_GetSkillDescText(), CharacterUI_LoadPaperdollTextures(), GUIWindow_CharacterRecord::CharacterUI_SkillsTab_CreateButtons(), ClickNPCTopic(), Player::CompareVariable(), CreateDefaultParty(), CreateParty_EventLoop(), Actor::DamageMonsterFromParty(), DamagePlayerFromMonster(), Party_Image_MM7::Deserialize(), EnterHouse(), EventCastSpell(), Application::Game::EventLoop(), EventProcessor(), Application::Game::GameLoop(), GameResultsApply(), GameUI_DrawLifeManaBars(), GameUI_DrawPartySpells(), GameUI_DrawPortraits(), GameUI_LoadPlayerPortraintsAndVoices(), GameUI_OnPlayerPortraitLeftClick(), GetFirstCanAct(), GetNextActiveCharacter(), GetPartyFame(), GivePartyExp(), GUIWindow_LloydsBook::GUIWindow_LloydsBook(), HasItem(), IsDwarfPresentInParty(), LoadGame(), MonsterPopup_Draw(), NPC_EventProcessor(), ODM_ProcessPartyActions(), WinApiWindow::OnOSMenu(), OracleDialogue(), PartyCreationUI_LoopInternal(), PlayerCreation_Choose4Skills(), PlayerCreation_GetUnspentAttributePointCount(), PrepareToLoadRestUI(), Reset(), ResetPosMiscAndSpellBuffs(), RestAndHeal(), RestAndHeal(), SaveGame(), Party_Image_MM7::Serialize(), stru262_TurnBased::SortTurnQueue(), stru262_TurnBased::Start(), Actor::StealFrom(), sub_421B2C_PlaceInInventory_or_DropPickedItem(), UI_OnMouseRightClick(), GUIWindow_LloydsBook::Update(), GUIWindow_QuickReference::Update(), GUIWindow_PartyCreation::Update(), UpdatePlayersAndHirelingsEmotions(), Player::UseItem_DrinkPotion_etc() и UseNPCSkill().

◆ pHirelings

◆ pPickedItem

◆ uFlags

◆ StandartItemsInShops

◆ SpecialItemsInShops

◆ SpellBooksInGuilds

std::array<std::array<ItemGen, 12>, 32> Party::SpellBooksInGuilds

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

Используется в Party_Image_MM7::Deserialize(), GuildDialog(), Party_Image_MM7::Serialize(), ShowPopupShopItem(), SpellBookGenerator() и UIShop_Buy_Identify_Repair().

◆ field_1605C

std::array<char, 24> Party::field_1605C

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

Используется в Party_Image_MM7::Deserialize() и Party_Image_MM7::Serialize().

◆ pHireling1Name

char Party::pHireling1Name[100]

◆ pHireling2Name

char Party::pHireling2Name[100]

◆ armageddon_timer

◆ armageddonDamage

int Party::armageddonDamage

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

Используется в CastSpellInfoHelpers::_427E01_cast_spell(), Party_Image_MM7::Deserialize(), Party_Image_MM7::Serialize() и Actor::UpdateActorAI().

◆ pTurnBasedPlayerRecoveryTimes

◆ InTheShopFlags

std::array<int, 53> Party::InTheShopFlags

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

Используется в Party_Image_MM7::Deserialize(), GenerateSpecialShopItems(), GenerateStandartShopItems(), Party_Image_MM7::Serialize() и sub_4B1447_party_fine().

◆ uFine

◆ flt_TorchlightColorR

float Party::flt_TorchlightColorR

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

Используется в Party_Image_MM7::Deserialize(), PrepareDrawLists_BLV() и Party_Image_MM7::Serialize().

◆ flt_TorchlightColorG

float Party::flt_TorchlightColorG

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

Используется в Party_Image_MM7::Deserialize(), PrepareDrawLists_BLV() и Party_Image_MM7::Serialize().

◆ flt_TorchlightColorB

float Party::flt_TorchlightColorB

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

Используется в Party_Image_MM7::Deserialize(), PrepareDrawLists_BLV() и Party_Image_MM7::Serialize().

◆ TorchLightLastIntensity

float Party::TorchLightLastIntensity

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

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


Объявления и описания членов структур находятся в файлах:
ITEM_SPELLBOOK_BODY_FIRST_AID
@ ITEM_SPELLBOOK_BODY_FIRST_AID
Definition: Items.h:147
Party::pPickedItem
ItemGen pPickedItem
Definition: Party.h:312
SpriteObject
Definition: SpriteObject.h:189
CHARACTER_EXPRESSION_PERTIFIED
@ CHARACTER_EXPRESSION_PERTIFIED
Definition: Player.h:354
ItemGen::uHolderPlayer
char uHolderPlayer
Definition: Items.h:352
Party::uCurrentTimeSecond
unsigned int uCurrentTimeSecond
Definition: Party.h:277
Player
Definition: Player.h:401
Party::Zero
void Zero()
Definition: Party.cpp:72
Party::Reset
void Reset()
Definition: Party.cpp:507
TE_ATTACK
@ TE_ATTACK
Definition: TurnEngine.h:21
uNumActors
size_t uNumActors
Definition: Actor.cpp:39
Party::vPosition
Vec3_int_ vPosition
Definition: Party.h:250
Party::uNumBountiesCollected
unsigned int uNumBountiesCollected
Definition: Party.h:286
PLAYER_SKILL_DAGGER
@ PLAYER_SKILL_DAGGER
Definition: Player.h:173
CHARACTER_EXPRESSION_17
@ CHARACTER_EXPRESSION_17
Definition: Player.h:359
int_get_vector_length
uint32_t int_get_vector_length(int32_t x, int32_t y, int32_t z)
Definition: VectorTypes.cpp:8
Condition_Poison_Medium
@ Condition_Poison_Medium
Definition: Conditions.h:16
Localization::GetString
const char * GetString(unsigned int index) const
Definition: Localization.cpp:13
NPCData::uProfession
unsigned int uProfession
Definition: NPC.h:89
Party::y_rotation_granularity
int y_rotation_granularity
Definition: Party.h:242
PlayerFrame
Definition: PlayerFrameTable.h:7
Party::uFallSpeed
int uFallSpeed
Definition: Party.h:259
Dying
@ Dying
Definition: Actor.h:79
CHARACTER_EXPRESSION_30
@ CHARACTER_EXPRESSION_30
Definition: Player.h:372
UIMSG_Escape
@ UIMSG_Escape
Definition: GUIWindow.h:96
PartyAlignment::PartyAlignment_Neutral
@ PartyAlignment_Neutral
NPCProfession::uHirePrice
unsigned int uHirePrice
Definition: NPC.h:115
Timer::uTimeElapsed
unsigned int uTimeElapsed
Definition: Time.h:133
Party::field_24
int field_24
Definition: Party.h:245
Party::y_rotation_speed
int y_rotation_speed
Definition: Party.h:244
PARTY_FLAGS_1_ALERT_RED
@ PARTY_FLAGS_1_ALERT_RED
Definition: Party.h:59
Party::uCurrentMonth
unsigned int uCurrentMonth
Definition: Party.h:272
SetUserInterface
void SetUserInterface(PartyAlignment align, bool bReplace)
Definition: GUIWindow.cpp:1032
MapStats::pInfos
MapInfo pInfos[77]
Definition: MapInfo.h:79
PLAYER_SKILL_STAFF
@ PLAYER_SKILL_STAFF
Definition: Player.h:171
condition
EGLenum condition
Definition: SDL_egl.h:1629
ITEM_PLATE_1
@ ITEM_PLATE_1
Definition: Items.h:86
Party::pIsArtifactFound
std::array< char, 29 > pIsArtifactFound
Definition: Party.h:298
Party::uCurrentMinute
unsigned int uCurrentMinute
Definition: Party.h:276
Pirate
@ Pirate
Definition: NPC.h:50
PLAYER_CLASS_CLERIC
@ PLAYER_CLASS_CLERIC
Definition: Player.h:240
NPCData::uFlags
unsigned int uFlags
Definition: NPC.h:84
Party::SetFood
static void SetFood(int amount)
Definition: Party.cpp:239
PARTY_BUFF_IMMOLATION
@ PARTY_BUFF_IMMOLATION
Definition: Party.h:81
SOUND_gold01
@ SOUND_gold01
Definition: AudioPlayer.h:72
NPCData::Hired
bool Hired()
Definition: NPC.h:80
Party::sRotationX
int sRotationX
Definition: Party.h:252
ItemGen::SetIdentified
void SetIdentified()
Definition: Items.h:307
PlayerFrameTable::pFrames
struct PlayerFrame * pFrames
Definition: PlayerFrameTable.h:29
_449B57_test_bit
bool _449B57_test_bit(unsigned __int8 *a1, __int16 a2)
Definition: Party.cpp:1185
CHARACTER_EXPRESSION_55
@ CHARACTER_EXPRESSION_55
Definition: Player.h:388
PLAYER_SKILL_AXE
@ PLAYER_SKILL_AXE
Definition: Player.h:174
MapInfo::_per
int _per
Definition: MapInfo.h:48
Party::hirelingScrollPosition
unsigned __int8 hirelingScrollPosition
Definition: Party.h:268
Actor
Definition: Actor.h:151
Party::sEyelevel
int sEyelevel
Definition: Party.h:239
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
CHARACTER_EXPRESSION_16
@ CHARACTER_EXPRESSION_16
Definition: Player.h:358
engine
std::shared_ptr< Engine > engine
Definition: Engine.cpp:130
PLAYER_SKILL_EARTH
@ PLAYER_SKILL_EARTH
Definition: Player.h:186
NPCStats::pGroups_copy
uint16_t pGroups_copy[51]
Definition: NPC.h:177
NPCData::evt_B
unsigned int evt_B
Definition: NPC.h:94
Party::uDefaultPartyHeight
unsigned int uDefaultPartyHeight
Definition: Party.h:238
PLAYER_SKILL_MIND
@ PLAYER_SKILL_MIND
Definition: Player.h:188
Party::_quest_bits
unsigned __int8 _quest_bits[64]
Definition: Party.h:291
localization
Localization * localization
Definition: Localization.cpp:11
PLAYER_SKILL_LEARNING
@ PLAYER_SKILL_LEARNING
Definition: Player.h:207
PARTY_BUFF_WATER_WALK
@ PARTY_BUFF_WATER_WALK
Definition: Party.h:89
CHARACTER_EXPRESSION_DEAD
@ CHARACTER_EXPRESSION_DEAD
Definition: Player.h:395
CHARACTER_EXPRESSION_SLEEP
@ CHARACTER_EXPRESSION_SLEEP
Definition: Player.h:346
mouse
static Mouse * mouse
Definition: Party.cpp:28
Party::uCurrentHour
unsigned int uCurrentHour
Definition: Party.h:275
ObjectList::ObjectIDByItemID
unsigned int ObjectIDByItemID(unsigned int uItemID)
Definition: ObjectList.cpp:7
CHARACTER_EXPRESSION_INSANE
@ CHARACTER_EXPRESSION_INSANE
Definition: Player.h:349
PLAYER_SKILL_BOW
@ PLAYER_SKILL_BOW
Definition: Player.h:176
Player::lastOpenedSpellbookPage
char lastOpenedSpellbookPage
Definition: Player.h:773
Burglar
@ Burglar
Definition: NPC.h:57
PlayerFrame::expression
CHARACTER_EXPRESSION_ID expression
Definition: PlayerFrameTable.h:8
Player::Zero
void Zero()
Definition: Player.cpp:3765
Party::pPlayers
std::array< Player, 4 > pPlayers
Definition: Party.h:310
FallenWizard
@ FallenWizard
Definition: NPC.h:58
Party::uNumArenaLordWins
char uNumArenaLordWins
Definition: Party.h:297
Party::uNumPrisonTerms
int uNumPrisonTerms
Definition: Party.h:285
CHARACTER_EXPRESSION_DMGRECVD_MINOR
@ CHARACTER_EXPRESSION_DMGRECVD_MINOR
Definition: Player.h:376
Party::UpdatePlayersAndHirelingsEmotions
void UpdatePlayersAndHirelingsEmotions()
Definition: Party.cpp:657
ITEM_GAUNTLETS_1
@ ITEM_GAUNTLETS_1
Definition: Items.h:89
ITEM_LONGSWORD_1
@ ITEM_LONGSWORD_1
Definition: Items.h:75
Party::uNumArenaSquireWins
char uNumArenaSquireWins
Definition: Party.h:295
Party::sub_421B2C_PlaceInInventory_or_DropPickedItem
void sub_421B2C_PlaceInInventory_or_DropPickedItem()
Definition: Party.cpp:1048
texture
GLenum GLenum GLuint texture
Definition: SDL_opengl_glext.h:1181
CHARACTER_EXPRESSION_CURSED
@ CHARACTER_EXPRESSION_CURSED
Definition: Player.h:344
Party::uCurrentMonthWeek
unsigned int uCurrentMonthWeek
Definition: Party.h:273
_494035_timed_effects__water_walking_damage__etc
void _494035_timed_effects__water_walking_damage__etc()
Definition: Engine.cpp:1623
CHARACTER_EXPRESSION_UNCONCIOUS
@ CHARACTER_EXPRESSION_UNCONCIOUS
Definition: Player.h:353
ItemGen::Reset
void Reset()
Definition: Items.cpp:133
NPCData::evt_C
unsigned int evt_C
Definition: NPC.h:95
Player::pActiveSkills
std::array< unsigned __int16, 37 > pActiveSkills
Definition: Player.h:711
Player::WearItem
void WearItem(unsigned int uItemID)
Definition: Player.cpp:788
Condition_Paralyzed
@ Condition_Paralyzed
Definition: Conditions.h:20
Party::uNumGold
unsigned int uNumGold
Definition: Party.h:281
ITEM_LEATHER_1
@ ITEM_LEATHER_1
Definition: Items.h:84
playerAlreadyPicked
std::array< bool, 4 > playerAlreadyPicked
Definition: Party.cpp:34
ITEM_SPELLBOOK_FIRE_STRIKE
@ ITEM_SPELLBOOK_FIRE_STRIKE
Definition: Items.h:140
PLAYER_SKILL_ITEM_ID
@ PLAYER_SKILL_ITEM_ID
Definition: Player.h:192
PLAYER_SKILL_FIRE
@ PLAYER_SKILL_FIRE
Definition: Player.h:183
pIndoor
IndoorLocation * pIndoor
Definition: Indoor.cpp:49
PARTY_BUFF_WIZARD_EYE
@ PARTY_BUFF_WIZARD_EYE
Definition: Party.h:90
Party::last_regenerated
GameTime last_regenerated
Definition: Party.h:248
Condition_Insane
@ Condition_Insane
Definition: Conditions.h:13
PLAYER_SKILL_UNARMED
@ PLAYER_SKILL_UNARMED
Definition: Player.h:202
PARTY_BUFF_TORCHLIGHT
@ PARTY_BUFF_TORCHLIGHT
Definition: Party.h:87
Party::PartyTimes
PartyTimeStruct PartyTimes
Definition: Party.h:249
pTurnEngine
struct stru262_TurnBased * pTurnEngine
Definition: TurnEngine.cpp:21
Dead
@ Dead
Definition: Actor.h:80
ITEM_SPELLBOOK_AIR_FEATHER_FALL
@ ITEM_SPELLBOOK_AIR_FEATHER_FALL
Definition: Items.h:141
Party::field_0
int field_0
Definition: Party.h:236
result
GLuint64EXT * result
Definition: SDL_opengl_glext.h:9435
pMapStats
struct MapStats * pMapStats
Definition: mm7_data.cpp:20
Party::pPartyBuffs
std::array< SpellBuff, 20 > pPartyBuffs
Definition: Party.h:309
PlayerFrameTable::uNumFrames
unsigned int uNumFrames
Definition: PlayerFrameTable.h:28
uLevelMapStatsID
unsigned int uLevelMapStatsID
Definition: mm7_data.cpp:713
Player::sResMagicBase
__int16 sResMagicBase
Definition: Player.h:739
SPEECH_60
@ SPEECH_60
Definition: Player.h:106
Party::uFallStartY
int uFallStartY
Definition: Party.h:265
CHARACTER_EXPRESSION_13
@ CHARACTER_EXPRESSION_13
Definition: Player.h:355
_506F14_resting_stage
int _506F14_resting_stage
Definition: mm7_data.cpp:544
pItemsTable
struct ItemsTable * pItemsTable
Definition: Items.cpp:37
current_character_screen_window
enum WindowType current_character_screen_window
Definition: GUIWindow.cpp:78
Player::uExpressionTimeLength
unsigned __int16 uExpressionTimeLength
Definition: Player.h:790
PLAYER_SKILL_PERCEPTION
@ PLAYER_SKILL_PERCEPTION
Definition: Player.h:197
NPCData::evt_A
unsigned int evt_A
Definition: NPC.h:93
CHARACTER_EXPRESSION_29
@ CHARACTER_EXPRESSION_29
Definition: Player.h:371
NPCStats::uNumNewNPCs
unsigned int uNumNewNPCs
Definition: NPC.h:179
ITEM_BOOTS_1
@ ITEM_BOOTS_1
Definition: Items.h:90
TurnBased_QueueElem::uPackedID
int uPackedID
Definition: TurnEngine.h:34
Condition_Fear
@ Condition_Fear
Definition: Conditions.h:11
PARTY_FLAGS_1_ALERT_YELLOW
@ PARTY_FLAGS_1_ALERT_YELLOW
Definition: Party.h:60
PLAYER_SKILL_DIPLOMACY
@ PLAYER_SKILL_DIPLOMACY
Definition: Player.h:198
pParty
Party * pParty
Definition: Party.cpp:30
buf
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: SDL_opengl_glext.h:2483
CHARACTER_EXPRESSION_WEAK
@ CHARACTER_EXPRESSION_WEAK
Definition: Player.h:345
object
GLuint object
Definition: SDL_opengl_glext.h:6060
CHARACTER_EXPRESSION_19
@ CHARACTER_EXPRESSION_19
Definition: Player.h:361
CHARACTER_EXPRESSION_PARALYZED
@ CHARACTER_EXPRESSION_PARALYZED
Definition: Player.h:352
PLAYER_SKILL_SPIRIT
@ PLAYER_SKILL_SPIRIT
Definition: Player.h:187
NPCData::pName
char * pName
Definition: NPC.h:82
NPCStats::pNewNPCData
NPCData pNewNPCData[501]
Definition: NPC.h:165
Party::days_played_without_rest
unsigned char days_played_without_rest
Definition: Party.h:290
_506F18_num_minutes_to_sleep
int _506F18_num_minutes_to_sleep
Definition: mm7_data.cpp:545
Banker
@ Banker
Definition: NPC.h:37
Gypsy
@ Gypsy
Definition: NPC.h:54
Player::uExpressionTimePassed
unsigned __int16 uExpressionTimePassed
Definition: Player.h:789
Party::_6FC_water_lava_timer
int _6FC_water_lava_timer
Definition: Party.h:264
PLAYER_SKILL_DODGE
@ PLAYER_SKILL_DODGE
Definition: Player.h:201
NPCStats::pProfessions
NPCProfession pProfessions[59]
Definition: NPC.h:167
ITEM_CROSSBOW_1
@ ITEM_CROSSBOW_1
Definition: Items.h:79
Party::pHireling2Name
char pHireling2Name[100]
Definition: Party.h:319
NPCStats::pNPCData
NPCData pNPCData[501]
Definition: NPC.h:164
viewparams
struct ViewingParams * viewparams
Definition: mm7_data.cpp:22
ItemsTable::GenerateItem
void GenerateItem(int treasure_level, unsigned int uTreasureType, ItemGen *pItem)
Definition: Items.cpp:680
Player::expression
CHARACTER_EXPRESSION_ID expression
Definition: Player.h:788
Disabled
@ Disabled
Definition: Actor.h:94
Party::field_708
char field_708
Definition: Party.h:267
uchar
unsigned char uchar
Definition: MM7.h:44
Condition_Dead
@ Condition_Dead
Definition: Conditions.h:22
Party::field_28
int field_28
Definition: Party.h:246
CHARACTER_EXPRESSION_14
@ CHARACTER_EXPRESSION_14
Definition: Player.h:356
Condition_Disease_Weak
@ Condition_Disease_Weak
Definition: Conditions.h:15
PLAYER_SKILL_MEDITATION
@ PLAYER_SKILL_MEDITATION
Definition: Player.h:196
ItemGen::GetIconName
char * GetIconName()
Definition: Items.cpp:1521
ItemGen::uItemID
int uItemID
Definition: Items.h:326
PARTY_BUFF_FEATHER_FALL
@ PARTY_BUFF_FEATHER_FALL
Definition: Party.h:76
AssetsManager::GetImage_ColorKey
Texture * GetImage_ColorKey(const String &name, uint16_t colorkey)
Definition: AssetsManager.cpp:34
ITEM_MACE_1
@ ITEM_MACE_1
Definition: Items.h:80
PLAYER_SKILL_AIR
@ PLAYER_SKILL_AIR
Definition: Player.h:184
PLAYER_CLASS_LICH
@ PLAYER_CLASS_LICH
Definition: Player.h:251
v1
GLfloat GLfloat v1
Definition: SDL_opengl_glext.h:694
stru262_TurnBased::pQueue
TurnBased_QueueElem pQueue[530]
Definition: TurnEngine.h:82
ITEM_SPELLBOOK_WATER_POISON_SPRAY
@ ITEM_SPELLBOOK_WATER_POISON_SPRAY
Definition: Items.h:142
IndoorLocation::dlv
struct DDM_DLV_Header dlv
Definition: Indoor.h:648
Log::Warning
void Warning(const wchar_t *pFormat,...)
Definition: Log.cpp:28
ui_play_gold_anim
void ui_play_gold_anim()
Definition: Party.cpp:226
ITEM_SPELLBOOK_EARTH_SLOW
@ ITEM_SPELLBOOK_EARTH_SLOW
Definition: Items.h:143
pActors
std::array< Actor, 500 > pActors
Definition: Actor.cpp:38
PLAYER_SKILL_LEATHER
@ PLAYER_SKILL_LEATHER
Definition: Player.h:180
Condition_Zombie
@ Condition_Zombie
Definition: Conditions.h:25
PLAYER_SKILL_MACE
@ PLAYER_SKILL_MACE
Definition: Player.h:177
pPlayerFrameTable
struct PlayerFrameTable * pPlayerFrameTable
Definition: mm7_data.cpp:171
Player::GetMaxMana
int GetMaxMana()
Definition: Player.cpp:2369
CHARACTER_EXPRESSION_56
@ CHARACTER_EXPRESSION_56
Definition: Player.h:389
PLAYER_SKILL_TRAP_DISARM
@ PLAYER_SKILL_TRAP_DISARM
Definition: Player.h:200
Party::uFlags
unsigned int uFlags
Definition: Party.h:313
Player::uTimeToRecovery
unsigned __int16 uTimeToRecovery
Definition: Player.h:762
PLAYER_SKILL_WATER
@ PLAYER_SKILL_WATER
Definition: Player.h:185
CHARACTER_EXPRESSION_DMGRECVD_MODERATE
@ CHARACTER_EXPRESSION_DMGRECVD_MODERATE
Definition: Player.h:377
DDM_DLV_Header::uReputation
int uReputation
Definition: Indoor.h:96
Player::sMana
int sMana
Definition: Player.h:767
ITEM_STAFF_1
@ ITEM_STAFF_1
Definition: Items.h:81
Party::uWalkSpeed
unsigned int uWalkSpeed
Definition: Party.h:243
PLAYER_CLASS_SORCERER
@ PLAYER_CLASS_SORCERER
Definition: Player.h:248
LEVEL_Outdoor
@ LEVEL_Outdoor
Definition: Indoor.h:287
DDM_DLV_Header
Definition: Indoor.h:82
Timer::Pause
void Pause()
Definition: Time.cpp:19
NPCData
Definition: NPC.h:79
Player::GetMaxHealth
int GetMaxHealth()
Definition: Player.cpp:2354
PLAYER_CLASS_THEIF
@ PLAYER_CLASS_THEIF
Definition: Player.h:220
MonsterInfo::Hostility_Long
@ Hostility_Long
Definition: Monsters.h:115
PLAYER_SKILL_SPEAR
@ PLAYER_SKILL_SPEAR
Definition: Player.h:175
Player::AddItem2
int AddItem2(int uSlot, ItemGen *Src)
Definition: Player.cpp:828
ui_play_food_anim
void ui_play_food_anim()
Definition: Party.cpp:232
Removed
@ Removed
Definition: Actor.h:86
Condition_Poison_Severe
@ Condition_Poison_Severe
Definition: Conditions.h:18
Player::pInventoryItemList
ItemGen pInventoryItemList[126]
Definition: Player.h:727
Party::uNumArenaPageWins
char uNumArenaPageWins
Definition: Party.h:294
PLAYER_SKILL_SHIELD
@ PLAYER_SKILL_SHIELD
Definition: Player.h:179
pMiscTimer
Timer * pMiscTimer
Definition: Time.cpp:7
ITEM_DAGGER_1
@ ITEM_DAGGER_1
Definition: Items.h:76
PLAYER_SKILL_ALCHEMY
@ PLAYER_SKILL_ALCHEMY
Definition: Player.h:206
OutdoorLocation::ddm
struct DDM_DLV_Header ddm
Definition: Outdoor.h:131
Condition_Cursed
@ Condition_Cursed
Definition: Conditions.h:8
Party::cNonHireFollowers
char cNonHireFollowers
Definition: Party.h:269
Party::pArcomageWins
std::array< unsigned __int8, 16 > pArcomageWins
Definition: Party.h:292
SPRITE_OBJECT_TYPE
SPRITE_OBJECT_TYPE
Definition: SpriteObject.h:5
Party::pHirelings
std::array< NPCData, 2 > pHirelings
Definition: Party.h:311
Party::uNumGoldInBank
unsigned int uNumGoldInBank
Definition: Party.h:282
OBJECT_Player
@ OBJECT_Player
Definition: Actor.h:68
ITEM_SPELLBOOK_MIND_MIND_BLAST
@ ITEM_SPELLBOOK_MIND_MIND_BLAST
Definition: Items.h:146
Party::bTurnBasedModeOn
bool bTurnBasedModeOn
Definition: Party.h:305
Summoned
@ Summoned
Definition: Actor.h:92
Party::CountHirelings
void CountHirelings()
Definition: Party.cpp:57
Player::conditions_times
std::array< GameTime, 20 > conditions_times
Definition: Player.h:635
Rest
void Rest(unsigned int uMinsToRest)
Definition: Party.cpp:857
PLAYER_SKILL_STEALING
@ PLAYER_SKILL_STEALING
Definition: Player.h:205
Party::pHireling1Name
char pHireling1Name[100]
Definition: Party.h:318
PARTY_BUFF_INVISIBILITY
@ PARTY_BUFF_INVISIBILITY
Definition: Party.h:82
Party::uCurrentDayOfMonth
unsigned int uCurrentDayOfMonth
Definition: Party.h:274
PLAYER_SKILL_CHAIN
@ PLAYER_SKILL_CHAIN
Definition: Player.h:181
Factor
@ Factor
Definition: NPC.h:36
CHARACTER_EXPRESSION_DISEASED
@ CHARACTER_EXPRESSION_DISEASED
Definition: Player.h:351
Player::classType
PLAYER_CLASS_TYPE classType
Definition: Player.h:639
Player::AddItem
bool AddItem(struct ItemGen *pItem)
Party::field_14_radius
int field_14_radius
Definition: Party.h:241
Condition_Weak
@ Condition_Weak
Definition: Conditions.h:9
CHARACTER_EXPRESSION_ERADICATED
@ CHARACTER_EXPRESSION_ERADICATED
Definition: Player.h:396
PLAYER_SKILL_SWORD
@ PLAYER_SKILL_SWORD
Definition: Player.h:172
Player::GetMajorConditionIdx
unsigned int GetMajorConditionIdx()
Definition: Player.cpp:2614
MONSTER_MOVEMENT_TYPE_STAIONARY
@ MONSTER_MOVEMENT_TYPE_STAIONARY
Definition: Monsters.h:65
v2
GLfloat GLfloat GLfloat v2
Definition: SDL_opengl_glext.h:695
assets
AssetsManager * assets
Definition: AssetsManager.cpp:12
CHARACTER_EXPRESSION_18
@ CHARACTER_EXPRESSION_18
Definition: Player.h:360
uint
unsigned int uint
Definition: MM7.h:4
Condition_Poison_Weak
@ Condition_Poison_Weak
Definition: Conditions.h:14
uActiveCharacter
unsigned int uActiveCharacter
Definition: mm7_data.cpp:555
v3
GLfloat GLfloat GLfloat GLfloat v3
Definition: SDL_opengl_glext.h:696
Localization::FormatString
String FormatString(unsigned int index,...) const
Definition: Localization.cpp:17
CHARACTER_EXPRESSION_57
@ CHARACTER_EXPRESSION_57
Definition: Player.h:390
__debugbreak
void __cdecl __debugbreak(void)
ITEM_POTION_BOTTLE
@ ITEM_POTION_BOTTLE
Definition: Items.h:120
Actor::AI_Flee
static void AI_Flee(unsigned int uActorID, signed int edx0, int uActionLength, struct AIDirection *a4)
Definition: Actor.cpp:2070
pNPCStats
struct NPCStats * pNPCStats
Definition: NPC.cpp:29
OutdoorLocation::LoadActualSkyFrame
static void LoadActualSkyFrame()
Definition: Outdoor.cpp:2143
PLAYER_SKILL_REPAIR
@ PLAYER_SKILL_REPAIR
Definition: Player.h:194
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
PARTY_BUFF_FLY
@ PARTY_BUFF_FLY
Definition: Party.h:78
Player::sHealth
int sHealth
Definition: Player.h:766
ITEM_SPEAR_1
@ ITEM_SPEAR_1
Definition: Items.h:78
Player::PlaySound
void PlaySound(PlayerSpeech speech, int a3)
Definition: Player.cpp:7874
WINDOW_CharacterWindow_Stats
@ WINDOW_CharacterWindow_Stats
Definition: GUIWindow.h:327
Mouse::SetCursorBitmapFromItemID
void SetCursorBitmapFromItemID(unsigned int uItemID)
Definition: Mouse.cpp:32
Condition_Good
@ Condition_Good
Definition: Conditions.h:26
Condition_Unconcious
@ Condition_Unconcious
Definition: Conditions.h:21
CHARACTER_EXPRESSION_54
@ CHARACTER_EXPRESSION_54
Definition: Player.h:387
Party::walk_sound_timer
int walk_sound_timer
Definition: Party.h:263
ViewingParams::bRedrawGameUI
int bRedrawGameUI
Definition: Viewport.h:74
PartyTimeStruct::_shop_ban_times
std::array< GameTime, 53 > _shop_ban_times
Definition: Party.h:144
CHARACTER_EXPRESSION_1
@ CHARACTER_EXPRESSION_1
Definition: Player.h:343
Duper
@ Duper
Definition: NPC.h:56
Party::_autonote_bits
unsigned char _autonote_bits[26]
Definition: Party.h:300
Party::uNumFoodRations
unsigned int uNumFoodRations
Definition: Party.h:278
uCurrentlyLoadedLevelType
LEVEL_TYPE uCurrentlyLoadedLevelType
Definition: Indoor.cpp:52
Party::uNumDeaths
unsigned int uNumDeaths
Definition: Party.h:283
PLAYER_SKILL_BODY
@ PLAYER_SKILL_BODY
Definition: Player.h:189
IndoorLocation::GetSector
int GetSector(int sX, int sY, int sZ)
Definition: Indoor.cpp:1279
CheckHiredNPCSpeciality
bool CheckHiredNPCSpeciality(unsigned int uProfession)
Definition: NPC.cpp:754
PlayerFrame::uAnimLength
__int16 uAnimLength
Definition: PlayerFrameTable.h:11
pAudioPlayer
AudioPlayer * pAudioPlayer
Definition: AudioPlayer.cpp:20
Condition_Disease_Severe
@ Condition_Disease_Severe
Definition: Conditions.h:19
v0
GLfloat v0
Definition: SDL_opengl_glext.h:693
CHARACTER_EXPRESSION_POISONED
@ CHARACTER_EXPRESSION_POISONED
Definition: Player.h:350
Condition_Eradicated
@ Condition_Eradicated
Definition: Conditions.h:24
ItemGen
Definition: Items.h:263
ITEM_LICH_JAR_FULL
@ ITEM_LICH_JAR_FULL
Definition: Items.h:206
pMessageQueue_50CBD0
struct GUIMessageQueue * pMessageQueue_50CBD0
Definition: GUIWindow.cpp:86
logger
Log * logger
Definition: IocContainer.cpp:47
PLAYER_SKILL_ARMSMASTER
@ PLAYER_SKILL_ARMSMASTER
Definition: Player.h:204
Condition_Pertified
@ Condition_Pertified
Definition: Conditions.h:23
Party::uFlags2
int uFlags2
Definition: Party.h:307
Condition_Drunk
@ Condition_Drunk
Definition: Conditions.h:12
PLAYER_CLASS_KNIGHT
@ PLAYER_CLASS_KNIGHT
Definition: Player.h:216
pOutdoor
OutdoorLocation * pOutdoor
Definition: Outdoor.cpp:48
ITEM_CHAINMAIL_1
@ ITEM_CHAINMAIL_1
Definition: Items.h:85
ITEM_SPELLBOOK_SPIRIT_BLESS
@ ITEM_SPELLBOOK_SPIRIT_BLESS
Definition: Items.h:144
NPCStats::pGroups
uint16_t pGroups[51]
Definition: NPC.h:176
Party::uCurrentYear
unsigned int uCurrentYear
Definition: Party.h:271
Party::AddGold
static void AddGold(int amount)
Definition: Party.cpp:287
CHARACTER_EXPRESSION_20
@ CHARACTER_EXPRESSION_20
Definition: Player.h:362
Party::sRotationY
int sRotationY
Definition: Party.h:251
stru262_TurnBased::turn_stage
int turn_stage
Definition: TurnEngine.h:75
String
std::string String
Definition: Strings.h:10
CHARACTER_EXPRESSION_DRUNK
@ CHARACTER_EXPRESSION_DRUNK
Definition: Player.h:348
pEventTimer
Timer * pEventTimer
Definition: Time.cpp:8
CHARACTER_EXPRESSION_FEAR
@ CHARACTER_EXPRESSION_FEAR
Definition: Player.h:347
GameTime
Definition: Time.h:14
Party::monster_for_hunting_killed
std::array< __int16, 5 > monster_for_hunting_killed
Definition: Party.h:289
Player::pPlayerBuffs
std::array< SpellBuff, 24 > pPlayerBuffs
Definition: Player.h:756
Party::GetGold
int GetGold() const
Definition: Party.cpp:264
ITEM_BUCKLER_1
@ ITEM_BUCKLER_1
Definition: Items.h:87
Mouse::RemoveHoldingItem
void RemoveHoldingItem()
Definition: Mouse.cpp:25
Party::uNumArenaKnightWins
char uNumArenaKnightWins
Definition: Party.h:296
pObjectList
struct ObjectList * pObjectList
Definition: ObjectList.cpp:5
Party::monster_id_for_hunting
std::array< __int16, 5 > monster_id_for_hunting
Definition: Party.h:288
ItemsTable::pItems
NZIArray< ItemDesc, 800 > pItems
Definition: Items.h:460
Party::SetGold
static void SetGold(int amount)
Definition: Party.cpp:281
Condition_Disease_Medium
@ Condition_Disease_Medium
Definition: Conditions.h:17
ITEM_AXE_1
@ ITEM_AXE_1
Definition: Items.h:77
Party::playing_time
GameTime playing_time
Definition: Party.h:247
Party::alignment
PartyAlignment alignment
Definition: Party.h:308
Condition_Sleep
@ Condition_Sleep
Definition: Conditions.h:10
PLAYER_SKILL_PLATE
@ PLAYER_SKILL_PLATE
Definition: Player.h:182