diff Engine/Objects/Chest.h @ 2497:82d5d92a097c

for MVS2012
author Ritor1
date Thu, 18 Sep 2014 23:59:29 +0600
parents
children fb42e2662c38
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Engine/Objects/Chest.h	Thu Sep 18 23:59:29 2014 +0600
@@ -0,0 +1,78 @@
+#pragma once
+
+
+
+
+/*  348 */
+enum CHEST_FLAGS
+{
+  CHEST_TRAPPED = 0x1,
+  CHEST_ITEMS_PLACED = 0x2,
+  CHEST_OPENED = 0x4,
+};
+
+
+
+#pragma pack(push, 1)
+struct ChestDesc
+{
+  char pName[32];
+  char uWidth;
+  char uHeight;
+  __int16 uTextureID;
+};
+#pragma pack(pop)
+
+
+
+#pragma pack(push, 1)
+struct ChestList
+{
+  inline ChestList():  //----- (00458438)
+    uNumChests(0), pChests(nullptr)
+  {}
+
+  void ToFile();
+  void FromFile(void *data_mm6, void *data_mm7, void *data_mm8);
+  int FromFileTxt(const char *Args);
+
+
+  unsigned int uNumChests;
+  struct ChestDesc *pChests;
+};
+#pragma pack(pop)
+
+
+
+/*   65 */
+#pragma pack(push, 1)
+struct Chest //0x14cc
+{
+  inline bool Initialized() const    {return (uFlags & CHEST_ITEMS_PLACED) != 0;}
+  inline void SetInitialized(bool b) {if (b) uFlags |= CHEST_ITEMS_PLACED; else uFlags &= ~CHEST_ITEMS_PLACED;}
+  inline bool Trapped() const        {return (uFlags & CHEST_TRAPPED) != 0;}
+
+  static bool CanPlaceItemAt(signed int a1, int a2, signed int uChestID);
+  static int CountChestItems(signed int uChestID);
+  static int PutItemInChest(int a1, ItemGen *a2, signed int uChestID);
+  static void PlaceItemAt(unsigned int put_cell_pos, unsigned int uItemIdx, signed int uChestID);
+  static void PlaceItems(signed int uChestID);
+  static bool Open(signed int uChestID);
+  static void DrawChestUI(signed int uChestID);
+  static void ToggleFlag(signed int uChestID, unsigned __int16 uFlag, unsigned int bToggle);
+  static void ChestUI_WritePointedObjectStatusString();
+  static void OnChestLeftClick();
+
+  unsigned __int16 uChestBitmapID; //0
+  unsigned __int16 uFlags; //2
+  struct ItemGen igChestItems[140]; //4
+  signed __int16 pInventoryIndices[140]; //0x13b4
+};
+#pragma pack(pop)
+
+void __fastcall sub_420B13(int a1, int a2);
+
+
+extern size_t uNumChests; // idb
+extern struct ChestList *pChestList;
+extern std::array<Chest, 20> pChests;
\ No newline at end of file