// //////////////////////////////////////////////////////////////////////////// bool loadConfig() { QSettings ini(PHYSFS_getWriteDir() + QString("/") + fileName, QSettings::IniFormat); if (ini.status() != QSettings::NoError) { debug(LOG_ERROR, "Could not open configuration file \"%s\"", fileName); return false; } debug(LOG_WZ, "Reading configuration from %s", ini.fileName().toUtf8().constData()); if (ini.contains("voicevol")) sound_SetUIVolume(ini.value("voicevol").toDouble() / 100.0); if (ini.contains("fxvol")) sound_SetEffectsVolume(ini.value("fxvol").toDouble() / 100.0); if (ini.contains("cdvol")) sound_SetMusicVolume(ini.value("cdvol").toDouble() / 100.0); if (ini.contains("music_enabled")) war_SetMusicEnabled(ini.value("music_enabled").toBool()); if (ini.contains("language")) setLanguage(ini.value("language").toString().toUtf8().constData()); if (ini.contains("nomousewarp")) setMouseWarp(ini.value("nomousewarp").toBool()); if (ini.contains("notexturecompression")) wz_texture_compression = GL_RGBA; showFPS = ini.value("showFPS", false).toBool(); scroll_speed_accel = ini.value("scroll", DEFAULTSCROLL).toInt(); setShakeStatus(ini.value("shake", false).toBool()); setDrawShadows(ini.value("shadows", true).toBool()); war_setSoundEnabled(ini.value("sound", true).toBool()); setInvertMouseStatus(ini.value("mouseflip", true).toBool()); setRightClickOrders(ini.value("RightClickOrders", false).toBool()); setMiddleClickRotate(ini.value("MiddleClickRotate", false).toBool()); rotateRadar = ini.value("rotateRadar", true).toBool(); war_SetPauseOnFocusLoss(ini.value("PauseOnFocusLoss", false).toBool()); NETsetMasterserverName(ini.value("masterserver_name", "lobby.wz2100.net").toString().toUtf8().constData()); iV_font(ini.value("fontname", "DejaVu Sans").toString().toUtf8().constData(), ini.value("fontface", "Book").toString().toUtf8().constData(), ini.value("fontfacebold", "Bold").toString().toUtf8().constData()); NETsetMasterserverPort(ini.value("masterserver_port", MASTERSERVERPORT).toInt()); NETsetGameserverPort(ini.value("gameserver_port", GAMESERVERPORT).toInt()); war_SetFMVmode((FMV_MODE)ini.value("FMVmode", FMV_FULLSCREEN).toInt()); war_setScanlineMode((SCANLINE_MODE)ini.value("scanlines", SCANLINES_OFF).toInt()); seq_SetSubtitles(ini.value("subtitles", true).toBool()); setDifficultyLevel((DIFFICULTY_LEVEL)ini.value("difficulty", DL_NORMAL).toInt()); war_SetSPcolor(ini.value("colour", 0).toInt()); // default is green (0) war_setMPcolour(ini.value("colourMP", -1).toInt()); // default is random (-1) sstrcpy(game.name, ini.value("gameName", _("My Game")).toString().toUtf8().constData()); sstrcpy(sPlayer, ini.value("playerName", _("Player")).toString().toUtf8().constData()); // Set a default map to prevent hosting games without a map. sstrcpy(game.map, "Sk-Rush"); game.hash.setZero(); game.maxPlayers = 4; game.power = ini.value("power", LEV_MED).toInt(); game.base = ini.value("base", CAMP_BASE).toInt(); game.alliance = ini.value("alliance", NO_ALLIANCES).toInt(); game.scavengers = ini.value("scavengers", false).toBool(); memset(&ingame.phrases, 0, sizeof(ingame.phrases)); for (int i = 1; i < 5; i++) { QString key("phrase" + QString::number(i)); if (ini.contains(key)) sstrcpy(ingame.phrases[i], ini.value(key).toString().toUtf8().constData()); } bEnemyAllyRadarColor = ini.value("radarObjectMode").toBool(); radarDrawMode = (RADAR_DRAW_MODE)ini.value("radarTerrainMode", RADAR_MODE_DEFAULT).toInt(); radarDrawMode = (RADAR_DRAW_MODE)MIN(NUM_RADAR_MODES - 1, radarDrawMode); // restrict to allowed values if (ini.contains("textureSize")) setTextureSize(ini.value("textureSize").toInt()); NetPlay.isUPNP = ini.value("UPnP", true).toBool(); if (ini.contains("FSAA")) war_setFSAA(ini.value("FSAA").toInt()); // Leave this to false, some system will fail and they can't see the system popup dialog! war_setFullscreen(ini.value("fullscreen", false).toBool()); war_SetTrapCursor(ini.value("trapCursor", false).toBool()); // this should be enabled on all systems by default war_SetVsync(ini.value("vsync", true).toBool()); // 640x480 is minimum that we will support int width = ini.value("width", 640).toInt(); int height = ini.value("height", 480).toInt(); if (width < 640 || height < 480) // sanity check { width = 640; height = 480; } pie_SetVideoBufferWidth(width); pie_SetVideoBufferHeight(height); war_SetWidth(width); war_SetHeight(height); if (ini.contains("bpp")) pie_SetVideoBufferDepth(ini.value("bpp").toInt()); return true; }
// //////////////////////////////////////////////////////////////////////////// bool loadConfig() { WzConfig ini(fileName); if (ini.status() != QSettings::NoError) { debug(LOG_ERROR, "Could not open configuration file \"%s\"", fileName); return false; } debug(LOG_WZ, "Reading configuration from %s", ini.fileName().toUtf8().constData()); if (ini.contains("voicevol")) sound_SetUIVolume(ini.value("voicevol").toDouble() / 100.0); if (ini.contains("fxvol")) sound_SetEffectsVolume(ini.value("fxvol").toDouble() / 100.0); if (ini.contains("cdvol")) sound_SetMusicVolume(ini.value("cdvol").toDouble() / 100.0); if (ini.contains("music_enabled")) war_SetMusicEnabled(ini.value("music_enabled").toBool()); if (ini.contains("language")) setLanguage(ini.value("language").toString().toUtf8().constData()); if (ini.contains("nomousewarp")) setMouseWarp(ini.value("nomousewarp").toBool()); showFPS = ini.value("showFPS", false).toBool(); scroll_speed_accel = ini.value("scroll", DEFAULTSCROLL).toInt(); setShakeStatus(ini.value("shake", false).toBool()); setDrawShadows(ini.value("shadows", true).toBool()); war_setSoundEnabled(ini.value("sound", true).toBool()); setInvertMouseStatus(ini.value("mouseflip", true).toBool()); setRightClickOrders(ini.value("RightClickOrders", false).toBool()); setMiddleClickRotate(ini.value("MiddleClickRotate", false).toBool()); rotateRadar = ini.value("rotateRadar", true).toBool(); war_SetPauseOnFocusLoss(ini.value("PauseOnFocusLoss", false).toBool()); NETsetMasterserverName(ini.value("masterserver_name", "lobby.wz2100.net").toString().toUtf8().constData()); iV_font(ini.value("fontname", "DejaVu Sans").toString().toUtf8().constData(), ini.value("fontface", "Book").toString().toUtf8().constData(), ini.value("fontfacebold", "Bold").toString().toUtf8().constData()); NETsetMasterserverPort(ini.value("masterserver_port", MASTERSERVERPORT).toInt()); NETsetGameserverPort(ini.value("gameserver_port", GAMESERVERPORT).toInt()); war_SetFMVmode((FMV_MODE)ini.value("FMVmode", FMV_FULLSCREEN).toInt()); war_setScanlineMode((SCANLINE_MODE)ini.value("scanlines", SCANLINES_OFF).toInt()); seq_SetSubtitles(ini.value("subtitles", true).toBool()); setDifficultyLevel((DIFFICULTY_LEVEL)ini.value("difficulty", DL_NORMAL).toInt()); war_SetFog(ini.value("visfog", true).toBool()); war_SetSPcolor(ini.value("colour", 0).toInt()); // default is green (0) sstrcpy(game.name, ini.value("gameName", _("My Game")).toString().toUtf8().constData()); sstrcpy(sPlayer, ini.value("playerName", _("Player")).toString().toUtf8().constData()); if (ini.contains("mapName") && ini.contains("maxPlayers")) { sstrcpy(game.map, ini.value("mapName").toString().toUtf8().constData()); game.maxPlayers = ini.value("maxPlayers").toInt(); // FIXME: horrible kluge, MUST match map above } else { // Set a default map to prevent hosting games without a map. sstrcpy(game.map, "Sk-Rush"); game.maxPlayers = 4; } game.power = ini.value("power", LEV_MED).toInt(); game.fog = ini.value("fog").toBool(); game.base = ini.value("base", CAMP_BASE).toInt(); game.alliance = ini.value("alliance", NO_ALLIANCES).toInt(); memset(&ingame.phrases, 0, sizeof(ingame.phrases)); for (int i = 1; i < 5; i++) { QString key("phrase" + QString::number(i)); if (ini.contains(key)) sstrcpy(ingame.phrases[i], ini.value(key).toString().toUtf8().constData()); } bEnemyAllyRadarColor = ini.value("radarObjectMode").toBool(); radarDrawMode = (RADAR_DRAW_MODE)ini.value("radarTerrainMode", RADAR_MODE_DEFAULT).toInt(); if (ini.contains("textureSize")) setTextureSize(ini.value("textureSize").toInt()); NetPlay.isUPNP = ini.value("UPnP", true).toBool(); if (ini.contains("FSAA")) war_setFSAA(ini.value("FSAA").toInt()); war_setFullscreen(ini.value("fullscreen", true).toBool()); war_SetTrapCursor(ini.value("trapCursor", false).toBool()); war_SetVsync(ini.value("vsync", true).toBool()); int width = ini.value("width", 0).toInt(); int height = ini.value("height", 0).toInt(); if (width < 640 || height < 480) // sanity check { height = width = 0; } pie_SetVideoBufferWidth(width); pie_SetVideoBufferHeight(height); war_SetWidth(width); war_SetHeight(height); if (ini.contains("bpp")) pie_SetVideoBufferDepth(ini.value("bpp").toInt()); setFramerateLimit(ini.value("framerate", 60).toInt()); return true; }