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