Order functions in binary up to end of Act2Actor (#1312)

* Order more functions

* Order LegoRaceActor

* Further ordering

* Order `Act2Actor`

* Fix
This commit is contained in:
Christian Semmler
2025-01-05 13:00:50 -07:00
committed by GitHub
parent 72aa7e330d
commit 7c452e9453
31 changed files with 497 additions and 515 deletions

View File

@@ -869,13 +869,3 @@ LegoEntity* Act2Actor::FUN_10019b90(MxBool* p_param)
return result;
}
// FUNCTION: LEGO1 0x1001a180
MxS32 Act2Actor::VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3)
{
if (m_unk0x1f) {
return 0;
}
return LegoAnimActor::VTable0x68(p_v1, p_v2, p_v3);
}

View File

@@ -1,5 +1,36 @@
#include "legoobjectfactory.h"
// Headers need to be included in a certain order to match the original binary.
// Some of the following headers were probably not directly included,
// but were included from one of the higher level classes. We should attempt
// to reverse engineer the inclusion "graph" at some point. Until then, to maintain
// correct order in the binary, we include them in the order we want here.
// clang-format off
#include "mxpresenter.h"
#include "legoentity.h"
#include "legopathactor.h"
// The below header inclusions should be sound.
#include "legoloopinganimpresenter.h"
#include "mxcompositemediapresenter.h"
#include "legoactorpresenter.h"
#include "legomodelpresenter.h"
#include "legotexturepresenter.h"
#include "legopartpresenter.h"
#include "legoactioncontrolpresenter.h"
#include "lego3dwavepresenter.h"
#include "jetskirace.h"
#include "carrace.h"
#include "score.h"
#include "legoact2.h"
#include "helicopter.h"
#include "act2policestation.h"
#include "act3.h"
#include "doors.h"
#include "pizzeria.h"
#include "buildings.h"
#include "jukebox.h"
// clang-format on
#include "act2actor.h"
#include "act2brick.h"
#include "act2genactor.h"

View File

@@ -35,24 +35,6 @@ LegoRace::LegoRace()
NotificationManager()->Register(this);
}
// FUNCTION: LEGO1 0x10015b70
MxLong LegoRace::HandlePathStruct(LegoPathStructNotificationParam&)
{
return 0;
}
// FUNCTION: LEGO1 0x10015b80
MxLong LegoRace::HandleEndAction(MxEndActionNotificationParam&)
{
return 0;
}
// FUNCTION: LEGO1 0x10015b90
MxBool LegoRace::Escape()
{
return FALSE;
}
// FUNCTION: LEGO1 0x10015ce0
// FUNCTION: BETA10 0x100c7a71
MxResult LegoRace::Create(MxDSAction& p_dsAction)

View File

@@ -116,3 +116,10 @@ MxResult LegoRaceActor::HitActor(LegoPathActor* p_actor, MxBool p_bool)
return SUCCESS;
}
// FUNCTION: LEGO1 0x10014aa0
// FUNCTION: BETA10 0x100ca038
MxResult LegoRaceActor::FUN_10014aa0()
{
return SUCCESS;
}

View File

@@ -167,11 +167,6 @@ undefined4 g_hitValerieSoundsIndex = 0;
// GLOBAL: LEGO1 0x100f0bb4
MxLong g_unk0x100f0bb4 = 0;
// Initialized at LEGO1 0x10012db0
// GLOBAL: LEGO1 0x10102af0
// GLOBAL: BETA10 0x102114c0
Mx3DPointFloat g_unk0x10102af0 = Mx3DPointFloat(0.0f, 2.0f, 0.0f);
// FUNCTION: LEGO1 0x10012950
LegoRaceCar::LegoRaceCar()
{
@@ -197,6 +192,11 @@ MxLong LegoRaceCar::Notify(MxParam& p_param)
return LegoRaceMap::Notify(p_param);
}
// Initialized at LEGO1 0x10012db0
// GLOBAL: LEGO1 0x10102af0
// GLOBAL: BETA10 0x102114c0
Mx3DPointFloat g_unk0x10102af0 = Mx3DPointFloat(0.0f, 2.0f, 0.0f);
// FUNCTION: LEGO1 0x10012de0
void LegoRaceCar::FUN_10012de0()
{
@@ -727,49 +727,3 @@ MxResult LegoJetski::HitActor(LegoPathActor* p_actor, MxBool p_bool)
return SUCCESS;
}
// FUNCTION: LEGO1 0x10014150
MxU32 LegoJetski::VTable0x6c(
LegoPathBoundary* p_boundary,
Vector3& p_v1,
Vector3& p_v2,
float p_f1,
float p_f2,
Vector3& p_v3
)
{
return LegoJetskiRaceActor::VTable0x6c(p_boundary, p_v1, p_v2, p_f1, p_f2, p_v3);
}
// FUNCTION: LEGO1 0x100141d0
void LegoJetski::SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
{
LegoJetskiRaceActor::SwitchBoundary(p_boundary, p_edge, p_unk0xe4);
}
// FUNCTION: LEGO1 0x10014210
MxResult LegoJetski::VTable0x9c()
{
return LegoJetskiRaceActor::VTable0x9c();
}
// FUNCTION: LEGO1 0x10014500
// FUNCTION: BETA10 0x100cd5e0
MxU32 LegoRaceCar::VTable0x6c(
LegoPathBoundary* p_boundary,
Vector3& p_v1,
Vector3& p_v2,
float p_f1,
float p_f2,
Vector3& p_v3
)
{
return LegoCarRaceActor::VTable0x6c(p_boundary, p_v1, p_v2, p_f1, p_f2, p_v3);
}
// FUNCTION: LEGO1 0x10014560
// FUNCTION: BETA10 0x100cd660
void LegoRaceCar::SwitchBoundary(LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4)
{
LegoCarRaceActor::SwitchBoundary(p_boundary, p_edge, p_unk0xe4);
}

View File

@@ -24,12 +24,6 @@ DECOMP_SIZE_ASSERT(LegoModelPresenter, 0x6c)
// GLOBAL: LEGO1 0x100f7ae0
MxS32 g_modelPresenterConfig = 1;
// FUNCTION: LEGO1 0x1000cca0
void LegoModelPresenter::Destroy()
{
Destroy(FALSE);
}
// FUNCTION: LEGO1 0x1007f660
void LegoModelPresenter::configureLegoModelPresenter(MxS32 p_modelPresenterConfig)
{

View File

@@ -20,12 +20,6 @@ MxS32 g_partPresenterConfig1 = 1;
// GLOBAL: LEGO1 0x100f7aa4
MxS32 g_partPresenterConfig2 = 100;
// FUNCTION: LEGO1 0x1000cf60
void LegoPartPresenter::Destroy()
{
Destroy(FALSE);
}
// FUNCTION: LEGO1 0x1007c990
void LegoPartPresenter::configureLegoPartPresenter(MxS32 p_partPresenterConfig1, MxS32 p_partPresenterConfig2)
{