feat(profile): VBBList struct; clarify fields name

This commit is contained in:
gromchek 2025-12-02 22:02:39 +03:00
parent 2861d30eba
commit 0025e7abb1
2 changed files with 54 additions and 10 deletions

View file

@ -6,6 +6,7 @@
#include "map/WMOchunks.h" #include "map/WMOchunks.h"
#include "tempest/vector.h" #include "tempest/vector.h"
#include "storm/list.h" #include "storm/list.h"
#include "map/VBBList.h"
DECLARE_STRUCT(CMapObj); DECLARE_STRUCT(CMapObj);
DECLARE_STRUCT(CMapObjGroup); DECLARE_STRUCT(CMapObjGroup);
@ -19,9 +20,9 @@ struct CMapObj
int32_t objectIndex; int32_t objectIndex;
int32_t unk_04; int32_t unk_04;
int32_t unk_08; int32_t unk_08;
int32_t unk_0C; CMapObj* mapObjPtr1;
int32_t unk_10; int32_t unk_10;
int32_t unk_14; CMapObj* mapObjPtr2;
int32_t unk_18; int32_t unk_18;
char m_wmoName[260]; char m_wmoName[260];
SMOHeader *header; SMOHeader *header;
@ -77,17 +78,17 @@ struct CMapObj
struct CMapObjGroup struct CMapObjGroup
{ {
int32_t objectIndex; int32_t objectIndex;
int32_t unk_04; VBBList_Block* vertsBlock;
int32_t unk_08; VBBList_Block* transparencyVertsBlock;
int32_t unk_0C; VBBList_Block* indicesBlock;
int32_t unk_10; VBBList_Block* liquidVertsBlock;
int32_t unk_14; VBBList_Block* liquidIndicesBlock;
float timer; float timer;
int32_t unk_1C; void* unk_1C;
int32_t unk_20; int32_t unk_20;
int32_t unk_24; int32_t unk_24;
int32_t unk_28; int32_t unk_28;
int32_t unk_2C; int16_t unk_2C[2];
int32_t flags; int32_t flags;
CAaBox bbox; CAaBox bbox;
float distToCamera; float distToCamera;
@ -120,7 +121,7 @@ struct CMapObjGroup
int32_t unk_CC; int32_t unk_CC;
int32_t unkFlags; int32_t unkFlags;
int32_t unk_D4; int32_t unk_D4;
int32_t unk_D8; int32_t minimapTag;
char* groupName; char* groupName;
SMOPoly* polyList; SMOPoly* polyList;
uint16_t* indices; uint16_t* indices;

View file

@ -0,0 +1,43 @@
#ifndef VBBLIST_H
#define VBBLIST_H
DECLARE_STRUCT(VBBList);
DECLARE_STRUCT(VBBList_Block);
#include "system/types.h"
#include "gx/buffer.h"
struct VBBList_Block
{
VBBList_Block* next;
VBBList_Block* prev;
EGxPoolUsage poolUsage;
uint32_t offset;
uint32_t capacity;
CGxPool* pool;
CGxBuf* buffer;
VBBList_Block** listHead;
};
struct VBBList
{
int32_t singlePool;
EGxPoolTarget target;
EGxPoolUsage usage;
CGxPool* pool;
uint32_t unk_10;
//singlePool == true
VBBList_Block* listHeadA;
VBBList_Block* freeCandidate;
uint32_t unk_1C;
//singlePool == false
VBBList_Block* listHeadB;
VBBList_Block* allBlocks;
};
#endif