Merge pull request #2054 from CHOMPStationBot/upstream-merge-10433

[MIRROR] [MIRROR] Linter Introduction + Cleanup
This commit is contained in:
Nadyr
2021-05-27 21:35:05 -04:00
committed by GitHub
244 changed files with 1749 additions and 1977 deletions

View File

@@ -3,3 +3,6 @@ macro_redefined = "off"
macro_undefined_no_definition = "off"
as_local_var = "off"
tmp_no_effect = "off"
[langserver]
dreamchecker = true

View File

@@ -146,7 +146,7 @@ Pipelines + Other Objects -> Pipe network
/obj/machinery/atmospherics/proc/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network)
// Used when two pipe_networks are combining
/obj/machinery/atmospherics/proc/return_network_air(datum/network/reference)
/obj/machinery/atmospherics/proc/return_network_air(datum/pipe_network/reference)
// Return a list of gas_mixture(s) in the object
// associated with reference pipe_network for use in rebuilding the networks gases list
// Is permitted to return null

View File

@@ -145,7 +145,7 @@
radio_controller.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA)
radio_connection = radio_controller.add_object(src, frequency, radio_filter = RADIO_ATMOSIA)
/obj/machinery/atmospherics/binary/passive_gate/proc/broadcast_status()
if(!radio_connection)
@@ -165,7 +165,7 @@
"sigtype" = "status"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
radio_connection.post_signal(src, signal, radio_filter = RADIO_ATMOSIA)
return 1

View File

@@ -121,7 +121,7 @@ Thus, the two variables affect pump operation are set in New():
radio_controller.remove_object(src, frequency)
frequency = new_frequency
if(frequency)
radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA)
radio_connection = radio_controller.add_object(src, frequency, radio_filter = RADIO_ATMOSIA)
/obj/machinery/atmospherics/binary/pump/proc/broadcast_status()
if(!radio_connection)
@@ -139,7 +139,7 @@ Thus, the two variables affect pump operation are set in New():
"sigtype" = "status"
)
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
radio_connection.post_signal(src, signal, radio_filter = RADIO_ATMOSIA)
return 1

View File

@@ -66,7 +66,7 @@ GLOBAL_LIST_EMPTY(shutoff_valves)
// Breadth-first search for any leaking pipes that we can directly see
/obj/machinery/atmospherics/valve/shutoff/proc/find_leaks()
var/obj/machinery/atmospherics/list/search = list()
var/list/obj/machinery/atmospherics/search = list()
// We're the leak!
if(!node1 || !node2)

View File

@@ -232,7 +232,7 @@
return 1
/obj/machinery/atmospherics/tvalve/return_network_air(datum/network/reference)
/obj/machinery/atmospherics/tvalve/return_network_air(datum/pipe_network/reference)
return null
/obj/machinery/atmospherics/tvalve/disconnect(obj/machinery/atmospherics/reference)

View File

@@ -201,7 +201,7 @@
return 1
/obj/machinery/atmospherics/valve/return_network_air(datum/network/reference)
/obj/machinery/atmospherics/valve/return_network_air(datum/pipe_network/reference)
return null
/obj/machinery/atmospherics/valve/disconnect(obj/machinery/atmospherics/reference)

View File

@@ -74,7 +74,6 @@ obj/machinery/atmospherics/mains_pipe
update_icon()
proc/burst()
..()
for(var/obj/machinery/atmospherics/pipe/mains_component/pipe in contents)
burst()

View File

@@ -0,0 +1,31 @@
// Interfaces for the SpacemanDMM linter, define'd to nothing when the linter
// is not in use.
// The SPACEMAN_DMM define is set by the linter and other tooling when it runs.
#ifdef SPACEMAN_DMM
#define RETURN_TYPE(X) set SpacemanDMM_return_type = X
#define SHOULD_CALL_PARENT(X) set SpacemanDMM_should_call_parent = X
#define UNLINT(X) SpacemanDMM_unlint(X)
#define SHOULD_NOT_OVERRIDE(X) set SpacemanDMM_should_not_override = X
#define SHOULD_NOT_SLEEP(X) set SpacemanDMM_should_not_sleep = X
#define SHOULD_BE_PURE(X) set SpacemanDMM_should_be_pure = X
#define PRIVATE_PROC(X) set SpacemanDMM_private_proc = X
#define PROTECTED_PROC(X) set SpacemanDMM_protected_proc = X
#define CAN_BE_REDEFINED(X) set SpacemanDMM_can_be_redefined = X
#define VAR_FINAL var/SpacemanDMM_final
#define VAR_PRIVATE var/SpacemanDMM_private
#define VAR_PROTECTED var/SpacemanDMM_protected
#else
#define RETURN_TYPE(X)
#define SHOULD_CALL_PARENT(X)
#define UNLINT(X) X
#define SHOULD_NOT_OVERRIDE(X)
#define SHOULD_NOT_SLEEP(X)
#define SHOULD_BE_PURE(X)
#define PRIVATE_PROC(X)
#define PROTECTED_PROC(X)
#define CAN_BE_REDEFINED(X)
#define VAR_FINAL var
#define VAR_PRIVATE var
#define VAR_PROTECTED var
#endif

View File

@@ -112,7 +112,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
// Macro defining the actual code applying our overlays lists to the BYOND overlays list. (I guess a macro for speed)
// TODO - I don't really like the location of this macro define. Consider it. ~Leshana
#define COMPILE_OVERLAYS(A)\
if (TRUE) {\
do {\
var/list/oo = A.our_overlays;\
var/list/po = A.priority_overlays;\
if(LAZYLEN(po)){\
@@ -130,4 +130,4 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
A.overlays.Cut();\
}\
A.flags &= ~OVERLAY_QUEUED;\
}
} while (FALSE)

View File

@@ -1,6 +1,6 @@
//Languages/species/whitelist.
GLOBAL_LIST_INIT(all_species, list())
GLOBAL_LIST_INIT(all_languages, list())
GLOBAL_LIST_EMPTY_TYPED(all_species, /datum/species)
GLOBAL_LIST_EMPTY_TYPED(all_languages, /datum/language)
GLOBAL_LIST_INIT(language_name_conflicts, list())
GLOBAL_LIST_INIT(language_keys, list()) // Table of say codes for all languages
GLOBAL_LIST_INIT(language_key_conflicts, list())

View File

@@ -10,7 +10,7 @@
// Otherwise add it and all subtypes that exist on the map to our grand list
for(var/areapath in typesof(parentpath))
var/area/A = locate(areapath) // Check if it actually exists
if(istype(A) && A.z in using_map.player_levels)
if(istype(A) && (A.z in using_map.player_levels))
grand_list_of_areas += A
return grand_list_of_areas

View File

@@ -27,6 +27,7 @@
return max_z
/proc/get_area(atom/A)
RETURN_TYPE(/area)
if(isarea(A))
return A
var/turf/T = get_turf(A)

View File

@@ -202,10 +202,12 @@
qdel(query_insert)
return
qdel(query_insert)
//speaker.dialogue_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>DEADSAY:</u> - <span style=\"color:green\">[text]</span>"
//GLOB.round_text_log += "<font size=1><span style=\"color:#7e668c\"><b>([time_stamp()])</b> (<b>[src]/[speaker.client]</b>) <u>DEADSAY:</u> - [text]</span></font>"
//GLOB.round_text_log += "<font size=1><span style=\"color:#7e668c\"><b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>DEADSAY:</u> - [text]</span></font>"
//CHOMPEdit End
/proc/log_ghostemote(text, mob/speaker)
if (config.log_emote)
WRITE_LOG(diary, "DEADEMOTE: [speaker.simple_info_line()]: [html_decode(text)]")

View File

@@ -19,11 +19,9 @@
if (!( istext(HTMLstring) ))
CRASH("Given non-text argument!")
return
else
if (length(HTMLstring) != 7)
CRASH("Given non-HTML argument!")
return
var/textr = copytext(HTMLstring, 2, 4)
var/textg = copytext(HTMLstring, 4, 6)
var/textb = copytext(HTMLstring, 6, 8)
@@ -40,7 +38,6 @@
if (length(textb) < 2)
textr = text("0[]", textb)
return text("#[][][]", textr, textg, textb)
return
//Returns the middle-most value
/proc/dd_range(var/low, var/high, var/num)
@@ -1130,8 +1127,6 @@ proc/is_hot(obj/item/W as obj)
else
return 0
return 0
//Whether or not the given item counts as sharp in terms of dealing damage
/proc/is_sharp(obj/O as obj)
if(!O)

View File

