diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index df54f854f..be990202a 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -155,11 +155,3 @@ }\ A.flags_1 &= ~OVERLAY_QUEUED_1;\ } - -/* Creates a new timer and adds it to the queue. - * Arguments: - * * callback the callback to call on timer finish - * * wait deciseconds to run the timer for - * * flags flags for the timer, see: code\__DEFINES\subsystems.dm - */ -#define addtimer(args...) _addtimer(args, file = __FILE__, line = __LINE__) diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 5de16d7fb..d8c981724 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -319,21 +319,19 @@ SUBSYSTEM_DEF(timer) var/wait var/hash var/list/flags - var/source var/spent = 0 //time we ran the timer. var/name //for easy debugging. //cicular doublely linked list var/datum/timedevent/next var/datum/timedevent/prev -/datum/timedevent/New(datum/callback/callBack, wait, flags, hash, source) +/datum/timedevent/New(datum/callback/callBack, wait, flags, hash) var/static/nextid = 1 id = TIMER_ID_NULL src.callBack = callBack src.wait = wait src.flags = flags src.hash = hash - src.source = source if (flags & TIMER_CLIENT_TIME) timeToRun = REALTIMEOFDAY + wait @@ -458,10 +456,7 @@ SUBSYSTEM_DEF(timer) else . = "[callBack.object.type]" -/* - * Do not call this directly. Instead, use the addtimer() macro, which includes source information - */ -/proc/_addtimer(datum/callback/callback, wait = 0, flags = 0, file, line) +/proc/addtimer(datum/callback/callback, wait = 0, flags = 0) if (!callback) CRASH("addtimer called without a callback") @@ -502,7 +497,7 @@ SUBSYSTEM_DEF(timer) else if(flags & TIMER_OVERRIDE) stack_trace("TIMER_OVERRIDE used without TIMER_UNIQUE") - var/datum/timedevent/timer = new(callback, wait, flags, hash, file && "[file]:[line]") + var/datum/timedevent/timer = new(callback, wait, flags, hash) return timer.id /proc/deltimer(id) diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm index dd4a6ea47..9be52dab5 100644 --- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm +++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm @@ -15,5 +15,5 @@ message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].") log_game("An alien egg has been delivered to [AREACOORD(T)]") var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen." - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/_addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time)) return INITIALIZE_HINT_QDEL diff --git a/code/game/world.dm b/code/game/world.dm index 999704c8a..8ef4d3719 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -71,7 +71,7 @@ GLOBAL_VAR(restart_counter) #else cb = VARSET_CALLBACK(SSticker, force_ending, TRUE) #endif - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/_addtimer, cb, 10 SECONDS)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, cb, 10 SECONDS)) /world/proc/SetupExternalRSC() #if (PRELOAD_RSC == 0) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 0ab3528af..399823a2c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -177,7 +177,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug, world.AVerbsDebug()) /client/proc/cmd_display_overlay_log, /client/proc/reload_configuration, /datum/admins/proc/create_or_modify_area, - /client/proc/check_timer_sources, /client/proc/generate_wikichem_list //DO NOT PRESS UNLESS YOU WANT SUPERLAG ) GLOBAL_PROTECT(admin_verbs_possess) @@ -729,4 +728,4 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list( set name = "Debug Stat Panel" set category = "Debug" - src << output("", "statbrowser:create_debug") + src << output("", "statbrowser:create_debug") \ No newline at end of file diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index cff01ca31..f6df2a5d0 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -822,62 +822,3 @@ return if(alert(usr, "Are you absolutely sure you want to reload the configuration from the default path on the disk, wiping any in-round modificatoins?", "Really reset?", "No", "Yes") == "Yes") config.admin_reload() - -/// A debug verb to check the sources of currently running timers -/client/proc/check_timer_sources() - set category = "Debug" - set name = "Check Timer Sources" - set desc = "Checks the sources of the running timers" - if(!check_rights(R_DEBUG)) - return - - var/bucket_list_output = generate_timer_source_output(SStimer.bucket_list) - var/second_queue = generate_timer_source_output(SStimer.second_queue) - - usr << browse({" -

bucket_list

- [bucket_list_output] -

second_queue

- [second_queue] - "}, "window=check_timer_sources;size=700x700") - -/proc/generate_timer_source_output(list/datum/timedevent/events) - var/list/per_source = list() - - // Collate all events and figure out what sources are creating the most - for (var/_event in events) - if (!_event) - continue - var/datum/timedevent/event = _event - - do - if (event.source) - if (per_source[event.source] == null) - per_source[event.source] = 1 - else - per_source[event.source] += 1 - event = event.next - while (event && event != _event) - - // Now, sort them in order - var/list/sorted = list() - for (var/source in per_source) - sorted += list(list("source" = source, "count" = per_source[source])) - sorted = sortTim(sorted, .proc/cmp_timer_data) - - // Now that everything is sorted, compile them into an HTML output - var/output = "" - - for (var/_timer_data in sorted) - var/list/timer_data = _timer_data - output += {" - - - "} - - output += "
[timer_data["source"]][timer_data["count"]]
" - - return output - -/proc/cmp_timer_data(list/a, list/b) - return b["count"] - a["count"] diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index fbbdf2504..e3e2ca4f1 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -140,7 +140,7 @@ /datum/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels. if(H && GLOB.announcement_systems.len) //timer because these should come after the captain announcement - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/_addtimer, CALLBACK(pick(GLOB.announcement_systems), /obj/machinery/announcement_system/proc/announce, "NEWHEAD", H.real_name, H.job, H.client?.prefs.alt_titles_preferences[H.job], channels), 1)) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/addtimer, CALLBACK(pick(GLOB.announcement_systems), /obj/machinery/announcement_system/proc/announce, "NEWHEAD", H.real_name, H.job, H.client?.prefs.alt_titles_preferences[H.job], channels), 1)) //If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1 /datum/job/proc/player_old_enough(client/C)