diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index dc32902e5e..aa517eae6e 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -196,14 +196,12 @@ GLOBAL_LIST_EMPTY(explosions) //------- EX_ACT AND TURF FIRES ------- - if(T == epicenter) // Ensures explosives detonating from bags trigger other explosives in that bag - var/list/items = list() - for(var/I in T) - var/atom/A = I - if (!(A.flags_1 & PREVENT_CONTENTS_EXPLOSION_1)) //The atom/contents_explosion() proc returns null if the contents ex_acting has been handled by the atom, and TRUE if it hasn't. - items += A.GetAllContents() - for(var/O in items) - var/atom/A = O + if((T == epicenter) && !QDELETED(explosion_source) && (explosion_source.loc == T)) // Ensures explosives detonating from bags trigger other explosives in that bag + var/list/atoms = list() + for(var/atom/A in explosion_source.loc) + atoms += A + for(var/i in atoms) + var/atom/A = i if(!QDELETED(A)) A.ex_act(dist)