@@ -11,7 +11,8 @@
#define RANDOM_BLOOD_TYPE pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+")
// #define to_chat(target, message) target << message Not anymore!
#define to_chat to_chat_filename=__FILE__;to_chat_line=__LINE__;to_chat_src=src;__to_chat
//#define to_chat to_chat_filename=__FILE__;to_chat_line=__LINE__;to_chat_src=src;__to_chat
#define to_chat __to_chat
#define to_world(message) to_chat(world, message)
#define to_world_log(message) world.log << message
// TODO - Baystation has this log to crazy places. For now lets just world.log, but maybe look into it later.

View File

@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(chat)
priority = FIRE_PRIORITY_CHAT
init_order = INIT_ORDER_CHAT
var/list/msg_queue = list()
var/list/list/msg_queue = list() //List of lists
/datum/controller/subsystem/chat/Initialize(timeofday)
init_vchat()

View File

@@ -38,7 +38,7 @@ SUBSYSTEM_DEF(events)
return
for(var/i = EVENT_LEVEL_MUNDANE to EVENT_LEVEL_MAJOR)
var/list/datum/event_container/EC = event_containers[i]
var/datum/event_container/EC = event_containers[i]
EC.process()
/datum/controller/subsystem/events/stat_entry()

View File

@@ -32,6 +32,10 @@ SUBSYSTEM_DEF(persistence)
if(!A || (A.flags & AREA_FLAG_IS_NOT_PERSISTENT))
return
// if((!T.z in GLOB.using_map.station_levels) || !initialized)
if(!(T.z in using_map.station_levels))
return
if(!(T.z in using_map.persist_levels))
return
@@ -57,4 +61,4 @@ SUBSYSTEM_DEF(persistence)
dat += "</table>"
var/datum/browser/popup = new(user, "admin_persistence", "Persistence Data")
popup.set_content(jointext(dat, null))
popup.open()
popup.open()

View File

@@ -33,7 +33,7 @@ SUBSYSTEM_DEF(planets)
z_to_planet[Z] = NP
// DO NOT CALL THIS DIRECTLY UNLESS IT'S IN INITIALIZE,
// USE turf/simulated/proc/make_indoors() and\
// USE turf/simulated/proc/make_indoors() and
// tyrf/simulated/proc/make_outdoors()
/datum/controller/subsystem/planets/proc/addTurf(var/turf/T)
if(z_to_planet.len >= T.z && z_to_planet[T.z])

View File

@@ -314,7 +314,7 @@ var/global/datum/controller/subsystem/ticker/ticker
switch(M.z)
if(0) //inside a crate or something
var/turf/T = get_turf(M)
if(T && T.z in using_map.station_levels) //we don't use M.death(0) because it calls a for(/mob) loop and
if(T && (T.z in using_map.station_levels)) //we don't use M.death(0) because it calls a for(/mob) loop and
M.health = 0
M.set_stat(DEAD)
if(1) //on a z-level 1 turf.

View File

@@ -159,8 +159,7 @@ SUBSYSTEM_DEF(timer)
if (timer.timeToRun < head_offset)
bucket_resolution = null //force bucket recreation
CRASH("[i] Invalid timer state: Timer in long run queue with a time to run less then head_offset. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
crash_with("[i] Invalid timer state: Timer in long run queue with a time to run less then head_offset. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
if (timer.callBack && !timer.spent)
timer.callBack.InvokeAsync()
spent += timer
@@ -171,7 +170,7 @@ SUBSYSTEM_DEF(timer)
if (timer.timeToRun < head_offset + TICKS2DS(practical_offset-1))
bucket_resolution = null //force bucket recreation
CRASH("[i] Invalid timer state: Timer in long run queue that would require a backtrack to transfer to short run queue. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
crash_with("[i] Invalid timer state: Timer in long run queue that would require a backtrack to transfer to short run queue. [get_timer_debug_string(timer)] world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")
if (timer.callBack && !timer.spent)
timer.callBack.InvokeAsync()
spent += timer

View File

@@ -22,10 +22,10 @@ SUBSYSTEM_DEF(transcore)
var/cost_backups = 0
var/cost_implants = 0
var/datum/transhuman/mind_record/list/backed_up = list() // All known mind records, indexed by MR.mindname/mind.name
var/datum/transhuman/mind_record/list/has_left = list() // Why do we even have this?
var/datum/transhuman/body_record/list/body_scans = list() // All known body records, indexed by BR.mydna.name
var/obj/item/weapon/implant/backup/list/implants = list() // All OPERATING implants that are being ticked
var/list/datum/transhuman/mind_record/backed_up = list() // All known mind records, indexed by MR.mindname/mind.name
var/list/datum/transhuman/mind_record/has_left = list() // Why do we even have this?
var/list/datum/transhuman/body_record/body_scans = list() // All known body records, indexed by BR.mydna.name
var/list/obj/item/weapon/implant/backup/implants = list() // All OPERATING implants that are being ticked
var/list/current_run = list()
@@ -115,14 +115,14 @@ SUBSYSTEM_DEF(transcore)
/datum/controller/subsystem/transcore/Recover()
if (istype(SStranscore.body_scans))
for(var/N in SStranscore.body_scans[N])
if(N) body_scans[N] = SStranscore.body_scans[N]
for(var/N in SStranscore.body_scans)
if(N && SStranscore.body_scans[N]) body_scans[N] = SStranscore.body_scans[N]
if(SStranscore.core_dumped)
core_dumped = TRUE
can_fire = FALSE
else if (istype(SStranscore.backed_up))
for(var/N in SStranscore.backed_up[N])
if(N) backed_up[N] = SStranscore.backed_up[N]
for(var/N in SStranscore.backed_up)
if(N && SStranscore.backed_up[N]) backed_up[N] = SStranscore.backed_up[N]
/datum/controller/subsystem/transcore/proc/m_backup(var/datum/mind/mind, var/obj/item/device/nif/nif, var/one_time = FALSE)
ASSERT(mind)

View File

@@ -31,7 +31,7 @@ SUBSYSTEM_DEF(xenoarch)
/datum/controller/subsystem/xenoarch/proc/SetupXenoarch()
for(var/turf/simulated/mineral/M in world)
if(!M.density || M.z in using_map.xenoarch_exempt_levels)
if(!M.density || (M.z in using_map.xenoarch_exempt_levels))
continue
if(isnull(M.geologic_data))

View File

@@ -194,7 +194,7 @@
/atom/proc/Beam(atom/BeamTarget,icon_state="b_beam",icon='icons/effects/beam.dmi',time=50, maxdistance=10,beam_type=/obj/effect/ebeam,beam_sleep_time=3,beam_color = null)
/atom/proc/Beam(atom/BeamTarget, icon_state="b_beam", icon='icons/effects/beam.dmi', time=50, maxdistance=10, beam_type=/obj/effect/ebeam, beam_sleep_time=3, beam_color = null)
var/datum/beam/newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type,beam_sleep_time,beam_color)
spawn(0)
newbeam.Start()

View File

@@ -67,7 +67,7 @@ datum/category_group/dd_SortValue()
*****************/
/datum/category_item
var/name = ""
var/list/datum/category_group/category // The group this item belongs to
var/datum/category_group/category // The group this item belongs to
/datum/category_item/New(var/datum/category_group/cg)
..()

View File

@@ -333,7 +333,7 @@
* * datum/component/c_type The typepath of the component you want to get a reference to
*/
/datum/proc/GetComponent(datum/component/c_type)
// RETURN_TYPE(c_type)
RETURN_TYPE(c_type)
if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE)
stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]")
var/list/dc = datum_components
@@ -353,7 +353,7 @@
* * datum/component/c_type The typepath of the component you want to get a reference to
*/
/datum/proc/GetExactComponent(datum/component/c_type)
// RETURN_TYPE(c_type)
RETURN_TYPE(c_type)
if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE)
stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]")
var/list/dc = datum_components

View File

@@ -357,7 +357,7 @@
container.close_all()
qdel(DL)
/datum/component/personal_crafting/proc/component_ui_interact(atom/movable/screen/craft/image, location, control, params, user)
/datum/component/personal_crafting/proc/component_ui_interact(/obj/screen/craft/image, location, control, params, user)
// SIGNAL_HANDLER
if(user == parent)

View File

@@ -8,7 +8,7 @@
var/list/active_timers //for SStimer
var/list/datum_components //for /datum/components
var/list/comp_lookup
var/list/signal_procs
var/list/list/signal_procs // List of lists
var/signal_enabled = FALSE
var/weakref/weakref // Holder of weakref instance pointing to this datum
var/datum_flags = NONE

View File

@@ -72,7 +72,7 @@
if(!usr || !result || result == "---Components---" || result == "---Elements---")
return
if(QDELETED(src))
to_chat(usr, "That thing doesn't exist anymore!", confidential = TRUE)
to_chat(usr, "That thing doesn't exist anymore!")
return
var/list/lst = usr.client.get_callproc_args()
if(!lst)

