2023-08-14 00:16:25 +02:00
|
|
|
/*
|
|
|
|
* TurnTimerInfo.cpp, part of VCMI engine
|
|
|
|
*
|
|
|
|
* Authors: listed in file AUTHORS in main folder
|
|
|
|
*
|
|
|
|
* License: GNU General Public License v2.0 or later
|
|
|
|
* Full text of license available in license.txt file, in main folder
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#include "StdInc.h"
|
|
|
|
#include "TurnTimerInfo.h"
|
|
|
|
|
2023-08-14 03:03:50 +02:00
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
|
|
|
2023-08-14 00:16:25 +02:00
|
|
|
bool TurnTimerInfo::isEnabled() const
|
|
|
|
{
|
2023-08-27 23:59:47 +02:00
|
|
|
return turnTimer > 0 || baseTimer > 0;
|
2023-08-14 00:16:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
bool TurnTimerInfo::isBattleEnabled() const
|
|
|
|
{
|
2023-12-07 16:36:44 +02:00
|
|
|
return turnTimer > 0 || baseTimer > 0 || unitTimer > 0 || battleTimer > 0;
|
2023-08-14 00:16:25 +02:00
|
|
|
}
|
2023-08-14 03:03:50 +02:00
|
|
|
|
2023-12-19 17:41:20 +02:00
|
|
|
void TurnTimerInfo::substractTimer(int timeMs)
|
|
|
|
{
|
|
|
|
auto const & substractTimer = [&timeMs](int & targetTimer)
|
|
|
|
{
|
|
|
|
if (targetTimer > timeMs)
|
|
|
|
{
|
|
|
|
targetTimer -= timeMs;
|
|
|
|
timeMs = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
timeMs -= targetTimer;
|
|
|
|
targetTimer = 0;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
substractTimer(unitTimer);
|
|
|
|
substractTimer(battleTimer);
|
|
|
|
substractTimer(turnTimer);
|
|
|
|
substractTimer(baseTimer);
|
|
|
|
}
|
|
|
|
|
|
|
|
int TurnTimerInfo::valueMs() const
|
|
|
|
{
|
|
|
|
return baseTimer + turnTimer + battleTimer + unitTimer;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool TurnTimerInfo::operator == (const TurnTimerInfo & other) const
|
|
|
|
{
|
|
|
|
return turnTimer == other.turnTimer &&
|
|
|
|
baseTimer == other.baseTimer &&
|
|
|
|
battleTimer == other.battleTimer &&
|
|
|
|
unitTimer == other.unitTimer &&
|
|
|
|
accumulatingTurnTimer == other.accumulatingTurnTimer &&
|
|
|
|
accumulatingUnitTimer == other.accumulatingUnitTimer;
|
|
|
|
}
|
|
|
|
|
2023-08-14 03:03:50 +02:00
|
|
|
VCMI_LIB_NAMESPACE_END
|