void MsnEditNavDlg::ScrapeForm() { if (mission) { if (txt_name) { mission->SetName(txt_name->GetText()); } if (cmb_type) { mission->SetType(cmb_type->GetSelectedIndex()); if (mission_info) mission_info->type = cmb_type->GetSelectedIndex(); } Galaxy* galaxy = Galaxy::GetInstance(); StarSystem* system = 0; if (galaxy) system = galaxy->GetSystem(cmb_system->GetSelectedItem()); if (cmb_system && system) { mission->ClearSystemList(); mission->SetStarSystem(system); if (mission_info) mission_info->system = system->Name(); } if (cmb_region) { mission->SetRegion(cmb_region->GetSelectedItem()); if (mission_info) mission_info->region = cmb_region->GetSelectedItem(); } SetSystem(system); } }
void MsnEditNavDlg::OnSystemSelect(AWEvent* event) { StarSystem* sys = 0; if (cmb_system) { const char* name = cmb_system->GetSelectedItem(); Galaxy* galaxy = Galaxy::GetInstance(); ListIter<StarSystem> iter = galaxy->GetSystemList(); while (++iter) { StarSystem* s = iter.value(); if (!strcmp(s->Name(), name)) { sys = s; break; } } } if (sys && cmb_region) { cmb_region->ClearItems(); List<OrbitalRegion> regions; regions.append(sys->AllRegions()); regions.sort(); ListIter<OrbitalRegion> iter = regions; while (++iter) { OrbitalRegion* region = iter.value(); cmb_region->AddItem(region->Name()); } } ScrapeForm(); }
void MsnEditNavDlg::Show() { bool need_tab_update = !shown; NavDlg::Show(); if (txt_name && cmb_type) { txt_name->SetText(""); if (cmb_system) { cmb_system->ClearItems(); Galaxy* galaxy = Galaxy::GetInstance(); ListIter<StarSystem> iter = galaxy->GetSystemList(); while (++iter) { cmb_system->AddItem(iter->Name()); } } if (mission) { int i; txt_name->SetText(mission->Name()); cmb_type->SetSelection(mission->Type()); StarSystem* sys = mission->GetStarSystem(); if (sys && cmb_system && cmb_region) { for (i = 0; i < cmb_system->NumItems(); i++) { if (!strcmp(cmb_system->GetItem(i), sys->Name())) { cmb_system->SetSelection(i); break; } } cmb_region->ClearItems(); int sel_rgn = 0; List<OrbitalRegion> regions; regions.append(sys->AllRegions()); regions.sort(); i = 0; ListIter<OrbitalRegion> iter = regions; while (++iter) { OrbitalRegion* region = iter.value(); cmb_region->AddItem(region->Name()); if (!strcmp(mission->GetRegion(), region->Name())) { sel_rgn = i; } i++; } cmb_region->SetSelection(sel_rgn); } } } if (need_tab_update) { ShowTab(2); } exit_latch = true; }
void DebriefDlg::Show() { FormWindow::Show(); Game::SetTimeCompression(1); mission = 0; campaign = Campaign::GetCampaign(); sim = Sim::GetSim(); if (sim) ship = sim->GetPlayerShip(); if (campaign) mission = campaign->GetMission(); if (mission_name) { if (mission) mission_name->SetText(mission->Name()); else mission_name->SetText(Game::GetText("DebriefDlg.mission-name")); } if (mission_system) { mission_system->SetText(""); if (mission) { StarSystem* sys = mission->GetStarSystem(); if (sys) mission_system->SetText(sys->Name()); } } if (mission_sector) { mission_sector->SetText(""); if (mission) { MissionElement* elem = mission->GetElements()[0]; if (elem) mission_sector->SetText(elem->Region()); } } if (mission_time_start) { if (mission) { char txt[32]; FormatDayTime(txt, mission->Start()); mission_time_start->SetText(txt); } } if (objectives) { bool found_objectives = false; if (sim && sim->GetPlayerElement()) { Text text; Element* elem = sim->GetPlayerElement(); for (int i = 0; i < elem->NumObjectives(); i++) { Instruction* obj = elem->GetObjective(i); text += Text("* ") + obj->GetDescription() + Text("\n"); found_objectives = true; } objectives->SetText(text); } if (!found_objectives) { if (mission) objectives->SetText(mission->Objective()); else objectives->SetText(Game::GetText("DebriefDlg.unspecified")); } } if (situation) { if (mission) situation->SetText(mission->Situation()); else situation->SetText(Game::GetText("DebriefDlg.unknown")); } if (mission_score) { mission_score->SetText(Game::GetText("DebriefDlg.no-stats")); if (ship) { for (int i = 0; i < ShipStats::NumStats(); i++) { ShipStats* stats = ShipStats::GetStats(i); if (stats && !strcmp(ship->Name(), stats->GetName())) { stats->Summarize(); Player* player = Player::GetCurrentPlayer(); int points = stats->GetPoints() + stats->GetCommandPoints(); if (player && sim) points = player->GetMissionPoints(stats, sim->StartTime()) + stats->GetCommandPoints(); char score[32]; sprintf_s(score, "%d %s", points, Game::GetText("DebriefDlg.points").data()); mission_score->SetText(score); break; } } } } DrawUnits(); }