View File

@@ -18,7 +18,7 @@
/// Activates the functionality defined by the element on the given target datum
/datum/element/proc/Attach(datum/target)
// SHOULD_CALL_PARENT(1)
SHOULD_CALL_PARENT(1)
if(type == /datum/element)
return ELEMENT_INCOMPATIBLE
SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src)
@@ -28,7 +28,7 @@
/// Deactivates the functionality defines by the element on the given datum
/datum/element/proc/Detach(datum/source, force)
SEND_SIGNAL(source, COMSIG_ELEMENT_DETACH, src)
// SHOULD_CALL_PARENT(1)
SHOULD_CALL_PARENT(1)
UnregisterSignal(source, COMSIG_PARENT_QDELETING)
/datum/element/Destroy(force)

View File

@@ -157,7 +157,6 @@
if(!(letter in morse_alphabet))
CRASH("Encountered invalid character in morse sequence \"[letter]\".")
return
// So I heard you like sequences...
// Play a sequence of sounds while inside the current iteration of the outer sequence.

View File

@@ -239,8 +239,8 @@
var/mob/def_target = null
var/objective_list[] = list(/datum/objective/assassinate, /datum/objective/protect, /datum/objective/debrain)
if (objective&&(objective.type in objective_list) && objective:target)
def_target = objective:target.current
if (objective&&(objective.type in objective_list) && objective.target)
def_target = objective.target.current
var/new_target = input("Select target:", "Objective target", def_target) as null|anything in possible_targets
if (!new_target) return

View File

@@ -61,11 +61,11 @@ var/repository/decls/decls_repository = new()
fetched_decl_subtypes[decl_prototype] = .
/decl/proc/Initialize()
//SHOULD_CALL_PARENT(TRUE)
//SHOULD_NOT_SLEEP(TRUE)
SHOULD_CALL_PARENT(TRUE)
SHOULD_NOT_SLEEP(TRUE)
return
/decl/Destroy()
//SHOULD_CALL_PARENT(FALSE)
SHOULD_CALL_PARENT(FALSE)
crash_with("Prevented attempt to delete a decl instance: [log_info_line(src)]")
return QDEL_HINT_LETMELIVE // Prevents decl destruction

View File

@@ -39,7 +39,7 @@ length to avoid portals or something i guess?? Not that they're counted right no
PriorityQueue
var/list/queue
var/proc/comparison_function
var/comparison_function
New(compare)
queue = list()
@@ -123,7 +123,7 @@ PathNode
proc/PathWeightCompare(PathNode/a, PathNode/b)
return a.estimated_cost - b.estimated_cost
proc/AStar(var/start, var/end, var/proc/adjacent, var/proc/dist, var/max_nodes, var/max_node_depth = 30, var/min_target_dist = 0, var/min_node_dist, var/id, var/datum/exclude)
proc/AStar(var/start, var/end, var/adjacent, var/dist, var/max_nodes, var/max_node_depth = 30, var/min_target_dist = 0, var/min_node_dist, var/id, var/datum/exclude)
var/PriorityQueue/open = new /PriorityQueue(/proc/PathWeightCompare)
var/list/closed = list()
var/list/path

View File

@@ -68,7 +68,7 @@ var/datum/antagonist/borer/borers
/datum/antagonist/borer/proc/get_vents()
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
if(!temp_vent.welded && temp_vent.network && (temp_vent.loc.z in using_map.station_levels))
if(temp_vent.network.normal_members.len > 50)
vents += temp_vent
return vents

View File

@@ -32,7 +32,7 @@ var/datum/antagonist/xenos/xenomorphs
/datum/antagonist/xenos/proc/get_vents()
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
if(!temp_vent.welded && temp_vent.network && (temp_vent.loc.z in using_map.station_levels))
if(temp_vent.network.normal_members.len > 50)
vents += temp_vent
return vents

View File

@@ -179,7 +179,7 @@
/datum/antagonist/proc/draft_antagonist(var/datum/mind/player)
//Check if the player can join in this antag role, or if the player has already been given an antag role.
if(!can_become_antag(player) || player.assigned_role in roundstart_restricted)
if(!can_become_antag(player) || (player.assigned_role in roundstart_restricted))
log_debug("[player.key] was selected for [role_text] by lottery, but is not allowed to be that role.")
return 0
if(player.special_role)

View File

@@ -47,7 +47,7 @@ var/datum/antagonist/highlander/highlanders
var/obj/item/weapon/card/id/W = new(player)
W.name = "[player.real_name]'s ID Card"
W.icon_state = "centcom"
W.access = get_all_station_access().Copy
W.access = get_all_station_access().Copy()
W.access |= get_all_centcom_access()
W.assignment = "Highlander"
W.registered_name = player.real_name

View File

@@ -54,7 +54,7 @@ var/datum/antagonist/rogue_ai/malf
if(!istype(A))
error("Non-AI mob designated malf AI! Report this.")
to_world("##ERROR: Non-AI mob designated malf AI! Report this.")
return 0
return
A.setup_for_malf()
A.laws = new /datum/ai_laws/nanotrasen/malfunction

View File

@@ -27,7 +27,7 @@
* Is the gene active in this mob's DNA?
*/
/datum/dna/gene/proc/is_active(var/mob/M)
return M.active_genes && type in M.active_genes
return (M.active_genes && (type in M.active_genes))
// Return 1 if we can activate.
// HANDLE MUTCHK_FORCED HERE!

View File

@@ -164,7 +164,6 @@
return "hulk_[fat]_s"
else
return "hulk_[g]_s"
return 0
OnMobLife(var/mob/living/carbon/human/M)
if(!istype(M)) return

View File

@@ -111,7 +111,7 @@ var/hadevent = 0
//world << sound('sound/AI/aliens.ogg')
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
if(!temp_vent.welded && temp_vent.network && (temp_vent.loc.z in using_map.station_levels))
if(temp_vent.network.normal_members.len > 50) // Stops Aliens getting stuck in small networks. See: Security, Virology
vents += temp_vent

View File

@@ -106,7 +106,7 @@ The "dust" will damage the hull of the station causin minor hull breaches.
if(life <= 0)
walk(src,0)
qdel(src)
return 0
return
return

View File

@@ -194,7 +194,7 @@
sleep(300)
// Hack all APCs, including those built during hack sequence.
for(var/obj/machinery/power/apc/A in GLOB.apcs)
if((!A.hacker || A.hacker != src) && !A.aidisabled && A.z in using_map.station_levels)
if((!A.hacker || A.hacker != src) && !A.aidisabled && (A.z in using_map.station_levels))
A.ai_hack(src)
@@ -206,4 +206,4 @@
user.verbs += new/datum/game_mode/malfunction/verb/ai_destroy_station()
// END ABILITY VERBS
// END ABILITY VERBS

View File

@@ -53,7 +53,7 @@
continue
if(L.invisibility > owner.see_invisible) // Don't target ourselves or people we can't see.
continue
if(!L in viewers(owner)) // So we don't shoot at walls if someone is hiding behind one.
if(!(L in viewers(owner))) // So we don't shoot at walls if someone is hiding behind one.
continue
if(!L.stat) // Don't want to target dead people or SSDs.
chosen_target = L

View File

@@ -104,6 +104,7 @@
/var/list/priv_all_access
/proc/get_all_accesses()
RETURN_TYPE(/list)
if(!priv_all_access)
priv_all_access = get_access_ids()
@@ -111,6 +112,7 @@
/var/list/priv_station_access
/proc/get_all_station_access()
RETURN_TYPE(/list)
if(!priv_station_access)
priv_station_access = get_access_ids(ACCESS_TYPE_STATION)
@@ -118,6 +120,7 @@
/var/list/priv_centcom_access
/proc/get_all_centcom_access()
RETURN_TYPE(/list)
if(!priv_centcom_access)
priv_centcom_access = get_access_ids(ACCESS_TYPE_CENTCOM)
@@ -125,6 +128,7 @@
/var/list/priv_syndicate_access
/proc/get_all_syndicate_access()
RETURN_TYPE(/list)
if(!priv_syndicate_access)
priv_syndicate_access = get_access_ids(ACCESS_TYPE_SYNDICATE)
@@ -132,6 +136,7 @@
/var/list/priv_private_access
/proc/get_all_private_access()
RETURN_TYPE(/list)
if(!priv_private_access)
priv_private_access = get_access_ids(ACCESS_TYPE_PRIVATE)

View File

