Skip to content

Commit 6cd3237

Browse files
committed
Hopeful fix for the player being able to input their way out of observe state
1 parent 063f0ac commit 6cd3237

File tree

1 file changed

+39
-44
lines changed

1 file changed

+39
-44
lines changed

Activities/GameActivity.cpp

Lines changed: 39 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1430,55 +1430,50 @@ void GameActivity::Update()
14301430
m_ControlledActor[player] = 0;
14311431
}
14321432

1433-
///////////////////////////////////////////
14341433
// Player-commanded actor switching
1434+
if (m_ViewState[player] != ViewState::Observe) {
1435+
// Switch to brain actor directly if the player wants to
1436+
if (m_PlayerController[player].IsState(ACTOR_BRAIN) && m_ViewState[player] != ViewState::ActorSelect) {
1437+
SwitchToActor(m_Brain[player], player, team);
1438+
m_ViewState[player] = ViewState::Normal;
1439+
} else if (m_PlayerController[player].IsState(ACTOR_NEXT) && m_ViewState[player] != ViewState::ActorSelect && !m_pBuyGUI[player]->IsVisible() && !m_LuaLockActor[player]) {
1440+
// Switch to next actor if the player wants to. Don't do it while the buy menu is open
1441+
if (m_ControlledActor[player] && m_ControlledActor[player]->GetPieMenu()) {
1442+
m_ControlledActor[player]->GetPieMenu()->SetEnabled(false);
1443+
}
14351444

1436-
// Switch to brain actor directly if the player wants to
1437-
if (m_PlayerController[player].IsState(ACTOR_BRAIN) && m_ViewState[player] != ViewState::ActorSelect)
1438-
{
1439-
SwitchToActor(m_Brain[player], player, team);
1440-
m_ViewState[player] = ViewState::Normal;
1441-
}
1442-
// Switch to next actor if the player wants to. Don't do it while the buy menu is open
1443-
else if (m_PlayerController[player].IsState(ACTOR_NEXT) && m_ViewState[player] != ViewState::ActorSelect && !m_pBuyGUI[player]->IsVisible() && !m_LuaLockActor[player])
1444-
{
1445-
if (m_ControlledActor[player] && m_ControlledActor[player]->GetPieMenu()) {
1446-
m_ControlledActor[player]->GetPieMenu()->SetEnabled(false);
1447-
}
1448-
SwitchToNextActor(player, team);
1449-
m_ViewState[player] = ViewState::Normal;
1450-
g_FrameMan.ClearScreenText(ScreenOfPlayer(player));
1451-
}
1452-
// Switch to prev actor if the player wants to. Don't do it while the buy menu is open
1453-
else if (m_PlayerController[player].IsState(ACTOR_PREV) && m_ViewState[player] != ViewState::ActorSelect && !m_pBuyGUI[player]->IsVisible())
1454-
{
1455-
if (m_ControlledActor[player] && m_ControlledActor[player]->GetPieMenu()) {
1456-
m_ControlledActor[player]->GetPieMenu()->SetEnabled(false);
1457-
}
1458-
SwitchToPrevActor(player, team);
1459-
m_ViewState[player] = ViewState::Normal;
1460-
g_FrameMan.ClearScreenText(ScreenOfPlayer(player));
1461-
}
1462-
// Go into manual actor select mode if either actor switch buttons are held for a duration
1463-
else if (m_ViewState[player] != ViewState::ActorSelect && !m_pBuyGUI[player]->IsVisible() && !m_LuaLockActor[player] && (m_PlayerController[player].IsState(ACTOR_NEXT_PREP) || m_PlayerController[player].IsState(ACTOR_PREV_PREP)))
1464-
{
1465-
if (m_ActorSelectTimer[player].IsPastRealMS(250))
1466-
{
1467-
// Set cursor to start at the head of controlled actor
1468-
if (m_ControlledActor[player])
1469-
{
1470-
// Give switched from actor an AI controller
1471-
m_ControlledActor[player]->SetControllerMode(Controller::CIM_AI);
1472-
m_ControlledActor[player]->GetController()->SetDisabled(false);
1473-
m_ActorCursor[player] = m_ControlledActor[player]->GetCPUPos();
1474-
m_CursorTimer.Reset();
1445+
SwitchToNextActor(player, team);
1446+
m_ViewState[player] = ViewState::Normal;
1447+
g_FrameMan.ClearScreenText(ScreenOfPlayer(player));
1448+
}
1449+
// Switch to prev actor if the player wants to. Don't do it while the buy menu is open
1450+
else if (m_PlayerController[player].IsState(ACTOR_PREV) && m_ViewState[player] != ViewState::ActorSelect && !m_pBuyGUI[player]->IsVisible()) {
1451+
if (m_ControlledActor[player] && m_ControlledActor[player]->GetPieMenu()) {
1452+
m_ControlledActor[player]->GetPieMenu()->SetEnabled(false);
14751453
}
1476-
m_ViewState[player] = ViewState::ActorSelect;
1454+
1455+
SwitchToPrevActor(player, team);
1456+
m_ViewState[player] = ViewState::Normal;
14771457
g_FrameMan.ClearScreenText(ScreenOfPlayer(player));
1478-
}
1458+
} else if (m_ViewState[player] != ViewState::ActorSelect && !m_pBuyGUI[player]->IsVisible() && !m_LuaLockActor[player] && (m_PlayerController[player].IsState(ACTOR_NEXT_PREP) || m_PlayerController[player].IsState(ACTOR_PREV_PREP))) {
1459+
// Go into manual actor select mode if either actor switch buttons are held for a duration
1460+
if (m_ActorSelectTimer[player].IsPastRealMS(250)) {
1461+
// Set cursor to start at the head of controlled actor
1462+
if (m_ControlledActor[player]) {
1463+
// Give switched from actor an AI controller
1464+
m_ControlledActor[player]->SetControllerMode(Controller::CIM_AI);
1465+
m_ControlledActor[player]->GetController()->SetDisabled(false);
1466+
m_ActorCursor[player] = m_ControlledActor[player]->GetCPUPos();
1467+
m_CursorTimer.Reset();
1468+
}
1469+
1470+
m_ViewState[player] = ViewState::ActorSelect;
1471+
g_FrameMan.ClearScreenText(ScreenOfPlayer(player));
1472+
}
1473+
} else {
1474+
m_ActorSelectTimer[player].Reset();
1475+
}
14791476
}
1480-
else
1481-
m_ActorSelectTimer[player].Reset();
14821477

14831478
////////////////////////////////////
14841479
// Update sceneman scroll targets

0 commit comments

Comments
 (0)