diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index bd1509d88b..7672bcf452 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -92,7 +92,11 @@ . = 1 //Please don't roast me too hard +//Oh don't worry, We Will. /client/MouseMove(object, location, control, params) + if(!COOLDOWN_FINISHED(src, next_mousemove)) + return + COOLDOWN_START(src, next_mousemove, 0) //COOLDOWN_FINISHED() sees the world tick and cooldown timer being equal as a state wherein the cooldown has not finished. So the cooldown timer here is 0 to throttle only for the rest of the tick. mouseParams = params mouse_location_ref = WEAKREF(location) mouse_object_ref = WEAKREF(object) @@ -106,6 +110,9 @@ ..() /client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params) + if(!COOLDOWN_FINISHED(src, next_mousedrag)) + return + COOLDOWN_START(src, next_mousedrag, 0) //See comment in MouseMove() for why this is 0. mouseParams = params mouse_location_ref = WEAKREF(over_location) mouse_object_ref = WEAKREF(over_object) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm index d0b663e4ad..3acf61b3f9 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/relief_valve.dm @@ -6,10 +6,12 @@ can_unwrench = TRUE construction_type = /obj/item/pipe/binary interaction_flags_machine = INTERACT_MACHINE_OFFLINE | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE + pipe_state = "relief_valve-t" + shift_underlay_only = FALSE + var/opened = FALSE var/open_pressure = ONE_ATMOSPHERE * 3 var/close_pressure = ONE_ATMOSPHERE - pipe_state = "relief_valve-t" /obj/machinery/atmospherics/components/binary/relief_valve/layer1 piping_layer = PIPING_LAYER_MIN diff --git a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm index 6188c919ac..cf0de33bc9 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm @@ -24,11 +24,13 @@ return ..() /obj/machinery/atmospherics/components/unary/portables_connector/update_icon_nopipes() - icon_state = "connector" + cut_overlays() if(showpipe) var/image/cap = getpipeimage(icon, "connector_cap", initialize_directions, piping_layer = piping_layer) add_overlay(cap) + icon_state = "connector" + /obj/machinery/atmospherics/components/unary/portables_connector/process_atmos() if(!connected_device) return @@ -37,7 +39,7 @@ /obj/machinery/atmospherics/components/unary/portables_connector/can_unwrench(mob/user) . = ..() if(. && connected_device) - to_chat(user, "You cannot unwrench [src], detach [connected_device] first!") + to_chat(user, span_warning("You cannot unwrench [src], detach [connected_device] first!")) return FALSE /obj/machinery/atmospherics/components/unary/portables_connector/portableConnectorReturnAir() diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 14224cf02e..65db62abf9 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -189,3 +189,7 @@ /// AFK tracking var/last_activity = 0 + + /// The next point in time at which the client is allowed to send a mousemove() or mousedrag() + COOLDOWN_DECLARE(next_mousemove) + COOLDOWN_DECLARE(next_mousedrag) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 82f533df3b..5602cee2fd 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -230,7 +230,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) ///loadout stuff var/gear_points = 10 var/list/gear_categories - var/list/loadout_data = list() + var/list/loadout_data var/list/unlockable_loadout_data = list() var/loadout_slot = 1 //goes from 1 to MAXIMUM_LOADOUT_SAVES var/gear_category @@ -406,7 +406,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //calculate your gear points from the chosen item gear_points = CONFIG_GET(number/initial_gear_points) var/list/chosen_gear = loadout_data["SAVE_[loadout_slot]"] - if(chosen_gear) + if(islist(chosen_gear)) loadout_errors = 0 for(var/loadout_item in chosen_gear) var/loadout_item_path = loadout_item[LOADOUT_ITEM] @@ -994,6 +994,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" if(LOADOUT_CHAR_TAB) dat += "