Skip to content

Commit

Permalink
wtf did i do
Browse files Browse the repository at this point in the history
  • Loading branch information
xTrainx committed Mar 29, 2024
2 parents 27b7b14 + 13cccae commit b383b8c
Show file tree
Hide file tree
Showing 106 changed files with 257 additions and 147 deletions.
2 changes: 1 addition & 1 deletion code/__DEFINES/skills/helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
if(body.mind){\
body.mind.add_skill_modifier(prototype.identifier)\
} else {\
prototype.RegisterSignal(body, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE)\
prototype.RegisterSignal(body, COMSIG_MOB_ON_NEW_MIND, TYPE_PROC_REF(/datum/skill_modifier,on_mob_new_mind), TRUE)\
}

/// Same as above but to remove the skill modifier.
Expand Down
52 changes: 47 additions & 5 deletions code/__DEFINES/spaceman_dmm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,72 @@

// The SPACEMAN_DMM define is set by the linter and other tooling when it runs.
#ifdef SPACEMAN_DMM
/**
* Sets a return type expression for a proc. The return type can take the forms:
* `/typepath` - a raw typepath. The return type of the proc is the type named.
* `param` - a typepath given as a parameter, for procs which return an instance of the passed-in type.
* `param.type` - the static type of a passed-in parameter, for procs which
* return their input or otherwise another value of the same type.
* `param[_].type` - the static type of a passed-in parameter, with one level
* of `/list` stripped, for procs which select one item from a list. The `[_]`
* may be repeated to strip more levels of `/list`.
*/
#define RETURN_TYPE(X) set SpacemanDMM_return_type = X
/**
* If set, will enable a diagnostic on children of the proc it is set on which do
* not contain any `..()` parent calls. This can help with finding situations
* where a signal or other important handling in the parent proc is being skipped.
* Child procs may set this setting to `0` instead to override the check.
*/
#define SHOULD_CALL_PARENT(X) set SpacemanDMM_should_call_parent = X
#define UNLINT(X) SpacemanDMM_unlint(X)
/**
* If set, raise a warning for any child procs that override this one,
* regardless of if it calls parent or not.
* This functions in a similar way to the `final` keyword in some languages.
* This cannot be disabled by child overrides.
*/
#define SHOULD_NOT_OVERRIDE(X) set SpacemanDMM_should_not_override = X
/**
* If set, raise a warning if the proc or one of the sub-procs it calls
* uses a blocking call, such as `sleep()` or `input()` without using `set waitfor = 0`
* This cannot be disabled by child overrides.
*/
#define SHOULD_NOT_SLEEP(X) set SpacemanDMM_should_not_sleep = X
/**
* If set, ensure a proc is 'pure', such that it does not make any changes
* outside itself or output. This also checks to make sure anything using
* this proc doesn't invoke it without making use of the return value.
* This cannot be disabled by child overrides.
*/
#define SHOULD_BE_PURE(X) set SpacemanDMM_should_be_pure = X
///Private procs can only be called by things of exactly the same type.
#define PRIVATE_PROC(X) set SpacemanDMM_private_proc = X
///Protected procs can only be call by things of the same type *or subtypes*.
#define PROTECTED_PROC(X) set SpacemanDMM_protected_proc = X
///If set, will not lint.
#define UNLINT(X) SpacemanDMM_unlint(X)

///If set, overriding their value isn't permitted by types that inherit it.
#define VAR_FINAL var/SpacemanDMM_final
///Private vars can only be called by things of exactly the same type.
#define VAR_PRIVATE var/SpacemanDMM_private
///Protected vars can only be called by things of the same type *or subtypes*.
#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 UNLINT(X) X

#define VAR_FINAL var
#define VAR_PRIVATE var
#define VAR_PROTECTED var
#endif

/proc/enable_debugging()
CRASH("Auxtools not found")
5 changes: 4 additions & 1 deletion code/__HELPERS/_extools_api.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ GLOBAL_LIST_EMPTY(auxtools_initialized)

