diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3c2f308831..c49300dae3 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1011,7 +1011,7 @@ for(var/i=0 to distance) if(blood) if(T) - blood_splatter(T, large = TRUE) + blood_splatter(T, src, large = TRUE) if(stun) adjustBruteLoss(2) else if(T) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 6942fc9061..e93f90f9b4 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -429,6 +429,11 @@ var/const/CE_STABLE_THRESHOLD = 0.5 if(M.isSynthetic()) synth = 1 source = M.get_blood(M.vessel) + //Someone fed us a weird source. Let's log it. + if(source && !istype(source, /datum/reagent/blood)) + log_debug("A blood splatter was made using non-blood datum [source]!") + source = null //Clear the source since it's invalid. Fallback to non-source behavior. + // Are we dripping or splattering? var/list/drips = list() // Only a certain number of drips (or one large splatter) can be on a given turf.