Compare commits

...

2 commits

Author SHA1 Message Date
gromchek
9e800fc5cc feat(profile): fix CCharacterComponent struct 2025-10-26 20:32:07 +03:00
gromchek
2aaf543e61 feat(profile): CCharacterComponent struct 2025-10-26 20:13:30 +03:00
5 changed files with 276 additions and 6 deletions

View file

@ -0,0 +1,82 @@
#ifndef CCHARACTERCOMPONENT_H
#define CCHARACTERCOMPONENT_H
DECLARE_STRUCT(CCharacterComponent);
DECLARE_STRUCT(ComponentData);
DECLARE_STRUCT(ItemDisplay);
#include "system/types.h"
#include "texture/texture.h"
#include "tempest/vector.h"
#include "m2/model.h"
struct ComponentData
{
int32_t raceID;
int32_t sexID;
int32_t classID;
int32_t hairColorID;
int32_t skinID;
int32_t faceID;
int32_t facialHairStyleID;
int32_t hairStyleID;
CM2Model* m2Model;
uint32_t flags;
char npcBakedTexturePath[260];
uint32_t geosets[19];
};
struct ItemDisplay
{
void* texture[7];
uint32_t displayID[7];
uint32_t displayFlag;
};
struct CCharacterComponent
{
int32_t unk_000;
int32_t unk_004;
int32_t flags;
int32_t sections;
uint32_t objectIndex;
EGxTexFormat texFormat;
ComponentData componentData;
CTexture* characterBaseSkin;
// 0 - use in CreateRequest AL/AU/FO/HA/HL/HU/LL/LU/TL funcs ; use display info index 0, 1, 2, 3, 4, 5, 6, 7
// 3 - use in CreateRequestHL func
// 4 - use in CreateRequestHU func
// 6 - use in CreateRequestHL func
// 7 - use in CreateRequestHU func
// 10 - use in CreateRequestHL func
// 11 - use in CreateRequestHU func
// 12 - use in CreateRequestLU func
// 13 - use in CreateRequestTU func
void* m_textureVariation[15];
// 0 - shirt/chest display
// 1 - chest/wrist/arms display
// 2 - arms display
// 3 - shirt/chest/tabard display
// 4 - shirt/chest/tabard display
// 5 - legs/belt display
// 6 - legs/feet display
// 7 - feet display
ItemDisplay itemDisplayInfo[10];
uint32_t itemModels[11];
int32_t unk_454;
int32_t unk_458;
int32_t unk_45C;
int32_t unk_460;
uint32_t unkArray[50];
int32_t unk_52C;
};
#endif

View file

@ -92,6 +92,8 @@
#include "map/CMapEntity.h" #include "map/CMapEntity.h"
#include "map/CMapBaseObjLink.h" #include "map/CMapBaseObjLink.h"
#include "character/CCharacterComponent.h"
#include "net/message.h" #include "net/message.h"
#include "nvapi/nvapi.h" #include "nvapi/nvapi.h"

View file

@ -40,7 +40,7 @@ struct CMapDoodadDef
void* unk_m2Model_034; //0x34 void* unk_m2Model_034; //0x34
C3Vector vec1; C3Vector vec1;
float unk_044; //0x44 float unk_044; //0x44
CAaBox bbox; CAaBox bboxStaticEntity;
C3Vector vec2; C3Vector vec2;
C3Vector position; C3Vector position;
float scale; //0x78 float scale; //0x78
@ -64,7 +64,7 @@ struct CMapDoodadDef
int32_t unk_0B4; //0xB4 int32_t unk_0B4; //0xB4
int32_t unk_0B8; //0xB8 int32_t unk_0B8; //0xB8
int32_t unk_0BC; //0xBC int32_t unk_0BC; //0xBC
CAaBox bbox; CAaBox bboxDoodadDef;
C44Matrix mat; C44Matrix mat;
C44Matrix identity; C44Matrix identity;
int32_t unk_158; //0x158 sound int32_t unk_158; //0x158 sound

View file

@ -42,7 +42,7 @@ struct CMapEntity
void* unk_m2Model_034; //0x34 void* unk_m2Model_034; //0x34
C3Vector vec1; C3Vector vec1;
float unk_044; //0x44 float unk_044; //0x44
CAaBox bbox; CAaBox bboxStaticEntity;
C3Vector vec2; C3Vector vec2;
C3Vector position; C3Vector position;
float scale; //0x78 float scale; //0x78

