Browse Source

Fix handling damage in bridge in fortress (#349)

Remove "Moat" obstacle on bridge hex from affected obstacles by creature,
when bridge is opened/destroyed.

Resolves: https://bugs.vcmi.eu/view.php?id=2577
FeniksFire 8 years ago
parent
commit
b56d05b75b
1 changed files with 6 additions and 0 deletions
  1. 6 0
      lib/battle/CBattleInfoCallback.cpp

+ 6 - 0
lib/battle/CBattleInfoCallback.cpp

@@ -836,6 +836,12 @@ std::vector<std::shared_ptr<const CObstacleInstance>> CBattleInfoCallback::getAl
 				for(auto & i : battleGetAllObstaclesOnPos(otherHex, false))
 					affectedObstacles.push_back(i);
 		}
+		for(auto hex : stack->getHexes())
+			if(hex == ESiegeHex::GATE_BRIDGE)
+				if(battleGetGateState() == EGateState::OPENED || battleGetGateState() == EGateState::DESTROYED)
+					for(int i=0; i<affectedObstacles.size(); i++)
+						if(affectedObstacles.at(i)->obstacleType == CObstacleInstance::MOAT)
+							affectedObstacles.erase(affectedObstacles.begin()+i);
 	}
 	return affectedObstacles;
 }