Skip to content

Commit 17cee5e

Browse files
committed
Improve reverse handling
1 parent caa009d commit 17cee5e

File tree

1 file changed

+13
-36
lines changed

1 file changed

+13
-36
lines changed

SerialPrograms/Source/PokemonHome/Programs/PokemonHome_BoxSorting.cpp

Lines changed: 13 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -193,69 +193,46 @@ bool operator<(const std::optional<Pokemon>& lhs, const std::optional<Pokemon>&
193193
}
194194

195195
for (const BoxSortingSelection preference : *lhs->preferences){
196+
bool ret = true;
196197
switch(preference.sort_type){
197198
// NOTE edit when adding new struct members
198199
case BoxSortingSortType::NationalDexNo:
199200
if (lhs->national_dex_number != rhs->national_dex_number){
200-
if (preference.reverse){
201-
return lhs->national_dex_number > rhs->national_dex_number;
202-
}else{
203-
return lhs->national_dex_number < rhs->national_dex_number;
204-
}
201+
ret = lhs->national_dex_number < rhs->national_dex_number;
205202
}
206203
break;
207204
case BoxSortingSortType::Shiny:
208205
if (lhs->shiny != rhs->shiny){
209-
if (preference.reverse){
210-
return rhs->shiny;
211-
}else{
212-
return lhs->shiny;
213-
}
206+
ret = lhs->shiny;
214207
}
215208
break;
216209
case BoxSortingSortType::Gigantamax:
217210
if (lhs->gmax != rhs->gmax){
218-
if (preference.reverse){
219-
return rhs->gmax;
220-
}else{
221-
return lhs->gmax;
222-
}
211+
ret = lhs->gmax;
223212
}
224213
break;
225214
case BoxSortingSortType::Ball_Slug:
226215
if (lhs->ball_slug < rhs->ball_slug){
227-
if (preference.reverse){
228-
return false;
229-
}else{
230-
return true;
231-
}
216+
ret = true;
232217
}
233218
if (lhs->ball_slug > rhs->ball_slug){
234-
if (preference.reverse){
235-
return true;
236-
}else{
237-
return false;
238-
}
219+
ret = false;
239220
}
240221
break;
241222
case BoxSortingSortType::Gender:
242223
if (lhs->gender < rhs->gender){
243-
if (preference.reverse){
244-
return false;
245-
}else{
246-
return true;
247-
}
224+
ret = true;
248225
}
249226
if (lhs->gender > rhs->gender){
250-
if (preference.reverse){
251-
return true;
252-
}
253-
else{
254-
return false;
255-
}
227+
ret = false;
256228
}
257229
break;
258230
}
231+
if (preference.reverse){
232+
return !ret;
233+
}else{
234+
return ret;
235+
}
259236
}
260237

261238
return lhs->national_dex_number < rhs->national_dex_number;

0 commit comments

Comments
 (0)