aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2020-06-26 23:21:49 +0200
committerjackpoz <giacomopoz@gmail.com>2020-06-26 23:21:49 +0200
commit49da3533cd4a0fcd8b2ac7ae0bf4b105f40f8c77 (patch)
tree3b409a8710cb8fc3edb49332f60037160c4c9a7b /src
parent0a08027bd90d952a226c75ed378f5a89ea4d601b (diff)
Core/Common: Add macro ASSERT_WITH_SIDE_EFFECTS to be used when asserting conditions that have side effects
Diffstat (limited to 'src')
-rw-r--r--src/common/Debugging/Errors.h2
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp8
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;