Ports the TG globals controller and converts globals. (#18057)

* SDQL2 update

* fix that verb

* cl

* fix that

* toworld

* this is pointless

* update info

* siiiiick..

* vv edit update

* fix that

* fix editing vars

* fix VV

* Port the /TG/ globals controller.

* part 1

* part 2

* oops

* part 3

* Hollow Purple

* sadas

* bsbsdb

* muda na agaki ta

* ids 1-15

* 16-31

* 41-75

* bring me back to how things used to be before i lost it all

* the strength of mayhem

* final touches

* cl

* protect some vars

* update sdql2 to use glob

* stuff?

* forgot that is not defined there

* whoops

* observ

* but it never gets better

* a

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2023-12-26 01:16:02 +00:00
committed by GitHub
co-authored by Matt Atlas
parent 19292f01d3
commit cadd19beac
966 changed files with 4785 additions and 4784 deletions
+1 -1
View File
@@ -18,7 +18,7 @@
if (get_dist(on_wall,usr)>1)
return
var/ndir = get_dir(usr,on_wall)
if (!(ndir in cardinal))
if (!(ndir in GLOB.cardinal))
return
var/turf/loc = get_turf(usr)
var/area/A = loc.loc
+2 -2
View File
@@ -197,7 +197,7 @@
return
INVOKE_ASYNC(src, PROC_REF(set_area_machinery_title), A, str, prevname)
A.name = str
sortTim(all_areas, GLOBAL_PROC_REF(cmp_text_asc))
sortTim(GLOB.all_areas, GLOBAL_PROC_REF(cmp_text_asc))
to_chat(usr, "<span class='notice'>You set the area '[prevname]' title to '[str]'.</span>")
interact()
return
@@ -253,7 +253,7 @@
return ROOM_ERR_TOOLARGE
var/turf/T = pending[1] //why byond havent list::pop()?
pending -= T
for (var/dir in cardinal)
for (var/dir in GLOB.cardinal)
var/skip = 0
for (var/obj/structure/window/W in T)
if(dir == W.dir || (W.dir in list(NORTHEAST,SOUTHEAST,NORTHWEST,SOUTHWEST)))
+1 -1
View File
@@ -115,7 +115,7 @@
var/dir_offset = 0
if(target_turf != source_turf)
dir_offset = get_dir(source_turf, target_turf)
if(!(dir_offset in global.cardinal))
if(!(dir_offset in GLOB.cardinal))
to_chat(user, SPAN_WARNING("You cannot reach that from here."))
return
+1 -1
View File
@@ -68,7 +68,7 @@
var/time = time2text(world.realtime,"hh:mm:ss")
var/turf/T = get_turf(src)
lastsignalers.Add("[time] <B>:</B> [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) <B>:</B> [format_frequency(frequency)]/[code]")
GLOB.lastsignalers.Add("[time] <B>:</B> [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) <B>:</B> [format_frequency(frequency)]/[code]")
var/datum/signal/signal = new
signal.source = src
@@ -70,20 +70,20 @@
to_chat(user, SPAN_NOTICE("You paint the target at [target]."))
var/datum/language/language = all_languages[drop_message_language]
var/datum/language/language = GLOB.all_languages[drop_message_language]
if(!istype(global_announcer.announcer))
global_announcer.announcer = new()
global_announcer.announcer.PrepareBroadcast(announcer_name, language, announcer_name)
if(!istype(GLOB.global_announcer.announcer))
GLOB.global_announcer.announcer = new()
GLOB.global_announcer.announcer.PrepareBroadcast(announcer_name, language, announcer_name)
var/turf/current_turf = get_turf(src)
var/datum/signal/subspace/vocal/signal = new(src, emagged ? PUB_FREQ : announcer_frequency, WEAKREF(global_announcer.announcer), language, emagged ? drop_message_emagged : drop_message, "says")
var/datum/signal/subspace/vocal/signal = new(src, emagged ? PUB_FREQ : announcer_frequency, WEAKREF(GLOB.global_announcer.announcer), language, emagged ? drop_message_emagged : drop_message, "says")
signal.data["compression"] = 0
signal.transmission_method = TRANSMISSION_SUBSPACE
signal.levels = GetConnectedZlevels(current_turf.z)
signal.broadcast()
global_announcer.announcer.ResetAfterBroadcast()
GLOB.global_announcer.announcer.ResetAfterBroadcast()
has_dropped++
if(does_explosion)
+3 -3
View File
@@ -23,7 +23,7 @@
/obj/item/device/multitool/hacktool/Destroy()
for(var/T in known_targets)
var/atom/target = T
destroyed_event.unregister(target, src)
GLOB.destroyed_event.unregister(target, src)
known_targets.Cut()
qdel(hack_state)
hack_state = null
@@ -88,7 +88,7 @@
return FALSE
known_targets.Insert(1, target) // Insert the newly hacked target first,
destroyed_event.register(target, src, PROC_REF(on_target_destroy))
GLOB.destroyed_event.register(target, src, PROC_REF(on_target_destroy))
return TRUE
/obj/item/device/multitool/hacktool/proc/sanity_check()
@@ -98,7 +98,7 @@
if(known_targets.len > max_known_targets)
for(var/i = (max_known_targets + 1) to known_targets.len)
var/atom/A = known_targets[i]
destroyed_event.unregister(A, src)
GLOB.destroyed_event.unregister(A, src)
known_targets.Cut(max_known_targets + 1)
/obj/item/device/multitool/hacktool/proc/on_target_destroy(var/target)
@@ -12,7 +12,7 @@
icon_state = "inactive_CENTCOM"
//icon_state = "inactive"
w_class = ITEMSIZE_NORMAL
req_access = list(access_cent_specops)
req_access = list(ACCESS_CENT_SPECOPS)
health = 150
var/department = "CENTCOM"
@@ -32,18 +32,18 @@
/obj/item/device/magnetic_lock/security
department = "Security"
icon_state = "inactive_Security"
req_access = list(access_security)
req_access = list(ACCESS_SECURITY)
/obj/item/device/magnetic_lock/engineering
department = "Engineering"
icon_state = "inactive_Engineering"
req_access = null
req_one_access = list(access_engine_equip, access_atmospherics)
req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS)
/obj/item/device/magnetic_lock/security/legion
name = "legion magnetic door lock"
req_access = null
req_one_access = list(access_legion, access_tcfl_peacekeeper_ship)
req_one_access = list(ACCESS_LEGION, ACCESS_TCFL_PEACEKEEPER_SHIP)
w_class = ITEMSIZE_SMALL
/obj/item/device/magnetic_lock/security/legion/Initialize()
@@ -293,7 +293,7 @@
return
var/direction = get_dir(user, newtarget)
if ((direction in alldirs) && !(direction in cardinal))
if ((direction in GLOB.alldirs) && !(direction in GLOB.cardinal))
direction = turn(direction, -45)
if (check_neighbor_density(get_turf(newtarget.loc), direction))
direction = turn(direction, 90)
@@ -437,13 +437,13 @@
return
if (prob(50))
spark(target ? target : src, 5, alldirs)
spark(target ? target : src, 5, GLOB.alldirs)
/obj/item/device/magnetic_lock/keypad
name = "magnetic door lock"
desc = "A large, passcode locked device used for completely locking down airlocks."
req_access = list(access_none)
req_access = list(ACCESS_NONE)
var/passcode = "open"
var/configurable = TRUE
+2 -2
View File
@@ -65,14 +65,14 @@
unregister_buffer(buffer_object)
buffer_object = buffer
if(buffer_object)
destroyed_event.register(buffer_object, src, PROC_REF(unregister_buffer))
GLOB.destroyed_event.register(buffer_object, src, PROC_REF(unregister_buffer))
update_icon()
/obj/item/device/multitool/proc/unregister_buffer(var/atom/buffer_to_unregister)
// Only remove the buffered object, don't reset the name
// This means one cannot know if the buffer has been destroyed until one attempts to use it.
if(buffer_to_unregister == buffer_object && buffer_object)
destroyed_event.unregister(buffer_object, src)
GLOB.destroyed_event.unregister(buffer_object, src)
buffer_object = null
update_icon()
+4 -4
View File
@@ -27,7 +27,7 @@
/obj/item/device/powersink/Destroy()
STOP_PROCESSING_POWER_OBJECT(src)
processing_power_items -= src
GLOB.processing_power_items -= src
return ..()
@@ -49,7 +49,7 @@
else
if (mode == 2)
STOP_PROCESSING_POWER_OBJECT(src)
processing_power_items.Remove(src)
GLOB.processing_power_items.Remove(src)
anchored = 0
mode = 0
visible_message("<span class='notice'>\The [user] detaches \the [src] from the cable!</span>")
@@ -74,7 +74,7 @@
icon_state = "powersink1"
item_state = "powersink1"
START_PROCESSING_POWER_OBJECT(src)
processing_power_items += src
GLOB.processing_power_items += src
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
visible_message("<span class='notice'>\The [user] deactivates \the [src]!</span>")
mode = 1
@@ -82,7 +82,7 @@
icon_state = "powersink0"
item_state = "powersink0"
STOP_PROCESSING_POWER_OBJECT(src)
processing_power_items -= src
GLOB.processing_power_items -= src
/obj/item/device/powersink/pwr_drain()
if(!attached)
@@ -1,4 +1,4 @@
var/global/list/teleportbeacons = list()
GLOBAL_LIST_EMPTY(teleportbeacons)
/obj/item/device/radio/beacon
name = "tracking beacon"
@@ -11,10 +11,10 @@ var/global/list/teleportbeacons = list()
/obj/item/device/radio/beacon/Initialize()
. = ..()
teleportbeacons += src
GLOB.teleportbeacons += src
/obj/item/device/radio/beacon/Destroy()
teleportbeacons -= src
GLOB.teleportbeacons -= src
return ..()
/obj/item/device/radio/beacon/examine(mob/user)
@@ -29,7 +29,7 @@
flags_1 |= INITIALIZED_1
var/turf/T = get_turf(src)
var/obj/effect/overmap/visitable/V = map_sectors["[T.z]"]
var/obj/effect/overmap/visitable/V = GLOB.map_sectors["[T.z]"]
if(istype(V) && V.comms_support)
if(V.comms_name)
name = "[V.comms_name] encryption key"
@@ -74,10 +74,10 @@
/obj/item/device/radio/headset/handle_message_mode(mob/living/M, message, channel)
if(channel == "special")
if(translate_binary)
var/datum/language/binary = all_languages[LANGUAGE_ROBOT]
var/datum/language/binary = GLOB.all_languages[LANGUAGE_ROBOT]
binary.broadcast(M, message)
if(translate_hivenet)
var/datum/language/bug = all_languages[LANGUAGE_VAURCA]
var/datum/language/bug = GLOB.all_languages[LANGUAGE_VAURCA]
bug.broadcast(M, message)
return null
@@ -712,7 +712,7 @@
return ..()
var/turf/T = get_turf(src)
var/obj/effect/overmap/visitable/V = map_sectors["[T.z]"]
var/obj/effect/overmap/visitable/V = GLOB.map_sectors["[T.z]"]
if(istype(V) && V.comms_support)
default_frequency = assign_away_freq(V.name)
if(V.comms_name)
@@ -68,7 +68,7 @@ pixel_x = 8;
return ..()
var/turf/T = get_turf(src)
var/obj/effect/overmap/visitable/V = map_sectors["[T.z]"]
var/obj/effect/overmap/visitable/V = GLOB.map_sectors["[T.z]"]
if(istype(V) && V.comms_support)
if(V.comms_name)
name = "intercom ([V.comms_name])"
@@ -310,7 +310,7 @@ pixel_x = 8;
set_frequency(SEC_I_FREQ)
internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(SEC_I_FREQ) = list(access_security)
num2text(SEC_I_FREQ) = list(ACCESS_SECURITY)
)
/obj/item/device/radio/intercom/entertainment
@@ -373,7 +373,7 @@ pixel_x = 8;
/obj/item/device/radio/intercom/syndicate/Initialize()
. = ..()
set_frequency(SYND_FREQ)
internal_channels[num2text(SYND_FREQ)] = list(access_syndicate)
internal_channels[num2text(SYND_FREQ)] = list(ACCESS_SYNDICATE)
/obj/item/device/radio/intercom/raider
name = "illegally modified intercom"
@@ -396,7 +396,7 @@ pixel_x = 8;
/obj/item/device/radio/intercom/syndicate/Initialize()
. = ..()
set_frequency(RAID_FREQ)
internal_channels[num2text(RAID_FREQ)] = list(access_syndicate)
internal_channels[num2text(RAID_FREQ)] = list(ACCESS_SYNDICATE)
/obj/item/device/radio/intercom/Destroy()
QDEL_NULL(power_interface)
+15 -15
View File
@@ -3,24 +3,24 @@
var/global/list/default_internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(ENT_FREQ) = list(),
num2text(AI_FREQ) = list(access_equipment),
num2text(ERT_FREQ) = list(access_cent_specops),
num2text(COMM_FREQ)= list(access_heads),
num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
num2text(MED_FREQ) = list(access_medical_equip),
num2text(MED_I_FREQ)=list(access_medical_equip),
num2text(SEC_FREQ) = list(access_security),
num2text(SEC_I_FREQ)=list(access_security),
num2text(PEN_FREQ) = list(access_armory),
num2text(SCI_FREQ) = list(access_tox,access_robotics,access_xenobiology,access_xenobotany),
num2text(SUP_FREQ) = list(access_cargo),
num2text(SRV_FREQ) = list(access_janitor, access_hydroponics)
num2text(AI_FREQ) = list(ACCESS_EQUIPMENT),
num2text(ERT_FREQ) = list(ACCESS_CENT_SPECOPS),
num2text(COMM_FREQ)= list(ACCESS_HEADS),
num2text(ENG_FREQ) = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS),
num2text(MED_FREQ) = list(ACCESS_MEDICAL_EQUIP),
num2text(MED_I_FREQ)=list(ACCESS_MEDICAL_EQUIP),
num2text(SEC_FREQ) = list(ACCESS_SECURITY),
num2text(SEC_I_FREQ)=list(ACCESS_SECURITY),
num2text(PEN_FREQ) = list(ACCESS_ARMORY),
num2text(SCI_FREQ) = list(ACCESS_TOX,ACCESS_ROBOTICS,ACCESS_XENOBIOLOGY,ACCESS_XENOBOTANY),
num2text(SUP_FREQ) = list(ACCESS_CARGO),
num2text(SRV_FREQ) = list(ACCESS_JANITOR, ACCESS_HYDROPONICS)
)
var/global/list/default_medbay_channels = list(
num2text(PUB_FREQ) = list(),
num2text(MED_FREQ) = list(access_medical_equip),
num2text(MED_I_FREQ) = list(access_medical_equip)
num2text(MED_FREQ) = list(ACCESS_MEDICAL_EQUIP),
num2text(MED_I_FREQ) = list(ACCESS_MEDICAL_EQUIP)
)
var/global/list/default_expedition_channels = list(
@@ -740,7 +740,7 @@ var/global/list/default_interrogation_channels = list(
return ..()
var/turf/T = get_turf(src)
var/obj/effect/overmap/visitable/V = map_sectors["[T.z]"]
var/obj/effect/overmap/visitable/V = GLOB.map_sectors["[T.z]"]
if(istype(V) && V.comms_support)
frequency = assign_away_freq(V.name)
channels += list(
@@ -68,7 +68,7 @@
/obj/item/storage/slide_projector/proc/stop_projecting()
if(projection)
QDEL_NULL(projection)
moved_event.unregister(src, src, PROC_REF(check_projections))
GLOB.moved_event.unregister(src, src, PROC_REF(check_projections))
set_light(0)
update_icon()
@@ -83,7 +83,7 @@
break
projection = new projection_type(target)
projection.set_source(current_slide)
moved_event.register(src, src, PROC_REF(check_projections))
GLOB.moved_event.register(src, src, PROC_REF(check_projections))
set_light(1.4, 0.1, COLOR_WHITE) //Bit of light
update_icon()
@@ -27,7 +27,7 @@
portable_drive = new /obj/item/computer_hardware/hard_drive/portable(src)
/obj/item/device/taperecorder/Destroy()
listening_objects -= src
GLOB.listening_objects -= src
if(portable_drive)
QDEL_NULL(portable_drive)
return ..()
@@ -68,7 +68,7 @@ effective or pretty fucking useless.
if(!istype(target))
to_chat(user, SPAN_NOTICE("[target] is not a valid target!"))
return
if(all_languages[LANGUAGE_LIIDRA] in target.languages || target.internal_organs_by_name["blackkois"])
if(GLOB.all_languages[LANGUAGE_LIIDRA] in target.languages || target.internal_organs_by_name["blackkois"])
to_chat(user, SPAN_NOTICE("[target] is already part of the Lii'dra Hivemind!"))
return
if(isvaurca(target))
@@ -52,7 +52,7 @@
A.holder = src
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
bombers += "[key_name(user)] attached a [item] to a transfer valve."
GLOB.bombers += "[key_name(user)] attached a [item] to a transfer valve."
message_admins("[key_name_admin(user)] attached a [item] to a transfer valve. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
log_game("[key_name_admin(user)] attached a [item] to a transfer valve.",ckey=key_name(user))
attacher = user
@@ -204,7 +204,7 @@
last_touch_info = "(<A HREF='?_src_=holder;adminmoreinfo=\ref[mob]'>?</A>)"
log_str += " Last touched by: [src.fingerprintslast][last_touch_info]"
bombers += log_str
GLOB.bombers += log_str
message_admins(log_str, 0, 1)
log_game(log_str)
merge_gases()
+7 -7
View File
@@ -39,12 +39,12 @@ A list of items and costs is stored under the datum of every game mode, alongsid
. = ..()
src.uplink_owner = owner
purchase_log = list()
world_uplinks += src
GLOB.world_uplinks += src
telecrystals = new_telecrystals
bluecrystals = new_bluecrystals
/obj/item/device/uplink/Destroy()
world_uplinks -= src
GLOB.world_uplinks -= src
src.uplink_owner = null
return ..()
@@ -219,7 +219,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
else if(tgui_menu == 3)
tgui_data["contracts_found"] = 0
if(establish_db_connection(dbcon))
if(establish_db_connection(GLOB.dbcon))
tgui_data["contracts"] = list()
if (!tgui_data["contracts_current_page"])
@@ -239,7 +239,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
tgui_data["contracts_view"] = 1
query_details["status"] = "open"
var/DBQuery/index_query = dbcon.NewQuery("SELECT count(*) as Total_Contracts FROM ss13_syndie_contracts WHERE deleted_at IS NULL AND status = :status:")
var/DBQuery/index_query = GLOB.dbcon.NewQuery("SELECT count(*) as Total_Contracts FROM ss13_syndie_contracts WHERE deleted_at IS NULL AND status = :status:")
index_query.Execute(query_details)
var/pages = 0
@@ -268,7 +268,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
query_details["offset"] = (tgui_data["contracts_current_page"] - 1) * 10
var/DBQuery/list_query = dbcon.NewQuery("SELECT contract_id, contractee_name, title FROM ss13_syndie_contracts WHERE deleted_at IS NULL AND status = :status: LIMIT 10 OFFSET :offset:")
var/DBQuery/list_query = GLOB.dbcon.NewQuery("SELECT contract_id, contractee_name, title FROM ss13_syndie_contracts WHERE deleted_at IS NULL AND status = :status: LIMIT 10 OFFSET :offset:")
list_query.Execute(query_details)
var/list/contracts = list()
@@ -284,7 +284,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
if(tgui_menu == 31)
tgui_data["contracts_found"] = 0
if (config.sql_enabled && establish_db_connection(dbcon))
if (GLOB.config.sql_enabled && establish_db_connection(GLOB.dbcon))
tgui_data["contracts"] = list()
if (!tgui_data["contracts_current_page"])
@@ -296,7 +296,7 @@ Then check if it's true, if true return. This will stop the normal menu appearin
var/query_details[0]
query_details["contract_id"] = exploit_id
var/DBQuery/select_query = dbcon.NewQuery("SELECT contract_id, contractee_name, status, title, description, reward_other FROM ss13_syndie_contracts WHERE contract_id = :contract_id:")
var/DBQuery/select_query = GLOB.dbcon.NewQuery("SELECT contract_id, contractee_name, status, title, description, reward_other FROM ss13_syndie_contracts WHERE contract_id = :contract_id:")
select_query.Execute(query_details)
if (select_query.NextRow())
@@ -88,8 +88,8 @@ var/datum/uplink_random_selection/default_uplink_selection = new/datum/uplink_ra
#ifdef DEBUG
/proc/debug_uplink_purchage_log()
for(var/antag_type in all_antag_types)
var/datum/antagonist/A = all_antag_types[antag_type]
for(var/antag_type in GLOB.all_antag_types)
var/datum/antagonist/A = GLOB.all_antag_types[antag_type]
A.print_player_summary()
/proc/debug_uplink_item_assoc_list()
+2 -2
View File
@@ -9,12 +9,12 @@
/obj/structure/easel/Initialize(ml, _mat, _reinf_mat)
. = ..()
moved_event.register(src, src, PROC_REF(move_painting))
GLOB.moved_event.register(src, src, PROC_REF(move_painting))
material = SSmaterials.get_material_by_name(MATERIAL_WOOD)
/obj/structure/easel/Destroy()
painting = null
moved_event.unregister(src, src, PROC_REF(move_painting))
GLOB.moved_event.unregister(src, src, PROC_REF(move_painting))
return ..()
/*
+1 -1
View File
@@ -83,7 +83,7 @@
var/answered = FALSE
/obj/item/eightball/haunted/start_shaking(mob/user)
for(var/mob/abstract/observer/O in player_list)
for(var/mob/abstract/observer/O in GLOB.player_list)
if(O.client)
to_chat(O, "[ghost_follow_link(user, O)] <span class='deadsay'><font size=3><b>\The [user] is shaking \the [src], hoping to get an answer to \"[question]\".<a href='?src=\ref[src];candidate=\ref[O]'>(Answer)</a></b></font></span>")
+1 -1
View File
@@ -10,7 +10,7 @@
light_color = LIGHT_COLOR_CYAN
light_range = 1.4
req_one_access = list(access_bar, access_kitchen)
req_one_access = list(ACCESS_BAR, ACCESS_KITCHEN)
var/rave_mode = FALSE
var/menu_text = ""
@@ -39,7 +39,7 @@
if(!src) return 1
if(src.loc != user) return 1
var/list/directions = new/list(cardinal)
var/list/directions = new/list(GLOB.cardinal)
var/i = 0
for (var/obj/structure/window/win in user.loc)
i++
@@ -47,7 +47,7 @@
to_chat(user, "<span class='warning'>There are too many windows in this location.</span>")
return 1
directions-=win.dir
if(!(win.dir in cardinal))
if(!(win.dir in GLOB.cardinal))
to_chat(user, "<span class='warning'>Can't let you do that.</span>")
return 1
+1 -1
View File
@@ -152,7 +152,7 @@
to_chat(usr, SPAN_WARNING("You check your watch, realising it's closed."))
else
var/adhomian_year = game_year + 1158
var/adhomian_year = GLOB.game_year + 1158
var/current_month = text2num(time2text(world.realtime, "MM"))
var/current_day = text2num(time2text(world.realtime, "DD"))
var/adhomian_day
+1 -1
View File
@@ -609,7 +609,7 @@
do_pop()
/obj/item/toy/snappop/proc/do_pop()
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
new /obj/effect/decal/cleanable/ash(get_turf(src))
visible_message(SPAN_WARNING("\The [src] explodes!"), SPAN_WARNING("You hear a snap!"))
playsound(get_turf(src), 'sound/effects/snap.ogg', 50, TRUE)
@@ -46,7 +46,7 @@ AI MODULES
if(comp.current.vr_mob)
to_chat(comp.current.vr_mob, "These are your laws now:")
comp.current.show_laws()
for(var/mob/living/silicon/robot/R in mob_list)
for(var/mob/living/silicon/robot/R in GLOB.mob_list)
if(R.law_update && (R.connected_ai == comp.current))
to_chat(R, "These are your laws now:")
if(R.vr_mob)
@@ -90,7 +90,7 @@ AI MODULES
/obj/item/aiModule/proc/log_law_changes(var/mob/living/silicon/ai/target, var/mob/sender)
var/time = time2text(world.realtime,"hh:mm:ss")
lawchanges.Add("[time] <B>:</B> [sender.name]([sender.key]) used [src.name] on [target.name]([target.key])")
GLOB.lawchanges.Add("[time] <B>:</B> [sender.name]([sender.key]) used [src.name] on [target.name]([target.key])")
log_and_message_admins("used [src.name] on [target.name]([target.key])")
/obj/item/aiModule/proc/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
@@ -121,7 +121,7 @@ AI MODULES
/obj/item/aiModule/safeguard/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
var/law = text("Safeguard []. Anyone threatening or attempting to harm [] is no longer to be considered a crew member, and is a threat which must be neutralized.", targetName, targetName)
target.add_supplied_law(9, law)
lawchanges.Add("The law specified [targetName]")
GLOB.lawchanges.Add("The law specified [targetName]")
/******************** OneMember ********************/
@@ -149,9 +149,9 @@ AI MODULES
if (!target.is_malf_or_traitor()) // Makes sure the AI isn't a traitor before changing their law 0. --NeoFite
to_chat(target, law)
target.set_zeroth_law(law)
lawchanges.Add("The law specified [targetName]")
GLOB.lawchanges.Add("The law specified [targetName]")
else
lawchanges.Add("The law specified [targetName], but the AI's existing law 0 cannot be overriden.")
GLOB.lawchanges.Add("The law specified [targetName], but the AI's existing law 0 cannot be overriden.")
/******************** ProtectStation ********************/
@@ -232,7 +232,7 @@ AI MODULES
if(!lawpos || lawpos < MIN_SUPPLIED_LAW_NUMBER)
lawpos = MIN_SUPPLIED_LAW_NUMBER
target.add_supplied_law(lawpos, law)
lawchanges.Add("The law was '[newFreeFormLaw]'")
GLOB.lawchanges.Add("The law was '[newFreeFormLaw]'")
/obj/item/aiModule/freeform/install(var/obj/machinery/computer/C)
if(!newFreeFormLaw)
@@ -343,7 +343,7 @@ AI MODULES
/obj/item/aiModule/freeformcore/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
var/law = "[newFreeFormLaw]"
target.add_inherent_law(law)
lawchanges.Add("The law is '[newFreeFormLaw]'")
GLOB.lawchanges.Add("The law is '[newFreeFormLaw]'")
/obj/item/aiModule/freeformcore/install(var/obj/machinery/computer/C)
if(!newFreeFormLaw)
@@ -368,7 +368,7 @@ AI MODULES
// ..() //We don't want this module reporting to the AI who dun it. --NEO
log_law_changes(target, sender)
lawchanges.Add("The law is '[newFreeFormLaw]'")
GLOB.lawchanges.Add("The law is '[newFreeFormLaw]'")
to_chat(target, "<span class='danger'>BZZZZT</span>")
var/law = "[newFreeFormLaw]"
target.add_ion_law(law)
+8 -8
View File
@@ -362,7 +362,7 @@ var/const/NO_EMAG_ACT = -50
icon_state = "dark"
registered_name = "Syndicate"
assignment = "Syndicate Overlord"
access = list(access_syndicate, access_external_airlocks)
access = list(ACCESS_SYNDICATE, ACCESS_EXTERNAL_AIRLOCKS)
/obj/item/card/id/syndicate/ert
name = "illicit commando identification card"
@@ -404,7 +404,7 @@ var/const/NO_EMAG_ACT = -50
desc = "An identification card issued to SCC-sanctioned merchants, indicating their right to sell and buy goods."
icon_state = "centcom"
overlay_state = "centcom"
access = list(access_merchant)
access = list(ACCESS_MERCHANT)
/obj/item/card/id/synthetic
name = "\improper SCC equipment identification card"
@@ -414,7 +414,7 @@ var/const/NO_EMAG_ACT = -50
assignment = "Equipment"
/obj/item/card/id/synthetic/New()
access = get_all_station_access() + access_equipment
access = get_all_station_access() + ACCESS_EQUIPMENT
..()
/obj/item/card/id/synthetic/cyborg
@@ -426,7 +426,7 @@ var/const/NO_EMAG_ACT = -50
/obj/item/card/id/synthetic/cyborg/New()
..()
access = list(access_equipment, access_ai_upload, access_external_airlocks) // barebones cyborg access. Job special added in different place
access = list(ACCESS_EQUIPMENT, ACCESS_AI_UPLOAD, ACCESS_EXTERNAL_AIRLOCKS) // barebones cyborg access. Job special added in different place
/obj/item/card/id/minedrone
name = "mine drone identification card"
@@ -436,7 +436,7 @@ var/const/NO_EMAG_ACT = -50
assignment = "Minedrone"
/obj/item/card/id/minedrone/New()
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_external_airlocks)
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_EXTERNAL_AIRLOCKS)
..()
/obj/item/card/id/centcom
@@ -498,7 +498,7 @@ var/const/NO_EMAG_ACT = -50
assignment = "Freelancer Mercenary"
/obj/item/card/id/distress/New()
access = list(access_distress, access_maint_tunnels, access_external_airlocks)
access = list(ACCESS_DISTRESS, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS)
..()
/obj/item/card/id/distress/fsf
@@ -517,7 +517,7 @@ var/const/NO_EMAG_ACT = -50
icon_state = "legion"
/obj/item/card/id/distress/legion/New()
access = list(access_legion, access_maint_tunnels, access_external_airlocks, access_security, access_engine, access_engine_equip, access_medical, access_research, access_atmospherics, access_medical_equip)
access = list(ACCESS_LEGION, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_SECURITY, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MEDICAL, ACCESS_RESEARCH, ACCESS_ATMOSPHERICS, ACCESS_MEDICAL_EQUIP)
..()
/obj/item/card/id/distress/ap_eridani
@@ -636,7 +636,7 @@ var/const/NO_EMAG_ACT = -50
..()
/obj/item/card/id/away_site
access = list(access_generic_away_site, access_external_airlocks)
access = list(ACCESS_GENERIC_AWAY_SITE, ACCESS_EXTERNAL_AIRLOCKS)
/obj/item/card/id/mecha
name = "exosuit access card"
@@ -12,7 +12,7 @@
/obj/item/card/id/syndicate/New(mob/user as mob)
..()
access = syndicate_access.Copy()
access = GLOB.syndicate_access.Copy()
START_PROCESSING(SSprocessing, src)
/obj/item/card/id/syndicate/Destroy()
@@ -83,13 +83,13 @@
unset_registered_user()
registered_user = user
user.set_id_info(src)
destroyed_event.register(user, src, PROC_REF(unset_registered_user))
GLOB.destroyed_event.register(user, src, PROC_REF(unset_registered_user))
return TRUE
/obj/item/card/id/syndicate/proc/unset_registered_user(var/mob/user)
if(!registered_user || (user && user != registered_user))
return
destroyed_event.unregister(registered_user, src)
GLOB.destroyed_event.unregister(registered_user, src)
registered_user = null
/obj/item/card/id/syndicate/CanUseTopic(mob/user)
@@ -232,7 +232,7 @@
if("Factory Reset")
if(alert("This will factory reset the card, including access and owner. Continue?", "Factory Reset", "No", "Yes") == "Yes" && CanUseTopic(user, state))
age = initial(age)
access = syndicate_access.Copy()
access = GLOB.syndicate_access.Copy()
assignment = initial(assignment)
blood_type = initial(blood_type)
citizenship = initial(citizenship)
@@ -5,7 +5,7 @@
/obj/item/circuitboard/security
name = T_BOARD("security camera monitor")
build_path = /obj/machinery/computer/security
req_access = list(access_security)
req_access = list(ACCESS_SECURITY)
var/list/network
var/locked = 1
var/emagged = 0
@@ -4,14 +4,14 @@
/obj/item/circuitboard/holodeckcontrol
name = T_BOARD("holodeck control console")
build_path = /obj/machinery/computer/HolodeckControl
build_path = /obj/machinery/computer/holodeck_control
origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 2)
var/last_to_emag
var/linkedholodeck_area
var/list/supported_programs
var/list/restricted_programs
/obj/item/circuitboard/holodeckcontrol/construct(var/obj/machinery/computer/HolodeckControl/HC)
/obj/item/circuitboard/holodeckcontrol/construct(var/obj/machinery/computer/holodeck_control/HC)
if (..(HC))
if(linkedholodeck_area)
HC.linkedholodeck = locate(linkedholodeck_area)
@@ -20,7 +20,7 @@
HC.emagged = 1
HC.safety_disabled = 1
/obj/item/circuitboard/holodeckcontrol/deconstruct(var/obj/machinery/computer/HolodeckControl/HC)
/obj/item/circuitboard/holodeckcontrol/deconstruct(var/obj/machinery/computer/holodeck_control/HC)
if (..(HC))
linkedholodeck_area = HC.linkedholodeck_area
last_to_emag = HC.last_to_emag
@@ -26,12 +26,12 @@
/obj/item/cloaking_device/New()
..()
cloaking_devices += src
GLOB.cloaking_devices += src
cell = new /obj/item/cell/high(src)
/obj/item/cloaking_device/Destroy()
. = ..()
cloaking_devices -= src
GLOB.cloaking_devices -= src
/obj/item/cloaking_device/equipped(var/mob/user, var/slot)
..()
@@ -172,7 +172,7 @@
/datum/modifier/cloaking_device/deactivate()
..()
for (var/a in cloaking_devices)//Check for any other cloaks
for (var/a in GLOB.cloaking_devices)//Check for any other cloaks
if (a != source)
var/obj/item/cloaking_device/CD = a
if (CD.get_holding_mob() == target)
@@ -21,7 +21,7 @@
for(var/mob/living/carbon/human/M in viewers(T, null))
M.flash_act(ignore_inherent = TRUE)
else
spark(T, 3, alldirs) //give spawning some flair if there's no flash
spark(T, 3, GLOB.alldirs) //give spawning some flair if there's no flash
for(var/i=1, i<=deliveryamt, i++)
var/atom/movable/x = new spawner_type
@@ -31,7 +31,7 @@
/obj/item/implant/Initialize()
. = ..()
implants += src
GLOB.implants += src
/obj/item/implant/proc/trigger(emote, source)
return
@@ -132,7 +132,7 @@
part.implants.Remove(src)
part = null
STOP_PROCESSING(SSprocessing, src)
implants -= src
GLOB.implants -= src
return ..()
#undef MALFUNCTION_TEMPORARY
@@ -42,7 +42,7 @@
var/area/A = get_area(M)
var/location = A.name
if(cause == "emp" && prob(50))
location = pick(teleportbeacons)
location = pick(GLOB.teleportbeacons)
if(!A.requires_power) // We assume areas that don't use power are special zones
var/area/default = world.area
location = initial(default.name)
@@ -52,7 +52,7 @@
STOP_PROCESSING(SSprocessing, src)
for(var/channel in list("Security", "Medical", "Command"))
global_announcer.autosay(death_message, "[mobname]'s Death Alarm", channel)
GLOB.global_announcer.autosay(death_message, "[mobname]'s Death Alarm", channel)
/obj/item/implant/death_alarm/emp_act(severity) //for some reason alarms stop going off in case they are emp'd, even without this
. = ..()
@@ -113,7 +113,7 @@
/obj/item/implant/explosive/exposed()
if(warning_message)
global_announcer.autosay(warning_message, "Anti-Tampering System")
GLOB.global_announcer.autosay(warning_message, "Anti-Tampering System")
/obj/item/implant/explosive/proc/sanitizePhrase(phrase)
var/list/replacechars = list("'" = "", "\"" = "", ">" = "", "<" = "", "(" = "", ")" = "")
@@ -14,7 +14,7 @@
/obj/item/implant/tracking/Initialize()
var/list/tracking_list = list()
for(var/obj/item/implant/tracking/T in implants)
for(var/obj/item/implant/tracking/T in GLOB.implants)
tracking_list += T
id = length(tracking_list) + 1
. = ..()
+6 -6
View File
@@ -65,7 +65,7 @@
* * triggerer - The `/mob/living` that triggered the mine
*/
/obj/item/landmine/proc/trigger(mob/living/triggerer)
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
if(ishuman(triggerer))
triggerer.Weaken(2)
explosion(loc, 0, 2, 2, 3)
@@ -189,7 +189,7 @@
var/spread_range = 7
/obj/item/landmine/frag/trigger(mob/living/triggerer)
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
fragem(src,num_fragments,num_fragments,explosion_size,explosion_size+1,fragment_damage,damage_step,TRUE)
qdel(src)
@@ -202,7 +202,7 @@
icon_state = "radlandmine"
/obj/item/landmine/radiation/trigger(mob/living/L)
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
if(L)
if(ishuman(L))
var/mob/living/carbon/human/H = L
@@ -218,7 +218,7 @@
icon_state = "phoronlandmine"
/obj/item/landmine/phoron/trigger(mob/living/triggerer)
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
for (var/turf/simulated/floor/target in range(1,src))
if(!target.blocks_air)
target.assume_gas(GAS_PHORON, 30)
@@ -236,7 +236,7 @@
icon_state = "phoronlandmine"
/obj/item/landmine/n2o/trigger(mob/living/L)
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
for (var/turf/simulated/floor/target in range(1,src))
if(!target.blocks_air)
target.assume_gas(GAS_N2O, 30)
@@ -252,7 +252,7 @@
icon_state = "emplandmine"
/obj/item/landmine/emp/trigger(mob/living/triggerer)
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
empulse(src.loc, 2, 4)
qdel(src)
+2 -2
View File
@@ -15,7 +15,7 @@
<head><style>body {overflow: hidden;}</style></head>
<body>
<iframe width='100%' height='97%' src="[config.wikiurl][sub_page]&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe>
<iframe width='100%' height='97%' src="[GLOB.config.wikiurl][sub_page]&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe>
</body>
</html>
@@ -677,7 +677,7 @@
<HR COLOR="steelblue" WIDTH="60%" ALIGN="LEFT">
<iframe width='100%' height='100%' src="[config.wikiurl]Guide_to_Medicine&printable=yes&removelinks=1" frameborder="0" id="main_frame"></iframe>
<iframe width='100%' height='100%' src="[GLOB.config.wikiurl]Guide_to_Medicine&printable=yes&removelinks=1" frameborder="0" id="main_frame"></iframe>
</body>
</html>
@@ -463,7 +463,7 @@
FuelToRemove = 1
playsound(loc, 'sound/weapons/saw/chainsawloop2.ogg', 25, 0, 30)
if(prob(75))
spark(src, 3, alldirs)
spark(src, 3, GLOB.alldirs)
if(prob(25) && isliving(loc))
if(loc.flash_act())
to_chat(loc, SPAN_DANGER("Some stray sparks fly into your eyes!"))
@@ -118,7 +118,7 @@
playsound(user, 'sound/weapons/beartrap_shut.ogg', 50, 1, -1)
user.visible_message("<span class='danger'>\The [user] slams \the [target] away with \the [src]!</span>")
var/T = get_turf(user)
spark(T, 3, alldirs)
spark(T, 3, GLOB.alldirs)
step_away(target,user,15)
sleep(1)
step_away(target,user,15)
+2 -2
View File
@@ -25,10 +25,10 @@
/obj/item/mop/Initialize()
. = ..()
create_reagents(30)
janitorial_supplies |= src
GLOB.janitorial_supplies |= src
/obj/item/mop/Destroy()
janitorial_supplies -= src
GLOB.janitorial_supplies -= src
return ..()
/obj/item/mop/afterattack(atom/A, mob/user, proximity)
@@ -46,7 +46,7 @@ var/list/tape_roll_applications = list()
/obj/item/tape/police
name = "police tape"
desc = "A length of police tape. Do not cross."
req_access = list(access_security)
req_access = list(ACCESS_SECURITY)
icon_base = "police"
/obj/item/taperoll/medical
@@ -59,7 +59,7 @@ var/list/tape_roll_applications = list()
/obj/item/tape/medical
name = "medical tape"
desc = "A length of medical tape. Better not cross it."
req_one_access = list(access_medical_equip)
req_one_access = list(ACCESS_MEDICAL_EQUIP)
icon_base = "medical"
/obj/item/taperoll/science
@@ -72,7 +72,7 @@ var/list/tape_roll_applications = list()
/obj/item/tape/science
name = "science tape"
desc = "A length of science tape. Better not cross it."
req_one_access = list(access_research)
req_one_access = list(ACCESS_RESEARCH)
icon_base = "science"
/obj/item/taperoll/engineering
@@ -86,7 +86,7 @@ var/list/tape_roll_applications = list()
name = "engineering tape"
desc = "A length of engineering tape. Better not cross it."
desc_info = "You can use a multitool on this tape to allow emergency shield generators to deploy shields on this tile."
req_one_access = list(access_engine, access_atmospherics)
req_one_access = list(ACCESS_ENGINE, ACCESS_ATMOSPHERICS)
icon_base = "engineering"
var/shield_marker = FALSE
@@ -116,7 +116,7 @@ var/list/tape_roll_applications = list()
/obj/item/tape/custodial
name = "custodial holographic tape"
desc = "A length of custodial tape. Better not cross it."
req_one_access = list(access_janitor)
req_one_access = list(ACCESS_JANITOR)
icon_base = "custodial"
/obj/item/taperoll/attack_self(mob/user as mob)
+2 -2
View File
@@ -40,7 +40,7 @@
recyclable = TRUE
/obj/item/shield/handle_shield(mob/user, var/on_back, var/damage, atom/damage_source = null, mob/attacker = null, def_zone = null, attack_text = "the attack")
var/shield_dir = on_back ? user.dir : reverse_dir[user.dir]
var/shield_dir = on_back ? user.dir : GLOB.reverse_dir[user.dir]
if(user.incapacitated() || !(check_shield_arc(user, shield_dir, damage_source, attacker)))
return FALSE
@@ -175,7 +175,7 @@
user.update_inv_r_hand()
/obj/item/shield/energy/handle_shield(mob/user, on_back, damage, atom/damage_source = null, mob/attacker = null, def_zone = null, attack_text = "the attack")
var/shield_dir = on_back ? user.dir : reverse_dir[user.dir]
var/shield_dir = on_back ? user.dir : GLOB.reverse_dir[user.dir]
if(!active || user.incapacitated() || !(check_shield_arc(user, shield_dir, damage_source, attacker)))
return FALSE
@@ -38,7 +38,7 @@
set src in usr
if(use_check_and_message(usr))
return 0
switch(input(usr, "Choose your bag strap style.", "[src]") as null|anything in backbagstrap)
switch(input(usr, "Choose your bag strap style.", "[src]") as null|anything in GLOB.backbagstrap)
if("Hidden")
alpha_mask = "hidden"
if("Thin")
@@ -464,7 +464,7 @@
can_hold = list(/obj/item/reagent_containers/glass/beaker/vial)
max_storage_space = 12 //The sum of the w_classes of all the items in this storage item.
storage_slots = 6
req_access = list(access_virology)
req_access = list(ACCESS_VIROLOGY)
/obj/item/storage/lockbox/vials/Initialize()
. = ..()
@@ -490,7 +490,7 @@
icon_state = "vialbox6"
locked = FALSE
starts_with = list(/obj/item/reagent_containers/glass/beaker/vial = 6)
req_access = list(access_forensics_lockers)
req_access = list(ACCESS_FORENSICS_LOCKERS)
/obj/item/storage/box/fancy/chocolate_box
name = "chocolate box"
@@ -10,7 +10,7 @@
w_class = ITEMSIZE_LARGE
max_w_class = ITEMSIZE_NORMAL
max_storage_space = 14 //The sum of the w_classes of all the items in this storage item.
req_access = list(access_armory)
req_access = list(ACCESS_ARMORY)
var/locked = 1
var/broken = 0
var/icon_locked = "lockbox+l"
@@ -77,7 +77,7 @@
/obj/item/storage/lockbox/loyalty
name = "lockbox of mind shield implants"
req_access = list(access_security)
req_access = list(ACCESS_SECURITY)
starts_with = list(
/obj/item/implantcase/mindshield = 3,
/obj/item/implanter/mindshield = 1
@@ -85,7 +85,7 @@
/obj/item/storage/lockbox/anti_augment
name = "lockbox of augmentation disrupter implants"
req_access = list(access_security)
req_access = list(ACCESS_SECURITY)
starts_with = list(
/obj/item/implantcase/anti_augment = 3,
/obj/item/implanter/anti_augment = 1
@@ -94,13 +94,13 @@
/obj/item/storage/lockbox/clusterbang
name = "lockbox of clusterbangs"
desc = "You have a bad feeling about opening this."
req_access = list(access_security)
req_access = list(ACCESS_SECURITY)
starts_with = list(/obj/item/grenade/flashbang/clusterbang = 1)
/obj/item/storage/lockbox/lawgiver
name = "weapons lockbox"
desc = "A high security weapons lockbox"
req_access = list(access_armory)
req_access = list(ACCESS_ARMORY)
starts_with = list(/obj/item/gun/energy/lawgiver = 1)
/obj/item/storage/lockbox/medal
@@ -110,7 +110,7 @@
item_state = "briefcase"
w_class = ITEMSIZE_NORMAL
max_w_class = ITEMSIZE_SMALL
req_access = list(access_captain)
req_access = list(ACCESS_CAPTAIN)
icon_locked = "medalbox+l"
icon_closed = "medalbox"
icon_broken = "medalbox+b"
+2 -2
View File
@@ -48,7 +48,7 @@
icon_state = "c-4[size]_1"
spawn(50)
explosion(get_turf(src), power, power*2, power*3, power*4, power*4)
for(var/dirn in cardinal) //This is to guarantee that C4 at least breaks down all immediately adjacent walls and doors.
for(var/dirn in GLOB.cardinal) //This is to guarantee that C4 at least breaks down all immediately adjacent walls and doors.
var/turf/simulated/wall/T = get_step(src,dirn)
if(locate(/obj/machinery/door/airlock) in T)
var/obj/machinery/door/airlock/D = locate() in T
@@ -150,7 +150,7 @@
user.visible_message("<b>[user]</b> blinks into nothingness!", SPAN_NOTICE("You jump into the nothing."))
user.forceMove(T)
spark(user, 3, alldirs)
spark(user, 3, GLOB.alldirs)
user.visible_message("<b>[user]</b> appears out of thin air!", SPAN_NOTICE("You successfully step into your destination."))
use()
+2 -2
View File
@@ -136,8 +136,8 @@
var/dir_offset = 0
if(target_turf != source_turf)
dir_offset = get_dir(source_turf, target_turf)
if(!(dir_offset in cardinal))
to_chat(user, "You cannot reach that from here.") // can only place stuck papers in cardinal directions, to)
if(!(dir_offset in GLOB.cardinal))
to_chat(user, "You cannot reach that from here.") // can only place stuck papers in GLOB.cardinal directions, to)
return // reduce papers around corners issue.
user.drop_from_inventory(src,source_turf)
@@ -76,7 +76,7 @@ Frequency:
if (sr)
src.temp += "<B>Located Beacons:</B><BR>"
for(var/obj/item/device/radio/beacon/W in teleportbeacons)
for(var/obj/item/device/radio/beacon/W in GLOB.teleportbeacons)
if (W.get_frequency() == src.frequency)
var/turf/tr = get_turf(W)
if (tr.z == sr.z && tr)
@@ -94,7 +94,7 @@ Frequency:
src.temp += "[W.code]-[dir2text(get_dir(sr, tr))]-[direct]<BR>"
src.temp += "<B>Extraneous Signals:</B><BR>"
for (var/obj/item/implant/tracking/W in implants)
for (var/obj/item/implant/tracking/W in GLOB.implants)
if (!W.implanted || !(istype(W.loc,/obj/item/organ/external) || ismob(W.loc)))
continue
else
@@ -245,9 +245,9 @@ Frequency:
var/old_pad = linked_pad
linked_pad = teleport_options[teleport_choice]
if(linked_pad)
destroyed_event.register(linked_pad, src, PROC_REF(pad_destroyed))
GLOB.destroyed_event.register(linked_pad, src, PROC_REF(pad_destroyed))
if(old_pad && linked_pad != old_pad)
destroyed_event.unregister(old_pad, src)
GLOB.destroyed_event.unregister(old_pad, src)
return
return ..()