From 80bbf23a875d34f484d5e23e00a7d489a807f8ca Mon Sep 17 00:00:00 2001 From: SI-ChrisL Date: Tue, 28 Apr 2026 09:26:10 -0500 Subject: [PATCH] fix: match upstream OnPlayerResurrect signature (bool& applySickness) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AzerothCore's PlayerScript::OnPlayerResurrect declares the third parameter as `bool& applySickness` (pass-by-reference). This module's overrides used `bool applySickness` (pass-by-value), so the signatures didn't match and the `override` specifier silently failed to bind to the virtual base — meaning the hook never actually fired for Hardcore or Iron Man challenge modes. Update both ChallengeMode_Hardcore and ChallengeMode_IronMan to take the parameter by reference, matching ScriptDefines/PlayerScript.h. --- src/ChallengeModes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ChallengeModes.cpp b/src/ChallengeModes.cpp index 32e4b0e..0111cd4 100644 --- a/src/ChallengeModes.cpp +++ b/src/ChallengeModes.cpp @@ -445,7 +445,7 @@ class ChallengeMode_Hardcore : public ChallengeMode killed->UpdatePlayerSetting("mod-challenge-modes", HARDCORE_DEAD, 1); } - void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool /*applySickness*/) override + void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool& /*applySickness*/) override { if (!sChallengeModes->challengeEnabledForPlayer(SETTING_HARDCORE, player)) { @@ -626,7 +626,7 @@ class ChallengeMode_IronMan : public ChallengeMode public: ChallengeMode_IronMan() : ChallengeMode("ChallengeMode_IronMan", SETTING_IRON_MAN) {} - void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool /*applySickness*/) override + void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool& /*applySickness*/) override { if (!sChallengeModes->challengeEnabledForPlayer(SETTING_IRON_MAN, player)) {