diff --git a/profile/3.3.5a-windows-386/include/main.h b/profile/3.3.5a-windows-386/include/main.h index 84ee6c9..5ee800b 100644 --- a/profile/3.3.5a-windows-386/include/main.h +++ b/profile/3.3.5a-windows-386/include/main.h @@ -78,6 +78,7 @@ #include "m2/shared.h" #include "m2/types.h" +#include "map/CMapBaseObj.h" #include "map/ADTchunks.h" #include "map/CMapArea.h" #include "map/WMOchunks.h" @@ -86,8 +87,10 @@ #include "map/CDetailDoodadInst.h" #include "map/CMapRenderChunk.h" #include "map/CMapObjDef.h" +#include "map/CMapStaticEntity.h" #include "map/CMapDoodadDef.h" #include "map/CMapEntity.h" +#include "map/CMapBaseObjLink.h" #include "net/message.h" diff --git a/profile/3.3.5a-windows-386/include/map/ADTchunks.h b/profile/3.3.5a-windows-386/include/map/ADTchunks.h index 9f59c25..6d898be 100644 --- a/profile/3.3.5a-windows-386/include/map/ADTchunks.h +++ b/profile/3.3.5a-windows-386/include/map/ADTchunks.h @@ -6,7 +6,13 @@ DECLARE_STRUCT(SMChunkInfo); DECLARE_STRUCT(SMDoodadDef); DECLARE_STRUCT(SMMapObjDef); DECLARE_STRUCT(SMChunk); +DECLARE_STRUCT(SLVert); DECLARE_STRUCT(SMLayer); +DECLARE_STRUCT(SLTiles); +DECLARE_STRUCT(SWFlowv); +DECLARE_STRUCT(SOVert); +DECLARE_STRUCT(SMVert); +DECLARE_STRUCT(SWVert); DECLARE_STRUCT(SMLiquidChunk); DECLARE_STRUCT(CWSoundEmitter); @@ -106,52 +112,65 @@ struct SMLayer uint32_t offectId; }; +struct SWVert +{ + char depth; + char flow0Pct; + char flow1Pct; + char filler; + float height; +}; + +struct SOVert +{ + char depth; + char foam; + char wet; + char filler; +}; + +struct SMVert +{ + uint16_t s; + uint16_t t; + float height; +}; + +struct SLVert +{ + union + { + SWVert waterVert; + SOVert oceanVert; + SMVert magmaVert; + }; +}; + +struct SLTiles +{ + char tiles[8][8]; +}; + +struct SWFlowv +{ + CAaSphere sphere; + C3Vector dir; + float velocity; + float amplitude; + float frequency; +}; + struct SMLiquidChunk { float minHeight; float maxHeight; - struct SLVert - { - union - { - struct SWVert - { - char depth; - char flow0Pct; - char flow1Pct; - char filler; - float height; - } waterVert; - struct SOVert - { - char depth; - char foam; - char wet; - char filler; - } oceanVert; - struct SMVert - { - uint16_t s; - uint16_t t; - float height; - } magmaVert; - }; - } verts[9*9]; + + SLVert verts[9*9]; - struct SLTiles - { - char tiles[8][8]; - } tiles; + SLTiles tiles; uint32_t nFlowvs; - struct SWFlowv - { - CAaSphere sphere; - C3Vector dir; - float velocity; - float amplitude; - float frequency; - } flowvs[2]; + SWFlowv flowvs[2]; }; struct CWSoundEmitter diff --git a/profile/3.3.5a-windows-386/include/map/CMapArea.h b/profile/3.3.5a-windows-386/include/map/CMapArea.h index efddac1..bc9f461 100644 --- a/profile/3.3.5a-windows-386/include/map/CMapArea.h +++ b/profile/3.3.5a-windows-386/include/map/CMapArea.h @@ -14,25 +14,49 @@ struct CMapAreaTexture struct CMapChunk; #include "async/object.h" -#include "ADTchunks.h" +#include "map/ADTchunks.h" #include "storm/array.h" #include "texture/texture.h" +#include "map/CMapBaseObj.h" +#include "map/CMapBaseObjLink.h" +#include "map/CMapDoodadDef.h" +#include "map/CMapObjDef.h" STORM_TS_GROWABLE_ARRAY(CMapAreaTexture); +typedef struct CMapAreaLink CMapAreaLink; +STORM_TS_LIST(CMapAreaLink); +struct CMapAreaLink +{ + uint32_t objectIndex; //0x00 + CMapArea* owner; //0x04 + void* ref; //0x08 + TSLink_CMapAreaLink refLink; //0x0C - 0x14 + TSLink_CMapAreaLink ownerLink; //0x14 - 0x1C +}; + +typedef struct CMapAreaChunkLink CMapAreaChunkLink; +STORM_TS_LIST(CMapAreaChunkLink); +struct CMapAreaChunkLink +{ + uint32_t objectIndex; //0x00 + CMapChunk* owner; //0x04 + CMapArea* ref; //0x08 + TSLink_CMapAreaChunkLink refLink; //0x0C - 0x14 + TSLink_CMapAreaChunkLink ownerLink; //0x14 - 0x1C +}; + struct CMapArea { void** vtable; uint32_t objectIndex; - uint16_t flags; - uint16_t pad_0A; + uint16_t type; + uint16_t refCount; uint32_t unk_0C; CMapArea* perv; CMapArea* next; - int32_t TSExplicitList__m_linkoffset_18; - void* TSExplicitList__ptr_1C; - void* TSExplicitList__ptr2_20; + TSExplicitList_CMapAreaLink linkList; C3Vector bottomRight; C3Vector topLeft; @@ -48,9 +72,7 @@ struct CMapArea int32_t unk_6C; CAsyncObject* asyncObject; - int32_t TSExplicitList__m_linkoffset_unk_74; - void* TSExplicitList__ptr_unk_78; - void* TSExplicitList__ptr2_unk_7C; + TSExplicitList_CMapAreaChunkLink chunkLinkList; void* filePtr; int32_t fileSize; @@ -72,19 +94,54 @@ struct CMapArea CMapChunk* mapChunks[256]; }; + +typedef struct CMapChunkLink CMapChunkLink; +STORM_TS_LIST(CMapChunkLink); +struct CMapChunkLink +{ + uint32_t objectIndex; //0x00 + CMapChunk* owner; //0x04 + CMapArea* ref; //0x08 + TSLink_CMapChunkLink refLink; //0x0C - 0x14 + TSLink_CMapChunkLink ownerLink; //0x14 - 0x1C +}; + +typedef struct CMapChunkDoodadDefLink CMapChunkDoodadDefLink; +STORM_TS_LIST(CMapChunkDoodadDefLink); +struct CMapChunkDoodadDefLink +{ + uint32_t objectIndex; //0x00 + CMapDoodadDef* owner; //0x04 + CMapChunk* ref; //0x08 + TSLink_CMapChunkDoodadDefLink refLink; //0x0C - 0x14 + TSLink_CMapChunkDoodadDefLink ownerLink; //0x14 - 0x1C +}; + +typedef struct CMapChunkMapObjDefLink CMapChunkMapObjDefLink; +STORM_TS_LIST(CMapChunkMapObjDefLink); +struct CMapChunkMapObjDefLink +{ + uint32_t objectIndex; //0x00 + CMapObjDef* owner; //0x04 + CMapChunk* ref; //0x08 + TSLink_CMapChunkMapObjDefLink refLink; //0x0C - 0x14 + TSLink_CMapChunkMapObjDefLink ownerLink; //0x14 - 0x1C +}; + +typedef struct CChunkLiquid CChunkLiquid; +STORM_TS_LIST(CChunkLiquid); + struct CMapChunk { void** vtable; uint32_t objectIndex; - uint16_t flags; - uint16_t pad_0A; + uint16_t type; + uint16_t refCount; uint32_t unk_0C; CMapChunk* prev; CMapChunk* next; - int32_t TSExplicitList__m_linkoffset_18; - void* TSExplicitList__ptr1_1C; - void* TSExplicitList__ptr2_20; + TSExplicitList_CMapChunkLink linkList; C2iVector aIndex; C2iVector sOffset; @@ -109,15 +166,8 @@ struct CMapChunk int32_t unk_BC; int32_t unk_C0; - // CMapDoodadDef - int32_t TSExplicitList__m_linkoffset_C4; - void* TSExplicitList__ptr_C8; - void* TSExplicitList__ptr2_CC; - - // CMapObjDef - int32_t TSExplicitList__m_linkoffset_D0; - void* TSExplicitList__ptr_D4; - void* TSExplicitList__ptr2_D8; + TSExplicitList_CMapChunkDoodadDefLink doodadDefLinkList; + TSExplicitList_CMapChunkMapObjDefLink mapObjDefLinkList; int32_t TSExplicitList__m_linkoffset_DC; void* TSExplicitList__ptr_E0; @@ -134,9 +184,7 @@ struct CMapChunk void* TSExplicitList__ptr2_FC; // CChunkLiquid - int32_t TSExplicitList__m_linkoffset_100; - void* TSExplicitList__ptr_104; - void* TSExplicitList__ptr2_108; + TSExplicitList_CChunkLiquid liquidChunkLinkList; uint8_t* chunkInfoBeginPtr; SMChunk* header; diff --git a/profile/3.3.5a-windows-386/include/map/CMapBaseObj.h b/profile/3.3.5a-windows-386/include/map/CMapBaseObj.h new file mode 100644 index 0000000..4ef1806 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/map/CMapBaseObj.h @@ -0,0 +1,23 @@ +#ifndef CMAPBASEOBJ_H +#define CMAPBASEOBJ_H + +DECLARE_STRUCT(CMapBaseObj); + +#include "system/types.h" +#include "map/CMapBaseObjLink.h" + +struct CMapBaseObj +{ + void** vtable; //0x00 + int32_t objectIndex; //0x04 + uint16_t type; //0x08 + uint16_t refCount; //0x0A + int32_t unk_C; //0x0C + + CMapBaseObj* prev; //0x10 + CMapBaseObj* next; //0x14 + + TSExplicitList_CMapBaseObjLink list; //0x18 - 0x24 +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/map/CMapBaseObjLink.h b/profile/3.3.5a-windows-386/include/map/CMapBaseObjLink.h new file mode 100644 index 0000000..f2c6346 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/map/CMapBaseObjLink.h @@ -0,0 +1,24 @@ +#ifndef CMAPBASEOBJLINK_H +#define CMAPBASEOBJLINK_H + +DECLARE_STRUCT(CMapBaseObjLink); + +#include "system/types.h" +#include "storm/list.h" + +STORM_TS_LIST(CMapBaseObjLink); + +struct CMapBaseObj; + +struct CMapBaseObjLink +{ + uint32_t objectIndex; //0x00 + + CMapBaseObj* owner; //0x04 + CMapBaseObj* ref; //0x08 + + TSLink_CMapBaseObjLink refLink; //0x0C - 0x14 + TSLink_CMapBaseObjLink ownerLink; //0x14 - 0x1C +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h b/profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h index 453677e..e710b8f 100644 --- a/profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h +++ b/profile/3.3.5a-windows-386/include/map/CMapDoodadDef.h @@ -6,21 +6,31 @@ DECLARE_STRUCT(CMapDoodadDef); #include "tempest/box.h" #include "tempest/matrix.h" #include "tempest/vector.h" +#include "storm/list.h" +#include "map/CMapArea.h" +typedef struct CMapDoodadDefMapChunkLink CMapDoodadDefMapChunkLink; +STORM_TS_LIST(CMapDoodadDefMapChunkLink); +struct CMapDoodadDefMapChunkLink +{ + uint32_t objectIndex; //0x00 + CMapDoodadDef* owner; //0x04 + CMapBaseObj* ref; //0x08 //could be CMapChunk* or CMapObjDefGroup* + TSLink_CMapDoodadDefMapChunkLink refLink; //0x0C - 0x14 + TSLink_CMapDoodadDefMapChunkLink ownerLink; //0x14 - 0x1C +}; struct CMapDoodadDef { void** vtable; //0x00 int32_t objectIndex; //0x04 - uint16_t flags; //0x08 - uint16_t pad_0A; //0x0A + uint16_t type; //0x08 + uint16_t refCount; //0x0A int32_t unk_C; //0x0C - void* prev; //0x10 - void* next; //0x14 + CMapDoodadDef* prev; //0x10 + CMapDoodadDef* next; //0x14 - int32_t TSExplicitList__m_linkoffset_unk_18; //0x18 - void* TSExplicitList__m_ptr1_unk_1C; //0x1C - void* TSExplicitList__m_ptr2_unk_20; //0x20 + TSExplicitList_CMapDoodadDefMapChunkLink linkList; //CMapStaticEntity fields int32_t unk_024; //0x24 diff --git a/profile/3.3.5a-windows-386/include/map/CMapEntity.h b/profile/3.3.5a-windows-386/include/map/CMapEntity.h index ec2ca41..ddbd7eb 100644 --- a/profile/3.3.5a-windows-386/include/map/CMapEntity.h +++ b/profile/3.3.5a-windows-386/include/map/CMapEntity.h @@ -6,21 +6,32 @@ DECLARE_STRUCT(CMapEntity); #include "system/types.h" #include "tempest/vector.h" #include "tempest/box.h" +#include "storm/list.h" +#include "map/CMapBaseObj.h" + +typedef struct CMapEntityMapChunkLink CMapEntityMapChunkLink; +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 flags; //0x08 - uint16_t pad_0A; //0x0A + uint16_t type; //0x08 + uint16_t refCount; //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 + TSExplicitList_CMapEntityMapChunkLink linkList; //end //CMapStaticEntity fields diff --git a/profile/3.3.5a-windows-386/include/map/CMapObj.h b/profile/3.3.5a-windows-386/include/map/CMapObj.h index ed834e2..9a24ad7 100644 --- a/profile/3.3.5a-windows-386/include/map/CMapObj.h +++ b/profile/3.3.5a-windows-386/include/map/CMapObj.h @@ -3,12 +3,15 @@ #include "tempest/box.h" #include "async/object.h" -#include "WMOchunks.h" +#include "map/WMOchunks.h" #include "tempest/vector.h" +#include "storm/list.h" DECLARE_STRUCT(CMapObj); DECLARE_STRUCT(CMapObjGroup); +STORM_TS_LIST(CMapObjGroup); + struct CMapObjGroup; struct CMapObj @@ -66,9 +69,7 @@ struct CMapObj CAsyncObject* asyncObject; int32_t isGroupLoaded; int32_t unk_1E4; - int32_t TSExplicitList__m_linkOffset; - void* TSExplicitList__ptr1; - void* TSExplicitList__ptr2; + TSExplicitList_CMapObjGroup mapObjGroupList; int32_t mapObjGroupCount; CMapObjGroup* mapObjGroupArray[512]; }; diff --git a/profile/3.3.5a-windows-386/include/map/CMapObjDef.h b/profile/3.3.5a-windows-386/include/map/CMapObjDef.h index 832d573..fde0aa0 100644 --- a/profile/3.3.5a-windows-386/include/map/CMapObjDef.h +++ b/profile/3.3.5a-windows-386/include/map/CMapObjDef.h @@ -9,22 +9,46 @@ DECLARE_STRUCT(CMapObjDefGroup); #include "tempest/matrix.h" #include "tempest/vector.h" #include "storm/array.h" +#include "storm/list.h" +#include "map/CMapDoodadDef.h" +#include "map/CMapArea.h" STORM_TS_GROWABLE_ARRAY(CMapObjDefGroup); +struct CMapChunk; +typedef struct CMapObjDefMapChunkLink CMapObjDefMapChunkLink; +STORM_TS_LIST(CMapObjDefMapChunkLink); +struct CMapObjDefMapChunkLink +{ + uint32_t objectIndex; //0x00 + CMapObjDef* owner; //0x04 + CMapChunk* ref; //0x08 + TSLink_CMapObjDefMapChunkLink refLink; //0x0C - 0x14 + TSLink_CMapObjDefMapChunkLink ownerLink; //0x14 - 0x1C +}; + +typedef struct CMapObjDefMapObjDefGroupLink CMapObjDefMapObjDefGroupLink; +STORM_TS_LIST(CMapObjDefMapObjDefGroupLink); +struct CMapObjDefMapObjDefGroupLink +{ + uint32_t objectIndex; //0x00 + CMapObjDefGroup* owner; //0x04 + CMapObjDef* ref; //0x08 + TSLink_CMapObjDefMapObjDefGroupLink refLink; //0x0C - 0x14 + TSLink_CMapObjDefMapObjDefGroupLink ownerLink; //0x14 - 0x1C +}; + struct CMapObjDef { void** vtable; //0x00 int32_t objectIndex; //0x04 - uint16_t flags; //0x08 - uint16_t pad_0A; //0x0A + uint16_t type; //0x08 + uint16_t refCount; //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 + TSExplicitList_CMapObjDefMapChunkLink linkList; void* unk_24; //0x24 void* unk_28; //0x28 @@ -49,9 +73,7 @@ struct CMapObjDef 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 + TSExplicitList_CMapObjDefMapObjDefGroupLink mapObjDefGroupLinkList; TSGrowableArray_CMapObjDefGroup defGroups; @@ -69,19 +91,39 @@ struct CMapObjDef void* unk_154; //0x154 }; +typedef struct CMapObjDefGroupMapObjDefLink CMapObjDefGroupMapObjDefLink; +STORM_TS_LIST(CMapObjDefGroupMapObjDefLink); +struct CMapObjDefGroupMapObjDefLink +{ + uint32_t objectIndex; //0x00 + CMapObjDefGroup* owner; //0x04 + CMapObjDef* ref; //0x08 + TSLink_CMapObjDefGroupMapObjDefLink refLink; //0x0C - 0x14 + TSLink_CMapObjDefGroupMapObjDefLink ownerLink; //0x14 - 0x1C +}; + +typedef struct CMapObjDefGroupDoodadDefLink CMapObjDefGroupDoodadDefLink; +STORM_TS_LIST(CMapObjDefGroupDoodadDefLink); +struct CMapObjDefGroupDoodadDefLink +{ + uint32_t objectIndex; //0x00 + CMapDoodadDef* owner; //0x04 + CMapObjDef* ref; //0x08 + TSLink_CMapObjDefGroupDoodadDefLink refLink; //0x0C - 0x14 + TSLink_CMapObjDefGroupDoodadDefLink ownerLink; //0x14 - 0x1C +}; + struct CMapObjDefGroup { void* vtable; //0x00 int32_t objectIndex; //0x04 - uint16_t flags; //0x08 - uint16_t pad_0A; //0x0A + uint16_t type; //0x08 + uint16_t refCount; //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 + TSExplicitList_CMapObjDefGroupMapObjDefLink linkList; CAaBox bbox; CAaSphere sphere; @@ -96,13 +138,13 @@ struct CMapObjDefGroup int32_t unk_64; //0x64 int32_t unk_68; //0x68 + //CWFrustum 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 + // CMapDoodadDef + TSExplicitList_CMapObjDefGroupDoodadDefLink doodadDefLinkList; int32_t TSExplicitList__m_linkoffset_unk_84; //0x84 void* TSExplicitList__m_ptr1_unk_88; //0x88 diff --git a/profile/3.3.5a-windows-386/include/map/CMapStaticEntity.h b/profile/3.3.5a-windows-386/include/map/CMapStaticEntity.h new file mode 100644 index 0000000..0c612f3 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/map/CMapStaticEntity.h @@ -0,0 +1,54 @@ +#ifndef CMAPSTATICENTITY_H +#define CMAPSTATICENTITY_H + +DECLARE_STRUCT(CMapStaticEntity); + +#include "system/types.h" +#include "tempest/vector.h" +#include "tempest/box.h" +#include "storm/list.h" +#include "map/CMapBaseObj.h" + +typedef struct CMapStaticEntityMapChunkLink CMapStaticEntityMapChunkLink; +STORM_TS_LIST(CMapStaticEntityMapChunkLink); +struct CMapStaticEntityMapChunkLink +{ + uint32_t objectIndex; //0x00 + CMapStaticEntity* owner; //0x04 + void* ref; //0x08 //could be CMapChunk* or CMapObjDefGroup* + TSLink_CMapStaticEntityMapChunkLink refLink; //0x0C - 0x14 + TSLink_CMapStaticEntityMapChunkLink ownerLink; //0x14 - 0x1C +}; + +struct CMapStaticEntity +{ + void** vtable; //0x00 + int32_t objectIndex; //0x04 + uint16_t type; //0x08 + uint16_t refCount; //0x0A + int32_t unk_C; //0x0C + CMapStaticEntity* prev; //0x10 + CMapStaticEntity* next; //0x14 + + TSExplicitList_CMapStaticEntityMapChunkLink linkList; + + + 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 +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/map/WMOchunks.h b/profile/3.3.5a-windows-386/include/map/WMOchunks.h index d249bf5..7f1c84a 100644 --- a/profile/3.3.5a-windows-386/include/map/WMOchunks.h +++ b/profile/3.3.5a-windows-386/include/map/WMOchunks.h @@ -19,6 +19,8 @@ DECLARE_STRUCT(SMOPoly); DECLARE_STRUCT(SMOBatch); DECLARE_STRUCT(SMOLiquidVert); DECLARE_STRUCT(SMOLTile); +DECLARE_STRUCT(SMOWVert); +DECLARE_STRUCT(SMOMVert); struct SMOHeader { @@ -32,13 +34,14 @@ struct SMOHeader uint32_t ambColor; uint32_t wmoID; CAaBox bounding_box; - uint16_t flag_do_not_attenuate_vertices_based_on_distance_to_portal : 1; + /*uint16_t flag_do_not_attenuate_vertices_based_on_distance_to_portal : 1; uint16_t flag_use_unified_render_path : 1; uint16_t flag_use_liquid_type_dbc_id : 1; uint16_t flag_do_not_fix_vertex_color_alpha: 1; uint16_t flag_lod : 1; uint16_t flag_default_max_lod : 1; - uint16_t : 10; + uint16_t : 10;*/ + uint16_t flags; uint16_t numLod; }; @@ -96,12 +99,13 @@ struct SMODoodadSet struct SMODoodadDef { - uint32_t nameIndex : 24; + /*uint32_t nameIndex : 24; uint32_t flag_AcceptProjTex : 1; uint32_t flag_0x2 : 1; uint32_t flag_0x4 : 1; uint32_t flag_0x8 : 1; - uint32_t unk : 4; + uint32_t unk : 4;*/ + uint32_t flags; C3Vector position; C4Quaternion orientation; float scale; @@ -110,10 +114,11 @@ struct SMODoodadDef struct SMOFog { - uint32_t flag_infinite_radius : 1; + /*uint32_t flag_infinite_radius : 1; uint32_t : 3; uint32_t flag_0x10 : 1; - uint32_t : 27; + uint32_t : 27;*/ + uint32_t flags; C3Vector position; float smallerRadius; @@ -131,7 +136,7 @@ struct SMOFog struct SMOMaterial { - uint32_t F_UNLIT : 1; + /*uint32_t F_UNLIT : 1; uint32_t F_UNFOGGED : 1; uint32_t F_UNCULLED : 1; uint32_t F_EXTLIGHT : 1; @@ -140,7 +145,8 @@ struct SMOMaterial uint32_t F_CLAMP_S : 1; uint32_t F_CLAMP_T : 1; uint32_t flag_0x100 : 1; - uint32_t : 23; + uint32_t : 23;*/ + uint32_t flags; uint32_t shader; @@ -163,14 +169,15 @@ struct SMOMaterial struct SMOPoly { - uint8_t F_UNK_0x01: 1; + /*uint8_t F_UNK_0x01: 1; uint8_t F_NOCAMCOLLIDE : 1; uint8_t F_DETAIL : 1; uint8_t F_COLLISION : 1; uint8_t F_HINT : 1; uint8_t F_RENDER : 1; uint8_t F_CULL_OBJECTS : 1; - uint8_t F_COLLIDE_HIT : 1; + uint8_t F_COLLIDE_HIT : 1;*/ + uint8_t flags; uint8_t materialId; }; @@ -186,35 +193,39 @@ struct SMOBatch uint8_t texture; }; +struct SMOWVert +{ + uint8_t flow1; + uint8_t flow2; + uint8_t flow1Pct; + uint8_t filler; + float height; +}; + +struct SMOMVert +{ + int16_t s; + int16_t t; + float height; +}; + struct SMOLiquidVert { union { - struct SMOWVert - { - uint8_t flow1; - uint8_t flow2; - uint8_t flow1Pct; - uint8_t filler; - float height; - } waterVert; - - struct SMOMVert - { - int16_t s; - int16_t t; - float height; - } magmaVert; + SMOWVert waterVert; + SMOMVert magmaVert; }; }; struct SMOLTile { - uint8_t legacyLiquidType : 4; + /*uint8_t legacyLiquidType : 4; uint8_t unknown1 : 1; uint8_t unknown2 : 1; uint8_t fishable : 1; - uint8_t shared : 1; + uint8_t shared : 1;*/ + uint8_t flags; }; diff --git a/profile/3.3.5a-windows-386/x64dbg/types.json b/profile/3.3.5a-windows-386/x64dbg/types.json index 00f5a8f..b04d15e 100644 --- a/profile/3.3.5a-windows-386/x64dbg/types.json +++ b/profile/3.3.5a-windows-386/x64dbg/types.json @@ -656,6 +656,66 @@ "type": "TSList_CShaderEffect", "name": "TSExplicitList_CShaderEffect" }, + { + "type": "TSList_CMapBaseObjLink", + "name": "TSExplicitList_CMapBaseObjLink" + }, + { + "type": "TSList_CMapDoodadDefMapChunkLink", + "name": "TSExplicitList_CMapDoodadDefMapChunkLink" + }, + { + "type": "TSList_CMapObjDefMapChunkLink", + "name": "TSExplicitList_CMapObjDefMapChunkLink" + }, + { + "type": "TSList_CMapObjDefMapObjDefGroupLink", + "name": "TSExplicitList_CMapObjDefMapObjDefGroupLink" + }, + { + "type": "TSList_CMapObjDefGroupMapObjDefLink", + "name": "TSExplicitList_CMapObjDefGroupMapObjDefLink" + }, + { + "type": "TSList_CMapObjDefGroupDoodadDefLink", + "name": "TSExplicitList_CMapObjDefGroupDoodadDefLink" + }, + { + "type": "TSList_CMapAreaLink", + "name": "TSExplicitList_CMapAreaLink" + }, + { + "type": "TSList_CMapAreaChunkLink", + "name": "TSExplicitList_CMapAreaChunkLink" + }, + { + "type": "TSList_CMapChunkLink", + "name": "TSExplicitList_CMapChunkLink" + }, + { + "type": "TSList_CMapChunkDoodadDefLink", + "name": "TSExplicitList_CMapChunkDoodadDefLink" + }, + { + "type": "TSList_CMapChunkMapObjDefLink", + "name": "TSExplicitList_CMapChunkMapObjDefLink" + }, + { + "type": "TSList_CChunkLiquid", + "name": "TSExplicitList_CChunkLiquid" + }, + { + "type": "TSList_CMapObjGroup", + "name": "TSExplicitList_CMapObjGroup" + }, + { + "type": "TSList_CMapStaticEntityMapChunkLink", + "name": "TSExplicitList_CMapStaticEntityMapChunkLink" + }, + { + "type": "TSList_CMapEntityMapChunkLink", + "name": "TSExplicitList_CMapEntityMapChunkLink" + }, { "type": "TSList_CILayer", "name": "TSExplicitList_CILayer" @@ -8560,6 +8620,58 @@ } ] }, + { + "name": "CMapAreaTexture", + "size": 8, + "members": [ + { + "type": "char*", + "name": "textureName", + "offset": 0 + }, + { + "type": "CTexture*", + "name": "texture", + "offset": 4 + } + ] + }, + { + "name": "CMapRenderChunkLayer", + "size": 20, + "members": [ + { + "type": "int16_t", + "name": "flags", + "offset": 0 + }, + { + "type": "int16_t", + "name": "layerIndex", + "offset": 2 + }, + { + "type": "CTexture*", + "name": "texture", + "offset": 4 + }, + { + "type": "int32_t", + "name": "unkIndex", + "offset": 8 + }, + { + "type": "int32_t", + "name": "unkValue", + "offset": 12 + }, + { + "type": "CMapRenderChunk*", + "name": "owner", + "offset": 16 + } + ] + }, { "name": "CRange", "size": 8, @@ -23237,6 +23349,364 @@ "name": "SFile", "size": 0 }, + { + "name": "SLTiles", + "size": 64, + "members": [ + { + "type": "char", + "name": "tiles", + "arrsize": 64, + "offset": 0 + } + ] + }, + { + "name": "SMLayer", + "size": 16, + "members": [ + { + "type": "uint32_t", + "name": "textureId", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "flags", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "offsetInMCAL", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "offectId", + "offset": 12 + } + ] + }, + { + "name": "SMMapHeader", + "size": 64, + "members": [ + { + "type": "uint32_t", + "name": "flags", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "mcin", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "mtex", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "mmdx", + "offset": 12 + }, + { + "type": "uint32_t", + "name": "mmid", + "offset": 16 + }, + { + "type": "uint32_t", + "name": "mwmo", + "offset": 20 + }, + { + "type": "uint32_t", + "name": "mwid", + "offset": 24 + }, + { + "type": "uint32_t", + "name": "mddf", + "offset": 28 + }, + { + "type": "uint32_t", + "name": "modf", + "offset": 32 + }, + { + "type": "uint32_t", + "name": "mfbo", + "offset": 36 + }, + { + "type": "uint32_t", + "name": "mh2o", + "offset": 40 + }, + { + "type": "uint32_t", + "name": "mtxf", + "offset": 44 + }, + { + "type": "uint8_t", + "name": "mamp_value", + "offset": 48 + }, + { + "type": "uint8_t", + "name": "padding", + "arrsize": 3, + "offset": 49 + }, + { + "type": "uint32_t", + "name": "unused", + "arrsize": 3, + "offset": 52 + } + ] + }, + { + "name": "SMOBatch", + "size": 24, + "members": [ + { + "type": "int8_t", + "name": "unused", + "arrsize": 12, + "offset": 0 + }, + { + "type": "uint32_t", + "name": "indexStart", + "offset": 12 + }, + { + "type": "uint16_t", + "name": "indexCount", + "offset": 16 + }, + { + "type": "uint16_t", + "name": "vertexStart", + "offset": 18 + }, + { + "type": "uint16_t", + "name": "vertexEnd", + "offset": 20 + }, + { + "type": "uint8_t", + "name": "flags", + "offset": 22 + }, + { + "type": "uint8_t", + "name": "texture", + "offset": 23 + } + ] + }, + { + "name": "SMODoodadSet", + "size": 32, + "members": [ + { + "type": "char", + "name": "name", + "arrsize": 20, + "offset": 0 + }, + { + "type": "uint32_t", + "name": "startIdx", + "offset": 20 + }, + { + "type": "uint32_t", + "name": "count", + "offset": 24 + }, + { + "type": "uint32_t", + "name": "pad", + "offset": 28 + } + ] + }, + { + "name": "SMOLTile", + "size": 1, + "members": [ + { + "type": "uint8_t", + "name": "flags", + "offset": 0 + } + ] + }, + { + "name": "SMOMVert", + "size": 8, + "members": [ + { + "type": "int16_t", + "name": "s", + "offset": 0 + }, + { + "type": "int16_t", + "name": "t", + "offset": 2 + }, + { + "type": "float", + "name": "height", + "offset": 4 + } + ] + }, + { + "name": "SMOPoly", + "size": 2, + "members": [ + { + "type": "uint8_t", + "name": "flags", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "materialId", + "offset": 1 + } + ] + }, + { + "name": "SMOPortalRef", + "size": 8, + "members": [ + { + "type": "uint16_t", + "name": "portalIndex", + "offset": 0 + }, + { + "type": "uint16_t", + "name": "groupIndex", + "offset": 2 + }, + { + "type": "int16_t", + "name": "side", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "filler", + "offset": 6 + } + ] + }, + { + "name": "SMOVisibleBlock", + "size": 4, + "members": [ + { + "type": "uint16_t", + "name": "firstVertex", + "offset": 0 + }, + { + "type": "uint16_t", + "name": "count", + "offset": 2 + } + ] + }, + { + "name": "SMOWVert", + "size": 8, + "members": [ + { + "type": "uint8_t", + "name": "flow1", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "flow2", + "offset": 1 + }, + { + "type": "uint8_t", + "name": "flow1Pct", + "offset": 2 + }, + { + "type": "uint8_t", + "name": "filler", + "offset": 3 + }, + { + "type": "float", + "name": "height", + "offset": 4 + } + ] + }, + { + "name": "SMVert", + "size": 8, + "members": [ + { + "type": "uint16_t", + "name": "s", + "offset": 0 + }, + { + "type": "uint16_t", + "name": "t", + "offset": 2 + }, + { + "type": "float", + "name": "height", + "offset": 4 + } + ] + }, + { + "name": "SOVert", + "size": 4, + "members": [ + { + "type": "char", + "name": "depth", + "offset": 0 + }, + { + "type": "char", + "name": "foam", + "offset": 1 + }, + { + "type": "char", + "name": "wet", + "offset": 2 + }, + { + "type": "char", + "name": "filler", + "offset": 3 + } + ] + }, { "name": "SSyncObject", "size": 4, @@ -23309,6 +23779,37 @@ } ] }, + { + "name": "SWVert", + "size": 8, + "members": [ + { + "type": "char", + "name": "depth", + "offset": 0 + }, + { + "type": "char", + "name": "flow0Pct", + "offset": 1 + }, + { + "type": "char", + "name": "flow1Pct", + "offset": 2 + }, + { + "type": "char", + "name": "filler", + "offset": 3 + }, + { + "type": "float", + "name": "height", + "offset": 4 + } + ] + }, { "name": "ScalingStatDistributionRec", "size": 88, @@ -27172,6 +27673,32 @@ } ] }, + { + "name": "TSGrowableArray_CDetailDoodadGeomVertex", + "size": 16, + "members": [ + { + "type": "uint32_t", + "name": "m_alloc", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "m_count", + "offset": 4 + }, + { + "type": "CDetailDoodadGeomVertex*", + "name": "m_data", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "m_chunk", + "offset": 12 + } + ] + }, { "name": "TSGrowableArray_CGxDeviceD3d__GxVertexDecl", "size": 16, @@ -27276,6 +27803,58 @@ } ] }, + { + "name": "TSGrowableArray_CMapAreaTexture", + "size": 16, + "members": [ + { + "type": "uint32_t", + "name": "m_alloc", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "m_count", + "offset": 4 + }, + { + "type": "CMapAreaTexture*", + "name": "m_data", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "m_chunk", + "offset": 12 + } + ] + }, + { + "name": "TSGrowableArray_CMapObjDefGroup", + "size": 16, + "members": [ + { + "type": "uint32_t", + "name": "m_alloc", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "m_count", + "offset": 4 + }, + { + "type": "CMapObjDefGroup*", + "name": "m_data", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "m_chunk", + "offset": 12 + } + ] + }, { "name": "TSGrowableArray_CRibbonMat", "size": 16, @@ -28042,6 +28621,22 @@ } ] }, + { + "name": "TSLink_CChunkLiquid", + "size": 8, + "members": [ + { + "type": "TSLink_CChunkLiquid*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CChunkLiquid*", + "name": "m_next", + "offset": 4 + } + ] + }, { "name": "TSLink_CGxBuf", "size": 8, @@ -28234,6 +28829,230 @@ } ] }, + { + "name": "TSLink_CMapAreaChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapAreaChunkLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapAreaChunkLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapAreaLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapAreaLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapAreaLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapBaseObjLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapBaseObjLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapBaseObjLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapChunkDoodadDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapChunkDoodadDefLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapChunkDoodadDefLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapChunkLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapChunkLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapChunkMapObjDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapChunkMapObjDefLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapChunkMapObjDefLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapDoodadDefMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapDoodadDefMapChunkLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapDoodadDefMapChunkLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapEntityMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapEntityMapChunkLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapEntityMapChunkLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapObjDefGroupDoodadDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefGroupDoodadDefLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapObjDefGroupDoodadDefLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapObjDefGroupMapObjDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefGroupMapObjDefLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapObjDefGroupMapObjDefLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapObjDefMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefMapChunkLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapObjDefMapChunkLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapObjDefMapObjDefGroupLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefMapObjDefGroupLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapObjDefMapObjDefGroupLink*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapObjGroup", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjGroup*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapObjGroup*", + "name": "m_next", + "offset": 4 + } + ] + }, + { + "name": "TSLink_CMapStaticEntityMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapStaticEntityMapChunkLink*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CMapStaticEntityMapChunkLink*", + "name": "m_next", + "offset": 4 + } + ] + }, { "name": "TSLink_CONSOLECOMMAND", "size": 8, @@ -31130,6 +31949,373 @@ } ] }, + { + "name": "SMDoodadDef", + "size": 36, + "members": [ + { + "type": "uint32_t", + "name": "nameId", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "uniqueId", + "offset": 4 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 8 + }, + { + "type": "C3Vector", + "name": "rotation", + "offset": 20 + }, + { + "type": "uint16_t", + "name": "scale", + "offset": 32 + }, + { + "type": "uint16_t", + "name": "flags", + "offset": 34 + } + ] + }, + { + "name": "SMChunk", + "size": 128, + "members": [ + { + "type": "uint32_t", + "name": "flags", + "offset": 0 + }, + { + "type": "C2iVector", + "name": "index", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "nLayers", + "offset": 12 + }, + { + "type": "uint32_t", + "name": "nDoodadRefs", + "offset": 16 + }, + { + "type": "uint32_t", + "name": "ofsHeight", + "offset": 20 + }, + { + "type": "uint32_t", + "name": "ofsNormal", + "offset": 24 + }, + { + "type": "uint32_t", + "name": "ofsLayer", + "offset": 28 + }, + { + "type": "uint32_t", + "name": "ofsRefs", + "offset": 32 + }, + { + "type": "uint32_t", + "name": "ofsAlpha", + "offset": 36 + }, + { + "type": "uint32_t", + "name": "sizeAlpha", + "offset": 40 + }, + { + "type": "uint32_t", + "name": "ofsShadow", + "offset": 44 + }, + { + "type": "uint32_t", + "name": "sizeShadow", + "offset": 48 + }, + { + "type": "uint32_t", + "name": "areaid", + "offset": 52 + }, + { + "type": "uint32_t", + "name": "nMapObjRefs", + "offset": 56 + }, + { + "type": "uint32_t", + "name": "holes", + "offset": 60 + }, + { + "type": "uint8_t", + "name": "low_quality_texture_map", + "arrsize": 16, + "offset": 64 + }, + { + "type": "uint32_t", + "name": "predTex", + "offset": 80 + }, + { + "type": "uint32_t", + "name": "nEffectDoodad", + "offset": 84 + }, + { + "type": "uint32_t", + "name": "ofsSndEmitters", + "offset": 88 + }, + { + "type": "uint32_t", + "name": "nSndEmitters", + "offset": 92 + }, + { + "type": "uint32_t", + "name": "ofsLiquid", + "offset": 96 + }, + { + "type": "uint32_t", + "name": "sizeLiquid", + "offset": 100 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 104 + }, + { + "type": "uint32_t", + "name": "ofsMCCV", + "offset": 116 + }, + { + "type": "uint32_t", + "name": "unused1", + "offset": 120 + }, + { + "type": "uint32_t", + "name": "unused2", + "offset": 124 + } + ] + }, + { + "name": "CWSoundEmitter", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "entry_id", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 4 + }, + { + "type": "C3Vector", + "name": "size", + "offset": 16 + } + ] + }, + { + "name": "CChunkLiquid", + "size": 1092, + "members": [ + { + "type": "int32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "int32_t", + "name": "unk_004", + "offset": 4 + }, + { + "type": "int32_t", + "name": "unk_008", + "offset": 8 + }, + { + "type": "C3Vector", + "name": "topLeftCoords", + "offset": 12 + }, + { + "type": "C3Vector", + "name": "center", + "offset": 24 + }, + { + "type": "float", + "name": "radius", + "offset": 36 + }, + { + "type": "C2Vector", + "name": "height", + "offset": 40 + }, + { + "type": "float", + "name": "resPurgeTimer", + "offset": 48 + }, + { + "type": "C2iVector", + "name": "tileBegin", + "offset": 52 + }, + { + "type": "C2iVector", + "name": "tileEnd", + "offset": 60 + }, + { + "type": "int32_t", + "name": "unk_044", + "offset": 68 + }, + { + "type": "int32_t", + "name": "unk_048", + "offset": 72 + }, + { + "type": "int32_t", + "name": "unk_04C", + "offset": 76 + }, + { + "type": "int32_t", + "name": "unk_050", + "offset": 80 + }, + { + "type": "uint8_t*", + "name": "tiles", + "offset": 84 + }, + { + "type": "uint8_t*", + "name": "liquidInstPtr", + "offset": 88 + }, + { + "type": "CMapChunk*", + "name": "owner", + "offset": 92 + }, + { + "type": "CChunkLiquid*", + "name": "prev", + "offset": 96 + }, + { + "type": "CChunkLiquid*", + "name": "next", + "offset": 100 + }, + { + "type": "int32_t", + "name": "unk_068", + "offset": 104 + }, + { + "type": "int32_t", + "name": "unk_06C", + "offset": 108 + }, + { + "type": "int32_t", + "name": "unk_070", + "offset": 112 + }, + { + "type": "int32_t", + "name": "unk_074", + "offset": 116 + }, + { + "type": "C3Vector", + "name": "verts", + "arrsize": 81, + "offset": 120 + } + ] + }, + { + "name": "CDetailDoodadGeomVertex", + "size": 44, + "members": [ + { + "type": "uint16_t", + "name": "unk_00", + "offset": 0 + }, + { + "type": "uint16_t", + "name": "unk_02", + "offset": 2 + }, + { + "type": "uint32_t", + "name": "unk_04", + "offset": 4 + }, + { + "type": "C3Vector", + "name": "pos", + "offset": 8 + }, + { + "type": "float", + "name": "angle", + "offset": 20 + }, + { + "type": "float", + "name": "scale", + "offset": 24 + }, + { + "type": "C3Vector", + "name": "unkVec", + "offset": 28 + }, + { + "type": "uint32_t", + "name": "color", + "offset": 40 + } + ] + }, { "name": "CGxMatrixStack", "size": 280, @@ -31632,6 +32818,217 @@ } ] }, + { + "name": "SMOLight", + "size": 48, + "members": [ + { + "type": "uint8_t", + "name": "type", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "atten", + "offset": 1 + }, + { + "type": "uint8_t", + "name": "pad", + "arrsize": 2, + "offset": 2 + }, + { + "type": "CImVector", + "name": "color", + "offset": 4 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 8 + }, + { + "type": "float", + "name": "intensity", + "offset": 20 + }, + { + "type": "C4Quaternion", + "name": "rotation", + "offset": 24 + }, + { + "type": "float", + "name": "attenStart", + "offset": 40 + }, + { + "type": "float", + "name": "attenEnd", + "offset": 44 + } + ] + }, + { + "name": "SMODoodadDef", + "size": 40, + "members": [ + { + "type": "uint32_t", + "name": "flags", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 4 + }, + { + "type": "C4Quaternion", + "name": "orientation", + "offset": 16 + }, + { + "type": "float", + "name": "scale", + "offset": 32 + }, + { + "type": "CImVector", + "name": "color", + "offset": 36 + } + ] + }, + { + "name": "SMOFog", + "size": 48, + "members": [ + { + "type": "uint32_t", + "name": "flags", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 4 + }, + { + "type": "float", + "name": "smallerRadius", + "offset": 16 + }, + { + "type": "float", + "name": "largerRadius", + "offset": 20 + }, + { + "type": "float", + "name": "fogEnd", + "offset": 24 + }, + { + "type": "float", + "name": "fogStartScalar", + "offset": 28 + }, + { + "type": "CImVector", + "name": "fogColor", + "offset": 32 + }, + { + "type": "float", + "name": "uwFogEnd", + "offset": 36 + }, + { + "type": "float", + "name": "uwFogStartScalar", + "offset": 40 + }, + { + "type": "CImVector", + "name": "uwFogColor", + "offset": 44 + } + ] + }, + { + "name": "SMOMaterial", + "size": 64, + "members": [ + { + "type": "uint32_t", + "name": "flags", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "shader", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "blendMode", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "texture1", + "offset": 12 + }, + { + "type": "CImVector", + "name": "sidnColor", + "offset": 16 + }, + { + "type": "CImVector", + "name": "frameSidnColor", + "offset": 20 + }, + { + "type": "uint32_t", + "name": "texture2", + "offset": 24 + }, + { + "type": "CImVector", + "name": "diffColor", + "offset": 28 + }, + { + "type": "uint32_t", + "name": "groundType", + "offset": 32 + }, + { + "type": "uint32_t", + "name": "texture3", + "offset": 36 + }, + { + "type": "uint32_t", + "name": "color2", + "offset": 40 + }, + { + "type": "uint32_t", + "name": "flags2", + "offset": 44 + }, + { + "type": "uint32_t", + "name": "runTimeData", + "arrsize": 4, + "offset": 48 + } + ] + }, { "name": "ARGLIST", "size": 16, @@ -31699,6 +33096,123 @@ } ] }, + { + "name": "CMapRenderChunk", + "size": 168, + "members": [ + { + "type": "CMapRenderChunk*", + "name": "renderChunkPtr1", + "offset": 0 + }, + { + "type": "CMapRenderChunk*", + "name": "renderChunkPtr2", + "offset": 4 + }, + { + "type": "uint8_t", + "name": "unkFlags", + "offset": 8 + }, + { + "type": "uint8_t", + "name": "layersCount", + "offset": 9 + }, + { + "type": "int16_t", + "name": "unk_0A", + "offset": 10 + }, + { + "type": "int32_t", + "name": "unk_0C", + "offset": 12 + }, + { + "type": "CMapChunk*", + "name": "mapChunkPtr1", + "offset": 16 + }, + { + "type": "CMapChunk*", + "name": "mapChunkPtr2", + "offset": 20 + }, + { + "type": "C3Vector", + "name": "vec1", + "offset": 24 + }, + { + "type": "C3Vector", + "name": "vec2", + "offset": 36 + }, + { + "type": "float", + "name": "radius", + "offset": 48 + }, + { + "type": "CMapRenderChunkLayer", + "name": "layers", + "arrsize": 4, + "offset": 52 + }, + { + "type": "CTexture*", + "name": "terrainBlendTexture", + "offset": 132 + }, + { + "type": "CTexture*", + "name": "shadowTexture", + "offset": 136 + }, + { + "type": "CGxBuf*", + "name": "vertexBuf", + "offset": 140 + }, + { + "type": "CGxBuf*", + "name": "indicesBuf", + "offset": 144 + }, + { + "type": "int32_t", + "name": "unk_94", + "offset": 148 + }, + { + "type": "int32_t", + "name": "unk_98", + "offset": 152 + }, + { + "type": "int16_t", + "name": "unk_9C", + "offset": 156 + }, + { + "type": "int16_t", + "name": "unk_9E", + "offset": 158 + }, + { + "type": "int32_t", + "name": "unk_A0", + "offset": 160 + }, + { + "type": "int32_t", + "name": "unk_A4", + "offset": 164 + } + ] + }, { "name": "CBoundingBox", "size": 24, @@ -33717,6 +35231,32 @@ } ] }, + { + "name": "SMChunkInfo", + "size": 16, + "members": [ + { + "type": "uint32_t", + "name": "offset", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "size", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "flags", + "offset": 8 + }, + { + "type": "SMChunkInfo__0012", + "name": "", + "offset": 12 + } + ] + }, { "name": "SEvent", "size": 4, @@ -33813,6 +35353,42 @@ } ] }, + { + "name": "CDetailDoodadGeom", + "size": 36, + "members": [ + { + "type": "CTexture*", + "name": "texture", + "offset": 0 + }, + { + "type": "int32_t", + "name": "unkVertexCount", + "offset": 4 + }, + { + "type": "int32_t", + "name": "unkIndexCount", + "offset": 8 + }, + { + "type": "void*", + "name": "unkVertBufStream", + "offset": 12 + }, + { + "type": "void*", + "name": "unkIdxBufStream", + "offset": 16 + }, + { + "type": "TSGrowableArray_CDetailDoodadGeomVertex", + "name": "data", + "offset": 20 + } + ] + }, { "name": "CSimpleSortedArray_pointer_to_FRAMEPRIORITY", "size": 28, @@ -34723,6 +36299,17 @@ } ] }, + { + "name": "TSLinkedNode_CChunkLiquid", + "size": 8, + "members": [ + { + "type": "TSLink_CChunkLiquid", + "name": "m_link", + "offset": 0 + } + ] + }, { "name": "TSLinkedNode_CGxBuf", "size": 8, @@ -35110,6 +36697,563 @@ } ] }, + { + "name": "CMapAreaChunkLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapChunk*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapArea*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapAreaChunkLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapAreaChunkLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapAreaChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapAreaChunkLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapAreaLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapArea*", + "name": "owner", + "offset": 4 + }, + { + "type": "void*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapAreaLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapAreaLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapAreaLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapAreaLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapBaseObjLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapBaseObj*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapBaseObj*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapBaseObjLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapBaseObjLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapBaseObjLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapBaseObjLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapChunkDoodadDefLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapDoodadDef*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapChunk*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapChunkDoodadDefLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapChunkDoodadDefLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapChunkDoodadDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapChunkDoodadDefLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapChunkLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapChunk*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapArea*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapChunkLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapChunkLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapChunkLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapChunkMapObjDefLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapObjDef*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapChunk*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapChunkMapObjDefLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapChunkMapObjDefLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapChunkMapObjDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapChunkMapObjDefLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapDoodadDefMapChunkLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapDoodadDef*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapBaseObj*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapDoodadDefMapChunkLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapDoodadDefMapChunkLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapDoodadDefMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapDoodadDefMapChunkLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapEntityMapChunkLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapEntity*", + "name": "owner", + "offset": 4 + }, + { + "type": "void*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapEntityMapChunkLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapEntityMapChunkLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapEntityMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapEntityMapChunkLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapObjDefGroupDoodadDefLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapDoodadDef*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapObjDef*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapObjDefGroupDoodadDefLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapObjDefGroupDoodadDefLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapObjDefGroupDoodadDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefGroupDoodadDefLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapObjDefGroupMapObjDefLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapObjDefGroup*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapObjDef*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapObjDefGroupMapObjDefLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapObjDefGroupMapObjDefLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapObjDefGroupMapObjDefLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefGroupMapObjDefLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapObjDefMapChunkLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapObjDef*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapChunk*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapObjDefMapChunkLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapObjDefMapChunkLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapObjDefMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefMapChunkLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapObjDefMapObjDefGroupLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapObjDefGroup*", + "name": "owner", + "offset": 4 + }, + { + "type": "CMapObjDef*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapObjDefMapObjDefGroupLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapObjDefMapObjDefGroupLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapObjDefMapObjDefGroupLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjDefMapObjDefGroupLink", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "TSLinkedNode_CMapObjGroup", + "size": 8, + "members": [ + { + "type": "TSLink_CMapObjGroup", + "name": "m_link", + "offset": 0 + } + ] + }, + { + "name": "CMapStaticEntityMapChunkLink", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CMapStaticEntity*", + "name": "owner", + "offset": 4 + }, + { + "type": "void*", + "name": "ref", + "offset": 8 + }, + { + "type": "TSLink_CMapStaticEntityMapChunkLink", + "name": "refLink", + "offset": 12 + }, + { + "type": "TSLink_CMapStaticEntityMapChunkLink", + "name": "ownerLink", + "offset": 20 + } + ] + }, + { + "name": "TSLinkedNode_CMapStaticEntityMapChunkLink", + "size": 8, + "members": [ + { + "type": "TSLink_CMapStaticEntityMapChunkLink", + "name": "m_link", + "offset": 0 + } + ] + }, { "name": "TSHashObject_CONSOLECOMMAND_HASHKEY_STRI", "size": 24, @@ -39395,6 +41539,246 @@ } ] }, + { + "name": "TSList_CMapBaseObjLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapBaseObjLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapDoodadDefMapChunkLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapDoodadDefMapChunkLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapObjDefMapChunkLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapObjDefMapChunkLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapObjDefMapObjDefGroupLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapObjDefMapObjDefGroupLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapObjDefGroupMapObjDefLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapObjDefGroupMapObjDefLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapObjDefGroupDoodadDefLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapObjDefGroupDoodadDefLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapAreaLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapAreaLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapAreaChunkLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapAreaChunkLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapChunkLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapChunkLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapChunkDoodadDefLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapChunkDoodadDefLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapChunkMapObjDefLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapChunkMapObjDefLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CChunkLiquid", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CChunkLiquid", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapObjGroup", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapObjGroup", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapStaticEntityMapChunkLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapStaticEntityMapChunkLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, + { + "name": "TSList_CMapEntityMapChunkLink", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CMapEntityMapChunkLink", + "name": "m_terminator", + "offset": 4 + } + ] + }, { "name": "TSList_CILayer", "size": 12, @@ -39758,6 +42142,27 @@ } ] }, + { + "name": "SMOPortal", + "size": 20, + "members": [ + { + "type": "uint16_t", + "name": "startVertex", + "offset": 0 + }, + { + "type": "uint16_t", + "name": "count", + "offset": 2 + }, + { + "type": "C4Plane", + "name": "plane", + "offset": 4 + } + ] + }, { "name": "CM2Shared", "size": 424, @@ -39966,6 +42371,645 @@ } ] }, + { + "name": "SMMapObjDef", + "size": 64, + "members": [ + { + "type": "uint32_t", + "name": "nameId", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "uniqueId", + "offset": 4 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 8 + }, + { + "type": "C3Vector", + "name": "rotation", + "offset": 20 + }, + { + "type": "CAaBox", + "name": "extents", + "offset": 32 + }, + { + "type": "uint16_t", + "name": "flags", + "offset": 56 + }, + { + "type": "uint16_t", + "name": "doodadSet", + "offset": 58 + }, + { + "type": "uint16_t", + "name": "nameSet", + "offset": 60 + }, + { + "type": "uint16_t", + "name": "scale", + "offset": 62 + } + ] + }, + { + "name": "SMOHeader", + "size": 64, + "members": [ + { + "type": "uint32_t", + "name": "nTextures", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "nGroups", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "nPortals", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "nLights", + "offset": 12 + }, + { + "type": "uint32_t", + "name": "nDoodadNames", + "offset": 16 + }, + { + "type": "uint32_t", + "name": "nDoodadDefs", + "offset": 20 + }, + { + "type": "uint32_t", + "name": "nDoodadSets", + "offset": 24 + }, + { + "type": "uint32_t", + "name": "ambColor", + "offset": 28 + }, + { + "type": "uint32_t", + "name": "wmoID", + "offset": 32 + }, + { + "type": "CAaBox", + "name": "bounding_box", + "offset": 36 + }, + { + "type": "uint16_t", + "name": "flags", + "offset": 60 + }, + { + "type": "uint16_t", + "name": "numLod", + "offset": 62 + } + ] + }, + { + "name": "SMOGroupInfo", + "size": 32, + "members": [ + { + "type": "uint32_t", + "name": "flags", + "offset": 0 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "nameOffset", + "offset": 28 + } + ] + }, + { + "name": "CMapObjGroup", + "size": 444, + "members": [ + { + "type": "int32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "int32_t", + "name": "unk_04", + "offset": 4 + }, + { + "type": "int32_t", + "name": "unk_08", + "offset": 8 + }, + { + "type": "int32_t", + "name": "unk_0C", + "offset": 12 + }, + { + "type": "int32_t", + "name": "unk_10", + "offset": 16 + }, + { + "type": "int32_t", + "name": "unk_14", + "offset": 20 + }, + { + "type": "float", + "name": "timer", + "offset": 24 + }, + { + "type": "int32_t", + "name": "unk_1C", + "offset": 28 + }, + { + "type": "int32_t", + "name": "unk_20", + "offset": 32 + }, + { + "type": "int32_t", + "name": "unk_24", + "offset": 36 + }, + { + "type": "int32_t", + "name": "unk_28", + "offset": 40 + }, + { + "type": "int32_t", + "name": "unk_2C", + "offset": 44 + }, + { + "type": "int32_t", + "name": "flags", + "offset": 48 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 52 + }, + { + "type": "float", + "name": "distToCamera", + "offset": 76 + }, + { + "type": "int32_t", + "name": "portalStart", + "offset": 80 + }, + { + "type": "int32_t", + "name": "portalCount", + "offset": 84 + }, + { + "type": "int32_t", + "name": "fogs", + "offset": 88 + }, + { + "type": "uint16_t", + "name": "transparencyBatchesCount", + "offset": 92 + }, + { + "type": "uint16_t", + "name": "intBatchCount", + "offset": 94 + }, + { + "type": "int32_t", + "name": "extBatchCount", + "offset": 96 + }, + { + "type": "void*", + "name": "CAaBspNodePtr1", + "offset": 100 + }, + { + "type": "void*", + "name": "CAaBspNodePtr2", + "offset": 104 + }, + { + "type": "uint16_t*", + "name": "nodeFaceIndices", + "offset": 108 + }, + { + "type": "int32_t", + "name": "bspNodesCount", + "offset": 112 + }, + { + "type": "int32_t", + "name": "nodeFaceIndicesCount", + "offset": 116 + }, + { + "type": "int32_t", + "name": "unk_7C", + "offset": 120 + }, + { + "type": "int32_t", + "name": "unk_80", + "offset": 124 + }, + { + "type": "int32_t", + "name": "unk_84", + "offset": 128 + }, + { + "type": "int32_t", + "name": "unk_88", + "offset": 132 + }, + { + "type": "int32_t", + "name": "unk_8C", + "offset": 136 + }, + { + "type": "int32_t", + "name": "unk_90", + "offset": 140 + }, + { + "type": "int32_t", + "name": "unk_94", + "offset": 144 + }, + { + "type": "int32_t", + "name": "unk_98", + "offset": 148 + }, + { + "type": "int32_t", + "name": "unk_9C", + "offset": 152 + }, + { + "type": "int32_t", + "name": "unk_A0", + "offset": 156 + }, + { + "type": "int32_t", + "name": "unk_A4", + "offset": 160 + }, + { + "type": "int32_t", + "name": "unk_A8", + "offset": 164 + }, + { + "type": "int32_t", + "name": "unk_AC", + "offset": 168 + }, + { + "type": "int32_t", + "name": "unk_B0", + "offset": 172 + }, + { + "type": "CAaBox", + "name": "bbox2", + "offset": 176 + }, + { + "type": "int32_t", + "name": "unk_CC", + "offset": 200 + }, + { + "type": "int32_t", + "name": "unkFlags", + "offset": 204 + }, + { + "type": "int32_t", + "name": "unk_D4", + "offset": 208 + }, + { + "type": "int32_t", + "name": "unk_D8", + "offset": 212 + }, + { + "type": "char*", + "name": "groupName", + "offset": 216 + }, + { + "type": "SMOPoly*", + "name": "polyList", + "offset": 220 + }, + { + "type": "uint16_t*", + "name": "indices", + "offset": 224 + }, + { + "type": "int32_t", + "name": "unk_E8", + "offset": 228 + }, + { + "type": "C3Vector*", + "name": "vertexList", + "offset": 232 + }, + { + "type": "C3Vector*", + "name": "normalList", + "offset": 236 + }, + { + "type": "C2Vector*", + "name": "textureVertexList", + "offset": 240 + }, + { + "type": "int32_t", + "name": "unk_F8", + "offset": 244 + }, + { + "type": "SMOBatch*", + "name": "batchList", + "offset": 248 + }, + { + "type": "int32_t", + "name": "unk_100", + "offset": 252 + }, + { + "type": "int32_t", + "name": "unk_104", + "offset": 256 + }, + { + "type": "uint16_t*", + "name": "doodadRefList", + "offset": 260 + }, + { + "type": "CImVector*", + "name": "colorVertexList", + "offset": 264 + }, + { + "type": "CImVector*", + "name": "colorVertexListExtra", + "offset": 268 + }, + { + "type": "int32_t", + "name": "unk_114", + "offset": 272 + }, + { + "type": "C2iVector", + "name": "liquidVerts", + "offset": 276 + }, + { + "type": "C2iVector", + "name": "liquidTiles", + "offset": 284 + }, + { + "type": "C3Vector", + "name": "liquidCorner", + "offset": 292 + }, + { + "type": "int32_t", + "name": "luquidMaterialId", + "offset": 304 + }, + { + "type": "SMOLiquidVert*", + "name": "liquidVertexList", + "offset": 308 + }, + { + "type": "SMOLTile*", + "name": "liquidTileList", + "offset": 312 + }, + { + "type": "float", + "name": "liquidHeight", + "offset": 316 + }, + { + "type": "int32_t", + "name": "unk_144", + "offset": 320 + }, + { + "type": "int32_t", + "name": "unk_148", + "offset": 324 + }, + { + "type": "int32_t", + "name": "unkFlag", + "offset": 328 + }, + { + "type": "int32_t", + "name": "unk_150", + "offset": 332 + }, + { + "type": "int32_t", + "name": "polyListSize", + "offset": 336 + }, + { + "type": "int32_t", + "name": "indicesCount", + "offset": 340 + }, + { + "type": "int32_t", + "name": "unk_15C", + "offset": 344 + }, + { + "type": "int32_t", + "name": "vertexListCount", + "offset": 348 + }, + { + "type": "int32_t", + "name": "normalListCount", + "offset": 352 + }, + { + "type": "int32_t", + "name": "textureVertexListCount", + "offset": 356 + }, + { + "type": "int32_t", + "name": "unk_16C", + "offset": 360 + }, + { + "type": "int32_t", + "name": "batchListCount", + "offset": 364 + }, + { + "type": "int32_t", + "name": "unk_174", + "offset": 368 + }, + { + "type": "int32_t", + "name": "doodadRefListCount", + "offset": 372 + }, + { + "type": "int32_t", + "name": "colorVertexListSize", + "offset": 376 + }, + { + "type": "int32_t", + "name": "colorVertexListExtraSize", + "offset": 380 + }, + { + "type": "int32_t", + "name": "wmoGroupId", + "offset": 384 + }, + { + "type": "void*", + "name": "filePtr", + "offset": 388 + }, + { + "type": "int32_t", + "name": "fileSize", + "offset": 392 + }, + { + "type": "CMapObj*", + "name": "parent", + "offset": 396 + }, + { + "type": "int32_t", + "name": "unk_194", + "offset": 400 + }, + { + "type": "CAsyncObject*", + "name": "asyncObjPtr", + "offset": 404 + }, + { + "type": "int32_t", + "name": "unkLoadedFlag", + "offset": 408 + }, + { + "type": "int32_t", + "name": "unkIndexMin1", + "offset": 412 + }, + { + "type": "int32_t", + "name": "unkIndexMax1", + "offset": 416 + }, + { + "type": "uint16_t", + "name": "unkIndexMin2", + "offset": 420 + }, + { + "type": "uint16_t", + "name": "unkIndexMax2", + "offset": 422 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset", + "offset": 424 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr", + "offset": 428 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr2", + "offset": 432 + }, + { + "type": "CMapObjGroup*", + "name": "perv", + "offset": 436 + }, + { + "type": "CMapObjGroup*", + "name": "next", + "offset": 440 + } + ] + }, { "name": "M2ModelColor", "size": 32, @@ -40130,6 +43174,37 @@ } ] }, + { + "name": "SWFlowv", + "size": 40, + "members": [ + { + "type": "CAaSphere", + "name": "sphere", + "offset": 0 + }, + { + "type": "C3Vector", + "name": "dir", + "offset": 16 + }, + { + "type": "float", + "name": "velocity", + "offset": 28 + }, + { + "type": "float", + "name": "amplitude", + "offset": 32 + }, + { + "type": "float", + "name": "frequency", + "offset": 36 + } + ] + }, { "name": "M2ModelBone", "size": 164, @@ -40563,6 +43638,28 @@ } ] }, + { + "name": "SMOLiquidVert", + "size": 8, + "members": [ + { + "type": "SMOLiquidVert__0000", + "name": "", + "offset": 0 + } + ] + }, + { + "name": "SLVert", + "size": 8, + "members": [ + { + "type": "SLVert__0000", + "name": "", + "offset": 0 + } + ] + }, { "name": "TGAHeader", "size": 20, @@ -40645,6 +43742,43 @@ } ] }, + { + "name": "CDetailDoodadInst", + "size": 164, + "members": [ + { + "type": "int32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "CDetailDoodadGeom", + "name": "geom", + "arrsize": 4, + "offset": 4 + }, + { + "type": "int32_t", + "name": "unkCounter", + "offset": 148 + }, + { + "type": "CMapChunk*", + "name": "mapChunkOwner", + "offset": 152 + }, + { + "type": "int32_t", + "name": "unk_09C", + "offset": 156 + }, + { + "type": "int32_t", + "name": "unk_0A0", + "offset": 160 + } + ] + }, { "name": "BigStack", "size": 324, @@ -47721,6 +50855,44 @@ } ] }, + { + "name": "SMLiquidChunk", + "size": 804, + "members": [ + { + "type": "float", + "name": "minHeight", + "offset": 0 + }, + { + "type": "float", + "name": "maxHeight", + "offset": 4 + }, + { + "type": "SLVert", + "name": "verts", + "arrsize": 81, + "offset": 8 + }, + { + "type": "SLTiles", + "name": "tiles", + "offset": 656 + }, + { + "type": "uint32_t", + "name": "nFlowvs", + "offset": 720 + }, + { + "type": "SWFlowv", + "name": "flowvs", + "arrsize": 2, + "offset": 724 + } + ] + }, { "name": "CTgaFile", "size": 68, @@ -48623,6 +51795,1768 @@ } ] }, + { + "name": "CMapBaseObj", + "size": 36, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "int32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "int32_t", + "name": "unk_C", + "offset": 12 + }, + { + "type": "CMapBaseObj*", + "name": "prev", + "offset": 16 + }, + { + "type": "CMapBaseObj*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapBaseObjLink", + "name": "list", + "offset": 24 + } + ] + }, + { + "name": "CMapDoodadDef", + "size": 368, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "int32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "int32_t", + "name": "unk_C", + "offset": 12 + }, + { + "type": "CMapDoodadDef*", + "name": "prev", + "offset": 16 + }, + { + "type": "CMapDoodadDef*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapDoodadDefMapChunkLink", + "name": "linkList", + "offset": 24 + }, + { + "type": "int32_t", + "name": "unk_024", + "offset": 36 + }, + { + "type": "uint32_t", + "name": "unkFlags_28", + "offset": 40 + }, + { + "type": "int32_t", + "name": "unkCounter", + "offset": 44 + }, + { + "type": "float", + "name": "unk_030", + "offset": 48 + }, + { + "type": "void*", + "name": "unk_m2Model_034", + "offset": 52 + }, + { + "type": "C3Vector", + "name": "vec1", + "offset": 56 + }, + { + "type": "float", + "name": "unk_044", + "offset": 68 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 72 + }, + { + "type": "C3Vector", + "name": "vec2", + "offset": 96 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 108 + }, + { + "type": "float", + "name": "scale", + "offset": 120 + }, + { + "type": "int32_t", + "name": "unk_07C", + "offset": 124 + }, + { + "type": "int32_t", + "name": "unk_080", + "offset": 128 + }, + { + "type": "CImVector", + "name": "m2AmbietColor", + "offset": 132 + }, + { + "type": "CImVector", + "name": "m2DiffuseColor", + "offset": 136 + }, + { + "type": "float", + "name": "unk_08C", + "offset": 140 + }, + { + "type": "uint32_t", + "name": "unkFlags_090", + "offset": 144 + }, + { + "type": "void*", + "name": "unk_094", + "offset": 148 + }, + { + "type": "void*", + "name": "unk_098", + "offset": 152 + }, + { + "type": "void*", + "name": "prevMapDoodadDef_09C", + "offset": 156 + }, + { + "type": "void*", + "name": "nextMapDoodadDef_0A0", + "offset": 160 + }, + { + "type": "int32_t", + "name": "unk_0A4", + "offset": 164 + }, + { + "type": "int32_t", + "name": "unk_0A8", + "offset": 168 + }, + { + "type": "int32_t", + "name": "unk_0AC", + "offset": 172 + }, + { + "type": "int32_t", + "name": "unk_0B0", + "offset": 176 + }, + { + "type": "int32_t", + "name": "unk_0B4", + "offset": 180 + }, + { + "type": "int32_t", + "name": "unk_0B8", + "offset": 184 + }, + { + "type": "int32_t", + "name": "unk_0BC", + "offset": 188 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 192 + }, + { + "type": "C44Matrix", + "name": "mat", + "offset": 216 + }, + { + "type": "C44Matrix", + "name": "identity", + "offset": 280 + }, + { + "type": "int32_t", + "name": "unk_158", + "offset": 344 + }, + { + "type": "int32_t", + "name": "unk_15C", + "offset": 348 + }, + { + "type": "int32_t", + "name": "unk_160", + "offset": 352 + }, + { + "type": "int32_t", + "name": "unk_164", + "offset": 356 + }, + { + "type": "int32_t", + "name": "unk_168", + "offset": 360 + }, + { + "type": "int32_t", + "name": "unk_16C", + "offset": 364 + } + ] + }, + { + "name": "CMapObjDef", + "size": 344, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "int32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "int32_t", + "name": "unk_C", + "offset": 12 + }, + { + "type": "CMapObjDef*", + "name": "prev", + "offset": 16 + }, + { + "type": "CMapObjDef*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapObjDefMapChunkLink", + "name": "linkList", + "offset": 24 + }, + { + "type": "void*", + "name": "unk_24", + "offset": 36 + }, + { + "type": "void*", + "name": "unk_28", + "offset": 40 + }, + { + "type": "void*", + "name": "unk_2C", + "offset": 44 + }, + { + "type": "void*", + "name": "unk_30", + "offset": 48 + }, + { + "type": "void*", + "name": "unk_34", + "offset": 52 + }, + { + "type": "int32_t", + "name": "unk_38", + "offset": 56 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 60 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 72 + }, + { + "type": "CAaSphere", + "name": "sphere", + "offset": 96 + }, + { + "type": "C44Matrix", + "name": "mat", + "offset": 112 + }, + { + "type": "C44Matrix", + "name": "invMat", + "offset": 176 + }, + { + "type": "int32_t", + "name": "unk_F0", + "offset": 240 + }, + { + "type": "void*", + "name": "CMapObjPtr_owner", + "offset": 244 + }, + { + "type": "int32_t", + "name": "unk_F8", + "offset": 248 + }, + { + "type": "uint32_t", + "name": "unkFlags", + "offset": 252 + }, + { + "type": "int32_t", + "name": "unk_100", + "offset": 256 + }, + { + "type": "int32_t", + "name": "unk_104", + "offset": 260 + }, + { + "type": "int32_t", + "name": "unk_108", + "offset": 264 + }, + { + "type": "int32_t", + "name": "unk_10C", + "offset": 268 + }, + { + "type": "int32_t", + "name": "unk_110", + "offset": 272 + }, + { + "type": "TSExplicitList_CMapObjDefMapObjDefGroupLink", + "name": "mapObjDefGroupLinkList", + "offset": 276 + }, + { + "type": "TSGrowableArray_CMapObjDefGroup", + "name": "defGroups", + "offset": 288 + }, + { + "type": "void*", + "name": "unk_130", + "offset": 304 + }, + { + "type": "int32_t", + "name": "TSGrowableArray__m_alloc", + "offset": 308 + }, + { + "type": "int32_t", + "name": "TSGrowableArray__m_count", + "offset": 312 + }, + { + "type": "void*", + "name": "TSGrowableArray__m_data", + "offset": 316 + }, + { + "type": "int32_t", + "name": "TSGrowableArray__m_chunk", + "offset": 320 + }, + { + "type": "uint32_t", + "name": "argbColor", + "offset": 324 + }, + { + "type": "int32_t", + "name": "unk_148", + "offset": 328 + }, + { + "type": "int32_t", + "name": "unk_14C", + "offset": 332 + }, + { + "type": "int32_t", + "name": "unk_150", + "offset": 336 + }, + { + "type": "void*", + "name": "unk_154", + "offset": 340 + } + ] + }, + { + "name": "CMapObjDefGroup", + "size": 192, + "members": [ + { + "type": "void*", + "name": "vtable", + "offset": 0 + }, + { + "type": "int32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "int32_t", + "name": "unk_C", + "offset": 12 + }, + { + "type": "CMapObjDefGroup*", + "name": "prev", + "offset": 16 + }, + { + "type": "CMapObjDefGroup*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapObjDefGroupMapObjDefLink", + "name": "linkList", + "offset": 24 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 36 + }, + { + "type": "CAaSphere", + "name": "sphere", + "offset": 60 + }, + { + "type": "float", + "name": "unk_4C", + "offset": 76 + }, + { + "type": "uint32_t", + "name": "groupNum", + "offset": 80 + }, + { + "type": "uint32_t", + "name": "unkFlags", + "offset": 84 + }, + { + "type": "int32_t", + "name": "unk_58", + "offset": 88 + }, + { + "type": "uint32_t", + "name": "ambientColor", + "offset": 92 + }, + { + "type": "int32_t", + "name": "unk_60", + "offset": 96 + }, + { + "type": "int32_t", + "name": "unk_64", + "offset": 100 + }, + { + "type": "int32_t", + "name": "unk_68", + "offset": 104 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset_unk_6C", + "offset": 108 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr1_unk_70", + "offset": 112 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr2_unk_74", + "offset": 116 + }, + { + "type": "TSExplicitList_CMapObjDefGroupDoodadDefLink", + "name": "doodadDefLinkList", + "offset": 120 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset_unk_84", + "offset": 132 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr1_unk_88", + "offset": 136 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr2_unk_8C", + "offset": 140 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset_unk_90", + "offset": 144 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr1_unk_94", + "offset": 148 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr2_unk_98", + "offset": 152 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset_unk_9C", + "offset": 156 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr1_unk_A0", + "offset": 160 + }, + { + "type": "void*", + "name": "TSExplicitList__m_ptr2_unk_A4", + "offset": 164 + }, + { + "type": "int32_t", + "name": "unk_A8", + "offset": 168 + }, + { + "type": "int32_t", + "name": "unk_AC", + "offset": 172 + }, + { + "type": "int32_t", + "name": "unk_B0", + "offset": 176 + }, + { + "type": "int32_t", + "name": "unk_B4", + "offset": 180 + }, + { + "type": "int32_t", + "name": "unk_B8", + "offset": 184 + }, + { + "type": "int32_t", + "name": "unk_BC", + "offset": 188 + } + ] + }, + { + "name": "CMapArea", + "size": 1212, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "uint32_t", + "name": "unk_0C", + "offset": 12 + }, + { + "type": "CMapArea*", + "name": "perv", + "offset": 16 + }, + { + "type": "CMapArea*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapAreaLink", + "name": "linkList", + "offset": 24 + }, + { + "type": "C3Vector", + "name": "bottomRight", + "offset": 36 + }, + { + "type": "C3Vector", + "name": "topLeft", + "offset": 48 + }, + { + "type": "C3Vector", + "name": "topLeft2", + "offset": 60 + }, + { + "type": "C2iVector", + "name": "index", + "offset": 72 + }, + { + "type": "C2iVector", + "name": "tileChunkIndex", + "offset": 80 + }, + { + "type": "TSGrowableArray_CMapAreaTexture", + "name": "textures", + "offset": 88 + }, + { + "type": "SMMapHeader*", + "name": "header", + "offset": 104 + }, + { + "type": "int32_t", + "name": "unk_6C", + "offset": 108 + }, + { + "type": "CAsyncObject*", + "name": "asyncObject", + "offset": 112 + }, + { + "type": "TSExplicitList_CMapAreaChunkLink", + "name": "chunkLinkList", + "offset": 116 + }, + { + "type": "void*", + "name": "filePtr", + "offset": 128 + }, + { + "type": "int32_t", + "name": "fileSize", + "offset": 132 + }, + { + "type": "SMChunkInfo*", + "name": "chunkInfo", + "offset": 136 + }, + { + "type": "int32_t", + "name": "unk_8C", + "offset": 140 + }, + { + "type": "SMDoodadDef*", + "name": "doodadDef", + "offset": 144 + }, + { + "type": "SMMapObjDef*", + "name": "mapObjDef", + "offset": 148 + }, + { + "type": "int32_t", + "name": "doodadDefCount", + "offset": 152 + }, + { + "type": "int32_t", + "name": "mapObjDefCount", + "offset": 156 + }, + { + "type": "char*", + "name": "m2FileNames", + "offset": 160 + }, + { + "type": "char*", + "name": "wmoFileNames", + "offset": 164 + }, + { + "type": "uint32_t*", + "name": "modelFilenamesOffsets", + "offset": 168 + }, + { + "type": "uint32_t*", + "name": "wmoFilenamesOffsets", + "offset": 172 + }, + { + "type": "int16_t*", + "name": "flyingBbox", + "offset": 176 + }, + { + "type": "int32_t*", + "name": "textureFlags", + "offset": 180 + }, + { + "type": "uint8_t*", + "name": "unk_B8", + "offset": 184 + }, + { + "type": "CMapChunk*", + "name": "mapChunks", + "arrsize": 256, + "offset": 188 + } + ] + }, + { + "name": "CMapChunk", + "size": 344, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "uint32_t", + "name": "unk_0C", + "offset": 12 + }, + { + "type": "CMapChunk*", + "name": "prev", + "offset": 16 + }, + { + "type": "CMapChunk*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapChunkLink", + "name": "linkList", + "offset": 24 + }, + { + "type": "C2iVector", + "name": "aIndex", + "offset": 36 + }, + { + "type": "C2iVector", + "name": "sOffset", + "offset": 44 + }, + { + "type": "C2iVector", + "name": "cOffset", + "offset": 52 + }, + { + "type": "C3Vector", + "name": "center", + "offset": 60 + }, + { + "type": "float", + "name": "radius", + "offset": 72 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 76 + }, + { + "type": "C3Vector", + "name": "bottomRight", + "offset": 100 + }, + { + "type": "C3Vector", + "name": "topLeft", + "offset": 112 + }, + { + "type": "C3Vector", + "name": "topLeftCoords", + "offset": 124 + }, + { + "type": "float", + "name": "distToCamera", + "offset": 136 + }, + { + "type": "CAaBox", + "name": "bbox2", + "offset": 140 + }, + { + "type": "void*", + "name": "detailDoodadInst", + "offset": 164 + }, + { + "type": "void*", + "name": "renderChunk", + "offset": 168 + }, + { + "type": "int32_t", + "name": "unk_AC", + "offset": 172 + }, + { + "type": "int32_t", + "name": "areaId", + "offset": 176 + }, + { + "type": "int32_t", + "name": "unk_B4", + "offset": 180 + }, + { + "type": "int32_t", + "name": "unk_B8", + "offset": 184 + }, + { + "type": "int32_t", + "name": "unk_BC", + "offset": 188 + }, + { + "type": "int32_t", + "name": "unk_C0", + "offset": 192 + }, + { + "type": "TSExplicitList_CMapChunkDoodadDefLink", + "name": "doodadDefLinkList", + "offset": 196 + }, + { + "type": "TSExplicitList_CMapChunkMapObjDefLink", + "name": "mapObjDefLinkList", + "offset": 208 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset_DC", + "offset": 220 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr_E0", + "offset": 224 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr2_E4", + "offset": 228 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset_E8", + "offset": 232 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr_EC", + "offset": 236 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr2_F0", + "offset": 240 + }, + { + "type": "int32_t", + "name": "TSExplicitList__m_linkoffset_F4", + "offset": 244 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr_F8", + "offset": 248 + }, + { + "type": "void*", + "name": "TSExplicitList__ptr2_FC", + "offset": 252 + }, + { + "type": "TSExplicitList_CChunkLiquid", + "name": "liquidChunkLinkList", + "offset": 256 + }, + { + "type": "uint8_t*", + "name": "chunkInfoBeginPtr", + "offset": 268 + }, + { + "type": "SMChunk*", + "name": "header", + "offset": 272 + }, + { + "type": "uint8_t*", + "name": "lowQualityTexMap", + "offset": 276 + }, + { + "type": "uint8_t*", + "name": "predTexture", + "offset": 280 + }, + { + "type": "float*", + "name": "vertices", + "offset": 284 + }, + { + "type": "uint32_t*", + "name": "vertexShading", + "offset": 288 + }, + { + "type": "int8_t*", + "name": "normals", + "offset": 292 + }, + { + "type": "uint8_t*", + "name": "shadowMap", + "offset": 296 + }, + { + "type": "SMLayer*", + "name": "layers", + "offset": 300 + }, + { + "type": "uint8_t*", + "name": "additionalShadowmap", + "offset": 304 + }, + { + "type": "uint8_t*", + "name": "MCRF_ptr", + "offset": 308 + }, + { + "type": "SMLiquidChunk*", + "name": "liquid", + "offset": 312 + }, + { + "type": "CWSoundEmitter*", + "name": "soundEmitters", + "offset": 316 + }, + { + "type": "int32_t", + "name": "unk_140", + "offset": 320 + }, + { + "type": "int32_t", + "name": "unk_144", + "offset": 324 + }, + { + "type": "int32_t", + "name": "unk_148", + "offset": 328 + }, + { + "type": "int32_t", + "name": "unk_14C", + "offset": 332 + }, + { + "type": "int32_t", + "name": "unk_150", + "offset": 336 + }, + { + "type": "int32_t", + "name": "unk_154", + "offset": 340 + } + ] + }, + { + "name": "CMapObj", + "size": 2552, + "members": [ + { + "type": "int32_t", + "name": "objectIndex", + "offset": 0 + }, + { + "type": "int32_t", + "name": "unk_04", + "offset": 4 + }, + { + "type": "int32_t", + "name": "unk_08", + "offset": 8 + }, + { + "type": "int32_t", + "name": "unk_0C", + "offset": 12 + }, + { + "type": "int32_t", + "name": "unk_10", + "offset": 16 + }, + { + "type": "int32_t", + "name": "unk_14", + "offset": 20 + }, + { + "type": "int32_t", + "name": "unk_18", + "offset": 24 + }, + { + "type": "char", + "name": "m_wmoName", + "arrsize": 260, + "offset": 28 + }, + { + "type": "SMOHeader*", + "name": "header", + "offset": 288 + }, + { + "type": "char*", + "name": "textureNameList", + "offset": 292 + }, + { + "type": "char*", + "name": "groupNameList", + "offset": 296 + }, + { + "type": "char*", + "name": "skybox", + "offset": 300 + }, + { + "type": "SMOGroupInfo*", + "name": "groupInfo", + "offset": 304 + }, + { + "type": "C3Vector*", + "name": "portalVertexList", + "offset": 308 + }, + { + "type": "SMOPortal*", + "name": "portalList", + "offset": 312 + }, + { + "type": "SMOPortalRef*", + "name": "portalRefList", + "offset": 316 + }, + { + "type": "C3Vector*", + "name": "visBlockVertList", + "offset": 320 + }, + { + "type": "SMOVisibleBlock*", + "name": "visBlockList", + "offset": 324 + }, + { + "type": "SMOLight*", + "name": "lightList", + "offset": 328 + }, + { + "type": "SMODoodadSet*", + "name": "doodadSetList", + "offset": 332 + }, + { + "type": "char*", + "name": "doodadNameList", + "offset": 336 + }, + { + "type": "SMODoodadDef*", + "name": "doodadDefList", + "offset": 340 + }, + { + "type": "SMOFog*", + "name": "fogList", + "offset": 344 + }, + { + "type": "C4Plane*", + "name": "convexVolumePlanes", + "offset": 348 + }, + { + "type": "SMOMaterial*", + "name": "materialList", + "offset": 352 + }, + { + "type": "int32_t", + "name": "texturesSize", + "offset": 356 + }, + { + "type": "int32_t", + "name": "groupNameSize", + "offset": 360 + }, + { + "type": "int32_t", + "name": "groupInfoCount", + "offset": 364 + }, + { + "type": "int32_t", + "name": "planeVertCount", + "offset": 368 + }, + { + "type": "int32_t", + "name": "portalsCount", + "offset": 372 + }, + { + "type": "int32_t", + "name": "portalRefCount", + "offset": 376 + }, + { + "type": "int32_t", + "name": "visBlockVertCount", + "offset": 380 + }, + { + "type": "int32_t", + "name": "visBlockCount", + "offset": 384 + }, + { + "type": "int32_t", + "name": "ligtsCount", + "offset": 388 + }, + { + "type": "int32_t", + "name": "doodadSetCount", + "offset": 392 + }, + { + "type": "int32_t", + "name": "doodadNameSize", + "offset": 396 + }, + { + "type": "int32_t", + "name": "doodadDefCount", + "offset": 400 + }, + { + "type": "int32_t", + "name": "fogsCount", + "offset": 404 + }, + { + "type": "int32_t", + "name": "convexVolumePlaneCount", + "offset": 408 + }, + { + "type": "int32_t", + "name": "materialsCount", + "offset": 412 + }, + { + "type": "uint32_t", + "name": "argb_color", + "offset": 416 + }, + { + "type": "int32_t", + "name": "unk_1A4", + "offset": 420 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 424 + }, + { + "type": "float", + "name": "distToCamera", + "offset": 448 + }, + { + "type": "int32_t", + "name": "unk_1C4", + "offset": 452 + }, + { + "type": "int32_t", + "name": "unk_1C8", + "offset": 456 + }, + { + "type": "void*", + "name": "pWmoData", + "offset": 460 + }, + { + "type": "int32_t", + "name": "wmoFileSize", + "offset": 464 + }, + { + "type": "int32_t", + "name": "refCount", + "offset": 468 + }, + { + "type": "float", + "name": "flushTimer", + "offset": 472 + }, + { + "type": "CAsyncObject*", + "name": "asyncObject", + "offset": 476 + }, + { + "type": "int32_t", + "name": "isGroupLoaded", + "offset": 480 + }, + { + "type": "int32_t", + "name": "unk_1E4", + "offset": 484 + }, + { + "type": "TSExplicitList_CMapObjGroup", + "name": "mapObjGroupList", + "offset": 488 + }, + { + "type": "int32_t", + "name": "mapObjGroupCount", + "offset": 500 + }, + { + "type": "CMapObjGroup*", + "name": "mapObjGroupArray", + "arrsize": 512, + "offset": 504 + } + ] + }, + { + "name": "CMapStaticEntity", + "size": 144, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "int32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "int32_t", + "name": "unk_C", + "offset": 12 + }, + { + "type": "CMapStaticEntity*", + "name": "prev", + "offset": 16 + }, + { + "type": "CMapStaticEntity*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapStaticEntityMapChunkLink", + "name": "linkList", + "offset": 24 + }, + { + "type": "int32_t", + "name": "unk_024", + "offset": 36 + }, + { + "type": "uint32_t", + "name": "unkFlags_28", + "offset": 40 + }, + { + "type": "int32_t", + "name": "unkCounter", + "offset": 44 + }, + { + "type": "float", + "name": "unk_030", + "offset": 48 + }, + { + "type": "void*", + "name": "unk_m2Model_034", + "offset": 52 + }, + { + "type": "C3Vector", + "name": "vec1", + "offset": 56 + }, + { + "type": "float", + "name": "unk_044", + "offset": 68 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 72 + }, + { + "type": "C3Vector", + "name": "vec2", + "offset": 96 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 108 + }, + { + "type": "float", + "name": "scale", + "offset": 120 + }, + { + "type": "int32_t", + "name": "unk_07C", + "offset": 124 + }, + { + "type": "int32_t", + "name": "unk_080", + "offset": 128 + }, + { + "type": "CImVector", + "name": "m2AmbietColor", + "offset": 132 + }, + { + "type": "CImVector", + "name": "m2DiffuseColor", + "offset": 136 + }, + { + "type": "float", + "name": "unk_08C", + "offset": 140 + } + ] + }, + { + "name": "CMapEntity", + "size": 208, + "members": [ + { + "type": "void**", + "name": "vtable", + "offset": 0 + }, + { + "type": "int32_t", + "name": "objectIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "type", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "refCount", + "offset": 10 + }, + { + "type": "int32_t", + "name": "unk_C", + "offset": 12 + }, + { + "type": "CMapEntity*", + "name": "prev", + "offset": 16 + }, + { + "type": "CMapEntity*", + "name": "next", + "offset": 20 + }, + { + "type": "TSExplicitList_CMapEntityMapChunkLink", + "name": "linkList", + "offset": 24 + }, + { + "type": "int32_t", + "name": "unk_024", + "offset": 36 + }, + { + "type": "uint32_t", + "name": "unkFlags_28", + "offset": 40 + }, + { + "type": "int32_t", + "name": "unkCounter", + "offset": 44 + }, + { + "type": "float", + "name": "unk_030", + "offset": 48 + }, + { + "type": "void*", + "name": "unk_m2Model_034", + "offset": 52 + }, + { + "type": "C3Vector", + "name": "vec1", + "offset": 56 + }, + { + "type": "float", + "name": "unk_044", + "offset": 68 + }, + { + "type": "CAaBox", + "name": "bbox", + "offset": 72 + }, + { + "type": "C3Vector", + "name": "vec2", + "offset": 96 + }, + { + "type": "C3Vector", + "name": "position", + "offset": 108 + }, + { + "type": "float", + "name": "scale", + "offset": 120 + }, + { + "type": "int32_t", + "name": "unk_07C", + "offset": 124 + }, + { + "type": "int32_t", + "name": "unk_080", + "offset": 128 + }, + { + "type": "CImVector", + "name": "m2AmbietColor", + "offset": 132 + }, + { + "type": "CImVector", + "name": "m2DiffuseColor", + "offset": 136 + }, + { + "type": "float", + "name": "unk_08C", + "offset": 140 + }, + { + "type": "int32_t", + "name": "unk_090", + "offset": 144 + }, + { + "type": "int32_t", + "name": "unk_094", + "offset": 148 + }, + { + "type": "uint64_t", + "name": "guid", + "offset": 152 + }, + { + "type": "int32_t", + "name": "unk_0A0", + "offset": 160 + }, + { + "type": "int32_t", + "name": "unk_0A4", + "offset": 164 + }, + { + "type": "int32_t", + "name": "unk_0A8", + "offset": 168 + }, + { + "type": "int32_t", + "name": "unk_0AC", + "offset": 172 + }, + { + "type": "int32_t", + "name": "unk_0B0", + "offset": 176 + }, + { + "type": "int32_t", + "name": "unk_0B4", + "offset": 180 + }, + { + "type": "int32_t", + "name": "unk_0B8", + "offset": 184 + }, + { + "type": "int32_t", + "name": "unk_0BC", + "offset": 188 + }, + { + "type": "CImVector", + "name": "ambientTarget", + "offset": 192 + }, + { + "type": "float", + "name": "dirLightScaleTarget", + "offset": 196 + }, + { + "type": "int32_t", + "name": "unk_0C8", + "offset": 200 + }, + { + "type": "int32_t", + "name": "unk_0CC", + "offset": 204 + } + ] + }, { "name": "M2Attachment", "size": 40, @@ -50715,6 +55649,20 @@ } ] }, + { + "name": "SMChunkInfo__0012", + "members": [ + { + "type": "char", + "name": "pad", + "arrsize": 4 + }, + { + "type": "uint32_t", + "name": "asyncId" + } + ] + }, { "name": "ubyte4__0000", "members": [ @@ -50756,6 +55704,36 @@ } ] }, + { + "name": "SMOLiquidVert__0000", + "members": [ + { + "type": "SMOWVert", + "name": "waterVert" + }, + { + "type": "SMOMVert", + "name": "magmaVert" + } + ] + }, + { + "name": "SLVert__0000", + "members": [ + { + "type": "SWVert", + "name": "waterVert" + }, + { + "type": "SOVert", + "name": "oceanVert" + }, + { + "type": "SMVert", + "name": "magmaVert" + } + ] + }, { "name": "TGAHeader__0019", "members": [