diff --git a/projects/mtg/include/OptionItem.h b/projects/mtg/include/OptionItem.h index 6cb281579..533307f71 100644 --- a/projects/mtg/include/OptionItem.h +++ b/projects/mtg/include/OptionItem.h @@ -297,6 +297,7 @@ class WGuiList: public WGuiItem{ virtual bool Leaving(u32 key); virtual void Entering(u32 key); virtual void Render(); + virtual void confirmChange(bool confirmed); virtual void renderBack(WGuiBase * it); virtual void Reload(); virtual void ButtonPressed(int controllerId, int controlId); diff --git a/projects/mtg/src/GameStateOptions.cpp b/projects/mtg/src/GameStateOptions.cpp index 98545f4cc..731776fba 100644 --- a/projects/mtg/src/GameStateOptions.cpp +++ b/projects/mtg/src/GameStateOptions.cpp @@ -115,10 +115,9 @@ void GameStateOptions::Update(float dt) case SHOW_OPTIONS_MENU: optionsMenu->Update(dt); break; - } - + } if(mReload){ - options.reloadProfile(false); + options.reloadProfile(true); optionsTabs->Reload(); mReload = false; } diff --git a/projects/mtg/src/OptionItem.cpp b/projects/mtg/src/OptionItem.cpp index f70b010ed..4afdb77e4 100644 --- a/projects/mtg/src/OptionItem.cpp +++ b/projects/mtg/src/OptionItem.cpp @@ -174,8 +174,8 @@ OptionProfile::OptionProfile(GameApp * _app, JGuiListener * jgl): OptionDirector addSelection("Default"); sort(selections.begin(),selections.end()); mFocus = false; - populate(); initSelections(); + populate(); }; void OptionProfile::addSelection(string s){ @@ -201,12 +201,10 @@ void OptionProfile::Reload(){ populate(); } void OptionProfile::populate(){ - string temp = options[Options::ACTIVE_PROFILE].str; if (value >= selections.size()){ //TODO fail gracefully. return; } - options[Options::ACTIVE_PROFILE].str = selections[value]; PlayerData * pdata = NEW PlayerData(app->collection); options[Options::ACTIVE_PROFILE] = temp; @@ -267,15 +265,17 @@ void OptionProfile::confirmChange(bool confirmed){ int result; - if(confirmed) result = value; - else result = initialValue; + if(confirmed) result = value; + else result = initialValue; options[Options::ACTIVE_PROFILE] = selections[result]; value = result; populate(); - if(listener && confirmed) + if(listener && confirmed){ listener->ButtonPressed(-102,5); + initialValue = value; + } return; } @@ -416,6 +416,11 @@ void WGuiList::renderBack(WGuiBase * it){ } } +void WGuiList::confirmChange(bool confirmed){ + for(int x=0;xconfirmChange(confirmed); + } +} void WGuiList::Render(){ JRenderer * renderer = JRenderer::GetInstance(); int listHeight=40; @@ -685,8 +690,8 @@ void OptionTheme::confirmChange(bool confirmed){ value = prior_value; else{ setData(); - prior_value = value; resources.Refresh(); //Update images + prior_value = value; } } string WDecoEnum::lookupVal(int value){ @@ -1031,10 +1036,8 @@ void WGuiSplit::Reload(){ right->Reload(); } void WGuiSplit::confirmChange(bool confirmed){ - if(bRight) - right->confirmChange(confirmed); - else - left->confirmChange(confirmed); + right->confirmChange(confirmed); + left->confirmChange(confirmed); } //WGuiMenu