mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-22 07:54:23 +00:00
Clear unknowns in Act1State
(#1664)
This commit is contained in:
@@ -75,11 +75,11 @@ public:
|
||||
|
||||
MxU32 GetState() { return m_state; }
|
||||
ElevatorFloor GetElevatorFloor() { return (ElevatorFloor) m_elevFloor; }
|
||||
MxU8 GetUnknown21() { return m_unk0x021; }
|
||||
MxBool IsSpawnInInfocenter() { return m_spawnInInfocenter; }
|
||||
|
||||
void SetState(MxU32 p_state) { m_state = p_state; }
|
||||
void SetElevatorFloor(ElevatorFloor p_elevFloor) { m_elevFloor = p_elevFloor; }
|
||||
void SetUnknown21(MxU8 p_unk0x21) { m_unk0x021 = p_unk0x21; }
|
||||
void SetSpawnInInfocenter(MxBool p_spawnInInfocenter) { m_spawnInInfocenter = p_spawnInInfocenter; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10033960
|
||||
// Act1State::`scalar deleting destructor'
|
||||
@@ -90,11 +90,11 @@ public:
|
||||
IsleScript::Script m_currentCptClickDialogue; // 0x014
|
||||
MxU32 m_state; // 0x018
|
||||
MxS16 m_elevFloor; // 0x01c
|
||||
MxBool m_unk0x01e; // 0x01e
|
||||
MxBool m_unk0x01f; // 0x01f
|
||||
MxBool m_playingFloor2Animation; // 0x01e
|
||||
MxBool m_switchedToArea; // 0x01f
|
||||
MxBool m_planeActive; // 0x020
|
||||
undefined m_unk0x021; // 0x021
|
||||
MxBool m_unk0x022; // 0x022
|
||||
MxBool m_spawnInInfocenter; // 0x021
|
||||
MxBool m_playedExitExplanation; // 0x022
|
||||
undefined m_unk0x023; // 0x023
|
||||
LegoNamedPlane m_motocyclePlane; // 0x024
|
||||
LegoNamedPlane m_bikePlane; // 0x070
|
||||
|
@@ -111,8 +111,8 @@ void Bike::ActivateSceneActions()
|
||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||
|
||||
Act1State* act1state = (Act1State*) GameState()->GetState("Act1State");
|
||||
if (!act1state->m_unk0x022) {
|
||||
act1state->m_unk0x022 = TRUE;
|
||||
if (!act1state->m_playedExitExplanation) {
|
||||
act1state->m_playedExitExplanation = TRUE;
|
||||
|
||||
MxMatrix mat(UserActor()->GetROI()->GetLocal2World());
|
||||
mat.TranslateBy(mat[2][0] * 2.5, mat[2][1] + 0.7, mat[2][2] * 2.5);
|
||||
|
@@ -192,8 +192,8 @@ void DuneBuggy::ActivateSceneActions()
|
||||
PlayMusic(JukeboxScript::c_GarageArea_Music);
|
||||
|
||||
Act1State* act1state = (Act1State*) GameState()->GetState("Act1State");
|
||||
if (!act1state->m_unk0x022) {
|
||||
act1state->m_unk0x022 = TRUE;
|
||||
if (!act1state->m_playedExitExplanation) {
|
||||
act1state->m_playedExitExplanation = TRUE;
|
||||
|
||||
MxMatrix mat(UserActor()->GetROI()->GetLocal2World());
|
||||
mat.TranslateBy(mat[2][0] * 2.5, mat[2][1] + 0.7, mat[2][2] * 2.5);
|
||||
|
@@ -163,11 +163,11 @@ void Jetski::ActivateSceneActions()
|
||||
|
||||
Act1State* act1state = (Act1State*) GameState()->GetState("Act1State");
|
||||
if (!act1state->m_state) {
|
||||
if (act1state->m_unk0x022) {
|
||||
if (act1state->m_playedExitExplanation) {
|
||||
PlayCamAnim(this, FALSE, 68, TRUE);
|
||||
}
|
||||
else {
|
||||
act1state->m_unk0x022 = TRUE;
|
||||
act1state->m_playedExitExplanation = TRUE;
|
||||
|
||||
LegoPathActor* user = UserActor();
|
||||
if (user != NULL) {
|
||||
|
@@ -151,8 +151,8 @@ void Motocycle::ActivateSceneActions()
|
||||
PlayMusic(JukeboxScript::c_PoliceStation_Music);
|
||||
|
||||
Act1State* act1state = (Act1State*) GameState()->GetState("Act1State");
|
||||
if (!act1state->m_unk0x022) {
|
||||
act1state->m_unk0x022 = TRUE;
|
||||
if (!act1state->m_playedExitExplanation) {
|
||||
act1state->m_playedExitExplanation = TRUE;
|
||||
|
||||
MxMatrix mat(UserActor()->GetROI()->GetLocal2World());
|
||||
mat.TranslateBy(mat[2][0] * 2.5, mat[2][1] + 0.7, mat[2][2] * 2.5);
|
||||
|
@@ -151,8 +151,8 @@ void SkateBoard::ActivateSceneActions()
|
||||
if (m_act1state->m_state != Act1State::e_pizza) {
|
||||
PlayMusic(JukeboxScript::c_BeachBlvd_Music);
|
||||
|
||||
if (!m_act1state->m_unk0x022) {
|
||||
m_act1state->m_unk0x022 = TRUE;
|
||||
if (!m_act1state->m_playedExitExplanation) {
|
||||
m_act1state->m_playedExitExplanation = TRUE;
|
||||
|
||||
MxMatrix mat(UserActor()->GetROI()->GetLocal2World());
|
||||
mat.TranslateBy(mat[2][0] * 2.5, mat[2][1] + 0.2, mat[2][2] * 2.5);
|
||||
|
@@ -244,15 +244,15 @@ void Isle::HandleElevatorEndAction()
|
||||
m_act1state->m_state = Act1State::e_none;
|
||||
break;
|
||||
case Act1State::c_floor2:
|
||||
if (m_act1state->m_unk0x01e) {
|
||||
m_act1state->m_unk0x01e = FALSE;
|
||||
if (m_act1state->m_playingFloor2Animation) {
|
||||
m_act1state->m_playingFloor2Animation = FALSE;
|
||||
m_act1state->m_state = Act1State::e_none;
|
||||
InputManager()->EnableInputProcessing();
|
||||
}
|
||||
else {
|
||||
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_Floor2, NULL);
|
||||
InputManager()->EnableInputProcessing();
|
||||
m_act1state->m_unk0x01e = TRUE;
|
||||
m_act1state->m_playingFloor2Animation = TRUE;
|
||||
}
|
||||
break;
|
||||
case Act1State::c_floor3:
|
||||
@@ -268,10 +268,10 @@ void Isle::ReadyWorld()
|
||||
{
|
||||
LegoWorld::ReadyWorld();
|
||||
|
||||
if (m_act1state->GetUnknown21()) {
|
||||
if (m_act1state->IsSpawnInInfocenter()) {
|
||||
GameState()->SwitchArea(LegoGameState::e_infomain);
|
||||
m_act1state->SetState(Act1State::e_none);
|
||||
m_act1state->SetUnknown21(0);
|
||||
m_act1state->SetSpawnInInfocenter(FALSE);
|
||||
}
|
||||
else if (GameState()->GetLoadedAct() != LegoGameState::e_act1) {
|
||||
EnableAnimations(TRUE);
|
||||
@@ -318,7 +318,7 @@ MxLong Isle::HandleControl(LegoControlManagerNotificationParam& p_param)
|
||||
break;
|
||||
case Act1State::c_floor2:
|
||||
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_Floor2, NULL);
|
||||
m_act1state->m_unk0x01e = TRUE;
|
||||
m_act1state->m_playingFloor2Animation = TRUE;
|
||||
break;
|
||||
case Act1State::c_floor3:
|
||||
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_Elev3_2_Ride, NULL);
|
||||
@@ -907,7 +907,7 @@ MxLong Isle::HandleTransitionEnd()
|
||||
m_destLocation = LegoGameState::e_undefined;
|
||||
break;
|
||||
case LegoGameState::e_elevride:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
VariableTable()->SetVariable("VISIBILITY", "Hide infocen");
|
||||
TransitionToOverlay(
|
||||
IsleScript::c_ElevRide_Background_Bitmap,
|
||||
@@ -961,7 +961,7 @@ MxLong Isle::HandleTransitionEnd()
|
||||
);
|
||||
break;
|
||||
case LegoGameState::e_garadoor:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
VariableTable()->SetVariable("VISIBILITY", "Hide Gas");
|
||||
TransitionToOverlay(IsleScript::c_GaraDoor_Background_Bitmap, JukeboxScript::c_JBMusic2, "LCAMZG1,90", FALSE);
|
||||
break;
|
||||
@@ -986,7 +986,7 @@ MxLong Isle::HandleTransitionEnd()
|
||||
SetIsWorldActive(TRUE);
|
||||
break;
|
||||
case LegoGameState::e_polidoor:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
VariableTable()->SetVariable("VISIBILITY", "Hide Policsta");
|
||||
TransitionToOverlay(
|
||||
IsleScript::c_PoliDoor_Background_Bitmap,
|
||||
@@ -996,61 +996,61 @@ MxLong Isle::HandleTransitionEnd()
|
||||
);
|
||||
break;
|
||||
case LegoGameState::e_bike:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
TransitionToOverlay(IsleScript::c_BikeDashboard_Bitmap, JukeboxScript::c_MusicTheme1, NULL, TRUE);
|
||||
|
||||
if (!m_act1state->m_unk0x01f) {
|
||||
if (!m_act1state->m_switchedToArea) {
|
||||
m_bike->ActivateSceneActions();
|
||||
}
|
||||
break;
|
||||
case LegoGameState::e_dunecar:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
TransitionToOverlay(IsleScript::c_DuneCarFuelMeter, JukeboxScript::c_MusicTheme1, NULL, TRUE);
|
||||
|
||||
if (!m_act1state->m_unk0x01f) {
|
||||
if (!m_act1state->m_switchedToArea) {
|
||||
m_dunebuggy->ActivateSceneActions();
|
||||
}
|
||||
break;
|
||||
case LegoGameState::e_motocycle:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
TransitionToOverlay(IsleScript::c_MotoBikeDashboard_Bitmap, JukeboxScript::c_MusicTheme1, NULL, TRUE);
|
||||
|
||||
if (!m_act1state->m_unk0x01f) {
|
||||
if (!m_act1state->m_switchedToArea) {
|
||||
m_motocycle->ActivateSceneActions();
|
||||
}
|
||||
break;
|
||||
case LegoGameState::e_copter:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
TransitionToOverlay(IsleScript::c_HelicopterDashboard_Bitmap, JukeboxScript::c_MusicTheme1, NULL, TRUE);
|
||||
break;
|
||||
case LegoGameState::e_skateboard:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
TransitionToOverlay(IsleScript::c_SkatePizza_Bitmap, JukeboxScript::c_MusicTheme1, NULL, TRUE);
|
||||
|
||||
if (!m_act1state->m_unk0x01f) {
|
||||
if (!m_act1state->m_switchedToArea) {
|
||||
m_skateboard->ActivateSceneActions();
|
||||
}
|
||||
break;
|
||||
case LegoGameState::e_ambulance:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
m_act1state->m_state = Act1State::e_ambulance;
|
||||
TransitionToOverlay(IsleScript::c_AmbulanceFuelMeter, JukeboxScript::c_MusicTheme1, NULL, TRUE);
|
||||
|
||||
if (!m_act1state->m_unk0x01f) {
|
||||
if (!m_act1state->m_switchedToArea) {
|
||||
m_ambulance->ActivateSceneActions();
|
||||
}
|
||||
break;
|
||||
case LegoGameState::e_towtrack:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
m_act1state->m_state = Act1State::e_towtrack;
|
||||
TransitionToOverlay(IsleScript::c_TowFuelMeter, JukeboxScript::c_MusicTheme1, NULL, TRUE);
|
||||
|
||||
if (!m_act1state->m_unk0x01f) {
|
||||
if (!m_act1state->m_switchedToArea) {
|
||||
m_towtrack->ActivateSceneActions();
|
||||
}
|
||||
break;
|
||||
case LegoGameState::e_jetski:
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
TransitionToOverlay(
|
||||
(IsleScript::Script) m_jetski->GetJetskiDashboardStreamId(),
|
||||
JukeboxScript::c_MusicTheme1,
|
||||
@@ -1058,7 +1058,7 @@ MxLong Isle::HandleTransitionEnd()
|
||||
TRUE
|
||||
);
|
||||
|
||||
if (!m_act1state->m_unk0x01f) {
|
||||
if (!m_act1state->m_switchedToArea) {
|
||||
m_jetski->ActivateSceneActions();
|
||||
}
|
||||
break;
|
||||
@@ -1078,7 +1078,7 @@ void Isle::TransitionToOverlay(
|
||||
MxBool p_setCamera
|
||||
)
|
||||
{
|
||||
if (m_act1state->m_unk0x01f) {
|
||||
if (m_act1state->m_switchedToArea) {
|
||||
MxPresenter* presenter = (MxPresenter*) Find(m_atomId, p_script);
|
||||
|
||||
if (presenter != NULL && presenter->GetCurrentTickleState() == MxPresenter::e_repeating) {
|
||||
@@ -1100,7 +1100,7 @@ void Isle::TransitionToOverlay(
|
||||
Disable(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
||||
SetAppCursor(e_cursorArrow);
|
||||
m_destLocation = LegoGameState::e_undefined;
|
||||
m_act1state->m_unk0x01f = FALSE;
|
||||
m_act1state->m_switchedToArea = FALSE;
|
||||
}
|
||||
else {
|
||||
NotificationManager()->Send(this, MxNotificationParam(c_notificationTransitioned, NULL));
|
||||
@@ -1110,7 +1110,7 @@ void Isle::TransitionToOverlay(
|
||||
GameState()->SwitchArea(m_destLocation);
|
||||
GameState()->StopArea(LegoGameState::e_previousArea);
|
||||
NotificationManager()->Send(this, MxNotificationParam(c_notificationTransitioned, NULL));
|
||||
m_act1state->m_unk0x01f = TRUE;
|
||||
m_act1state->m_switchedToArea = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1229,9 +1229,9 @@ MxBool Isle::Escape()
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_act1state->m_unk0x01e == TRUE) {
|
||||
if (m_act1state->m_playingFloor2Animation == TRUE) {
|
||||
InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_Floor2, NULL);
|
||||
m_act1state->m_unk0x01e = FALSE;
|
||||
m_act1state->m_playingFloor2Animation = FALSE;
|
||||
}
|
||||
|
||||
m_act1state->m_elevFloor = Act1State::c_floor1;
|
||||
@@ -1309,18 +1309,18 @@ Act1State::Act1State()
|
||||
{
|
||||
m_elevFloor = Act1State::c_floor1;
|
||||
m_state = Act1State::e_initial;
|
||||
m_unk0x01e = FALSE;
|
||||
m_playingFloor2Animation = FALSE;
|
||||
m_cptClickDialogue = Playlist((MxU32*) g_cptClickDialogue, sizeOfArray(g_cptClickDialogue), Playlist::e_loop);
|
||||
m_unk0x01f = FALSE;
|
||||
m_switchedToArea = FALSE;
|
||||
m_planeActive = FALSE;
|
||||
m_currentCptClickDialogue = IsleScript::c_noneIsle;
|
||||
m_unk0x022 = FALSE;
|
||||
m_playedExitExplanation = FALSE;
|
||||
m_helicopterWindshield = NULL;
|
||||
m_helicopterJetLeft = NULL;
|
||||
m_helicopterJetRight = NULL;
|
||||
m_helicopter = NULL;
|
||||
m_jetskiFront = NULL;
|
||||
m_unk0x021 = 1;
|
||||
m_spawnInInfocenter = 1;
|
||||
m_jetskiWindshield = NULL;
|
||||
m_jetski = NULL;
|
||||
m_dunebuggyFront = NULL;
|
||||
@@ -1419,7 +1419,7 @@ MxResult Act1State::Serialize(LegoStorage* p_storage)
|
||||
}
|
||||
|
||||
p_storage->WriteS16(m_cptClickDialogue.m_nextIndex);
|
||||
p_storage->WriteU8(m_unk0x022);
|
||||
p_storage->WriteU8(m_playedExitExplanation);
|
||||
}
|
||||
else if (p_storage->IsReadMode()) {
|
||||
if (strcmp(m_helicopterPlane.m_name.GetData(), "")) {
|
||||
@@ -1467,7 +1467,7 @@ MxResult Act1State::Serialize(LegoStorage* p_storage)
|
||||
}
|
||||
|
||||
p_storage->ReadS16(m_cptClickDialogue.m_nextIndex);
|
||||
p_storage->ReadU8(m_unk0x022);
|
||||
p_storage->ReadU8(m_playedExitExplanation);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
@@ -1500,7 +1500,7 @@ MxBool Act1State::Reset()
|
||||
m_motocyclePlane.m_name = "";
|
||||
m_bikePlane.m_name = "";
|
||||
m_skateboardPlane.m_name = "";
|
||||
m_unk0x022 = FALSE;
|
||||
m_playedExitExplanation = FALSE;
|
||||
|
||||
m_helicopterPlane.m_name = "";
|
||||
if (m_helicopterWindshield) {
|
||||
|
Reference in New Issue
Block a user