Procházet zdrojové kódy

Timer works as designed

nordsoft před 2 roky
rodič
revize
00216168bf
2 změnil soubory, kde provedl 4 přidání a 4 odebrání
  1. 3 4
      server/CGameHandler.cpp
  2. 1 0
      server/TurnTimerHandler.cpp

+ 3 - 4
server/CGameHandler.cpp

@@ -1178,11 +1178,10 @@ bool CGameHandler::moveHero(ObjectInstanceID hid, int3 dst, ui8 teleporting, boo
 		for(auto topQuery = queries->topQuery(h->tempOwner); true; topQuery = queries->topQuery(h->tempOwner))
 		{
 			moveQuery = std::dynamic_pointer_cast<CHeroMovementQuery>(topQuery);
-			if(moveQuery
-			   && (!transit || result != TryMoveHero::SUCCESS))
-				queries->popIfTop(moveQuery);
-			else
+			if(!moveQuery || (transit && result == TryMoveHero::SUCCESS))
 				break;
+			
+			queries->popIfTop(moveQuery);
 		}
 		logGlobal->trace("Hero %s ends movement", h->getNameTranslated());
 		return result != TryMoveHero::FAILED;

+ 1 - 0
server/TurnTimerHandler.cpp

@@ -44,6 +44,7 @@ void TurnTimerHandler::setTimerEnabled(PlayerColor player, bool enabled)
 	std::lock_guard<std::recursive_mutex> guard(mx);
 	assert(player.isValidPlayer());
 	timers[player].isActive = enabled;
+	sendTimerUpdate(player);
 }
 
 void TurnTimerHandler::sendTimerUpdate(PlayerColor player)