Jeck - Fix for set loading / unloading.
* This is a little dirty, as it's loading the profile multiple times. The proper way to do it would be to add any line starting with "unlocked_" to an array for deferred loading. This would also allow us to write those lines back even without the associated set being loaded. The clean solution is on my todo-list now :)
This commit is contained in:
@@ -72,7 +72,7 @@ void GameApp::Create()
|
|||||||
//Link this to our settings manager.
|
//Link this to our settings manager.
|
||||||
options.theGame = this;
|
options.theGame = this;
|
||||||
|
|
||||||
//Ensure that options are properly loaded before loading files.
|
//Ensure that options are partially loaded before loading files.
|
||||||
options.reloadProfile();
|
options.reloadProfile();
|
||||||
|
|
||||||
//Test for Music files presence
|
//Test for Music files presence
|
||||||
@@ -184,6 +184,9 @@ void GameApp::LoadGameStates()
|
|||||||
void GameApp::Destroy()
|
void GameApp::Destroy()
|
||||||
{
|
{
|
||||||
LOG("==Destroying GameApp==");
|
LOG("==Destroying GameApp==");
|
||||||
|
//Save game options before we destroy everything.
|
||||||
|
options.save();
|
||||||
|
|
||||||
for (int i=GAME_STATE_MENU;i<=MAX_STATE-1;i++)
|
for (int i=GAME_STATE_MENU;i<=MAX_STATE-1;i++)
|
||||||
{
|
{
|
||||||
if (mGameStates[i]){
|
if (mGameStates[i]){
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ int Options::getID(string name){
|
|||||||
|
|
||||||
//Is it an unlocked set?
|
//Is it an unlocked set?
|
||||||
string setname = name.substr(strlen("unlocked_"));
|
string setname = name.substr(strlen("unlocked_"));
|
||||||
if(MtgSets::SetsList){
|
if(MtgSets::SetsList && MtgSets::SetsList->nb_items){
|
||||||
int unlocked = MtgSets::SetsList->find(setname);
|
int unlocked = MtgSets::SetsList->find(setname);
|
||||||
if(unlocked != -1)
|
if(unlocked != -1)
|
||||||
return Options::optionSet(unlocked);
|
return Options::optionSet(unlocked);
|
||||||
@@ -434,12 +434,7 @@ GameSettings::GameSettings()
|
|||||||
}
|
}
|
||||||
|
|
||||||
GameSettings::~GameSettings(){
|
GameSettings::~GameSettings(){
|
||||||
if(globalOptions)
|
//Destructor no longer saves, to prevent conflicts when MtgSets::SetsList == NULL
|
||||||
globalOptions->save();
|
|
||||||
|
|
||||||
if(profileOptions)
|
|
||||||
profileOptions->save();
|
|
||||||
|
|
||||||
SAFE_DELETE(globalOptions);
|
SAFE_DELETE(globalOptions);
|
||||||
SAFE_DELETE(profileOptions);
|
SAFE_DELETE(profileOptions);
|
||||||
SAFE_DELETE(themeOptions);
|
SAFE_DELETE(themeOptions);
|
||||||
|
|||||||
@@ -324,8 +324,9 @@ void GameStateMenu::Update(float dt)
|
|||||||
}else{
|
}else{
|
||||||
currentState = MENU_STATE_MAJOR_FIRST_TIME | MENU_STATE_MINOR_NONE;
|
currentState = MENU_STATE_MAJOR_FIRST_TIME | MENU_STATE_MINOR_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Reload list of unlocked sets, now that we know about the sets.
|
//Reload list of unlocked sets, now that we know about the sets.
|
||||||
options.reloadProfile();
|
options.reloadProfile(false);
|
||||||
|
|
||||||
//List active profile and database size.
|
//List active profile and database size.
|
||||||
PlayerData * playerdata = NEW PlayerData(mParent->collection);
|
PlayerData * playerdata = NEW PlayerData(mParent->collection);
|
||||||
|
|||||||
Reference in New Issue
Block a user