diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 9526a3e671a..485d0f1165a 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -781,6 +781,30 @@
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)")
message_admins("[key_name_admin(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted)")
+ else if(href_list["makespeedy"])
+ if(!check_rights(R_DEBUG|R_ADMIN))
+ return
+ var/obj/A = locateUID(href_list["makespeedy"])
+ if(!istype(A))
+ return
+ A.var_edited = TRUE
+ A.makeSpeedProcess()
+ log_admin("[key_name(usr)] has made [A] speed process")
+ message_admins("[key_name(usr)] has made [A] speed process")
+ return TRUE
+
+ else if(href_list["makenormalspeed"])
+ if(!check_rights(R_DEBUG|R_ADMIN))
+ return
+ var/obj/A = locateUID(href_list["makenormalspeed"])
+ if(!istype(A))
+ return
+ A.var_edited = TRUE
+ A.makeNormalProcess()
+ log_admin("[key_name(usr)] has made [A] process normally")
+ message_admins("[key_name(usr)] has made [A] process normally")
+ return TRUE
+
else if(href_list["addreagent"]) /* Made on /TG/, credit to them. */
if(!check_rights(R_DEBUG|R_ADMIN)) return
@@ -1327,4 +1351,4 @@
if(href_list["listrefresh"])
debug_variables(locate(href_list["listrefresh"]))
- return TRUE
\ No newline at end of file
+ return TRUE
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index a29dcb9e274..8994d1eccbd 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -117,7 +117,6 @@ Class Procs:
var/use_log = list()
var/list/settagwhitelist = list()//WHITELIST OF VARIABLES THAT THE set_tag HREF CAN MODIFY, DON'T PUT SHIT YOU DON'T NEED ON HERE, AND IF YOU'RE GONNA USE set_tag (format_tag() proc), ADD TO THIS LIST.
atom_say_verb = "beeps"
- var/speed_process = 0 // Process as fast as possible?
var/defer_process = 0
/obj/machinery/Initialize()
@@ -138,7 +137,7 @@ Class Procs:
isprocessing = TRUE // all of these isprocessing = TRUE can be removed when the PS is dead
// gotta go fast
-/obj/machinery/proc/makeSpeedProcess()
+/obj/machinery/makeSpeedProcess()
if(speed_process)
return
speed_process = 1
@@ -147,7 +146,7 @@ Class Procs:
isprocessing = TRUE
// gotta go slow
-/obj/machinery/proc/makeNormalProcess()
+/obj/machinery/makeNormalProcess()
if(!speed_process)
return
speed_process = 0
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 426da47d5ea..a7e57ce5a52 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -25,6 +25,7 @@
var/burntime = 10 //How long it takes to burn to ashes, in seconds
var/burn_world_time //What world time the object will burn up completely
var/being_shocked = 0
+ var/speed_process = FALSE
var/on_blueprints = FALSE //Are we visible on the station blueprints at roundstart?
var/force_blueprints = FALSE //forces the obj to be on the blueprints, regardless of when it was created.
@@ -66,6 +67,7 @@
/obj/Destroy()
machines -= src
processing_objects -= src
+ fast_processing -= src
SSnanoui.close_uis(src)
return ..()
@@ -284,6 +286,24 @@ a {
/obj/proc/on_mob_move(dir, mob/user)
return
+/obj/proc/makeSpeedProcess()
+ if(speed_process)
+ return
+ speed_process = TRUE
+ processing_objects.Remove(src)
+ fast_processing.Add(src)
+
+/obj/proc/makeNormalProcess()
+ if(!speed_process)
+ return
+ speed_process = FALSE
+ processing_objects.Add(src)
+ fast_processing.Remove(src)
+
/obj/vv_get_dropdown()
. = ..()
.["Delete all of type"] = "?_src_=vars;delall=[UID()]"
+ if(!speed_process)
+ .["Make speed process"] = "?_src_=vars;makespeedy=[UID()]"
+ else
+ .["Make normal process"] = "?_src_=vars;makenormalspeed=[UID()]"