#define AUXTOOLS_SHUTDOWN(LIB)\
if (GLOB.auxtools_initialized[LIB] && fexists(LIB)){\
call(LIB,"auxtools_shutdown")();\
LIBCALL(LIB,"auxtools_shutdown")();\
GLOB.auxtools_initialized[LIB] = FALSE;\
}\

/proc/enable_debugging()
CRASH("Auxtools not found")
18 changes: 17 additions & 1 deletion code/__HELPERS/unsorted.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1396,9 +1396,25 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
if(is_servant_of_ratvar(V) || isobserver(V))
. += V

//datum may be null, but it does need to be a typed var
/**
* NAMEOF: Compile time checked variable name to string conversion
* evaluates to a string equal to "X", but compile errors if X isn't a var on datum.
* datum may be null, but it does need to be a typed var.
**/
#define NAMEOF(datum, X) (#X || ##datum.##X)

<<<<<<< HEAD
=======
/**
* NAMEOF that actually works in static definitions because src::type requires src to be defined
*/
#if DM_VERSION >= 515
#define NAMEOF_STATIC(datum, X) (nameof(type::##X))
#else
#define NAMEOF_STATIC(datum, X) (#X || ##datum.##X)
#endif

>>>>>>> 13cccaee54b8654ff6595b05dc923dfae758734b
#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC,GLOBAL_PROC_REF(___callbackvarset), ##target, ##var_name, ##var_value)
//dupe code because dm can't handle 3 level deep macros
#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC,GLOBAL_PROC_REF(___callbackvarset), ##datum, NAMEOF(##datum, ##var), ##var_value)
Expand Down
2 changes: 1 addition & 1 deletion code/_onclick/ai.dm
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@

if(aicamera.in_camera_mode)
aicamera.camera_mode_off()
INVOKE_ASYNC(aicamera, /obj/item/camera.proc/captureimage, pixel_turf, usr)
INVOKE_ASYNC(aicamera, TYPE_PROC_REF(/obj/item/camera,captureimage), pixel_turf, usr)
return
if(waypoint_mode)
waypoint_mode = FALSE
Expand Down
4 changes: 2 additions & 2 deletions code/_onclick/cyborg.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@
*/
if(aicamera.in_camera_mode) //Cyborg picture taking
aicamera.camera_mode_off()
INVOKE_ASYNC(aicamera, /obj/item/camera.proc/captureimage, A, usr)
INVOKE_ASYNC(aicamera, TYPE_PROC_REF(/obj/item/camera,captureimage), A, usr)
return

var/obj/item/W = get_active_held_item()

if(!W && A.Adjacent(src) && (isobj(A) || ismob(A)))
var/atom/movable/C = A
if(C.can_buckle && C.has_buckled_mobs())
INVOKE_ASYNC(C, /atom/movable.proc/precise_user_unbuckle_mob, src)
INVOKE_ASYNC(C, TYPE_PROC_REF(/atom/movable,precise_user_unbuckle_mob), src)
return

if(!W && (get_dist(src,A) <= interaction_range))
Expand Down
8 changes: 8 additions & 0 deletions code/controllers/configuration/config_entry.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@
var/datum/config_entry/catched = src
if(!istype(catched))
return
<<<<<<< HEAD
var/static/list/banned_edits = list(NAMEOF(catched, name), NAMEOF(catched, vv_VAS), NAMEOF(catched, default), NAMEOF(catched, resident_file), NAMEOF(catched, protection), NAMEOF(catched, abstract_type), NAMEOF(catched, modified), NAMEOF(catched, dupes_allowed))
=======
var/static/list/banned_edits = list(NAMEOF_STATIC(src, name), NAMEOF_STATIC(src, vv_VAS), NAMEOF_STATIC(src, default), NAMEOF_STATIC(src, resident_file), NAMEOF_STATIC(src, protection), NAMEOF_STATIC(src, abstract_type), NAMEOF_STATIC(src, modified), NAMEOF_STATIC(src, dupes_allowed))
>>>>>>> 13cccaee54b8654ff6595b05dc923dfae758734b
if(var_name == NAMEOF(src, config_entry_value))
if(protection & CONFIG_ENTRY_LOCKED)
return FALSE
Expand Down Expand Up @@ -116,7 +120,11 @@
var/datum/config_entry/number/catched = src
if(!istype(catched))
return
<<<<<<< HEAD
var/static/list/banned_edits = list(NAMEOF(catched, max_val), NAMEOF(catched, min_val), NAMEOF(catched, integer))
=======
var/static/list/banned_edits = list(NAMEOF_STATIC(src, max_val), NAMEOF_STATIC(src, min_val), NAMEOF_STATIC(src, integer))
>>>>>>> 13cccaee54b8654ff6595b05dc923dfae758734b
return !(var_name in banned_edits) && ..()

