isle-portable/LEGO1/lego/legoomni/include/legoactors.h
Christian Semmler 49c17c9c6a
Implement/match LegoEntity::SwitchSound / SwitchMove / SwitchColor / SwitchMood (#995)
* Implement/match LegoEntity::SwitchSound

* Name

* Name

* Implement/match LegoEntity::SwitchMove

* Mood
2024-06-05 19:40:44 +02:00

78 lines
1.4 KiB
C++

#ifndef LEGOACTORS_H
#define LEGOACTORS_H
#include "decomp.h"
#include "mxtypes.h"
class LegoExtraActor;
class LegoROI;
// SIZE 0x108
struct LegoActorInfo {
// SIZE 0x18
struct Part {
MxU8* m_unk0x00; // 0x00
const char** m_unk0x04; // 0x04
MxU8 m_unk0x08; // 0x08
MxU8* m_unk0x0c; // 0x0c
const char** m_unk0x10; // 0x10
MxU8 m_unk0x14; // 0x14
};
const char* m_name; // 0x00
LegoROI* m_roi; // 0x04
LegoExtraActor* m_actor; // 0x08
MxS32 m_sound; // 0x0c
MxS32 m_move; // 0x10
MxU8 m_mood; // 0x14
Part m_parts[10]; // 0x18
};
// SIZE 0x58
struct LegoActorLOD {
enum {
c_flag1 = 0x01,
c_flag2 = 0x02
};
const char* m_name; // 0x00
const char* m_parentName; // 0x04
MxU32 m_flags; // 0x08
float m_boundingSphere[4]; // 0x0c
float m_boundingBox[6]; // 0x1c
float m_position[3]; // 0x34
float m_direction[3]; // 0x40
float m_up[3]; // 0x4c
};
enum LegoActorLODs {
c_topLOD,
c_bodyLOD,
c_infohatLOD,
c_infogronLOD,
c_headLOD,
c_armlftLOD,
c_armrtLOD,
c_clawlftLOD,
c_clawrtLOD,
c_leglftLOD,
c_legrtLOD
};
enum LegoActorParts {
c_bodyPart,
c_infohatPart,
c_infogronPart,
c_headPart,
c_armlftPart,
c_armrtPart,
c_clawlftPart,
c_clawrtPart,
c_leglftPart,
c_legrtPart
};
extern LegoActorInfo g_actorInfoInit[66];
extern LegoActorLOD g_actorLODs[11];
#endif // LEGOACTORS_H