Implement issue #606

Add button to open SatCom in main menu
dev-time-step
Krzysztof Dermont 2016-02-10 17:04:26 +01:00
parent a611ef3d50
commit 12e3724319
6 changed files with 24 additions and 0 deletions

View File

@ -182,6 +182,7 @@ void InitializeEventTypeTexts()
EVENT_TYPE_TEXT[EVENT_INTERFACE_READ] = "EVENT_INTERFACE_READ"; EVENT_TYPE_TEXT[EVENT_INTERFACE_READ] = "EVENT_INTERFACE_READ";
EVENT_TYPE_TEXT[EVENT_INTERFACE_ABORT] = "EVENT_INTERFACE_ABORT"; EVENT_TYPE_TEXT[EVENT_INTERFACE_ABORT] = "EVENT_INTERFACE_ABORT";
EVENT_TYPE_TEXT[EVENT_INTERFACE_USER] = "EVENT_INTERFACE_USER"; EVENT_TYPE_TEXT[EVENT_INTERFACE_USER] = "EVENT_INTERFACE_USER";
EVENT_TYPE_TEXT[EVENT_INTERFACE_SATCOM] = "EVENT_INTERFACE_SATCOM";
EVENT_TYPE_TEXT[EVENT_INTERFACE_CHAP] = "EVENT_INTERFACE_CHAP"; EVENT_TYPE_TEXT[EVENT_INTERFACE_CHAP] = "EVENT_INTERFACE_CHAP";
EVENT_TYPE_TEXT[EVENT_INTERFACE_LIST] = "EVENT_INTERFACE_LIST"; EVENT_TYPE_TEXT[EVENT_INTERFACE_LIST] = "EVENT_INTERFACE_LIST";

View File

@ -210,6 +210,7 @@ enum EventType
EVENT_INTERFACE_READ = 411, EVENT_INTERFACE_READ = 411,
EVENT_INTERFACE_ABORT = 412, EVENT_INTERFACE_ABORT = 412,
EVENT_INTERFACE_USER = 413, EVENT_INTERFACE_USER = 413,
EVENT_INTERFACE_SATCOM = 414,
EVENT_INTERFACE_CHAP = 420, EVENT_INTERFACE_CHAP = 420,
EVENT_INTERFACE_LIST = 421, EVENT_INTERFACE_LIST = 421,

View File

@ -161,6 +161,7 @@ void InitializeRestext()
stringsEvent[EVENT_INTERFACE_FREE] = TR("Free game\\Free game without a specific goal"); stringsEvent[EVENT_INTERFACE_FREE] = TR("Free game\\Free game without a specific goal");
stringsEvent[EVENT_INTERFACE_CODE_BATTLES] = TR("Code battles\\Program your robot to be the best of them all!"); stringsEvent[EVENT_INTERFACE_CODE_BATTLES] = TR("Code battles\\Program your robot to be the best of them all!");
stringsEvent[EVENT_INTERFACE_USER] = TR("Custom levels\\Levels from mods created by the users"); stringsEvent[EVENT_INTERFACE_USER] = TR("Custom levels\\Levels from mods created by the users");
stringsEvent[EVENT_INTERFACE_SATCOM] = TR("SatCom");
stringsEvent[EVENT_INTERFACE_NAME] = TR("Change player\\Change player"); stringsEvent[EVENT_INTERFACE_NAME] = TR("Change player\\Change player");
stringsEvent[EVENT_INTERFACE_SETUP] = TR("Options\\Preferences"); stringsEvent[EVENT_INTERFACE_SETUP] = TR("Options\\Preferences");
stringsEvent[EVENT_INTERFACE_AGAIN] = TR("Restart\\Restart the mission from the beginning"); stringsEvent[EVENT_INTERFACE_AGAIN] = TR("Restart\\Restart the mission from the beginning");

View File

@ -351,6 +351,7 @@ std::string PhaseToString(Phase phase)
if (phase == PHASE_WIN) return "PHASE_WIN"; if (phase == PHASE_WIN) return "PHASE_WIN";
if (phase == PHASE_LOST) return "PHASE_LOST"; if (phase == PHASE_LOST) return "PHASE_LOST";
if (phase == PHASE_QUIT_SCREEN) return "PHASE_QUIT_SCREEN"; if (phase == PHASE_QUIT_SCREEN) return "PHASE_QUIT_SCREEN";
if (phase == PHASE_SATCOM) return "PHASE_SATCOM";
return "(unknown)"; return "(unknown)";
} }
@ -516,6 +517,12 @@ void CRobotMain::ChangePhase(Phase phase)
} }
m_ui->ChangePhase(m_phase); m_ui->ChangePhase(m_phase);
if (m_phase == PHASE_SATCOM)
{
m_interface->DeleteControl(EVENT_WINDOW5);
StartDisplayInfo(InjectLevelPathsForCurrentLevel("cbot.txt", "help/%lng%"), 0);
}
if (!resetWorld) return; if (!resetWorld) return;
dim.x = 32.0f/640.0f; dim.x = 32.0f/640.0f;
@ -778,6 +785,9 @@ bool CRobotMain::ProcessEvent(Event &event)
if (event.type == EVENT_OBJECT_INFOOK) if (event.type == EVENT_OBJECT_INFOOK)
StopDisplayInfo(); StopDisplayInfo();
if (m_displayInfo == nullptr && m_phase == PHASE_SATCOM)
ChangePhase(PHASE_MAIN_MENU);
return false; return false;
} }

View File

@ -72,6 +72,7 @@ enum Phase
PHASE_WIN, PHASE_WIN,
PHASE_LOST, PHASE_LOST,
PHASE_QUIT_SCREEN, PHASE_QUIT_SCREEN,
PHASE_SATCOM,
}; };
std::string PhaseToString(Phase phase); std::string PhaseToString(Phase phase);
bool IsInSimulationConfigPhase(Phase phase); bool IsInSimulationConfigPhase(Phase phase);

View File

@ -162,6 +162,12 @@ void CScreenMainMenu::CreateInterface()
pl->SetFontType(Gfx::FONT_COURIER); pl->SetFontType(Gfx::FONT_COURIER);
pl->SetFontSize(Gfx::FONT_SIZE_SMALL); pl->SetFontSize(Gfx::FONT_SIZE_SMALL);
// SatCom button
pos.x = ox+sx*4.4f;
pos.y = oy+sy*4.4f;
pb = pw->CreateButton(pos, dim, 128+60, EVENT_INTERFACE_SATCOM);
pb->SetState(STATE_SHADOW);
SetBackground("textures/interface/interface.png"); SetBackground("textures/interface/interface.png");
CreateVersionDisplay(); CreateVersionDisplay();
} }
@ -223,6 +229,10 @@ bool CScreenMainMenu::EventProcess(const Event &event)
m_main->ChangePhase(PHASE_PLAYER_SELECT); m_main->ChangePhase(PHASE_PLAYER_SELECT);
break; break;
case EVENT_INTERFACE_SATCOM:
m_main->ChangePhase(PHASE_SATCOM);
break;
default: default:
return true; return true;
} }