diff --git a/lib/CGameState.cpp b/lib/CGameState.cpp index 9f905aca9..4bafb2a14 100644 --- a/lib/CGameState.cpp +++ b/lib/CGameState.cpp @@ -1906,7 +1906,7 @@ void CGameState::initVisitingAndGarrisonedHeroes() } } -BFieldType CGameState::battleGetBattlefieldType(int3 tile) +BFieldType CGameState::battleGetBattlefieldType(int3 tile, CRandomGenerator & r) { if(tile==int3() && curB) tile = curB->tile; @@ -1955,13 +1955,13 @@ BFieldType CGameState::battleGetBattlefieldType(int3 tile) switch(t.terType) { case ETerrainType::DIRT: - return BFieldType(rand.nextInt(3, 5)); + return BFieldType(r.nextInt(3, 5)); case ETerrainType::SAND: return BFieldType::SAND_MESAS; //TODO: coast support case ETerrainType::GRASS: - return BFieldType(rand.nextInt(6, 7)); + return BFieldType(r.nextInt(6, 7)); case ETerrainType::SNOW: - return BFieldType(rand.nextInt(10, 11)); + return BFieldType(r.nextInt(10, 11)); case ETerrainType::SWAMP: return BFieldType::SWAMP_TREES; case ETerrainType::ROUGH: diff --git a/lib/CGameState.h b/lib/CGameState.h index dd82517b8..44da5f7c4 100644 --- a/lib/CGameState.h +++ b/lib/CGameState.h @@ -218,7 +218,7 @@ public: void giveHeroArtifact(CGHeroInstance *h, ArtifactID aid); void apply(CPack *pack); - BFieldType battleGetBattlefieldType(int3 tile); + BFieldType battleGetBattlefieldType(int3 tile, CRandomGenerator & r); UpgradeInfo getUpgradeInfo(const CStackInstance &stack); PlayerRelations::PlayerRelations getPlayerRelations(PlayerColor color1, PlayerColor color2); bool checkForVisitableDir(const int3 & src, const int3 & dst) const; //check if src tile is visitable from dst tile diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index 908e2d50f..e21248fbd 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -1868,7 +1868,7 @@ void CGameHandler::setupBattle( int3 tile, const CArmedInstance *armies[2], cons if(gs->map->isCoastalTile(tile)) //coastal tile is always ground terrain = ETerrainType::SAND; - BFieldType terType = gs->battleGetBattlefieldType(tile); + BFieldType terType = gs->battleGetBattlefieldType(tile, getRandomGenerator()); if (heroes[0] && heroes[0]->boat && heroes[1] && heroes[1]->boat) terType = BFieldType::SHIP_TO_SHIP;