This commit is contained in:
Christian Semmler 2024-11-01 13:04:20 -07:00
parent 7229597ed9
commit dd51142663

View File

@ -449,129 +449,128 @@ MxLong Pizza::HandleEndAction(MxEndActionNotificationParam& p_param)
if (m_unk0x8c == objectId) { if (m_unk0x8c == objectId) {
BackgroundAudioManager()->RaiseVolume(); BackgroundAudioManager()->RaiseVolume();
result = 1; return 1;
} }
else {
switch (m_state->m_unk0x0c) { switch (m_state->m_unk0x0c) {
case 1: case 1:
if (m_state->GetUnknown0xb0() == objectId) { if (m_state->GetUnknown0xb0() == objectId) {
m_state->m_unk0x0c = 2; m_state->m_unk0x0c = 2;
m_mission->m_startTime = Timer()->GetTime(); m_mission->m_startTime = Timer()->GetTime();
TickleManager()->RegisterClient(this, 200); TickleManager()->RegisterClient(this, 200);
MxTrace("Pizza mission: proposed\n"); MxTrace("Pizza mission: proposed\n");
}
break;
case 3:
if (m_state->GetUnknown0xb0() == objectId) {
m_mission->m_startTime = Timer()->GetTime();
PizzaMissionState::Mission* mission = m_mission;
for (MxS32 i = 0; i < mission->m_numActions; i++) {
InvokeAction(Extra::e_start, *g_isleScript, mission->GetActions()[i], NULL);
} }
break;
case 3: {
if (m_state->GetUnknown0xb0() == objectId) {
m_mission->m_startTime = Timer()->GetTime();
for (MxS32 i = 0; i < m_mission->m_numActions; i++) { m_state->m_unk0x0c = 4;
InvokeAction(Extra::e_start, *g_isleScript, m_mission->GetActions()[i], NULL); m_state->SetUnknown0xb0(IsleScript::c_noneIsle);
} UserActor()->SetState(0);
m_skateBoard->SetUnknown0x160(TRUE);
m_state->m_unk0x0c = 4; m_world->PlaceActor(m_skateBoard, "int37", 2, 0.5, 3, 0.5);
m_state->SetUnknown0xb0(IsleScript::c_noneIsle);
UserActor()->SetState(0);
m_skateBoard->SetUnknown0x160(TRUE);
m_world->PlaceActor(m_skateBoard, "int37", 2, 0.5, 3, 0.5);
#ifdef COMPAT_MODE #ifdef COMPAT_MODE
{ {
LegoEventNotificationParam param(c_notificationClick, NULL, 0, 0, 0, 0); LegoEventNotificationParam param(c_notificationClick, NULL, 0, 0, 0, 0);
m_skateBoard->Notify(param); m_skateBoard->Notify(param);
} }
#else #else
m_skateBoard->Notify(LegoEventNotificationParam(c_notificationClick, NULL, 0, 0, 0, 0)); m_skateBoard->Notify(LegoEventNotificationParam(c_notificationClick, NULL, 0, 0, 0, 0));
#endif #endif
MxTrace("Pizza mission: continues\n"); MxTrace("Pizza mission: continues\n");
result = 1; result = 1;
}
break;
} }
case 5: break;
if (m_state->GetUnknown0xb0() == objectId) { case 5:
StopActions(); if (m_state->GetUnknown0xb0() == objectId) {
StopActions();
if (GameState()->GetActorId() == LegoActor::c_pepper) { if (GameState()->GetActorId() == LegoActor::c_pepper) {
IsleScript::Script action = IsleScript::c_noneIsle; IsleScript::Script action = IsleScript::c_noneIsle;
if (!((Isle*) CurrentWorld())->HasHelicopter()) { if (!((Isle*) CurrentWorld())->HasHelicopter()) {
switch (m_mission->m_unk0x14) { switch (m_mission->m_unk0x14) {
case 1: case 1:
action = IsleScript::c_pja126br_RunAnim; action = IsleScript::c_pja126br_RunAnim;
m_mission->m_unk0x14++; m_mission->m_unk0x14++;
m_state->m_unk0x0c = 6; m_state->m_unk0x0c = 6;
MxTrace("Pizza mission: succeeds\n"); MxTrace("Pizza mission: succeeds\n");
break; break;
case 2: case 2:
action = IsleScript::c_pja129br_RunAnim; action = IsleScript::c_pja129br_RunAnim;
m_unk0x90 = Timer()->GetTime();
m_unk0x94 = 500;
m_mission->m_unk0x14++;
m_state->m_unk0x0c = 6;
MxTrace("Pizza mission: succeeds\n");
break;
case 3:
action = IsleScript::c_pja131br_RunAnim;
m_unk0x90 = Timer()->GetTime();
m_unk0x94 = 500;
m_state->m_unk0x0c = 6;
break;
}
}
else {
action = IsleScript::c_pja132br_RunAnim;
m_unk0x90 = Timer()->GetTime(); m_unk0x90 = Timer()->GetTime();
m_unk0x94 = 2300; m_unk0x94 = 500;
m_state->m_unk0x0c = 8; m_mission->m_unk0x14++;
InputManager()->DisableInputProcessing(); m_state->m_unk0x0c = 6;
InputManager()->SetUnknown336(TRUE); MxTrace("Pizza mission: succeeds\n");
MxTrace("Pizza mission: go to Act2\n"); break;
case 3:
action = IsleScript::c_pja131br_RunAnim;
m_unk0x90 = Timer()->GetTime();
m_unk0x94 = 500;
m_state->m_unk0x0c = 6;
break;
} }
PlayAction(action, TRUE);
} }
else { else {
FUN_100382b0(); action = IsleScript::c_pja132br_RunAnim;
m_state->m_unk0x0c = 0;
m_state->SetUnknown0xb0(IsleScript::c_noneIsle);
}
}
break;
case 6:
if (m_state->GetUnknown0xb0() == objectId) {
if (objectId == IsleScript::c_pja126br_RunAnim) {
PlayAction(IsleScript::c_pja127br_RunAnim, TRUE);
m_unk0x90 = Timer()->GetTime(); m_unk0x90 = Timer()->GetTime();
m_unk0x94 = 700; m_unk0x94 = 2300;
} m_state->m_unk0x0c = 8;
else if (objectId == IsleScript::c_pja129br_RunAnim) { InputManager()->DisableInputProcessing();
PlayAction(IsleScript::c_pja130br_RunAnim, TRUE); InputManager()->SetUnknown336(TRUE);
} MxTrace("Pizza mission: go to Act2\n");
else {
FUN_100382b0();
m_state->m_unk0x0c = 0;
m_state->SetUnknown0xb0(IsleScript::c_noneIsle);
} }
PlayAction(action, TRUE);
} }
break; else {
case 8:
if (m_state->GetUnknown0xb0() == objectId) {
m_act1state->m_unk0x018 = 0;
m_state->m_unk0x0c = 0;
GameState()->m_currentArea = LegoGameState::e_isle;
TickleManager()->UnregisterClient(this);
((Isle*) CurrentWorld())->SetDestLocation(LegoGameState::e_act2main);
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
}
break;
case 9:
if (m_state->GetUnknown0xb0() == objectId) {
FUN_100382b0(); FUN_100382b0();
m_state->m_unk0x0c = 0;
m_state->SetUnknown0xb0(IsleScript::c_noneIsle);
} }
break;
} }
break;
case 6:
if (m_state->GetUnknown0xb0() == objectId) {
if (objectId == IsleScript::c_pja126br_RunAnim) {
PlayAction(IsleScript::c_pja127br_RunAnim, TRUE);
m_unk0x90 = Timer()->GetTime();
m_unk0x94 = 700;
}
else if (objectId == IsleScript::c_pja129br_RunAnim) {
PlayAction(IsleScript::c_pja130br_RunAnim, TRUE);
}
else {
FUN_100382b0();
m_state->m_unk0x0c = 0;
m_state->SetUnknown0xb0(IsleScript::c_noneIsle);
}
}
break;
case 8:
if (m_state->GetUnknown0xb0() == objectId) {
m_act1state->m_unk0x018 = 0;
m_state->m_unk0x0c = 0;
GameState()->m_currentArea = LegoGameState::e_isle;
TickleManager()->UnregisterClient(this);
((Isle*) CurrentWorld())->SetDestLocation(LegoGameState::e_act2main);
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
}
break;
case 9:
if (m_state->GetUnknown0xb0() == objectId) {
FUN_100382b0();
}
break;
} }
return result; return result;