From 248d63fa3ac659a56fd015709e2e5465ec36d06b Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 9 Nov 2017 12:04:48 -0500 Subject: [PATCH 1/2] Makes editing movements delay configs have an effect again (#32530) --- .../configuration/entries/game_options.dm | 11 +++++++++++ .../crates_lockers/closets/cardboardbox.dm | 12 +++++++----- code/modules/mob/living/living.dm | 10 +++++----- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index ea79ba81f3..29ace9eef3 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -163,9 +163,20 @@ CONFIG_DEF(flag/ooc_during_round) CONFIG_DEF(flag/emojis) CONFIG_DEF(number/run_delay) //Used for modifying movement speed for mobs. + var/static/value_cache = 0 + +CONFIG_TWEAK(number/run_delay/ValidateAndSet()) + . = ..() + if(.) + value_cache = value CONFIG_DEF(number/walk_delay) + var/static/value_cache = 0 +CONFIG_TWEAK(number/walk_delay/ValidateAndSet()) + . = ..() + if(.) + value_cache = value CONFIG_DEF(number/human_delay) //Mob specific modifiers. NOTE: These will affect different mob types in different ways CONFIG_DEF(number/robot_delay) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 1bf7daf2e2..1676ac9df8 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -15,18 +15,20 @@ delivery_icon = "deliverybox" anchorable = FALSE var/move_speed_multiplier = 1 - var/move_delay = 0 + var/move_delay = FALSE var/egged = 0 /obj/structure/closet/cardboard/relaymove(mob/user, direction) if(opened || move_delay || user.stat || user.IsStun() || user.IsKnockdown() || user.IsUnconscious() || !isturf(loc) || !has_gravity(loc)) return - move_delay = 1 + move_delay = TRUE if(step(src, direction)) - spawn(CONFIG_GET(number/walk_delay) * move_speed_multiplier) - move_delay = 0 + addtimer(CALLBACK(src, .proc/ResetMoveDelay), CONFIG_GET(number/walk_delay) * move_speed_multiplier) else - move_delay = 0 + ResetMoveDelay() + +/obj/structure/closet/cardboard/proc/ResetMoveDelay() + move_delay = FALSE /obj/structure/closet/cardboard/open() if(opened || !can_open()) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 732f641e86..e6c14d3a98 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -479,21 +479,21 @@ if(isopenturf(loc) && !is_flying()) var/turf/open/T = loc . += T.slowdown - var/static/config_run_delay - var/static/config_walk_delay + var/static/datum/config_entry/number/run_delay/config_run_delay + var/static/datum/config_entry/number/walk_delay/config_walk_delay if(isnull(config_run_delay)) config_run_delay = CONFIG_GET(number/run_delay) config_walk_delay = CONFIG_GET(number/walk_delay) if(ignorewalk) - . += config_run_delay + . += config_run_delay.value_cache else switch(m_intent) if(MOVE_INTENT_RUN) if(drowsyness > 0) . += 6 - . += config_run_delay + . += config_run_delay.value_cache if(MOVE_INTENT_WALK) - . += config_walk_delay + . += config_walk_delay.value_cache /mob/living/proc/makeTrail(turf/target_turf, turf/start, direction) if(!has_gravity())