Implement/match Act3::ShootPizza and Act3::ShootDonut (#1203)

* Implement/match `Act3::LaunchPizza` and `Act3::LaunchDonut`

* Match Helicopter::HandleControl

* Rename

* Adjust total function count

* Rename
This commit is contained in:
Christian Semmler
2024-12-09 15:41:51 -07:00
committed by GitHub
parent 07def56326
commit c2ee761f81
11 changed files with 321 additions and 89 deletions

View File

@@ -4,12 +4,14 @@
#include "legopathactor.h"
#include "mxgeometry/mxgeometry3d.h"
class Act3;
// VTABLE: LEGO1 0x100d8460
// SIZE 0x1a0
class Act3Ammo : public LegoPathActor {
public:
enum {
c_bit4 = 0x04
c_placed = 0x04
};
Act3Ammo();
@@ -18,20 +20,33 @@ public:
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
void VTable0x70(float p_time) override; // vtable+0x70
MxU16 GetFlags() { return m_flags; }
// FUNCTION: BETA10 0x10017750
MxU32 IsPlaced() { return m_ammoFlag & c_placed; }
MxFloat GetUnknown0x158() { return m_unk0x158; }
// FUNCTION: BETA10 0x100177b0
Mx3DPointFloat* GetUnknown0x160() { return m_unk0x160; }
// FUNCTION: BETA10 0x100177e0
MxFloat* GetUnknown0x19c() { return &m_unk0x19c; }
void SetUnknown0x158(MxFloat p_unk0x158) { m_unk0x158 = p_unk0x158; }
MxResult FUN_10053980(Act3* p_a3, MxU32 p_isDonut, MxS32 p_index);
MxResult FUN_10053b40(Vector3& p_srcLoc, Vector3& p_srcDir, Vector3& p_srcUp);
MxResult FUN_10053cb0(LegoPathController* p_controller, LegoPathBoundary* p_boundary, MxFloat p_unk0x19c);
MxResult FUN_10053d30(LegoPathController* p_controller, MxFloat p_unk0x19c);
// SYNTHETIC: LEGO1 0x10053880
// Act3Ammo::`scalar deleting destructor'
private:
MxU16 m_flags; // 0x154
MxU16 m_ammoFlag; // 0x154
MxFloat m_unk0x158; // 0x158
undefined4 m_unk0x15c; // 0x15c
Act3* m_a3; // 0x15c
Mx3DPointFloat m_unk0x160[3]; // 0x160
undefined4 m_unk0x19c; // 0x19c
MxFloat m_unk0x19c; // 0x19c
};
#endif // ACT3AMMO_H