Implement/match Isle::HandleTransitionEnd (#683)

* Implement/match Isle::HandleTransitionEnd

* Rename enums

* Forward declare enum for C++11+

* Add underlying storage to action headers

* Fix missing define
This commit is contained in:
Christian Semmler
2024-03-17 13:01:47 -04:00
committed by GitHub
parent 4197e3c326
commit 5b8f515968
66 changed files with 494 additions and 81 deletions

View File

@@ -79,6 +79,12 @@ MxU32 Ambulance::VTable0xd4(LegoControlManagerEvent& p_param)
return 0;
}
// STUB: LEGO1 0x10037060
void Ambulance::FUN_10037060()
{
// TODO
}
// STUB: LEGO1 0x10037160
MxResult Ambulance::Tickle()
{

View File

@@ -34,7 +34,7 @@ MxResult Bike::Create(MxDSAction& p_dsAction)
void Bike::VTable0xe4()
{
IslePathActor::VTable0xe4();
GameState()->SetCurrentArea(LegoGameState::Area::e_unk57);
GameState()->SetCurrentArea(LegoGameState::Area::e_bike);
FUN_1003ee00(*g_isleScript, 11);
FUN_1003ee00(*g_isleScript, 12);
FUN_1003ee00(*g_isleScript, 15);
@@ -56,3 +56,9 @@ MxU32 Bike::VTable0xd4(LegoControlManagerEvent& p_param)
// TODO
return 0;
}
// STUB: LEGO1 0x10076b60
void Bike::FUN_10076b60()
{
// TODO
}

View File

@@ -50,3 +50,9 @@ MxU32 DuneBuggy::VTable0xdc(MxType19NotificationParam& p_param)
// TODO
return 0;
}
// STUB: LEGO1 0x10068350
void DuneBuggy::FUN_10068350()
{
// TODO
}

View File

@@ -4,6 +4,7 @@
#include "act3.h"
#include "isle.h"
#include "jukebox.h"
#include "jukebox_actions.h"
#include "legoanimationmanager.h"
#include "legocontrolmanager.h"
#include "legogamestate.h"
@@ -67,7 +68,7 @@ void Helicopter::VTable0xe4()
IslePathActor::VTable0xe4();
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
GameState()->SetCurrentArea(LegoGameState::e_unk60);
GameState()->SetCurrentArea(LegoGameState::e_copter);
if (CurrentActor()) {
if (CurrentActor()->IsA("IslePathActor")) {
((IslePathActor*) CurrentActor())->VTable0xe8(0x37, TRUE, 7);
@@ -114,7 +115,7 @@ MxU32 Helicopter::VTable0xcc()
m_script = *g_isleScript;
AnimationManager()->FUN_10064670(FALSE);
VTable0xe8(0x29, TRUE, 7);
((Isle*) CurrentWorld())->SetUnknown13c(LegoGameState::e_unk60);
((Isle*) CurrentWorld())->SetDestLocation(LegoGameState::e_copter);
FUN_10015820(TRUE, 0);
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, TRUE);
SetUnknownDC(4);
@@ -229,7 +230,7 @@ MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
break;
case 0x1c:
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
((Isle*) CurrentWorld())->SetUnknown13c(LegoGameState::e_infomain);
((Isle*) CurrentWorld())->SetDestLocation(LegoGameState::e_infomain);
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
VTable0xe4();
}

View File

@@ -42,3 +42,9 @@ MxU32 Jetski::VTable0xd4(LegoControlManagerEvent& p_param)
// TODO
return 0;
}
// STUB: LEGO1 0x1007e990
void Jetski::FUN_1007e990()
{
// TODO
}

View File

@@ -36,7 +36,7 @@ MxLong JukeBoxEntity::Notify(MxParam& p_param)
CurrentActor()->VTable0xe4();
}
((Isle*) FindWorld(*g_isleScript, 0))->SetUnknown13c(LegoGameState::e_jukeboxw);
((Isle*) FindWorld(*g_isleScript, 0))->SetDestLocation(LegoGameState::e_jukeboxw);
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
return 1;
}

View File

@@ -50,3 +50,9 @@ MxU32 Motocycle::VTable0xdc(MxType19NotificationParam& p_param)
// TODO
return 0;
}
// STUB: LEGO1 0x10035e10
void Motocycle::FUN_10035e10()
{
// TODO
}

View File

@@ -50,3 +50,9 @@ MxU32 SkateBoard::VTable0xd0()
// TODO
return 0;
}
// STUB: LEGO1 0x10010510
void SkateBoard::FUN_10010510()
{
// TODO
}

View File

@@ -75,3 +75,9 @@ void TowTrack::FUN_1004dab0()
{
// TODO
}
// STUB: LEGO1 0x1004dad0
void TowTrack::FUN_1004dad0()
{
// TODO
}