mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Implement/match LegoEntity::SwitchSound / SwitchMove / SwitchColor / SwitchMood (#995)
* Implement/match LegoEntity::SwitchSound * Name * Name * Implement/match LegoEntity::SwitchMove * Mood
This commit is contained in:

committed by
GitHub

parent
f6c923a84e
commit
49c17c9c6a
@@ -22,8 +22,8 @@ struct LegoActorInfo {
|
||||
const char* m_name; // 0x00
|
||||
LegoROI* m_roi; // 0x04
|
||||
LegoExtraActor* m_actor; // 0x08
|
||||
MxS32 m_unk0x0c; // 0x0c
|
||||
MxS32 m_unk0x10; // 0x10
|
||||
MxS32 m_sound; // 0x0c
|
||||
MxS32 m_move; // 0x10
|
||||
MxU8 m_mood; // 0x14
|
||||
Part m_parts[10]; // 0x18
|
||||
};
|
||||
|
@@ -15,17 +15,17 @@ class LegoPathBoundary;
|
||||
// SIZE 0x2c
|
||||
struct LegoBuildingInfo {
|
||||
enum {
|
||||
c_bit1 = 0x01,
|
||||
c_bit2 = 0x02,
|
||||
c_bit3 = 0x04,
|
||||
c_bit4 = 0x08
|
||||
c_hasVariants = 0x01,
|
||||
c_hasSounds = 0x02,
|
||||
c_hasMoves = 0x04,
|
||||
c_hasMoods = 0x08
|
||||
};
|
||||
|
||||
LegoEntity* m_entity; // 0x00
|
||||
const char* m_hausName; // 0x04
|
||||
MxU32 m_cycle1; // 0x08
|
||||
MxU32 m_cycle2; // 0x0c
|
||||
MxU8 m_cycle3; // 0x10
|
||||
MxU32 m_sound; // 0x08
|
||||
MxU32 m_move; // 0x0c
|
||||
MxU8 m_mood; // 0x10
|
||||
MxS8 m_unk0x11; // 0x11
|
||||
MxS8 m_initialUnk0x11; // 0x12 = initial value loaded to m_unk0x11
|
||||
MxU8 m_flags; // 0x13
|
||||
@@ -73,9 +73,9 @@ public:
|
||||
MxResult Read(LegoStorage* p_storage);
|
||||
LegoBuildingInfo* GetInfo(LegoEntity* p_entity);
|
||||
MxBool SwitchVariant(LegoEntity* p_entity);
|
||||
MxBool FUN_1002fe40(LegoEntity* p_entity);
|
||||
MxBool FUN_1002fe80(LegoEntity* p_entity);
|
||||
MxBool FUN_1002fed0(LegoEntity* p_entity);
|
||||
MxBool SwitchSound(LegoEntity* p_entity);
|
||||
MxBool SwitchMove(LegoEntity* p_entity);
|
||||
MxBool SwitchMood(LegoEntity* p_entity);
|
||||
MxU32 GetBuildingEntityId(LegoEntity* p_entity);
|
||||
MxU32 FUN_1002ff40(LegoEntity* p_entity, MxBool);
|
||||
MxBool FUN_10030000(LegoEntity* p_entity);
|
||||
@@ -96,6 +96,8 @@ public:
|
||||
|
||||
private:
|
||||
static char* g_customizeAnimFile;
|
||||
static MxS32 g_maxMove[16];
|
||||
static MxU32 g_maxSound;
|
||||
|
||||
MxU8 m_nextVariant; // 0x08
|
||||
MxU8 m_unk0x09; // 0x09
|
||||
|
@@ -69,7 +69,11 @@ public:
|
||||
LegoExtraActor* GetExtraActor(const char* p_name);
|
||||
LegoActorInfo* GetActorInfo(const char* p_name);
|
||||
LegoActorInfo* GetActorInfo(LegoROI* p_roi);
|
||||
MxBool SwitchHat(LegoROI* p_roi);
|
||||
MxBool SwitchColor(LegoROI* p_roi, LegoROI* p_targetROI);
|
||||
MxBool SwitchVariant(LegoROI* p_roi);
|
||||
MxBool SwitchSound(LegoROI* p_roi);
|
||||
MxBool SwitchMove(LegoROI* p_roi);
|
||||
MxBool SwitchMood(LegoROI* p_roi);
|
||||
MxU32 FUN_10085120(LegoROI* p_roi);
|
||||
MxU32 FUN_10085140(LegoROI* p_roi, MxBool p_und);
|
||||
MxU8 GetMood(LegoROI* p_roi);
|
||||
@@ -85,6 +89,8 @@ private:
|
||||
MxResult FUN_10085870(LegoROI* p_roi);
|
||||
|
||||
static char* g_customizeAnimFile;
|
||||
static MxU32 g_maxMove;
|
||||
static MxU32 g_maxSound;
|
||||
|
||||
LegoCharacterMap* m_characters; // 0x00
|
||||
CustomizeAnimFileVariable* m_customizeAnimFile; // 0x04
|
||||
|
@@ -64,13 +64,13 @@ public:
|
||||
// FUNCTION: LEGO1 0x10001090
|
||||
virtual void SetWorldSpeed(MxFloat p_worldSpeed) { m_worldSpeed = p_worldSpeed; } // vtable+0x30
|
||||
|
||||
virtual void ClickSound(MxBool p_und); // vtable+0x34
|
||||
virtual void ClickAnimation(); // vtable+0x38
|
||||
virtual void SwitchVariant(); // vtable+0x3c
|
||||
virtual void VTable0x40(); // vtable+0x40
|
||||
virtual void VTable0x44(); // vtable+0x44
|
||||
virtual void VTable0x48(LegoROI* p_roi); // vtable+0x48
|
||||
virtual void VTable0x4c(); // vtable+0x4c
|
||||
virtual void ClickSound(MxBool p_und); // vtable+0x34
|
||||
virtual void ClickAnimation(); // vtable+0x38
|
||||
virtual void SwitchVariant(); // vtable+0x3c
|
||||
virtual void SwitchSound(); // vtable+0x40
|
||||
virtual void SwitchMove(); // vtable+0x44
|
||||
virtual void SwitchColor(LegoROI* p_roi); // vtable+0x48
|
||||
virtual void SwitchMood(); // vtable+0x4c
|
||||
|
||||
void FUN_10010c30();
|
||||
void SetType(MxU8 p_type);
|
||||
|
@@ -29,7 +29,11 @@ public:
|
||||
void FUN_100263a0(undefined4 p_und);
|
||||
void Write(LegoStorage* p_storage);
|
||||
MxResult Read(LegoStorage* p_storage);
|
||||
MxBool FUN_100269e0(LegoEntity* p_entity);
|
||||
MxBool SwitchColor(LegoEntity* p_entity);
|
||||
MxBool SwitchVariant(LegoEntity* p_entity);
|
||||
MxBool SwitchSound(LegoEntity* p_entity);
|
||||
MxBool SwitchMove(LegoEntity* p_entity);
|
||||
MxBool SwitchMood(LegoEntity* p_entity);
|
||||
MxU32 FUN_10026b70(LegoEntity* p_entity);
|
||||
MxU32 FUN_10026ba0(LegoEntity* p_entity, MxBool);
|
||||
void FUN_10026c50(LegoEntity* p_entity);
|
||||
|
Reference in New Issue
Block a user