Jeck - Hopefully fixes issue 114.

* Options before the desired optionID were not using the correct option class.
 * Enums were expected to be lower-case.
This commit is contained in:
wagic.jeck
2009-10-20 16:54:53 +00:00
parent 83bc12a275
commit 63ddbd52ad
3 changed files with 12 additions and 5 deletions

View File

@@ -327,6 +327,7 @@ public:
virtual void Update(float dt); virtual void Update(float dt);
virtual void ButtonPressed(int controllerId, int controlId); virtual void ButtonPressed(int controllerId, int controlId);
virtual void Add(WGuiBase* item); virtual void Add(WGuiBase* item);
virtual void confirmChange(bool confirmed);
WGuiBase * Current(); WGuiBase * Current();
void nextItem(); void nextItem();

View File

@@ -325,7 +325,7 @@ GameOption * GameOptions::get(int optionID) {
values.reserve(optionID); values.reserve(optionID);
while(x <= optionID){ while(x <= optionID){
switch(optionID){ switch(x){
case Options::HANDDIRECTION: case Options::HANDDIRECTION:
goEnum = NEW GameOptionEnum(); goEnum = NEW GameOptionEnum();
goEnum->def = OptionHandDirection::getInstance(); goEnum->def = OptionHandDirection::getInstance();
@@ -633,7 +633,9 @@ bool GameOptionEnum::read(string input){
vector<EnumDefinition::assoc>::iterator it; vector<EnumDefinition::assoc>::iterator it;
for(it=def->values.begin();it != def->values.end();it++){ for(it=def->values.begin();it != def->values.end();it++){
if(it->second == input){ string v = it->second;
std::transform(v.begin(),v.end(),v.begin(),::tolower);
if(v == input){
number = it->first; number = it->first;
return true; return true;
} }
@@ -654,8 +656,8 @@ OptionHandDirection::OptionHandDirection(){
}; };
OptionManaDisplay OptionManaDisplay::mDef; OptionManaDisplay OptionManaDisplay::mDef;
OptionManaDisplay::OptionManaDisplay(){ OptionManaDisplay::OptionManaDisplay(){
mDef.values.push_back(EnumDefinition::assoc(STATIC, "Simple"));
mDef.values.push_back(EnumDefinition::assoc(DYNAMIC, "Eye candy")); mDef.values.push_back(EnumDefinition::assoc(DYNAMIC, "Eye candy"));
mDef.values.push_back(EnumDefinition::assoc(STATIC, "Simple"));
mDef.values.push_back(EnumDefinition::assoc(BOTH, "Both")); mDef.values.push_back(EnumDefinition::assoc(BOTH, "Both"));
}; };
OptionVolume OptionVolume::mDef; OptionVolume OptionVolume::mDef;
@@ -666,7 +668,7 @@ OptionVolume::OptionVolume(){
OptionDifficulty OptionDifficulty::mDef; OptionDifficulty OptionDifficulty::mDef;
OptionDifficulty::OptionDifficulty(){ OptionDifficulty::OptionDifficulty(){
mDef.values.push_back(EnumDefinition::assoc(NORMAL, "Normal")); mDef.values.push_back(EnumDefinition::assoc(NORMAL, "Normal"));
mDef.values.push_back(EnumDefinition::assoc(HARDER, "Harder"));
mDef.values.push_back(EnumDefinition::assoc(HARD, "Hard")); mDef.values.push_back(EnumDefinition::assoc(HARD, "Hard"));
mDef.values.push_back(EnumDefinition::assoc(HARDER, "Harder"));
mDef.values.push_back(EnumDefinition::assoc(EVIL, "Evil")); mDef.values.push_back(EnumDefinition::assoc(EVIL, "Evil"));
}; };

View File

@@ -767,7 +767,6 @@ void WDecoConfirm::setData(){
if(!it) if(!it)
return; return;
it->confirmChange(true);
it->setData(); it->setData();
} }
@@ -1064,6 +1063,10 @@ void WGuiMenu::Render(){
for(vector<WGuiBase*>::iterator it = items.begin();it!=items.end();it++) for(vector<WGuiBase*>::iterator it = items.begin();it!=items.end();it++)
(*it)->Render(); (*it)->Render();
} }
void WGuiMenu::confirmChange(bool confirmed){
for(vector<WGuiBase*>::iterator it = items.begin();it!=items.end();it++)
(*it)->confirmChange(confirmed);
}
void WGuiMenu::ButtonPressed(int controllerId, int controlId){ void WGuiMenu::ButtonPressed(int controllerId, int controlId){
WGuiBase * it = Current(); WGuiBase * it = Current();
@@ -1137,6 +1140,7 @@ void WGuiTabMenu::Render(){
} }
void WGuiTabMenu::save(){ void WGuiTabMenu::save(){
confirmChange(true);
setData(); setData();
::options.save(); ::options.save();
} }