diff options
author | jackpoz <giacomopoz@gmail.com> | 2020-06-26 23:21:49 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2020-06-26 23:21:49 +0200 |
commit | 49da3533cd4a0fcd8b2ac7ae0bf4b105f40f8c77 (patch) | |
tree | 3b409a8710cb8fc3edb49332f60037160c4c9a7b | |
parent | 0a08027bd90d952a226c75ed378f5a89ea4d601b (diff) |
Core/Common: Add macro ASSERT_WITH_SIDE_EFFECTS to be used when asserting conditions that have side effects
-rw-r--r-- | src/common/Debugging/Errors.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/common/Debugging/Errors.h b/src/common/Debugging/Errors.h index 6fd0faa0d87..4728ab35d2f 100644 --- a/src/common/Debugging/Errors.h +++ b/src/common/Debugging/Errors.h @@ -69,6 +69,8 @@ TC_COMMON_API std::string GetDebugInfo(); #define ASSERT_NODEBUGINFO WPAssert_NODEBUGINFO #endif +#define ASSERT_WITH_SIDE_EFFECTS WPAssert + #define ABORT WPAbort #define ABORT_MSG WPAbort_MSG diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 84848f0a379..e2e6f564505 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6043,7 +6043,7 @@ void Unit::SetCharm(Unit* charm, bool apply) { if (GetTypeId() == TYPEID_PLAYER) { - ASSERT(AddGuidValue(UNIT_FIELD_CHARM, charm->GetGUID()), + ASSERT_WITH_SIDE_EFFECTS(AddGuidValue(UNIT_FIELD_CHARM, charm->GetGUID()), "Player %s is trying to charm unit %u, but it already has a charmed unit %s", GetName().c_str(), charm->GetEntry(), GetCharmedGUID().ToString().c_str()); m_charmed = charm; @@ -6057,7 +6057,7 @@ void Unit::SetCharm(Unit* charm, bool apply) // PvP, FFAPvP charm->SetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG, GetByteValue(UNIT_FIELD_BYTES_2, UNIT_BYTES_2_OFFSET_PVP_FLAG)); - ASSERT(charm->AddGuidValue(UNIT_FIELD_CHARMEDBY, GetGUID()), + ASSERT_WITH_SIDE_EFFECTS(charm->AddGuidValue(UNIT_FIELD_CHARMEDBY, GetGUID()), "Unit %u is being charmed, but it already has a charmer %s", charm->GetEntry(), charm->GetCharmerGUID().ToString().c_str()); charm->m_charmer = this; @@ -6076,12 +6076,12 @@ void Unit::SetCharm(Unit* charm, bool apply) if (GetTypeId() == TYPEID_PLAYER) { - ASSERT(RemoveGuidValue(UNIT_FIELD_CHARM, charm->GetGUID()), + ASSERT_WITH_SIDE_EFFECTS(RemoveGuidValue(UNIT_FIELD_CHARM, charm->GetGUID()), "Player %s is trying to uncharm unit %u, but it has another charmed unit %s", GetName().c_str(), charm->GetEntry(), GetCharmedGUID().ToString().c_str()); m_charmed = nullptr; } - ASSERT(charm->RemoveGuidValue(UNIT_FIELD_CHARMEDBY, GetGUID()), + ASSERT_WITH_SIDE_EFFECTS(charm->RemoveGuidValue(UNIT_FIELD_CHARMEDBY, GetGUID()), "Unit %u is being uncharmed, but it has another charmer %s", charm->GetEntry(), charm->GetCharmerGUID().ToString().c_str()); charm->m_charmer = nullptr; |