1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

Throw runtime error explicitely

This commit is contained in:
Tomasz Zieliński 2023-08-10 18:29:49 +02:00
parent f483f7bb53
commit 84436f7f18

View File

@ -38,6 +38,8 @@
VCMI_LIB_NAMESPACE_BEGIN VCMI_LIB_NAMESPACE_BEGIN
#define THROW_IF_NO_BATTLE if (!gs->curB) throw std::runtime_error("Trying to apply pack when no battle!");
void CPack::visit(ICPackVisitor & visitor) void CPack::visit(ICPackVisitor & visitor)
{ {
visitBasic(visitor); visitBasic(visitor);
@ -2127,16 +2129,19 @@ void BattleStart::applyGs(CGameState * gs) const
void BattleNextRound::applyGs(CGameState * gs) const void BattleNextRound::applyGs(CGameState * gs) const
{ {
THROW_IF_NO_BATTLE
gs->curB->nextRound(round); gs->curB->nextRound(round);
} }
void BattleSetActiveStack::applyGs(CGameState * gs) const void BattleSetActiveStack::applyGs(CGameState * gs) const
{ {
THROW_IF_NO_BATTLE
gs->curB->nextTurn(stack); gs->curB->nextTurn(stack);
} }
void BattleTriggerEffect::applyGs(CGameState * gs) const void BattleTriggerEffect::applyGs(CGameState * gs) const
{ {
THROW_IF_NO_BATTLE
CStack * st = gs->curB->getStack(stackID); CStack * st = gs->curB->getStack(stackID);
assert(st); assert(st);
switch(static_cast<BonusType>(effect)) switch(static_cast<BonusType>(effect))
@ -2232,6 +2237,7 @@ void BattleLogMessage::applyBattle(IBattleState * battleState)
void BattleStackMoved::applyGs(CGameState *gs) void BattleStackMoved::applyGs(CGameState *gs)
{ {
THROW_IF_NO_BATTLE
applyBattle(gs->curB); applyBattle(gs->curB);
} }
@ -2242,6 +2248,7 @@ void BattleStackMoved::applyBattle(IBattleState * battleState)
void BattleStackAttacked::applyGs(CGameState * gs) void BattleStackAttacked::applyGs(CGameState * gs)
{ {
THROW_IF_NO_BATTLE
applyBattle(gs->curB); applyBattle(gs->curB);
} }
@ -2252,6 +2259,7 @@ void BattleStackAttacked::applyBattle(IBattleState * battleState)
void BattleAttack::applyGs(CGameState * gs) void BattleAttack::applyGs(CGameState * gs)
{ {
THROW_IF_NO_BATTLE
CStack * attacker = gs->curB->getStack(stackAttacking); CStack * attacker = gs->curB->getStack(stackAttacking);
assert(attacker); assert(attacker);
@ -2265,8 +2273,7 @@ void BattleAttack::applyGs(CGameState * gs)
void StartAction::applyGs(CGameState *gs) void StartAction::applyGs(CGameState *gs)
{ {
if (!gs->curB) THROW_IF_NO_BATTLE
return;
CStack *st = gs->curB->getStack(ba.stackNumber); CStack *st = gs->curB->getStack(ba.stackNumber);
@ -2316,7 +2323,7 @@ void StartAction::applyGs(CGameState *gs)
void BattleSpellCast::applyGs(CGameState * gs) const void BattleSpellCast::applyGs(CGameState * gs) const
{ {
assert(gs->curB); THROW_IF_NO_BATTLE
if(castByHero) if(castByHero)
{ {
@ -2329,6 +2336,7 @@ void BattleSpellCast::applyGs(CGameState * gs) const
void SetStackEffect::applyGs(CGameState *gs) void SetStackEffect::applyGs(CGameState *gs)
{ {
THROW_IF_NO_BATTLE
applyBattle(gs->curB); applyBattle(gs->curB);
} }
@ -2347,6 +2355,7 @@ void SetStackEffect::applyBattle(IBattleState * battleState)
void StacksInjured::applyGs(CGameState *gs) void StacksInjured::applyGs(CGameState *gs)
{ {
THROW_IF_NO_BATTLE
applyBattle(gs->curB); applyBattle(gs->curB);
} }
@ -2358,6 +2367,7 @@ void StacksInjured::applyBattle(IBattleState * battleState)
void BattleUnitsChanged::applyGs(CGameState *gs) void BattleUnitsChanged::applyGs(CGameState *gs)
{ {
THROW_IF_NO_BATTLE
applyBattle(gs->curB); applyBattle(gs->curB);
} }
@ -2388,8 +2398,8 @@ void BattleUnitsChanged::applyBattle(IBattleState * battleState)
void BattleObstaclesChanged::applyGs(CGameState * gs) void BattleObstaclesChanged::applyGs(CGameState * gs)
{ {
if(gs->curB) THROW_IF_NO_BATTLE;
applyBattle(gs->curB); applyBattle(gs->curB);
} }
void BattleObstaclesChanged::applyBattle(IBattleState * battleState) void BattleObstaclesChanged::applyBattle(IBattleState * battleState)
@ -2420,8 +2430,8 @@ CatapultAttack::~CatapultAttack() = default;
void CatapultAttack::applyGs(CGameState * gs) void CatapultAttack::applyGs(CGameState * gs)
{ {
if(gs->curB) THROW_IF_NO_BATTLE
applyBattle(gs->curB); applyBattle(gs->curB);
} }
void CatapultAttack::visitTyped(ICPackVisitor & visitor) void CatapultAttack::visitTyped(ICPackVisitor & visitor)
@ -2447,6 +2457,7 @@ void CatapultAttack::applyBattle(IBattleState * battleState)
void BattleSetStackProperty::applyGs(CGameState * gs) const void BattleSetStackProperty::applyGs(CGameState * gs) const
{ {
THROW_IF_NO_BATTLE
CStack * stack = gs->curB->getStack(stackID); CStack * stack = gs->curB->getStack(stackID);
switch(which) switch(which)
{ {