浏览代码

compile fix, fixes blit order of heroes in siege

Ivan Savenko 12 年之前
父节点
当前提交
d09294e40a
共有 2 个文件被更改,包括 8 次插入6 次删除
  1. 7 5
      client/battle/CBattleInterface.cpp
  2. 1 1
      lib/CBattleCallback.cpp

+ 7 - 5
client/battle/CBattleInterface.cpp

@@ -3234,11 +3234,6 @@ void CBattleInterface::showBattlefieldObjects(SDL_Surface * to)
 		showBattleEffects(to, hex.effects);
 	};
 
-	if(attackingHero)
-		attackingHero->show(to);
-	if(defendingHero)
-		defendingHero->show(to);
-
 	BattleObjectsByHex objects = sortObjectsByHex();
 
 	// dead stacks should be blit first
@@ -3249,6 +3244,13 @@ void CBattleInterface::showBattlefieldObjects(SDL_Surface * to)
 
 	// display objects that must be blit before anything else (e.g. topmost walls)
 	showHexEntry(objects.beforeAll);
+
+	// show heroes after "beforeAll" - e.g. topmost wall in siege
+	if(attackingHero)
+		attackingHero->show(to);
+	if(defendingHero)
+		defendingHero->show(to);
+
 	// actual blit of most of objects, hex by hex
 	// NOTE: row-by-row blitting may be a better approach
 	for( auto & data : objects.hex )

+ 1 - 1
lib/CBattleCallback.cpp

@@ -2278,7 +2278,7 @@ si8 CBattleInfoCallback::battleMaxSpellLevel() const
 
 boost::optional<int> CBattleInfoCallback::battleIsFinished() const
 {
-	auto &stacks = battleGetAllStacks();
+	auto stacks = battleGetAllStacks();
 
 	//checking winning condition
 	bool hasStack[2]; //hasStack[0] - true if attacker has a living stack; defender similarly