diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm
index 6acc667f2d9..77dae707c8e 100644
--- a/code/__DEFINES/MC.dm
+++ b/code/__DEFINES/MC.dm
@@ -44,7 +44,7 @@
/// (implies all runlevels because of how it works)
/// (overrides SS_BACKGROUND)
/// This is designed for basically anything that works as a mini-mc (like SStimer)
-#define SS_TICKER 16
+#define SS_SSticker 16
/** keep the subsystem's timing on point by firing early if it fired late last fire because of lag */
/// ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
new file mode 100644
index 00000000000..ca11c5604e9
--- /dev/null
+++ b/code/__DEFINES/atmospherics.dm
@@ -0,0 +1,9 @@
+
+#define PIPE_COLOR_GREY "#ffffff" //yes white is grey
+#define PIPE_COLOR_RED "#ff0000"
+#define PIPE_COLOR_BLUE "#0000ff"
+#define PIPE_COLOR_CYAN "#00ffff"
+#define PIPE_COLOR_GREEN "#00ff00"
+#define PIPE_COLOR_YELLOW "#ffcc00"
+#define PIPE_COLOR_BLACK "#444444"
+#define PIPE_COLOR_PURPLE "#5c1ec0"
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 287ef02a02a..485a177a574 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -57,27 +57,30 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
// Subsystem init_order, from highest priority to lowest priority
// Subsystems shutdown in the reverse of the order they initialize in
// The numbers just define the ordering, they are meaningless otherwise.
-#define INIT_ORDER_FAIL2TOPIC 101
-#define INIT_ORDER_SOUNDS 95
-#define INIT_ORDER_GARBAGE 70
-#define INIT_ORDER_TIMER 60
-#define INIT_ORDER_INSTRUMENTS 50
-#define INIT_ORDER_MAPPING 20 // VOREStation Edit
+#define INIT_ORDER_FAIL2TOPIC 101
+#define INIT_ORDER_SOUNDS 95
+#define INIT_ORDER_JOBS 85
+#define INIT_ORDER_GARBAGE 70
+#define INIT_ORDER_TIMER 60
+#define INIT_ORDER_INSTRUMENTS 50
+#define INIT_ORDER_MAPPING 20 // VOREStation Edit
#define INIT_ORDER_SERVER_MAINT 17
-#define INIT_ORDER_DECALS 16
-#define INIT_ORDER_ATOMS 15
-#define INIT_ORDER_MACHINES 10
-#define INIT_ORDER_SHUTTLES 3
-#define INIT_ORDER_DEFAULT 0
-#define INIT_ORDER_LIGHTING 0
-#define INIT_ORDER_AIR -1
-#define INIT_ORDER_PLANETS -4
-#define INIT_ORDER_HOLOMAPS -5
-#define INIT_ORDER_OVERLAY -6
-#define INIT_ORDER_XENOARCH -20
-#define INIT_ORDER_CIRCUIT -21
-#define INIT_ORDER_CHEMISTRY 18
-#define INIT_ORDER_AI -22
+#define INIT_ORDER_DECALS 16
+#define INIT_ORDER_ATOMS 15
+#define INIT_ORDER_MACHINES 10
+#define INIT_ORDER_SHUTTLES 3
+#define INIT_ORDER_DEFAULT 0
+#define INIT_ORDER_LIGHTING 0
+#define INIT_ORDER_AIR -1
+#define INIT_ORDER_PLANETS -4
+#define INIT_ORDER_HOLOMAPS -5
+#define INIT_ORDER_OVERLAY -6
+#define INIT_ORDER_TICKER -10
+#define INIT_ORDER_XENOARCH -20
+#define INIT_ORDER_CIRCUIT -21
+#define INIT_ORDER_CHEMISTRY 18
+#define INIT_ORDER_AI -22
+#define INIT_ORDER_OPENSPACE -50
// Subsystem fire priority, from lowest to highest priority
diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm
index f94381295b6..e7a5f9f4dcc 100644
--- a/code/__DEFINES/time.dm
+++ b/code/__DEFINES/time.dm
@@ -20,5 +20,5 @@
#define WORLDTIME2TEXT(format) GAMETIMESTAMP(format, world.time)
#define WORLDTIMEOFDAY2TEXT(format) GAMETIMESTAMP(format, world.timeofday)
#define TIME_STAMP(format, showds) showds ? "[WORLDTIMEOFDAY2TEXT(format)]:[world.timeofday % 10]" : WORLDTIMEOFDAY2TEXT(format)
-#define STATION_TIME(display_only, wtime) ((((wtime - SSticker.round_start_time) * SSticker.station_time_rate_multiplier) + SSticker.gametime_offset) % 864000) - (display_only? GLOB.timezoneOffset : 0)
+#define STATION_TIME(display_only, wtime) ((((wtime - SSSSticker.round_start_time) * SSSSticker.station_time_rate_multiplier) + SSSSticker.gametime_offset) % 864000) - (display_only? GLOB.timezoneOffset : 0)
#define STATION_TIME_TIMESTAMP(format, wtime) time2text(STATION_TIME(TRUE, wtime), format)
diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm
index a0b98c4e405..29899ddce13 100644
--- a/code/__HELPERS/time.dm
+++ b/code/__HELPERS/time.dm
@@ -90,11 +90,6 @@ var/round_start_time = 0
next_duration_update = world.time + 1 MINUTES
return last_round_duration
-//Can be useful for things dependent on process timing
-/proc/process_schedule_interval(var/process_name)
- var/datum/controller/process/process = processScheduler.getProcess(process_name)
- return process.schedule_interval
-
/hook/startup/proc/set_roundstart_hour()
roundstart_hour = pick(2,7,12,17)
return 1
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 00d8e90fa21..fdeac0ba2ad 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -182,7 +182,7 @@
/mob/living/UnarmedAttack(var/atom/A, var/proximity_flag)
- if(!ticker)
+ if(!SSticker)
to_chat(src, "You cannot attack people before the game has started.")
return 0
diff --git a/code/controllers/ProcessScheduler/core/process.dm b/code/controllers/ProcessScheduler/core/process.dm
deleted file mode 100644
index 1922b7837b9..00000000000
--- a/code/controllers/ProcessScheduler/core/process.dm
+++ /dev/null
@@ -1,392 +0,0 @@
-// Process
-
-/datum/controller/process
- /**
- * State vars
- */
- // Main controller ref
- var/tmp/datum/controller/processScheduler/main
-
- // 1 if process is not running or queued
- var/tmp/idle = 1
-
- // 1 if process is queued
- var/tmp/queued = 0
-
- // 1 if process is running
- var/tmp/running = 0
-
- // 1 if process is blocked up
- var/tmp/hung = 0
-
- // 1 if process was killed
- var/tmp/killed = 0
-
- // Status text var
- var/tmp/status
-
- // Previous status text var
- var/tmp/previousStatus
-
- // 1 if process is disabled
- var/tmp/disabled = 0
-
- /**
- * Config vars
- */
- // Process name
-
- // Process schedule interval
- // This controls how often the process would run under ideal conditions.
- // If the process scheduler sees that the process has finished, it will wait until
- // this amount of time has elapsed from the start of the previous run to start the
- // process running again.
- var/tmp/schedule_interval = PROCESS_DEFAULT_SCHEDULE_INTERVAL // run every 50 ticks
-
- // Process sleep interval
- // This controls how often the process will yield (call sleep(0)) while it is running.
- // Every concurrent process should sleep periodically while running in order to allow other
- // processes to execute concurrently.
- var/tmp/sleep_interval = PROCESS_DEFAULT_SLEEP_INTERVAL
-
- // Defer usage; the tick usage at which this process will defer until the next tick
- var/tmp/defer_usage = PROCESS_DEFAULT_DEFER_USAGE
-
- // hang_warning_time - this is the time (in 1/10 seconds) after which the server will begin to show "maybe hung" in the context window
- var/tmp/hang_warning_time = PROCESS_DEFAULT_HANG_WARNING_TIME
-
- // hang_alert_time - After this much time(in 1/10 seconds), the server will send an admin debug message saying the process may be hung
- var/tmp/hang_alert_time = PROCESS_DEFAULT_HANG_ALERT_TIME
-
- // hang_restart_time - After this much time(in 1/10 seconds), the server will automatically kill and restart the process.
- var/tmp/hang_restart_time = PROCESS_DEFAULT_HANG_RESTART_TIME
-
- // Number of deciseconds to delay before starting the process
- var/start_delay = 0
-
- /**
- * recordkeeping vars
- */
-
- // Records the time (1/10s timeofgame) at which the process last began running
- var/tmp/run_start = 0
-
- // Records the number of times this process has been killed and restarted
- var/tmp/times_killed
-
- // Tick count
- var/tmp/ticks = 0
-
- var/tmp/last_task = ""
-
- var/tmp/last_object
-
- // How many times in the current run has the process deferred work till the next tick?
- var/tmp/cpu_defer_count = 0
-
- // Counts the number of times an exception has occurred; gets reset after 10
- var/tmp/list/exceptions = list()
-
- // The next tick_usage the process will sleep at
- var/tmp/next_sleep_usage
-
- // Last run duration, in seconds
- var/tmp/last_run_time = 0
-
- // Last 20 run durations
- var/tmp/list/last_twenty_run_times = list()
-
- // Highest run duration, in seconds
- var/tmp/highest_run_time = 0
-
- // Tick usage at start of current run (updates upon deferring)
- var/tmp/tick_usage_start
-
- // Accumulated tick usage from before each deferral
- var/tmp/tick_usage_accumulated = 0
-
-/datum/controller/process/New(var/datum/controller/processScheduler/scheduler)
- ..()
- main = scheduler
- previousStatus = "idle"
- idle()
- name = "process"
- run_start = 0
- ticks = 0
- last_task = 0
- last_object = null
-
-/datum/controller/process/proc/started()
- // Initialize run_start so we can detect hung processes.
- run_start = TimeOfGame
-
- // Initialize defer count
- cpu_defer_count = 0
-
- // Prepare usage tracking (defer() updates these)
- tick_usage_start = TICK_USAGE
- tick_usage_accumulated = 0
-
- running()
- main.processStarted(src)
-
- onStart()
-
-/datum/controller/process/proc/finished()
- ticks++
- recordRunTime()
- idle()
- main.processFinished(src)
-
- onFinish()
-
-/datum/controller/process/proc/recordRunTime()
- // Convert from tick usage (100/tick) to seconds of CPU time used
- var/total_usage = (tick_usage_accumulated + (TICK_USAGE - tick_usage_start)) / 1000 * world.tick_lag
-
- last_run_time = total_usage
- if(total_usage > highest_run_time)
- highest_run_time = total_usage
- if(last_twenty_run_times.len == 20)
- last_twenty_run_times.Cut(1, 2)
- last_twenty_run_times += total_usage
-
-/datum/controller/process/proc/doWork()
-
-/datum/controller/process/proc/setup()
-
-/datum/controller/process/process()
- started()
- doWork()
- finished()
-
-/datum/controller/process/proc/running()
- idle = 0
- queued = 0
- running = 1
- hung = 0
- setStatus(PROCESS_STATUS_RUNNING)
-
-/datum/controller/process/proc/idle()
- queued = 0
- running = 0
- idle = 1
- hung = 0
- setStatus(PROCESS_STATUS_IDLE)
-
-/datum/controller/process/proc/queued()
- idle = 0
- running = 0
- queued = 1
- hung = 0
- setStatus(PROCESS_STATUS_QUEUED)
-
-/datum/controller/process/proc/hung()
- hung = 1
- setStatus(PROCESS_STATUS_HUNG)
-
-/datum/controller/process/proc/handleHung()
- var/datum/lastObj = last_object
- var/lastObjType = "null"
- if(istype(lastObj))
- lastObjType = lastObj.type
-
- var/msg = "[name] process hung at tick #[ticks]. Process was unresponsive for [(TimeOfGame - run_start) / 10] seconds and was restarted. Last task: [last_task]. Last Object Type: [lastObjType]"
- log_debug(msg)
- message_admins(msg)
-
- main.restartProcess(src.name)
-
-/datum/controller/process/proc/kill()
- if (!killed)
- var/msg = "[name] process was killed at tick #[ticks]."
- log_debug(msg)
- message_admins(msg)
- //finished()
-
- // Allow inheritors to clean up if needed
- onKill()
-
- // This should del
- del(src)
-
-// Do not call this directly - use SHECK
-/datum/controller/process/proc/defer()
- if(killed)
- // The kill proc is the only place where killed is set.
- // The kill proc should have deleted this datum, and all sleeping procs that are
- // owned by it.
- CRASH("A killed process is still running somehow...")
- if (hung)
- // This will only really help if the doWork proc ends up in an infinite loop.
- handleHung()
- CRASH("Process [name] hung and was restarted.")
-
- tick_usage_accumulated += (TICK_USAGE - tick_usage_start)
- if(TICK_USAGE < defer_usage)
- sleep(0)
- else
- sleep(world.tick_lag)
- cpu_defer_count++
- tick_usage_start = TICK_USAGE
- next_sleep_usage = min(TICK_USAGE + sleep_interval, defer_usage)
-
-/datum/controller/process/proc/update()
- // Clear delta
- if(previousStatus != status)
- setStatus(status)
-
- var/elapsedTime = getElapsedTime()
-
- if (hung)
- handleHung()
- return
- else if (elapsedTime > hang_restart_time)
- hung()
- else if (elapsedTime > hang_alert_time)
- setStatus(PROCESS_STATUS_PROBABLY_HUNG)
- else if (elapsedTime > hang_warning_time)
- setStatus(PROCESS_STATUS_MAYBE_HUNG)
-
-
-/datum/controller/process/proc/getElapsedTime()
- return TimeOfGame - run_start
-
-/datum/controller/process/proc/tickDetail()
- return
-
-/datum/controller/process/proc/getContext()
- return "
| [name] | [getAverageRunTime()] | [last_run_time] | [highest_run_time] | [ticks] |
\n"
-
-/datum/controller/process/proc/getContextData()
- return list(
- "name" = name,
- "averageRunTime" = getAverageRunTime(),
- "lastRunTime" = last_run_time,
- "highestRunTime" = highest_run_time,
- "ticks" = ticks,
- "schedule" = schedule_interval,
- "status" = getStatusText(),
- "disabled" = disabled
- )
-
-/datum/controller/process/proc/getStatus()
- return status
-
-/datum/controller/process/proc/getStatusText(var/s = 0)
- if(!s)
- s = status
- switch(s)
- if(PROCESS_STATUS_IDLE)
- return "idle"
- if(PROCESS_STATUS_QUEUED)
- return "queued"
- if(PROCESS_STATUS_RUNNING)
- return "running"
- if(PROCESS_STATUS_MAYBE_HUNG)
- return "maybe hung"
- if(PROCESS_STATUS_PROBABLY_HUNG)
- return "probably hung"
- if(PROCESS_STATUS_HUNG)
- return "HUNG"
- else
- return "UNKNOWN"
-
-/datum/controller/process/proc/getPreviousStatus()
- return previousStatus
-
-/datum/controller/process/proc/getPreviousStatusText()
- return getStatusText(previousStatus)
-
-/datum/controller/process/proc/setStatus(var/newStatus)
- previousStatus = status
- status = newStatus
-
-/datum/controller/process/proc/setLastTask(var/task, var/object)
- last_task = task
- last_object = object
-
-/datum/controller/process/proc/_copyStateFrom(var/datum/controller/process/target)
- main = target.main
- name = target.name
- schedule_interval = target.schedule_interval
- sleep_interval = target.sleep_interval
- run_start = 0
- times_killed = target.times_killed
- ticks = target.ticks
- last_task = target.last_task
- last_object = target.last_object
- copyStateFrom(target)
-
-/datum/controller/process/proc/copyStateFrom(var/datum/controller/process/target)
-
-/datum/controller/process/proc/onKill()
-
-/datum/controller/process/proc/onStart()
-
-/datum/controller/process/proc/onFinish()
-
-/datum/controller/process/proc/disable()
- disabled = 1
-
-/datum/controller/process/proc/enable()
- disabled = 0
-
-/datum/controller/process/proc/getAverageRunTime()
- var/t = 0
- var/c = 0
- for(var/time in last_twenty_run_times)
- t += time
- c++
-
- if(c > 0)
- return t / c
- return c
-
-/datum/controller/process/proc/getLastRunTime()
- return last_run_time
-
-/datum/controller/process/proc/getHighestRunTime()
- return highest_run_time
-
-/datum/controller/process/proc/getTicks()
- return ticks
-
-/datum/controller/process/proc/statProcess()
- var/averageRunTime = round(getAverageRunTime(), 0.001)
- var/lastRunTime = round(last_run_time, 0.001)
- var/highestRunTime = round(highest_run_time, 0.001)
- var/deferTime = round(cpu_defer_count / 10 * world.tick_lag, 0.01)
- stat("[name]", "T#[getTicks()] | AR [averageRunTime] | LR [lastRunTime] | HR [highestRunTime] | D [deferTime]")
-
-/datum/controller/process/proc/catchException(var/exception/e, var/thrower)
- if(istype(e)) // Real runtimes go to the real error handler
- log_runtime(e, thrower, "Caught by process: [name]")
- return
- var/etext = "[e]"
- var/eid = "[e]" // Exception ID, for tracking repeated exceptions
- var/ptext = "" // "processing..." text, for what was being processed (if known)
- if(istype(e))
- etext += " in [e.file], line [e.line]"
- eid = "[e.file]:[e.line]"
- if(eid in exceptions)
- if(exceptions[eid]++ >= 10)
- return
- else
- exceptions[eid] = 1
- if(istype(thrower, /datum))
- var/datum/D = thrower
- ptext = " processing [D.type]"
- if(istype(thrower, /atom))
- var/atom/A = thrower
- ptext += " ([A]) ([A.x],[A.y],[A.z])"
- log_world("\[[time_stamp()]\] Process [name] caught exception[ptext]: [etext]")
- if(exceptions[eid] >= 10)
- log_world("This exception will now be ignored for ten minutes.")
- spawn(6000)
- exceptions[eid] = 0
-
-/datum/controller/process/proc/catchBadType(var/datum/caught)
- if(isnull(caught) || !istype(caught) || QDELETED(caught))
- return // Only bother with types we can identify and that don't belong
- catchException("Type [caught.type] does not belong in process' queue")
diff --git a/code/controllers/ProcessScheduler/core/processScheduler.dm b/code/controllers/ProcessScheduler/core/processScheduler.dm
deleted file mode 100644
index c5b658de15f..00000000000
--- a/code/controllers/ProcessScheduler/core/processScheduler.dm
+++ /dev/null
@@ -1,234 +0,0 @@
-// Singleton instance of game_controller_new, setup in world.New()
-var/global/datum/controller/processScheduler/processScheduler
-
-/datum/controller/processScheduler
- // Processes known by the scheduler
- var/tmp/datum/controller/process/list/processes = new
-
- // Processes that are currently running
- var/tmp/datum/controller/process/list/running = new
-
- // Processes that are idle
- var/tmp/datum/controller/process/list/idle = new
-
- // Processes that are queued to run
- var/tmp/datum/controller/process/list/queued = new
-
- // Process name -> process object map
- var/tmp/datum/controller/process/list/nameToProcessMap = new
-
- // Process last queued times (world time)
- var/tmp/datum/controller/process/list/last_queued = new
-
- // How long to sleep between runs (set to tick_lag in New)
- var/tmp/scheduler_sleep_interval
-
- // Controls whether the scheduler is running or not
- var/tmp/isRunning = 0
-
- // Setup for these processes will be deferred until all the other processes are set up.
- var/tmp/list/deferredSetupList = new
-
-/datum/controller/processScheduler/New()
- ..()
- // When the process scheduler is first new'd, tick_lag may be wrong, so these
- // get re-initialized when the process scheduler is started.
- // (These are kept here for any processes that decide to process before round start)
- scheduler_sleep_interval = world.tick_lag
-
-/**
- * deferSetupFor
- * @param path processPath
- * If a process needs to be initialized after everything else, add it to
- * the deferred setup list. On goonstation, only the ticker needs to have
- * this treatment.
- */
-/datum/controller/processScheduler/proc/deferSetupFor(var/processPath)
- if (!(processPath in deferredSetupList))
- deferredSetupList += processPath
-
-/datum/controller/processScheduler/proc/setup()
- // There can be only one
- if(processScheduler && (processScheduler != src))
- del(src)
- return 0
-
- var/process
- // Add all the processes we can find, except for the ticker
- for (process in subtypesof(/datum/controller/process))
- if (!(process in deferredSetupList))
- addProcess(new process(src))
-
- for (process in deferredSetupList)
- addProcess(new process(src))
-
-/datum/controller/processScheduler/proc/start()
- isRunning = 1
- // tick_lag will have been set by now, so re-initialize these
- scheduler_sleep_interval = world.tick_lag
- updateStartDelays()
- spawn(0)
- process()
-
-/datum/controller/processScheduler/process()
- while(isRunning)
- checkRunningProcesses()
- queueProcesses()
- runQueuedProcesses()
- sleep(scheduler_sleep_interval)
-
-/datum/controller/processScheduler/proc/stop()
- isRunning = 0
-
-/datum/controller/processScheduler/proc/checkRunningProcesses()
- for(var/datum/controller/process/p in running)
- p.update()
-
- if (isnull(p)) // Process was killed
- continue
-
- var/status = p.getStatus()
- var/previousStatus = p.getPreviousStatus()
-
- // Check status changes
- if(status != previousStatus)
- //Status changed.
- switch(status)
- if(PROCESS_STATUS_PROBABLY_HUNG)
- message_admins("Process '[p.name]' may be hung.")
- if(PROCESS_STATUS_HUNG)
- message_admins("Process '[p.name]' is hung and will be restarted.")
-
-/datum/controller/processScheduler/proc/queueProcesses()
- for(var/datum/controller/process/p in processes)
- // Don't double-queue, don't queue running processes
- if (p.disabled || p.running || p.queued || !p.idle)
- continue
-
- // If the process should be running by now, go ahead and queue it
- if (world.time >= last_queued[p] + p.schedule_interval)
- setQueuedProcessState(p)
-
-/datum/controller/processScheduler/proc/runQueuedProcesses()
- for(var/datum/controller/process/p in queued)
- runProcess(p)
-
-/datum/controller/processScheduler/proc/addProcess(var/datum/controller/process/process)
- processes.Add(process)
- process.idle()
- idle.Add(process)
-
- // Set up process
- process.setup()
-
- // Save process in the name -> process map
- nameToProcessMap[process.name] = process
-
-/datum/controller/processScheduler/proc/replaceProcess(var/datum/controller/process/oldProcess, var/datum/controller/process/newProcess)
- processes.Remove(oldProcess)
- processes.Add(newProcess)
-
- newProcess.idle()
- idle.Remove(oldProcess)
- running.Remove(oldProcess)
- queued.Remove(oldProcess)
- idle.Add(newProcess)
-
- newProcess.last_run_time = oldProcess.last_run_time
- newProcess.last_twenty_run_times = oldProcess.last_twenty_run_times
- newProcess.highest_run_time = oldProcess.highest_run_time
-
- nameToProcessMap[newProcess.name] = newProcess
-
-/datum/controller/processScheduler/proc/updateStartDelays()
- for(var/datum/controller/process/p in processes)
- if(p.start_delay)
- last_queued[p] = world.time - p.start_delay
-
-/datum/controller/processScheduler/proc/runProcess(var/datum/controller/process/process)
- spawn(0)
- process.process()
-
-/datum/controller/processScheduler/proc/processStarted(var/datum/controller/process/process)
- setRunningProcessState(process)
- last_queued[process] = world.time
-
-/datum/controller/processScheduler/proc/processFinished(var/datum/controller/process/process)
- setIdleProcessState(process)
-
-/datum/controller/processScheduler/proc/setIdleProcessState(var/datum/controller/process/process)
- if (process in running)
- running -= process
- if (process in queued)
- queued -= process
- if (!(process in idle))
- idle += process
-
-/datum/controller/processScheduler/proc/setQueuedProcessState(var/datum/controller/process/process)
- if (process in running)
- running -= process
- if (process in idle)
- idle -= process
- if (!(process in queued))
- queued += process
-
- // The other state transitions are handled internally by the process.
- process.queued()
-
-/datum/controller/processScheduler/proc/setRunningProcessState(var/datum/controller/process/process)
- if (process in queued)
- queued -= process
- if (process in idle)
- idle -= process
- if (!(process in running))
- running += process
-
-
-/datum/controller/processScheduler/proc/getStatusData()
- var/list/data = new
-
- for (var/datum/controller/process/p in processes)
- data.len++
- data[data.len] = p.getContextData()
-
- return data
-
-/datum/controller/processScheduler/proc/getProcessCount()
- return processes.len
-
-/datum/controller/processScheduler/proc/hasProcess(var/processName as text)
- if (nameToProcessMap[processName])
- return 1
-
-/datum/controller/processScheduler/proc/killProcess(var/processName as text)
- restartProcess(processName)
-
-/datum/controller/processScheduler/proc/restartProcess(var/processName as text)
- if (hasProcess(processName))
- var/datum/controller/process/oldInstance = nameToProcessMap[processName]
- var/datum/controller/process/newInstance = new oldInstance.type(src)
- newInstance._copyStateFrom(oldInstance)
- replaceProcess(oldInstance, newInstance)
- oldInstance.kill()
-
-/datum/controller/processScheduler/proc/enableProcess(var/processName as text)
- if (hasProcess(processName))
- var/datum/controller/process/process = nameToProcessMap[processName]
- process.enable()
-
-/datum/controller/processScheduler/proc/disableProcess(var/processName as text)
- if (hasProcess(processName))
- var/datum/controller/process/process = nameToProcessMap[processName]
- process.disable()
-
-
-/datum/controller/processScheduler/proc/statProcesses()
- if(!isRunning)
- stat("Processes", "Scheduler not running")
- return
- stat("Processes", "[processes.len] (R [running.len] / Q [queued.len] / I [idle.len])")
- for(var/datum/controller/process/p in processes)
- p.statProcess()
-
-/datum/controller/processScheduler/proc/getProcess(var/process_name)
- return nameToProcessMap[process_name]
diff --git a/code/controllers/Processes/alarm.dm b/code/controllers/Processes/alarm.dm
deleted file mode 100644
index 7d7b709d79c..00000000000
--- a/code/controllers/Processes/alarm.dm
+++ /dev/null
@@ -1,42 +0,0 @@
-
-// We manually initialize the alarm handlers instead of looping over all existing types
-// to make it possible to write: camera.triggerAlarm() rather than alarm_manager.managers[datum/alarm_handler/camera].triggerAlarm() or a variant thereof.
-/var/global/datum/alarm_handler/atmosphere/atmosphere_alarm = new()
-/var/global/datum/alarm_handler/camera/camera_alarm = new()
-/var/global/datum/alarm_handler/fire/fire_alarm = new()
-/var/global/datum/alarm_handler/motion/motion_alarm = new()
-/var/global/datum/alarm_handler/power/power_alarm = new()
-
-// Alarm Manager, the manager for alarms.
-var/global/datum/controller/process/alarm/alarm_manager // citadel change, please don't break
-
-/datum/controller/process/alarm
- var/list/datum/alarm/all_handlers = list()
-
-/datum/controller/process/alarm/setup()
- name = "alarm"
- schedule_interval = 20 // every 2 seconds
- all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
- alarm_manager = src
-
-/datum/controller/process/alarm/doWork()
- for(last_object in all_handlers)
- var/datum/alarm_handler/AH = last_object
- AH.process()
- SCHECK
-
-/datum/controller/process/alarm/proc/active_alarms()
- var/list/all_alarms = new
- for(var/datum/alarm_handler/AH in all_handlers)
- var/list/alarms = AH.alarms
- all_alarms += alarms
-
- return all_alarms
-
-/datum/controller/process/alarm/proc/number_of_active_alarms()
- var/list/alarms = active_alarms()
- return alarms.len
-
-/datum/controller/process/alarm/statProcess()
- ..()
- stat(null, "[number_of_active_alarms()] alarm\s")
diff --git a/code/controllers/Processes/chemistry.dm b/code/controllers/Processes/chemistry.dm
deleted file mode 100644
index 5f252f5f0ab..00000000000
--- a/code/controllers/Processes/chemistry.dm
+++ /dev/null
@@ -1,33 +0,0 @@
-var/datum/controller/process/chemistry/chemistryProcess
-
-/datum/controller/process/chemistry
- var/list/active_holders
- var/list/chemical_reactions
- var/list/chemical_reagents
-
-/datum/controller/process/chemistry/setup()
- name = "chemistry"
- schedule_interval = 20 // every 2 seconds
- chemistryProcess = src
- active_holders = list()
- chemical_reactions = chemical_reactions_list
- chemical_reagents = chemical_reagents_list
-
-/datum/controller/process/chemistry/statProcess()
- ..()
- stat(null, "[active_holders.len] reagent holder\s")
-
-/datum/controller/process/chemistry/doWork()
- for(last_object in active_holders)
- var/datum/reagents/holder = last_object
- if(!holder.process_reactions())
- active_holders -= holder
- SCHECK
-
-/datum/controller/process/chemistry/proc/mark_for_update(var/datum/reagents/holder)
- if(holder in active_holders)
- return
-
- //Process once, right away. If we still need to continue then add to the active_holders list and continue later
- if(holder.process_reactions())
- active_holders += holder
diff --git a/code/controllers/Processes/emergencyShuttle.dm b/code/controllers/Processes/emergencyShuttle.dm
deleted file mode 100644
index e7289311b95..00000000000
--- a/code/controllers/Processes/emergencyShuttle.dm
+++ /dev/null
@@ -1,9 +0,0 @@
-/datum/controller/process/emergencyShuttle/setup()
- name = "emergency shuttle"
- schedule_interval = 20 // every 2 seconds
-
- if(!emergency_shuttle)
- emergency_shuttle = new
-
-/datum/controller/process/emergencyShuttle/doWork()
- emergency_shuttle.process()
diff --git a/code/controllers/Processes/event.dm b/code/controllers/Processes/event.dm
deleted file mode 100644
index 72bc01613d2..00000000000
--- a/code/controllers/Processes/event.dm
+++ /dev/null
@@ -1,6 +0,0 @@
-/datum/controller/process/event/setup()
- name = "event controller"
- schedule_interval = 20 // every 2 seconds
-
-/datum/controller/process/event/doWork()
- event_manager.process()
\ No newline at end of file
diff --git a/code/controllers/Processes/game_master.dm b/code/controllers/Processes/game_master.dm
deleted file mode 100644
index 7f89f3ab135..00000000000
--- a/code/controllers/Processes/game_master.dm
+++ /dev/null
@@ -1,6 +0,0 @@
-/datum/controller/process/game_master/setup()
- name = "\improper GM controller"
- schedule_interval = 600 // every 60 seconds
-
-/datum/controller/process/game_master/doWork()
- game_master.process()
\ No newline at end of file
diff --git a/code/controllers/Processes/inactivity.dm b/code/controllers/Processes/inactivity.dm
deleted file mode 100644
index 898db237404..00000000000
--- a/code/controllers/Processes/inactivity.dm
+++ /dev/null
@@ -1,42 +0,0 @@
-/datum/controller/process/inactivity/setup()
- name = "inactivity"
- schedule_interval = 600 // Once every minute (approx.)
-
-/datum/controller/process/inactivity/doWork()
- if(config_legacy.kick_inactive)
- for(last_object in clients)
- var/client/C = last_object
- if(C.is_afk(config_legacy.kick_inactive MINUTES) && !C.holder) // VOREStation Edit - Allow admins to idle
- to_chat(C,"You have been inactive for more than [config_legacy.kick_inactive] minute\s and have been disconnected.")
- var/information
-
- if(C.mob)
- if(ishuman(C.mob))
- var/job
- var/mob/living/carbon/human/H = C.mob
- var/datum/data/record/R = find_general_record("name", H.real_name)
- if(R)
- job = R.fields["real_rank"]
- if(!job && H.mind)
- job = H.mind.assigned_role
- if(!job && H.job)
- job = H.job
- if(job)
- information = " while [job]."
-
- else if(issilicon(C.mob))
- information = " while a silicon."
- if(isAI(C.mob))
- var/mob/living/silicon/ai/A = C.mob
- empty_playable_ai_cores += new /obj/structure/AIcore/deactivated(A.loc)
- global_announcer.autosay("[A] has been moved to intelligence storage.", "Artificial Intelligence Oversight")
- A.clear_client()
- information = " while an AI."
-
- var/adminlinks
- adminlinks = " (JMP|CRYO)"
-
- log_and_message_admins("being kicked for AFK[information][adminlinks]", C.mob)
-
- qdel(C)
- SCHECK
diff --git a/code/controllers/Processes/obj.dm b/code/controllers/Processes/obj.dm
deleted file mode 100644
index 6032cbb5412..00000000000
--- a/code/controllers/Processes/obj.dm
+++ /dev/null
@@ -1,26 +0,0 @@
-/datum/controller/process/obj/setup()
- name = "obj"
- schedule_interval = 20 // every 2 seconds
- start_delay = 8
-
-/datum/controller/process/obj/started()
- ..()
- if(!processing_objects)
- processing_objects = list()
-
-/datum/controller/process/obj/doWork()
- for(last_object in processing_objects)
- var/datum/O = last_object
- if(!QDELETED(O))
- try
- O:process()
- catch(var/exception/e)
- catchException(e, O)
- SCHECK
- else
- catchBadType(O)
- processing_objects -= O
-
-/datum/controller/process/obj/statProcess()
- ..()
- stat(null, "[processing_objects.len] objects")
\ No newline at end of file
diff --git a/code/controllers/Processes/planet.dm b/code/controllers/Processes/planet.dm
deleted file mode 100644
index 18043f92702..00000000000
--- a/code/controllers/Processes/planet.dm
+++ /dev/null
@@ -1,96 +0,0 @@
-var/datum/controller/process/planet/planet_controller = null
-
-/datum/controller/process/planet
- var/list/planets = list()
- var/list/z_to_planet = list()
-
-/datum/controller/process/planet/setup()
- name = "planet controller"
- planet_controller = src
- schedule_interval = 1 MINUTE
- start_delay = 20 SECONDS
-
- var/list/planet_datums = typesof(/datum/planet) - /datum/planet
- for(var/P in planet_datums)
- var/datum/planet/NP = new P()
- planets.Add(NP)
-
- allocateTurfs()
-
-/datum/controller/process/planet/proc/allocateTurfs()
- for(var/turf/simulated/OT in outdoor_turfs)
- for(var/datum/planet/P in planets)
- if(OT.z in P.expected_z_levels)
- P.planet_floors |= OT
- OT.vis_contents |= P.weather_holder.visuals
- break
- outdoor_turfs.Cut() //Why were you in there INCORRECTLY?
-
- for(var/turf/unsimulated/wall/planetary/PW in planetary_walls)
- for(var/datum/planet/P in planets)
- if(PW.type == P.planetary_wall_type)
- P.planet_walls |= PW
- break
- planetary_walls.Cut()
-
-/datum/controller/process/planet/proc/unallocateTurf(var/turf/T)
- for(var/planet in planets)
- var/datum/planet/P = planet
- if(T.z in P.expected_z_levels)
- P.planet_floors -= T
- T.vis_contents -= P.weather_holder.visuals
-
-/datum/controller/process/planet/doWork()
- if(outdoor_turfs.len || planetary_walls.len)
- allocateTurfs()
-
- for(var/datum/planet/P in planets)
- P.process(schedule_interval / 10)
- SCHECK //Your process() really shouldn't take this long...
-
- //Sun light needs changing
- if(P.needs_work & PLANET_PROCESS_SUN)
- P.needs_work &= ~PLANET_PROCESS_SUN
- // Remove old value from corners
- var/list/sunlit_corners = P.sunlit_corners
- var/old_lum_r = -P.sun["lum_r"]
- var/old_lum_g = -P.sun["lum_g"]
- var/old_lum_b = -P.sun["lum_b"]
- if(old_lum_r || old_lum_g || old_lum_b)
- for(var/C in P.sunlit_corners)
- var/datum/lighting_corner/LC = C
- LC.update_lumcount(old_lum_r, old_lum_g, old_lum_b)
- SCHECK
- sunlit_corners.Cut()
-
- // Calculate new values to apply
- var/new_brightness = P.sun["brightness"]
- var/new_color = P.sun["color"]
- var/lum_r = new_brightness * GetRedPart (new_color) / 255
- var/lum_g = new_brightness * GetGreenPart(new_color) / 255
- var/lum_b = new_brightness * GetBluePart (new_color) / 255
- var/static/update_gen = -1 // Used to prevent double-processing corners. Otherwise would happen when looping over adjacent turfs.
- for(var/I in P.planet_floors)
- var/turf/simulated/T = I
- if(!T.lighting_corners_initialised)
- T.generate_missing_corners()
- for(var/C in T.get_corners())
- var/datum/lighting_corner/LC = C
- if(LC.update_gen != update_gen && LC.active)
- sunlit_corners += LC
- LC.update_gen = update_gen
- LC.update_lumcount(lum_r, lum_g, lum_b)
- SCHECK
- update_gen--
- P.sun["lum_r"] = lum_r
- P.sun["lum_g"] = lum_g
- P.sun["lum_b"] = lum_b
-
- //Temperature needs updating
- if(P.needs_work & PLANET_PROCESS_TEMP)
- P.needs_work &= ~PLANET_PROCESS_TEMP
- //Set new temperatures
- for(var/W in P.planet_walls)
- var/turf/unsimulated/wall/planetary/wall = W
- wall.set_temperature(P.weather_holder.temperature)
- SCHECK
diff --git a/code/controllers/Processes/radiation.dm b/code/controllers/Processes/radiation.dm
deleted file mode 100644
index d09d68da386..00000000000
--- a/code/controllers/Processes/radiation.dm
+++ /dev/null
@@ -1,56 +0,0 @@
-/datum/controller/process/radiation
- var/repository/radiation/linked = null
-
-/datum/controller/process/radiation/setup()
- name = "radiation controller"
- schedule_interval = 20 // every 2 seconds
- linked = radiation_repository
-
-/datum/controller/process/radiation/doWork()
- sources_decay()
- cache_expires()
- irradiate_targets()
-
-// Step 1 - Sources Decay
-/datum/controller/process/radiation/proc/sources_decay()
- var/list/sources = linked.sources
- for(var/thing in sources)
- var/datum/radiation_source/S = thing
- if(QDELETED(S))
- sources.Remove(S)
- continue
- if(S.decay)
- S.update_rad_power(S.rad_power - config_legacy.radiation_decay_rate)
- if(S.rad_power <= config_legacy.radiation_lower_limit)
- sources.Remove(S)
- SCHECK // This scheck probably just wastes resources, but better safe than sorry in this case.
-
-// Step 2 - Cache Expires
-/datum/controller/process/radiation/proc/cache_expires()
- var/list/resistance_cache = linked.resistance_cache
- for(var/thing in resistance_cache)
- var/turf/T = thing
- if(QDELETED(T))
- resistance_cache.Remove(T)
- continue
- if((length(T.contents) + 1) != resistance_cache[T])
- resistance_cache.Remove(T) // If its stale REMOVE it! It will get added if its needed.
- SCHECK
-
-// Step 3 - Registered irradiatable things are checked for radiation
-/datum/controller/process/radiation/proc/irradiate_targets()
- var/list/registered_listeners = living_mob_list // For now just use this. Nothing else is interested anyway.
- if(length(linked.sources) > 0)
- for(var/thing in registered_listeners)
- var/atom/A = thing
- if(QDELETED(A))
- continue
- var/turf/T = get_turf(thing)
- var/rads = linked.get_rads_at_turf(T)
- if(rads)
- A.rad_act(rads)
- SCHECK
-
-/datum/controller/process/radiation/statProcess()
- ..()
- stat(null, "[linked.sources.len] sources, [linked.resistance_cache.len] cached turfs")
diff --git a/code/controllers/Processes/scheduler.dm b/code/controllers/Processes/scheduler.dm
deleted file mode 100644
index 2410a9bfafd..00000000000
--- a/code/controllers/Processes/scheduler.dm
+++ /dev/null
@@ -1,168 +0,0 @@
-/var/datum/controller/process/scheduler/scheduler
-
-/************
-* Scheduler *
-************/
-/datum/controller/process/scheduler
- var/list/scheduled_tasks
-
-/datum/controller/process/scheduler/setup()
- name = "scheduler"
- schedule_interval = 1 SECOND
- scheduled_tasks = list()
- scheduler = src
-
-/datum/controller/process/scheduler/doWork()
- var/world_time = world.time
- for(last_object in scheduled_tasks)
- var/datum/scheduled_task/scheduled_task = last_object
- if(world_time < scheduled_task.trigger_time)
- break // Too early for this one, and therefore too early for all remaining.
- try
- unschedule(scheduled_task)
- scheduled_task.pre_process()
- scheduled_task.process()
- scheduled_task.post_process()
- catch(var/exception/e)
- catchException(e, last_object)
- SCHECK
-
-// We've been restarted, probably due to having a massive list of tasks.
-// Lets copy over the task list as safely as we can and try to chug thru it...
-// Note: We won't be informed about tasks being destroyed, but this is the best we can do.
-/datum/controller/process/scheduler/copyStateFrom(var/datum/controller/process/scheduler/target)
- scheduled_tasks = list()
- for(var/datum/scheduled_task/st in target.scheduled_tasks)
- if(!QDELETED(st) && istype(st))
- schedule(st)
- scheduler = src
-
-// We are being killed. Least we can do is deregister all those events we registered
-/datum/controller/process/scheduler/onKill()
- for(var/st in scheduled_tasks)
- GLOB.destroyed_event.unregister(st, src)
-
-/datum/controller/process/scheduler/statProcess()
- ..()
- stat(null, "[scheduled_tasks.len] task\s")
-
-/datum/controller/process/scheduler/proc/schedule(var/datum/scheduled_task/st)
- dd_insertObjectList(scheduled_tasks, st)
-
-/datum/controller/process/scheduler/proc/unschedule(var/datum/scheduled_task/st)
- scheduled_tasks -= st
-
-/**********
-* Helpers *
-**********/
-/proc/schedule_task_in(var/in_time, var/procedure, var/list/arguments = list())
- return schedule_task(world.time + in_time, procedure, arguments)
-
-/proc/schedule_callback_in(var/in_time, var/datum/callback)
- return schedule_callback(world.time + in_time, callback)
-
-/proc/schedule_task_with_source_in(var/in_time, var/source, var/procedure, var/list/arguments = list())
- return schedule_task_with_source(world.time + in_time, source, procedure, arguments)
-
-/proc/schedule_task(var/trigger_time, var/procedure, var/list/arguments)
- var/datum/scheduled_task/st = new/datum/scheduled_task(trigger_time, procedure, arguments, /proc/destroy_scheduled_task, list())
- scheduler.schedule(st)
- return st
-
-/proc/schedule_callback(var/trigger_time, var/datum/callback)
- var/datum/scheduled_task/callback/st = new/datum/scheduled_task/callback(trigger_time, callback, /proc/destroy_scheduled_task, list())
- scheduler.schedule(st)
- return st
-
-/proc/schedule_task_with_source(var/trigger_time, var/source, var/procedure, var/list/arguments)
- var/datum/scheduled_task/st = new/datum/scheduled_task/source(trigger_time, source, procedure, arguments, /proc/destroy_scheduled_task, list())
- scheduler.schedule(st)
- return st
-
-/proc/schedule_repeating_task(var/trigger_time, var/repeat_interval, var/procedure, var/list/arguments)
- var/datum/scheduled_task/st = new/datum/scheduled_task(trigger_time, procedure, arguments, /proc/repeat_scheduled_task, list(repeat_interval))
- scheduler.schedule(st)
- return st
-
-/proc/schedule_repeating_task_with_source(var/trigger_time, var/repeat_interval, var/source, var/procedure, var/list/arguments)
- var/datum/scheduled_task/st = new/datum/scheduled_task/source(trigger_time, source, procedure, arguments, /proc/repeat_scheduled_task, list(repeat_interval))
- scheduler.schedule(st)
- return st
-
-/*************
-* Task Datum *
-*************/
-/datum/scheduled_task
- var/trigger_time
- var/procedure
- var/list/arguments
- var/task_after_process
- var/list/task_after_process_args
-
-/datum/scheduled_task/New(var/trigger_time, var/procedure, var/list/arguments, var/proc/task_after_process, var/list/task_after_process_args)
- ..()
- src.trigger_time = trigger_time
- src.procedure = procedure
- src.arguments = arguments ? arguments : list()
- src.task_after_process = task_after_process ? task_after_process : /proc/destroy_scheduled_task
- src.task_after_process_args = istype(task_after_process_args) ? task_after_process_args : list()
- task_after_process_args += src
-
-/datum/scheduled_task/Destroy()
- scheduler.unschedule(src)
- procedure = null
- arguments.Cut()
- task_after_process = null
- task_after_process_args.Cut()
- return ..()
-
-/datum/scheduled_task/dd_SortValue()
- return trigger_time
-
-/datum/scheduled_task/proc/pre_process()
- GLOB.task_triggered_event.raise_event(list(src))
-
-/datum/scheduled_task/process()
- if(procedure)
- call(procedure)(arglist(arguments))
-
-/datum/scheduled_task/proc/post_process()
- call(task_after_process)(arglist(task_after_process_args))
-
-// Resets the trigger time, has no effect if the task has already triggered
-/datum/scheduled_task/proc/trigger_task_in(var/trigger_in)
- src.trigger_time = world.time + trigger_in
-
-/datum/scheduled_task/callback
- var/datum/callback/callback
-
-/datum/scheduled_task/callback/New(var/trigger_time, var/datum/callback, var/proc/task_after_process, var/list/task_after_process_args)
- ..(trigger_time = trigger_time, task_after_process = task_after_process, task_after_process_args = task_after_process_args)
-
-/datum/scheduled_task/callback/process()
- callback.Invoke()
-
-/datum/scheduled_task/source
- var/datum/source
-
-/datum/scheduled_task/source/New(var/trigger_time, var/datum/source, var/procedure, var/list/arguments, var/proc/task_after_process, var/list/task_after_process_args)
- src.source = source
- GLOB.destroyed_event.register(src.source, src, /datum/scheduled_task/source/proc/source_destroyed)
- ..(trigger_time, procedure, arguments, task_after_process, task_after_process_args)
-
-/datum/scheduled_task/source/Destroy()
- source = null
- return ..()
-
-/datum/scheduled_task/source/process()
- call(source, procedure)(arglist(arguments))
-
-/datum/scheduled_task/source/proc/source_destroyed()
- qdel(src)
-
-/proc/destroy_scheduled_task(var/datum/scheduled_task/st)
- qdel(st)
-
-/proc/repeat_scheduled_task(var/trigger_delay, var/datum/scheduled_task/st)
- st.trigger_time = world.time + trigger_delay
- scheduler.schedule(st)
diff --git a/code/controllers/Processes/ticker.dm b/code/controllers/Processes/ticker.dm
deleted file mode 100644
index a70bb74c5ff..00000000000
--- a/code/controllers/Processes/ticker.dm
+++ /dev/null
@@ -1,42 +0,0 @@
-var/global/datum/controller/process/ticker/tickerProcess
-
-/datum/controller/process/ticker
- var/lastTickerTimeDuration
- var/lastTickerTime
-
-/datum/controller/process/ticker/setup()
- name = "ticker"
- schedule_interval = 20 // every 2 seconds
-
- lastTickerTime = world.timeofday
-
- if(!ticker)
- ticker = new
-
- tickerProcess = src
-
- spawn(0)
- if(ticker)
- ticker.pregame()
-
-/datum/controller/process/ticker/doWork()
- var/currentTime = world.timeofday
-
- if(currentTime < lastTickerTime) // check for midnight rollover
- lastTickerTimeDuration = (currentTime - (lastTickerTime - TICKS_IN_DAY)) / TICKS_IN_SECOND
- else
- lastTickerTimeDuration = (currentTime - lastTickerTime) / TICKS_IN_SECOND
-
- lastTickerTime = currentTime
-
- ticker.process()
-
-/datum/controller/process/ticker/proc/getLastTickerTimeDuration()
- return lastTickerTimeDuration
-
-// Use these preferentially to directly examining ticker.current_state to help prepare for transition to ticker as subsystem!
-/datum/controller/process/ticker/proc/HasRoundStarted()
- return (ticker && ticker.current_state >= GAME_STATE_PLAYING)
-
-/datum/controller/process/ticker/proc/IsRoundInProgress()
- return (ticker && ticker.current_state == GAME_STATE_PLAYING)
diff --git a/code/controllers/Processes/turf.dm b/code/controllers/Processes/turf.dm
deleted file mode 100644
index 07f788a341b..00000000000
--- a/code/controllers/Processes/turf.dm
+++ /dev/null
@@ -1,16 +0,0 @@
-var/global/list/turf/processing_turfs = list()
-
-/datum/controller/process/turf/setup()
- name = "turf"
- schedule_interval = 20 // every 2 seconds
-
-/datum/controller/process/turf/doWork()
- for(last_object in processing_turfs)
- var/turf/T = last_object
- if(T.process() == PROCESS_KILL)
- processing_turfs.Remove(T)
- SCHECK
-
-/datum/controller/process/turf/statProcess()
- ..()
- stat(null, "[processing_turfs.len] turf\s")
\ No newline at end of file
diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm
index 554acc3ebda..1a4a113adfb 100644
--- a/code/controllers/configuration/configuration.dm
+++ b/code/controllers/configuration/configuration.dm
@@ -403,7 +403,7 @@
var/list/probabilities = Get(/datum/config_entry/keyed_list/probability)
var/list/min_pop = Get(/datum/config_entry/keyed_list/min_pop)
var/list/max_pop = Get(/datum/config_entry/keyed_list/max_pop)
- for(var/T in (gamemode_cache - SSticker.mode.type))
+ for(var/T in (gamemode_cache - SSSSticker.mode.type))
var/datum/game_mode/M = new T()
if(!(M.config_tag in modes))
qdel(M)
diff --git a/code/controllers/hooks-defs.dm b/code/controllers/hooks-defs.dm
index cb2a96b25a2..0c54ae268c3 100644
--- a/code/controllers/hooks-defs.dm
+++ b/code/controllers/hooks-defs.dm
@@ -6,13 +6,13 @@
/**
* Roundstart hook.
- * Called in gameticker.dm when a round starts.
+ * Called in gameSSticker.dm when a round starts.
*/
/hook/roundstart
/**
* Roundend hook.
- * Called in gameticker.dm when a round ends.
+ * Called in gameSSticker.dm when a round ends.
*/
/hook/roundend
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index edd62c95fe9..19d59b4640b 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -260,7 +260,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
// local vars rock
//all this shit is here so that flag edits can be refreshed by restarting the MC. (and for speed)
- var/list/tickersubsystems = list()
+ var/list/SStickersubsystems = list()
var/list/runlevel_sorted_subsystems = list(list()) //ensure we always have at least one runlevel
var/timer = world.time
for (var/thing in subsystems)
@@ -271,8 +271,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
SS.queue_next = null
SS.queue_prev = null
SS.state = SS_IDLE
- if (SS.flags & SS_TICKER)
- tickersubsystems += SS
+ if (SS.flags & SS_SSticker)
+ SStickersubsystems += SS
timer += world.tick_lag * rand(1, 5)
SS.next_fire = timer
continue
@@ -292,10 +292,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
queue_tail = null
//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)
- sortTim(tickersubsystems, /proc/cmp_subsystem_priority)
+ sortTim(SStickersubsystems, /proc/cmp_subsystem_priority)
for(var/I in runlevel_sorted_subsystems)
sortTim(runlevel_sorted_subsystems, /proc/cmp_subsystem_priority)
- I += tickersubsystems
+ I += SStickersubsystems
var/cached_runlevel = current_runlevel
var/list/current_runlevel_subsystems = runlevel_sorted_subsystems[cached_runlevel]
@@ -359,10 +359,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
subsystems_to_check = current_runlevel_subsystems
else
- subsystems_to_check = tickersubsystems
+ subsystems_to_check = SStickersubsystems
if (CheckQueue(subsystems_to_check) <= 0)
- if (!SoftReset(tickersubsystems, runlevel_sorted_subsystems))
+ if (!SoftReset(SStickersubsystems, runlevel_sorted_subsystems))
log_world("MC: SoftReset() failed, crashing")
return
if (!error_level)
@@ -374,7 +374,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
if (queue_head)
if (RunQueue() <= 0)
- if (!SoftReset(tickersubsystems, runlevel_sorted_subsystems))
+ if (!SoftReset(SStickersubsystems, runlevel_sorted_subsystems))
log_world("MC: SoftReset() failed, crashing")
return
if (!error_level)
@@ -421,7 +421,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
if (SS_flags & SS_NO_FIRE)
subsystemstocheck -= SS
continue
- if ((SS_flags & (SS_TICKER|SS_KEEP_TIMING)) == SS_KEEP_TIMING && SS.last_fire + (SS.wait * 0.75) > world.time)
+ if ((SS_flags & (SS_SSticker|SS_KEEP_TIMING)) == SS_KEEP_TIMING && SS.last_fire + (SS.wait * 0.75) > world.time)
continue
SS.enqueue()
. = 1
@@ -439,7 +439,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
var/tick_precentage
var/tick_remaining
var/ran = TRUE //this is right
- var/ran_non_ticker = FALSE
+ var/ran_non_SSticker = FALSE
var/bg_calc //have we swtiched current_tick_budget to background mode yet?
var/tick_usage
@@ -463,7 +463,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
//(unless we haven't even ran anything this tick, since its unlikely they will ever be able run
// in those cases, so we just let them run)
if (queue_node_flags & SS_NO_TICK_CHECK)
- if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_ticker)
+ if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_SSticker)
queue_node.queued_priority += queue_priority_count * 0.1
queue_priority_count -= queue_node_priority
queue_priority_count += queue_node.queued_priority
@@ -487,8 +487,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
current_ticklimit = round(TICK_USAGE + tick_precentage)
- if (!(queue_node_flags & SS_TICKER))
- ran_non_ticker = TRUE
+ if (!(queue_node_flags & SS_SSticker))
+ ran_non_SSticker = TRUE
ran = TRUE
queue_node_paused = (queue_node.state == SS_PAUSED || queue_node.state == SS_PAUSING)
@@ -533,7 +533,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
queue_node.last_fire = world.time
queue_node.times_fired++
- if (queue_node_flags & SS_TICKER)
+ if (queue_node_flags & SS_SSticker)
queue_node.next_fire = world.time + (world.tick_lag * queue_node.wait)
else if (queue_node_flags & SS_POST_FIRE_TIMING)
queue_node.next_fire = world.time + queue_node.wait + (world.tick_lag * (queue_node.tick_overrun/100))
@@ -553,13 +553,13 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
//resets the queue, and all subsystems, while filtering out the subsystem lists
// called if any mc's queue procs runtime or exit improperly.
-/datum/controller/master/proc/SoftReset(list/ticker_SS, list/runlevel_SS)
+/datum/controller/master/proc/SoftReset(list/SSticker_SS, list/runlevel_SS)
. = 0
log_world("MC: SoftReset called, resetting MC queue state.")
- if (!istype(subsystems) || !istype(ticker_SS) || !istype(runlevel_SS))
- log_world("MC: SoftReset: Bad list contents: '[subsystems]' '[ticker_SS]' '[runlevel_SS]'")
+ if (!istype(subsystems) || !istype(SSticker_SS) || !istype(runlevel_SS))
+ log_world("MC: SoftReset: Bad list contents: '[subsystems]' '[SSticker_SS]' '[runlevel_SS]'")
return
- var/subsystemstocheck = subsystems + ticker_SS
+ var/subsystemstocheck = subsystems + SSticker_SS
for(var/I in runlevel_SS)
subsystemstocheck |= I
@@ -568,7 +568,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
if (!SS || !istype(SS))
//list(SS) is so if a list makes it in the subsystem list, we remove the list, not the contents
subsystems -= list(SS)
- ticker_SS -= list(SS)
+ SSticker_SS -= list(SS)
for(var/I in runlevel_SS)
I -= list(SS)
log_world("MC: SoftReset: Found bad entry in subsystem list, '[SS]'")
diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm
deleted file mode 100644
index 8b3a39e536b..00000000000
--- a/code/controllers/master_controller.dm
+++ /dev/null
@@ -1,56 +0,0 @@
-//simplified MC that is designed to fail when procs 'break'. When it fails it's just replaced with a new one.
-//It ensures master_controller.process() is never doubled up by killing the MC (hence terminating any of its sleeping procs)
-//WIP, needs lots of work still
-
-//
-// TODO - This will be completely replaced by master.dm in time.
-//
-
-var/global/datum/controller/game_controller/master_controller //Set in world.New()
-
-var/global/controller_iteration = 0
-var/global/last_tick_duration = 0
-
-var/global/pipe_processing_killed = 0
-
-datum/controller/game_controller
- var/list/shuttle_list // For debugging and VV
-
-datum/controller/game_controller/New()
- //There can be only one master_controller. Out with the old and in with the new.
- if(master_controller != src)
- log_debug("Rebuilding Master Controller")
- if(istype(master_controller))
- qdel(master_controller)
- master_controller = src
-
- if(!job_master)
- job_master = new /datum/controller/occupations()
- job_master.SetupOccupations()
- job_master.LoadJobs("config/jobs.txt")
- admin_notice("Job setup complete", R_DEBUG)
-
- if(!syndicate_code_phrase) syndicate_code_phrase = generate_code_phrase()
- if(!syndicate_code_response) syndicate_code_response = generate_code_phrase()
-
-datum/controller/game_controller/proc/setup()
-
- setup_objects()
- // setupgenetics() Moved to SSatoms
- // SetupXenoarch() - Moved to SSxenoarch
-
- transfer_controller = new
- admin_notice("Initializations complete.", R_DEBUG)
-
-// #if UNIT_TEST
-// #define CHECK_SLEEP_MASTER // For unit tests we don't care about a smooth lobby screen experience. We care about speed.
-// #else
-// #define CHECK_SLEEP_MASTER if(++initialized_objects > 500) { initialized_objects=0;sleep(world.tick_lag); }
-// #endif
-
-datum/controller/game_controller/proc/setup_objects()
- // Set up antagonists.
- populate_antag_type_list()
-
- //Set up spawn points.
- populate_spawn_points()
\ No newline at end of file
diff --git a/code/controllers/observer_listener/atom/observer.dm b/code/controllers/observer_listener/atom/observer.dm
index 8c3e93f4fc3..b26dcc13167 100644
--- a/code/controllers/observer_listener/atom/observer.dm
+++ b/code/controllers/observer_listener/atom/observer.dm
@@ -4,11 +4,6 @@
var/list/observer_events
/atom/Destroy()
- var/list/destroy_listeners = get_listener_list_from_event(OBSERVER_EVENT_DESTROY)
- if(destroy_listeners)
- for(var/destroy_listener in destroy_listeners)
- call(destroy_listener, destroy_listeners[destroy_listener])(src)
-
for(var/list/listeners in observer_events)
listeners.Cut()
diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm
index 85f82dcc85e..d9d68f85451 100644
--- a/code/controllers/subsystem.dm
+++ b/code/controllers/subsystem.dm
@@ -83,8 +83,8 @@
queue_node_priority = queue_node.queued_priority
queue_node_flags = queue_node.flags
- if (queue_node_flags & SS_TICKER)
- if (!(SS_flags & SS_TICKER))
+ if (queue_node_flags & SS_SSticker)
+ if (!(SS_flags & SS_SSticker))
continue
if (queue_node_priority < SS_priority)
break
@@ -98,7 +98,7 @@
else
if (SS_flags & SS_BACKGROUND)
continue
- if (SS_flags & SS_TICKER)
+ if (SS_flags & SS_SSticker)
break
if (queue_node_priority < SS_priority)
break
diff --git a/code/controllers/subsystems/ai.dm b/code/controllers/subsystems/ai.dm
index 89778187550..65887fc754b 100644
--- a/code/controllers/subsystems/ai.dm
+++ b/code/controllers/subsystems/ai.dm
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(ai)
init_order = INIT_ORDER_AI
priority = FIRE_PRIORITY_AI
wait = 5 // This gets run twice a second, however this is technically two loops in one, with the second loop being run every four iterations.
- flags = SS_NO_INIT|SS_TICKER
+ flags = SS_NO_INIT|SS_SSticker
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/list/processing = list()
diff --git a/code/controllers/subsystems/alarm.dm b/code/controllers/subsystems/alarm.dm
new file mode 100644
index 00000000000..85f46ed1161
--- /dev/null
+++ b/code/controllers/subsystems/alarm.dm
@@ -0,0 +1,36 @@
+SUBSYSTEM_DEF(alarms)
+ name = "Alarms"
+ wait = 20
+ flags = SS_NO_TICK_CHECK
+ var/static/list/datum/alarm/all_handlers
+ // We manually initialize the alarm handlers instead of looping over all existing types
+ // to make it possible to write: camera.triggerAlarm() rather than alarm_manager.managers[datum/alarm_handler/camera].triggerAlarm() or a variant thereof.
+ var/static/datum/alarm_handler/atmosphere/atmosphere_alarm
+ var/static/datum/alarm_handler/camera/camera_alarm
+ var/static/datum/alarm_handler/fire/fire_alarm
+ var/static/datum/alarm_handler/motion/motion_alarm
+ var/static/datum/alarm_handler/power/power_alarm
+
+/datum/controller/subsystem/alarms/Initialize()
+ atmosphere_alarm = new
+ camera_alarm = new
+ fire_alarm = new
+ motion_alarm = new
+ power_alarm = new
+ all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
+ return ..()
+
+/datum/controller/subsystem/alarms/fire()
+ for(var/datum/alarm_handler/A in all_handlers)
+ A.process()
+
+/datum/controller/subsystem/alarms/proc/active_alarms()
+ . = list()
+ for(var/datum/alarm_handler/AH in all_handlers)
+ . += AH.alarms
+
+/datum/controller/subsystem/alarms/proc/number_of_active_alarms()
+ return length(active_alarms())
+
+/datum/controller/subsystem/alarms/stat_entry()
+ ..("[number_of_active_alarms()] alarms")
diff --git a/code/controllers/subsystems/circuits.dm b/code/controllers/subsystems/circuits.dm
index 311bc6a92b3..8c7f8aaf059 100644
--- a/code/controllers/subsystems/circuits.dm
+++ b/code/controllers/subsystems/circuits.dm
@@ -1,6 +1,6 @@
//
// This is for custom circuits, mostly the initialization of global properties about them.
-// Might make this also process them in the future if its better to do that than using the obj ticker.
+// Might make this also process them in the future if its better to do that than using the obj SSticker.
//
SUBSYSTEM_DEF(circuit)
name = "Circuit"
diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/subsystems/emergency_shuttle.dm
similarity index 80%
rename from code/controllers/emergency_shuttle_controller.dm
rename to code/controllers/subsystems/emergency_shuttle.dm
index 2e0266bdb21..c883b68351b 100644
--- a/code/controllers/emergency_shuttle_controller.dm
+++ b/code/controllers/subsystems/emergency_shuttle.dm
@@ -1,12 +1,8 @@
-//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
+SUBSYSTEM_DEF(emergencyshuttle)
+ name = "Emergency Shuttle"
+ wait = 20
-// Controls the emergency shuttle
-
-var/global/datum/emergency_shuttle_controller/emergency_shuttle
-
-/datum/emergency_shuttle_controller
var/datum/shuttle/ferry/emergency/shuttle
- var/list/escape_pods
var/launch_time //the time at which the shuttle will be launched
var/auto_recall = 0 //if set, the shuttle will be auto-recalled
@@ -22,11 +18,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
var/datum/announcement/priority/emergency_shuttle_called = new(0, new_sound = sound('sound/AI/shuttlecalled.ogg'))
var/datum/announcement/priority/emergency_shuttle_recalled = new(0, new_sound = sound('sound/AI/shuttlerecalled.ogg'))
-/datum/emergency_shuttle_controller/New()
- escape_pods = list()
- ..()
-
-/datum/emergency_shuttle_controller/process()
+/datum/controller/subsystem/emergencyshuttle/fire()
if (wait_for_launch)
if (evac && auto_recall && world.time >= auto_recall_time)
recall()
@@ -35,10 +27,10 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
if (!shuttle.location) //leaving from the station
//launch the pods!
- for (var/EP in escape_pods)
+ for (var/EP in SSshuttle.escape_pods)
var/datum/shuttle/ferry/escape_pod/pod
- if(istype(escape_pods[EP], /datum/shuttle/ferry/escape_pod))
- pod = escape_pods[EP]
+ if(istype(SSshuttle.escape_pods[EP], /datum/shuttle/ferry/escape_pod))
+ pod = SSshuttle.escape_pods[EP]
else
continue
if (!pod.arming_controller || pod.arming_controller.armed)
@@ -49,7 +41,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
//called when the shuttle has arrived.
-/datum/emergency_shuttle_controller/proc/shuttle_arrived()
+/datum/controller/subsystem/emergencyshuttle/proc/shuttle_arrived()
if (!shuttle.location) //at station
if (autopilot)
set_launch_countdown(SHUTTLE_LEAVETIME) //get ready to return
@@ -62,25 +54,25 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
//arm the escape pods
if (evac)
- for (var/EP in escape_pods)
+ for (var/EP in SSshuttle.escape_pods)
var/datum/shuttle/ferry/escape_pod/pod
- if(istype(escape_pods[EP], /datum/shuttle/ferry/escape_pod))
- pod = escape_pods[EP]
+ if(istype(SSshuttle.escape_pods[EP], /datum/shuttle/ferry/escape_pod))
+ pod = SSshuttle.escape_pods[EP]
else
continue
if (pod.arming_controller)
pod.arming_controller.arm()
//begins the launch countdown and sets the amount of time left until launch
-/datum/emergency_shuttle_controller/proc/set_launch_countdown(var/seconds)
+/datum/controller/subsystem/emergencyshuttle/proc/set_launch_countdown(var/seconds)
wait_for_launch = 1
launch_time = world.time + seconds*10
-/datum/emergency_shuttle_controller/proc/stop_launch_countdown()
+/datum/controller/subsystem/emergencyshuttle/proc/stop_launch_countdown()
wait_for_launch = 0
//calls the shuttle for an emergency evacuation
-/datum/emergency_shuttle_controller/proc/call_evac()
+/datum/controller/subsystem/emergencyshuttle/proc/call_evac()
if(!can_call()) return
//set the launch timer
@@ -101,7 +93,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
atc.reroute_traffic(yes = 1)
//calls the shuttle for a routine crew transfer
-/datum/emergency_shuttle_controller/proc/call_transfer()
+/datum/controller/subsystem/emergencyshuttle/proc/call_transfer()
if(!can_call()) return
//set the launch timer
@@ -117,7 +109,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
atc.shift_ending()
//recalls the shuttle
-/datum/emergency_shuttle_controller/proc/recall()
+/datum/controller/subsystem/emergencyshuttle/proc/recall()
if (!can_recall()) return
wait_for_launch = 0
@@ -133,7 +125,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
else
priority_announcement.Announce(GLOB.using_map.shuttle_recall_message)
-/datum/emergency_shuttle_controller/proc/can_call()
+/datum/controller/subsystem/emergencyshuttle/proc/can_call()
if (!universe.OnShuttleCall(null))
return 0
if (deny_shuttle)
@@ -147,7 +139,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
//this only returns 0 if it would absolutely make no sense to recall
//e.g. the shuttle is already at the station or wasn't called to begin with
//other reasons for the shuttle not being recallable should be handled elsewhere
-/datum/emergency_shuttle_controller/proc/can_recall()
+/datum/controller/subsystem/emergencyshuttle/proc/can_recall()
if (shuttle.moving_status == SHUTTLE_INTRANSIT) //if the shuttle is already in transit then it's too late
return 0
if (!shuttle.location) //already at the station.
@@ -156,10 +148,10 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
return 0
return 1
-/datum/emergency_shuttle_controller/proc/get_shuttle_prep_time()
+/datum/controller/subsystem/emergencyshuttle/proc/get_shuttle_prep_time()
// During mutiny rounds, the shuttle takes twice as long.
- if(ticker && ticker.mode)
- return SHUTTLE_PREPTIME * ticker.mode.shuttle_delay
+ if(SSticker && SSticker.mode)
+ return SHUTTLE_PREPTIME * SSticker.mode.shuttle_delay
return SHUTTLE_PREPTIME
@@ -169,19 +161,19 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
*/
//returns 1 if the shuttle is docked at the station and waiting to leave
-/datum/emergency_shuttle_controller/proc/waiting_to_leave()
+/datum/controller/subsystem/emergencyshuttle/proc/waiting_to_leave()
if (shuttle.location)
return 0 //not at station
return (wait_for_launch || shuttle.moving_status != SHUTTLE_INTRANSIT)
//so we don't have emergency_shuttle.shuttle.location everywhere
-/datum/emergency_shuttle_controller/proc/location()
+/datum/controller/subsystem/emergencyshuttle/proc/location()
if (!shuttle)
return 1 //if we dont have a shuttle datum, just act like it's at centcom
return shuttle.location
//returns the time left until the shuttle arrives at it's destination, in seconds
-/datum/emergency_shuttle_controller/proc/estimate_arrival_time()
+/datum/controller/subsystem/emergencyshuttle/proc/estimate_arrival_time()
var/eta
if (shuttle.has_arrive_time())
//we are in transition and can get an accurate ETA
@@ -192,19 +184,19 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
return (eta - world.time)/10
//returns the time left until the shuttle launches, in seconds
-/datum/emergency_shuttle_controller/proc/estimate_launch_time()
+/datum/controller/subsystem/emergencyshuttle/proc/estimate_launch_time()
return (launch_time - world.time)/10
-/datum/emergency_shuttle_controller/proc/has_eta()
+/datum/controller/subsystem/emergencyshuttle/proc/has_eta()
return (wait_for_launch || shuttle.moving_status != SHUTTLE_IDLE)
//returns 1 if the shuttle has gone to the station and come back at least once,
//used for game completion checking purposes
-/datum/emergency_shuttle_controller/proc/returned()
+/datum/controller/subsystem/emergencyshuttle/proc/returned()
return (departed && shuttle.moving_status == SHUTTLE_IDLE && shuttle.location) //we've gone to the station at least once, no longer in transit and are idle back at centcom
//returns 1 if the shuttle is not idle at centcom
-/datum/emergency_shuttle_controller/proc/online()
+/datum/controller/subsystem/emergencyshuttle/proc/online()
if(!shuttle)
return FALSE
if (!shuttle.location) //not at centcom
@@ -214,25 +206,25 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
return 0
//returns 1 if the shuttle is currently in transit (or just leaving) to the station
-/datum/emergency_shuttle_controller/proc/going_to_station()
+/datum/controller/subsystem/emergencyshuttle/proc/going_to_station()
return (!shuttle.direction && shuttle.moving_status != SHUTTLE_IDLE)
//returns 1 if the shuttle is currently in transit (or just leaving) to centcom
-/datum/emergency_shuttle_controller/proc/going_to_centcom()
+/datum/controller/subsystem/emergencyshuttle/proc/going_to_centcom()
return (shuttle.direction && shuttle.moving_status != SHUTTLE_IDLE)
-/datum/emergency_shuttle_controller/proc/get_status_panel_eta()
+/datum/controller/subsystem/emergencyshuttle/proc/get_status_panel_eta()
if (online())
if (shuttle.has_arrive_time())
- var/timeleft = emergency_shuttle.estimate_arrival_time()
+ var/timeleft = estimate_arrival_time()
return "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]"
if (waiting_to_leave())
if (shuttle.moving_status == SHUTTLE_WARMUP)
return "Departing..."
- var/timeleft = emergency_shuttle.estimate_launch_time()
+ var/timeleft = estimate_launch_time()
return "ETD-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]"
return ""
diff --git a/code/modules/gamemaster/game_master.dm b/code/controllers/subsystems/game_master.dm
similarity index 89%
rename from code/modules/gamemaster/game_master.dm
rename to code/controllers/subsystems/game_master.dm
index 8baa0239653..332583e86c8 100644
--- a/code/modules/gamemaster/game_master.dm
+++ b/code/controllers/subsystems/game_master.dm
@@ -2,8 +2,9 @@
// previous ones, checking various things like player count, department size and composition, individual player activity,
// individual player (IC) skill, and such, in order to try to choose the best actions to take in order to add spice or variety to
// the round.
-
-/datum/game_master
+SUBSYSTEM_DEF(gamemaster)
+ name = "Game Master"
+ wait = 600
var/suspended = TRUE // If true, it will not do anything.
var/ignore_time_restrictions = FALSE// Useful for debugging without needing to wait 20 minutes each time.
var/list/available_actions = list() // A list of 'actions' that the GM has access to, to spice up a round, such as events.
@@ -15,8 +16,7 @@
var/next_action = 0 // Minimum amount of time of nothingness until the GM can pick something again.
var/last_department_used = null // If an event was done for a specific department, it is written here, so it doesn't do it again.
-/datum/game_master/New()
- ..()
+/datum/controller/subsystem/gamemaster/Initialize()
available_actions = init_subtypes(/datum/gm_action)
for(var/datum/gm_action/action in available_actions)
action.gm = src
@@ -30,9 +30,10 @@
suspended = FALSE
else
sleep(30 SECONDS)
+ return ..()
-/datum/game_master/process()
- if(ticker && ticker.current_state == GAME_STATE_PLAYING && !suspended)
+/datum/controller/subsystem/gamemaster/fire(resumed)
+ if(SSticker && SSticker.current_state == GAME_STATE_PLAYING && !suspended)
adjust_staleness(1)
adjust_danger(-1)
ticks_completed++
@@ -48,9 +49,9 @@
start_action()
// This is run before committing to an action/event.
-/datum/game_master/proc/pre_action_checks()
- if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
- log_debug("Game Master unable to start event: Ticker is nonexistant, or the game is not ongoing.")
+/datum/controller/subsystem/gamemaster/proc/pre_action_checks()
+ if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
+ log_debug("Game Master unable to start event: SSticker is nonexistant, or the game is not ongoing.")
return FALSE
if(suspended)
return FALSE
@@ -69,7 +70,7 @@
return FALSE
return TRUE
-/datum/game_master/proc/start_action()
+/datum/controller/subsystem/gamemaster/proc/start_action()
if(!pre_action_checks()) // Make sure we're not doing last minute events, or early events.
return
log_debug("Game Master now starting action decision.")
@@ -88,7 +89,7 @@
log_debug("[choice.name] was chosen by the Game Master, and is now being ran.")
run_action(choice)
-/datum/game_master/proc/run_action(var/datum/gm_action/action)
+/datum/controller/subsystem/gamemaster/proc/run_action(var/datum/gm_action/action)
action.set_up()
action.start()
action.announce()
@@ -101,7 +102,7 @@
last_department_used = action.departments[1]
-/datum/game_master/proc/decide_best_action(var/list/most_active_departments)
+/datum/controller/subsystem/gamemaster/proc/decide_best_action(var/list/most_active_departments)
if(!most_active_departments.len) // Server's empty?
log_debug("Game Master failed to find any active departments.")
return list()
diff --git a/code/controllers/subsystems/jobs.dm b/code/controllers/subsystems/jobs.dm
new file mode 100644
index 00000000000..58dd49dd265
--- /dev/null
+++ b/code/controllers/subsystems/jobs.dm
@@ -0,0 +1,706 @@
+SUBSYSTEM_DEF(jobs)
+ name = "Jobs"
+ flags = SS_NO_FIRE
+ init_order = INIT_ORDER_JOBS
+ var/list/occupations = list()
+ //Players who need jobs
+ var/list/unassigned = list()
+ //Debug info
+ var/list/job_debug = list()
+ //List of all jobs
+
+
+#define GET_RANDOM_JOB 0
+#define BE_ASSISTANT 1
+#define RETURN_TO_LOBBY 2
+
+/datum/controller/subsystem/jobs/Initialize()
+ SetupOccupations()
+ LoadJobs("config/jobs.txt")
+ return ..()
+
+/datum/controller/subsystem/jobs/proc/SetupOccupations(var/faction = "Station")
+ occupations = list()
+ //var/list/all_jobs = typesof(/datum/job)
+ var/list/all_jobs = list(/datum/job/assistant) | GLOB.using_map.allowed_jobs
+ if(!all_jobs.len)
+ world << "Error setting up jobs, no job datums found!"
+ return 0
+ for(var/J in all_jobs)
+ var/datum/job/job = new J()
+ if(!job) continue
+ if(job.faction != faction) continue
+ occupations += job
+ sortTim(occupations, /proc/cmp_job_datums)
+ return 1
+
+
+/datum/controller/subsystem/jobs/proc/Debug(var/text)
+ if(!Debug2)
+ return 0
+ job_debug.Add(text)
+ return 1
+
+
+/datum/controller/subsystem/jobs/proc/GetJob(var/rank)
+ if(!rank)
+ return null
+ for(var/datum/job/J in occupations)
+ if(!J)
+ continue
+ if(J.title == rank)
+ return J
+ return null
+
+/datum/controller/subsystem/jobs/proc/GetPlayerAltTitle(mob/new_player/player, rank)
+ return player.client.prefs.GetPlayerAltTitle(GetJob(rank))
+
+/datum/controller/subsystem/jobs/proc/AssignRole(var/mob/new_player/player, var/rank, var/latejoin = 0)
+ Debug("Running AR, Player: [player], Rank: [rank], LJ: [latejoin]")
+ if(player && player.mind && rank)
+ var/datum/job/job = GetJob(rank)
+ if(!job)
+ return 0
+ if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
+ return 0
+ if(jobban_isbanned(player, rank))
+ return 0
+ if(!job.player_old_enough(player.client))
+ return 0
+ if(!is_job_whitelisted(player, rank)) //VOREStation Code
+ return 0
+
+ var/position_limit = job.total_positions
+ if(!latejoin)
+ position_limit = job.spawn_positions
+ if((job.current_positions < position_limit) || position_limit == -1)
+ Debug("Player: [player] is now Rank: [rank], JCP:[job.current_positions], JPL:[position_limit]")
+ player.mind.assigned_role = rank
+ player.mind.role_alt_title = GetPlayerAltTitle(player, rank)
+ unassigned -= player
+ job.current_positions++
+ return 1
+ Debug("AR has failed, Player: [player], Rank: [rank]")
+ return 0
+
+/datum/controller/subsystem/jobs/proc/FreeRole(var/rank) //making additional slot on the fly
+ var/datum/job/job = GetJob(rank)
+ if(job && job.total_positions != -1)
+ job.total_positions++
+ return 1
+ return 0
+
+/datum/controller/subsystem/jobs/proc/FindOccupationCandidates(datum/job/job, level, flag)
+ Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]")
+ var/list/candidates = list()
+ for(var/mob/new_player/player in unassigned)
+ if(jobban_isbanned(player, job.title))
+ Debug("FOC isbanned failed, Player: [player]")
+ continue
+ if(!job.player_old_enough(player.client))
+ Debug("FOC player not old enough, Player: [player]")
+ continue
+ if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
+ Debug("FOC character not old enough, Player: [player]")
+ continue
+ //VOREStation Code Start
+ if(!is_job_whitelisted(player, job.title))
+ Debug("FOC is_job_whitelisted failed, Player: [player]")
+ continue
+ //VOREStation Code End
+ if(flag && (!player.client.prefs.be_special & flag))
+ Debug("FOC flag failed, Player: [player], Flag: [flag], ")
+ continue
+ if(player.client.prefs.GetJobDepartment(job, level) & job.flag)
+ Debug("FOC pass, Player: [player], Level:[level]")
+ candidates += player
+ return candidates
+
+/datum/controller/subsystem/jobs/proc/GiveRandomJob(var/mob/new_player/player)
+ Debug("GRJ Giving random job, Player: [player]")
+ for(var/datum/job/job in shuffle(occupations))
+ if(!job)
+ continue
+
+ if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
+ continue
+
+ if(istype(job, GetJob(USELESS_JOB))) // We don't want to give him assistant, that's boring! //VOREStation Edit - Visitor not Assistant
+ continue
+
+ if(job.title in command_positions) //If you want a command position, select it!
+ continue
+
+ if(jobban_isbanned(player, job.title))
+ Debug("GRJ isbanned failed, Player: [player], Job: [job.title]")
+ continue
+
+ if(!job.player_old_enough(player.client))
+ Debug("GRJ player not old enough, Player: [player]")
+ continue
+
+ //VOREStation Code Start
+ if(!is_job_whitelisted(player, job.title))
+ Debug("GRJ player not whitelisted for this job, Player: [player], Job: [job.title]")
+ continue
+ //VOREStation Code End
+
+ if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1)
+ Debug("GRJ Random job given, Player: [player], Job: [job]")
+ AssignRole(player, job.title)
+ unassigned -= player
+ break
+
+/datum/controller/subsystem/jobs/proc/ResetOccupations()
+ for(var/mob/new_player/player in player_list)
+ if((player) && (player.mind))
+ player.mind.assigned_role = null
+ player.mind.special_role = null
+ SetupOccupations()
+ unassigned = list()
+ return
+
+
+///This proc is called before the level loop of DivideOccupations() and will try to select a head, ignoring ALL non-head preferences for every level until it locates a head or runs out of levels to check
+/datum/controller/subsystem/jobs/proc/FillHeadPosition()
+ for(var/level = 1 to 3)
+ for(var/command_position in command_positions)
+ var/datum/job/job = GetJob(command_position)
+ if(!job) continue
+ var/list/candidates = FindOccupationCandidates(job, level)
+ if(!candidates.len) continue
+
+ // Build a weighted list, weight by age.
+ var/list/weightedCandidates = list()
+ for(var/mob/V in candidates)
+ // Log-out during round-start? What a bad boy, no head position for you!
+ if(!V.client) continue
+ var/age = V.client.prefs.age
+
+ if(age < job.minimum_character_age) // Nope.
+ continue
+
+ switch(age)
+ if(job.minimum_character_age to (job.minimum_character_age+10))
+ weightedCandidates[V] = 3 // Still a bit young.
+ if((job.minimum_character_age+10) to (job.ideal_character_age-10))
+ weightedCandidates[V] = 6 // Better.
+ if((job.ideal_character_age-10) to (job.ideal_character_age+10))
+ weightedCandidates[V] = 10 // Great.
+ if((job.ideal_character_age+10) to (job.ideal_character_age+20))
+ weightedCandidates[V] = 6 // Still good.
+ if((job.ideal_character_age+20) to INFINITY)
+ weightedCandidates[V] = 3 // Geezer.
+ else
+ // If there's ABSOLUTELY NOBODY ELSE
+ if(candidates.len == 1) weightedCandidates[V] = 1
+
+
+ var/mob/new_player/candidate = pickweight(weightedCandidates)
+ if(AssignRole(candidate, command_position))
+ return 1
+ return 0
+
+
+///This proc is called at the start of the level loop of DivideOccupations() and will cause head jobs to be checked before any other jobs of the same level
+/datum/controller/subsystem/jobs/proc/CheckHeadPositions(var/level)
+ for(var/command_position in command_positions)
+ var/datum/job/job = GetJob(command_position)
+ if(!job) continue
+ var/list/candidates = FindOccupationCandidates(job, level)
+ if(!candidates.len) continue
+ var/mob/new_player/candidate = pick(candidates)
+ AssignRole(candidate, command_position)
+ return
+
+
+/** Proc DivideOccupations
+ * fills var "assigned_role" for all ready players.
+ * This proc must not have any side effect besides of modifying "assigned_role".
+ **/
+/datum/controller/subsystem/jobs/proc/DivideOccupations()
+ //Setup new player list and get the jobs list
+ Debug("Running DO")
+ SetupOccupations()
+
+ //Holder for Triumvirate is stored in the SSticker, this just processes it
+ if(SSticker && SSticker.triai)
+ for(var/datum/job/A in occupations)
+ if(A.title == "AI")
+ A.spawn_positions = 3
+ break
+
+ //Get the players who are ready
+ for(var/mob/new_player/player in player_list)
+ if(player.ready && player.mind && !player.mind.assigned_role)
+ unassigned += player
+
+ Debug("DO, Len: [unassigned.len]")
+ if(unassigned.len == 0) return 0
+
+ //Shuffle players and jobs
+ unassigned = shuffle(unassigned)
+
+ HandleFeedbackGathering()
+
+ //People who wants to be assistants, sure, go on.
+ Debug("DO, Running Assistant Check 1")
+ var/datum/job/assist = new DEFAULT_JOB_TYPE ()
+ var/list/assistant_candidates = FindOccupationCandidates(assist, 3)
+ Debug("AC1, Candidates: [assistant_candidates.len]")
+ for(var/mob/new_player/player in assistant_candidates)
+ Debug("AC1 pass, Player: [player]")
+ AssignRole(player, USELESS_JOB) //VOREStation Edit - Visitor not Assistant
+ assistant_candidates -= player
+ Debug("DO, AC1 end")
+
+ //Select one head
+ Debug("DO, Running Head Check")
+ FillHeadPosition()
+ Debug("DO, Head Check end")
+
+ //Other jobs are now checked
+ Debug("DO, Running Standard Check")
+
+
+ // New job giving system by Donkie
+ // This will cause lots of more loops, but since it's only done once it shouldn't really matter much at all.
+ // Hopefully this will add more randomness and fairness to job giving.
+
+ // Loop through all levels from high to low
+ var/list/shuffledoccupations = shuffle(occupations)
+ // var/list/disabled_jobs = SSticker.mode.disabled_jobs // So we can use .Find down below without a colon.
+ for(var/level = 1 to 3)
+ //Check the head jobs first each level
+ CheckHeadPositions(level)
+
+ // Loop through all unassigned players
+ for(var/mob/new_player/player in unassigned)
+
+ // Loop through all jobs
+ for(var/datum/job/job in shuffledoccupations) // SHUFFLE ME BABY
+ if(!job || SSticker.mode.disabled_jobs.Find(job.title) )
+ continue
+
+ if(jobban_isbanned(player, job.title))
+ Debug("DO isbanned failed, Player: [player], Job:[job.title]")
+ continue
+
+ if(!job.player_old_enough(player.client))
+ Debug("DO player not old enough, Player: [player], Job:[job.title]")
+ continue
+
+ // If the player wants that job on this level, then try give it to him.
+ if(player.client.prefs.GetJobDepartment(job, level) & job.flag)
+
+ // If the job isn't filled
+ if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1)
+ Debug("DO pass, Player: [player], Level:[level], Job:[job.title]")
+ AssignRole(player, job.title)
+ unassigned -= player
+ break
+
+ // Hand out random jobs to the people who didn't get any in the last check
+ // Also makes sure that they got their preference correct
+ for(var/mob/new_player/player in unassigned)
+ if(player.client.prefs.alternate_option == GET_RANDOM_JOB)
+ GiveRandomJob(player)
+ /*
+ Old job system
+ for(var/level = 1 to 3)
+ for(var/datum/job/job in occupations)
+ Debug("Checking job: [job]")
+ if(!job)
+ continue
+ if(!unassigned.len)
+ break
+ if((job.current_positions >= job.spawn_positions) && job.spawn_positions != -1)
+ continue
+ var/list/candidates = FindOccupationCandidates(job, level)
+ while(candidates.len && ((job.current_positions < job.spawn_positions) || job.spawn_positions == -1))
+ var/mob/new_player/candidate = pick(candidates)
+ Debug("Selcted: [candidate], for: [job.title]")
+ AssignRole(candidate, job.title)
+ candidates -= candidate*/
+
+ Debug("DO, Standard Check end")
+
+ Debug("DO, Running AC2")
+
+ // For those who wanted to be assistant if their preferences were filled, here you go.
+ for(var/mob/new_player/player in unassigned)
+ if(player.client.prefs.alternate_option == BE_ASSISTANT)
+ Debug("AC2 Assistant located, Player: [player]")
+ AssignRole(player, USELESS_JOB) //VOREStation Edit - Visitor not Assistant
+
+ //For ones returning to lobby
+ for(var/mob/new_player/player in unassigned)
+ if(player.client.prefs.alternate_option == RETURN_TO_LOBBY)
+ player.ready = 0
+ player.new_player_panel_proc()
+ unassigned -= player
+ return 1
+
+
+/datum/controller/subsystem/jobs/proc/EquipRank(var/mob/living/carbon/human/H, var/rank, var/joined_late = 0)
+ if(!H)
+ return
+
+ var/datum/job/job = GetJob(rank)
+ var/list/spawn_in_storage = list()
+
+ if(!joined_late)
+ var/obj/S = null
+ var/list/possible_spawns = list()
+ for(var/obj/effect/landmark/start/sloc in landmarks_list)
+ if(sloc.name != rank) continue
+ if(locate(/mob/living) in sloc.loc) continue
+ possible_spawns.Add(sloc)
+ if(possible_spawns.len)
+ S = pick(possible_spawns)
+ if(!S)
+ S = locate("start*[rank]") // use old stype
+ if(istype(S, /obj/effect/landmark/start) && istype(S.loc, /turf))
+ H.forceMove(S.loc)
+ else
+ var/list/spawn_props = LateSpawn(H.client, rank)
+ var/turf/T = spawn_props["turf"]
+ H.forceMove(T)
+
+ // Moving wheelchair if they have one
+ if(H.buckled && istype(H.buckled, /obj/structure/bed/chair/wheelchair))
+ H.buckled.forceMove(H.loc)
+ H.buckled.setDir(H.dir)
+
+ if(job)
+
+ //Equip custom gear loadout.
+ var/list/custom_equip_slots = list() //If more than one item takes the same slot, all after the first one spawn in storage.
+ var/list/custom_equip_leftovers = list()
+ if(H.client.prefs.gear && H.client.prefs.gear.len && job.title != "Cyborg" && job.title != "AI")
+ for(var/thing in H.client.prefs.gear)
+ var/datum/gear/G = gear_datums[thing]
+ if(G)
+ var/permitted
+ if(G.allowed_roles)
+ for(var/job_name in G.allowed_roles)
+ if(job.title == job_name)
+ permitted = 1
+ else
+ permitted = 1
+
+ if(G.whitelisted && !is_alien_whitelisted(H, all_species[G.whitelisted]))
+
+ //if(G.whitelisted && (G.whitelisted != H.species.name || !is_alien_whitelisted(H, G.whitelisted)))
+ permitted = 0
+
+ if(!permitted)
+ H << "Your current species, job or whitelist status does not permit you to spawn with [thing]!"
+ continue
+
+ if(G.slot == "implant")
+ var/obj/item/implant/I = G.spawn_item(H, H.client.prefs.gear[G.display_name])
+ I.invisibility = 100
+ I.implant_loadout(H)
+ continue
+
+ if(G.slot && !(G.slot in custom_equip_slots))
+ // This is a miserable way to fix the loadout overwrite bug, but the alternative requires
+ // adding an arg to a bunch of different procs. Will look into it after this merge. ~ Z
+ var/metadata = H.client.prefs.gear[G.display_name]
+ if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head)
+ custom_equip_leftovers += thing
+ else if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot))
+ H << "Equipping you with \the [thing]!"
+ custom_equip_slots.Add(G.slot)
+ else
+ custom_equip_leftovers.Add(thing)
+ else
+ spawn_in_storage += thing
+ //Equip job items.
+ job.setup_account(H)
+ job.equip(H, H.mind ? H.mind.role_alt_title : "")
+ job.equip_backpack(H)
+// job.equip_survival(H)
+ job.apply_fingerprints(H)
+ if(job.title != "Cyborg" && job.title != "AI")
+ H.equip_post_job()
+
+ //If some custom items could not be equipped before, try again now.
+ for(var/thing in custom_equip_leftovers)
+ var/datum/gear/G = gear_datums[thing]
+ if(G.slot in custom_equip_slots)
+ spawn_in_storage += thing
+ else
+ var/metadata = H.client.prefs.gear[G.display_name]
+ if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot))
+ H << "Equipping you with \the [thing]!"
+ custom_equip_slots.Add(G.slot)
+ else
+ spawn_in_storage += thing
+ else
+ H << "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator."
+
+ H.job = rank
+ log_game("JOINED [key_name(H)] as \"[rank]\"")
+ log_game("SPECIES [key_name(H)] is a: \"[H.species.name]\"") //VOREStation Add
+
+ // If they're head, give them the account info for their department
+ if(H.mind && job.head_position)
+ var/remembered_info = ""
+ var/datum/money_account/department_account = department_accounts[job.department]
+
+ if(department_account)
+ remembered_info += "Your department's account number is: #[department_account.account_number]
"
+ remembered_info += "Your department's account pin is: [department_account.remote_access_pin]
"
+ remembered_info += "Your department's account funds are: $[department_account.money]
"
+
+ H.mind.store_memory(remembered_info)
+
+ var/alt_title = null
+ if(H.mind)
+ H.mind.assigned_role = rank
+ alt_title = H.mind.role_alt_title
+
+ switch(rank)
+ if("Cyborg")
+ return H.Robotize()
+ if("AI")
+ return H
+ if("Colony Director")
+ var/sound/announce_sound = (SSticker.current_state <= GAME_STATE_SETTING_UP)? null : sound('sound/misc/boatswain.ogg', volume=20)
+ captain_announcement.Announce("All hands, [alt_title ? alt_title : "Colony Director"] [H.real_name] on deck!", new_sound=announce_sound)
+
+ //Deferred item spawning.
+ if(spawn_in_storage && spawn_in_storage.len)
+ var/obj/item/storage/B
+ for(var/obj/item/storage/S in H.contents)
+ B = S
+ break
+
+ if(!isnull(B))
+ for(var/thing in spawn_in_storage)
+ var/datum/gear/G = gear_datums[thing]
+ var/obj/item/I = G.spawn_item(H, H.client.prefs.gear[G.display_name]) //Create the item...
+ if(B.can_be_inserted(I, 1)) //Try putting it in their backpack.
+ H << "Placing \the [I] in your [B.name]!"
+ I.forceMove(B)
+ continue
+ if(H.equip_to_appropriate_slot(I)) //Other slots?
+ H << "Equipping you with \the [I]!"
+ continue
+ if(H.put_in_hands(I)) //Well, hands?
+ H << "Placing \the [I] in your hand!"
+ continue
+ //Throw a tantrum, having exhausted all other options.
+ H << "Inventory space exhausted. Putting \the [I] on the ground!"
+ I.forceMove(get_turf(H))
+
+ else
+ H << "Failed to locate storage on your mob. Please report this at our Github. Dumping your loadout at your feet..."
+ for(var/thing in spawn_in_storage)
+ var/datum/gear/G = gear_datums[thing]
+ var/obj/item/I = G.spawn_item(H, H.client.prefs.gear[G.display_name])
+ I.forceMove(get_turf(H))
+ H << "Putting \the [I] on the ground!"
+
+
+ if(istype(H)) //give humans wheelchairs, if they need them.
+ var/obj/item/organ/external/l_foot = H.get_organ("l_foot")
+ var/obj/item/organ/external/r_foot = H.get_organ("r_foot")
+ var/obj/item/storage/S = locate() in H.contents
+ var/obj/item/wheelchair/R = null
+ if(S)
+ R = locate() in S.contents
+ if(!l_foot || !r_foot || R)
+ var/obj/structure/bed/chair/wheelchair/W = new /obj/structure/bed/chair/wheelchair(H.loc)
+ W.buckle_mob(H)
+ H.update_canmove()
+ W.setDir(H.dir)
+ W.add_fingerprint(H)
+ if(R)
+ W.color = R.color
+ qdel(R)
+
+ H << "You are [job.total_positions == 1 ? "the" : "a"] [alt_title ? alt_title : rank]."
+
+ if(job.supervisors)
+ H << "As the [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this."
+
+ if(job.idtype)
+ spawnId(H, rank, alt_title)
+ H.equip_to_slot_or_del(new /obj/item/radio/headset(H), slot_l_ear)
+ H << "To speak on your department's radio channel use :h. For the use of other channels, examine your headset."
+
+ if(job.req_admin_notify)
+ H << "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp."
+
+ // EMAIL GENERATION
+ // Email addresses will be created under this domain name. Mostly for the looks.
+ var/domain = "freemail.nt"
+ var/sanitized_name = sanitize(replacetext(replacetext(lowertext(H.real_name), " ", "."), "'", ""))
+ var/complete_login = "[sanitized_name]@[domain]"
+
+ // It is VERY unlikely that we'll have two players, in the same round, with the same name and branch, but still, this is here.
+ // If such conflict is encountered, a random number will be appended to the email address. If this fails too, no email account will be created.
+ if(ntnet_global.does_email_exist(complete_login))
+ complete_login = "[sanitized_name][random_id(/datum/computer_file/data/email_account/, 100, 999)]@[domain]"
+
+ // If even fallback login generation failed, just don't give them an email. The chance of this happening is astronomically low.
+ if(ntnet_global.does_email_exist(complete_login))
+ to_chat(H, "You were not assigned an email address.")
+ H.mind.store_memory("You were not assigned an email address.")
+ else
+ var/datum/computer_file/data/email_account/EA = new/datum/computer_file/data/email_account()
+ EA.password = GenerateKey()
+ EA.login = complete_login
+ to_chat(H, "Your email account address is [EA.login] and the password is [EA.password]. This information has also been placed into your notes.")
+ H.mind.store_memory("Your email account address is [EA.login] and the password is [EA.password].")
+ // END EMAIL GENERATION
+
+ //Gives glasses to the vision impaired
+ if(H.disabilities & NEARSIGHTED)
+ var/equipped = H.equip_to_slot_or_del(new /obj/item/clothing/glasses/regular(H), slot_glasses)
+ if(equipped != 1)
+ var/obj/item/clothing/glasses/G = H.glasses
+ G.prescription = 1
+
+ ENABLE_BITFIELD(H.hud_updateflag, ID_HUD)
+ ENABLE_BITFIELD(H.hud_updateflag, IMPLOYAL_HUD)
+ ENABLE_BITFIELD(H.hud_updateflag, SPECIALROLE_HUD)
+ return H
+
+
+/datum/controller/subsystem/jobs/proc/spawnId(var/mob/living/carbon/human/H, rank, title)
+ if(!H) return 0
+ var/obj/item/card/id/C = H.get_equipped_item(slot_wear_id)
+ if(istype(C)) return 0
+
+ var/datum/job/job = null
+ for(var/datum/job/J in occupations)
+ if(J.title == rank)
+ job = J
+ break
+
+ if(job)
+ if(job.title == "Cyborg")
+ return
+ else
+ C = new job.idtype(H)
+ C.access = job.get_access()
+ else
+ C = new /obj/item/card/id(H)
+ if(C)
+ C.rank = rank
+ C.assignment = title ? title : rank
+ H.set_id_info(C)
+
+ //put the player's account number onto the ID
+ if(H.mind && H.mind.initial_account)
+ C.associated_account_number = H.mind.initial_account.account_number
+
+ H.equip_to_slot_or_del(C, slot_wear_id)
+
+// H.equip_to_slot_or_del(new /obj/item/pda(H), slot_belt)
+ if(locate(/obj/item/pda,H))
+ var/obj/item/pda/pda = locate(/obj/item/pda,H)
+ pda.owner = H.real_name
+ pda.ownjob = C.assignment
+ pda.ownrank = C.rank
+ pda.name = "PDA-[H.real_name] ([pda.ownjob])"
+
+ return 1
+
+
+/datum/controller/subsystem/jobs/proc/LoadJobs(jobsfile) //ran during round setup, reads info from jobs.txt -- Urist
+ if(!config_legacy.load_jobs_from_txt)
+ return 0
+
+ var/list/jobEntries = file2list(jobsfile)
+
+ for(var/job in jobEntries)
+ if(!job)
+ continue
+
+ job = trim(job)
+ if (!length(job))
+ continue
+
+ var/pos = findtext(job, "=")
+ var/name = null
+ var/value = null
+
+ if(pos)
+ name = copytext(job, 1, pos)
+ value = copytext(job, pos + 1)
+ else
+ continue
+
+ if(name && value)
+ var/datum/job/J = GetJob(name)
+ if(!J) continue
+ J.total_positions = text2num(value)
+ J.spawn_positions = text2num(value)
+ if(name == "AI" || name == "Cyborg")//I dont like this here but it will do for now
+ J.total_positions = 0
+
+ return 1
+
+
+/datum/controller/subsystem/jobs/proc/HandleFeedbackGathering()
+ for(var/datum/job/job in occupations)
+ var/tmp_str = "|[job.title]|"
+
+ var/level1 = 0 //high
+ var/level2 = 0 //medium
+ var/level3 = 0 //low
+ var/level4 = 0 //never
+ var/level5 = 0 //banned
+ var/level6 = 0 //account too young
+ for(var/mob/new_player/player in player_list)
+ if(!(player.ready && player.mind && !player.mind.assigned_role))
+ continue //This player is not ready
+ if(jobban_isbanned(player, job.title))
+ level5++
+ continue
+ if(!job.player_old_enough(player.client))
+ level6++
+ continue
+ if(player.client.prefs.GetJobDepartment(job, 1) & job.flag)
+ level1++
+ else if(player.client.prefs.GetJobDepartment(job, 2) & job.flag)
+ level2++
+ else if(player.client.prefs.GetJobDepartment(job, 3) & job.flag)
+ level3++
+ else level4++ //not selected
+
+ tmp_str += "HIGH=[level1]|MEDIUM=[level2]|LOW=[level3]|NEVER=[level4]|BANNED=[level5]|YOUNG=[level6]|-"
+ feedback_add_details("job_preferences",tmp_str)
+
+/datum/controller/subsystem/jobs/proc/LateSpawn(var/client/C, var/rank)
+
+ var/datum/spawnpoint/spawnpos
+
+ //Spawn them at their preferred one
+ if(C && C.prefs.spawnpoint)
+ if(!(C.prefs.spawnpoint in GLOB.using_map.allowed_spawns))
+ to_chat(C, "Your chosen spawnpoint ([C.prefs.spawnpoint]) is unavailable for the current map. Spawning you at one of the enabled spawn points instead.")
+ spawnpos = null
+ else
+ spawnpos = spawntypes[C.prefs.spawnpoint]
+
+ //We will return a list key'd by "turf" and "msg"
+ . = list("turf","msg")
+ if(spawnpos && istype(spawnpos) && spawnpos.turfs.len)
+ if(spawnpos.check_job_spawning(rank))
+ .["turf"] = spawnpos.get_spawn_position()
+ .["msg"] = spawnpos.msg
+ else
+ to_chat(C,"Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead.")
+ var/spawning = pick(latejoin)
+ .["turf"] = get_turf(spawning)
+ .["msg"] = "will arrive at the station shortly" //VOREStation Edit - Grammar but mostly 'shuttle' reference removal, and this also applies to notified spawn-character verb use
+ else
+ var/spawning = pick(latejoin)
+ .["turf"] = get_turf(spawning)
+ .["msg"] = "has arrived on the station"
diff --git a/code/controllers/subsystems/lighting.dm b/code/controllers/subsystems/lighting.dm
index 8817d83ad54..d2e7c491984 100644
--- a/code/controllers/subsystems/lighting.dm
+++ b/code/controllers/subsystems/lighting.dm
@@ -21,7 +21,7 @@ SUBSYSTEM_DEF(lighting)
name = "Lighting"
wait = 2 // Ticks, not deciseconds
init_order = INIT_ORDER_LIGHTING
- flags = SS_TICKER
+ flags = SS_SSticker
var/list/currentrun = list()
var/stage = null
diff --git a/code/controllers/subsystems/openspace.dm b/code/controllers/subsystems/openspace.dm
new file mode 100644
index 00000000000..341e81826d9
--- /dev/null
+++ b/code/controllers/subsystems/openspace.dm
@@ -0,0 +1,36 @@
+SUBSYSTEM_DEF(openspace)
+ name = "Open Space"
+ init_order = INIT_ORDER_OPENSPACE
+ wait = 10
+
+ var/static/list/turfs_to_process = list() // List of turfs queued for update.
+
+/datum/controller/subsystem/openspace/Initialize()
+ initialize_open_space()
+ return ..()
+
+/datum/controller/subsystem/openspace/fire(resumed)
+ while(length(turfs_to_process))
+ var/turf/T = turfs_to_process[1]
+ turfs_to_process.Cut(1,2)
+ update_turf(T)
+
+/datum/controller/subsystem/openspace/proc/update_turf(var/turf/T)
+ for(var/atom/movable/A in T)
+ A.fall()
+ T.update_icon()
+
+/datum/controller/subsystem/openspace/proc/add_turf(var/turf/T, var/recursive = 0)
+ ASSERT(isturf(T))
+ turfs_to_process += T
+ if(recursive > 0)
+ var/turf/above = GetAbove(T)
+ if(above && isopenspace(above))
+ add_turf(above, recursive)
+
+// Do the initial updates of open space turfs when the game starts. This will lag!
+/datum/controller/subsystem/openspace/proc/initialize_open_space()
+ // Do initial setup from bottom to top.
+ for(var/zlevel = 1 to world.maxz)
+ for(var/turf/simulated/open/T in block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)))
+ add_turf(T)
diff --git a/code/controllers/subsystems/orbits.dm b/code/controllers/subsystems/orbits.dm
index 5cda1ce9dc4..2f5b60e6dfe 100644
--- a/code/controllers/subsystems/orbits.dm
+++ b/code/controllers/subsystems/orbits.dm
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(orbit)
name = "Orbits"
priority = FIRE_PRIORITY_ORBIT
wait = 2
- flags = SS_NO_INIT|SS_TICKER
+ flags = SS_NO_INIT|SS_SSticker
var/list/currentrun = list()
var/list/processing = list()
diff --git a/code/controllers/subsystems/overlays.dm b/code/controllers/subsystems/overlays.dm
index d1186c0263e..5fb8439ceb3 100644
--- a/code/controllers/subsystems/overlays.dm
+++ b/code/controllers/subsystems/overlays.dm
@@ -1,6 +1,6 @@
SUBSYSTEM_DEF(overlays)
name = "Overlay"
- flags = SS_TICKER
+ flags = SS_SSticker
wait = 1
priority = FIRE_PRIORITY_OVERLAYS
init_order = INIT_ORDER_OVERLAY
diff --git a/code/controllers/subsystems/persist_vr.dm b/code/controllers/subsystems/persist_vr.dm
index f30cc86b216..f65c612d051 100644
--- a/code/controllers/subsystems/persist_vr.dm
+++ b/code/controllers/subsystems/persist_vr.dm
@@ -72,10 +72,10 @@ SUBSYSTEM_DEF(persist)
if(R) // We found someone with a record.
var/recorded_rank = R.fields["real_rank"]
if(recorded_rank)
- . = job_master.GetJob(recorded_rank)
+ . = SSjobs.GetJob(recorded_rank)
if(.) return
// They have a custom title, aren't crew, or someone deleted their record, so we need a fallback method.
// Let's check the mind.
if(M.mind && M.mind.assigned_role)
- . = job_master.GetJob(M.mind.assigned_role)
+ . = SSjobs.GetJob(M.mind.assigned_role)
diff --git a/code/controllers/subsystems/processing/projectiles.dm b/code/controllers/subsystems/processing/projectiles.dm
index 87c9f097de0..a1571d906d8 100644
--- a/code/controllers/subsystems/processing/projectiles.dm
+++ b/code/controllers/subsystems/processing/projectiles.dm
@@ -3,7 +3,7 @@ PROCESSING_SUBSYSTEM_DEF(projectiles)
wait = 1
stat_tag = "PP"
priority = FIRE_PRIORITY_PROJECTILES
- flags = SS_NO_INIT|SS_TICKER
+ flags = SS_NO_INIT|SS_SSticker
var/global_max_tick_moves = 10
var/global_pixel_speed = 2
var/global_iterations_per_move = 16
diff --git a/code/controllers/subsystems/server_maint.dm b/code/controllers/subsystems/server_maint.dm
index f6dfe4a02fe..11057bc047e 100644
--- a/code/controllers/subsystems/server_maint.dm
+++ b/code/controllers/subsystems/server_maint.dm
@@ -8,39 +8,39 @@ SUBSYSTEM_DEF(server_maint)
init_order = INIT_ORDER_SERVER_MAINT
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun
- var/cleanup_ticker = 0
+ var/cleanup_SSticker = 0
/datum/controller/subsystem/server_maint/fire(resumed = FALSE)
if(!resumed)
if(listclearnulls(GLOB.clients))
log_world("Found a null in clients list!")
src.currentrun = GLOB.clients.Copy()
- switch (cleanup_ticker) // do only one of these at a time, once per 5 fires
+ switch (cleanup_SSticker) // do only one of these at a time, once per 5 fires
if (0)
if(listclearnulls(player_list))
log_world("Found a null in player_list!")
- cleanup_ticker++
+ cleanup_SSticker++
if (5)
if(listclearnulls(mob_list))
log_world("Found a null in mob_list!")
- cleanup_ticker++
+ cleanup_SSticker++
if (10)
if(listclearnulls(living_mob_list))
log_world("Found a null in living_mob_list!")
- cleanup_ticker++
+ cleanup_SSticker++
if (15)
if(listclearnulls(dead_mob_list))
log_world("Found a null in dead_mob_list!")
- cleanup_ticker++
+ cleanup_SSticker++
if (20)
- cleanup_ticker = 0
+ cleanup_SSticker = 0
else
- cleanup_ticker++
+ cleanup_SSticker++
var/list/currentrun = src.currentrun
/*
- var/round_started = SSticker.HasRoundStarted()
+ var/round_started = SSSSticker.HasRoundStarted()
var/kick_inactive = CONFIG_GET(flag/kick_inactive)
var/afk_period
diff --git a/code/controllers/subsystems/shuttles.dm b/code/controllers/subsystems/shuttles.dm
index 61a45908904..39bf9fa1187 100644
--- a/code/controllers/subsystems/shuttles.dm
+++ b/code/controllers/subsystems/shuttles.dm
@@ -2,10 +2,7 @@
// SSshuttles subsystem - Handles initialization and processing of shuttles.
//
-// This global variable exists for legacy support so we don't have to rename every shuttle_controller to SSshuttles yet.
-var/global/datum/controller/subsystem/shuttles/shuttle_controller
-
-SUBSYSTEM_DEF(shuttles)
+SUBSYSTEM_DEF(shuttle)
name = "Shuttles"
wait = 2 SECONDS
priority = FIRE_PRIORITY_SHUTTLES
@@ -13,14 +10,15 @@ SUBSYSTEM_DEF(shuttles)
flags = SS_KEEP_TIMING|SS_NO_TICK_CHECK
runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME
- var/list/shuttles = list() // Maps shuttle tags to shuttle datums, so that they can be looked up.
- var/list/process_shuttles = list() // Simple list of shuttles, for processing
- var/list/current_run = list() // Shuttles remaining to process this fire() tick
+ var/static/list/escape_pods = list()
+ var/static/list/shuttles = list() // Maps shuttle tags to shuttle datums, so that they can be looked up.
+ var/static/list/process_shuttles = list() // Simple list of shuttles, for processing
+ var/static/list/current_run = list() // Shuttles remaining to process this fire() tick
var/list/docks_init_callbacks // List of callbacks to run when we finish setting up shuttle docks.
var/docks_initialized = FALSE
-/datum/controller/subsystem/shuttles/Initialize(timeofday)
- global.shuttle_controller = src
+/datum/controller/subsystem/shuttle/Initialize(timeofday)
+ global.SSshuttle = src
setup_shuttle_docks()
for(var/I in docks_init_callbacks)
var/datum/callback/cb = I
@@ -29,16 +27,16 @@ SUBSYSTEM_DEF(shuttles)
docks_init_callbacks = null
return ..()
-/datum/controller/subsystem/shuttles/fire(resumed = 0)
+/datum/controller/subsystem/shuttle/fire(resumed = 0)
do_process_shuttles(resumed)
-/datum/controller/subsystem/shuttles/stat_entry()
+/datum/controller/subsystem/shuttle/stat_entry()
var/msg = list()
msg += "AS:[shuttles.len]|"
msg += "PS:[process_shuttles.len]|"
..(jointext(msg, null))
-/datum/controller/subsystem/shuttles/proc/do_process_shuttles(resumed = 0)
+/datum/controller/subsystem/shuttle/proc/do_process_shuttles(resumed = 0)
if (!resumed)
src.current_run = process_shuttles.Copy()
@@ -59,7 +57,7 @@ SUBSYSTEM_DEF(shuttles)
return
// This should be called after all the machines and radio frequencies have been properly initialized
-/datum/controller/subsystem/shuttles/proc/setup_shuttle_docks()
+/datum/controller/subsystem/shuttle/proc/setup_shuttle_docks()
// Find all declared shuttle datums and initailize them.
for(var/shuttle_type in subtypesof(/datum/shuttle))
var/datum/shuttle/shuttle = shuttle_type
@@ -76,7 +74,7 @@ SUBSYSTEM_DEF(shuttles)
docks_initialized = TRUE
// Register a callback that will be invoked once the shuttles have been initialized
-/datum/controller/subsystem/shuttles/proc/OnDocksInitialized(datum/callback/cb)
+/datum/controller/subsystem/shuttle/proc/OnDocksInitialized(datum/callback/cb)
if(!docks_initialized)
LAZYADD(docks_init_callbacks, cb)
else
diff --git a/code/controllers/Processes/supply.dm b/code/controllers/subsystems/supply.dm
similarity index 90%
rename from code/controllers/Processes/supply.dm
rename to code/controllers/subsystems/supply.dm
index 61db5353055..0c05528d295 100644
--- a/code/controllers/Processes/supply.dm
+++ b/code/controllers/subsystems/supply.dm
@@ -1,3 +1,30 @@
+SUBSYSTEM_DEF(supply)
+ name = "Supply"
+ wait = 300
+ //supply points
+ var/points = 50
+ var/points_per_second = 1.5 / 30
+ var/points_per_slip = 2
+ var/points_per_money = 0.02 // 1 point for $50
+ //control
+ var/ordernum
+ var/list/shoppinglist = list() // Approved orders
+ var/list/supply_pack = list() // All supply packs
+ var/list/exported_crates = list() // Crates sent from the station
+ var/list/order_history = list() // History of orders, showing edits made by users
+ var/list/adm_order_history = list() // Complete history of all orders, for admin use
+ var/list/adm_export_history = list() // Complete history of all crates sent back on the shuttle, for admin use
+ //shuttle movement
+ var/movetime = 1200
+ var/datum/shuttle/ferry/supply/shuttle
+ var/list/material_points_conversion = list( // Any materials not named in this list are worth 0 points
+ "phoron" = 5,
+ "platinum" = 5,
+ "gold" = 2,// CIT CHANGE: Gold is now worth 2 cargo points per sheet
+ "silver" = 2,// CIT CHANGE: Silver is now worth 2 cargo points per sheet
+ "uranium" = 1 // CIT CHANGE: Uranium is now worth 1 cargo point per sheet
+ )
+
//Config stuff
#define SUPPLY_DOCKZ 2 //Z-level of the Dock.
#define SUPPLY_STATIONZ 1 //Z-level of the Station.
@@ -25,54 +52,21 @@
var/value
var/list/contents
-var/datum/controller/supply/supply_controller = new()
-
-/datum/controller/supply
- //supply points
- var/points = 50
- var/points_per_process = 1.5
- var/points_per_slip = 2
- var/points_per_money = 0.02 // 1 point for $50
- //control
- var/ordernum
- var/list/shoppinglist = list() // Approved orders
- var/list/supply_pack = list() // All supply packs
- var/list/exported_crates = list() // Crates sent from the station
- var/list/order_history = list() // History of orders, showing edits made by users
- var/list/adm_order_history = list() // Complete history of all orders, for admin use
- var/list/adm_export_history = list() // Complete history of all crates sent back on the shuttle, for admin use
- //shuttle movement
- var/movetime = 1200
- var/datum/shuttle/ferry/supply/shuttle
- var/list/material_points_conversion = list( // Any materials not named in this list are worth 0 points
- "phoron" = 5,
- "platinum" = 5,
- "gold" = 2,// CIT CHANGE: Gold is now worth 2 cargo points per sheet
- "silver" = 2,// CIT CHANGE: Silver is now worth 2 cargo points per sheet
- "uranium" = 1 // CIT CHANGE: Uranium is now worth 1 cargo point per sheet
- )
-
-/datum/controller/supply/New()
+/datum/controller/subsystem/supply/Initialize()
ordernum = rand(1,9000)
for(var/typepath in subtypesof(/datum/supply_pack))
var/datum/supply_pack/P = new typepath()
supply_pack[P.name] = P
+ return ..()
-/datum/controller/process/supply/setup()
- name = "supply controller"
- schedule_interval = 300 // every 30 seconds
-
-/datum/controller/process/supply/doWork()
- supply_controller.process()
-
-// Supply shuttle ticker - handles supply point regeneration
+// Supply shuttle SSticker - handles supply point regeneration
// This is called by the process scheduler every thirty seconds
-/datum/controller/supply/process()
- points += points_per_process
+/datum/controller/subsystem/supply/fire(resumed)
+ points += max(0, ((world.time - last_fire) / 10) * points_per_second)
//To stop things being sent to CentCom which should not be sent to centcomm. Recursively checks for these types.
-/datum/controller/supply/proc/forbidden_atoms_check(atom/A)
+/datum/controller/subsystem/supply/proc/forbidden_atoms_check(atom/A)
if(isliving(A))
return 1
if(istype(A,/obj/item/disk/nuclear))
@@ -89,7 +83,7 @@ var/datum/controller/supply/supply_controller = new()
return 1
//Selling
-/datum/controller/supply/proc/sell()
+/datum/controller/subsystem/supply/proc/sell()
var/area/area_shuttle = shuttle.get_location_area()
if(!area_shuttle)
return
@@ -169,7 +163,7 @@ var/datum/controller/supply/supply_controller = new()
qdel(MA)
//Buying
-/datum/controller/supply/proc/buy()
+/datum/controller/subsystem/supply/proc/buy()
var/list/shoppinglist = list()
for(var/datum/supply_order/SO in order_history)
if(SO.status == SUP_ORDER_APPROVED)
@@ -265,9 +259,9 @@ var/datum/controller/supply/supply_controller = new()
return
// Will attempt to purchase the specified order, returning TRUE on success, FALSE on failure
-/datum/controller/supply/proc/approve_order(var/datum/supply_order/O, var/mob/user)
+/datum/controller/subsystem/supply/proc/approve_order(var/datum/supply_order/O, var/mob/user)
// Not enough points to purchase the crate
- if(supply_controller.points <= O.object.cost)
+ if(SSsupply.points <= O.object.cost)
return FALSE
// Based on the current model, there shouldn't be any entries in order_history, requestlist, or shoppinglist, that aren't matched in adm_order_history
@@ -294,11 +288,11 @@ var/datum/controller/supply/supply_controller = new()
adm_order.approved_at = stationdate2text() + " - " + stationtime2text()
// Deduct cost
- supply_controller.points -= O.object.cost
+ SSsupply.points -= O.object.cost
return TRUE
// Will deny the specified order. Only useful if the order is currently requested, but available at any status
-/datum/controller/supply/proc/deny_order(var/datum/supply_order/O, var/mob/user)
+/datum/controller/subsystem/supply/proc/deny_order(var/datum/supply_order/O, var/mob/user)
// Based on the current model, there shouldn't be any entries in order_history, requestlist, or shoppinglist, that aren't matched in adm_order_history
var/datum/supply_order/adm_order
for(var/datum/supply_order/temp in adm_order_history)
@@ -324,22 +318,22 @@ var/datum/controller/supply/supply_controller = new()
return
// Will deny all requested orders
-/datum/controller/supply/proc/deny_all_pending(var/mob/user)
+/datum/controller/subsystem/supply/proc/deny_all_pending(var/mob/user)
for(var/datum/supply_order/O in order_history)
if(O.status == SUP_ORDER_REQUESTED)
deny_order(O, user)
// Will delete the specified order from the user-side list
-/datum/controller/supply/proc/delete_order(var/datum/supply_order/O, var/mob/user)
+/datum/controller/subsystem/supply/proc/delete_order(var/datum/supply_order/O, var/mob/user)
// Making sure they know what they're doing
if(alert(user, "Are you sure you want to delete this record? If it has been approved, cargo points will NOT be refunded!", "Delete Record","No","Yes") == "Yes")
if(alert(user, "Are you really sure? There is no way to recover the order once deleted.", "Delete Record", "No", "Yes") == "Yes")
log_admin("[key_name(user)] has deleted supply order \ref[O] [O] from the user-side order history.")
- supply_controller.order_history -= O
+ SSsupply.order_history -= O
return
// Will generate a new, requested order, for the given supply pack type
-/datum/controller/supply/proc/create_order(var/datum/supply_pack/S, var/mob/user, var/reason)
+/datum/controller/subsystem/supply/proc/create_order(var/datum/supply_pack/S, var/mob/user, var/reason)
var/datum/supply_order/new_order = new()
var/datum/supply_order/adm_order = new() // Admin-recorded order must be a separate copy in memory, or user-made edits will corrupt it
@@ -374,16 +368,16 @@ var/datum/controller/supply/supply_controller = new()
adm_order_history += adm_order
// Will delete the specified export receipt from the user-side list
-/datum/controller/supply/proc/delete_export(var/datum/exported_crate/E, var/mob/user)
+/datum/controller/subsystem/supply/proc/delete_export(var/datum/exported_crate/E, var/mob/user)
// Making sure they know what they're doing
if(alert(user, "Are you sure you want to delete this record?", "Delete Record","No","Yes") == "Yes")
if(alert(user, "Are you really sure? There is no way to recover the receipt once deleted.", "Delete Record", "No", "Yes") == "Yes")
log_admin("[key_name(user)] has deleted export receipt \ref[E] [E] from the user-side export history.")
- supply_controller.exported_crates -= E
+ SSsupply.exported_crates -= E
return
// Will add an item entry to the specified export receipt on the user-side list
-/datum/controller/supply/proc/add_export_item(var/datum/exported_crate/E, var/mob/user)
+/datum/controller/subsystem/supply/proc/add_export_item(var/datum/exported_crate/E, var/mob/user)
var/new_name = input(user, "Name", "Please enter the name of the item.") as null|text
if(!new_name)
return
diff --git a/code/game/gamemodes/gameticker.dm b/code/controllers/subsystems/ticker.dm
similarity index 51%
rename from code/game/gamemodes/gameticker.dm
rename to code/controllers/subsystems/ticker.dm
index 14230087e58..5bcbcd47394 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -1,6 +1,8 @@
-var/global/datum/controller/gameticker/ticker
-
-/datum/controller/gameticker
+SUBSYSTEM_DEF(ticker)
+ name = "Ticker"
+ wait = 20
+ init_order = INIT_ORDER_TICKER
+ runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME
var/const/restart_timeout = 3 MINUTES //One minute is 600.
var/current_state = GAME_STATE_PREGAME
@@ -33,41 +35,11 @@ var/global/datum/controller/gameticker/ticker
var/round_end_announced = 0 // Spam Prevention. Announce round end only once.
-/datum/controller/gameticker/proc/pregame()
- /* VOREStation Edit - We do music differently
- login_music = pick(\
- 'sound/music/halloween/skeletons.ogg',\
- 'sound/music/halloween/halloween.ogg',\
- 'sound/music/halloween/ghosts.ogg'
- 'sound/music/space.ogg',\
- 'sound/music/traitor.ogg',\
- 'sound/music/title2.ogg',\
- 'sound/music/clouds.s3m',\
- 'sound/music/space_oddity.ogg') //Ground Control to Major Tom, this song is cool, what's going on?
- */ //VOREStation Edit End
+ //station_explosion used to be a variable for every mob's hud. Which was a waste!
+ //Now we have a general cinematic centrally held within the gameticker....far more efficient!
+ var/obj/screen/cinematic = null
- send2mainirc("Server lobby is loaded and open at byond://[config_legacy.serverurl ? config_legacy.serverurl : (config_legacy.server ? config_legacy.server : "[world.address]:[world.port]")]")
-
- do
- pregame_timeleft = 180
- to_chat(world, "Welcome to the pregame lobby!")
- to_chat(world, "Please set up your character and select ready. The round will start in [pregame_timeleft] seconds.")
- while(current_state == GAME_STATE_PREGAME)
- if(round_progressing)
- pregame_timeleft--
- if(pregame_timeleft == config_legacy.vote_autogamemode_timeleft)
- if(!SSvote.time_remaining)
- SSvote.autogamemode() //Quit calling this over and over and over and over.
- while(SSvote.time_remaining)
- sleep(1)
- if(pregame_timeleft <= 0)
- current_state = GAME_STATE_SETTING_UP
- Master.SetRunLevel(RUNLEVEL_SETUP)
- sleep(10)
- while (!setup())
-
-
-/datum/controller/gameticker/proc/setup()
+/datum/controller/subsystem/ticker/proc/setup()
//Create and announce mode
if(master_mode=="secret")
src.hide_mode = 1
@@ -95,10 +67,10 @@ var/global/datum/controller/gameticker/ticker
to_chat(world, "Serious error in mode setup! Reverting to pregame lobby.") //Uses setup instead of set up due to computational context.
return 0
- job_master.ResetOccupations()
+ SSjobs.ResetOccupations()
src.mode.create_antagonists()
src.mode.pre_setup()
- job_master.DivideOccupations() // Apparently important for new antagonist system to register specific job antags properly.
+ SSjobs.DivideOccupations() // Apparently important for new antagonist system to register specific job antags properly.
if(!src.mode.can_start())
to_chat(world, "Unable to start [mode.name]. Not enough players readied, [config_legacy.player_requirements[mode.config_tag]] players needed. Reverting to pregame lobby.")
@@ -106,7 +78,7 @@ var/global/datum/controller/gameticker/ticker
Master.SetRunLevel(RUNLEVEL_LOBBY)
mode.fail_setup()
mode = null
- job_master.ResetOccupations()
+ SSjobs.ResetOccupations()
return 0
if(hide_mode)
@@ -153,12 +125,11 @@ var/global/datum/controller/gameticker/ticker
if(admins_number == 0)
send2adminirc("A round has started with no admins online.")
-/* supply_controller.process() //Start the supply shuttle regenerating points -- TLE // handled in scheduler
+/* SSsupply.process() //Start the supply shuttle regenerating points -- TLE // handled in scheduler
master_controller.process() //Start master_controller.process()
lighting_controller.process() //Start processing DynamicAreaLighting updates
*/
- processScheduler.start()
Master.SetRunLevel(RUNLEVEL_GAME)
if(config_legacy.sql_enabled)
@@ -166,229 +137,265 @@ var/global/datum/controller/gameticker/ticker
return 1
-/datum/controller/gameticker
- //station_explosion used to be a variable for every mob's hud. Which was a waste!
- //Now we have a general cinematic centrally held within the gameticker....far more efficient!
- var/obj/screen/cinematic = null
-
//Plus it provides an easy way to make cinematics for other events. Just use this as a template :)
- proc/station_explosion_cinematic(var/station_missed=0, var/override = null)
- if( cinematic ) return //already a cinematic in progress!
+/datum/controller/subsystem/ticker/proc/station_explosion_cinematic(var/station_missed=0, var/override = null)
+ if( cinematic ) return //already a cinematic in progress!
- //initialise our cinematic screen object
- cinematic = new(src)
- cinematic.icon = 'icons/effects/station_explosion.dmi'
- cinematic.icon_state = "station_intact"
- cinematic.layer = 100
- cinematic.plane = PLANE_PLAYER_HUD
- cinematic.mouse_opacity = 0
- cinematic.screen_loc = "1,0"
+ //initialise our cinematic screen object
+ cinematic = new(src)
+ cinematic.icon = 'icons/effects/station_explosion.dmi'
+ cinematic.icon_state = "station_intact"
+ cinematic.layer = 100
+ cinematic.plane = PLANE_PLAYER_HUD
+ cinematic.mouse_opacity = 0
+ cinematic.screen_loc = "1,0"
- var/obj/structure/bed/temp_buckle = new(src)
- //Incredibly hackish. It creates a bed within the gameticker (lol) to stop mobs running around
- if(station_missed)
- for(var/mob/living/M in living_mob_list)
- M.buckled = temp_buckle //buckles the mob so it can't do anything
- if(M.client)
- M.client.screen += cinematic //show every client the cinematic
- else //nuke kills everyone on z-level 1 to prevent "hurr-durr I survived"
- for(var/mob/living/M in living_mob_list)
- M.buckled = temp_buckle
- if(M.client)
- M.client.screen += cinematic
+ var/obj/structure/bed/temp_buckle = new(src)
+ //Incredibly hackish. It creates a bed within the gameticker (lol) to stop mobs running around
+ if(station_missed)
+ for(var/mob/living/M in living_mob_list)
+ M.buckled = temp_buckle //buckles the mob so it can't do anything
+ if(M.client)
+ M.client.screen += cinematic //show every client the cinematic
+ else //nuke kills everyone on z-level 1 to prevent "hurr-durr I survived"
+ for(var/mob/living/M in living_mob_list)
+ M.buckled = temp_buckle
+ if(M.client)
+ M.client.screen += cinematic
- switch(M.z)
- if(0) //inside a crate or something
- var/turf/T = get_turf(M)
- if(T && T.z in GLOB.using_map.station_levels) //we don't use M.death(0) because it calls a for(/mob) loop and
- M.health = 0
- M.stat = DEAD
- if(1) //on a z-level 1 turf.
+ switch(M.z)
+ if(0) //inside a crate or something
+ var/turf/T = get_turf(M)
+ if(T && T.z in GLOB.using_map.station_levels) //we don't use M.death(0) because it calls a for(/mob) loop and
M.health = 0
M.stat = DEAD
+ if(1) //on a z-level 1 turf.
+ M.health = 0
+ M.stat = DEAD
- //Now animate the cinematic
- switch(station_missed)
- if(1) //nuke was nearby but (mostly) missed
- if( mode && !override )
- override = mode.name
- switch( override )
- if("mercenary") //Nuke wasn't on station when it blew up
- flick("intro_nuke",cinematic)
- sleep(35)
- world << sound('sound/effects/explosionfar.ogg')
- flick("station_intact_fade_red",cinematic)
- cinematic.icon_state = "summary_nukefail"
- else
- flick("intro_nuke",cinematic)
- sleep(35)
- world << sound('sound/effects/explosionfar.ogg')
- //flick("end",cinematic)
-
-
- if(2) //nuke was nowhere nearby //TODO: a really distant explosion animation
- sleep(50)
- world << sound('sound/effects/explosionfar.ogg')
-
-
- else //station was destroyed
- if( mode && !override )
- override = mode.name
- switch( override )
- if("mercenary") //Nuke Ops successfully bombed the station
- flick("intro_nuke",cinematic)
- sleep(35)
- flick("station_explode_fade_red",cinematic)
- world << sound('sound/effects/explosionfar.ogg')
- cinematic.icon_state = "summary_nukewin"
- if("AI malfunction") //Malf (screen,explosion,summary)
- flick("intro_malf",cinematic)
- sleep(76)
- flick("station_explode_fade_red",cinematic)
- world << sound('sound/effects/explosionfar.ogg')
- cinematic.icon_state = "summary_malf"
- if("blob") //Station nuked (nuke,explosion,summary)
- flick("intro_nuke",cinematic)
- sleep(35)
- flick("station_explode_fade_red",cinematic)
- world << sound('sound/effects/explosionfar.ogg')
- cinematic.icon_state = "summary_selfdes"
- else //Station nuked (nuke,explosion,summary)
- flick("intro_nuke",cinematic)
- sleep(35)
- flick("station_explode_fade_red", cinematic)
- world << sound('sound/effects/explosionfar.ogg')
- cinematic.icon_state = "summary_selfdes"
- for(var/mob/living/M in living_mob_list)
- if(M.loc.z in GLOB.using_map.station_levels)
- M.death()//No mercy
- //If its actually the end of the round, wait for it to end.
- //Otherwise if its a verb it will continue on afterwards.
- sleep(300)
-
- if(cinematic) qdel(cinematic) //end the cinematic
- if(temp_buckle) qdel(temp_buckle) //release everybody
- return
-
-
- proc/create_characters()
- for(var/mob/new_player/player in player_list)
- if(player && player.ready && player.mind)
- if(player.mind.assigned_role=="AI")
- player.close_spawn_windows()
- player.AIize()
- else if(!player.mind.assigned_role)
- continue
+ //Now animate the cinematic
+ switch(station_missed)
+ if(1) //nuke was nearby but (mostly) missed
+ if( mode && !override )
+ override = mode.name
+ switch( override )
+ if("mercenary") //Nuke wasn't on station when it blew up
+ flick("intro_nuke",cinematic)
+ sleep(35)
+ world << sound('sound/effects/explosionfar.ogg')
+ flick("station_intact_fade_red",cinematic)
+ cinematic.icon_state = "summary_nukefail"
else
- //VOREStation Edit Start
- var/mob/living/carbon/human/new_char = player.create_character()
- if(new_char)
- qdel(player)
- if(istype(new_char) && !(new_char.mind.assigned_role=="Cyborg"))
- data_core.manifest_inject(new_char)
- //VOREStation Edit End
+ flick("intro_nuke",cinematic)
+ sleep(35)
+ world << sound('sound/effects/explosionfar.ogg')
+ //flick("end",cinematic)
- proc/collect_minds()
- for(var/mob/living/player in player_list)
- if(player.mind)
- ticker.minds += player.mind
+ if(2) //nuke was nowhere nearby //TODO: a really distant explosion animation
+ sleep(50)
+ world << sound('sound/effects/explosionfar.ogg')
- proc/equip_characters()
- var/captainless=1
- for(var/mob/living/carbon/human/player in player_list)
- if(player && player.mind && player.mind.assigned_role)
- if(player.mind.assigned_role == "Colony Director")
- captainless=0
- if(!player_is_antag(player.mind, only_offstation_roles = 1))
- job_master.EquipRank(player, player.mind.assigned_role, 0)
- UpdateFactionList(player)
- //equip_custom_items(player) //VOREStation Removal
- //player.apply_traits() //VOREStation Removal
- if(captainless)
- for(var/mob/M in player_list)
- if(!istype(M,/mob/new_player))
- to_chat(M, "Colony Directorship not forced on anyone.")
+ else //station was destroyed
+ if( mode && !override )
+ override = mode.name
+ switch( override )
+ if("mercenary") //Nuke Ops successfully bombed the station
+ flick("intro_nuke",cinematic)
+ sleep(35)
+ flick("station_explode_fade_red",cinematic)
+ world << sound('sound/effects/explosionfar.ogg')
+ cinematic.icon_state = "summary_nukewin"
+ if("AI malfunction") //Malf (screen,explosion,summary)
+ flick("intro_malf",cinematic)
+ sleep(76)
+ flick("station_explode_fade_red",cinematic)
+ world << sound('sound/effects/explosionfar.ogg')
+ cinematic.icon_state = "summary_malf"
+ if("blob") //Station nuked (nuke,explosion,summary)
+ flick("intro_nuke",cinematic)
+ sleep(35)
+ flick("station_explode_fade_red",cinematic)
+ world << sound('sound/effects/explosionfar.ogg')
+ cinematic.icon_state = "summary_selfdes"
+ else //Station nuked (nuke,explosion,summary)
+ flick("intro_nuke",cinematic)
+ sleep(35)
+ flick("station_explode_fade_red", cinematic)
+ world << sound('sound/effects/explosionfar.ogg')
+ cinematic.icon_state = "summary_selfdes"
+ for(var/mob/living/M in living_mob_list)
+ if(M.loc.z in GLOB.using_map.station_levels)
+ M.death()//No mercy
+ //If its actually the end of the round, wait for it to end.
+ //Otherwise if its a verb it will continue on afterwards.
+ sleep(300)
+
+ if(cinematic) qdel(cinematic) //end the cinematic
+ if(temp_buckle) qdel(temp_buckle) //release everybody
+ return
- process()
- if(current_state != GAME_STATE_PLAYING)
- return 0
-
- mode.process()
-
-// emergency_shuttle.process() //handled in scheduler
-
- var/game_finished = 0
- var/mode_finished = 0
- if (config_legacy.continous_rounds)
- game_finished = (emergency_shuttle.returned() || mode.station_was_nuked)
- mode_finished = (!post_game && mode.check_finished())
- else
- game_finished = (mode.check_finished() || (emergency_shuttle.returned() && emergency_shuttle.evac == 1)) || universe_has_ended
- mode_finished = game_finished
-
- if(!mode.explosion_in_progress && game_finished && (mode_finished || post_game))
- current_state = GAME_STATE_FINISHED
- Master.SetRunLevel(RUNLEVEL_POSTGAME)
-
- spawn
- declare_completion()
-
- spawn(50)
- callHook("roundend")
-
- var/time_left
-
- if (mode.station_was_nuked)
- feedback_set_details("end_proper","nuke")
- time_left = 1 MINUTE //No point waiting five minutes if everyone's dead.
- if(!delay_end)
- to_chat(world, "Rebooting due to destruction of station in [round(time_left/600)] minutes.")
- else
- feedback_set_details("end_proper","proper completion")
- time_left = round(restart_timeout)
+/datum/controller/subsystem/ticker/proc/create_characters()
+ for(var/mob/new_player/player in player_list)
+ if(player && player.ready && player.mind)
+ if(player.mind.assigned_role=="AI")
+ player.close_spawn_windows()
+ player.AIize()
+ else if(!player.mind.assigned_role)
+ continue
+ else
+ //VOREStation Edit Start
+ var/mob/living/carbon/human/new_char = player.create_character()
+ if(new_char)
+ qdel(player)
+ if(istype(new_char) && !(new_char.mind.assigned_role=="Cyborg"))
+ data_core.manifest_inject(new_char)
+ //VOREStation Edit End
- if(blackbox)
- blackbox.save_all_data_to_sql()
+/datum/controller/subsystem/ticker/proc/collect_minds()
+ for(var/mob/living/player in player_list)
+ if(player.mind)
+ minds += player.mind
+
+/datum/controller/subsystem/ticker/proc/equip_characters()
+ var/captainless=1
+ for(var/mob/living/carbon/human/player in player_list)
+ if(player && player.mind && player.mind.assigned_role)
+ if(player.mind.assigned_role == "Colony Director")
+ captainless=0
+ if(!player_is_antag(player.mind, only_offstation_roles = 1))
+ SSjobs.EquipRank(player, player.mind.assigned_role, 0)
+ UpdateFactionList(player)
+ //equip_custom_items(player) //VOREStation Removal
+ //player.apply_traits() //VOREStation Removal
+ if(captainless)
+ for(var/mob/M in player_list)
+ if(!istype(M,/mob/new_player))
+ to_chat(M, "Colony Directorship not forced on anyone.")
+
+/datum/controller/subsystem/ticker/Initialize()
+ if(!syndicate_code_phrase)
+ syndicate_code_phrase = generate_code_phrase()
+ if(!syndicate_code_response)
+ syndicate_code_response = generate_code_phrase()
+
+ // Set up antagonists.
+ populate_antag_type_list()
+
+ //Set up spawn points.
+ populate_spawn_points()
+
+ send2mainirc("Server lobby is loaded and open at byond://[config_legacy.serverurl ? config_legacy.serverurl : (config_legacy.server ? config_legacy.server : "[world.address]:[world.port]")]")
+ pregame_timeleft = 180
+ to_chat(world, "Welcome to the pregame lobby!")
+ to_chat(world, "Please set up your character and select ready. The round will start in [pregame_timeleft] seconds.")
+ return ..()
+
+/datum/controller/subsystem/ticker/fire()
+ switch(current_state)
+ if(GAME_STATE_PREGAME)
+ pregame()
+ if(GAME_STATE_SETTING_UP)
+ setup()
+ if(GAME_STATE_PLAYING)
+ round_process()
+
+/datum/controller/subsystem/ticker/proc/pregame()
+ if(round_progressing)
+ pregame_timeleft--
+ if(pregame_timeleft == config_legacy.vote_autogamemode_timeleft)
+ if(!SSvote.time_remaining)
+ SSvote.autogamemode() //Quit calling this over and over and over and over.
+ if(pregame_timeleft <= 0)
+ current_state = GAME_STATE_SETTING_UP
+ Master.SetRunLevel(RUNLEVEL_SETUP)
+
+/datum/controller/subsystem/ticker/proc/round_process()
+ if(current_state != GAME_STATE_PLAYING)
+ return 0
+
+ mode.process()
+
+// SSemergencyshuttle.process() //handled in scheduler
+
+ var/game_finished = 0
+ var/mode_finished = 0
+ if (config_legacy.continous_rounds)
+ game_finished = (SSemergencyshuttle.returned() || mode.station_was_nuked)
+ mode_finished = (!post_game && mode.check_finished())
+ else
+ game_finished = (mode.check_finished() || (SSemergencyshuttle.returned() && SSemergencyshuttle.evac == 1)) || universe_has_ended
+ mode_finished = game_finished
+
+ if(!mode.explosion_in_progress && game_finished && (mode_finished || post_game))
+ current_state = GAME_STATE_FINISHED
+ Master.SetRunLevel(RUNLEVEL_POSTGAME)
+
+ spawn
+ declare_completion()
+
+ spawn(50)
+ callHook("roundend")
+
+ var/time_left
+
+ if (mode.station_was_nuked)
+ feedback_set_details("end_proper","nuke")
+ time_left = 1 MINUTE //No point waiting five minutes if everyone's dead.
if(!delay_end)
- while(time_left > 0)
- if(delay_end)
- break
- to_chat(world, "Restarting in [round(time_left/600)] minute\s.")
- time_left -= 1 MINUTES
- sleep(600)
- if(!delay_end)
- world.Reboot()
- else
- to_chat(world, "An admin has delayed the round end.")
+ to_chat(world, "Rebooting due to destruction of station in [round(time_left/600)] minutes.")
+ else
+ feedback_set_details("end_proper","proper completion")
+ time_left = round(restart_timeout)
+
+
+ if(blackbox)
+ blackbox.save_all_data_to_sql()
+
+ if(!delay_end)
+ while(time_left > 0)
+ if(delay_end)
+ break
+ to_chat(world, "Restarting in [round(time_left/600)] minute\s.")
+ time_left -= 1 MINUTES
+ sleep(600)
+ if(!delay_end)
+ world.Reboot()
else
to_chat(world, "An admin has delayed the round end.")
+ else
+ to_chat(world, "An admin has delayed the round end.")
- else if (mode_finished)
- post_game = 1
+ else if (mode_finished)
+ post_game = 1
- mode.cleanup()
+ mode.cleanup()
- //call a transfer shuttle vote
- spawn(50)
- if(!round_end_announced) // Spam Prevention. Now it should announce only once.
- to_chat(world, "The round has ended!")
- round_end_announced = 1
- SSvote.autotransfer()
+ //call a transfer shuttle vote
+ spawn(50)
+ if(!round_end_announced) // Spam Prevention. Now it should announce only once.
+ to_chat(world, "The round has ended!")
+ round_end_announced = 1
+ SSvote.autotransfer()
- return 1
+ return 1
+<<<<<<< HEAD:code/game/gamemodes/gameticker.dm
/datum/controller/gameticker/proc/declare_completion()
to_chat(world, "
A round of [mode.name] has ended!
")
+=======
+/datum/controller/subsystem/ticker/proc/declare_completion()
+ world << "
A round of [mode.name] has ended!
"
+>>>>>>> citrp/master:code/controllers/subsystems/ticker.dm
for(var/mob/Player in player_list)
if(Player.mind && !isnewplayer(Player))
if(Player.stat != DEAD)
var/turf/playerTurf = get_turf(Player)
- if(emergency_shuttle.departed && emergency_shuttle.evac)
+ if(SSemergencyshuttle.departed && SSemergencyshuttle.evac)
if(isNotAdminLevel(playerTurf.z))
to_chat(Player, "You survived the round, but remained on [station_name()] as [Player.real_name].")
else
diff --git a/code/controllers/subsystems/timer.dm b/code/controllers/subsystems/timer.dm
index 6860cfbe0f9..a63ed5abc79 100644
--- a/code/controllers/subsystems/timer.dm
+++ b/code/controllers/subsystems/timer.dm
@@ -5,10 +5,10 @@
SUBSYSTEM_DEF(timer)
name = "Timer"
- wait = 1 //SS_TICKER subsystem, so wait is in ticks
+ wait = 1 //SS_SSticker subsystem, so wait is in ticks
init_order = INIT_ORDER_TIMER
- flags = SS_TICKER|SS_NO_INIT
+ flags = SS_SSticker|SS_NO_INIT
var/list/datum/timedevent/second_queue = list() //awe, yes, you've had first queue, but what about second queue?
var/list/hashes = list()
diff --git a/code/controllers/autotransfer.dm b/code/controllers/subsystems/transfer.dm
similarity index 83%
rename from code/controllers/autotransfer.dm
rename to code/controllers/subsystems/transfer.dm
index 4c987d40283..f22d38c61ea 100644
--- a/code/controllers/autotransfer.dm
+++ b/code/controllers/subsystems/transfer.dm
@@ -1,22 +1,21 @@
-var/datum/controller/transfer_controller/transfer_controller
-
-#define NUMBER_OF_VOTE_EXTENSIONS 2
-
-datum/controller/transfer_controller
+SUBSYSTEM_DEF(transfer)
+ wait = 10 SECONDS
+ name = "Transfer"
var/timerbuffer = 0 //buffer for time check
var/currenttick = 0
var/shift_hard_end = 0 //VOREStation Edit
var/shift_last_vote = 0 //Citadel Edit
-datum/controller/transfer_controller/New()
+
+// should be a config someday lol
+#define NUMBER_OF_VOTE_EXTENSIONS 2
+
+/datum/controller/subsystem/transfer/Initialize()
timerbuffer = config_legacy.vote_autotransfer_initial
shift_hard_end = config_legacy.vote_autotransfer_initial + (config_legacy.vote_autotransfer_interval * NUMBER_OF_VOTE_EXTENSIONS) //VOREStation Edit //Change this "1" to how many extend votes you want there to be.
shift_last_vote = shift_hard_end - config_legacy.vote_autotransfer_interval //VOREStation Edit
- START_PROCESSING(SSobj, src)
+ return ..()
-datum/controller/transfer_controller/Destroy()
- STOP_PROCESSING(SSobj, src)
-
-datum/controller/transfer_controller/process()
+/datum/controller/subsystem/transfer/fire(resumed)
currenttick = currenttick + 1
//VOREStation Edit START
/* if (round_duration_in_ticks >= shift_last_vote - 2 MINUTES)
diff --git a/code/modules/turbolift/turbolift_process.dm b/code/controllers/subsystems/turbolift.dm
similarity index 53%
rename from code/modules/turbolift/turbolift_process.dm
rename to code/controllers/subsystems/turbolift.dm
index 124049d42e4..bff814dc7bd 100644
--- a/code/modules/turbolift/turbolift_process.dm
+++ b/code/controllers/subsystems/turbolift.dm
@@ -1,17 +1,10 @@
-var/datum/controller/process/turbolift/turbolift_controller
+SUBSYSTEM_DEF(turbolifts)
+ name = "Turbolifts"
+ flags = SS_NO_TICK_CHECK
+ wait = 10
+ var/static/list/moving_lifts = list()
-/datum/controller/process/turbolift
- var/list/moving_lifts = list()
-
-/datum/controller/process/turbolift/New()
- ..()
- turbolift_controller = src
-
-/datum/controller/process/turbolift/setup()
- name = "turbolift controller"
- schedule_interval = 10
-
-/datum/controller/process/turbolift/doWork()
+/datum/controller/subsystem/turbolifts/fire(resumed)
for(var/liftref in moving_lifts)
if(world.time < moving_lifts[liftref])
continue
@@ -30,7 +23,6 @@ var/datum/controller/process/turbolift/turbolift_controller
else
lift_is_moving(lift,floor_delay)
lift.busy = 0
- SCHECK
-/datum/controller/process/turbolift/proc/lift_is_moving(var/datum/turbolift/lift,var/floor_delay)
+/datum/controller/subsystem/turbolifts/proc/lift_is_moving(var/datum/turbolift/lift,var/floor_delay)
moving_lifts["\ref[lift]"] = world.time + floor_delay
diff --git a/code/controllers/subsystems/vote.dm b/code/controllers/subsystems/vote.dm
index 5f4069c7175..3ef8066e601 100644
--- a/code/controllers/subsystems/vote.dm
+++ b/code/controllers/subsystems/vote.dm
@@ -22,7 +22,7 @@ SUBSYSTEM_DEF(vote)
/datum/controller/subsystem/vote/fire(resumed)
if(mode)
time_remaining = round((started_time + duration - world.time)/10)
- if(mode == VOTE_GAMEMODE && ticker.current_state >= GAME_STATE_SETTING_UP)
+ if(mode == VOTE_GAMEMODE && SSticker.current_state >= GAME_STATE_SETTING_UP)
to_chat(world, "Gamemode vote aborted: Game has already started.")
reset()
return
@@ -118,7 +118,7 @@ SUBSYSTEM_DEF(vote)
var/text
if(winners.len > 0)
if(winners.len > 1)
- if(mode != VOTE_GAMEMODE || ticker.hide_mode == 0) // Here we are making sure we don't announce potential game modes
+ if(mode != VOTE_GAMEMODE || SSticker.hide_mode == 0) // Here we are making sure we don't announce potential game modes
text = "Vote Tied Between:\n"
for(var/option in winners)
text += "\t[option]\n"
@@ -127,7 +127,7 @@ SUBSYSTEM_DEF(vote)
for(var/key in current_votes)
if(choices[current_votes[key]] == .)
round_voters += key // Keep track of who voted for the winning round.
- if(mode != VOTE_GAMEMODE || . == "Extended" || ticker.hide_mode == 0) // Announce Extended gamemode, but not other gamemodes
+ if(mode != VOTE_GAMEMODE || . == "Extended" || SSticker.hide_mode == 0) // Announce Extended gamemode, but not other gamemodes
text += "Vote Result: [mode == VOTE_GAMEMODE ? gamemode_names[.] : .]"
else
text += "The vote has ended."
@@ -150,7 +150,7 @@ SUBSYSTEM_DEF(vote)
if(VOTE_GAMEMODE)
if(master_mode != .)
world.save_mode(.)
- if(ticker && ticker.mode)
+ if(SSticker && SSticker.mode)
restart = 1
else
master_mode = .
@@ -202,7 +202,7 @@ SUBSYSTEM_DEF(vote)
if(VOTE_RESTART)
choices.Add("Restart Round", "Continue Playing")
if(VOTE_GAMEMODE)
- if(ticker.current_state >= GAME_STATE_SETTING_UP)
+ if(SSticker.current_state >= GAME_STATE_SETTING_UP)
return 0
choices.Add(config_legacy.votable_modes)
for(var/F in choices)
@@ -217,13 +217,18 @@ SUBSYSTEM_DEF(vote)
if(get_security_level() == "red" || get_security_level() == "delta")
to_chat(initiator_key, "The current alert status is too high to call for a crew transfer!")
return 0
+<<<<<<< HEAD
if(ticker.current_state <= GAME_STATE_SETTING_UP)
to_chat(initiator_key, "The crew transfer button has been disabled!")
+=======
+ if(SSticker.current_state <= GAME_STATE_SETTING_UP)
+ initiator_key << "The crew transfer button has been disabled!"
+>>>>>>> citrp/master
return 0
question = "Your PDA beeps with a message from Central. Would you like an additional hour to finish ongoing projects?" //VOREStation Edit
choices.Add("Initiate Crew Transfer", "Extend the Shift") //VOREStation Edit
if(VOTE_ADD_ANTAGONIST)
- if(!config_legacy.allow_extra_antags || ticker.current_state >= GAME_STATE_SETTING_UP)
+ if(!config_legacy.allow_extra_antags || SSticker.current_state >= GAME_STATE_SETTING_UP)
return 0
for(var/antag_type in all_antag_types)
var/datum/antagonist/antag = all_antag_types[antag_type]
diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm
index 7b136065d84..bfe115c41b3 100644
--- a/code/controllers/verbs.dm
+++ b/code/controllers/verbs.dm
@@ -89,20 +89,12 @@
options[strtype] = S
//Goon PS stuff, and other yet-to-be-subsystem things.
- options["LEGACY: master_controller"] = master_controller
- options["LEGACY: ticker"] = ticker
- options["LEGACY: tickerProcess"] = tickerProcess
options["LEGACY: air_master"] = air_master
- options["LEGACY: job_master"] = job_master
options["LEGACY: radio_controller"] = radio_controller
- options["LEGACY: supply_controller"] = supply_controller
- options["LEGACY: emergency_shuttle"] = emergency_shuttle
options["LEGACY: paiController"] = paiController
options["LEGACY: cameranet"] = cameranet
- options["LEGACY: transfer_controller"] = transfer_controller
options["LEGACY: gas_data"] = gas_data
options["LEGACY: plant_controller"] = plant_controller
- options["LEGACY: alarm_manager"] = alarm_manager
var/pick = input(mob, "Choose a controller to debug/view variables of.", "VV controller:") as null|anything in options
if(!pick)
@@ -113,28 +105,3 @@
feedback_add_details("admin_verb", "DebugController")
message_admins("Admin [key_name_admin(mob)] is debugging the [pick] controller.")
debug_variables(D)
-
-//VOREStation Edit Begin
-/client/proc/debug_process_scheduler()
- set category = "Debug"
- set name = "Debug Process Scheduler"
- set desc = "Debug the process scheduler itself. For vulpine use only."
-
- if(!check_rights(R_DEBUG)) return
- if(config_legacy.debugparanoid && !check_rights(R_ADMIN)) return
- debug_variables(processScheduler)
- feedback_add_details("admin_verb", "DProcSchd")
- message_admins("Admin [key_name_admin(usr)] is debugging the process scheduler.")
-
-/client/proc/debug_process(controller in processScheduler.nameToProcessMap)
- set category = "Debug"
- set name = "Debug Process Controller"
- set desc = "Debug one of the periodic loop background task controllers for the game (be careful!)"
-
- if(!check_rights(R_DEBUG)) return
- if(config_legacy.debugparanoid && !check_rights(R_ADMIN)) return
- var/datum/controller/process/P = processScheduler.nameToProcessMap[controller]
- debug_variables(P)
- feedback_add_details("admin_verb", "DProcCtrl")
- message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.")
-//VOREStation Edit End
\ No newline at end of file
diff --git a/code/datums/autolathe/general.dm b/code/datums/autolathe/general.dm
index 4c67e42b81d..47c782fad1a 100644
--- a/code/datums/autolathe/general.dm
+++ b/code/datums/autolathe/general.dm
@@ -104,7 +104,7 @@
/datum/category_item/autolathe/general/taperecorder
name = "tape recorder"
- path =/obj/item/taperecorder
+ path =/obj/item/tape_recorder
/datum/category_item/autolathe/general/tube
name = "light tube"
diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm
index bcd06c871e1..00ec8e39a7f 100644
--- a/code/datums/helper_datums/getrev.dm
+++ b/code/datums/helper_datums/getrev.dm
@@ -90,7 +90,7 @@
msg += "Allow Midround Antagonists: [length(CONFIG_GET(keyed_list/midround_antag))] of [config.modes.len] roundtypes"
if(CONFIG_GET(flag/show_game_type_odds))
var/list/probabilities = CONFIG_GET(keyed_list/probability)
- if(SSticker.IsRoundInProgress())
+ if(SSSSticker.IsRoundInProgress())
var/prob_sum = 0
var/current_odds_differ = FALSE
var/list/probs = list()
@@ -102,7 +102,7 @@
var/ctag = initial(M.config_tag)
if(!(ctag in probabilities))
continue
- if((min_pop[ctag] && (min_pop[ctag] > SSticker.totalPlayersReady)) || (max_pop[ctag] && (max_pop[ctag] < SSticker.totalPlayersReady)) || (initial(M.required_players) > SSticker.totalPlayersReady))
+ if((min_pop[ctag] && (min_pop[ctag] > SSSSticker.totalPlayersReady)) || (max_pop[ctag] && (max_pop[ctag] < SSSSticker.totalPlayersReady)) || (initial(M.required_players) > SSSSticker.totalPlayersReady))
current_odds_differ = TRUE
continue
probs[ctag] = 1
diff --git a/code/datums/looping_sounds/weather_sounds.dm b/code/datums/looping_sounds/weather_sounds.dm
index a56247253bd..d0416b01289 100644
--- a/code/datums/looping_sounds/weather_sounds.dm
+++ b/code/datums/looping_sounds/weather_sounds.dm
@@ -11,7 +11,7 @@
start_sound = 'sound/effects/weather/snowstorm/outside/active_start.ogg'
start_length = 13 SECONDS
end_sound = 'sound/effects/weather/snowstorm/outside/active_end.ogg'
- volume = 60
+ volume = 40
/datum/looping_sound/weather/inside_blizzard
mid_sounds = list(
@@ -23,7 +23,7 @@
start_sound = 'sound/effects/weather/snowstorm/inside/active_start.ogg'
start_length = 13 SECONDS
end_sound = 'sound/effects/weather/snowstorm/inside/active_end.ogg'
- volume = 40
+ volume = 20
/datum/looping_sound/weather/outside_snow
mid_sounds = list(
@@ -35,7 +35,7 @@
start_sound = 'sound/effects/weather/snowstorm/outside/weak_start.ogg'
start_length = 13 SECONDS
end_sound = 'sound/effects/weather/snowstorm/outside/weak_end.ogg'
- volume = 40
+ volume = 30
/datum/looping_sound/weather/inside_snow
mid_sounds = list(
@@ -47,7 +47,7 @@
start_sound = 'sound/effects/weather/snowstorm/inside/weak_start.ogg'
start_length = 13 SECONDS
end_sound = 'sound/effects/weather/snowstorm/inside/weak_end.ogg'
- volume = 20
+ volume = 15
/datum/looping_sound/weather/wind
mid_sounds = list(
@@ -59,11 +59,11 @@
'sound/effects/weather/wind/wind_5_1.ogg' = 1
)
mid_length = 10 SECONDS // The lengths for the files vary, but the longest is ten seconds, so this will make it sound like intermittent wind.
- volume = 40
+ volume = 30
// Don't have special sounds so we just make it quieter indoors.
/datum/looping_sound/weather/wind/indoors
- volume = 20
+ volume = 15
/datum/looping_sound/weather/rain
mid_sounds = list(
@@ -73,7 +73,7 @@
start_sound = 'sound/effects/weather/acidrain_start.ogg'
start_length = 13 SECONDS
end_sound = 'sound/effects/weather/acidrain_end.ogg'
- volume = 40
+ volume = 30
/datum/looping_sound/weather/rain/indoors
- volume = 20
\ No newline at end of file
+ volume = 15
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 68916a520b2..31056900fbf 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -119,7 +119,7 @@
recipient << browse(output,"window=memory")
/datum/mind/proc/edit_memory()
- if(!ticker || !ticker.mode)
+ if(!SSticker || !SSticker.mode)
alert("Not before round-start!", "Alert")
return
@@ -231,7 +231,7 @@
var/objective_type = "[objective_type_capital][objective_type_text]"//Add them together into a text string.
var/list/possible_targets = list("Free objective")
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if ((possible_target != src) && istype(possible_target.current, /mob/living/carbon/human))
possible_targets += possible_target.current
@@ -488,10 +488,14 @@
else
mind = new /datum/mind(key)
mind.original = src
- if(ticker)
- ticker.minds += mind
+ if(SSticker)
+ SSticker.minds += mind
else
+<<<<<<< HEAD
log_world("## DEBUG: mind_initialize(): No ticker ready yet! Please inform Carn")
+=======
+ world.log << "## DEBUG: mind_initialize(): No SSticker ready yet! Please inform Carn"
+>>>>>>> citrp/master
if(!mind.name)
mind.name = real_name
mind.current = src
diff --git a/code/datums/observation/destroyed.dm b/code/datums/observation/destroyed.dm
deleted file mode 100644
index f7bd0f261cd..00000000000
--- a/code/datums/observation/destroyed.dm
+++ /dev/null
@@ -1,14 +0,0 @@
-// Observer Pattern Implementation: Destroyed
-// Registration type: /datum
-//
-// Raised when: A /datum instance is destroyed.
-//
-// Arguments that the called proc should expect:
-// /datum/destroyed_instance: The instance that was destroyed.
-GLOBAL_DATUM_INIT(destroyed_event, /decl/observ/destroyed, new)
-/decl/observ/destroyed
- name = "Destroyed"
-
-/datum/Destroy()
- GLOB.destroyed_event?.raise_event(src)
- . = ..()
diff --git a/code/datums/supplypacks/recreation_vr.dm b/code/datums/supplypacks/recreation_vr.dm
index d395bbcab07..33fe1e8a448 100644
--- a/code/datums/supplypacks/recreation_vr.dm
+++ b/code/datums/supplypacks/recreation_vr.dm
@@ -14,7 +14,7 @@
/obj/item/clothing/mask/muzzle,
/obj/item/clothing/glasses/sunglasses/blindfold,
/obj/item/handcuffs/fuzzy,
- /obj/item/tape_roll,
+ /obj/item/duct_tape_roll,
/obj/item/stack/cable_coil/random,
/obj/item/clothing/accessory/collar/shock,
/obj/item/clothing/suit/straight_jacket,
diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm
index 2b25d65625a..9b3cc3b1075 100644
--- a/code/datums/supplypacks/security.dm
+++ b/code/datums/supplypacks/security.dm
@@ -359,14 +359,14 @@
/obj/item/clothing/suit/storage/vest/detective,
/obj/item/cartridge/detective,
/obj/item/radio/headset/headset_sec,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/clothing/glasses/sunglasses,
/obj/item/camera,
/obj/item/folder/red,
/obj/item/folder/blue,
/obj/item/storage/belt/detective,
/obj/item/clothing/gloves/black,
- /obj/item/taperecorder,
+ /obj/item/tape_recorder,
/obj/item/mass_spectrometer,
/obj/item/camera_film = 2,
/obj/item/storage/photo_album,
@@ -430,7 +430,7 @@
/obj/item/grenade/flashbang,
/obj/item/melee/baton/loaded,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/clothing/gloves/black,
/obj/item/hailer,
/obj/item/flashlight/flare,
@@ -457,7 +457,7 @@
/obj/item/cartridge/security,
/obj/item/radio/headset/headset_sec,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/hailer,
/obj/item/clothing/accessory/badge/holo/warden,
/obj/item/storage/box/flashbangs,
diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm
index 8c30f748e8d..01e04eec400 100644
--- a/code/datums/supplypacks/supply.dm
+++ b/code/datums/supplypacks/supply.dm
@@ -59,7 +59,7 @@
/obj/item/destTagger,
/obj/item/hand_labeler,
/obj/item/tool/wirecutters,
- /obj/item/tape_roll = 2)
+ /obj/item/duct_tape_roll = 2)
cost = 10
containertype = /obj/structure/closet/crate
containername = "Shipping supplies crate"
@@ -75,7 +75,7 @@
/obj/item/folder/red,
/obj/item/folder/yellow,
/obj/item/hand_labeler,
- /obj/item/tape_roll,
+ /obj/item/duct_tape_roll,
/obj/structure/filingcabinet/chestdrawer{anchored = 0},
/obj/item/paper_bin
)
diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm
index 2eb3484dd2e..33e0aeab531 100644
--- a/code/datums/world_topic.dm
+++ b/code/datums/world_topic.dm
@@ -163,20 +163,20 @@
var/list/presentmins = adm["present"]
var/list/afkmins = adm["afk"]
.["admins"] = presentmins.len + afkmins.len //equivalent to the info gotten from adminwho
- //.["gamestate"] = SSticker.current_state
+ //.["gamestate"] = SSSSticker.current_state
//.["map_name"] = SSmapping.config?.map_name || "Loading..."
//if(key_valid)
//.["active_players"] = get_active_player_count()
/*
- if(SSticker.HasRoundStarted())
- .["real_mode"] = SSticker.mode.name
+ if(SSSSticker.HasRoundStarted())
+ .["real_mode"] = SSSSticker.mode.name
// Key-authed callers may know the truth behind the "secret"
*/
.["security_level"] = get_security_level()
-// .["round_duration"] = SSticker ? round((world.time-SSticker.round_start_time)/10) : 0
+// .["round_duration"] = SSSSticker ? round((world.time-SSSSticker.round_start_time)/10) : 0
// // Amount of world's ticks in seconds, useful for calculating round duration
.["stationtime"] = stationtime2text()
.["roundduration"] = roundduration2text()
diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm
index cb320e86de3..59740574531 100644
--- a/code/defines/procs/announce.dm
+++ b/code/defines/procs/announce.dm
@@ -108,7 +108,7 @@ datum/announcement/proc/Log(message as text, message_title as text)
command_announcement.Announce("It has come to our attention that \the [station_name()] passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert")
/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
- if (ticker.current_state == GAME_STATE_PLAYING)
+ if (SSticker.current_state == GAME_STATE_PLAYING)
if(character.mind.role_alt_title)
rank = character.mind.role_alt_title
AnnounceArrivalSimple(character.real_name, rank, join_message)
diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm
index f517cb73f68..cdf62cce1cf 100644
--- a/code/game/antagonist/antagonist.dm
+++ b/code/game/antagonist/antagonist.dm
@@ -105,7 +105,7 @@
// Prune restricted status. Broke it up for readability.
// Note that this is done before jobs are handed out.
- candidates = ticker.mode.get_players_for_role(role_type, id, ghosts_only)
+ candidates = SSticker.mode.get_players_for_role(role_type, id, ghosts_only)
for(var/datum/mind/player in candidates)
if(ghosts_only && !istype(player.current, /mob/observer/dead))
candidates -= player
@@ -141,10 +141,15 @@
if(players && players.len)
player = pick(players)
if(!istype(player))
- message_admins("[uppertext(ticker.mode.name)]: Failed to find a candidate for [role_text].")
+ message_admins("[uppertext(SSticker.mode.name)]: Failed to find a candidate for [role_text].")
return 0
+<<<<<<< HEAD
to_chat(player.current, "You have been selected this round as an antagonist!")
message_admins("[uppertext(ticker.mode.name)]: Selected [player] as a [role_text].")
+=======
+ player.current << "You have been selected this round as an antagonist!"
+ message_admins("[uppertext(SSticker.mode.name)]: Selected [player] as a [role_text].")
+>>>>>>> citrp/master
if(istype(player.current, /mob/observer/dead))
create_default(player.current)
else
diff --git a/code/game/antagonist/antagonist_update.dm b/code/game/antagonist/antagonist_update.dm
index 3a36281fd28..8ff01bb508b 100644
--- a/code/game/antagonist/antagonist_update.dm
+++ b/code/game/antagonist/antagonist_update.dm
@@ -78,11 +78,11 @@
/datum/antagonist/proc/update_current_antag_max()
cur_max = hard_cap
- if(ticker && ticker.mode)
- if(ticker.mode.antag_tags && (id in ticker.mode.antag_tags))
+ if(SSticker && SSticker.mode)
+ if(SSticker.mode.antag_tags && (id in SSticker.mode.antag_tags))
cur_max = hard_cap_round
- if(ticker.mode.antag_scaling_coeff)
+ if(SSticker.mode.antag_scaling_coeff)
var/count = 0
for(var/mob/living/M in player_list)
@@ -91,4 +91,4 @@
// Minimum: initial_spawn_target
// Maximum: hard_cap or hard_cap_round
- cur_max = max(initial_spawn_target,min(round(count/ticker.mode.antag_scaling_coeff),cur_max))
+ cur_max = max(initial_spawn_target,min(round(count/SSticker.mode.antag_scaling_coeff),cur_max))
diff --git a/code/game/antagonist/station/highlander.dm b/code/game/antagonist/station/highlander.dm
index 14d05b48b42..9bb71ec08e6 100644
--- a/code/game/antagonist/station/highlander.dm
+++ b/code/game/antagonist/station/highlander.dm
@@ -55,7 +55,7 @@ var/datum/antagonist/highlander/highlanders
/proc/only_one()
- if(!ticker)
+ if(!SSticker)
alert("The game hasn't started yet!")
return
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 452b209fef5..57c76408cc8 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -82,13 +82,13 @@
/area/proc/atmosalert(danger_level, var/alarm_source)
if (danger_level == 0)
- atmosphere_alarm.clearAlarm(src, alarm_source)
+ SSalarms.atmosphere_alarm.clearAlarm(src, alarm_source)
else
var/obj/machinery/alarm/atmosalarm = alarm_source //maybe other things can trigger these, who knows
if(istype(atmosalarm))
- atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level, hidden = atmosalarm.alarms_hidden)
+ SSalarms.atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level, hidden = atmosalarm.alarms_hidden)
else
- atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)
+ SSalarms.atmosphere_alarm.triggerAlarm(src, alarm_source, severity = danger_level)
//Check all the alarms before lowering atmosalm. Raising is perfectly fine.
for (var/obj/machinery/alarm/AA in src)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 70136a1a5da..173a875e6a9 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -478,8 +478,8 @@
y = TRANSITIONEDGE + 1
x = rand(TRANSITIONEDGE + 2, world.maxx - TRANSITIONEDGE - 2)
- if(ticker && istype(ticker.mode, /datum/game_mode/nuclear)) //only really care if the game mode is nuclear
- var/datum/game_mode/nuclear/G = ticker.mode
+ if(SSticker && istype(SSticker.mode, /datum/game_mode/nuclear)) //only really care if the game mode is nuclear
+ var/datum/game_mode/nuclear/G = SSticker.mode
G.check_nuke_disks()
spawn(0)
diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm
index 7af46b8052a..5de738311ee 100644
--- a/code/game/gamemodes/cult/narsie.dm
+++ b/code/game/gamemodes/cult/narsie.dm
@@ -54,9 +54,9 @@ var/global/list/narsie_list = list()
narsie_cometh = 1
spawn(10 SECONDS)
- if(emergency_shuttle)
- emergency_shuttle.call_evac()
- emergency_shuttle.launch_time = 0 // Cannot recall
+ if(SSemergencyshuttle)
+ SSemergencyshuttle.call_evac()
+ SSemergencyshuttle.launch_time = 0 // Cannot recall
/obj/singularity/narsie/process()
eat()
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 7ef594c83f5..5ed7e0b36a4 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -212,9 +212,9 @@ var/list/sacrificed = list()
narsie_cometh = 1
spawn(10 SECONDS)
- if(emergency_shuttle)
- emergency_shuttle.call_evac()
- emergency_shuttle.launch_time = 0 // Cannot recall
+ if(SSemergencyshuttle)
+ SSemergencyshuttle.call_evac()
+ SSemergencyshuttle.launch_time = 0 // Cannot recall
log_and_message_admins_many(cultists, "summoned the end of days.")
// new /obj/singularity/narsie/large(src.loc)
@@ -390,10 +390,10 @@ var/list/sacrificed = list()
"You hear a thousand voices, all crying in pain.")
body_to_sacrifice.gib()
-// if(ticker.mode.name == "cult")
-// ticker.mode:add_cultist(corpse_to_raise.mind)
+// if(SSticker.mode.name == "cult")
+// SSticker.mode:add_cultist(corpse_to_raise.mind)
// else
-// ticker.mode.cult |= corpse_to_raise.mind
+// SSticker.mode.cult |= corpse_to_raise.mind
to_chat(corpse_to_raise, "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root.")
to_chat(corpse_to_raise, "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.")
@@ -680,7 +680,7 @@ var/list/sacrificed = list()
if(lamb.species.rarity_value > 3)
worth = 1
- if (ticker.mode.name == "cult")
+ if (SSticker.mode.name == "cult")
if(H.mind == cult.sacrifice_target)
if(cultsinrange.len >= 3)
sacrificed += H.mind
@@ -1005,7 +1005,7 @@ var/list/sacrificed = list()
bloodboil() //cultists need at least one DANGEROUS rune. Even if they're all stealthy.
/*
var/list/mob/living/carbon/cultists = new
- for(var/datum/mind/H in ticker.mode.cult)
+ for(var/datum/mind/H in SSticker.mode.cult)
if (istype(H.current,/mob/living/carbon))
cultists+=H.current
*/
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
index bafe5c97e12..4ba83cd0d93 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
@@ -44,9 +44,9 @@ var/global/universe_has_ended = 0
for(var/mob/M in player_list)
M.flash_eyes()
- if(emergency_shuttle.can_recall())
+ if(SSemergencyshuttle.can_recall())
priority_announcement.Announce("The emergency shuttle has returned due to bluespace distortion.")
- emergency_shuttle.recall()
+ SSemergencyshuttle.recall()
AreaSet()
MiscSet()
@@ -79,7 +79,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
C.req_one_access = list()
spawn(5 MINUTES)
- ticker.station_explosion_cinematic(0,null) // TODO: Custom cinematic
+ SSticker.station_explosion_cinematic(0,null) // TODO: Custom cinematic
universe_has_ended = 1
return
diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm
index 50375e80137..8bfc4bced43 100644
--- a/code/game/gamemodes/epidemic/epidemic.dm
+++ b/code/game/gamemodes/epidemic/epidemic.dm
@@ -132,7 +132,7 @@
checkwin_counter++
if(checkwin_counter >= 20)
if(!finished)
- ticker.mode.check_win()
+ SSticker.mode.check_win()
checkwin_counter = 0
return 0
@@ -165,7 +165,7 @@
///Handle crew failure(station explodes)///
///////////////////////////////////////////
/datum/game_mode/epidemic/proc/crew_lose()
- ticker.mode:explosion_in_progress = 1
+ SSticker.mode:explosion_in_progress = 1
for(var/mob/M in world)
if(M.client)
M << 'sound/machines/Alarm.ogg'
@@ -175,11 +175,11 @@
to_chat(world, "[i]..")
sleep(10)
enter_allowed = 0
- if(ticker)
- ticker.station_explosion_cinematic(0,null)
- if(ticker.mode)
- ticker.mode:station_was_nuked = 1
- ticker.mode:explosion_in_progress = 0
+ if(SSticker)
+ SSticker.station_explosion_cinematic(0,null)
+ if(SSticker.mode)
+ SSticker.mode:station_was_nuked = 1
+ SSticker.mode:explosion_in_progress = 0
finished = 2
return
diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm
index 94781f3c849..529c465daa8 100644
--- a/code/game/gamemodes/events.dm
+++ b/code/game/gamemodes/events.dm
@@ -3,7 +3,7 @@
/proc/start_events()
//changed to a while(1) loop since they are more efficient.
//Moved the spawn in here to allow it to be called with advance proc call if it crashes.
- //and also to stop spawn copying variables from the game ticker
+ //and also to stop spawn copying variables from the game SSticker
spawn(3000)
while(1)
if(prob(50))//Every 120 seconds and prob 50 2-4 weak spacedusts will hit the station
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 40cede6efd8..4afabc476a4 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -101,9 +101,9 @@ var/global/list/additional_antag_types = list()
return
var/datum/antagonist/antag = all_antag_types[choice]
if(antag)
- if(!islist(ticker.mode.antag_templates))
- ticker.mode.antag_templates = list()
- ticker.mode.antag_templates |= antag
+ if(!islist(SSticker.mode.antag_templates))
+ SSticker.mode.antag_templates = list()
+ SSticker.mode.antag_templates |= antag
message_admins("Admin [key_name_admin(usr)] added [antag.role_text] template to game mode.")
// I am very sure there's a better way to do this, but I'm not sure what it might be. ~Z
@@ -209,12 +209,12 @@ var/global/list/additional_antag_types = list()
if(antag.is_latejoin_template())
latejoin_templates |= antag
- if(emergency_shuttle && auto_recall_shuttle)
- emergency_shuttle.auto_recall = 1
+ if(SSemergencyshuttle && auto_recall_shuttle)
+ SSemergencyshuttle.auto_recall = 1
feedback_set_details("round_start","[time2text(world.realtime)]")
- if(ticker && ticker.mode)
- feedback_set_details("game_mode","[ticker.mode]")
+ if(SSticker && SSticker.mode)
+ feedback_set_details("game_mode","[SSticker.mode]")
feedback_set_details("server_ip","[world.internet_address]:[world.port]")
return 1
@@ -261,14 +261,14 @@ var/global/list/additional_antag_types = list()
command_announcement.Announce("The presence of [pick(reasons)] in the region is tying up all available local emergency resources; emergency response teams cannot be called at this time, and post-evacuation recovery efforts will be substantially delayed.","Emergency Transmission")
/datum/game_mode/proc/check_finished()
- if(emergency_shuttle.returned() || station_was_nuked)
+ if(SSemergencyshuttle.returned() || station_was_nuked)
return 1
if(end_on_antag_death && antag_templates && antag_templates.len)
for(var/datum/antagonist/antag in antag_templates)
if(!antag.antags_are_dead())
return 0
if(config_legacy.continous_rounds)
- emergency_shuttle.auto_recall = 0
+ SSemergencyshuttle.auto_recall = 0
return 0
return 1
return 0
@@ -334,7 +334,7 @@ var/global/list/additional_antag_types = list()
var/text = ""
if(surviving_total > 0)
text += "
There [surviving_total>1 ? "were [surviving_total] survivors" : "was one survivor"]"
- text += " ([escaped_total>0 ? escaped_total : "none"] [emergency_shuttle.evac ? "escaped" : "transferred"]) and [ghosts] ghosts.
"
+ text += " ([escaped_total>0 ? escaped_total : "none"] [SSemergencyshuttle.evac ? "escaped" : "transferred"]) and [ghosts] ghosts.
"
else
text += "There were no survivors ([ghosts] ghosts)."
world << text
@@ -378,7 +378,7 @@ var/global/list/additional_antag_types = list()
return candidates
// If this is being called post-roundstart then it doesn't care about ready status.
- if(ticker && ticker.current_state == GAME_STATE_PLAYING)
+ if(SSticker && SSticker.current_state == GAME_STATE_PLAYING)
for(var/mob/player in player_list)
if(!player.client)
continue
@@ -532,16 +532,24 @@ proc/get_nt_opposed()
set name = "Check Round Info"
set category = "OOC"
- if(!ticker || !ticker.mode)
+ if(!SSticker || !SSticker.mode)
usr << "Something is terribly wrong; there is no gametype."
return
if(master_mode != "secret")
+<<<<<<< HEAD
to_chat(usr, "The roundtype is [capitalize(ticker.mode.name)]")
if(ticker.mode.round_description)
to_chat(usr, "[ticker.mode.round_description]")
if(ticker.mode.extended_round_description)
to_chat(usr, "[ticker.mode.extended_round_description]")
+=======
+ usr << "The roundtype is [capitalize(SSticker.mode.name)]"
+ if(SSticker.mode.round_description)
+ usr << "[SSticker.mode.round_description]"
+ if(SSticker.mode.extended_round_description)
+ usr << "[SSticker.mode.extended_round_description]"
+>>>>>>> citrp/master
else
to_chat(usr, "Shhhh. It's a secret.")
return
diff --git a/code/game/gamemodes/game_mode_latespawn.dm b/code/game/gamemodes/game_mode_latespawn.dm
index 578c1a0d8c6..5b042983fe0 100644
--- a/code/game/gamemodes/game_mode_latespawn.dm
+++ b/code/game/gamemodes/game_mode_latespawn.dm
@@ -12,7 +12,7 @@
return usable_templates
///process()
-///Called by the gameticker
+///Called by the gameSSticker
/datum/game_mode/process()
// Slow this down a bit so latejoiners have a chance of being antags.
process_count++
@@ -28,10 +28,10 @@
/datum/game_mode/proc/try_latespawn(var/datum/mind/player, var/latejoin_only)
- if(emergency_shuttle.departed || !round_autoantag)
+ if(SSemergencyshuttle.departed || !round_autoantag)
return
- if(emergency_shuttle.shuttle && (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP || emergency_shuttle.shuttle.moving_status == SHUTTLE_INTRANSIT))
+ if(SSemergencyshuttle.shuttle && (SSemergencyshuttle.shuttle.moving_status == SHUTTLE_WARMUP || SSemergencyshuttle.shuttle.moving_status == SHUTTLE_INTRANSIT))
return // Don't do anything if the shuttle's coming.
var/mills = round_duration_in_ticks
diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/HARDWARE.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/HARDWARE.dm
index 68adf7f19a1..d324208f537 100644
--- a/code/game/gamemodes/malfunction/newmalf_ability_trees/HARDWARE.dm
+++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/HARDWARE.dm
@@ -105,9 +105,9 @@
radio.autosay("Self destructing now. Have a nice day.", "Self-Destruct Control")
timer--
- if(ticker)
- ticker.station_explosion_cinematic(0,null)
- if(ticker.mode)
- ticker.mode:station_was_nuked = 1
+ if(SSticker)
+ SSticker.station_explosion_cinematic(0,null)
+ if(SSticker.mode)
+ SSticker.mode:station_was_nuked = 1
diff --git a/code/game/gamemodes/newobjective.dm b/code/game/gamemodes/newobjective.dm
index f4a2bae2a66..828ace48a68 100644
--- a/code/game/gamemodes/newobjective.dm
+++ b/code/game/gamemodes/newobjective.dm
@@ -22,7 +22,7 @@
/proc/GenerateAssassinate(var/job,var/datum/mind/traitor)
var/list/datum/objective/assassinate/missions = list()
- for(var/datum/mind/target in ticker.minds)
+ for(var/datum/mind/target in SSticker.minds)
if((target != traitor) && istype(target.current, /mob/living/carbon/human))
if(target && target.current)
var/datum/objective/target_obj = new /datum/objective/assassinate(null,job,target)
@@ -33,7 +33,7 @@
/proc/GenerateFrame(var/job,var/datum/mind/traitor)
var/list/datum/objective/frame/missions = list()
- for(var/datum/mind/target in ticker.minds)
+ for(var/datum/mind/target in SSticker.minds)
if((target != traitor) && istype(target.current, /mob/living/carbon/human))
if(target && target.current)
var/datum/objective/target_obj = new /datum/objective/frame(null,job,target)
@@ -44,7 +44,7 @@
/proc/GenerateProtection(var/job,var/datum/mind/traitor)
var/list/datum/objective/frame/missions = list()
- for(var/datum/mind/target in ticker.minds)
+ for(var/datum/mind/target in SSticker.minds)
if((target != traitor) && istype(target.current, /mob/living/carbon/human))
if(target && target.current)
var/datum/objective/target_obj = new /datum/objective/protection(null,job,target)
@@ -253,7 +253,7 @@ datum
proc/get_weight(var/job)
return INFINITY
proc/find_target_by_role(role, role_type=0)//Option sets either to check assigned role or special role. Default to assigned.
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if((possible_target != owner) && ishuman(possible_target.current) && ((role_type ? possible_target.special_role : possible_target.assigned_role) == role) )
target = possible_target
break
@@ -267,7 +267,7 @@ datum
explanation_text = "Frame [target.current.real_name], the [target.assigned_role] for a crime and make sure they are arrested and brought back to the CentCom station alive. We'll handle the rest from there."
check_completion()
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(target.current.stat == 2)
return 0
@@ -313,7 +313,7 @@ datum
explanation_text = "[target.current.real_name], the [target.assigned_role] is a [pick("relative of a","friend of a","") + pick("high ranking","important","well-liked")] mercenary [pick("Leader","Officer","Agent","sympathiser")]. Make sure they get off the station safely, while minimizing intervention."
check_completion()
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(target.current.stat == 2)
@@ -387,7 +387,7 @@ datum
return 0
find_target_by_role(var/role)
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if((possible_target != owner) && istype(possible_target.current, /mob/living/carbon/human) && (possible_target.assigned_role == role))
target = possible_target
break
@@ -403,7 +403,7 @@ datum
proc/find_target()
var/list/possible_targets = list()
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if((possible_target != owner) && istype(possible_target.current, /mob/living/carbon/human))
possible_targets += possible_target
@@ -438,7 +438,7 @@ datum
return 1
find_target_by_role(var/role)
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if((possible_target != owner) && istype(possible_target.current, /mob/living/carbon/human) && (possible_target.assigned_role == role))
target = possible_target
break
@@ -477,7 +477,7 @@ datum
explanation_text = "Hijack the emergency shuttle by escaping alone."
check_completion()
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(!owner.current || owner.current.stat == 2)
@@ -512,7 +512,7 @@ datum
explanation_text = "Escape on the shuttle alive, without being arrested."
check_completion()
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(!owner.current || owner.current.stat ==2)
@@ -1230,7 +1230,7 @@ datum
check_completion()
if(!istype(owner.current, /mob/living/silicon))
return 0
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(!owner.current)
return 0
@@ -1285,15 +1285,15 @@ datum
var/target_amount
proc/gen_amount_goal(var/lowbound = 4, var/highbound = 6)
target_amount = rand (lowbound,highbound)
- if (ticker)
+ if (SSticker)
var/n_p = 1 //autowin
- if (ticker.current_state == GAME_STATE_SETTING_UP)
+ if (SSticker.current_state == GAME_STATE_SETTING_UP)
for(var/mob/new_player/P in world)
if(P.client && P.ready && P.mind!=owner)
n_p ++
- else if (ticker.current_state == GAME_STATE_PLAYING)
+ else if (SSticker.current_state == GAME_STATE_PLAYING)
for(var/mob/living/carbon/human/P in world)
- if(P.client && !(P.mind in ticker.mode.changelings) && P.mind!=owner)
+ if(P.client && !(P.mind in SSticker.mode.changelings) && P.mind!=owner)
n_p ++
target_amount = min(target_amount, n_p)
@@ -1457,7 +1457,7 @@ datum/objective/silence
explanation_text = "Do not allow anyone to escape the station. Only allow the shuttle to be called when everyone is dead and your story is the only one left."
check_completion()
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
var/area/shuttle = locate(/area/shuttle/escape/centcom)
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 0503e973213..f39e8598c1a 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -42,7 +42,7 @@ var/list/nuke_disks = list()
if(!is_type_in_list(disk_area, centcom_areas))
disk_rescued = 0
break
- var/crew_evacuated = (emergency_shuttle.returned())
+ var/crew_evacuated = (SSemergencyshuttle.returned())
if(!disk_rescued && station_was_nuked && !syndies_didnt_escape)
feedback_set_details("round_end_result","win - syndicate nuke")
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 14c63ddd6c1..a625f032eb6 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -23,7 +23,7 @@ datum/objective
proc/find_target()
var/list/possible_targets = list()
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != 2))
possible_targets += possible_target
if(possible_targets.len > 0)
@@ -31,7 +31,7 @@ datum/objective
proc/find_target_by_role(role, role_type=0)//Option sets either to check assigned role or special role. Default to assigned.
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if((possible_target != owner) && ishuman(possible_target.current) && ((role_type ? possible_target.special_role : possible_target.assigned_role) == role) )
target = possible_target
break
@@ -226,7 +226,7 @@ datum/objective/hijack
check_completion()
if(!owner.current || owner.current.stat)
return 0
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(issilicon(owner.current))
return 0
@@ -248,7 +248,7 @@ datum/objective/block
check_completion()
if(!istype(owner.current, /mob/living/silicon))
return 0
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(!owner.current)
return 0
@@ -266,7 +266,7 @@ datum/objective/silence
explanation_text = "Do not allow anyone to escape the station. Only allow the shuttle to be called when everyone is dead and your story is the only one left."
check_completion()
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
for(var/mob/living/player in player_list)
@@ -291,7 +291,7 @@ datum/objective/escape
return 0
if(isbrain(owner.current))
return 0
- if(!emergency_shuttle.returned())
+ if(!SSemergencyshuttle.returned())
return 0
if(!owner.current || owner.current.stat ==2)
return 0
@@ -612,13 +612,13 @@ datum/objective/capture
/datum/objective/absorb
proc/gen_amount_goal(var/lowbound = 4, var/highbound = 6)
target_amount = rand (lowbound,highbound)
- if (ticker)
+ if (SSticker)
var/n_p = 1 //autowin
- if (ticker.current_state == GAME_STATE_SETTING_UP)
+ if (SSticker.current_state == GAME_STATE_SETTING_UP)
for(var/mob/new_player/P in player_list)
if(P.client && P.ready && P.mind!=owner)
n_p ++
- else if (ticker.current_state == GAME_STATE_PLAYING)
+ else if (SSticker.current_state == GAME_STATE_PLAYING)
for(var/mob/living/carbon/human/P in player_list)
if(P.client && !(P.mind.changeling) && P.mind!=owner)
n_p ++
@@ -644,7 +644,7 @@ datum/objective/heist/kidnap
var/list/possible_targets = list()
var/list/priority_targets = list()
- for(var/datum/mind/possible_target in ticker.minds)
+ for(var/datum/mind/possible_target in SSticker.minds)
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != 2) && (!possible_target.special_role))
possible_targets += possible_target
for(var/role in roles)
diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm
index 39e9249d240..795f6df7a32 100644
--- a/code/game/gamemodes/sandbox/sandbox.dm
+++ b/code/game/gamemodes/sandbox/sandbox.dm
@@ -13,5 +13,5 @@
/datum/game_mode/sandbox/post_setup()
..()
- if(emergency_shuttle)
- emergency_shuttle.auto_recall = 1
+ if(SSemergencyshuttle)
+ SSemergencyshuttle.auto_recall = 1
diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm
index 4384fe2f09e..e279d1eebcd 100644
--- a/code/game/jobs/job/civilian_chaplain.dm
+++ b/code/game/jobs/job/civilian_chaplain.dm
@@ -142,11 +142,11 @@
to_chat(H, "Welp, out of time, buddy. You're stuck. Next time choose faster.")
accepted = 1
- if(ticker)
- ticker.Bible_icon_state = B.icon_state
- ticker.Bible_item_state = B.item_state
- ticker.Bible_name = B.name
- ticker.Bible_deity_name = B.deity_name
+ if(SSticker)
+ SSticker.Bible_icon_state = B.icon_state
+ SSticker.Bible_item_state = B.item_state
+ SSticker.Bible_name = B.name
+ SSticker.Bible_deity_name = B.deity_name
feedback_set_details("religion_deity","[new_deity]")
feedback_set_details("religion_book","[new_book_style]")
return 1
diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm
index 41fdfee0436..c9d73c0b9a9 100644
--- a/code/game/jobs/jobs.dm
+++ b/code/game/jobs/jobs.dm
@@ -73,7 +73,8 @@ var/list/medical_positions = list(
"Geneticist",
"Psychiatrist",
"Chemist",
- "Paramedic"
+ "Paramedic",
+ "Field Medic"
)
@@ -82,7 +83,9 @@ var/list/science_positions = list(
"Scientist",
"Geneticist", //Part of both medical and science
"Roboticist",
- "Xenobiologist"
+ "Xenobiologist",
+ "Explorer",
+ "Pathfinder"
)
//BS12 EDIT
@@ -101,6 +104,7 @@ var/list/civilian_positions = list(
"Librarian",
"Lawyer",
"Chaplain",
+ "Pilot",
USELESS_JOB, //VOREStation Edit - Visitor not Assistant
"Intern" //VOREStation Edit - Intern
)
diff --git a/code/game/jobs/whitelist_vr.dm b/code/game/jobs/whitelist_vr.dm
index 058a9c0dc17..d4809aa9f03 100644
--- a/code/game/jobs/whitelist_vr.dm
+++ b/code/game/jobs/whitelist_vr.dm
@@ -12,7 +12,7 @@ var/list/job_whitelist = list()
job_whitelist = splittext(text, "\n")
/proc/is_job_whitelisted(mob/M, var/rank)
- var/datum/job/job = job_master.GetJob(rank)
+ var/datum/job/job = SSjobs.GetJob(rank)
if(!job.whitelist_only)
return 1
if(rank == USELESS_JOB) //VOREStation Edit - Visitor not Assistant
diff --git a/code/game/json.dm b/code/game/json.dm
index 340ffa23f93..eb9d486f2d2 100644
--- a/code/game/json.dm
+++ b/code/game/json.dm
@@ -18,10 +18,10 @@ proc/makejson()
if(!isfile(F))
return
var/mode
- if(ticker)
- if(ticker.current_state == 1)
+ if(SSticker)
+ if(SSticker.current_state == 1)
mode = "Round Setup"
- else if(ticker.hide_mode)
+ else if(SSticker.hide_mode)
mode = "SECRET"
else
mode = master_mode
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index d2f3aaa6911..5281120627d 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -992,7 +992,7 @@ FIRE ALARM
return
var/area/area = get_area(src)
for(var/obj/machinery/firealarm/FA in area)
- fire_alarm.clearAlarm(src.loc, FA)
+ SSalarms.fire_alarm.clearAlarm(src.loc, FA)
update_icon()
return
@@ -1001,7 +1001,7 @@ FIRE ALARM
return
var/area/area = get_area(src)
for(var/obj/machinery/firealarm/FA in area)
- fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
+ SSalarms.fire_alarm.triggerAlarm(loc, FA, duration, hidden = alarms_hidden)
update_icon()
playsound(src.loc, 'sound/machines/airalarm.ogg', 25, 0, 4)
return
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 17bb18bfd85..0216e63b186 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -323,14 +323,14 @@
/obj/machinery/camera/proc/triggerCameraAlarm(var/duration = 0)
alarm_on = 1
- camera_alarm.triggerAlarm(loc, src, duration)
+ SSalarms.camera_alarm.triggerAlarm(loc, src, duration)
/obj/machinery/camera/proc/cancelCameraAlarm()
if(wires.IsIndexCut(CAMERA_WIRE_ALARM))
return
alarm_on = 0
- camera_alarm.clearAlarm(loc, src)
+ SSalarms.camera_alarm.clearAlarm(loc, src)
//if false, then the camera is listed as DEACTIVATED and cannot be used
/obj/machinery/camera/proc/can_use()
diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm
index 8fabc8d0dab..48110f0a7ac 100644
--- a/code/game/machinery/camera/motion.dm
+++ b/code/game/machinery/camera/motion.dm
@@ -44,7 +44,7 @@
if (!status || (stat & NOPOWER))
return 0
if (detectTime == -1)
- motion_alarm.clearAlarm(loc, src)
+ SSalarms.motion_alarm.clearAlarm(loc, src)
detectTime = 0
return 1
@@ -52,7 +52,7 @@
if (!status || (stat & NOPOWER))
return 0
if (!detectTime) return 0
- motion_alarm.triggerAlarm(loc, src)
+ SSalarms.motion_alarm.triggerAlarm(loc, src)
detectTime = -1
return 1
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 649965ab8d7..9559313ec52 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -12,13 +12,13 @@ var/global/list/minor_air_alarms = list()
icon_screen = "alert:0"
light_color = "#e6ffff"
-/obj/machinery/computer/atmos_alert/New()
- ..()
- atmosphere_alarm.register_alarm(src, /obj/machinery/computer/station_alert/update_icon)
+/obj/machinery/computer/atmos_alert/Initialize(mapload)
+ . = ..()
+ SSalarms.atmosphere_alarm.register_alarm(src, /obj/machinery/computer/station_alert/update_icon)
/obj/machinery/computer/atmos_alert/Destroy()
- atmosphere_alarm.unregister_alarm(src)
- ..()
+ SSalarms.atmosphere_alarm.unregister_alarm(src)
+ return ..()
/obj/machinery/computer/atmos_alert/attack_hand(mob/user)
ui_interact(user)
@@ -28,10 +28,10 @@ var/global/list/minor_air_alarms = list()
var/major_alarms[0]
var/minor_alarms[0]
- for(var/datum/alarm/alarm in atmosphere_alarm.major_alarms())
+ for(var/datum/alarm/alarm in SSalarms.atmosphere_alarm.major_alarms())
major_alarms[++major_alarms.len] = list("name" = sanitize(alarm.alarm_name()), "ref" = "\ref[alarm]")
- for(var/datum/alarm/alarm in atmosphere_alarm.minor_alarms())
+ for(var/datum/alarm/alarm in SSalarms.atmosphere_alarm.minor_alarms())
minor_alarms[++minor_alarms.len] = list("name" = sanitize(alarm.alarm_name()), "ref" = "\ref[alarm]")
data["priority_alarms"] = major_alarms
@@ -46,11 +46,11 @@ var/global/list/minor_air_alarms = list()
/obj/machinery/computer/atmos_alert/update_icon()
if(!(stat & (NOPOWER|BROKEN)))
- var/list/alarms = atmosphere_alarm.major_alarms()
+ var/list/alarms = SSalarms.atmosphere_alarm.major_alarms()
if(alarms.len)
icon_screen = "alert:2"
else
- alarms = atmosphere_alarm.minor_alarms()
+ alarms = SSalarms.atmosphere_alarm.minor_alarms()
if(alarms.len)
icon_screen = "alert:1"
else
@@ -62,7 +62,7 @@ var/global/list/minor_air_alarms = list()
return 1
if(href_list["clear_alarm"])
- var/datum/alarm/alarm = locate(href_list["clear_alarm"]) in atmosphere_alarm.alarms
+ var/datum/alarm/alarm = locate(href_list["clear_alarm"]) in SSalarms.atmosphere_alarm.alarms
if(alarm)
for(var/datum/alarm_source/alarm_source in alarm.sources)
var/obj/machinery/alarm/air_alarm = alarm_source.source
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 06550870a70..c05dc02dffe 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -124,7 +124,7 @@
if("callshuttle2")
if(src.authenticated)
call_shuttle_proc(usr)
- if(emergency_shuttle.online())
+ if(SSemergencyshuttle.online())
post_status("shuttle")
src.state = STATE_DEFAULT
if("cancelshuttle")
@@ -286,8 +286,8 @@
user.set_machine(src)
var/dat = "Communications Console"
- if (emergency_shuttle.has_eta())
- var/timeleft = emergency_shuttle.estimate_arrival_time()
+ if (SSemergencyshuttle.has_eta())
+ var/timeleft = SSemergencyshuttle.estimate_arrival_time()
dat += "Emergency shuttle\n
\nETA: [timeleft / 60 % 60]:[add_zero(num2text(timeleft % 60), 2)]
"
if (istype(user, /mob/living/silicon))
@@ -312,8 +312,8 @@
dat += "
\[ Restore Backup Routing Data \]"
dat += "
\[ Change alert level \]"
- if(emergency_shuttle.location())
- if (emergency_shuttle.online())
+ if(SSemergencyshuttle.location())
+ if (SSemergencyshuttle.online())
dat += "
\[ Cancel Shuttle Call \]"
else
dat += "
\[ Call Emergency Shuttle \]"
@@ -385,7 +385,7 @@
var/dat = ""
switch(src.aistate)
if(STATE_DEFAULT)
- if(emergency_shuttle.location() && !emergency_shuttle.online())
+ if(SSemergencyshuttle.location() && !SSemergencyshuttle.online())
dat += "
\[ Call Emergency Shuttle \]"
dat += "
\[ Message List \]"
dat += "
\[ Set Status Display \]"
@@ -434,7 +434,7 @@
PS.allowedtocall = !(PS.allowedtocall)
/proc/call_shuttle_proc(var/mob/user)
- if ((!( ticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !SSemergencyshuttle.location()))
return
if(!universe.OnShuttleCall(usr))
@@ -445,14 +445,20 @@
to_chat(user, "[GLOB.using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated.")
return
+<<<<<<< HEAD
if(emergency_shuttle.deny_shuttle)
to_chat(user, "The emergency shuttle may not be sent at this time. Please try again later.")
+=======
+ if(SSemergencyshuttle.deny_shuttle)
+ user << "The emergency shuttle may not be sent at this time. Please try again later."
+>>>>>>> citrp/master
return
if(world.time < 6000) // Ten minute grace period to let the game get going without lolmetagaming. -- TLE
to_chat(user, "The emergency shuttle is refueling. Please wait another [round((6000-world.time)/600)] minute\s before trying again.")
return
+<<<<<<< HEAD
if(emergency_shuttle.going_to_centcom())
to_chat(user, "The emergency shuttle may not be called while returning to [GLOB.using_map.boss_short].")
return
@@ -463,9 +469,21 @@
if(ticker.mode.name == "blob")
to_chat(user, "Under directive 7-10, [station_name()] is quarantined until further notice.")
+=======
+ if(SSemergencyshuttle.going_to_centcom())
+ user << "The emergency shuttle may not be called while returning to [GLOB.using_map.boss_short]."
return
- emergency_shuttle.call_evac()
+ if(SSemergencyshuttle.online())
+ user << "The emergency shuttle is already on its way."
+ return
+
+ if(SSticker.mode.name == "blob")
+ user << "Under directive 7-10, [station_name()] is quarantined until further notice."
+>>>>>>> citrp/master
+ return
+
+ SSemergencyshuttle.call_evac()
log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
admin_chat_message(message = "Emergency evac beginning! Called by [key_name(user)]!", color = "#CC2222") //VOREStation Add
@@ -474,21 +492,35 @@
return
/proc/init_shift_change(var/mob/user, var/force = 0)
- if ((!( ticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !SSemergencyshuttle.location()))
return
+<<<<<<< HEAD
if(emergency_shuttle.going_to_centcom())
to_chat(user, "The shuttle may not be called while returning to [GLOB.using_map.boss_short].")
return
if(emergency_shuttle.online())
to_chat(user, "The shuttle is already on its way.")
+=======
+ if(SSemergencyshuttle.going_to_centcom())
+ user << "The shuttle may not be called while returning to [GLOB.using_map.boss_short]."
+ return
+
+ if(SSemergencyshuttle.online())
+ user << "The shuttle is already on its way."
+>>>>>>> citrp/master
return
// if force is 0, some things may stop the shuttle call
if(!force)
+<<<<<<< HEAD
if(emergency_shuttle.deny_shuttle)
to_chat(user, "[GLOB.using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later.")
+=======
+ if(SSemergencyshuttle.deny_shuttle)
+ user << "[GLOB.using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later."
+>>>>>>> citrp/master
return
if(deathsquad.deployed == 1)
@@ -499,15 +531,20 @@
to_chat(user, "The shuttle is refueling. Please wait another [round((54000-world.time)/60)] minutes before trying again.")
return
- if(ticker.mode.auto_recall_shuttle)
+ if(SSticker.mode.auto_recall_shuttle)
//New version pretends to call the shuttle but cause the shuttle to return after a random duration.
- emergency_shuttle.auto_recall = 1
+ SSemergencyshuttle.auto_recall = 1
+<<<<<<< HEAD
if(ticker.mode.name == "blob" || ticker.mode.name == "epidemic")
to_chat(user, "Under directive 7-10, [station_name()] is quarantined until further notice.")
+=======
+ if(SSticker.mode.name == "blob" || SSticker.mode.name == "epidemic")
+ user << "Under directive 7-10, [station_name()] is quarantined until further notice."
+>>>>>>> citrp/master
return
- emergency_shuttle.call_transfer()
+ SSemergencyshuttle.call_transfer()
//delay events in case of an autotransfer
if (isnull(user))
@@ -521,13 +558,13 @@
return
/proc/cancel_call_proc(var/mob/user)
- if (!( ticker ) || !emergency_shuttle.can_recall())
+ if (!( SSticker ) || !SSemergencyshuttle.can_recall())
return
- if((ticker.mode.name == "blob")||(ticker.mode.name == "Meteor"))
+ if((SSticker.mode.name == "blob")||(SSticker.mode.name == "Meteor"))
return
- if(!emergency_shuttle.going_to_centcom()) //check that shuttle isn't already heading to CentCom
- emergency_shuttle.recall()
+ if(!SSemergencyshuttle.going_to_centcom()) //check that shuttle isn't already heading to CentCom
+ SSemergencyshuttle.recall()
log_game("[key_name(user)] has recalled the shuttle.")
message_admins("[key_name_admin(user)] has recalled the shuttle.", 1)
return
diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm
index 70067214ca0..0a865d9c2b2 100644
--- a/code/game/machinery/computer/shuttle.dm
+++ b/code/game/machinery/computer/shuttle.dm
@@ -10,7 +10,7 @@
attackby(var/obj/item/card/W as obj, var/mob/user as mob)
if(stat & (BROKEN|NOPOWER)) return
- if ((!( istype(W, /obj/item/card) ) || !( ticker ) || emergency_shuttle.location() || !( user ))) return
+ if ((!( istype(W, /obj/item/card) ) || !( SSticker ) || SSemergencyshuttle.location() || !( user ))) return
if (istype(W, /obj/item/card/id)||istype(W, /obj/item/pda))
if (istype(W, /obj/item/pda))
var/obj/item/pda/pda = W
@@ -29,7 +29,7 @@
return 0
var/choice = alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", "Authorize", "Repeal", "Abort")
- if(emergency_shuttle.location() && user.get_active_hand() != W)
+ if(SSemergencyshuttle.location() && user.get_active_hand() != W)
return 0
switch(choice)
if("Authorize")
@@ -42,8 +42,13 @@
else
message_admins("[key_name_admin(user)] has launched the shuttle")
log_game("[user.ckey] has launched the shuttle early")
+<<<<<<< HEAD
to_chat(world, "Alert: Shuttle launch time shortened to 10 seconds!")
emergency_shuttle.set_launch_countdown(10)
+=======
+ world << "Alert: Shuttle launch time shortened to 10 seconds!"
+ SSemergencyshuttle.set_launch_countdown(10)
+>>>>>>> citrp/master
//src.authorized = null
qdel(src.authorized)
src.authorized = list( )
@@ -60,11 +65,16 @@
else if (istype(W, /obj/item/card/emag) && !emagged)
var/choice = alert(user, "Would you like to launch the shuttle?","Shuttle control", "Launch", "Cancel")
- if(!emagged && !emergency_shuttle.location() && user.get_active_hand() == W)
+ if(!emagged && !SSemergencyshuttle.location() && user.get_active_hand() == W)
switch(choice)
if("Launch")
+<<<<<<< HEAD
to_chat(world, "Alert: Shuttle launch time shortened to 10 seconds!")
emergency_shuttle.set_launch_countdown(10)
+=======
+ world << "Alert: Shuttle launch time shortened to 10 seconds!"
+ SSemergencyshuttle.set_launch_countdown(10)
+>>>>>>> citrp/master
emagged = 1
if("Cancel")
return
diff --git a/code/game/machinery/computer/supply.dm b/code/game/machinery/computer/supply.dm
index e6ecd86ae4b..6231a816009 100644
--- a/code/game/machinery/computer/supply.dm
+++ b/code/game/machinery/computer/supply.dm
@@ -59,7 +59,7 @@
else
authorization = SUP_SEND_SHUTTLE | SUP_ACCEPT_ORDERS
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ var/datum/shuttle/ferry/supply/shuttle = SSsupply.shuttle
if(shuttle)
if(shuttle.has_arrive_time())
shuttle_status["location"] = "In transit"
@@ -112,8 +112,8 @@
else
shuttle["mode"] = SUP_SHUTTLE_ERROR
- for(var/pack_name in supply_controller.supply_pack)
- var/datum/supply_pack/P = supply_controller.supply_pack[pack_name]
+ for(var/pack_name in SSsupply.supply_pack)
+ var/datum/supply_pack/P = SSsupply.supply_pack[pack_name]
if(P.group == active_category)
var/list/pack = list(
"name" = P.name,
@@ -134,7 +134,7 @@
// Status determines which menus the entry will display in
// Organized in field-entry list for iterative display
// List is nested so both the list of orders, and the list of elements in each order, can be iterated over
- for(var/datum/supply_order/S in supply_controller.order_history)
+ for(var/datum/supply_order/S in SSsupply.order_history)
orders[++orders.len] = list(
"ref" = "\ref[S]",
"status" = S.status,
@@ -151,7 +151,7 @@
)
// Compile exported crates
- for(var/datum/exported_crate/E in supply_controller.exported_crates)
+ for(var/datum/exported_crate/E in SSsupply.exported_crates)
receipts[++receipts.len] = list(
"ref" = "\ref[E]",
"contents" = E.contents,
@@ -167,7 +167,7 @@
data["shuttle_auth"] = (authorization & SUP_SEND_SHUTTLE) // Whether this ui is permitted to control the supply shuttle
data["order_auth"] = (authorization & SUP_ACCEPT_ORDERS) // Whether this ui is permitted to accept/deny requested orders
data["shuttle"] = shuttle_status
- data["supply_points"] = supply_controller.points
+ data["supply_points"] = SSsupply.points
data["categories"] = all_supply_groups
data["active_category"] = active_category
data["supply_packs"] = pack_list
@@ -192,10 +192,15 @@
/obj/machinery/computer/supplycomp/Topic(href, href_list)
+<<<<<<< HEAD
if(!supply_controller)
log_world("## ERROR: The supply_controller datum is missing.")
+=======
+ if(!SSsupply)
+ world.log << "## ERROR: The SSsupply datum is missing."
+>>>>>>> citrp/master
return
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ var/datum/shuttle/ferry/supply/shuttle = SSsupply.shuttle
if (!shuttle)
log_world("## ERROR: The supply shuttle datum is missing.")
return
@@ -243,7 +248,7 @@
if(!reason)
return
- supply_controller.create_order(S, user, reason)
+ SSsupply.create_order(S, user, reason)
var/idname = "*None Provided*"
var/idrank = "*None Provided*"
@@ -258,7 +263,7 @@
var/obj/item/paper/reqform = new /obj/item/paper(loc)
reqform.name = "Requisition Form - [S.name]"
reqform.info += "[station_name()] Supply Requisition Form
"
- reqform.info += "INDEX: #[supply_controller.ordernum]
"
+ reqform.info += "INDEX: #[SSsupply.ordernum]
"
reqform.info += "REQUESTED BY: [idname]
"
reqform.info += "RANK: [idrank]
"
reqform.info += "REASON: [reason]
"
@@ -318,20 +323,20 @@
O.approved_at = new_val
if(href_list["approve"])
- supply_controller.approve_order(O, user)
+ SSsupply.approve_order(O, user)
if(href_list["deny"])
- supply_controller.deny_order(O, user)
+ SSsupply.deny_order(O, user)
if(href_list["delete"])
- supply_controller.delete_order(O, user)
+ SSsupply.delete_order(O, user)
if(href_list["clear_all_requests"])
var/mob/user = locate(href_list["user"])
if(!istype(user)) // Invalid ref
return
- supply_controller.deny_all_pending(user)
+ SSsupply.deny_all_pending(user)
if(href_list["export_ref"])
var/datum/exported_crate/E = locate(href_list["export_ref"])
@@ -387,10 +392,10 @@
E.value = num
else if(href_list["delete"])
- supply_controller.delete_export(E, user)
+ SSsupply.delete_export(E, user)
else if(href_list["add_item"])
- supply_controller.add_export_item(E, user)
+ SSsupply.add_export_item(E, user)
@@ -404,7 +409,7 @@
if("send_to_station")
shuttle.launch(src)
- to_chat(usr, "The supply shuttle has been called and will arrive in approximately [round(supply_controller.movetime/600,1)] minutes.")
+ to_chat(usr, "The supply shuttle has been called and will arrive in approximately [round(SSsupply.movetime/600,1)] minutes.")
if("cancel_shuttle")
shuttle.cancel_launch(src)
diff --git a/code/game/machinery/computer/timeclock_vr.dm b/code/game/machinery/computer/timeclock_vr.dm
index 32aa2da2698..9a1ba16fe75 100644
--- a/code/game/machinery/computer/timeclock_vr.dm
+++ b/code/game/machinery/computer/timeclock_vr.dm
@@ -81,7 +81,7 @@
if(card)
data["card"] = "[card]"
data["assignment"] = card.assignment
- var/datum/job/job = job_master.GetJob(card.rank)
+ var/datum/job/job = SSjobs.GetJob(card.rank)
if (job)
data["job_datum"] = list(
"title" = job.title,
@@ -140,7 +140,7 @@
/obj/machinery/computer/timeclock/proc/getOpenOnDutyJobs(var/mob/user, var/department)
var/list/available_jobs = list()
- for(var/datum/job/job in job_master.occupations)
+ for(var/datum/job/job in SSjobs.occupations)
if(job && job.is_position_available() && !job.whitelist_only && !jobban_isbanned(user,job.title) && job.player_old_enough(user.client))
if(job.department == department && !job.disallow_jobhop && job.timeoff_factor > 0)
available_jobs += job.title
@@ -151,14 +151,14 @@
/obj/machinery/computer/timeclock/proc/makeOnDuty(var/newjob)
var/datum/job/foundjob = null
- for(var/datum/job/job in job_master.occupations)
+ for(var/datum/job/job in SSjobs.occupations)
if(newjob == job.title)
foundjob = job
break
if(newjob in job.alt_titles)
foundjob = job
break
- if(!newjob in getOpenOnDutyJobs(usr, job_master.GetJob(card.rank).department))
+ if(!newjob in getOpenOnDutyJobs(usr, SSjobs.GetJob(card.rank).department))
return
if(foundjob && card)
card.access = foundjob.get_access()
@@ -177,7 +177,7 @@
/obj/machinery/computer/timeclock/proc/makeOffDuty()
var/datum/job/foundjob = null
- for(var/datum/job/job in job_master.occupations)
+ for(var/datum/job/job in SSjobs.occupations)
if(card.rank == job.title)
foundjob = job
break
@@ -187,7 +187,7 @@
if(real_dept && real_dept == "Command")
real_dept = "Civilian"
var/datum/job/ptojob = null
- for(var/datum/job/job in job_master.occupations)
+ for(var/datum/job/job in SSjobs.occupations)
if(job.department == real_dept && job.timeoff_factor < 0)
ptojob = job
break
diff --git a/code/game/machinery/computer3/computers/communications.dm b/code/game/machinery/computer3/computers/communications.dm
index bcc0abc7591..72d47dcabc8 100644
--- a/code/game/machinery/computer3/computers/communications.dm
+++ b/code/game/machinery/computer3/computers/communications.dm
@@ -139,7 +139,7 @@
return
if(authenticated)
call_shuttle_proc(usr)
- if(emergency_shuttle.online())
+ if(SSemergencyshuttle.online())
post_status("shuttle")
state = STATE_DEFAULT
@@ -296,8 +296,8 @@
/datum/file/program/communications/proc/main_menu()
var/dat = ""
if (computer.radio.subspace)
- if(emergency_shuttle.online() && emergency_shuttle.location())
- var/timeleft = emergency_shuttle.estimate_arrival_time()
+ if(SSemergencyshuttle.online() && SSemergencyshuttle.location())
+ var/timeleft = SSemergencyshuttle.estimate_arrival_time()
dat += "Emergency shuttle\n
\nETA: [timeleft / 60 % 60]:[add_zero(num2text(timeleft % 60), 2)]
"
refresh = 1
else
@@ -313,8 +313,8 @@
dat += "
\[ Restore Backup Routing Data \]"
dat += "
\[ Change alert level \]"
- if(emergency_shuttle.location())
- if (emergency_shuttle.online())
+ if(SSemergencyshuttle.location())
+ if (SSemergencyshuttle.online())
dat += "
\[ Cancel Shuttle Call \]"
else
dat += "
\[ Call Emergency Shuttle \]"
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 0eeab4fe469..68267613d53 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -86,7 +86,7 @@
var/dat
- if(!(ticker))
+ if(!(SSticker))
return
dat += "
[storage_name]
"
@@ -474,15 +474,15 @@
//Handle job slot/tater cleanup.
var/job = to_despawn.mind.assigned_role
- job_master.FreeRole(job)
+ SSjobs.FreeRole(job)
if(to_despawn.mind.objectives.len)
qdel(to_despawn.mind.objectives)
to_despawn.mind.special_role = null
//else
- //if(ticker.mode.name == "AutoTraitor")
- //var/datum/game_mode/traitor/autotraitor/current_mode = ticker.mode
+ //if(SSticker.mode.name == "AutoTraitor")
+ //var/datum/game_mode/traitor/autotraitor/current_mode = SSticker.mode
//current_mode.possible_traitors.Remove(to_despawn)
// Delete them from datacore.
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index e5f9d8fc112..654be735aaf 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -918,7 +918,7 @@ About the new airlock wires panel:
if(src.isElectrified())
if(src.shock(user, 75))
return
- if(istype(C, /obj/item/taperoll))
+ if(istype(C, /obj/item/barrier_tape_roll))
return
src.add_fingerprint(user)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index dc92437b23c..1b57686e1f0 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -89,12 +89,12 @@
close_door_at = 0
/obj/machinery/door/proc/can_open()
- if(!density || operating || !ticker)
+ if(!density || operating || !SSticker)
return 0
return 1
/obj/machinery/door/proc/can_close()
- if(density || operating || !ticker)
+ if(density || operating || !SSticker)
return 0
return 1
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 00aba67a1bf..db05bc1bdac 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -243,7 +243,7 @@
/obj/machinery/door/firedoor/attackby(obj/item/C as obj, mob/user as mob)
add_fingerprint(user)
- if(istype(C, /obj/item/taperoll))
+ if(istype(C, /obj/item/barrier_tape_roll))
return //Don't open the door if we're putting tape on it to tell people 'don't open the door'.
if(operating)
return//Already doing something.
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index f4e20c0e05d..f87e284e5d3 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -79,7 +79,7 @@
open()
addtimer(CALLBACK(src, .proc/close), 50)
return
- if (!( ticker ))
+ if (!( SSticker ))
return
if (src.operating)
return
@@ -112,7 +112,7 @@
/obj/machinery/door/window/open()
if (operating == 1 || !density) //doors can still open when emag-disabled
return 0
- if (!ticker)
+ if (!SSticker)
return 0
if (!operating) //in case of emag
operating = 1
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index 3d93b9bee73..ad98ac02352 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -372,8 +372,8 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob)
if(!lighthack)
icon_state = "nuclearbomb3"
playsound(src,'sound/machines/Alarm.ogg',100,0,5)
- if(ticker && ticker.mode)
- ticker.mode.explosion_in_progress = 1
+ if(SSticker && SSticker.mode)
+ SSticker.mode.explosion_in_progress = 1
sleep(100)
var/off_station = 0
@@ -384,22 +384,36 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob)
else
off_station = 2
- if(ticker)
- if(ticker.mode && ticker.mode.name == "Mercenary")
+ if(SSticker)
+ if(SSticker.mode && SSticker.mode.name == "Mercenary")
var/obj/machinery/computer/shuttle_control/multi/syndicate/syndie_location = locate(/obj/machinery/computer/shuttle_control/multi/syndicate)
if(syndie_location)
+<<<<<<< HEAD
ticker.mode:syndies_didnt_escape = (syndie_location.z > 1 ? 0 : 1) //muskets will make me change this, but it will do for now
ticker.mode:nuke_off_station = off_station
ticker.station_explosion_cinematic(off_station,null)
if(ticker.mode)
ticker.mode.explosion_in_progress = 0
to_chat(world, "The station was destoyed by the nuclear blast!")
+=======
+ SSticker.mode:syndies_didnt_escape = (syndie_location.z > 1 ? 0 : 1) //muskets will make me change this, but it will do for now
+ SSticker.mode:nuke_off_station = off_station
+ SSticker.station_explosion_cinematic(off_station,null)
+ if(SSticker.mode)
+ SSticker.mode.explosion_in_progress = 0
+ world << "The station was destoyed by the nuclear blast!"
+>>>>>>> citrp/master
- ticker.mode.station_was_nuked = (off_station<2) //offstation==1 is a draw. the station becomes irradiated and needs to be evacuated.
+ SSticker.mode.station_was_nuked = (off_station<2) //offstation==1 is a draw. the station becomes irradiated and needs to be evacuated.
//kinda shit but I couldn't get permission to do what I wanted to do.
+<<<<<<< HEAD
if(!ticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
to_chat(world, "Resetting in 30 seconds!")
+=======
+ if(!SSticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
+ world << "Resetting in 30 seconds!"
+>>>>>>> citrp/master
feedback_set_details("end_error","nuke - unhandled ending")
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index f3bd3e3fee7..6933c774f7a 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -94,20 +94,20 @@
if(STATUS_DISPLAY_BLANK) //blank
return 1
if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer
- if(!emergency_shuttle)
+ if(!SSemergencyshuttle)
message1 = "-ETA-"
message2 = "Never" // You're here forever.
return 1
- if(emergency_shuttle.waiting_to_leave())
+ if(SSemergencyshuttle.waiting_to_leave())
message1 = "-ETD-"
- if(emergency_shuttle.shuttle.is_launching())
+ if(SSemergencyshuttle.shuttle.is_launching())
message2 = "Launch"
else
message2 = get_shuttle_timer_departure()
if(length(message2) > CHARS_PER_LINE)
message2 = "Error"
update_display(message1, message2)
- else if(emergency_shuttle.has_eta())
+ else if(SSemergencyshuttle.has_eta())
message1 = "-ETA-"
message2 = get_shuttle_timer_arrival()
if(length(message2) > CHARS_PER_LINE)
@@ -194,23 +194,23 @@
maptext = new_text
/obj/machinery/status_display/proc/get_shuttle_timer_arrival()
- if(!emergency_shuttle)
+ if(!SSemergencyshuttle)
return "Error"
- var/timeleft = emergency_shuttle.estimate_arrival_time()
+ var/timeleft = SSemergencyshuttle.estimate_arrival_time()
if(timeleft < 0)
return ""
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
/obj/machinery/status_display/proc/get_shuttle_timer_departure()
- if(!emergency_shuttle)
+ if(!SSemergencyshuttle)
return "Error"
- var/timeleft = emergency_shuttle.estimate_launch_time()
+ var/timeleft = SSemergencyshuttle.estimate_launch_time()
if(timeleft < 0)
return ""
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
/obj/machinery/status_display/proc/get_supply_shuttle_timer()
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ var/datum/shuttle/ferry/supply/shuttle = SSsupply.shuttle
if(!shuttle)
return "Error"
diff --git a/code/game/machinery/supply_display.dm b/code/game/machinery/supply_display.dm
index 211918c5e6e..5c111c129f8 100644
--- a/code/game/machinery/supply_display.dm
+++ b/code/game/machinery/supply_display.dm
@@ -6,7 +6,7 @@
message1 = "CARGO"
message2 = ""
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ var/datum/shuttle/ferry/supply/shuttle = SSsupply.shuttle
if(!shuttle)
message2 = "Error"
else if(shuttle.has_arrive_time())
diff --git a/code/game/machinery/vending_vr.dm b/code/game/machinery/vending_vr.dm
index 8375536b5cd..5d8865a5750 100644
--- a/code/game/machinery/vending_vr.dm
+++ b/code/game/machinery/vending_vr.dm
@@ -5,7 +5,7 @@
/obj/machinery/vending/security/New()
products += list(/obj/item/gun/energy/taser = 8,/obj/item/gun/energy/stunrevolver = 4,
- /obj/item/reagent_containers/spray/pepper = 6,/obj/item/taperoll/police = 6,
+ /obj/item/reagent_containers/spray/pepper = 6,/obj/item/barrier_tape_roll/police = 6,
/obj/item/clothing/glasses/omnihud/sec = 6)
..()
@@ -886,7 +886,7 @@
/obj/item/communicator/watch = 10,
/obj/item/radio = 10,
/obj/item/camera = 5,
- /obj/item/taperecorder = 5,
+ /obj/item/tape_recorder = 5,
/obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 5,
/obj/item/pda = 10,
/obj/item/radio/headset = 10,
@@ -906,7 +906,7 @@
/obj/item/communicator/watch = 100,
/obj/item/radio = 100,
/obj/item/camera = 100,
- /obj/item/taperecorder = 100,
+ /obj/item/tape_recorder = 100,
/obj/item/modular_computer/tablet/preset/custom_loadout/cheap = 1000,
/obj/item/pda = 50,
/obj/item/radio/headset = 50,
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index af965ea221e..02568f5c8fc 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -1372,7 +1372,7 @@
diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index ce006c58199..2259aa61ce8 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -112,25 +112,29 @@
//Wrapper procs that handle sanity and user feedback
/atom/movable/proc/user_buckle_mob(mob/living/M, mob/user, var/forced = FALSE, var/silent = FALSE)
+<<<<<<< HEAD
if(!ticker)
to_chat(user, "You can't buckle anyone in before the game starts.")
+=======
+ if(!SSticker)
+ user << "You can't buckle anyone in before the game starts."
+>>>>>>> citrp/master
return FALSE // Is this really needed?
if(!user.Adjacent(M) || user.restrained() || user.stat || istype(user, /mob/living/silicon/pai))
return FALSE
if(M in buckled_mobs)
to_chat(user, "\The [M] is already buckled to \the [src].")
return FALSE
+ //can't buckle unless you share locs so try to move M to the obj.
+ if(M.loc != src.loc)
+ if(M.Adjacent(src) && user.Adjacent(src))
+ M.forceMove(get_turf(src))
if(!can_buckle_check(M, forced))
return FALSE
add_fingerprint(user)
// unbuckle_mob()
- //can't buckle unless you share locs so try to move M to the obj.
- if(M.loc != src.loc)
- if(M.Adjacent(src) && user.Adjacent(src))
- M.forceMove(get_turf(src))
- // step_towards(M, src)
. = buckle_mob(M, forced)
if(.)
diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm
index d7e119cb594..aebbd17f29e 100644
--- a/code/game/objects/items/devices/PDA/cart.dm
+++ b/code/game/objects/items/devices/PDA/cart.dm
@@ -425,14 +425,14 @@ var/list/civilian_cartridges = list(
if(mode==47)
var/supplyData[0]
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ var/datum/shuttle/ferry/supply/shuttle = SSsupply.shuttle
if (shuttle)
supplyData["shuttle_moving"] = shuttle.has_arrive_time()
supplyData["shuttle_eta"] = shuttle.eta_minutes()
supplyData["shuttle_loc"] = shuttle.at_station() ? "Station" : "Dock"
var/supplyOrderCount = 0
var/supplyOrderData[0]
- for(var/S in supply_controller.shoppinglist)
+ for(var/S in SSsupply.shoppinglist)
var/datum/supply_order/SO = S
supplyOrderData[++supplyOrderData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "ApprovedBy" = SO.ordered_by, "Comment" = html_encode(SO.comment))
@@ -444,7 +444,7 @@ var/list/civilian_cartridges = list(
var/requestCount = 0
var/requestData[0]
- for(var/S in supply_controller.order_history)
+ for(var/S in SSsupply.order_history)
var/datum/supply_order/SO = S
if(SO.status != SUP_ORDER_REQUESTED)
continue
diff --git a/code/game/objects/items/devices/communicator/cartridge.dm b/code/game/objects/items/devices/communicator/cartridge.dm
index e207a9ec538..80a6018a9f4 100644
--- a/code/game/objects/items/devices/communicator/cartridge.dm
+++ b/code/game/objects/items/devices/communicator/cartridge.dm
@@ -140,7 +140,7 @@
if(!reason)
return
- supply_controller.create_order(S, user, reason)
+ SSsupply.create_order(S, user, reason)
internal_data["supply_reqtime"] = (world.time + 5) % 1e5
if(href_list["order_ref"])
@@ -189,20 +189,20 @@
O.approved_at = new_val
if(href_list["approve"])
- supply_controller.approve_order(O, user)
+ SSsupply.approve_order(O, user)
if(href_list["deny"])
- supply_controller.deny_order(O, user)
+ SSsupply.deny_order(O, user)
if(href_list["delete"])
- supply_controller.delete_order(O, user)
+ SSsupply.delete_order(O, user)
if(href_list["clear_all_requests"])
var/mob/user = locate(href_list["user"])
if(!istype(user)) // Invalid ref
return
- supply_controller.deny_all_pending(user)
+ SSsupply.deny_all_pending(user)
if(href_list["export_ref"])
var/datum/exported_crate/E = locate(href_list["export_ref"])
@@ -258,29 +258,29 @@
E.value = num
else if(href_list["delete"])
- supply_controller.delete_export(E, user)
+ SSsupply.delete_export(E, user)
else if(href_list["add_item"])
- supply_controller.add_export_item(E, user)
+ SSsupply.add_export_item(E, user)
- if(supply_controller && supply_controller.shuttle)
+ if(SSsupply && SSsupply.shuttle)
switch(href_list["send_shuttle"])
if("send_away")
- if(supply_controller.shuttle.forbidden_atoms_check())
+ if(SSsupply.shuttle.forbidden_atoms_check())
to_chat(usr, "For safety reasons the automated supply shuttle cannot transport live organisms, classified nuclear weaponry or homing beacons.")
else
- supply_controller.shuttle.launch(src)
+ SSsupply.shuttle.launch(src)
to_chat(usr, "Initiating launch sequence.")
if("send_to_station")
- supply_controller.shuttle.launch(src)
- to_chat(usr, "The supply shuttle has been called and will arrive in approximately [round(supply_controller.movetime/600,1)] minutes.")
+ SSsupply.shuttle.launch(src)
+ to_chat(usr, "The supply shuttle has been called and will arrive in approximately [round(SSsupply.movetime/600,1)] minutes.")
if("cancel_shuttle")
- supply_controller.shuttle.cancel_launch(src)
+ SSsupply.shuttle.cancel_launch(src)
if("force_shuttle")
- supply_controller.shuttle.force_launch(src)
+ SSsupply.shuttle.force_launch(src)
// Status display
switch(href_list["stat_display"])
diff --git a/code/game/objects/items/devices/communicator/helper.dm b/code/game/objects/items/devices/communicator/helper.dm
index e65e07bde46..538db83113a 100644
--- a/code/game/objects/items/devices/communicator/helper.dm
+++ b/code/game/objects/items/devices/communicator/helper.dm
@@ -393,7 +393,7 @@
// code\game\machinery\computer\supply.dm, starting at line 55
/obj/item/commcard/proc/get_supply_shuttle_status()
var/shuttle_status[0]
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ var/datum/shuttle/ferry/supply/shuttle = SSsupply.shuttle
if(shuttle)
if(shuttle.has_arrive_time())
shuttle_status["location"] = "In transit"
@@ -453,7 +453,7 @@
// code\game\machinery\computer\supply.dm, starting at line 130
/obj/item/commcard/proc/get_supply_orders()
var/orders[0]
- for(var/datum/supply_order/S in supply_controller.order_history)
+ for(var/datum/supply_order/S in SSsupply.order_history)
orders[++orders.len] = list(
"ref" = "\ref[S]",
"status" = S.status,
@@ -476,7 +476,7 @@
// code\game\machinery\computer\supply.dm, starting at line 147
/obj/item/commcard/proc/get_supply_receipts()
var/receipts[0]
- for(var/datum/exported_crate/E in supply_controller.exported_crates)
+ for(var/datum/exported_crate/E in SSsupply.exported_crates)
receipts[++receipts.len] = list(
"ref" = "\ref[E]",
"contents" = E.contents,
@@ -494,8 +494,8 @@
// code\game\machinery\computer\supply.dm, starting at line 147
/obj/item/commcard/proc/get_supply_pack_list()
var/supply_packs[0]
- for(var/pack_name in supply_controller.supply_pack)
- var/datum/supply_pack/P = supply_controller.supply_pack[pack_name]
+ for(var/pack_name in SSsupply.supply_pack)
+ var/datum/supply_pack/P = SSsupply.supply_pack[pack_name]
if(P.group == internal_data["supply_category"])
var/list/pack = list(
"name" = P.name,
@@ -520,7 +520,7 @@
return list(
"shuttle_auth" = (internal_data["supply_controls"] & SUP_SEND_SHUTTLE),
"order_auth" = (internal_data["supply_controls"] & SUP_ACCEPT_ORDERS),
- "supply_points" = supply_controller.points,
+ "supply_points" = SSsupply.points,
"supply_categories" = all_supply_groups
)
diff --git a/code/game/objects/items/devices/communicator/messaging.dm b/code/game/objects/items/devices/communicator/messaging.dm
index 3389813e586..55f40c336fd 100644
--- a/code/game/objects/items/devices/communicator/messaging.dm
+++ b/code/game/objects/items/devices/communicator/messaging.dm
@@ -95,7 +95,7 @@
set name = "Text Communicator"
set desc = "If there is a communicator available, send a text message to it."
- if(ticker.current_state < GAME_STATE_PLAYING)
+ if(SSticker.current_state < GAME_STATE_PLAYING)
to_chat(src, "The game hasn't started yet!")
return
diff --git a/code/game/objects/items/devices/communicator/phone.dm b/code/game/objects/items/devices/communicator/phone.dm
index 1bf7c555402..f48bef99c85 100644
--- a/code/game/objects/items/devices/communicator/phone.dm
+++ b/code/game/objects/items/devices/communicator/phone.dm
@@ -283,7 +283,7 @@
set name = "Call Communicator"
set desc = "If there is a communicator available, send a request to speak through it. This will reset your respawn timer, if someone picks up."
- if(ticker.current_state < GAME_STATE_PLAYING)
+ if(SSticker.current_state < GAME_STATE_PLAYING)
to_chat(src, "The game hasn't started yet!")
return
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index b953ab45fa1..52e040363e6 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -47,7 +47,7 @@
//..()
if(usr.stat || usr.restrained())
return
- if(((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf)))))
+ if(((istype(usr, /mob/living/carbon/human) && ((!( SSticker ) || (SSticker && SSticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf)))))
usr.set_machine(src)
if(href_list["freq"])
var/new_frequency = sanitize_frequency(frequency + text2num(href_list["freq"]))
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index a7e568b5f21..2ed8f0b22a6 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -53,7 +53,7 @@ HALOGEN COUNTER - Radcount on mobs
dat += "Body Temperature: ???"
user.show_message("[dat]", 1)
return
- if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey")
+ if (!(ishuman(user) || SSticker) && SSticker.mode.name != "monkey")
to_chat(user, "You don't have the dexterity to do this!")
return
@@ -351,7 +351,7 @@ HALOGEN COUNTER - Radcount on mobs
/obj/item/analyzer/attack_self(mob/user as mob)
if (user.stat)
return
- if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey")
+ if (!(ishuman(user) || SSticker) && SSticker.mode.name != "monkey")
to_chat(usr, "You don't have the dexterity to do this!")
return
@@ -397,7 +397,7 @@ HALOGEN COUNTER - Radcount on mobs
/obj/item/mass_spectrometer/attack_self(mob/user as mob)
if (user.stat)
return
- if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey")
+ if (!(ishuman(user) || SSticker) && SSticker.mode.name != "monkey")
to_chat(user, "You don't have the dexterity to do this!")
return
if(reagents.total_volume)
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index e2d2bdf7ea2..e2cc207b3f1 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -1,4 +1,4 @@
-/obj/item/taperecorder
+/obj/item/tape_recorder
name = "universal recorder"
desc = "A device that can record to cassette tapes, and play them. It automatically translates the content in playback."
icon_state = "taperecorder_empty"
@@ -12,24 +12,24 @@
var/recording = 0.0
var/playing = 0.0
var/playsleepseconds = 0.0
- var/obj/item/tape/mytape = /obj/item/tape/random
+ var/obj/item/cassette_tape/mytape = /obj/item/cassette_tape/random
var/canprint = 1
slot_flags = SLOT_BELT
throwforce = 2
throw_speed = 4
throw_range = 20
-/obj/item/taperecorder/Initialize(mapload)
+/obj/item/tape_recorder/Initialize(mapload)
. = ..()
if(ispath(mytape))
mytape = new mytape(src)
update_icon()
listening_objects += src
-/obj/item/taperecorder/empty
+/obj/item/tape_recorder/empty
mytape = null
-/obj/item/taperecorder/Destroy()
+/obj/item/tape_recorder/Destroy()
listening_objects -= src
if(mytape)
qdel(mytape)
@@ -37,8 +37,8 @@
return ..()
-/obj/item/taperecorder/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/tape))
+/obj/item/tape_recorder/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/cassette_tape))
if(mytape)
to_chat(user, "There's already a tape inside.")
return
@@ -52,13 +52,13 @@
..()
-/obj/item/taperecorder/fire_act()
+/obj/item/tape_recorder/fire_act()
if(mytape)
mytape.ruin() //Fires destroy the tape
return ..()
-/obj/item/taperecorder/attack_hand(mob/user)
+/obj/item/tape_recorder/attack_hand(mob/user)
if(user.get_inactive_hand() == src)
if(mytape)
eject()
@@ -66,7 +66,7 @@
..()
-/obj/item/taperecorder/verb/eject()
+/obj/item/tape_recorder/verb/eject()
set name = "Eject Tape"
set category = "Object"
@@ -87,7 +87,7 @@
update_icon()
-/obj/item/taperecorder/hear_talk(mob/living/M as mob, msg, var/verb="says", datum/language/speaking=null)
+/obj/item/tape_recorder/hear_talk(mob/living/M as mob, msg, var/verb="says", datum/language/speaking=null)
if(mytape && recording)
if(speaking)
@@ -98,14 +98,14 @@
mytape.record_speech("[M.name] [verb], \"[msg]\"")
-/obj/item/taperecorder/see_emote(mob/M as mob, text, var/emote_type)
+/obj/item/tape_recorder/see_emote(mob/M as mob, text, var/emote_type)
if(emote_type != 2) //only hearable emotes
return
if(mytape && recording)
mytape.record_speech("[strip_html_properly(text)]")
-/obj/item/taperecorder/show_message(msg, type, alt, alt_type)
+/obj/item/tape_recorder/show_message(msg, type, alt, alt_type)
var/recordedtext
if (msg && type == 2) //must be hearable
recordedtext = msg
@@ -116,7 +116,7 @@
if(mytape && recording)
mytape.record_noise("[strip_html_properly(recordedtext)]")
-/obj/item/taperecorder/emag_act(var/remaining_charges, var/mob/user)
+/obj/item/tape_recorder/emag_act(var/remaining_charges, var/mob/user)
if(emagged == 0)
emagged = 1
recording = 0
@@ -126,7 +126,7 @@
else
to_chat(user, "It is already emagged!")
-/obj/item/taperecorder/proc/explode()
+/obj/item/tape_recorder/proc/explode()
var/turf/T = get_turf(loc)
if(ismob(loc))
var/mob/M = loc
@@ -137,7 +137,7 @@
qdel(src)
return
-/obj/item/taperecorder/verb/record()
+/obj/item/tape_recorder/verb/record()
set name = "Start Recording"
set category = "Object"
@@ -182,7 +182,7 @@
to_chat(usr, "The tape is full.")
-/obj/item/taperecorder/proc/stop_recording()
+/obj/item/tape_recorder/proc/stop_recording()
//Sanity checks skipped, should not be called unless actually recording
recording = 0
update_icon()
@@ -192,7 +192,7 @@
to_chat(M, "Recording stopped.")
-/obj/item/taperecorder/verb/stop()
+/obj/item/tape_recorder/verb/stop()
set name = "Stop"
set category = "Object"
@@ -210,7 +210,7 @@
to_chat(usr, "Stop what?")
-/obj/item/taperecorder/verb/wipe_tape()
+/obj/item/tape_recorder/verb/wipe_tape()
set name = "Wipe Tape"
set category = "Object"
@@ -233,7 +233,7 @@
return
-/obj/item/taperecorder/verb/playback_memory()
+/obj/item/tape_recorder/verb/playback_memory()
set name = "Playback Tape"
set category = "Object"
@@ -305,7 +305,7 @@
explode()
-/obj/item/taperecorder/verb/print_transcript()
+/obj/item/tape_recorder/verb/print_transcript()
set name = "Print Transcript"
set category = "Object"
@@ -342,14 +342,14 @@
canprint = 1
-/obj/item/taperecorder/attack_self(mob/user)
+/obj/item/tape_recorder/attack_self(mob/user)
if(recording || playing)
stop()
else
record()
-/obj/item/taperecorder/update_icon()
+/obj/item/tape_recorder/update_icon()
if(!mytape)
icon_state = "taperecorder_empty"
else if(recording)
@@ -361,7 +361,7 @@
-/obj/item/tape
+/obj/item/cassette_tape
name = "tape"
desc = "A magnetic tape that can hold up to ten minutes of content."
icon = 'icons/obj/device.dmi'
@@ -378,43 +378,43 @@
var/ruined = 0
-/obj/item/tape/update_icon()
+/obj/item/cassette_tape/update_icon()
overlays.Cut()
if(ruined)
overlays += "ribbonoverlay"
-/obj/item/tape/fire_act()
+/obj/item/cassette_tape/fire_act()
ruin()
-/obj/item/tape/attack_self(mob/user)
+/obj/item/cassette_tape/attack_self(mob/user)
if(!ruined)
to_chat(user, "You pull out all the tape!")
ruin()
-/obj/item/tape/proc/ruin()
+/obj/item/cassette_tape/proc/ruin()
ruined = 1
update_icon()
-/obj/item/tape/proc/fix()
+/obj/item/cassette_tape/proc/fix()
ruined = 0
update_icon()
-/obj/item/tape/proc/record_speech(text)
+/obj/item/cassette_tape/proc/record_speech(text)
timestamp += used_capacity
storedinfo += "\[[time2text(used_capacity*10,"mm:ss")]\] [text]"
//shows up on the printed transcript as (Unrecognized sound)
-/obj/item/tape/proc/record_noise(text)
+/obj/item/cassette_tape/proc/record_noise(text)
timestamp += used_capacity
storedinfo += "*\[[time2text(used_capacity*10,"mm:ss")]\] [text]"
-/obj/item/tape/attackby(obj/item/I, mob/user, params)
+/obj/item/cassette_tape/attackby(obj/item/I, mob/user, params)
if(ruined && I.is_screwdriver())
to_chat(user, "You start winding the tape back in...")
playsound(src, I.usesound, 50, 1)
@@ -438,5 +438,5 @@
//Random colour tapes
-/obj/item/tape/random/New()
+/obj/item/cassette_tape/random/New()
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
\ No newline at end of file
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index bb9cfa6cea3..6e9f975ef2c 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -59,7 +59,7 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \
user.put_in_hands(new_item)
return
- if (istype(W, /obj/item/tape_roll))
+ if (istype(W, /obj/item/duct_tape_roll))
var/obj/item/stack/medical/splint/ghetto/new_splint = new(get_turf(user))
new_splint.add_fingerprint(user)
diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/barrier_tape.dm
similarity index 82%
rename from code/game/objects/items/weapons/policetape.dm
rename to code/game/objects/items/weapons/barrier_tape.dm
index 8fffeb9c628..35e52d8e49d 100644
--- a/code/game/objects/items/weapons/policetape.dm
+++ b/code/game/objects/items/weapons/barrier_tape.dm
@@ -1,5 +1,5 @@
//Define all tape types in policetape.dm
-/obj/item/taperoll
+/obj/item/barrier_tape_roll
name = "tape roll"
icon = 'icons/policetape.dmi'
icon_state = "tape"
@@ -9,12 +9,12 @@
var/turf/start
var/turf/end
- var/tape_type = /obj/item/tape
+ var/tape_type = /obj/item/barrier_tape_segment
var/icon_base = "tape"
var/apply_tape = FALSE
-/obj/item/taperoll/Initialize()
+/obj/item/barrier_tape_roll/Initialize()
. = ..()
if(apply_tape)
var/turf/T = get_turf(src)
@@ -29,7 +29,7 @@
var/list/image/hazard_overlays
var/list/tape_roll_applications = list()
-/obj/item/tape
+/obj/item/barrier_tape_segment
name = "tape"
icon = 'icons/policetape.dmi'
anchored = 1
@@ -39,7 +39,7 @@ var/list/tape_roll_applications = list()
var/tape_dir = 0
var/icon_base = "tape"
-/obj/item/tape/update_icon()
+/obj/item/barrier_tape_segment/update_icon()
//Possible directional bitflags: 0 (AIRLOCK), 1 (NORTH), 2 (SOUTH), 4 (EAST), 8 (WEST), 3 (VERTICAL), 12 (HORIZONTAL)
switch (tape_dir)
if(0) // AIRLOCK
@@ -52,7 +52,7 @@ var/list/tape_roll_applications = list()
icon_state = "[icon_base]_dir_[crumpled]"
dir = tape_dir
-/obj/item/tape/New()
+/obj/item/barrier_tape_segment/New()
..()
if(!hazard_overlays)
hazard_overlays = list()
@@ -62,58 +62,58 @@ var/list/tape_roll_applications = list()
hazard_overlays["[WEST]"] = new/image('icons/effects/warning_stripes.dmi', icon_state = "W")
update_icon()
-/obj/item/taperoll/medical
+/obj/item/barrier_tape_roll/medical
name = "medical tape"
desc = "A roll of medical tape used to block off patients from the public."
- tape_type = /obj/item/tape/medical
+ tape_type = /obj/item/barrier_tape_segment/medical
color = COLOR_WHITE
-/obj/item/tape/medical
+/obj/item/barrier_tape_segment/medical
name = "medical tape"
desc = "A length of medical tape. Do not cross."
req_access = list(access_medical)
color = COLOR_WHITE
-/obj/item/taperoll/police
+/obj/item/barrier_tape_roll/police
name = "police tape"
desc = "A roll of police tape used to block off crime scenes from the public."
- tape_type = /obj/item/tape/police
+ tape_type = /obj/item/barrier_tape_segment/police
color = COLOR_RED_LIGHT
-/obj/item/tape/police
+/obj/item/barrier_tape_segment/police
name = "police tape"
desc = "A length of police tape. Do not cross."
req_access = list(access_security)
color = COLOR_RED_LIGHT
-/obj/item/taperoll/engineering
+/obj/item/barrier_tape_roll/engineering
name = "engineering tape"
desc = "A roll of engineering tape used to block off working areas from the public."
- tape_type = /obj/item/tape/engineering
+ tape_type = /obj/item/barrier_tape_segment/engineering
color = COLOR_YELLOW
-/obj/item/taperoll/engineering/applied
+/obj/item/barrier_tape_roll/engineering/applied
apply_tape = TRUE
-/obj/item/tape/engineering
+/obj/item/barrier_tape_segment/engineering
name = "engineering tape"
desc = "A length of engineering tape. Better not cross it."
req_one_access = list(access_engine,access_atmospherics)
color = COLOR_YELLOW
-/obj/item/taperoll/atmos
+/obj/item/barrier_tape_roll/atmos
name = "atmospherics tape"
desc = "A roll of atmospherics tape used to block off working areas from the public."
- tape_type = /obj/item/tape/atmos
+ tape_type = /obj/item/barrier_tape_segment/atmos
color = COLOR_DEEP_SKY_BLUE
-/obj/item/tape/atmos
+/obj/item/barrier_tape_segment/atmos
name = "atmospherics tape"
desc = "A length of atmospherics tape. Better not cross it."
req_one_access = list(access_engine,access_atmospherics)
color = COLOR_DEEP_SKY_BLUE
-/obj/item/taperoll/update_icon()
+/obj/item/barrier_tape_roll/update_icon()
overlays.Cut()
var/image/overlay = image(icon = src.icon)
overlay.appearance_flags = RESET_COLOR
@@ -125,19 +125,19 @@ var/list/tape_roll_applications = list()
overlays += overlay
-/obj/item/taperoll/dropped(mob/user)
+/obj/item/barrier_tape_roll/dropped(mob/user)
update_icon()
return ..()
-/obj/item/taperoll/pickup(mob/user)
+/obj/item/barrier_tape_roll/pickup(mob/user)
update_icon()
return ..()
-/obj/item/taperoll/attack_hand()
+/obj/item/barrier_tape_roll/attack_hand()
update_icon()
return ..()
-/obj/item/taperoll/attack_self(mob/user as mob)
+/obj/item/barrier_tape_roll/attack_self(mob/user as mob)
if(!start)
start = get_turf(src)
to_chat(user, "You place the first end of \the [src].")
@@ -171,13 +171,13 @@ var/list/tape_roll_applications = list()
to_chat(user, "You can't place \the [src] here.")
return
if(possible_dirs & (NORTH|SOUTH))
- var/obj/item/tape/TP = new tape_type(start)
+ var/obj/item/barrier_tape_segment/TP = new tape_type(start)
for(var/dir in list(NORTH, SOUTH))
if (possible_dirs & dir)
TP.tape_dir += dir
TP.update_icon()
if(possible_dirs & (EAST|WEST))
- var/obj/item/tape/TP = new tape_type(start)
+ var/obj/item/barrier_tape_segment/TP = new tape_type(start)
for(var/dir in list(EAST, WEST))
if (possible_dirs & dir)
TP.tape_dir += dir
@@ -262,12 +262,12 @@ var/list/tape_roll_applications = list()
for(var/obj/structure/window/window in cur)
if(istype(window) && !window.is_fulltile() && window.dir == orientation)
tape_dir = dir
- for(var/obj/item/tape/T in cur)
+ for(var/obj/item/barrier_tape_segment/T in cur)
if((T.tape_dir == tape_dir) && (T.icon_base == icon_base))
tapetest = 1
break
if(!tapetest)
- var/obj/item/tape/T = new tape_type(cur)
+ var/obj/item/barrier_tape_segment/T = new tape_type(cur)
T.tape_dir = tape_dir
T.update_icon()
if(tape_dir & SOUTH)
@@ -280,16 +280,16 @@ var/list/tape_roll_applications = list()
to_chat(user, "You finish placing \the [src].")
return
-/obj/item/taperoll/afterattack(var/atom/A, mob/user as mob, proximity)
+/obj/item/barrier_tape_roll/afterattack(var/atom/A, mob/user as mob, proximity)
if(!proximity)
return
if (istype(A, /obj/machinery/door))
var/turf/T = get_turf(A)
- if(locate(/obj/item/tape, A.loc))
+ if(locate(/obj/item/barrier_tape_segment, A.loc))
to_chat(user, "There's already tape over that door!")
else
- var/obj/item/tape/P = new tape_type(T)
+ var/obj/item/barrier_tape_segment/P = new tape_type(T)
P.update_icon()
P.layer = WINDOW_LAYER
to_chat(user, "You finish placing \the [src].")
@@ -311,13 +311,13 @@ var/list/tape_roll_applications = list()
tape_roll_applications[F] |= direction
return
-/obj/item/tape/proc/crumple()
+/obj/item/barrier_tape_segment/proc/crumple()
if(!crumpled)
crumpled = 1
update_icon()
name = "crumpled [name]"
-/obj/item/tape/CanPass(atom/movable/mover, turf/target)
+/obj/item/barrier_tape_segment/CanPass(atom/movable/mover, turf/target)
if(!lifted && ismob(mover))
var/mob/M = mover
add_fingerprint(M)
@@ -328,18 +328,18 @@ var/list/tape_roll_applications = list()
crumple()
return ..()
-/obj/item/tape/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/barrier_tape_segment/attackby(obj/item/W as obj, mob/user as mob)
breaktape(user)
-/obj/item/tape/attack_hand(mob/user as mob)
+/obj/item/barrier_tape_segment/attack_hand(mob/user as mob)
if (user.a_intent == I_HELP && src.allowed(user))
user.show_viewers("\The [user] lifts \the [src], allowing passage.")
- for(var/obj/item/tape/T in gettapeline())
+ for(var/obj/item/barrier_tape_segment/T in gettapeline())
T.lift(100) //~10 seconds
else
breaktape(user)
-/obj/item/tape/proc/lift(time)
+/obj/item/barrier_tape_segment/proc/lift(time)
lifted = 1
plane = MOB_PLANE
layer = ABOVE_MOB_LAYER
@@ -348,7 +348,7 @@ var/list/tape_roll_applications = list()
reset_plane_and_layer()
// Returns a list of all tape objects connected to src, including itself.
-/obj/item/tape/proc/gettapeline()
+/obj/item/barrier_tape_segment/proc/gettapeline()
var/list/dirs = list()
if(tape_dir & NORTH)
dirs += NORTH
@@ -359,27 +359,27 @@ var/list/tape_roll_applications = list()
if(tape_dir & EAST)
dirs += EAST
- var/list/obj/item/tape/tapeline = list()
- for (var/obj/item/tape/T in get_turf(src))
+ var/list/obj/item/barrier_tape_segment/tapeline = list()
+ for (var/obj/item/barrier_tape_segment/T in get_turf(src))
tapeline += T
for(var/dir in dirs)
var/turf/cur = get_step(src, dir)
var/not_found = 0
while (!not_found)
not_found = 1
- for (var/obj/item/tape/T in cur)
+ for (var/obj/item/barrier_tape_segment/T in cur)
tapeline += T
not_found = 0
cur = get_step(cur, dir)
return tapeline
-/obj/item/tape/proc/breaktape(mob/user)
+/obj/item/barrier_tape_segment/proc/breaktape(mob/user)
if(user.a_intent == I_HELP)
to_chat(user, "You refrain from breaking \the [src].")
return
user.visible_message("\The [user] breaks \the [src]!","You break \the [src].")
- for (var/obj/item/tape/T in gettapeline())
+ for (var/obj/item/barrier_tape_segment/T in gettapeline())
if(T == src)
continue
if(T.tape_dir & get_dir(T, src))
diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/duct_tape.dm
similarity index 90%
rename from code/game/objects/items/weapons/tape.dm
rename to code/game/objects/items/weapons/duct_tape.dm
index c5351367baa..8fcdce7def7 100644
--- a/code/game/objects/items/weapons/tape.dm
+++ b/code/game/objects/items/weapons/duct_tape.dm
@@ -1,4 +1,4 @@
-/obj/item/tape_roll
+/obj/item/duct_tape_roll
name = "tape roll"
desc = "A roll of sticky tape. Possibly for taping ducks... or was that ducts?"
icon = 'icons/obj/bureaucracy.dmi'
@@ -7,7 +7,7 @@
toolspeed = 2 //It is now used in surgery as a not awful, but probably dangerous option, due to speed.
-/obj/item/tape_roll/attack(var/mob/living/carbon/human/H, var/mob/user)
+/obj/item/duct_tape_roll/attack(var/mob/living/carbon/human/H, var/mob/user)
if(istype(H))
if(user.a_intent == I_HELP)
return
@@ -124,16 +124,16 @@
return ..()
return 1
-/obj/item/tape_roll/proc/stick(var/obj/item/W, mob/user)
+/obj/item/duct_tape_roll/proc/stick(var/obj/item/W, mob/user)
if(!istype(W, /obj/item/paper))
return
user.drop_from_inventory(W)
- var/obj/item/ducttape/tape = new(get_turf(src))
+ var/obj/item/duct_tape_piece/tape = new(get_turf(src))
tape.attach(W)
user.put_in_hands(tape)
playsound(src, 'sound/effects/tape.ogg',25)
-/obj/item/ducttape
+/obj/item/duct_tape_piece
name = "tape"
desc = "A piece of sticky tape."
icon = 'icons/obj/bureaucracy.dmi'
@@ -144,21 +144,21 @@
var/obj/item/stuck = null
-/obj/item/ducttape/New()
+/obj/item/duct_tape_piece/New()
..()
flags |= NOBLUDGEON
-/obj/item/ducttape/examine(mob/user)
+/obj/item/duct_tape_piece/examine(mob/user)
return stuck.examine(user)
-/obj/item/ducttape/proc/attach(var/obj/item/W)
+/obj/item/duct_tape_piece/proc/attach(var/obj/item/W)
stuck = W
W.forceMove(src)
icon_state = W.icon_state + "_taped"
name = W.name + " (taped)"
overlays = W.overlays
-/obj/item/ducttape/attack_self(mob/user)
+/obj/item/duct_tape_piece/attack_self(mob/user)
if(!stuck)
return
@@ -171,7 +171,7 @@
overlays = null
qdel(src)
-/obj/item/ducttape/attackby(var/obj/item/I, var/mob/user)
+/obj/item/duct_tape_piece/attackby(var/obj/item/I, var/mob/user)
if(!(istype(src, /obj/item/handcuffs/cable/tape) || istype(src, /obj/item/clothing/mask/muzzle/tape)))
return ..()
else
@@ -180,11 +180,11 @@
qdel(I)
to_chat(user, "You place \the [I] back into \the [src].")
-/obj/item/ducttape/attack_hand(mob/living/L)
+/obj/item/duct_tape_piece/attack_hand(mob/living/L)
anchored = FALSE
return ..() // Pick it up now that it's unanchored.
-/obj/item/ducttape/afterattack(var/A, mob/user, flag, params)
+/obj/item/duct_tape_piece/afterattack(var/A, mob/user, flag, params)
if(!in_range(user, A) || istype(A, /obj/machinery/door) || !stuck)
return
diff --git a/code/game/objects/items/weapons/id cards/station_ids.dm b/code/game/objects/items/weapons/id cards/station_ids.dm
index 20ed6b88189..92b6122a4cc 100755
--- a/code/game/objects/items/weapons/id cards/station_ids.dm
+++ b/code/game/objects/items/weapons/id cards/station_ids.dm
@@ -124,7 +124,7 @@
/obj/item/card/id/Initialize()
. = ..()
- var/datum/job/J = job_master.GetJob(rank)
+ var/datum/job/J = SSjobs.GetJob(rank)
if(J)
access = J.get_access()
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 3bc225e047e..f9eb082c9b7 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -58,14 +58,14 @@
/obj/item/clothing/gloves,
/obj/item/pda,
/obj/item/megaphone,
- /obj/item/taperoll,
+ /obj/item/barrier_tape_roll,
/obj/item/radio/headset,
/obj/item/robotanalyzer,
/obj/item/material/minihoe,
/obj/item/material/knife/machete/hatchet,
/obj/item/analyzer/plant_analyzer,
/obj/item/extinguisher/mini,
- /obj/item/tape_roll,
+ /obj/item/duct_tape_roll,
/obj/item/integrated_electronics/wirer,
/obj/item/integrated_electronics/debugger, //Vorestation edit adding debugger to toolbelt can hold list
)
@@ -125,7 +125,7 @@
/obj/item/stack/medical,
/obj/item/radio/headset,
/obj/item/pda,
- /obj/item/taperoll,
+ /obj/item/barrier_tape_roll,
/obj/item/megaphone,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/head/surgery,
@@ -165,8 +165,8 @@
/obj/item/gun/energy/gun,
/obj/item/flame/lighter,
/obj/item/flashlight,
- /obj/item/taperecorder,
- /obj/item/tape,
+ /obj/item/tape_recorder,
+ /obj/item/barrier_tape_roll,
/obj/item/pda,
/obj/item/radio/headset,
/obj/item/clothing/gloves,
@@ -176,7 +176,7 @@
/obj/item/clothing/accessory/badge,
/obj/item/gun/projectile/sec,
/obj/item/gun/projectile/p92x,
- /obj/item/taperoll,
+ /obj/item/barrier_tape_roll,
/obj/item/gun/projectile/colt/detective,
/obj/item/holowarrant
)
@@ -188,8 +188,8 @@
storage_slots = 7
max_w_class = ITEMSIZE_NORMAL
can_hold = list(
- /obj/item/taperecorder,
- /obj/item/tape,
+ /obj/item/tape_recorder,
+ /obj/item/barrier_tape_roll,
/obj/item/clothing/glasses,
/obj/item/flashlight,
/obj/item/cell/device,
@@ -213,7 +213,7 @@
/obj/item/megaphone,
/obj/item/radio/headset,
/obj/item/clothing/gloves,
- /obj/item/taperoll,
+ /obj/item/barrier_tape_roll,
/obj/item/reagent_containers/spray/pepper,
/obj/item/handcuffs,
/obj/item/flash,
@@ -270,8 +270,8 @@
/obj/item/photo,
/obj/item/camera_film,
/obj/item/camera,
- /obj/item/taperecorder,
- /obj/item/tape,
+ /obj/item/tape_recorder,
+ /obj/item/barrier_tape_roll,
/obj/item/healthanalyzer,
/obj/item/geiger,
/obj/item/gps,
@@ -329,7 +329,7 @@
/obj/item/stack/medical,
/obj/item/radio/headset,
/obj/item/pda,
- /obj/item/taperoll,
+ /obj/item/barrier_tape_roll,
/obj/item/megaphone,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/head/surgery,
@@ -397,7 +397,7 @@
/obj/item/light/tube,
/obj/item/flame/lighter,
/obj/item/megaphone,
- /obj/item/taperoll,
+ /obj/item/barrier_tape_roll,
/obj/item/reagent_containers/spray,
/obj/item/soap
)
diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm
index f66a0eb9fe0..33baac67389 100644
--- a/code/game/objects/items/weapons/storage/wallets.dm
+++ b/code/game/objects/items/weapons/storage/wallets.dm
@@ -10,7 +10,7 @@
/obj/item/card,
/obj/item/clothing/mask/smokable/cigarette/,
/obj/item/flashlight/pen,
- /obj/item/tape,
+ /obj/item/barrier_tape_roll,
/obj/item/cartridge,
/obj/item/encryptionkey,
/obj/item/seeds,
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index c05acfe754c..2b14a5ff0a2 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -22,8 +22,13 @@
user.setClickCooldown(user.get_attack_speed(src))
user.do_attack_animation(M)
+<<<<<<< HEAD
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
to_chat(user, "You don't have the dexterity to do this!")
+=======
+ if (!(istype(user, /mob/living/carbon/human) || SSticker) && SSticker.mode.name != "monkey")
+ user << "You don't have the dexterity to do this!"
+>>>>>>> citrp/master
return
if ((CLUMSY in user.mutations) && prob(50))
diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm
index 18fadb7f175..82d3c7d6ba5 100644
--- a/code/game/objects/random/misc.dm
+++ b/code/game/objects/random/misc.dm
@@ -128,9 +128,9 @@
prob(2);/obj/item/storage/belt/utility,
prob(1);/obj/item/storage/belt/utility/full,
prob(5);/obj/random/tool,
- prob(2);/obj/item/tape_roll,
- prob(2);/obj/item/taperoll/engineering,
- prob(1);/obj/item/taperoll/atmos,
+ prob(2);/obj/item/duct_tape_roll,
+ prob(2);/obj/item/barrier_tape_roll/engineering,
+ prob(1);/obj/item/barrier_tape_roll/atmos,
prob(1);/obj/item/flashlight/maglight)
/obj/random/tech_supply/component
diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm
index 1fc096afb8e..7d1c5db24bb 100644
--- a/code/game/objects/random/random.dm
+++ b/code/game/objects/random/random.dm
@@ -156,9 +156,9 @@
prob(2);/obj/item/storage/belt/utility,
prob(1);/obj/item/storage/belt/utility/full,
prob(5);/obj/random/tool,
- prob(2);/obj/item/tape_roll,
- prob(2);/obj/item/taperoll/engineering,
- prob(1);/obj/item/taperoll/atmos,
+ prob(2);/obj/item/duct_tape_roll,
+ prob(2);/obj/item/barrier_tape_roll/engineering,
+ prob(1);/obj/item/barrier_tape_roll/atmos,
prob(1);/obj/item/flashlight/maglight)
/obj/random/tech_supply/component
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index ac2fc88f843..b44d6528063 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -101,4 +101,4 @@
/obj/item/clothing/glasses/sunglasses/big = 2,
/obj/item/clothing/under/lawyer/blue = 2,
/obj/item/clothing/under/lawyer/blue/skirt = 2,
- /obj/item/tape/random = 2)
\ No newline at end of file
+ /obj/item/cassette_tape/random = 2)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index cf221030426..c2fbc5d5162 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -27,7 +27,7 @@
/obj/item/storage/belt/utility/chief/full,
/obj/item/flash,
/obj/item/t_scanner/upgraded,
- /obj/item/taperoll/engineering,
+ /obj/item/barrier_tape_roll/engineering,
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
/obj/item/clothing/shoes/boots/winter/engineering,
/obj/item/tank/emergency/oxygen/engi,
@@ -97,7 +97,7 @@
/obj/item/clothing/mask/gas,
/obj/item/clothing/glasses/meson,
/obj/item/cartridge/engineering,
- /obj/item/taperoll/engineering,
+ /obj/item/barrier_tape_roll/engineering,
/obj/item/clothing/head/hardhat,
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
/obj/item/clothing/shoes/boots/winter/engineering,
@@ -138,7 +138,7 @@
/obj/item/clothing/suit/storage/hazardvest,
/obj/item/clothing/mask/gas,
/obj/item/cartridge/atmos,
- /obj/item/taperoll/atmos,
+ /obj/item/barrier_tape_roll/atmos,
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos,
/obj/item/clothing/shoes/boots/winter/atmos,
/obj/item/tank/emergency/oxygen/engi,
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 7a38bb0fe84..5e60b2a3537 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -138,7 +138,7 @@
/obj/item/extinguisher/mini,
/obj/item/storage/box/freezer,
/obj/item/clothing/accessory/storage/white_vest,
- /obj/item/taperoll/medical)
+ /obj/item/barrier_tape_roll/medical)
/obj/structure/closet/secure_closet/CMO
name = "chief medical officer's locker"
@@ -166,7 +166,7 @@
/obj/item/clothing/shoes/boots/winter/medical,
/obj/item/storage/box/freezer,
/obj/item/clothing/mask/gas,
- /obj/item/taperoll/medical,
+ /obj/item/barrier_tape_roll/medical,
/obj/item/clothing/suit/bio_suit/cmo,
/obj/item/clothing/head/bio_hood/cmo,
/obj/item/gps/medical/cmo,
@@ -251,8 +251,8 @@
/obj/item/reagent_containers/pill/methylphenidate,
/obj/item/clipboard,
/obj/item/folder/white,
- /obj/item/taperecorder,
- /obj/item/tape/random = 3,
+ /obj/item/tape_recorder,
+ /obj/item/cassette_tape/random = 3,
/obj/item/camera,
/obj/item/toy/plushie/therapy/blue)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index c3924f20b9f..ae481c4e17e 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -105,7 +105,7 @@
/obj/item/radio/headset/heads/hos,
/obj/item/radio/headset/heads/hos/alt,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/shield/riot,
/obj/item/shield/riot/tele,
/obj/item/storage/box/holobadge/hos,
@@ -160,7 +160,7 @@
/obj/item/radio/headset/headset_sec,
/obj/item/radio/headset/headset_sec/alt,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/clothing/accessory/badge/holo/warden,
/obj/item/storage/box/flashbangs,
/obj/item/storage/belt/security,
@@ -208,7 +208,7 @@
/obj/item/grenade/flashbang,
/obj/item/melee/baton/loaded,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/hailer,
/obj/item/flashlight/flare,
/obj/item/clothing/accessory/storage/black_vest,
@@ -273,14 +273,14 @@
/obj/item/radio/headset/headset_sec,
/obj/item/radio/headset/headset_sec/alt,
/obj/item/clothing/suit/storage/vest/detective,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/clothing/accessory/holster/armpit,
/obj/item/flashlight/maglight,
/obj/item/reagent_containers/food/drinks/flask/detflask,
/obj/item/storage/briefcase/crimekit,
- /obj/item/taperecorder,
+ /obj/item/tape_recorder,
/obj/item/storage/bag/detective,
- /obj/item/tape/random = 3)
+ /obj/item/cassette_tape/random = 3)
/obj/structure/closet/secure_closet/detective/update_icon()
if(broken)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm
index 6558582f633..9d71ea5462c 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm
@@ -43,7 +43,7 @@
// citadel edit NSFW > Multiphase
starts_with = list(
/obj/item/cartridge/hos,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/shield/riot/tele,
/obj/item/storage/box/holobadge/hos,
/obj/item/clothing/accessory/badge/holo/hos,
@@ -85,7 +85,7 @@
/obj/item/grenade/flashbang,
/obj/item/melee/baton/loaded,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/hailer,
/obj/item/flashlight/flare,
/obj/item/clothing/accessory/storage/black_vest,
@@ -131,7 +131,7 @@
/obj/item/radio/headset/heads/hos,
/obj/item/radio/headset/heads/hos/alt,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/shield/riot,
/obj/item/shield/riot/tele,
/obj/item/storage/box/holobadge/hos,
@@ -183,7 +183,7 @@
/obj/item/radio/headset/headset_sec,
/obj/item/radio/headset/headset_sec/alt,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/clothing/accessory/badge/holo/warden,
/obj/item/storage/box/flashbangs,
/obj/item/storage/belt/security,
diff --git a/code/game/objects/structures/crates_lockers/largecrate_vr.dm b/code/game/objects/structures/crates_lockers/largecrate_vr.dm
index 78f429888fa..8d96bc15d3a 100644
--- a/code/game/objects/structures/crates_lockers/largecrate_vr.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate_vr.dm
@@ -116,7 +116,7 @@
/obj/structure/largecrate/animal/catgirl
name = "Catgirl Crate"
- desc = "A sketchy looking crate with airholes that seems to have had most marks and stickers removed. You can almost make out 'genetically-engineered subject' written on it."
+ desc = "A sketchy looking crate with airholes that seems to have had most marks and sSStickers removed. You can almost make out 'genetically-engineered subject' written on it."
starts_with = list(/mob/living/simple_mob/vore/catgirl)
/obj/structure/largecrate/animal/wolfgirl
diff --git a/code/game/objects/structures/window_spawner.dm b/code/game/objects/structures/window_spawner.dm
index ca959e19765..edfaa0020d5 100644
--- a/code/game/objects/structures/window_spawner.dm
+++ b/code/game/objects/structures/window_spawner.dm
@@ -30,7 +30,7 @@
. = ..()
if(!win_path)
return
- if(ticker && ticker.current_state < GAME_STATE_PLAYING)
+ if(SSticker && SSticker.current_state < GAME_STATE_PLAYING)
activate()
/obj/effect/wingrille_spawn/proc/activate()
diff --git a/code/game/periodic_news.dm b/code/game/periodic_news.dm
index d62de645872..ecce3e735ea 100644
--- a/code/game/periodic_news.dm
+++ b/code/game/periodic_news.dm
@@ -116,7 +116,7 @@
var/global/list/newscaster_standard_feeds = list(/datum/news_announcement/bluespace_research, /datum/news_announcement/lotus_tree, /datum/news_announcement/random_junk, /datum/news_announcement/food_riots)
proc/process_newscaster()
- check_for_newscaster_updates(ticker.mode.newscaster_announcements)
+ check_for_newscaster_updates(SSticker.mode.newscaster_announcements)
var/global/tmp/announced_news_types = list()
proc/check_for_newscaster_updates(type)
diff --git a/code/game/response_team.dm b/code/game/response_team.dm
index 00d5bb9b283..26bd2811371 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -15,11 +15,19 @@ var/silent_ert = 0
if(!holder)
to_chat(usr, "Only administrators may use this command.")
return
+<<<<<<< HEAD
if(!ticker)
to_chat(usr, "The game hasn't started yet!")
return
if(ticker.current_state == 1)
to_chat(usr, "The round hasn't started yet!")
+=======
+ if(!SSticker)
+ usr << "The game hasn't started yet!"
+ return
+ if(SSticker.current_state == 1)
+ usr << "The round hasn't started yet!"
+>>>>>>> citrp/master
return
if(send_emergency_team)
to_chat(usr, "[GLOB.using_map.boss_name] has already dispatched an emergency response team!")
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 4bfd634ae97..a1ab7ff13d7 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -165,7 +165,7 @@ GLOBAL_VAR_INIT(sound_distance_offscreen, 7)
return rand(32000, 55000) //Frequency stuff only works with 45kbps oggs.
/client/proc/playtitlemusic()
- if(!ticker || !all_lobby_tracks.len || !media) return
+ if(!SSticker || !all_lobby_tracks.len || !media) return
if(is_preference_enabled(/datum/client_preference/play_lobby_music))
var/datum/track/T = pick(all_lobby_tracks)
media.push_music(T.url, world.time, 0.85)
diff --git a/code/game/trader_visit.dm b/code/game/trader_visit.dm
index 1fa78fdf215..610309d2163 100644
--- a/code/game/trader_visit.dm
+++ b/code/game/trader_visit.dm
@@ -11,11 +11,19 @@ var/can_call_traders = 1
if(!holder)
to_chat(usr, "Only administrators may use this command.")
return
+<<<<<<< HEAD
if(!ticker)
to_chat(usr, "The game hasn't started yet!")
return
if(ticker.current_state == 1)
to_chat(usr, "The round hasn't started yet!")
+=======
+ if(!SSticker)
+ usr << "The game hasn't started yet!"
+ return
+ if(SSticker.current_state == 1)
+ usr << "The round hasn't started yet!"
+>>>>>>> citrp/master
return
if(send_beruang)
to_chat(usr, "The Beruang has already been sent this round!")
diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm
index 9b30cd81ddd..6d4189d879f 100644
--- a/code/game/turfs/space/space.dm
+++ b/code/game/turfs/space/space.dm
@@ -98,10 +98,10 @@
inertial_drift(A)
- if(ticker && ticker.mode)
+ if(SSticker && SSticker.mode)
// Okay, so let's make it so that people can travel z levels but not nuke disks!
- // if(ticker.mode.name == "mercenary") return
+ // if(SSticker.mode.name == "mercenary") return
if (A.x <= TRANSITIONEDGE || A.x >= (world.maxx - TRANSITIONEDGE + 1) || A.y <= TRANSITIONEDGE || A.y >= (world.maxy - TRANSITIONEDGE + 1))
A.touch_map_edge()
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 3b7142dc4a8..0a60e8ce469 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -4,10 +4,15 @@
set category = "OOC"
if(say_disabled) //This is here to try to identify lag problems
+<<<<<<< HEAD
to_chat(usr, "Speech is currently admin-disabled.")
+=======
+ to_chat(src, "Speech is currently admin-disabled.")
+>>>>>>> citrp/master
return
- if(!mob) return
+ if(!mob)
+ return
if(IsGuestKey(key))
to_chat(src, "Guests may not use OOC.")
return
@@ -24,7 +29,11 @@
to_chat(src, "OOC is globally muted.")
return
if(!config_legacy.dooc_allowed && (mob.stat == DEAD))
+<<<<<<< HEAD
to_chat(usr, "OOC for dead mobs has been turned off.")
+=======
+ to_chat(src, "OOC for dead mobs has been turned off.")
+>>>>>>> citrp/master
return
if(prefs.muted & MUTE_OOC)
to_chat(src, "You cannot use OOC (muted).")
@@ -34,11 +43,6 @@
log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]")
message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]")
return
- //VOREStation Add - No talking during voting
- if(SSvote && SSvote.mode)
- to_chat(src,"OOC is not allowed during voting.")
- return
- //VOREStation Add End
log_ooc(msg, src)
@@ -79,7 +83,11 @@
set category = "OOC"
if(say_disabled) //This is here to try to identify lag problems
+<<<<<<< HEAD
to_chat(usr, "Speech is currently admin-disabled.")
+=======
+ to_chat(src, "Speech is currently admin-disabled.")
+>>>>>>> citrp/master
return
if(!mob)
@@ -102,7 +110,11 @@
to_chat(src, "LOOC is globally muted.")
return
if(!config_legacy.dooc_allowed && (mob.stat == DEAD))
+<<<<<<< HEAD
to_chat(usr, "OOC for dead mobs has been turned off.")
+=======
+ to_chat(usr, "OOC for dead mobs has been turned off.")
+>>>>>>> citrp/master
return
if(prefs.muted & MUTE_OOC)
to_chat(src, "You cannot use OOC (muted).")
diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm
index b40b3535189..db28d52a138 100644
--- a/code/game/verbs/suicide.dm
+++ b/code/game/verbs/suicide.dm
@@ -7,7 +7,7 @@
to_chat(src, "You're already dead!")
return
- if (!ticker)
+ if (!SSticker)
to_chat(src, "You can't commit suicide before the game starts!")
return
@@ -95,7 +95,7 @@
to_chat(src, "You're already dead!")
return
- if (!ticker)
+ if (!SSticker)
to_chat(src, "You can't commit suicide before the game starts!")
return
diff --git a/code/game/world.dm b/code/game/world.dm
index 5fff029e3d8..6de70e69a6c 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -6,7 +6,7 @@
2. The map is initialized, and map objects are created.
3. world/New() runs, creating the process scheduler (and the old master controller) and spawning their setup.
4. processScheduler/setup() runs, creating all the processes. game_controller/setup() runs, calling initialize() on all movable atoms in the world.
- 5. The gameticker is created.
+ 5. The gameSSticker is created.
*/
@@ -87,17 +87,10 @@ GLOBAL_LIST(topic_status_cache)
//Must be done now, otherwise ZAS zones and lighting overlays need to be recreated.
createRandomZlevel()
- processScheduler = new
- master_controller = new /datum/controller/game_controller()
-
- processScheduler.deferSetupFor(/datum/controller/process/ticker)
- processScheduler.setup()
-
Master.Initialize(10, FALSE)
- spawn(1)
- master_controller.setup()
#if UNIT_TEST
+ spawn(1)
initialize_unit_tests()
#endif
@@ -207,7 +200,6 @@ GLOBAL_LIST(topic_status_cache)
else
to_chat(world, "Rebooting world...")
//POLARIS START
- processScheduler.stop()
if(blackbox)
blackbox.save_all_data_to_sql()
//END
@@ -333,7 +325,7 @@ GLOBAL_LIST(topic_status_cache)
var/list/features = list()
- if(ticker)
+ if(SSticker)
if(master_mode)
features += master_mode
else
diff --git a/code/global.dm b/code/global.dm
index 19a70d86e28..7a9b73a0dfb 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -102,7 +102,6 @@ var/gravity_is_on = 1
var/join_motd = null
-var/datum/game_master/game_master = new() // Game Master, an AI for choosing events.
var/datum/metric/metric = new() // Metric datum, used to keep track of the round.
var/list/awaydestinations = list() // Away missions. A list of landmarks that the warpgate can take you to.
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index fbe7be8eaa9..d7f3d08b5cb 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -848,11 +848,11 @@ var/datum/announcement/minor/admin_min_announcer = new
set category = "Server"
set desc="Start the round RIGHT NOW"
set name="Start Now"
- if(!ticker)
+ if(!SSticker)
alert("Unable to start the game as it is not set up.")
return
- if(ticker.current_state == GAME_STATE_PREGAME)
- ticker.current_state = GAME_STATE_SETTING_UP
+ if(SSticker.current_state == GAME_STATE_PREGAME)
+ SSticker.current_state = GAME_STATE_SETTING_UP
Master.SetRunLevel(RUNLEVEL_SETUP)
log_admin("[usr.key] has started the game.")
message_admins("[usr.key] has started the game.")
@@ -927,10 +927,10 @@ var/datum/announcement/minor/admin_min_announcer = new
set name="Delay"
if(!check_rights(R_SERVER|R_EVENT)) return
- if (!ticker || ticker.current_state != GAME_STATE_PREGAME)
- ticker.delay_end = !ticker.delay_end
- log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
- message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
+ if (!SSticker || SSticker.current_state != GAME_STATE_PREGAME)
+ SSticker.delay_end = !SSticker.delay_end
+ log_admin("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
+ message_admins("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
return //alert("Round end delayed", null, null, null, null, null)
round_progressing = !round_progressing
if (!round_progressing)
@@ -982,7 +982,7 @@ var/datum/announcement/minor/admin_min_announcer = new
////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS
/proc/is_special_character(var/character) // returns 1 for special characters and 2 for heroes of gamemode
- if(!ticker || !ticker.mode)
+ if(!SSticker || !SSticker.mode)
return 0
var/datum/mind/M
if (ismob(character))
@@ -992,8 +992,8 @@ var/datum/announcement/minor/admin_min_announcer = new
M = character
if(M)
- if(ticker.mode.antag_templates && ticker.mode.antag_templates.len)
- for(var/datum/antagonist/antag in ticker.mode.antag_templates)
+ if(SSticker.mode.antag_templates && SSticker.mode.antag_templates.len)
+ for(var/datum/antagonist/antag in SSticker.mode.antag_templates)
if(antag.is_antagonist(M))
return 2
if(M.special_role)
@@ -1126,70 +1126,70 @@ var/datum/announcement/minor/admin_min_announcer = new
set desc = "Show the current round configuration."
set name = "Show Game Mode"
- if(!ticker || !ticker.mode)
+ if(!SSticker || !SSticker.mode)
alert("Not before roundstart!", "Alert")
return
- var/out = "Current mode: [ticker.mode.name] ([ticker.mode.config_tag])
"
+ var/out = "Current mode: [SSticker.mode.name] ([SSticker.mode.config_tag])
"
out += "
"
- if(ticker.mode.ert_disabled)
- out += "Emergency Response Teams: disabled"
+ if(SSticker.mode.ert_disabled)
+ out += "Emergency Response Teams: disabled"
else
- out += "Emergency Response Teams: enabled"
+ out += "Emergency Response Teams: enabled"
out += "
"
- if(ticker.mode.deny_respawn)
- out += "Respawning: disallowed"
+ if(SSticker.mode.deny_respawn)
+ out += "Respawning: disallowed"
else
- out += "Respawning: allowed"
+ out += "Respawning: allowed"
out += "
"
- out += "Shuttle delay multiplier: [ticker.mode.shuttle_delay]
"
+ out += "Shuttle delay multiplier: [SSticker.mode.shuttle_delay]
"
- if(ticker.mode.auto_recall_shuttle)
- out += "Shuttle auto-recall: enabled"
+ if(SSticker.mode.auto_recall_shuttle)
+ out += "Shuttle auto-recall: enabled"
else
- out += "Shuttle auto-recall: disabled"
+ out += "Shuttle auto-recall: disabled"
out += "
"
- if(ticker.mode.event_delay_mod_moderate)
- out += "Moderate event time modifier: [ticker.mode.event_delay_mod_moderate]
"
+ if(SSticker.mode.event_delay_mod_moderate)
+ out += "Moderate event time modifier: [SSticker.mode.event_delay_mod_moderate]
"
else
- out += "Moderate event time modifier: unset
"
+ out += "Moderate event time modifier: unset
"
- if(ticker.mode.event_delay_mod_major)
- out += "Major event time modifier: [ticker.mode.event_delay_mod_major]
"
+ if(SSticker.mode.event_delay_mod_major)
+ out += "Major event time modifier: [SSticker.mode.event_delay_mod_major]
"
else
- out += "Major event time modifier: unset
"
+ out += "Major event time modifier: unset
"
out += "
"
- if(ticker.mode.antag_tags && ticker.mode.antag_tags.len)
+ if(SSticker.mode.antag_tags && SSticker.mode.antag_tags.len)
out += "Core antag templates:"
- for(var/antag_tag in ticker.mode.antag_tags)
- out += "[antag_tag]."
+ for(var/antag_tag in SSticker.mode.antag_tags)
+ out += "[antag_tag]."
- if(ticker.mode.round_autoantag)
- out += "Autotraitor enabled."
- if(ticker.mode.antag_scaling_coeff > 0)
- out += " (scaling with [ticker.mode.antag_scaling_coeff])"
+ if(SSticker.mode.round_autoantag)
+ out += "Autotraitor enabled."
+ if(SSticker.mode.antag_scaling_coeff > 0)
+ out += " (scaling with [SSticker.mode.antag_scaling_coeff])"
else
- out += " (not currently scaling, set a coefficient)"
+ out += " (not currently scaling, set a coefficient)"
out += "
"
else
- out += "Autotraitor disabled.
"
+ out += "Autotraitor disabled.
"
out += "All antag ids:"
- if(ticker.mode.antag_templates && ticker.mode.antag_templates.len).
- for(var/datum/antagonist/antag in ticker.mode.antag_templates)
+ if(SSticker.mode.antag_templates && SSticker.mode.antag_templates.len).
+ for(var/datum/antagonist/antag in SSticker.mode.antag_templates)
antag.update_current_antag_max()
- out += " [antag.id]"
+ out += " [antag.id]"
out += " ([antag.get_antag_count()]/[antag.cur_max]) "
- out += " \[-\]
"
+ out += " \[-\]
"
else
out += " None."
- out += " \[+\]
"
+ out += " \[+\]
"
usr << browse(out, "window=edit_mode[src]")
feedback_add_details("admin_verb","SGM")
@@ -1364,8 +1364,13 @@ var/datum/announcement/minor/admin_min_announcer = new
to_chat(usr, "Error: you are not an admin!")
return
+<<<<<<< HEAD
if(!ticker || !ticker.mode)
to_chat(usr, "Mode has not started.")
+=======
+ if(!SSticker || !SSticker.mode)
+ usr << "Mode has not started."
+>>>>>>> citrp/master
return
var/antag_type = input("Choose a template.","Force Latespawn") as null|anything in all_antag_types
@@ -1388,12 +1393,17 @@ var/datum/announcement/minor/admin_min_announcer = new
to_chat(usr, "Error: you are not an admin!")
return
+<<<<<<< HEAD
if(!ticker || !ticker.mode)
to_chat(usr, "Mode has not started.")
+=======
+ if(!SSticker || !SSticker.mode)
+ usr << "Mode has not started."
+>>>>>>> citrp/master
return
log_and_message_admins("attempting to force mode autospawn.")
- ticker.mode.try_latespawn()
+ SSticker.mode.try_latespawn()
/datum/admins/proc/paralyze_mob(mob/living/H as mob)
set category = "Admin"
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index a18f0fa661b..8a5f127c01a 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -220,7 +220,6 @@ var/list/admin_verbs_debug = list(
/client/proc/enable_debug_verbs,
/client/proc/callproc,
/client/proc/callproc_datum,
- /client/proc/debug_process, //VOREStation Add,
/client/proc/SDQL2_query,
/client/proc/Jump,
/client/proc/debug_rogueminer,
@@ -240,7 +239,6 @@ var/list/admin_verbs_debug = list(
var/list/admin_verbs_paranoid_debug = list(
/client/proc/callproc,
/client/proc/callproc_datum,
- /client/proc/debug_process, //VOREStation Add,
/client/proc/debug_controller
)
@@ -311,7 +309,6 @@ var/list/admin_verbs_hideable = list(
/client/proc/cmd_admin_list_open_jobs,
/client/proc/callproc,
/client/proc/callproc_datum,
- /client/proc/debug_process, //VOREStation Add,
/client/proc/Debug2,
/client/proc/reload_admins,
/client/proc/kill_air,
@@ -1010,7 +1007,7 @@ var/list/admin_verbs_event_manager = list(
set category = "Admin"
if(holder)
var/list/jobs = list()
- for (var/datum/job/J in job_master.occupations)
+ for (var/datum/job/J in SSjobs.occupations)
if (J.current_positions >= J.total_positions && J.total_positions != -1)
jobs += J.title
if (!jobs.len)
@@ -1018,7 +1015,7 @@ var/list/admin_verbs_event_manager = list(
return
var/job = input("Please select job slot to free", "Free job slot") as null|anything in jobs
if (job)
- job_master.FreeRole(job)
+ SSjobs.FreeRole(job)
message_admins("A job slot for [job] has been opened by [key_name_admin(usr)]")
return
diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm
index af5063d2c9d..358adabe6e6 100644
--- a/code/modules/admin/chat_commands.dm
+++ b/code/modules/admin/chat_commands.dm
@@ -14,7 +14,7 @@
var/list/adm = get_admin_counts()
var/list/allmins = adm["total"]
var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). "
- status += "Players: [GLOB.clients.len]" //(Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]."
+ status += "Players: [GLOB.clients.len]" //(Active: [get_active_player_count(0,1,0)]). Mode: [SSSSticker.mode ? SSSSticker.mode.name : "Not started"]."
return status
/datum/tgs_chat_command/irccheck
@@ -28,9 +28,9 @@
return
last_irc_check = rtod
var/server = null //CONFIG_GET(string/server)
- //return "[round_id ? "Round #[round_id]: " : ""][clients.len] players on [SSmapping.config_legacy.map_name], Mode: [master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]"
+ //return "[round_id ? "Round #[round_id]: " : ""][clients.len] players on [SSmapping.config_legacy.map_name], Mode: [master_mode]; Round [SSSSticker.HasRoundStarted() ? (SSSSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]"
var/current_state
- switch(ticker.current_state)
+ switch(SSticker.current_state)
if(GAME_STATE_PREGAME)
current_state = "pregame"
if(GAME_STATE_SETTING_UP)
@@ -92,8 +92,8 @@ GLOBAL_LIST(round_end_notifiees)
admin_only = TRUE
/datum/tgs_chat_command/endnotify/Run(datum/tgs_chat_user/sender, params)
- //if(!SSticker.IsRoundInProgress() && SSticker.HasRoundStarted())
- if(ticker.current_state == GAME_STATE_FINISHED)
+ //if(!SSSSticker.IsRoundInProgress() && SSSSticker.HasRoundStarted())
+ if(SSticker.current_state == GAME_STATE_FINISHED)
return "[sender.mention], the round has already ended!"
LAZYINITLIST(GLOB.round_end_notifiees)
GLOB.round_end_notifiees[sender.mention] = TRUE
diff --git a/code/modules/admin/functions/server/admin_reboot.dm b/code/modules/admin/functions/server/admin_reboot.dm
index 5d9236c64c6..5ded4582170 100644
--- a/code/modules/admin/functions/server/admin_reboot.dm
+++ b/code/modules/admin/functions/server/admin_reboot.dm
@@ -10,8 +10,8 @@
options += "Server Restart (Kill and restart DD)";
var/rebootconfirm
- //if(SSticker.admin_delay_notice)
- // if(alert(usr, "Are you sure you want to reboot? An admin has already delayed the round end for the following reason: [SSticker.admin_delay_notice]", "Confirmation", "Yes", "No") == "Yes")
+ //if(SSSSticker.admin_delay_notice)
+ // if(alert(usr, "Are you sure you want to reboot? An admin has already delayed the round end for the following reason: [SSSSticker.admin_delay_notice]", "Confirmation", "Yes", "No") == "Yes")
if(alert(usr, "Are you sure you want to reboot?", "Confirmation", "Yes", "No") == "Yes")
rebootconfirm = TRUE
if(rebootconfirm)
@@ -21,7 +21,7 @@
var/init_by = "Initiated by [usr && usr.client && usr.client.holder && usr.client.holder.fakekey ? "Admin" : usr.key]."
switch(result)
if("Regular Restart")
- //SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10)
+ //SSSSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10)
//POLARIS CODE REE
to_chat(world, "Rebooting world in 1 second! [init_by]")
spawn(10)
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 92536a6e053..d7ffe8332cc 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -383,27 +383,27 @@
/datum/admins/proc/check_antagonists()
- if (ticker && ticker.current_state >= GAME_STATE_PLAYING)
+ if (SSticker && SSticker.current_state >= GAME_STATE_PLAYING)
var/dat = "Round StatusRound Status
"
- dat += "Current Game Mode: [ticker.mode.name]
"
+ dat += "Current Game Mode: [SSticker.mode.name]
"
dat += "Round Duration: [roundduration2text()]
"
dat += "Emergency shuttle
"
- if (!emergency_shuttle.online())
+ if (!SSemergencyshuttle.online())
dat += "Call Shuttle
"
else
- if (emergency_shuttle.wait_for_launch)
- var/timeleft = emergency_shuttle.estimate_launch_time()
+ if (SSemergencyshuttle.wait_for_launch)
+ var/timeleft = SSemergencyshuttle.estimate_launch_time()
dat += "ETL: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
"
- else if (emergency_shuttle.shuttle.has_arrive_time())
- var/timeleft = emergency_shuttle.estimate_arrival_time()
+ else if (SSemergencyshuttle.shuttle.has_arrive_time())
+ var/timeleft = SSemergencyshuttle.estimate_arrival_time()
dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
"
dat += "Send Back
"
- if (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP)
+ if (SSemergencyshuttle.shuttle.moving_status == SHUTTLE_WARMUP)
dat += "Launching now..."
- dat += "[ticker.delay_end ? "End Round Normally" : "Delay Round End"]
"
+ dat += "[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]
"
dat += "
"
for(var/antag_type in all_antag_types)
var/datum/antagonist/A = all_antag_types[antag_type]
diff --git a/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm b/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
index 53d53848679..5f80a6bcb74 100644
--- a/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
+++ b/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
@@ -2,17 +2,17 @@
name = "Jump a Shuttle"
/datum/admin_secret_item/admin_secret/jump_shuttle/can_execute(var/mob/user)
- if(!shuttle_controller) return 0
+ if(!SSshuttle) return 0
return ..()
/datum/admin_secret_item/admin_secret/jump_shuttle/execute(var/mob/user)
. = ..()
if(!.)
return
- var/shuttle_tag = input(user, "Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles
+ var/shuttle_tag = input(user, "Which shuttle do you want to jump?") as null|anything in SSshuttle.shuttles
if (!shuttle_tag) return
- var/datum/shuttle/S = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/S = SSshuttle.shuttles[shuttle_tag]
var/origin_area = input(user, "Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
if (!origin_area) return
diff --git a/code/modules/admin/secrets/admin_secrets/launch_shuttle.dm b/code/modules/admin/secrets/admin_secrets/launch_shuttle.dm
index 2e1ca940e70..9c659eb9417 100644
--- a/code/modules/admin/secrets/admin_secrets/launch_shuttle.dm
+++ b/code/modules/admin/secrets/admin_secrets/launch_shuttle.dm
@@ -2,7 +2,7 @@
name = "Launch a Shuttle"
/datum/admin_secret_item/admin_secret/launch_shuttle/can_execute(var/mob/user)
- if(!shuttle_controller) return 0
+ if(!SSshuttle) return 0
return ..()
/datum/admin_secret_item/admin_secret/launch_shuttle/execute(var/mob/user)
@@ -10,15 +10,15 @@
if(!.)
return
var/list/valid_shuttles = list()
- for (var/shuttle_tag in shuttle_controller.shuttles)
- if (istype(shuttle_controller.shuttles[shuttle_tag], /datum/shuttle/ferry))
+ for (var/shuttle_tag in SSshuttle.shuttles)
+ if (istype(SSshuttle.shuttles[shuttle_tag], /datum/shuttle/ferry))
valid_shuttles += shuttle_tag
var/shuttle_tag = input(user, "Which shuttle do you want to launch?") as null|anything in valid_shuttles
if (!shuttle_tag)
return
- var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/S = SSshuttle.shuttles[shuttle_tag]
if (S.can_launch())
S.launch(user)
log_and_message_admins("launched the [shuttle_tag] shuttle", user)
diff --git a/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm b/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm
index 090db139f30..cb2f8ce3fc3 100644
--- a/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm
+++ b/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm
@@ -2,7 +2,7 @@
name = "Launch a Shuttle (Forced)"
/datum/admin_secret_item/admin_secret/launch_shuttle_forced/can_execute(var/mob/user)
- if(!shuttle_controller) return 0
+ if(!SSshuttle) return 0
return ..()
/datum/admin_secret_item/admin_secret/launch_shuttle_forced/execute(var/mob/user)
@@ -10,15 +10,15 @@
if(!.)
return
var/list/valid_shuttles = list()
- for (var/shuttle_tag in shuttle_controller.shuttles)
- if (istype(shuttle_controller.shuttles[shuttle_tag], /datum/shuttle/ferry))
+ for (var/shuttle_tag in SSshuttle.shuttles)
+ if (istype(SSshuttle.shuttles[shuttle_tag], /datum/shuttle/ferry))
valid_shuttles += shuttle_tag
var/shuttle_tag = input(user, "Which shuttle's launch do you want to force?") as null|anything in valid_shuttles
if (!shuttle_tag)
return
- var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/S = SSshuttle.shuttles[shuttle_tag]
if (S.can_force())
S.force_launch(user)
log_and_message_admins("forced the [shuttle_tag] shuttle", user)
diff --git a/code/modules/admin/secrets/admin_secrets/move_shuttle.dm b/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
index eeaa86df90f..8b18ff3d6af 100644
--- a/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
+++ b/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
@@ -2,7 +2,7 @@
name = "Move a Shuttle"
/datum/admin_secret_item/admin_secret/move_shuttle/can_execute(var/mob/user)
- if(!shuttle_controller) return 0
+ if(!SSshuttle) return 0
return ..()
/datum/admin_secret_item/admin_secret/move_shuttle/execute(var/mob/user)
@@ -13,10 +13,10 @@
if (confirm == "Cancel")
return
- var/shuttle_tag = input(user, "Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles
+ var/shuttle_tag = input(user, "Which shuttle do you want to jump?") as null|anything in SSshuttle.shuttles
if (!shuttle_tag) return
- var/datum/shuttle/S = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/S = SSshuttle.shuttles[shuttle_tag]
var/origin_area = input(user, "Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
if (!origin_area) return
diff --git a/code/modules/admin/secrets/admin_secrets/prison_warp.dm b/code/modules/admin/secrets/admin_secrets/prison_warp.dm
index 7b1c55b585f..3783832db2f 100644
--- a/code/modules/admin/secrets/admin_secrets/prison_warp.dm
+++ b/code/modules/admin/secrets/admin_secrets/prison_warp.dm
@@ -2,7 +2,7 @@
name = "Prison Warp"
/datum/admin_secret_item/admin_secret/prison_warp/can_execute(var/mob/user)
- if(!ticker) return 0
+ if(!SSticker) return 0
return ..()
/datum/admin_secret_item/admin_secret/prison_warp/execute(var/mob/user)
diff --git a/code/modules/admin/secrets/admin_secrets/show_game_mode.dm b/code/modules/admin/secrets/admin_secrets/show_game_mode.dm
index 3b3c94f0b0e..f0f52a8f0be 100644
--- a/code/modules/admin/secrets/admin_secrets/show_game_mode.dm
+++ b/code/modules/admin/secrets/admin_secrets/show_game_mode.dm
@@ -2,7 +2,7 @@
name = "Show Game Mode"
/datum/admin_secret_item/admin_secret/show_game_mode/can_execute(var/mob/user)
- if(!ticker)
+ if(!SSticker)
return 0
return ..()
@@ -10,5 +10,5 @@
. = ..()
if(!.)
return
- if (ticker.mode) alert("The game mode is [ticker.mode.name]")
- else alert("For some reason there's a ticker, but not a game mode")
+ if (SSticker.mode) alert("The game mode is [SSticker.mode.name]")
+ else alert("For some reason there's a SSticker, but not a game mode")
diff --git a/code/modules/admin/secrets/fun_secrets/send_strike_team.dm b/code/modules/admin/secrets/fun_secrets/send_strike_team.dm
index 9aee563d22e..1ab5e1bb9cf 100644
--- a/code/modules/admin/secrets/fun_secrets/send_strike_team.dm
+++ b/code/modules/admin/secrets/fun_secrets/send_strike_team.dm
@@ -2,7 +2,7 @@
name = "Send Strike Team"
/datum/admin_secret_item/fun_secret/send_strike_team/can_execute(var/mob/user)
- if(!ticker) return 0
+ if(!SSticker) return 0
return ..()
/datum/admin_secret_item/fun_secret/send_strike_team/execute(var/mob/user)
diff --git a/code/modules/admin/secrets/fun_secrets/triple_ai_mode.dm b/code/modules/admin/secrets/fun_secrets/triple_ai_mode.dm
index d6819530a42..6ff8b65cc1a 100644
--- a/code/modules/admin/secrets/fun_secrets/triple_ai_mode.dm
+++ b/code/modules/admin/secrets/fun_secrets/triple_ai_mode.dm
@@ -2,7 +2,7 @@
name = "Triple AI Mode"
/datum/admin_secret_item/fun_secret/triple_ai_mode/can_execute(var/mob/user)
- if(ticker && ticker.current_state > GAME_STATE_PREGAME)
+ if(SSticker && SSticker.current_state > GAME_STATE_PREGAME)
return 0
return ..()
diff --git a/code/modules/admin/secrets/random_events/gravity.dm b/code/modules/admin/secrets/random_events/gravity.dm
index 278edeaf0be..6cf44e9f4c6 100644
--- a/code/modules/admin/secrets/random_events/gravity.dm
+++ b/code/modules/admin/secrets/random_events/gravity.dm
@@ -5,7 +5,7 @@
name = "Toggle Station Artificial Gravity"
/datum/admin_secret_item/random_event/gravity/can_execute(var/mob/user)
- if(!(ticker && ticker.mode))
+ if(!(SSticker && SSticker.mode))
return 0
return ..()
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 43928ed86b7..1cab1199117 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -6,7 +6,7 @@
message_admins("[usr.key] has attempted to override the admin panel!")
return
- if(ticker.mode && ticker.mode.check_antagonists_topic(href, href_list))
+ if(SSticker.mode && SSticker.mode.check_antagonists_topic(href, href_list))
check_antagonists()
return
@@ -200,29 +200,29 @@
else if(href_list["call_shuttle"])
if(!check_rights(R_ADMIN)) return
- if( ticker.mode.name == "blob" )
+ if( SSticker.mode.name == "blob" )
alert("You can't call the shuttle during blob!")
return
switch(href_list["call_shuttle"])
if("1")
- if ((!( ticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !SSemergencyshuttle.location()))
return
- if (emergency_shuttle.can_call())
- emergency_shuttle.call_evac()
+ if (SSemergencyshuttle.can_call())
+ SSemergencyshuttle.call_evac()
log_admin("[key_name(usr)] called the Emergency Shuttle")
message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.", 1)
if("2")
- if (!( ticker ) || !emergency_shuttle.location())
+ if (!( SSticker ) || !SSemergencyshuttle.location())
return
- if (emergency_shuttle.can_call())
- emergency_shuttle.call_evac()
+ if (SSemergencyshuttle.can_call())
+ SSemergencyshuttle.call_evac()
log_admin("[key_name(usr)] called the Emergency Shuttle")
message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.", 1)
- else if (emergency_shuttle.can_recall())
- emergency_shuttle.recall()
+ else if (SSemergencyshuttle.can_recall())
+ SSemergencyshuttle.recall()
log_admin("[key_name(usr)] sent the Emergency Shuttle back")
message_admins("[key_name_admin(usr)] sent the Emergency Shuttle back.", 1)
@@ -231,17 +231,17 @@
else if(href_list["edit_shuttle_time"])
if(!check_rights(R_SERVER)) return
- if (emergency_shuttle.wait_for_launch)
- var/new_time_left = input("Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", emergency_shuttle.estimate_launch_time() ) as num
+ if (SSemergencyshuttle.wait_for_launch)
+ var/new_time_left = input("Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", SSemergencyshuttle.estimate_launch_time() ) as num
- emergency_shuttle.launch_time = world.time + new_time_left*10
+ SSemergencyshuttle.launch_time = world.time + new_time_left*10
log_admin("[key_name(usr)] edited the Emergency Shuttle's launch time to [new_time_left]")
message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's launch time to [new_time_left*10]", 1)
- else if (emergency_shuttle.shuttle.has_arrive_time())
+ else if (SSemergencyshuttle.shuttle.has_arrive_time())
- var/new_time_left = input("Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", emergency_shuttle.estimate_arrival_time() ) as num
- emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10
+ var/new_time_left = input("Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", SSemergencyshuttle.estimate_arrival_time() ) as num
+ SSemergencyshuttle.shuttle.arrive_time = world.time + new_time_left*10
log_admin("[key_name(usr)] edited the Emergency Shuttle's arrival time to [new_time_left]")
message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's arrival time to [new_time_left*10]", 1)
@@ -253,9 +253,9 @@
else if(href_list["delay_round_end"])
if(!check_rights(R_SERVER|R_EVENT)) return
- ticker.delay_end = !ticker.delay_end
- log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
- message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
+ SSticker.delay_end = !SSticker.delay_end
+ log_admin("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
+ message_admins("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
href_list["secretsadmin"] = "check_antagonist"
else if(href_list["simplemake"])
@@ -376,8 +376,13 @@
if(!M.ckey) //sanity
to_chat(usr, "This mob has no ckey")
return
+<<<<<<< HEAD
if(!job_master)
to_chat(usr, "Job Master has not been setup!")
+=======
+ if(!SSjobs)
+ usr << "Job Master has not been setup!"
+>>>>>>> citrp/master
return
var/dat = ""
@@ -397,7 +402,7 @@
jobs += "| Command Positions |
|---|
"
for(var/jobPos in command_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -418,7 +423,7 @@
jobs += "
| Security Positions |
|---|
"
for(var/jobPos in security_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -439,7 +444,7 @@
jobs += "
| Engineering Positions |
|---|
"
for(var/jobPos in engineering_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -460,7 +465,7 @@
jobs += "
| Cargo Positions |
|---|
"
for(var/jobPos in cargo_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -481,7 +486,7 @@
jobs += "
| Medical Positions |
|---|
"
for(var/jobPos in medical_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -502,7 +507,7 @@
jobs += "
| Science Positions |
|---|
"
for(var/jobPos in science_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -523,7 +528,7 @@
jobs += "
| Exploration Positions |
|---|
"
for(var/jobPos in planet_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -544,7 +549,7 @@
jobs += "
| Civilian Positions |
|---|
"
for(var/jobPos in civilian_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -571,7 +576,7 @@
jobs += "
| Non-human Positions |
|---|
"
for(var/jobPos in nonhuman_positions)
if(!jobPos) continue
- var/datum/job/job = job_master.GetJob(jobPos)
+ var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
@@ -648,8 +653,13 @@
alert("You cannot perform this action. You must be of a higher administrative rank!")
return
+<<<<<<< HEAD
if(!job_master)
to_chat(usr, "Job Master has not been setup!")
+=======
+ if(!SSjobs)
+ usr << "Job Master has not been setup!"
+>>>>>>> citrp/master
return
//get jobs for department if specified, otherwise just returnt he one job in a list.
@@ -658,58 +668,58 @@
if("commanddept")
for(var/jobPos in command_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
if("securitydept")
for(var/jobPos in security_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
if("engineeringdept")
for(var/jobPos in engineering_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
if("cargodept")
for(var/jobPos in cargo_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
if("medicaldept")
for(var/jobPos in medical_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
if("sciencedept")
for(var/jobPos in science_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
//VOREStation Edit Start
if("explorationdept")
for(var/jobPos in planet_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
//VOREStation Edit End
if("civiliandept")
for(var/jobPos in civilian_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
if("nonhumandept")
joblist += "pAI"
for(var/jobPos in nonhuman_positions)
if(!jobPos) continue
- var/datum/job/temp = job_master.GetJob(jobPos)
+ var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
else
@@ -936,7 +946,7 @@
else if(href_list["c_mode"])
if(!check_rights(R_ADMIN)) return
- if(ticker && ticker.mode)
+ if(SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
var/dat = {"What mode do you wish to play?
"}
for(var/mode in config_legacy.modes)
@@ -949,7 +959,7 @@
else if(href_list["f_secret"])
if(!check_rights(R_ADMIN)) return
- if(ticker && ticker.mode)
+ if(SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
if(master_mode != "secret")
return alert(usr, "The game mode has to be secret!", null, null, null, null)
@@ -963,7 +973,7 @@
else if(href_list["c_mode2"])
if(!check_rights(R_ADMIN|R_SERVER)) return
- if (ticker && ticker.mode)
+ if (SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
master_mode = href_list["c_mode2"]
log_admin("[key_name(usr)] set the mode as [config_legacy.mode_names[master_mode]].")
@@ -976,7 +986,7 @@
else if(href_list["f_secret2"])
if(!check_rights(R_ADMIN|R_SERVER)) return
- if(ticker && ticker.mode)
+ if(SSticker && SSticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
if(master_mode != "secret")
return alert(usr, "The game mode has to be secret!", null, null, null, null)
@@ -1557,7 +1567,7 @@
else if(href_list["traitor"])
if(!check_rights(R_ADMIN|R_MOD)) return
- if(!ticker || !ticker.mode)
+ if(!SSticker || !SSticker.mode)
alert("The game hasn't started yet!")
return
diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
index 30f42053067..bbc2c51bbe5 100644
--- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm
@@ -1067,8 +1067,8 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
v = SSprojectiles
if("SSfastprocess")
v = SSfastprocess
- if("SSticker")
- v = SSticker
+ if("SSSSticker")
+ v = SSSSticker
if("SStimer")
v = SStimer
if("SSradiation")
diff --git a/code/modules/admin/verbs/cinematic.dm b/code/modules/admin/verbs/cinematic.dm
index a643b370fc4..18dcb0deb19 100644
--- a/code/modules/admin/verbs/cinematic.dm
+++ b/code/modules/admin/verbs/cinematic.dm
@@ -7,7 +7,7 @@
return
if(alert("Are you sure you want to run [cinematic]?","Confirmation","Yes","No")=="No") return
- if(!ticker) return
+ if(!SSticker) return
switch(cinematic)
if("explosion")
if(alert("The game will be over. Are you really sure?", "Confirmation" ,"Continue", "Cancel") == "Cancel")
@@ -19,7 +19,7 @@
override = input(src,"mode = ?","Enter Parameter",null) as anything in list("mercenary","no override")
if(0)
override = input(src,"mode = ?","Enter Parameter",null) as anything in list("blob","mercenary","AI malfunction","no override")
- ticker.station_explosion_cinematic(parameter,override)
+ SSticker.station_explosion_cinematic(parameter,override)
log_admin("[key_name(src)] launched cinematic \"[cinematic]\"")
message_admins("[key_name_admin(src)] launched cinematic \"[cinematic]\"", 1)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 86b7c05e7be..a60e1c53ab3 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -97,7 +97,7 @@
set category = "Fun"
set name = "Make Robot"
- if(!ticker)
+ if(!SSticker)
alert("Wait until the game starts")
return
if(istype(M, /mob/living/carbon/human))
@@ -112,7 +112,7 @@
set category = "Fun"
set name = "Make Simple Animal"
- if(!ticker)
+ if(!SSticker)
alert("Wait until the game starts")
return
@@ -160,7 +160,7 @@
set category = "Fun"
set name = "Make Alien"
- if(!ticker)
+ if(!SSticker)
alert("Wait until the game starts")
return
if(ishuman(M))
@@ -271,7 +271,7 @@
set category = "Admin"
set name = "Grant Full Access"
- if (!ticker)
+ if (!SSticker)
alert("Wait until the game starts")
return
if (istype(M, /mob/living/carbon/human))
@@ -605,7 +605,7 @@
// DNA2 - Admin Hax
/client/proc/cmd_admin_toggle_block(var/mob/M,var/block)
- if(!ticker)
+ if(!SSticker)
alert("Wait until the game starts")
return
if(istype(M, /mob/living/carbon))
diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm
index d6c865c3344..4907df2bd88 100644
--- a/code/modules/admin/verbs/diagnostics.dm
+++ b/code/modules/admin/verbs/diagnostics.dm
@@ -2,8 +2,8 @@
set category = "Debug"
set name = "Show Air Report"
- if(!master_controller || !air_master)
- alert(usr,"Master_controller or air_master not found.","Air Report")
+ if(!air_master)
+ alert(usr,"air_master not found.","Air Report")
return
var/active_groups = air_master.active_zones
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 663c767cfcb..7282dcb9488 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -70,10 +70,6 @@ GLOBAL_LIST_BOILERPLATE(all_debugging_effects, /obj/effect/debugging)
set category = "Mapping"
set name = "Camera Report"
- if(!master_controller)
- alert(usr,"Master_controller not found.","Sec Camera Report")
- return 0
-
var/list/obj/machinery/camera/CL = list()
for(var/obj/machinery/camera/C in cameranet.cameras)
@@ -164,7 +160,6 @@ var/list/debug_verbs = list (
,/datum/admins/proc/setup_supermatter
,/client/proc/atmos_toggle_debug
,/client/proc/spawn_tanktransferbomb
- ,/client/proc/debug_process_scheduler // VOREStation Edit - Nice
,/client/proc/take_picture
)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index f79e12fcfe6..4206dd0cfa2 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -490,7 +490,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
//If desired, apply equipment.
if(equipment)
if(charjob)
- job_master.EquipRank(new_character, charjob, 1)
+ SSjobs.EquipRank(new_character, charjob, 1)
//equip_custom_items(new_character) //VOREStation Removal
//If desired, add records.
@@ -611,8 +611,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
if (!holder)
to_chat(src, "Only administrators may use this command.")
return
- if(job_master)
- for(var/datum/job/job in job_master.occupations)
+ if(SSjobs)
+ for(var/datum/job/job in SSjobs.occupations)
to_chat(src, "[job.title]: [job.total_positions]")
feedback_add_details("admin_verb","LFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -828,7 +828,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Admin"
set name = "Call Shuttle"
- if ((!( ticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !SSemergencyshuttle.location()))
return
if(!check_rights(R_ADMIN|R_EVENT)) return
@@ -837,18 +837,18 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(confirm != "Yes") return
var/choice
- if(ticker.mode.auto_recall_shuttle)
+ if(SSticker.mode.auto_recall_shuttle)
choice = input("The shuttle will just return if you call it. Call anyway?") in list("Confirm", "Cancel")
if(choice == "Confirm")
- emergency_shuttle.auto_recall = 1 //enable auto-recall
+ SSemergencyshuttle.auto_recall = 1 //enable auto-recall
else
return
choice = input("Is this an emergency evacuation or a crew transfer?") in list("Emergency", "Crew Transfer")
if (choice == "Emergency")
- emergency_shuttle.call_evac()
+ SSemergencyshuttle.call_evac()
else
- emergency_shuttle.call_transfer()
+ SSemergencyshuttle.call_transfer()
feedback_add_details("admin_verb","CSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -864,10 +864,10 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") return
- if(!ticker || !emergency_shuttle.can_recall())
+ if(!SSticker || !SSemergencyshuttle.can_recall())
return
- emergency_shuttle.recall()
+ SSemergencyshuttle.recall()
feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] admin-recalled the emergency shuttle.")
message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.", 1)
@@ -878,15 +878,15 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Admin"
set name = "Toggle Deny Shuttle"
- if (!ticker)
+ if (!SSticker)
return
if(!check_rights(R_ADMIN|R_EVENT)) return
- emergency_shuttle.deny_shuttle = !emergency_shuttle.deny_shuttle
+ SSemergencyshuttle.deny_shuttle = !SSemergencyshuttle.deny_shuttle
- log_admin("[key_name(src)] has [emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
- message_admins("[key_name_admin(usr)] has [emergency_shuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
+ log_admin("[key_name(src)] has [SSemergencyshuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
+ message_admins("[key_name_admin(usr)] has [SSemergencyshuttle.deny_shuttle ? "denied" : "allowed"] the shuttle to be called.")
/client/proc/cmd_admin_attack_log(mob/M as mob in mob_list)
set category = "Special Verbs"
@@ -905,12 +905,17 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_FUN)) return
+<<<<<<< HEAD
if (ticker && ticker.mode)
to_chat(usr, "Nope you can't do this, the game's already started. This only works before rounds!")
+=======
+ if (SSticker && SSticker.mode)
+ usr << "Nope you can't do this, the game's already started. This only works before rounds!"
+>>>>>>> citrp/master
return
- if(ticker.random_players)
- ticker.random_players = 0
+ if(SSticker.random_players)
+ SSticker.random_players = 0
message_admins("Admin [key_name_admin(usr)] has disabled \"Everyone is Special\" mode.", 1)
to_chat(usr, "Disabled.")
return
@@ -928,7 +933,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
to_chat(usr, "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet.")
- ticker.random_players = 1
+ SSticker.random_players = 1
feedback_add_details("admin_verb","MER") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm
index 66c9a216c91..566c4856e9b 100644
--- a/code/modules/admin/verbs/striketeam.dm
+++ b/code/modules/admin/verbs/striketeam.dm
@@ -10,8 +10,13 @@ var/const/commandos_possible = 6 //if more Commandos are needed in the future
to_chat(src, "Only administrators may use this command.")
return
+<<<<<<< HEAD
if(!ticker)
to_chat(usr, "The game hasn't started yet!")
+=======
+ if(!SSticker)
+ usr << "The game hasn't started yet!"
+>>>>>>> citrp/master
return
if(world.time < 6000)
diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm
index 8c4c6b382a0..55883a13635 100644
--- a/code/modules/admin/verbs/tripAI.dm
+++ b/code/modules/admin/verbs/tripAI.dm
@@ -2,15 +2,21 @@
set category = "Fun"
set name = "Create AI Triumvirate"
+<<<<<<< HEAD
if(ticker.current_state > GAME_STATE_PREGAME)
to_chat(usr, "This option is currently only usable during pregame. This may change at a later date.")
+=======
+ if(SSticker.current_state > GAME_STATE_PREGAME)
+ usr << "This option is currently only usable during pregame. This may change at a later date."
+>>>>>>> citrp/master
return
- if(job_master && ticker)
- var/datum/job/job = job_master.GetJob("AI")
+ if(SSjobs && SSticker)
+ var/datum/job/job = SSjobs.GetJob("AI")
if(!job)
to_chat(usr, "Unable to locate the AI job")
return
+<<<<<<< HEAD
if(ticker.triai)
ticker.triai = 0
to_chat(usr, "Only one AI will be spawned at round start.")
@@ -18,5 +24,14 @@
else
ticker.triai = 1
to_chat(usr, "There will be an AI Triumvirate at round start.")
+=======
+ if(SSticker.triai)
+ SSticker.triai = 0
+ usr << "Only one AI will be spawned at round start."
+ message_admins("[key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
+ else
+ SSticker.triai = 1
+ usr << "There will be an AI Triumvirate at round start."
+>>>>>>> citrp/master
message_admins("[key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
return
diff --git a/code/modules/ai/__readme.dm b/code/modules/ai/__readme.dm
index 85b49ec6cb7..c219e4647b6 100644
--- a/code/modules/ai/__readme.dm
+++ b/code/modules/ai/__readme.dm
@@ -15,7 +15,7 @@ its 'ai_holder_type' variable to the path of the AI that is desired.
In previous iterations of AI systems, the AI is generally written into the mob's code directly,
which has some advantages, but often makes the code rigid, and also tied the speed of the AI
-to the mob's own ticker, meaning it could only decide every two seconds.
+to the mob's own SSticker, meaning it could only decide every two seconds.
Instead, this version has the code for the AI held inside an /datum/ai_holder object,
which is carried by the mob it controls. This gives some advantages;
diff --git a/code/modules/ai/ai_holder.dm b/code/modules/ai/ai_holder.dm
index 4ef5507d5b3..d3fa85f8f2f 100644
--- a/code/modules/ai/ai_holder.dm
+++ b/code/modules/ai/ai_holder.dm
@@ -20,7 +20,7 @@
var/stance = STANCE_IDLE // Determines if the mob should be doing a specific thing, e.g. attacking, following, standing around, etc.
var/intelligence_level = AI_NORMAL // Adjust to make the AI be intentionally dumber, or make it more robust (e.g. dodging grenades).
var/autopilot = FALSE // If true, the AI won't be deactivated if a client gets attached to the AI's mob.
- var/busy = FALSE // If true, the ticker will skip processing this mob until this is false. Good for if you need the
+ var/busy = FALSE // If true, the SSticker will skip processing this mob until this is false. Good for if you need the
// mob to stay still (e.g. delayed attacking). If you need the mob to be inactive for an extended period of time,
// consider sleeping the AI instead.
diff --git a/code/ATMOSPHERICS/_atmos_setup.dm b/code/modules/atmospherics/_atmos_setup.dm
similarity index 96%
rename from code/ATMOSPHERICS/_atmos_setup.dm
rename to code/modules/atmospherics/_atmos_setup.dm
index 6af102cf384..dcd4c891de9 100644
--- a/code/ATMOSPHERICS/_atmos_setup.dm
+++ b/code/modules/atmospherics/_atmos_setup.dm
@@ -6,14 +6,6 @@
// atmospherics devices.
//--------------------------------------------
-#define PIPE_COLOR_GREY "#ffffff" //yes white is grey
-#define PIPE_COLOR_RED "#ff0000"
-#define PIPE_COLOR_BLUE "#0000ff"
-#define PIPE_COLOR_CYAN "#00ffff"
-#define PIPE_COLOR_GREEN "#00ff00"
-#define PIPE_COLOR_YELLOW "#ffcc00"
-#define PIPE_COLOR_BLACK "#444444"
-#define PIPE_COLOR_PURPLE "#5c1ec0"
var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "black" = PIPE_COLOR_BLACK, "purple" = PIPE_COLOR_PURPLE)
diff --git a/code/ATMOSPHERICS/_atmospherics_helpers.dm b/code/modules/atmospherics/_atmospherics_helpers.dm
similarity index 100%
rename from code/ATMOSPHERICS/_atmospherics_helpers.dm
rename to code/modules/atmospherics/_atmospherics_helpers.dm
diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/modules/atmospherics/atmospherics.dm
similarity index 100%
rename from code/ATMOSPHERICS/atmospherics.dm
rename to code/modules/atmospherics/atmospherics.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/algae_generator_vr.dm b/code/modules/atmospherics/components/binary_devices/algae_generator_vr.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/algae_generator_vr.dm
rename to code/modules/atmospherics/components/binary_devices/algae_generator_vr.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/modules/atmospherics/components/binary_devices/binary_atmos_base.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
rename to code/modules/atmospherics/components/binary_devices/binary_atmos_base.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/modules/atmospherics/components/binary_devices/circulator.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/circulator.dm
rename to code/modules/atmospherics/components/binary_devices/circulator.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
rename to code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/components/binary_devices/passive_gate.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
rename to code/modules/atmospherics/components/binary_devices/passive_gate.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate_vr.dm b/code/modules/atmospherics/components/binary_devices/passive_gate_vr.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/passive_gate_vr.dm
rename to code/modules/atmospherics/components/binary_devices/passive_gate_vr.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm b/code/modules/atmospherics/components/binary_devices/pipeturbine.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm
rename to code/modules/atmospherics/components/binary_devices/pipeturbine.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/modules/atmospherics/components/binary_devices/pump.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/pump.dm
rename to code/modules/atmospherics/components/binary_devices/pump.dm
diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/components/binary_devices/volume_pump.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/binary_devices/volume_pump.dm
rename to code/modules/atmospherics/components/binary_devices/volume_pump.dm
diff --git a/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm b/code/modules/atmospherics/components/omni_devices/_omni_extras.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm
rename to code/modules/atmospherics/components/omni_devices/_omni_extras.dm
diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/modules/atmospherics/components/omni_devices/filter.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/omni_devices/filter.dm
rename to code/modules/atmospherics/components/omni_devices/filter.dm
diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/modules/atmospherics/components/omni_devices/mixer.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/omni_devices/mixer.dm
rename to code/modules/atmospherics/components/omni_devices/mixer.dm
diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/modules/atmospherics/components/omni_devices/omni_base.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/omni_devices/omni_base.dm
rename to code/modules/atmospherics/components/omni_devices/omni_base.dm
diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/modules/atmospherics/components/portables_connector.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/portables_connector.dm
rename to code/modules/atmospherics/components/portables_connector.dm
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/modules/atmospherics/components/trinary_devices/filter.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/trinary_devices/filter.dm
rename to code/modules/atmospherics/components/trinary_devices/filter.dm
diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/modules/atmospherics/components/trinary_devices/mixer.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/trinary_devices/mixer.dm
rename to code/modules/atmospherics/components/trinary_devices/mixer.dm
diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/modules/atmospherics/components/trinary_devices/trinary_base.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
rename to code/modules/atmospherics/components/trinary_devices/trinary_base.dm
diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/modules/atmospherics/components/tvalve.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/tvalve.dm
rename to code/modules/atmospherics/components/tvalve.dm
diff --git a/code/ATMOSPHERICS/components/unary/cold_sink.dm b/code/modules/atmospherics/components/unary/cold_sink.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/cold_sink.dm
rename to code/modules/atmospherics/components/unary/cold_sink.dm
diff --git a/code/ATMOSPHERICS/components/unary/generator_input.dm b/code/modules/atmospherics/components/unary/generator_input.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/generator_input.dm
rename to code/modules/atmospherics/components/unary/generator_input.dm
diff --git a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm b/code/modules/atmospherics/components/unary/heat_exchanger.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/heat_exchanger.dm
rename to code/modules/atmospherics/components/unary/heat_exchanger.dm
diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/modules/atmospherics/components/unary/heat_source.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/heat_source.dm
rename to code/modules/atmospherics/components/unary/heat_source.dm
diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/modules/atmospherics/components/unary/outlet_injector.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/outlet_injector.dm
rename to code/modules/atmospherics/components/unary/outlet_injector.dm
diff --git a/code/ATMOSPHERICS/components/unary/oxygen_generator.dm b/code/modules/atmospherics/components/unary/oxygen_generator.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/oxygen_generator.dm
rename to code/modules/atmospherics/components/unary/oxygen_generator.dm
diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/modules/atmospherics/components/unary/unary_base.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/unary_base.dm
rename to code/modules/atmospherics/components/unary/unary_base.dm
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/modules/atmospherics/components/unary/vent_pump.dm
similarity index 95%
rename from code/ATMOSPHERICS/components/unary/vent_pump.dm
rename to code/modules/atmospherics/components/unary/vent_pump.dm
index 5b53aa130fc..616e3e20965 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/modules/atmospherics/components/unary/vent_pump.dm
@@ -216,16 +216,6 @@
transfer_moles = min(transfer_moles, environment.total_moles*air_contents.volume/environment.volume) //group_multiplier gets divided out here
power_draw = pump_gas(src, environment, air_contents, transfer_moles, power_rating)
- else
- //If we're in an area that is fucking ideal, and we don't have to do anything, chances are we won't next tick either so why redo these calculations?
- //JESUS FUCK. THERE ARE LITERALLY 250 OF YOU MOTHERFUCKERS ON ZLEVEL ONE AND YOU DO THIS SHIT EVERY TICK WHEN VERY OFTEN THERE IS NO REASON TO
-
- if(pump_direction && pressure_checks == PRESSURE_CHECK_EXTERNAL && controller_iteration > 10) //99% of all vents
- //Fucking hibernate because you ain't doing shit.
- hibernate = 1
- spawn(rand(100,200)) //hibernate for 10 or 20 seconds randomly
- hibernate = 0
-
if (power_draw >= 0)
last_power_draw = power_draw
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/modules/atmospherics/components/unary/vent_scrubber.dm
similarity index 97%
rename from code/ATMOSPHERICS/components/unary/vent_scrubber.dm
rename to code/modules/atmospherics/components/unary/vent_scrubber.dm
index 853fa4130e7..c2b754b462c 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/modules/atmospherics/components/unary/vent_scrubber.dm
@@ -154,11 +154,6 @@
power_draw = pump_gas(src, environment, air_contents, transfer_moles, power_rating)
- if(scrubbing && power_draw < 0 && controller_iteration > 10) //99% of all scrubbers
- //Fucking hibernate because you ain't doing shit.
- hibernate = 1
- spawn(rand(100,200)) //hibernate for 10 or 20 seconds randomly
- hibernate = 0
if (power_draw >= 0)
last_power_draw = power_draw
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber_vr.dm b/code/modules/atmospherics/components/unary/vent_scrubber_vr.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/vent_scrubber_vr.dm
rename to code/modules/atmospherics/components/unary/vent_scrubber_vr.dm
diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/modules/atmospherics/components/valve.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/valve.dm
rename to code/modules/atmospherics/components/valve.dm
diff --git a/code/ATMOSPHERICS/datum_pipe_network.dm b/code/modules/atmospherics/datum_pipe_network.dm
similarity index 100%
rename from code/ATMOSPHERICS/datum_pipe_network.dm
rename to code/modules/atmospherics/datum_pipe_network.dm
diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/modules/atmospherics/datum_pipeline.dm
similarity index 100%
rename from code/ATMOSPHERICS/datum_pipeline.dm
rename to code/modules/atmospherics/datum_pipeline.dm
diff --git a/code/ATMOSPHERICS/mainspipe.dm b/code/modules/atmospherics/mainspipe.dm
similarity index 100%
rename from code/ATMOSPHERICS/mainspipe.dm
rename to code/modules/atmospherics/mainspipe.dm
diff --git a/code/ATMOSPHERICS/pipes/cap.dm b/code/modules/atmospherics/pipes/cap.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/cap.dm
rename to code/modules/atmospherics/pipes/cap.dm
diff --git a/code/ATMOSPHERICS/pipes/he_pipes.dm b/code/modules/atmospherics/pipes/he_pipes.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/he_pipes.dm
rename to code/modules/atmospherics/pipes/he_pipes.dm
diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/modules/atmospherics/pipes/manifold.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/manifold.dm
rename to code/modules/atmospherics/pipes/manifold.dm
diff --git a/code/ATMOSPHERICS/pipes/manifold4w.dm b/code/modules/atmospherics/pipes/manifold4w.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/manifold4w.dm
rename to code/modules/atmospherics/pipes/manifold4w.dm
diff --git a/code/ATMOSPHERICS/pipes/pipe_base.dm b/code/modules/atmospherics/pipes/pipe_base.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/pipe_base.dm
rename to code/modules/atmospherics/pipes/pipe_base.dm
diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/modules/atmospherics/pipes/simple.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/simple.dm
rename to code/modules/atmospherics/pipes/simple.dm
diff --git a/code/ATMOSPHERICS/pipes/tank.dm b/code/modules/atmospherics/pipes/tank.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/tank.dm
rename to code/modules/atmospherics/pipes/tank.dm
diff --git a/code/ATMOSPHERICS/pipes/universal.dm b/code/modules/atmospherics/pipes/universal.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/universal.dm
rename to code/modules/atmospherics/pipes/universal.dm
diff --git a/code/ATMOSPHERICS/pipes/vent.dm b/code/modules/atmospherics/pipes/vent.dm
similarity index 100%
rename from code/ATMOSPHERICS/pipes/vent.dm
rename to code/modules/atmospherics/pipes/vent.dm
diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm
index ca2bc4d787b..a3f7ebf8b4a 100644
--- a/code/modules/client/preference_setup/occupation/occupation.dm
+++ b/code/modules/client/preference_setup/occupation/occupation.dm
@@ -46,16 +46,16 @@
pref.job_engsec_low = sanitize_integer(pref.job_engsec_low, 0, 65535, initial(pref.job_engsec_low))
if(!(pref.player_alt_titles)) pref.player_alt_titles = new()
- if(!job_master)
+ if(!SSjobs)
return
- for(var/datum/job/job in job_master.occupations)
+ for(var/datum/job/job in SSjobs.occupations)
var/alt_title = pref.player_alt_titles[job.title]
if(alt_title && !(alt_title in job.alt_titles))
pref.player_alt_titles -= job.title
/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 20, list/splitJobs = list("Pathfinder")) //VOREStation Edit
- if(!job_master)
+ if(!SSjobs)
return
. = list()
@@ -67,8 +67,8 @@
//The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
var/datum/job/lastJob
- if (!job_master) return
- for(var/datum/job/job in job_master.occupations)
+ if (!SSjobs) return
+ for(var/datum/job/job in SSjobs.occupations)
if(job.latejoin_only) continue //VOREStation Code
if((++index >= limit) || (job.title in splitJobs))
/*******
@@ -176,7 +176,7 @@
pref.player_alt_titles[job.title] = new_title
/datum/category_item/player_setup_item/occupation/proc/SetJob(mob/user, role)
- var/datum/job/job = job_master.GetJob(role)
+ var/datum/job/job = SSjobs.GetJob(role)
if(!job)
return 0
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 2ceba20b057..7b266edb199 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -401,7 +401,7 @@
icon_state = "pvest"
desc = "A simple kevlar plate carrier. This one has the word 'Press' embroidered on patches on the back and front."
item_state_slots = list(slot_r_hand_str = "armor", slot_l_hand_str = "armor")
- allowed = list(/obj/item/flashlight,/obj/item/taperecorder,/obj/item/pen,/obj/item/camera_film,/obj/item/camera,/obj/item/clothing/head/helmet)
+ allowed = list(/obj/item/flashlight,/obj/item/tape_recorder,/obj/item/pen,/obj/item/camera_film,/obj/item/camera,/obj/item/clothing/head/helmet)
/obj/item/clothing/suit/storage/vest/heavy
name = "heavy armor vest"
diff --git a/code/modules/clothing/suits/hooded.dm b/code/modules/clothing/suits/hooded.dm
index d442d496400..d52a018470b 100644
--- a/code/modules/clothing/suits/hooded.dm
+++ b/code/modules/clothing/suits/hooded.dm
@@ -169,7 +169,7 @@
allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes,
/obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/analyzer, /obj/item/flashlight,
/obj/item/multitool, /obj/item/pipe_painter, /obj/item/radio, /obj/item/t_scanner, /obj/item/tool/crowbar, /obj/item/tool/screwdriver,
- /obj/item/weldingtool, /obj/item/tool/wirecutters, /obj/item/tool/wrench, /obj/item/tank/emergency/oxygen, /obj/item/clothing/mask/gas, /obj/item/taperoll/engineering)
+ /obj/item/weldingtool, /obj/item/tool/wirecutters, /obj/item/tool/wrench, /obj/item/tank/emergency/oxygen, /obj/item/clothing/mask/gas, /obj/item/barrier_tape_roll/engineering)
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos
name = "atmospherics winter coat"
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 77ff08f90d1..aa7811e3954 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -111,7 +111,7 @@
flags_inv = HIDEHOLSTER
allowed = list(/obj/item/gun/projectile/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight, /obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_magazine,
/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/flame/lighter,
- /obj/item/taperecorder, /obj/item/uv_light)
+ /obj/item/tape_recorder, /obj/item/uv_light)
armor = list(melee = 10, bullet = 10, laser = 15, energy = 10, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/suit/storage/det_trench/grey
@@ -128,7 +128,7 @@
flags_inv = HIDEHOLSTER
allowed = list(/obj/item/gun/projectile/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight, /obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_magazine,
/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/flame/lighter,
- /obj/item/taperecorder, /obj/item/uv_light)
+ /obj/item/tape_recorder, /obj/item/uv_light)
armor = list(melee = 10, bullet = 10, laser = 15, energy = 10, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/suit/storage/forensics/red
@@ -161,7 +161,7 @@
blood_overlay_type = "armor"
allowed = list (/obj/item/analyzer, /obj/item/flashlight, /obj/item/multitool, /obj/item/pipe_painter, /obj/item/radio, /obj/item/t_scanner,
/obj/item/tool/crowbar, /obj/item/tool/screwdriver, /obj/item/weldingtool, /obj/item/tool/wirecutters, /obj/item/tool/wrench, /obj/item/tank/emergency/oxygen,
- /obj/item/clothing/mask/gas, /obj/item/taperoll/engineering)
+ /obj/item/clothing/mask/gas, /obj/item/barrier_tape_roll/engineering)
body_parts_covered = UPPER_TORSO
/obj/item/clothing/suit/storage/hazardvest/blue
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 584930f69cb..474ba65d631 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -314,7 +314,7 @@ obj/item/clothing/suit/kamishimo
desc = "A rugged canvas trenchcoat, designed and created by TX Fabrication Corp. The coat appears to have its kevlar lining removed."
icon_state = "detective"
blood_overlay_type = "coat"
- allowed = list(/obj/item/gun/projectile/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/energy,/obj/item/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/taperecorder,/obj/item/uv_light)
+ allowed = list(/obj/item/gun/projectile/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/energy,/obj/item/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light)
flags_inv = HIDEHOLSTER
/obj/item/clothing/suit/storage/trench/grey
diff --git a/code/modules/clothing/suits/solgov.dm b/code/modules/clothing/suits/solgov.dm
index c4b0dabbb30..04493436468 100644
--- a/code/modules/clothing/suits/solgov.dm
+++ b/code/modules/clothing/suits/solgov.dm
@@ -11,7 +11,7 @@
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 0.9
flags_inv = HIDEHOLSTER //VOREStation Add - These obviously do.
- allowed = list(/obj/item/tank/emergency/oxygen,/obj/item/flashlight,/obj/item/pen,/obj/item/clothing/head/soft,/obj/item/clothing/head/beret,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/taperecorder,/obj/item/analyzer,/obj/item/radio,/obj/item/taperoll)
+ allowed = list(/obj/item/tank/emergency/oxygen,/obj/item/flashlight,/obj/item/pen,/obj/item/clothing/head/soft,/obj/item/clothing/head/beret,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/analyzer,/obj/item/radio,/obj/item/barrier_tape_roll)
/obj/item/clothing/suit/storage/service/sifguard
name = "\improper SifGuard jacket"
diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm
index 23e205c809b..f7b7d9e5e5b 100644
--- a/code/modules/clothing/under/accessories/accessory_vr.dm
+++ b/code/modules/clothing/under/accessories/accessory_vr.dm
@@ -74,7 +74,7 @@
/obj/item/clothing/accessory/collar/shock/Topic(href, href_list)
if(usr.stat || usr.restrained())
return
- if(((istype(usr, /mob/living/carbon/human) && ((!( ticker ) || (ticker && ticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf)))))
+ if(((istype(usr, /mob/living/carbon/human) && ((!( SSticker ) || (SSticker && SSticker.mode != "monkey")) && usr.contents.Find(src))) || (usr.contents.Find(master) || (in_range(src, usr) && istype(loc, /turf)))))
usr.set_machine(src)
if(href_list["freq"])
var/new_frequency = sanitize_frequency(frequency + text2num(href_list["freq"]))
diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm
index b15819b4ec2..45ad61b3a3f 100644
--- a/code/modules/events/event_dynamic.dm
+++ b/code/modules/events/event_dynamic.dm
@@ -3,7 +3,7 @@
/proc/start_events()
//changed to a while(1) loop since they are more efficient.
//Moved the spawn in here to allow it to be called with advance proc call if it crashes.
- //and also to stop spawn copying variables from the game ticker
+ //and also to stop spawn copying variables from the game SSticker
spawn(3000)
while(1)
/*if(prob(50))//Every 120 seconds and prob 50 2-4 weak spacedusts will hit the station
diff --git a/code/modules/events/shipping_error.dm b/code/modules/events/shipping_error.dm
index 6b0924b6f7a..659f2f7de84 100644
--- a/code/modules/events/shipping_error.dm
+++ b/code/modules/events/shipping_error.dm
@@ -1,6 +1,6 @@
/datum/event/shipping_error/start()
var/datum/supply_order/O = new /datum/supply_order()
- O.ordernum = supply_controller.ordernum
- O.object = supply_controller.supply_pack[pick(supply_controller.supply_pack)]
+ O.ordernum = SSsupply.ordernum
+ O.object = SSsupply.supply_pack[pick(SSsupply.supply_pack)]
O.ordered_by = random_name(pick(MALE,FEMALE), species = SPECIES_HUMAN)
- supply_controller.shoppinglist += O
\ No newline at end of file
+ SSsupply.shoppinglist += O
\ No newline at end of file
diff --git a/code/modules/events/supply_demand.dm b/code/modules/events/supply_demand.dm
index 419b69dba37..6813477bf4f 100644
--- a/code/modules/events/supply_demand.dm
+++ b/code/modules/events/supply_demand.dm
@@ -72,7 +72,7 @@
// Check if the crew succeeded or failed!
if(required_items.len == 0)
// Success!
- supply_controller.points += 100 * severity
+ SSsupply.points += 100 * severity
var/msg = "Great work! With those items you delivered our inventory levels all match up. "
msg += "[capitalize(pick(first_names_female))] from accounting will have nothing to complain about. "
msg += "I think you'll find a little something in your supply account."
diff --git a/code/modules/gamemaster/actions/action.dm b/code/modules/gamemaster/actions/_action.dm
similarity index 94%
rename from code/modules/gamemaster/actions/action.dm
rename to code/modules/gamemaster/actions/_action.dm
index f8ea16994ec..218318fae72 100644
--- a/code/modules/gamemaster/actions/action.dm
+++ b/code/modules/gamemaster/actions/_action.dm
@@ -6,7 +6,7 @@
var/reusable = FALSE // If true, the event does not become disabled upon being used. Should be used sparingly.
var/observers_used = FALSE // Determines if the GM should check if ghosts are available before using this.
var/length = 0 // Determines how long the event lasts, until end() is called.
- var/datum/game_master/gm = null
+ var/datum/controller/subsystem/gamemaster/gm = null
var/severity = 1 // The severity of the action. This is here to prevent continued future defining of this var on actions, un-used.
/datum/gm_action/proc/set_up()
diff --git a/code/modules/gamemaster/actions/shipping_error.dm b/code/modules/gamemaster/actions/shipping_error.dm
index 33520f13a37..5a0583e2a83 100644
--- a/code/modules/gamemaster/actions/shipping_error.dm
+++ b/code/modules/gamemaster/actions/shipping_error.dm
@@ -11,7 +11,7 @@
/datum/gm_action/shipping_error/start()
..()
var/datum/supply_order/O = new /datum/supply_order()
- O.ordernum = supply_controller.ordernum
- O.object = supply_controller.supply_pack[pick(supply_controller.supply_pack)]
+ O.ordernum = SSsupply.ordernum
+ O.object = SSsupply.supply_pack[pick(SSsupply.supply_pack)]
O.ordered_by = random_name(pick(MALE,FEMALE), species = "Human")
- supply_controller.shoppinglist += O
\ No newline at end of file
+ SSsupply.shoppinglist += O
\ No newline at end of file
diff --git a/code/modules/gamemaster/actions/stowaway.dm b/code/modules/gamemaster/actions/stowaway.dm
index deeb1d2a7ec..b218a483bda 100644
--- a/code/modules/gamemaster/actions/stowaway.dm
+++ b/code/modules/gamemaster/actions/stowaway.dm
@@ -58,7 +58,7 @@
var/obj/structure/ghost_pod/ghost_activated/human/HP = new (target_turf)
- if(severity == EVENT_LEVEL_MUNDANE || istype(ticker.mode, /datum/game_mode/extended))
+ if(severity == EVENT_LEVEL_MUNDANE || istype(SSticker.mode, /datum/game_mode/extended))
HP.make_antag = MODE_STOWAWAY
else if(severity == EVENT_LEVEL_MODERATE)
diff --git a/code/modules/gamemaster/actions/supply_conversion.dm b/code/modules/gamemaster/actions/supply_conversion.dm
index 5f05a8cb04d..0f758024944 100644
--- a/code/modules/gamemaster/actions/supply_conversion.dm
+++ b/code/modules/gamemaster/actions/supply_conversion.dm
@@ -5,14 +5,14 @@
chaotic = 0
reusable = TRUE
- var/datum/controller/supply/SC
+ var/datum/controller/subsystem/supply/SC
var/running = FALSE
var/last_run
var/thaler_earned
/datum/gm_action/nanotrasen_budget_allocation/set_up()
- SC = supply_controller
+ SC = SSsupply
running = TRUE
return
diff --git a/code/modules/gamemaster/controller.dm b/code/modules/gamemaster/controller.dm
index 343f05842d1..3b1dd25a4d3 100644
--- a/code/modules/gamemaster/controller.dm
+++ b/code/modules/gamemaster/controller.dm
@@ -3,9 +3,9 @@
set name = "Show GM Status"
set desc = "Shows you what the GM is thinking. If only that existed in real life..."
- game_master.interact(usr)
+ SSgamemaster.interact(usr)
-/datum/game_master/proc/interact(var/client/user)
+/datum/controller/subsystem/gamemaster/proc/interact(var/client/user)
if(!user)
return
@@ -45,7 +45,7 @@
HTML +=""
user << browse(HTML, "window=log;size=400x450;border=1;can_resize=1;can_close=1;can_minimize=1")
-/datum/game_master/Topic(href, href_list)
+/datum/controller/subsystem/gamemaster/Topic(href, href_list)
if(..())
return
diff --git a/code/modules/gamemaster/helpers.dm b/code/modules/gamemaster/helpers.dm
index da05cb1b20c..7b5c04aade1 100644
--- a/code/modules/gamemaster/helpers.dm
+++ b/code/modules/gamemaster/helpers.dm
@@ -1,9 +1,9 @@
// Tell the game master that something dangerous happened, e.g. someone dying.
-/datum/game_master/proc/adjust_danger(var/amt)
+/datum/controller/subsystem/gamemaster/proc/adjust_danger(var/amt)
amt = amt * danger_modifier
danger = round( CLAMP(danger + amt, 0, 1000), 0.1)
// Tell the game master that something interesting happened.
-/datum/game_master/proc/adjust_staleness(var/amt)
+/datum/controller/subsystem/gamemaster/proc/adjust_staleness(var/amt)
amt = amt * staleness_modifier
staleness = round( CLAMP(staleness + amt, -50, 200), 0.1)
\ No newline at end of file
diff --git a/code/modules/holomap/station_holomap.dm b/code/modules/holomap/station_holomap.dm
index 2bef9328201..7a724edbb4b 100644
--- a/code/modules/holomap/station_holomap.dm
+++ b/code/modules/holomap/station_holomap.dm
@@ -125,7 +125,7 @@
watching_mob = user
GLOB.moved_event.register(watching_mob, src, /obj/machinery/station_map/proc/checkPosition)
GLOB.dir_set_event.register(watching_mob, src, /obj/machinery/station_map/proc/checkPosition)
- GLOB.destroyed_event.register(watching_mob, src, /obj/machinery/station_map/proc/stopWatching)
+ RegisterSignal(watching_mob, COMSIG_PARENT_QDELETING, .proc/stopWatching)
update_use_power(2)
if(bogus)
@@ -154,7 +154,7 @@
M.client.images -= holomap_datum.station_map
GLOB.moved_event.unregister(watching_mob, src)
GLOB.dir_set_event.unregister(watching_mob, src)
- GLOB.destroyed_event.unregister(watching_mob, src)
+ UnregisterSignal(watching_mob, COMSIG_PARENT_QDELETING)
watching_mob = null
update_use_power(1)
diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm
index c4966579b44..6f38e89b145 100644
--- a/code/modules/integrated_electronics/subtypes/manipulation.dm
+++ b/code/modules/integrated_electronics/subtypes/manipulation.dm
@@ -188,14 +188,14 @@
// These procs do not relocate the grenade, that's the callers responsibility
/obj/item/integrated_circuit/manipulation/grenade/proc/attach_grenade(var/obj/item/grenade/G)
attached_grenade = G
- GLOB.destroyed_event.register(attached_grenade, src, /obj/item/integrated_circuit/manipulation/grenade/proc/detach_grenade)
+ RegisterSignal(attached_grenade, COMSIG_PARENT_QDELETING, .proc/detach_grenade)
size += G.w_class
desc += " \An [attached_grenade] is attached to it!"
/obj/item/integrated_circuit/manipulation/grenade/proc/detach_grenade()
if(!attached_grenade)
return
- GLOB.destroyed_event.unregister(attached_grenade, src, /obj/item/integrated_circuit/manipulation/grenade/proc/detach_grenade)
+ UnregisterSignal(attached_grenade, COMSIG_PARENT_QDELETING)
attached_grenade = null
size = initial(size)
desc = initial(desc)
diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm
index df8e686b1f7..1061904607d 100644
--- a/code/modules/integrated_electronics/subtypes/time.dm
+++ b/code/modules/integrated_electronics/subtypes/time.dm
@@ -27,8 +27,8 @@
addtimer(CALLBACK(src, .proc/activate_pin, 2), delay)
-/obj/item/integrated_circuit/time/ticker
- name = "ticker circuit"
+/obj/item/integrated_circuit/time/SSticker
+ name = "SSticker circuit"
desc = "This circuit sends an automatic pulse every given interval, defined in tenths of a second."
extended_desc ="This circuit sends an automatic pulse every given interval, defined in tenths of a second. \
For example, setting the time pin to 4 will send a pulse every 0.4 seconds, or 15 for every 1.5 seconds.
\
@@ -48,7 +48,7 @@
// and the circuit cooldown and will hopefully discourage stupidly fast ticking machines.
var/max_power_draw = 500
-/obj/item/integrated_circuit/time/ticker/on_data_written()
+/obj/item/integrated_circuit/time/SSticker/on_data_written()
var/delay_input = get_pin_data(IC_INPUT, 2)
if(delay_input && isnum(delay_input) )
var/new_delay = CLAMP(delay_input, 1, 1 HOUR)
@@ -63,7 +63,7 @@
is_running = FALSE
-/obj/item/integrated_circuit/time/ticker/proc/tick()
+/obj/item/integrated_circuit/time/SSticker/proc/tick()
if(is_running && check_power())
addtimer(CALLBACK(src, .proc/tick), delay)
if(world.time > next_fire)
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index 3d633a0db57..320e0092866 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -337,11 +337,11 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
if(!bibledelay)
var/obj/item/storage/bible/B = new /obj/item/storage/bible(src.loc)
- if(ticker && ( ticker.Bible_icon_state && ticker.Bible_item_state) )
- B.icon_state = ticker.Bible_icon_state
- B.item_state = ticker.Bible_item_state
- B.name = ticker.Bible_name
- B.deity_name = ticker.Bible_deity_name
+ if(SSticker && ( SSticker.Bible_icon_state && SSticker.Bible_item_state) )
+ B.icon_state = SSticker.Bible_icon_state
+ B.item_state = SSticker.Bible_item_state
+ B.name = SSticker.Bible_name
+ B.deity_name = SSticker.Bible_deity_name
bibledelay = 1
spawn(60)
diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm
index a40e103a0a0..cd61966bdbc 100644
--- a/code/modules/mining/abandonedcrates.dm
+++ b/code/modules/mining/abandonedcrates.dm
@@ -30,7 +30,7 @@
new/obj/item/flame/lighter/zippo(src)
if(6 to 10)
new/obj/item/pickaxe/drill(src)
- new/obj/item/taperecorder(src)
+ new/obj/item/tape_recorder(src)
new/obj/item/clothing/suit/space(src)
new/obj/item/clothing/head/helmet/space(src)
if(11 to 15)
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index 1f0f912c4f2..8d6d83859ae 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -104,7 +104,7 @@ turf/simulated/mineral/floor/light_corner
/turf/simulated/mineral/proc/update_general()
update_icon(1)
recalc_atom_opacity()
- if(ticker && ticker.current_state == GAME_STATE_PLAYING)
+ if(SSticker && SSticker.current_state == GAME_STATE_PLAYING)
reconsider_lights()
if(air_master)
air_master.mark_for_update(src)
@@ -287,7 +287,7 @@ turf/simulated/mineral/floor/light_corner
//Not even going to touch this pile of spaghetti
/turf/simulated/mineral/attackby(obj/item/W as obj, mob/user as mob)
- if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
+ if (!(istype(usr, /mob/living/carbon/human) || SSticker) && SSticker.mode.name != "monkey")
to_chat(user, "You don't have the dexterity to do this!")
return
diff --git a/code/modules/mob/dead/observer/free_vr.dm b/code/modules/mob/dead/observer/free_vr.dm
index dca361725f6..71ab6f6b352 100644
--- a/code/modules/mob/dead/observer/free_vr.dm
+++ b/code/modules/mob/dead/observer/free_vr.dm
@@ -41,7 +41,7 @@ var/global/list/prevent_respawns = list()
//Job slot cleanup
var/job = src.mind.assigned_role
- job_master.FreeRole(job)
+ SSjobs.FreeRole(job)
//Their objectives cleanup
if(src.mind.objectives.len)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index a462beea2b6..d42906bec89 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -221,8 +221,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/observer/dead/Stat()
..()
if(statpanel("Status"))
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(SSemergencyshuttle)
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
@@ -556,7 +556,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return 0 //something is terribly wrong
var/ghosts_can_write
- if(ticker.mode.name == "cult")
+ if(SSticker.mode.name == "cult")
if(cult.current_antagonists.len > config_legacy.cult_ghostwriter_req_cultists)
ghosts_can_write = 1
diff --git a/code/modules/mob/death.dm b/code/modules/mob/death.dm
index b88a27850ca..401fc19f8b8 100644
--- a/code/modules/mob/death.dm
+++ b/code/modules/mob/death.dm
@@ -105,8 +105,8 @@
handle_regular_hud_updates()
handle_vision()
- if(ticker && ticker.mode)
- ticker.mode.check_win()
+ if(SSticker && SSticker.mode)
+ SSticker.mode.check_win()
return 1
diff --git a/code/modules/mob/freelook/ai/update_triggers.dm b/code/modules/mob/freelook/ai/update_triggers.dm
index 71f02bd5d2d..045d0522efe 100644
--- a/code/modules/mob/freelook/ai/update_triggers.dm
+++ b/code/modules/mob/freelook/ai/update_triggers.dm
@@ -49,7 +49,7 @@
/obj/machinery/camera/New()
..()
//Camera must be added to global list of all cameras no matter what...
- if(cameranet.cameras_unsorted || !ticker)
+ if(cameranet.cameras_unsorted || !SSticker)
cameranet.cameras += src
cameranet.cameras_unsorted = 1
else
diff --git a/code/modules/mob/freelook/update_triggers.dm b/code/modules/mob/freelook/update_triggers.dm
index 610b1ba4825..a3e84155c34 100644
--- a/code/modules/mob/freelook/update_triggers.dm
+++ b/code/modules/mob/freelook/update_triggers.dm
@@ -3,7 +3,7 @@
// TURFS
/proc/updateVisibility(atom/A, var/opacity_check = 1)
- if(ticker)
+ if(SSticker)
for(var/datum/visualnet/VN in visual_nets)
VN.updateVisibility(A, opacity_check)
diff --git a/code/modules/mob/freelook/visualnet.dm b/code/modules/mob/freelook/visualnet.dm
index 85fa7dca763..ad875c3f711 100644
--- a/code/modules/mob/freelook/visualnet.dm
+++ b/code/modules/mob/freelook/visualnet.dm
@@ -64,7 +64,7 @@
/datum/visualnet/proc/updateVisibility(atom/A, var/opacity_check = 1)
- if(!ticker || (opacity_check && !A.opacity))
+ if(!SSticker || (opacity_check && !A.opacity))
return
majorChunkChange(A, 2)
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 87192bc0e05..1ba6edba495 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -84,9 +84,9 @@
if(!gibbed && species.death_sound)
playsound(loc, species.death_sound, 80, 1, 1)
- if(ticker && ticker.mode)
+ if(SSticker && SSticker.mode)
sql_report_death(src)
- ticker.mode.check_win()
+ SSticker.mode.check_win()
if(wearing_rig)
wearing_rig.notify_ai("Warning: user death event. Mobility control passed to integrated intelligence system.")
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index aba33906333..43760ca00db 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -65,8 +65,8 @@
if(statpanel("Status"))
stat("Intent:", "[a_intent]")
stat("Move Mode:", "[m_intent]")
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(SSemergencyshuttle)
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 05672eea6a1..57c8048f1c2 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1004,8 +1004,8 @@ default behaviour is:
//check for nuke disks
if(client && stat != DEAD) //if they are clientless and dead don't bother, the parent will treat them as any other container
- if(ticker && istype(ticker.mode, /datum/game_mode/nuclear)) //only really care if the game mode is nuclear
- var/datum/game_mode/nuclear/G = ticker.mode
+ if(SSticker && istype(SSticker.mode, /datum/game_mode/nuclear)) //only really care if the game mode is nuclear
+ var/datum/game_mode/nuclear/G = SSticker.mode
if(G.check_mob(src))
if(x <= TRANSITIONEDGE)
inertia_dir = 4
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 46499ca0bb6..42a48a38222 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -388,7 +388,7 @@ var/list/ai_verbs_default = list(
call_shuttle_proc(src)
// hack to display shuttle timer
- if(emergency_shuttle.online())
+ if(SSemergencyshuttle.online())
var/obj/machinery/computer/communications/C = locate() in machines
if(C)
C.post_status("shuttle")
diff --git a/code/modules/mob/living/silicon/ai/latejoin.dm b/code/modules/mob/living/silicon/ai/latejoin.dm
index 29da5178527..8f8159170ef 100644
--- a/code/modules/mob/living/silicon/ai/latejoin.dm
+++ b/code/modules/mob/living/silicon/ai/latejoin.dm
@@ -15,8 +15,13 @@ var/global/list/empty_playable_ai_cores = list()
set category = "OOC"
set desc = "Enter intelligence storage. This is functionally equivalent to cryo or robotic storage, freeing up your job slot."
+<<<<<<< HEAD
if(ticker && ticker.mode && ticker.mode.name == "AI malfunction")
to_chat(usr, "You cannot use this verb in malfunction. If you need to leave, please adminhelp.")
+=======
+ if(SSticker && SSticker.mode && SSticker.mode.name == "AI malfunction")
+ usr << "You cannot use this verb in malfunction. If you need to leave, please adminhelp."
+>>>>>>> citrp/master
return
// Guard against misclicks, this isn't the sort of thing we want happening accidentally
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index 512a7d414f6..443ff8050d4 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -67,8 +67,8 @@
/obj/item/pen,
/obj/item/sample,
/obj/item/forensics/sample_kit,
- /obj/item/taperecorder,
- /obj/item/tape,
+ /obj/item/tape_recorder,
+ /obj/item/barrier_tape_roll,
/obj/item/uv_light
)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
index 1a5699c44cf..234c2b3b321 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
@@ -41,7 +41,7 @@
/obj/machinery/drone_fabricator/process()
- if(ticker.current_state < GAME_STATE_PLAYING)
+ if(SSticker.current_state < GAME_STATE_PLAYING)
return
if(stat & NOPOWER || !produce_drones)
@@ -95,7 +95,7 @@
set name = "Join As Drone"
set desc = "If there is a powered, enabled fabricator in the game world with a prepared chassis, join as a maintenance drone."
- if(ticker.current_state < GAME_STATE_PLAYING)
+ if(SSticker.current_state < GAME_STATE_PLAYING)
to_chat(src, "The game hasn't started yet!")
return
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station/engineering.dm b/code/modules/mob/living/silicon/robot/robot_modules/station/engineering.dm
index b84cb472e0d..587249ae2ec 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/station/engineering.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/station/engineering.dm
@@ -78,7 +78,7 @@
src.modules += new /obj/item/multitool(src)
src.modules += new /obj/item/t_scanner(src)
src.modules += new /obj/item/analyzer(src)
- src.modules += new /obj/item/taperoll/engineering(src)
+ src.modules += new /obj/item/barrier_tape_roll/engineering(src)
src.modules += new /obj/item/gripper(src)
src.modules += new /obj/item/gripper/circuit(src)
src.modules += new /obj/item/lightreplacer(src)
@@ -177,7 +177,7 @@
src.modules += new /obj/item/multitool(src)
src.modules += new /obj/item/t_scanner(src)
src.modules += new /obj/item/analyzer(src)
- src.modules += new /obj/item/taperoll/engineering(src)
+ src.modules += new /obj/item/barrier_tape_roll/engineering(src)
src.modules += new /obj/item/inflatable_dispenser/robot(src)
src.modules += new /obj/item/pickaxe(src)
src.modules += new /obj/item/dogborg/jaws/small(src)
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station/security.dm b/code/modules/mob/living/silicon/robot/robot_modules/station/security.dm
index 1586e0328fc..4cf8bcaa4a0 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/station/security.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/station/security.dm
@@ -30,7 +30,7 @@
src.modules += new /obj/item/melee/baton/robot(src)
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg(src)
// src.modules += new /obj/item/gun/energy/taser/xeno/sec/robot(src) // VOREStation Edit - We don't need these
- src.modules += new /obj/item/taperoll/police(src)
+ src.modules += new /obj/item/barrier_tape_roll/police(src)
src.modules += new /obj/item/reagent_containers/spray/pepper(src)
src.modules += new /obj/item/gripper/security(src)
src.emag = new /obj/item/gun/energy/laser/mounted(src)
@@ -89,7 +89,7 @@
src.modules += new /obj/item/dogborg/jaws/big(src) //In case there's some kind of hostile mob.
src.modules += new /obj/item/melee/baton/robot(src) //Since the pounce module refused to work, they get a stunbaton instead.
src.modules += new /obj/item/dogborg/boop_module(src) //Boop people on the nose.
- src.modules += new /obj/item/taperoll/police(src) //Block out crime scenes.
+ src.modules += new /obj/item/barrier_tape_roll/police(src) //Block out crime scenes.
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg(src) //They /are/ a security borg, after all.
src.modules += new /obj/item/dogborg/pounce(src) //Pounce
src.emag = new /obj/item/gun/energy/laser/mounted(src) //Emag. Not a big problem.
@@ -159,7 +159,7 @@
src.modules += new /obj/item/handcuffs/cyborg(src)
src.modules += new /obj/item/dogborg/jaws/big(src)
src.modules += new /obj/item/melee/baton/robot(src)
- src.modules += new /obj/item/taperoll/police(src)
+ src.modules += new /obj/item/barrier_tape_roll/police(src)
src.modules += new /obj/item/gun/energy/taser/mounted/cyborg/ertgun(src)
src.modules += new /obj/item/dogborg/swordtail(src)
src.emag = new /obj/item/gun/energy/laser/mounted(src)
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index ca2919103dd..d665249e7c9 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -37,7 +37,7 @@
/mob/living/silicon/Destroy()
silicon_mob_list -= src
- for(var/datum/alarm_handler/AH in alarm_manager.all_handlers)
+ for(var/datum/alarm_handler/AH in SSalarms.all_handlers)
AH.unregister_alarm(src)
return ..()
@@ -157,8 +157,8 @@
// this function displays the shuttles ETA in the status panel if the shuttle has been called
/mob/living/silicon/proc/show_emergency_shuttle_eta()
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(SSemergencyshuttle)
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
@@ -411,7 +411,7 @@
//Handle job slot/tater cleanup.
var/job = mind.assigned_role
- job_master.FreeRole(job)
+ SSjobs.FreeRole(job)
if(mind.objectives.len)
qdel(mind.objectives)
diff --git a/code/modules/mob/living/silicon/subystems.dm b/code/modules/mob/living/silicon/subystems.dm
index c27b730ec84..58a0c3e6b84 100644
--- a/code/modules/mob/living/silicon/subystems.dm
+++ b/code/modules/mob/living/silicon/subystems.dm
@@ -38,7 +38,7 @@
if(!register_alarms)
return
- for(var/datum/alarm_handler/AH in alarm_manager.all_handlers)
+ for(var/datum/alarm_handler/AH in SSalarms.all_handlers)
AH.register_alarm(src, /mob/living/silicon/proc/receive_alarm)
queued_alarms[AH] = list() // Makes sure alarms remain listed in consistent order
diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index 1ca276666ea..ff5f38b1fc4 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -96,8 +96,8 @@
..()
statpanel("Status")
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(SSemergencyshuttle)
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 13b2a78ec56..f13d4237f1f 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -1499,7 +1499,7 @@
//Check for shuttle bumrush
/mob/living/simple_mob/proc/check_horde()
return 0
- if(emergency_shuttle.shuttle.location)
+ if(SSemergencyshuttle.shuttle.location)
if(!enroute && !target_mob) //The shuttle docked, all monsters rush for the escape hallway
if(!shuttletarget && escape_list.len) //Make sure we didn't already assign it a target, and that there are targets to pick
shuttletarget = pick(escape_list) //Pick a shuttle target
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm
index 5ff089042ef..5165d99bd41 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm
@@ -95,8 +95,8 @@
..()
if(client.statpanel == "Status")
statpanel("Status")
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(SSemergencyshuttle)
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
stat("Chemicals", chemicals)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm
index 0c5aa6a398f..674d69ce8b3 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm
@@ -72,7 +72,7 @@
throw_at(get_step(get_turf(A), get_turf(src)), special_attack_max_range+1, 1, src)
playsound(src, leap_sound, 75, 1)
- sleep(5) // For the throw to complete. It won't hold up the AI ticker due to waitfor being false.
+ sleep(5) // For the throw to complete. It won't hold up the AI SSticker due to waitfor being false.
if(status_flags & LEAPING)
status_flags &= ~LEAPING // Revert special passage ability.
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
index 5711868d157..f5aaa3270a8 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
@@ -112,8 +112,8 @@
..()
if(client.statpanel == "Status")
statpanel("Status")
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(SSemergencyshuttle)
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
stat("Energy", energy)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm
index b1350c5babf..aa855705492 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm
@@ -124,8 +124,8 @@
..()
if(client.statpanel == "Status")
statpanel("Status")
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(SSemergencyshuttle)
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
stat("Chemicals", chemicals)
diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm
index 6df4f50069e..de10c7eb745 100644
--- a/code/modules/mob/logout.dm
+++ b/code/modules/mob/logout.dm
@@ -5,7 +5,7 @@
update_client_z(null)
log_access_out(src)
if(admin_datums[src.ckey])
- if (ticker && ticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing.
+ if (SSticker && SSticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing.
var/admins_number = admins.len
message_admins("Admin logout: [key_name(src)]")
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index bba4f6bb315..c69ced1932c 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -352,10 +352,10 @@
if (!( config_legacy.abandon_allowed ))
to_chat(usr, "Respawn is disabled.")
return
- if ((stat != 2 || !( ticker )))
+ if ((stat != 2 || !( SSticker )))
to_chat(usr, "You must be dead to use this!")
return
- if (ticker.mode && ticker.mode.deny_respawn) //BS12 EDIT
+ if (SSticker.mode && SSticker.mode.deny_respawn) //BS12 EDIT
to_chat(usr, "Respawn is disabled for this roundtype.")
return
else
@@ -376,7 +376,7 @@
var/deathtimeseconds = round((deathtime - deathtimeminutes * 600) / 10,1)
to_chat(usr, "You have been dead for[pluralcheck] [deathtimeseconds] seconds.")
- if ((deathtime < (1 * 600)) && (ticker && ticker.current_state > GAME_STATE_PREGAME)) //VOREStation Edit: lower respawn timer
+ if ((deathtime < (1 * 600)) && (SSticker && SSticker.current_state > GAME_STATE_PREGAME)) //VOREStation Edit: lower respawn timer
to_chat(usr, "You must wait 1 minute to respawn!")
return
else
@@ -746,9 +746,6 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
for(var/i in GLOB.sdql2_queries)
var/datum/SDQL2_query/Q = i
Q.generate_stat()
- if(statpanel("Processes"))
- if(processScheduler)
- processScheduler.statProcesses()
/*
if(listed_turf && client)
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index e33dc479fee..c8c1b958cee 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -30,7 +30,7 @@
output +="
"
output += "Character Setup
"
- if(!ticker || ticker.current_state <= GAME_STATE_PREGAME)
+ if(!SSticker || SSticker.current_state <= GAME_STATE_PREGAME)
if(ready)
output += "\[ Ready | Not Ready \]
"
else
@@ -77,15 +77,15 @@
/mob/new_player/Stat()
..()
- if(statpanel("Lobby") && ticker)
- if(ticker.hide_mode)
+ if(statpanel("Lobby") && SSticker)
+ if(SSticker.hide_mode)
stat("Game Mode:", "Secret")
else
- if(ticker.hide_mode == 0)
+ if(SSticker.hide_mode == 0)
stat("Game Mode:", "[config_legacy.mode_names[master_mode]]") // Old setting for showing the game mode
- if(ticker.current_state == GAME_STATE_PREGAME)
- stat("Time To Start:", "[ticker.pregame_timeleft][round_progressing ? "" : " (DELAYED)"]")
+ if(SSticker.current_state == GAME_STATE_PREGAME)
+ stat("Time To Start:", "[SSticker.pregame_timeleft][round_progressing ? "" : " (DELAYED)"]")
stat("Players: [totalPlayers]", "Players Ready: [totalPlayersReady]")
totalPlayers = 0
totalPlayersReady = 0
@@ -102,7 +102,7 @@
return 1
if(href_list["ready"])
- if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) // Make sure we don't ready up after the round has started
+ if(!SSticker || SSticker.current_state <= GAME_STATE_PREGAME) // Make sure we don't ready up after the round has started
ready = text2num(href_list["ready"])
else
ready = 0
@@ -153,8 +153,13 @@
if(href_list["late_join"])
+<<<<<<< HEAD
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
to_chat(usr, "The round is either not ready, or has already finished...")
+=======
+ if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
+ usr << "The round is either not ready, or has already finished..."
+>>>>>>> citrp/master
return
/*
if(client.prefs.species != "Human" && !check_rights(R_ADMIN, 0)) //VORESTATION EDITS: THE COMMENTED OUT AREAS FROM LINE 154 TO 178
@@ -182,8 +187,13 @@
if(!config_legacy.enter_allowed)
to_chat(usr, "There is an administrative lock on entering the game!")
return
+<<<<<<< HEAD
else if(ticker && ticker.mode && ticker.mode.explosion_in_progress)
to_chat(usr, "The station is currently exploding. Joining would go poorly.")
+=======
+ else if(SSticker && SSticker.mode && SSticker.mode.explosion_in_progress)
+ usr << "The station is currently exploding. Joining would go poorly."
+>>>>>>> citrp/master
return
/*
if(!is_alien_whitelisted(src, all_species[client.prefs.species]))
@@ -325,7 +335,7 @@
popup.open()
/mob/new_player/proc/IsJobAvailable(rank)
- var/datum/job/job = job_master.GetJob(rank)
+ var/datum/job/job = SSjobs.GetJob(rank)
if(!job) return 0
if(!job.is_position_available()) return 0
if(jobban_isbanned(src,rank)) return 0
@@ -338,8 +348,13 @@
/mob/new_player/proc/AttemptLateSpawn(rank, spawning_at)
if (src != usr)
return 0
+<<<<<<< HEAD
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
to_chat(usr, "The round is either not ready, or has already finished...")
+=======
+ if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
+ usr << "The round is either not ready, or has already finished..."
+>>>>>>> citrp/master
return 0
if(!config_legacy.enter_allowed)
to_chat(usr, "There is an administrative lock on entering the game!")
@@ -352,7 +367,7 @@
return 0
//Find our spawning point.
- var/list/join_props = job_master.LateSpawn(client, rank)
+ var/list/join_props = SSjobs.LateSpawn(client, rank)
var/turf/T = join_props["turf"]
var/join_message = join_props["msg"]
@@ -362,10 +377,10 @@
spawning = 1
close_spawn_windows()
- job_master.AssignRole(src, rank, 1)
+ SSjobs.AssignRole(src, rank, 1)
var/mob/living/character = create_character(T) //creates the human and transfers vars and mind
- character = job_master.EquipRank(character, rank, 1) //equips the human
+ character = SSjobs.EquipRank(character, rank, 1) //equips the human
UpdateFactionList(character)
// AIs don't need a spawnpoint, they must spawn at an empty core
@@ -380,7 +395,7 @@
character.loc = C.loc
AnnounceCyborg(character, rank, "has been transferred to the empty core in \the [character.loc.loc]")
- ticker.mode.latespawn(character)
+ SSticker.mode.latespawn(character)
qdel(C)
qdel(src)
@@ -396,11 +411,11 @@
character.buckled.loc = character.loc
character.buckled.setDir(character.dir)
- ticker.mode.latespawn(character)
+ SSticker.mode.latespawn(character)
if(character.mind.assigned_role != "Cyborg")
data_core.manifest_inject(character)
- ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
+ SSticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
//Grab some data from the character prefs for use in random news procs.
@@ -411,7 +426,7 @@
qdel(src)
/mob/new_player/proc/AnnounceCyborg(var/mob/living/character, var/rank, var/join_message)
- if (ticker.current_state == GAME_STATE_PLAYING)
+ if (SSticker.current_state == GAME_STATE_PLAYING)
if(character.mind.role_alt_title)
rank = character.mind.role_alt_title
// can't use their name here, since cyborg namepicking is done post-spawn, so we'll just say "A new Cyborg has arrived"/"A new Android has arrived"/etc.
@@ -424,18 +439,18 @@
dat += "Welcome, [name].
"
dat += "Round Duration: [roundduration2text()]
"
- if(emergency_shuttle) //In case NanoTrasen decides reposess CentCom's shuttles.
- if(emergency_shuttle.going_to_centcom()) //Shuttle is going to CentCom, not recalled
+ if(SSemergencyshuttle) //In case NanoTrasen decides reposess CentCom's shuttles.
+ if(SSemergencyshuttle.going_to_centcom()) //Shuttle is going to CentCom, not recalled
dat += "The station has been evacuated.
"
- if(emergency_shuttle.online())
- if (emergency_shuttle.evac) // Emergency shuttle is past the point of no recall
+ if(SSemergencyshuttle.online())
+ if (SSemergencyshuttle.evac) // Emergency shuttle is past the point of no recall
dat += "The station is currently undergoing evacuation procedures.
"
else // Crew transfer initiated
dat += "The station is currently undergoing crew transfer procedures.
"
dat += "Choose from the following open/valid positions:
"
dat += "[show_hidden_jobs ? "Hide":"Show"] Hidden Jobs.
"
- for(var/datum/job/job in job_master.occupations)
+ for(var/datum/job/job in SSjobs.occupations)
if(job && IsJobAvailable(job.title))
// Checks for jobs with minimum age requirements
if(job.minimum_character_age && (client.prefs.age < job.minimum_character_age))
@@ -480,7 +495,7 @@
new_character.lastarea = get_area(T)
- if(ticker.random_players)
+ if(SSticker.random_players)
new_character.gender = pick(MALE, FEMALE)
client.prefs.real_name = random_name(new_character.gender)
client.prefs.randomize_appearance_and_body_for(new_character)
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index ae706c9a27e..f8f31796d32 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -202,9 +202,9 @@
var/datum/job/previewJob
// Determine what job is marked as 'High' priority, and dress them up as such.
if(job_civilian_low & ASSISTANT)
- previewJob = job_master.GetJob(USELESS_JOB)
+ previewJob = SSjobs.GetJob(USELESS_JOB)
else
- for(var/datum/job/job in job_master.occupations)
+ for(var/datum/job/job in SSjobs.occupations)
var/job_flag
switch(job.department_flag)
if(CIVILIAN)
diff --git a/code/modules/modular_computers/file_system/programs/command/comm.dm b/code/modules/modular_computers/file_system/programs/command/comm.dm
index 527656e8136..4c97673e2aa 100644
--- a/code/modules/modular_computers/file_system/programs/command/comm.dm
+++ b/code/modules/modular_computers/file_system/programs/command/comm.dm
@@ -79,9 +79,9 @@
if(current_viewing_message)
data["message_current"] = current_viewing_message
- if(emergency_shuttle.location())
+ if(SSemergencyshuttle.location())
data["have_shuttle"] = 1
- if(emergency_shuttle.online())
+ if(SSemergencyshuttle.online())
data["have_shuttle_called"] = 1
else
data["have_shuttle_called"] = 0
diff --git a/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm
index 20c4dde1ca1..eb5e66de741 100644
--- a/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm
+++ b/code/modules/modular_computers/file_system/programs/engineering/alarm_monitor.dm
@@ -42,15 +42,15 @@
/datum/nano_module/alarm_monitor/all/New()
..()
- alarm_handlers = alarm_manager.all_handlers
+ alarm_handlers = SSalarms.all_handlers
/datum/nano_module/alarm_monitor/engineering/New()
..()
- alarm_handlers = list(atmosphere_alarm, fire_alarm, power_alarm)
+ alarm_handlers = list(SSalarms.atmosphere_alarm, SSalarms.fire_alarm, SSalarms.power_alarm)
/datum/nano_module/alarm_monitor/security/New()
..()
- alarm_handlers = list(camera_alarm, motion_alarm)
+ alarm_handlers = list(SSalarms.camera_alarm, SSalarms.motion_alarm)
/datum/nano_module/alarm_monitor/proc/register_alarm(var/object, var/procName)
for(var/datum/alarm_handler/AH in alarm_handlers)
diff --git a/code/modules/multiz/open_space_controller.dm b/code/modules/multiz/open_space_controller.dm
deleted file mode 100644
index e790f476dc0..00000000000
--- a/code/modules/multiz/open_space_controller.dm
+++ /dev/null
@@ -1,105 +0,0 @@
-//
-// Controller handling icon updates of open space turfs
-//
-
-/var/global/open_space_initialised = FALSE
-/var/global/datum/controller/process/open_space/OS_controller = null
-/var/global/image/over_OS_darkness = image('icons/turf/open_space.dmi', "black_open")
-
-/datum/controller/process/open_space
- var/list/turfs_to_process = list() // List of turfs queued for update.
- var/list/turfs_to_process_old = null // List of turfs currently being updated.
-
-/datum/controller/process/open_space/setup()
- . = ..()
- name = "openspace"
- schedule_interval = world.tick_lag // every second
- start_delay = 30 SECONDS
- OS_controller = src
- over_OS_darkness.plane = OVER_OPENSPACE_PLANE
- over_OS_darkness.layer = MOB_LAYER
- initialize_open_space()
-
- // Pre-process open space once once before the round starts. Wait 20 seconds so other stuff has time to finish.
- spawn(200)
- doWork(1)
-
-/datum/controller/process/open_space/copyStateFrom(var/datum/controller/process/open_space/other)
- . = ..()
- OS_controller = src
-
-/datum/controller/process/open_space/doWork()
- // We use a different list so any additions to the update lists during a delay from scheck()
- // don't cause things to be cut from the list without being updated.
- turfs_to_process_old = turfs_to_process
- turfs_to_process = list()
-
- for(last_object in turfs_to_process_old)
- var/turf/T = last_object
- if(!QDELETED(T))
- update_turf(T)
- SCHECK
-
-/datum/controller/process/open_space/proc/update_turf(var/turf/T)
- for(var/atom/movable/A in T)
- A.fall()
- T.update_icon()
-
-/datum/controller/process/open_space/proc/add_turf(var/turf/T, var/recursive = 0)
- ASSERT(isturf(T))
- turfs_to_process += T
- if(recursive > 0)
- var/turf/above = GetAbove(T)
- if(above && isopenspace(above))
- add_turf(above, recursive)
-
-// Do the initial updates of open space turfs when the game starts. This will lag!
-/datum/controller/process/open_space/proc/initialize_open_space()
- // Do initial setup from bottom to top.
- for(var/zlevel = 1 to world.maxz)
- for(var/turf/simulated/open/T in block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)))
- add_turf(T)
- open_space_initialised = TRUE
-
-/turf/Entered(atom/movable/AM)
- . = ..()
- if(open_space_initialised && !AM.invisibility && isobj(AM))
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].Entered([AM])")
- OS_controller.add_turf(T, 1)
-
-/turf/Exited(atom/movable/AM)
- . = ..()
- if(open_space_initialised && !AM.invisibility && isobj(AM))
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].Exited([AM])")
- OS_controller.add_turf(T, 1)
-
-/obj/update_icon()
- . = ..()
- if(open_space_initialised && !invisibility && isturf(loc))
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].update_icon()")
- OS_controller.add_turf(T, 1)
-
-// Ouch... this is painful. But is there any other way?
-/* - No for now
-/obj/New()
- . = ..()
- if(open_space_initialised && !invisibility)
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src]New()")
- OS_controller.add_turf(T, 1)
-*/
-
-// Just as New() we probably should hook Destroy() If we can think of something more efficient, lets hear it.
-/obj/Destroy()
- if(open_space_initialised && !invisibility && isturf(loc))
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- OS_controller.add_turf(T, 1)
- . = ..() // Important that this be at the bottom, or we will have been moved to nullspace.
diff --git a/code/modules/multiz/turf.dm b/code/modules/multiz/turf.dm
index 3d48a26a518..450b5e979a9 100644
--- a/code/modules/multiz/turf.dm
+++ b/code/modules/multiz/turf.dm
@@ -56,7 +56,7 @@
below.update_icon() // So the 'ceiling-less' overlay gets added.
for(var/atom/movable/A in src)
A.fall()
- OS_controller.add_turf(src, 1)
+ SSopenspace.add_turf(src, 1)
// override to make sure nothing is hidden
/turf/simulated/open/levelupdate()
@@ -103,11 +103,17 @@
add_overlay(o_img)
if(!below_is_open)
- add_overlay(over_OS_darkness)
+ add_overlay(/obj/effect/abstract/over_openspace_darkness)
return 0
return PROCESS_KILL
+/obj/effect/abstract/over_openspace_darkness
+ icon = 'icons/turf/open_space.dmi'
+ icon_state = "black_open"
+ plane = OVER_OPENSPACE_PLANE
+ layer = MOB_LAYER
+
// Straight copy from space.
/turf/simulated/open/attackby(obj/item/C as obj, mob/user as mob)
if (istype(C, /obj/item/stack/rods))
@@ -154,4 +160,4 @@
if(L.can_fall())
if(!locate(/obj/structure/stairs) in GetBelow(src))
return FALSE
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/modules/multiz/turf_obj_hooks.dm b/code/modules/multiz/turf_obj_hooks.dm
new file mode 100644
index 00000000000..a3fe68d07a1
--- /dev/null
+++ b/code/modules/multiz/turf_obj_hooks.dm
@@ -0,0 +1,44 @@
+// this system is shit change it asap // KEVINZ000 COMMENT
+
+/turf/Entered(atom/movable/AM)
+ . = ..()
+ if(SSopenspace.subsystem_initialized && !AM.invisibility && isobj(AM))
+ var/turf/T = GetAbove(src)
+ if(isopenspace(T))
+ // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].Entered([AM])")
+ SSopenspace.add_turf(T, 1)
+
+/turf/Exited(atom/movable/AM)
+ . = ..()
+ if(SSopenspace.subsystem_initialized && !AM.invisibility && isobj(AM))
+ var/turf/T = GetAbove(src)
+ if(isopenspace(T))
+ // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].Exited([AM])")
+ SSopenspace.add_turf(T, 1)
+
+/obj/update_icon()
+ . = ..()
+ if(SSopenspace.subsystem_initialized && !invisibility && isturf(loc))
+ var/turf/T = GetAbove(src)
+ if(isopenspace(T))
+ // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].update_icon()")
+ SSopenspace.add_turf(T, 1)
+
+// Ouch... this is painful. But is there any other way?
+/* - No for now
+/obj/New()
+ . = ..()
+ if(SSopenspace.subsystem_initialized && !invisibility)
+ var/turf/T = GetAbove(src)
+ if(isopenspace(T))
+ // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src]New()")
+ SSopenspace.add_turf(T, 1)
+*/
+
+// Just as New() we probably should hook Destroy() If we can think of something more efficient, lets hear it.
+/obj/Destroy()
+ if(SSopenspace.subsystem_initialized && !invisibility && isturf(loc))
+ var/turf/T = GetAbove(src)
+ if(isopenspace(T))
+ SSopenspace.add_turf(T, 1)
+ . = ..() // Important that this be at the bottom, or we will have been moved to nullspace.
diff --git a/code/modules/organs/internal/augment/armmounted.dm b/code/modules/organs/internal/augment/armmounted.dm
index be7a55c5b57..45848daaaa7 100644
--- a/code/modules/organs/internal/augment/armmounted.dm
+++ b/code/modules/organs/internal/augment/armmounted.dm
@@ -160,7 +160,7 @@
/obj/item/tool/wirecutters = null,
/obj/item/multitool = null,
/obj/item/stack/cable_coil/gray = null,
- /obj/item/tape_roll = null
+ /obj/item/duct_tape_roll = null
)
var/list/integrated_tools_by_name
diff --git a/code/modules/overmap/ships/computers/shuttle.dm b/code/modules/overmap/ships/computers/shuttle.dm
index 09bf47512dc..71f9a3a905e 100644
--- a/code/modules/overmap/ships/computers/shuttle.dm
+++ b/code/modules/overmap/ships/computers/shuttle.dm
@@ -12,28 +12,28 @@
. = ..()
home = map_sectors["[z]"]
shuttle_tag = "[shuttle_tag]-[z]"
- if(!shuttle_controller.shuttles[shuttle_tag])
+ if(!SSshuttle.shuttles[shuttle_tag])
var/datum/shuttle/ferry/shuttle = new()
shuttle.warmup_time = 10
shuttle.area_station = locate(landing_type)
shuttle.area_offsite = shuttle.area_station
- shuttle_controller.shuttles[shuttle_tag] = shuttle
- shuttle_controller.process_shuttles += shuttle
+ SSshuttle.shuttles[shuttle_tag] = shuttle
+ SSshuttle.process_shuttles += shuttle
testing("Exploration shuttle '[shuttle_tag]' at z-level [z] successfully added.")
//Sets destination to new sector. Can be null.
/obj/machinery/computer/shuttle_control/explore/proc/update_destination(var/obj/effect/map/D)
destination = D
- if(destination && shuttle_controller.shuttles[shuttle_tag])
- var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ if(destination && SSshuttle.shuttles[shuttle_tag])
+ var/datum/shuttle/ferry/shuttle = SSshuttle.shuttles[shuttle_tag]
shuttle.area_offsite = destination.shuttle_landing
testing("Shuttle controller [shuttle_tag] now sends shuttle to [destination]")
- shuttle_controller.shuttles[shuttle_tag] = shuttle
+ SSshuttle.shuttles[shuttle_tag] = shuttle
//Gets all sectors with landing zones in shuttle's range
/obj/machinery/computer/shuttle_control/explore/proc/get_possible_destinations()
var/list/res = list()
- var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/shuttle = SSshuttle.shuttles[shuttle_tag]
for (var/obj/effect/map/S in orange(shuttle.range, home))
if(S.shuttle_landing)
res += S
@@ -41,12 +41,12 @@
//Checks if current destination is still reachable
/obj/machinery/computer/shuttle_control/explore/proc/check_destination()
- var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/shuttle = SSshuttle.shuttles[shuttle_tag]
return shuttle && destination && get_dist(home, destination) <= shuttle.range
/obj/machinery/computer/shuttle_control/explore/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
- var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/shuttle = SSshuttle.shuttles[shuttle_tag]
if (!istype(shuttle))
return
@@ -118,7 +118,7 @@
usr.set_machine(src)
src.add_fingerprint(usr)
- var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/shuttle = SSshuttle.shuttles[shuttle_tag]
if (!istype(shuttle))
return
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index aa9267f72d2..e916af3bcd7 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -470,8 +470,8 @@
if(user.mind && (user.mind.assigned_role == "Clown"))
clown = 1
- if(istype(P, /obj/item/tape_roll))
- var/obj/item/tape_roll/tape = P
+ if(istype(P, /obj/item/duct_tape_roll))
+ var/obj/item/duct_tape_roll/tape = P
tape.stick(src, user)
return
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 3e972045dbf..adb21e132da 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -44,7 +44,7 @@
to_chat(user, "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")
qdel(W)
else
- if(istype(W, /obj/item/tape_roll))
+ if(istype(W, /obj/item/duct_tape_roll))
return 0
if(istype(W, /obj/item/pen))
usr << browse("", "window=[name]") //Closes the dialog
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 75d0e23e4db..cb6d698de63 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -472,7 +472,7 @@
"[user.name] has broken the charred power control board inside [src.name]!",\
"You broke the charred power control board and remove the remains.",
"You hear a crack!")
- //ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
+ //SSticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
else
user.visible_message(\
"[user.name] has removed the power control board from [src.name]!",\
@@ -1124,7 +1124,7 @@
equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
- power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
+ SSalarms.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 0
// update icon & area power if anything changed
@@ -1148,27 +1148,27 @@
lighting = autoset(lighting, 1)
environ = autoset(environ, 1)
autoflag = 3
- power_alarm.clearAlarm(loc, src)
+ SSalarms.power_alarm.clearAlarm(loc, src)
else if((cell.percent() <= 30) && (cell.percent() > 15) && longtermpower < 0) // <30%, turn off equipment
if(autoflag != 2)
equipment = autoset(equipment, 2)
lighting = autoset(lighting, 1)
environ = autoset(environ, 1)
- power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
+ SSalarms.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 2
else if(cell.percent() <= 15) // <15%, turn off lighting & equipment
if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0))
equipment = autoset(equipment, 2)
lighting = autoset(lighting, 2)
environ = autoset(environ, 1)
- power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
+ SSalarms.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 1
else // zero charge, turn all off
if(autoflag != 0)
equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
- power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
+ SSalarms.power_alarm.triggerAlarm(loc, src, hidden=alarms_hidden)
autoflag = 0
// val 0=off, 1=off(auto) 2=on 3=on(auto)
@@ -1293,7 +1293,7 @@ obj/machinery/power/apc/proc/autoset(var/cur_state, var/on)
//start with main breaker off, chargemode in the default state and all channels on auto upon reboot
operating = 0
chargemode = initial(chargemode)
- power_alarm.clearAlarm(loc, src)
+ SSalarms.power_alarm.clearAlarm(loc, src)
lighting = POWERCHAN_ON_AUTO
equipment = POWERCHAN_ON_AUTO
diff --git a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
index 8e35273c337..187836f61f1 100644
--- a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
+++ b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
@@ -21,7 +21,7 @@
increment_construction_stage()
return
- if(istype(thing, /obj/item/tape_roll) && construction_stage == 2)
+ if(istype(thing, /obj/item/duct_tape_roll) && construction_stage == 2)
user.visible_message("\The [user] secures \the [src] together with \the [thing].")
increment_construction_stage()
return
diff --git a/code/modules/rogueminer_vr/zone_console.dm b/code/modules/rogueminer_vr/zone_console.dm
index 80da1985aff..c25287ad239 100644
--- a/code/modules/rogueminer_vr/zone_console.dm
+++ b/code/modules/rogueminer_vr/zone_console.dm
@@ -117,7 +117,7 @@
var/datum/rogue/zonemaster/ZM_target = rm_controller.prepare_new_zone()
//Update shuttle destination.
- var/datum/shuttle/ferry/S = shuttle_controller.shuttles["Belter"]
+ var/datum/shuttle/ferry/S = SSshuttle.shuttles["Belter"]
S.area_offsite = ZM_target.myshuttle
//Re-enable shuttle.
@@ -146,7 +146,7 @@
if(rm_controller.current_zone && rm_controller.current_zone.is_occupied())
return // Not usable if shuttle is in occupied zone
// Okay do it
- var/datum/shuttle/ferry/S = shuttle_controller.shuttles["Belter"]
+ var/datum/shuttle/ferry/S = SSshuttle.shuttles["Belter"]
S.launch(usr)
/obj/item/circuitboard/roguezones
diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm
index 054d9909421..f32cfd2cd56 100644
--- a/code/modules/security levels/keycard authentication.dm
+++ b/code/modules/security levels/keycard authentication.dm
@@ -182,7 +182,7 @@
/obj/machinery/keycard_auth/proc/is_ert_blocked()
if(config_legacy.ert_admin_call_only) return 1
- return ticker.mode && ticker.mode.ert_disabled
+ return SSticker.mode && SSticker.mode.ert_disabled
var/global/maint_all_access = 0
diff --git a/code/modules/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm
index 060dbff1ade..a0c18e9ff76 100644
--- a/code/modules/shuttles/escape_pods.dm
+++ b/code/modules/shuttles/escape_pods.dm
@@ -4,9 +4,9 @@
/datum/shuttle/ferry/escape_pod/New()
move_time = move_time + rand(-30, 60)
- if(name in emergency_shuttle.escape_pods)
+ if(name in SSshuttle.escape_pods)
CRASH("An escape pod with the name '[name]' has already been defined.")
- emergency_shuttle.escape_pods[name] = src
+ SSshuttle.escape_pods[name] = src
..()
/datum/shuttle/ferry/escape_pod/init_docking_controllers()
@@ -51,7 +51,7 @@
"override_enabled" = docking_program.override_enabled,
"door_state" = docking_program.memory["door_status"]["state"],
"door_lock" = docking_program.memory["door_status"]["lock"],
- "can_force" = pod.can_force() || (emergency_shuttle.departed && pod.can_launch()), //allow players to manually launch ahead of time if the shuttle leaves
+ "can_force" = pod.can_force() || (SSemergencyshuttle.departed && pod.can_launch()), //allow players to manually launch ahead of time if the shuttle leaves
"is_armed" = pod.arming_controller.armed,
)
@@ -72,7 +72,7 @@
if("force_launch")
if (pod.can_force())
pod.force_launch(src)
- else if (emergency_shuttle.departed && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
+ else if (SSemergencyshuttle.departed && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
pod.launch(src)
return 0
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index 68d4124c334..ae199c376ae 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -20,21 +20,21 @@
/datum/shuttle/New()
..()
- if(src.name in shuttle_controller.shuttles)
+ if(src.name in SSshuttle.shuttles)
CRASH("A shuttle with the name '[name]' is already defined.")
- shuttle_controller.shuttles[src.name] = src
+ SSshuttle.shuttles[src.name] = src
if(flags & SHUTTLE_FLAGS_PROCESS)
- shuttle_controller.process_shuttles += src
+ SSshuttle.process_shuttles += src
if(flags & SHUTTLE_FLAGS_SUPPLY)
- if(supply_controller.shuttle)
+ if(SSsupply.shuttle)
CRASH("A supply shuttle is already defined.")
- supply_controller.shuttle = src
+ SSsupply.shuttle = src
/datum/shuttle/Destroy()
- shuttle_controller.shuttles -= src.name
- shuttle_controller.process_shuttles -= src
- if(supply_controller.shuttle == src)
- supply_controller.shuttle = null
+ SSshuttle.shuttles -= src.name
+ SSshuttle.process_shuttles -= src
+ if(SSsupply.shuttle == src)
+ SSsupply.shuttle = null
. = ..()
/datum/shuttle/process()
diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm
index 1a2c14b5413..4c4b21650fb 100644
--- a/code/modules/shuttles/shuttle_console.dm
+++ b/code/modules/shuttles/shuttle_console.dm
@@ -20,7 +20,7 @@
/obj/machinery/computer/shuttle_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
- var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/shuttle = SSshuttle.shuttles[shuttle_tag]
if (!istype(shuttle))
return
@@ -72,7 +72,7 @@
usr.set_machine(src)
src.add_fingerprint(usr)
- var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/shuttle = SSshuttle.shuttles[shuttle_tag]
if (!istype(shuttle))
return
diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm
index b5b86007cd2..e06594228f1 100644
--- a/code/modules/shuttles/shuttle_emergency.dm
+++ b/code/modules/shuttles/shuttle_emergency.dm
@@ -2,9 +2,9 @@
category = /datum/shuttle/ferry/emergency
/datum/shuttle/ferry/emergency/New()
- if(emergency_shuttle.shuttle)
+ if(SSemergencyshuttle.shuttle)
CRASH("An emergency shuttle has already been defined.")
- emergency_shuttle.shuttle = src
+ SSemergencyshuttle.shuttle = src
..()
/datum/shuttle/ferry/emergency/arrived()
@@ -12,7 +12,7 @@
var/obj/machinery/computer/shuttle_control/emergency/C = in_use
C.reset_authorization()
- emergency_shuttle.shuttle_arrived()
+ SSemergencyshuttle.shuttle_arrived()
/datum/shuttle/ferry/emergency/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
//world << "shuttle/ferry/emergency/long_jump: departing=[departing], destination=[destination], interim=[interim], travel_time=[travel_time]"
@@ -23,7 +23,7 @@
//update move_time and launch_time so we get correct ETAs
move_time = travel_time
- emergency_shuttle.launch_time = world.time
+ SSemergencyshuttle.launch_time = world.time
..()
@@ -31,10 +31,10 @@
..(origin, destination)
if (origin == area_station) //leaving the station
- emergency_shuttle.departed = 1
- var/estimated_time = round(emergency_shuttle.estimate_arrival_time()/60,1)
+ SSemergencyshuttle.departed = 1
+ var/estimated_time = round(SSemergencyshuttle.estimate_arrival_time()/60,1)
- if (emergency_shuttle.evac)
+ if (SSemergencyshuttle.evac)
priority_announcement.Announce(replacetext(replacetext(GLOB.using_map.emergency_shuttle_leaving_dock, "%dock_name%", "[GLOB.using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
else
priority_announcement.Announce(replacetext(replacetext(GLOB.using_map.shuttle_leaving_dock, "%dock_name%", "[GLOB.using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
@@ -67,8 +67,8 @@
if (!can_launch(user)) return
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
- if (emergency_shuttle.autopilot)
- emergency_shuttle.autopilot = 0
+ if (SSemergencyshuttle.autopilot)
+ SSemergencyshuttle.autopilot = 0
to_chat(world, "Alert: The shuttle autopilot has been overridden. Launch sequence initiated!")
if(usr)
@@ -81,8 +81,8 @@
if (!can_force(user)) return
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
- if (emergency_shuttle.autopilot)
- emergency_shuttle.autopilot = 0
+ if (SSemergencyshuttle.autopilot)
+ SSemergencyshuttle.autopilot = 0
to_chat(world, "Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!")
if(usr)
@@ -95,8 +95,8 @@
if (!can_cancel(user)) return
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
- if (emergency_shuttle.autopilot)
- emergency_shuttle.autopilot = 0
+ if (SSemergencyshuttle.autopilot)
+ SSemergencyshuttle.autopilot = 0
to_chat(world, "Alert: The shuttle autopilot has been overridden. Launch sequence aborted!")
if(usr)
@@ -177,7 +177,7 @@
/obj/machinery/computer/shuttle_control/emergency/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
- var/datum/shuttle/ferry/emergency/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/ferry/emergency/shuttle = SSshuttle.shuttles[shuttle_tag]
if (!istype(shuttle))
return
diff --git a/code/modules/shuttles/shuttle_supply.dm b/code/modules/shuttles/shuttle_supply.dm
index 7565d7f4665..bd51066c3c5 100644
--- a/code/modules/shuttles/shuttle_supply.dm
+++ b/code/modules/shuttles/shuttle_supply.dm
@@ -34,7 +34,7 @@
return
if (!at_station()) //at centcom
- supply_controller.buy()
+ SSsupply.buy()
//We pretend it's a long_jump by making the shuttle stay at centcom for the "in-transit" period.
var/area/away_area = get_location_area(away_location)
@@ -45,7 +45,7 @@
move(origin, away_area)
//wait ETA here.
- arrive_time = world.time + supply_controller.movetime
+ arrive_time = world.time + SSsupply.movetime
while (world.time <= arrive_time)
sleep(5)
@@ -60,14 +60,14 @@
make_sounds(destination, HYPERSPACE_END)
if (!at_station()) //at centcom
- supply_controller.sell()
+ SSsupply.sell()
// returns 1 if the supply shuttle should be prevented from moving because it contains forbidden atoms
/datum/shuttle/ferry/supply/proc/forbidden_atoms_check()
if (!at_station())
return 0 //if badmins want to send mobs or a nuke on the supply shuttle from centcom we don't care
- return supply_controller.forbidden_atoms_check(get_location_area())
+ return SSsupply.forbidden_atoms_check(get_location_area())
/datum/shuttle/ferry/supply/proc/at_station()
return (!location)
diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm
index d1c3f502cfb..4c0198e46e1 100644
--- a/code/modules/shuttles/shuttles_multi.dm
+++ b/code/modules/shuttles/shuttles_multi.dm
@@ -91,7 +91,7 @@
return
src.add_fingerprint(user)
- var/datum/shuttle/multi_shuttle/MS = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/multi_shuttle/MS = SSshuttle.shuttles[shuttle_tag]
if(!istype(MS)) return
var/dat
@@ -169,7 +169,7 @@
usr.set_machine(src)
src.add_fingerprint(usr)
- var/datum/shuttle/multi_shuttle/MS = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/multi_shuttle/MS = SSshuttle.shuttles[shuttle_tag]
if(!istype(MS)) return
//world << "multi_shuttle: last_departed=[MS.last_departed], origin=[MS.origin], interim=[MS.interim], travel_time=[MS.move_time]"
diff --git a/code/modules/shuttles/shuttles_web.dm b/code/modules/shuttles/shuttles_web.dm
index c7067f6685b..ea8513277b7 100644
--- a/code/modules/shuttles/shuttles_web.dm
+++ b/code/modules/shuttles/shuttles_web.dm
@@ -129,12 +129,12 @@
return
autopilot = TRUE
autopilot_delay = initial(autopilot_delay)
- shuttle_controller.process_shuttles += src
+ SSshuttle.process_shuttles += src
else
if(!autopilot)
return
autopilot = FALSE
- shuttle_controller.process_shuttles -= src
+ SSshuttle.process_shuttles -= src
/datum/shuttle/web_shuttle/proc/autopilot_say(message) // Makes the autopilot 'talk' to the passengers.
var/padded_message = "shuttle autopilot states, \"[message]\""
@@ -186,7 +186,7 @@
log_debug("[my_area] shuttle computer couldn't find [lost] sensor!")
/obj/machinery/computer/shuttle_control/web/attackby(obj/I, mob/user)
- var/datum/shuttle/web_shuttle/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/web_shuttle/shuttle = SSshuttle.shuttles[shuttle_tag]
if(shuttle && istype(I,/obj/item/clothing/head/pilot))
var/obj/item/clothing/head/pilot/H = I
H.shuttle_comp = src
@@ -208,7 +208,7 @@
/*
// If nanoUI falls over and you want a non-nanoUI UI, feel free to uncomment this section.
- var/datum/shuttle/web_shuttle/WS = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/web_shuttle/WS = SSshuttle.shuttles[shuttle_tag]
if(!istype(WS))
message_admins("ERROR: Shuttle computer ([src]) ([shuttle_tag]) could not find their shuttle in the shuttles list.")
return
@@ -272,7 +272,7 @@
/obj/machinery/computer/shuttle_control/web/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
var/list/routes[0]
- var/datum/shuttle/web_shuttle/shuttle = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/web_shuttle/shuttle = SSshuttle.shuttles[shuttle_tag]
if(!istype(shuttle))
return
@@ -366,7 +366,7 @@
usr.set_machine(src)
src.add_fingerprint(usr)
- var/datum/shuttle/web_shuttle/WS = shuttle_controller.shuttles[shuttle_tag]
+ var/datum/shuttle/web_shuttle/WS = SSshuttle.shuttles[shuttle_tag]
if(!istype(WS))
message_admins("ERROR: Shuttle computer ([src]) ([shuttle_tag]) could not find their shuttle in the shuttles list.")
return
@@ -474,11 +474,11 @@
/obj/shuttle_connector/Initialize()
. = ..()
- SSshuttles.OnDocksInitialized(CALLBACK(src, .proc/setup_routes))
+ SSshuttle.OnDocksInitialized(CALLBACK(src, .proc/setup_routes))
/obj/shuttle_connector/proc/setup_routes()
if(destinations && shuttle_name)
- var/datum/shuttle/web_shuttle/ES = shuttle_controller.shuttles[shuttle_name]
+ var/datum/shuttle/web_shuttle/ES = SSshuttle.shuttles[shuttle_name]
var/datum/shuttle_web_master/WM = ES.web_master
for(var/new_dest in destinations)
diff --git a/code/modules/surgery/external_repair.dm b/code/modules/surgery/external_repair.dm
index 98befb4b635..5cb25b56370 100644
--- a/code/modules/surgery/external_repair.dm
+++ b/code/modules/surgery/external_repair.dm
@@ -90,8 +90,8 @@
/obj/item/surgical/FixOVein = 100,
/obj/item/surgical/hemostat = 60,
/obj/item/stack/medical/ointment = 50,
- /obj/item/tape_roll = 30,
- /obj/item/taperoll = 10
+ /obj/item/duct_tape_roll = 30,
+ /obj/item/barrier_tape_roll = 10
)
priority = 3
@@ -111,7 +111,7 @@
/datum/surgery_step/repairflesh/repair_burns/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
- if(istype(tool, /obj/item/tape_roll) || istype(tool, /obj/item/taperoll))
+ if(istype(tool, /obj/item/duct_tape_roll) || istype(tool, /obj/item/barrier_tape_roll))
user.visible_message("[user] begins taping up [target]'s [affected] with \the [tool].", \
"You begin taping up [target]'s [affected] with \the [tool].")
affected.jostle_bone(10)
@@ -125,7 +125,7 @@
/datum/surgery_step/repairflesh/repair_burns/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
- if(istype(tool, /obj/item/tape_roll) || istype(tool, /obj/item/taperoll))
+ if(istype(tool, /obj/item/duct_tape_roll) || istype(tool, /obj/item/barrier_tape_roll))
user.visible_message("[user] finishes taping up [target]'s [affected] with \the [tool].", \
"You finish taping up [target]'s [affected] with \the [tool].")
affected.createwound(BRUISE, 10)
@@ -158,8 +158,8 @@
/obj/item/surgical/cautery = 100,
/obj/item/surgical/bonesetter = 60,
/obj/item/stack/medical/bruise_pack = 50,
- /obj/item/tape_roll = 40,
- /obj/item/taperoll = 10
+ /obj/item/duct_tape_roll = 40,
+ /obj/item/barrier_tape_roll = 10
)
priority = 3
@@ -179,7 +179,7 @@
/datum/surgery_step/repairflesh/repair_brute/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
- if(istype(tool, /obj/item/tape_roll) || istype(tool, /obj/item/taperoll))
+ if(istype(tool, /obj/item/duct_tape_roll) || istype(tool, /obj/item/barrier_tape_roll))
user.visible_message("[user] begins taping up [target]'s [affected] with \the [tool].", \
"You begin taping up [target]'s [affected] with \the [tool].")
affected.jostle_bone(10)
@@ -193,7 +193,7 @@
/datum/surgery_step/repairflesh/repair_brute/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
- if(istype(tool, /obj/item/tape_roll) || istype(tool, /obj/item/taperoll))
+ if(istype(tool, /obj/item/duct_tape_roll) || istype(tool, /obj/item/barrier_tape_roll))
user.visible_message("[user] finishes taping up [target]'s [affected] with \the [tool].", \
"You finish taping up [target]'s [affected] with \the [tool].")
affected.createwound(BRUISE, 10)
diff --git a/code/modules/surgery/neck.dm b/code/modules/surgery/neck.dm
index 0f7c45a59dc..9321642fb2f 100644
--- a/code/modules/surgery/neck.dm
+++ b/code/modules/surgery/neck.dm
@@ -182,7 +182,7 @@
allowed_tools = list(
/obj/item/surgical/bonegel = 100,
/obj/item/stack/nanopaste = 50,
- /obj/item/tape_roll = 5)
+ /obj/item/duct_tape_roll = 5)
min_duration = 100
max_duration = 160
diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm
index 2924f99b334..fdcf8026060 100644
--- a/code/modules/tables/tables.dm
+++ b/code/modules/tables/tables.dm
@@ -74,7 +74,7 @@ var/list/table_icon_cache = list()
// reset color/alpha, since they're set for nice map previews
color = "#ffffff"
alpha = 255
- update_connections(ticker && ticker.current_state == GAME_STATE_PLAYING)
+ update_connections(SSticker && SSticker.current_state == GAME_STATE_PLAYING)
update_icon()
update_desc()
update_material()
diff --git a/code/modules/turbolift/turbolift.dm b/code/modules/turbolift/turbolift.dm
index ea9c9e13abc..5f380dc4b4f 100644
--- a/code/modules/turbolift/turbolift.dm
+++ b/code/modules/turbolift/turbolift.dm
@@ -178,7 +178,7 @@
return // STOP PRESSING THE BUTTON.
floor.pending_move(src)
queued_floors |= floor
- turbolift_controller.lift_is_moving(src)
+ SSturbolifts.lift_is_moving(src)
// TODO: dummy machine ('lift mechanism') in powered area for functionality/blackout checks.
/datum/turbolift/proc/is_functional()
diff --git a/code/modules/vehicles/rover_vr.dm b/code/modules/vehicles/rover_vr.dm
index b02bd10f082..39af3773377 100644
--- a/code/modules/vehicles/rover_vr.dm
+++ b/code/modules/vehicles/rover_vr.dm
@@ -31,7 +31,7 @@
dunebuggy
name = "Research Dune Buggy"
- desc = "A Dune Buggy developed for asteroid exploration and transportation. It has a sticker that says to wear EVA suits if used in space."
+ desc = "A Dune Buggy developed for asteroid exploration and transportation. It has a sSSticker that says to wear EVA suits if used in space."
icon = 'icons/vore/rover_vr.dmi'
icon_state = "dunebug"
diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
index c7c7f19d25c..c1013e0a950 100644
--- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
@@ -230,7 +230,7 @@ END OF CITADEL CHANGES */
/obj/item/melee/baton,
/obj/item/handcuffs,
// /obj/item/detective_scanner,
- /obj/item/taperecorder)
+ /obj/item/tape_recorder)
armor = list(melee = 50, bullet = 15, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
var/unbuttoned = 0
@@ -300,7 +300,7 @@ END OF CITADEL CHANGES */
/obj/item/melee/baton,
/obj/item/handcuffs,
// /obj/item/detective_scanner,
- /obj/item/taperecorder)
+ /obj/item/tape_recorder)
armor = list(melee = 50, bullet = 15, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
//Variants
@@ -986,7 +986,7 @@ END OF CITADEL CHANGES */
icon_override = 'icons/vore/custom_clothes_vr.dmi'
item_state = "octavgentlecoat_mob"
blood_overlay_type = "coat"
- allowed = list(/obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/energy,/obj/item/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/taperecorder,/obj/item/uv_light)
+ allowed = list(/obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/energy,/obj/item/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light)
//bwoincognito:Octavious Ward
/obj/item/clothing/under/det/fluff/octavious
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index b0ab5252188..630046ed4d1 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -546,7 +546,7 @@
//Stobarico - Alexis Bloise
/obj/item/cane/wand
name = "Ancient wand"
- desc = "A really old looking wand with floating parts and cyan crystals, wich seem to radiate a cyan glow. The wand has a golden plaque on the side that would say Corncobble, but it is covered by a sticker saying Bloise."
+ desc = "A really old looking wand with floating parts and cyan crystals, wich seem to radiate a cyan glow. The wand has a golden plaque on the side that would say Corncobble, but it is covered by a sSSticker saying Bloise."
icon = 'icons/vore/custom_items_vr.dmi'
icon_state = "alexiswand"
item_icons = list (slot_r_hand_str = 'icons/vore/custom_items_vr.dmi', slot_l_hand_str = 'icons/vore/custom_items_vr.dmi')
diff --git a/code/unit_tests/unit_test.dm b/code/unit_tests/unit_test.dm
index 273026094f7..6d23011a907 100644
--- a/code/unit_tests/unit_test.dm
+++ b/code/unit_tests/unit_test.dm
@@ -29,8 +29,8 @@ var/total_unit_tests = 0
/proc/initialize_unit_tests()
log_unit_test("Initializing Unit Testing")
- if(!ticker)
- stack_trace("No Ticker")
+ if(!SSticker)
+ stack_trace("No SSticker")
world.Del()
var/said_msg = 0
@@ -44,7 +44,7 @@ var/total_unit_tests = 0
sleep(1)
- ticker.current_state = GAME_STATE_SETTING_UP
+ SSticker.current_state = GAME_STATE_SETTING_UP
Master.SetRunLevel(RUNLEVEL_SETUP)
log_unit_test("Round has been started. Waiting 10 seconds to start tests.")
diff --git a/html/changelogs/AutoChangeLog-pr-1841.yml b/html/changelogs/AutoChangeLog-pr-1841.yml
new file mode 100644
index 00000000000..d525b7d3cc5
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-1841.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - tweak: "exploration roles now appear in their host department too, meaning sars/fms are also in med, explorers/pathfinders sci, and pilots civ"
diff --git a/html/changelogs/AutoChangeLog-pr-1842.yml b/html/changelogs/AutoChangeLog-pr-1842.yml
new file mode 100644
index 00000000000..afdcc7e8a8f
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-1842.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - tweak: "ooc is now allowed during voting"
diff --git a/html/changelogs/AutoChangeLog-pr-1844.yml b/html/changelogs/AutoChangeLog-pr-1844.yml
new file mode 100644
index 00000000000..8e3eb776d02
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-1844.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - code_imp: "atmospherics folder moved to modules/atmospherics"
diff --git a/html/changelogs/AutoChangeLog-pr-1845.yml b/html/changelogs/AutoChangeLog-pr-1845.yml
new file mode 100644
index 00000000000..330cbe5ca80
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-1845.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - tweak: "weather is quieter"
diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm
index 0a64713c7c8..246b8dec097 100644
--- a/maps/RandomZLevels/wildwest.dm
+++ b/maps/RandomZLevels/wildwest.dm
@@ -73,9 +73,15 @@
user.dna.mutantrace = "shadow"
user.update_mutantrace()
if("To Kill")
+<<<<<<< HEAD
to_chat(user, "Your wish is granted, but at a terrible cost...")
to_chat(user, "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart.")
ticker.mode.traitors += user.mind
+=======
+ user << "Your wish is granted, but at a terrible cost..."
+ user << "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart."
+ SSticker.mode.traitors += user.mind
+>>>>>>> citrp/master
user.mind.special_role = "traitor"
var/datum/objective/hijack/hijack = new
hijack.owner = user.mind
diff --git a/maps/endeavor/endeavor_shuttles.dm b/maps/endeavor/endeavor_shuttles.dm
index 34cfeaa863d..5959f4c6863 100644
--- a/maps/endeavor/endeavor_shuttles.dm
+++ b/maps/endeavor/endeavor_shuttles.dm
@@ -91,7 +91,7 @@
ASC.setup_routes()
//Redirect us onto that route instead
- var/datum/shuttle/web_shuttle/WS = shuttle_controller.shuttles[name]
+ var/datum/shuttle/web_shuttle/WS = SSshuttle.shuttles[name]
var/datum/shuttle_destination/ASD = WS.web_master.get_destination_by_type(/datum/shuttle_destination/excursion/alienship)
WS.web_master.future_destination = ASD
. = ..(departing,ASD.my_area,interim,travel_time,direction)
diff --git a/maps/endeavor/endeavor_things.dm b/maps/endeavor/endeavor_things.dm
index 01c2bc5c05f..c2595ad28a6 100644
--- a/maps/endeavor/endeavor_things.dm
+++ b/maps/endeavor/endeavor_things.dm
@@ -91,7 +91,7 @@
spawnpoint_type = /datum/spawnpoint/ferry
/obj/machinery/cryopod/robot/door/ferry/process()
- if(emergency_shuttle.online() || emergency_shuttle.returned())
+ if(SSemergencyshuttle.online() || SSemergencyshuttle.returned())
// Transform into a door! But first despawn anyone inside
time_till_despawn = 0
..()
diff --git a/maps/northern_star/polaris-1.dmm b/maps/northern_star/polaris-1.dmm
index 71daf983ec8..019f9354336 100644
--- a/maps/northern_star/polaris-1.dmm
+++ b/maps/northern_star/polaris-1.dmm
@@ -27560,7 +27560,7 @@
dir = 1;
pixel_y = -22
},
-/obj/item/taperoll/engineering,
+/obj/item/barrier_tape_roll/engineering,
/obj/item/tool/crowbar,
/turf/simulated/floor/tiled/white,
/area/ai_monitored/storage/emergency/eva)
diff --git a/maps/northern_star/polaris-2.dmm b/maps/northern_star/polaris-2.dmm
index ba3020c30cb..6cdb56a916e 100644
--- a/maps/northern_star/polaris-2.dmm
+++ b/maps/northern_star/polaris-2.dmm
@@ -5795,12 +5795,12 @@
/area/centcom/specops)
"nA" = (
/obj/structure/table/rack,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
/obj/item/flash,
/obj/item/flash,
/obj/item/flash,
@@ -7673,12 +7673,12 @@
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
/turf/unsimulated/floor{
icon_state = "dark"
},
diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm
index 349cdeccc94..d8e1df4462b 100644
--- a/maps/southern_cross/southern_cross-6.dmm
+++ b/maps/southern_cross/southern_cross-6.dmm
@@ -2532,12 +2532,12 @@
/area/centcom/specops)
"fX" = (
/obj/structure/table/rack,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
/obj/item/flash,
/obj/item/flash,
/obj/item/flash,
@@ -3743,10 +3743,10 @@
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
/turf/unsimulated/floor{
icon_state = "vault";
dir = 5
@@ -3754,9 +3754,9 @@
/area/centcom/specops)
"hY" = (
/obj/structure/table/steel_reinforced,
-/obj/item/taperoll/atmos,
-/obj/item/taperoll/atmos,
-/obj/item/taperoll/atmos,
+/obj/item/barrier_tape_roll/atmos,
+/obj/item/barrier_tape_roll/atmos,
+/obj/item/barrier_tape_roll/atmos,
/obj/item/pickaxe/drill,
/obj/item/pickaxe/drill,
/turf/unsimulated/floor{
diff --git a/maps/southern_cross/southern_cross_jobs_vr.dm b/maps/southern_cross/southern_cross_jobs_vr.dm
index 38198ddaaaa..e2dd135e676 100755
--- a/maps/southern_cross/southern_cross_jobs_vr.dm
+++ b/maps/southern_cross/southern_cross_jobs_vr.dm
@@ -105,6 +105,7 @@ var/const/SAR =(1<<14)
idtype = /obj/item/card/id/medical/sar
economic_modifier = 6
minimal_player_age = 3
+ alt_titles = list("Search and Rescue")
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist, access_explorer)
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_explorer)
outfit_type = /decl/hierarchy/outfit/job/medical/sar
diff --git a/maps/southern_cross/structures/closets/engineering.dm b/maps/southern_cross/structures/closets/engineering.dm
index 0166d75e393..c687de41574 100644
--- a/maps/southern_cross/structures/closets/engineering.dm
+++ b/maps/southern_cross/structures/closets/engineering.dm
@@ -24,7 +24,7 @@
/obj/item/clothing/suit/storage/hazardvest,
/obj/item/clothing/mask/gas,
/obj/item/tank/emergency/oxygen/engi,
- /obj/item/taperoll/engineering,
+ /obj/item/barrier_tape_roll/engineering,
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering)
/obj/structure/closet/secure_closet/engineering_chief_wardrobe/Initialize()
diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm
index ebd35a677b5..c11e40668a3 100644
--- a/maps/southern_cross/structures/closets/misc.dm
+++ b/maps/southern_cross/structures/closets/misc.dm
@@ -103,7 +103,7 @@
/obj/item/extinguisher/mini,
/obj/item/storage/box/freezer,
/obj/item/clothing/accessory/storage/white_vest,
- /obj/item/taperoll/medical,
+ /obj/item/barrier_tape_roll/medical,
/obj/item/gps/medical,
/obj/item/geiger,
/obj/item/bodybag/cryobag)
diff --git a/maps/southern_cross/structures/closets/misc_vr.dm b/maps/southern_cross/structures/closets/misc_vr.dm
index bfcaf60c951..49f6b9b540f 100644
--- a/maps/southern_cross/structures/closets/misc_vr.dm
+++ b/maps/southern_cross/structures/closets/misc_vr.dm
@@ -58,7 +58,7 @@
/obj/item/extinguisher/mini,
/obj/item/storage/box/freezer,
/obj/item/clothing/accessory/storage/white_vest,
- /obj/item/taperoll/medical,
+ /obj/item/barrier_tape_roll/medical,
/obj/item/gps/medical,
/obj/item/geiger,
/obj/item/bodybag/cryobag,
diff --git a/maps/submaps/surface_submaps/mountains/prepper1.dmm b/maps/submaps/surface_submaps/mountains/prepper1.dmm
index 6197502aca5..1b336994942 100644
--- a/maps/submaps/surface_submaps/mountains/prepper1.dmm
+++ b/maps/submaps/surface_submaps/mountains/prepper1.dmm
@@ -44,7 +44,7 @@
/area/submap/cave/prepper1)
"j" = (
/obj/structure/table/steel,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/obj/random/maintenance/engineering,
/turf/simulated/floor/plating,
/area/submap/cave/prepper1)
diff --git a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
index 2ee554763d4..48e95291d62 100644
--- a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
+++ b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
@@ -43,7 +43,7 @@
layer = 3.3;
name = "Emergency Lockdown Shutters"
},
-/obj/item/tape/medical{
+/obj/item/barrier_tape_segment/medical{
dir = 4;
icon_state = "tape_door_0";
layer = 3.4
@@ -62,7 +62,7 @@
locked = 1;
name = "MBT-540"
},
-/obj/item/tape/medical{
+/obj/item/barrier_tape_segment/medical{
dir = 4;
icon_state = "tape_door_0";
layer = 3.4
@@ -351,7 +351,7 @@
/obj/machinery/door/blast/regular{
name = "Cargo Door"
},
-/obj/item/tape/medical{
+/obj/item/barrier_tape_segment/medical{
dir = 4;
icon_state = "tape_door_0";
layer = 3.4
@@ -496,7 +496,7 @@
/area/submap/cave/qShuttle)
"bn" = (
/obj/structure/table/standard,
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/turf/simulated/shuttle/floor,
/area/submap/cave/qShuttle)
"bo" = (
@@ -728,28 +728,28 @@
/turf/simulated/shuttle/wall/hard_corner,
/area/submap/cave/qShuttle)
"bT" = (
-/obj/item/tape/medical{
+/obj/item/barrier_tape_segment/medical{
icon_state = "tape_v_0"
},
/turf/simulated/mineral/floor/ignore_mapgen,
/area/submap/cave/qShuttle)
"bU" = (
-/obj/item/taperoll/medical,
+/obj/item/barrier_tape_roll/medical,
/turf/simulated/mineral/floor/ignore_mapgen,
/area/submap/cave/qShuttle)
"bV" = (
-/obj/item/tape/medical{
+/obj/item/barrier_tape_segment/medical{
dir = 1;
icon_state = "tape_dir_0"
},
-/obj/item/tape/medical{
+/obj/item/barrier_tape_segment/medical{
dir = 4;
icon_state = "tape_dir_0"
},
/turf/simulated/mineral/floor/ignore_mapgen,
/area/submap/cave/qShuttle)
"bW" = (
-/obj/item/tape/medical{
+/obj/item/barrier_tape_segment/medical{
icon_state = "tape_h_0"
},
/turf/simulated/mineral/floor/ignore_mapgen,
diff --git a/maps/submaps/surface_submaps/plains/Boathouse.dmm b/maps/submaps/surface_submaps/plains/Boathouse.dmm
index ad0c7888522..b66700cbf31 100644
--- a/maps/submaps/surface_submaps/plains/Boathouse.dmm
+++ b/maps/submaps/surface_submaps/plains/Boathouse.dmm
@@ -118,7 +118,7 @@
/area/submap/Boathouse)
"az" = (
/obj/structure/table/woodentable,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/obj/random/firstaid,
/turf/simulated/floor/wood,
/area/submap/Boathouse)
diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm
index 417a63858e3..68191f9997b 100644
--- a/maps/tether/tether-01-surface1.dmm
+++ b/maps/tether/tether-01-surface1.dmm
@@ -5131,8 +5131,8 @@
/obj/structure/railing,
/obj/structure/closet/crate,
/obj/item/camera,
-/obj/item/tape/random,
-/obj/item/taperecorder/empty,
+/obj/item/cassette_tape/random,
+/obj/item/reagent_containers/hypospray/autoinjector/empty,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/maintenance/lower/research)
@@ -7038,8 +7038,8 @@
/obj/structure/table/standard,
/obj/item/stack/cable_coil/random,
/obj/item/stack/cable_coil/random,
-/obj/item/taperecorder,
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
+/obj/item/tape_recorder,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
@@ -9266,7 +9266,7 @@
icon_state = "bordercolor";
dir = 4
},
-/obj/item/taperoll/atmos,
+/obj/item/barrier_tape_roll/atmos,
/obj/item/stack/cable_coil/random_belt,
/obj/random/tech_supply,
/turf/simulated/floor/tiled/techmaint,
@@ -12490,7 +12490,7 @@
"awI" = (
/obj/structure/table/standard,
/obj/item/storage/laundry_basket,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/obj/effect/floor_decal/borderfloor{
dir = 1
},
@@ -16191,7 +16191,7 @@
/area/rnd/xenobiology/xenoflora)
"aCY" = (
/obj/structure/table/glass,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/obj/item/analyzer/plant_analyzer,
/obj/effect/floor_decal/borderfloor,
/obj/effect/floor_decal/corner/mauve/border,
@@ -17996,11 +17996,11 @@
dir = 1;
pixel_y = -22
},
-/obj/item/tape_roll{
+/obj/item/barrier_tape_roll{
pixel_x = 4;
pixel_y = 4
},
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/turf/simulated/floor/tiled,
/area/storage/art)
"aGC" = (
diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm
index 0d08067cdd9..040aa8ed15c 100644
--- a/maps/tether/tether-02-surface2.dmm
+++ b/maps/tether/tether-02-surface2.dmm
@@ -747,7 +747,7 @@
"bR" = (
/obj/effect/floor_decal/techfloor,
/obj/structure/table/steel,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/turf/simulated/floor/tiled/techfloor,
/area/maintenance/lower/mining)
"bS" = (
@@ -6732,7 +6732,7 @@
/area/rnd/rdoffice)
"om" = (
/obj/structure/table/standard,
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_x = -3
},
/obj/item/paicard{
@@ -13189,7 +13189,7 @@
dir = 1
},
/obj/structure/table/standard,
-/obj/item/taperoll/atmos,
+/obj/item/barrier_tape_roll/atmos,
/obj/random/tech_supply,
/obj/random/tool,
/turf/simulated/floor/tiled,
@@ -14911,7 +14911,7 @@
/area/maintenance/lower/south)
"Db" = (
/obj/effect/decal/cleanable/blood,
-/obj/item/tape{
+/obj/item/duct_tape_piece{
desc = "No Talk"
},
/obj/item/clothing/suit/varsity/brown{
@@ -17626,7 +17626,7 @@
/area/maintenance/lower/atmos)
"HZ" = (
/obj/structure/table/steel,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/obj/item/stack/medical/bruise_pack,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/tiled/techfloor,
diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm
index fcbe78d309e..994fafb1350 100644
--- a/maps/tether/tether-03-surface3.dmm
+++ b/maps/tether/tether-03-surface3.dmm
@@ -14679,7 +14679,7 @@
/area/library)
"zm" = (
/obj/structure/table/woodentable,
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_y = 0
},
/obj/machinery/atmospherics/unary/vent_pump/on{
@@ -14693,7 +14693,7 @@
dir = 1
},
/obj/item/camera,
-/obj/item/tape,
+/obj/item/duct_tape_piece,
/turf/simulated/floor/carpet,
/area/library)
"zn" = (
@@ -15049,7 +15049,7 @@
/area/maintenance/lower/atrium)
"zV" = (
/obj/structure/table/woodentable,
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/turf/simulated/floor/carpet,
/area/library)
"zW" = (
@@ -15373,7 +15373,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/obj/item/flashlight/lamp/green{
pixel_x = 1;
pixel_y = 5
diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm
index 725cde67036..d1af9f0ccc3 100644
--- a/maps/tether/tether-05-station1.dmm
+++ b/maps/tether/tether-05-station1.dmm
@@ -21740,7 +21740,7 @@
dir = 4
},
/obj/item/clipboard,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/turf/simulated/floor/tiled,
/area/engineering/foyer)
"bXI" = (
@@ -21991,7 +21991,7 @@
/obj/random/junk,
/obj/structure/closet,
/obj/random/maintenance/clean,
-/obj/item/taperoll/engineering,
+/obj/item/barrier_tape_roll/engineering,
/turf/simulated/floor,
/area/vacant/vacant_restaurant_lower)
"bZS" = (
@@ -22713,7 +22713,7 @@
/area/tether/station/explorer_meeting)
"hMi" = (
/obj/structure/table/woodentable,
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/obj/effect/floor_decal/borderfloor,
/obj/effect/floor_decal/corner/purple/border,
/obj/item/paper_bin,
@@ -24016,7 +24016,7 @@
},
/obj/structure/table/woodentable,
/obj/item/universal_translator,
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/obj/effect/floor_decal/borderfloor{
dir = 4
},
diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm
index 500b58a2504..690156c1198 100644
--- a/maps/tether/tether-06-station2.dmm
+++ b/maps/tether/tether-06-station2.dmm
@@ -1018,7 +1018,7 @@
pixel_x = 5;
pixel_y = 5
},
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_x = -4;
pixel_y = 2
},
@@ -17864,7 +17864,7 @@
/area/maintenance/station/sec_lower)
"NN" = (
/obj/structure/table/glass,
-/obj/item/taperoll/medical,
+/obj/item/barrier_tape_roll/medical,
/obj/random/maintenance/medical,
/obj/random/maintenance/medical,
/turf/simulated/floor,
diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm
index d3643a86b59..913c425163f 100644
--- a/maps/tether/tether-07-station3.dmm
+++ b/maps/tether/tether-07-station3.dmm
@@ -5699,7 +5699,7 @@
pixel_x = -4;
pixel_y = 8
},
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_y = 0
},
/obj/structure/cable/green{
@@ -8649,7 +8649,7 @@
d2 = 8;
icon_state = "0-8"
},
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_y = 0
},
/obj/item/megaphone,
@@ -8752,7 +8752,7 @@
icon_state = "light1";
pixel_x = -24
},
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/turf/simulated/floor/tiled,
/area/security/security_processing)
"oC" = (
@@ -12343,7 +12343,7 @@
/area/security/detectives_office)
"tP" = (
/obj/structure/table/woodentable,
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_x = -4;
pixel_y = 2
},
@@ -12351,7 +12351,7 @@
/area/security/detectives_office)
"tQ" = (
/obj/structure/table/woodentable,
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_x = -4;
pixel_y = 2
},
@@ -13376,7 +13376,7 @@
dir = 1
},
/obj/structure/closet,
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_x = -4;
pixel_y = 2
},
@@ -13384,7 +13384,7 @@
pixel_x = 3;
pixel_y = -4
},
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_x = -4;
pixel_y = 2
},
@@ -15813,7 +15813,7 @@
/area/quartermaster/office)
"zd" = (
/obj/structure/table/standard,
-/obj/item/tape_roll,
+/obj/item/barrier_tape_roll,
/obj/item/storage/firstaid/regular{
pixel_x = 6;
pixel_y = -5
diff --git a/maps/tether/tether-10-colony.dmm b/maps/tether/tether-10-colony.dmm
index 25c658754b0..828308a0c61 100644
--- a/maps/tether/tether-10-colony.dmm
+++ b/maps/tether/tether-10-colony.dmm
@@ -736,12 +736,12 @@
/area/centcom/specops)
"bg" = (
/obj/structure/table/rack,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
/obj/item/flash,
/obj/item/flash,
/obj/item/flash,
@@ -1937,12 +1937,12 @@
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
/turf/unsimulated/floor{
icon_state = "dark"
},
@@ -6895,7 +6895,7 @@
pixel_x = -4;
pixel_y = 8
},
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_y = 0
},
/turf/unsimulated/floor{
@@ -8217,7 +8217,7 @@
/area/centcom/security)
"oK" = (
/obj/structure/table/standard,
-/obj/item/taperecorder{
+/obj/item/tape_recorder{
pixel_y = 0
},
/obj/item/megaphone,
@@ -14350,7 +14350,7 @@
},
/area/centcom/security)
"zn" = (
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/obj/structure/table/reinforced,
/obj/effect/floor_decal/borderfloorblack{
dir = 10
@@ -14839,7 +14839,7 @@
/area/centcom/security)
"Ai" = (
/obj/structure/table/reinforced,
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/turf/unsimulated/floor{
icon_state = "vault";
dir = 5
@@ -15824,7 +15824,7 @@
"BL" = (
/obj/structure/table/reinforced,
/obj/item/book/manual/security_space_law,
-/obj/item/taperecorder,
+/obj/item/tape_recorder,
/obj/effect/floor_decal/borderfloorblack,
/obj/effect/floor_decal/corner/blue/border,
/turf/unsimulated/floor{
diff --git a/maps/tether/tether_shuttles.dm b/maps/tether/tether_shuttles.dm
index fc1b4992139..4dd20526a27 100644
--- a/maps/tether/tether_shuttles.dm
+++ b/maps/tether/tether_shuttles.dm
@@ -68,7 +68,7 @@
/* //Disabling the crash mechanics per request
/datum/shuttle/ferry/tether_backup
crash_message = "Tether shuttle distress signal received. Shuttle location is approximately 200 meters from tether base."
- category = /datum/shuttle/ferry/tether_backup // So shuttle_controller.dm doesn't try and instantiate this type as an acutal mapped in shuttle.
+ category = /datum/shuttle/ferry/tether_backup // So SSshuttle.dm doesn't try and instantiate this type as an acutal mapped in shuttle.
var/list/engines = list()
var/obj/machinery/computer/shuttle_control/tether_backup/computer
@@ -208,7 +208,7 @@
ASC.setup_routes()
//Redirect us onto that route instead
- var/datum/shuttle/web_shuttle/WS = shuttle_controller.shuttles[name]
+ var/datum/shuttle/web_shuttle/WS = SSshuttle.shuttles[name]
var/datum/shuttle_destination/ASD = WS.web_master.get_destination_by_type(/datum/shuttle_destination/excursion/alienship)
WS.web_master.future_destination = ASD
. = ..(departing,ASD.my_area,interim,travel_time,direction)
diff --git a/maps/tether/tether_things.dm b/maps/tether/tether_things.dm
index ed9dd36833c..1bcab7a2a39 100644
--- a/maps/tether/tether_things.dm
+++ b/maps/tether/tether_things.dm
@@ -226,7 +226,7 @@
time_till_despawn = 10 SECONDS
spawnpoint_type = /datum/spawnpoint/tram
/obj/machinery/cryopod/robot/door/tram/process()
- if(emergency_shuttle.online() || emergency_shuttle.returned())
+ if(SSemergencyshuttle.online() || SSemergencyshuttle.returned())
// Transform into a door! But first despawn anyone inside
time_till_despawn = 0
..()
diff --git a/maps/virgo/virgo-1.dmm b/maps/virgo/virgo-1.dmm
index 4ee3dd75903..943df5862c5 100644
--- a/maps/virgo/virgo-1.dmm
+++ b/maps/virgo/virgo-1.dmm
@@ -27823,7 +27823,7 @@
dir = 1;
pixel_y = -22
},
-/obj/item/taperoll/engineering,
+/obj/item/barrier_tape_roll/engineering,
/obj/item/crowbar,
/turf/simulated/floor/tiled/white,
/area/ai_monitored/storage/emergency/eva)
diff --git a/maps/virgo/virgo-2.dmm b/maps/virgo/virgo-2.dmm
index a6f43c2fe13..cb7ead70b54 100644
--- a/maps/virgo/virgo-2.dmm
+++ b/maps/virgo/virgo-2.dmm
@@ -7336,12 +7336,12 @@
/area/centcom/specops)
"atf" = (
/obj/structure/table/rack,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
-/obj/item/taperoll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
+/obj/item/barrier_tape_roll/police,
/obj/item/flash,
/obj/item/flash,
/obj/item/flash,
@@ -9293,12 +9293,12 @@
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
-/obj/item/taperoll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
+/obj/item/barrier_tape_roll/engineering,
/turf/unsimulated/floor{
icon_state = "dark"
},
diff --git a/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index e1d39e5b267..0d0cd3e7a9f 100644
--- a/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/modular_citadel/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -14,7 +14,7 @@
/obj/item/radio/headset/heads/hos,
/obj/item/radio/headset/heads/hos/alt,
/obj/item/clothing/glasses/sunglasses/sechud,
- /obj/item/taperoll/police,
+ /obj/item/barrier_tape_roll/police,
/obj/item/shield/riot,
/obj/item/shield/riot/tele,
/obj/item/storage/box/holobadge/hos,
diff --git a/vorestation.dme b/vorestation.dme
index acdfd63963a..7fdc05aaf0c 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -31,6 +31,7 @@
#include "code\__DEFINES\admin_vr.dm"
#include "code\__DEFINES\appearance.dm"
#include "code\__DEFINES\atmos.dm"
+#include "code\__DEFINES\atmospherics.dm"
#include "code\__DEFINES\belly_modes_vr.dm"
#include "code\__DEFINES\callbacks.dm"
#include "code\__DEFINES\chemistry.dm"
@@ -187,60 +188,13 @@
#include "code\_onclick\hud\screen_objects.dm"
#include "code\_onclick\hud\screen_objects_vr.dm"
#include "code\_onclick\hud\spell_screen_objects.dm"
-#include "code\ATMOSPHERICS\_atmos_setup.dm"
-#include "code\ATMOSPHERICS\_atmospherics_helpers.dm"
-#include "code\ATMOSPHERICS\atmospherics.dm"
-#include "code\ATMOSPHERICS\datum_pipe_network.dm"
-#include "code\ATMOSPHERICS\datum_pipeline.dm"
-#include "code\ATMOSPHERICS\mainspipe.dm"
-#include "code\ATMOSPHERICS\components\portables_connector.dm"
-#include "code\ATMOSPHERICS\components\tvalve.dm"
-#include "code\ATMOSPHERICS\components\valve.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\algae_generator_vr.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\passive_gate_vr.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\pipeturbine.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\pump.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm"
-#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm"
-#include "code\ATMOSPHERICS\components\omni_devices\filter.dm"
-#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm"
-#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm"
-#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm"
-#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm"
-#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm"
-#include "code\ATMOSPHERICS\components\unary\cold_sink.dm"
-#include "code\ATMOSPHERICS\components\unary\generator_input.dm"
-#include "code\ATMOSPHERICS\components\unary\heat_exchanger.dm"
-#include "code\ATMOSPHERICS\components\unary\heat_source.dm"
-#include "code\ATMOSPHERICS\components\unary\outlet_injector.dm"
-#include "code\ATMOSPHERICS\components\unary\oxygen_generator.dm"
-#include "code\ATMOSPHERICS\components\unary\unary_base.dm"
-#include "code\ATMOSPHERICS\components\unary\vent_pump.dm"
-#include "code\ATMOSPHERICS\components\unary\vent_scrubber.dm"
-#include "code\ATMOSPHERICS\components\unary\vent_scrubber_vr.dm"
-#include "code\ATMOSPHERICS\pipes\cap.dm"
-#include "code\ATMOSPHERICS\pipes\he_pipes.dm"
-#include "code\ATMOSPHERICS\pipes\manifold.dm"
-#include "code\ATMOSPHERICS\pipes\manifold4w.dm"
-#include "code\ATMOSPHERICS\pipes\pipe_base.dm"
-#include "code\ATMOSPHERICS\pipes\simple.dm"
-#include "code\ATMOSPHERICS\pipes\tank.dm"
-#include "code\ATMOSPHERICS\pipes\universal.dm"
-#include "code\ATMOSPHERICS\pipes\vent.dm"
-#include "code\controllers\autotransfer.dm"
#include "code\controllers\communications.dm"
#include "code\controllers\controller.dm"
-#include "code\controllers\emergency_shuttle_controller.dm"
#include "code\controllers\failsafe.dm"
#include "code\controllers\globals.dm"
#include "code\controllers\hooks-defs.dm"
#include "code\controllers\hooks.dm"
#include "code\controllers\master.dm"
-#include "code\controllers\master_controller.dm"
#include "code\controllers\subsystem.dm"
#include "code\controllers\verbs.dm"
#include "code\controllers\configuration\config_entry.dm"
@@ -250,32 +204,30 @@
#include "code\controllers\configuration_old\configuration.dm"
#include "code\controllers\configuration_old\configuration_vr.dm"
#include "code\controllers\observer_listener\atom\observer.dm"
-#include "code\controllers\Processes\alarm.dm"
-#include "code\controllers\Processes\emergencyShuttle.dm"
-#include "code\controllers\Processes\game_master.dm"
-#include "code\controllers\Processes\supply.dm"
-#include "code\controllers\Processes\ticker.dm"
-#include "code\controllers\ProcessScheduler\core\process.dm"
-#include "code\controllers\ProcessScheduler\core\processScheduler.dm"
#include "code\controllers\subsystems\ai.dm"
#include "code\controllers\subsystems\air.dm"
#include "code\controllers\subsystems\airflow.dm"
+#include "code\controllers\subsystems\alarm.dm"
#include "code\controllers\subsystems\assets.dm"
#include "code\controllers\subsystems\atoms.dm"
#include "code\controllers\subsystems\bellies_vr.dm"
#include "code\controllers\subsystems\character_setup.dm"
#include "code\controllers\subsystems\circuits.dm"
#include "code\controllers\subsystems\dcs.dm"
+#include "code\controllers\subsystems\emergency_shuttle.dm"
#include "code\controllers\subsystems\events.dm"
#include "code\controllers\subsystems\fail2topic.dm"
+#include "code\controllers\subsystems\game_master.dm"
#include "code\controllers\subsystems\garbage.dm"
#include "code\controllers\subsystems\holomaps.dm"
#include "code\controllers\subsystems\inactivity.dm"
+#include "code\controllers\subsystems\jobs.dm"
#include "code\controllers\subsystems\lighting.dm"
#include "code\controllers\subsystems\machines.dm"
#include "code\controllers\subsystems\mapping_vr.dm"
#include "code\controllers\subsystems\mobs.dm"
#include "code\controllers\subsystems\nanoui.dm"
+#include "code\controllers\subsystems\openspace.dm"
#include "code\controllers\subsystems\orbits.dm"
#include "code\controllers\subsystems\overlays.dm"
#include "code\controllers\subsystems\persist_vr.dm"
@@ -286,9 +238,13 @@
#include "code\controllers\subsystems\shuttles.dm"
#include "code\controllers\subsystems\sounds.dm"
#include "code\controllers\subsystems\sun.dm"
+#include "code\controllers\subsystems\supply.dm"
+#include "code\controllers\subsystems\ticker.dm"
#include "code\controllers\subsystems\time_track.dm"
#include "code\controllers\subsystems\timer.dm"
#include "code\controllers\subsystems\transcore_vr.dm"
+#include "code\controllers\subsystems\transfer.dm"
+#include "code\controllers\subsystems\turbolift.dm"
#include "code\controllers\subsystems\vote.dm"
#include "code\controllers\subsystems\xenoarch.dm"
#include "code\controllers\subsystems\processing\chemistry.dm"
@@ -362,7 +318,6 @@
#include "code\datums\looping_sounds\weather_sounds.dm"
#include "code\datums\observation\_debug.dm"
#include "code\datums\observation\_defines.dm"
-#include "code\datums\observation\destroyed.dm"
#include "code\datums\observation\dir_set.dm"
#include "code\datums\observation\equipped.dm"
#include "code\datums\observation\helpers.dm"
@@ -550,7 +505,6 @@
#include "code\game\gamemodes\events.dm"
#include "code\game\gamemodes\game_mode.dm"
#include "code\game\gamemodes\game_mode_latespawn.dm"
-#include "code\game\gamemodes\gameticker.dm"
#include "code\game\gamemodes\objective.dm"
#include "code\game\gamemodes\setupgame.dm"
#include "code\game\gamemodes\calamity\calamity.dm"
@@ -726,7 +680,6 @@
#include "code\game\jobs\access.dm"
#include "code\game\jobs\access_datum.dm"
#include "code\game\jobs\access_datum_vr.dm"
-#include "code\game\jobs\job_controller.dm"
#include "code\game\jobs\jobs.dm"
#include "code\game\jobs\whitelist.dm"
#include "code\game\jobs\whitelist_vr.dm"
@@ -1103,6 +1056,7 @@
#include "code\game\objects\items\stacks\tiles\tile_types.dm"
#include "code\game\objects\items\weapons\AI_modules.dm"
#include "code\game\objects\items\weapons\autopsy.dm"
+#include "code\game\objects\items\weapons\barrier_tape.dm"
#include "code\game\objects\items\weapons\bones.dm"
#include "code\game\objects\items\weapons\candle.dm"
#include "code\game\objects\items\weapons\cards_ids_vr.dm"
@@ -1110,6 +1064,7 @@
#include "code\game\objects\items\weapons\clown_items.dm"
#include "code\game\objects\items\weapons\cosmetics.dm"
#include "code\game\objects\items\weapons\dna_injector.dm"
+#include "code\game\objects\items\weapons\duct_tape.dm"
#include "code\game\objects\items\weapons\explosives.dm"
#include "code\game\objects\items\weapons\explosives_vr.dm"
#include "code\game\objects\items\weapons\extinguisher.dm"
@@ -1124,7 +1079,6 @@
#include "code\game\objects\items\weapons\mop_deploy.dm"
#include "code\game\objects\items\weapons\paint.dm"
#include "code\game\objects\items\weapons\paiwire.dm"
-#include "code\game\objects\items\weapons\policetape.dm"
#include "code\game\objects\items\weapons\RCD.dm"
#include "code\game\objects\items\weapons\RPD.dm"
#include "code\game\objects\items\weapons\RSF.dm"
@@ -1135,7 +1089,6 @@
#include "code\game\objects\items\weapons\surgery_tools.dm"
#include "code\game\objects\items\weapons\swords_axes_etc.dm"
#include "code\game\objects\items\weapons\syndie.dm"
-#include "code\game\objects\items\weapons\tape.dm"
#include "code\game\objects\items\weapons\teleportation.dm"
#include "code\game\objects\items\weapons\towels.dm"
#include "code\game\objects\items\weapons\traps.dm"
@@ -1584,6 +1537,50 @@
#include "code\modules\assembly\signaler.dm"
#include "code\modules\assembly\timer.dm"
#include "code\modules\assembly\voice.dm"
+#include "code\modules\atmospherics\_atmos_setup.dm"
+#include "code\modules\atmospherics\_atmospherics_helpers.dm"
+#include "code\modules\atmospherics\atmospherics.dm"
+#include "code\modules\atmospherics\datum_pipe_network.dm"
+#include "code\modules\atmospherics\datum_pipeline.dm"
+#include "code\modules\atmospherics\mainspipe.dm"
+#include "code\modules\atmospherics\components\portables_connector.dm"
+#include "code\modules\atmospherics\components\tvalve.dm"
+#include "code\modules\atmospherics\components\valve.dm"
+#include "code\modules\atmospherics\components\binary_devices\algae_generator_vr.dm"
+#include "code\modules\atmospherics\components\binary_devices\binary_atmos_base.dm"
+#include "code\modules\atmospherics\components\binary_devices\circulator.dm"
+#include "code\modules\atmospherics\components\binary_devices\dp_vent_pump.dm"
+#include "code\modules\atmospherics\components\binary_devices\passive_gate.dm"
+#include "code\modules\atmospherics\components\binary_devices\passive_gate_vr.dm"
+#include "code\modules\atmospherics\components\binary_devices\pipeturbine.dm"
+#include "code\modules\atmospherics\components\binary_devices\pump.dm"
+#include "code\modules\atmospherics\components\binary_devices\volume_pump.dm"
+#include "code\modules\atmospherics\components\omni_devices\_omni_extras.dm"
+#include "code\modules\atmospherics\components\omni_devices\filter.dm"
+#include "code\modules\atmospherics\components\omni_devices\mixer.dm"
+#include "code\modules\atmospherics\components\omni_devices\omni_base.dm"
+#include "code\modules\atmospherics\components\trinary_devices\filter.dm"
+#include "code\modules\atmospherics\components\trinary_devices\mixer.dm"
+#include "code\modules\atmospherics\components\trinary_devices\trinary_base.dm"
+#include "code\modules\atmospherics\components\unary\cold_sink.dm"
+#include "code\modules\atmospherics\components\unary\generator_input.dm"
+#include "code\modules\atmospherics\components\unary\heat_exchanger.dm"
+#include "code\modules\atmospherics\components\unary\heat_source.dm"
+#include "code\modules\atmospherics\components\unary\outlet_injector.dm"
+#include "code\modules\atmospherics\components\unary\oxygen_generator.dm"
+#include "code\modules\atmospherics\components\unary\unary_base.dm"
+#include "code\modules\atmospherics\components\unary\vent_pump.dm"
+#include "code\modules\atmospherics\components\unary\vent_scrubber.dm"
+#include "code\modules\atmospherics\components\unary\vent_scrubber_vr.dm"
+#include "code\modules\atmospherics\pipes\cap.dm"
+#include "code\modules\atmospherics\pipes\he_pipes.dm"
+#include "code\modules\atmospherics\pipes\manifold.dm"
+#include "code\modules\atmospherics\pipes\manifold4w.dm"
+#include "code\modules\atmospherics\pipes\pipe_base.dm"
+#include "code\modules\atmospherics\pipes\simple.dm"
+#include "code\modules\atmospherics\pipes\tank.dm"
+#include "code\modules\atmospherics\pipes\universal.dm"
+#include "code\modules\atmospherics\pipes\vent.dm"
#include "code\modules\awaymissions\bluespaceartillery.dm"
#include "code\modules\awaymissions\corpse.dm"
#include "code\modules\awaymissions\exile.dm"
@@ -1968,9 +1965,8 @@
#include "code\modules\food\kitchen\cooking_machines\oven.dm"
#include "code\modules\gamemaster\controller.dm"
#include "code\modules\gamemaster\defines.dm"
-#include "code\modules\gamemaster\game_master.dm"
#include "code\modules\gamemaster\helpers.dm"
-#include "code\modules\gamemaster\actions\action.dm"
+#include "code\modules\gamemaster\actions\_action.dm"
#include "code\modules\gamemaster\actions\atmos_leak.dm"
#include "code\modules\gamemaster\actions\blob.dm"
#include "code\modules\gamemaster\actions\brand_intelligence.dm"
@@ -2751,11 +2747,11 @@
#include "code\modules\multiz\ladder_assembly_vr.dm"
#include "code\modules\multiz\movement.dm"
#include "code\modules\multiz\movement_vr.dm"
-#include "code\modules\multiz\open_space_controller.dm"
#include "code\modules\multiz\pipes.dm"
#include "code\modules\multiz\structures.dm"
#include "code\modules\multiz\structures_vr.dm"
#include "code\modules\multiz\turf.dm"
+#include "code\modules\multiz\turf_obj_hooks.dm"
#include "code\modules\multiz\zshadow.dm"
#include "code\modules\nano\nanoexternal.dm"
#include "code\modules\nano\nanomanager.dm"
@@ -3260,7 +3256,6 @@
#include "code\modules\turbolift\turbolift_door_vr.dm"
#include "code\modules\turbolift\turbolift_floor.dm"
#include "code\modules\turbolift\turbolift_map.dm"
-#include "code\modules\turbolift\turbolift_process.dm"
#include "code\modules\turbolift\turbolift_turfs.dm"
#include "code\modules\vehicles\bike.dm"
#include "code\modules\vehicles\boat.dm"