Added code battle start button; fixed bug with starting code battle
parent
cf72693b25
commit
51330dde5e
2
data
2
data
|
@ -1 +1 @@
|
||||||
Subproject commit 305cad6f4361e612aed130ea59294240ddb9dcff
|
Subproject commit 256cbfc75da33250b331177b9d4e8d220e4fe17b
|
|
@ -129,16 +129,16 @@ enum EventType
|
||||||
EVENT_EDIT8 = 78,
|
EVENT_EDIT8 = 78,
|
||||||
EVENT_EDIT9 = 79,
|
EVENT_EDIT9 = 79,
|
||||||
|
|
||||||
EVENT_WINDOW0 = 80, // the bottom panel
|
EVENT_WINDOW0 = 80, //!< object interface (CObjectInterface + CAuto classes)
|
||||||
EVENT_WINDOW1 = 81, // map
|
EVENT_WINDOW1 = 81, //!< CMainMap
|
||||||
EVENT_WINDOW2 = 82, // CDisplayText
|
EVENT_WINDOW2 = 82, //!< CDisplayText
|
||||||
EVENT_WINDOW3 = 83, // CStudio
|
EVENT_WINDOW3 = 83, //!< CStudio
|
||||||
EVENT_WINDOW4 = 84, // DisplayInfo
|
EVENT_WINDOW4 = 84, //!< CDisplayInfo
|
||||||
EVENT_WINDOW5 = 85, // setup
|
EVENT_WINDOW5 = 85, //!< all menu windows
|
||||||
EVENT_WINDOW6 = 86,
|
EVENT_WINDOW6 = 86, //!< code battle interface
|
||||||
EVENT_WINDOW7 = 87,
|
EVENT_WINDOW7 = 87, //!< (unused)
|
||||||
EVENT_WINDOW8 = 88,
|
EVENT_WINDOW8 = 88, //!< (unused)
|
||||||
EVENT_WINDOW9 = 89, // dialogue
|
EVENT_WINDOW9 = 89, //!< CMainDialog and CStudio file selector
|
||||||
|
|
||||||
EVENT_LABEL0 = 90,
|
EVENT_LABEL0 = 90,
|
||||||
EVENT_LABEL1 = 91,
|
EVENT_LABEL1 = 91,
|
||||||
|
@ -531,6 +531,8 @@ enum EventType
|
||||||
|
|
||||||
EVENT_WRITE_SCENE_FINISHED = 2100, //!< indicates end of writing scene (writing screenshot image)
|
EVENT_WRITE_SCENE_FINISHED = 2100, //!< indicates end of writing scene (writing screenshot image)
|
||||||
|
|
||||||
|
EVENT_CODE_BATTLE_START = 2200, //!< button that starts the code battle
|
||||||
|
|
||||||
//! Maximum value of standard events
|
//! Maximum value of standard events
|
||||||
EVENT_STD_MAX,
|
EVENT_STD_MAX,
|
||||||
|
|
||||||
|
|
|
@ -678,6 +678,20 @@ bool CRobotMain::ProcessEvent(Event &event)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.type == EVENT_UPDINTERFACE)
|
||||||
|
{
|
||||||
|
if (m_missionType == MISSION_CODE_BATTLE && !m_codeBattleStarted)
|
||||||
|
{
|
||||||
|
CreateCodeBattleInterface();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.type == EVENT_CODE_BATTLE_START)
|
||||||
|
{
|
||||||
|
m_pause->DeactivatePause(m_userPause);
|
||||||
|
m_userPause = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
// Management of the console.
|
// Management of the console.
|
||||||
if (event.type == EVENT_KEY_DOWN &&
|
if (event.type == EVENT_KEY_DOWN &&
|
||||||
event.GetData<KeyEventData>()->key == KEY(BACKQUOTE)) // Pause ?
|
event.GetData<KeyEventData>()->key == KEY(BACKQUOTE)) // Pause ?
|
||||||
|
@ -2609,9 +2623,10 @@ bool CRobotMain::EventFrame(const Event &event)
|
||||||
m_codeBattleInit = true; // Will start on resume
|
m_codeBattleInit = true; // Will start on resume
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_codeBattleStarted && m_userPause != nullptr)
|
if (!m_codeBattleStarted && m_userPause == nullptr)
|
||||||
{
|
{
|
||||||
m_codeBattleStarted = true;
|
m_codeBattleStarted = true;
|
||||||
|
DestroyCodeBattleInterface();
|
||||||
m_eventQueue->AddEvent(Event(EVENT_UPDINTERFACE));
|
m_eventQueue->AddEvent(Event(EVENT_UPDINTERFACE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3730,6 +3745,10 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
|
||||||
m_eventQueue->AddEvent(Event(EVENT_QUIT));
|
m_eventQueue->AddEvent(Event(EVENT_QUIT));
|
||||||
|
|
||||||
m_ui->ShowLoadingScreen(false);
|
m_ui->ShowLoadingScreen(false);
|
||||||
|
if (m_missionType == MISSION_CODE_BATTLE)
|
||||||
|
{
|
||||||
|
CreateCodeBattleInterface();
|
||||||
|
}
|
||||||
CreateShortcuts();
|
CreateShortcuts();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5932,3 +5951,32 @@ void CRobotMain::StartDetectEffect(COldObject* object, CObject* target)
|
||||||
|
|
||||||
m_sound->Play(target != nullptr ? SOUND_BUILD : SOUND_RECOVER);
|
m_sound->Play(target != nullptr ? SOUND_BUILD : SOUND_RECOVER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CRobotMain::CreateCodeBattleInterface()
|
||||||
|
{
|
||||||
|
Math::Point pos, ddim;
|
||||||
|
|
||||||
|
ddim.x = 100.0f/640.0f;
|
||||||
|
ddim.y = 100.0f/480.0f;
|
||||||
|
pos.x = 540.0f/640.0f;
|
||||||
|
pos.y = 100.0f/480.0f;
|
||||||
|
Ui::CWindow* pw = m_interface->CreateWindows(pos, ddim, 3, EVENT_WINDOW6);
|
||||||
|
|
||||||
|
ddim.x = 100.0f/640.0f;
|
||||||
|
ddim.y = 16.0f/480.0f;
|
||||||
|
pos.x = 540.0f/640.0f;
|
||||||
|
pos.y = 178.0f/480.0f;
|
||||||
|
pw->CreateLabel(pos, ddim, 0, EVENT_LABEL0, "Code battle");
|
||||||
|
|
||||||
|
float titleBarSize = (11.0f/64.0f); // this is from the texture
|
||||||
|
ddim.x = 80.0f/640.0f;
|
||||||
|
ddim.y = ((1-titleBarSize)*100.0f-20.0f)/480.0f;
|
||||||
|
pos.x = 550.0f/640.0f;
|
||||||
|
pos.y = 110.0f/480.0f;
|
||||||
|
pw->CreateButton(pos, ddim, 21, EVENT_CODE_BATTLE_START);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CRobotMain::DestroyCodeBattleInterface()
|
||||||
|
{
|
||||||
|
m_interface->DeleteControl(EVENT_WINDOW6);
|
||||||
|
}
|
||||||
|
|
|
@ -416,6 +416,9 @@ protected:
|
||||||
void PushToSelectionHistory(CObject* obj);
|
void PushToSelectionHistory(CObject* obj);
|
||||||
CObject* PopFromSelectionHistory();
|
CObject* PopFromSelectionHistory();
|
||||||
|
|
||||||
|
void CreateCodeBattleInterface();
|
||||||
|
void DestroyCodeBattleInterface();
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CController* m_ctrl = nullptr;
|
CController* m_ctrl = nullptr;
|
||||||
|
|
|
@ -367,6 +367,9 @@ void CDisplayInfo::StartDisplayInfo(std::string filename, int index, bool bSoluc
|
||||||
m_infoCamera = m_camera->GetType();
|
m_infoCamera = m_camera->GetType();
|
||||||
m_camera->SetType(Gfx::CAM_TYPE_INFO);
|
m_camera->SetType(Gfx::CAM_TYPE_INFO);
|
||||||
|
|
||||||
|
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
||||||
|
if (pw != nullptr) pw->ClearState(STATE_VISIBLE);
|
||||||
|
|
||||||
pos = m_infoActualPos = m_infoFinalPos;
|
pos = m_infoActualPos = m_infoFinalPos;
|
||||||
dim = m_infoActualDim = m_infoFinalDim;
|
dim = m_infoActualDim = m_infoFinalDim;
|
||||||
pw = m_interface->CreateWindows(pos, dim, 4, EVENT_WINDOW4);
|
pw = m_interface->CreateWindows(pos, dim, 4, EVENT_WINDOW4);
|
||||||
|
@ -829,6 +832,9 @@ void CDisplayInfo::StopDisplayInfo()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_main->SetEditLock(false, false);
|
m_main->SetEditLock(false, false);
|
||||||
|
|
||||||
|
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
||||||
|
if (pw != nullptr) pw->SetState(STATE_VISIBLE);
|
||||||
}
|
}
|
||||||
m_pause->DeactivatePause(m_satcomPause);
|
m_pause->DeactivatePause(m_satcomPause);
|
||||||
m_satcomPause = nullptr;
|
m_satcomPause = nullptr;
|
||||||
|
|
|
@ -369,7 +369,7 @@ void CMainDialog::StartDialog(Math::Point dim, bool fireParticles)
|
||||||
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
||||||
|
|
||||||
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
||||||
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->ClearState(STATE_VISIBLE);
|
||||||
|
|
||||||
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW7));
|
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW7));
|
||||||
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
||||||
|
@ -524,7 +524,7 @@ void CMainDialog::StopDialog()
|
||||||
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
||||||
|
|
||||||
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW6));
|
||||||
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->SetState(STATE_VISIBLE);
|
||||||
|
|
||||||
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW7));
|
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW7));
|
||||||
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
||||||
|
|
|
@ -1104,7 +1104,7 @@ void CStudio::StartDialog(StudioDialog type)
|
||||||
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
||||||
|
|
||||||
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW6));
|
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW6));
|
||||||
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->ClearState(STATE_VISIBLE);
|
||||||
|
|
||||||
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW7));
|
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW7));
|
||||||
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->ClearState(STATE_ENABLE);
|
||||||
|
@ -1219,7 +1219,7 @@ void CStudio::StopDialog()
|
||||||
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
||||||
|
|
||||||
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW6));
|
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW6));
|
||||||
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->SetState(STATE_VISIBLE);
|
||||||
|
|
||||||
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW7));
|
pw = static_cast< CWindow* >(m_interface->SearchControl(EVENT_WINDOW7));
|
||||||
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
if ( pw != nullptr ) pw->SetState(STATE_ENABLE);
|
||||||
|
|
Loading…
Reference in New Issue