From f16ae3380d330fc5d0f3b207586a76b316e2afcd Mon Sep 17 00:00:00 2001 From: SECBATON-GRIFFON <> Date: Sun, 21 Apr 2024 02:37:31 +0100 Subject: [PATCH 1/7] Fixes status displays skipping a second with shuttles --- code/game/machinery/status_display.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 46108508b0f3..fd1c51cef9ee 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -81,6 +81,9 @@ var/global/list/status_displays = list() //This list contains both normal status remove_display() return update() + if(mode == MODE_SHUTTLE_TIMER || mode == MODE_CARGO_TIMER) // update again after a second just for these + spawn(10) // timers are every second + update() /obj/machinery/status_display/attack_ai(mob/user) if(spookymode) From 6ea3e16c90332401661beb0251dbddcaa01e46cc Mon Sep 17 00:00:00 2001 From: SECBATON-GRIFFON <> Date: Tue, 23 Apr 2024 02:21:08 +0100 Subject: [PATCH 2/7] rewrite --- code/controllers/shuttle_controller.dm | 4 ++++ code/controllers/subsystem/emergency_shuttle.dm | 2 +- code/controllers/subsystem/supply_shuttle.dm | 3 +++ code/game/machinery/status_display.dm | 17 ++++++++++++----- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 6e0f7a173a8b..9eafb97a58f9 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -346,6 +346,10 @@ var/global/datum/emergency_shuttle/emergency_shuttle if(timeleft < 0) // Sanity timeleft = 0 + + for(var/obj/machinery/status_display/S in status_displays) + S.update() + if(timeleft > 6) warmup_sound = 0 diff --git a/code/controllers/subsystem/emergency_shuttle.dm b/code/controllers/subsystem/emergency_shuttle.dm index 90128505c0b4..124dbe18b2f8 100644 --- a/code/controllers/subsystem/emergency_shuttle.dm +++ b/code/controllers/subsystem/emergency_shuttle.dm @@ -4,7 +4,7 @@ var/datum/subsystem/emergency_shuttle/SSemergency_shuttle /datum/subsystem/emergency_shuttle name = "Emergency Shuttle" init_order = SS_INIT_EMERGENCY_SHUTTLE - wait = 2 SECONDS + wait = 1 SECONDS flags = SS_KEEP_TIMING | SS_NO_TICK_CHECK diff --git a/code/controllers/subsystem/supply_shuttle.dm b/code/controllers/subsystem/supply_shuttle.dm index 8748ef171e37..438700e8963c 100644 --- a/code/controllers/subsystem/supply_shuttle.dm +++ b/code/controllers/subsystem/supply_shuttle.dm @@ -102,6 +102,9 @@ var/datum/subsystem/supply_shuttle/SSsupply_shuttle centcomm_last_order = world.time centcomm_order_cooldown = rand(modified_min,modified_max) + for(var/obj/machinery/status_display/supply/S in supply_displays) + S.update() + /datum/supply_order var/ordernum var/datum/supply_packs/object = null diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index fd1c51cef9ee..19d349095129 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -17,7 +17,8 @@ #define MODE_IMAGE 3 #define MODE_CARGO_TIMER 4 -var/global/list/status_displays = list() //This list contains both normal status displays, and AI status dispays +var/global/list/status_displays = list() //This list contains both normal status displays, and AI status displays +var/global/list/supply_displays = list() /obj/machinery/status_display icon = 'icons/obj/status_display.dmi' @@ -62,6 +63,10 @@ var/global/list/status_displays = list() //This list contains both normal status if (ticker && ticker.current_state == GAME_STATE_PLAYING) initialize() +/obj/machinery/status_display/supply/New() + ..() + supply_displays |= src + /obj/machinery/status_display/initialize() ..() if(radio_controller) @@ -71,6 +76,10 @@ var/global/list/status_displays = list() //This list contains both normal status .=..() status_displays -= src +/obj/machinery/status_display/supply/Destroy() + .=..() + supply_displays -= src + // timed process /obj/machinery/status_display/process() if(stat & (FORCEDISABLE|NOPOWER)) @@ -80,10 +89,8 @@ var/global/list/status_displays = list() //This list contains both normal status spookymode = 0 remove_display() return - update() - if(mode == MODE_SHUTTLE_TIMER || mode == MODE_CARGO_TIMER) // update again after a second just for these - spawn(10) // timers are every second - update() + if(mode != MODE_SHUTTLE_TIMER && mode != MODE_CARGO_TIMER) // handled in their subsystems + update() /obj/machinery/status_display/attack_ai(mob/user) if(spookymode) From 3cb3a1c142c6249a7f8b2b505486f2f879a7aee5 Mon Sep 17 00:00:00 2001 From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com> Date: Mon, 29 Apr 2024 23:09:23 +0100 Subject: [PATCH 3/7] fixes this issue with the flames --- code/controllers/shuttle_controller.dm | 9 +++++---- code/controllers/subsystem/emergency_shuttle.dm | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 9eafb97a58f9..bffdccd8f1b8 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -336,7 +336,7 @@ var/global/datum/emergency_shuttle/emergency_shuttle online = 0 -/datum/emergency_shuttle/proc/process() +/datum/emergency_shuttle/proc/process(tick) if(!online || shutdown) return @@ -358,9 +358,10 @@ var/global/datum/emergency_shuttle/emergency_shuttle /* --- Shuttle is in transit toward centcom --- */ if(direction == 2) - for(var/obj/structure/shuttle/engine/propulsion/P in shuttle.linked_area) - spawn() - P.shoot_exhaust(backward = 3) + if(tick % 2 == 0) + for(var/obj/structure/shuttle/engine/propulsion/P in shuttle.linked_area) + spawn() + P.shoot_exhaust(backward = 3) var/collision_imminent = FALSE for(var/datum/shuttle/escape/pod/pod in escape_pods) diff --git a/code/controllers/subsystem/emergency_shuttle.dm b/code/controllers/subsystem/emergency_shuttle.dm index 124dbe18b2f8..7795da0eb628 100644 --- a/code/controllers/subsystem/emergency_shuttle.dm +++ b/code/controllers/subsystem/emergency_shuttle.dm @@ -20,4 +20,4 @@ var/datum/subsystem/emergency_shuttle/SSemergency_shuttle /datum/subsystem/emergency_shuttle/fire(resumed = FALSE) - emergency_shuttle.process() + emergency_shuttle.process(times_fired) From f79504dff5617de9532870a6c2ca6574906211ed Mon Sep 17 00:00:00 2001 From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com> Date: Mon, 29 Apr 2024 23:23:06 +0100 Subject: [PATCH 4/7] moved checks here --- code/game/machinery/status_display.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 19d349095129..7d4aa99a096d 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -82,13 +82,6 @@ var/global/list/supply_displays = list() // timed process /obj/machinery/status_display/process() - if(stat & (FORCEDISABLE|NOPOWER)) - remove_display() - return - if(spookymode) - spookymode = 0 - remove_display() - return if(mode != MODE_SHUTTLE_TIMER && mode != MODE_CARGO_TIMER) // handled in their subsystems update() @@ -141,6 +134,13 @@ var/global/list/supply_displays = list() // set what is displayed /obj/machinery/status_display/proc/update() + if(stat & (FORCEDISABLE|NOPOWER)) + remove_display() + return + if(spookymode) + spookymode = 0 + remove_display() + return if(friendc && mode!=4) //Makes all status displays except supply shuttle timer display the eye -- Urist set_picture("ai_friend") return From 981878819d8c38743d127e74cdd20b2d1ea760ff Mon Sep 17 00:00:00 2001 From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com> Date: Mon, 29 Apr 2024 23:26:14 +0100 Subject: [PATCH 5/7] reduces unneeded calls --- code/controllers/shuttle_controller.dm | 3 ++- code/controllers/subsystem/supply_shuttle.dm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index bffdccd8f1b8..975874913db8 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -348,7 +348,8 @@ var/global/datum/emergency_shuttle/emergency_shuttle for(var/obj/machinery/status_display/S in status_displays) - S.update() + if(S.mode == 1) + S.update() if(timeleft > 6) warmup_sound = 0 diff --git a/code/controllers/subsystem/supply_shuttle.dm b/code/controllers/subsystem/supply_shuttle.dm index 438700e8963c..689b585a82f3 100644 --- a/code/controllers/subsystem/supply_shuttle.dm +++ b/code/controllers/subsystem/supply_shuttle.dm @@ -103,7 +103,8 @@ var/datum/subsystem/supply_shuttle/SSsupply_shuttle centcomm_order_cooldown = rand(modified_min,modified_max) for(var/obj/machinery/status_display/supply/S in supply_displays) - S.update() + if(S.mode == 4) + S.update() /datum/supply_order var/ordernum From e2c34e0b37e66f1ca63d5165e570c97384c4fcba Mon Sep 17 00:00:00 2001 From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com> Date: Thu, 2 May 2024 03:00:52 +0100 Subject: [PATCH 6/7] makes this not shoot twice too --- code/controllers/shuttle_controller.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 975874913db8..498c91d82140 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -42,6 +42,7 @@ var/global/datum/emergency_shuttle/emergency_shuttle var/voting_cache = 0 var/warmup_sound = 0 + var/takeoff = 0 var/was_early_launched = FALSE //had timer shortened to 10 seconds @@ -415,7 +416,8 @@ var/global/datum/emergency_shuttle/emergency_shuttle warmup_sound = 1 hyperspace_sounds("begin") // Just before it leaves, close the damn doors! - if(timeleft == 2 || timeleft == 1) + if(timeleft <= 2 && !takeoff) + takeoff = 1 for(var/obj/machinery/door/unpowered/shuttle/D in shuttle.linked_area) spawn(0) D.close() From fdeeff470d7827abd40396c648acbfeb9dde9fe7 Mon Sep 17 00:00:00 2001 From: SECBATON GRIFFON <87321915+SECBATON-GRIFFON@users.noreply.github.com> Date: Thu, 4 Jul 2024 02:00:11 +0100 Subject: [PATCH 7/7] reduces wait --- code/controllers/shuttle_controller.dm | 2 +- code/controllers/subsystem/emergency_shuttle.dm | 2 +- code/controllers/subsystem/supply_shuttle.dm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 498c91d82140..3cb2f487d3b4 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -360,7 +360,7 @@ var/global/datum/emergency_shuttle/emergency_shuttle /* --- Shuttle is in transit toward centcom --- */ if(direction == 2) - if(tick % 2 == 0) + if(tick % 20 == 0) for(var/obj/structure/shuttle/engine/propulsion/P in shuttle.linked_area) spawn() P.shoot_exhaust(backward = 3) diff --git a/code/controllers/subsystem/emergency_shuttle.dm b/code/controllers/subsystem/emergency_shuttle.dm index 7795da0eb628..0db8d31c1ced 100644 --- a/code/controllers/subsystem/emergency_shuttle.dm +++ b/code/controllers/subsystem/emergency_shuttle.dm @@ -4,7 +4,7 @@ var/datum/subsystem/emergency_shuttle/SSemergency_shuttle /datum/subsystem/emergency_shuttle name = "Emergency Shuttle" init_order = SS_INIT_EMERGENCY_SHUTTLE - wait = 1 SECONDS + wait = 1 flags = SS_KEEP_TIMING | SS_NO_TICK_CHECK diff --git a/code/controllers/subsystem/supply_shuttle.dm b/code/controllers/subsystem/supply_shuttle.dm index 689b585a82f3..b3e1aa6556a4 100644 --- a/code/controllers/subsystem/supply_shuttle.dm +++ b/code/controllers/subsystem/supply_shuttle.dm @@ -19,7 +19,7 @@ var/datum/subsystem/supply_shuttle/SSsupply_shuttle name = "Supply Shuttle" init_order = SS_INIT_SUPPLY_SHUTTLE flags = SS_NO_TICK_CHECK - wait = 1 SECONDS + wait = 1 //supply points have been replaced with MONEY MONEY MONEY - N3X var/credits_per_slip = 5 var/credits_per_crate = 5