[MIRROR] next set of globals (#12399)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2026-02-09 01:16:37 +01:00
committed by GitHub
co-authored by Kashargul
parent b7c61c3a04
commit ba01722b31
106 changed files with 482 additions and 547 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)
-4
View File
@@ -3,7 +3,3 @@
#define SMITE_HOTDOG "Hot Dog"
#define NEWSFILE "data/news.sav"
#define TGUI_VIEW_ATTACK_LOGS "Check Player Attack Logs"
#define TGUI_VIEW_DIALOG_LOGS "Check Player Dialogue Logs"
#define TGUI_RESIZE "Resize player"
+5
View File
@@ -99,3 +99,8 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor
// Visibility flags
#define ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG "Map-Debug"
// Tgui input list options
#define TGUI_VIEW_ATTACK_LOGS "Check Player Attack Logs"
#define TGUI_VIEW_DIALOG_LOGS "Check Player Dialogue Logs"
#define TGUI_RESIZE "Resize player"
+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
@@ -93,9 +93,6 @@
#define NETWORK_MAINT_DECK "Maintenance Deck"
// CHHOMPAdd End
// 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, NETWORK_EXPLORATION)
#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
@@ -86,3 +86,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")
@@ -634,7 +636,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,
@@ -642,7 +644,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.
@@ -1228,18 +1230,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(
@@ -1653,6 +1643,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
@@ -362,7 +362,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
@@ -20,4 +20,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,14 +41,14 @@
/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"
playsound(src, 'sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications
spawn(100) // Wait 10 seconds, then play it again
playsound(src, 'sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications
else
alarms = atmosphere_alarm.minor_alarms()
alarms = GLOB.atmosphere_alarm.minor_alarms()
if(alarms.len)
icon_screen = "alert:1"
playsound(src, 'sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications
@@ -65,7 +65,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
@@ -217,7 +217,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)
FA.soundloop.stop() // CHOMPEdit: Soundloop
FA.firewarn = FALSE // CHOMPEdit: Soundloop Fix
update_icon()
@@ -231,7 +231,7 @@ FIRE ALARM
if(!firewarn && !alarms_hidden) // CHOMPAdd
GLOB.global_announcer.autosay("Tripped [area]", "Fire Alarm Monitor", DEPARTMENT_ENGINEERING)
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)
FA.soundloop.start() // CHOMPEdit: Soundloop
FA.firewarn = TRUE // CHOMPEdit: Soundloop Fix
update_icon()
+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)]"
@@ -92,7 +92,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
@@ -413,7 +413,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
@@ -151,7 +151,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
@@ -101,8 +101,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,4 +1,3 @@
/turf/simulated/floor/outdoors/grass
name = "grass"
icon_state = "grass0"
+1 -1
View File
@@ -529,7 +529,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
@@ -870,7 +870,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
@@ -882,15 +882,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!
@@ -906,10 +906,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)
@@ -925,10 +925,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
/* CHOMPRemove Start Virgo Fluffitems
// 0-9 CKEYS
+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()
+8 -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,8 +180,8 @@ var/list/_human_default_emotes = list(
/decl/emote/audible/caw2,
/decl/emote/audible/caw_m,
/decl/emote/audible/gwah,
//VOREStation Add End
//CHOMP Add start
/decl/emote/audible/wheeze,
/decl/emote/audible/prbt2,
/decl/emote/audible/pain,
/decl/emote/audible/mgeow,
@@ -190,21 +189,17 @@ var/list/_human_default_emotes = list(
/decl/emote/audible/xenogrowl,
/decl/emote/audible/xenohiss,
/decl/emote/audible/xenopurr,
/decl/emote/audible/gwah,
/decl/emote/audible/wawa,
/decl/emote/audible/malehumanscream,
/decl/emote/audible/scientist/scream,
/decl/emote/audible/scientist/pain,
/decl/emote/audible/caw,
/decl/emote/audible/yip,
/decl/emote/audible/tailthump,
/decl/emote/audible/squeal,
//CHOMP 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,
@@ -348,27 +343,26 @@ var/list/_simple_mob_default_emotes = list(
/decl/emote/audible/caw_m,
/decl/emote/audible/gwah,
//CHOMP Add start
/decl/emote/audible/wheeze,
/decl/emote/audible/prbt2,
/decl/emote/audible/pain,
/decl/emote/audible/mgeow,
/decl/emote/audible/xenogrowl,
/decl/emote/audible/xenohiss,
/decl/emote/audible/xenopurr,
/decl/emote/audible/caw,
/decl/emote/audible/yip,
/decl/emote/audible/tailthump,
/decl/emote/audible/squeal,
//CHOMP Add end
)
//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]"
@@ -190,8 +190,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
@@ -404,7 +404,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()
@@ -557,7 +557,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
@@ -156,8 +156,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 -1
View File
@@ -148,5 +148,5 @@
//CHOMPEdit Start: Emotes!
/mob/living/voice/get_available_emotes()
LAZYOR(., global._simple_mob_default_emotes)
LAZYOR(., GLOB.simple_mob_default_emotes)
//CHOMPEdit End
+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
@@ -1125,7 +1125,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
@@ -1149,27 +1149,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)
@@ -1293,7 +1293,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")) //CHOMP reversion
@@ -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
@@ -276,7 +276,7 @@
if(response == "Yes") //CHOMPEdit End
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)
@@ -385,7 +385,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))
@@ -396,7 +396,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
@@ -404,11 +404,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
@@ -416,7 +416,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
@@ -424,20 +424,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
@@ -451,13 +451,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))
@@ -471,13 +471,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())

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