mirror of
https://github.com/thunderbrewhq/binana.git
synced 2025-12-12 01:42:29 +00:00
feat(profile): CMapBaseObjLink structures
This commit is contained in:
parent
57430d2995
commit
a36752d3a0
12 changed files with 5348 additions and 124 deletions
|
|
@ -78,6 +78,7 @@
|
||||||
#include "m2/shared.h"
|
#include "m2/shared.h"
|
||||||
#include "m2/types.h"
|
#include "m2/types.h"
|
||||||
|
|
||||||
|
#include "map/CMapBaseObj.h"
|
||||||
#include "map/ADTchunks.h"
|
#include "map/ADTchunks.h"
|
||||||
#include "map/CMapArea.h"
|
#include "map/CMapArea.h"
|
||||||
#include "map/WMOchunks.h"
|
#include "map/WMOchunks.h"
|
||||||
|
|
@ -86,8 +87,10 @@
|
||||||
#include "map/CDetailDoodadInst.h"
|
#include "map/CDetailDoodadInst.h"
|
||||||
#include "map/CMapRenderChunk.h"
|
#include "map/CMapRenderChunk.h"
|
||||||
#include "map/CMapObjDef.h"
|
#include "map/CMapObjDef.h"
|
||||||
|
#include "map/CMapStaticEntity.h"
|
||||||
#include "map/CMapDoodadDef.h"
|
#include "map/CMapDoodadDef.h"
|
||||||
#include "map/CMapEntity.h"
|
#include "map/CMapEntity.h"
|
||||||
|
#include "map/CMapBaseObjLink.h"
|
||||||
|
|
||||||
#include "net/message.h"
|
#include "net/message.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,13 @@ DECLARE_STRUCT(SMChunkInfo);
|
||||||
DECLARE_STRUCT(SMDoodadDef);
|
DECLARE_STRUCT(SMDoodadDef);
|
||||||
DECLARE_STRUCT(SMMapObjDef);
|
DECLARE_STRUCT(SMMapObjDef);
|
||||||
DECLARE_STRUCT(SMChunk);
|
DECLARE_STRUCT(SMChunk);
|
||||||
|
DECLARE_STRUCT(SLVert);
|
||||||
DECLARE_STRUCT(SMLayer);
|
DECLARE_STRUCT(SMLayer);
|
||||||
|
DECLARE_STRUCT(SLTiles);
|
||||||
|
DECLARE_STRUCT(SWFlowv);
|
||||||
|
DECLARE_STRUCT(SOVert);
|
||||||
|
DECLARE_STRUCT(SMVert);
|
||||||
|
DECLARE_STRUCT(SWVert);
|
||||||
DECLARE_STRUCT(SMLiquidChunk);
|
DECLARE_STRUCT(SMLiquidChunk);
|
||||||
DECLARE_STRUCT(CWSoundEmitter);
|
DECLARE_STRUCT(CWSoundEmitter);
|
||||||
|
|
||||||
|
|
@ -106,52 +112,65 @@ struct SMLayer
|
||||||
uint32_t offectId;
|
uint32_t offectId;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SMLiquidChunk
|
struct SWVert
|
||||||
{
|
{
|
||||||
float minHeight;
|
|
||||||
float maxHeight;
|
|
||||||
struct SLVert
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct SWVert
|
|
||||||
{
|
|
||||||
char depth;
|
char depth;
|
||||||
char flow0Pct;
|
char flow0Pct;
|
||||||
char flow1Pct;
|
char flow1Pct;
|
||||||
char filler;
|
char filler;
|
||||||
float height;
|
float height;
|
||||||
} waterVert;
|
};
|
||||||
struct SOVert
|
|
||||||
{
|
struct SOVert
|
||||||
|
{
|
||||||
char depth;
|
char depth;
|
||||||
char foam;
|
char foam;
|
||||||
char wet;
|
char wet;
|
||||||
char filler;
|
char filler;
|
||||||
} oceanVert;
|
};
|
||||||
struct SMVert
|
|
||||||
{
|
struct SMVert
|
||||||
|
{
|
||||||
uint16_t s;
|
uint16_t s;
|
||||||
uint16_t t;
|
uint16_t t;
|
||||||
float height;
|
float height;
|
||||||
} magmaVert;
|
};
|
||||||
|
|
||||||
|
struct SLVert
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
SWVert waterVert;
|
||||||
|
SOVert oceanVert;
|
||||||
|
SMVert magmaVert;
|
||||||
};
|
};
|
||||||
} verts[9*9];
|
};
|
||||||
|
|
||||||
struct SLTiles
|
struct SLTiles
|
||||||
{
|
{
|
||||||
char tiles[8][8];
|
char tiles[8][8];
|
||||||
} tiles;
|
};
|
||||||
|
|
||||||
uint32_t nFlowvs;
|
struct SWFlowv
|
||||||
struct SWFlowv
|
{
|
||||||
{
|
|
||||||
CAaSphere sphere;
|
CAaSphere sphere;
|
||||||
C3Vector dir;
|
C3Vector dir;
|
||||||
float velocity;
|
float velocity;
|
||||||
float amplitude;
|
float amplitude;
|
||||||
float frequency;
|
float frequency;
|
||||||
} flowvs[2];
|
};
|
||||||
|
|
||||||
|
struct SMLiquidChunk
|
||||||
|
{
|
||||||
|
float minHeight;
|
||||||
|
float maxHeight;
|
||||||
|
|
||||||
|
SLVert verts[9*9];
|
||||||
|
|
||||||
|
SLTiles tiles;
|
||||||
|
|
||||||
|
uint32_t nFlowvs;
|
||||||
|
SWFlowv flowvs[2];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CWSoundEmitter
|
struct CWSoundEmitter
|
||||||
|
|
|
||||||
|
|
@ -14,25 +14,49 @@ struct CMapAreaTexture
|
||||||
struct CMapChunk;
|
struct CMapChunk;
|
||||||
|
|
||||||
#include "async/object.h"
|
#include "async/object.h"
|
||||||
#include "ADTchunks.h"
|
#include "map/ADTchunks.h"
|
||||||
#include "storm/array.h"
|
#include "storm/array.h"
|
||||||
#include "texture/texture.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);
|
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
|
struct CMapArea
|
||||||
{
|
{
|
||||||
void** vtable;
|
void** vtable;
|
||||||
uint32_t objectIndex;
|
uint32_t objectIndex;
|
||||||
uint16_t flags;
|
uint16_t type;
|
||||||
uint16_t pad_0A;
|
uint16_t refCount;
|
||||||
uint32_t unk_0C;
|
uint32_t unk_0C;
|
||||||
CMapArea* perv;
|
CMapArea* perv;
|
||||||
CMapArea* next;
|
CMapArea* next;
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_18;
|
TSExplicitList_CMapAreaLink linkList;
|
||||||
void* TSExplicitList__ptr_1C;
|
|
||||||
void* TSExplicitList__ptr2_20;
|
|
||||||
|
|
||||||
C3Vector bottomRight;
|
C3Vector bottomRight;
|
||||||
C3Vector topLeft;
|
C3Vector topLeft;
|
||||||
|
|
@ -48,9 +72,7 @@ struct CMapArea
|
||||||
int32_t unk_6C;
|
int32_t unk_6C;
|
||||||
CAsyncObject* asyncObject;
|
CAsyncObject* asyncObject;
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_74;
|
TSExplicitList_CMapAreaChunkLink chunkLinkList;
|
||||||
void* TSExplicitList__ptr_unk_78;
|
|
||||||
void* TSExplicitList__ptr2_unk_7C;
|
|
||||||
|
|
||||||
void* filePtr;
|
void* filePtr;
|
||||||
int32_t fileSize;
|
int32_t fileSize;
|
||||||
|
|
@ -72,19 +94,54 @@ struct CMapArea
|
||||||
CMapChunk* mapChunks[256];
|
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
|
struct CMapChunk
|
||||||
{
|
{
|
||||||
void** vtable;
|
void** vtable;
|
||||||
uint32_t objectIndex;
|
uint32_t objectIndex;
|
||||||
uint16_t flags;
|
uint16_t type;
|
||||||
uint16_t pad_0A;
|
uint16_t refCount;
|
||||||
uint32_t unk_0C;
|
uint32_t unk_0C;
|
||||||
CMapChunk* prev;
|
CMapChunk* prev;
|
||||||
CMapChunk* next;
|
CMapChunk* next;
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_18;
|
TSExplicitList_CMapChunkLink linkList;
|
||||||
void* TSExplicitList__ptr1_1C;
|
|
||||||
void* TSExplicitList__ptr2_20;
|
|
||||||
|
|
||||||
C2iVector aIndex;
|
C2iVector aIndex;
|
||||||
C2iVector sOffset;
|
C2iVector sOffset;
|
||||||
|
|
@ -109,15 +166,8 @@ struct CMapChunk
|
||||||
int32_t unk_BC;
|
int32_t unk_BC;
|
||||||
int32_t unk_C0;
|
int32_t unk_C0;
|
||||||
|
|
||||||
// CMapDoodadDef
|
TSExplicitList_CMapChunkDoodadDefLink doodadDefLinkList;
|
||||||
int32_t TSExplicitList__m_linkoffset_C4;
|
TSExplicitList_CMapChunkMapObjDefLink mapObjDefLinkList;
|
||||||
void* TSExplicitList__ptr_C8;
|
|
||||||
void* TSExplicitList__ptr2_CC;
|
|
||||||
|
|
||||||
// CMapObjDef
|
|
||||||
int32_t TSExplicitList__m_linkoffset_D0;
|
|
||||||
void* TSExplicitList__ptr_D4;
|
|
||||||
void* TSExplicitList__ptr2_D8;
|
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_DC;
|
int32_t TSExplicitList__m_linkoffset_DC;
|
||||||
void* TSExplicitList__ptr_E0;
|
void* TSExplicitList__ptr_E0;
|
||||||
|
|
@ -134,9 +184,7 @@ struct CMapChunk
|
||||||
void* TSExplicitList__ptr2_FC;
|
void* TSExplicitList__ptr2_FC;
|
||||||
|
|
||||||
// CChunkLiquid
|
// CChunkLiquid
|
||||||
int32_t TSExplicitList__m_linkoffset_100;
|
TSExplicitList_CChunkLiquid liquidChunkLinkList;
|
||||||
void* TSExplicitList__ptr_104;
|
|
||||||
void* TSExplicitList__ptr2_108;
|
|
||||||
|
|
||||||
uint8_t* chunkInfoBeginPtr;
|
uint8_t* chunkInfoBeginPtr;
|
||||||
SMChunk* header;
|
SMChunk* header;
|
||||||
|
|
|
||||||
23
profile/3.3.5a-windows-386/include/map/CMapBaseObj.h
Normal file
23
profile/3.3.5a-windows-386/include/map/CMapBaseObj.h
Normal file
|
|
@ -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
|
||||||
24
profile/3.3.5a-windows-386/include/map/CMapBaseObjLink.h
Normal file
24
profile/3.3.5a-windows-386/include/map/CMapBaseObjLink.h
Normal file
|
|
@ -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
|
||||||
|
|
@ -6,21 +6,31 @@ DECLARE_STRUCT(CMapDoodadDef);
|
||||||
#include "tempest/box.h"
|
#include "tempest/box.h"
|
||||||
#include "tempest/matrix.h"
|
#include "tempest/matrix.h"
|
||||||
#include "tempest/vector.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
|
struct CMapDoodadDef
|
||||||
{
|
{
|
||||||
void** vtable; //0x00
|
void** vtable; //0x00
|
||||||
int32_t objectIndex; //0x04
|
int32_t objectIndex; //0x04
|
||||||
uint16_t flags; //0x08
|
uint16_t type; //0x08
|
||||||
uint16_t pad_0A; //0x0A
|
uint16_t refCount; //0x0A
|
||||||
int32_t unk_C; //0x0C
|
int32_t unk_C; //0x0C
|
||||||
void* prev; //0x10
|
CMapDoodadDef* prev; //0x10
|
||||||
void* next; //0x14
|
CMapDoodadDef* next; //0x14
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_18; //0x18
|
TSExplicitList_CMapDoodadDefMapChunkLink linkList;
|
||||||
void* TSExplicitList__m_ptr1_unk_1C; //0x1C
|
|
||||||
void* TSExplicitList__m_ptr2_unk_20; //0x20
|
|
||||||
|
|
||||||
//CMapStaticEntity fields
|
//CMapStaticEntity fields
|
||||||
int32_t unk_024; //0x24
|
int32_t unk_024; //0x24
|
||||||
|
|
|
||||||
|
|
@ -6,21 +6,32 @@ DECLARE_STRUCT(CMapEntity);
|
||||||
#include "system/types.h"
|
#include "system/types.h"
|
||||||
#include "tempest/vector.h"
|
#include "tempest/vector.h"
|
||||||
#include "tempest/box.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
|
struct CMapEntity
|
||||||
{
|
{
|
||||||
//CMapBaseObj fields
|
//CMapBaseObj fields
|
||||||
void** vtable; //0x00
|
void** vtable; //0x00
|
||||||
int32_t objectIndex; //0x04
|
int32_t objectIndex; //0x04
|
||||||
uint16_t flags; //0x08
|
uint16_t type; //0x08
|
||||||
uint16_t pad_0A; //0x0A
|
uint16_t refCount; //0x0A
|
||||||
int32_t unk_C; //0x0C
|
int32_t unk_C; //0x0C
|
||||||
CMapEntity* prev; //0x10
|
CMapEntity* prev; //0x10
|
||||||
CMapEntity* next; //0x14
|
CMapEntity* next; //0x14
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_18; //0x18
|
TSExplicitList_CMapEntityMapChunkLink linkList;
|
||||||
void* TSExplicitList__m_ptr1_unk_1C; //0x1C
|
|
||||||
void* TSExplicitList__m_ptr2_unk_20; //0x20
|
|
||||||
//end
|
//end
|
||||||
|
|
||||||
//CMapStaticEntity fields
|
//CMapStaticEntity fields
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,15 @@
|
||||||
|
|
||||||
#include "tempest/box.h"
|
#include "tempest/box.h"
|
||||||
#include "async/object.h"
|
#include "async/object.h"
|
||||||
#include "WMOchunks.h"
|
#include "map/WMOchunks.h"
|
||||||
#include "tempest/vector.h"
|
#include "tempest/vector.h"
|
||||||
|
#include "storm/list.h"
|
||||||
|
|
||||||
DECLARE_STRUCT(CMapObj);
|
DECLARE_STRUCT(CMapObj);
|
||||||
DECLARE_STRUCT(CMapObjGroup);
|
DECLARE_STRUCT(CMapObjGroup);
|
||||||
|
|
||||||
|
STORM_TS_LIST(CMapObjGroup);
|
||||||
|
|
||||||
struct CMapObjGroup;
|
struct CMapObjGroup;
|
||||||
|
|
||||||
struct CMapObj
|
struct CMapObj
|
||||||
|
|
@ -66,9 +69,7 @@ struct CMapObj
|
||||||
CAsyncObject* asyncObject;
|
CAsyncObject* asyncObject;
|
||||||
int32_t isGroupLoaded;
|
int32_t isGroupLoaded;
|
||||||
int32_t unk_1E4;
|
int32_t unk_1E4;
|
||||||
int32_t TSExplicitList__m_linkOffset;
|
TSExplicitList_CMapObjGroup mapObjGroupList;
|
||||||
void* TSExplicitList__ptr1;
|
|
||||||
void* TSExplicitList__ptr2;
|
|
||||||
int32_t mapObjGroupCount;
|
int32_t mapObjGroupCount;
|
||||||
CMapObjGroup* mapObjGroupArray[512];
|
CMapObjGroup* mapObjGroupArray[512];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,22 +9,46 @@ DECLARE_STRUCT(CMapObjDefGroup);
|
||||||
#include "tempest/matrix.h"
|
#include "tempest/matrix.h"
|
||||||
#include "tempest/vector.h"
|
#include "tempest/vector.h"
|
||||||
#include "storm/array.h"
|
#include "storm/array.h"
|
||||||
|
#include "storm/list.h"
|
||||||
|
#include "map/CMapDoodadDef.h"
|
||||||
|
#include "map/CMapArea.h"
|
||||||
|
|
||||||
STORM_TS_GROWABLE_ARRAY(CMapObjDefGroup);
|
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
|
struct CMapObjDef
|
||||||
{
|
{
|
||||||
void** vtable; //0x00
|
void** vtable; //0x00
|
||||||
int32_t objectIndex; //0x04
|
int32_t objectIndex; //0x04
|
||||||
uint16_t flags; //0x08
|
uint16_t type; //0x08
|
||||||
uint16_t pad_0A; //0x0A
|
uint16_t refCount; //0x0A
|
||||||
int32_t unk_C; //0x0C
|
int32_t unk_C; //0x0C
|
||||||
CMapObjDef* prev; //0x10
|
CMapObjDef* prev; //0x10
|
||||||
CMapObjDef* next; //0x14
|
CMapObjDef* next; //0x14
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_18; //0x18
|
TSExplicitList_CMapObjDefMapChunkLink linkList;
|
||||||
void* TSExplicitList__m_ptr1_unk_1C; //0x1C
|
|
||||||
void* TSExplicitList__m_ptr2_unk_1C; //0x20
|
|
||||||
|
|
||||||
void* unk_24; //0x24
|
void* unk_24; //0x24
|
||||||
void* unk_28; //0x28
|
void* unk_28; //0x28
|
||||||
|
|
@ -49,9 +73,7 @@ struct CMapObjDef
|
||||||
int32_t unk_10C; //0x10C
|
int32_t unk_10C; //0x10C
|
||||||
int32_t unk_110; //0x110
|
int32_t unk_110; //0x110
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_114; //0x114
|
TSExplicitList_CMapObjDefMapObjDefGroupLink mapObjDefGroupLinkList;
|
||||||
void* TSExplicitList__m_ptr1_unk_118; //0x118
|
|
||||||
void* TSExplicitList__m_ptr2_unk_11C; //0x11C
|
|
||||||
|
|
||||||
TSGrowableArray_CMapObjDefGroup defGroups;
|
TSGrowableArray_CMapObjDefGroup defGroups;
|
||||||
|
|
||||||
|
|
@ -69,19 +91,39 @@ struct CMapObjDef
|
||||||
void* unk_154; //0x154
|
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
|
struct CMapObjDefGroup
|
||||||
{
|
{
|
||||||
void* vtable; //0x00
|
void* vtable; //0x00
|
||||||
int32_t objectIndex; //0x04
|
int32_t objectIndex; //0x04
|
||||||
uint16_t flags; //0x08
|
uint16_t type; //0x08
|
||||||
uint16_t pad_0A; //0x0A
|
uint16_t refCount; //0x0A
|
||||||
int32_t unk_C; //0x0C
|
int32_t unk_C; //0x0C
|
||||||
CMapObjDefGroup* prev; //0x10
|
CMapObjDefGroup* prev; //0x10
|
||||||
CMapObjDefGroup* next; //0x14
|
CMapObjDefGroup* next; //0x14
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_18; //0x18
|
TSExplicitList_CMapObjDefGroupMapObjDefLink linkList;
|
||||||
void* TSExplicitList__m_ptr1_unk_1C; //0x1C
|
|
||||||
void* TSExplicitList__m_ptr2_unk_1C; //0x20
|
|
||||||
|
|
||||||
CAaBox bbox;
|
CAaBox bbox;
|
||||||
CAaSphere sphere;
|
CAaSphere sphere;
|
||||||
|
|
@ -96,13 +138,13 @@ struct CMapObjDefGroup
|
||||||
int32_t unk_64; //0x64
|
int32_t unk_64; //0x64
|
||||||
int32_t unk_68; //0x68
|
int32_t unk_68; //0x68
|
||||||
|
|
||||||
|
//CWFrustum
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_6C; //0x6C
|
int32_t TSExplicitList__m_linkoffset_unk_6C; //0x6C
|
||||||
void* TSExplicitList__m_ptr1_unk_70; //0x70
|
void* TSExplicitList__m_ptr1_unk_70; //0x70
|
||||||
void* TSExplicitList__m_ptr2_unk_74; //0x74
|
void* TSExplicitList__m_ptr2_unk_74; //0x74
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_78; //0x78
|
// CMapDoodadDef
|
||||||
void* TSExplicitList__m_ptr1_unk_7C; //0x7C
|
TSExplicitList_CMapObjDefGroupDoodadDefLink doodadDefLinkList;
|
||||||
void* TSExplicitList__m_ptr2_unk_80; //0x80
|
|
||||||
|
|
||||||
int32_t TSExplicitList__m_linkoffset_unk_84; //0x84
|
int32_t TSExplicitList__m_linkoffset_unk_84; //0x84
|
||||||
void* TSExplicitList__m_ptr1_unk_88; //0x88
|
void* TSExplicitList__m_ptr1_unk_88; //0x88
|
||||||
|
|
|
||||||
54
profile/3.3.5a-windows-386/include/map/CMapStaticEntity.h
Normal file
54
profile/3.3.5a-windows-386/include/map/CMapStaticEntity.h
Normal file
|
|
@ -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
|
||||||
|
|
@ -19,6 +19,8 @@ DECLARE_STRUCT(SMOPoly);
|
||||||
DECLARE_STRUCT(SMOBatch);
|
DECLARE_STRUCT(SMOBatch);
|
||||||
DECLARE_STRUCT(SMOLiquidVert);
|
DECLARE_STRUCT(SMOLiquidVert);
|
||||||
DECLARE_STRUCT(SMOLTile);
|
DECLARE_STRUCT(SMOLTile);
|
||||||
|
DECLARE_STRUCT(SMOWVert);
|
||||||
|
DECLARE_STRUCT(SMOMVert);
|
||||||
|
|
||||||
struct SMOHeader
|
struct SMOHeader
|
||||||
{
|
{
|
||||||
|
|
@ -32,13 +34,14 @@ struct SMOHeader
|
||||||
uint32_t ambColor;
|
uint32_t ambColor;
|
||||||
uint32_t wmoID;
|
uint32_t wmoID;
|
||||||
CAaBox bounding_box;
|
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_unified_render_path : 1;
|
||||||
uint16_t flag_use_liquid_type_dbc_id : 1;
|
uint16_t flag_use_liquid_type_dbc_id : 1;
|
||||||
uint16_t flag_do_not_fix_vertex_color_alpha: 1;
|
uint16_t flag_do_not_fix_vertex_color_alpha: 1;
|
||||||
uint16_t flag_lod : 1;
|
uint16_t flag_lod : 1;
|
||||||
uint16_t flag_default_max_lod : 1;
|
uint16_t flag_default_max_lod : 1;
|
||||||
uint16_t : 10;
|
uint16_t : 10;*/
|
||||||
|
uint16_t flags;
|
||||||
uint16_t numLod;
|
uint16_t numLod;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -96,12 +99,13 @@ struct SMODoodadSet
|
||||||
|
|
||||||
struct SMODoodadDef
|
struct SMODoodadDef
|
||||||
{
|
{
|
||||||
uint32_t nameIndex : 24;
|
/*uint32_t nameIndex : 24;
|
||||||
uint32_t flag_AcceptProjTex : 1;
|
uint32_t flag_AcceptProjTex : 1;
|
||||||
uint32_t flag_0x2 : 1;
|
uint32_t flag_0x2 : 1;
|
||||||
uint32_t flag_0x4 : 1;
|
uint32_t flag_0x4 : 1;
|
||||||
uint32_t flag_0x8 : 1;
|
uint32_t flag_0x8 : 1;
|
||||||
uint32_t unk : 4;
|
uint32_t unk : 4;*/
|
||||||
|
uint32_t flags;
|
||||||
C3Vector position;
|
C3Vector position;
|
||||||
C4Quaternion orientation;
|
C4Quaternion orientation;
|
||||||
float scale;
|
float scale;
|
||||||
|
|
@ -110,10 +114,11 @@ struct SMODoodadDef
|
||||||
|
|
||||||
struct SMOFog
|
struct SMOFog
|
||||||
{
|
{
|
||||||
uint32_t flag_infinite_radius : 1;
|
/*uint32_t flag_infinite_radius : 1;
|
||||||
uint32_t : 3;
|
uint32_t : 3;
|
||||||
uint32_t flag_0x10 : 1;
|
uint32_t flag_0x10 : 1;
|
||||||
uint32_t : 27;
|
uint32_t : 27;*/
|
||||||
|
uint32_t flags;
|
||||||
|
|
||||||
C3Vector position;
|
C3Vector position;
|
||||||
float smallerRadius;
|
float smallerRadius;
|
||||||
|
|
@ -131,7 +136,7 @@ struct SMOFog
|
||||||
|
|
||||||
struct SMOMaterial
|
struct SMOMaterial
|
||||||
{
|
{
|
||||||
uint32_t F_UNLIT : 1;
|
/*uint32_t F_UNLIT : 1;
|
||||||
uint32_t F_UNFOGGED : 1;
|
uint32_t F_UNFOGGED : 1;
|
||||||
uint32_t F_UNCULLED : 1;
|
uint32_t F_UNCULLED : 1;
|
||||||
uint32_t F_EXTLIGHT : 1;
|
uint32_t F_EXTLIGHT : 1;
|
||||||
|
|
@ -140,7 +145,8 @@ struct SMOMaterial
|
||||||
uint32_t F_CLAMP_S : 1;
|
uint32_t F_CLAMP_S : 1;
|
||||||
uint32_t F_CLAMP_T : 1;
|
uint32_t F_CLAMP_T : 1;
|
||||||
uint32_t flag_0x100 : 1;
|
uint32_t flag_0x100 : 1;
|
||||||
uint32_t : 23;
|
uint32_t : 23;*/
|
||||||
|
uint32_t flags;
|
||||||
|
|
||||||
uint32_t shader;
|
uint32_t shader;
|
||||||
|
|
||||||
|
|
@ -163,14 +169,15 @@ struct SMOMaterial
|
||||||
|
|
||||||
struct SMOPoly
|
struct SMOPoly
|
||||||
{
|
{
|
||||||
uint8_t F_UNK_0x01: 1;
|
/*uint8_t F_UNK_0x01: 1;
|
||||||
uint8_t F_NOCAMCOLLIDE : 1;
|
uint8_t F_NOCAMCOLLIDE : 1;
|
||||||
uint8_t F_DETAIL : 1;
|
uint8_t F_DETAIL : 1;
|
||||||
uint8_t F_COLLISION : 1;
|
uint8_t F_COLLISION : 1;
|
||||||
uint8_t F_HINT : 1;
|
uint8_t F_HINT : 1;
|
||||||
uint8_t F_RENDER : 1;
|
uint8_t F_RENDER : 1;
|
||||||
uint8_t F_CULL_OBJECTS : 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;
|
uint8_t materialId;
|
||||||
};
|
};
|
||||||
|
|
@ -186,35 +193,39 @@ struct SMOBatch
|
||||||
uint8_t texture;
|
uint8_t texture;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SMOLiquidVert
|
struct SMOWVert
|
||||||
{
|
{
|
||||||
union
|
|
||||||
{
|
|
||||||
struct SMOWVert
|
|
||||||
{
|
|
||||||
uint8_t flow1;
|
uint8_t flow1;
|
||||||
uint8_t flow2;
|
uint8_t flow2;
|
||||||
uint8_t flow1Pct;
|
uint8_t flow1Pct;
|
||||||
uint8_t filler;
|
uint8_t filler;
|
||||||
float height;
|
float height;
|
||||||
} waterVert;
|
};
|
||||||
|
|
||||||
struct SMOMVert
|
struct SMOMVert
|
||||||
{
|
{
|
||||||
int16_t s;
|
int16_t s;
|
||||||
int16_t t;
|
int16_t t;
|
||||||
float height;
|
float height;
|
||||||
} magmaVert;
|
};
|
||||||
|
|
||||||
|
struct SMOLiquidVert
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
SMOWVert waterVert;
|
||||||
|
SMOMVert magmaVert;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SMOLTile
|
struct SMOLTile
|
||||||
{
|
{
|
||||||
uint8_t legacyLiquidType : 4;
|
/*uint8_t legacyLiquidType : 4;
|
||||||
uint8_t unknown1 : 1;
|
uint8_t unknown1 : 1;
|
||||||
uint8_t unknown2 : 1;
|
uint8_t unknown2 : 1;
|
||||||
uint8_t fishable : 1;
|
uint8_t fishable : 1;
|
||||||
uint8_t shared : 1;
|
uint8_t shared : 1;*/
|
||||||
|
uint8_t flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue