mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 15:42:35 +00:00
Update the codebase to 515. (#15553)
* Update the codebase to 515. * edit that * WHOOPS * maor * maybe works * libcall and shit * do that too * remove that * auxtools isnt updated so get rid of it * actually remove auxtools lol Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
2
.github/workflows/byond.yml
vendored
2
.github/workflows/byond.yml
vendored
@@ -11,7 +11,7 @@ on:
|
|||||||
env:
|
env:
|
||||||
MACRO_COUNT: 0
|
MACRO_COUNT: 0
|
||||||
GENDER_COUNT: 6
|
GENDER_COUNT: 6
|
||||||
TO_WORLD_COUNT: 202
|
TO_WORLD_COUNT: 201
|
||||||
TGM_CHECK: "//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE"
|
TGM_CHECK: "//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
@@ -26,8 +26,8 @@
|
|||||||
#include "code\__defines\antagonist.dm"
|
#include "code\__defines\antagonist.dm"
|
||||||
#include "code\__defines\armor.dm"
|
#include "code\__defines\armor.dm"
|
||||||
#include "code\__defines\atmos.dm"
|
#include "code\__defines\atmos.dm"
|
||||||
#include "code\__defines\auxtools.dm"
|
|
||||||
#include "code\__defines\battle_monsters.dm"
|
#include "code\__defines\battle_monsters.dm"
|
||||||
|
#include "code\__defines\byond_compat.dm"
|
||||||
#include "code\__defines\callback.dm"
|
#include "code\__defines\callback.dm"
|
||||||
#include "code\__defines\chemistry.dm"
|
#include "code\__defines\chemistry.dm"
|
||||||
#include "code\__defines\color.dm"
|
#include "code\__defines\color.dm"
|
||||||
@@ -35,7 +35,6 @@
|
|||||||
#include "code\__defines\dna.dm"
|
#include "code\__defines\dna.dm"
|
||||||
#include "code\__defines\drinks.dm"
|
#include "code\__defines\drinks.dm"
|
||||||
#include "code\__defines\dview.dm"
|
#include "code\__defines\dview.dm"
|
||||||
#include "code\__defines\extools.dm"
|
|
||||||
#include "code\__defines\flags.dm"
|
#include "code\__defines\flags.dm"
|
||||||
#include "code\__defines\gamemode.dm"
|
#include "code\__defines\gamemode.dm"
|
||||||
#include "code\__defines\ghostspawner.dm"
|
#include "code\__defines\ghostspawner.dm"
|
||||||
|
|||||||
Binary file not shown.
@@ -1,18 +0,0 @@
|
|||||||
/proc/auxtools_stack_trace(msg)
|
|
||||||
CRASH(msg)
|
|
||||||
|
|
||||||
/proc/enable_debugging(mode, port)
|
|
||||||
CRASH("auxtools not loaded")
|
|
||||||
|
|
||||||
/world/New()
|
|
||||||
var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL")
|
|
||||||
if (debug_server)
|
|
||||||
call(debug_server, "auxtools_init")()
|
|
||||||
enable_debugging()
|
|
||||||
. = ..()
|
|
||||||
|
|
||||||
/world/Del()
|
|
||||||
var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL")
|
|
||||||
if (debug_server)
|
|
||||||
call(debug_server, "auxtools_shutdown")()
|
|
||||||
. = ..()
|
|
||||||
23
code/__defines/byond_compat.dm
Normal file
23
code/__defines/byond_compat.dm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// 515 split call for external libraries into call_ext
|
||||||
|
#if DM_VERSION < 515
|
||||||
|
#define LIBCALL call
|
||||||
|
#else
|
||||||
|
#define LIBCALL call_ext
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// So we want to have compile time guarantees these procs exist on local type, unfortunately 515 killed the .proc/procname syntax so we have to use nameof()
|
||||||
|
#if DM_VERSION < 515
|
||||||
|
/// Call by name proc reference, checks if the proc exists on this type or as a global proc
|
||||||
|
#define PROC_REF(X) (.proc/##X)
|
||||||
|
/// Call by name proc reference, checks if the proc exists on given type or as a global proc
|
||||||
|
#define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X)
|
||||||
|
/// Call by name proc reference, checks if the proc is existing global proc
|
||||||
|
#define GLOBAL_PROC_REF(X) (/proc/##X)
|
||||||
|
#else
|
||||||
|
/// Call by name proc reference, checks if the proc exists on this type or as a global proc
|
||||||
|
#define PROC_REF(X) (nameof(.proc/##X))
|
||||||
|
/// Call by name proc reference, checks if the proc exists on given type or as a global proc
|
||||||
|
#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X))
|
||||||
|
/// Call by name proc reference, checks if the proc is existing global proc
|
||||||
|
#define GLOBAL_PROC_REF(X) (/proc/##X)
|
||||||
|
#endif
|
||||||
@@ -1,178 +0,0 @@
|
|||||||
#define EXTOOLS (world.system_type == MS_WINDOWS ? "byond-extools.dll" : "byond-extools")
|
|
||||||
#define EXTOOLS_SUCCESS "SUCCESS"
|
|
||||||
#define EXTOOLS_FAILED "FAIL"
|
|
||||||
|
|
||||||
/*
|
|
||||||
Core - Provides necessary functionality for other modules.
|
|
||||||
|
|
||||||
Initializing any other modules also initializes this so it shouldn't be necessary to call this.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/proc/extools_initialize()
|
|
||||||
return call(EXTOOLS, "core_initialize")() == EXTOOLS_SUCCESS
|
|
||||||
|
|
||||||
/*
|
|
||||||
TFFI - Threaded FFI
|
|
||||||
|
|
||||||
All DLL calls are automatically threaded off.
|
|
||||||
Black magic is used to suspend (sleep) the currently executing proc, allowing non-blocking FFI.
|
|
||||||
|
|
||||||
You may call a DLL function and sleep until it returns, pass a callback to be called with the result,
|
|
||||||
or call resolve() on the /datum/promise to receive the return value at any time.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
|
|
||||||
var/x = call_wait("sample.dll", "do_work", "arg1", "arg2", "arg3")
|
|
||||||
|
|
||||||
- Calls the do_work function from sample.dll with 3 arguments. The proc sleeps until do_work returns.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var/datum/promise/P = call_async("sample.dll", "do_work", "arg1")
|
|
||||||
... do something else ...
|
|
||||||
var/result = P.resolve()
|
|
||||||
|
|
||||||
- Calls do_work with 1 argument. Returns a promise object. Runs some other code before calling P.resolve() to obtain the result.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/proc/print_result(result)
|
|
||||||
world << result
|
|
||||||
|
|
||||||
call_cb("sample.dll", "do_work", /proc/print_result, "arg1", "arg2")
|
|
||||||
|
|
||||||
- Calls do_work with 2 arguments. The callback is invoked with the result as the single argument. Execution resumes immediately.
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
/proc/tffi_initialize()
|
|
||||||
return call(EXTOOLS, "tffi_initialize")() == EXTOOLS_SUCCESS
|
|
||||||
|
|
||||||
var/fallback_alerted = FALSE
|
|
||||||
var/next_promise_id = 0
|
|
||||||
|
|
||||||
/datum/promise
|
|
||||||
var/completed = FALSE
|
|
||||||
var/result = ""
|
|
||||||
var/callback_context = GLOBAL_PROC
|
|
||||||
var/callback_proc = null
|
|
||||||
var/__id = 0
|
|
||||||
|
|
||||||
/datum/promise/New()
|
|
||||||
__id = next_promise_id++ //please don't create more than 10^38 promises in a single tick
|
|
||||||
|
|
||||||
//This proc's bytecode is overwritten to allow suspending and resuming on demand.
|
|
||||||
//None of the code here should run.
|
|
||||||
/datum/promise/proc/__internal_resolve(ref, id)
|
|
||||||
if(!fallback_alerted && world.system_type != UNIX) // the rewriting is currently broken on Linux.
|
|
||||||
world << "<b>TFFI: __internal_resolve has not been rewritten, the TFFI DLL was not loaded correctly.</b>"
|
|
||||||
world.log << "<b>TFFI: __internal_resolve has not been rewritten, the TFFI DLL was not loaded correctly.</b>"
|
|
||||||
fallback_alerted = TRUE
|
|
||||||
while(!completed)
|
|
||||||
sleep(1)
|
|
||||||
//It might be better to just fail and notify the user that something went wrong.
|
|
||||||
|
|
||||||
/datum/promise/proc/__resolve_callback()
|
|
||||||
__internal_resolve("\ref[src]", __id)
|
|
||||||
if(callback_context == GLOBAL_PROC)
|
|
||||||
call(callback_proc)(result)
|
|
||||||
else
|
|
||||||
call(callback_context, callback_proc)(result)
|
|
||||||
|
|
||||||
/datum/promise/proc/resolve()
|
|
||||||
__internal_resolve("\ref[src]", __id)
|
|
||||||
return result
|
|
||||||
|
|
||||||
/proc/call_async()
|
|
||||||
var/list/arguments = args.Copy()
|
|
||||||
var/datum/promise/P = new
|
|
||||||
arguments.Insert(1, "\ref[P]")
|
|
||||||
call(EXTOOLS, "call_async")(arglist(arguments))
|
|
||||||
return P
|
|
||||||
|
|
||||||
/proc/call_cb()
|
|
||||||
var/list/arguments = args.Copy()
|
|
||||||
var/context = arguments[3]
|
|
||||||
var/callback = arguments[4]
|
|
||||||
arguments.Cut(3, 5)
|
|
||||||
var/datum/promise/P = new
|
|
||||||
P.callback_context = context
|
|
||||||
P.callback_proc = callback
|
|
||||||
arguments.Insert(1, "\ref[P]")
|
|
||||||
call(EXTOOLS, "call_async")(arglist(arguments))
|
|
||||||
spawn(0)
|
|
||||||
P.__resolve_callback()
|
|
||||||
|
|
||||||
/proc/call_wait()
|
|
||||||
return call_async(arglist(args)).resolve()
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
Extended Profiling - High precision in-depth performance profiling.
|
|
||||||
|
|
||||||
Turning on extended profiling for a proc will cause each execution of it to generate a file in the ./profiles directory
|
|
||||||
containing a breakdown of time spent executing the proc and each sub-proc it calls. Import the file into https://www.speedscope.app/ to
|
|
||||||
view a good visual representation.
|
|
||||||
|
|
||||||
Be aware that sleeping counts as stopping and restarting the execution of the proc, which will generate multiple files, one between each sleep.
|
|
||||||
|
|
||||||
For large procs the profiles may become unusably large. Optimizations pending.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
start_profiling(/datum/explosion/New)
|
|
||||||
|
|
||||||
- Enables profiling for /datum/explosion/New(), which will produce a detailed breakdown of each explosion that occurs afterwards.
|
|
||||||
|
|
||||||
stop_profiling(/datum/explosion/New)
|
|
||||||
|
|
||||||
- Disables profiling for explosions. Any currently running profiles will stop when the proc finishes executing or enters a sleep.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/proc/profiling_initialize()
|
|
||||||
return call(EXTOOLS, "extended_profiling_initialize")() == EXTOOLS_SUCCESS
|
|
||||||
|
|
||||||
/proc/start_profiling(procpath)
|
|
||||||
call(EXTOOLS, "enable_extended_profiling")("[procpath]")
|
|
||||||
|
|
||||||
/proc/stop_profiling(procpath)
|
|
||||||
call(EXTOOLS, "disable_extended_profiling")("[procpath]")
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Debug Server - High and low level debugging of DM code.
|
|
||||||
|
|
||||||
Calling debugger_initialize will start a debug server that allows connections from frontends,
|
|
||||||
such as SpaceManiac's VSCode extension for line-by-line debugging (and more), or Steamport's
|
|
||||||
Somnium for bytecode inspection.
|
|
||||||
|
|
||||||
Call with pause = TRUE to wait until the debugger connected and immediately break on the next instruction after the call.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/proc/debugger_initialize(pause = FALSE)
|
|
||||||
return call(EXTOOLS, "debug_initialize")(pause ? "pause" : "") == EXTOOLS_SUCCESS
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Misc
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
//Programatically enable and disable the built-in byond profiler. Useful if you want to, for example, profile subsystem initializations.
|
|
||||||
/proc/enable_profiling()
|
|
||||||
return call(EXTOOLS, "enable_profiling")() == EXTOOLS_SUCCESS
|
|
||||||
|
|
||||||
/proc/disable_profiling()
|
|
||||||
return call(EXTOOLS, "disable_profiling")() == EXTOOLS_SUCCESS
|
|
||||||
|
|
||||||
// Will dump the server's in-depth memory profile into the file specified.
|
|
||||||
/proc/dump_memory_profile(file_name)
|
|
||||||
return call(EXTOOLS, "dump_memory_usage")(file_name) == EXTOOLS_SUCCESS
|
|
||||||
@@ -311,8 +311,8 @@
|
|||||||
// This only works on 511 because it relies on 511's `var/something = foo = bar` syntax.
|
// This only works on 511 because it relies on 511's `var/something = foo = bar` syntax.
|
||||||
#define WEAKREF(D) (istype(D, /datum) && !D:gcDestroyed ? (D:weakref || (D:weakref = new/datum/weakref(D))) : null)
|
#define WEAKREF(D) (istype(D, /datum) && !D:gcDestroyed ? (D:weakref || (D:weakref = new/datum/weakref(D))) : null)
|
||||||
|
|
||||||
#define ADD_VERB_IN(the_atom,time,verb) addtimer(CALLBACK(the_atom, /atom/.proc/add_verb, verb), time, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
#define ADD_VERB_IN(the_atom,time,verb) addtimer(CALLBACK(the_atom, TYPE_PROC_REF(/atom, add_verb), verb), time, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
||||||
#define ADD_VERB_IN_IF(the_atom,time,verb,callback) addtimer(CALLBACK(the_atom, /atom/.proc/add_verb, verb, callback), time, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
#define ADD_VERB_IN_IF(the_atom,time,verb,callback) addtimer(CALLBACK(the_atom, TYPE_PROC_REF(/atom, add_verb), verb, callback), time, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
||||||
|
|
||||||
// Maploader bounds indices
|
// Maploader bounds indices
|
||||||
#define MAP_MINX 1
|
#define MAP_MINX 1
|
||||||
|
|||||||
@@ -18,6 +18,6 @@
|
|||||||
#define QDELETED(X) (!X || X.gcDestroyed)
|
#define QDELETED(X) (!X || X.gcDestroyed)
|
||||||
#define QDESTROYING(X) (!X || X.gcDestroyed == GC_CURRENTLY_BEING_QDELETED)
|
#define QDESTROYING(X) (!X || X.gcDestroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||||
|
|
||||||
#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE)
|
#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE)
|
||||||
#define QDEL_NULL(item) qdel(item); item = null
|
#define QDEL_NULL(item) qdel(item); item = null
|
||||||
#define QDEL_NULL_LIST(x) if(x) { for(var/y in x) { qdel(y) }}; if(x) {x.Cut(); x = null } // Second x check to handle items that LAZYREMOVE on qdel.
|
#define QDEL_NULL_LIST(x) if(x) { for(var/y in x) { qdel(y) }}; if(x) {x.Cut(); x = null } // Second x check to handle items that LAZYREMOVE on qdel.
|
||||||
|
|||||||
@@ -39,29 +39,29 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Gets the version of rust_g
|
/// Gets the version of rust_g
|
||||||
/proc/rustg_get_version() return call(RUST_G, "get_version")()
|
/proc/rustg_get_version() return LIBCALL(RUST_G, "get_version")()
|
||||||
|
|
||||||
#define rustg_dmi_strip_metadata(fname) call(RUST_G, "dmi_strip_metadata")(fname)
|
#define rustg_dmi_strip_metadata(fname) LIBCALL(RUST_G, "dmi_strip_metadata")(fname)
|
||||||
#define rustg_dmi_create_png(path, width, height, data) call(RUST_G, "dmi_create_png")(path, width, height, data)
|
#define rustg_dmi_create_png(path, width, height, data) LIBCALL(RUST_G, "dmi_create_png")(path, width, height, data)
|
||||||
#define rustg_dmi_resize_png(path, width, height, resizetype) call(RUST_G, "dmi_resize_png")(path, width, height, resizetype)
|
#define rustg_dmi_resize_png(path, width, height, resizetype) LIBCALL(RUST_G, "dmi_resize_png")(path, width, height, resizetype)
|
||||||
|
|
||||||
#define rustg_file_read(fname) call(RUST_G, "file_read")(fname)
|
#define rustg_file_read(fname) LIBCALL(RUST_G, "file_read")(fname)
|
||||||
#define rustg_file_exists(fname) call(RUST_G, "file_exists")(fname)
|
#define rustg_file_exists(fname) LIBCALL(RUST_G, "file_exists")(fname)
|
||||||
#define rustg_file_write(text, fname) call(RUST_G, "file_write")(text, fname)
|
#define rustg_file_write(text, fname) LIBCALL(RUST_G, "file_write")(text, fname)
|
||||||
#define rustg_file_append(text, fname) call(RUST_G, "file_append")(text, fname)
|
#define rustg_file_append(text, fname) LIBCALL(RUST_G, "file_append")(text, fname)
|
||||||
|
|
||||||
#ifdef RUSTG_OVERRIDE_BUILTINS
|
#ifdef RUSTG_OVERRIDE_BUILTINS
|
||||||
#define file2text(fname) rustg_file_read("[fname]")
|
#define file2text(fname) rustg_file_read("[fname]")
|
||||||
#define text2file(text, fname) rustg_file_append(text, "[fname]")
|
#define text2file(text, fname) rustg_file_append(text, "[fname]")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev)
|
#define rustg_git_revparse(rev) LIBCALL(RUST_G, "rg_git_revparse")(rev)
|
||||||
#define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev)
|
#define rustg_git_commit_date(rev) LIBCALL(RUST_G, "rg_git_commit_date")(rev)
|
||||||
|
|
||||||
#define rustg_hash_string(algorithm, text) call(RUST_G, "hash_string")(algorithm, text)
|
#define rustg_hash_string(algorithm, text) LIBCALL(RUST_G, "hash_string")(algorithm, text)
|
||||||
#define rustg_hash_file(algorithm, fname) call(RUST_G, "hash_file")(algorithm, fname)
|
#define rustg_hash_file(algorithm, fname) LIBCALL(RUST_G, "hash_file")(algorithm, fname)
|
||||||
#define rustg_hash_generate_totp(seed) call(RUST_G, "generate_totp")(seed)
|
#define rustg_hash_generate_totp(seed) LIBCALL(RUST_G, "generate_totp")(seed)
|
||||||
#define rustg_hash_generate_totp_tolerance(seed, tolerance) call(RUST_G, "generate_totp_tolerance")(seed, tolerance)
|
#define rustg_hash_generate_totp_tolerance(seed, tolerance) LIBCALL(RUST_G, "generate_totp_tolerance")(seed, tolerance)
|
||||||
|
|
||||||
#define RUSTG_HASH_MD5 "md5"
|
#define RUSTG_HASH_MD5 "md5"
|
||||||
#define RUSTG_HASH_SHA1 "sha1"
|
#define RUSTG_HASH_SHA1 "sha1"
|
||||||
@@ -80,25 +80,25 @@
|
|||||||
#define RUSTG_HTTP_METHOD_PATCH "patch"
|
#define RUSTG_HTTP_METHOD_PATCH "patch"
|
||||||
#define RUSTG_HTTP_METHOD_HEAD "head"
|
#define RUSTG_HTTP_METHOD_HEAD "head"
|
||||||
#define RUSTG_HTTP_METHOD_POST "post"
|
#define RUSTG_HTTP_METHOD_POST "post"
|
||||||
#define rustg_http_request_blocking(method, url, body, headers, options) call(RUST_G, "http_request_blocking")(method, url, body, headers, options)
|
#define rustg_http_request_blocking(method, url, body, headers, options) LIBCALL(RUST_G, "http_request_blocking")(method, url, body, headers, options)
|
||||||
#define rustg_http_request_async(method, url, body, headers, options) call(RUST_G, "http_request_async")(method, url, body, headers, options)
|
#define rustg_http_request_async(method, url, body, headers, options) LIBCALL(RUST_G, "http_request_async")(method, url, body, headers, options)
|
||||||
#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id)
|
#define rustg_http_check_request(req_id) LIBCALL(RUST_G, "http_check_request")(req_id)
|
||||||
|
|
||||||
#define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET"
|
#define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET"
|
||||||
#define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB"
|
#define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB"
|
||||||
#define RUSTG_JOB_ERROR "JOB PANICKED"
|
#define RUSTG_JOB_ERROR "JOB PANICKED"
|
||||||
|
|
||||||
#define rustg_log_write(fname, text, format) call(RUST_G, "log_write")(fname, text, format)
|
#define rustg_log_write(fname, text, format) LIBCALL(RUST_G, "log_write")(fname, text, format)
|
||||||
/proc/rustg_log_close_all() return call(RUST_G, "log_close_all")()
|
/proc/rustg_log_close_all() return LIBCALL(RUST_G, "log_close_all")()
|
||||||
|
|
||||||
#define rustg_time_microseconds(id) text2num(call(RUST_G, "time_microseconds")(id))
|
#define rustg_time_microseconds(id) text2num(LIBCALL(RUST_G, "time_microseconds")(id))
|
||||||
#define rustg_time_milliseconds(id) text2num(call(RUST_G, "time_milliseconds")(id))
|
#define rustg_time_milliseconds(id) text2num(LIBCALL(RUST_G, "time_milliseconds")(id))
|
||||||
#define rustg_time_reset(id) call(RUST_G, "time_reset")(id)
|
#define rustg_time_reset(id) LIBCALL(RUST_G, "time_reset")(id)
|
||||||
|
|
||||||
#define rustg_udp_send(addr, text) call(RUST_G, "udp_send")(addr, text)
|
#define rustg_udp_send(addr, text) LIBCALL(RUST_G, "udp_send")(addr, text)
|
||||||
|
|
||||||
#define rustg_url_encode(text) call(RUST_G, "url_encode")("[text]")
|
#define rustg_url_encode(text) LIBCALL(RUST_G, "url_encode")("[text]")
|
||||||
#define rustg_url_decode(text) call(RUST_G, "url_decode")(text)
|
#define rustg_url_decode(text) LIBCALL(RUST_G, "url_decode")(text)
|
||||||
|
|
||||||
#ifdef RUSTG_OVERRIDE_BUILTINS
|
#ifdef RUSTG_OVERRIDE_BUILTINS
|
||||||
#define url_encode(text) rustg_url_encode(text)
|
#define url_encode(text) rustg_url_encode(text)
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// -- SSoverlays --
|
// -- SSoverlays --
|
||||||
#define CUT_OVERLAY_IN(ovr, time) addtimer(CALLBACK(src, /atom/.proc/cut_overlay, ovr), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
|
#define CUT_OVERLAY_IN(ovr, time) addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), ovr), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
|
||||||
#define ATOM_USING_SSOVERLAY(atom) (atom.our_overlays || atom.priority_overlays)
|
#define ATOM_USING_SSOVERLAY(atom) (atom.our_overlays || atom.priority_overlays)
|
||||||
|
|
||||||
// -- SSticker --
|
// -- SSticker --
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
var/list/calling_arguments = length(args) > 2 ? args.Copy(3) : null
|
var/list/calling_arguments = length(args) > 2 ? args.Copy(3) : null
|
||||||
|
|
||||||
. = call(dll, func)(arglist(calling_arguments))
|
. = LIBCALL(dll, func)(arglist(calling_arguments))
|
||||||
|
|
||||||
if (world.timeofday - start > 10 SECONDS)
|
if (world.timeofday - start > 10 SECONDS)
|
||||||
crash_with("DLL call took longer than 10 seconds: [func]")
|
crash_with("DLL call took longer than 10 seconds: [func]")
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ datum/projectile_data
|
|||||||
/proc/flick_overlay(image/I, list/show_to, duration)
|
/proc/flick_overlay(image/I, list/show_to, duration)
|
||||||
for(var/client/C in show_to)
|
for(var/client/C in show_to)
|
||||||
C.images += I
|
C.images += I
|
||||||
addtimer(CALLBACK(GLOBAL_PROC, /.proc/remove_images_from_clients, I, show_to), duration)
|
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(remove_images_from_clients), I, show_to), duration)
|
||||||
|
|
||||||
/proc/flick_overlay_view(image/I, atom/target, duration) //wrapper for the above, flicks to everyone who can see the target atom
|
/proc/flick_overlay_view(image/I, atom/target, duration) //wrapper for the above, flicks to everyone who can see the target atom
|
||||||
var/list/viewing = list()
|
var/list/viewing = list()
|
||||||
|
|||||||
@@ -111,9 +111,9 @@ var/global/list/intent_listener = list()
|
|||||||
hair_styles_male_list += H.name
|
hair_styles_male_list += H.name
|
||||||
hair_styles_female_list += H.name
|
hair_styles_female_list += H.name
|
||||||
|
|
||||||
sortTim(hair_styles_list, /proc/cmp_text_asc)
|
sortTim(hair_styles_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
sortTim(hair_styles_male_list, /proc/cmp_text_asc)
|
sortTim(hair_styles_male_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
sortTim(hair_styles_female_list, /proc/cmp_text_asc)
|
sortTim(hair_styles_female_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
//Gradients - Initialise all /datum/sprite_accessory/hair_gradients into an list indexed by hairgradient-style name
|
//Gradients - Initialise all /datum/sprite_accessory/hair_gradients into an list indexed by hairgradient-style name
|
||||||
paths = subtypesof(/datum/sprite_accessory/hair_gradients)
|
paths = subtypesof(/datum/sprite_accessory/hair_gradients)
|
||||||
@@ -121,7 +121,7 @@ var/global/list/intent_listener = list()
|
|||||||
var/datum/sprite_accessory/hair_gradients/H = new path()
|
var/datum/sprite_accessory/hair_gradients/H = new path()
|
||||||
hair_gradient_styles_list[H.name] = H
|
hair_gradient_styles_list[H.name] = H
|
||||||
|
|
||||||
sortTim(hair_gradient_styles_list, /proc/cmp_text_asc)
|
sortTim(hair_gradient_styles_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
//Facial Hair - Initialise all /datum/sprite_accessory/facial_hair into an list indexed by facialhair-style name
|
//Facial Hair - Initialise all /datum/sprite_accessory/facial_hair into an list indexed by facialhair-style name
|
||||||
paths = subtypesof(/datum/sprite_accessory/facial_hair)
|
paths = subtypesof(/datum/sprite_accessory/facial_hair)
|
||||||
@@ -135,9 +135,9 @@ var/global/list/intent_listener = list()
|
|||||||
facial_hair_styles_male_list += H.name
|
facial_hair_styles_male_list += H.name
|
||||||
facial_hair_styles_female_list += H.name
|
facial_hair_styles_female_list += H.name
|
||||||
|
|
||||||
sortTim(facial_hair_styles_list, /proc/cmp_text_asc)
|
sortTim(facial_hair_styles_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
sortTim(facial_hair_styles_male_list, /proc/cmp_text_asc)
|
sortTim(facial_hair_styles_male_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
sortTim(facial_hair_styles_female_list, /proc/cmp_text_asc)
|
sortTim(facial_hair_styles_female_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
//Body markings
|
//Body markings
|
||||||
paths = subtypesof(/datum/sprite_accessory/marking)
|
paths = subtypesof(/datum/sprite_accessory/marking)
|
||||||
@@ -145,7 +145,7 @@ var/global/list/intent_listener = list()
|
|||||||
var/datum/sprite_accessory/marking/M = new path()
|
var/datum/sprite_accessory/marking/M = new path()
|
||||||
body_marking_styles_list[M.name] = M
|
body_marking_styles_list[M.name] = M
|
||||||
|
|
||||||
sortTim(body_marking_styles_list, /proc/cmp_text_asc)
|
sortTim(body_marking_styles_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
//Disability datums
|
//Disability datums
|
||||||
paths = subtypesof(/datum/character_disabilities)
|
paths = subtypesof(/datum/character_disabilities)
|
||||||
@@ -153,7 +153,7 @@ var/global/list/intent_listener = list()
|
|||||||
var/datum/character_disabilities/T = new path()
|
var/datum/character_disabilities/T = new path()
|
||||||
chargen_disabilities_list[T.name] = T
|
chargen_disabilities_list[T.name] = T
|
||||||
|
|
||||||
sortTim(chargen_disabilities_list, /proc/cmp_text_asc)
|
sortTim(chargen_disabilities_list, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
//List of job. I can't believe this was calculated multiple times per tick!
|
//List of job. I can't believe this was calculated multiple times per tick!
|
||||||
paths = subtypesof(/datum/job)
|
paths = subtypesof(/datum/job)
|
||||||
@@ -183,7 +183,7 @@ var/global/list/intent_listener = list()
|
|||||||
S.has_autohiss = TRUE
|
S.has_autohiss = TRUE
|
||||||
all_species[S.name] = S
|
all_species[S.name] = S
|
||||||
|
|
||||||
sortTim(all_species, /proc/cmp_text_asc)
|
sortTim(all_species, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
// The other lists are generated *after* we sort the main one so they don't need sorting too.
|
// The other lists are generated *after* we sort the main one so they don't need sorting too.
|
||||||
for (var/thing in all_species)
|
for (var/thing in all_species)
|
||||||
|
|||||||
@@ -761,7 +761,7 @@ proc/ColorTone(rgb, tone)
|
|||||||
break
|
break
|
||||||
layers[current] = current_layer
|
layers[current] = current_layer
|
||||||
|
|
||||||
//sortTim(layers, /proc/cmp_image_layer_asc)
|
//sortTim(layers, GLOBAL_PROC_REF(cmp_image_layer_asc))
|
||||||
|
|
||||||
var/icon/add // Icon of overlay being added
|
var/icon/add // Icon of overlay being added
|
||||||
|
|
||||||
|
|||||||
@@ -305,21 +305,21 @@
|
|||||||
if (!L)
|
if (!L)
|
||||||
return
|
return
|
||||||
var/list/target = L.Copy()
|
var/list/target = L.Copy()
|
||||||
return sortTim(target, order ? /proc/cmp_ckey_asc : /proc/cmp_ckey_dsc, FALSE)
|
return sortTim(target, order ? GLOBAL_PROC_REF(cmp_ckey_asc) : GLOBAL_PROC_REF(cmp_ckey_dsc), FALSE)
|
||||||
|
|
||||||
//Mergesort: divides up the list into halves to begin the sort
|
//Mergesort: divides up the list into halves to begin the sort
|
||||||
/proc/sortAtom(var/list/atom/L, var/order = 1)
|
/proc/sortAtom(var/list/atom/L, var/order = 1)
|
||||||
if (!L)
|
if (!L)
|
||||||
return
|
return
|
||||||
var/list/target = L.Copy()
|
var/list/target = L.Copy()
|
||||||
return sortTim(target, order ? /proc/cmp_name_asc : /proc/cmp_name_dsc, FALSE)
|
return sortTim(target, order ? GLOBAL_PROC_REF(cmp_name_asc) : GLOBAL_PROC_REF(cmp_name_dsc), FALSE)
|
||||||
|
|
||||||
//Mergesort: Specifically for record datums in a list.
|
//Mergesort: Specifically for record datums in a list.
|
||||||
/proc/sortRecord(var/list/datum/record/L, var/order = 1)
|
/proc/sortRecord(var/list/datum/record/L, var/order = 1)
|
||||||
if (!L)
|
if (!L)
|
||||||
return
|
return
|
||||||
var/list/target = L.Copy()
|
var/list/target = L.Copy()
|
||||||
sortTim(target, order ? /proc/cmp_records_asc : /proc/cmp_records_dsc, FALSE)
|
sortTim(target, order ? GLOBAL_PROC_REF(cmp_records_asc) : GLOBAL_PROC_REF(cmp_records_dsc), FALSE)
|
||||||
return target
|
return target
|
||||||
|
|
||||||
//Mergesort: any value in a list
|
//Mergesort: any value in a list
|
||||||
@@ -327,14 +327,14 @@
|
|||||||
if (!L)
|
if (!L)
|
||||||
return
|
return
|
||||||
var/list/target = L.Copy()
|
var/list/target = L.Copy()
|
||||||
return sortTim(target, /proc/cmp_text_asc)
|
return sortTim(target, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
//Mergsorge: uses sortList() but uses the var's name specifically. This should probably be using mergeAtom() instead
|
//Mergsorge: uses sortList() but uses the var's name specifically. This should probably be using mergeAtom() instead
|
||||||
/proc/sortNames(var/list/L)
|
/proc/sortNames(var/list/L)
|
||||||
if (!L)
|
if (!L)
|
||||||
return
|
return
|
||||||
var/list/target = L.Copy()
|
var/list/target = L.Copy()
|
||||||
return sortTim(target, /proc/cmp_name_asc, FALSE)
|
return sortTim(target, GLOBAL_PROC_REF(cmp_name_asc), FALSE)
|
||||||
|
|
||||||
// List of lists, sorts by element[key] - for things like crew monitoring computer sorting records by name.
|
// List of lists, sorts by element[key] - for things like crew monitoring computer sorting records by name.
|
||||||
/proc/sortByKey(var/list/L, var/key)
|
/proc/sortByKey(var/list/L, var/key)
|
||||||
@@ -364,7 +364,7 @@
|
|||||||
//Mergesort: any value in a list, preserves key=value structure
|
//Mergesort: any value in a list, preserves key=value structure
|
||||||
/proc/sortAssoc(var/list/L)
|
/proc/sortAssoc(var/list/L)
|
||||||
var/list/ret = L.Copy()
|
var/list/ret = L.Copy()
|
||||||
sortTim(ret, /proc/cmp_text_asc, FALSE)
|
sortTim(ret, GLOBAL_PROC_REF(cmp_text_asc), FALSE)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
// Macros to test for bits in a bitfield. Note, that this is for use with indexes, not bit-masks!
|
// Macros to test for bits in a bitfield. Note, that this is for use with indexes, not bit-masks!
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//TimSort interface
|
//TimSort interface
|
||||||
/proc/sortTim(list/L, cmp=/proc/cmp_numeric_asc, associative, fromIndex=1, toIndex=0)
|
/proc/sortTim(list/L, cmp=GLOBAL_PROC_REF(cmp_numeric_asc), associative, fromIndex=1, toIndex=0)
|
||||||
if(L && L.len >= 2)
|
if(L && L.len >= 2)
|
||||||
fromIndex = fromIndex % L.len
|
fromIndex = fromIndex % L.len
|
||||||
toIndex = toIndex % (L.len+1)
|
toIndex = toIndex % (L.len+1)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ var/datum/sortInstance/sortInstance = new()
|
|||||||
var/list/L
|
var/list/L
|
||||||
|
|
||||||
//The comparator proc-reference
|
//The comparator proc-reference
|
||||||
var/cmp = /proc/cmp_numeric_asc
|
var/cmp = GLOBAL_PROC_REF(cmp_numeric_asc)
|
||||||
|
|
||||||
//whether we are sorting list keys (0: L[i]) or associated values (1: L[L[i]])
|
//whether we are sorting list keys (0: L[i]) or associated values (1: L[L[i]])
|
||||||
var/associative = 0
|
var/associative = 0
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
/atom/movable/proc/update_filters()
|
/atom/movable/proc/update_filters()
|
||||||
filters = null
|
filters = null
|
||||||
filter_data = sortTim(filter_data, /proc/cmp_filter_data_priority, TRUE)
|
filter_data = sortTim(filter_data, GLOBAL_PROC_REF(cmp_filter_data_priority), TRUE)
|
||||||
for(var/f in filter_data)
|
for(var/f in filter_data)
|
||||||
var/list/data = filter_data[f]
|
var/list/data = filter_data[f]
|
||||||
var/list/arguments = data.Copy()
|
var/list/arguments = data.Copy()
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
if(!Adjacent(usr) || !over.Adjacent(usr))
|
if(!Adjacent(usr) || !over.Adjacent(usr))
|
||||||
return // should stop you from dragging through windows
|
return // should stop you from dragging through windows
|
||||||
|
|
||||||
INVOKE_ASYNC(over, /atom/.proc/MouseDrop_T, src, usr, src_location, over_location, src_control, over_control, params)
|
INVOKE_ASYNC(over, TYPE_PROC_REF(/atom, MouseDrop_T), src, usr, src_location, over_location, src_control, over_control, params)
|
||||||
|
|
||||||
// receive a mousedrop
|
// receive a mousedrop
|
||||||
/atom/proc/MouseDrop_T(atom/dropping, mob/user, src_location, over_location, src_control, over_control, params)
|
/atom/proc/MouseDrop_T(atom/dropping, mob/user, src_location, over_location, src_control, over_control, params)
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
var/old_color = color
|
var/old_color = color
|
||||||
color = set_color
|
color = set_color
|
||||||
color_changed = TRUE
|
color_changed = TRUE
|
||||||
addtimer(CALLBACK(src, .proc/set_color_to, old_color), set_time)
|
addtimer(CALLBACK(src, PROC_REF(set_color_to), old_color), set_time)
|
||||||
|
|
||||||
/obj/screen/inventory/proc/set_color_to(var/set_color)
|
/obj/screen/inventory/proc/set_color_to(var/set_color)
|
||||||
color = set_color
|
color = set_color
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
up_image.plane = LIGHTING_LAYER + 1
|
up_image.plane = LIGHTING_LAYER + 1
|
||||||
up_image.layer = LIGHTING_LAYER + 1
|
up_image.layer = LIGHTING_LAYER + 1
|
||||||
usr << up_image
|
usr << up_image
|
||||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/qdel, up_image), 12)
|
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), up_image), 12)
|
||||||
return
|
return
|
||||||
var/turf/T = GetAbove(usr)
|
var/turf/T = GetAbove(usr)
|
||||||
if (!T)
|
if (!T)
|
||||||
|
|||||||
@@ -106,4 +106,4 @@ var/list/panic_targets_data_loss = list(
|
|||||||
var/ctype = panic_targets[controller]
|
var/ctype = panic_targets[controller]
|
||||||
Master.subsystems += new ctype
|
Master.subsystems += new ctype
|
||||||
|
|
||||||
sortTim(Master.subsystems, /proc/cmp_subsystem_display)
|
sortTim(Master.subsystems, GLOBAL_PROC_REF(cmp_subsystem_display))
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
|||||||
initializing = TRUE
|
initializing = TRUE
|
||||||
|
|
||||||
// Sort subsystems by init_order, so they initialize in the correct order.
|
// Sort subsystems by init_order, so they initialize in the correct order.
|
||||||
sortTim(subsystems, /proc/cmp_subsystem_init)
|
sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init))
|
||||||
|
|
||||||
var/start_timeofday = REALTIMEOFDAY
|
var/start_timeofday = REALTIMEOFDAY
|
||||||
// Initialize subsystems.
|
// Initialize subsystems.
|
||||||
@@ -181,7 +181,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
|||||||
SetRunLevel(RUNLEVEL_LOBBY)
|
SetRunLevel(RUNLEVEL_LOBBY)
|
||||||
|
|
||||||
// Sort subsystems by display setting for easy access.
|
// Sort subsystems by display setting for easy access.
|
||||||
sortTim(subsystems, /proc/cmp_subsystem_display)
|
sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display))
|
||||||
// Set world options.
|
// Set world options.
|
||||||
#ifndef UNIT_TEST
|
#ifndef UNIT_TEST
|
||||||
world.sleep_offline = 1
|
world.sleep_offline = 1
|
||||||
@@ -264,9 +264,9 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
|||||||
queue_tail = null
|
queue_tail = null
|
||||||
//these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue
|
//these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue
|
||||||
//(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)
|
//(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, /proc/cmp_subsystem_priority)
|
sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority))
|
||||||
for(var/level in runlevel_sorted_subsystems)
|
for(var/level in runlevel_sorted_subsystems)
|
||||||
sortTim(level, /proc/cmp_subsystem_priority)
|
sortTim(level, GLOBAL_PROC_REF(cmp_subsystem_priority))
|
||||||
level += tickersubsystems
|
level += tickersubsystems
|
||||||
|
|
||||||
var/cached_runlevel = current_runlevel
|
var/cached_runlevel = current_runlevel
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ var/datum/controller/subsystem/atlas/SSatlas
|
|||||||
|
|
||||||
var/static/regex/mapregex = new(".+\\.dmm$")
|
var/static/regex/mapregex = new(".+\\.dmm$")
|
||||||
var/list/files = flist(directory)
|
var/list/files = flist(directory)
|
||||||
sortTim(files, /proc/cmp_text_asc)
|
sortTim(files, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
var/mfile
|
var/mfile
|
||||||
var/first_dmm = TRUE
|
var/first_dmm = TRUE
|
||||||
var/time
|
var/time
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
for (var/area/A in world)
|
for (var/area/A in world)
|
||||||
all_areas += A
|
all_areas += A
|
||||||
|
|
||||||
sortTim(all_areas, /proc/cmp_name_asc)
|
sortTim(all_areas, GLOBAL_PROC_REF(cmp_name_asc))
|
||||||
|
|
||||||
/datum/controller/subsystem/finalize/proc/select_ruin()
|
/datum/controller/subsystem/finalize/proc/select_ruin()
|
||||||
//Get all the folders in dynamic maps and check if they contain a config.json
|
//Get all the folders in dynamic maps and check if they contain a config.json
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
if(current_map.use_overmap)
|
if(current_map.use_overmap)
|
||||||
ghostteleportlocs[map_overmap.name] = map_overmap
|
ghostteleportlocs[map_overmap.name] = map_overmap
|
||||||
|
|
||||||
sortTim(ghostteleportlocs, /proc/cmp_text_asc)
|
sortTim(ghostteleportlocs, GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
|
|
||||||
setupgenetics()
|
setupgenetics()
|
||||||
|
|
||||||
@@ -39,4 +39,4 @@
|
|||||||
/proc/sorted_add_area(area/A)
|
/proc/sorted_add_area(area/A)
|
||||||
all_areas += A
|
all_areas += A
|
||||||
|
|
||||||
sortTim(all_areas, /proc/cmp_name_asc)
|
sortTim(all_areas, GLOBAL_PROC_REF(cmp_name_asc))
|
||||||
|
|||||||
@@ -318,7 +318,7 @@
|
|||||||
to_chat(H, SSatlas.current_sector.get_chat_description())
|
to_chat(H, SSatlas.current_sector.get_chat_description())
|
||||||
|
|
||||||
if("Arrivals Shuttle" in current_map.allowed_spawns && spawning_at == "Arrivals Shuttle")
|
if("Arrivals Shuttle" in current_map.allowed_spawns && spawning_at == "Arrivals Shuttle")
|
||||||
H.centcomm_despawn_timer = addtimer(CALLBACK(H, /mob/living/.proc/centcomm_timeout), 10 MINUTES, TIMER_STOPPABLE)
|
H.centcomm_despawn_timer = addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living, centcomm_timeout)), 10 MINUTES, TIMER_STOPPABLE)
|
||||||
to_chat(H,SPAN_NOTICE("You have ten minutes to reach the station before you will be forced there."))
|
to_chat(H,SPAN_NOTICE("You have ten minutes to reach the station before you will be forced there."))
|
||||||
|
|
||||||
var/datum/job/job = GetJob(rank)
|
var/datum/job/job = GetJob(rank)
|
||||||
@@ -416,7 +416,7 @@
|
|||||||
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
|
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
|
||||||
BITSET(H.hud_updateflag, SPECIALROLE_HUD)
|
BITSET(H.hud_updateflag, SPECIALROLE_HUD)
|
||||||
|
|
||||||
INVOKE_ASYNC(GLOBAL_PROC, .proc/show_location_blurb, H.client, 30)
|
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(show_location_blurb), H.client, 30)
|
||||||
|
|
||||||
if(spawning_at == "Arrivals Shuttle")
|
if(spawning_at == "Arrivals Shuttle")
|
||||||
to_chat(H, "<b>[current_map.command_spawn_message]</b>")
|
to_chat(H, "<b>[current_map.command_spawn_message]</b>")
|
||||||
@@ -869,7 +869,7 @@
|
|||||||
T.maptext = "<span style=\"[style]\">[copytext(text,1,i)] </span>"
|
T.maptext = "<span style=\"[style]\">[copytext(text,1,i)] </span>"
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
|
||||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/fade_location_blurb, C, T), duration)
|
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(fade_location_blurb), C, T), duration)
|
||||||
|
|
||||||
/proc/fade_location_blurb(client/C, obj/T)
|
/proc/fade_location_blurb(client/C, obj/T)
|
||||||
animate(T, alpha = 0, time = 5)
|
animate(T, alpha = 0, time = 5)
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ var/datum/controller/subsystem/lighting/SSlighting
|
|||||||
log_ss("lighting", "NOv:[overlaycount] L:[processed_lights] C:[processed_corners] O:[processed_overlays]")
|
log_ss("lighting", "NOv:[overlaycount] L:[processed_lights] C:[processed_corners] O:[processed_overlays]")
|
||||||
|
|
||||||
#ifdef USE_INTELLIGENT_LIGHTING_UPDATES
|
#ifdef USE_INTELLIGENT_LIGHTING_UPDATES
|
||||||
SSticker.OnRoundstart(CALLBACK(src, .proc/handle_roundstart))
|
SSticker.OnRoundstart(CALLBACK(src, PROC_REF(handle_roundstart)))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -268,8 +268,8 @@ if(Datum.isprocessing) {\
|
|||||||
rcon_breaker_units += breaker
|
rcon_breaker_units += breaker
|
||||||
rcon_breaker_units_by_tag[breaker.RCon_tag] = breaker
|
rcon_breaker_units_by_tag[breaker.RCon_tag] = breaker
|
||||||
|
|
||||||
sortTim(rcon_smes_units, /proc/cmp_rcon_smes)
|
sortTim(rcon_smes_units, GLOBAL_PROC_REF(cmp_rcon_smes))
|
||||||
sortTim(rcon_breaker_units, /proc/cmp_rcon_bbox)
|
sortTim(rcon_breaker_units, GLOBAL_PROC_REF(cmp_rcon_bbox))
|
||||||
|
|
||||||
#undef SSMACHINERY_PIPENETS
|
#undef SSMACHINERY_PIPENETS
|
||||||
#undef SSMACHINERY_MACHINERY
|
#undef SSMACHINERY_MACHINERY
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ var/datum/controller/subsystem/mapping/SSmapping
|
|||||||
|
|
||||||
var/list/banned_maps = list() + banned_exoplanet_dmms + banned_space_dmms + banned_away_site_dmms
|
var/list/banned_maps = list() + banned_exoplanet_dmms + banned_space_dmms + banned_away_site_dmms
|
||||||
|
|
||||||
for(var/item in sortList(subtypesof(/datum/map_template), /proc/cmp_ruincost_priority))
|
for(var/item in sortList(subtypesof(/datum/map_template), GLOBAL_PROC_REF(cmp_ruincost_priority)))
|
||||||
var/datum/map_template/map_template_type = item
|
var/datum/map_template/map_template_type = item
|
||||||
// screen out the abstract subtypes
|
// screen out the abstract subtypes
|
||||||
if(!initial(map_template_type.id))
|
if(!initial(map_template_type.id))
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
. = new /mob/living/carbon/human/dummy/mannequin
|
. = new /mob/living/carbon/human/dummy/mannequin
|
||||||
mannequins[ckey] = .
|
mannequins[ckey] = .
|
||||||
|
|
||||||
addtimer(CALLBACK(src, .proc/del_mannequin, ckey), 5 MINUTES, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(del_mannequin), ckey), 5 MINUTES, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
|
|
||||||
/datum/controller/subsystem/mobs/proc/del_mannequin(ckey)
|
/datum/controller/subsystem/mobs/proc/del_mannequin(ckey)
|
||||||
var/mannequin = mannequins[ckey]
|
var/mannequin = mannequins[ckey]
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
if (config.news_use_forum_api)
|
if (config.news_use_forum_api)
|
||||||
load_forum_news_config()
|
load_forum_news_config()
|
||||||
|
|
||||||
INVOKE_ASYNC(src, .proc/load_from_forums)
|
INVOKE_ASYNC(src, PROC_REF(load_from_forums))
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ var/datum/controller/subsystem/nightlight/SSnightlight
|
|||||||
suspend()
|
suspend()
|
||||||
deactivate(FALSE)
|
deactivate(FALSE)
|
||||||
if (time > 0)
|
if (time > 0)
|
||||||
addtimer(CALLBACK(src, .proc/end_temp_disable), time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(end_temp_disable)), time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
|
|
||||||
/datum/controller/subsystem/nightlight/proc/end_temp_disable()
|
/datum/controller/subsystem/nightlight/proc/end_temp_disable()
|
||||||
if (disable_type == NL_TEMPORARY_DISABLE)
|
if (disable_type == NL_TEMPORARY_DISABLE)
|
||||||
|
|||||||
@@ -143,12 +143,12 @@
|
|||||||
|
|
||||||
pregenerate_more_oranges_ears(NUMBER_OF_PREGENERATED_ORANGES_EARS)
|
pregenerate_more_oranges_ears(NUMBER_OF_PREGENERATED_ORANGES_EARS)
|
||||||
|
|
||||||
RegisterSignal(SSdcs, COMSIG_GLOB_NEW_Z, .proc/propogate_spatial_grid_to_new_z)
|
RegisterSignal(SSdcs, COMSIG_GLOB_NEW_Z, PROC_REF(propogate_spatial_grid_to_new_z))
|
||||||
RegisterSignal(SSdcs, COMSIG_GLOB_EXPANDED_WORLD_BOUNDS, .proc/after_world_bounds_expanded)
|
RegisterSignal(SSdcs, COMSIG_GLOB_EXPANDED_WORLD_BOUNDS, PROC_REF(after_world_bounds_expanded))
|
||||||
|
|
||||||
///add a movable to the pre init queue for whichever type is specified so that when the subsystem initializes they get added to the grid
|
///add a movable to the pre init queue for whichever type is specified so that when the subsystem initializes they get added to the grid
|
||||||
/datum/controller/subsystem/spatial_grid/proc/enter_pre_init_queue(atom/movable/waiting_movable, type)
|
/datum/controller/subsystem/spatial_grid/proc/enter_pre_init_queue(atom/movable/waiting_movable, type)
|
||||||
RegisterSignal(waiting_movable, COMSIG_PARENT_PREQDELETED, .proc/queued_item_deleted, override = TRUE)
|
RegisterSignal(waiting_movable, COMSIG_PARENT_PREQDELETED, PROC_REF(queued_item_deleted), override = TRUE)
|
||||||
//override because something can enter the queue for two different types but that is done through unrelated procs that shouldnt know about eachother
|
//override because something can enter the queue for two different types but that is done through unrelated procs that shouldnt know about eachother
|
||||||
waiting_to_add_by_type[type] += waiting_movable
|
waiting_to_add_by_type[type] += waiting_movable
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
simple_statistics[S.key] = S
|
simple_statistics[S.key] = S
|
||||||
|
|
||||||
sortTim(simple_statistics, /proc/cmp_name_asc, TRUE)
|
sortTim(simple_statistics, GLOBAL_PROC_REF(cmp_name_asc), TRUE)
|
||||||
|
|
||||||
/datum/controller/subsystem/statistics/fire()
|
/datum/controller/subsystem/statistics/fire()
|
||||||
// Handle AFK.
|
// Handle AFK.
|
||||||
|
|||||||
@@ -342,7 +342,7 @@ var/datum/controller/subsystem/ticker/SSticker
|
|||||||
for(var/dept in ready_job.departments)
|
for(var/dept in ready_job.departments)
|
||||||
LAZYDISTINCTADD(ready_player_jobs[dept], prefs.real_name)
|
LAZYDISTINCTADD(ready_player_jobs[dept], prefs.real_name)
|
||||||
LAZYSET(ready_player_jobs[dept], prefs.real_name, ready_job.title)
|
LAZYSET(ready_player_jobs[dept], prefs.real_name, ready_job.title)
|
||||||
sortTim(ready_player_jobs[dept], /proc/cmp_text_asc)
|
sortTim(ready_player_jobs[dept], GLOBAL_PROC_REF(cmp_text_asc))
|
||||||
. = TRUE
|
. = TRUE
|
||||||
|
|
||||||
if(.)
|
if(.)
|
||||||
@@ -545,7 +545,7 @@ var/datum/controller/subsystem/ticker/SSticker
|
|||||||
round_start_time = world.time
|
round_start_time = world.time
|
||||||
|
|
||||||
callHook("roundstart")
|
callHook("roundstart")
|
||||||
INVOKE_ASYNC(src, .proc/roundstart)
|
INVOKE_ASYNC(src, PROC_REF(roundstart))
|
||||||
|
|
||||||
log_debug("SSticker: Running [LAZYLEN(roundstart_callbacks)] round-start callbacks.")
|
log_debug("SSticker: Running [LAZYLEN(roundstart_callbacks)] round-start callbacks.")
|
||||||
run_callback_list(roundstart_callbacks)
|
run_callback_list(roundstart_callbacks)
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ var/datum/controller/subsystem/timer/SStimer
|
|||||||
return
|
return
|
||||||
|
|
||||||
// Sort all timers by time to run
|
// Sort all timers by time to run
|
||||||
sortTim(alltimers, .proc/cmp_timer)
|
sortTim(alltimers, GLOBAL_PROC_REF(cmp_timer))
|
||||||
|
|
||||||
// Get the earliest timer, and if the TTR is earlier than the current world.time,
|
// Get the earliest timer, and if the TTR is earlier than the current world.time,
|
||||||
// then set the head offset appropriately to be the earliest time tracked by the
|
// then set the head offset appropriately to be the earliest time tracked by the
|
||||||
|
|||||||
@@ -417,7 +417,7 @@
|
|||||||
D.plane = T.shadower.plane
|
D.plane = T.shadower.plane
|
||||||
found_oo += D
|
found_oo += D
|
||||||
|
|
||||||
sortTim(found_oo, /proc/cmp_planelayer)
|
sortTim(found_oo, GLOBAL_PROC_REF(cmp_planelayer))
|
||||||
|
|
||||||
var/list/atoms_list_list = list()
|
var/list/atoms_list_list = list()
|
||||||
for (var/thing in found_oo)
|
for (var/thing in found_oo)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
icon_state = beam_icon_state
|
icon_state = beam_icon_state
|
||||||
beam_type = btype
|
beam_type = btype
|
||||||
if(time != -1)
|
if(time != -1)
|
||||||
addtimer(CALLBACK(src,.proc/End), time)
|
addtimer(CALLBACK(src, PROC_REF(End), time))
|
||||||
|
|
||||||
/datum/beam/proc/Start()
|
/datum/beam/proc/Start()
|
||||||
recalculate()
|
recalculate()
|
||||||
@@ -64,12 +64,12 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/datum/beam/proc/recalculate_in(time)
|
/datum/beam/proc/recalculate_in(time)
|
||||||
timing_id = addtimer(CALLBACK(src, .proc/recalculate), time, TIMER_STOPPABLE | TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE)
|
timing_id = addtimer(CALLBACK(src, PROC_REF(recalculate)), time, TIMER_STOPPABLE | TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE)
|
||||||
|
|
||||||
/datum/beam/proc/after_calculate()
|
/datum/beam/proc/after_calculate()
|
||||||
if((sleep_time == null) || finished) //Does not automatically recalculate.
|
if((sleep_time == null) || finished) //Does not automatically recalculate.
|
||||||
return
|
return
|
||||||
timing_id = addtimer(CALLBACK(src, .proc/recalculate), sleep_time, TIMER_STOPPABLE | TIMER_UNIQUE | TIMER_NO_HASH_WAIT)
|
timing_id = addtimer(CALLBACK(src, PROC_REF(recalculate)), sleep_time, TIMER_STOPPABLE | TIMER_UNIQUE | TIMER_NO_HASH_WAIT)
|
||||||
|
|
||||||
/datum/beam/proc/End(destroy_self = TRUE)
|
/datum/beam/proc/End(destroy_self = TRUE)
|
||||||
finished = TRUE
|
finished = TRUE
|
||||||
@@ -209,5 +209,5 @@
|
|||||||
crash_with("Tried to create beam with infinite time!")
|
crash_with("Tried to create beam with infinite time!")
|
||||||
return null
|
return null
|
||||||
var/datum/beam/newbeam = new beam_datum_type(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type,beam_sleep_time)
|
var/datum/beam/newbeam = new beam_datum_type(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type,beam_sleep_time)
|
||||||
INVOKE_ASYNC(newbeam, /datum/beam/.proc/Start)
|
INVOKE_ASYNC(newbeam, TYPE_PROC_REF(/datum/beam, Start))
|
||||||
return newbeam
|
return newbeam
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
USAGE:
|
USAGE:
|
||||||
|
|
||||||
var/datum/callback/C = new(object|null, /proc/type/path|"procstring", arg1, arg2, ... argn)
|
var/datum/callback/C = new(object|null, TYPE_PROC_REF(type, path|"procstring"), arg1, arg2, ... argn)
|
||||||
var/timerid = addtimer(C, time, timertype)
|
var/timerid = addtimer(C, time, timertype)
|
||||||
OR
|
OR
|
||||||
var/timerid = addtimer(CALLBACK(object|null, /proc/type/path|procstring, arg1, arg2, ... argn), time, timertype)
|
var/timerid = addtimer(CALLBACK(object|null, TYPE_PROC_REF(type, path|procstring), arg1, arg2, ... argn), time, timertype)
|
||||||
|
|
||||||
Note: proc strings can only be given for datum proc calls, global procs must be proc paths
|
Note: proc strings can only be given for datum proc calls, global procs must be proc paths
|
||||||
Also proc strings are strongly advised against because they don't compile error if the proc stops existing
|
Also proc strings are strongly advised against because they don't compile error if the proc stops existing
|
||||||
@@ -21,18 +21,18 @@
|
|||||||
global proc while in another global proc:
|
global proc while in another global proc:
|
||||||
.procname
|
.procname
|
||||||
Example:
|
Example:
|
||||||
CALLBACK(GLOBAL_PROC, .some_proc_here)
|
CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(some_proc_here))
|
||||||
|
|
||||||
proc defined on current(src) object (when in a /proc/ and not an override) OR overridden at src or any of it's parents:
|
proc defined on current(src) object (when in a /proc/ and not an override) OR overridden at src or any of it's parents:
|
||||||
.procname
|
.procname
|
||||||
Example:
|
Example:
|
||||||
CALLBACK(src, .some_proc_here)
|
CALLBACK(src, PROC_REF(some_proc_here))
|
||||||
|
|
||||||
|
|
||||||
when the above doesn't apply:
|
when the above doesn't apply:
|
||||||
.proc/procname
|
.proc/procname
|
||||||
Example:
|
Example:
|
||||||
CALLBACK(src, .proc/some_proc_here)
|
CALLBACK(src, PROC_REF(some_proc_here))
|
||||||
|
|
||||||
proc defined on a parent of a some type:
|
proc defined on a parent of a some type:
|
||||||
/some/type/.proc/some_proc_here
|
/some/type/.proc/some_proc_here
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
/datum/component/base_name/Initialize(var/name)
|
/datum/component/base_name/Initialize(var/name)
|
||||||
base_name = name
|
base_name = name
|
||||||
RegisterSignal(parent, COMSIG_BASENAME_RENAME, .proc/rename)
|
RegisterSignal(parent, COMSIG_BASENAME_RENAME, PROC_REF(rename))
|
||||||
RegisterSignal(parent, COMSIG_BASENAME_SETNAME, .proc/change_base_name)
|
RegisterSignal(parent, COMSIG_BASENAME_SETNAME, PROC_REF(change_base_name))
|
||||||
|
|
||||||
/datum/component/base_name/proc/rename(var/name)
|
/datum/component/base_name/proc/rename(var/name)
|
||||||
base_name = name
|
base_name = name
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/obj/item/circuitboard/stationalert/Initialize()
|
/obj/item/circuitboard/stationalert/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
AddComponent(/datum/component/multitool/circuitboards, CALLBACK(src, .proc/get_multitool_ui), CALLBACK(src, .proc/on_topic))
|
AddComponent(/datum/component/multitool/circuitboards, CALLBACK(src, PROC_REF(get_multitool_ui)), CALLBACK(src, PROC_REF(get_multitool_ui)))
|
||||||
|
|
||||||
/obj/item/circuitboard/stationalert/proc/get_multitool_ui(var/mob/user, var/obj/item/device/multitool/MT, var/datum/component/multitool/C)
|
/obj/item/circuitboard/stationalert/proc/get_multitool_ui(var/mob/user, var/obj/item/device/multitool/MT, var/datum/component/multitool/C)
|
||||||
. += "<b>Alarm Sources</b><br>"
|
. += "<b>Alarm Sources</b><br>"
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ var/datum/discord_bot/discord_bot = null
|
|||||||
queue.Add(list(list(message, A - sent)))
|
queue.Add(list(list(message, A - sent)))
|
||||||
|
|
||||||
// Schedule a push.
|
// Schedule a push.
|
||||||
addtimer(CALLBACK(src, .proc/push_queue), 10 SECONDS, TIMER_UNIQUE)
|
addtimer(CALLBACK(src, PROC_REF(push_queue)), 10 SECONDS, TIMER_UNIQUE)
|
||||||
|
|
||||||
// And exit.
|
// And exit.
|
||||||
return
|
return
|
||||||
@@ -258,7 +258,7 @@ var/datum/discord_bot/discord_bot = null
|
|||||||
for (var/B in destinations)
|
for (var/B in destinations)
|
||||||
var/datum/discord_channel/channel = B
|
var/datum/discord_channel/channel = B
|
||||||
if (channel.send_message_to(auth_token, message) == SEND_TIMEOUT)
|
if (channel.send_message_to(auth_token, message) == SEND_TIMEOUT)
|
||||||
addtimer(CALLBACK(src, .proc/push_queue), 10 SECONDS, TIMER_UNIQUE)
|
addtimer(CALLBACK(src, PROC_REF(push_queue)), 10 SECONDS, TIMER_UNIQUE)
|
||||||
|
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
return ELEMENT_INCOMPATIBLE
|
return ELEMENT_INCOMPATIBLE
|
||||||
SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src)
|
SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src)
|
||||||
if(element_flags & ELEMENT_DETACH)
|
if(element_flags & ELEMENT_DETACH)
|
||||||
RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach, override = TRUE)
|
RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(Detach), override = TRUE)
|
||||||
|
|
||||||
/// Deactivates the functionality defines by the element on the given datum
|
/// Deactivates the functionality defines by the element on the given datum
|
||||||
/datum/element/proc/Detach(datum/source, force)
|
/datum/element/proc/Detach(datum/source, force)
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
if(!chance || prob(chance))
|
if(!chance || prob(chance))
|
||||||
play(get_sound(starttime))
|
play(get_sound(starttime))
|
||||||
if(!timerid)
|
if(!timerid)
|
||||||
timerid = addtimer(CALLBACK(src, .proc/sound_loop, world.time), mid_length, TIMER_STOPPABLE | TIMER_LOOP)
|
timerid = addtimer(CALLBACK(src, PROC_REF(sound_loop), world.time), mid_length, TIMER_STOPPABLE | TIMER_LOOP)
|
||||||
|
|
||||||
/datum/looping_sound/proc/play(soundfile, volume_override)
|
/datum/looping_sound/proc/play(soundfile, volume_override)
|
||||||
var/list/atoms_cache = output_atoms
|
var/list/atoms_cache = output_atoms
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
if(start_sound)
|
if(start_sound)
|
||||||
play(start_sound, start_volume)
|
play(start_sound, start_volume)
|
||||||
start_wait = start_length
|
start_wait = start_length
|
||||||
addtimer(CALLBACK(src, .proc/sound_loop), start_wait)
|
addtimer(CALLBACK(src, PROC_REF(sound_loop)), start_wait)
|
||||||
|
|
||||||
/datum/looping_sound/proc/on_stop()
|
/datum/looping_sound/proc/on_stop()
|
||||||
if(end_sound)
|
if(end_sound)
|
||||||
|
|||||||
@@ -33,9 +33,9 @@ var/singleton/observ/moved/moved_event = new()
|
|||||||
/atom/movable/Entered(var/atom/movable/am, atom/old_loc)
|
/atom/movable/Entered(var/atom/movable/am, atom/old_loc)
|
||||||
..()
|
..()
|
||||||
if(moved_event.has_listeners(am) && !moved_event.is_listening(src, am))
|
if(moved_event.has_listeners(am) && !moved_event.is_listening(src, am))
|
||||||
moved_event.register(src, am, /atom/movable/proc/recursive_move)
|
moved_event.register(src, am, TYPE_PROC_REF(/atom/movable, recursive_move))
|
||||||
|
|
||||||
/atom/movable/Exited(var/atom/movable/am, atom/old_loc)
|
/atom/movable/Exited(var/atom/movable/am, atom/old_loc)
|
||||||
..()
|
..()
|
||||||
if(moved_event.is_listening(src, am, /atom/movable/proc/recursive_move))
|
if(moved_event.is_listening(src, am, TYPE_PROC_REF(/atom/movable, recursive_move)))
|
||||||
moved_event.unregister(src, am)
|
moved_event.unregister(src, am)
|
||||||
|
|||||||
@@ -67,4 +67,4 @@
|
|||||||
if(mercrig)
|
if(mercrig)
|
||||||
H.put_in_hands(mercrig)
|
H.put_in_hands(mercrig)
|
||||||
H.equip_to_slot_or_del(mercrig, slot_back)
|
H.equip_to_slot_or_del(mercrig, slot_back)
|
||||||
addtimer(CALLBACK(mercrig, /obj/item/rig/.proc/toggle_seals, H, TRUE), 2 SECONDS)
|
addtimer(CALLBACK(mercrig, TYPE_PROC_REF(/obj/item/rig, toggle_seals), H, TRUE), 2 SECONDS)
|
||||||
@@ -457,7 +457,7 @@
|
|||||||
var/obj/item/ID = new id(H)
|
var/obj/item/ID = new id(H)
|
||||||
imprint_idcard(H, ID)
|
imprint_idcard(H, ID)
|
||||||
if(personal_computer?.card_slot)
|
if(personal_computer?.card_slot)
|
||||||
addtimer(CALLBACK(src, .proc/register_pda, personal_computer, ID), 2 SECOND)
|
addtimer(CALLBACK(src, PROC_REF(register_pda), personal_computer, ID), 2 SECOND)
|
||||||
else
|
else
|
||||||
H.equip_or_collect(ID, slot_wear_id)
|
H.equip_or_collect(ID, slot_wear_id)
|
||||||
|
|
||||||
@@ -555,7 +555,7 @@
|
|||||||
C.access = get_id_access(H)
|
C.access = get_id_access(H)
|
||||||
C.rank = get_id_rank(H)
|
C.rank = get_id_rank(H)
|
||||||
C.assignment = get_id_assignment(H)
|
C.assignment = get_id_assignment(H)
|
||||||
addtimer(CALLBACK(H, /mob/.proc/set_id_info, C), 1 SECOND) // Delay a moment to allow an icon update to happen.
|
addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, set_id_info), C), 1 SECOND) // Delay a moment to allow an icon update to happen.
|
||||||
|
|
||||||
if(H.mind && H.mind.initial_account)
|
if(H.mind && H.mind.initial_account)
|
||||||
C.associated_account_number = H.mind.initial_account.account_number
|
C.associated_account_number = H.mind.initial_account.account_number
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
LAZYREMOVE(user.progressbars, bar.loc)
|
LAZYREMOVE(user.progressbars, bar.loc)
|
||||||
|
|
||||||
animate(bar, alpha = 0, time = PROGRESSBAR_ANIMATION_TIME)
|
animate(bar, alpha = 0, time = PROGRESSBAR_ANIMATION_TIME)
|
||||||
addtimer(CALLBACK(src, .proc/remove_from_client), PROGRESSBAR_ANIMATION_TIME, TIMER_CLIENT_TIME)
|
addtimer(CALLBACK(src, PROC_REF(remove_from_client)), PROGRESSBAR_ANIMATION_TIME, TIMER_CLIENT_TIME)
|
||||||
QDEL_IN(bar, PROGRESSBAR_ANIMATION_TIME * 2) //for garbage collection safety
|
QDEL_IN(bar, PROGRESSBAR_ANIMATION_TIME * 2) //for garbage collection safety
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/statistic/grouped/most_deaths/get_roundend_lines()
|
/datum/statistic/grouped/most_deaths/get_roundend_lines()
|
||||||
sortTim(values, /proc/cmp_numeric_dsc, TRUE)
|
sortTim(values, GLOBAL_PROC_REF(cmp_numeric_dsc), TRUE)
|
||||||
var/ckey = values[1]
|
var/ckey = values[1]
|
||||||
. = "[ckey], with [values[ckey]] deaths."
|
. = "[ckey], with [values[ckey]] deaths."
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
|
|
||||||
//If this hits 0 then they decide to up and leave.
|
//If this hits 0 then they decide to up and leave.
|
||||||
/datum/trader/proc/tick()
|
/datum/trader/proc/tick()
|
||||||
addtimer(CALLBACK(src, .proc/do_after_tick), 1)
|
addtimer(CALLBACK(src, PROC_REF(do_after_tick)), 1)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/datum/trader/proc/do_after_tick()
|
/datum/trader/proc/do_after_tick()
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ var/datum/uplink/uplink
|
|||||||
items_assoc = list()
|
items_assoc = list()
|
||||||
items = init_subtypes(/datum/uplink_item)
|
items = init_subtypes(/datum/uplink_item)
|
||||||
categories = init_subtypes(/datum/uplink_category)
|
categories = init_subtypes(/datum/uplink_category)
|
||||||
sortTim(categories, /proc/cmp_uplink_category, FALSE)
|
sortTim(categories, GLOBAL_PROC_REF(cmp_uplink_category), FALSE)
|
||||||
|
|
||||||
for(var/datum/uplink_item/item in items)
|
for(var/datum/uplink_item/item in items)
|
||||||
if(!item.name)
|
if(!item.name)
|
||||||
@@ -23,7 +23,7 @@ var/datum/uplink/uplink
|
|||||||
category.items += item
|
category.items += item
|
||||||
|
|
||||||
for(var/datum/uplink_category/category in categories)
|
for(var/datum/uplink_category/category in categories)
|
||||||
sortTim(category.items, /proc/cmp_uplink_item, FALSE)
|
sortTim(category.items, GLOBAL_PROC_REF(cmp_uplink_item), FALSE)
|
||||||
|
|
||||||
/datum/uplink_item
|
/datum/uplink_item
|
||||||
var/name
|
var/name
|
||||||
|
|||||||
@@ -24,15 +24,15 @@
|
|||||||
|
|
||||||
if(APC_WIRE_IDSCAN)
|
if(APC_WIRE_IDSCAN)
|
||||||
set_locked(A, FALSE)
|
set_locked(A, FALSE)
|
||||||
addtimer(CALLBACK(src, .proc/set_locked, A, TRUE), 30 SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(set_locked), A, TRUE), 30 SECONDS)
|
||||||
|
|
||||||
if (APC_WIRE_MAIN_POWER1, APC_WIRE_MAIN_POWER2)
|
if (APC_WIRE_MAIN_POWER1, APC_WIRE_MAIN_POWER2)
|
||||||
set_short_out(A, TRUE)
|
set_short_out(A, TRUE)
|
||||||
addtimer(CALLBACK(src, .proc/set_short_out, A, FALSE), 120 SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(set_short_out), A, FALSE), 120 SECONDS)
|
||||||
|
|
||||||
if (APC_WIRE_AI_CONTROL)
|
if (APC_WIRE_AI_CONTROL)
|
||||||
set_ai_control(A, TRUE)
|
set_ai_control(A, TRUE)
|
||||||
addtimer(CALLBACK(src, .proc/set_ai_control, A, FALSE), 1 SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(set_ai_control), A, FALSE), 1 SECONDS)
|
||||||
|
|
||||||
|
|
||||||
/datum/wires/apc/proc/set_locked(var/obj/machinery/power/apc/A, var/setting)
|
/datum/wires/apc/proc/set_locked(var/obj/machinery/power/apc/A, var/setting)
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ var/const/SMES_WIRE_FAILSAFES = 16 // Cut to disable failsafes, mend to reenable
|
|||||||
if(SMES_WIRE_RCON)
|
if(SMES_WIRE_RCON)
|
||||||
if(S.RCon)
|
if(S.RCon)
|
||||||
S.RCon = 0
|
S.RCon = 0
|
||||||
addtimer(CALLBACK(S, /obj/machinery/power/smes/buildable/.proc/reset_rcon), 10)
|
addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/machinery/power/smes/buildable, reset_rcon)), 10)
|
||||||
if(SMES_WIRE_INPUT)
|
if(SMES_WIRE_INPUT)
|
||||||
S.toggle_input()
|
S.toggle_input()
|
||||||
if(SMES_WIRE_OUTPUT)
|
if(SMES_WIRE_OUTPUT)
|
||||||
@@ -55,7 +55,7 @@ var/const/SMES_WIRE_FAILSAFES = 16 // Cut to disable failsafes, mend to reenable
|
|||||||
if(SMES_WIRE_FAILSAFES)
|
if(SMES_WIRE_FAILSAFES)
|
||||||
if(S.safeties_enabled)
|
if(S.safeties_enabled)
|
||||||
S.safeties_enabled = 0
|
S.safeties_enabled = 0
|
||||||
addtimer(CALLBACK(S, /obj/machinery/power/smes/buildable/.proc/reset_safeties), 10)
|
addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/machinery/power/smes/buildable, reset_safeties)), 10)
|
||||||
|
|
||||||
/obj/machinery/power/smes/buildable/proc/reset_safeties()
|
/obj/machinery/power/smes/buildable/proc/reset_safeties()
|
||||||
safeties_enabled = TRUE
|
safeties_enabled = TRUE
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ var/datum/antagonist/loyalists/loyalists
|
|||||||
player.equip_to_slot_or_del(new /obj/item/device/special_uplink/rev(player, player.mind), slot_in_backpack)
|
player.equip_to_slot_or_del(new /obj/item/device/special_uplink/rev(player, player.mind), slot_in_backpack)
|
||||||
|
|
||||||
give_codewords(player)
|
give_codewords(player)
|
||||||
INVOKE_ASYNC(src, .proc/alert_loyalist_status, player)
|
INVOKE_ASYNC(src, PROC_REF(alert_loyalist_status), player)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/antagonist/loyalists/proc/alert_loyalist_status(var/mob/living/carbon/human/player) //This is still dumb but it works
|
/datum/antagonist/loyalists/proc/alert_loyalist_status(var/mob/living/carbon/human/player) //This is still dumb but it works
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ var/datum/antagonist/revolutionary/revs
|
|||||||
player.equip_to_slot_or_del(new /obj/item/device/special_uplink/rev(player, player.mind), slot_in_backpack)
|
player.equip_to_slot_or_del(new /obj/item/device/special_uplink/rev(player, player.mind), slot_in_backpack)
|
||||||
|
|
||||||
give_codewords(player)
|
give_codewords(player)
|
||||||
INVOKE_ASYNC(src, .proc/alert_revolutionary_status, player)
|
INVOKE_ASYNC(src, PROC_REF(alert_revolutionary_status), player)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/antagonist/revolutionary/proc/alert_revolutionary_status(var/mob/living/carbon/human/player) //This is so dumb.
|
/datum/antagonist/revolutionary/proc/alert_revolutionary_status(var/mob/living/carbon/human/player) //This is so dumb.
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
if(E.operating)
|
if(E.operating)
|
||||||
E.nextstate = FIREDOOR_CLOSED
|
E.nextstate = FIREDOOR_CLOSED
|
||||||
else if(!E.density)
|
else if(!E.density)
|
||||||
INVOKE_ASYNC(E, /obj/machinery/door/.proc/close)
|
INVOKE_ASYNC(E, TYPE_PROC_REF(/obj/machinery/door, close))
|
||||||
|
|
||||||
/area/proc/air_doors_open()
|
/area/proc/air_doors_open()
|
||||||
if(air_doors_activated)
|
if(air_doors_activated)
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
if(E.operating)
|
if(E.operating)
|
||||||
E.nextstate = FIREDOOR_OPEN
|
E.nextstate = FIREDOOR_OPEN
|
||||||
else if(E.density)
|
else if(E.density)
|
||||||
INVOKE_ASYNC(E, /obj/machinery/door/.proc/open)
|
INVOKE_ASYNC(E, TYPE_PROC_REF(/obj/machinery/door, open))
|
||||||
|
|
||||||
/area/proc/fire_alert()
|
/area/proc/fire_alert()
|
||||||
if(!fire)
|
if(!fire)
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
if(D.operating)
|
if(D.operating)
|
||||||
D.nextstate = FIREDOOR_CLOSED
|
D.nextstate = FIREDOOR_CLOSED
|
||||||
else if(!D.density)
|
else if(!D.density)
|
||||||
INVOKE_ASYNC(D, /obj/machinery/door/.proc/close)
|
INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door, close))
|
||||||
|
|
||||||
/area/proc/fire_reset()
|
/area/proc/fire_reset()
|
||||||
if (fire)
|
if (fire)
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
if(D.operating)
|
if(D.operating)
|
||||||
D.nextstate = FIREDOOR_OPEN
|
D.nextstate = FIREDOOR_OPEN
|
||||||
else if(D.density)
|
else if(D.density)
|
||||||
INVOKE_ASYNC(D, /obj/machinery/door/.proc/open)
|
INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door, open))
|
||||||
|
|
||||||
/area/proc/readyalert()
|
/area/proc/readyalert()
|
||||||
if(!eject)
|
if(!eject)
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
if(D.operating)
|
if(D.operating)
|
||||||
D.nextstate = FIREDOOR_OPEN
|
D.nextstate = FIREDOOR_OPEN
|
||||||
else if(D.density)
|
else if(D.density)
|
||||||
INVOKE_ASYNC(D, /obj/machinery/door/.proc/open)
|
INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door, open))
|
||||||
|
|
||||||
#define DO_PARTY(COLOR) animate(color = COLOR, time = 0.5 SECONDS, easing = QUAD_EASING)
|
#define DO_PARTY(COLOR) animate(color = COLOR, time = 0.5 SECONDS, easing = QUAD_EASING)
|
||||||
|
|
||||||
|
|||||||
@@ -510,7 +510,7 @@
|
|||||||
M.forceMove(ling) //move inside the new dude to hide him.
|
M.forceMove(ling) //move inside the new dude to hide him.
|
||||||
ling.occupant = M
|
ling.occupant = M
|
||||||
M.status_flags |= GODMODE //dont want him to die or breathe or do ANYTHING
|
M.status_flags |= GODMODE //dont want him to die or breathe or do ANYTHING
|
||||||
addtimer(CALLBACK(src, .proc/revert_horror_form,ling), 10 MINUTES)
|
addtimer(CALLBACK(src, PROC_REF(revert_horror_form), ling), 10 MINUTES)
|
||||||
|
|
||||||
/mob/proc/revert_horror_form(var/mob/living/ling)
|
/mob/proc/revert_horror_form(var/mob/living/ling)
|
||||||
if(QDELETED(ling))
|
if(QDELETED(ling))
|
||||||
|
|||||||
@@ -119,7 +119,7 @@
|
|||||||
target.disabilities |= NEARSIGHTED
|
target.disabilities |= NEARSIGHTED
|
||||||
target.eye_blind = 10
|
target.eye_blind = 10
|
||||||
target.eye_blurry = 20
|
target.eye_blurry = 20
|
||||||
addtimer(CALLBACK(target, /mob.proc/remove_nearsighted), 30 SECONDS)
|
addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, remove_nearsighted)), 30 SECONDS)
|
||||||
|
|
||||||
/mob/proc/changeling_deaf_sting()
|
/mob/proc/changeling_deaf_sting()
|
||||||
set category = "Changeling"
|
set category = "Changeling"
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
..()
|
..()
|
||||||
to_chat(target, SPAN_DANGER("Your ears pop and begin ringing loudly!"))
|
to_chat(target, SPAN_DANGER("Your ears pop and begin ringing loudly!"))
|
||||||
target.sdisabilities |= DEAF
|
target.sdisabilities |= DEAF
|
||||||
addtimer(CALLBACK(target, /mob.proc/remove_deaf), 30 SECONDS)
|
addtimer(CALLBACK(target, TYPE_PROC_REF(/mob, remove_deaf)), 30 SECONDS)
|
||||||
|
|
||||||
/mob/proc/changeling_paralysis_sting()
|
/mob/proc/changeling_paralysis_sting()
|
||||||
set category = "Changeling"
|
set category = "Changeling"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
/datum/rune/teleport/New()
|
/datum/rune/teleport/New()
|
||||||
..()
|
..()
|
||||||
addtimer(CALLBACK(src, .proc/random_network), 5) // if this rune somehow spawned without a network, we assign a random one
|
addtimer(CALLBACK(src, PROC_REF(random_network)), 5) // if this rune somehow spawned without a network, we assign a random one
|
||||||
SScult.teleport_runes += src
|
SScult.teleport_runes += src
|
||||||
|
|
||||||
/datum/rune/teleport/Destroy()
|
/datum/rune/teleport/Destroy()
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/obj/effect/gateway/active/New()
|
/obj/effect/gateway/active/New()
|
||||||
addtimer(CALLBACK(src, .proc/do_spawn), rand(30, 60) SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(do_spawn)), rand(30, 60) SECONDS)
|
||||||
|
|
||||||
/obj/effect/gateway/active/proc/do_spawn()
|
/obj/effect/gateway/active/proc/do_spawn()
|
||||||
var/thing = pick(spawnable)
|
var/thing = pick(spawnable)
|
||||||
|
|||||||
@@ -327,7 +327,7 @@
|
|||||||
A.launch_projectile(target)
|
A.launch_projectile(target)
|
||||||
next_shot = world.time + shot_delay
|
next_shot = world.time + shot_delay
|
||||||
A = null //So projectiles can GC
|
A = null //So projectiles can GC
|
||||||
addtimer(CALLBACK(src, .proc/handle_firing), shot_delay + 1)
|
addtimer(CALLBACK(src, PROC_REF(handle_firing)), shot_delay + 1)
|
||||||
|
|
||||||
/obj/structure/cult/pylon/attack_hand(mob/M)
|
/obj/structure/cult/pylon/attack_hand(mob/M)
|
||||||
if (M.a_intent == "help")
|
if (M.a_intent == "help")
|
||||||
|
|||||||
@@ -39,11 +39,11 @@
|
|||||||
|
|
||||||
// EXPAND
|
// EXPAND
|
||||||
if(!istype(T,type))
|
if(!istype(T,type))
|
||||||
addtimer(CALLBACK(src, .proc/after_tick, T), 10)
|
addtimer(CALLBACK(src, PROC_REF(after_tick), T), 10)
|
||||||
if(A && !istype(A,type))
|
if(A && !istype(A,type))
|
||||||
addtimer(CALLBACK(src, .proc/after_tick, A), 10)
|
addtimer(CALLBACK(src, PROC_REF(after_tick), A), 10)
|
||||||
if(B && !istype(B,type))
|
if(B && !istype(B,type))
|
||||||
addtimer(CALLBACK(src, .proc/after_tick, B), 10)
|
addtimer(CALLBACK(src, PROC_REF(after_tick), B), 10)
|
||||||
if((spawned & (NORTH|SOUTH|EAST|WEST)) == (NORTH|SOUTH|EAST|WEST))
|
if((spawned & (NORTH|SOUTH|EAST|WEST)) == (NORTH|SOUTH|EAST|WEST))
|
||||||
STOP_PROCESSING(SScalamity, src)
|
STOP_PROCESSING(SScalamity, src)
|
||||||
|
|
||||||
|
|||||||
@@ -64,8 +64,8 @@ var/global/universe_has_ended = 0
|
|||||||
var/time = rand(30, 60)
|
var/time = rand(30, 60)
|
||||||
log_debug("universal_state/cascade: Announcing to world in [time] seconds.")
|
log_debug("universal_state/cascade: Announcing to world in [time] seconds.")
|
||||||
log_debug("universal_state/cascade: Ending universe in [(time SECONDS + 5 MINUTES)/10] seconds.")
|
log_debug("universal_state/cascade: Ending universe in [(time SECONDS + 5 MINUTES)/10] seconds.")
|
||||||
addtimer(CALLBACK(src, .proc/announce_to_world), time SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(announce_to_world)), time SECONDS)
|
||||||
addtimer(CALLBACK(src, .proc/end_universe), time SECONDS + 5 MINUTES)
|
addtimer(CALLBACK(src, PROC_REF(end_universe)), time SECONDS + 5 MINUTES)
|
||||||
|
|
||||||
/datum/universal_state/supermatter_cascade/proc/announce_to_world()
|
/datum/universal_state/supermatter_cascade/proc/announce_to_world()
|
||||||
var/txt = {"
|
var/txt = {"
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ var/global/list/additional_antag_types = list()
|
|||||||
all_candidates += antag.candidates
|
all_candidates += antag.candidates
|
||||||
antag_templates_by_initial_spawn_req[antag] = antag.initial_spawn_req
|
antag_templates_by_initial_spawn_req[antag] = antag.initial_spawn_req
|
||||||
|
|
||||||
sortTim(antag_templates_by_initial_spawn_req, /proc/cmp_numeric_asc, TRUE)
|
sortTim(antag_templates_by_initial_spawn_req, GLOBAL_PROC_REF(cmp_numeric_asc), TRUE)
|
||||||
antag_templates = list_keys(antag_templates_by_initial_spawn_req)
|
antag_templates = list_keys(antag_templates_by_initial_spawn_req)
|
||||||
|
|
||||||
var/list/valid_templates_per_candidate = list() // number of roles each candidate can satisfy
|
var/list/valid_templates_per_candidate = list() // number of roles each candidate can satisfy
|
||||||
@@ -253,7 +253,7 @@ var/global/list/additional_antag_types = list()
|
|||||||
valid_templates_per_candidate[candidate]++
|
valid_templates_per_candidate[candidate]++
|
||||||
|
|
||||||
valid_templates_per_candidate = shuffle(valid_templates_per_candidate) // shuffle before sorting so that candidates with the same number of templates will be in random order
|
valid_templates_per_candidate = shuffle(valid_templates_per_candidate) // shuffle before sorting so that candidates with the same number of templates will be in random order
|
||||||
sortTim(valid_templates_per_candidate, /proc/cmp_numeric_asc, TRUE)
|
sortTim(valid_templates_per_candidate, GLOBAL_PROC_REF(cmp_numeric_asc), TRUE)
|
||||||
|
|
||||||
for(var/datum/antagonist/antag in antag_templates)
|
for(var/datum/antagonist/antag in antag_templates)
|
||||||
antag.candidates = list_keys(valid_templates_per_candidate) & antag.candidates // orders antag.candidates by valid_templates_per_candidate
|
antag.candidates = list_keys(valid_templates_per_candidate) & antag.candidates // orders antag.candidates by valid_templates_per_candidate
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
var/mob/living/L = A
|
var/mob/living/L = A
|
||||||
if(L.stat == DEAD)
|
if(L.stat == DEAD)
|
||||||
summoned_mobs -= L
|
summoned_mobs -= L
|
||||||
addtimer(CALLBACK(src, .proc/remove_summon, L), 1)
|
addtimer(CALLBACK(src, PROC_REF(remove_summon), L), 1)
|
||||||
|
|
||||||
/obj/item/technomancer_core/proc/remove_summon(var/mob/living/L)
|
/obj/item/technomancer_core/proc/remove_summon(var/mob/living/L)
|
||||||
L.visible_message("<span class='notice'>\The [L] begins to fade away...</span>")
|
L.visible_message("<span class='notice'>\The [L] begins to fade away...</span>")
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
//Deal with protecting our wearer now.
|
//Deal with protecting our wearer now.
|
||||||
if(ready)
|
if(ready)
|
||||||
ready = FALSE
|
ready = FALSE
|
||||||
addtimer(CALLBACK(src, .proc/recharge, user), cooldown_to_charge)
|
addtimer(CALLBACK(src, PROC_REF(recharge), user), cooldown_to_charge)
|
||||||
visible_message("<span class='danger'>\The [user]'s [src.name] blocks [attack_text]!</span>")
|
visible_message("<span class='danger'>\The [user]'s [src.name] blocks [attack_text]!</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
return PROJECTILE_STOPPED
|
return PROJECTILE_STOPPED
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
spark(L, 5, cardinal)
|
spark(L, 5, cardinal)
|
||||||
spark(user, 5, cardinal)
|
spark(user, 5, cardinal)
|
||||||
L.throw_at(get_step(get_turf(src), get_dir(src, L)), 4, 1, src)
|
L.throw_at(get_step(get_turf(src), get_dir(src, L)), 4, 1, src)
|
||||||
addtimer(CALLBACK(src, .proc/seize_mob, L, user), 1 SECOND)
|
addtimer(CALLBACK(src, PROC_REF(seize_mob), L, user), 1 SECOND)
|
||||||
user.drop_item(src)
|
user.drop_item(src)
|
||||||
src.loc = null
|
src.loc = null
|
||||||
|
|
||||||
|
|||||||
@@ -195,7 +195,7 @@
|
|||||||
admin_attacker_log_many_victims(src, victims, "used glare to stun", "was stunned by [key_name(src)] using glare", "used glare to stun")
|
admin_attacker_log_many_victims(src, victims, "used glare to stun", "was stunned by [key_name(src)] using glare", "used glare to stun")
|
||||||
|
|
||||||
verbs -= /mob/living/carbon/human/proc/vampire_glare
|
verbs -= /mob/living/carbon/human/proc/vampire_glare
|
||||||
ADD_VERB_IN_IF(src, 800, /mob/living/carbon/human/proc/vampire_glare, CALLBACK(src, .proc/finish_vamp_timeout))
|
ADD_VERB_IN_IF(src, 800, /mob/living/carbon/human/proc/vampire_glare, CALLBACK(src, PROC_REF(finish_vamp_timeout)))
|
||||||
|
|
||||||
// Targeted stun ability, moderate duration.
|
// Targeted stun ability, moderate duration.
|
||||||
/mob/living/carbon/human/proc/vampire_hypnotise()
|
/mob/living/carbon/human/proc/vampire_hypnotise()
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
admin_attack_log(src, T, "used hypnotise to stun [key_name(T)]", "was stunned by [key_name(src)] using hypnotise", "used hypnotise on")
|
admin_attack_log(src, T, "used hypnotise to stun [key_name(T)]", "was stunned by [key_name(src)] using hypnotise", "used hypnotise on")
|
||||||
|
|
||||||
verbs -= /mob/living/carbon/human/proc/vampire_hypnotise
|
verbs -= /mob/living/carbon/human/proc/vampire_hypnotise
|
||||||
ADD_VERB_IN_IF(src, 1200, /mob/living/carbon/human/proc/vampire_hypnotise, CALLBACK(src, .proc/finish_vamp_timeout))
|
ADD_VERB_IN_IF(src, 1200, /mob/living/carbon/human/proc/vampire_hypnotise, CALLBACK(src, PROC_REF(finish_vamp_timeout)))
|
||||||
else
|
else
|
||||||
to_chat(src, SPAN_WARNING("You broke your gaze."))
|
to_chat(src, SPAN_WARNING("You broke your gaze."))
|
||||||
|
|
||||||
@@ -282,7 +282,7 @@
|
|||||||
|
|
||||||
vampire.use_blood(20)
|
vampire.use_blood(20)
|
||||||
verbs -= /mob/living/carbon/human/proc/vampire_veilstep
|
verbs -= /mob/living/carbon/human/proc/vampire_veilstep
|
||||||
ADD_VERB_IN_IF(src, 300, /mob/living/carbon/human/proc/vampire_veilstep, CALLBACK(src, .proc/finish_vamp_timeout))
|
ADD_VERB_IN_IF(src, 300, /mob/living/carbon/human/proc/vampire_veilstep, CALLBACK(src, PROC_REF(finish_vamp_timeout)))
|
||||||
|
|
||||||
// Summons bats.
|
// Summons bats.
|
||||||
/mob/living/carbon/human/proc/vampire_bats()
|
/mob/living/carbon/human/proc/vampire_bats()
|
||||||
@@ -326,7 +326,7 @@
|
|||||||
|
|
||||||
vampire.use_blood(60)
|
vampire.use_blood(60)
|
||||||
verbs -= /mob/living/carbon/human/proc/vampire_bats
|
verbs -= /mob/living/carbon/human/proc/vampire_bats
|
||||||
ADD_VERB_IN_IF(src, 1200, /mob/living/carbon/human/proc/vampire_bats, CALLBACK(src, .proc/finish_vamp_timeout))
|
ADD_VERB_IN_IF(src, 1200, /mob/living/carbon/human/proc/vampire_bats, CALLBACK(src, PROC_REF(finish_vamp_timeout)))
|
||||||
|
|
||||||
// Chiropteran Screech
|
// Chiropteran Screech
|
||||||
/mob/living/carbon/human/proc/vampire_screech()
|
/mob/living/carbon/human/proc/vampire_screech()
|
||||||
@@ -385,7 +385,7 @@
|
|||||||
log_and_message_admins("used chiropteran screech.")
|
log_and_message_admins("used chiropteran screech.")
|
||||||
|
|
||||||
verbs -= /mob/living/carbon/human/proc/vampire_screech
|
verbs -= /mob/living/carbon/human/proc/vampire_screech
|
||||||
ADD_VERB_IN_IF(src, 3600, /mob/living/carbon/human/proc/vampire_screech, CALLBACK(src, .proc/finish_vamp_timeout))
|
ADD_VERB_IN_IF(src, 3600, /mob/living/carbon/human/proc/vampire_screech, CALLBACK(src, PROC_REF(finish_vamp_timeout)))
|
||||||
|
|
||||||
// Enables the vampire to be untouchable and walk through walls and other solid things.
|
// Enables the vampire to be untouchable and walk through walls and other solid things.
|
||||||
/mob/living/carbon/human/proc/vampire_veilwalk()
|
/mob/living/carbon/human/proc/vampire_veilwalk()
|
||||||
@@ -473,7 +473,7 @@
|
|||||||
if(owner_mob.stat)
|
if(owner_mob.stat)
|
||||||
if(owner_mob.stat == UNCONSCIOUS)
|
if(owner_mob.stat == UNCONSCIOUS)
|
||||||
to_chat(owner_mob, SPAN_WARNING("You cannot maintain this form while unconcious."))
|
to_chat(owner_mob, SPAN_WARNING("You cannot maintain this form while unconcious."))
|
||||||
addtimer(CALLBACK(src, .proc/kick_unconcious), 10, TIMER_UNIQUE)
|
addtimer(CALLBACK(src, PROC_REF(kick_unconcious)), 10, TIMER_UNIQUE)
|
||||||
else
|
else
|
||||||
deactivate()
|
deactivate()
|
||||||
return
|
return
|
||||||
@@ -749,7 +749,7 @@
|
|||||||
|
|
||||||
vampire.use_blood(150)
|
vampire.use_blood(150)
|
||||||
verbs -= /mob/living/carbon/human/proc/vampire_enthrall
|
verbs -= /mob/living/carbon/human/proc/vampire_enthrall
|
||||||
ADD_VERB_IN_IF(src, 2800, /mob/living/carbon/human/proc/vampire_enthrall, CALLBACK(src, .proc/finish_vamp_timeout))
|
ADD_VERB_IN_IF(src, 2800, /mob/living/carbon/human/proc/vampire_enthrall, CALLBACK(src, PROC_REF(finish_vamp_timeout)))
|
||||||
|
|
||||||
// Makes the vampire appear 'friendlier' to others.
|
// Makes the vampire appear 'friendlier' to others.
|
||||||
/mob/living/carbon/human/proc/vampire_presence()
|
/mob/living/carbon/human/proc/vampire_presence()
|
||||||
@@ -1010,4 +1010,4 @@
|
|||||||
G.synch()
|
G.synch()
|
||||||
|
|
||||||
verbs -= /mob/living/carbon/human/proc/grapple
|
verbs -= /mob/living/carbon/human/proc/grapple
|
||||||
ADD_VERB_IN_IF(src, 800, /mob/living/carbon/human/proc/grapple, CALLBACK(src, .proc/finish_vamp_timeout, VAMP_FRENZIED))
|
ADD_VERB_IN_IF(src, 800, /mob/living/carbon/human/proc/grapple, CALLBACK(src, PROC_REF(finish_vamp_timeout), VAMP_FRENZIED))
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
/proc/get_all_access_datums()
|
/proc/get_all_access_datums()
|
||||||
if(!priv_all_access_datums)
|
if(!priv_all_access_datums)
|
||||||
priv_all_access_datums = init_subtypes(/datum/access)
|
priv_all_access_datums = init_subtypes(/datum/access)
|
||||||
sortTim(priv_all_access_datums, /proc/cmp_access, FALSE)
|
sortTim(priv_all_access_datums, GLOBAL_PROC_REF(cmp_access), FALSE)
|
||||||
|
|
||||||
return priv_all_access_datums
|
return priv_all_access_datums
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
/datum/outfit/job/representative/post_equip(mob/living/carbon/human/H, visualsOnly)
|
/datum/outfit/job/representative/post_equip(mob/living/carbon/human/H, visualsOnly)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(H && !visualsOnly)
|
if(H && !visualsOnly)
|
||||||
addtimer(CALLBACK(src, .proc/send_representative_mission, H), 5 MINUTES)
|
addtimer(CALLBACK(src, PROC_REF(send_representative_mission), H), 5 MINUTES)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/datum/outfit/job/representative/proc/send_representative_mission(var/mob/living/carbon/human/H)
|
/datum/outfit/job/representative/proc/send_representative_mission(var/mob/living/carbon/human/H)
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ var/global/list/bluespace_inhibitors
|
|||||||
playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, 1, extrarange = 20)
|
playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, 1, extrarange = 20)
|
||||||
visible_message(SPAN_DANGER("\The [src] goes haywire!"))
|
visible_message(SPAN_DANGER("\The [src] goes haywire!"))
|
||||||
do_break()
|
do_break()
|
||||||
addtimer(CALLBACK(src, .proc/haywire_teleport), 10 SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(haywire_teleport)), 10 SECONDS)
|
||||||
|
|
||||||
/obj/machinery/anti_bluespace/proc/haywire_teleport()
|
/obj/machinery/anti_bluespace/proc/haywire_teleport()
|
||||||
|
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ obj/machinery/computer/general_air_control/Destroy()
|
|||||||
signal.data["sigtype"] = "command"
|
signal.data["sigtype"] = "command"
|
||||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||||
|
|
||||||
addtimer(CALLBACK(SSvueui, /datum/controller/subsystem/processing/vueui/proc/check_uis_for_change, src), 5) //Just in case we get no new data
|
addtimer(CALLBACK(SSvueui, TYPE_PROC_REF(/datum/controller/subsystem/processing/vueui, check_uis_for_change), src), 5) //Just in case we get no new data
|
||||||
|
|
||||||
/obj/machinery/computer/general_air_control/supermatter_core
|
/obj/machinery/computer/general_air_control/supermatter_core
|
||||||
icon = 'icons/obj/modular_console.dmi'
|
icon = 'icons/obj/modular_console.dmi'
|
||||||
@@ -318,7 +318,7 @@ obj/machinery/computer/general_air_control/Destroy()
|
|||||||
signal.data["sigtype"]="command"
|
signal.data["sigtype"]="command"
|
||||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||||
|
|
||||||
addtimer(CALLBACK(SSvueui, /datum/controller/subsystem/processing/vueui/proc/check_uis_for_change, src), 5) //Just in case we get no new data
|
addtimer(TYPE_PROC_REF(/datum/controller/subsystem/processing/vueui, check_uis_for_change), src, 5) //Just in case we get no new data
|
||||||
|
|
||||||
/obj/machinery/computer/general_air_control/fuel_injection
|
/obj/machinery/computer/general_air_control/fuel_injection
|
||||||
icon_screen = "alert:0"
|
icon_screen = "alert:0"
|
||||||
|
|||||||
@@ -132,7 +132,7 @@
|
|||||||
|
|
||||||
if (on)
|
if (on)
|
||||||
turn_off()
|
turn_off()
|
||||||
addtimer(CALLBACK(src, .proc/post_emp, was_on), severity * 300)
|
addtimer(CALLBACK(src, PROC_REF(post_emp), was_on), severity * 300)
|
||||||
|
|
||||||
/obj/machinery/bot/proc/post_emp(was_on)
|
/obj/machinery/bot/proc/post_emp(was_on)
|
||||||
stat &= ~EMPED
|
stat &= ~EMPED
|
||||||
|
|||||||
@@ -203,7 +203,7 @@
|
|||||||
return
|
return
|
||||||
var/list/target = L.Copy()
|
var/list/target = L.Copy()
|
||||||
// sortTim sorts in-place, but returns a ref to the list anyways.
|
// sortTim sorts in-place, but returns a ref to the list anyways.
|
||||||
return sortTim(target, /proc/cmp_camera, FALSE)
|
return sortTim(target, GLOBAL_PROC_REF(cmp_camera), FALSE)
|
||||||
|
|
||||||
mob/living/proc/near_camera()
|
mob/living/proc/near_camera()
|
||||||
if (!isturf(loc))
|
if (!isturf(loc))
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ var/global/list/minor_air_alarms = list()
|
|||||||
|
|
||||||
/obj/machinery/computer/atmos_alert/Initialize()
|
/obj/machinery/computer/atmos_alert/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
atmosphere_alarm.register_alarm(src, /atom/.proc/update_icon)
|
atmosphere_alarm.register_alarm(src, TYPE_PROC_REF(/atom, update_icon))
|
||||||
|
|
||||||
/obj/machinery/computer/atmos_alert/Destroy()
|
/obj/machinery/computer/atmos_alert/Destroy()
|
||||||
atmosphere_alarm.unregister_alarm(src)
|
atmosphere_alarm.unregister_alarm(src)
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
/obj/item/card/id/guest/Initialize(mapload, duration)
|
/obj/item/card/id/guest/Initialize(mapload, duration)
|
||||||
. = ..(mapload)
|
. = ..(mapload)
|
||||||
expiration_time = duration + world.time
|
expiration_time = duration + world.time
|
||||||
addtimer(CALLBACK(src, .proc/expire), duration)
|
addtimer(CALLBACK(src, PROC_REF(expire)), duration)
|
||||||
|
|
||||||
/obj/item/card/id/guest/proc/expire()
|
/obj/item/card/id/guest/proc/expire()
|
||||||
icon_state += "_invalid"
|
icon_state += "_invalid"
|
||||||
|
|||||||
@@ -214,9 +214,9 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
|
|
||||||
INVOKE_ASYNC(src, .proc/do_spin)
|
INVOKE_ASYNC(src, PROC_REF(do_spin))
|
||||||
|
|
||||||
addtimer(CALLBACK(src, .proc/finish_spinning, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) //WARNING: no sanity checking for user since it's not needed and would complicate things (machine should still spin even if user is gone), be wary of this if you're changing this code.
|
addtimer(CALLBACK(src, PROC_REF(finish_spinning), user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) //WARNING: no sanity checking for user since it's not needed and would complicate things (machine should still spin even if user is gone), be wary of this if you're changing this code.
|
||||||
|
|
||||||
/obj/machinery/computer/slot_machine/proc/do_spin(mob/user, the_name)
|
/obj/machinery/computer/slot_machine/proc/do_spin(mob/user, the_name)
|
||||||
while(working)
|
while(working)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(monitor_type)
|
if(monitor_type)
|
||||||
register_monitor(new monitor_type(src))
|
register_monitor(new monitor_type(src))
|
||||||
alarm_monitor.register_alarm(src, /atom/.proc/update_icon)
|
alarm_monitor.register_alarm(src, TYPE_PROC_REF(/atom, update_icon))
|
||||||
|
|
||||||
/obj/machinery/computer/station_alert/Destroy()
|
/obj/machinery/computer/station_alert/Destroy()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
for(var/obj/machinery/door/blast/M in SSmachinery.machinery)
|
for(var/obj/machinery/door/blast/M in SSmachinery.machinery)
|
||||||
if (M.id == src.id)
|
if (M.id == src.id)
|
||||||
same_id += M
|
same_id += M
|
||||||
INVOKE_ASYNC(M, /obj/machinery/door/blast/.proc/open)
|
INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/door/blast, open))
|
||||||
|
|
||||||
sleep(20)
|
sleep(20)
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@
|
|||||||
sleep(50)
|
sleep(50)
|
||||||
|
|
||||||
for(var/mm in same_id)
|
for(var/mm in same_id)
|
||||||
INVOKE_ASYNC(mm, /obj/machinery/door/blast/.proc/close)
|
INVOKE_ASYNC(mm, TYPE_PROC_REF(/obj/machinery/door/blast, close))
|
||||||
|
|
||||||
icon_state = "launcherbtt"
|
icon_state = "launcherbtt"
|
||||||
active = 0
|
active = 0
|
||||||
|
|||||||
@@ -686,13 +686,13 @@ About the new airlock wires panel:
|
|||||||
main_power_lost_until = mainPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
|
main_power_lost_until = mainPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
|
||||||
main_power_lost_at = world.time
|
main_power_lost_at = world.time
|
||||||
if (main_power_lost_until > 0)
|
if (main_power_lost_until > 0)
|
||||||
addtimer(CALLBACK(src, .proc/regainMainPower), 60 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
addtimer(CALLBACK(src, PROC_REF(regainMainPower)), 60 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
||||||
|
|
||||||
// If backup power is permanently disabled then activate in 10 seconds if possible, otherwise it's already enabled or a timer is already running
|
// If backup power is permanently disabled then activate in 10 seconds if possible, otherwise it's already enabled or a timer is already running
|
||||||
if(backup_power_lost_until == -1 && !backupPowerCablesCut())
|
if(backup_power_lost_until == -1 && !backupPowerCablesCut())
|
||||||
backup_power_lost_until = world.time + SecondsToTicks(10)
|
backup_power_lost_until = world.time + SecondsToTicks(10)
|
||||||
backup_power_lost_at = world.time
|
backup_power_lost_at = world.time
|
||||||
addtimer(CALLBACK(src, .proc/regainBackupPower), 10 SECONDS, TIMER_UNIQUE | TIMER_NO_HASH_WAIT)
|
addtimer(CALLBACK(src, PROC_REF(regainBackupPower)), 10 SECONDS, TIMER_UNIQUE | TIMER_NO_HASH_WAIT)
|
||||||
|
|
||||||
if(!arePowerSystemsOn() && !isnull(aiActionTimer)) // AI action timer gets reset if any
|
if(!arePowerSystemsOn() && !isnull(aiActionTimer)) // AI action timer gets reset if any
|
||||||
deltimer(aiActionTimer)
|
deltimer(aiActionTimer)
|
||||||
@@ -704,7 +704,7 @@ About the new airlock wires panel:
|
|||||||
backup_power_lost_until = backupPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
|
backup_power_lost_until = backupPowerCablesCut() ? -1 : world.time + SecondsToTicks(60)
|
||||||
backup_power_lost_at = world.time
|
backup_power_lost_at = world.time
|
||||||
if (backup_power_lost_until > 0)
|
if (backup_power_lost_until > 0)
|
||||||
addtimer(CALLBACK(src, .proc/regainBackupPower), 60 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
addtimer(CALLBACK(src, PROC_REF(regainBackupPower)), 60 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
||||||
|
|
||||||
if(!arePowerSystemsOn() && !isnull(aiActionTimer)) // AI action timer gets reset if any
|
if(!arePowerSystemsOn() && !isnull(aiActionTimer)) // AI action timer gets reset if any
|
||||||
deltimer(aiActionTimer)
|
deltimer(aiActionTimer)
|
||||||
@@ -747,7 +747,7 @@ About the new airlock wires panel:
|
|||||||
electrified_until = duration == -1 ? -1 : world.time + SecondsToTicks(duration)
|
electrified_until = duration == -1 ? -1 : world.time + SecondsToTicks(duration)
|
||||||
electrified_at = world.time
|
electrified_at = world.time
|
||||||
if (electrified_until > 0)
|
if (electrified_until > 0)
|
||||||
addtimer(CALLBACK(src, .proc/electrify, 0), duration SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
addtimer(CALLBACK(src, PROC_REF(electrify), 0), duration SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
||||||
|
|
||||||
if(feedback && message)
|
if(feedback && message)
|
||||||
to_chat(usr, message)
|
to_chat(usr, message)
|
||||||
@@ -1175,11 +1175,11 @@ About the new airlock wires panel:
|
|||||||
else if(activate)
|
else if(activate)
|
||||||
to_chat(usr, SPAN_NOTICE("The door bolts should drop in [src.aiBoltingDelay] seconds."))
|
to_chat(usr, SPAN_NOTICE("The door bolts should drop in [src.aiBoltingDelay] seconds."))
|
||||||
src.audible_message("[icon2html(src.icon, viewers(get_turf(src)))] <b>[src]</b> announces, <span class='notice'>\"Bolts set to drop in <strong>[src.aiBoltingDelay] seconds</strong>.\"</span>")
|
src.audible_message("[icon2html(src.icon, viewers(get_turf(src)))] <b>[src]</b> announces, <span class='notice'>\"Bolts set to drop in <strong>[src.aiBoltingDelay] seconds</strong>.\"</span>")
|
||||||
src.aiActionTimer = addtimer(CALLBACK(src, .proc/lock), src.aiBoltingDelay SECONDS, TIMER_UNIQUE|TIMER_NO_HASH_WAIT|TIMER_STOPPABLE)
|
src.aiActionTimer = addtimer(CALLBACK(src, PROC_REF(lock)), src.aiBoltingDelay SECONDS, TIMER_UNIQUE|TIMER_NO_HASH_WAIT|TIMER_STOPPABLE)
|
||||||
else
|
else
|
||||||
to_chat(usr, SPAN_NOTICE("The door bolts should raise in [src.aiUnBoltingDelay] seconds."))
|
to_chat(usr, SPAN_NOTICE("The door bolts should raise in [src.aiUnBoltingDelay] seconds."))
|
||||||
src.audible_message("[icon2html(src.icon, viewers(get_turf(src)))] <b>[src]</b> announces, <span class='notice'>\"Bolts set to raise in <strong>[src.aiUnBoltingDelay] seconds</strong>.\"</span>")
|
src.audible_message("[icon2html(src.icon, viewers(get_turf(src)))] <b>[src]</b> announces, <span class='notice'>\"Bolts set to raise in <strong>[src.aiUnBoltingDelay] seconds</strong>.\"</span>")
|
||||||
src.aiActionTimer = addtimer(CALLBACK(src, .proc/unlock), src.aiUnBoltingDelay SECONDS, TIMER_UNIQUE|TIMER_NO_HASH_WAIT|TIMER_STOPPABLE)
|
src.aiActionTimer = addtimer(CALLBACK(src, PROC_REF(unlock)), src.aiUnBoltingDelay SECONDS, TIMER_UNIQUE|TIMER_NO_HASH_WAIT|TIMER_STOPPABLE)
|
||||||
else // everyone else
|
else // everyone else
|
||||||
if(activate)
|
if(activate)
|
||||||
if(src.lock())
|
if(src.lock())
|
||||||
@@ -1305,7 +1305,7 @@ About the new airlock wires panel:
|
|||||||
"You hear a welding torch on metal."
|
"You hear a welding torch on metal."
|
||||||
)
|
)
|
||||||
playsound(src, 'sound/items/welder.ogg', 50, 1)
|
playsound(src, 'sound/items/welder.ogg', 50, 1)
|
||||||
if(!WT.use_tool(src, user, 20, volume = 50, extra_checks = CALLBACK(src, .proc/is_open, src.density)))
|
if(!WT.use_tool(src, user, 20, volume = 50, extra_checks = CALLBACK(src, PROC_REF(is_open), src.density)))
|
||||||
return TRUE
|
return TRUE
|
||||||
if(!WT.use(0,user))
|
if(!WT.use(0,user))
|
||||||
to_chat(user, SPAN_NOTICE("You need more welding fuel to complete this task."))
|
to_chat(user, SPAN_NOTICE("You need more welding fuel to complete this task."))
|
||||||
@@ -1411,7 +1411,7 @@ About the new airlock wires panel:
|
|||||||
SPAN_WARNING("You start cutting the airlock control panel..."),\
|
SPAN_WARNING("You start cutting the airlock control panel..."),\
|
||||||
SPAN_NOTICE("You hear a loud buzzing sound and metal grinding on metal...")\
|
SPAN_NOTICE("You hear a loud buzzing sound and metal grinding on metal...")\
|
||||||
)
|
)
|
||||||
if(do_after(user, ChainSawVar.opendelay SECONDS, act_target = user, extra_checks = CALLBACK(src, .proc/CanChainsaw, C)))
|
if(do_after(user, ChainSawVar.opendelay SECONDS, act_target = user, extra_checks = CALLBACK(src, PROC_REF(CanChainsaw), C)))
|
||||||
user.visible_message(\
|
user.visible_message(\
|
||||||
SPAN_WARNING("[user.name] finishes cutting the control pannel of the airlock with the [C]."),\
|
SPAN_WARNING("[user.name] finishes cutting the control pannel of the airlock with the [C]."),\
|
||||||
SPAN_WARNING("You finish cutting the airlock control panel."),\
|
SPAN_WARNING("You finish cutting the airlock control panel."),\
|
||||||
@@ -1429,7 +1429,7 @@ About the new airlock wires panel:
|
|||||||
SPAN_WARNING("You start cutting below the airlock..."),\
|
SPAN_WARNING("You start cutting below the airlock..."),\
|
||||||
SPAN_NOTICE("You hear a loud buzzing sound and metal grinding on metal...")\
|
SPAN_NOTICE("You hear a loud buzzing sound and metal grinding on metal...")\
|
||||||
)
|
)
|
||||||
if(do_after(user, ChainSawVar.opendelay SECONDS, act_target = user, extra_checks = CALLBACK(src, .proc/CanChainsaw, C)))
|
if(do_after(user, ChainSawVar.opendelay SECONDS, act_target = user, extra_checks = CALLBACK(src, PROC_REF(CanChainsaw), C)))
|
||||||
user.visible_message(\
|
user.visible_message(\
|
||||||
SPAN_WARNING("[user.name] finishes cutting below the airlock with the [C]."),\
|
SPAN_WARNING("[user.name] finishes cutting below the airlock with the [C]."),\
|
||||||
SPAN_NOTICE("You finish cutting below the airlock."),\
|
SPAN_NOTICE("You finish cutting below the airlock."),\
|
||||||
@@ -1445,7 +1445,7 @@ About the new airlock wires panel:
|
|||||||
SPAN_WARNING("You start cutting between the airlock..."),\
|
SPAN_WARNING("You start cutting between the airlock..."),\
|
||||||
SPAN_NOTICE("You hear a loud buzzing sound and metal grinding on metal...")\
|
SPAN_NOTICE("You hear a loud buzzing sound and metal grinding on metal...")\
|
||||||
)
|
)
|
||||||
if(do_after(user, ChainSawVar.opendelay SECONDS, act_target = user, extra_checks = CALLBACK(src, .proc/CanChainsaw, C)))
|
if(do_after(user, ChainSawVar.opendelay SECONDS, act_target = user, extra_checks = CALLBACK(src, PROC_REF(CanChainsaw), C)))
|
||||||
user.visible_message(\
|
user.visible_message(\
|
||||||
SPAN_WARNING("[user.name] finishes cutting between the airlock."),\
|
SPAN_WARNING("[user.name] finishes cutting between the airlock."),\
|
||||||
SPAN_WARNING("You finish cutting between the airlock."),\
|
SPAN_WARNING("You finish cutting between the airlock."),\
|
||||||
@@ -1674,10 +1674,10 @@ About the new airlock wires panel:
|
|||||||
electrified_until = 0
|
electrified_until = 0
|
||||||
//if we lost power open 'er up
|
//if we lost power open 'er up
|
||||||
if(insecure)
|
if(insecure)
|
||||||
INVOKE_ASYNC(src, /obj/machinery/door/.proc/open, 1)
|
INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/machinery/door, open), 1)
|
||||||
securitylock = TRUE
|
securitylock = TRUE
|
||||||
else if(securitylock)
|
else if(securitylock)
|
||||||
INVOKE_ASYNC(src, /obj/machinery/door/.proc/close, 1)
|
INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/machinery/door, close), 1)
|
||||||
securitylock = FALSE
|
securitylock = FALSE
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -41,9 +41,9 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if (ROUND_IS_STARTED)
|
if (ROUND_IS_STARTED)
|
||||||
addtimer(CALLBACK(src, .proc/execute_current_command), 2 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(execute_current_command)), 2 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
else
|
else
|
||||||
SSticker.OnRoundstart(CALLBACK(src, .proc/handle_queue_command))
|
SSticker.OnRoundstart(CALLBACK(src, PROC_REF(handle_queue_command)))
|
||||||
waiting_for_roundstart = TRUE
|
waiting_for_roundstart = TRUE
|
||||||
|
|
||||||
/obj/machinery/door/airlock/proc/handle_queue_command()
|
/obj/machinery/door/airlock/proc/handle_queue_command()
|
||||||
@@ -314,4 +314,4 @@
|
|||||||
|
|
||||||
//if there's no power, receive the signal but just don't do anything. This allows airlocks to continue to work normally once power is restored
|
//if there's no power, receive the signal but just don't do anything. This allows airlocks to continue to work normally once power is restored
|
||||||
if(arePowerSystemsOn())
|
if(arePowerSystemsOn())
|
||||||
INVOKE_ASYNC(src, .proc/execute_current_command)
|
INVOKE_ASYNC(src, PROC_REF(execute_current_command))
|
||||||
|
|||||||
@@ -188,9 +188,9 @@
|
|||||||
return
|
return
|
||||||
if((stat & NOPOWER) && fail_secure)
|
if((stat & NOPOWER) && fail_secure)
|
||||||
securitylock = !density // Blast doors will only re-open when power is restored if they were open originally.
|
securitylock = !density // Blast doors will only re-open when power is restored if they were open originally.
|
||||||
INVOKE_ASYNC(src, /obj/machinery/door/blast/.proc/force_close)
|
INVOKE_ASYNC(src, PROC_REF(force_close))
|
||||||
else if(securitylock && fail_secure)
|
else if(securitylock && fail_secure)
|
||||||
INVOKE_ASYNC(src, /obj/machinery/door/blast/.proc/force_open)
|
INVOKE_ASYNC(src, PROC_REF(force_open))
|
||||||
securitylock = FALSE
|
securitylock = FALSE
|
||||||
|
|
||||||
/obj/machinery/door/blast/attack_hand(mob/user as mob)
|
/obj/machinery/door/blast/attack_hand(mob/user as mob)
|
||||||
|
|||||||
@@ -133,10 +133,10 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/door/proc/close_door_in(var/time = 5 SECONDS)
|
/obj/machinery/door/proc/close_door_in(var/time = 5 SECONDS)
|
||||||
addtimer(CALLBACK(src, .proc/close), time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(close)), time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
|
|
||||||
/obj/machinery/door/proc/close_hatch_in(var/time = 3 SECONDS)
|
/obj/machinery/door/proc/close_hatch_in(var/time = 3 SECONDS)
|
||||||
addtimer(CALLBACK(src, .proc/close_hatch), time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(close_hatch)), time, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
|
|
||||||
/obj/machinery/door/proc/can_open()
|
/obj/machinery/door/proc/can_open()
|
||||||
if(!density || operating || !ROUND_IS_STARTED)
|
if(!density || operating || !ROUND_IS_STARTED)
|
||||||
@@ -537,7 +537,7 @@
|
|||||||
if (autoclose)
|
if (autoclose)
|
||||||
for (var/atom/movable/M in get_turf(src))
|
for (var/atom/movable/M in get_turf(src))
|
||||||
if (M.density && M != src)
|
if (M.density && M != src)
|
||||||
addtimer(CALLBACK(src, .proc/autoclose), 60, TIMER_UNIQUE)
|
addtimer(CALLBACK(src, PROC_REF(autoclose)), 60, TIMER_UNIQUE)
|
||||||
break
|
break
|
||||||
operating = TRUE
|
operating = TRUE
|
||||||
|
|
||||||
|
|||||||
@@ -247,7 +247,7 @@
|
|||||||
close()
|
close()
|
||||||
|
|
||||||
if(needs_to_close)
|
if(needs_to_close)
|
||||||
addtimer(CALLBACK(src, .proc/do_close), 50)
|
addtimer(CALLBACK(src, PROC_REF(do_close)), 50)
|
||||||
|
|
||||||
/obj/machinery/door/firedoor/proc/do_close()
|
/obj/machinery/door/firedoor/proc/do_close()
|
||||||
var/alarmed = FALSE
|
var/alarmed = FALSE
|
||||||
@@ -275,7 +275,7 @@
|
|||||||
SPAN_ITALIC("You hear a welding torch on metal.")
|
SPAN_ITALIC("You hear a welding torch on metal.")
|
||||||
)
|
)
|
||||||
playsound(src, 'sound/items/welder.ogg', 50, 1)
|
playsound(src, 'sound/items/welder.ogg', 50, 1)
|
||||||
if(!WT.use_tool(src, user, 20, volume = 50, extra_checks = CALLBACK(src, .proc/is_open, src.density)))
|
if(!WT.use_tool(src, user, 20, volume = 50, extra_checks = CALLBACK(src, PROC_REF(is_open), src.density)))
|
||||||
return
|
return
|
||||||
if(!WT.use(0,user))
|
if(!WT.use(0,user))
|
||||||
to_chat(user, SPAN_NOTICE("You need more welding fuel to complete this task."))
|
to_chat(user, SPAN_NOTICE("You need more welding fuel to complete this task."))
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
open()
|
open()
|
||||||
else
|
else
|
||||||
open()
|
open()
|
||||||
addtimer(CALLBACK(src, .proc/close), check_access(null) ? 5 SECONDS : 2 SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(close)), check_access(null) ? 5 SECONDS : 2 SECONDS)
|
||||||
|
|
||||||
/obj/machinery/door/window/allowed(mob/M)
|
/obj/machinery/door/window/allowed(mob/M)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -251,7 +251,7 @@
|
|||||||
soundloop = new(src, FALSE)
|
soundloop = new(src, FALSE)
|
||||||
|
|
||||||
var/area/A = get_area(src)
|
var/area/A = get_area(src)
|
||||||
RegisterSignal(A, COMSIG_AREA_FIRE_ALARM, /atom/.proc/update_icon)
|
RegisterSignal(A, COMSIG_AREA_FIRE_ALARM, TYPE_PROC_REF(/atom, update_icon))
|
||||||
|
|
||||||
/obj/machinery/firealarm/Destroy()
|
/obj/machinery/firealarm/Destroy()
|
||||||
QDEL_NULL(soundloop)
|
QDEL_NULL(soundloop)
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
// If the cell is almost empty rarely "flicker" the light. Aesthetic only.
|
// If the cell is almost empty rarely "flicker" the light. Aesthetic only.
|
||||||
if((cell.percent() < 10) && prob(5))
|
if((cell.percent() < 10) && prob(5))
|
||||||
set_light(brightness_on/3, 0.5)
|
set_light(brightness_on/3, 0.5)
|
||||||
addtimer(CALLBACK(src, .proc/stop_flicker), 5, TIMER_UNIQUE)
|
addtimer(CALLBACK(src, PROC_REF(stop_flicker)), 5, TIMER_UNIQUE)
|
||||||
|
|
||||||
cell.use(use*CELLRATE)
|
cell.use(use*CELLRATE)
|
||||||
|
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ Possible to do for anyone motivated enough:
|
|||||||
to_chat(usr, SPAN_DANGER("Could not locate that holopad, this is a bug!"))
|
to_chat(usr, SPAN_DANGER("Could not locate that holopad, this is a bug!"))
|
||||||
return
|
return
|
||||||
connected_pad = HP
|
connected_pad = HP
|
||||||
INVOKE_ASYNC(src, .proc/make_call, connected_pad, usr, forcing_call)
|
INVOKE_ASYNC(src, PROC_REF(make_call), connected_pad, usr, forcing_call)
|
||||||
|
|
||||||
if(href_list["toggle_command"])
|
if(href_list["toggle_command"])
|
||||||
forcing_call = !forcing_call
|
forcing_call = !forcing_call
|
||||||
|
|||||||
@@ -67,6 +67,6 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
for(var/obj/machinery/holosign/M in SSmachinery.machinery)
|
for(var/obj/machinery/holosign/M in SSmachinery.machinery)
|
||||||
if (M.id == src.id)
|
if (M.id == src.id)
|
||||||
INVOKE_ASYNC(M, /obj/machinery/holosign/proc/toggle)
|
INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/holosign, toggle))
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -159,7 +159,7 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/sparker/M in SSmachinery.machinery)
|
for(var/obj/machinery/sparker/M in SSmachinery.machinery)
|
||||||
if (M.id == id)
|
if (M.id == id)
|
||||||
INVOKE_ASYNC(M, /obj/machinery/sparker/proc/ignite)
|
INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/machinery/sparker, ignite))
|
||||||
|
|
||||||
for(var/obj/machinery/igniter/M in SSmachinery.machinery)
|
for(var/obj/machinery/igniter/M in SSmachinery.machinery)
|
||||||
if(M.id == id)
|
if(M.id == id)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
name = "light switch ([area.name])"
|
name = "light switch ([area.name])"
|
||||||
|
|
||||||
src.on = src.area.lightswitch
|
src.on = src.area.lightswitch
|
||||||
addtimer(CALLBACK(src, .proc/sync_lights), 25)
|
addtimer(CALLBACK(src, PROC_REF(sync_lights)), 25)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/obj/machinery/light_switch/update_icon()
|
/obj/machinery/light_switch/update_icon()
|
||||||
|
|||||||
@@ -465,7 +465,7 @@ Class Procs:
|
|||||||
message = "\The [src] rattles to life and spits out a paper titled [paper]."
|
message = "\The [src] rattles to life and spits out a paper titled [paper]."
|
||||||
visible_message(SPAN_NOTICE(message))
|
visible_message(SPAN_NOTICE(message))
|
||||||
|
|
||||||
addtimer(CALLBACK(src, .proc/print_move_paper, paper), print_delay)
|
addtimer(CALLBACK(src, PROC_REF(print_move_paper), paper), print_delay)
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
hide(!T.is_plating())
|
hide(!T.is_plating())
|
||||||
center = T
|
center = T
|
||||||
|
|
||||||
addtimer(CALLBACK(src, .proc/magnetic_process), 0, TIMER_UNIQUE)
|
addtimer(CALLBACK(src, PROC_REF(magnetic_process)), 0, TIMER_UNIQUE)
|
||||||
|
|
||||||
/obj/machinery/magnetic_module/LateInitialize()
|
/obj/machinery/magnetic_module/LateInitialize()
|
||||||
if(SSradio)
|
if(SSradio)
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ var/global/list/navbeacons // no I don't like putting this in, but it will do
|
|||||||
/obj/machinery/navbeacon/receive_signal(datum/signal/signal)
|
/obj/machinery/navbeacon/receive_signal(datum/signal/signal)
|
||||||
var/request = signal.data["findbeacon"]
|
var/request = signal.data["findbeacon"]
|
||||||
if(request && ((request in codes) || request == "any" || request == location))
|
if(request && ((request in codes) || request == "any" || request == location))
|
||||||
addtimer(CALLBACK(src, .proc/post_signal), 1)
|
addtimer(CALLBACK(src, PROC_REF(post_signal)), 1)
|
||||||
|
|
||||||
// return a signal giving location and transponder codes
|
// return a signal giving location and transponder codes
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
src.ispowered = 1
|
src.ispowered = 1
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
else
|
else
|
||||||
addtimer(CALLBACK(src, .proc/post_power_loss), rand(1, 15))
|
addtimer(CALLBACK(src, PROC_REF(post_power_loss)), rand(1, 15))
|
||||||
|
|
||||||
/obj/machinery/newscaster/proc/post_power_loss()
|
/obj/machinery/newscaster/proc/post_power_loss()
|
||||||
ispowered = 0
|
ispowered = 0
|
||||||
@@ -1030,7 +1030,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
if (!alert)
|
if (!alert)
|
||||||
alert = 1
|
alert = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
addtimer(CALLBACK(src, .proc/clearAlert), 300, TIMER_UNIQUE)
|
addtimer(CALLBACK(src, PROC_REF(clearAlert)), 300, TIMER_UNIQUE)
|
||||||
|
|
||||||
playsound(src.loc, 'sound/machines/twobeep.ogg', 75, 1)
|
playsound(src.loc, 'sound/machines/twobeep.ogg', 75, 1)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -308,7 +308,7 @@
|
|||||||
if(powered())
|
if(powered())
|
||||||
queue_icon_update()
|
queue_icon_update()
|
||||||
else
|
else
|
||||||
addtimer(CALLBACK(src, .proc/lose_power), rand(1, 15))
|
addtimer(CALLBACK(src, PROC_REF(lose_power)), rand(1, 15))
|
||||||
|
|
||||||
/obj/machinery/porta_turret/proc/lose_power()
|
/obj/machinery/porta_turret/proc/lose_power()
|
||||||
stat |= NOPOWER
|
stat |= NOPOWER
|
||||||
@@ -408,7 +408,7 @@
|
|||||||
if(I.force * 0.5 > 1) //if the force of impact dealt at least 1 damage, the turret gets pissed off
|
if(I.force * 0.5 > 1) //if the force of impact dealt at least 1 damage, the turret gets pissed off
|
||||||
if(!attacked && !emagged)
|
if(!attacked && !emagged)
|
||||||
attacked = 1
|
attacked = 1
|
||||||
addtimer(CALLBACK(src, .proc/reset_attacked), 1 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(reset_attacked)), 1 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/porta_turret/proc/reset_attacked()
|
/obj/machinery/porta_turret/proc/reset_attacked()
|
||||||
@@ -450,7 +450,7 @@
|
|||||||
if(enabled)
|
if(enabled)
|
||||||
if(!attacked && !emagged)
|
if(!attacked && !emagged)
|
||||||
attacked = 1
|
attacked = 1
|
||||||
addtimer(CALLBACK(src, .proc/reset_attacked), 60, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(reset_attacked)), 60, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
take_damage(damage)
|
take_damage(damage)
|
||||||
@@ -468,7 +468,7 @@
|
|||||||
emagged = TRUE
|
emagged = TRUE
|
||||||
|
|
||||||
enabled = FALSE
|
enabled = FALSE
|
||||||
addtimer(CALLBACK(src, .proc/post_emp_act), rand(60, 600))
|
addtimer(CALLBACK(src, PROC_REF(post_emp_act)), rand(60, 600))
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -528,7 +528,7 @@
|
|||||||
tryToShootAt(secondarytargets)
|
tryToShootAt(secondarytargets)
|
||||||
|
|
||||||
if(!targets.len && !secondarytargets.len)
|
if(!targets.len && !secondarytargets.len)
|
||||||
resetting = addtimer(CALLBACK(src, .proc/reset), 6 SECONDS, TIMER_UNIQUE | TIMER_STOPPABLE) // no valid targets, close the cover
|
resetting = addtimer(CALLBACK(src, PROC_REF(reset)), 6 SECONDS, TIMER_UNIQUE | TIMER_STOPPABLE) // no valid targets, close the cover
|
||||||
else if(resetting)
|
else if(resetting)
|
||||||
deltimer(resetting)
|
deltimer(resetting)
|
||||||
resetting = null
|
resetting = null
|
||||||
@@ -769,7 +769,7 @@
|
|||||||
//Shooting Code:
|
//Shooting Code:
|
||||||
A.launch_projectile(target, def_zone)
|
A.launch_projectile(target, def_zone)
|
||||||
last_fired = TRUE
|
last_fired = TRUE
|
||||||
addtimer(CALLBACK(src, .proc/reset_last_fired), shot_delay, TIMER_UNIQUE | TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, PROC_REF(reset_last_fired)), shot_delay, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||||
|
|
||||||
/datum/turret_checks
|
/datum/turret_checks
|
||||||
var/enabled
|
var/enabled
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
var/datum/progressbar/progbar = new(user, C.maxcharge, src)
|
var/datum/progressbar/progbar = new(user, C.maxcharge, src)
|
||||||
progbar.update(C.charge)
|
progbar.update(C.charge)
|
||||||
LAZYADD(chargebars, progbar)
|
LAZYADD(chargebars, progbar)
|
||||||
chargebars[progbar] = addtimer(CALLBACK(src, .proc/remove_bar, progbar, null), 3 SECONDS, TIMER_UNIQUE | TIMER_STOPPABLE)
|
chargebars[progbar] = addtimer(CALLBACK(src, PROC_REF(remove_bar), progbar, null), 3 SECONDS, TIMER_UNIQUE | TIMER_STOPPABLE)
|
||||||
|
|
||||||
/obj/machinery/recharger/proc/remove_bar(datum/progressbar/bar, timerid)
|
/obj/machinery/recharger/proc/remove_bar(datum/progressbar/bar, timerid)
|
||||||
if (!timerid || deltimer(timerid))
|
if (!timerid || deltimer(timerid))
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
to_chat(user, "<span class='notice'>You link \the [C] to \the [src], it will now ring upon someone using \the [src].</span>")
|
to_chat(user, "<span class='notice'>You link \the [C] to \the [src], it will now ring upon someone using \the [src].</span>")
|
||||||
rings_pdas += C
|
rings_pdas += C
|
||||||
// WONT FIX: This requires callbacks fuck my dick.
|
// WONT FIX: This requires callbacks fuck my dick.
|
||||||
destroyed_event.register(C, src, .proc/remove_pda)
|
destroyed_event.register(C, src, PROC_REF(remove_pda))
|
||||||
update_icon()
|
update_icon()
|
||||||
return TRUE
|
return TRUE
|
||||||
else
|
else
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
var/message = "Attention required!"
|
var/message = "Attention required!"
|
||||||
P.get_notification(message, 1, "[capitalize(department)]")
|
P.get_notification(message, 1, "[capitalize(department)]")
|
||||||
|
|
||||||
addtimer(CALLBACK(src, .proc/unping), 45 SECONDS)
|
addtimer(CALLBACK(src, PROC_REF(unping)), 45 SECONDS)
|
||||||
|
|
||||||
/obj/machinery/ringer/proc/unping()
|
/obj/machinery/ringer/proc/unping()
|
||||||
pinged = FALSE
|
pinged = FALSE
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
if(watching_mob.client)
|
if(watching_mob.client)
|
||||||
animate(holomap_datum.station_map, alpha = 0, time = 5, easing = LINEAR_EASING)
|
animate(holomap_datum.station_map, alpha = 0, time = 5, easing = LINEAR_EASING)
|
||||||
var/mob/M = watching_mob
|
var/mob/M = watching_mob
|
||||||
addtimer(CALLBACK(src, .proc/clear_image, M, holomap_datum.station_map), 5, TIMER_CLIENT_TIME)//we give it time to fade out
|
addtimer(CALLBACK(src, PROC_REF(clear_image), M, holomap_datum.station_map), 5, TIMER_CLIENT_TIME)//we give it time to fade out
|
||||||
moved_event.unregister(watching_mob, src)
|
moved_event.unregister(watching_mob, src)
|
||||||
destroyed_event.unregister(watching_mob, src)
|
destroyed_event.unregister(watching_mob, src)
|
||||||
watching_mob = null
|
watching_mob = null
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
MK.forceMove(loc)
|
MK.forceMove(loc)
|
||||||
// Will help make emagging the console not so easy to get away with.
|
// Will help make emagging the console not so easy to get away with.
|
||||||
MK.info += "<br><br><span class='warning'>£%@%(*$%&(£&?*(%&£/{}</span>"
|
MK.info += "<br><br><span class='warning'>£%@%(*$%&(£&?*(%&£/{}</span>"
|
||||||
addtimer(CALLBACK(src, .proc/UnmagConsole), 100 * length(linkedServer.decryptkey))
|
addtimer(CALLBACK(src, PROC_REF(UnmagConsole)), 100 * length(linkedServer.decryptkey))
|
||||||
message = rebootmsg
|
message = rebootmsg
|
||||||
update_icon()
|
update_icon()
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user