next set of globals (#19131)

This commit is contained in:
Kashargul
2026-02-09 00:36:52 +01:00
committed by GitHub
parent bc0df9f988
commit fa113ea3f5
101 changed files with 473 additions and 534 deletions
-2
View File
@@ -6,8 +6,6 @@
// atmospherics devices.
//--------------------------------------------
GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "black" = PIPE_COLOR_BLACK, "orange" = PIPE_COLOR_ORANGE, "white" = PIPE_COLOR_WHITE, "purple" = PIPE_COLOR_PURPLE))
/proc/pipe_color_lookup(var/color)
for(var/C in GLOB.pipe_colors)
if(color == GLOB.pipe_colors[C])
+4 -18
View File
@@ -38,8 +38,6 @@ Pipelines + Other Objects -> Pipe network
/obj/machinery/atmospherics/Initialize(mapload, newdir)
. = ..()
if(!icon_manager)
icon_manager = new()
if(!isnull(newdir))
set_dir(newdir)
if(!pipe_color)
@@ -91,28 +89,16 @@ Pipelines + Other Objects -> Pipe network
if(node)
if(!T.is_plating() && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
//underlays += icon_manager.get_atmos_icon("underlay_down", direction, color_cache_name(node))
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
else
//underlays += icon_manager.get_atmos_icon("underlay_intact", direction, color_cache_name(node))
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
else
//underlays += icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color)
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type)
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type)
/obj/machinery/atmospherics/proc/update_underlays()
if(check_icon_cache())
return 1
else
return 0
/obj/machinery/atmospherics/proc/check_icon_cache(var/safety = 0)
if(!istype(icon_manager))
if(!safety) //to prevent infinite loops
icon_manager = new()
check_icon_cache(1)
return 0
return 1
return TRUE
/obj/machinery/atmospherics/proc/color_cache_name(var/obj/machinery/atmospherics/node)
//Don't use this for standard pipes
@@ -64,9 +64,6 @@
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
/obj/machinery/atmospherics/binary/dp_vent_pump/update_icon(var/safety = 0)
if(!check_icon_cache())
return
cut_overlays()
var/vent_icon = "vent"
@@ -83,25 +80,25 @@
else
vent_icon += "[use_power ? "[pump_direction ? "out" : "in"]" : "off"]"
add_overlay(icon_manager.get_atmos_icon("device", , , vent_icon))
add_overlay(GLOB.icon_manager.get_atmos_icon("device", , , vent_icon))
/obj/machinery/atmospherics/binary/dp_vent_pump/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
if(!T.is_plating() && node1 && node2 && node1.level == 1 && node2.level == 1 && istype(node1, /obj/machinery/atmospherics/pipe) && istype(node2, /obj/machinery/atmospherics/pipe))
return
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
if(!T.is_plating() && node1 && node2 && node1.level == 1 && node2.level == 1 && istype(node1, /obj/machinery/atmospherics/pipe) && istype(node2, /obj/machinery/atmospherics/pipe))
return
else
if (node1)
add_underlay(T, node1, turn(dir, -180), node1.icon_connect_type)
else
if (node1)
add_underlay(T, node1, turn(dir, -180), node1.icon_connect_type)
else
add_underlay(T, node1, turn(dir, -180))
if (node2)
add_underlay(T, node2, dir, node2.icon_connect_type)
else
add_underlay(T, node2, dir)
add_underlay(T, node1, turn(dir, -180))
if (node2)
add_underlay(T, node2, dir, node2.icon_connect_type)
else
add_underlay(T, node2, dir)
/obj/machinery/atmospherics/binary/dp_vent_pump/hide(var/i)
update_icon()
@@ -42,13 +42,13 @@
icon_state = (unlocked && flowing)? "on" : "off"
/obj/machinery/atmospherics/binary/passive_gate/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, turn(dir, 180))
add_underlay(T, node2, dir)
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, turn(dir, 180))
add_underlay(T, node2, dir)
/obj/machinery/atmospherics/binary/passive_gate/hide(var/i)
update_underlays()
@@ -80,13 +80,13 @@ Thus, the two variables affect pump operation are set in New():
icon_state = "[use_power ? "[base_icon]-on" : "[base_icon]-off"]"
/obj/machinery/atmospherics/binary/pump/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
add_underlay(T, node2, dir, node2?.icon_connect_type)
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
add_underlay(T, node2, dir, node2?.icon_connect_type)
/obj/machinery/atmospherics/binary/pump/hide(var/i)
update_underlays()
@@ -88,13 +88,13 @@ Thus, the two variables affect pump operation are set in New():
cut_overlay(overclock_overlay)
/obj/machinery/atmospherics/binary/volume_pump/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
add_underlay(T, node2, dir, node2?.icon_connect_type)
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, turn(dir, -180), node1?.icon_connect_type)
add_underlay(T, node2, dir, node2?.icon_connect_type)
/obj/machinery/atmospherics/binary/volume_pump/hide(var/i)
update_underlays()
@@ -106,9 +106,6 @@
return
/obj/machinery/atmospherics/omni/proc/build_icons()
if(!check_icon_cache())
return
var/core_icon = null
if(istype(src, /obj/machinery/atmospherics/omni/mixer))
core_icon = "mixer"
@@ -119,16 +116,13 @@
//directional icons are layers 1-4, with the core icon on layer 5
if(core_icon)
overlays_off[5] = icon_manager.get_atmos_icon("omni", , , core_icon)
overlays_on[5] = icon_manager.get_atmos_icon("omni", , , core_icon + "_glow")
overlays_off[5] = GLOB.icon_manager.get_atmos_icon("omni", , , core_icon)
overlays_on[5] = GLOB.icon_manager.get_atmos_icon("omni", , , core_icon + "_glow")
overlays_error[1] = icon_manager.get_atmos_icon("omni", , , core_icon)
overlays_error[2] = icon_manager.get_atmos_icon("omni", , , "error")
overlays_error[1] = GLOB.icon_manager.get_atmos_icon("omni", , , core_icon)
overlays_error[2] = GLOB.icon_manager.get_atmos_icon("omni", , , "error")
/obj/machinery/atmospherics/omni/proc/update_port_icons()
if(!check_icon_cache())
return
for(var/datum/omni_port/P in ports)
if(P.update)
var/ref_layer = 0
@@ -179,8 +173,8 @@
ic_on += "_filter"
ic_off += "_out"
ic_on = icon_manager.get_atmos_icon("omni", , , ic_on)
ic_off = icon_manager.get_atmos_icon("omni", , , ic_off)
ic_on = GLOB.icon_manager.get_atmos_icon("omni", , , ic_on)
ic_off = GLOB.icon_manager.get_atmos_icon("omni", , , ic_off)
var/pipe_state
var/turf/T = get_turf(src)
@@ -188,10 +182,10 @@
return
if(!T.is_plating() && istype(P.node, /obj/machinery/atmospherics/pipe) && P.node.level == 1 )
//pipe_state = icon_manager.get_atmos_icon("underlay_down", P.dir, color_cache_name(P.node))
pipe_state = icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "down")
pipe_state = GLOB.icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "down")
else
//pipe_state = icon_manager.get_atmos_icon("underlay_intact", P.dir, color_cache_name(P.node))
pipe_state = icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "intact")
pipe_state = GLOB.icon_manager.get_atmos_icon("underlay", P.dir, color_cache_name(P.node), "intact")
return list("on_icon" = ic_on, "off_icon" = ic_off, "pipe_icon" = pipe_state)
@@ -42,12 +42,12 @@
icon_state = "connector"
/obj/machinery/atmospherics/portables_connector/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node, dir, node?.icon_connect_type)
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node, dir, node?.icon_connect_type)
/obj/machinery/atmospherics/portables_connector/hide(var/i)
update_underlays()
@@ -32,15 +32,15 @@
initialize_directions = get_initialize_directions_trinary(dir, mirrored, tee)
/obj/machinery/atmospherics/trinary/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
var/list/node_connects = get_node_connect_dirs()
add_underlay(T, node1, node_connects[1])
add_underlay(T, node2, node_connects[2])
add_underlay(T, node3, node_connects[3])
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
var/list/node_connects = get_node_connect_dirs()
add_underlay(T, node1, node_connects[1])
add_underlay(T, node2, node_connects[2])
add_underlay(T, node3, node_connects[3])
/obj/machinery/atmospherics/trinary/hide(var/i)
update_underlays()
+9 -9
View File
@@ -34,15 +34,15 @@
icon_state = "tvalve[mirrored ? "m" : ""][state]"
/obj/machinery/atmospherics/tvalve/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
var/list/node_connects = get_node_connect_dirs()
add_underlay(T, node1, node_connects[1])
add_underlay(T, node2, node_connects[2])
add_underlay(T, node3, node_connects[3])
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
var/list/node_connects = get_node_connect_dirs()
add_underlay(T, node1, node_connects[1])
add_underlay(T, node2, node_connects[2])
add_underlay(T, node3, node_connects[3])
/obj/machinery/atmospherics/tvalve/hide(var/i)
update_underlays()
@@ -42,12 +42,12 @@
icon_state = "[use_power ? "on" : "off"]"
/obj/machinery/atmospherics/unary/outlet_injector/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node, dir)
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node, dir)
/obj/machinery/atmospherics/unary/outlet_injector/power_change()
var/old_stat = stat
+12 -15
View File
@@ -146,9 +146,6 @@
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //meant to match air injector
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
if(!check_icon_cache())
return
cut_overlays()
var/vent_icon = "vent"
@@ -172,21 +169,21 @@
playsound(src, start_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise)
add_overlay(icon_manager.get_atmos_icon("device", , , vent_icon))
add_overlay(GLOB.icon_manager.get_atmos_icon("device", , , vent_icon))
/obj/machinery/atmospherics/unary/vent_pump/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
return
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
return
else
if(node)
add_underlay(T, node, dir, node.icon_connect_type)
else
if(node)
add_underlay(T, node, dir, node.icon_connect_type)
else
add_underlay(T,, dir)
add_underlay(T,, dir)
/obj/machinery/atmospherics/unary/vent_pump/hide()
update_icon()
@@ -57,9 +57,6 @@
return ..()
/obj/machinery/atmospherics/unary/vent_scrubber/update_icon(var/safety = 0)
if(!check_icon_cache())
return
cut_overlays()
var/scrubber_icon = "scrubber"
@@ -75,21 +72,21 @@
else
scrubber_icon += "[use_power ? "[scrubbing ? "on" : "in"]" : "off"]"
add_overlay(icon_manager.get_atmos_icon("device", , , scrubber_icon))
add_overlay(GLOB.icon_manager.get_atmos_icon("device", , , scrubber_icon))
/obj/machinery/atmospherics/unary/vent_scrubber/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
return
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
if(!T.is_plating() && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
return
else
if(node)
add_underlay(T, node, dir, node.icon_connect_type)
else
if(node)
add_underlay(T, node, dir, node.icon_connect_type)
else
add_underlay(T,, dir)
add_underlay(T,, dir)
/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency)
SSradio.remove_object(src, frequency)
+7 -7
View File
@@ -29,13 +29,13 @@
icon_state = "valve[open]"
/obj/machinery/atmospherics/valve/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, get_dir(src, node1))
add_underlay(T, node2, get_dir(src, node2))
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, get_dir(src, node1))
add_underlay(T, node2, get_dir(src, node2))
/obj/machinery/atmospherics/valve/hide(var/i)
update_underlays()
+1 -4
View File
@@ -48,13 +48,10 @@
node.update_underlays()
/obj/machinery/atmospherics/pipe/cap/update_icon(var/safety = 0)
if(!check_icon_cache())
return
alpha = 255
cut_overlays()
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "cap[icon_connect_type]"))
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "cap[icon_connect_type]"))
/obj/machinery/atmospherics/pipe/cap/atmos_init()
for(var/obj/machinery/atmospherics/target in get_step(src, dir))
+2 -5
View File
@@ -97,14 +97,11 @@
node3.update_underlays()
/obj/machinery/atmospherics/pipe/manifold/update_icon(var/safety = 0)
if(!check_icon_cache())
return
alpha = 255
cut_overlays()
add_overlay(icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type))
add_overlay(icon_manager.get_atmos_icon("manifold", , , "clamps" + icon_connect_type))
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type))
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , , "clamps" + icon_connect_type))
underlays.Cut()
var/turf/T = get_turf(src)
+2 -5
View File
@@ -97,14 +97,11 @@
node4.update_underlays()
/obj/machinery/atmospherics/pipe/manifold4w/update_icon(var/safety = 0)
if(!check_icon_cache())
return
alpha = 255
cut_overlays()
add_overlay(icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type))
add_overlay(icon_manager.get_atmos_icon("manifold", , , "clamps_4way" + icon_connect_type))
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type))
add_overlay(GLOB.icon_manager.get_atmos_icon("manifold", , , "clamps_4way" + icon_connect_type))
underlays.Cut()
var/turf/T = get_turf(src)
+2 -5
View File
@@ -112,17 +112,14 @@
node2.update_underlays()
/obj/machinery/atmospherics/pipe/simple/update_icon(var/safety = 0)
if(!check_icon_cache())
return
alpha = 255
cut_overlays()
if(node1 && node2)
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]intact[icon_connect_type]"))
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]intact[icon_connect_type]"))
else
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]exposed[node1?1:0][node2?1:0][icon_connect_type]"))
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "[pipe_icon]exposed[node1?1:0][node2?1:0][icon_connect_type]"))
/obj/machinery/atmospherics/pipe/simple/update_underlays()
return
+6 -6
View File
@@ -37,12 +37,12 @@
return list(node1)
/obj/machinery/atmospherics/pipe/tank/update_underlays()
if(..())
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, dir)
..()
underlays.Cut()
var/turf/T = get_turf(src)
if(!istype(T))
return
add_underlay(T, node1, dir)
/obj/machinery/atmospherics/pipe/tank/hide()
update_underlays()
+5 -11
View File
@@ -11,13 +11,10 @@
pipe_state = "universal"
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_icon(var/safety = 0)
if(!check_icon_cache())
return
alpha = 255
cut_overlays()
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
underlays.Cut()
if (node1)
@@ -49,13 +46,10 @@
pipe_state = "universal"
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_icon(var/safety = 0) // Doesn't leak. It's a special pipe.
if(!check_icon_cache())
return
alpha = 255
cut_overlays()
add_overlay(icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
add_overlay(GLOB.icon_manager.get_atmos_icon("pipe", , pipe_color, "universal"))
underlays.Cut()
if (node1)
@@ -122,8 +116,8 @@
/obj/machinery/atmospherics/proc/add_underlay_adapter(var/turf/T, var/obj/machinery/atmospherics/node, var/direction, var/icon_connect_type) //modified from add_underlay, does not make exposed underlays
if(node)
if(!T.is_plating() && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
else
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
else
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type)
underlays += GLOB.icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type)
+19
View File
@@ -68,3 +68,22 @@
#define MODULAR_BODYPART_INVALID 0 // Cannot be detached or reattached.
#define MODULAR_BODYPART_PROSTHETIC 1 // Can be detached or reattached freely.
#define MODULAR_BODYPART_CYBERNETIC 2 // Can be detached or reattached to compatible parent organs.
//CitRP Port
#define CYBERBEAST_MONITOR_STYLES "blank=cyber_blank;\
default=cyber_default;\
eyes=eyes;\
static=cyber_static;\
alert=cyber_alert;\
happy=cyber_happ;\
unhappy=cyber_unhapp;\
flat=cyber_flat;\
sad=cyber_sad;\
heart=cyber_heart;\
cross=cyber_cross;\
wave=cyber_wave;\
uwu=cyber_uwu;\
question=cyber_question;\
lowpower=cyber_lowpower;\
idle=cyber_idle;\
nwn=cyber_nwn"
-3
View File
@@ -80,9 +80,6 @@
#define NETWORK_OUTSIDE "Outside"
#define NETWORK_HALLS "Halls"
// Those networks can only be accessed by pre-existing terminals. AIs and new terminals can't use them.
var/list/restricted_camera_networks = list(NETWORK_ERT,NETWORK_MERCENARY,"Secret", NETWORK_COMMUNICATORS)
#define TRANSMISSION_WIRE 0 //Is this ever used? I don't think it is.
#define TRANSMISSION_RADIO 1 //Radio transmissions (like airlock controller to pump)
#define TRANSMISSION_SUBSPACE 2 //Like headsets
+3
View File
@@ -4,6 +4,9 @@
/// Define that just has the current in-universe year for use in whatever context you might want to display that in. (For example, 2022 -> 2562 given a 540 year offset)
#define CURRENT_STATION_YEAR (GLOB.year_integer + STATION_YEAR_OFFSET)
/// Used in the GLOB year and tgui PreInit
#define UTC_YEAR time2text(world.realtime,"YYYY",NO_TIMEZONE)
/// In-universe, SS13 is set 300 years in the future from the real-world day, hence this number for determining the year-offset for the in-game year.
#define STATION_YEAR_OFFSET 300
+3
View File
@@ -75,3 +75,6 @@ GLOBAL_DATUM_INIT(buildmode_hud, /icon, icon('icons/misc/buildmode.dmi'))
GLOBAL_LIST_EMPTY(cached_character_icons)
GLOBAL_VAR_INIT(triai, FALSE)
// Pipe colors, needs to be inited before our pipe icon_manager
GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "black" = PIPE_COLOR_BLACK, "orange" = PIPE_COLOR_ORANGE, "white" = PIPE_COLOR_WHITE, "purple" = PIPE_COLOR_PURPLE))
+1 -1
View File
@@ -1,2 +1,2 @@
GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY"))
GLOBAL_VAR_INIT(year, UTC_YEAR)
GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
+14
View File
@@ -1,4 +1,18 @@
GLOBAL_DATUM_INIT(gear_tweak_free_color_choice, /datum/gear_tweak/color, new)
GLOBAL_DATUM_INIT(gear_tweak_implant_location, /datum/gear_tweak/implant_location, new)
GLOBAL_DATUM_INIT(gear_tweak_collar_tag, /datum/gear_tweak/collar_tag, new)
//Underwear
GLOBAL_DATUM_INIT(global_underwear, /datum/category_collection/underwear, new)
//Global Datums
GLOBAL_DATUM_INIT(icon_manager, /datum/pipe_icon_manager, new)
GLOBAL_DATUM_INIT(emergency_shuttle, /datum/emergency_shuttle_controller, new)
// We manually initialize the alarm handlers instead of looping over all existing types
// to make it possible to write: camera_alarm.triggerAlarm() rather than SSalarm.managers[datum/alarm_handler/camera].triggerAlarm() or a variant thereof.
GLOBAL_DATUM_INIT(atmosphere_alarm, /datum/alarm_handler/atmosphere, new)
GLOBAL_DATUM_INIT(camera_alarm, /datum/alarm_handler/camera, new)
GLOBAL_DATUM_INIT(fire_alarm, /datum/alarm_handler/fire, new)
GLOBAL_DATUM_INIT(motion_alarm, /datum/alarm_handler/motion, new)
GLOBAL_DATUM_INIT(power_alarm, /datum/alarm_handler/power, new)
-1
View File
@@ -1 +0,0 @@
var/datum/gear_tweak/collar_tag/gear_tweak_collar_tag = new()
+9 -14
View File
@@ -22,6 +22,8 @@ GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs ta
var/global/list/obj/item/pda/PDAs = list()
var/global/list/obj/item/communicator/all_communicators = list()
// Those networks can only be accessed by pre-existing terminals. AIs and new terminals can't use them.
GLOBAL_LIST_INIT(restricted_camera_networks, list(NETWORK_ERT,NETWORK_MERCENARY,"Secret", NETWORK_COMMUNICATORS))
#define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER,HERM)
#define all_genders_text_list list("Male","Female","Plural","Neuter","Herm")
@@ -631,7 +633,7 @@ var/global/list/assigned_blocks[DNA_SE_LENGTH]
GLOBAL_LIST_EMPTY(gear_distributed_to)
GLOBAL_LIST_EMPTY(overlay_cache) //cache recent overlays
var/global/list/all_technomancer_gambit_spells = typesof(/obj/item/spell) - list(
GLOBAL_LIST_INIT(all_technomancer_gambit_spells, typesof(/obj/item/spell) - list(
/obj/item/spell,
/obj/item/spell/gambit,
/obj/item/spell/projectile,
@@ -639,7 +641,7 @@ var/global/list/all_technomancer_gambit_spells = typesof(/obj/item/spell) - list
// /obj/item/spell/insert,
/obj/item/spell/spawner,
/obj/item/spell/summon,
/obj/item/spell/modifier)
/obj/item/spell/modifier))
var/global/list/image/splatter_cache=list()
var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective. Clumsy, rewrite sometime.
@@ -1199,18 +1201,6 @@ GLOBAL_LIST_INIT(all_tooltip_styles, list(
"Clockwork"
))
//Global Datums
var/global/datum/pipe_icon_manager/icon_manager
var/global/datum/emergency_shuttle_controller/emergency_shuttle = new
// We manually initialize the alarm handlers instead of looping over all existing types
// to make it possible to write: camera_alarm.triggerAlarm() rather than SSalarm.managers[datum/alarm_handler/camera].triggerAlarm() or a variant thereof.
/var/global/datum/alarm_handler/atmosphere/atmosphere_alarm = new()
/var/global/datum/alarm_handler/camera/camera_alarm = new()
/var/global/datum/alarm_handler/fire/fire_alarm = new()
/var/global/datum/alarm_handler/motion/motion_alarm = new()
/var/global/datum/alarm_handler/power/power_alarm = new()
GLOBAL_LIST_EMPTY(gun_choices)
GLOBAL_ALIST_INIT(severity_to_string, list(
@@ -1624,6 +1614,11 @@ GLOBAL_LIST_INIT(suitable_fish_turf_types, list(
/turf/simulated/floor/water
))
GLOBAL_LIST_INIT(ventcrawl_machinery, list(
/obj/machinery/atmospherics/unary/vent_pump,
/obj/machinery/atmospherics/unary/vent_scrubber
))
GLOBAL_LIST_BOILERPLATE(papers_dockingcode, /obj/item/paper/dockingcodes)
//Chamelion clothing was all stupid so it's done here instead.
+1 -1
View File
@@ -15,7 +15,7 @@
if(Player.mind && !isnewplayer(Player))
if(Player.stat != DEAD)
var/turf/playerTurf = get_turf(Player)
if(emergency_shuttle.departed && emergency_shuttle.evac)
if(GLOB.emergency_shuttle.departed && GLOB.emergency_shuttle.evac)
if(isNotAdminLevel(playerTurf.z))
to_chat(Player, span_filter_system(span_blue(span_bold("You survived the round, but remained on [station_name()] as [Player.real_name]."))))
else
+1 -2
View File
@@ -79,8 +79,7 @@ ADMIN_VERB(debug_controller, R_DEBUG, "Debug Controller", "Debug the various per
//Goon PS stuff, and other yet-to-be-subsystem things.
options["LEGACY: master_controller"] = GLOB.master_controller
options["LEGACY: job_master"] = GLOB.job_master
options["LEGACY: SSradio"] = SSradio
options["LEGACY: emergency_shuttle"] = emergency_shuttle
options["LEGACY: emergency_shuttle"] = GLOB.emergency_shuttle
options["LEGACY: paiController"] = paiController
options["LEGACY: cameranet"] = cameranet
options["LEGACY: transfer_controller"] = GLOB.transfer_controller
@@ -177,7 +177,7 @@
return 0 //not at station
return (wait_for_launch || shuttle.moving_status != SHUTTLE_INTRANSIT)
//so we don't have emergency_shuttle.shuttle.location everywhere
//so we don't have GLOB.emergency_shuttle.shuttle.location everywhere
/datum/emergency_shuttle_controller/proc/location()
if (!shuttle)
return 1 //if we dont have a shuttle datum, just act like it's at centcom
@@ -228,14 +228,14 @@
/datum/emergency_shuttle_controller/proc/get_status_panel_eta()
if (online())
if (shuttle.has_arrive_time())
var/timeleft = emergency_shuttle.estimate_arrival_time()
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
return "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]"
if (waiting_to_leave())
if (shuttle.moving_status == SHUTTLE_WARMUP)
return "Departing..."
var/timeleft = emergency_shuttle.estimate_launch_time()
var/timeleft = GLOB.emergency_shuttle.estimate_launch_time()
return "ETD-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]"
return ""
+1 -1
View File
@@ -10,7 +10,7 @@ SUBSYSTEM_DEF(alarm)
var/static/list/active_alarm_cache = list()
/datum/controller/subsystem/alarm/Initialize()
all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
all_handlers = list(GLOB.atmosphere_alarm, GLOB.camera_alarm, GLOB.fire_alarm, GLOB.motion_alarm, GLOB.power_alarm)
return SS_INIT_SUCCESS
/datum/controller/subsystem/alarm/fire(resumed = FALSE)
+2 -2
View File
@@ -469,8 +469,8 @@ SUBSYSTEM_DEF(internal_wiki)
SHOULD_NOT_OVERRIDE(TRUE)
PRIVATE_PROC(TRUE)
// assemble material wiki
for(var/mat in name_to_material)
var/datum/material/M = name_to_material[mat]
for(var/mat, value in GLOB.name_to_material)
var/datum/material/M = value
if(M.wiki_flag & WIKI_SPOILER)
spoiler_entries.Add(M.type)
continue
+2 -2
View File
@@ -36,8 +36,8 @@ SUBSYSTEM_DEF(statpanels)
"Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)"
)
if(emergency_shuttle.evac)
var/ETA = emergency_shuttle.get_status_panel_eta()
if(GLOB.emergency_shuttle.evac)
var/ETA = GLOB.emergency_shuttle.get_status_panel_eta()
if(ETA)
global_data += "[ETA]"
+1 -1
View File
@@ -41,7 +41,7 @@ SUBSYSTEM_DEF(tgui)
ntos_error = "<style type='text/css'>\n[ntos_error]\n</style>"
basehtml = replacetextEx(basehtml, "<!-- tgui:ntos-error -->", ntos_error)
basehtml = replacetextEx(basehtml, "<!-- tgui:nt-copyright -->", "Nanotrasen (c) 2284-[text2num(time2text(world.realtime,"YYYY")) + STATION_YEAR_OFFSET]")
basehtml = replacetextEx(basehtml, "<!-- tgui:nt-copyright -->", "Nanotrasen (c) 2284-[text2num(UTC_YEAR) + STATION_YEAR_OFFSET]") // This can't use the GLOB as it runs before those are populated
/datum/controller/subsystem/tgui/OnConfigLoad()
var/storage_iframe = CONFIG_GET(string/storage_cdn_iframe)
+2 -2
View File
@@ -158,10 +158,10 @@ SUBSYSTEM_DEF(ticker)
var/game_finished = FALSE
var/mode_finished = FALSE
if (CONFIG_GET(flag/continuous_rounds)) // Game keeps going after mode ends.
game_finished = (emergency_shuttle.returned() || mode.station_was_nuked)
game_finished = (GLOB.emergency_shuttle.returned() || mode.station_was_nuked)
mode_finished = ((end_game_state >= END_GAME_MODE_FINISHED) || mode.check_finished()) // Short circuit if already finished.
else // Game ends when mode does
game_finished = (mode.check_finished() || (emergency_shuttle.returned() && emergency_shuttle.evac == 1)) || GLOB.universe_has_ended
game_finished = (mode.check_finished() || (GLOB.emergency_shuttle.returned() && GLOB.emergency_shuttle.evac == 1)) || GLOB.universe_has_ended
mode_finished = game_finished
if(game_finished && mode_finished)
+4 -4
View File
@@ -42,8 +42,8 @@
/datum/category_group/autolathe/all/New()
..()
for(var/Name in name_to_material)
var/datum/material/M = name_to_material[Name]
for(var/mame, value in GLOB.name_to_material)
var/datum/material/M = value
if(!M.stack_type) // Shouldn't happen, but might. Never know.
continue
@@ -93,8 +93,8 @@
/datum/category_group/autolathe/materials/New()
..()
for(var/Name in name_to_material)
var/datum/material/M = name_to_material[Name]
for(var/name, value in GLOB.name_to_material)
var/datum/material/M = value
if(!M.stack_type) // Shouldn't happen, but might. Never know.
continue
@@ -18,8 +18,7 @@
verbpath = /mob/proc/changeling_hivedownload
// HIVE MIND UPLOAD/DOWNLOAD DNA
var/list/datum/dna/hivemind_bank = list()
GLOBAL_LIST_EMPTY_TYPED(hivemind_bank, /datum/dna)
/mob/proc/changeling_hiveupload()
set category = "Changeling"
@@ -32,7 +31,7 @@ var/list/datum/dna/hivemind_bank = list()
var/list/names = list()
for(var/datum/absorbed_dna/DNA in changeling.absorbed_dna)
if(!(DNA in hivemind_bank))
if(!(DNA in GLOB.hivemind_bank))
names += DNA.name
if(names.len <= 0)
@@ -48,7 +47,7 @@ var/list/datum/dna/hivemind_bank = list()
return
changeling.chem_charges -= 10
hivemind_bank += chosen_dna
GLOB.hivemind_bank += chosen_dna
to_chat(src, span_notice("We channel the DNA of [S] to the air."))
feedback_add_details("changeling_powers","HU")
return TRUE
@@ -63,7 +62,7 @@ var/list/datum/dna/hivemind_bank = list()
return
var/list/names = list()
for(var/datum/absorbed_dna/DNA in hivemind_bank)
for(var/datum/absorbed_dna/DNA in GLOB.hivemind_bank)
if(!(DNA in changeling.absorbed_dna))
names[DNA.name] = DNA
+3 -3
View File
@@ -109,13 +109,13 @@ GLOBAL_LIST_EMPTY(areas_by_type)
/area/proc/atmosalert(danger_level, var/alarm_source)
if (danger_level == 0)
atmosphere_alarm.clearAlarm(src, alarm_source)
GLOB.atmosphere_alarm.clearAlarm(src, alarm_source)
else
var/obj/machinery/alarm/atmosalarm = alarm_source //maybe other things can trigger these, who knows
if(istype(atmosalarm))
atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level, hidden = atmosalarm.alarms_hidden)
GLOB.atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level, hidden = atmosalarm.alarms_hidden)
else
atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)
GLOB.atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)
//Check all the alarms before lowering atmosalm. Raising is perfectly fine.
var/obj/machinery/alarm/AM = main_air_alarm?.resolve()
+3 -3
View File
@@ -53,9 +53,9 @@ GLOBAL_VAR_INIT(narsie_cometh, 0)
GLOB.narsie_cometh = 1
spawn(10 SECONDS)
if(emergency_shuttle)
emergency_shuttle.call_evac()
emergency_shuttle.launch_time = 0 // Cannot recall
if(GLOB.emergency_shuttle)
GLOB.emergency_shuttle.call_evac()
GLOB.emergency_shuttle.launch_time = 0 // Cannot recall
/obj/singularity/narsie/process()
eat()
+3 -3
View File
@@ -203,9 +203,9 @@ GLOBAL_LIST_EMPTY(sacrificed)
GLOB.narsie_cometh = 1
spawn(10 SECONDS)
if(emergency_shuttle)
emergency_shuttle.call_evac()
emergency_shuttle.launch_time = 0 // Cannot recall
if(GLOB.emergency_shuttle)
GLOB.emergency_shuttle.call_evac()
GLOB.emergency_shuttle.launch_time = 0 // Cannot recall
log_and_message_admins_many(cultists, "summoned the end of days.")
return
@@ -44,9 +44,9 @@ GLOBAL_VAR_INIT(universe_has_ended, 0)
for(var/mob/M in GLOB.player_list)
M.flash_eyes()
if(emergency_shuttle.can_recall())
if(GLOB.emergency_shuttle.can_recall())
priority_announcement.Announce("The emergency shuttle has returned due to bluespace distortion.")
emergency_shuttle.recall()
GLOB.emergency_shuttle.recall()
AreaSet()
MiscSet()
+5 -5
View File
@@ -214,8 +214,8 @@ GLOBAL_LIST_EMPTY(additional_antag_types)
if(antag.is_latejoin_template())
latejoin_templates |= antag
if(emergency_shuttle && auto_recall_shuttle)
emergency_shuttle.auto_recall = 1
if(GLOB.emergency_shuttle && auto_recall_shuttle)
GLOB.emergency_shuttle.auto_recall = 1
feedback_set_details("round_start","[time2text(world.realtime)]")
INVOKE_ASYNC(SSdbcore, TYPE_PROC_REF(/datum/controller/subsystem/dbcore, SetRoundStart))
@@ -267,14 +267,14 @@ GLOBAL_LIST_EMPTY(additional_antag_types)
command_announcement.Announce("The presence of [pick(reasons)] in the region is tying up all available local emergency resources; emergency response teams cannot be called at this time, and post-evacuation recovery efforts will be substantially delayed.","Emergency Transmission")
/datum/game_mode/proc/check_finished()
if(emergency_shuttle.returned() || station_was_nuked)
if(GLOB.emergency_shuttle.returned() || station_was_nuked)
return 1
if(end_on_antag_death && antag_templates && antag_templates.len)
for(var/datum/antagonist/antag in antag_templates)
if(!antag.antags_are_dead())
return 0
if(CONFIG_GET(flag/continuous_rounds))
emergency_shuttle.auto_recall = 0
GLOB.emergency_shuttle.auto_recall = 0
return 0
return 1
return 0
@@ -344,7 +344,7 @@ GLOBAL_LIST_EMPTY(additional_antag_types)
var/text = ""
if(surviving_total > 0)
text += "<br>There [surviving_total>1 ? ("were " + span_bold("[surviving_total] survivors")) : ("was " + span_bold("one survivor"))] ("
text += span_bold("[escaped_total>0 ? escaped_total : "none"] [emergency_shuttle.evac ? "escaped" : "transferred"]") + ") and " + span_bold("[ghosts] ghosts")
text += span_bold("[escaped_total>0 ? escaped_total : "none"] [GLOB.emergency_shuttle.evac ? "escaped" : "transferred"]") + ") and " + span_bold("[ghosts] ghosts")
text += ".<br>"
else
text += "There were " + span_bold("no survivors") + " (" + span_bold("[ghosts] ghosts") + ")."
+2 -2
View File
@@ -28,10 +28,10 @@
/datum/game_mode/proc/try_latespawn(var/datum/mind/player, var/latejoin_only)
if(emergency_shuttle.departed || !round_autoantag)
if(GLOB.emergency_shuttle.departed || !round_autoantag)
return
if(emergency_shuttle.shuttle && (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP || emergency_shuttle.shuttle.moving_status == SHUTTLE_INTRANSIT))
if(GLOB.emergency_shuttle.shuttle && (GLOB.emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP || GLOB.emergency_shuttle.shuttle.moving_status == SHUTTLE_INTRANSIT))
return // Don't do anything if the shuttle's coming.
var/mills = round_duration_in_ds
+6 -6
View File
@@ -267,7 +267,7 @@ datum
explanation_text = "Frame [target.current.real_name], the [target.assigned_role] for a crime and make sure they are arrested and brought back to the CentCom station alive. We'll handle the rest from there."
check_completion()
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(target.current.stat == 2)
return 0
@@ -313,7 +313,7 @@ datum
explanation_text = "[target.current.real_name], the [target.assigned_role] is a [pick("relative of a","friend of a","") + pick("high ranking","important","well-liked")] mercenary [pick("Leader","Officer","Agent","sympathiser")]. Make sure they get off the station safely, while minimizing intervention."
check_completion()
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(target.current.stat == 2)
@@ -477,7 +477,7 @@ datum
explanation_text = "Hijack the emergency shuttle by escaping alone."
check_completion()
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(!owner.current || owner.current.stat == 2)
@@ -512,7 +512,7 @@ datum
explanation_text = "Escape on the shuttle alive, without being arrested."
check_completion()
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(!owner.current || owner.current.stat ==2)
@@ -1230,7 +1230,7 @@ datum
check_completion()
if(!istype(owner.current, /mob/living/silicon))
return 0
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(!owner.current)
return 0
@@ -1457,7 +1457,7 @@ datum
explanation_text = "Do not allow anyone to escape the station. Only allow the shuttle to be called when everyone is dead and your story is the only one left."
check_completion()
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
var/area/shuttle = locate(/area/shuttle/escape/centcom)
+1 -1
View File
@@ -41,7 +41,7 @@ GLOBAL_LIST_EMPTY(nuke_disks)
if(!is_type_in_list(disk_area, GLOB.centcom_areas))
disk_rescued = 0
break
var/crew_evacuated = (emergency_shuttle.returned())
var/crew_evacuated = (GLOB.emergency_shuttle.returned())
if(!disk_rescued && station_was_nuked && !syndies_didnt_escape)
feedback_set_details("round_end_result","win - syndicate nuke")
+4 -4
View File
@@ -219,7 +219,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
/datum/objective/hijack/check_completion()
if(!owner.current || owner.current.stat)
return 0
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(issilicon(owner.current))
return 0
@@ -241,7 +241,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
/datum/objective/block/check_completion()
if(!istype(owner.current, /mob/living/silicon))
return 0
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(!owner.current)
return 0
@@ -259,7 +259,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
explanation_text = "Do not allow anyone to escape the station. Only allow the shuttle to be called when everyone is dead and your story is the only one left."
/datum/objective/silence/check_completion()
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
for(var/mob/living/player in GLOB.player_list)
@@ -284,7 +284,7 @@ GLOBAL_LIST_EMPTY(all_objectives)
return 0
if(isbrain(owner.current))
return 0
if(!emergency_shuttle.returned())
if(!GLOB.emergency_shuttle.returned())
return 0
if(!owner.current || owner.current.stat ==2)
return 0
+1 -1
View File
@@ -14,4 +14,4 @@
/datum/game_mode/sandbox/post_setup()
..()
if(emergency_shuttle)
emergency_shuttle.auto_recall = 1
GLOB.emergency_shuttle.auto_recall = 1
@@ -35,7 +35,7 @@
// Gives a random spell.
/obj/item/spell/gambit/proc/random_spell()
var/list/potential_spells = all_technomancer_gambit_spells.Copy()
var/list/potential_spells = GLOB.all_technomancer_gambit_spells.Copy()
var/rare_spell_chance = between(0, calculate_spell_power(100) - 100, 100) // Having 120% spellpower means a 20% chance to get to roll for rare spells.
if(prob(rare_spell_chance))
potential_spells += rare_spells.Copy()
@@ -119,6 +119,6 @@
// Fallback method in case nothing gets added.
if(!potential_spells.len)
potential_spells = all_technomancer_gambit_spells.Copy()
potential_spells = GLOB.all_technomancer_gambit_spells.Copy()
return pick(potential_spells)
+3 -3
View File
@@ -310,14 +310,14 @@
/obj/machinery/camera/proc/triggerCameraAlarm(var/duration = 0)
alarm_on = 1
camera_alarm.triggerAlarm(loc, src, duration)
GLOB.camera_alarm.triggerAlarm(loc, src, duration)
/obj/machinery/camera/proc/cancelCameraAlarm()
if(wires.is_cut(WIRE_CAM_ALARM))
return
alarm_on = 0
camera_alarm.clearAlarm(loc, src)
GLOB.camera_alarm.clearAlarm(loc, src)
//if false, then the camera is listed as DEACTIVATED and cannot be used
/obj/machinery/camera/proc/can_use()
@@ -462,7 +462,7 @@
/obj/machinery/camera/proc/update_coverage(var/network_change = 0)
if(network_change)
var/list/open_networks = difflist(network, restricted_camera_networks)
var/list/open_networks = difflist(network, GLOB.restricted_camera_networks)
// Add or remove camera from the camera net as necessary
if(on_open_network && !open_networks.len)
cameranet.removeCamera(src)
+2 -2
View File
@@ -42,7 +42,7 @@
if (!status || (stat & NOPOWER))
return 0
if (detectTime == -1)
motion_alarm.clearAlarm(loc, src)
GLOB.motion_alarm.clearAlarm(loc, src)
detectTime = 0
return 1
@@ -50,7 +50,7 @@
if (!status || (stat & NOPOWER))
return 0
if (!detectTime) return 0
motion_alarm.triggerAlarm(loc, src)
GLOB.motion_alarm.triggerAlarm(loc, src)
detectTime = -1
return 1
+7 -7
View File
@@ -8,10 +8,10 @@
/obj/machinery/computer/atmos_alert/Initialize(mapload)
. = ..()
atmosphere_alarm.register_alarm(src, /atom/proc/update_icon)
GLOB.atmosphere_alarm.register_alarm(src, /atom/proc/update_icon)
/obj/machinery/computer/atmos_alert/Destroy()
atmosphere_alarm.unregister_alarm(src)
GLOB.atmosphere_alarm.unregister_alarm(src)
. = ..()
/obj/machinery/computer/atmos_alert/attack_hand(mob/user)
@@ -28,10 +28,10 @@
var/list/major_alarms = list()
var/list/minor_alarms = list()
for(var/datum/alarm/alarm in atmosphere_alarm.major_alarms(get_z(src)))
for(var/datum/alarm/alarm in GLOB.atmosphere_alarm.major_alarms(get_z(src)))
major_alarms[++major_alarms.len] = list("name" = sanitize(alarm.alarm_name()), "ref" = "\ref[alarm]")
for(var/datum/alarm/alarm in atmosphere_alarm.minor_alarms(get_z(src)))
for(var/datum/alarm/alarm in GLOB.atmosphere_alarm.minor_alarms(get_z(src)))
minor_alarms[++minor_alarms.len] = list("name" = sanitize(alarm.alarm_name()), "ref" = "\ref[alarm]")
data["priority_alarms"] = major_alarms
@@ -41,11 +41,11 @@
/obj/machinery/computer/atmos_alert/update_icon()
if(!(stat & (NOPOWER|BROKEN)))
var/list/alarms = atmosphere_alarm.major_alarms()
var/list/alarms = GLOB.atmosphere_alarm.major_alarms()
if(alarms.len)
icon_screen = "alert:2"
else
alarms = atmosphere_alarm.minor_alarms()
alarms = GLOB.atmosphere_alarm.minor_alarms()
if(alarms.len)
icon_screen = "alert:1"
else
@@ -58,7 +58,7 @@
switch(action)
if("clear")
var/datum/alarm/alarm = locate(params["ref"]) in atmosphere_alarm.alarms
var/datum/alarm/alarm = locate(params["ref"]) in GLOB.atmosphere_alarm.alarms
if(alarm)
for(var/datum/alarm_source/alarm_source in alarm.sources)
var/obj/machinery/alarm/air_alarm = alarm_source.source
+5 -5
View File
@@ -10,7 +10,7 @@
/obj/machinery/computer/shuttle/attackby(var/obj/item/card/W as obj, var/mob/user as mob)
if(stat & (BROKEN|NOPOWER)) return
if ((!( istype(W, /obj/item/card) ) || !( SSticker ) || emergency_shuttle.location() || !( user ))) return
if ((!( istype(W, /obj/item/card) ) || !( SSticker ) || GLOB.emergency_shuttle.location() || !( user ))) return
if (istype(W, /obj/item/card/id)||istype(W, /obj/item/pda))
if (istype(W, /obj/item/pda))
var/obj/item/pda/pda = W
@@ -29,7 +29,7 @@
return 0
var/choice = tgui_alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", list("Authorize", "Repeal", "Abort"))
if(emergency_shuttle.location() && user.get_active_hand() != W)
if(GLOB.emergency_shuttle.location() && user.get_active_hand() != W)
return 0
switch(choice)
if("Authorize")
@@ -43,7 +43,7 @@
message_admins("[key_name_admin(user)] has launched the shuttle")
log_game("[user.ckey] has launched the shuttle early")
to_chat(world, span_boldnotice("Alert: Shuttle launch time shortened to 10 seconds!"))
emergency_shuttle.set_launch_countdown(10)
GLOB.emergency_shuttle.set_launch_countdown(10)
//src.authorized = null
qdel(src.authorized)
src.authorized = list( )
@@ -60,11 +60,11 @@
else if (istype(W, /obj/item/card/emag) && !emagged)
var/choice = tgui_alert(user, "Would you like to launch the shuttle?", "Shuttle control", list("Launch", "Cancel"))
if(!emagged && !emergency_shuttle.location() && user.get_active_hand() == W)
if(!emagged && !GLOB.emergency_shuttle.location() && user.get_active_hand() == W)
switch(choice)
if("Launch")
to_chat(world, span_boldnotice("Alert: Shuttle launch time shortened to 10 seconds!"))
emergency_shuttle.set_launch_countdown(10)
GLOB.emergency_shuttle.set_launch_countdown(10)
emagged = 1
if("Cancel")
return
+33 -33
View File
@@ -4,12 +4,12 @@
#define SPECOPS_DOCK_AREATYPE "/area/shuttle/specops/centcom" //Type of the spec ops shuttle area for dock
#define SPECOPS_RETURN_DELAY 600 //Time between the shuttle is capable of moving.
var/specops_shuttle_moving_to_station = 0
var/specops_shuttle_moving_to_centcom = 0
var/specops_shuttle_at_station = 0
var/specops_shuttle_can_send = 1
var/specops_shuttle_time = 0
var/specops_shuttle_timeleft = 0
GLOBAL_VAR_INIT(specops_shuttle_moving_to_station, 0)
GLOBAL_VAR_INIT(specops_shuttle_moving_to_centcom, 0)
GLOBAL_VAR_INIT(specops_shuttle_at_station, 0)
GLOBAL_VAR_INIT(specops_shuttle_can_send, 1)
GLOBAL_VAR_INIT(specops_shuttle_time, 0)
GLOBAL_VAR_INIT(specops_shuttle_timeleft, 0)
/obj/machinery/computer/specops_shuttle
name = "special operations shuttle control console"
@@ -32,16 +32,16 @@ var/specops_shuttle_timeleft = 0
if(announcer)
announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM)
while(specops_shuttle_time - world.timeofday > 0)
var/ticksleft = specops_shuttle_time - world.timeofday
while(GLOB.specops_shuttle_time - world.timeofday > 0)
var/ticksleft = GLOB.specops_shuttle_time - world.timeofday
if(ticksleft > 1e5)
specops_shuttle_time = world.timeofday + 10 // midnight rollover
specops_shuttle_timeleft = (ticksleft / 10)
GLOB.specops_shuttle_time = world.timeofday + 10 // midnight rollover
GLOB.specops_shuttle_timeleft = (ticksleft / 10)
//All this does is announce the time before launch.
if(announcer)
var/rounded_time_left = round(specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
var/rounded_time_left = round(GLOB.specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
if(rounded_time_left in message_tracker)//If that time is in the list for message announce.
message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\""
if(rounded_time_left==0)
@@ -52,10 +52,10 @@ var/specops_shuttle_timeleft = 0
sleep(5)
specops_shuttle_moving_to_station = 0
specops_shuttle_moving_to_centcom = 0
GLOB.specops_shuttle_moving_to_station = 0
GLOB.specops_shuttle_moving_to_centcom = 0
specops_shuttle_at_station = 1
GLOB.specops_shuttle_at_station = 1
var/area/start_location = locate(/area/shuttle/specops/station)
var/area/end_location = locate(/area/shuttle/specops/centcom)
@@ -90,7 +90,7 @@ var/specops_shuttle_timeleft = 0
var/mob/M = locate(/mob) in T
to_chat(M, span_notice("You have arrived at [using_map.boss_name]. Operation has ended!"))
specops_shuttle_at_station = 0
GLOB.specops_shuttle_at_station = 0
for(var/obj/machinery/computer/specops_shuttle/S in GLOB.machines)
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
@@ -109,16 +109,16 @@ var/specops_shuttle_timeleft = 0
// message = "ARMORED SQUAD TAKE YOUR POSITION ON GRAVITY LAUNCH PAD"
// announcer.autosay(message, "A.L.I.C.E.", CHANNEL_RESPONSE_TEAM)
while(specops_shuttle_time - world.timeofday > 0)
var/ticksleft = specops_shuttle_time - world.timeofday
while(GLOB.specops_shuttle_time - world.timeofday > 0)
var/ticksleft = GLOB.specops_shuttle_time - world.timeofday
if(ticksleft > 1e5)
specops_shuttle_time = world.timeofday + 10 // midnight rollover
specops_shuttle_timeleft = (ticksleft / 10)
GLOB.specops_shuttle_time = world.timeofday + 10 // midnight rollover
GLOB.specops_shuttle_timeleft = (ticksleft / 10)
//All this does is announce the time before launch.
if(announcer)
var/rounded_time_left = round(specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
var/rounded_time_left = round(GLOB.specops_shuttle_timeleft)//Round time so that it will report only once, not in fractions.
if(rounded_time_left in message_tracker)//If that time is in the list for message announce.
message = "\"ALERT: [rounded_time_left] SECOND[(rounded_time_left!=1)?"S":""] REMAIN\""
if(rounded_time_left==0)
@@ -129,11 +129,11 @@ var/specops_shuttle_timeleft = 0
sleep(5)
specops_shuttle_moving_to_station = 0
specops_shuttle_moving_to_centcom = 0
GLOB.specops_shuttle_moving_to_station = 0
GLOB.specops_shuttle_moving_to_centcom = 0
specops_shuttle_at_station = 1
if (specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
GLOB.specops_shuttle_at_station = 1
if (GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
to_chat(usr, span_warning("The Special Operations shuttle is unable to leave."))
@@ -239,7 +239,7 @@ var/specops_shuttle_timeleft = 0
qdel(announcer)
/proc/specops_can_move()
if(specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom)
if(GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom)
return 0
for(var/obj/machinery/computer/specops_shuttle/S in GLOB.machines)
if(world.timeofday <= S.specops_shuttle_timereset)
@@ -266,8 +266,8 @@ var/specops_shuttle_timeleft = 0
dat = temp
else
dat += {"<BR><B>Special Operations Shuttle</B><HR>
\nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name()] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]<BR>
[specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":specops_shuttle_at_station ? "\n<A href='byond://?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='byond://?src=\ref[src];sendtostation=1'>Depart to [station_name()]</A><BR>\n<BR>"]
\nLocation: [GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom ? "Departing for [station_name()] in ([GLOB.specops_shuttle_timeleft] seconds.)":GLOB.specops_shuttle_at_station ? "Station":"Dock"]<BR>
[GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":GLOB.specops_shuttle_at_station ? "\n<A href='byond://?src=\ref[src];sendtodock=1'>Shuttle standing by...</A><BR>\n<BR>":"\n<A href='byond://?src=\ref[src];sendtostation=1'>Depart to [station_name()]</A><BR>\n<BR>"]
\n<A href='byond://?src=\ref[user];mach_close=computer'>Close</A>"}
var/datum/browser/popup = new(usr, "computer", "Computer", 575, 450)
@@ -282,7 +282,7 @@ var/specops_shuttle_timeleft = 0
usr.set_machine(src)
if (href_list["sendtodock"])
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if(!GLOB.specops_shuttle_at_station|| GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
to_chat(usr, span_notice("[using_map.boss_name] will not allow the Special Operations shuttle to return yet."))
@@ -297,13 +297,13 @@ var/specops_shuttle_timeleft = 0
temp += "Shuttle departing.<BR><BR><A href='byond://?src=\ref[src];mainmenu=1'>OK</A>"
updateUsrDialog(usr)
specops_shuttle_moving_to_centcom = 1
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
GLOB.specops_shuttle_moving_to_centcom = 1
GLOB.specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
spawn(0)
specops_return()
else if (href_list["sendtostation"])
if(specops_shuttle_at_station || specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if(GLOB.specops_shuttle_at_station || GLOB.specops_shuttle_moving_to_station || GLOB.specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
to_chat(usr, span_warning("The Special Operations shuttle is unable to leave."))
@@ -317,9 +317,9 @@ var/specops_shuttle_timeleft = 0
var/area/centcom/specops/special_ops = locate()
if(special_ops)
special_ops.readyalert()//Trigger alarm for the spec ops area.
specops_shuttle_moving_to_station = 1
GLOB.specops_shuttle_moving_to_station = 1
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
GLOB.specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
spawn(0)
specops_process()
+2 -2
View File
@@ -176,7 +176,7 @@ FIRE ALARM
return
var/area/area = get_area(src)
for(var/obj/machinery/firealarm/FA in area)
fire_alarm.clearAlarm(src.loc, FA)
GLOB.fire_alarm.clearAlarm(src.loc, FA)
update_icon()
if(user)
log_game("[user] reset a fire alarm at [COORD(src)]")
@@ -186,7 +186,7 @@ FIRE ALARM
return
var/area/area = get_area(src)
for(var/obj/machinery/firealarm/FA in area)
fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
GLOB.fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
update_icon()
playsound(src, 'sound/machines/airalarm.ogg', 25, 0, 4, volume_channel = VOLUME_CHANNEL_ALARMS)
if(user)
+7 -7
View File
@@ -1,4 +1,4 @@
var/list/floor_light_cache = list()
GLOBAL_LIST_EMPTY(floor_light_cache)
/obj/item/floor_light
name = "floor light kit"
@@ -124,22 +124,22 @@ var/list/floor_light_cache = list()
if(use_power && !broken())
if(isnull(damaged))
var/cache_key = "floorlight-[default_light_colour]"
if(!floor_light_cache[cache_key])
if(!GLOB.floor_light_cache[cache_key])
var/image/I = image("on")
I.color = default_light_colour
I.layer = layer+0.001
floor_light_cache[cache_key] = I
add_overlay(floor_light_cache[cache_key])
GLOB.floor_light_cache[cache_key] = I
add_overlay(GLOB.floor_light_cache[cache_key])
else
if(damaged == 0) //Needs init.
damaged = rand(1,4)
var/cache_key = "floorlight-broken[damaged]-[default_light_colour]"
if(!floor_light_cache[cache_key])
if(!GLOB.floor_light_cache[cache_key])
var/image/I = image("flicker[damaged]")
I.color = default_light_colour
I.layer = layer+0.001
floor_light_cache[cache_key] = I
add_overlay(floor_light_cache[cache_key])
GLOB.floor_light_cache[cache_key] = I
add_overlay(GLOB.floor_light_cache[cache_key])
/obj/machinery/floor_light/proc/broken()
return (stat & (BROKEN|NOPOWER))
+8 -8
View File
@@ -95,20 +95,20 @@
if(STATUS_DISPLAY_BLANK) //blank
return 1
if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer
if(!emergency_shuttle)
if(!GLOB.emergency_shuttle)
message1 = "-ETA-"
message2 = "Never" // You're here forever.
return 1
if(emergency_shuttle.waiting_to_leave())
if(GLOB.emergency_shuttle.waiting_to_leave())
message1 = "-ETD-"
if(emergency_shuttle.shuttle.is_launching())
if(GLOB.emergency_shuttle.shuttle.is_launching())
message2 = "Launch"
else
message2 = get_shuttle_timer_departure()
if(length(message2) > CHARS_PER_LINE)
message2 = "Error"
update_display(message1, message2)
else if(emergency_shuttle.has_eta())
else if(GLOB.emergency_shuttle.has_eta())
message1 = "-ETA-"
message2 = get_shuttle_timer_arrival()
if(length(message2) > CHARS_PER_LINE)
@@ -207,17 +207,17 @@
maptext = new_text
/obj/machinery/status_display/proc/get_shuttle_timer_arrival()
if(!emergency_shuttle)
if(!GLOB.emergency_shuttle)
return "Error"
var/timeleft = emergency_shuttle.estimate_arrival_time()
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
if(timeleft < 0)
return ""
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
/obj/machinery/status_display/proc/get_shuttle_timer_departure()
if(!emergency_shuttle)
if(!GLOB.emergency_shuttle)
return "Error"
var/timeleft = emergency_shuttle.estimate_launch_time()
var/timeleft = GLOB.emergency_shuttle.estimate_launch_time()
if(timeleft < 0)
return ""
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
@@ -80,7 +80,7 @@
to_chat(user, "No input found please hang up and try your call again.")
return
var/list/tempnetwork = splittext(input, ",")
tempnetwork = difflist(tempnetwork,restricted_camera_networks,1)
tempnetwork = difflist(tempnetwork, GLOB.restricted_camera_networks, 1)
if(tempnetwork.len < 1)
to_chat(user, "No network found please hang up and try your call again.")
return
@@ -2,7 +2,7 @@
* Donut Box
*/
var/list/random_weighted_donuts = list(
GLOBAL_LIST_INIT(random_weighted_donuts, list(
/obj/item/reagent_containers/food/snacks/donut/plain = 5,
/obj/item/reagent_containers/food/snacks/donut/plain/jelly = 5,
/obj/item/reagent_containers/food/snacks/donut/pink = 4,
@@ -26,7 +26,7 @@ var/list/random_weighted_donuts = list(
/obj/item/reagent_containers/food/snacks/donut/choc_sprinkles = 3,
/obj/item/reagent_containers/food/snacks/donut/choc_sprinkles/jelly = 3,
/obj/item/reagent_containers/food/snacks/donut/chaos = 1
)
))
/obj/item/storage/box/donut
icon = 'icons/obj/food_donuts.dmi'
@@ -43,7 +43,7 @@ var/list/random_weighted_donuts = list(
/obj/item/storage/box/donut/Initialize(mapload)
if(!empty)
for(var/i in 1 to 6)
var/type_to_spawn = pickweight(random_weighted_donuts)
var/type_to_spawn = pickweight(GLOB.random_weighted_donuts)
new type_to_spawn(src)
. = ..()
update_icon()
@@ -1,6 +1,6 @@
#define TANK_IDEAL_PRESSURE 1015 //Arbitrary.
var/list/global/tank_gauge_cache = list()
GLOBAL_LIST_EMPTY(tank_gauge_cache)
/obj/item/tank
name = "tank"
@@ -377,9 +377,9 @@ var/list/global/tank_gauge_cache = list()
cut_overlays()
add_bomb_overlay()
var/indicator = "[gauge_icon][(gauge_pressure == -1) ? "overload" : gauge_pressure]"
if(!tank_gauge_cache[indicator])
tank_gauge_cache[indicator] = image(icon, indicator)
add_overlay(tank_gauge_cache[indicator])
if(!GLOB.tank_gauge_cache[indicator])
GLOB.tank_gauge_cache[indicator] = image(icon, indicator)
add_overlay(GLOB.tank_gauge_cache[indicator])
+3 -3
View File
@@ -238,7 +238,7 @@
to_chat(user, span_notice("There isn't enough material here to construct a wall."))
return FALSE
var/datum/material/M = name_to_material[S.default_type]
var/datum/material/M = GLOB.name_to_material[S.default_type]
if(!istype(M))
return FALSE
@@ -279,7 +279,7 @@
to_chat(user, span_notice("There isn't enough material here to reinforce the girder."))
return 0
var/datum/material/M = name_to_material[S.default_type]
var/datum/material/M = GLOB.name_to_material[S.default_type]
if(!istype(M) || M.integrity < 50)
to_chat(user, "You cannot reinforce \the [src] with that; it is too soft.")
return 0
@@ -412,7 +412,7 @@
var/turf/simulated/wall/new_T = get_turf(src) // Ref to the wall we just built.
// Apparently set_material(...) for walls requires refs to the material singletons and not strings.
// This is different from how other material objects with their own set_material(...) do it, but whatever.
var/datum/material/M = name_to_material[the_rcd.material_to_use]
var/datum/material/M = GLOB.name_to_material[the_rcd.material_to_use]
new_T.set_material(M, the_rcd.make_rwalls ? M : null, girder_material)
new_T.add_hiddenprint(user)
qdel(src)
+7 -8
View File
@@ -1,16 +1,15 @@
var/list/flooring_types
GLOBAL_LIST_EMPTY(flooring_types)
/proc/populate_flooring_types()
flooring_types = list()
for (var/flooring_path in typesof(/decl/flooring))
flooring_types["[flooring_path]"] = new flooring_path
GLOB.flooring_types["[flooring_path]"] = new flooring_path
/proc/get_flooring_data(var/flooring_path)
if(!flooring_types)
flooring_types = list()
if(!flooring_types["[flooring_path]"])
flooring_types["[flooring_path]"] = new flooring_path
return flooring_types["[flooring_path]"]
if(!GLOB.flooring_types)
GLOB.flooring_types = list()
if(!GLOB.flooring_types["[flooring_path]"])
GLOB.flooring_types["[flooring_path]"] = new flooring_path
return GLOB.flooring_types["[flooring_path]"]
// State values:
// [icon_base]: initial base icon_state without edges or corners.
+1 -1
View File
@@ -150,7 +150,7 @@
var/turf/simulated/wall/T = get_turf(src) // Ref to the wall we just built.
// Apparently set_material(...) for walls requires refs to the material singletons and not strings.
// This is different from how other material objects with their own set_material(...) do it, but whatever.
var/datum/material/M = name_to_material[the_rcd.material_to_use]
var/datum/material/M = GLOB.name_to_material[the_rcd.material_to_use]
T.set_material(M, the_rcd.make_rwalls ? M : null, M)
T.add_hiddenprint(user)
return TRUE
+2 -2
View File
@@ -107,8 +107,8 @@
return
var/obj/item/stack/S = C
var/decl/flooring/use_flooring
for(var/flooring_type in flooring_types)
var/decl/flooring/F = flooring_types[flooring_type]
for(var/flooring_type in GLOB.flooring_types)
var/decl/flooring/F = GLOB.flooring_types[flooring_type]
if(!F.build_type)
continue
if((S.type == F.build_type) || (S.build_type == F.build_type))
@@ -1,7 +1,3 @@
var/list/grass_types = list(
)
/turf/simulated/floor/outdoors/grass
name = "grass"
icon_state = "grass0"
+1 -1
View File
@@ -527,7 +527,7 @@ ADMIN_VERB(deadmin, R_NONE, "DeAdmin", "Shed your admin powers.", ADMIN_CATEGORY
message_admins(span_blue("[key_name_admin(usr)] told everyone to man up and deal with it."), 1)
ADMIN_VERB(give_spell, R_FUN, "Give Spell", ADMIN_VERB_NO_DESCRIPTION, ADMIN_CATEGORY_HIDDEN, mob/spell_recipient)
var/spell/S = tgui_input_list(user, "Choose the spell to give to that guy", "ABRAKADABRA", spells)
var/spell/S = tgui_input_list(user, "Choose the spell to give to that guy", "ABRAKADABRA", typesof(/spell))
if(!S)
return
spell_recipient.spell_list += new S
+6 -6
View File
@@ -395,19 +395,19 @@
dat += "Current Game Mode: " + span_bold("[SSticker.mode.name]") + "<BR>"
dat += "Round Duration: " + span_bold("[roundduration2text()]") + "<BR>"
dat += span_bold("Emergency shuttle") + "<BR>"
if (!emergency_shuttle.online())
if (!GLOB.emergency_shuttle.online())
dat += "<a href='byond://?src=\ref[src];[HrefToken()];call_shuttle=1'>Call Shuttle</a><br>"
else
if (emergency_shuttle.wait_for_launch)
var/timeleft = emergency_shuttle.estimate_launch_time()
if (GLOB.emergency_shuttle.wait_for_launch)
var/timeleft = GLOB.emergency_shuttle.estimate_launch_time()
dat += "ETL: <a href='byond://?src=\ref[src];[HrefToken()];edit_shuttle_time=1'>[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]</a><BR>"
else if (emergency_shuttle.shuttle.has_arrive_time())
var/timeleft = emergency_shuttle.estimate_arrival_time()
else if (GLOB.emergency_shuttle.shuttle.has_arrive_time())
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
dat += "ETA: <a href='byond://?src=\ref[src];[HrefToken()];edit_shuttle_time=1'>[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]</a><BR>"
dat += "<a href='byond://?src=\ref[src];[HrefToken()];call_shuttle=2'>Send Back</a><br>"
if (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP)
if (GLOB.emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP)
dat += "Launching now..."
dat += "<a href='byond://?src=\ref[src];[HrefToken()];delay_round_end=1'>[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]</a><br>"
+14 -14
View File
@@ -83,23 +83,23 @@
switch(href_list["call_shuttle"])
if("1")
if ((!( SSticker ) || !emergency_shuttle.location()))
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
return
if (emergency_shuttle.can_call())
emergency_shuttle.call_evac()
if (GLOB.emergency_shuttle.can_call())
GLOB.emergency_shuttle.call_evac()
log_admin("[key_name(usr)] called the Emergency Shuttle")
message_admins(span_blue("[key_name_admin(usr)] called the Emergency Shuttle to the station."), 1)
if("2")
if (!( SSticker ) || !emergency_shuttle.location())
if (!( SSticker ) || !GLOB.emergency_shuttle.location())
return
if (emergency_shuttle.can_call())
emergency_shuttle.call_evac()
if (GLOB.emergency_shuttle.can_call())
GLOB.emergency_shuttle.call_evac()
log_admin("[key_name(usr)] called the Emergency Shuttle")
message_admins(span_blue("[key_name_admin(usr)] called the Emergency Shuttle to the station."), 1)
else if (emergency_shuttle.can_recall())
emergency_shuttle.recall()
else if (GLOB.emergency_shuttle.can_recall())
GLOB.emergency_shuttle.recall()
log_admin("[key_name(usr)] sent the Emergency Shuttle back")
message_admins(span_blue("[key_name_admin(usr)] sent the Emergency Shuttle back."), 1)
@@ -108,17 +108,17 @@
else if(href_list["edit_shuttle_time"])
if(!check_rights(R_SERVER)) return
if (emergency_shuttle.wait_for_launch)
var/new_time_left = tgui_input_number(usr, "Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", emergency_shuttle.estimate_launch_time() )
if (GLOB.emergency_shuttle.wait_for_launch)
var/new_time_left = tgui_input_number(usr, "Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", GLOB.emergency_shuttle.estimate_launch_time() )
emergency_shuttle.launch_time = world.time + new_time_left*10
GLOB.emergency_shuttle.launch_time = world.time + new_time_left*10
log_admin("[key_name(usr)] edited the Emergency Shuttle's launch time to [new_time_left]")
message_admins(span_blue("[key_name_admin(usr)] edited the Emergency Shuttle's launch time to [new_time_left*10]"), 1)
else if (emergency_shuttle.shuttle.has_arrive_time())
else if (GLOB.emergency_shuttle.shuttle.has_arrive_time())
var/new_time_left = tgui_input_number(usr, "Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", emergency_shuttle.estimate_arrival_time() )
emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10
var/new_time_left = tgui_input_number(usr, "Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", GLOB.emergency_shuttle.estimate_arrival_time() )
GLOB.emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10
log_admin("[key_name(usr)] edited the Emergency Shuttle's arrival time to [new_time_left]")
message_admins(span_blue("[key_name_admin(usr)] edited the Emergency Shuttle's arrival time to [new_time_left*10]"), 1)
+9 -9
View File
@@ -869,7 +869,7 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
set category = "Admin.Events"
set name = "Call Shuttle"
if ((!( SSticker ) || !emergency_shuttle.location()))
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
return
if(!check_rights(R_ADMIN)) return
@@ -881,15 +881,15 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
if(SSticker.mode.auto_recall_shuttle)
choice = tgui_input_list(usr, "The shuttle will just return if you call it. Call anyway?", "Shuttle Call", list("Confirm", "Cancel"))
if(choice == "Confirm")
emergency_shuttle.auto_recall = 1 //enable auto-recall
GLOB.emergency_shuttle.auto_recall = 1 //enable auto-recall
else
return
choice = tgui_input_list(usr, "Is this an emergency evacuation or a crew transfer?", "Shuttle Call", list("Emergency", "Crew Transfer"))
if (choice == "Emergency")
emergency_shuttle.call_evac()
GLOB.emergency_shuttle.call_evac()
else
emergency_shuttle.call_transfer()
GLOB.emergency_shuttle.call_transfer()
feedback_add_details("admin_verb","CSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -905,10 +905,10 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
if(tgui_alert(src, "You sure?", "Confirm", list("Yes", "No")) != "Yes") return
if(!SSticker || !emergency_shuttle.can_recall())
if(!SSticker || !GLOB.emergency_shuttle.can_recall())
return
emergency_shuttle.recall()
GLOB.emergency_shuttle.recall()
feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] admin-recalled the emergency shuttle.")
message_admins(span_blue("[key_name_admin(usr)] admin-recalled the emergency shuttle."), 1)
@@ -924,10 +924,10 @@ ADMIN_VERB(respawn_character, (R_ADMIN|R_REJUVINATE), "Spawn Character", "(Re)Sp
if(!check_rights(R_ADMIN)) return
emergency_shuttle.deny_shuttle = !emergency_shuttle.deny_shuttle
GLOB.emergency_shuttle.deny_shuttle = !GLOB.emergency_shuttle.deny_shuttle
log_admin("[key_name(src)] has [emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
message_admins("[key_name_admin(usr)] has [emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
log_admin("[key_name(src)] has [GLOB.emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
message_admins("[key_name_admin(usr)] has [GLOB.emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
/client/proc/cmd_admin_attack_log(mob/M as mob in GLOB.mob_list)
set category = "Admin.Logs"
@@ -395,7 +395,7 @@
/datum/gear/collar/New()
..()
gear_tweaks += gear_tweak_collar_tag
gear_tweaks += GLOB.gear_tweak_collar_tag
/datum/gear/collar/golden
display_name = "collar, golden"
@@ -25,7 +25,7 @@
/datum/gear/fluff/collar/New()
..()
gear_tweaks += gear_tweak_collar_tag
gear_tweaks += GLOB.gear_tweak_collar_tag
// 0-9 CKEYS
/datum/gear/fluff/malady_crop
+6 -13
View File
@@ -36,7 +36,7 @@
*/
// Assoc list containing all material datums indexed by name.
var/list/name_to_material
GLOBAL_LIST_EMPTY(name_to_material)
//Returns the material the object is made of, if applicable.
//Will we ever need to return more than one value here? Or should we just return the "dominant" material.
@@ -95,21 +95,17 @@ var/list/name_to_material
// Builds the datum list above.
/proc/populate_material_list(force_remake=0)
if(name_to_material && !force_remake) return // Already set up!
name_to_material = list()
/proc/populate_material_list()
for(var/type in subtypesof(/datum/material))
var/datum/material/new_mineral = new type
if(!new_mineral.name)
continue
name_to_material[lowertext(new_mineral.name)] = new_mineral
GLOB.name_to_material[lowertext(new_mineral.name)] = new_mineral
return 1
// Safety proc to make sure the material list exists before trying to grab from it.
/proc/get_material_by_name(name)
if(!name_to_material)
populate_material_list()
return name_to_material[name]
return GLOB.name_to_material[name]
/proc/material_display_name(name)
if(istype(name, /datum/material)) //We were fed a datum.
@@ -133,15 +129,12 @@ var/list/name_to_material
* - The following elements are used to generate bespoke IDs
*/
/proc/_GetMaterialRef(list/arguments)
if(!name_to_material)
populate_material_list()
var/datum/material/key = arguments[1]
if(istype(key))
return key // we want to convert anything we're given to a material
if(istext(key)) // text ID
. = name_to_material[key]
. = GLOB.name_to_material[key]
if(!.)
WARNING("Attempted to fetch material ref with invalid text id '[key]'")
return
@@ -150,7 +143,7 @@ var/list/name_to_material
CRASH("Attempted to fetch material ref with invalid key [key]")
key = GetIdFromArguments(arguments)
. = name_to_material[key]
. = GLOB.name_to_material[key]
if(!.)
WARNING("Attempted to fetch nonexistent material with key [key]")
+2 -2
View File
@@ -246,8 +246,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/observer/dead/get_status_tab_items()
. = ..()
if(emergency_shuttle)
var/eta_status = emergency_shuttle.get_status_panel_eta()
if(GLOB.emergency_shuttle)
var/eta_status = GLOB.emergency_shuttle.get_status_panel_eta()
if(eta_status)
. += ""
. += "[eta_status]"
@@ -1,4 +1,4 @@
var/list/_nymph_default_emotes = list(
GLOBAL_LIST_INIT(nymph_default_emotes, list(
/decl/emote/visible,
/decl/emote/visible/scratch,
/decl/emote/visible/drool,
@@ -22,7 +22,7 @@ var/list/_nymph_default_emotes = list(
/decl/emote/audible/bug_hiss,
/decl/emote/audible/bug_chitter,
/decl/emote/audible/chirp
)
))
/mob/living/carbon/alien/diona
name = "diona nymph"
@@ -47,7 +47,7 @@ var/list/_nymph_default_emotes = list(
var/obj/item/hat
/mob/living/carbon/alien/diona/get_available_emotes()
return global._nymph_default_emotes.Copy()
return GLOB.nymph_default_emotes.Copy()
/mob/living/carbon/alien/diona/Initialize(mapload)
. = ..()
@@ -1,4 +1,4 @@
var/list/_alien_default_emotes = list(
GLOBAL_LIST_INIT(alien_default_emotes, list(
/decl/emote/visible,
/decl/emote/visible/scratch,
/decl/emote/visible/drool,
@@ -25,7 +25,7 @@ var/list/_alien_default_emotes = list(
/decl/emote/audible/moan,
/decl/emote/audible/gnarl,
/decl/emote/audible/chirp
)
))
/mob/living/carbon/alien/get_available_emotes()
. = global._alien_default_emotes.Copy()
. = GLOB.alien_default_emotes.Copy()
@@ -1,4 +1,4 @@
var/list/_brain_default_emotes = list(
GLOBAL_LIST_INIT(brain_default_emotes, list(
/decl/emote/audible/alarm,
/decl/emote/audible/alert,
/decl/emote/audible/notice,
@@ -8,10 +8,10 @@ var/list/_brain_default_emotes = list(
/decl/emote/audible/boop,
/decl/emote/visible/blink,
/decl/emote/visible/flash
)
))
/mob/living/carbon/brain/can_emote()
return (istype(container, /obj/item/mmi) && ..())
/mob/living/carbon/brain/get_available_emotes()
return global._brain_default_emotes.Copy()
return GLOB.brain_default_emotes.Copy()
+6 -14
View File
@@ -1,4 +1,4 @@
var/list/_human_default_emotes = list(
GLOBAL_LIST_INIT(human_default_emotes, list(
/decl/emote/visible/blink,
/decl/emote/audible/synth,
/decl/emote/audible/synth/beep,
@@ -99,7 +99,6 @@ var/list/_human_default_emotes = list(
/decl/emote/visible/vomit,
/decl/emote/visible/floorspin,
/decl/emote/visible/flip,
//VOREStation Add
/decl/emote/audible/bug_hiss,
/decl/emote/audible/bug_buzz,
/decl/emote/audible/bug_chitter,
@@ -181,14 +180,9 @@ var/list/_human_default_emotes = list(
/decl/emote/audible/caw2,
/decl/emote/audible/caw_m,
/decl/emote/audible/gwah
))
//VOREStation Add End
)
//VOREStation Add Start
var/list/_simple_mob_default_emotes = list(
GLOBAL_LIST_INIT(simple_mob_default_emotes, list(
/decl/emote/visible/blink,
/decl/emote/visible/nod,
/decl/emote/visible/shake,
@@ -331,17 +325,15 @@ var/list/_simple_mob_default_emotes = list(
/decl/emote/audible/caw2,
/decl/emote/audible/caw_m,
/decl/emote/audible/gwah
)
//VOREStation Add End
))
/mob/living/carbon/human/get_available_emotes()
. = global._human_default_emotes.Copy()
. = GLOB.human_default_emotes.Copy()
if(length(species?.default_emotes))
return . | species.default_emotes
/mob/living/simple_mob/get_available_emotes()
. = global._simple_mob_default_emotes.Copy()
. = GLOB.simple_mob_default_emotes.Copy()
/mob/living/carbon/human/verb/pose()
set name = "Set Pose"
@@ -100,8 +100,8 @@
. += ""
. += "Intent: [a_intent]"
. += "Move Mode: [m_intent]"
if(emergency_shuttle)
var/eta_status = emergency_shuttle.get_status_panel_eta()
if(GLOB.emergency_shuttle)
var/eta_status = GLOB.emergency_shuttle.get_status_panel_eta()
if(eta_status)
. += "[eta_status]"
@@ -188,8 +188,8 @@
return TRUE // yup
/mob/living/simple_mob/protean_blob/get_available_emotes()
var/list/fulllist = global._robot_default_emotes.Copy()
fulllist |= global._human_default_emotes //they're living nanites, they can make whatever sounds they want
var/list/fulllist = GLOB.robot_default_emotes.Copy()
fulllist |= GLOB.human_default_emotes //they're living nanites, they can make whatever sounds they want
return fulllist
/mob/living/simple_mob/protean_blob/update_misc_tabs()
+2 -2
View File
@@ -406,7 +406,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
call_shuttle_proc(src)
// hack to display shuttle timer
if(emergency_shuttle.online())
if(GLOB.emergency_shuttle.online())
post_status(src, "shuttle", user = src)
/mob/living/silicon/ai/proc/ai_recall_shuttle()
@@ -559,7 +559,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
for (var/obj/machinery/camera/C in cameranet.cameras)
if(!C.can_use())
continue
var/list/tempnetwork = difflist(C.network,restricted_camera_networks,1)
var/list/tempnetwork = difflist(C.network, GLOB.restricted_camera_networks, 1)
for(var/i in tempnetwork)
cameralist[i] = i
+6 -6
View File
@@ -1,4 +1,4 @@
var/list/_silicon_default_emotes = list(
GLOBAL_LIST_INIT(silicon_default_emotes, list(
/decl/emote/audible/synth,
/decl/emote/audible/synth/beep,
/decl/emote/audible/synth/bing,
@@ -13,15 +13,15 @@ var/list/_silicon_default_emotes = list(
/decl/emote/audible/synth/microwave,
/decl/emote/audible/synth/security,
/decl/emote/audible/synth/security/halt
)
))
/mob/living/silicon/get_available_emotes()
return global._silicon_default_emotes.Copy()
return GLOB.silicon_default_emotes.Copy()
/mob/living/silicon/pai/get_available_emotes()
var/list/fulllist = list()
fulllist |= _silicon_default_emotes
fulllist |= _robot_default_emotes
fulllist |= _human_default_emotes
fulllist |= GLOB.silicon_default_emotes
fulllist |= GLOB.robot_default_emotes
fulllist |= GLOB.human_default_emotes
return fulllist
@@ -1,4 +1,4 @@
var/list/_robot_default_emotes = list(
GLOBAL_LIST_INIT(robot_default_emotes, list(
/decl/emote/audible/clap,
/decl/emote/visible/bow,
/decl/emote/visible/salute,
@@ -29,13 +29,11 @@ var/list/_robot_default_emotes = list(
/decl/emote/audible/synth/microwave,
/decl/emote/audible/synth/security,
/decl/emote/audible/synth/security/halt,
//VOREStation Add
/decl/emote/visible/mlem,
/decl/emote/visible/blep
//VOREStation Add End
)
))
/mob/living/silicon/robot/get_available_emotes()
var/list/fulllist = global._robot_default_emotes.Copy()
fulllist |= _human_default_emotes
var/list/fulllist = GLOB.robot_default_emotes.Copy()
fulllist |= GLOB.human_default_emotes
return fulllist
+2 -2
View File
@@ -155,8 +155,8 @@
// this function displays the shuttles ETA in the status panel if the shuttle has been called
/mob/living/silicon/proc/show_emergency_shuttle_eta()
if(emergency_shuttle)
var/eta_status = emergency_shuttle.get_status_panel_eta()
if(GLOB.emergency_shuttle)
var/eta_status = GLOB.emergency_shuttle.get_status_panel_eta()
if(eta_status)
. = "[eta_status]"
@@ -151,7 +151,7 @@
/mob/living/simple_mob/animal/synx/get_available_emotes()
. = ..()
. |= _human_default_emotes //Synx are great at mimicking
. |= GLOB.human_default_emotes //Synx are great at mimicking
/mob/living/simple_mob/animal/synx/ai //AI controlled variant
@@ -316,7 +316,7 @@
comp.dark_energy_infinite = TRUE
/mob/living/simple_mob/shadekin/red/rakshasa/get_available_emotes()
. = global._simple_mob_default_emotes.Copy()
. = GLOB.simple_mob_default_emotes.Copy()
. += /decl/emote/audible/evil_laugh
. += /decl/emote/audible/evil_no
. += /decl/emote/audible/evil_breathing
+1 -19
View File
@@ -2,24 +2,6 @@ GLOBAL_LIST_INIT(dsi_to_species, list(SPECIES_TAJARAN = "DSI - Tajaran", SPECIES
SPECIES_VULPKANIN = "DSI - Vulpkanin", SPECIES_AKULA = "DSI - Akula", SPECIES_VASILISSAN = "DSI - Vasilissan", SPECIES_ZORREN = "DSI - Zorren",\
SPECIES_TESHARI = "DSI - Teshari", SPECIES_FENNEC = "DSI - Fennec"))
//CitRP Port
var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\
default=cyber_default;\
eyes=eyes;\
static=cyber_static;\
alert=cyber_alert;\
happy=cyber_happ;\
unhappy=cyber_unhapp;\
flat=cyber_flat;\
sad=cyber_sad;\
heart=cyber_heart;\
cross=cyber_cross;\
wave=cyber_wave;\
uwu=cyber_uwu;\
question=cyber_question;\
lowpower=cyber_lowpower;\
idle=cyber_idle;\
nwn=cyber_nwn"
// Placeholder for protean limbs during character spawning, before they have a properly set model
/datum/robolimb/protean
@@ -82,7 +64,7 @@ var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\
unavailable_to_build = 1
parts = list(BP_HEAD)
monitor_icon = 'icons/mob/monitor_icons_vr.dmi'
monitor_styles = cyberbeast_monitor_styles
monitor_styles = CYBERBEAST_MONITOR_STYLES
/obj/item/disk/limb/cyber_beast
company = "Cyber Tech"
+6 -6
View File
@@ -1123,7 +1123,7 @@ GLOBAL_LIST_EMPTY(apcs)
equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 0
// update icon & area power if anything changed
@@ -1147,27 +1147,27 @@ GLOBAL_LIST_EMPTY(apcs)
lighting = autoset(lighting, 1)
environ = autoset(environ, 1)
autoflag = 3
power_alarm.clearAlarm(loc, src)
GLOB.power_alarm.clearAlarm(loc, src)
else if((cell.percent() <= 30) && (cell.percent() > 15) && longtermpower < 0) // <30%, turn off equipment
if(autoflag != 2)
equipment = autoset(equipment, 2)
lighting = autoset(lighting, 1)
environ = autoset(environ, 1)
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 2
else if(cell.percent() <= 15) // <15%, turn off lighting & equipment
if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0))
equipment = autoset(equipment, 2)
lighting = autoset(lighting, 2)
environ = autoset(environ, 1)
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 1
else // zero charge, turn all off
if(autoflag != 0)
equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
GLOB.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 0
// val 0=off, 1=off(auto) 2=on 3=on(auto)
@@ -1291,7 +1291,7 @@ GLOBAL_LIST_EMPTY(apcs)
//start with main breaker off, chargemode in the default state and all channels on auto upon reboot
operating = 0
chargemode = initial(chargemode)
power_alarm.clearAlarm(loc, src)
GLOB.power_alarm.clearAlarm(loc, src)
lighting = POWERCHAN_ON_AUTO
equipment = POWERCHAN_ON_AUTO
@@ -281,7 +281,7 @@
switch(action)
if("remove_mat")
var/datum/material/material = name_to_material[params["id"]]
var/datum/material/material = GLOB.name_to_material[params["id"]]
if(!istype(material))
return
+20 -11
View File
@@ -1,22 +1,22 @@
/*
File: Options
*/
var/const //Ascii values of characters
ascii_A =65
ascii_Z =90
ascii_a =97
ascii_z =122
ascii_DOLLAR = 36 // $
ascii_ZERO=48
ascii_NINE=57
ascii_UNDERSCORE=95 // _
//Ascii values of characters
#define ASCII_A 65
#define ASCII_Z 90
#define ASCII_LOWER_A 97
#define ASCII_LOWER_Z 122
#define ASCII_DOLLAR 36 // $
#define ASCII_ZERO 48
#define ASCII_NINE 57
#define ASCII_UNDERSCORE 95 // _
/*
Class: n_scriptOptions
*/
/n_scriptOptions/proc/CanStartID(char) //returns true if the character can start a variable, function, or keyword name (by default letters or an underscore)
if(!isnum(char))char=text2ascii(char)
return (char in ascii_A to ascii_Z) || (char in ascii_a to ascii_z) || char==ascii_UNDERSCORE || char==ascii_DOLLAR
return (char in ASCII_A to ASCII_Z) || (char in ASCII_LOWER_A to ASCII_LOWER_Z) || char==ASCII_UNDERSCORE || char==ASCII_DOLLAR
/n_scriptOptions/proc/IsValidIDChar(char) //returns true if the character can be in the body of a variable, function, or keyword name (by default letters, numbers, and underscore)
if(!isnum(char))char=text2ascii(char)
@@ -24,7 +24,7 @@ var/const //Ascii values of characters
/n_scriptOptions/proc/IsDigit(char)
if(!isnum(char))char=text2ascii(char)
return char in ascii_ZERO to ascii_NINE
return char in ASCII_ZERO to ASCII_NINE
/n_scriptOptions/proc/IsValidID(id) //returns true if all the characters in the string are okay to be in an identifier name
if(!CanStartID(id)) //don't need to grab first char in id, since text2ascii does it automatically
@@ -98,3 +98,12 @@ associated values are <nS_Keyword> types of which the <n_Keyword.Parse()> proc w
.=..()
for(var/O in assign_operators+binary_operators+unary_operators)
if(!symbols.Find(O)) symbols+=O
#undef ASCII_A
#undef ASCII_Z
#undef ASCII_LOWER_A
#undef ASCII_LOWER_Z
#undef ASCII_DOLLAR
#undef ASCII_ZERO
#undef ASCII_NINE
#undef ASCII_UNDERSCORE
+4 -4
View File
@@ -4,9 +4,9 @@
/datum/shuttle/autodock/ferry/escape_pod/New()
move_time = move_time + rand(-30, 60)
if(name in emergency_shuttle.escape_pods)
if(name in GLOB.emergency_shuttle.escape_pods)
CRASH("An escape pod with the name '[name]' has already been defined.")
emergency_shuttle.escape_pods[name] = src
GLOB.emergency_shuttle.escape_pods[name] = src
..()
@@ -56,7 +56,7 @@
"docking_status" = docking_program.get_docking_status(),
"override_enabled" = docking_program.override_enabled,
"exterior_status" = docking_program.memory["door_status"], // TGUI DATA fails silently when there's no linked pod, leading to UI crashes
"can_force" = pod?.can_force() || (emergency_shuttle.departed && pod?.can_launch()), //allow players to manually launch ahead of time if the shuttle leaves
"can_force" = pod?.can_force() || (GLOB.emergency_shuttle.departed && pod?.can_launch()), //allow players to manually launch ahead of time if the shuttle leaves
"armed" = pod?.arming_controller.armed,
"internalTemplateName" = "EscapePodConsole",
)
@@ -72,7 +72,7 @@
if("force_launch")
if(pod.can_force())
pod.force_launch(src)
else if(emergency_shuttle.departed && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
else if(GLOB.emergency_shuttle.departed && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
pod.launch(src)
. = TRUE
+13 -13
View File
@@ -7,9 +7,9 @@
/datum/shuttle/autodock/ferry/emergency/New()
..()
radio_connection = SSradio.add_object(src, frequency, null)
if(emergency_shuttle.shuttle)
if(GLOB.emergency_shuttle.shuttle)
CRASH("An emergency shuttle has already been defined.")
emergency_shuttle.shuttle = src
GLOB.emergency_shuttle.shuttle = src
/datum/shuttle/autodock/ferry/emergency/arrived()
. = ..()
@@ -17,7 +17,7 @@
var/obj/machinery/computer/shuttle_control/emergency/C = in_use
C.reset_authorization()
emergency_shuttle.shuttle_arrived()
GLOB.emergency_shuttle.shuttle_arrived()
/datum/shuttle/autodock/ferry/emergency/long_jump(var/destination, var/interim, var/travel_time)
if (!location)
@@ -27,17 +27,17 @@
//update move_time and launch_time so we get correct ETAs
move_time = travel_time
emergency_shuttle.launch_time = world.time
GLOB.emergency_shuttle.launch_time = world.time
..(destination, interim, travel_time, direction)
/datum/shuttle/autodock/ferry/emergency/perform_shuttle_move()
if (current_location == landmark_station) //leaving the station
spawn(0)
emergency_shuttle.departed = 1
var/estimated_time = round(emergency_shuttle.estimate_arrival_time()/60,1)
GLOB.emergency_shuttle.departed = 1
var/estimated_time = round(GLOB.emergency_shuttle.estimate_arrival_time()/60,1)
if (emergency_shuttle.evac)
if (GLOB.emergency_shuttle.evac)
priority_announcement.Announce(replacetext(replacetext(using_map.emergency_shuttle_leaving_dock, "%dock_name%", "[using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
else
priority_announcement.Announce(replacetext(replacetext(using_map.shuttle_leaving_dock, "%dock_name%", "[using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"), "Transfer System", 'sound/AI/tramdepart.ogg')
@@ -71,8 +71,8 @@
if (!can_launch(user)) return
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
if (emergency_shuttle.autopilot)
emergency_shuttle.autopilot = 0
if (GLOB.emergency_shuttle.autopilot)
GLOB.emergency_shuttle.autopilot = 0
to_chat(world, span_boldnotice("Alert: The shuttle autopilot has been overridden. Launch sequence initiated!"))
if(usr)
@@ -85,8 +85,8 @@
if (!can_force(user)) return
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
if (emergency_shuttle.autopilot)
emergency_shuttle.autopilot = 0
if (GLOB.emergency_shuttle.autopilot)
GLOB.emergency_shuttle.autopilot = 0
to_chat(world, span_boldnotice("Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!"))
if(usr)
@@ -99,8 +99,8 @@
if (!can_cancel(user)) return
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
if (emergency_shuttle.autopilot)
emergency_shuttle.autopilot = 0
if (GLOB.emergency_shuttle.autopilot)
GLOB.emergency_shuttle.autopilot = 0
to_chat(world, span_boldnotice("Alert: The shuttle autopilot has been overridden. Launch sequence aborted!"))
if(usr)
-2
View File
@@ -1,5 +1,3 @@
var/list/spells = typesof(/spell) //needed for the badmin verb for now
/spell
var/name = "Spell"
var/desc = "A spell"
+2 -2
View File
@@ -25,7 +25,7 @@
/datum/tgui_module/alarm_monitor/engineering
/datum/tgui_module/alarm_monitor/engineering/New()
..()
alarm_handlers = list(atmosphere_alarm, fire_alarm, power_alarm)
alarm_handlers = list(GLOB.atmosphere_alarm, GLOB.fire_alarm, GLOB.power_alarm)
// Subtype for glasses_state
/datum/tgui_module/alarm_monitor/engineering/glasses
@@ -44,7 +44,7 @@
/datum/tgui_module/alarm_monitor/security
/datum/tgui_module/alarm_monitor/security/New()
..()
alarm_handlers = list(camera_alarm, motion_alarm)
alarm_handlers = list(GLOB.camera_alarm, GLOB.motion_alarm)
// Subtype for glasses_state
/datum/tgui_module/alarm_monitor/security/glasses
+20 -20
View File
@@ -145,12 +145,12 @@
data["msg_cooldown"] = message_cooldown ? (round((message_cooldown - world.time) / 10)) : 0
data["cc_cooldown"] = centcomm_message_cooldown ? (round((centcomm_message_cooldown - world.time) / 10)) : 0
data["esc_callable"] = emergency_shuttle.location() && !emergency_shuttle.online() ? TRUE : FALSE
data["esc_recallable"] = emergency_shuttle.location() && emergency_shuttle.online() ? TRUE : FALSE
data["esc_callable"] = GLOB.emergency_shuttle.location() && !GLOB.emergency_shuttle.online() ? TRUE : FALSE
data["esc_recallable"] = GLOB.emergency_shuttle.location() && GLOB.emergency_shuttle.online() ? TRUE : FALSE
data["esc_status"] = FALSE
if(emergency_shuttle.has_eta())
var/timeleft = emergency_shuttle.estimate_arrival_time()
data["esc_status"] = emergency_shuttle.online() ? "ETA:" : "RECALLING:"
if(GLOB.emergency_shuttle.has_eta())
var/timeleft = GLOB.emergency_shuttle.estimate_arrival_time()
data["esc_status"] = GLOB.emergency_shuttle.online() ? "ETA:" : "RECALLING:"
data["esc_status"] += " [timeleft / 60 % 60]:[add_zero(num2text(timeleft % 60), 2)]"
return data
@@ -272,7 +272,7 @@
return
call_shuttle_proc(ui.user)
if(emergency_shuttle.online())
if(GLOB.emergency_shuttle.online())
post_status(src, "shuttle", user = ui.user)
setMenuState(ui.user, COMM_SCREEN_MAIN)
@@ -381,7 +381,7 @@
PS.allowedtocall = !(PS.allowedtocall)
/proc/call_shuttle_proc(var/mob/user)
if ((!( SSticker ) || !emergency_shuttle.location()))
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
return
if(!GLOB.universe.OnShuttleCall(user))
@@ -392,7 +392,7 @@
to_chat(user, "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated.")
return
if(emergency_shuttle.deny_shuttle)
if(GLOB.emergency_shuttle.deny_shuttle)
to_chat(user, "The emergency shuttle may not be sent at this time. Please try again later.")
return
@@ -400,11 +400,11 @@
to_chat(user, "The emergency shuttle is refueling. Please wait another [round((6000-world.time)/600)] minute\s before trying again.")
return
if(emergency_shuttle.going_to_centcom())
if(GLOB.emergency_shuttle.going_to_centcom())
to_chat(user, "The emergency shuttle may not be called while returning to [using_map.boss_short].")
return
if(emergency_shuttle.online())
if(GLOB.emergency_shuttle.online())
to_chat(user, "The emergency shuttle is already on its way.")
return
@@ -412,7 +412,7 @@
to_chat(user, "Under directive 7-10, [station_name()] is quarantined until further notice.")
return
emergency_shuttle.call_evac()
GLOB.emergency_shuttle.call_evac()
log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
admin_chat_message(message = "Emergency evac beginning! Called by [key_name(user)]!", color = "#CC2222") //VOREStation Add
@@ -420,20 +420,20 @@
return
/proc/init_shift_change(var/mob/user, var/force = 0)
if ((!( SSticker ) || !emergency_shuttle.location()))
if ((!( SSticker ) || !GLOB.emergency_shuttle.location()))
return
if(emergency_shuttle.going_to_centcom())
if(GLOB.emergency_shuttle.going_to_centcom())
to_chat(user, "The shuttle may not be called while returning to [using_map.boss_short].")
return
if(emergency_shuttle.online())
if(GLOB.emergency_shuttle.online())
to_chat(user, "The shuttle is already on its way.")
return
// if force is 0, some things may stop the shuttle call
if(!force)
if(emergency_shuttle.deny_shuttle)
if(GLOB.emergency_shuttle.deny_shuttle)
to_chat(user, "[using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later.")
return
@@ -447,13 +447,13 @@
if(SSticker.mode.auto_recall_shuttle)
//New version pretends to call the shuttle but cause the shuttle to return after a random duration.
emergency_shuttle.auto_recall = 1
GLOB.emergency_shuttle.auto_recall = 1
if(SSticker.mode.name == "blob" || SSticker.mode.name == "epidemic")
to_chat(user, "Under directive 7-10, [station_name()] is quarantined until further notice.")
return
emergency_shuttle.call_transfer()
GLOB.emergency_shuttle.call_transfer()
//delay events in case of an autotransfer
if (isnull(user))
@@ -467,13 +467,13 @@
return
/proc/cancel_call_proc(var/mob/user)
if (!( SSticker ) || !emergency_shuttle.can_recall())
if (!( SSticker ) || !GLOB.emergency_shuttle.can_recall())
return
if((SSticker.mode.name == "blob")||(SSticker.mode.name == "Meteor"))
return
if(!emergency_shuttle.going_to_centcom()) //check that shuttle isn't already heading to CentCom
emergency_shuttle.recall()
if(!GLOB.emergency_shuttle.going_to_centcom()) //check that shuttle isn't already heading to CentCom
GLOB.emergency_shuttle.recall()
log_game("[key_name(user)] has recalled the shuttle.")
message_admins("[key_name_admin(user)] has recalled the shuttle.", 1)
return
+3 -3
View File
@@ -62,10 +62,10 @@
data["name"] = name
data["duration"] = roundduration2text()
if(emergency_shuttle?.going_to_centcom())
if(GLOB.emergency_shuttle?.going_to_centcom())
data["evac"] = "Gone"
else if(emergency_shuttle?.online())
if(emergency_shuttle.evac)
else if(GLOB.emergency_shuttle?.online())
if(GLOB.emergency_shuttle.evac)
data["evac"] = "Emergency"
else
data["evac"] = "Crew Transfer"
+2 -3
View File
@@ -5,9 +5,8 @@
/datum/unit_test/materials_shall_have_names/Run()
var/list/failures = list()
populate_material_list()
for(var/name in global.name_to_material)
var/datum/material/mat = global.name_to_material[name]
for(var/name, value in GLOB.name_to_material)
var/datum/material/mat = value
if(!mat)
continue // how did we get here?
if(!mat.display_name || !mat.use_name || !mat.sheet_singular_name || !mat.sheet_plural_name || !mat.sheet_collective_name)
+3 -8
View File
@@ -1,8 +1,3 @@
var/list/ventcrawl_machinery = list(
/obj/machinery/atmospherics/unary/vent_pump,
/obj/machinery/atmospherics/unary/vent_scrubber
)
/mob/living/var/list/icon/pipes_shown = list()
/mob/living/var/last_played_vent
/mob/living/var/is_ventcrawling = FALSE
@@ -126,7 +121,7 @@ var/list/ventcrawl_machinery = list(
return ..()
/mob/living/AltClickOn(var/atom/A)
if(is_type_in_list(A,ventcrawl_machinery))
if(is_type_in_list(A, GLOB.ventcrawl_machinery))
handle_ventcrawl(A)
return 1
return ..()
@@ -135,7 +130,7 @@ var/list/ventcrawl_machinery = list(
var/atom/pipe
var/list/pipes = list()
for(var/obj/machinery/atmospherics/unary/U in range(1))
if(is_type_in_list(U,ventcrawl_machinery) && Adjacent(U) && !U.welded)
if(is_type_in_list(U, GLOB.ventcrawl_machinery) && Adjacent(U) && !U.welded)
pipes |= U
if(!pipes || !pipes.len)
to_chat(src, "There are no pipes that you can ventcrawl into within range!")
@@ -164,7 +159,7 @@ var/list/ventcrawl_machinery = list(
if(!vent_found)
for(var/obj/machinery/atmospherics/machine in range(1,src))
if(is_type_in_list(machine, ventcrawl_machinery))
if(is_type_in_list(machine, GLOB.ventcrawl_machinery))
vent_found = machine
if(!vent_found || !vent_found.can_crawl_through())
@@ -32,7 +32,7 @@
/obj/machinery/atmospherics/proc/ventcrawl_to(var/mob/living/user, var/obj/machinery/atmospherics/target_move, var/direction)
if(target_move)
if(is_type_in_list(target_move, ventcrawl_machinery) && target_move.can_crawl_through())
if(is_type_in_list(target_move, GLOB.ventcrawl_machinery) && target_move.can_crawl_through())
user.remove_ventcrawl()
user.forceMove(target_move.loc) //handles entering and so on
user.visible_message("You hear something squeezing through the ducts.", "You climb out the ventilation system.")
@@ -56,7 +56,7 @@
T.runechat_message(message)
else
if((direction & initialize_directions) || is_type_in_list(src, ventcrawl_machinery) && src.can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent
if((direction & initialize_directions) || is_type_in_list(src, GLOB.ventcrawl_machinery) && src.can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent
user.remove_ventcrawl()
user.forceMove(src.loc)
SEND_SIGNAL(user,COMSIG_MOB_VENTCRAWL_END,src)
+2 -2
View File
@@ -924,7 +924,7 @@
)
if(O.material in rock_munch)
nom = rock_munch[O.material]
M = name_to_material[O.material]
M = GLOB.name_to_material[O.material]
else if(istype(O, /obj/item/ore/slag))
nom = list("nutrition" = 15, "remark" = "You taste dusty, crunchy mistakes. This is a travesty... but at least it is an edible one.", "WTF" = FALSE)
else //Random rock.
@@ -965,7 +965,7 @@
var/obj/item/stack/material/stack = O.split(1) //A little off the top.
I = stack
nom = refined_taste[O.default_type]
M = name_to_material[O.default_type]
M = GLOB.name_to_material[O.default_type]
else if(istype(I, /obj/item/entrepreneur/crystal))
nom = list("nutrition" = 100, "remark" = "The crytal was particularly brittle and not difficult to break apart, but the inside was incredibly flavoursome. Though devoid of any actual healing power, it seems to be very nutritious!", "WTF" = FALSE)
+1 -1
View File
@@ -146,7 +146,7 @@
spawnpoint_type = /datum/spawnpoint/tram
/obj/machinery/cryopod/robot/door/tram/process()
if(emergency_shuttle.online() || emergency_shuttle.returned())
if(GLOB.emergency_shuttle.online() || GLOB.emergency_shuttle.returned())
// Transform into a door! But first despawn anyone inside
time_till_despawn = 0
..()

Some files were not shown because too many files have changed in this diff Show More