diff --git a/projects/mtg/bin/Res/lang/es.txt b/projects/mtg/bin/Res/lang/es.txt index 80e65c063..46bef2424 100644 --- a/projects/mtg/bin/Res/lang/es.txt +++ b/projects/mtg/bin/Res/lang/es.txt @@ -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 diff --git a/projects/mtg/bin/Res/lang/it.txt b/projects/mtg/bin/Res/lang/it.txt index f724ab79f..953019eca 100644 --- a/projects/mtg/bin/Res/lang/it.txt +++ b/projects/mtg/bin/Res/lang/it.txt @@ -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 diff --git a/projects/mtg/include/GameOptions.h b/projects/mtg/include/GameOptions.h index 63d2dc7fb..10f66eced 100644 --- a/projects/mtg/include/GameOptions.h +++ b/projects/mtg/include/GameOptions.h @@ -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: diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index d163b44a0..1b23fe03f 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -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, diff --git a/projects/mtg/src/GameOptions.cpp b/projects/mtg/src/GameOptions.cpp index 7891fe7ac..091370851 100644 --- a/projects/mtg/src/GameOptions.cpp +++ b/projects/mtg/src/GameOptions.cpp @@ -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(); diff --git a/projects/mtg/src/GameStateAwards.cpp b/projects/mtg/src/GameStateAwards.cpp index 8c7f52297..4405f0cff 100644 --- a/projects/mtg/src/GameStateAwards.cpp +++ b/projects/mtg/src/GameStateAwards.cpp @@ -99,7 +99,12 @@ void GameStateAwards::Start() vector > orderedSet; for(int i = 0; i < setlist.size(); i++){ sprintf(buf, "%s", setlist[i].c_str()); - orderedSet.push_back(pair (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 (setlist.getInfo(i)->getDate(), buf)); + else if (options[Options::SORTINGSETS].number == 1) + orderedSet.push_back(pair (setlist.getInfo(i)->getName(), buf)); + else + orderedSet.push_back(pair (setlist.getInfo(i)->getOrderIndex(), buf)); } sort(orderedSet.begin(),orderedSet.end()); for (unsigned int i = 0; i < orderedSet.size(); i++) diff --git a/projects/mtg/src/GameStateOptions.cpp b/projects/mtg/src/GameStateOptions.cpp index 0a9d6ecf4..1fd09265c 100644 --- a/projects/mtg/src/GameStateOptions.cpp +++ b/projects/mtg/src/GameStateOptions.cpp @@ -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))); diff --git a/projects/mtg/src/WGui.cpp b/projects/mtg/src/WGui.cpp index 12312f21a..dce74fe21 100644 --- a/projects/mtg/src/WGui.cpp +++ b/projects/mtg/src/WGui.cpp @@ -2221,7 +2221,12 @@ void WGuiFilterItem::updateValue() vector > orderedSet; for(int i = 0; i < setlist.size(); i++){ if (options[Options::optionSet(i)].number == 0) continue; - orderedSet.push_back(pair (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 (setlist.getInfo(i)->getDate(), setlist[i].c_str())); + else if (options[Options::SORTINGSETS].number == Constants::BY_NAME) + orderedSet.push_back(pair (setlist.getInfo(i)->getName(), setlist[i].c_str())); + else + orderedSet.push_back(pair (setlist.getInfo(i)->getOrderIndex(), setlist[i].c_str())); } sort(orderedSet.begin(),orderedSet.end()); for (unsigned int i = 0; i < orderedSet.size(); i++){