Commit f6da54df authored by nanahira's avatar nanahira

Merge branch 'master' into another

parents d8eab44b e863104a
......@@ -819,7 +819,7 @@ void DeckBuilder::FilterCards() {
results.clear();
const wchar_t* pstr = mainGame->ebCardName->getText();
int trycode = BufferIO::GetVal(pstr);
if (dataManager.GetData(trycode, 0)) {
if(dataManager.GetData(trycode, 0)) {
auto ptr = dataManager.GetCodePointer(trycode); // verified by GetData()
results.push_back(ptr);
mainGame->scrFilter->setVisible(false);
......@@ -859,73 +859,72 @@ void DeckBuilder::FilterCards() {
query_elements.erase(*elements_track_iterator);
}
auto strpointer = dataManager._strings.begin();
for (code_pointer ptr = dataManager._datas.begin(); ptr != dataManager._datas.end(); ++ptr, ++strpointer) {
for(code_pointer ptr = dataManager._datas.begin(); ptr != dataManager._datas.end(); ++ptr, ++strpointer) {
const CardDataC& data = ptr->second;
const CardString& text = strpointer->second;
if (data.type & TYPE_TOKEN)
if(data.type & TYPE_TOKEN)
continue;
switch (filter_type) {
switch(filter_type) {
case 1: {
if (!(data.type & TYPE_MONSTER) || (data.type & filter_type2) != filter_type2)
if(!(data.type & TYPE_MONSTER) || (data.type & filter_type2) != filter_type2)
continue;
if (filter_race && data.race != filter_race)
if(filter_race && data.race != filter_race)
continue;
if (filter_attrib && data.attribute != filter_attrib)
if(filter_attrib && data.attribute != filter_attrib)
continue;
if (filter_atktype) {
if ((filter_atktype == 1 && data.attack != filter_atk) || (filter_atktype == 2 && data.attack < filter_atk)
|| (filter_atktype == 3 && data.attack <= filter_atk) || (filter_atktype == 4 && (data.attack > filter_atk || data.attack < 0))
|| (filter_atktype == 5 && (data.attack >= filter_atk || data.attack < 0)) || (filter_atktype == 6 && data.attack != -2))
if(filter_atktype) {
if((filter_atktype == 1 && data.attack != filter_atk) || (filter_atktype == 2 && data.attack < filter_atk)
|| (filter_atktype == 3 && data.attack <= filter_atk) || (filter_atktype == 4 && (data.attack > filter_atk || data.attack < 0))
|| (filter_atktype == 5 && (data.attack >= filter_atk || data.attack < 0)) || (filter_atktype == 6 && data.attack != -2))
continue;
}
if(filter_deftype) {
if((filter_deftype == 1 && data.defense != filter_def) || (filter_deftype == 2 && data.defense < filter_def)
|| (filter_deftype == 3 && data.defense <= filter_def) || (filter_deftype == 4 && (data.defense > filter_def || data.defense < 0))
|| (filter_deftype == 5 && (data.defense >= filter_def || data.defense < 0)) || (filter_deftype == 6 && data.defense != -2)
|| (data.type & TYPE_LINK))
|| (filter_deftype == 3 && data.defense <= filter_def) || (filter_deftype == 4 && (data.defense > filter_def || data.defense < 0))
|| (filter_deftype == 5 && (data.defense >= filter_def || data.defense < 0)) || (filter_deftype == 6 && data.defense != -2)
|| (data.type & TYPE_LINK))
continue;
}
if (filter_lvtype) {
if ((filter_lvtype == 1 && data.level != filter_lv) || (filter_lvtype == 2 && data.level < filter_lv)
|| (filter_lvtype == 3 && data.level <= filter_lv) || (filter_lvtype == 4 && data.level > filter_lv)
|| (filter_lvtype == 5 && data.level >= filter_lv) || filter_lvtype == 6)
if(filter_lvtype) {
if((filter_lvtype == 1 && data.level != filter_lv) || (filter_lvtype == 2 && data.level < filter_lv)
|| (filter_lvtype == 3 && data.level <= filter_lv) || (filter_lvtype == 4 && data.level > filter_lv)
|| (filter_lvtype == 5 && data.level >= filter_lv) || filter_lvtype == 6)
continue;
}
if(filter_scltype) {
if((filter_scltype == 1 && data.lscale != filter_scl) || (filter_scltype == 2 && data.lscale < filter_scl)
|| (filter_scltype == 3 && data.lscale <= filter_scl) || (filter_scltype == 4 && (data.lscale > filter_scl || data.lscale == 0))
|| (filter_scltype == 5 && (data.lscale >= filter_scl || data.lscale == 0)) || filter_scltype == 6
|| !(data.type & TYPE_PENDULUM))
|| (filter_scltype == 3 && data.lscale <= filter_scl) || (filter_scltype == 4 && (data.lscale > filter_scl || data.lscale == 0))
|| (filter_scltype == 5 && (data.lscale >= filter_scl || data.lscale == 0)) || filter_scltype == 6
|| !(data.type & TYPE_PENDULUM))
continue;
}
break;
}
case 2: {
if (!(data.type & TYPE_SPELL))
if(!(data.type & TYPE_SPELL))
continue;
if (filter_type2 && data.type != filter_type2)
if(filter_type2 && data.type != filter_type2)
continue;
break;
}
case 3: {
if (!(data.type & TYPE_TRAP))
if(!(data.type & TYPE_TRAP))
continue;
if (filter_type2 && data.type != filter_type2)
if(filter_type2 && data.type != filter_type2)
continue;
break;
}
}
if (filter_effect && !(data.category & filter_effect))
if(filter_effect && !(data.category & filter_effect))
continue;
if(filter_marks && (data.link_marker & filter_marks)!= filter_marks)
continue;
if(filter_lm) {
if(filter_lm <= 3 && (!filterList->count(ptr->first) || (*filterList)[ptr->first] != filter_lm - 1))
continue;
if (filter_lm == 4 && data.ot != 1)
if(filter_lm == 4 && data.ot != 1)
continue;
if (filter_lm == 5 && data.ot != 2)
if(filter_lm == 5 && data.ot != 2)
continue;
if(filter_lm == 6 && data.ot != 3)
continue;
......@@ -954,19 +953,17 @@ void DeckBuilder::FilterCards() {
}
}
}
if (is_target) {
if (is_target)
results.push_back(ptr);
} else {
else
continue;
}
}
myswprintf(result_string, L"%d", results.size());
if (results.size() > 7) {
if(results.size() > 7) {
mainGame->scrFilter->setVisible(true);
mainGame->scrFilter->setMax(results.size() - 7);
mainGame->scrFilter->setPos(0);
}
else {
} else {
mainGame->scrFilter->setVisible(false);
mainGame->scrFilter->setPos(0);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment