Moves "Current_Deck" from Quest Preferences to Quest Data.

Without this, the selected deck name was global for all quests - switching to another quest retained the deck name from the previous quest
and if the new quest had a deck with the identical name, selected that one, otherwise selected nothing. (in one weird case, this resulted in quest data that crashed caused bugs when loading forge - as quest was saved with a selected deck from another quest data.)
Preferred behavior is to select the deck that was last selected in THAT QUEST when switching to another quest.
This commit is contained in:
Seravy
2018-02-13 01:32:18 +01:00
parent 67e8046af6
commit 56983b2553
8 changed files with 26 additions and 11 deletions

View File

@@ -1620,11 +1620,11 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
DeckPreferences.setSealedDeck(deckStr);
break;
case Quest:
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, model.toString());
FModel.getQuest().setCurrentDeck(model.toString());
FModel.getQuest().save();
break;
case QuestDraft:
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, model.toString());
FModel.getQuest().setCurrentDeck(model.toString());
FModel.getQuest().save();
break;
default:

View File

@@ -42,10 +42,10 @@ public class QuestDecksScreen extends FScreen {
public void handleEvent(FEvent e) {
DeckProxy deck = lstDecks.getSelectedItem();
if (deck != null) {
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, deck.toString());
FModel.getQuest().setCurrentDeck(deck.toString());
}
else {
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, QPref.CURRENT_DECK.getDefault());
FModel.getQuest().setCurrentDeck(QPref.CURRENT_DECK.getDefault());
}
FModel.getQuestPreferences().save();
}
@@ -135,7 +135,7 @@ public class QuestDecksScreen extends FScreen {
lstDecks.setup(ItemManagerConfig.QUEST_DECKS);
// Look through list for preferred deck from prefs
final DeckProxy deck = hasQuest ? lstDecks.stringToItem(FModel.getQuestPreferences().getPref(QPref.CURRENT_DECK)) : null;
final DeckProxy deck = hasQuest ? lstDecks.stringToItem(FModel.getQuest().getCurrentDeck()) : null;
if (deck != null) {
lstDecks.setSelectedItem(deck);
}