View file

@ -9540,6 +9540,74 @@
} }
] ]
}, },
{
"name": "ComponentData",
"size": 376,
"members": [
{
"type": "int32_t",
"name": "raceID",
"offset": 0
},
{
"type": "int32_t",
"name": "sexID",
"offset": 4
},
{
"type": "int32_t",
"name": "classID",
"offset": 8
},
{
"type": "int32_t",
"name": "hairColorID",
"offset": 12
},
{
"type": "int32_t",
"name": "skinID",
"offset": 16
},
{
"type": "int32_t",
"name": "faceID",
"offset": 20
},
{
"type": "int32_t",
"name": "facialHairStyleID",
"offset": 24
},
{
"type": "int32_t",
"name": "hairStyleID",
"offset": 28
},
{
"type": "CM2Model*",
"name": "m2Model",
"offset": 32
},
{
"type": "uint32_t",
"name": "flags",
"offset": 36
},
{
"type": "char",
"name": "npcBakedTexturePath",
"arrsize": 260,
"offset": 40
},
{
"type": "uint32_t",
"name": "geosets",
"arrsize": 19,
"offset": 300
}
]
},
{ {
"name": "CpuHardware", "name": "CpuHardware",
"size": 24, "size": 24,
@ -20282,6 +20350,29 @@
} }
] ]
}, },
{
"name": "ItemDisplay",
"size": 60,
"members": [
{
"type": "void*",
"name": "texture",
"arrsize": 7,
"offset": 0
},
{
"type": "uint32_t",
"name": "displayID",
"arrsize": 7,
"offset": 28
},
{
"type": "uint32_t",
"name": "displayFlag",
"offset": 56
}
]
},
{ {
"name": "ItemDisplayInfoRec", "name": "ItemDisplayInfoRec",
"size": 100, "size": 100,
@ -34417,6 +34508,101 @@
} }
] ]
}, },
{
"name": "CCharacterComponent",
"size": 1328,
"members": [
{
"type": "int32_t",
"name": "unk_000",
"offset": 0
},
{
"type": "int32_t",
"name": "unk_004",
"offset": 4
},
{
"type": "int32_t",
"name": "flags",
"offset": 8
},
{
"type": "int32_t",
"name": "sections",
"offset": 12
},
{
"type": "uint32_t",
"name": "objectIndex",
"offset": 16
},
{
"type": "EGxTexFormat",
"name": "texFormat",
"offset": 20
},
{
"type": "ComponentData",
"name": "componentData",
"offset": 24
},
{
"type": "CTexture*",
"name": "characterBaseSkin",
"offset": 400
},
{
"type": "void*",
"name": "m_textureVariation",
"arrsize": 15,
"offset": 404
},
{
"type": "ItemDisplay",
"name": "itemDisplayInfo",
"arrsize": 10,
"offset": 464
},
{
"type": "uint32_t",
"name": "itemModels",
"arrsize": 11,
"offset": 1064
},
{
"type": "int32_t",
"name": "unk_454",
"offset": 1108
},
{
"type": "int32_t",
"name": "unk_458",
"offset": 1112
},
{
"type": "int32_t",
"name": "unk_45C",
"offset": 1116
},
{
"type": "int32_t",
"name": "unk_460",
"offset": 1120
},
{
"type": "uint32_t",
"name": "unkArray",
"arrsize": 50,
"offset": 1124
},
{
"type": "int32_t",
"name": "unk_52C",
"offset": 1324
}
]
},
{ {
"name": "EVENT_DATA_KEY", "name": "EVENT_DATA_KEY",
"size": 24, "size": 24,
@ -51922,7 +52108,7 @@
}, },
{ {
"type": "CAaBox", "type": "CAaBox",
"name": "bbox", "name": "bboxStaticEntity",
"offset": 72 "offset": 72
}, },
{ {
@ -52027,7 +52213,7 @@
}, },
{ {
"type": "CAaBox", "type": "CAaBox",
"name": "bbox", "name": "bboxDoodadDef",
"offset": 192 "offset": 192
}, },
{ {
@ -53437,7 +53623,7 @@
}, },
{ {
"type": "CAaBox", "type": "CAaBox",
"name": "bbox", "name": "bboxStaticEntity",
"offset": 72 "offset": 72
}, },
{ {