void war_SetSPcolor(int color) { if (color >= 1 && color <= 3) // only 0,4,5,6,7 are allowed for SP games, AI uses the other colors. { color = 0; } warGlobs.SPcolor = color; setPlayerColour(0, color); }
static void SPinit(void) { uint8_t playercolor; NetPlay.bComms = false; bMultiPlayer = false; bMultiMessages = false; game.type = CAMPAIGN; NET_InitPlayers(); NetPlay.players[0].allocated = true; game.skDiff[0] = UBYTE_MAX; game.maxPlayers = MAX_PLAYERS; // make sure we have a valid color choice for our SP game. Valid values are 0, 4-7 playercolor = war_GetSPcolor(); if (playercolor >= 1 && playercolor <= 3) { playercolor = 0; // default is green } setPlayerColour(0, playercolor); }
// //////////////////////////////////////////////////////////////////////////// BOOL loadConfig(void) { int val; char sBuf[255]; openWarzoneKey(); // options screens. // ////////////////////////// // ////////////////////////// // voice vol if(getWarzoneKeyNumeric("voicevol", &val)) { sound_SetUIVolume((float)val / 100.0);//was val } // ////////////////////////// // fx vol if(getWarzoneKeyNumeric("fxvol", &val)) { sound_SetEffectsVolume((float)val / 100.0);//was val } // ////////////////////////// // cdvol if(getWarzoneKeyNumeric("cdvol", &val)) { sound_SetMusicVolume((float)val / 100.0); } if (getWarzoneKeyNumeric("debugmode", &val)) { bAllowDebugMode = val; } else { #ifdef DEBUG bAllowDebugMode = true; #else bAllowDebugMode = false; #endif setWarzoneKeyNumeric("debugmode", bAllowDebugMode); } if (getWarzoneKeyNumeric("music_enabled", &val)) { war_SetMusicEnabled(val); } if (getWarzoneKeyNumeric("SinglePlayerFPS", &val)) { setSinglePlayerFrameLimit(val); setFramerateLimit(getSinglePlayerFrameLimit()); } else { setFramerateLimit(getSinglePlayerFrameLimit()); setWarzoneKeyNumeric("SinglePlayerFPS", getSinglePlayerFrameLimit()); } if (getWarzoneKeyString("language", sBuf)) { setLanguage(sBuf); } if (getWarzoneKeyNumeric("showFPS", &val)) { showFPS = val; } else { showFPS = false; setWarzoneKeyNumeric("showFPS", false); } // ////////////////////////// // scroll if(getWarzoneKeyNumeric("scroll", &val)) { scroll_speed_accel = val; } else { scroll_speed_accel = DEFAULTSCROLL; setWarzoneKeyNumeric("scroll", DEFAULTSCROLL); } // ////////////////////////// // screen shake if(getWarzoneKeyNumeric("shake", &val)) { setShakeStatus(val); } else { setShakeStatus(false); setWarzoneKeyNumeric("shake", false); } // ////////////////////////// // draw shadows if(getWarzoneKeyNumeric("shadows", &val)) { setDrawShadows(val); } else { setDrawShadows(true); setWarzoneKeyNumeric("shadows", true); } // ////////////////////////// // enable sound if(getWarzoneKeyNumeric("sound", &val)) { war_setSoundEnabled( val ); } else { war_setSoundEnabled( true ); setWarzoneKeyNumeric( "sound", true ); } // ////////////////////////// // invert mouse if(getWarzoneKeyNumeric("mouseflip", &val)) { setInvertMouseStatus(val); } else { setInvertMouseStatus(true); setWarzoneKeyNumeric("mouseflip", true); } // ////////////////////////// // mouse buttons if (getWarzoneKeyNumeric("RightClickOrders", &val)) { setRightClickOrders(val); } else { setRightClickOrders(false); setWarzoneKeyNumeric("RightClickOrders", false); } if (getWarzoneKeyNumeric("MiddleClickRotate", &val)) { setMiddleClickRotate(val); } else { setMiddleClickRotate(false); setWarzoneKeyNumeric("MiddleClickRotate", false); } // ////////////////////////// // rotate radar if(getWarzoneKeyNumeric("rotateRadar", &val)) { rotateRadar = val; } else { rotateRadar = true; setWarzoneKeyNumeric("rotateRadar", rotateRadar); } if (getWarzoneKeyNumeric("PauseOnFocusLoss", &val)) { war_SetPauseOnFocusLoss(val); } else { war_SetPauseOnFocusLoss(false); setWarzoneKeyNumeric("PauseOnFocusLoss", false); } if (getWarzoneKeyString("masterserver_name", sBuf)) { NETsetMasterserverName(sBuf); if (strcasecmp(sBuf, "lobby.wz2100.net") != 0) { debug(LOG_ERROR, "We are not using lobby.wz2100.net, for the master server name, we are using %s instead?", sBuf); } } else { NETsetMasterserverName("lobby.wz2100.net"); setWarzoneKeyString("masterserver_name", NETgetMasterserverName()); } if (getWarzoneKeyString("fontname", sBuf) && strcmp(sBuf,"Lucida Grande")) { iV_font(sBuf, NULL, NULL); } else { iV_font("DejaVu Sans", NULL, NULL); setWarzoneKeyString("fontname", "DejaVu Sans"); } if (getWarzoneKeyString("fontface", sBuf) && strcmp(sBuf,"Normal")) { iV_font(NULL, sBuf, NULL); } else { iV_font(NULL, "Book", NULL); setWarzoneKeyString("fontface", "Book"); } if (getWarzoneKeyString("fontfacebold", sBuf)) { iV_font(NULL, NULL, sBuf); } else { iV_font(NULL, NULL, "Bold"); setWarzoneKeyString("fontfacebold", "Bold"); } if (getWarzoneKeyNumeric("masterserver_port", &val)) { NETsetMasterserverPort(val); if (val != MASTERSERVERPORT) { debug(LOG_ERROR, "We are not using port %d (which is the default Master server port), we are using %d?", MASTERSERVERPORT, val); } } else { NETsetMasterserverPort(MASTERSERVERPORT); setWarzoneKeyNumeric("masterserver_port", NETgetMasterserverPort()); } if (getWarzoneKeyNumeric("gameserver_port", &val)) { NETsetGameserverPort(val); if (val != GAMESERVERPORT) { debug(LOG_ERROR, "We are not using port %d (which is the default Game server port), we are using %d?", GAMESERVERPORT, val); } } else { NETsetGameserverPort(GAMESERVERPORT); setWarzoneKeyNumeric("gameserver_port", NETgetGameserverPort()); } // ////////////////////////// // sequences if (getWarzoneKeyNumeric("FMVmode", &val)) { war_SetFMVmode(val); } else { war_SetFMVmode(FMV_FULLSCREEN); } // ////////////////////////// // subtitles if(getWarzoneKeyNumeric("subtitles", &val)) { seq_SetSubtitles(val); } else { seq_SetSubtitles(true); } // ////////////////////////// // difficulty if(getWarzoneKeyNumeric("difficulty", &val)) { setDifficultyLevel(val); } else { setDifficultyLevel(DL_NORMAL); setWarzoneKeyNumeric("difficulty", DL_NORMAL); } // ////////////////////////// // use vis fog if(getWarzoneKeyNumeric("visfog", &val)) { if(val) { war_SetFog(false); } else { war_SetFog(true); } } else { war_SetFog(true); setWarzoneKeyNumeric("visfog", 0); } // ////////////////////////// // favourite colour if(!bMultiPlayer) { if(getWarzoneKeyNumeric("colour", &val)) { setPlayerColour(0, val); } else { setPlayerColour(0, 0); setWarzoneKeyNumeric("colour", 0); } } // ///////////////////////// // multiplayer stuff. // ///////////////////////// // game name if (getWarzoneKeyString("gameName", sBuf)) { sstrcpy(game.name, sBuf); } else { setWarzoneKeyString("gameName", "My Game"); } // player name // must _not_ be an empty string if (getWarzoneKeyString("playerName", sBuf) && *sBuf != '\0') { sstrcpy(sPlayer, sBuf); } else { setWarzoneKeyString("playerName", _("Player")); sstrcpy(sPlayer, _("Player")); } // map name if(getWarzoneKeyString("mapName", sBuf)) { /* FIXME: Get rid of storing the max-player count in the config * file. Instead we should parse the map *before* * showing the skirmish/multiplayer setup screen. */ if (getWarzoneKeyNumeric("maxPlayers", &val)) { sstrcpy(game.map, sBuf); game.maxPlayers = val; } else { debug(LOG_WARNING, "Invalid or not found maxPlayers parameter for map %s", game.map); debug(LOG_WARNING, "Reseting map to default parameters."); // we don't have maxPlayers set, so fall back to defaults. game.maxPlayers = 4; //4 is for the DEFAULTSKIRMISHMAP map (rush) sstrcpy(game.map, DEFAULTSKIRMISHMAP); setWarzoneKeyString("mapName", game.map); setWarzoneKeyNumeric("maxPlayers",game.maxPlayers); } } else { sstrcpy(game.map, DEFAULTSKIRMISHMAP); setWarzoneKeyString("mapName", game.map); } // power if(getWarzoneKeyNumeric("power", &val)) { game.power = val; } else { game.power = LEV_MED; setWarzoneKeyNumeric("power", game.power); } // fog if(getWarzoneKeyNumeric("fog", &val)) { game.fog= val; } else { game.fog= true; setWarzoneKeyNumeric("fog", game.fog); } //base if(getWarzoneKeyNumeric("base", &val)) { game.base =(UBYTE)val; } else { game.base = CAMP_BASE; setWarzoneKeyNumeric("base", game.base); } //alliance if(getWarzoneKeyNumeric("alliance", &val)) { game.alliance =(UBYTE)val; } else { game.alliance = NO_ALLIANCES; setWarzoneKeyNumeric("alliance", game.alliance); } // favourite phrases if(getWarzoneKeyString("phrase0", ingame.phrases[0])) { getWarzoneKeyString("phrase1", ingame.phrases[1]); getWarzoneKeyString("phrase2", ingame.phrases[2]); getWarzoneKeyString("phrase3", ingame.phrases[3]); getWarzoneKeyString("phrase4", ingame.phrases[4]); } else { memset(&ingame.phrases, 0, sizeof(ingame.phrases)); setWarzoneKeyString("phrase0", ingame.phrases[0]); setWarzoneKeyString("phrase1", ingame.phrases[1]); setWarzoneKeyString("phrase2", ingame.phrases[2]); setWarzoneKeyString("phrase3", ingame.phrases[3]); setWarzoneKeyString("phrase4", ingame.phrases[4]); } // enemy/allies radar view if(getWarzoneKeyNumeric("radarObjectMode", &val)) { bEnemyAllyRadarColor =(BOOL)val; } else { bEnemyAllyRadarColor = false; setWarzoneKeyNumeric("radarObjectMode", (SDWORD)bEnemyAllyRadarColor); } // mini-map terrain mode if(getWarzoneKeyNumeric("radarTerrainMode", &val)) { radarDrawMode = val; if(radarDrawMode >= NUM_RADAR_MODES) { ASSERT(!"wrong mini-map mode", "loadConfig: wrong mini-map mode: %d", radarDrawMode); radarDrawMode = RADAR_MODE_DEFAULT; } } else { radarDrawMode = RADAR_MODE_DEFAULT; setWarzoneKeyNumeric("radarTerrainMode", radarDrawMode); } // texture size if (getWarzoneKeyNumeric("textureSize", &val)) { setTextureSize(val); } else { setWarzoneKeyNumeric("textureSize", getTextureSize()); } // UPnP detection if (getWarzoneKeyNumeric("UPnP", &val)) { NetPlay.isUPNP = val; } else { setWarzoneKeyNumeric("UPnP", 1); NetPlay.isUPNP = 1; } return closeWarzoneKey(); }