BOOL Players_Load(HWND dialog) { CheckRadioButton(dialog, IDC_PS_SP1, IDC_PS_SG, IDC_PS_SP1 + propdata.pindex); LoadPlayers(dialog); LoadActive(dialog); LoadMaxTeams(dialog); LoadDiplomacy(dialog); return TRUE; }
void Players_HandleCommand(HWND dialog, WORD code, WORD id, HWND control) { Player *p = propdata.p; switch (code) { case BN_CLICKED: case CBN_SELCHANGE: switch (id) { case IDC_P_NUM_PLAYERS: { int h; if ((h = SendDlgItemMessage(dialog, IDC_P_NUM_PLAYERS, CB_GETCURSEL, 0, 0)) != LB_ERR) { scen.set_number_active_players(h); LoadPlayers(dialog); LoadActive(dialog); LoadMaxTeams(dialog); } } break; case IDC_P_TEAM1: case IDC_P_TEAM2: case IDC_P_TEAM3: case IDC_P_TEAM4: case IDC_P_TEAM5: case IDC_P_TEAM6: case IDC_P_TEAM7: case IDC_P_TEAM8: case IDC_P_TEAM9: break; case ID_TS_EDIT_COPY: SendMessage(GetFocus(), WM_COPY, 0, 0); break; case ID_TS_EDIT_CUT: SendMessage(GetFocus(), WM_CUT, 0, 0); break; case ID_TS_EDIT_PASTE: SendMessage(GetFocus(), WM_PASTE, 0, 0); break; } break; case EN_SETFOCUS: EnableMenuItem(propdata.menu, ID_TS_EDIT_COPY, MF_ENABLED); EnableMenuItem(propdata.menu, ID_TS_EDIT_CUT, MF_ENABLED); if (IsClipboardFormatAvailable(CF_TEXT)) EnableMenuItem(propdata.menu, ID_TS_EDIT_PASTE, MF_ENABLED); break; case EN_KILLFOCUS: EnableMenuItem(propdata.menu, ID_TS_EDIT_COPY, MF_GRAYED); EnableMenuItem(propdata.menu, ID_TS_EDIT_CUT, MF_GRAYED); EnableMenuItem(propdata.menu, ID_TS_EDIT_PASTE, MF_GRAYED); break; } }
// TODO: RemapSkirmishAIs() bool CGameSetup::Init(const std::string& buf) { ResetState(); // Copy buffer contents setupText = buf; // Parse game parameters TdfParser file(buf.c_str(),buf.size()); if (!file.SectionExist("GAME")) return false; // Used by dedicated server only file.GetTDef(mapHash, unsigned(0), "GAME\\MapHash"); file.GetTDef(modHash, unsigned(0), "GAME\\ModHash"); file.GetTDef(mapSeed, unsigned(0), "GAME\\MapSeed"); gameID = file.SGetValueDef("", "GAME\\GameID"); modName = file.SGetValueDef("", "GAME\\Gametype"); mapName = file.SGetValueDef("", "GAME\\MapName"); saveName = file.SGetValueDef("", "GAME\\Savefile"); demoName = file.SGetValueDef("", "GAME\\Demofile"); hostDemo = !demoName.empty(); file.GetTDef(gameStartDelay, (unsigned int) 4, "GAME\\GameStartDelay"); file.GetDef(recordDemo, "1", "GAME\\RecordDemo"); file.GetDef(onlyLocal, "0", "GAME\\OnlyLocal"); file.GetDef(useLuaGaia, "1", "GAME\\ModOptions\\LuaGaia"); file.GetDef(noHelperAIs, "0", "GAME\\ModOptions\\NoHelperAIs"); file.GetDef(maxUnitsPerTeam, "32000", "GAME\\ModOptions\\MaxUnits"); file.GetDef(disableMapDamage, "0", "GAME\\ModOptions\\DisableMapDamage"); file.GetDef(ghostedBuildings, "1", "GAME\\ModOptions\\GhostedBuildings"); file.GetDef(maxSpeed, "20.", "GAME\\ModOptions\\MaxSpeed"); file.GetDef(minSpeed, "0.3", "GAME\\ModOptions\\MinSpeed"); file.GetDef(fixedAllies, "1", "GAME\\ModOptions\\FixedAllies"); // Read the map & mod options if (file.SectionExist("GAME\\MapOptions")) { mapOptions = file.GetAllValues("GAME\\MapOptions"); } if (file.SectionExist("GAME\\ModOptions")) { modOptions = file.GetAllValues("GAME\\ModOptions"); } // Read startPosType (with clamping) int startPosTypeInt; file.GetDef(startPosTypeInt, "0", "GAME\\StartPosType"); if (startPosTypeInt < 0 || startPosTypeInt > StartPos_Last) startPosTypeInt = 0; startPosType = (StartPosType)startPosTypeInt; // Read subsections std::set<std::string> playersNameList; LoadPlayers(file, playersNameList); LoadSkirmishAIs(file, playersNameList); LoadTeams(file); LoadAllyTeams(file); // Relocate indices (for gap removing) RemapPlayers(); RemapTeams(); RemapAllyteams(); LoadMutators(file, mutatorsList); LoadUnitRestrictions(file); // Postprocessing modName = GetRapidName(modName); modName = archiveScanner->NameFromArchive(modName); return true; }