Mercurial > might-and-magic-trilogy
view Party.h @ 183:80201f210d42
Video(work)
author | Ritor1 |
---|---|
date | Thu, 20 Dec 2012 00:35:15 +0600 |
parents | f76e4ea4a224 |
children |
line wrap: on
line source
#pragma once #include "Player.h" #include "NPC.h" #include "Spells.h" #include "VectorTypes.h" /* 355 */ enum PARTY_FLAGS_2 : __int32 { PARTY_FLAGS_2_RUNNING = 0x2, }; /* 347 */ enum PARTY_BUFF_INDEX { PARTY_BUFF_RESIST_AIR = 0x0, PARTY_BUFF_RESIST_BODY = 0x1, PARTY_BUFF_DAY_OF_GODS = 0x2, PARTY_BUFF_DETECT_LIFE = 0x3, PARTY_BUFF_RESIST_EARTH = 0x4, PARTY_BUFF_FEATHER_FALL = 0x5, PARTY_BUFF_RESIST_FIRE = 0x6, PARTY_BUFF_FLY = 0x7, PARTY_BUFF_HASTE = 0x8, PARTY_BUFF_HEROISM = 0x9, PARTY_BUFF_IMMOLATION = 0xA, PARTY_BUFF_INVISIBILITY = 0xB, PARTY_BUFF_RESIST_MIND = 0xC, PARTY_BUFF_PROTECTION_FROM_MAGIC = 0xD, PARTY_BUFF_SHIELD = 0xE, PARTY_BUFF_STONE_SKIN = 0xF, PARTY_BUFF_TORCHLIGHT = 0x10, PARTY_BUFF_RESIST_WATER = 0x11, PARTY_BUFF_WATER_WALK = 0x12, PARTY_BUFF_WIZARD_EYE = 0x13, }; /* 300 */ enum PartyAction: unsigned __int32 { PARTY_INVALID = 0, PARTY_TurnLeft = 0x1, PARTY_TurnRight = 0x2, PARTY_StrafeLeft = 0x3, PARTY_StrafeRight = 0x4, PARTY_WalkForward = 0x5, PARTY_WalkBackward = 0x6, PARTY_LookUp = 0x7, PARTY_LookDown = 0x8, PARTY_CenterView = 0x9, PARTY_unkA = 0xA, PARTY_unkB = 0xB, PARTY_Jump = 0xC, PARTY_FlyUp = 0xD, PARTY_FlyDown = 0xE, PARTY_Land = 0xF, PARTY_RunForward = 0x10, PARTY_RunBackward = 0x11, PARTY_FastTurnLeft = 0x12, PARTY_FastTurnRight = 0x13, PARTY_dword = 0xFFFFFFFF }; /* 135 */ #pragma pack(push, 1) struct ActionQueue { void Add(PartyAction action); PartyAction Next(); unsigned int uNumActions; PartyAction pActions[30]; }; #pragma pack(pop) /* 208 */ #pragma pack(push, 1) struct Party_stru0 { int field_0[20]; int field_50[170]; int _shop_ban_times[82]; int field_440[44]; int field_4F0[38]; char field_588[2]; char pIsArtifactFound[238]; }; #pragma pack(pop) /* 207 */ #pragma pack(push, 1) struct Party { Party(): uTimePlayed(0) { uCurrentYear = 0; uCurrentMonth = 0; uCurrentMonthWeek = 0; uDaysPlayed = 0; uCurrentHour = 0; uCurrentMinute = 0; uCurrentTimeSecond = 0; field_6FC = 0; field_764 = 0; } void _4909F4(); void RestAndHeal(); unsigned int GetPartyFame(); void CreateDefaultParty(char bGiveItems); int Reset(); void ResetPosMiscAndSpellBuffs(); bool HasItem(unsigned int uItemID); void SetHoldingItem(ItemGen *pItem); int GetNextActiveCharacter(); bool _497FC5_check_party_perception_against_level(); bool AddItem(ItemGen *pItem); void Yell(); static void SetGold(unsigned int uNumGold); static void TakeGold(unsigned int uNumGold); static __int16 SetFood(unsigned int uNumFood); static void TakeFood(unsigned int uNumFood); static __int16 GiveFood(unsigned int _this); inline bool WizardEyeActive() {return pPartyBuffs[PARTY_BUFF_WIZARD_EYE].uExpireTime > 0;} inline int WizardEyeSkillLevel() {return pPartyBuffs[PARTY_BUFF_WIZARD_EYE].uSkill;} inline bool TorchlightActive() {return pPartyBuffs[PARTY_BUFF_TORCHLIGHT].uExpireTime > 0;} inline bool FlyActive() {return pPartyBuffs[PARTY_BUFF_FLY].uExpireTime > 0;} inline bool WaterWalkActive() {return pPartyBuffs[PARTY_BUFF_WATER_WALK].uExpireTime > 0;} inline bool ImmolationActive() {return pPartyBuffs[PARTY_BUFF_IMMOLATION].uExpireTime > 0;} inline bool ImmolationSkillLevel() {return pPartyBuffs[PARTY_BUFF_IMMOLATION].uSkill;} inline bool FeatherFallActive() {return pPartyBuffs[PARTY_BUFF_FEATHER_FALL].uExpireTime > 0;} int field_0; unsigned int uPartyHeight; unsigned int uDefaultPartyHeight; int sEyelevel; unsigned int uDefaultEyelevel; int field_14; int field_18; unsigned int uWalkSpeed; int field_20_prolly_turn_speed; int field_24; int field_28; unsigned __int64 uTimePlayed; __int64 uLastRegenerationTime; Party_stru0 field_3C; 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 field_6F4_packedid; int field_6F8; int field_6FC; int uFallStartY; unsigned int bFlying; char field_708; char field_709; char field_70A; char field_70B; unsigned int uCurrentYear; unsigned int uCurrentMonth; unsigned int uCurrentMonthWeek; unsigned int uDaysPlayed; 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; __int16 field_750[5]; __int16 field_75A[5]; char field_764; // num hours resting or some sort of. unsigned __int8 _award_bits[64]; unsigned __int8 pArcomageWins[16]; char field_7B5_in_arena_quest; char uNumArenaPageWins; char uNumArenaSquireWins; char uNumArenaKnightWins; char uNumArenaLordWins; char field_7BA[12]; char pArtifactsFound[56]; unsigned char _autonote_bits[12]; char field_80A[74]; char field_854[32]; int field_874; int field_878; unsigned int bTurnBasedModeOn; int field_880; int uFlags2; unsigned int uAlignment; SpellBuff pPartyBuffs[20]; Player pPlayers[4]; NPCData pHirelings[2]; ItemGen pPickedItem; unsigned int uFlags; int field_777C[1000]; int field_871C[1000]; int field_96BC[1000]; int field_A65C[1000]; int field_B5FC[1000]; int field_C59C[1000]; int field_D53C[1000]; int field_E4DC[300]; int field_E98C[13]; int dword_E9C0; int dword_E9C4; char field_E9C8[5000]; char field_FD50[5000]; char field_110D8[5000]; char field_12460[5000]; char field_137E8[5000]; char field_14B70[5000]; char field_15EF8[250]; char field_15FF2[130]; char pHireling1Name[100]; char pHireling2Name[100]; int field_1613C; int field_16140; int pTurnBasedPlayerRecoveryTimes[4]; char field_16154[212]; int uFine; float flt_TorchlightColorR; float flt_TorchlightColorG; float flt_TorchlightColorB; }; #pragma pack(pop) extern Party *pParty; // idb extern struct ActionQueue *pPartyActionQueue;