From fc5ebf2e43f2a64dc0e65144722f28d67ae27375 Mon Sep 17 00:00:00 2001 From: gromchek Date: Sun, 19 Oct 2025 00:42:50 +0300 Subject: [PATCH] feat(profile): CMapDoodadDef CMapEntity structs --- profile/3.3.5a-windows-386/include/main.h | 2 + .../include/map/CMapDoodadDef.h | 69 +++++++++++++++++++ .../include/map/CMapEntity.h | 65 +++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h create mode 100644 profile/3.3.5a-windows-386/include/map/CMapEntity.h diff --git a/profile/3.3.5a-windows-386/include/main.h b/profile/3.3.5a-windows-386/include/main.h index 2c25996..84ee6c9 100644 --- a/profile/3.3.5a-windows-386/include/main.h +++ b/profile/3.3.5a-windows-386/include/main.h @@ -86,6 +86,8 @@ #include "map/CDetailDoodadInst.h" #include "map/CMapRenderChunk.h" #include "map/CMapObjDef.h" +#include "map/CMapDoodadDef.h" +#include "map/CMapEntity.h" #include "net/message.h" diff --git a/profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h b/profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h new file mode 100644 index 0000000..453677e --- /dev/null +++ b/profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h @@ -0,0 +1,69 @@ +#ifndef CMAPDOODADDEF_H +#define CMAPDOODADDEF_H + +DECLARE_STRUCT(CMapDoodadDef); + +#include "tempest/box.h" +#include "tempest/matrix.h" +#include "tempest/vector.h" + + +struct CMapDoodadDef +{ + void** vtable; //0x00 + int32_t objectIndex; //0x04 + uint16_t flags; //0x08 + uint16_t pad_0A; //0x0A + int32_t unk_C; //0x0C + void* prev; //0x10 + void* next; //0x14 + + int32_t TSExplicitList__m_linkoffset_unk_18; //0x18 + void* TSExplicitList__m_ptr1_unk_1C; //0x1C + void* TSExplicitList__m_ptr2_unk_20; //0x20 + + //CMapStaticEntity fields + int32_t unk_024; //0x24 + uint32_t unkFlags_28; //0x28 + int32_t unkCounter; //0x2C + float unk_030; //0x30 + void* unk_m2Model_034; //0x34 + C3Vector vec1; + float unk_044; //0x44 + CAaBox bbox; + 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 + + //CMapDoodadDef fields + uint32_t unkFlags_090; //0x90 + void* unk_094; //0x94 + void* unk_098; //0x98 + void* prevMapDoodadDef_09C; //0x9C + void* nextMapDoodadDef_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 + CAaBox bbox; + C44Matrix mat; + C44Matrix identity; + int32_t unk_158; //0x158 sound + int32_t unk_15C; //0x15C + int32_t unk_160; //0x160 + int32_t unk_164; //0x164 + int32_t unk_168; //0x168 + int32_t unk_16C; //0x16C + //end +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/map/CMapEntity.h b/profile/3.3.5a-windows-386/include/map/CMapEntity.h new file mode 100644 index 0000000..ec2ca41 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/map/CMapEntity.h @@ -0,0 +1,65 @@ +#ifndef CMAPENTITY_H +#define CMAPENTITY_H + +DECLARE_STRUCT(CMapEntity); + +#include "system/types.h" +#include "tempest/vector.h" +#include "tempest/box.h" + +struct CMapEntity +{ + //CMapBaseObj fields + void** vtable; //0x00 + int32_t objectIndex; //0x04 + uint16_t flags; //0x08 + uint16_t pad_0A; //0x0A + int32_t unk_C; //0x0C + CMapEntity* prev; //0x10 + CMapEntity* next; //0x14 + + int32_t TSExplicitList__m_linkoffset_unk_18; //0x18 + void* TSExplicitList__m_ptr1_unk_1C; //0x1C + void* TSExplicitList__m_ptr2_unk_20; //0x20 + //end + + //CMapStaticEntity fields + int32_t unk_024; //0x24 + uint32_t unkFlags_28; //0x28 + int32_t unkCounter; //0x2C + float unk_030; //0x30 + void* unk_m2Model_034; //0x34 + C3Vector vec1; + float unk_044; //0x44 + CAaBox bbox; + 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 \ No newline at end of file