#ifndef MAP_MAP_ENTITY_H #define MAP_MAP_ENTITY_H DECLARE_STRUCT(CMapEntityMapChunkLink); DECLARE_STRUCT(CMapEntity); #include "m2/model.h" #include "storm/list.h" STORM_TS_LIST(CMapEntityMapChunkLink); struct CMapEntityMapChunkLink { uint32_t objectIndex; // 0x00 CMapEntity* owner; // 0x04 void* ref; // 0x08 //could be CMapChunk* or CMapObjDefGroup* TSLink_CMapEntityMapChunkLink refLink; // 0x0C - 0x14 TSLink_CMapEntityMapChunkLink ownerLink; // 0x14 - 0x1C }; struct CMapEntity { // CMapBaseObj fields void** vtable; // 0x00 int32_t objectIndex; // 0x04 uint16_t type; // 0x08 uint16_t refCount; // 0x0A int32_t unk_C; // 0x0C CMapEntity* prev; // 0x10 CMapEntity* next; // 0x14 TSExplicitList_CMapEntityMapChunkLink linkList; // end // CMapStaticEntity fields int32_t unk_024; // 0x24 uint32_t unkFlags_28; // 0x28 int32_t unkCounter; // 0x2C float unk_030; // 0x30 CM2Model* model; CAaSphere sphere; CAaBox bboxStaticEntity; C3Vector vec2; C3Vector position; float scale; // 0x78 int32_t unk_07C; // 0x7C int32_t unk_080; // 0x80 CImVector m2AmbietColor; // 0x84 CImVector m2DiffuseColor; // 0x88 float unk_08C; // 0x8C // end // CMapEntity fields int32_t unk_090; // 0x90 int32_t unk_094; // 0x94 uint64_t guid; // 0x98 int32_t unk_0A0; // 0xA0 int32_t unk_0A4; // 0xA4 int32_t unk_0A8; // 0xA8 int32_t unk_0AC; // 0xAC int32_t unk_0B0; // 0xB0 int32_t unk_0B4; // 0xB4 int32_t unk_0B8; // 0xB8 int32_t unk_0BC; // 0xBC CImVector ambientTarget; float dirLightScaleTarget; int32_t unk_0C8; // 0xC8 int32_t unk_0CC; // 0xCC // end }; #endif