Added a new game option to allow the user to decide how to sort sets in filter and award section (by sector, by name or by release date).

This commit is contained in:
Vittorio Alfieri
2021-01-09 13:34:42 +01:00
parent 7a6c4b2c15
commit 7c8b634086
8 changed files with 57 additions and 2 deletions
+17
View File
@@ -23,6 +23,7 @@ const string Options::optionNames[] = {
"ShowBorder",
"BlackBorder",
"ShowTokens",
"SortingSets",
"GDVLargeImages",
"CardPrefetching",
"displayOSD",
@@ -493,6 +494,11 @@ GameOption * GameOptions::get(int optionID)
goEnum->def = OptionMaxGrade::getInstance();
go = goEnum;
break;
case Options::SORTINGSETS:
goEnum = NEW GameOptionEnum();
goEnum->def = OptionASortingSets::getInstance();
go = goEnum;
break;
case Options::ASPHASES:
goEnum = NEW GameOptionEnum();
goEnum->def = OptionASkipPhase::getInstance();
@@ -960,6 +966,17 @@ OptionMaxGrade::OptionMaxGrade()
;
// MARK: -
// MARK: OptionASortingSets
OptionASortingSets OptionASortingSets::mDef = OptionASortingSets();
OptionASortingSets::OptionASortingSets()
{
mDef.values.push_back(EnumDefinition::assoc(Constants::BY_SECTOR, "Sector"));
mDef.values.push_back(EnumDefinition::assoc(Constants::BY_NAME, "Name"));
mDef.values.push_back(EnumDefinition::assoc(Constants::BY_DATE, "Date"));
}
// MARK: -
// MARK: OptionASkipPhase
OptionASkipPhase OptionASkipPhase::mDef = OptionASkipPhase();
+6 -1
View File
@@ -99,7 +99,12 @@ void GameStateAwards::Start()
vector<pair<string, string> > orderedSet;
for(int i = 0; i < setlist.size(); i++){
sprintf(buf, "%s", setlist[i].c_str());
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getOrderIndex(), buf)); // Now sets are sorted by new Order Index tag.
if (options[Options::SORTINGSETS].number == 2) // Now sets can be sorted by sector(orderindex) or name or release date.
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getDate(), buf));
else if (options[Options::SORTINGSETS].number == 1)
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getName(), buf));
else
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getOrderIndex(), buf));
}
sort(orderedSet.begin(),orderedSet.end());
for (unsigned int i = 0; i < orderedSet.size(); i++)
+2
View File
@@ -73,6 +73,8 @@ void GameStateOptions::Start()
optionsList = NEW WGuiList("Game");
optionsList->Add(NEW WGuiHeader("Interface Options"));
optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::SORTINGSETS, "Sort sets by", Constants::BY_DATE, 1,
Constants::BY_NAME, "", Constants::BY_SECTOR))); // Now sets can be sorted by sector(orderindex) or name or release date.
optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::CLOSEDHAND, "Closed hand", 1, 1, 0)));
optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::HANDDIRECTION, "Hand direction", 1, 1, 0)));
optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::MANADISPLAY, "Mana display", 3, 1, 0)));
+6 -1
View File
@@ -2221,7 +2221,12 @@ void WGuiFilterItem::updateValue()
vector<pair<string, string> > orderedSet;
for(int i = 0; i < setlist.size(); i++){
if (options[Options::optionSet(i)].number == 0) continue;
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getOrderIndex(), setlist[i].c_str())); // Now sets are sorted by new Order Index tag.
if (options[Options::SORTINGSETS].number == Constants::BY_DATE) // Now sets can be sorted by sector(orderindex) or name or release date.
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getDate(), setlist[i].c_str()));
else if (options[Options::SORTINGSETS].number == Constants::BY_NAME)
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getName(), setlist[i].c_str()));
else
orderedSet.push_back(pair<string, string> (setlist.getInfo(i)->getOrderIndex(), setlist[i].c_str()));
}
sort(orderedSet.begin(),orderedSet.end());
for (unsigned int i = 0; i < orderedSet.size(); i++){