Implement/match Act3Ammo::Animate (#1221)

* Implement/match `Act3Ammo::Animate`

* Match

* Rename

* Rename

* Rename
This commit is contained in:
Christian Semmler
2024-12-13 14:56:26 -07:00
committed by GitHub
parent 6da2faa48c
commit 1aeb458be1
8 changed files with 335 additions and 19 deletions

View File

@@ -122,12 +122,16 @@ public:
void RemoveDonut(Act3Ammo& p_p);
MxResult ShootPizza(LegoPathController* p_controller, Vector3& p_location, Vector3& p_direction, Vector3& p_up);
MxResult ShootDonut(LegoPathController* p_controller, Vector3& p_location, Vector3& p_direction, Vector3& p_up);
void FUN_10072ad0(undefined4 p_param1);
MxResult FUN_10073360(Act3Ammo& p_ammo, const Vector3& p_param2);
MxResult FUN_10073390(Act3Ammo& p_ammo, const Vector3& p_param2);
void SetBrickster(Act3Brickster* p_brickster);
void FUN_10073400();
void FUN_10073430();
void GoodEnding(const Matrix4& p_destination);
// BETA indicates that the actors access certain members directly.
// BETA indicates that the following classes access certain members directly.
friend class Act3Ammo;
friend class Act3Brickster;
friend class Act3Cop;
friend class Act3Shark;

View File

@@ -58,7 +58,8 @@ public:
void SetUnknown0x20(MxFloat p_unk0x20) { m_unk0x20 = p_unk0x20; }
void FUN_10040360();
MxResult FUN_10040350(Act3Ammo& p_ammo, const Vector3&);
MxResult FUN_10040360();
// SYNTHETIC: LEGO1 0x10043120
// Act3Cop::`scalar deleting destructor'
@@ -95,6 +96,7 @@ public:
void SetUnknown0x24(MxFloat p_unk0x24) { m_unk0x24 = p_unk0x24; }
void SetUnknown0x50(MxFloat p_unk0x50) { m_unk0x50 = p_unk0x50; }
MxResult FUN_100417a0(Act3Ammo& p_ammo, const Vector3&);
MxResult FUN_100417c0();
// SYNTHETIC: LEGO1 0x10043250

View File

@@ -47,6 +47,9 @@ public:
// FUNCTION: BETA10 0x1001fc80
MxU32 IsPizza() { return m_ammoFlag & c_pizza; }
// FUNCTION: BETA10 0x10021d60
MxU32 IsDonut() { return m_ammoFlag & c_donut; }
// FUNCTION: BETA10 0x1001fcb0
void SetBit4(MxBool p_bit4)
{
@@ -58,6 +61,9 @@ public:
}
}
// FUNCTION: BETA10 0x10021d90
MxU32 IsBit4() { return m_ammoFlag & c_bit4; }
void SetBit5(MxBool p_bit5)
{
if (p_bit5) {
@@ -75,7 +81,7 @@ public:
void SetUnknown0x158(MxFloat p_unk0x158) { m_unk0x158 = p_unk0x158; }
MxResult Remove();
MxResult Create(Act3* p_a3, MxU32 p_isPizza, MxS32 p_index);
MxResult Create(Act3* p_world, MxU32 p_isPizza, MxS32 p_index);
MxResult FUN_10053b40(Vector3& p_srcLoc, Vector3& p_srcDir, Vector3& p_srcUp);
MxResult FUN_10053cb0(LegoPathController* p_p, LegoPathBoundary* p_boundary, MxFloat p_unk0x19c);
MxResult FUN_10053d30(LegoPathController* p_p, MxFloat p_unk0x19c);
@@ -84,9 +90,13 @@ public:
// Act3Ammo::`scalar deleting destructor'
private:
MxResult FUN_10053db0(float p_param1, const Matrix4& p_param2);
static Mx3DPointFloat g_unk0x10104f08;
MxU16 m_ammoFlag; // 0x154
MxFloat m_unk0x158; // 0x158
Act3* m_a3; // 0x15c
Act3* m_world; // 0x15c
Mx3DPointFloat m_eq[3]; // 0x160
MxFloat m_unk0x19c; // 0x19c
};