From 0badf94361ad1a9cfb331405666fb8cfd38b1f7c Mon Sep 17 00:00:00 2001 From: gromchek Date: Mon, 6 Oct 2025 00:29:39 +0300 Subject: [PATCH] feat(profile): CMapObjDef CMapObjDefGroup struct --- .../include/map/CMapObjDef.h | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 profile/3.3.5a-windows-386/include/map/CMapObjDef.h diff --git a/profile/3.3.5a-windows-386/include/map/CMapObjDef.h b/profile/3.3.5a-windows-386/include/map/CMapObjDef.h new file mode 100644 index 0000000..832d573 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/map/CMapObjDef.h @@ -0,0 +1,127 @@ +#ifndef CMAPOBJDEF_H +#define CMAPOBJDEF_H + +DECLARE_STRUCT(CMapObjDef); +DECLARE_STRUCT(CMapObjDefGroup); + +#include "tempest/box.h" +#include "tempest/sphere.h" +#include "tempest/matrix.h" +#include "tempest/vector.h" +#include "storm/array.h" + +STORM_TS_GROWABLE_ARRAY(CMapObjDefGroup); + +struct CMapObjDef +{ + void** vtable; //0x00 + int32_t objectIndex; //0x04 + uint16_t flags; //0x08 + uint16_t pad_0A; //0x0A + int32_t unk_C; //0x0C + CMapObjDef* prev; //0x10 + CMapObjDef* next; //0x14 + + int32_t TSExplicitList__m_linkoffset_unk_18; //0x18 + void* TSExplicitList__m_ptr1_unk_1C; //0x1C + void* TSExplicitList__m_ptr2_unk_1C; //0x20 + + void* unk_24; //0x24 + void* unk_28; //0x28 + void* unk_2C; //0x2C + void* unk_30; //0x30 + void* unk_34; //0x34 + int32_t unk_38; //0x38 + + C3Vector position; + CAaBox bbox; + CAaSphere sphere; + C44Matrix mat; + C44Matrix invMat; + + int32_t unk_F0; //0xF0 + void* CMapObjPtr_owner; //0xF4 + int32_t unk_F8; //0xF8 + uint32_t unkFlags; //0xFC + int32_t unk_100; //0x100 + int32_t unk_104; //0x104 + int32_t unk_108; //0x108 + int32_t unk_10C; //0x10C + int32_t unk_110; //0x110 + + int32_t TSExplicitList__m_linkoffset_unk_114; //0x114 + void* TSExplicitList__m_ptr1_unk_118; //0x118 + void* TSExplicitList__m_ptr2_unk_11C; //0x11C + + TSGrowableArray_CMapObjDefGroup defGroups; + + void* unk_130; //0x130 + + int32_t TSGrowableArray__m_alloc; //0x134 + int32_t TSGrowableArray__m_count; //0x138 + void* TSGrowableArray__m_data; //0x13C + int32_t TSGrowableArray__m_chunk; //0x140 + + uint32_t argbColor; //0x144 + int32_t unk_148; //0x148 + int32_t unk_14C; //0x14C + int32_t unk_150; //0x150 + void* unk_154; //0x154 +}; + +struct CMapObjDefGroup +{ + void* vtable; //0x00 + int32_t objectIndex; //0x04 + uint16_t flags; //0x08 + uint16_t pad_0A; //0x0A + int32_t unk_C; //0x0C + CMapObjDefGroup* prev; //0x10 + CMapObjDefGroup* next; //0x14 + + int32_t TSExplicitList__m_linkoffset_unk_18; //0x18 + void* TSExplicitList__m_ptr1_unk_1C; //0x1C + void* TSExplicitList__m_ptr2_unk_1C; //0x20 + + CAaBox bbox; + CAaSphere sphere; + + float unk_4C; //0x4C + + uint32_t groupNum; //0x50 + uint32_t unkFlags; //0x54 + int32_t unk_58; //0x58 + uint32_t ambientColor; //0x5C + int32_t unk_60; //0x60 + int32_t unk_64; //0x64 + int32_t unk_68; //0x68 + + int32_t TSExplicitList__m_linkoffset_unk_6C; //0x6C + void* TSExplicitList__m_ptr1_unk_70; //0x70 + void* TSExplicitList__m_ptr2_unk_74; //0x74 + + int32_t TSExplicitList__m_linkoffset_unk_78; //0x78 + void* TSExplicitList__m_ptr1_unk_7C; //0x7C + void* TSExplicitList__m_ptr2_unk_80; //0x80 + + int32_t TSExplicitList__m_linkoffset_unk_84; //0x84 + void* TSExplicitList__m_ptr1_unk_88; //0x88 + void* TSExplicitList__m_ptr2_unk_8C; //0x8C + + int32_t TSExplicitList__m_linkoffset_unk_90; //0x90 + void* TSExplicitList__m_ptr1_unk_94; //0x94 + void* TSExplicitList__m_ptr2_unk_98; //0x98 + + int32_t TSExplicitList__m_linkoffset_unk_9C; //0x9C + void* TSExplicitList__m_ptr1_unk_A0; //0xA0 + void* TSExplicitList__m_ptr2_unk_A4; //0xA4 + + int32_t unk_A8; //0xA8 + int32_t unk_AC; //0xAC + int32_t unk_B0; //0xB0 + int32_t unk_B4; //0xB4 + int32_t unk_B8; //0xB8 + int32_t unk_BC; //0xBC +}; + +#endif