/datum/config_entry/flag
Expand Down
4 changes: 4 additions & 0 deletions code/controllers/master.dm
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,11 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
//(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add)
sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority))
for(var/I in runlevel_sorted_subsystems)
<<<<<<< HEAD
sortTim(runlevel_sorted_subsystems, GLOBAL_PROC_REF(cmp_subsystem_priority))
=======
sortTim(I, GLOBAL_PROC_REF(cmp_subsystem_priority))
>>>>>>> 13cccaee54b8654ff6595b05dc923dfae758734b
I += tickersubsystems

var/cached_runlevel = current_runlevel
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/pathfinder.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ SUBSYSTEM_DEF(pathfinder)
while(flow[free])
CHECK_TICK
free = (free % lcount) + 1
var/t = addtimer(CALLBACK(src, /datum/flowcache.proc/toolong, free), 150, TIMER_STOPPABLE)
var/t = addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/flowcache,toolong), free), 150, TIMER_STOPPABLE)
flow[free] = t
flow[t] = M
return free
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/ticker.dm
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,7 @@ SUBSYSTEM_DEF(ticker)
for(var/mob/dead/new_player/player in GLOB.player_list)
if(player.ready == PLAYER_READY_TO_OBSERVE && player.mind)
//Break chain since this has a sleep input in it
addtimer(CALLBACK(player, /mob/dead/new_player.proc/make_me_an_observer), 1)
addtimer(CALLBACK(player, TYPE_PROC_REF(/mob/dead/new_player,make_me_an_observer)), 1)

/datum/controller/subsystem/ticker/proc/load_mode()
var/mode = trim(file2text("data/mode.txt"))
Expand Down
2 changes: 1 addition & 1 deletion code/datums/brain_damage/severe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@
to_chat(owner, span_warning("You feel sick..."))
else
to_chat(owner, span_warning("You feel really sick at the thought of being alone!"))
addtimer(CALLBACK(owner, /mob/living/carbon.proc/vomit, high_stress), 50) //blood vomit if high stress
addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living/carbon,vomit), high_stress), 50) //blood vomit if high stress
if(2)
if(!high_stress)
to_chat(owner, span_warning("You can't stop shaking..."))
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/mood.dm
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@
if(master.mind)
master.mind.add_skill_modifier(malus.identifier)
else
malus.RegisterSignal(master, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE)
malus.RegisterSignal(master, COMSIG_MOB_ON_NEW_MIND, TYPE_PROC_REF(/datum/skill_modifier,on_mob_new_mind), TRUE)
malus.value_mod = malus.level_mod = 1 - (sanity_level - 3) * MOOD_INSANITY_MALUS
else if(malus)
if(master.mind)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/diseases/advance/symptoms/heal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@

/datum/symptom/heal/coma/proc/coma(mob/living/M)
if(deathgasp)
INVOKE_ASYNC(M, /mob/living.proc/emote, "deathgasp")
INVOKE_ASYNC(M, TYPE_PROC_REF(/mob/living,emote), "deathgasp")
M.fakedeath("regenerative_coma", TRUE)
M.update_stat()
M.update_mobility()
Expand Down
2 changes: 1 addition & 1 deletion code/datums/martial/wrestling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@
if (T && isturf(T))
if (!D.stat)
D.emote("scream")
D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, /mob/living/carbon/human.proc/DefaultCombatKnockdown, 20))
D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, TYPE_PROC_REF(/mob/living/carbon/human,DefaultCombatKnockdown), 20))
log_combat(A, D, "has thrown with wrestling")
return FALSE

