2025-08-28 23:59:00 +03:00
|
|
|
#ifndef CMAPOBJ_H
|
|
|
|
|
#define CMAPOBJ_H
|
|
|
|
|
|
|
|
|
|
#include "tempest/box.h"
|
|
|
|
|
#include "async/object.h"
|
|
|
|
|
#include "WMOchunks.h"
|
|
|
|
|
#include "tempest/vector.h"
|
|
|
|
|
|
|
|
|
|
DECLARE_STRUCT(CMapObj);
|
|
|
|
|
DECLARE_STRUCT(CMapObjGroup);
|
|
|
|
|
|
|
|
|
|
struct CMapObjGroup;
|
|
|
|
|
|
|
|
|
|
struct CMapObj
|
|
|
|
|
{
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t objectIndex;
|
|
|
|
|
int32_t unk_04;
|
|
|
|
|
int32_t unk_08;
|
|
|
|
|
int32_t unk_0C;
|
|
|
|
|
int32_t unk_10;
|
|
|
|
|
int32_t unk_14;
|
|
|
|
|
int32_t unk_18;
|
2025-08-28 23:59:00 +03:00
|
|
|
char m_wmoName[260];
|
|
|
|
|
SMOHeader *header;
|
|
|
|
|
char* textureNameList;
|
|
|
|
|
char* groupNameList;
|
|
|
|
|
char* skybox;
|
|
|
|
|
SMOGroupInfo* groupInfo;
|
|
|
|
|
C3Vector* portalVertexList;
|
|
|
|
|
SMOPortal* portalList;
|
|
|
|
|
SMOPortalRef* portalRefList;
|
|
|
|
|
C3Vector* visBlockVertList;
|
|
|
|
|
SMOVisibleBlock* visBlockList;
|
|
|
|
|
SMOLight* lightList;
|
|
|
|
|
SMODoodadSet* doodadSetList;
|
|
|
|
|
char* doodadNameList;
|
|
|
|
|
SMODoodadDef* doodadDefList;
|
|
|
|
|
SMOFog* fogList;
|
|
|
|
|
C4Plane* convexVolumePlanes;
|
|
|
|
|
SMOMaterial* materialList;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t texturesSize;
|
|
|
|
|
int32_t groupNameSize;
|
|
|
|
|
int32_t groupInfoCount;
|
|
|
|
|
int32_t planeVertCount;
|
|
|
|
|
int32_t portalsCount;
|
|
|
|
|
int32_t portalRefCount;
|
|
|
|
|
int32_t visBlockVertCount;
|
|
|
|
|
int32_t visBlockCount;
|
|
|
|
|
int32_t ligtsCount;
|
|
|
|
|
int32_t doodadSetCount;
|
|
|
|
|
int32_t doodadNameSize;
|
|
|
|
|
int32_t doodadDefCount;
|
|
|
|
|
int32_t fogsCount;
|
|
|
|
|
int32_t convexVolumePlaneCount;
|
|
|
|
|
int32_t materialsCount;
|
2025-08-28 23:59:00 +03:00
|
|
|
uint32_t argb_color;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_1A4;
|
2025-08-28 23:59:00 +03:00
|
|
|
CAaBox bbox;
|
|
|
|
|
float distToCamera;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_1C4;
|
|
|
|
|
int32_t unk_1C8;
|
2025-08-28 23:59:00 +03:00
|
|
|
void* pWmoData;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t wmoFileSize;
|
|
|
|
|
int32_t refCount;
|
2025-08-28 23:59:00 +03:00
|
|
|
float flushTimer;
|
|
|
|
|
CAsyncObject* asyncObject;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t isGroupLoaded;
|
|
|
|
|
int32_t unk_1E4;
|
|
|
|
|
int32_t TSExplicitList__m_linkOffset;
|
2025-08-28 23:59:00 +03:00
|
|
|
void* TSExplicitList__ptr1;
|
|
|
|
|
void* TSExplicitList__ptr2;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t mapObjGroupCount;
|
2025-08-28 23:59:00 +03:00
|
|
|
CMapObjGroup* mapObjGroupArray[512];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct CMapObjGroup
|
|
|
|
|
{
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t objectIndex;
|
|
|
|
|
int32_t unk_04;
|
|
|
|
|
int32_t unk_08;
|
|
|
|
|
int32_t unk_0C;
|
|
|
|
|
int32_t unk_10;
|
|
|
|
|
int32_t unk_14;
|
2025-08-28 23:59:00 +03:00
|
|
|
float timer;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_1C;
|
|
|
|
|
int32_t unk_20;
|
|
|
|
|
int32_t unk_24;
|
|
|
|
|
int32_t unk_28;
|
|
|
|
|
int32_t unk_2C;
|
|
|
|
|
int32_t flags;
|
2025-08-28 23:59:00 +03:00
|
|
|
CAaBox bbox;
|
|
|
|
|
float distToCamera;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t portalStart;
|
|
|
|
|
int32_t portalCount;
|
|
|
|
|
int32_t fogs;
|
2025-08-28 23:59:00 +03:00
|
|
|
uint16_t transparencyBatchesCount;
|
|
|
|
|
uint16_t intBatchCount;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t extBatchCount;
|
2025-09-20 15:39:58 +03:00
|
|
|
void* CAaBspNodePtr1;
|
|
|
|
|
void* CAaBspNodePtr2;
|
2025-08-28 23:59:00 +03:00
|
|
|
uint16_t* nodeFaceIndices;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t bspNodesCount;
|
|
|
|
|
int32_t nodeFaceIndicesCount;
|
|
|
|
|
int32_t unk_7C;
|
|
|
|
|
int32_t unk_80;
|
|
|
|
|
int32_t unk_84;
|
|
|
|
|
int32_t unk_88;
|
|
|
|
|
int32_t unk_8C;
|
|
|
|
|
int32_t unk_90;
|
|
|
|
|
int32_t unk_94;
|
|
|
|
|
int32_t unk_98;
|
|
|
|
|
int32_t unk_9C;
|
|
|
|
|
int32_t unk_A0;
|
|
|
|
|
int32_t unk_A4;
|
|
|
|
|
int32_t unk_A8;
|
|
|
|
|
int32_t unk_AC;
|
|
|
|
|
int32_t unk_B0;
|
2025-08-28 23:59:00 +03:00
|
|
|
CAaBox bbox2;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_CC;
|
|
|
|
|
int32_t unkFlags;
|
|
|
|
|
int32_t unk_D4;
|
|
|
|
|
int32_t unk_D8;
|
2025-08-28 23:59:00 +03:00
|
|
|
char* groupName;
|
|
|
|
|
SMOPoly* polyList;
|
|
|
|
|
uint16_t* indices;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_E8;
|
2025-08-28 23:59:00 +03:00
|
|
|
C3Vector* vertexList;
|
|
|
|
|
C3Vector* normalList;
|
|
|
|
|
C2Vector* textureVertexList;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_F8;
|
2025-08-28 23:59:00 +03:00
|
|
|
SMOBatch* batchList;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_100;
|
|
|
|
|
int32_t unk_104;
|
2025-08-28 23:59:00 +03:00
|
|
|
uint16_t* doodadRefList;
|
|
|
|
|
CImVector* colorVertexList;
|
|
|
|
|
CImVector* colorVertexListExtra;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_114;
|
2025-08-28 23:59:00 +03:00
|
|
|
C2iVector liquidVerts;
|
|
|
|
|
C2iVector liquidTiles;
|
|
|
|
|
C3Vector liquidCorner;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t luquidMaterialId;
|
2025-08-28 23:59:00 +03:00
|
|
|
SMOLiquidVert* liquidVertexList;
|
|
|
|
|
SMOLTile* liquidTileList;
|
|
|
|
|
float liquidHeight;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_144;
|
|
|
|
|
int32_t unk_148;
|
|
|
|
|
int32_t unkFlag;
|
|
|
|
|
int32_t unk_150;
|
|
|
|
|
int32_t polyListSize;
|
|
|
|
|
int32_t indicesCount;
|
|
|
|
|
int32_t unk_15C;
|
|
|
|
|
int32_t vertexListCount;
|
|
|
|
|
int32_t normalListCount;
|
|
|
|
|
int32_t textureVertexListCount;
|
|
|
|
|
int32_t unk_16C;
|
|
|
|
|
int32_t batchListCount;
|
|
|
|
|
int32_t unk_174;
|
|
|
|
|
int32_t doodadRefListCount;
|
|
|
|
|
int32_t colorVertexListSize;
|
|
|
|
|
int32_t colorVertexListExtraSize;
|
2025-08-28 23:59:00 +03:00
|
|
|
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t wmoGroupId;
|
2025-08-28 23:59:00 +03:00
|
|
|
void* filePtr;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t fileSize;
|
2025-08-28 23:59:00 +03:00
|
|
|
CMapObj* parent;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unk_194;
|
2025-08-28 23:59:00 +03:00
|
|
|
CAsyncObject* asyncObjPtr;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t unkLoadedFlag;
|
|
|
|
|
int32_t unkIndexMin1;
|
|
|
|
|
int32_t unkIndexMax1;
|
2025-08-28 23:59:00 +03:00
|
|
|
uint16_t unkIndexMin2;
|
|
|
|
|
uint16_t unkIndexMax2;
|
2025-09-07 13:32:50 +03:00
|
|
|
int32_t TSExplicitList__m_linkoffset;
|
2025-08-28 23:59:00 +03:00
|
|
|
void* TSExplicitList__ptr;
|
|
|
|
|
void* TSExplicitList__ptr2;
|
|
|
|
|
CMapObjGroup* perv;
|
|
|
|
|
CMapObjGroup* next;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|