浏览代码

Fix spellcast cancelation in battle

Ivan Savenko 2 年之前
父节点
当前提交
1cec6918a0
共有 3 个文件被更改,包括 4 次插入8 次删除
  1. 3 0
      client/battle/BattleActionsController.cpp
  2. 1 7
      client/battle/BattleWindow.cpp
  3. 0 1
      client/battle/BattleWindow.h

+ 3 - 0
client/battle/BattleActionsController.cpp

@@ -971,6 +971,9 @@ void BattleActionsController::activateStack()
 
 void BattleActionsController::onHexRightClicked(BattleHex clickedHex)
 {
+	if (spellcastingModeActive())
+		endCastingSpell();
+
 	auto selectedStack = owner.curInt->cb->battleGetStackByPos(clickedHex, true);
 
 	if (selectedStack != nullptr)

+ 1 - 7
client/battle/BattleWindow.cpp

@@ -85,7 +85,7 @@ BattleWindow::BattleWindow(BattleInterface & owner):
 	else
 		tacticPhaseEnded();
 
-	addUsedEvents(RCLICK | KEYBOARD);
+	addUsedEvents(KEYBOARD);
 }
 
 void BattleWindow::createQueue()
@@ -203,12 +203,6 @@ void BattleWindow::keyPressed(EShortcut key)
 	InterfaceObjectConfigurable::keyPressed(key);
 }
 
-void BattleWindow::clickRight(tribool down, bool previousState)
-{
-	if (!down)
-		owner.actionsController->endCastingSpell();
-}
-
 void BattleWindow::tacticPhaseStarted()
 {
 	auto menuBattle = widget<CIntObject>("menuBattle");

+ 0 - 1
client/battle/BattleWindow.h

@@ -86,7 +86,6 @@ public:
 	void deactivate() override;
 	void keyPressed(EShortcut key) override;
 	bool captureThisKey(EShortcut key) override;
-	void clickRight(tribool down, bool previousState) override;
 	void show(Canvas & to) override;
 	void showAll(Canvas & to) override;