mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Implement/match several functions in Act3
, refactor (#1197)
* Implement/match several functions in Act3, refactor * Fix naming * Rename * Add comment * Add annotation * Add BETA assert
This commit is contained in:

committed by
GitHub

parent
97fb6e4f15
commit
1aff40dd94
@@ -22,7 +22,7 @@ public:
|
||||
void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) override; // vtable+0x24
|
||||
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
MxS32 VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3) override; // vtable+0x68
|
||||
void VTable0x70(float p_und) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
MxS32 VTable0xa0() override; // vtable+0xa0
|
||||
|
@@ -6,8 +6,15 @@
|
||||
#include "legostate.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
class Act3Brickster;
|
||||
class Act3Cop;
|
||||
class Act3Shark;
|
||||
class Helicopter;
|
||||
|
||||
// Macros confirmed by BETA10
|
||||
#define MAX_PIZZAS 20
|
||||
#define MAX_DONUTS 20
|
||||
|
||||
// SIZE 0x0c
|
||||
struct Act3ListElement {
|
||||
undefined4 m_unk0x00[3]; // 0x00
|
||||
@@ -89,7 +96,7 @@ public:
|
||||
MxBool Escape() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
void SetHelicopter(Helicopter* p_helicopter) { m_helicopter = p_helicopter; }
|
||||
void SetHelicopter(Helicopter* p_copter) { m_copter = p_copter; }
|
||||
void SetDestLocation(LegoGameState::Area p_destLocation) { m_destLocation = p_destLocation; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10072630
|
||||
@@ -101,15 +108,15 @@ public:
|
||||
void FUN_10073430();
|
||||
|
||||
protected:
|
||||
undefined4 m_unk0xf8; // 0xf8
|
||||
Act3Ammo m_unk0xfc[20]; // 0xfc
|
||||
Act3Ammo m_unk0x217c[20]; // 0x217c
|
||||
Act3State* m_state; // 0xf8
|
||||
Act3Ammo m_pizzas[MAX_PIZZAS]; // 0xfc
|
||||
Act3Ammo m_donuts[MAX_DONUTS]; // 0x217c
|
||||
undefined m_unk0x41fc; // 0x41fc
|
||||
undefined4 m_unk0x4200; // 0x4200
|
||||
undefined4 m_unk0x4204; // 0x4204
|
||||
undefined4 m_unk0x4208; // 0x4208
|
||||
Helicopter* m_helicopter; // 0x420c
|
||||
undefined4 m_unk0x4210; // 0x4210
|
||||
Act3Cop* m_cop1; // 0x4200
|
||||
Act3Cop* m_cop2; // 0x4204
|
||||
Act3Brickster* m_brickster; // 0x4208
|
||||
Helicopter* m_copter; // 0x420c
|
||||
Act3Shark* m_shark; // 0x4210
|
||||
MxFloat m_unk0x4214; // 0x4214
|
||||
undefined4 m_unk0x4218; // 0x4218
|
||||
undefined m_unk0x421c; // 0x421c
|
||||
@@ -117,7 +124,7 @@ protected:
|
||||
undefined m_unk0x421e; // 0x421e
|
||||
Act3List m_unk0x4220; // 0x4220
|
||||
undefined4 m_unk0x4230[15]; // 0x4230
|
||||
undefined4 m_unk0x426c; // 0x426c
|
||||
Act3Script::Script m_unk0x426c; // 0x426c
|
||||
LegoGameState::Area m_destLocation; // 0x4270
|
||||
};
|
||||
|
||||
|
@@ -20,7 +20,7 @@ public:
|
||||
return "Act3Actor";
|
||||
}
|
||||
|
||||
MxU32 VTable0x90(float p_float, Matrix4& p_transform) override; // vtable+0x90
|
||||
MxU32 VTable0x90(float p_time, Matrix4& p_transform) override; // vtable+0x90
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10043330
|
||||
|
@@ -12,7 +12,7 @@ public:
|
||||
~Act3Brickster() override;
|
||||
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_und) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
void SwitchBoundary(
|
||||
LegoPathBoundary*& p_boundary,
|
||||
|
@@ -11,7 +11,7 @@ public:
|
||||
Act3Cop();
|
||||
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_und) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
|
@@ -17,8 +17,8 @@ public:
|
||||
return "Act3Shark";
|
||||
}
|
||||
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
|
||||
// LegoAnimActor vtable
|
||||
virtual MxResult FUN_10042ce0(void*); // vtable+0x10
|
||||
|
@@ -25,9 +25,9 @@ public:
|
||||
}
|
||||
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
virtual MxFloat VTable0xcc(float p_float); // vtable+0xcc
|
||||
virtual MxFloat VTable0xcc(float p_time); // vtable+0xcc
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e580
|
||||
// Doors::`scalar deleting destructor'
|
||||
|
@@ -66,7 +66,7 @@ public:
|
||||
}
|
||||
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
MxLong HandleClick() override; // vtable+0xcc
|
||||
MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4
|
||||
|
@@ -55,7 +55,7 @@ public:
|
||||
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
void VTable0x70(float p_und) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
|
||||
virtual MxResult FUN_1001c1f0(float& p_und);
|
||||
|
@@ -87,8 +87,8 @@ public:
|
||||
MxResult FUN_10030630();
|
||||
LegoBuildingInfo* GetInfoArray(MxS32& p_length);
|
||||
void FUN_100307b0(LegoEntity* p_entity, MxS32 p_adjust);
|
||||
void FUN_10030800();
|
||||
|
||||
static void FUN_10030800();
|
||||
static const char* GetCustomizeAnimFile() { return g_customizeAnimFile; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1002f940
|
||||
|
@@ -43,9 +43,9 @@ public:
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
MxU32 VTable0x90(float p_float, Matrix4& p_matrix) override; // vtable+0x90
|
||||
MxU32 VTable0x90(float p_time, Matrix4& p_matrix) override; // vtable+0x90
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
void VTable0xa4(MxBool& p_und1, MxS32& p_und2) override; // vtable+0xa4
|
||||
|
@@ -40,7 +40,7 @@ public:
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
|
||||
override; // vtable+0x98
|
||||
|
@@ -39,7 +39,7 @@ public:
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxS32 VTable0x1c(LegoPathBoundary* p_boundary, LegoEdge* p_edge) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10013a80
|
||||
|
@@ -38,7 +38,6 @@ public:
|
||||
|
||||
void SetTargets(int p_hPos, int p_vPos, MxBool p_accel);
|
||||
void SetControlMax(int p_hMax, int p_vMax);
|
||||
void SetTrackDefaultParams(MxBool p_state) { m_trackDefault = p_state; }
|
||||
void SetToDefaultParams();
|
||||
MxBool CalculateNewPosDir(
|
||||
const Vector3& p_curPos,
|
||||
@@ -88,6 +87,13 @@ public:
|
||||
// FUNCTION: BETA10 0x100c7880
|
||||
void SetTrackDefault(MxS32 p_trackDefault) { m_trackDefault = p_trackDefault; }
|
||||
|
||||
// FUNCTION: BETA10 0x100178a0
|
||||
void Reset()
|
||||
{
|
||||
m_trackDefault = TRUE;
|
||||
SetToDefaultParams();
|
||||
}
|
||||
|
||||
MxFloat GetLinearVel() { return m_linearVel; }
|
||||
MxFloat GetRotationalVel() { return m_rotationalVel; }
|
||||
MxFloat GetMaxLinearVel() { return m_maxLinearVel; }
|
||||
@@ -96,17 +102,17 @@ public:
|
||||
void ResetMaxLinearVel(MxFloat p_maxLinearVel)
|
||||
{
|
||||
m_maxLinearVel = p_maxLinearVel;
|
||||
m_trackDefault = 0;
|
||||
m_trackDefault = FALSE;
|
||||
}
|
||||
void ResetMaxLinearAccel(MxFloat p_maxLinearAccel)
|
||||
{
|
||||
m_maxLinearAccel = p_maxLinearAccel;
|
||||
m_trackDefault = 0;
|
||||
m_trackDefault = FALSE;
|
||||
}
|
||||
void ResetMaxLinearDeccel(MxFloat p_maxLinearDeccel)
|
||||
{
|
||||
m_maxLinearDeccel = p_maxLinearDeccel;
|
||||
m_trackDefault = 0;
|
||||
m_trackDefault = FALSE;
|
||||
}
|
||||
|
||||
// FUNCTION: BETA10 0x100c9a10
|
||||
|
@@ -49,6 +49,7 @@ public:
|
||||
MxBool FUN_10026c50(LegoEntity* p_entity);
|
||||
void ScheduleAnimation(LegoEntity* p_entity, MxLong p_length);
|
||||
void FUN_10027120();
|
||||
void FUN_10027200();
|
||||
|
||||
static void SetCustomizeAnimFile(const char* p_value);
|
||||
static const char* GetCustomizeAnimFile() { return g_customizeAnimFile; }
|
||||
|
@@ -31,7 +31,7 @@ public:
|
||||
}
|
||||
|
||||
MxS32 VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3) override; // vtable+0x68
|
||||
MxU32 VTable0x90(float p_float, Matrix4& p_matrix) override; // vtable+0x90
|
||||
MxU32 VTable0x90(float p_time, Matrix4& p_matrix) override; // vtable+0x90
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
|
||||
// FUNCTION: LEGO1 0x10014aa0
|
||||
|
@@ -21,9 +21,9 @@ public:
|
||||
~LegoRaceMap() override;
|
||||
|
||||
// LegoPathActor vtable
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_und) override = 0; // vtable+0x70
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override = 0; // vtable+0x70
|
||||
|
||||
// LegoRaceMap vtable
|
||||
virtual void FUN_1005d4b0(); // vtable+0x00
|
||||
|
@@ -66,7 +66,7 @@ public:
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
|
||||
override; // vtable+0x98
|
||||
|
@@ -42,13 +42,13 @@ public:
|
||||
float p_f1,
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
|
||||
override; // vtable+0x98
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
virtual void FUN_10080590(float p_float);
|
||||
virtual void FUN_10080590(float p_time);
|
||||
|
||||
// FUNCTION: LEGO1 0x10012bb0
|
||||
virtual void FUN_10012bb0(float p_unk0x14) { m_unk0x14 = p_unk0x14; }
|
||||
|
Reference in New Issue
Block a user