MCPcopy Create free account
hub / github.com/Open-GD/OpenGD / toggleDifficulty

Method toggleDifficulty

Source/LevelSearchLayer.cpp:384–453  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

382}
383
384void LevelSearchLayer::toggleDifficulty(ax::Object* ref)
385{
386 auto btn = dynamic_cast<ax::Node*>(ref);
387
388 int tag = btn->getTag();
389
390 bool naSelected = false;
391 bool autoSelected = false;
392 bool demonSelected = false;
393 int deselectPos = 0;
394
395 for (int i = 0; i < _selectedDifficulties.size(); ++i)
396 {
397 switch (_selectedDifficulties[i])
398 {
399 case 0:
400 naSelected = true;
401 deselectPos = i;
402 break;
403 case 6:
404 demonSelected = true;
405 deselectPos = i;
406 break;
407 case 7:
408 autoSelected = true;
409 deselectPos = i;
410 break;
411 }
412 }
413
414 bool deleselectNa = naSelected && tag != 0;
415 bool deselectDemon = demonSelected && tag != 6;
416 bool deselectAuto = autoSelected && tag != 7;
417
418 if (deleselectNa || deselectDemon || deselectAuto)
419 {
420 _extraDemonsBtn->setVisible(false);
421 _selectedDifficulties.erase(_selectedDifficulties.begin() + deselectPos);
422 _difficultyMenu->getChildByTag(0)->setColor(UNSELECTED_COLOR);
423 _difficultyMenu->getChildByTag(6)->setColor(UNSELECTED_COLOR);
424 _difficultyMenu->getChildByTag(7)->setColor(UNSELECTED_COLOR);
425 }
426
427 auto selected = std::find(_selectedDifficulties.begin(), _selectedDifficulties.end(), tag) != _selectedDifficulties.end();
428
429 if (selected)
430 {
431 if(tag == 6)
432 {
433 _extraDemonsBtn->setVisible(false);
434 }
435
436 std::erase(_selectedDifficulties, tag);
437 btn->setColor(UNSELECTED_COLOR);
438 }
439 else
440 {
441 if (tag == 0 || tag == 6 || tag == 7)

Callers

nothing calls this directly

Calls 6

findFunction · 0.85
eraseFunction · 0.85
sizeMethod · 0.80
beginMethod · 0.80
endMethod · 0.80
setColorMethod · 0.45

Tested by

no test coverage detected