added level_assemble_mode for easier switching between levels ingame
parent
27843ac067
commit
69c6e1aaef
|
@ -604,6 +604,13 @@ int Model::DoSaveLevel (const char* filename) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Model::LoadLevelFromIndex (unsigned int level_index) {
|
||||||
|
if (level_index < mLevelList.size()) {
|
||||||
|
mCurrentLevelIndex = level_index;
|
||||||
|
DoLoadLevel(mLevelList[mCurrentLevelIndex].c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Model::ReloadLevel () {
|
void Model::ReloadLevel () {
|
||||||
Engine::LogDebug ("Reloading level %d", mCurrentLevelIndex + 1);
|
Engine::LogDebug ("Reloading level %d", mCurrentLevelIndex + 1);
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ class Model : public Engine::ModelBase {
|
||||||
/* Level loading etc. */
|
/* Level loading etc. */
|
||||||
int DoLoadLevel (const char* filename);
|
int DoLoadLevel (const char* filename);
|
||||||
int DoSaveLevel (const char* filename);
|
int DoSaveLevel (const char* filename);
|
||||||
|
void LoadLevelFromIndex (unsigned int level_index);
|
||||||
void ResetLevel ();
|
void ResetLevel ();
|
||||||
|
|
||||||
void ReloadLevel();
|
void ReloadLevel();
|
||||||
|
|
|
@ -31,6 +31,8 @@ using namespace std;
|
||||||
|
|
||||||
namespace asteroids {
|
namespace asteroids {
|
||||||
|
|
||||||
|
bool level_assemble_mode = true;
|
||||||
|
|
||||||
int View::OnInit (int argc, char* argv[]) {
|
int View::OnInit (int argc, char* argv[]) {
|
||||||
ViewBase::OnInit (argc, argv);
|
ViewBase::OnInit (argc, argv);
|
||||||
|
|
||||||
|
@ -542,6 +544,26 @@ void View::DrawUiGameRunning() {
|
||||||
// revert the font justification
|
// revert the font justification
|
||||||
SetFontJustification (Engine::FontJustificationLeft);
|
SetFontJustification (Engine::FontJustificationLeft);
|
||||||
|
|
||||||
|
if (level_assemble_mode) {
|
||||||
|
if (Engine::GUI::CheckKeyPress(SDLK_PAGEDOWN)) {
|
||||||
|
Engine::EventBasePtr level_complete_event (new Engine::EventBase());
|
||||||
|
level_complete_event->mEventType = EventLevelComplete;
|
||||||
|
QueueEvent (level_complete_event);
|
||||||
|
} else if (Engine::GUI::CheckKeyPress(SDLK_PAGEUP)) {
|
||||||
|
unsigned int current_level = GetModel()->GetCurrentLevelIndex();
|
||||||
|
|
||||||
|
if (current_level > 0) {
|
||||||
|
GetModel()->SetGameState(GameStatePaused);
|
||||||
|
GetModel()->LoadLevelFromIndex(current_level - 1);
|
||||||
|
PushViewState(ViewStateLevelIntro);
|
||||||
|
Engine::StartTimer ("LevelIntroLevelNumber", 0.4);
|
||||||
|
Engine::StartTimer ("LevelIntroLevelTitle", 0.6);
|
||||||
|
Engine::StartTimer ("LevelIntroLevelAuthor", 0.8);
|
||||||
|
Engine::StartTimer ("LevelIntroLevelStart", 1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Engine::GUI::CheckKeyPress(SDLK_ESCAPE)) {
|
if (Engine::GUI::CheckKeyPress(SDLK_ESCAPE)) {
|
||||||
PushViewState(ViewStatePaused);
|
PushViewState(ViewStatePaused);
|
||||||
GetModel()->SetGameState(GameStatePaused);
|
GetModel()->SetGameState(GameStatePaused);
|
||||||
|
|
Loading…
Reference in New Issue