Mercurial > mm7
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