|
@@ -35,15 +35,56 @@ CArtifactsOfHeroMain::~CArtifactsOfHeroMain()
|
|
|
|
|
|
void CArtifactsOfHeroMain::enableArtifactsCostumeSwitcher()
|
|
|
{
|
|
|
- size_t costumeIdx = 0;
|
|
|
- for(const auto & hotkey : costumesSwitcherHotkeys)
|
|
|
+ addUsedEvents(AEventsReceiver::KEYBOARD);
|
|
|
+}
|
|
|
+
|
|
|
+void CArtifactsOfHeroMain::keyPressed(EShortcut key)
|
|
|
+{
|
|
|
+ if(!shortcutPressed)
|
|
|
{
|
|
|
- auto keyProc = costumesSwitcherProcessors.emplace_back(std::make_shared<CKeyShortcut>(hotkey,
|
|
|
- [this, costumeIdx]()
|
|
|
- {
|
|
|
- LOCPLINT->cb->manageHeroCostume(getHero()->id, costumeIdx, GH.isKeyboardCtrlDown());
|
|
|
- }));
|
|
|
- keyProc->addUsedEvents(AEventsReceiver::KEYBOARD);
|
|
|
- costumeIdx++;
|
|
|
+ uint32_t costumeIdx;
|
|
|
+ switch(key)
|
|
|
+ {
|
|
|
+ case EShortcut::HERO_COSTUME_0:
|
|
|
+ costumeIdx = 0;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_1:
|
|
|
+ costumeIdx = 1;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_2:
|
|
|
+ costumeIdx = 2;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_3:
|
|
|
+ costumeIdx = 3;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_4:
|
|
|
+ costumeIdx = 4;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_5:
|
|
|
+ costumeIdx = 5;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_6:
|
|
|
+ costumeIdx = 6;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_7:
|
|
|
+ costumeIdx = 7;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_8:
|
|
|
+ costumeIdx = 8;
|
|
|
+ break;
|
|
|
+ case EShortcut::HERO_COSTUME_9:
|
|
|
+ costumeIdx = 9;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ shortcutPressed = true;
|
|
|
+ LOCPLINT->cb->manageHeroCostume(getHero()->id, costumeIdx, GH.isKeyboardCtrlDown());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+void CArtifactsOfHeroMain::keyReleased(EShortcut key)
|
|
|
+{
|
|
|
+ if(vstd::contains(costumesSwitcherHotkeys, key))
|
|
|
+ shortcutPressed = false;
|
|
|
+}
|