diff Engine/Objects/SpriteObject.h @ 2498:92eeeb5200f2

.
author Ritor1
date Fri, 19 Sep 2014 00:03:04 +0600
parents
children 30eb6dcac768
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Engine/Objects/SpriteObject.h	Fri Sep 19 00:03:04 2014 +0600
@@ -0,0 +1,62 @@
+#pragma once
+#include "Items.h"
+
+enum
+{
+    OBJECT_40 = 0x40
+  , OBJECT_ATTACHED_TO_ACTOR = 0x80
+};
+
+#define MAX_SPRITE_OBJECTS 1000
+/*   72 */
+#pragma pack(push, 1)
+struct SpriteObject
+{
+  inline bool AttachedToActor() const {return (uAttributes & OBJECT_ATTACHED_TO_ACTOR) != 0;}
+
+  SpriteObject();
+  int Create(int yaw, int pitch, int a4, int a5);
+  void _46BEF1_apply_spells_aoe();
+  void ExplosionTraps();
+
+  static void UpdateObject_fn0_BLV(unsigned int uLayingItemID);
+  static void UpdateObject_fn0_ODM(unsigned int uLayingItemID);
+  static void OnInteraction(unsigned int uLayingItemID);
+  static bool sub_42F7EB_DropItemAt(unsigned int uSpriteID, int x, int y, int z, int a4, int count, int a7, unsigned __int16 attributes, ItemGen *a9);
+  static void sub_42F960_create_object(int x, int y, int z);
+  static void InitializeSpriteObjects();
+
+
+  unsigned __int16 uType;
+  unsigned __int16 uObjectDescID;
+  struct Vec3_int_ vPosition;
+  struct Vec3_short_ vVelocity;
+  unsigned __int16 uFacing;
+  unsigned __int16 uSoundID;
+  unsigned __int16 uAttributes;
+  __int16 uSectorID;
+  unsigned __int16 uSpriteFrameID;
+  __int16 field_20;
+  __int16 field_22_glow_radius_multiplier;
+  struct ItemGen stru_24;
+  int spell_id;
+  int spell_level;
+  int spell_skill;
+  int field_54;
+  int spell_caster_pid;
+  int spell_target_pid;
+  char field_60_distance_related_prolly_lod;
+  char field_61;
+  char field_62[2];
+  Vec3_int_ field_64;
+};
+#pragma pack(pop)
+
+
+void CompactLayingItemsList();
+
+extern size_t uNumSpriteObjects;
+extern std::array<SpriteObject, MAX_SPRITE_OBJECTS> pSpriteObjects;
+
+bool __fastcall _46BFFA_check_object_intercept(unsigned int uLayingItemID, signed int a2);
+void __fastcall sub_43A97E(unsigned int uLayingItemID, signed int a2); // idb