@@ -108,7 +108,7 @@ var/global/datum/controller/occupations/job_master
Debug("FOC is_job_whitelisted failed, Player: [player]")
continue
//VOREStation Code End
if(flag && (!player.client.prefs.be_special & flag))
if(flag && !(player.client.prefs.be_special & flag))
Debug("FOC flag failed, Player: [player], Flag: [flag], ")
continue
if(player.client.prefs.GetJobDepartment(job, level) & job.flag)

View File

@@ -486,7 +486,7 @@
if(unknown_body)
imp += "Unknown body present:"
if(!AN && !open && !infected & !imp)
if(!AN && !open && !infected && !imp)
AN = "None:"
if(!(e.status & ORGAN_DESTROYED))
dat += "<td>[e.name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured][o_dead]</td>"

View File

@@ -556,7 +556,7 @@
"intdefault"= (info["internal"] == 0),
))
data["scrubbers"] = list()
var/list/scrubbers = list()
for(var/id_tag in alarm_area.air_scrub_names)
var/long_name = alarm_area.air_scrub_names[id_tag]
var/list/info = alarm_area.air_scrub_info[id_tag]
@@ -570,12 +570,13 @@
"panic" = info["panic"],
"filters" = list()
))
data["scrubbers"][data["scrubbers"].len]["filters"] += list(list("name" = "Oxygen", "command" = "o2_scrub", "val" = info["filter_o2"]))
data["scrubbers"][data["scrubbers"].len]["filters"] += list(list("name" = "Nitrogen", "command" = "n2_scrub", "val" = info["filter_n2"]))
data["scrubbers"][data["scrubbers"].len]["filters"] += list(list("name" = "Carbon Dioxide", "command" = "co2_scrub","val" = info["filter_co2"]))
data["scrubbers"][data["scrubbers"].len]["filters"] += list(list("name" = "Toxin" , "command" = "tox_scrub","val" = info["filter_phoron"]))
data["scrubbers"][data["scrubbers"].len]["filters"] += list(list("name" = "Nitrous Oxide", "command" = "n2o_scrub","val" = info["filter_n2o"]))
data["scrubbers"][data["scrubbers"].len]["filters"] += list(list("name" = "Fuel", "command" = "fuel_scrub","val" = info["filter_fuel"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Oxygen", "command" = "o2_scrub", "val" = info["filter_o2"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Nitrogen", "command" = "n2_scrub", "val" = info["filter_n2"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Carbon Dioxide", "command" = "co2_scrub","val" = info["filter_co2"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Toxin" , "command" = "tox_scrub","val" = info["filter_phoron"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Nitrous Oxide", "command" = "n2o_scrub","val" = info["filter_n2o"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Fuel", "command" = "fuel_scrub","val" = info["filter_fuel"]))
data["scrubbers"] = scrubbers
var/list/modes = list()
data["mode"] = mode

View File

@@ -33,15 +33,13 @@
ui.open()
/obj/machinery/computer/area_atmos/tgui_data(mob/user)
var/list/data = list()
data["scrubbers"] = list()
var/list/working = list()
for(var/id in connectedscrubbers)
var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber = connectedscrubbers[id]
if(!validscrubber(scrubber))
connectedscrubbers -= scrubber
continue
data["scrubbers"].Add(list(list(
working.Add(list(list(
"id" = id,
"name" = scrubber.name,
"on" = scrubber.on,
@@ -50,8 +48,8 @@
"load" = scrubber.last_power_draw,
"area" = get_area(scrubber),
)))
return data
return list("scrubbers" = working)
/obj/machinery/computer/area_atmos/tgui_act(action, params)
if(..())

View File

@@ -70,7 +70,7 @@
/obj/machinery/camera/Destroy()
if(isMotion())
unsense_proximity(callback = .HasProximity)
unsense_proximity(callback = /atom/proc/HasProximity)
deactivate(null, 0) //kick anyone viewing out
if(assembly)
qdel(assembly)
@@ -361,7 +361,6 @@
for(var/obj/machinery/camera/C in oview(4, M))
if(C.can_use()) // check if camera disabled
return C
break
return null
/proc/near_range_camera(var/mob/M)
@@ -369,7 +368,6 @@
for(var/obj/machinery/camera/C in range(4, M))
if(C.can_use()) // check if camera disabled
return C
break
return null

View File

@@ -232,7 +232,7 @@ var/global/list/engineering_networks = list(
assembly.upgrades.Add(new /obj/item/device/assembly/prox_sensor(assembly))
setPowerUsage()
START_MACHINE_PROCESSING(src)
sense_proximity(callback = .HasProximity)
sense_proximity(callback = /atom/proc/HasProximity)
update_coverage()
/obj/machinery/camera/proc/setPowerUsage()

View File

@@ -6,7 +6,7 @@
/mob/living/silicon/ai/var/stored_locations[0]
/proc/InvalidPlayerTurf(turf/T as turf)
return !(T && T.z in using_map.player_levels)
return !(T?.z in using_map.player_levels)
/mob/living/silicon/ai/proc/get_camera_list()
if(src.stat == 2)

View File

@@ -23,6 +23,7 @@
/obj/item/clothing/head/cowboy_hat/small = 2,
/obj/item/toy/stickhorse = 2
)
var/list/special_prizes = list() // Holds instanced objects, intended for admins to shove surprises inside or something.
/obj/machinery/computer/arcade/Initialize()
. = ..()
@@ -35,17 +36,18 @@
return INITIALIZE_HINT_QDEL
/obj/machinery/computer/arcade/proc/prizevend()
if(!(contents-circuit).len)
if(LAZYLEN(special_prizes)) // Downstream wanted the 'win things inside contents sans circuitboard' feature kept.
var/atom/movable/AM = pick_n_take(special_prizes)
AM.forceMove(get_turf(src))
special_prizes -= AM
else if(LAZYLEN(prizes))
var/prizeselect = pickweight(prizes)
new prizeselect(src.loc)
if(istype(prizeselect, /obj/item/clothing/suit/syndicatefake)) //Helmet is part of the suit
new /obj/item/clothing/head/syndicatefake(src.loc)
else
var/atom/movable/prize = pick(contents-circuit)
prize.loc = src.loc
/obj/machinery/computer/arcade/attack_ai(mob/user as mob)
return attack_hand(user)

View File

@@ -14,7 +14,7 @@ var/global/list/minor_air_alarms = list()
/obj/machinery/computer/atmos_alert/New()
..()
atmosphere_alarm.register_alarm(src, /obj/machinery/computer/station_alert/update_icon)
atmosphere_alarm.register_alarm(src, /atom/proc/update_icon)
/obj/machinery/computer/atmos_alert/Destroy()
atmosphere_alarm.unregister_alarm(src)

View File

@@ -98,18 +98,19 @@
data["linkedServer"]["active"] = linkedServer.active
data["linkedServer"]["broke"] = linkedServer.stat & (NOPOWER|BROKEN)
data["linkedServer"]["pda_msgs"] = list()
var/list/pda_msgs = list()
for(var/datum/data_pda_msg/pda in linkedServer.pda_msgs)
data["linkedServer"]["pda_msgs"].Add(list(list(
pda_msgs.Add(list(list(
"ref" = "\ref[pda]",
"sender" = pda.sender,
"recipient" = pda.recipient,
"message" = pda.message,
)))
data["linkedServer"]["pda_msgs"] = pda_msgs
data["linkedServer"]["rc_msgs"] = list()
var/list/rc_msgs = list()
for(var/datum/data_rc_msg/rc in linkedServer.rc_msgs)
data["linkedServer"]["rc_msgs"].Add(list(list(
rc_msgs.Add(list(list(
"ref" = "\ref[rc]",
"sender" = rc.send_dpt,
"recipient" = rc.rec_dpt,
@@ -118,15 +119,17 @@
"id_auth" = rc.id_auth,
"priority" = rc.priority,
)))
data["linkedServer"]["rc_msgs"] = rc_msgs
var/spamIndex = 0
data["linkedServer"]["spamFilter"] = list()
var/list/spamfilter = list()
for(var/token in linkedServer.spamfilter)
spamIndex++
data["linkedServer"]["spamFilter"].Add(list(list(
spamfilter.Add(list(list(
"index" = spamIndex,
"token" = token,
)))
data["linkedServer"]["spamFilter"] = spamfilter
//Get out list of viable PDAs
var/list/obj/item/device/pda/sendPDAs = list()

View File

@@ -30,11 +30,8 @@
ui.open()
/obj/machinery/computer/prisoner/tgui_data(mob/user)
var/list/data = list()
data["locked"] = !screen
data["chemImplants"] = list()
data["trackImplants"] = list()
var/list/chemImplants = list()
var/list/trackImplants = list()
if(screen)
for(var/obj/item/weapon/implant/chem/C in GLOB.all_chem_implants)
var/turf/T = get_turf(C)
@@ -42,7 +39,7 @@
continue
if(!C.implanted)
continue
data["chemImplants"].Add(list(list(
chemImplants.Add(list(list(
"host" = C.imp_in,
"units" = C.reagents.total_volume,
"ref" = "\ref[C]"
@@ -59,14 +56,14 @@
loc_display = T.loc
if(track.malfunction)
loc_display = pick(teleportlocs)
data["trackImplants"].Add(list(list(
trackImplants.Add(list(list(
"host" = L,
"ref" = "\ref[track]",
"id" = "[track.id]",
"loc" = "[loc_display]",
)))
return data
return list("locked" = !screen, "chemImplants" = chemImplants, "trackImplants" = trackImplants)
/obj/machinery/computer/prisoner/tgui_act(action, list/params)

View File

@@ -19,7 +19,7 @@
/obj/machinery/computer/station_alert/Initialize()
alarm_monitor = new monitor_type(src)
alarm_monitor.register_alarm(src, /obj/machinery/computer/station_alert/update_icon)
alarm_monitor.register_alarm(src, /atom/proc/update_icon)
. = ..()
/obj/machinery/computer/station_alert/Destroy()

View File

@@ -1,257 +1,6 @@
//Config stuff
#define SYNDICATE_ELITE_MOVETIME 600 //Time to station is milliseconds. 60 seconds, enough time for everyone to be on the shuttle before it leaves.
#define SYNDICATE_ELITE_STATION_AREATYPE "/area/shuttle/syndicate_elite/station" //Type of the spec ops shuttle area for station
#define SYNDICATE_ELITE_DOCK_AREATYPE "/area/shuttle/syndicate_elite/mothership" //Type of the spec ops shuttle area for dock
var/syndicate_elite_shuttle_moving_to_station = 0
var/syndicate_elite_shuttle_moving_to_mothership = 0
var/syndicate_elite_shuttle_at_station = 0
var/syndicate_elite_shuttle_can_send = 1
var/syndicate_elite_shuttle_time = 0
var/syndicate_elite_shuttle_timeleft = 0
/obj/machinery/computer/syndicate_elite_shuttle
name = "elite syndicate squad shuttle control console"
icon_keyboard = "syndie_key"
icon_screen = "syndishuttle"
light_color = "#00ffff"
req_access = list(access_cent_specops)
var/temp = null
var/hacked = 0
var/allowedtocall = 0
/proc/syndicate_elite_process()
var/area/syndicate_mothership/control/syndicate_ship = locate()//To find announcer. This area should exist for this proc to work.
var/area/syndicate_mothership/elite_squad/elite_squad = locate()//Where is the specops area located?
var/mob/living/silicon/decoy/announcer = locate() in syndicate_ship//We need a fake AI to announce some stuff below. Otherwise it will be wonky.
var/message_tracker[] = list(0,1,2,3,5,10,30,45)//Create a a list with potential time values.
var/message = "THE SYNDICATE ELITE SHUTTLE IS PREPARING FOR LAUNCH"//Initial message shown.
if(announcer)
announcer.say(message)
// message = "ARMORED SQUAD TAKE YOUR POSITION ON GRAVITY LAUNCH PAD"
// announcer.say(message)
while(syndicate_elite_shuttle_time - world.timeofday > 0)
var/ticksleft = syndicate_elite_shuttle_time - world.timeofday
if(ticksleft > 1e5)
syndicate_elite_shuttle_time = world.timeofday // midnight rollover
syndicate_elite_shuttle_timeleft = (ticksleft / 10)
//All this does is announce the time before launch.
if(announcer)
var/rounded_time_left = round(syndicate_elite_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)
message = "ALERT: TAKEOFF"
announcer.say(message)
message_tracker -= rounded_time_left//Remove the number from the list so it won't be called again next cycle.
//Should call all the numbers but lag could mean some issues. Oh well. Not much I can do about that.
sleep(5)
syndicate_elite_shuttle_moving_to_station = 0
syndicate_elite_shuttle_moving_to_mothership = 0
syndicate_elite_shuttle_at_station = 1
if (syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return
if (!syndicate_elite_can_move())
to_chat(usr, "<span class='warning'>The Syndicate Elite shuttle is unable to leave.</span>")
return
sleep(600)
/*
//Begin Marauder launchpad.
spawn(0)//So it parallel processes it.
for(var/obj/machinery/door/poddoor/M in elite_squad)
switch(M.id)
if("ASSAULT0")
spawn(10)//1 second delay between each.
M.open()
if("ASSAULT1")
spawn(20)
M.open()
if("ASSAULT2")
spawn(30)
M.open()
if("ASSAULT3")
spawn(40)
M.open()
sleep(10)
var/spawn_marauder[] = new()
for(var/obj/effect/landmark/L in landmarks_list)
if(L.name == "Marauder Entry")
spawn_marauder.Add(L)
for(var/obj/effect/landmark/L in landmarks_list)
if(L.name == "Marauder Exit")
var/obj/effect/portal/P = new(L.loc)
P.invisibility = 101//So it is not seen by anyone.
P.failchance = 0//So it has no fail chance when teleporting.
P.target = pick(spawn_marauder)//Where the marauder will arrive.
spawn_marauder.Remove(P.target)
sleep(10)
for(var/obj/machinery/mass_driver/M in elite_squad)
switch(M.id)
if("ASSAULT0")
spawn(10)
M.drive()
if("ASSAULT1")
spawn(20)
M.drive()
if("ASSAULT2")
spawn(30)
M.drive()
if("ASSAULT3")
spawn(40)
M.drive()
sleep(50)//Doors remain open for 5 seconds.
for(var/obj/machinery/door/poddoor/M in elite_squad)
switch(M.id)//Doors close at the same time.
if("ASSAULT0")
spawn(0)
M.close()
if("ASSAULT1")
spawn(0)
M.close()
if("ASSAULT2")
spawn(0)
M.close()
if("ASSAULT3")
spawn(0)
M.close()
*/
elite_squad.readyreset()//Reset firealarm after the team launched.
//End Marauder launchpad.
/*
var/obj/explosionmarker = locate("Syndicate Breach Area")
if(explosionmarker)
var/turf/simulated/T = explosionmarker.loc
if(T)
explosion(T,4,6,8,10,0)
sleep(40)
// proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1)
*/
var/area/start_location = locate(/area/shuttle/syndicate_elite/mothership)
var/area/end_location = locate(/area/shuttle/syndicate_elite/station)
var/list/dstturfs = list()
var/throwy = world.maxy
for(var/turf/T in end_location)
dstturfs = T
if(T.y < throwy)
throwy = T.y
// hey you, get out of the way!
for(var/turf/T in dstturfs)
// find the turf to move things to
var/turf/D = locate(T.x, throwy - 1, 1)
//var/turf/E = get_step(D, SOUTH)
for(var/atom/movable/AM as mob|obj in T)
AM.Move(D)
if(istype(T, /turf/simulated))
qdel(T)
for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area...
bug.gib()
for(var/mob/living/simple_mob/pest in end_location) // And for the other kind of bug...
pest.gib()
start_location.move_contents_to(end_location)
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
to_chat(M, "<span class='warning'>You have arrived to [station_name()]. Commence operation!</span>")
/proc/syndicate_elite_can_move()
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
else return 1
/obj/machinery/computer/syndicate_elite_shuttle/attackby(I as obj, user as mob)
return attack_hand(user)
/obj/machinery/computer/syndicate_elite_shuttle/attack_ai(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/syndicate_elite_shuttle/emag_act(var/remaining_charges, var/mob/user)
to_chat(user, "<span class='notice'>The electronic systems in this console are far too advanced for your primitive hacking peripherals.</span>")
/obj/machinery/computer/syndicate_elite_shuttle/attack_hand(var/mob/user as mob)
if(!allowed(user))
to_chat(user, "<span class='warning'>Access Denied.</span>")
return
// if (sent_syndicate_strike_team == 0)
// to_chat(usr, "<span class='warning'>The strike team has not yet deployed.</span>")
// return
if(..())
return
user.set_machine(src)
var/dat
if (temp)
dat = temp
else
dat = {"<BR><B>Special Operations Shuttle</B><HR>
\nLocation: [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "Departing for [station_name()] in ([syndicate_elite_shuttle_timeleft] seconds.)":syndicate_elite_shuttle_at_station ? "Station":"Dock"]<BR>
[syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "\n*The Syndicate Elite shuttle is already leaving.*<BR>\n<BR>":syndicate_elite_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle Offline</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name()]</A><BR>\n<BR>"]
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
user << browse(dat, "window=computer;size=575x450")
onclose(user, "computer")
return
/obj/machinery/computer/syndicate_elite_shuttle/Topic(href, href_list)
if(..())
return 1
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
if (href_list["sendtodock"])
if(!syndicate_elite_shuttle_at_station|| syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return
to_chat(usr, "<span class='notice'>The Syndicate will not allow the Elite Squad shuttle to return.</span>")
return
else if (href_list["sendtostation"])
if(syndicate_elite_shuttle_at_station || syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return
if (!specops_can_move())
to_chat(usr, "<span class='warning'>The Syndicate Elite shuttle is unable to leave.</span>")
return
to_chat(usr, "<span class='notice'>The Syndicate Elite shuttle will arrive on [station_name()] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds.</span>")
temp = "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
updateUsrDialog()
var/area/syndicate_mothership/elite_squad/elite_squad = locate()
if(elite_squad)
elite_squad.readyalert()//Trigger alarm for the spec ops area.
syndicate_elite_shuttle_moving_to_station = 1
syndicate_elite_shuttle_time = world.timeofday + SYNDICATE_ELITE_MOVETIME
spawn(0)
syndicate_elite_process()
else if (href_list["mainmenu"])
temp = null
add_fingerprint(usr)
updateUsrDialog()
return
req_access = list(access_cent_specops)

View File

@@ -96,16 +96,17 @@
data["allow_items"] = allow_items
data["crew"] = frozen_crew
data["items"] = list()
var/list/items = list()
if(allow_items)
for(var/F in frozen_items)
data["items"].Add(F) // VOREStation Edit
items.Add(F) // VOREStation Edit
/* VOREStation Removal
data["items"].Add(list(list(
items.Add(list(list(
"name" = "[F]",
"ref" = REF(F),
)))
VOREStation Removal End */
data["items"] = items
return data
@@ -116,7 +117,7 @@
add_fingerprint(usr)
return FALSE // VOREStation Edit - prevent topic exploits
/* VOREStation Edit - Unreachable due to above
switch(action)
if("item")
if(!allow_items)
@@ -148,7 +149,7 @@
for(var/obj/item/I in frozen_items)
I.forceMove(get_turf(src))
frozen_items -= I
*/
/obj/item/weapon/circuitboard/cryopodcontrol
name = "Circuit board (Cryogenic Oversight Console)"

View File

@@ -272,7 +272,8 @@
return
if(repairing && I.is_crowbar())
var/obj/item/stack/material/repairing_sheet = get_material().place_sheet(loc)
var/datum/material/mat = get_material()
var/obj/item/stack/material/repairing_sheet = mat.place_sheet(loc)
repairing_sheet.amount += repairing-1
repairing = 0
to_chat(user, "<span class='notice'>You remove \the [repairing_sheet].</span>")

View File

@@ -114,12 +114,12 @@
if(!anchored)
user.show_message(text("<span class='warning'>[src] can now be moved.</span>"))
cut_overlays()
unsense_proximity(callback = .HasProximity)
unsense_proximity(callback = /atom/proc/HasProximity)
else if(anchored)
user.show_message(text("<span class='warning'>[src] is now secured.</span>"))
add_overlay("[base_state]-s")
sense_proximity(callback = .HasProximity)
sense_proximity(callback = /atom/proc/HasProximity)
/obj/machinery/button/flasher
name = "flasher button"

View File

@@ -319,8 +319,8 @@ Class Procs:
qdel(C)
C = new /obj/item/weapon/cell/high(src)
component_parts += C
return C
RefreshParts()
return C
/obj/machinery/proc/default_part_replacement(var/mob/user, var/obj/item/weapon/storage/part_replacer/R)
if(!istype(R))

View File

@@ -298,7 +298,7 @@
// Broadcast the signal
radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS)
radio_connection.post_signal(src, signal, radio_filter = RADIO_MAGNETS)
spawn(1)
updateUsrDialog() // pretty sure this increases responsiveness
@@ -365,7 +365,7 @@
// Broadcast the signal
spawn()
radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS)
radio_connection.post_signal(src, signal, radio_filter = RADIO_MAGNETS)
if(speed == 10)
sleep(1)

View File

@@ -234,7 +234,6 @@ GLOBAL_LIST_BOILERPLATE(allCasters, /obj/machinery/newscaster)
isbroken=1
update_icon()
return
return
/obj/machinery/newscaster/attack_ai(mob/user)
return attack_hand(user)

View File

@@ -81,7 +81,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense)
var/list/connected_z_levels = GetConnectedZlevels(get_z(src))
for(var/i = 1 to LAZYLEN(GLOB.pointdefense_turrets))
var/obj/machinery/pointdefense/PD = GLOB.pointdefense_turrets[i]
if(!(PD.id_tag == id_tag && get_z(PD) in connected_z_levels))
if(!(PD.id_tag == id_tag && (get_z(PD) in connected_z_levels)))
continue
var/list/turret = list()
turret["id"] = "#[i]"

View File

@@ -73,15 +73,10 @@
if(prob(50))
dump_everything() //So suits dont survive all the time
qdel(src)
return
if(2.0)
if(prob(50))
dump_everything()
qdel(src)
return
else
return
return
/obj/machinery/suit_storage_unit/attack_hand(mob/user)
if(..())

View File

@@ -26,21 +26,22 @@
data["network"] = network
data["temp"] = temp
data["servers"] = list()
var/list/servers = list()
for(var/obj/machinery/telecomms/T in servers)
data["servers"].Add(list(list(
servers.Add(list(list(
"id" = T.id,
"name" = T.name,
)))
data["servers"] = servers
data["selectedServer"] = null
if(SelectedServer)
data["selectedServer"] = list(
"id" = SelectedServer.id,
"totalTraffic" = SelectedServer.totaltraffic,
"logs" = list()
)
var/list/logs = list()
var/i = 0
for(var/c in SelectedServer.log_entries)
i++
@@ -52,13 +53,15 @@
for(var/log_param in acceptable_params)
parameters["[log_param]"] = C.parameters["[log_param]"]
data["selectedServer"]["logs"].Add(list(list(
logs.Add(list(list(
"name" = C.name,
"input_type" = C.input_type,
"id" = i,
"parameters" = parameters,
)))
data["selectedServer"]["logs"] = logs
return data
/obj/machinery/computer/telecomms/server/attack_hand(mob/user)

View File

@@ -71,23 +71,25 @@
data["multitool_buffer"] = list("name" = "[P.buffer]", "id" = "[P.buffer.id]")
var/i = 0
data["linked"] = list()
var/list/linked = list()
for(var/obj/machinery/telecomms/T in links)
i++
data["linked"].Add(list(list(
linked.Add(list(list(
"ref" = "\ref[T]",
"name" = "[T]",
"id" = T.id,
"index" = i,
)))
data["linked"] = linked
data["filter"] = list()
var/list/filter = list()
if(LAZYLEN(freq_listening))
for(var/x in freq_listening)
data["filter"].Add(list(list(
filter.Add(list(list(
"name" = "[format_frequency(x)]",
"freq" = x,
)))
data["filter"] = filter
return data

View File

@@ -100,7 +100,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
/obj/machinery/telecomms/proc/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
// receive information from linked machinery
..()
return
/obj/machinery/telecomms/proc/is_freq_listening(datum/signal/signal)
// return 1 if found, 0 if not found

View File

@@ -26,28 +26,28 @@
data["network"] = network
data["temp"] = temp
data["machinelist"] = list()
var/list/machinelist = list()
for(var/obj/machinery/telecomms/T in machinelist)
data["machinelist"].Add(list(list(
machinelist.Add(list(list(
"id" = T.id,
"name" = T.name,
)))
data["machinelist"] = machinelist
data["selectedMachine"] = null
if(SelectedMachine)
data["selectedMachine"] = list(
"id" = SelectedMachine.id,
"name" = SelectedMachine.name,
"links" = list(),
)
var/list/links = list()
for(var/obj/machinery/telecomms/T in SelectedMachine.links)
if(!T.hide)
data["selectedMachine"]["links"].Add(list(list(
links.Add(list(list(
"id" = T.id,
"name" = T.name
)))
data["selectedMachine"]["links"] = links
return data
/obj/machinery/computer/telecomms/monitor/attack_hand(mob/user)

View File

@@ -54,7 +54,7 @@
for(var/mob/M in viewingcode)
if( (M.machine == src && M in view(1, src) ) || issilicon(M))
if( (M.machine == src && (M in view(1, src)) ) || issilicon(M))
winset(M, "tcscode", "is-disabled=true")
winset(M, "tcscode", "text=\"[showcode]\"")
else

View File

@@ -108,7 +108,7 @@
var/obj/item/organ/O = occupant.internal_organs_by_name[O_BRAIN]
O.take_damage(severity * 2)
visible_message("<span class='danger'>\The [src]'s internal lighting flashes rapidly, before the hatch swings open with a cloud of smoke.</span>")
smoke.set_up(n = severity, 0, src)
smoke.set_up(severity, 0, src)
smoke.start("#202020")
go_out()

View File

@@ -28,7 +28,7 @@
if(!enable_special)
target = get_turf(chassis)
var/datum/beam/ScanBeam = chassis.Beam(target,"g_beam",'icons/effects/beam.dmi',time=2 SECONDS,10,/obj/effect/ebeam,2)
var/datum/beam/ScanBeam = chassis.Beam(target, "g_beam", 'icons/effects/beam.dmi', 2 SECONDS, 10, /obj/effect/ebeam, 2)
if(do_after(chassis.occupant, 2 SECONDS))
my_scanner.ScanTurf(target, chassis.occupant, exact_scan)

View File

@@ -67,7 +67,6 @@
return
/obj/item/mecha_parts/mecha_equipment/combat_shield/proc/toggle_shield()
..()
if(chassis)
my_shield.attack_self(chassis.occupant)
if(my_shield.active)

View File

@@ -39,7 +39,6 @@
shields.update_shield_positions()
/obj/item/mecha_parts/mecha_equipment/omni_shield/proc/toggle_shield()
..()
if(shields)
shields.set_on(!shields.active)
if(shields.active)

View File

@@ -461,7 +461,6 @@
E.status &= ~ORGAN_BROKEN
/obj/item/mecha_parts/mecha_equipment/crisis_drone/proc/toggle_drone()
..()
if(chassis)
enabled = !enabled
if(enabled)

View File

@@ -43,7 +43,7 @@
var/turf/aimloc = targloc
if(deviation)
aimloc = locate(targloc.x+GaussRandRound(deviation,1),targloc.y+GaussRandRound(deviation,1),targloc.z)
if(!aimloc || aimloc == curloc || (locs && aimloc in locs))
if(!aimloc || aimloc == curloc || (locs && (aimloc in locs)))
break
playsound(src, fire_sound, fire_volume, 1)
projectiles--

View File

@@ -1569,7 +1569,7 @@
return 0
/obj/mecha/proc/mmi_moved_inside(var/obj/item/device/mmi/mmi_as_oc as obj,mob/user as mob)
if(mmi_as_oc && user in range(1))
if(mmi_as_oc && (user in range(1)))
if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client)
to_chat(user, "Consciousness matrix not detected.")
return 0
@@ -1886,7 +1886,7 @@
return
/obj/mecha/proc/moved_inside(var/mob/living/carbon/human/H as mob)
if(H && H.client && H in range(1))
if(H && H.client && (H in range(1)))
H.reset_view(src)
/*
H.client.perspective = EYE_PERSPECTIVE
@@ -2514,7 +2514,7 @@
var/mob/occupant = P.occupant
user.visible_message("<span class='notice'>\The [user] begins opening the hatch on \the [P]...</span>", "<span class='notice'>You begin opening the hatch on \the [P]...</span>")
if (!do_after(user, 40, needhand=0))
if (!do_after(user, 40))
return
user.visible_message("<span class='notice'>\The [user] opens the hatch on \the [P] and removes [occupant]!</span>", "<span class='notice'>You open the hatch on \the [P] and remove [occupant]!</span>")
@@ -2564,7 +2564,7 @@
src.log_message("Recalibration of coordination system failed with 1 error.",1)
if(href_list["drop_from_cargo"])
var/obj/O = locate(href_list["drop_from_cargo"])
if(O && O in src.cargo)
if(O && (O in src.cargo))
src.occupant_message("<span class='notice'>You unload [O].</span>")
O.forceMove(get_turf(src))
src.cargo -= O
@@ -2632,7 +2632,6 @@
AI.icon_state = "ai-crash"
src.occupant = cur_occupant
*/
return
///////////////////////
///// Power stuff /////

View File

@@ -27,11 +27,13 @@
/obj/machinery/computer/mecha/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
var/list/data = ..()
data["beacons"] = list()
var/list/beacons = list()
for(var/obj/item/mecha_parts/mecha_tracking/TR in world)
var/list/tr_data = TR.tgui_data(user)
if(tr_data)
data["beacons"].Add(list(tr_data))
beacons.Add(list(tr_data))
data["beacons"] = beacons
LAZYINITLIST(stored_data)
data["stored_data"] = stored_data

View File

@@ -188,50 +188,34 @@
entry_vent = null
else if(entry_vent)
if(get_dist(src, entry_vent) <= 1)
//VOREStation Edit Start
//VOREStation Edit Start
var/obj/machinery/atmospherics/unary/vent_pump/exit_vent = get_safe_ventcrawl_target(entry_vent)
if(!exit_vent)
return
if(1) //To maintain indentation level
//VOREStation Edit End
/* //VOREStation Removal Start - prevent spiders in dorms
if(entry_vent.network && entry_vent.network.normal_members.len)
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in entry_vent.network.normal_members)
vents.Add(temp_vent)
if(!vents.len)
entry_vent = null
return
var/obj/machinery/atmospherics/unary/vent_pump/exit_vent = pick(vents)
*/ //VOREStation Removal End
/*if(prob(50))
src.visible_message("<B>[src] scrambles into the ventillation ducts!</B>")*/
spawn(rand(20,60))
loc = exit_vent
var/travel_time = round(get_dist(loc, exit_vent.loc) / 2)
spawn(travel_time)
spawn(rand(20,60))
loc = exit_vent
var/travel_time = round(get_dist(loc, exit_vent.loc) / 2)
spawn(travel_time)
if(!exit_vent || exit_vent.welded)
loc = entry_vent
entry_vent = null
return
if(prob(50))
src.visible_message("<span class='notice'>You hear something squeezing through the ventilation ducts.</span>",2)
sleep(travel_time)
if(!exit_vent || exit_vent.welded)
loc = entry_vent
entry_vent = null
return
loc = exit_vent.loc
if(!exit_vent || exit_vent.welded)
loc = entry_vent
entry_vent = null
var/area/new_area = get_area(loc)
if(new_area)
new_area.Entered(src)
else
entry_vent = null
return
if(prob(50))
src.visible_message("<span class='notice'>You hear something squeezing through the ventilation ducts.</span>",2)
sleep(travel_time)
if(!exit_vent || exit_vent.welded)
loc = entry_vent
entry_vent = null
return
loc = exit_vent.loc
entry_vent = null
var/area/new_area = get_area(loc)
if(new_area)
new_area.Entered(src)
//VOREStation Edit End
//=================
if(isturf(loc))

View File

@@ -2,7 +2,6 @@
proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, z_transfer = UP|DOWN, shaped)
var/multi_z_scalar = config.multi_z_explosion_scalar
src = null //so we don't abort once src is deleted
spawn(0)
var/start = world.timeofday
epicenter = get_turf(epicenter)

View File

@@ -314,7 +314,6 @@
// apparently called whenever an item is removed from a slot, container, or anything else.
/obj/item/proc/dropped(mob/user as mob)
..()
if(zoom)
zoom() //binoculars, scope, etc
appearance_flags &= ~NO_CLIENT_COLOR
@@ -697,7 +696,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
if((usr.stat && !zoom) || !(istype(usr,/mob/living/carbon/human)))
to_chat(usr, "You are unable to focus through the [devicename]")
cannotzoom = 1
else if(!zoom && global_hud.darkMask[1] in usr.client.screen)
else if(!zoom && (global_hud.darkMask[1] in usr.client.screen))
to_chat(usr, "Your visor gets in the way of looking through the [devicename]")
cannotzoom = 1
else if(!zoom && usr.get_active_hand() != src)

View File

@@ -193,9 +193,9 @@ var/list/GPS_list = list()
dat["curr_y"] = curr.y
dat["curr_z"] = curr.z
dat["curr_z_name"] = strip_improper(using_map.get_zlevel_name(curr.z))
dat["gps_list"] = list()
dat["z_level_detection"] = using_map.get_map_levels(curr.z, long_range)
var/list/gps_list = list()
for(var/obj/item/device/gps/G in GPS_list - src)
if(!can_track(G, dat["z_level_detection"]))
@@ -219,7 +219,9 @@ var/list/GPS_list = list()
gps_data["x"] = T.x
gps_data["y"] = T.y
dat["gps_list"][++dat["gps_list"].len] = gps_data
gps_list[++gps_list.len] = gps_data
dat["gps_list"] = gps_list
return dat
@@ -241,7 +243,8 @@ var/list/GPS_list = list()
dat += "<tr><td colspan = 4>[hide_signal ? "Tagged" : "Broadcasting"] as '[gps_tag]'.</td>"
dat += "<td><a href='?src=\ref[src];tag=1'>\[Change Tag\]</a><a href='?src=\ref[src];range=1'>\[Toggle Scan Range\]</a>[can_hide_signal ? "<a href='?src=\ref[src];hide=1'>\[Toggle Signal Visibility\]</a>":""]</td></tr>"
if(gps_data["gps_list"].len)
var/list/gps_list = gps_data["gps_list"]
if(gps_list.len)
dat += "<tr><td colspan = 6><b>Detected signals</b></td></tr>"
for(var/gps in gps_data["gps_list"])
dat += "<tr>"
@@ -482,7 +485,8 @@ var/list/GPS_list = list()
dat += "<tr><td colspan = 4>[hide_signal ? "Tagged" : "Broadcasting"] as '[gps_tag]'.</td>"
dat += "<td><a href='?src=\ref[src];tag=1'>\[Change Tag\]</a><a href='?src=\ref[src];range=1'>\[Toggle Scan Range\]</a>[can_hide_signal ? "<a href='?src=\ref[src];hide=1'>\[Toggle Signal Visibility\]</a>":""]</td></tr>"
if(gps_data["gps_list"].len)
var/list/gps_list = gps_data["gps_list"]
if(gps_list.len)
dat += "<tr><td colspan = 6><b>Detected signals</b></td></tr>"
for(var/gps in gps_data["gps_list"])
dat += "<tr>"

View File

@@ -17,12 +17,12 @@
. = ..()
var/area/A = get_area(src)
if(A)
GLOB.apc_event.register(A, src, /obj/update_icon)
GLOB.apc_event.register(A, src, /atom/proc/update_icon)
/obj/item/device/radio/intercom/Destroy()
var/area/A = get_area(src)
if(A)
GLOB.apc_event.unregister(A, src, /obj/update_icon)
GLOB.apc_event.unregister(A, src, /atom/proc/update_icon)
return ..()
/obj/item/device/radio/intercom/custom

View File

@@ -532,7 +532,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
for(var/obj/machinery/telecomms/receiver/R in telecomms_list)
R.receive_signal(signal)
if(signal.data["done"] && pos_z in signal.data["level"])
if(signal.data["done"] && (pos_z in signal.data["level"]))
if(adhoc_fallback)
to_chat(loc, "<span class='notice'>\The [src] pings as it reestablishes subspace communications.</span>")
subspace_transmission = TRUE

View File

@@ -171,7 +171,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
//The actual options
if(href_list["mindscan"])
if(!target.mind || target.mind.name in prevent_respawns)
if(!target.mind || (target.mind.name in prevent_respawns))
to_chat(usr,"<span class='warning'>Target seems totally braindead.</span>")
return
@@ -208,7 +208,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
return
if(href_list["mindsteal"])
if(!target.mind || target.mind.name in prevent_respawns)
if(!target.mind || (target.mind.name in prevent_respawns))
to_chat(usr,"<span class='warning'>Target seems totally braindead.</span>")
return

View File

@@ -80,7 +80,8 @@
var/obj/mecha/M = H.loc
return M.return_temperature()
else if(istype(H.loc, /obj/machinery/atmospherics/unary/cryo_cell))
return H.loc:air_contents.temperature
var/obj/machinery/atmospherics/unary/cryo_cell/cc = H.loc
return cc.air_contents.temperature
var/turf/T = get_turf(src)
if(istype(T, /turf/space))

View File

@@ -62,9 +62,9 @@
/obj/item/device/transfer_valve/Moved(old_loc, direction, forced)
. = ..()
if(isturf(old_loc))
unsense_proximity(callback = .HasProximity, center = old_loc)
unsense_proximity(callback = /atom/proc/HasProximity, center = old_loc)
if(isturf(loc))
sense_proximity(callback = .HasProximity)
sense_proximity(callback = /atom/proc/HasProximity)
/obj/item/device/transfer_valve/attack_self(mob/user)
tgui_interact(user)

View File

@@ -506,7 +506,7 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
var/phase_power = 75
var/recharging = 0
/obj/item/device/perfect_tele/frontier/unload_ammo(var/mob/user)
/obj/item/device/perfect_tele/frontier/unload_ammo(mob/user, var/ignore_inactive_hand_check = 0)
if(recharging)
return
recharging = 1

View File

@@ -248,7 +248,6 @@
var/datum/matter_synth/S = synths[i]
S.use_charge(charge_costs[i] * used) // Doesn't need to be deleted
return 1
return 0
/obj/item/stack/proc/add(var/extra)
if(!uses_charge)

View File

@@ -207,7 +207,7 @@
return FALSE
/obj/item/device/uav/proc/toggle_packed()
if(UAV_ON)
if(state == UAV_ON)
power_down()
switch(state)
if(UAV_OFF) //Packing

View File

@@ -46,17 +46,7 @@
var/datum/autopsy_data/W = O.autopsy_data[V]
if(!W.pretend_weapon)
/*
// the more hits, the more likely it is that we get the right weapon type
if(prob(50 + W.hits * 10 + W.damage))
*/
// Buffing this stuff up for now!
if(1)
W.pretend_weapon = W.weapon
else
W.pretend_weapon = pick("mechanical toolbox", "wirecutters", "revolver", "crowbar", "fire extinguisher", "tomato soup", "oxygen tank", "emergency oxygen tank", "laser", "bullet")
W.pretend_weapon = W.weapon
var/datum/autopsy_data_scanner/D = wdata[V]
if(!D)

View File

@@ -259,4 +259,4 @@ obj/item/clothing/mask/chewable/Destroy()
/obj/item/clothing/mask/chewable/candy/pocky/Initialize()
. = ..()
reagents.add_reagent("chocolate" = 10)
reagents.add_reagent("chocolate", 10)

View File

@@ -142,11 +142,11 @@
if(user.a_intent)
switch(user.a_intent)
if(I_HURT)
if(prob(10) && istype(target, /mob/living/carbon/human) && user.zone_sel in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND))
if(prob(10) && istype(target, /mob/living/carbon/human) && (user.zone_sel in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND)))
to_chat(target, "<span class='warning'>\The [src] rips at your hands!</span>")
ranged_disarm(target)
if(I_DISARM)
if(prob(min(90, force * 3)) && istype(target, /mob/living/carbon/human) && user.zone_sel in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND))
if(prob(min(90, force * 3)) && istype(target, /mob/living/carbon/human) && (user.zone_sel in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND)))
ranged_disarm(target)
else
target.visible_message("<span class='danger'>\The [src] sends \the [target] stumbling away.</span>")
@@ -175,7 +175,7 @@
visible_message("<span class='danger'>[H]'s [W] goes off due to \the [src]!</span>")
return W.afterattack(target,H)
if(!(H.species.flags & NO_SLIP) && prob(10) && user.zone_sel in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT))
if(!(H.species.flags & NO_SLIP) && prob(10) && (user.zone_sel in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT)))
var/armor_check = H.run_armor_check(user.zone_sel, "melee")
H.apply_effect(3, WEAKEN, armor_check)
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)

View File

@@ -45,7 +45,6 @@
var/mob/living/carbon/human/H = src.loc
H.update_inv_l_hand(0)
H.update_inv_r_hand()
..()
// Randomizes color
/obj/item/weapon/melee/umbrella/random/New()

View File

@@ -26,7 +26,7 @@
update_icon()
//Some belts have sprites to show icons
/obj/item/weapon/storage/belt/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0)
/obj/item/weapon/storage/belt/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask = null)
var/image/standing = ..()
if(!inhands && contents.len)
for(var/obj/item/i in contents)

View File

@@ -66,7 +66,7 @@
overlays.Cut()
if(front_id)
var/tiny_state = "id-generic"
if("id-"+front_id.icon_state in cached_icon_states(icon))
if("id-[front_id.icon_state]" in cached_icon_states(icon))
tiny_state = "id-"+front_id.icon_state
var/image/tiny_image = new/image(icon, icon_state = tiny_state)
tiny_image.appearance_flags = RESET_COLOR

View File

@@ -668,6 +668,6 @@ var/list/global/tank_gauge_cache = list()
/obj/item/device/tankassemblyproxy/Moved(old_loc, direction, forced)
if(isturf(old_loc))
unsense_proximity(callback = .HasProximity, center = old_loc)
unsense_proximity(callback = /atom/proc/HasProximity, center = old_loc)
if(isturf(loc))
sense_proximity(callback = .HasProximity)
sense_proximity(callback = /atom/proc/HasProximity)

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