Implement/match Pizzeria::HandleClick (#971)

This commit is contained in:
Christian Semmler
2024-05-30 09:54:24 -04:00
committed by GitHub
parent ae859fbc19
commit 650903d043
57 changed files with 178 additions and 143 deletions

View File

@@ -103,7 +103,7 @@ MxU32 Ambulance::VTable0xdc(MxType19NotificationParam& p_param)
}
// STUB: LEGO1 0x10036ce0
MxU32 Ambulance::VTable0xcc()
MxU32 Ambulance::HandleClick()
{
// TODO
return 0;
@@ -122,7 +122,7 @@ void Ambulance::VTable0xe4()
}
// STUB: LEGO1 0x10036f90
MxU32 Ambulance::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 Ambulance::HandleControl(LegoControlManagerEvent& p_param)
{
// TODO
return 0;

View File

@@ -45,14 +45,14 @@ void Bike::VTable0xe4()
}
// STUB: LEGO1 0x100769a0
MxU32 Bike::VTable0xcc()
MxU32 Bike::HandleClick()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10076aa0
MxU32 Bike::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 Bike::HandleControl(LegoControlManagerEvent& p_param)
{
// TODO
return 0;

View File

@@ -31,14 +31,14 @@ void DuneBuggy::VTable0xe4()
}
// STUB: LEGO1 0x10068060
MxU32 DuneBuggy::VTable0xcc()
MxU32 DuneBuggy::HandleClick()
{
// TODO
return 0;
}
// STUB: LEGO1 0x100681b0
MxU32 DuneBuggy::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 DuneBuggy::HandleControl(LegoControlManagerEvent& p_param)
{
// TODO
return 0;

View File

@@ -104,7 +104,7 @@ void Helicopter::VTable0xe4()
}
// FUNCTION: LEGO1 0x10003480
MxU32 Helicopter::VTable0xcc()
MxU32 Helicopter::HandleClick()
{
if (!FUN_1003ef60()) {
return 1;
@@ -153,7 +153,7 @@ MxU32 Helicopter::VTable0xcc()
}
// FUNCTION: LEGO1 0x100035e0
MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 Helicopter::HandleControl(LegoControlManagerEvent& p_param)
{
MxU32 ret = 0;
MxAtomId script;

View File

@@ -42,8 +42,8 @@ MxLong IsleActor::Notify(MxParam& p_param)
case c_notificationButtonDown:
result = HandleButtonDown((MxNotificationParam&) p_param);
break;
case c_notificationType11:
result = VTable0x68();
case c_notificationClick:
result = HandleClick();
break;
case c_notificationEndAnim:
result = VTable0x70();

View File

@@ -53,11 +53,11 @@ MxLong IslePathActor::Notify(MxParam& p_param)
case c_notificationType0:
ret = VTable0xd0();
break;
case c_notificationType11:
ret = VTable0xcc();
break;
case c_notificationClick:
ret = VTable0xd4((LegoControlManagerEvent&) p_param);
ret = HandleClick();
break;
case c_notificationControl:
ret = HandleControl((LegoControlManagerEvent&) p_param);
break;
case c_notificationEndAnim:
ret = VTable0xd8((LegoEndAnimNotificationParam&) p_param);

View File

@@ -30,14 +30,14 @@ void Jetski::VTable0xe4()
}
// STUB: LEGO1 0x1007e750
MxU32 Jetski::VTable0xcc()
MxU32 Jetski::HandleClick()
{
// TODO
return 0;
}
// STUB: LEGO1 0x1007e8e0
MxU32 Jetski::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 Jetski::HandleControl(LegoControlManagerEvent& p_param)
{
// TODO
return 0;

View File

@@ -32,7 +32,7 @@ JukeBoxEntity::~JukeBoxEntity()
// FUNCTION: LEGO1 0x10085e40
MxLong JukeBoxEntity::Notify(MxParam& p_param)
{
if (((MxNotificationParam&) p_param).GetType() == c_notificationType11) {
if (((MxNotificationParam&) p_param).GetType() == c_notificationClick) {
if (!FUN_1003ef60()) {
return 1;
}

View File

@@ -31,14 +31,14 @@ void Motocycle::VTable0xe4()
}
// STUB: LEGO1 0x10035c50
MxU32 Motocycle::VTable0xcc()
MxU32 Motocycle::HandleClick()
{
// TODO
return 0;
}
// STUB: LEGO1 0x10035d70
MxU32 Motocycle::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 Motocycle::HandleControl(LegoControlManagerEvent& p_param)
{
// TODO
return 0;

View File

@@ -56,6 +56,11 @@ void Pizza::CreateState()
}
}
// STUB: LEGO1 0x10038220
void Pizza::FUN_10038220(MxU32 p_objectId)
{
}
// STUB: LEGO1 0x100382b0
void Pizza::FUN_100382b0()
{
@@ -67,7 +72,7 @@ void Pizza::FUN_10038380()
}
// STUB: LEGO1 0x100383f0
undefined4 Pizza::VTable0x68()
undefined4 Pizza::HandleClick()
{
// TODO
return 0;

View File

@@ -1,7 +1,17 @@
#include "pizzeria.h"
#include "isle_actions.h"
#include "islepathactor.h"
#include "legoanimationmanager.h"
#include "legogamestate.h"
#include "legopathactor.h"
#include "legoutils.h"
#include "legoworld.h"
#include "misc.h"
#include "pizza.h"
#include "pizzamissionstate.h"
#include "pizzeriastate.h"
#include "scripts.h"
DECOMP_SIZE_ASSERT(Pizzeria, 0x84)
@@ -35,9 +45,21 @@ void Pizzeria::CreateState()
m_pizzaMissionState = pizzaMissionState;
}
// STUB: LEGO1 0x10017a50
undefined4 Pizzeria::VTable0x68()
// FUNCTION: LEGO1 0x10017a50
undefined4 Pizzeria::HandleClick()
{
// TODO
return 0;
if (FUN_1003ef60() && m_pizzaMissionState->m_unk0x0c == 0) {
if (CurrentActor()->GetActorId() != GameState()->GetActorId()) {
if (!CurrentActor()->IsA("SkateBoard")) {
((IslePathActor*) CurrentActor())->VTable0xe4();
}
}
AnimationManager()->FUN_10061010(FALSE);
Pizza* pizza = (Pizza*) CurrentWorld()->Find(*g_isleScript, IsleScript::c_Pizza_Actor);
pizza->FUN_10038220(m_pizzeriaState->FUN_10017d70());
}
return 1;
}

View File

@@ -26,7 +26,7 @@ MxResult RaceCar::Create(MxDSAction& p_dsAction)
}
// STUB: LEGO1 0x100284d0
MxU32 RaceCar::VTable0xcc()
MxU32 RaceCar::HandleClick()
{
// TODO
return 0;

View File

@@ -47,8 +47,8 @@ MxLong Radio::Notify(MxParam& p_param)
case c_notificationEndAction:
result = HandleEndAction((MxEndActionNotificationParam&) p_param);
break;
case c_notificationClick:
result = HandleClick((LegoControlManagerEvent&) p_param);
case c_notificationControl:
result = HandleControl((LegoControlManagerEvent&) p_param);
break;
}
}
@@ -96,7 +96,7 @@ void Radio::Stop()
}
// FUNCTION: LEGO1 0x1002cbc0
MxLong Radio::HandleClick(LegoControlManagerEvent& p_param)
MxLong Radio::HandleControl(LegoControlManagerEvent& p_param)
{
MxDSAction action; // Unused
MxS32 objectId = p_param.GetClickedObjectId();

View File

@@ -72,7 +72,7 @@ void SkateBoard::VTable0xe4()
}
// FUNCTION: LEGO1 0x100100e0
MxU32 SkateBoard::VTable0xcc()
MxU32 SkateBoard::HandleClick()
{
Act1State* state = (Act1State*) GameState()->GetState("Act1State");
@@ -107,7 +107,7 @@ MxU32 SkateBoard::VTable0xcc()
}
// FUNCTION: LEGO1 0x10010230
MxU32 SkateBoard::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 SkateBoard::HandleControl(LegoControlManagerEvent& p_param)
{
MxU32 result = 0;

View File

@@ -89,7 +89,7 @@ MxU32 TowTrack::VTable0xdc(MxType19NotificationParam& p_param)
}
// STUB: LEGO1 0x1004d690
MxU32 TowTrack::VTable0xcc()
MxU32 TowTrack::HandleClick()
{
// TODO
return 0;
@@ -102,7 +102,7 @@ void TowTrack::VTable0xe4()
}
// STUB: LEGO1 0x1004d9e0
MxU32 TowTrack::VTable0xd4(LegoControlManagerEvent& p_param)
MxU32 TowTrack::HandleControl(LegoControlManagerEvent& p_param)
{
// TODO
return 0;