Expand Down
2 changes: 1 addition & 1 deletion code/datums/materials/_material.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Simple datum which is instanced once per type and is used for every object of sa
source.name = "[name] [source.name]"

if(beauty_modifier)
addtimer(CALLBACK(source, /datum.proc/_AddElement, list(/datum/element/beauty, beauty_modifier * amount)), 0)
addtimer(CALLBACK(source, TYPE_PROC_REF(/datum,_AddElement), list(/datum/element/beauty, beauty_modifier * amount)), 0)

if(istype(source, /obj)) //objs
on_applied_obj(source, amount, material_flags)
Expand Down
4 changes: 2 additions & 2 deletions code/datums/mind.dm
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@
var/datum/team/antag_team = A.get_team()
if(antag_team)
antag_team.add_member(src)
INVOKE_ASYNC(A, /datum/antagonist.proc/on_gain)
INVOKE_ASYNC(A, TYPE_PROC_REF(/datum/antagonist,on_gain))
return A

/datum/mind/proc/remove_antag_datum(datum_type)
Expand Down Expand Up @@ -735,7 +735,7 @@
continue
S.charge_counter = delay
S.updateButtonIcon()
INVOKE_ASYNC(S, /obj/effect/proc_holder/spell.proc/start_recharge)
INVOKE_ASYNC(S, TYPE_PROC_REF(/obj/effect/proc_holder/spell,start_recharge))

/datum/mind/proc/get_ghost(even_if_they_cant_reenter)
for(var/mob/dead/observer/G in GLOB.dead_mob_list)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/mood_events/generic_negative_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
var/mob/living/carbon/human/H = owner
if(iscatperson(H))
H.dna.species.start_wagging_tail(H)
addtimer(CALLBACK(H.dna.species, /datum/species.proc/stop_wagging_tail, H), 30)
addtimer(CALLBACK(H.dna.species, TYPE_PROC_REF(/datum/species,stop_wagging_tail), H), 30)
description = span_nicegreen("They want to play on the table!")
mood_change = 2

Expand Down
7 changes: 6 additions & 1 deletion code/datums/skills/_skill_modifier.dm
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,13 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill)
skill_holder.need_static_data_update = TRUE

if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND)
<<<<<<< HEAD
M.RegisterSignal(src, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer)
M.RegisterSignal(current, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE)
=======
M.RegisterSignal(src, COMSIG_MIND_TRANSFER, TYPE_PROC_REF(/datum/skill_modifier,on_mind_transfer))
M.RegisterSignal(current, COMSIG_MOB_ON_NEW_MIND, TYPE_PROC_REF(/datum/skill_modifier,on_mob_new_mind), TRUE)
>>>>>>> 13cccaee54b8654ff6595b05dc923dfae758734b
RegisterSignal(M, COMSIG_PARENT_PREQDELETED, PROC_REF(on_skill_modifier_deletion))

#undef ADD_MOD_STEP
Expand Down Expand Up @@ -201,4 +206,4 @@ GLOBAL_LIST_EMPTY(potential_mods_per_skill)

/datum/skill_modifier/proc/on_mob_new_mind(mob/source)
source.mind.add_skill_modifier(identifier)
RegisterSignal(source.mind, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer)
RegisterSignal(source.mind, COMSIG_MIND_TRANSFER, TYPE_PROC_REF(/datum/skill_modifier,on_mind_transfer))
4 changes: 2 additions & 2 deletions code/datums/status_effects/debuffs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -998,8 +998,8 @@ datum/status_effect/pacify
var/mob/living/carbon/C = owner
var/hypnomsg = uncostumize_say(hearing_args[HEARING_RAW_MESSAGE], hearing_args[HEARING_MESSAGE_MODE])
C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis
addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hypnomsg), 10)
addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it
addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon,gain_trauma), /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hypnomsg), 10)
addtimer(CALLBACK(C, TYPE_PROC_REF(/mob/living,Stun), 60, TRUE, TRUE), 15) //Take some time to think about it
qdel(src)

