2010-03-20 12:11:46 +00:00
|
|
|
|
// ==============================================================
|
|
|
|
|
// This file is part of Glest (www.glest.org)
|
|
|
|
|
//
|
|
|
|
|
// Copyright (C) 2001-2005 Marti<74>o Figueroa
|
|
|
|
|
//
|
2010-03-23 02:37:41 +00:00
|
|
|
|
// You can redistribute this code and/or modify it under
|
|
|
|
|
// the terms of the GNU General Public License as published
|
|
|
|
|
// by the Free Software Foundation; either version 2 of the
|
2010-03-20 12:11:46 +00:00
|
|
|
|
// License, or (at your option) any later version
|
|
|
|
|
// ==============================================================
|
|
|
|
|
|
|
|
|
|
#include "menu_state_options.h"
|
|
|
|
|
|
|
|
|
|
#include "renderer.h"
|
|
|
|
|
#include "sound_renderer.h"
|
|
|
|
|
#include "core_data.h"
|
|
|
|
|
#include "config.h"
|
|
|
|
|
#include "menu_state_root.h"
|
|
|
|
|
#include "util.h"
|
2010-07-11 07:38:08 +00:00
|
|
|
|
#include "menu_state_graphic_info.h"
|
2010-03-20 12:11:46 +00:00
|
|
|
|
|
|
|
|
|
#include "leak_dumper.h"
|
|
|
|
|
|
|
|
|
|
using namespace Shared::Util;
|
|
|
|
|
|
|
|
|
|
namespace Glest{ namespace Game{
|
|
|
|
|
|
|
|
|
|
// =====================================================
|
|
|
|
|
// class MenuStateOptions
|
|
|
|
|
// =====================================================
|
2010-03-23 02:37:41 +00:00
|
|
|
|
MenuStateOptions::MenuStateOptions(Program *program, MainMenu *mainMenu):
|
2010-03-20 12:11:46 +00:00
|
|
|
|
MenuState(program, mainMenu, "config")
|
|
|
|
|
{
|
2010-09-09 21:07:39 +00:00
|
|
|
|
containerName = "Options";
|
2010-03-20 12:11:46 +00:00
|
|
|
|
Lang &lang= Lang::getInstance();
|
|
|
|
|
Config &config= Config::getInstance();
|
2010-04-01 00:13:28 +00:00
|
|
|
|
//modeinfos=list<ModeInfo> ();
|
2010-04-30 18:16:54 +00:00
|
|
|
|
Shared::PlatformCommon::getFullscreenVideoModes(&modeInfos);
|
2010-03-23 01:38:19 +00:00
|
|
|
|
activeInputLabel=NULL;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-09-26 21:34:00 +00:00
|
|
|
|
int leftline=700;
|
|
|
|
|
int rightline=700;
|
2010-04-01 18:59:05 +00:00
|
|
|
|
int leftLabelStart=250;
|
2010-04-01 00:13:28 +00:00
|
|
|
|
int leftColumnStart=leftLabelStart+150;
|
|
|
|
|
int rightLabelStart=500;
|
|
|
|
|
int rightColumnStart=rightLabelStart+150;
|
2010-04-01 18:59:05 +00:00
|
|
|
|
int buttonRowPos=80;
|
2010-04-01 00:13:28 +00:00
|
|
|
|
int captionOffset=75;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
mainMessageBox.registerGraphicComponent(containerName,"mainMessageBox");
|
2010-04-02 14:21:43 +00:00
|
|
|
|
mainMessageBox.init(lang.get("Ok"));
|
|
|
|
|
mainMessageBox.setEnabled(false);
|
|
|
|
|
mainMessageBoxState=0;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelAudioSection.registerGraphicComponent(containerName,"labelAudioSection");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelAudioSection.init(leftLabelStart+captionOffset, leftline);
|
|
|
|
|
labelAudioSection.setFont(CoreData::getInstance().getMenuFontVeryBig());
|
|
|
|
|
labelAudioSection.setText(lang.get("Audio"));
|
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-01 00:13:28 +00:00
|
|
|
|
//soundboxes
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelSoundFactory.registerGraphicComponent(containerName,"labelSoundFactory");
|
2010-07-16 06:35:22 +00:00
|
|
|
|
labelSoundFactory.init(leftLabelStart, leftline);
|
|
|
|
|
labelSoundFactory.setText(lang.get("SoundAndMusic"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxSoundFactory.registerGraphicComponent(containerName,"listBoxSoundFactory");
|
2010-09-26 21:34:00 +00:00
|
|
|
|
listBoxSoundFactory.init(leftColumnStart, leftline, 100);
|
2010-07-16 06:35:22 +00:00
|
|
|
|
listBoxSoundFactory.pushBackItem("None");
|
|
|
|
|
listBoxSoundFactory.pushBackItem("OpenAL");
|
|
|
|
|
#ifdef WIN32
|
|
|
|
|
listBoxSoundFactory.pushBackItem("DirectSound8");
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
listBoxSoundFactory.setSelectedItem(config.getString("FactorySound"));
|
|
|
|
|
leftline-=30;
|
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelVolumeFx.registerGraphicComponent(containerName,"labelVolumeFx");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelVolumeFx.init(leftLabelStart, leftline);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
labelVolumeFx.setText(lang.get("FxVolume"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxVolumeFx.registerGraphicComponent(containerName,"listBoxVolumeFx");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxVolumeFx.init(leftColumnStart, leftline, 80);
|
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelVolumeAmbient.registerGraphicComponent(containerName,"labelVolumeAmbient");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelVolumeAmbient.init(leftLabelStart, leftline);
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxVolumeAmbient.registerGraphicComponent(containerName,"listBoxVolumeAmbient");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxVolumeAmbient.init(leftColumnStart, leftline, 80);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
labelVolumeAmbient.setText(lang.get("AmbientVolume"));
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelVolumeMusic.registerGraphicComponent(containerName,"labelVolumeMusic");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelVolumeMusic.init(leftLabelStart, leftline);
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxVolumeMusic.registerGraphicComponent(containerName,"listBoxVolumeMusic");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxVolumeMusic.init(leftColumnStart, leftline, 80);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
labelVolumeMusic.setText(lang.get("MusicVolume"));
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-01 00:13:28 +00:00
|
|
|
|
for(int i=0; i<=100; i+=5){
|
|
|
|
|
listBoxVolumeFx.pushBackItem(intToStr(i));
|
|
|
|
|
listBoxVolumeAmbient.pushBackItem(intToStr(i));
|
|
|
|
|
listBoxVolumeMusic.pushBackItem(intToStr(i));
|
|
|
|
|
}
|
|
|
|
|
listBoxVolumeFx.setSelectedItem(intToStr(config.getInt("SoundVolumeFx")/5*5));
|
|
|
|
|
listBoxVolumeAmbient.setSelectedItem(intToStr(config.getInt("SoundVolumeAmbient")/5*5));
|
|
|
|
|
listBoxVolumeMusic.setSelectedItem(intToStr(config.getInt("SoundVolumeMusic")/5*5));
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
|
|
|
|
|
2010-10-11 00:53:25 +00:00
|
|
|
|
//leftline-=30;
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelMiscSection.registerGraphicComponent(containerName,"labelMiscSection");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelMiscSection.init(leftLabelStart+captionOffset, leftline);
|
|
|
|
|
labelMiscSection.setFont(CoreData::getInstance().getMenuFontVeryBig());
|
|
|
|
|
labelMiscSection.setText(lang.get("Misc"));
|
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
//lang
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelLang.registerGraphicComponent(containerName,"labelLang");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelLang.init(leftLabelStart, leftline);
|
|
|
|
|
labelLang.setText(lang.get("Language"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxLang.registerGraphicComponent(containerName,"listBoxLang");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxLang.init(leftColumnStart, leftline, 170);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
vector<string> langResults;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
|
|
|
|
string data_path = getGameReadWritePath(GameConstants::path_data_CacheLookupKey);
|
|
|
|
|
findAll(data_path + "data/lang/*.lng", langResults, true);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
if(langResults.empty()){
|
|
|
|
|
throw runtime_error("There is no lang file");
|
|
|
|
|
}
|
|
|
|
|
listBoxLang.setItems(langResults);
|
|
|
|
|
listBoxLang.setSelectedItem(config.getString("Lang"));
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-03-23 01:38:19 +00:00
|
|
|
|
//playerName
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelPlayerNameLabel.registerGraphicComponent(containerName,"labelPlayerNameLabel");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelPlayerNameLabel.init(leftLabelStart,leftline);
|
|
|
|
|
labelPlayerNameLabel.setText(lang.get("Playername"));
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelPlayerName.registerGraphicComponent(containerName,"labelPlayerName");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelPlayerName.init(leftColumnStart,leftline);
|
2010-03-23 02:37:41 +00:00
|
|
|
|
labelPlayerName.setText(config.getString("NetPlayerName",Socket::getHostName().c_str()));
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-07 22:20:28 +00:00
|
|
|
|
//FontSizeAdjustment
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelFontSizeAdjustment.registerGraphicComponent(containerName,"labelFontSizeAdjustment");
|
2010-04-07 22:20:28 +00:00
|
|
|
|
labelFontSizeAdjustment.init(leftLabelStart,leftline);
|
|
|
|
|
labelFontSizeAdjustment.setText(lang.get("FontSizeAdjustment"));
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
listFontSizeAdjustment.registerGraphicComponent(containerName,"listFontSizeAdjustment");
|
2010-04-07 22:20:28 +00:00
|
|
|
|
listFontSizeAdjustment.init(leftColumnStart, leftline, 80);
|
|
|
|
|
for(int i=-5; i<=5; i+=1){
|
|
|
|
|
listFontSizeAdjustment.pushBackItem(intToStr(i));
|
|
|
|
|
}
|
|
|
|
|
listFontSizeAdjustment.setSelectedItem(intToStr(config.getInt("FontSizeAdjustment")));
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-07 22:20:28 +00:00
|
|
|
|
leftline-=30;
|
2010-04-03 17:17:15 +00:00
|
|
|
|
// server port
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelServerPortLabel.registerGraphicComponent(containerName,"labelServerPortLabel");
|
2010-04-03 17:17:15 +00:00
|
|
|
|
labelServerPortLabel.init(leftLabelStart,leftline);
|
|
|
|
|
labelServerPortLabel.setText(lang.get("ServerPort"));
|
|
|
|
|
labelServerPort.init(leftColumnStart,leftline);
|
|
|
|
|
string port=intToStr(config.getInt("ServerPort"));
|
|
|
|
|
if(port!="61357"){
|
2010-04-04 16:48:42 +00:00
|
|
|
|
port=port +" ("+lang.get("NonStandardPort")+"!!)";
|
2010-04-03 17:17:15 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
port=port +" ("+lang.get("StandardPort")+")";
|
|
|
|
|
}
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-03 17:17:15 +00:00
|
|
|
|
labelServerPort.setText(port);
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-10-11 00:53:25 +00:00
|
|
|
|
// external server port
|
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-10-11 00:53:25 +00:00
|
|
|
|
labelPublishServerExternalPort.registerGraphicComponent(containerName,"labelPublishServerExternalPort");
|
|
|
|
|
labelPublishServerExternalPort.init(leftLabelStart, leftline, 150);
|
|
|
|
|
labelPublishServerExternalPort.setText(lang.get("PublishServerExternalPort"));
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-10-11 00:53:25 +00:00
|
|
|
|
listBoxPublishServerExternalPort.registerGraphicComponent(containerName,"listBoxPublishServerExternalPort");
|
|
|
|
|
listBoxPublishServerExternalPort.init(leftColumnStart, leftline, 170);
|
|
|
|
|
string supportExternalPortList = config.getString("MasterServerExternalPortList",intToStr(GameConstants::serverPort).c_str());
|
|
|
|
|
std::vector<std::string> externalPortList;
|
|
|
|
|
Tokenize(supportExternalPortList,externalPortList,",");
|
|
|
|
|
|
|
|
|
|
string currentPort=config.getString("MasterServerExternalPort", "61357");
|
|
|
|
|
int masterServerExternalPortSelectionIndex=0;
|
|
|
|
|
for(int idx = 0; idx < externalPortList.size(); idx++) {
|
|
|
|
|
if(externalPortList[idx] != "" && IsNumeric(externalPortList[idx].c_str(),false)) {
|
|
|
|
|
listBoxPublishServerExternalPort.pushBackItem(externalPortList[idx]);
|
|
|
|
|
if(currentPort==externalPortList[idx])
|
|
|
|
|
{
|
|
|
|
|
masterServerExternalPortSelectionIndex=idx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
listBoxPublishServerExternalPort.setSelectedItemIndex(masterServerExternalPortSelectionIndex);
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-10-11 00:53:25 +00:00
|
|
|
|
// Video Section
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelVideoSection.registerGraphicComponent(containerName,"labelVideoSection");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelVideoSection.init(leftLabelStart+captionOffset, leftline);
|
|
|
|
|
labelVideoSection.setFont(CoreData::getInstance().getMenuFontVeryBig());
|
|
|
|
|
labelVideoSection.setText(lang.get("Video"));
|
|
|
|
|
leftline-=30;
|
|
|
|
|
|
|
|
|
|
//resolution
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelScreenModes.registerGraphicComponent(containerName,"labelScreenModes");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelScreenModes.init(leftLabelStart, leftline);
|
|
|
|
|
labelScreenModes.setText(lang.get("Resolution"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxScreenModes.registerGraphicComponent(containerName,"listBoxScreenModes");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxScreenModes.init(leftColumnStart, leftline, 170);
|
2010-04-06 23:50:06 +00:00
|
|
|
|
|
2010-12-09 20:41:11 +00:00
|
|
|
|
string currentResString = config.getString("ScreenWidth") + "x" +
|
2010-04-06 23:50:06 +00:00
|
|
|
|
config.getString("ScreenHeight") + "-" +
|
|
|
|
|
intToStr(config.getInt("ColorBits"));
|
|
|
|
|
bool currentResolutionFound = false;
|
2010-04-01 00:13:28 +00:00
|
|
|
|
for(list<ModeInfo>::const_iterator it= modeInfos.begin(); it!=modeInfos.end(); ++it){
|
2010-04-06 23:50:06 +00:00
|
|
|
|
if((*it).getString() == currentResString) {
|
|
|
|
|
currentResolutionFound = true;
|
|
|
|
|
}
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxScreenModes.pushBackItem((*it).getString());
|
|
|
|
|
}
|
2010-04-06 23:50:06 +00:00
|
|
|
|
if(currentResolutionFound == false) {
|
|
|
|
|
listBoxScreenModes.pushBackItem(currentResString);
|
|
|
|
|
}
|
|
|
|
|
listBoxScreenModes.setSelectedItem(currentResString);
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
|
|
|
|
|
2010-05-03 22:07:27 +00:00
|
|
|
|
//FullscreenWindowed
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelFullscreenWindowed.registerGraphicComponent(containerName,"labelFullscreenWindowed");
|
2010-05-03 22:07:27 +00:00
|
|
|
|
labelFullscreenWindowed.init(leftLabelStart, leftline);
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxFullscreenWindowed.registerGraphicComponent(containerName,"listBoxFullscreenWindowed");
|
2010-05-03 22:07:27 +00:00
|
|
|
|
listBoxFullscreenWindowed.init(leftColumnStart, leftline, 80);
|
|
|
|
|
labelFullscreenWindowed.setText(lang.get("Windowed"));
|
|
|
|
|
listBoxFullscreenWindowed.pushBackItem(lang.get("No"));
|
|
|
|
|
listBoxFullscreenWindowed.pushBackItem(lang.get("Yes"));
|
|
|
|
|
listBoxFullscreenWindowed.setSelectedItemIndex(clamp(config.getBool("Windowed"), false, true));
|
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-01 00:13:28 +00:00
|
|
|
|
//filter
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelFilter.registerGraphicComponent(containerName,"labelFilter");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelFilter.init(leftLabelStart, leftline);
|
|
|
|
|
labelFilter.setText(lang.get("Filter"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxFilter.registerGraphicComponent(containerName,"listBoxFilter");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxFilter.init(leftColumnStart, leftline, 170);
|
|
|
|
|
listBoxFilter.pushBackItem("Bilinear");
|
|
|
|
|
listBoxFilter.pushBackItem("Trilinear");
|
|
|
|
|
listBoxFilter.setSelectedItem(config.getString("Filter"));
|
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
//shadows
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelShadows.registerGraphicComponent(containerName,"labelShadows");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelShadows.init(leftLabelStart, leftline);
|
|
|
|
|
labelShadows.setText(lang.get("Shadows"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxShadows.registerGraphicComponent(containerName,"listBoxShadows");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxShadows.init(leftColumnStart, leftline, 170);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
for(int i= 0; i<Renderer::sCount; ++i){
|
|
|
|
|
listBoxShadows.pushBackItem(lang.get(Renderer::shadowsToStr(static_cast<Renderer::Shadows>(i))));
|
|
|
|
|
}
|
|
|
|
|
string str= config.getString("Shadows");
|
|
|
|
|
listBoxShadows.setSelectedItemIndex(clamp(Renderer::strToShadows(str), 0, Renderer::sCount-1));
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
//textures 3d
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelTextures3D.registerGraphicComponent(containerName,"labelTextures3D");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelTextures3D.init(leftLabelStart, leftline);
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxTextures3D.registerGraphicComponent(containerName,"listBoxTextures3D");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxTextures3D.init(leftColumnStart, leftline, 80);
|
|
|
|
|
labelTextures3D.setText(lang.get("Textures3D"));
|
2010-03-20 12:11:46 +00:00
|
|
|
|
listBoxTextures3D.pushBackItem(lang.get("No"));
|
|
|
|
|
listBoxTextures3D.pushBackItem(lang.get("Yes"));
|
2010-03-23 07:59:24 +00:00
|
|
|
|
listBoxTextures3D.setSelectedItemIndex(clamp(config.getBool("Textures3D"), false, true));
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
//lights
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelLights.registerGraphicComponent(containerName,"labelLights");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelLights.init(leftLabelStart, leftline);
|
|
|
|
|
labelLights.setText(lang.get("MaxLights"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxLights.registerGraphicComponent(containerName,"listBoxLights");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxLights.init(leftColumnStart, leftline, 80);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
for(int i= 1; i<=8; ++i){
|
|
|
|
|
listBoxLights.pushBackItem(intToStr(i));
|
|
|
|
|
}
|
|
|
|
|
listBoxLights.setSelectedItemIndex(clamp(config.getInt("MaxLights")-1, 0, 7));
|
2010-04-01 00:13:28 +00:00
|
|
|
|
leftline-=30;
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-01 00:13:28 +00:00
|
|
|
|
//unit particles
|
2010-09-09 06:42:39 +00:00
|
|
|
|
labelUnitParticles.registerGraphicComponent(containerName,"labelUnitParticles");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
labelUnitParticles.init(leftLabelStart,leftline);
|
|
|
|
|
labelUnitParticles.setText(lang.get("ShowUnitParticles"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
listBoxUnitParticles.registerGraphicComponent(containerName,"listBoxUnitParticles");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxUnitParticles.init(leftColumnStart,leftline,80);
|
|
|
|
|
listBoxUnitParticles.pushBackItem(lang.get("No"));
|
|
|
|
|
listBoxUnitParticles.pushBackItem(lang.get("Yes"));
|
|
|
|
|
listBoxUnitParticles.setSelectedItemIndex(clamp(config.getBool("UnitParticles"), 0, 1));
|
|
|
|
|
leftline-=30;
|
2010-03-20 12:11:46 +00:00
|
|
|
|
|
2010-09-26 21:34:00 +00:00
|
|
|
|
//unit particles
|
|
|
|
|
labelMapPreview.registerGraphicComponent(containerName,"labelMapPreview");
|
|
|
|
|
labelMapPreview.init(leftLabelStart,leftline);
|
|
|
|
|
labelMapPreview.setText(lang.get("ShowMapPreview"));
|
|
|
|
|
|
|
|
|
|
listBoxMapPreview.registerGraphicComponent(containerName,"listBoxMapPreview");
|
|
|
|
|
listBoxMapPreview.init(leftColumnStart,leftline,80);
|
|
|
|
|
listBoxMapPreview.pushBackItem(lang.get("No"));
|
|
|
|
|
listBoxMapPreview.pushBackItem(lang.get("Yes"));
|
|
|
|
|
listBoxMapPreview.setSelectedItemIndex(clamp(config.getBool("MapPreview","true"), 0, 1));
|
|
|
|
|
leftline-=30;
|
|
|
|
|
|
2010-04-01 00:13:28 +00:00
|
|
|
|
// buttons
|
2010-09-09 06:42:39 +00:00
|
|
|
|
buttonOk.registerGraphicComponent(containerName,"buttonOk");
|
2010-12-09 20:41:11 +00:00
|
|
|
|
buttonOk.init(200, buttonRowPos, 100);
|
2010-04-01 00:13:28 +00:00
|
|
|
|
buttonOk.setText(lang.get("Ok"));
|
|
|
|
|
buttonAbort.setText(lang.get("Abort"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
buttonAbort.registerGraphicComponent(containerName,"buttonAbort");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
buttonAbort.init(310, buttonRowPos, 100);
|
|
|
|
|
buttonAutoConfig.setText(lang.get("AutoConfig"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
|
|
|
|
|
buttonAutoConfig.registerGraphicComponent(containerName,"buttonAutoConfig");
|
2010-04-01 00:13:28 +00:00
|
|
|
|
buttonAutoConfig.init(450, buttonRowPos, 125);
|
2010-03-23 02:37:41 +00:00
|
|
|
|
|
2010-07-11 07:38:08 +00:00
|
|
|
|
buttonVideoInfo.setText(lang.get("VideoInfo"));
|
2010-09-09 06:42:39 +00:00
|
|
|
|
buttonVideoInfo.registerGraphicComponent(containerName,"buttonVideoInfo");
|
2010-09-26 21:34:00 +00:00
|
|
|
|
buttonVideoInfo.init(620, buttonRowPos, 125);
|
2010-07-11 07:38:08 +00:00
|
|
|
|
|
2010-09-09 06:42:39 +00:00
|
|
|
|
GraphicComponent::applyAllCustomProperties(containerName);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
}
|
|
|
|
|
|
2010-04-02 14:21:43 +00:00
|
|
|
|
void MenuStateOptions::showMessageBox(const string &text, const string &header, bool toggle){
|
|
|
|
|
if(!toggle){
|
|
|
|
|
mainMessageBox.setEnabled(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!mainMessageBox.getEnabled()){
|
|
|
|
|
mainMessageBox.setText(text);
|
|
|
|
|
mainMessageBox.setHeader(header);
|
|
|
|
|
mainMessageBox.setEnabled(true);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
mainMessageBox.setEnabled(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
void MenuStateOptions::mouseClick(int x, int y, MouseButton mouseButton){
|
|
|
|
|
|
|
|
|
|
Config &config= Config::getInstance();
|
|
|
|
|
CoreData &coreData= CoreData::getInstance();
|
|
|
|
|
SoundRenderer &soundRenderer= SoundRenderer::getInstance();
|
|
|
|
|
|
2010-04-02 14:21:43 +00:00
|
|
|
|
if(mainMessageBox.getEnabled()){
|
|
|
|
|
int button= 1;
|
|
|
|
|
if(mainMessageBox.mouseClick(x, y, button))
|
|
|
|
|
{
|
|
|
|
|
soundRenderer.playFx(coreData.getClickSoundA());
|
|
|
|
|
if(button==1)
|
|
|
|
|
{
|
|
|
|
|
if(mainMessageBoxState==1)
|
|
|
|
|
{
|
|
|
|
|
mainMessageBox.setEnabled(false);
|
|
|
|
|
saveConfig();
|
|
|
|
|
mainMenu->setState(new MenuStateRoot(program, mainMenu));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
mainMessageBox.setEnabled(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(buttonOk.mouseClick(x, y)){
|
2010-03-23 01:38:19 +00:00
|
|
|
|
soundRenderer.playFx(coreData.getClickSoundA());
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-02 14:21:43 +00:00
|
|
|
|
string currentResolution=config.getString("ScreenWidth")+"x"+config.getString("ScreenHeight")+"-"+intToStr(config.getInt("ColorBits"));
|
|
|
|
|
string selectedResolution=listBoxScreenModes.getSelectedItem();
|
|
|
|
|
if(currentResolution!=selectedResolution){
|
|
|
|
|
mainMessageBoxState=1;
|
|
|
|
|
Lang &lang= Lang::getInstance();
|
|
|
|
|
showMessageBox(lang.get("RestartNeeded"), lang.get("ResolutionChanged"), false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2010-04-07 22:20:28 +00:00
|
|
|
|
string currentFontSizeAdjustment=config.getString("FontSizeAdjustment");
|
|
|
|
|
string selectedFontSizeAdjustment=listFontSizeAdjustment.getSelectedItem();
|
|
|
|
|
if(currentFontSizeAdjustment!=selectedFontSizeAdjustment){
|
|
|
|
|
mainMessageBoxState=1;
|
|
|
|
|
Lang &lang= Lang::getInstance();
|
|
|
|
|
showMessageBox(lang.get("RestartNeeded"), lang.get("FontSizeAdjustmentChanged"), false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-05-03 22:07:27 +00:00
|
|
|
|
bool currentFullscreenWindowed=config.getBool("Windowed");
|
2010-10-21 17:42:45 +00:00
|
|
|
|
bool selectedFullscreenWindowed = (listBoxFullscreenWindowed.getSelectedItemIndex() != 0);
|
2010-05-03 22:07:27 +00:00
|
|
|
|
if(currentFullscreenWindowed!=selectedFullscreenWindowed){
|
|
|
|
|
mainMessageBoxState=1;
|
|
|
|
|
Lang &lang= Lang::getInstance();
|
|
|
|
|
showMessageBox(lang.get("RestartNeeded"), lang.get("DisplaySettingsChanged"), false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-03-23 01:38:19 +00:00
|
|
|
|
saveConfig();
|
|
|
|
|
mainMenu->setState(new MenuStateRoot(program, mainMenu));
|
2010-03-23 02:37:41 +00:00
|
|
|
|
}
|
2010-03-23 01:38:19 +00:00
|
|
|
|
else if(buttonAbort.mouseClick(x, y)){
|
2010-03-20 12:11:46 +00:00
|
|
|
|
soundRenderer.playFx(coreData.getClickSoundA());
|
|
|
|
|
mainMenu->setState(new MenuStateRoot(program, mainMenu));
|
2010-03-23 02:37:41 +00:00
|
|
|
|
}
|
2010-03-20 12:11:46 +00:00
|
|
|
|
else if(buttonAutoConfig.mouseClick(x, y)){
|
|
|
|
|
soundRenderer.playFx(coreData.getClickSoundA());
|
|
|
|
|
Renderer::getInstance().autoConfig();
|
|
|
|
|
saveConfig();
|
|
|
|
|
mainMenu->setState(new MenuStateOptions(program, mainMenu));
|
2010-03-23 02:37:41 +00:00
|
|
|
|
}
|
2010-07-11 07:38:08 +00:00
|
|
|
|
else if(buttonVideoInfo.mouseClick(x, y)){
|
|
|
|
|
soundRenderer.playFx(coreData.getClickSoundA());
|
|
|
|
|
mainMenu->setState(new MenuStateGraphicInfo(program, mainMenu));
|
|
|
|
|
}
|
2010-03-23 01:38:19 +00:00
|
|
|
|
else if(labelPlayerName.mouseClick(x, y) && ( activeInputLabel != &labelPlayerName )){
|
|
|
|
|
setActiveInputLable(&labelPlayerName);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
}
|
2010-03-23 01:38:19 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
listBoxLang.mouseClick(x, y);
|
|
|
|
|
listBoxShadows.mouseClick(x, y);
|
|
|
|
|
listBoxFilter.mouseClick(x, y);
|
|
|
|
|
listBoxTextures3D.mouseClick(x, y);
|
|
|
|
|
listBoxUnitParticles.mouseClick(x, y);
|
2010-09-26 21:34:00 +00:00
|
|
|
|
listBoxMapPreview.mouseClick(x, y);
|
2010-03-23 01:38:19 +00:00
|
|
|
|
listBoxLights.mouseClick(x, y);
|
2010-07-16 06:35:22 +00:00
|
|
|
|
listBoxSoundFactory.mouseClick(x, y);
|
2010-03-23 01:38:19 +00:00
|
|
|
|
listBoxVolumeFx.mouseClick(x, y);
|
|
|
|
|
listBoxVolumeAmbient.mouseClick(x, y);
|
|
|
|
|
listBoxVolumeMusic.mouseClick(x, y);
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxScreenModes.mouseClick(x, y);
|
2010-04-07 22:20:28 +00:00
|
|
|
|
listFontSizeAdjustment.mouseClick(x, y);
|
2010-05-03 22:07:27 +00:00
|
|
|
|
listBoxFullscreenWindowed.mouseClick(x, y);
|
2010-10-11 00:53:25 +00:00
|
|
|
|
listBoxPublishServerExternalPort.mouseClick(x, y);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MenuStateOptions::mouseMove(int x, int y, const MouseState *ms){
|
2010-04-02 14:21:43 +00:00
|
|
|
|
if (mainMessageBox.getEnabled()) {
|
|
|
|
|
mainMessageBox.mouseMove(x, y);
|
|
|
|
|
}
|
2010-03-23 01:38:19 +00:00
|
|
|
|
buttonOk.mouseMove(x, y);
|
|
|
|
|
buttonAbort.mouseMove(x, y);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
buttonAutoConfig.mouseMove(x, y);
|
2010-07-11 07:38:08 +00:00
|
|
|
|
buttonVideoInfo.mouseMove(x, y);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
listBoxLang.mouseMove(x, y);
|
2010-07-16 06:35:22 +00:00
|
|
|
|
listBoxSoundFactory.mouseMove(x, y);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
listBoxVolumeFx.mouseMove(x, y);
|
|
|
|
|
listBoxVolumeAmbient.mouseMove(x, y);
|
|
|
|
|
listBoxVolumeMusic.mouseMove(x, y);
|
|
|
|
|
listBoxLang.mouseMove(x, y);
|
|
|
|
|
listBoxFilter.mouseMove(x, y);
|
|
|
|
|
listBoxShadows.mouseMove(x, y);
|
|
|
|
|
listBoxTextures3D.mouseMove(x, y);
|
|
|
|
|
listBoxUnitParticles.mouseMove(x, y);
|
2010-09-26 21:34:00 +00:00
|
|
|
|
listBoxMapPreview.mouseMove(x, y);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
listBoxLights.mouseMove(x, y);
|
2010-04-01 00:13:28 +00:00
|
|
|
|
listBoxScreenModes.mouseMove(x, y);
|
2010-04-07 22:20:28 +00:00
|
|
|
|
listFontSizeAdjustment.mouseMove(x, y);
|
2010-10-11 00:53:25 +00:00
|
|
|
|
listBoxPublishServerExternalPort.mouseMove(x, y);
|
2010-03-20 12:11:46 +00:00
|
|
|
|
}
|
|
|
|
|
|
2010-03-23 01:38:19 +00:00
|
|
|
|
void MenuStateOptions::keyDown(char key){
|
|
|
|
|
if(activeInputLabel!=NULL)
|
|
|
|
|
{
|
|
|
|
|
if(key==vkBack){
|
|
|
|
|
string text= activeInputLabel->getText();
|
|
|
|
|
if(text.size()>1){
|
|
|
|
|
text.erase(text.end()-2);
|
|
|
|
|
}
|
|
|
|
|
activeInputLabel->setText(text);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MenuStateOptions::keyPress(char c){
|
|
|
|
|
if(activeInputLabel!=NULL)
|
|
|
|
|
{
|
|
|
|
|
int maxTextSize= 16;
|
|
|
|
|
if(&labelPlayerName==activeInputLabel){
|
|
|
|
|
if((c>='0' && c<='9')||(c>='a' && c<='z')||(c>='A' && c<='Z')||
|
|
|
|
|
(c=='-')||(c=='(')||(c==')')){
|
|
|
|
|
if(activeInputLabel->getText().size()<maxTextSize){
|
|
|
|
|
string text= activeInputLabel->getText();
|
2010-03-23 02:37:41 +00:00
|
|
|
|
text.insert(text.end()-1, c);
|
2010-03-23 01:38:19 +00:00
|
|
|
|
activeInputLabel->setText(text);
|
|
|
|
|
}
|
|
|
|
|
}
|
2010-03-23 02:37:41 +00:00
|
|
|
|
}
|
2010-03-23 01:38:19 +00:00
|
|
|
|
}
|
2010-09-09 21:07:39 +00:00
|
|
|
|
else {
|
|
|
|
|
Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
|
|
|
|
|
if(c == configKeys.getCharKey("SaveGUILayout")) {
|
|
|
|
|
bool saved = GraphicComponent::saveAllCustomProperties(containerName);
|
|
|
|
|
//Lang &lang= Lang::getInstance();
|
|
|
|
|
//console.addLine(lang.get("GUILayoutSaved") + " [" + (saved ? lang.get("Yes") : lang.get("No"))+ "]");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-23 01:38:19 +00:00
|
|
|
|
}
|
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
void MenuStateOptions::render(){
|
|
|
|
|
Renderer &renderer= Renderer::getInstance();
|
|
|
|
|
|
2010-04-02 14:21:43 +00:00
|
|
|
|
if(mainMessageBox.getEnabled()){
|
|
|
|
|
renderer.renderMessageBox(&mainMessageBox);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2010-04-03 17:17:15 +00:00
|
|
|
|
renderer.renderButton(&buttonOk);
|
|
|
|
|
renderer.renderButton(&buttonAbort);
|
|
|
|
|
renderer.renderButton(&buttonAutoConfig);
|
2010-07-11 07:38:08 +00:00
|
|
|
|
renderer.renderButton(&buttonVideoInfo);
|
2010-04-03 17:17:15 +00:00
|
|
|
|
renderer.renderListBox(&listBoxLang);
|
|
|
|
|
renderer.renderListBox(&listBoxShadows);
|
|
|
|
|
renderer.renderListBox(&listBoxTextures3D);
|
|
|
|
|
renderer.renderListBox(&listBoxUnitParticles);
|
2010-09-26 21:34:00 +00:00
|
|
|
|
renderer.renderListBox(&listBoxMapPreview);
|
2010-04-03 17:17:15 +00:00
|
|
|
|
renderer.renderListBox(&listBoxLights);
|
|
|
|
|
renderer.renderListBox(&listBoxFilter);
|
2010-07-16 06:35:22 +00:00
|
|
|
|
renderer.renderListBox(&listBoxSoundFactory);
|
2010-04-03 17:17:15 +00:00
|
|
|
|
renderer.renderListBox(&listBoxVolumeFx);
|
|
|
|
|
renderer.renderListBox(&listBoxVolumeAmbient);
|
|
|
|
|
renderer.renderListBox(&listBoxVolumeMusic);
|
|
|
|
|
renderer.renderLabel(&labelLang);
|
|
|
|
|
renderer.renderLabel(&labelPlayerNameLabel);
|
|
|
|
|
renderer.renderLabel(&labelPlayerName);
|
|
|
|
|
renderer.renderLabel(&labelShadows);
|
|
|
|
|
renderer.renderLabel(&labelTextures3D);
|
|
|
|
|
renderer.renderLabel(&labelUnitParticles);
|
2010-09-26 21:34:00 +00:00
|
|
|
|
renderer.renderLabel(&labelMapPreview);
|
2010-04-03 17:17:15 +00:00
|
|
|
|
renderer.renderLabel(&labelLights);
|
|
|
|
|
renderer.renderLabel(&labelFilter);
|
2010-07-16 06:35:22 +00:00
|
|
|
|
renderer.renderLabel(&labelSoundFactory);
|
2010-04-03 17:17:15 +00:00
|
|
|
|
renderer.renderLabel(&labelVolumeFx);
|
|
|
|
|
renderer.renderLabel(&labelVolumeAmbient);
|
|
|
|
|
renderer.renderLabel(&labelVolumeMusic);
|
|
|
|
|
renderer.renderLabel(&labelVideoSection);
|
|
|
|
|
renderer.renderLabel(&labelAudioSection);
|
|
|
|
|
renderer.renderLabel(&labelMiscSection);
|
|
|
|
|
renderer.renderLabel(&labelScreenModes);
|
|
|
|
|
renderer.renderListBox(&listBoxScreenModes);
|
|
|
|
|
renderer.renderLabel(&labelServerPortLabel);
|
|
|
|
|
renderer.renderLabel(&labelServerPort);
|
2010-04-07 22:20:28 +00:00
|
|
|
|
renderer.renderListBox(&listFontSizeAdjustment);
|
|
|
|
|
renderer.renderLabel(&labelFontSizeAdjustment);
|
2010-05-03 22:07:27 +00:00
|
|
|
|
renderer.renderLabel(&labelFullscreenWindowed);
|
|
|
|
|
renderer.renderListBox(&listBoxFullscreenWindowed);
|
2010-10-11 00:53:25 +00:00
|
|
|
|
renderer.renderLabel(&labelPublishServerExternalPort);
|
|
|
|
|
renderer.renderListBox(&listBoxPublishServerExternalPort);
|
2010-04-02 14:21:43 +00:00
|
|
|
|
}
|
2010-07-08 08:29:51 +00:00
|
|
|
|
|
|
|
|
|
if(program != NULL) program->renderProgramMsgBox();
|
2010-03-20 12:11:46 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MenuStateOptions::saveConfig(){
|
|
|
|
|
Config &config= Config::getInstance();
|
2010-03-23 01:38:19 +00:00
|
|
|
|
Lang &lang= Lang::getInstance();
|
|
|
|
|
setActiveInputLable(NULL);
|
2010-03-23 02:37:41 +00:00
|
|
|
|
|
2010-03-23 01:38:19 +00:00
|
|
|
|
if(labelPlayerName.getText().length()>0)
|
|
|
|
|
{
|
|
|
|
|
config.setString("NetPlayerName", labelPlayerName.getText());
|
|
|
|
|
}
|
|
|
|
|
//Copy values
|
|
|
|
|
config.setString("Lang", listBoxLang.getSelectedItem());
|
|
|
|
|
lang.loadStrings(config.getString("Lang"));
|
|
|
|
|
|
|
|
|
|
int index= listBoxShadows.getSelectedItemIndex();
|
|
|
|
|
config.setString("Shadows", Renderer::shadowsToStr(static_cast<Renderer::Shadows>(index)));
|
|
|
|
|
|
2010-10-21 17:42:45 +00:00
|
|
|
|
config.setBool("Windowed", (listBoxFullscreenWindowed.getSelectedItemIndex() != 0));
|
2010-03-23 01:38:19 +00:00
|
|
|
|
config.setString("Filter", listBoxFilter.getSelectedItem());
|
2010-10-21 17:42:45 +00:00
|
|
|
|
config.setBool("Textures3D", (listBoxTextures3D.getSelectedItemIndex() != 0));
|
|
|
|
|
config.setBool("UnitParticles", (listBoxUnitParticles.getSelectedItemIndex() != 0));
|
|
|
|
|
config.setBool("MapPreview", (listBoxMapPreview.getSelectedItemIndex() != 0));
|
2010-03-23 01:38:19 +00:00
|
|
|
|
config.setInt("MaxLights", listBoxLights.getSelectedItemIndex()+1);
|
2010-07-16 06:35:22 +00:00
|
|
|
|
config.setString("FactorySound", listBoxSoundFactory.getSelectedItem());
|
2010-03-23 01:38:19 +00:00
|
|
|
|
config.setString("SoundVolumeFx", listBoxVolumeFx.getSelectedItem());
|
|
|
|
|
config.setString("SoundVolumeAmbient", listBoxVolumeAmbient.getSelectedItem());
|
2010-04-07 22:20:28 +00:00
|
|
|
|
config.setString("FontSizeAdjustment", listFontSizeAdjustment.getSelectedItem());
|
2010-03-23 01:38:19 +00:00
|
|
|
|
CoreData::getInstance().getMenuMusic()->setVolume(strToInt(listBoxVolumeMusic.getSelectedItem())/100.f);
|
|
|
|
|
config.setString("SoundVolumeMusic", listBoxVolumeMusic.getSelectedItem());
|
2010-10-11 00:53:25 +00:00
|
|
|
|
config.setString("MasterServerExternalPort", listBoxPublishServerExternalPort.getSelectedItem());
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-04-01 00:13:28 +00:00
|
|
|
|
string currentResolution=config.getString("ScreenWidth")+"x"+config.getString("ScreenHeight");
|
|
|
|
|
string selectedResolution=listBoxScreenModes.getSelectedItem();
|
|
|
|
|
if(currentResolution!=selectedResolution){
|
|
|
|
|
for(list<ModeInfo>::const_iterator it= modeInfos.begin(); it!=modeInfos.end(); ++it){
|
|
|
|
|
if((*it).getString()==selectedResolution)
|
|
|
|
|
{
|
|
|
|
|
config.setInt("ScreenWidth",(*it).width);
|
|
|
|
|
config.setInt("ScreenHeight",(*it).height);
|
2010-04-02 14:21:43 +00:00
|
|
|
|
config.setInt("ColorBits",(*it).depth);
|
2010-04-01 00:13:28 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2010-12-09 20:41:11 +00:00
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
config.save();
|
2010-07-16 06:35:22 +00:00
|
|
|
|
|
|
|
|
|
SoundRenderer &soundRenderer= SoundRenderer::getInstance();
|
|
|
|
|
soundRenderer.stopAllSounds();
|
|
|
|
|
bool initOk = soundRenderer.init(program->getWindow());
|
|
|
|
|
soundRenderer.loadConfig();
|
|
|
|
|
soundRenderer.setMusicVolume(CoreData::getInstance().getMenuMusic());
|
|
|
|
|
soundRenderer.playMusic(CoreData::getInstance().getMenuMusic());
|
|
|
|
|
|
2010-05-20 21:32:25 +00:00
|
|
|
|
Renderer::getInstance().loadConfig();
|
2010-03-20 12:11:46 +00:00
|
|
|
|
}
|
|
|
|
|
|
2010-03-23 01:38:19 +00:00
|
|
|
|
void MenuStateOptions::setActiveInputLable(GraphicLabel *newLable)
|
|
|
|
|
{
|
|
|
|
|
if(newLable!=NULL){
|
|
|
|
|
string text= newLable->getText();
|
|
|
|
|
size_t found;
|
|
|
|
|
found=text.find_last_of("_");
|
|
|
|
|
if (found==string::npos)
|
|
|
|
|
{
|
|
|
|
|
text=text+"_";
|
|
|
|
|
}
|
|
|
|
|
newLable->setText(text);
|
|
|
|
|
}
|
|
|
|
|
if(activeInputLabel!=NULL && !activeInputLabel->getText().empty()){
|
|
|
|
|
string text= activeInputLabel->getText();
|
|
|
|
|
size_t found;
|
|
|
|
|
found=text.find_last_of("_");
|
|
|
|
|
if (found!=string::npos)
|
|
|
|
|
{
|
|
|
|
|
text=text.substr(0,found);
|
|
|
|
|
}
|
|
|
|
|
activeInputLabel->setText(text);
|
|
|
|
|
}
|
|
|
|
|
activeInputLabel=newLable;
|
|
|
|
|
}
|
|
|
|
|
|
2010-03-20 12:11:46 +00:00
|
|
|
|
}}//end namespace
|