diff --git a/src/g_shared/a_lightning.cpp b/src/g_shared/a_lightning.cpp index deeb8405b..a5401f59a 100644 --- a/src/g_shared/a_lightning.cpp +++ b/src/g_shared/a_lightning.cpp @@ -11,6 +11,7 @@ #include "r_state.h" #include "serializer.h" #include "g_levellocals.h" +#include "events.h" static FRandom pr_lightning ("Lightning"); @@ -129,6 +130,9 @@ void DLightningThinker::LightningFlash () level.flags |= LEVEL_SWAPSKIES; // set alternate sky S_Sound (CHAN_AUTO, "world/thunder", 1.0, ATTN_NONE); + // [ZZ] just in case + E_WorldLightning(); + // start LIGHTNING scripts FBehavior::StaticStartTypedScripts (SCRIPT_Lightning, NULL, false); // [RH] Run lightning scripts // Calculate the next lighting flash diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index b94098607..e45ca0b5f 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -5108,6 +5108,12 @@ void AActor::CallDeactivate(AActor *activator) void AActor::OnDestroy () { + // [ZZ] call destroy event hook. + // note that this differs from ThingSpawned in that you can actually override OnDestroy to avoid calling the hook. + // but you can't really do that without utterly breaking the game, so it's ok. + // note: if OnDestroy is ever made optional, E_WorldThingDestroyed should still be called for ANY thing. + E_WorldThingDestroyed(this); + ClearRenderSectorList(); ClearRenderLineList();