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

View File

@@ -1342,6 +1342,10 @@ Enable Prefetching=Habilitar captura previa
#Juego:
Game=Juego
Interface Options=Opciones de Interfaz
Sort sets by=Solicitar ediciones por
Sector=Sector
Name=Nombre
Date=Fecha
Language=Idioma
Closed hand=Cartas en mano
visible=Visible

View File

@@ -870,6 +870,10 @@ Enable Prefetching=Abilita la pre-elaborazione
#Gioco:
Game=Gioco
Interface Options=Opzioni dell'interfaccia
Sort sets by=Ordina le espansioni per
Sector=Settore
Name=Nome
Date=Data
Language=linguaggio
Closed hand=Carte in mano
visible=Visible

View File

@@ -47,6 +47,7 @@ public:
SHOWBORDER,
BLKBORDER,
SHOWTOKENS,
SORTINGSETS,
GDVLARGEIMAGE,
CARDPREFETCHING,
OSD,
@@ -274,6 +275,19 @@ private:
static OptionASkipPhase mDef;
};
class OptionASortingSets : public EnumDefinition
{
public:
static EnumDefinition * getInstance()
{
return &mDef;
}
private:
OptionASortingSets();
static OptionASortingSets mDef;
};
class OptionWhosFirst : public EnumDefinition
{
public:

View File

@@ -335,6 +335,10 @@ class Constants
GRADE_UNSUPPORTED = 4,
GRADE_DANGEROUS = 5,
BY_SECTOR=0,
BY_NAME=1,
BY_DATE=2,
ASKIP_NONE=0,
ASKIP_SAFE=1,
ASKIP_FULL=2,

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();

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++)

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)));

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++){