binana/profile/3.3.5a-windows-386/include/map/CMapArea.h
2025-09-10 00:40:40 +03:00

164 lines
No EOL
3.4 KiB
C

#ifndef CMAPAREA_H
#define CMAPAREA_H
DECLARE_STRUCT(CMapArea);
DECLARE_STRUCT(CMapChunk);
DECLARE_STRUCT(CMapAreaTexture);
struct CMapAreaTexture
{
char* textureName;
CTexture* texture;
};
struct CMapChunk;
#include "async/object.h"
#include "ADTchunks.h"
#include "storm/array.h"
#include "texture/texture.h"
STORM_TS_GROWABLE_ARRAY(CMapAreaTexture);
struct CMapArea
{
void** vtable;
uint32_t objectIndex;
uint16_t flags;
uint16_t pad_0A;
uint32_t unk_0C;
CMapArea* perv;
CMapArea* next;
int32_t TSExplicitList__m_linkoffset_18;
void* TSExplicitList__ptr_1C;
void* TSExplicitList__ptr2_20;
C3Vector bottomRight;
C3Vector topLeft;
C3Vector topLeft2;
C2iVector index;
C2iVector tileChunkIndex;
TSGrowableArray_CMapAreaTexture textures;
SMMapHeader* header;
int32_t unk_6C;
CAsyncObject* asyncObject;
int32_t TSExplicitList__m_linkoffset_unk_74;
void* TSExplicitList__ptr_unk_78;
void* TSExplicitList__ptr2_unk_7C;
void* filePtr;
int32_t fileSize;
SMChunkInfo* chunkInfo;
int32_t unk_8C;
SMDoodadDef* doodadDef;
SMMapObjDef* mapObjDef;
int32_t doodadDefCount;
int32_t mapObjDefCount;
char* m2FileNames;
char* wmoFileNames;
uint32_t* modelFilenamesOffsets;
uint32_t* wmoFilenamesOffsets;
int16_t* flyingBbox;
int32_t* textureFlags;
uint8_t* unk_B8; //MH20
CMapChunk* mapChunks[256];
};
struct CMapChunk
{
void** vtable;
uint32_t objectIndex;
uint16_t flags;
uint16_t pad_0A;
uint32_t unk_0C;
CMapChunk* prev;
CMapChunk* next;
int32_t TSExplicitList__m_linkoffset_18;
void* TSExplicitList__ptr1_1C;
void* TSExplicitList__ptr2_20;
C2iVector aIndex;
C2iVector sOffset;
C2iVector cOffset;
C3Vector center;
float radius;
CAaBox bbox;
C3Vector bottomRight;
C3Vector topLeft;
C3Vector topLeftCoords;
float distToCamera;
CAaBox bbox2;
void* detailDoodadInstPtr;
void* renderChunkPtr;
int32_t unk_AC;
int32_t areaId;
int32_t unk_B4;
int32_t unk_B8;
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;
int32_t TSExplicitList__m_linkoffset_DC;
void* TSExplicitList__ptr_E0;
void* TSExplicitList__ptr2_E4;
// Light
int32_t TSExplicitList__m_linkoffset_E8;
void* TSExplicitList__ptr_EC;
void* TSExplicitList__ptr2_F0;
// CMapSoundEmitter
int32_t TSExplicitList__m_linkoffset_F4;
void* TSExplicitList__ptr_F8;
void* TSExplicitList__ptr2_FC;
// CChunkLiquid
int32_t TSExplicitList__m_linkoffset_100;
void* TSExplicitList__ptr_104;
void* TSExplicitList__ptr2_108;
uint8_t* chunkInfoBeginPtr;
SMChunk* header;
uint8_t* lowQualityTexMap;
uint8_t* predTexture;
float* vertices;
uint32_t* vertexShading;
int8_t* normals;
uint8_t* shadowMap;
SMLayer* layers;
uint8_t* additionalShadowmap;
uint8_t* MCRF_ptr;
SMLiquidChunk* liquid;
CWSoundEmitter* soundEmitters;
// liquid related fields
int32_t unk_140;
int32_t unk_144;
int32_t unk_148;
int32_t unk_14C;
int32_t unk_150;
int32_t unk_154;
};
#endif