mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-25 01:14:19 +00:00
Implement/match Act3Brickster::HitActor (#1212)
* Implement/match `Act3Brickster::HitActor` * Fixes * Fixes * Fixes * Add `Act3Cop::VTable0x9c` * Fix
This commit is contained in:
committed by
GitHub
parent
fe57a94416
commit
aceba71fbb
@@ -23,7 +23,7 @@ public:
|
||||
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_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
MxResult HitActor(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
MxS32 VTable0xa0() override; // vtable+0xa0
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
return !strcmp(p_name, Act2Brick::ClassName()) || LegoEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool) override; // vtable+0x94
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool) override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007a450
|
||||
// Act2Brick::`scalar deleting destructor'
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// VTABLE: LEGO1 0x100d4ed8
|
||||
// SIZE 0x154
|
||||
class Act2GenActor : public LegoPathActor {
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool) override; // vtable+0x94
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool) override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f5a0
|
||||
// Act2GenActor::`scalar deleting destructor'
|
||||
|
||||
@@ -113,12 +113,12 @@ public:
|
||||
void SetShark(Act3Shark* p_shark) { m_shark = p_shark; }
|
||||
void SetDestLocation(LegoGameState::Area p_destLocation) { m_destLocation = p_destLocation; }
|
||||
|
||||
Act3Brickster* GetBrickster() { return m_brickster; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10072630
|
||||
// Act3::`scalar deleting destructor'
|
||||
|
||||
void EatPizza(MxS32 p_index);
|
||||
void EatDonut(MxS32 p_index);
|
||||
void RemovePizza(Act3Ammo& p_p);
|
||||
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);
|
||||
@@ -128,6 +128,11 @@ public:
|
||||
void GoodEnding(const Matrix4& p_matrix);
|
||||
static void DebugPrintf(const char* p_format, ...);
|
||||
|
||||
// BETA indicates that the actors access certain members directly.
|
||||
friend class Act3Brickster;
|
||||
friend class Act3Cop;
|
||||
friend class Act3Shark;
|
||||
|
||||
protected:
|
||||
MxLong HandleTransitionEnd();
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@ public:
|
||||
return "Act3Actor";
|
||||
}
|
||||
|
||||
MxU32 VTable0x90(float p_time, Matrix4& p_transform) override; // vtable+0x90
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
MxU32 VTable0x90(float p_time, Matrix4& p_transform) override; // vtable+0x90
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
|
||||
MxFloat GetUnknown0x1c() { return m_unk0x1c; }
|
||||
|
||||
@@ -37,9 +37,9 @@ public:
|
||||
// Act3Actor::~Act3Actor
|
||||
|
||||
private:
|
||||
MxFloat m_unk0x1c; // 0x1c
|
||||
|
||||
static Mx3DPointFloat g_unk0x10104ef0;
|
||||
|
||||
MxFloat m_unk0x1c; // 0x1c
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d7750 LegoPathActor
|
||||
@@ -49,10 +49,10 @@ class Act3Cop : public Act3Actor {
|
||||
public:
|
||||
Act3Cop();
|
||||
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult HitActor(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
MxFloat GetUnknown0x20() { return m_unk0x20; }
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
private:
|
||||
MxFloat m_unk0x20; // 0x20
|
||||
LegoWorld* m_world; // 0x24
|
||||
undefined4 m_unk0x24[2]; // 0x28
|
||||
undefined4 m_unk0x28[2]; // 0x28
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d7838 LegoPathActor
|
||||
@@ -77,9 +77,9 @@ public:
|
||||
Act3Brickster();
|
||||
~Act3Brickster() override;
|
||||
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor*, MxBool) override; // vtable+0x94
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
void SwitchBoundary(
|
||||
LegoPathBoundary*& p_boundary,
|
||||
LegoUnknown100db7f4*& p_edge,
|
||||
|
||||
@@ -68,6 +68,8 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
MxU32 IsBit5() { return m_ammoFlag & c_bit5; }
|
||||
|
||||
MxFloat GetUnknown0x158() { return m_unk0x158; }
|
||||
|
||||
void SetUnknown0x158(MxFloat p_unk0x158) { m_unk0x158 = p_unk0x158; }
|
||||
|
||||
@@ -24,10 +24,10 @@ public:
|
||||
return !strcmp(p_name, Doors::ClassName()) || LegoPathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
virtual MxFloat VTable0xcc(float p_time); // vtable+0xcc
|
||||
void ParseAction(char* p_extra) override; // vtable+0x20
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
virtual MxFloat VTable0xcc(float p_time); // vtable+0xcc
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e580
|
||||
// Doors::`scalar deleting destructor'
|
||||
|
||||
@@ -42,14 +42,14 @@ public:
|
||||
float p_f1,
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
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
|
||||
void VTable0xc4() override; // vtable+0xc4
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
MxU32 VTable0x90(float p_time, Matrix4& p_matrix) override; // vtable+0x90
|
||||
MxResult HitActor(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
|
||||
void VTable0xc4() override; // vtable+0xc4
|
||||
|
||||
virtual MxResult FUN_1002aae0();
|
||||
|
||||
|
||||
@@ -39,9 +39,9 @@ public:
|
||||
float p_f1,
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
|
||||
override; // vtable+0x98
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
virtual MxU32 VTable0x90(float, Matrix4&) { return FALSE; } // vtable+0x90
|
||||
|
||||
// FUNCTION: LEGO1 0x10002d50
|
||||
virtual MxResult VTable0x94(LegoPathActor*, MxBool) { return 0; } // vtable+0x94
|
||||
virtual MxResult HitActor(LegoPathActor*, MxBool) { return 0; } // vtable+0x94
|
||||
|
||||
virtual void SwitchBoundary(
|
||||
LegoPathBoundary*& p_boundary,
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
|
||||
MxS32 VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3) override; // vtable+0x68
|
||||
MxU32 VTable0x90(float p_time, Matrix4& p_matrix) override; // vtable+0x90
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
|
||||
// FUNCTION: LEGO1 0x10014aa0
|
||||
// FUNCTION: BETA10 0x100ca038
|
||||
|
||||
@@ -65,9 +65,9 @@ public:
|
||||
float p_f1,
|
||||
float p_f2,
|
||||
Vector3& p_v3
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult VTable0x94(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
) override; // vtable+0x6c
|
||||
void VTable0x70(float p_time) override; // vtable+0x70
|
||||
MxResult HitActor(LegoPathActor* p_actor, MxBool p_bool) override; // vtable+0x94
|
||||
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
|
||||
override; // vtable+0x98
|
||||
MxResult VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
Reference in New Issue
Block a user