it compiles, that's better than it not compiling, right?

This commit is contained in:
Pinta
2024-03-24 06:36:59 -04:00
parent d46cf2d981
commit 63009681fa
452 changed files with 1046 additions and 987 deletions
+1 -1
View File
@@ -273,7 +273,7 @@
T.atmos_spawn_air("o2=5;plasma=5;TEMP=1000")
/obj/effect/anomaly/pyro/detonate()
INVOKE_ASYNC(src, .proc/makepyroslime)
INVOKE_ASYNC(src,PROC_REF(makepyroslime))
/obj/effect/anomaly/pyro/proc/makepyroslime()
var/turf/open/T = get_turf(src)
+1 -1
View File
@@ -16,7 +16,7 @@
I.alpha = 64
I.appearance_flags = RESET_ALPHA
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I)
RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, .proc/block_cult_teleport)
RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT,PROC_REF(block_cult_teleport))
/obj/effect/blessing/Destroy()
UnregisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT)
@@ -53,7 +53,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
for(var/i in 1 to number)
if(total_effects > 20)
return
INVOKE_ASYNC(src, .proc/generate_effect)
INVOKE_ASYNC(src,PROC_REF(generate_effect))
/datum/effect_system/proc/generate_effect()
if(holder)
@@ -71,9 +71,9 @@ would spawn and follow the beaker, even if it is carried or thrown.
for(var/j in 1 to steps_amt)
sleep(5)
step(E,direction)
addtimer(CALLBACK(src, .proc/decrement_total_effect), 20)
addtimer(CALLBACK(src,PROC_REF(decrement_total_effect)), 20)
if(!QDELETED(src))
addtimer(CALLBACK(src, .proc/decrement_total_effect), 20)
addtimer(CALLBACK(src,PROC_REF(decrement_total_effect)), 20)
/datum/effect_system/proc/decrement_total_effect()
total_effects--
@@ -17,7 +17,7 @@
var/direct = pick(GLOB.alldirs)
var/steps_amt = pick(1;25,2;50,3,4;200)
for(var/j in 1 to steps_amt)
addtimer(CALLBACK(GLOBAL_PROC, .proc/_step, expl, direct), j)
addtimer(CALLBACK(GLOBAL_PROC_REF(_step), expl, direct), j)
/obj/effect/explosion
name = "fire"
@@ -55,4 +55,4 @@
S.start()
/datum/effect_system/explosion/smoke/start()
..()
addtimer(CALLBACK(src, .proc/create_smoke), 5)
addtimer(CALLBACK(src,PROC_REF(create_smoke)), 5)
@@ -42,7 +42,7 @@
/obj/effect/particle_effect/smoke/proc/kill_smoke()
STOP_PROCESSING(SSobj, src)
INVOKE_ASYNC(src, .proc/fade_out)
INVOKE_ASYNC(src,PROC_REF(fade_out))
QDEL_IN(src, 10)
/obj/effect/particle_effect/smoke/process()
@@ -64,7 +64,7 @@
if(C.smoke_delay)
return 0
C.smoke_delay++
addtimer(CALLBACK(src, .proc/remove_smoke_delay, C), 10)
addtimer(CALLBACK(src,PROC_REF(remove_smoke_delay), C), 10)
return 1
/obj/effect/particle_effect/smoke/proc/remove_smoke_delay(mob/living/carbon/C)
+2 -2
View File
@@ -80,7 +80,7 @@
else //if on the floor, glowshroom on-floor sprite
icon_state = base_icon_state
addtimer(CALLBACK(src, .proc/Spread), delay)
addtimer(CALLBACK(src,PROC_REF(Spread)), delay)
/obj/structure/glowshroom/proc/Spread()
var/turf/ownturf = get_turf(src)
@@ -127,7 +127,7 @@
shrooms_planted++ //if we failed due to generation, don't try to plant one later
if(shrooms_planted < myseed.yield) //if we didn't get all possible shrooms planted, try again later
myseed.yield -= shrooms_planted
addtimer(CALLBACK(src, .proc/Spread), delay)
addtimer(CALLBACK(src,PROC_REF(Spread)), delay)
/obj/structure/glowshroom/proc/CalcDir(turf/location = loc)
var/direction = 16
+1 -1
View File
@@ -23,7 +23,7 @@
else if(hasprox_receiver == host) //Default case
hasprox_receiver = H
host = H
RegisterSignal(host, COMSIG_MOVABLE_MOVED, .proc/HandleMove)
RegisterSignal(host, COMSIG_MOVABLE_MOVED,PROC_REF(HandleMove))
last_host_loc = host.loc
SetRange(current_range,TRUE)
@@ -15,5 +15,5 @@
message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].")
log_game("An alien egg has been delivered to [AREACOORD(T)]")
var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen."
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time))
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC_REF(addtimer), CALLBACK(GLOBAL_PROC_REF(print_command_report), message), announcement_time))
return INITIALIZE_HINT_QDEL
+3 -3
View File
@@ -614,7 +614,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, messy_throw = TRUE)
thrownby = thrower
callback = CALLBACK(src, .proc/after_throw, callback, (spin && messy_throw)) //replace their callback with our own
callback = CALLBACK(src,PROC_REF(after_throw), callback, (spin && messy_throw)) //replace their callback with our own
. = ..(target, range, speed, thrower, spin, diagonals_first, callback, force)
/obj/item/proc/after_throw(datum/callback/callback)
@@ -790,7 +790,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
if((item_flags & IN_INVENTORY) && usr.client?.prefs?.enable_tips && !QDELETED(src))
var/timedelay = usr.client?.prefs?.tip_delay/100
var/user = usr
tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it.
tip_timer = addtimer(CALLBACK(src,PROC_REF(openTip), location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it.
/obj/item/MouseExited()
deltimer(tip_timer)//delete any in-progress timer if the mouse is moved off the item before it finishes
@@ -812,7 +812,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
if(delay)
// Create a callback with checks that would be called every tick by do_after.
var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks)
var/datum/callback/tool_check = CALLBACK(src,PROC_REF(tool_check_callback), user, amount, extra_checks)
if(ismob(target))
if(!do_mob(user, target, delay, extra_checks=tool_check))
+6 -6
View File
@@ -291,7 +291,7 @@ RLD
"North/South" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlocknorthsouth"),
"East/West" = image(icon = 'icons/mob/radial.dmi', icon_state = "airlockeastwest")
)
var/airlockdirs = show_radial_menu(user, src, airlock_dirs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
var/airlockdirs = show_radial_menu(user, src, airlock_dirs, custom_check = CALLBACK(src,PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
if(!check_menu(user))
return
switch(airlockdirs)
@@ -309,7 +309,7 @@ RLD
"SOUTH" = image(icon = 'icons/mob/radial.dmi', icon_state = "csouth"),
"WEST" = image(icon = 'icons/mob/radial.dmi', icon_state = "cwest")
)
var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
var/computerdirs = show_radial_menu(user, src, computer_dirs, custom_check = CALLBACK(src,PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
if(!check_menu(user))
return
switch(computerdirs)
@@ -345,13 +345,13 @@ RLD
"External Maintenance" = get_airlock_image(/obj/machinery/door/airlock/maintenance/external/glass)
)
var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE)
var/airlockcat = show_radial_menu(user, src, solid_or_glass_choices, custom_check = CALLBACK(src,PROC_REF(check_menu), user), require_near = TRUE)
if(!check_menu(user))
return
switch(airlockcat)
if("Solid")
if(advanced_airlock_setting == 1)
var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE)
var/airlockpaint = show_radial_menu(user, src, solid_choices, radius = 42, custom_check = CALLBACK(src,PROC_REF(check_menu), user), require_near = TRUE)
if(!check_menu(user))
return
airlock_color_base = ""
@@ -376,7 +376,7 @@ RLD
if("Glass")
if(advanced_airlock_setting == 1)
var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE)
var/airlockpaint = show_radial_menu(user, src , glass_choices, radius = 42, custom_check = CALLBACK(src,PROC_REF(check_menu), user), require_near = TRUE)
if(!check_menu(user))
return
airlock_color_base = ""
@@ -510,7 +510,7 @@ RLD
buzz loudly!</b></span>","<span class='danger'><b>[src] begins \
vibrating violently!</b></span>")
// 5 seconds to get rid of it
addtimer(CALLBACK(src, .proc/detonate_pulse_explode), 50)
addtimer(CALLBACK(src,PROC_REF(detonate_pulse_explode)), 50)
/obj/item/construction/rcd/proc/detonate_pulse_explode()
explosion(src, 0, 0, 3, 1, flame_range = 1)
+2 -2
View File
@@ -161,7 +161,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook)
return
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, .proc/trigger)
RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED,PROC_REF(trigger))
listeningTo = to_hook
/obj/item/twohanded/rcl/proc/trigger(mob/user)
@@ -245,7 +245,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook)
/obj/item/twohanded/rcl/proc/showWiringGui(mob/user)
var/list/choices = wiringGuiGenerateChoices(user)
wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, .proc/wiringGuiReact, user), radius = 42)
wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src,PROC_REF(wiringGuiReact), user), radius = 42)
/obj/item/twohanded/rcl/proc/wiringGuiUpdate(mob/user)
if(!wiring_gui_menu)
+2 -2
View File
@@ -18,13 +18,13 @@
..()
ADD_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC)
owner.med_hud_set_status()
INVOKE_ASYNC(src, .proc/AddInfectionImages, owner)
INVOKE_ASYNC(src,PROC_REF(AddInfectionImages), owner)
/obj/item/organ/body_egg/Remove(var/mob/living/carbon/M, special = 0)
if(owner)
REMOVE_TRAIT(owner, TRAIT_XENO_HOST, TRAIT_GENERIC)
owner.med_hud_set_status()
INVOKE_ASYNC(src, .proc/RemoveInfectionImages, owner)
INVOKE_ASYNC(src,PROC_REF(RemoveInfectionImages), owner)
..()
/obj/item/organ/body_egg/on_death()
+1 -1
View File
@@ -110,7 +110,7 @@
* * user The mob choosing a skin of the cardboard cutout
*/
/obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user)
var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/check_menu, user, crayon), radius = 36, require_near = TRUE)
var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src,PROC_REF(check_menu), user, crayon), radius = 36, require_near = TRUE)
if(!new_appearance)
return
if(!do_after(user, 10, FALSE, src, TRUE))
+1 -1
View File
@@ -58,7 +58,7 @@
to_chat(user, "Your name has been sent to your employers for approval.")
// Autoapproves after a certain time
response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE)
response_timer_id = addtimer(CALLBACK(src,PROC_REF(rename_station), new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE)
to_chat(GLOB.admins, "<span class='adminnotice'><b><font color=orange>CUSTOM STATION RENAME:</font></b>[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (<A HREF='?_src_=holder;[HrefToken(TRUE)];reject_custom_name=[REF(src)]'>REJECT</A>) [ADMIN_CENTCOM_REPLY(user)]</span>")
/obj/item/station_charter/proc/reject_proposed(user)
+1 -1
View File
@@ -296,7 +296,7 @@
. = ..()
if(!req_defib)
return
RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/check_range)
RegisterSignal(user, COMSIG_MOVABLE_MOVED,PROC_REF(check_range))
/obj/item/twohanded/shockpaddles/Moved()
. = ..()
+1 -1
View File
@@ -505,7 +505,7 @@ GLOBAL_LIST_EMPTY(PDAs)
update_label()
if (!silent)
playsound(src, 'sound/machines/terminal_processing.ogg', 15, 1)
addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/machines/terminal_success.ogg', 15, 1), 13)
addtimer(CALLBACK(GLOBAL_PROC_REF(playsound), src, 'sound/machines/terminal_success.ogg', 15, 1), 13)
if("Eject")//Ejects the cart, only done from hub.
if (!isnull(cartridge))
@@ -10,7 +10,7 @@
/obj/item/pda/clown/Initialize()
. = ..()
AddComponent(/datum/component/slippery, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, .proc/AfterSlip))
AddComponent(/datum/component/slippery, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src,PROC_REF(AfterSlip)))
/obj/item/pda/clown/proc/AfterSlip(mob/living/carbon/human/M)
if (istype(M) && (M.real_name != owner))
+1 -1
View File
@@ -616,7 +616,7 @@ Code:
playsound(src, 'sound/machines/terminal_select.ogg', 50, 1)
if("Send Signal")
INVOKE_ASYNC(radio, /obj/item/integrated_signaler.proc/send_activation)
INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/integrated_signaler,send_activation))
playsound(src, 'sound/machines/terminal_select.ogg', 50, 1)
if("Signal Frequency")
@@ -56,7 +56,7 @@
SEND_SIGNAL(AM, COMSIG_MOVABLE_SECLUDED_LOCATION)
last_use = world.time
icon_state = "desynchronizer-on"
addtimer(CALLBACK(src, .proc/resync), duration)
addtimer(CALLBACK(src,PROC_REF(resync)), duration)
/obj/item/desynchronizer/proc/resync()
new /obj/effect/temp_visual/desynchronizer(sync_holder.drop_location())
@@ -402,7 +402,7 @@
update_gut(hound)
if(cleaning)
addtimer(CALLBACK(src, .proc/clean_cycle, hound), 50)
addtimer(CALLBACK(src,PROC_REF(clean_cycle), hound), 50)
/obj/item/dogborg/sleeper/proc/CheckAccepted(obj/item/I)
return is_type_in_typecache(I, important_items)
@@ -43,7 +43,7 @@
maptext = "[circuits]"
icon_state = "[initial(icon_state)]_recharging"
var/recharge_time = min(600, circuit_cost * 5) //40W of cost for one fabrication = 20 seconds of recharge time; this is to prevent spamming
addtimer(CALLBACK(src, .proc/recharge), recharge_time)
addtimer(CALLBACK(src,PROC_REF(recharge)), recharge_time)
return TRUE //The actual circuit magic itself is done on a per-object basis
/obj/item/electroadaptive_pseudocircuit/afterattack(atom/target, mob/living/user, proximity)
@@ -138,7 +138,7 @@
if(user.a_intent == INTENT_HELP)
if(!(obj_flags & EMAGGED))
user.visible_message("<span class='notice'>[user] scans [target] with [src].</span>", "<span class='notice'>You scan [target]'s radiation levels with [src]...</span>")
addtimer(CALLBACK(src, .proc/scan, target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents
addtimer(CALLBACK(src,PROC_REF(scan), target, user), 20, TIMER_UNIQUE) // Let's not have spamming GetAllContents
else
user.visible_message("<span class='notice'>[user] scans [target] with [src].</span>", "<span class='danger'>You project [src]'s stored radiation into [target]!</span>")
target.rad_act(radiation_count)
@@ -213,7 +213,7 @@
return
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT)
RegisterSignal(user, COMSIG_ATOM_RAD_ACT, .proc/redirect_rad_act)
RegisterSignal(user, COMSIG_ATOM_RAD_ACT,PROC_REF(redirect_rad_act))
listeningTo = user
/obj/item/geiger_counter/cyborg/proc/redirect_rad_act(datum/source, amount)
+1 -1
View File
@@ -34,7 +34,7 @@ GLOBAL_LIST_EMPTY(GPS_list)
emped = TRUE
cut_overlay("working")
add_overlay("emp")
addtimer(CALLBACK(src, .proc/reboot), 300, TIMER_UNIQUE|TIMER_OVERRIDE) //if a new EMP happens, remove the old timer so it doesn't reactivate early
addtimer(CALLBACK(src,PROC_REF(reboot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) //if a new EMP happens, remove the old timer so it doesn't reactivate early
SStgui.close_uis(src) //Close the UI control if it is open.
/obj/item/gps/proc/reboot()
@@ -241,7 +241,7 @@
/obj/item/instrument/harmonica/equipped(mob/M, slot)
. = ..()
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
RegisterSignal(M, COMSIG_MOB_SAY,PROC_REF(handle_speech))
/obj/item/instrument/harmonica/dropped(mob/M)
. = ..()
+1 -1
View File
@@ -20,7 +20,7 @@
/obj/item/megaphone/equipped(mob/M, slot)
. = ..()
if (slot == SLOT_HANDS)
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
RegisterSignal(M, COMSIG_MOB_SAY,PROC_REF(handle_speech))
else
UnregisterSignal(M, COMSIG_MOB_SAY)
@@ -41,7 +41,7 @@
else if(!trigger_item)
return
can_trigger = FALSE
addtimer(CALLBACK(src, .proc/trigger), trigger_delay)
addtimer(CALLBACK(src,PROC_REF(trigger)), trigger_delay)
/obj/item/pressure_plate/proc/trigger()
can_trigger = TRUE
@@ -199,7 +199,7 @@
spans = list(M.speech_span)
if(!language)
language = M.get_default_language()
INVOKE_ASYNC(src, .proc/talk_into_impl, M, message, channel, spans.Copy(), language)
INVOKE_ASYNC(src,PROC_REF(talk_into_impl), M, message, channel, spans.Copy(), language)
playsound(src, 'sound/voice/radioin.ogg', 25, 0)
return ITALICS | REDUCE_RANGE
@@ -269,7 +269,7 @@
// Non-subspace radios will check in a couple of seconds, and if the signal
// was never received, send a mundane broadcast (no headsets).
addtimer(CALLBACK(src, .proc/backup_transmission, signal), 20)
addtimer(CALLBACK(src,PROC_REF(backup_transmission), signal), 20)
/obj/item/radio/proc/backup_transmission(datum/signal/subspace/vocal/signal)
var/turf/T = get_turf(src)
@@ -43,7 +43,7 @@
soundloop.stop()
soundloop2.stop()
to_chat(loc, "<span class='userdanger'>*ding*</span>")
addtimer(CALLBACK(src, .proc/snap), 2)
addtimer(CALLBACK(src,PROC_REF(snap)), 2)
/obj/item/reverse_bear_trap/attack_hand(mob/user)
if(iscarbon(user))
@@ -133,7 +133,7 @@
if(toggle)
toggle = FALSE
toggle_valve()
addtimer(CALLBACK(src, .proc/toggle_off), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever
addtimer(CALLBACK(src,PROC_REF(toggle_off)), 5) //To stop a signal being spammed from a proxy sensor constantly going off or whatever
/obj/item/transfer_valve/proc/toggle_off()
toggle = TRUE
@@ -224,7 +224,7 @@
merge_gases()
for(var/i in 1 to 6)
addtimer(CALLBACK(src, /atom/.proc/update_icon), 20 + (i - 1) * 10)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/,update_icon)), 20 + (i - 1) * 10)
else if(valve_open && tank_one && tank_two)
split_gases()
+1 -1
View File
@@ -64,7 +64,7 @@
say(answer)
on_cooldown = TRUE
addtimer(CALLBACK(src, .proc/clear_cooldown), cooldown_time)
addtimer(CALLBACK(src,PROC_REF(clear_cooldown)), cooldown_time)
shaking = FALSE
@@ -311,7 +311,7 @@
message_admins("grenade primed by an assembly at [AREACOORD(DT)], attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name])</a>.")
log_game("grenade primed by an assembly at [AREACOORD(DT)], attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name])")
else
addtimer(CALLBACK(src, .proc/prime), det_time)
addtimer(CALLBACK(src,PROC_REF(prime)), det_time)
log_game("A grenade detonated at [AREACOORD(DT)]")
@@ -57,7 +57,7 @@
var/steps = rand(1,4)
for(var/i in 1 to steps)
step_away(src,loc)
addtimer(CALLBACK(src, .proc/prime), rand(15,60))
addtimer(CALLBACK(src,PROC_REF(prime)), rand(15,60))
/obj/item/grenade/clusterbuster/segment/prime()
new payload_spawner(drop_location(), payload, rand(min_spawned,max_spawned))
+1 -1
View File
@@ -79,7 +79,7 @@
playsound(src, 'sound/weapons/armbomb.ogg', volume, 1)
active = TRUE
icon_state = initial(icon_state) + "_active"
addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride)
addtimer(CALLBACK(src,PROC_REF(prime)), isnull(delayoverride)? det_time : delayoverride)
/obj/item/grenade/proc/prime()
var/turf/T = get_turf(src)
+1 -1
View File
@@ -127,7 +127,7 @@
target.add_overlay(plastic_overlay, TRUE)
if(!nadeassembly)
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [det_time].</span>")
addtimer(CALLBACK(src, .proc/prime), det_time*10)
addtimer(CALLBACK(src,PROC_REF(prime)), det_time*10)
else
qdel(src) //How?
+1 -1
View File
@@ -313,7 +313,7 @@
/obj/item/restraints/legcuffs/beartrap/energy/New()
..()
addtimer(CALLBACK(src, .proc/dissipate), 100)
addtimer(CALLBACK(src,PROC_REF(dissipate)), 100)
/obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate()
if(!ismob(loc))
+2 -2
View File
@@ -29,7 +29,7 @@
. = ..()
START_PROCESSING(SSprocessing, src)
GLOB.poi_list += src
RegisterSignal(src, COMSIG_MOVABLE_POST_THROW, .proc/move_gracefully)
RegisterSignal(src, COMSIG_MOVABLE_POST_THROW,PROC_REF(move_gracefully))
/obj/item/his_grace/Destroy()
STOP_PROCESSING(SSprocessing, src)
@@ -40,7 +40,7 @@
/obj/item/his_grace/attack_self(mob/living/user)
if(!awakened)
INVOKE_ASYNC(src, .proc/awaken, user)
INVOKE_ASYNC(src,PROC_REF(awaken), user)
/obj/item/his_grace/attack(mob/living/M, mob/user)
if(awakened && M.stat)
+2 -2
View File
@@ -264,7 +264,7 @@
nullrod_icons = sortList(nullrod_icons)
var/choice = show_radial_menu(L, src , nullrod_icons, custom_check = CALLBACK(src, .proc/check_menu, L), radius = 42, require_near = TRUE)
var/choice = show_radial_menu(L, src , nullrod_icons, custom_check = CALLBACK(src,PROC_REF(check_menu), L), radius = 42, require_near = TRUE)
if(!choice || !check_menu(L))
return
@@ -727,7 +727,7 @@
playsound(get_turf(user), 'sound/effects/woodhit.ogg', 75, 1, -1)
H.adjustStaminaLoss(rand(12,18))
if(prob(25))
(INVOKE_ASYNC(src, .proc/jedi_spin, user))
(INVOKE_ASYNC(src,PROC_REF(jedi_spin), user))
else
return ..()
+1 -1
View File
@@ -137,7 +137,7 @@
ADD_TRAIT(src, TRAIT_NODROP, HOT_POTATO_TRAIT)
name = "primed [name]"
activation_time = timer + world.time
detonation_timerid = addtimer(CALLBACK(src, .proc/detonate), delay, TIMER_STOPPABLE)
detonation_timerid = addtimer(CALLBACK(src,PROC_REF(detonate)), delay, TIMER_STOPPABLE)
START_PROCESSING(SSfastprocess, src)
var/turf/T = get_turf(src)
message_admins("[user? "[ADMIN_LOOKUPFLW(user)] has primed [src]" : "A [src] has been primed"] (Timer:[delay],Explosive:[detonate_explosion],Range:[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range]) for detonation at [ADMIN_VERBOSEJMP(T)]")
@@ -37,7 +37,7 @@
popup = FALSE
if(response == "No")
return FALSE
addtimer(CALLBACK(src, .proc/timed_explosion, cause), 1)
addtimer(CALLBACK(src,PROC_REF(timed_explosion), cause), 1)
/obj/item/implant/explosive/implant(mob/living/target)
for(var/X in target.implants)
@@ -65,10 +65,10 @@
if(delay > 7)
imp_in?.visible_message("<span class='warning'>[imp_in] starts beeping ominously!</span>")
playsound(get_turf(imp_in ? imp_in : src), 'sound/items/timer.ogg', 30, 0)
addtimer(CALLBACK(src, .proc/double_pain, TRUE), delay * 0.25)
addtimer(CALLBACK(src, .proc/double_pain), delay * 0.5)
addtimer(CALLBACK(src, .proc/double_pain), delay * 0.75)
addtimer(CALLBACK(src, .proc/boom_goes_the_weasel), delay)
addtimer(CALLBACK(src,PROC_REF(double_pain), TRUE), delay * 0.25)
addtimer(CALLBACK(src,PROC_REF(double_pain)), delay * 0.5)
addtimer(CALLBACK(src,PROC_REF(double_pain)), delay * 0.75)
addtimer(CALLBACK(src,PROC_REF(boom_goes_the_weasel)), delay)
else //If the delay is short, just blow up already jeez
boom_goes_the_weasel()
@@ -36,7 +36,7 @@
/obj/structure/closet/cardboard/agent/proc/reveal()
alpha = 255
addtimer(CALLBACK(src, .proc/go_invisible), 10, TIMER_OVERRIDE|TIMER_UNIQUE)
addtimer(CALLBACK(src,PROC_REF(go_invisible)), 10, TIMER_OVERRIDE|TIMER_UNIQUE)
/obj/structure/closet/cardboard/agent/Bump(atom/movable/A)
. = ..()
+2 -2
View File
@@ -124,8 +124,8 @@
var/speedbase = abs((4 SECONDS) / limbs_to_dismember.len)
for(bodypart in limbs_to_dismember)
i++
addtimer(CALLBACK(src, .proc/suicide_dismember, user, bodypart), speedbase * i)
addtimer(CALLBACK(src, .proc/manual_suicide, user), (5 SECONDS) * i)
addtimer(CALLBACK(src,PROC_REF(suicide_dismember), user, bodypart), speedbase * i)
addtimer(CALLBACK(src,PROC_REF(manual_suicide), user), (5 SECONDS) * i)
return MANUAL_SUICIDE
/obj/item/melee/sabre/proc/suicide_dismember(mob/living/user, obj/item/bodypart/affecting)
+5 -5
View File
@@ -369,7 +369,7 @@
if(charging)
return
if(candy < candymax)
addtimer(CALLBACK(src, .proc/charge_lollipops), charge_delay)
addtimer(CALLBACK(src,PROC_REF(charge_lollipops)), charge_delay)
charging = TRUE
/obj/item/borg/lollipop/proc/charge_lollipops()
@@ -759,7 +759,7 @@
/obj/item/borg/apparatus/Initialize()
. = ..()
RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT, .proc/safedecon)
RegisterSignal(loc.loc, COMSIG_BORG_SAFE_DECONSTRUCT,PROC_REF(safedecon))
/obj/item/borg/apparatus/Destroy()
if(stored)
@@ -808,7 +808,7 @@
var/obj/item/O = A
O.forceMove(src)
stored = O
RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, /atom/.proc/update_iconb)
RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom,update_iconb))
update_icon()
return
else
@@ -836,7 +836,7 @@
/obj/item/borg/apparatus/beaker/Initialize()
. = ..()
stored = new /obj/item/reagent_containers/glass/beaker/large(src)
RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, /atom/.proc/update_iconb)
RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom,update_iconb))
update_icon()
/obj/item/borg/apparatus/beaker/Destroy()
@@ -897,7 +897,7 @@
/obj/item/borg/apparatus/beaker/service/Initialize()
. = ..()
stored = new /obj/item/reagent_containers/food/drinks/drinkingglass(src)
RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, /atom/.proc/update_iconb)
RegisterSignal(stored, COMSIG_ATOM_UPDATE_ICON, TYPE_PROC_REF(/atom,update_iconb))
update_icon()
/**********************************************************************
@@ -355,7 +355,7 @@
/obj/item/borg/upgrade/selfrepair/dropped()
. = ..()
addtimer(CALLBACK(src, .proc/check_dropped), 1)
addtimer(CALLBACK(src,PROC_REF(check_dropped)), 1)
/obj/item/borg/upgrade/selfrepair/proc/check_dropped()
if(loc != cyborg)
+2 -2
View File
@@ -121,7 +121,7 @@
return
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/Pickup_ores)
RegisterSignal(user, COMSIG_MOVABLE_MOVED,PROC_REF(Pickup_ores))
listeningTo = user
/obj/item/storage/bag/ore/dropped()
@@ -333,7 +333,7 @@
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_QUICK_EMPTY)
// Make each item scatter a bit
for(var/obj/item/I in oldContents)
INVOKE_ASYNC(src, .proc/do_scatter, I)
INVOKE_ASYNC(src,PROC_REF(do_scatter), I)
if(prob(50))
playsound(M, 'sound/items/trayhit1.ogg', 50, TRUE)
+1 -1
View File
@@ -903,7 +903,7 @@
/obj/item/storage/box/papersack/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/pen))
var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, .proc/check_menu, user, W), radius = 36, require_near = TRUE)
var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src,PROC_REF(check_menu), user, W), radius = 36, require_near = TRUE)
if(!choice)
return FALSE
if(icon_state == "paperbag_[choice]")
+2 -2
View File
@@ -65,7 +65,7 @@
core = ncore
icon_state = "core_container_loaded"
to_chat(user, "<span class='warning'>Container is sealing...</span>")
addtimer(CALLBACK(src, .proc/seal), 50)
addtimer(CALLBACK(src,PROC_REF(seal)), 50)
return TRUE
/obj/item/nuke_core_container/proc/seal()
@@ -201,7 +201,7 @@
T.icon_state = "supermatter_tongs"
icon_state = "core_container_loaded"
to_chat(user, "<span class='warning'>Container is sealing...</span>")
addtimer(CALLBACK(src, .proc/seal), 50)
addtimer(CALLBACK(src,PROC_REF(seal)), 50)
return TRUE
/obj/item/nuke_core_container/supermatter/seal()
+3 -3
View File
@@ -308,7 +308,7 @@
icon_state = "his_grace_awakened"
to_chat(user, "<span class='warning'>You wind up [src], it begins to rumble.</span>")
active = TRUE
addtimer(CALLBACK(src, .proc/stopRumble), 600)
addtimer(CALLBACK(src,PROC_REF(stopRumble)), 600)
else
to_chat(user, "[src] is already active.")
@@ -405,7 +405,7 @@
/obj/effect/decal/cleanable/ash/snappop_phoenix/New()
. = ..()
addtimer(CALLBACK(src, .proc/respawn), respawn_time)
addtimer(CALLBACK(src,PROC_REF(respawn)), respawn_time)
/obj/effect/decal/cleanable/ash/snappop_phoenix/proc/respawn()
new /obj/item/toy/snappop/phoenix(get_turf(src))
@@ -791,7 +791,7 @@
return
var/mob/living/carbon/human/cardUser = usr
var/O = src
var/choice = show_radial_menu(usr,src, handradial, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 36, require_near = TRUE)
var/choice = show_radial_menu(usr,src, handradial, custom_check = CALLBACK(src,PROC_REF(check_menu), user), radius = 36, require_near = TRUE)
if(!choice)
return FALSE
var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc)
+3 -3
View File
@@ -359,7 +359,7 @@
impale(user)
return
if(spinnable && (wielded) && prob(50))
INVOKE_ASYNC(src, .proc/jedi_spin, user)
INVOKE_ASYNC(src,PROC_REF(jedi_spin), user)
/obj/item/twohanded/dualsaber/proc/jedi_spin(mob/living/user)
for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH))
@@ -437,7 +437,7 @@
add_fingerprint(user)
// Light your candles while spinning around the room
if(spinnable)
INVOKE_ASYNC(src, .proc/jedi_spin, user)
INVOKE_ASYNC(src,PROC_REF(jedi_spin), user)
/obj/item/twohanded/dualsaber/green
possible_colors = list("green")
@@ -861,7 +861,7 @@
. = ..()
if(!wielded)
return
RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/unwield)
RegisterSignal(user, COMSIG_MOVABLE_MOVED,PROC_REF(unwield))
listeningTo = user
user.visible_message("[user] holds [src] up to [user.p_their()] eyes.","You hold [src] up to your eyes.")
item_state = "binoculars_wielded"
+1 -1
View File
@@ -237,7 +237,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
obj_flags |= BEING_SHOCKED
var/power_bounced = power / 2
tesla_zap(src, 3, power_bounced, tesla_flags, shocked_targets)
addtimer(CALLBACK(src, .proc/reset_shocked), 10)
addtimer(CALLBACK(src,PROC_REF(reset_shocked)), 10)
//The surgeon general warns that being buckled to certain objects receiving powerful shocks is greatly hazardous to your health
//Only tesla coils and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later.
+2 -2
View File
@@ -229,7 +229,7 @@
if(status == GROWING || status == GROWN)
child = new(src)
if(status == GROWING)
addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
addtimer(CALLBACK(src,PROC_REF(Grow)), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
proximity_monitor = new(src, status == GROWN ? 1 : 0)
if(status == BURST)
obj_integrity = integrity_failure
@@ -285,7 +285,7 @@
status = BURST
update_icon()
flick("egg_opening", src)
addtimer(CALLBACK(src, .proc/finish_bursting, kill), 15)
addtimer(CALLBACK(src,PROC_REF(finish_bursting), kill), 15)
/obj/structure/alien/egg/proc/finish_bursting(kill = TRUE)
if(child)
@@ -90,11 +90,11 @@
/obj/structure/chair/Initialize()
. = ..()
if(!anchored) //why would you put these on the shuttle?
addtimer(CALLBACK(src, .proc/RemoveFromLatejoin), 0)
addtimer(CALLBACK(src,PROC_REF(RemoveFromLatejoin)), 0)
/obj/structure/chair/ComponentInitialize()
. = ..()
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null)
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src,PROC_REF(can_user_rotate),CALLBACK(src),PROC_REF(can_be_rotated),null))
/obj/structure/chair/proc/can_be_rotated(mob/user)
return TRUE
@@ -25,7 +25,7 @@
var/oldloc = loc
step(src, direction)
if(oldloc != loc)
addtimer(CALLBACK(src, .proc/ResetMoveDelay), (use_mob_movespeed ? user.movement_delay() : CONFIG_GET(number/movedelay/walk_delay)) * move_speed_multiplier)
addtimer(CALLBACK(src,PROC_REF(ResetMoveDelay)), (use_mob_movespeed ? user.movement_delay() : CONFIG_GET(number/movedelay/walk_delay)) * move_speed_multiplier)
else
ResetMoveDelay()
@@ -45,7 +45,7 @@
if (BREAKER_SLAT_DROPPED)
slat_status = BREAKER_SLAT_MOVING
icon_state = "breaker_raise"
addtimer(CALLBACK(src, .proc/raise_slat), BREAKER_ANIMATION_LENGTH)
addtimer(CALLBACK(src,PROC_REF(raise_slat)), BREAKER_ANIMATION_LENGTH)
return
if (BREAKER_SLAT_RAISED)
if (LAZYLEN(buckled_mobs))
@@ -90,7 +90,7 @@
playsound(src, 'sound/effects/femur_breaker.ogg', 100, FALSE)
H.Stun(BREAKER_ANIMATION_LENGTH)
addtimer(CALLBACK(src, .proc/damage_leg, H), BREAKER_ANIMATION_LENGTH, TIMER_UNIQUE)
addtimer(CALLBACK(src,PROC_REF(damage_leg), H), BREAKER_ANIMATION_LENGTH, TIMER_UNIQUE)
log_combat(user, H, "femur broke", src)
slat_status = BREAKER_SLAT_DROPPED
+1 -1
View File
@@ -15,7 +15,7 @@
smoke.start()
visible_message("<span class='boldannounce'>[src] warps in!</span>")
playsound(src.loc, 'sound/effects/empulse.ogg', 25, 1)
addtimer(CALLBACK(src, .proc/warpbots), rand(10, 600))
addtimer(CALLBACK(src,PROC_REF(warpbots)), rand(10, 600))
/obj/structure/hivebot_beacon/proc/warpbots()
icon_state = "def_radar"
+2 -2
View File
@@ -166,7 +166,7 @@
var/mob/living/M = user
M.electrocute_act(15,"Energy Barrier", safety=1)
shockcd = TRUE
addtimer(CALLBACK(src, .proc/cooldown), 5)
addtimer(CALLBACK(src,PROC_REF(cooldown)), 5)
/obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/movable/AM)
if(shockcd)
@@ -178,4 +178,4 @@
var/mob/living/M = AM
M.electrocute_act(15,"Energy Barrier", safety=1)
shockcd = TRUE
addtimer(CALLBACK(src, .proc/cooldown), 5)
addtimer(CALLBACK(src,PROC_REF(cooldown)), 5)
+1 -1
View File
@@ -105,7 +105,7 @@
if(!length(items))
return
items = sortList(items)
var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 38, require_near = TRUE)
var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src,PROC_REF(check_menu), user), radius = 38, require_near = TRUE)
if(!pick)
return
switch(pick)
+1 -1
View File
@@ -99,7 +99,7 @@
)
if (up && down)
var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src,PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
if (!is_ghost && !in_range(src, user))
return // nice try
switch(result)
@@ -80,7 +80,7 @@ GLOBAL_LIST_INIT(tendrils, list())
visible_message("<span class='boldannounce'>The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!</span>")
visible_message("<span class='warning'>Something falls free of the tendril!</span>")
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, 1, 1)
addtimer(CALLBACK(src, .proc/collapse), 50)
addtimer(CALLBACK(src,PROC_REF(collapse)), 50)
/obj/effect/collapse/Destroy()
QDEL_NULL(emitted_light)
+1 -1
View File
@@ -67,7 +67,7 @@
for(var/m in linked_minds)
var/datum/mind/mind = m
if(!mind.current || (mind.current && mind.current.stat == DEAD))
addtimer(CALLBACK(src, .proc/respawn, mind), respawn_time, TIMER_UNIQUE)
addtimer(CALLBACK(src,PROC_REF(respawn), mind), respawn_time, TIMER_UNIQUE)
/obj/structure/life_candle/proc/respawn(datum/mind/mind)
var/turf/T = get_turf(src)
+2 -2
View File
@@ -9,8 +9,8 @@
/obj/structure/micro_brick/Initialize()
. = ..()
RegisterSignal(src, COMSIG_PARENT_ATTACKBY, .proc/on_attackby)
RegisterSignal(src, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand)
RegisterSignal(src, COMSIG_PARENT_ATTACKBY,PROC_REF(on_attackby))
RegisterSignal(src, COMSIG_ATOM_ATTACK_HAND,PROC_REF(on_attack_hand))
/obj/structure/micro_brick/proc/on_attackby(datum/source, obj/item/item, mob/user, params)
if(try_crush_microbricks(user))
@@ -96,7 +96,7 @@
isSwitchingStates = 0
if(close_delay != -1)
addtimer(CALLBACK(src, .proc/Close), close_delay)
addtimer(CALLBACK(src,PROC_REF(Close)), close_delay)
/obj/structure/mineral_door/proc/Close()
if(isSwitchingStates || state != 1)
+1 -1
View File
@@ -438,7 +438,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
visible_message("One of the morgue coffins currently holds a soul that is eager to have its body revived.")
radio.talk_into(src, "One of the morgue coffins currently holds a soul that is eager to have its body revived.", medical_channel)
playsound(loc, 'sound/machines/ping.ogg', 50)
addtimer(CALLBACK(src, .proc/liftcooldown), 500)
addtimer(CALLBACK(src,PROC_REF(liftcooldown)), 500)
/obj/structure/bodycontainer/morgue/proc/liftcooldown()
inuse = FALSE
+1 -1
View File
@@ -26,7 +26,7 @@
var/action = anchored ? "unscrews [src] from" : "screws [src] to"
var/uraction = anchored ? "unscrew [src] from " : "screw [src] to"
user.visible_message("<span class='warning'>[user] [action] the floor.</span>", "<span class='notice'>You start to [uraction] the floor...</span>", "You hear rustling noises.")
if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, .proc/check_anchored_state, anchored)))
if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src,PROC_REF(check_anchored_state), anchored)))
setAnchored(!anchored)
to_chat(user, "<span class='notice'> You [anchored ? "unscrew" : "screw"] [src] from the floor.</span>")
return TRUE
+1 -1
View File
@@ -96,7 +96,7 @@
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_TURF_MULTIZ_NEW)
var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP)
RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_new)
RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW,PROC_REF(on_multiz_new))
listeningTo = T
/obj/structure/stairs/proc/force_open_above()
+1 -1
View File
@@ -226,7 +226,7 @@
return
// Don't break if they're just flying past
if(AM.throwing)
addtimer(CALLBACK(src, .proc/throw_check, AM), 5)
addtimer(CALLBACK(src,PROC_REF(throw_check), AM), 5)
else
check_break(AM)
+1 -1
View File
@@ -237,7 +237,7 @@
//Copy from /obj/structure/chair
/obj/machinery/shower/ComponentInitialize()
. = ..()
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null)
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src,PROC_REF(can_user_rotate),CALLBACK(src),PROC_REF(can_be_rotated),null))
/obj/machinery/shower/proc/can_be_rotated(mob/user)
return !anchored
@@ -319,7 +319,7 @@
/datum/component/simple_rotation,
ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS,
null,
CALLBACK(src, .proc/can_be_rotated),
CALLBACK(src,PROC_REF(can_be_rotated)),
CALLBACK(src,.proc/after_rotation)
)
+6 -6
View File
@@ -67,7 +67,7 @@
/obj/structure/window/ComponentInitialize()
. = ..()
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation))
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src,PROC_REF(can_be_rotated),CALLBACK(src,.proc/after_rotation)))
/obj/structure/window/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
switch(the_rcd.mode)
@@ -186,17 +186,17 @@
if(reinf)
if(state == WINDOW_SCREWED_TO_FRAME || state == WINDOW_IN_FRAME)
to_chat(user, "<span class='notice'>You begin to [state == WINDOW_SCREWED_TO_FRAME ? "unscrew the window from":"screw the window to"] the frame...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src,PROC_REF(check_state_and_anchored), state, anchored)))
state = (state == WINDOW_IN_FRAME ? WINDOW_SCREWED_TO_FRAME : WINDOW_IN_FRAME)
to_chat(user, "<span class='notice'>You [state == WINDOW_IN_FRAME ? "unfasten the window from":"fasten the window to"] the frame.</span>")
else if(state == WINDOW_OUT_OF_FRAME)
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the frame from":"screw the frame to"] the floor...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src,PROC_REF(check_state_and_anchored), state, anchored)))
setAnchored(!anchored)
to_chat(user, "<span class='notice'>You [anchored ? "fasten the frame to":"unfasten the frame from"] the floor.</span>")
else //if we're not reinforced, we don't need to check or update state
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the window from":"screw the window to"] the floor...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src,PROC_REF(check_anchored), anchored)))
setAnchored(!anchored)
to_chat(user, "<span class='notice'>You [anchored ? "fasten the window to":"unfasten the window from"] the floor.</span>")
return
@@ -205,7 +205,7 @@
else if (istype(I, /obj/item/crowbar) && reinf && (state == WINDOW_OUT_OF_FRAME || state == WINDOW_IN_FRAME))
to_chat(user, "<span class='notice'>You begin to lever the window [state == WINDOW_OUT_OF_FRAME ? "into":"out of"] the frame...</span>")
I.play_tool_sound(src, 75)
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src,PROC_REF(check_state_and_anchored), state, anchored)))
state = (state == WINDOW_OUT_OF_FRAME ? WINDOW_IN_FRAME : WINDOW_OUT_OF_FRAME)
to_chat(user, "<span class='notice'>You pry the window [state == WINDOW_IN_FRAME ? "into":"out of"] the frame.</span>")
return
@@ -213,7 +213,7 @@
else if(istype(I, /obj/item/wrench) && !anchored)
I.play_tool_sound(src, 75)
to_chat(user, "<span class='notice'> You begin to disassemble [src]...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src,PROC_REF(check_state_and_anchored), state, anchored)))
var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount)
G.add_fingerprint(user)
playsound(src, 'sound/items/Deconstruct.ogg', 50, 1)