multiplier for CPUs replacing disconnected network player ( not finished yet! , only menu for now )

This commit is contained in:
Titus Tscharntke 2012-09-16 23:42:56 +00:00
parent 78643ddcfc
commit 158195a825
8 changed files with 86 additions and 11 deletions

View File

@ -59,13 +59,14 @@ private:
ControlType factionControls[GameConstants::maxPlayers]; ControlType factionControls[GameConstants::maxPlayers];
int resourceMultiplierIndex[GameConstants::maxPlayers]; int resourceMultiplierIndex[GameConstants::maxPlayers];
int thisFactionIndex; int thisFactionIndex;
int factionCount; int factionCount;
int teams[GameConstants::maxPlayers]; int teams[GameConstants::maxPlayers];
int startLocationIndex[GameConstants::maxPlayers]; int startLocationIndex[GameConstants::maxPlayers];
int mapFilterIndex; int mapFilterIndex;
int fallbackCpuMultiplier;
bool defaultUnits; bool defaultUnits;
bool defaultResources; bool defaultResources;
bool defaultVictoryConditions; bool defaultVictoryConditions;
@ -131,6 +132,7 @@ public:
aiAcceptSwitchTeamPercentChance = 30; aiAcceptSwitchTeamPercentChance = 30;
masterserver_admin = -1; masterserver_admin = -1;
masterserver_admin_factionIndex = -1; masterserver_admin_factionIndex = -1;
fallbackCpuMultiplier = 1.0f;
} }
// default copy constructor will do fine, and will maintain itself ;) // default copy constructor will do fine, and will maintain itself ;)
@ -264,6 +266,9 @@ public:
int getAiAcceptSwitchTeamPercentChance() const { return aiAcceptSwitchTeamPercentChance;} int getAiAcceptSwitchTeamPercentChance() const { return aiAcceptSwitchTeamPercentChance;}
void setAiAcceptSwitchTeamPercentChance(int value) { aiAcceptSwitchTeamPercentChance = value; } void setAiAcceptSwitchTeamPercentChance(int value) { aiAcceptSwitchTeamPercentChance = value; }
int getFallbackCpuMultiplier() const { return fallbackCpuMultiplier;}
void setFallbackCpuMultiplier(int value) { fallbackCpuMultiplier = value; }
int getMasterserver_admin() const { return masterserver_admin;} int getMasterserver_admin() const { return masterserver_admin;}
void setMasterserver_admin(int value) { masterserver_admin = value; } void setMasterserver_admin(int value) { masterserver_admin = value; }

View File

