From ebf2ba2d4a4d3cd010490c151026e0b03245deb5 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Mon, 7 Oct 2013 17:41:51 +0100 Subject: [PATCH] Fixes. Made glowshrooms and intercoms not use a ridiculous internal loop, and fixed a pickup luminosity bug with glowshrooms. fixes #3708 Fixes #3718 Fixes #3702 Signed-off-by: Mloc-Argent --- code/game/atoms.dm | 1 + code/game/machinery/washing_machine.dm | 3 +++ code/game/objects/effects/glowshroom.dm | 24 +++++++++++------- .../objects/items/devices/radio/intercom.dm | 18 +++++++------ .../admin/permissionverbs/permissionedit.dm | 4 +-- .../reagent_containers/food/snacks/grown.dm | 2 +- code/setup.dm | 1 + icons/obj/power_cond_cyan.dmi | Bin 5980 -> 5913 bytes 8 files changed, 33 insertions(+), 20 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 44440e8288..2fae612a5b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -418,6 +418,7 @@ its easier to just keep the beam vertical. //returns 1 if made bloody, returns 0 otherwise /atom/proc/add_blood(mob/living/carbon/human/M as mob) + if(flags & NOBLOODY) return 0 .=1 if (!( istype(M, /mob/living/carbon/human) )) return 0 diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 27a000fd70..12ab6f5176 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -27,6 +27,9 @@ set category = "Object" set src in oview(1) + if(!istype(usr, /mob/living)) //ew ew ew usr, but it's the only way to check. + return + if( state != 4 ) usr << "The washing machine cannot run in this state." return diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 9dd3c79c71..425034ba48 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -16,6 +16,8 @@ var/spreadChance = 40 var/spreadIntoAdjacentChance = 60 var/evolveChance = 2 + var/lastTick = 0 + var/spreaded = 1 /obj/effect/glowshroom/single spreadChance = 0 @@ -40,15 +42,21 @@ else //if on the floor, glowshroom on-floor sprite icon_state = "glowshroomf" - spawn(delay) - SetLuminosity(round(potency/10)) - Spread() + processing_objects += src -/obj/effect/glowshroom/proc/Spread() - set background = 1 - var/spreaded = 1 + SetLuminosity(round(potency/10)) + lastTick = world.timeofday - while(spreaded) +/obj/effect/glowshroom/Del() + processing_objects -= src + ..() + +/obj/effect/glowshroom/process() + if(!spreaded) + return + + if(((world.timeofday - lastTick) > delay) || ((world.timeofday - lastTick) < 0)) + lastTick = world.timeofday spreaded = 0 for(var/i=1,i<=yield,i++) @@ -90,8 +98,6 @@ if(prob(evolveChance)) //very low chance to evolve on its own potency += rand(4,6) - sleep(delay) - /obj/effect/glowshroom/proc/CalcDir(turf/location = loc) set background = 1 var/direction = 16 diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index c230a3f5a9..931c2ba598 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -5,13 +5,18 @@ anchored = 1 w_class = 4.0 canhear_range = 2 + flags = FPRINT | CONDUCT | TABLEPASS | NOBLOODY var/number = 0 var/anyai = 1 var/mob/living/silicon/ai/ai = list() + var/last_tick //used to delay the powercheck /obj/item/device/radio/intercom/New() - spawn(5) - checkpower() + ..() + processing_objects += src + +/obj/item/device/radio/intercom/Del() + processing_objects -= src ..() /obj/item/device/radio/intercom/attack_ai(mob/user as mob) @@ -51,10 +56,9 @@ return ..() -/obj/item/device/radio/intercom/proc/checkpower() - - // Simple loop, checks for power. Strictly for intercoms - while(src) +/obj/item/device/radio/intercom/process() + if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0)) + last_tick = world.timeofday if(!src.loc) on = 0 @@ -69,5 +73,3 @@ icon_state = "intercom-p" else icon_state = "intercom" - - sleep(30) \ No newline at end of file diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm index 5b805ac8bd..3bd563aaf5 100644 --- a/code/modules/admin/permissionverbs/permissionedit.dm +++ b/code/modules/admin/permissionverbs/permissionedit.dm @@ -12,8 +12,8 @@ Permissions Panel - - + +
diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index dd3010ca63..c47103e282 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -886,7 +886,7 @@ user.SetLuminosity(round(user.luminosity + (potency/10),1)) /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/dropped(mob/user) - user.SetLuminosity(round(user.luminosity + (potency/10),1)) + user.SetLuminosity(round(user.luminosity - (potency/10),1)) SetLuminosity(round(potency/10,1)) diff --git a/code/setup.dm b/code/setup.dm index 9c3d2a84e0..e5ad466880 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -189,6 +189,7 @@ var/MAX_EXPLOSION_RANGE = 14 #define CONDUCT 64 // conducts electricity (metal etc.) #define FPRINT 256 // takes a fingerprint #define ON_BORDER 512 // item has priority to check when entering or leaving +#define NOBLOODY 2048 // used to items if they don't want to get a blood overlay #define GLASSESCOVERSEYES 1024 #define MASKCOVERSEYES 1024 // get rid of some of the other retardation in these flags diff --git a/icons/obj/power_cond_cyan.dmi b/icons/obj/power_cond_cyan.dmi index 6e1fa1238e6e50ac61a3de2c46636ae8ad297f1a..34d981f55f70b4feb4c08f4d8face283de1599ac 100644 GIT binary patch delta 5619 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 Iv3Jz}0Y|r>82|tP