1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

vcmi: use std::optional

This commit is contained in:
Konstantin
2023-04-16 20:42:56 +03:00
parent 0d35606a44
commit 7a5775a9f9
135 changed files with 552 additions and 585 deletions

View File

@@ -34,7 +34,7 @@ int32_t CBattleInfoEssentials::battleGetEnchanterCounter(ui8 side) const
return getBattle()->getEnchanterCounter(side);
}
std::vector<std::shared_ptr<const CObstacleInstance>> CBattleInfoEssentials::battleGetAllObstacles(boost::optional<BattlePerspective::BattlePerspective> perspective) const
std::vector<std::shared_ptr<const CObstacleInstance>> CBattleInfoEssentials::battleGetAllObstacles(std::optional<BattlePerspective::BattlePerspective> perspective) const
{
std::vector<std::shared_ptr<const CObstacleInstance> > ret;
RETURN_IF_NOT_BATTLE(ret);
@@ -42,7 +42,7 @@ std::vector<std::shared_ptr<const CObstacleInstance>> CBattleInfoEssentials::bat
if(!perspective)
{
//if no particular perspective request, use default one
perspective = boost::make_optional(battleGetMySide());
perspective = std::make_optional(battleGetMySide());
}
else
{
@@ -156,7 +156,7 @@ const CGTownInstance * CBattleInfoEssentials::battleGetDefendedTown() const
BattlePerspective::BattlePerspective CBattleInfoEssentials::battleGetMySide() const
{
RETURN_IF_NOT_BATTLE(BattlePerspective::INVALID);
if(!player || player.get().isSpectator())
if(!player || player->isSpectator())
return BattlePerspective::ALL_KNOWING;
if(*player == getBattle()->getSidePlayer(BattleSide::ATTACKER))
return BattlePerspective::LEFT_SIDE;
@@ -264,7 +264,7 @@ bool CBattleInfoEssentials::battleCanFlee(const PlayerColor & player) const
if(!side)
return false;
const CGHeroInstance *myHero = battleGetFightingHero(side.get());
const CGHeroInstance * myHero = battleGetFightingHero(side.value());
//current player have no hero
if(!myHero)
@@ -275,7 +275,7 @@ bool CBattleInfoEssentials::battleCanFlee(const PlayerColor & player) const
return false;
//we are besieged defender
if(side.get() == BattleSide::DEFENDER && battleGetSiegeLevel())
if(side == BattleSide::DEFENDER && battleGetSiegeLevel())
{
const auto * town = battleGetDefendedTown();
if(!town->hasBuilt(BuildingSubID::ESCAPE_TUNNEL))
@@ -287,7 +287,7 @@ bool CBattleInfoEssentials::battleCanFlee(const PlayerColor & player) const
BattleSideOpt CBattleInfoEssentials::playerToSide(const PlayerColor & player) const
{
RETURN_IF_NOT_BATTLE(boost::none);
RETURN_IF_NOT_BATTLE(std::nullopt);
if(getBattle()->getSidePlayer(BattleSide::ATTACKER) == player)
return BattleSideOpt(BattleSide::ATTACKER);
@@ -297,7 +297,7 @@ BattleSideOpt CBattleInfoEssentials::playerToSide(const PlayerColor & player) co
logGlobal->warn("Cannot find side for player %s", player.getStr());
return boost::none;
return std::nullopt;
}
PlayerColor CBattleInfoEssentials::sideToPlayer(ui8 side) const
@@ -322,7 +322,7 @@ PlayerColor CBattleInfoEssentials::otherPlayer(const PlayerColor & player) const
if(!side)
return PlayerColor::CANNOT_DETERMINE;
return getBattle()->getSidePlayer(otherSide(side.get()));
return getBattle()->getSidePlayer(otherSide(side.value()));
}
bool CBattleInfoEssentials::playerHasAccessToHeroInfo(const PlayerColor & player, const CGHeroInstance * h) const
@@ -331,7 +331,7 @@ bool CBattleInfoEssentials::playerHasAccessToHeroInfo(const PlayerColor & player
const auto side = playerToSide(player);
if(side)
{
auto opponentSide = otherSide(side.get());
auto opponentSide = otherSide(side.value());
if(getBattle()->getSideHero(opponentSide) == h)
return true;
}
@@ -350,9 +350,9 @@ bool CBattleInfoEssentials::battleCanSurrender(const PlayerColor & player) const
const auto side = playerToSide(player);
if(!side)
return false;
bool iAmSiegeDefender = (side.get() == BattleSide::DEFENDER && battleGetSiegeLevel());
bool iAmSiegeDefender = (side.value() == BattleSide::DEFENDER && battleGetSiegeLevel());
//conditions like for fleeing (except escape tunnel presence) + enemy must have a hero
return battleCanFlee(player) && !iAmSiegeDefender && battleHasHero(otherSide(side.get()));
return battleCanFlee(player) && !iAmSiegeDefender && battleHasHero(otherSide(side.value()));
}
bool CBattleInfoEssentials::battleHasHero(ui8 side) const
@@ -409,7 +409,7 @@ const CGHeroInstance * CBattleInfoEssentials::battleGetOwnerHero(const battle::U
const auto side = playerToSide(battleGetOwner(unit));
if(!side)
return nullptr;
return getBattle()->getSideHero(side.get());
return getBattle()->getSideHero(side.value());
}
bool CBattleInfoEssentials::battleMatchOwner(const battle::Unit * attacker, const battle::Unit * defender, const boost::logic::tribool positivness) const