@ -836,6 +836,7 @@ void CoreData::saveGameSettingsToFile(std::string fileName, GameSettings *gameSe
saveGameFile << "FlagTypes1=" << gameSettings->getFlagTypes1() << std::endl; saveGameFile << "FlagTypes1=" << gameSettings->getFlagTypes1() << std::endl;
saveGameFile << "EnableObserverModeAtEndGame=" << gameSettings->getEnableObserverModeAtEndGame() << std::endl; saveGameFile << "EnableObserverModeAtEndGame=" << gameSettings->getEnableObserverModeAtEndGame() << std::endl;
saveGameFile << "AiAcceptSwitchTeamPercentChance=" << gameSettings->getAiAcceptSwitchTeamPercentChance() << std::endl; saveGameFile << "AiAcceptSwitchTeamPercentChance=" << gameSettings->getAiAcceptSwitchTeamPercentChance() << std::endl;
saveGameFile << "FallbackCpuMultiplier=" << gameSettings->getFallbackCpuMultiplier() << std::endl;
saveGameFile << "PathFinderType=" << gameSettings->getPathFinderType() << std::endl; saveGameFile << "PathFinderType=" << gameSettings->getPathFinderType() << std::endl;
saveGameFile << "EnableServerControlledAI=" << gameSettings->getEnableServerControlledAI() << std::endl; saveGameFile << "EnableServerControlledAI=" << gameSettings->getEnableServerControlledAI() << std::endl;
saveGameFile << "NetworkFramePeriod=" << gameSettings->getNetworkFramePeriod() << std::endl; saveGameFile << "NetworkFramePeriod=" << gameSettings->getNetworkFramePeriod() << std::endl;
@ -904,6 +905,7 @@ bool CoreData::loadGameSettingsFromFile(std::string fileName, GameSettings *game
gameSettings->setFlagTypes1(properties.getInt("FlagTypes1","0")); gameSettings->setFlagTypes1(properties.getInt("FlagTypes1","0"));
gameSettings->setEnableObserverModeAtEndGame(properties.getBool("EnableObserverModeAtEndGame")); gameSettings->setEnableObserverModeAtEndGame(properties.getBool("EnableObserverModeAtEndGame"));
gameSettings->setAiAcceptSwitchTeamPercentChance(properties.getInt("AiAcceptSwitchTeamPercentChance","30")); gameSettings->setAiAcceptSwitchTeamPercentChance(properties.getInt("AiAcceptSwitchTeamPercentChance","30"));
gameSettings->setFallbackCpuMultiplier(properties.getInt("FallbackCpuMultiplier","1"));
gameSettings->setPathFinderType(static_cast<PathFinderType>(properties.getInt("PathFinderType",intToStr(pfBasic).c_str()))); gameSettings->setPathFinderType(static_cast<PathFinderType>(properties.getInt("PathFinderType",intToStr(pfBasic).c_str())));
gameSettings->setEnableServerControlledAI(properties.getBool("EnableServerControlledAI","true")); gameSettings->setEnableServerControlledAI(properties.getBool("EnableServerControlledAI","true"));

View File

@ -188,6 +188,20 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM
listBoxAllowObservers.setSelectedItemIndex(0); listBoxAllowObservers.setSelectedItemIndex(0);
listBoxAllowObservers.setEditable(false); listBoxAllowObservers.setEditable(false);
for(int i=0; i<45; ++i){
rMultiplier.push_back(floatToStr(0.5f+0.1f*i,1));
}
labelFallbackCpuMultiplier.registerGraphicComponent(containerName,"labelFallbackCpuMultiplier");
labelFallbackCpuMultiplier.init(xoffset+460, aHeadPos, 80);
labelFallbackCpuMultiplier.setText(lang.get("FallbackCpuMultiplier"));
listBoxFallbackCpuMultiplier.registerGraphicComponent(containerName,"listBoxFallbackCpuMultiplier");
listBoxFallbackCpuMultiplier.init(xoffset+460, aPos, 80);
listBoxFallbackCpuMultiplier.setItems(rMultiplier);
listBoxFallbackCpuMultiplier.setSelectedItemIndex(0);
// Allow Switch Team Mode // Allow Switch Team Mode
labelEnableSwitchTeamMode.registerGraphicComponent(containerName,"labelEnableSwitchTeamMode"); labelEnableSwitchTeamMode.registerGraphicComponent(containerName,"labelEnableSwitchTeamMode");
labelEnableSwitchTeamMode.init(xoffset+310, aHeadPos+45, 80); labelEnableSwitchTeamMode.init(xoffset+310, aHeadPos+45, 80);
@ -349,9 +363,6 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM
controlItems.push_back(lang.get("NetworkUnassigned")); controlItems.push_back(lang.get("NetworkUnassigned"));
controlItems.push_back(lang.get("Human")); controlItems.push_back(lang.get("Human"));
for(int i=0; i<45; ++i){
rMultiplier.push_back(floatToStr(0.5f+0.1f*i,1));
}
if(config.getBool("EnableNetworkCpu","false") == true) { if(config.getBool("EnableNetworkCpu","false") == true) {
controlItems.push_back(lang.get("NetworkCpuEasy")); controlItems.push_back(lang.get("NetworkCpuEasy"));
@ -555,6 +566,7 @@ void MenuStateConnectedGame::reloadUI() {
listBoxFogOfWar.setItems(fowItems); listBoxFogOfWar.setItems(fowItems);
labelAllowObservers.setText(lang.get("AllowObservers")); labelAllowObservers.setText(lang.get("AllowObservers"));
labelFallbackCpuMultiplier.setText(lang.get("FallbackCpuMultiplier"));
vector<string> observerItems; vector<string> observerItems;
observerItems.push_back(lang.get("No")); observerItems.push_back(lang.get("No"));
@ -576,6 +588,12 @@ void MenuStateConnectedGame::reloadUI() {
} }
listBoxAISwitchTeamAcceptPercent.setItems(aiswitchteamModeItems); listBoxAISwitchTeamAcceptPercent.setItems(aiswitchteamModeItems);
vector<string> rMultiplier;
for(int i=0; i<45; ++i){
rMultiplier.push_back(floatToStr(0.5f+0.1f*i,1));
}
listBoxFallbackCpuMultiplier.setItems(rMultiplier);
labelPathFinderType.setText(lang.get("PathFinderType")); labelPathFinderType.setText(lang.get("PathFinderType"));
vector<string> pathfinderItems; vector<string> pathfinderItems;
@ -1161,6 +1179,11 @@ void MenuStateConnectedGame::mouseClickAdmin(int x, int y, MouseButton mouseButt
needToBroadcastServerSettings=true; needToBroadcastServerSettings=true;
broadcastServerSettingsDelayTimer=time(NULL); broadcastServerSettingsDelayTimer=time(NULL);
} }
else if(listBoxFallbackCpuMultiplier.getEnabled() && listBoxFallbackCpuMultiplier.mouseClick(x, y)) {
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
needToBroadcastServerSettings=true;
broadcastServerSettingsDelayTimer=time(NULL);
}
else if(listBoxTileset.mouseClick(x, y)) { else if(listBoxTileset.mouseClick(x, y)) {
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__); if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
needToBroadcastServerSettings=true; needToBroadcastServerSettings=true;
@ -1470,6 +1493,7 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) {
gameSettings->setFlagTypes1(valueFlags1); gameSettings->setFlagTypes1(valueFlags1);
} }
gameSettings->setAiAcceptSwitchTeamPercentChance(strToInt(listBoxAISwitchTeamAcceptPercent.getSelectedItem())); gameSettings->setAiAcceptSwitchTeamPercentChance(strToInt(listBoxAISwitchTeamAcceptPercent.getSelectedItem()));
gameSettings->setFallbackCpuMultiplier(listBoxFallbackCpuMultiplier.getSelectedItemIndex());
// First save Used slots // First save Used slots
//for(int i=0; i<mapInfo.players; ++i) //for(int i=0; i<mapInfo.players; ++i)
@ -1844,6 +1868,7 @@ void MenuStateConnectedGame::render() {
renderer.renderLabel(&labelMap); renderer.renderLabel(&labelMap);
renderer.renderLabel(&labelFogOfWar); renderer.renderLabel(&labelFogOfWar);
renderer.renderLabel(&labelAllowObservers); renderer.renderLabel(&labelAllowObservers);
renderer.renderLabel(&labelFallbackCpuMultiplier);
renderer.renderLabel(&labelTileset); renderer.renderLabel(&labelTileset);
renderer.renderLabel(&labelTechTree); renderer.renderLabel(&labelTechTree);
renderer.renderLabel(&labelControl); renderer.renderLabel(&labelControl);
@ -1869,6 +1894,7 @@ void MenuStateConnectedGame::render() {
renderer.renderListBox(&listBoxEnableSwitchTeamMode); renderer.renderListBox(&listBoxEnableSwitchTeamMode);
renderer.renderListBox(&listBoxAISwitchTeamAcceptPercent); renderer.renderListBox(&listBoxAISwitchTeamAcceptPercent);
renderer.renderListBox(&listBoxFallbackCpuMultiplier);
renderer.renderButton(&buttonPlayNow); renderer.renderButton(&buttonPlayNow);
renderer.renderButton(&buttonRestoreLastSettings); renderer.renderButton(&buttonRestoreLastSettings);
@ -1972,6 +1998,7 @@ void MenuStateConnectedGame::update() {
listBoxTileset.setEditable(isHeadlessAdmin()); listBoxTileset.setEditable(isHeadlessAdmin());
listBoxEnableSwitchTeamMode.setEditable(isHeadlessAdmin()); listBoxEnableSwitchTeamMode.setEditable(isHeadlessAdmin());
listBoxAISwitchTeamAcceptPercent.setEditable(isHeadlessAdmin()); listBoxAISwitchTeamAcceptPercent.setEditable(isHeadlessAdmin());
listBoxFallbackCpuMultiplier.setEditable(isHeadlessAdmin());
listBoxFogOfWar.setEditable(isHeadlessAdmin()); listBoxFogOfWar.setEditable(isHeadlessAdmin());
//listBoxEnableObserverMode.setEditable(isMasterserverAdmin()); //listBoxEnableObserverMode.setEditable(isMasterserverAdmin());
listBoxAllowObservers.setEditable(isHeadlessAdmin()); listBoxAllowObservers.setEditable(isHeadlessAdmin());
@ -3595,6 +3622,7 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
listBoxEnableSwitchTeamMode.setSelectedItemIndex(1); listBoxEnableSwitchTeamMode.setSelectedItemIndex(1);
} }
listBoxAISwitchTeamAcceptPercent.setSelectedItem(intToStr(gameSettings->getAiAcceptSwitchTeamPercentChance())); listBoxAISwitchTeamAcceptPercent.setSelectedItem(intToStr(gameSettings->getAiAcceptSwitchTeamPercentChance()));
listBoxFallbackCpuMultiplier.setSelectedItemIndex(gameSettings->getFallbackCpuMultiplier());
// if(gameSettings->getEnableObserverModeAtEndGame()) { // if(gameSettings->getEnableObserverModeAtEndGame()) {
// listBoxEnableObserverMode.setSelectedItemIndex(0); // listBoxEnableObserverMode.setSelectedItemIndex(0);

View File

@ -179,6 +179,9 @@ private:
GraphicListBox listBoxEnableSwitchTeamMode; GraphicListBox listBoxEnableSwitchTeamMode;
GraphicLabel labelAISwitchTeamAcceptPercent; GraphicLabel labelAISwitchTeamAcceptPercent;
GraphicListBox listBoxAISwitchTeamAcceptPercent; GraphicListBox listBoxAISwitchTeamAcceptPercent;
GraphicLabel labelFallbackCpuMultiplier;
GraphicListBox listBoxFallbackCpuMultiplier;
GraphicButton buttonPlayNow; GraphicButton buttonPlayNow;

View File

@ -289,6 +289,19 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu,
listBoxAllowObservers.pushBackItem(lang.get("Yes")); listBoxAllowObservers.pushBackItem(lang.get("Yes"));
listBoxAllowObservers.setSelectedItemIndex(0); listBoxAllowObservers.setSelectedItemIndex(0);
for(int i=0; i<45; ++i){
rMultiplier.push_back(floatToStr(0.5f+0.1f*i,1));
}
labelFallbackCpuMultiplier.registerGraphicComponent(containerName,"labelFallbackCpuMultiplier");
labelFallbackCpuMultiplier.init(xoffset+460, aHeadPos, 80);
labelFallbackCpuMultiplier.setText(lang.get("FallbackCpuMultiplier"));
listBoxFallbackCpuMultiplier.registerGraphicComponent(containerName,"listBoxFallbackCpuMultiplier");
listBoxFallbackCpuMultiplier.init(xoffset+460, aPos, 80);
listBoxFallbackCpuMultiplier.setItems(rMultiplier);
listBoxFallbackCpuMultiplier.setSelectedItemIndex(5);
// View Map At End Of Game // View Map At End Of Game
//labelEnableObserverMode.registerGraphicComponent(containerName,"labelEnableObserverMode"); //labelEnableObserverMode.registerGraphicComponent(containerName,"labelEnableObserverMode");
//labelEnableObserverMode.init(xoffset+460, aHeadPos, 80); //labelEnableObserverMode.init(xoffset+460, aHeadPos, 80);
@ -551,10 +564,6 @@ MenuStateCustomGame::MenuStateCustomGame(Program *program, MainMenu *mainMenu,
labelNetStatus[i].setText(""); labelNetStatus[i].setText("");
} }
//labelEnableObserverMode.setText(lang.get("EnableObserverMode"));
loadMapInfo(Map::getMapPath(getCurrentMapFile()), &mapInfo, true); loadMapInfo(Map::getMapPath(getCurrentMapFile()), &mapInfo, true);
labelMapInfo.setText(mapInfo.desc); labelMapInfo.setText(mapInfo.desc);
@ -848,7 +857,7 @@ void MenuStateCustomGame::reloadUI() {
listBoxControls[i].setItems(controlItems); listBoxControls[i].setItems(controlItems);
} }
//labelEnableObserverMode.setText(lang.get("EnableObserverMode")); labelFallbackCpuMultiplier.setText(lang.get("FallbackCpuMultiplier"));
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
@ -1119,6 +1128,19 @@ void MenuStateCustomGame::mouseClick(int x, int y, MouseButton mouseButton) {
lastSetChangedGameSettings = time(NULL); lastSetChangedGameSettings = time(NULL);
} }
} }
else if (listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxFallbackCpuMultiplier.getEditable() == true && listBoxFallbackCpuMultiplier.mouseClick(x, y)) {
MutexSafeWrapper safeMutex((publishToMasterserverThread != NULL ? publishToMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__));
if(listBoxPublishServer.getSelectedItemIndex() == 0) {
needToRepublishToMasterserver = true;
}
if(hasNetworkGameSettings() == true)
{
needToSetChangedGameSettings = true;
lastSetChangedGameSettings = time(NULL);
}
}
else if (listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxPathFinderType.mouseClick(x, y)) { else if (listBoxAdvanced.getSelectedItemIndex() == 1 && listBoxPathFinderType.mouseClick(x, y)) {
MutexSafeWrapper safeMutex((publishToMasterserverThread != NULL ? publishToMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__)); MutexSafeWrapper safeMutex((publishToMasterserverThread != NULL ? publishToMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__));
@ -1764,6 +1786,7 @@ void MenuStateCustomGame::mouseMove(int x, int y, const MouseState *ms) {
listBoxEnableSwitchTeamMode.mouseMove(x, y); listBoxEnableSwitchTeamMode.mouseMove(x, y);
listBoxAISwitchTeamAcceptPercent.mouseMove(x, y); listBoxAISwitchTeamAcceptPercent.mouseMove(x, y);
listBoxFallbackCpuMultiplier.mouseMove(x, y);
labelNetworkPauseGameForLaggedClients.mouseMove(x, y); labelNetworkPauseGameForLaggedClients.mouseMove(x, y);
listBoxNetworkPauseGameForLaggedClients.mouseMove(x, y); listBoxNetworkPauseGameForLaggedClients.mouseMove(x, y);
@ -1933,7 +1956,7 @@ void MenuStateCustomGame::render() {
if(listBoxAdvanced.getSelectedItemIndex() == 1) { if(listBoxAdvanced.getSelectedItemIndex() == 1) {
renderer.renderLabel(&labelFogOfWar); renderer.renderLabel(&labelFogOfWar);
renderer.renderLabel(&labelAllowObservers); renderer.renderLabel(&labelAllowObservers);
//renderer.renderLabel(&labelEnableObserverMode); renderer.renderLabel(&labelFallbackCpuMultiplier);
renderer.renderLabel(&labelPathFinderType); renderer.renderLabel(&labelPathFinderType);
renderer.renderLabel(&labelEnableSwitchTeamMode); renderer.renderLabel(&labelEnableSwitchTeamMode);
@ -1946,6 +1969,7 @@ void MenuStateCustomGame::render() {
renderer.renderListBox(&listBoxEnableSwitchTeamMode); renderer.renderListBox(&listBoxEnableSwitchTeamMode);
renderer.renderListBox(&listBoxAISwitchTeamAcceptPercent); renderer.renderListBox(&listBoxAISwitchTeamAcceptPercent);
renderer.renderListBox(&listBoxFallbackCpuMultiplier);
} }
renderer.renderLabel(&labelTileset); renderer.renderLabel(&labelTileset);
renderer.renderLabel(&labelMapFilter); renderer.renderLabel(&labelMapFilter);
@ -2480,6 +2504,7 @@ void MenuStateCustomGame::update() {
if(this->headlessServerMode == true) { if(this->headlessServerMode == true) {
listBoxPublishServer.setSelectedItemIndex(0); listBoxPublishServer.setSelectedItemIndex(0);
} }
listBoxFallbackCpuMultiplier.setEditable(true);
listBoxPublishServer.setEditable(true); listBoxPublishServer.setEditable(true);
//listBoxEnableServerControlledAI.setEditable(true); //listBoxEnableServerControlledAI.setEditable(true);
@ -2509,6 +2534,8 @@ void MenuStateCustomGame::update() {
else { else {
listBoxPublishServer.setSelectedItemIndex(1); listBoxPublishServer.setSelectedItemIndex(1);
listBoxPublishServer.setEditable(false); listBoxPublishServer.setEditable(false);
listBoxFallbackCpuMultiplier.setEditable(false);
listBoxFallbackCpuMultiplier.setSelectedItemIndex(5);
ServerInterface* serverInterface= NetworkManager::getInstance().getServerInterface(); ServerInterface* serverInterface= NetworkManager::getInstance().getServerInterface();
serverInterface->setPublishEnabled(listBoxPublishServer.getSelectedItemIndex() == 0); serverInterface->setPublishEnabled(listBoxPublishServer.getSelectedItemIndex() == 0);
@ -3082,6 +3109,7 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
gameSettings->setFlagTypes1(valueFlags1); gameSettings->setFlagTypes1(valueFlags1);
} }
gameSettings->setAiAcceptSwitchTeamPercentChance(strToInt(listBoxAISwitchTeamAcceptPercent.getSelectedItem())); gameSettings->setAiAcceptSwitchTeamPercentChance(strToInt(listBoxAISwitchTeamAcceptPercent.getSelectedItem()));
gameSettings->setFallbackCpuMultiplier(listBoxFallbackCpuMultiplier.getSelectedItemIndex());
// First save Used slots // First save Used slots
//for(int i=0; i<mapInfo.players; ++i) //for(int i=0; i<mapInfo.players; ++i)
@ -3538,6 +3566,7 @@ void MenuStateCustomGame::setupUIFromGameSettings(const GameSettings &gameSettin
listBoxEnableSwitchTeamMode.setSelectedItem((gameSettings.getFlagTypes1() & ft1_allow_team_switching) == ft1_allow_team_switching ? lang.get("Yes") : lang.get("No")); listBoxEnableSwitchTeamMode.setSelectedItem((gameSettings.getFlagTypes1() & ft1_allow_team_switching) == ft1_allow_team_switching ? lang.get("Yes") : lang.get("No"));
listBoxAISwitchTeamAcceptPercent.setSelectedItem(intToStr(gameSettings.getAiAcceptSwitchTeamPercentChance())); listBoxAISwitchTeamAcceptPercent.setSelectedItem(intToStr(gameSettings.getAiAcceptSwitchTeamPercentChance()));
listBoxFallbackCpuMultiplier.setSelectedItemIndex(gameSettings.getFallbackCpuMultiplier());
listBoxPathFinderType.setSelectedItemIndex(gameSettings.getPathFinderType()); listBoxPathFinderType.setSelectedItemIndex(gameSettings.getPathFinderType());
@ -4288,6 +4317,7 @@ void MenuStateCustomGame::SetupUIForScenarios() {
listBoxPathFinderType.setEditable(false); listBoxPathFinderType.setEditable(false);
listBoxEnableSwitchTeamMode.setEditable(false); listBoxEnableSwitchTeamMode.setEditable(false);
listBoxAISwitchTeamAcceptPercent.setEditable(false); listBoxAISwitchTeamAcceptPercent.setEditable(false);
listBoxFallbackCpuMultiplier.setEditable(false);
listBoxMap.setEditable(false); listBoxMap.setEditable(false);
listBoxTileset.setEditable(false); listBoxTileset.setEditable(false);
listBoxMapFilter.setEditable(false); listBoxMapFilter.setEditable(false);
@ -4307,6 +4337,7 @@ void MenuStateCustomGame::SetupUIForScenarios() {
listBoxPathFinderType.setEditable(true); listBoxPathFinderType.setEditable(true);
listBoxEnableSwitchTeamMode.setEditable(true); listBoxEnableSwitchTeamMode.setEditable(true);
listBoxAISwitchTeamAcceptPercent.setEditable(true); listBoxAISwitchTeamAcceptPercent.setEditable(true);
listBoxFallbackCpuMultiplier.setEditable(true);
listBoxMap.setEditable(true); listBoxMap.setEditable(true);
listBoxTileset.setEditable(true); listBoxTileset.setEditable(true);
listBoxMapFilter.setEditable(true); listBoxMapFilter.setEditable(true);

View File

@ -118,6 +118,8 @@ private:
GraphicListBox listBoxEnableSwitchTeamMode; GraphicListBox listBoxEnableSwitchTeamMode;
GraphicLabel labelAISwitchTeamAcceptPercent; GraphicLabel labelAISwitchTeamAcceptPercent;
GraphicListBox listBoxAISwitchTeamAcceptPercent; GraphicListBox listBoxAISwitchTeamAcceptPercent;
GraphicLabel labelFallbackCpuMultiplier;
GraphicListBox listBoxFallbackCpuMultiplier;
GraphicCheckBox checkBoxScenario; GraphicCheckBox checkBoxScenario;
GraphicLabel labelScenario; GraphicLabel labelScenario;

View File

@ -184,6 +184,7 @@ NetworkMessageLaunch::NetworkMessageLaunch() {
data.factionCRCList[i] = 0; data.factionCRCList[i] = 0;
} }
data.aiAcceptSwitchTeamPercentChance = 0; data.aiAcceptSwitchTeamPercentChance = 0;
data.cpuReplacementMultiplier = 10 ;
data.masterserver_admin = -1; data.masterserver_admin = -1;
data.masterserver_admin_factionIndex = -1; data.masterserver_admin_factionIndex = -1;
} }
@ -245,7 +246,7 @@ NetworkMessageLaunch::NetworkMessageLaunch(const GameSettings *gameSettings,int8
// data.teams[i]= -1; // data.teams[i]= -1;
// data.startLocationIndex[i]= 0; // data.startLocationIndex[i]= 0;
// } // }
data.cpuReplacementMultiplier = gameSettings->getFallbackCpuMultiplier();
data.aiAcceptSwitchTeamPercentChance = gameSettings->getAiAcceptSwitchTeamPercentChance(); data.aiAcceptSwitchTeamPercentChance = gameSettings->getAiAcceptSwitchTeamPercentChance();
data.masterserver_admin = gameSettings->getMasterserver_admin(); data.masterserver_admin = gameSettings->getMasterserver_admin();
data.masterserver_admin_factionIndex = gameSettings->getMasterserver_admin_faction_index(); data.masterserver_admin_factionIndex = gameSettings->getMasterserver_admin_faction_index();
@ -298,6 +299,8 @@ void NetworkMessageLaunch::buildGameSettings(GameSettings *gameSettings) const {
} }
gameSettings->setAiAcceptSwitchTeamPercentChance(data.aiAcceptSwitchTeamPercentChance); gameSettings->setAiAcceptSwitchTeamPercentChance(data.aiAcceptSwitchTeamPercentChance);
gameSettings->setFallbackCpuMultiplier(data.cpuReplacementMultiplier);
gameSettings->setMasterserver_admin(data.masterserver_admin); gameSettings->setMasterserver_admin(data.masterserver_admin);
gameSettings->setMasterserver_admin_faction_index(data.masterserver_admin_factionIndex); gameSettings->setMasterserver_admin_faction_index(data.masterserver_admin_factionIndex);

View File

@ -237,6 +237,7 @@ private:
uint32 flagTypes1; uint32 flagTypes1;
int8 aiAcceptSwitchTeamPercentChance; int8 aiAcceptSwitchTeamPercentChance;
int8 cpuReplacementMultiplier;
int32 masterserver_admin; int32 masterserver_admin;
int32 masterserver_admin_factionIndex; int32 masterserver_admin_factionIndex;