From a6d45cf39a1eb303fdd3df418ed19bd11847cdc9 Mon Sep 17 00:00:00 2001 From: Verkister Date: Mon, 1 Jan 2018 18:40:48 +0200 Subject: [PATCH 1/2] Eliminates one possible culprit behind dismemberment crashes. -Okay so. The dismemberment related crashing has decreased in the mob icon cache related cases, but another circumstance has been revealed pointing towards the severed limbs themselves. -(Someone got splattered yesterday downstream and nuked half server into chain crashing) -Anyhow. I personally had completely forgotten to update my client last year from an awfully outdated pre-PIXEL_SCALING version, but I happened to do it way after people began crashing and cannot remember encountering a single crash from the before time. -Which led to a theory that our poor little Byond simply has trouble adjusting to fresh features and occasionally gets overwhelmed by the task of tossing around a bunch of severed limbs inheriting their owner's visual properties while also having to randomly rotate each one. -This thing just disables pixel scaling from severed limbs upon dismemberment. -Because of the evil nature of the bug unpredictably manifesting in action and often leaves some witnesses un-crashed, I have no proof if this helps anything but I'll just toss it up and see if it sticks. --- code/modules/organs/organ_external.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 8d084f9e0e..7005cf3a35 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -875,6 +875,8 @@ Note that amputating the affected organ does in fact remove the infection from t switch(disintegrate) if(DROPLIMB_EDGE) + if(appearance_flags >= PIXEL_SCALE) + appearance_flags -= PIXEL_SCALE compile_icon() add_blood(victim) var/matrix/M = matrix() From 2c02938b1b8747052c2b96cbc59d4a3b3beb3635 Mon Sep 17 00:00:00 2001 From: Verkister Date: Mon, 1 Jan 2018 18:49:22 +0200 Subject: [PATCH 2/2] Update organ_external.dm --- code/modules/organs/organ_external.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 7005cf3a35..070e3087db 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -875,8 +875,7 @@ Note that amputating the affected organ does in fact remove the infection from t switch(disintegrate) if(DROPLIMB_EDGE) - if(appearance_flags >= PIXEL_SCALE) - appearance_flags -= PIXEL_SCALE + appearance_flags &= ~PIXEL_SCALE compile_icon() add_blood(victim) var/matrix/M = matrix()