/datum/status_effect/spasms
Expand Down
4 changes: 2 additions & 2 deletions code/datums/wires/airalarm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@
if(!A.shorted)
A.shorted = TRUE
A.update_icon()
addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/reset, wire), 1200)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/airalarm,reset), wire), 1200)
if(WIRE_IDSCAN) // Toggle lock.
A.locked = !A.locked
if(WIRE_AI) // Disable AI control for a while.
if(!A.aidisabled)
A.aidisabled = TRUE
addtimer(CALLBACK(A, /obj/machinery/airalarm.proc/reset, wire), 100)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/airalarm,reset), wire), 100)
if(WIRE_PANIC) // Toggle panic siphon.
if(!A.shorted)
if(A.mode == 1) // AALARM_MODE_SCRUB
Expand Down
6 changes: 3 additions & 3 deletions code/datums/wires/airlock.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@
return
if(!A.requiresID() || A.check_access(null))
if(A.density)
INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/open)
INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door/airlock,open))
else
INVOKE_ASYNC(A, /obj/machinery/door/airlock.proc/close)
INVOKE_ASYNC(A, TYPE_PROC_REF(/obj/machinery/door/airlock,close))
else
holder.visible_message(span_notice("You hear a a grinding noise coming from the airlock."))
if(WIRE_BOLTS) // Pulse to toggle bolts (but only raise if power is on).
Expand All @@ -106,7 +106,7 @@
A.aiControlDisabled = 1
else if(A.aiControlDisabled == -1)
A.aiControlDisabled = 2
addtimer(CALLBACK(A, /obj/machinery/door/airlock.proc/reset_ai_wire), 1 SECONDS)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/door/airlock,reset_ai_wire)), 1 SECONDS)
if(WIRE_SHOCK) // Pulse to shock the door for 10 ticks.
if(!A.secondsElectrified)
A.set_electrified(30, usr)
Expand Down
6 changes: 3 additions & 3 deletions code/datums/wires/apc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@
if(!A.shorted)
A.shorted = TRUE
A.update()
addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 1200)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc,reset), wire), 1200)
if(WIRE_IDSCAN) // Unlock for a little while.
A.locked = FALSE
addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 300)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc,reset), wire), 300)
if(WIRE_AI) // Disable AI control for a very short time.
if(!A.aidisabled)
A.aidisabled = TRUE
addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 10)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/power/apc,reset), wire), 10)

/datum/wires/apc/on_cut(index, mend)
var/obj/machinery/power/apc/A = holder
Expand Down
6 changes: 3 additions & 3 deletions code/datums/wires/autolathe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@
switch(wire)
if(WIRE_HACK)
A.adjust_hacked(!A.hacked)
addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe,reset), wire), 60)
if(WIRE_SHOCK)
A.shocked = !A.shocked
A.shock(usr, 50)
addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe,reset), wire), 60)
if(WIRE_DISABLE)
A.disabled = !A.disabled
addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60)
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/autolathe,reset), wire), 60)

/datum/wires/autolathe/on_cut(wire, mend)
var/obj/machinery/autolathe/A = holder
Expand Down
4 changes: 2 additions & 2 deletions code/game/area/areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
if(D.operating)
D.nextstate = opening ? FIREDOOR_OPEN : FIREDOOR_CLOSED
else if(!(D.density ^ opening))
INVOKE_ASYNC(D, (opening ? /obj/machinery/door/firedoor.proc/open : /obj/machinery/door/firedoor.proc/close))
INVOKE_ASYNC(D, (opening ? TYPE_PROC_REF(/obj/machinery/door/firedoor, open) : TYPE_PROC_REF(/obj/machinery/door/firedoor, close)))

/area/proc/firealert(obj/source)
if(always_unpowered == 1) //no fire alarms in space/asteroid
Expand Down Expand Up @@ -470,7 +470,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
var/mob/living/silicon/SILICON = i
if(SILICON.triggerAlarm("Burglar", src, cameras, trigger))
//Cancel silicon alert after 1 minute
addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm,"Burglar",src,trigger), 600)
addtimer(CALLBACK(SILICON, TYPE_PROC_REF(/mob/living/silicon,cancelAlarm),"Burglar",src,trigger), 600)

/area/proc/set_fire_alarm_effects(boolean)
fire = boolean
Expand Down
Loading

0 comments on commit b383b8c

Please sign in to comment.