void StarServer::InstantiateMission() { Memory::Check(); current_mission = 0; if (Campaign::GetCampaign()) { current_mission = Campaign::GetCampaign()->GetMission(); } Sim* sim = (Sim*) world; if (sim) { sim->UnloadMission(); if (current_mission) { sim->LoadMission(current_mission); sim->ExecMission(); sim->SetTestMode(false); Print(" Mission Instantiated.\n"); } else { Print(" *** WARNING: StarServer::InstantiateMission() - no mission selected ***\n"); } } Memory::Check(); }
void StarServer::SetGameMode(int m) { if (game_mode == m) return; if (m == LOAD_MODE) { Print(" game_mode = LOAD_MODE\n"); paused = true; } else if (m == PLAY_MODE) { Print(" game_mode = PLAY_MODE\n"); if (!world) { CreateWorld(); InstantiateMission(); } // stand alone server should wait for players to connect // before unpausing the simulation... SetTimeCompression(1); Pause(true); } else if (m == MENU_MODE) { Print(" game_mode = MENU_MODE\n"); paused = true; Sim* sim = (Sim*) world; if (sim) sim->UnloadMission(); } game_mode = m; }
void DebriefDlg::OnClose(AWEvent* event) { Sim* sim = Sim::GetSim(); sim->CommitMission(); sim->UnloadMission(); NetLobby* lobby = NetLobby::GetInstance(); if (lobby && lobby->IsHost()) { lobby->SelectMission(0); lobby->ExecFrame(); } Player* player = Player::GetCurrentPlayer(); if (player && player->ShowAward()) { manager->ShowAwardDlg(); } else { Starshatter* stars = Starshatter::GetInstance(); if (stars) { Mouse::Show(false); Campaign* campaign = Campaign::GetCampaign(); if (campaign && campaign->GetCampaignId() < Campaign::SINGLE_MISSIONS) stars->SetGameMode(Starshatter::CMPN_MODE); else stars->SetGameMode(Starshatter::MENU_MODE); } else { Game::Panic("DebriefDlg::OnClose() - Game instance not found"); } } }