diff --git a/CHANGELOG.md b/CHANGELOG.md index 67c1e63332..fa8c1f25b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ https://github.com/nwnxee/unified/compare/build8193.35.40...HEAD ### Changed - Creature: Added an argument for passing a class package to `NWNX_Creature_LevelUp()` - Player: Added arguments for passing transform data (scale, translation, rotation) to `NWNX_Player_ShowVisualEffect()` and `NWNX_Player_ApplyInstantVisualEffectToObject()` +- Damage: The damage event now also fires for doors ### Deprecated - N/A diff --git a/Plugins/Damage/Damage.cpp b/Plugins/Damage/Damage.cpp index 9de4b6613d..0c6d81a562 100644 --- a/Plugins/Damage/Damage.cpp +++ b/Plugins/Damage/Damage.cpp @@ -46,8 +46,6 @@ static AttackData s_AttackData; static std::string GetEventScript(CNWSObject*, const std::string&); static void HandleSignalDamage(CNWSCreature*, CNWSObject*, int32_t); - - static Hooks::Hook s_OnApplyDamageHook = Hooks::HookFunction(&CNWSEffectListHandler::OnApplyDamage, +[](CNWSEffectListHandler *pThis, CNWSObject *pObject, CGameEffect *pEffect, BOOL bLoadingGame) -> BOOL { @@ -55,7 +53,7 @@ static Hooks::Hook s_OnApplyDamageHook = Hooks::HookFunction(&CNWSEffectListHand if (!sScript.empty()) { - if (Utils::AsNWSCreature(pObject) || Utils::AsNWSPlaceable(pObject)) + if (Utils::AsNWSCreature(pObject) || Utils::AsNWSPlaceable(pObject) || Utils::AsNWSDoor(pObject)) { s_DamageData.oidDamager = pEffect->m_oidCreator; std::memcpy(s_DamageData.vDamage, pEffect->m_nParamInteger, MAX_DAMAGE_TYPES * sizeof(int32_t)); @@ -81,8 +79,6 @@ static Hooks::Hook s_SignalRangedDamageHook = Hooks::HookFunction(&CNWSCreature: s_SignalRangedDamageHook->CallOriginal(pThis, pTarget, nAttacks); }, Hooks::Order::Late); - - static std::string GetEventScript(CNWSObject *pObject, const std::string& sEventType) { if (auto posScript = pObject->nwnxGet(sEventType + "_EVENT_SCRIPT")) @@ -127,8 +123,6 @@ static void HandleSignalDamage(CNWSCreature *pThis, CNWSObject *pTarget, int32_t } } - - NWNX_EXPORT ArgumentStack SetEventScript(ArgumentStack&& args) { const auto sEvent = args.extract(); @@ -160,7 +154,6 @@ NWNX_EXPORT ArgumentStack SetEventScript(ArgumentStack&& args) return {}; } - NWNX_EXPORT ArgumentStack GetDamageEventData(ArgumentStack&&) { ArgumentStack stack; @@ -184,7 +177,6 @@ NWNX_EXPORT ArgumentStack SetDamageEventData(ArgumentStack&& args) return {}; } - NWNX_EXPORT ArgumentStack GetAttackEventData(ArgumentStack&&) { ArgumentStack stack; @@ -218,7 +210,6 @@ NWNX_EXPORT ArgumentStack SetAttackEventData(ArgumentStack&& args) return {}; } - NWNX_EXPORT ArgumentStack DealDamage(ArgumentStack&& args) { int vDamage[MAX_DAMAGE_TYPES];