diff --git a/lib/battle/BattleInfo.cpp b/lib/battle/BattleInfo.cpp index 72842f944..d1a418caf 100644 --- a/lib/battle/BattleInfo.cpp +++ b/lib/battle/BattleInfo.cpp @@ -261,13 +261,12 @@ BattleInfo * BattleInfo::setupBattle(const int3 & tile, TerrainId terrain, const auto * info = Obstacle(id).getInfo(); return info && !info->isAbsoluteObstacle && info->isAppropriate(curB->terrainType, battlefieldType); }; - - RangeGenerator obidgen(0, VLC->obstacleHandler->objects.size() - 1, ourRand); if(r.rand(1,100) <= 40) //put cliff-like obstacle { try { + RangeGenerator obidgen(0, VLC->obstacleHandler->objects.size() - 1, ourRand); auto obstPtr = std::make_shared(); obstPtr->obstacleType = CObstacleInstance::ABSOLUTE_OBSTACLE; obstPtr->ID = obidgen.getSuchNumber(appropriateAbsoluteObstacle); @@ -289,6 +288,7 @@ BattleInfo * BattleInfo::setupBattle(const int3 & tile, TerrainId terrain, const { while(tilesToBlock > 0) { + RangeGenerator obidgen(0, VLC->obstacleHandler->objects.size() - 1, ourRand); auto tileAccessibility = curB->getAccesibility(); const int obid = obidgen.getSuchNumber(appropriateUsualObstacle); const ObstacleInfo &obi = *Obstacle(obid).getInfo();