feat(core): Ensure that all actions are compared to fixed point in time (#1236) (#1458)

i.e. world update start
This commit is contained in:
Viste(Кирилл)
2019-02-14 21:22:17 +03:00
committed by Francesco Borzì
parent 1b7522ff0e
commit 51b8773528
108 changed files with 933 additions and 509 deletions

View File

@@ -6,6 +6,7 @@
#include "Common.h"
#include "DatabaseEnv.h"
#include "GameTime.h"
#include "Group.h"
#include "GroupMgr.h"
#include "Log.h"
@@ -2326,3 +2327,13 @@ void Group::ToggleGroupMemberFlag(member_witerator slot, uint8 flag, bool apply)
slot->flags &= ~flag;
}
uint32 Group::GetDifficultyChangePreventionTime() const
{
return _difficultyChangePreventionTime > GameTime::GetGameTime() ? _difficultyChangePreventionTime - GameTime::GetGameTime() : 0;
}
void Group::SetDifficultyChangePrevention(DifficultyPreventionChangeType type)
{
_difficultyChangePreventionTime = GameTime::GetGameTime() + MINUTE;
_difficultyChangePreventionType = type;
}

View File

@@ -299,13 +299,9 @@ class Group
bool IsLfgHeroic() const { return isLFGGroup() && (m_lfgGroupFlags & GROUP_LFG_FLAG_IS_HEROIC); }
// Difficulty Change
uint32 GetDifficultyChangePreventionTime() const { return _difficultyChangePreventionTime > time(NULL) ? _difficultyChangePreventionTime - time(NULL) : 0; }
uint32 GetDifficultyChangePreventionTime() const;
DifficultyPreventionChangeType GetDifficultyChangePreventionReason() const { return _difficultyChangePreventionType; }
void SetDifficultyChangePrevention(DifficultyPreventionChangeType type)
{
_difficultyChangePreventionTime = time(NULL) + MINUTE;
_difficultyChangePreventionType = type;
}
void SetDifficultyChangePrevention(DifficultyPreventionChangeType type);
protected:
void _homebindIfInstance(Player* player);