Mercurial > mm7
diff Party.h @ 0:9c0607679772
init
author | Ritor1 |
---|---|
date | Sat, 12 Jan 2013 09:45:18 +0600 |
parents | |
children | 653fdf29c654 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Party.h Sat Jan 12 09:45:18 2013 +0600 @@ -0,0 +1,276 @@ +#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; \ No newline at end of file