From 65807b2118511aa869bc696bd320d5cdf0878ea1 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 03:58:26 -0700
Subject: [PATCH 01/44] ok
---
.../ProcessScheduler/core/process.dm | 392 ------------------
.../ProcessScheduler/core/processScheduler.dm | 234 -----------
code/controllers/Processes/air.dm | 23 -
code/controllers/Processes/chemistry.dm | 33 --
.../controllers/Processes/emergencyShuttle.dm | 9 -
code/controllers/Processes/event.dm | 6 -
code/controllers/Processes/inactivity.dm | 42 --
code/controllers/Processes/obj.dm | 26 --
code/controllers/Processes/planet.dm | 96 -----
code/controllers/Processes/radiation.dm | 56 ---
code/controllers/Processes/scheduler.dm | 168 --------
code/controllers/Processes/turf.dm | 16 -
.../{Processes => subsystems}/alarm.dm | 0
.../emergency_shuttle.dm} | 10 +
.../{Processes => subsystems}/game_master.dm | 0
.../subsystems/jobs.dm} | 0
.../{ => subsystems}/master_controller.dm | 0
.../{Processes => subsystems}/supply.dm | 96 ++---
.../{Processes => subsystems}/ticker.dm | 0
.../transfer.dm} | 21 +-
code/controllers/verbs.dm | 8 -
code/game/gamemodes/gameticker.dm | 2 +-
code/game/machinery/computer/supply.dm | 36 +-
code/game/machinery/status_display.dm | 2 +-
code/game/machinery/supply_display.dm | 2 +-
code/game/objects/items/devices/PDA/cart.dm | 6 +-
.../items/devices/communicator/cartridge.dm | 28 +-
.../items/devices/communicator/helper.dm | 12 +-
code/modules/events/shipping_error.dm | 6 +-
code/modules/events/supply_demand.dm | 2 +-
.../gamemaster/actions/shipping_error.dm | 6 +-
.../gamemaster/actions/supply_conversion.dm | 2 +-
code/modules/shuttles/shuttle.dm | 8 +-
code/modules/shuttles/shuttle_supply.dm | 8 +-
34 files changed, 125 insertions(+), 1231 deletions(-)
delete mode 100644 code/controllers/ProcessScheduler/core/process.dm
delete mode 100644 code/controllers/ProcessScheduler/core/processScheduler.dm
delete mode 100644 code/controllers/Processes/air.dm
delete mode 100644 code/controllers/Processes/chemistry.dm
delete mode 100644 code/controllers/Processes/emergencyShuttle.dm
delete mode 100644 code/controllers/Processes/event.dm
delete mode 100644 code/controllers/Processes/inactivity.dm
delete mode 100644 code/controllers/Processes/obj.dm
delete mode 100644 code/controllers/Processes/planet.dm
delete mode 100644 code/controllers/Processes/radiation.dm
delete mode 100644 code/controllers/Processes/scheduler.dm
delete mode 100644 code/controllers/Processes/turf.dm
rename code/controllers/{Processes => subsystems}/alarm.dm (100%)
rename code/controllers/{emergency_shuttle_controller.dm => subsystems/emergency_shuttle.dm} (97%)
rename code/controllers/{Processes => subsystems}/game_master.dm (100%)
rename code/{game/jobs/job_controller.dm => controllers/subsystems/jobs.dm} (100%)
rename code/controllers/{ => subsystems}/master_controller.dm (100%)
rename code/controllers/{Processes => subsystems}/supply.dm (91%)
rename code/controllers/{Processes => subsystems}/ticker.dm (100%)
rename code/controllers/{autotransfer.dm => subsystems/transfer.dm} (83%)
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/air.dm b/code/controllers/Processes/air.dm
deleted file mode 100644
index bdb9fe7fbd8..00000000000
--- a/code/controllers/Processes/air.dm
+++ /dev/null
@@ -1,23 +0,0 @@
-/datum/controller/process/air/setup()
- name = "air"
- schedule_interval = 20 // every 2 seconds
- start_delay = 4
-
- if(!air_master)
- air_master = new
- air_master.Setup()
-
-/datum/controller/process/air/doWork()
- if(!air_processing_killed)
- if(!air_master.Tick()) //Runtimed.
- air_master.failed_ticks++
-
- if(air_master.failed_ticks > 5)
- world << "RUNTIMES IN ATMOS TICKER. Killing air simulation!"
- world.log << "### ZAS SHUTDOWN"
-
- message_admins("ZASALERT: Shutting down! status: [air_master.tick_progress]")
- log_admin("ZASALERT: Shutting down! status: [air_master.tick_progress]")
-
- air_processing_killed = TRUE
- air_master.failed_ticks = 0
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/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/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/Processes/alarm.dm b/code/controllers/subsystems/alarm.dm
similarity index 100%
rename from code/controllers/Processes/alarm.dm
rename to code/controllers/subsystems/alarm.dm
diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/subsystems/emergency_shuttle.dm
similarity index 97%
rename from code/controllers/emergency_shuttle_controller.dm
rename to code/controllers/subsystems/emergency_shuttle.dm
index 2e0266bdb21..aaeb8343c60 100644
--- a/code/controllers/emergency_shuttle_controller.dm
+++ b/code/controllers/subsystems/emergency_shuttle.dm
@@ -1,3 +1,13 @@
+/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()
+
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
// Controls the emergency shuttle
diff --git a/code/controllers/Processes/game_master.dm b/code/controllers/subsystems/game_master.dm
similarity index 100%
rename from code/controllers/Processes/game_master.dm
rename to code/controllers/subsystems/game_master.dm
diff --git a/code/game/jobs/job_controller.dm b/code/controllers/subsystems/jobs.dm
similarity index 100%
rename from code/game/jobs/job_controller.dm
rename to code/controllers/subsystems/jobs.dm
diff --git a/code/controllers/master_controller.dm b/code/controllers/subsystems/master_controller.dm
similarity index 100%
rename from code/controllers/master_controller.dm
rename to code/controllers/subsystems/master_controller.dm
diff --git a/code/controllers/Processes/supply.dm b/code/controllers/subsystems/supply.dm
similarity index 91%
rename from code/controllers/Processes/supply.dm
rename to code/controllers/subsystems/supply.dm
index 61db5353055..270ebf07a5f 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
-
-/datum/controller/process/supply/setup()
- name = "supply controller"
- schedule_interval = 300 // every 30 seconds
-
-/datum/controller/process/supply/doWork()
- supply_controller.process()
+ return ..()
// Supply shuttle ticker - 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/controllers/Processes/ticker.dm b/code/controllers/subsystems/ticker.dm
similarity index 100%
rename from code/controllers/Processes/ticker.dm
rename to code/controllers/subsystems/ticker.dm
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/controllers/verbs.dm b/code/controllers/verbs.dm
index 7b136065d84..2484e842e75 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)
diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 6bb938a2038..3e13fac8804 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -153,7 +153,7 @@ 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
*/
diff --git a/code/game/machinery/computer/supply.dm b/code/game/machinery/computer/supply.dm
index 49c1a410aff..a388829f3d6 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,10 @@
/obj/machinery/computer/supplycomp/Topic(href, href_list)
- if(!supply_controller)
- world.log << "## ERROR: The supply_controller datum is missing."
+ if(!SSsupply)
+ world.log << "## ERROR: The SSsupply datum is missing."
return
- var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
+ var/datum/shuttle/ferry/supply/shuttle = SSsupply.shuttle
if (!shuttle)
world.log << "## ERROR: The supply shuttle datum is missing."
return
@@ -243,7 +243,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 +258,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 +318,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 +387,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 +404,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/status_display.dm b/code/game/machinery/status_display.dm
index 015869fccc9..0ea298a020f 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -210,7 +210,7 @@
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/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/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/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/supply_conversion.dm b/code/modules/gamemaster/actions/supply_conversion.dm
index 5f05a8cb04d..ccf7beb21a2 100644
--- a/code/modules/gamemaster/actions/supply_conversion.dm
+++ b/code/modules/gamemaster/actions/supply_conversion.dm
@@ -12,7 +12,7 @@
var/thaler_earned
/datum/gm_action/nanotrasen_budget_allocation/set_up()
- SC = supply_controller
+ SC = SSsupply
running = TRUE
return
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index 4ce211ee72c..26466084bb0 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -26,15 +26,15 @@
if(flags & SHUTTLE_FLAGS_PROCESS)
shuttle_controller.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
+ if(SSsupply.shuttle == src)
+ SSsupply.shuttle = null
. = ..()
/datum/shuttle/process()
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)
From 2dc41869ea353ad23a342b2e10ae84a3cbd72f0a Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:05:29 -0700
Subject: [PATCH 02/44] ok
---
code/__DEFINES/subsystems.dm | 41 +-
.../subsystems/emergency_shuttle.dm | 2 +
code/controllers/subsystems/game_master.dm | 161 ++-
code/controllers/subsystems/jobs.dm | 1225 +++++++++--------
.../subsystems/master_controller.dm | 8 +-
code/controllers/subsystems/persist_vr.dm | 4 +-
code/game/gamemodes/gameticker.dm | 8 +-
code/game/jobs/whitelist_vr.dm | 2 +-
code/game/machinery/computer/timeclock_vr.dm | 12 +-
code/game/machinery/cryopod.dm | 2 +-
.../items/weapons/id cards/station_ids.dm | 2 +-
code/modules/admin/admin_verbs.dm | 4 +-
code/modules/admin/topic.dm | 40 +-
code/modules/admin/verbs/randomverbs.dm | 6 +-
code/modules/admin/verbs/tripAI.dm | 4 +-
.../preference_setup/occupation/occupation.dm | 12 +-
code/modules/gamemaster/game_master.dm | 156 ---
code/modules/mob/dead/observer/free_vr.dm | 2 +-
code/modules/mob/living/silicon/silicon.dm | 2 +-
code/modules/mob/new_player/new_player.dm | 10 +-
.../mob/new_player/preferences_setup.dm | 4 +-
21 files changed, 855 insertions(+), 852 deletions(-)
delete mode 100644 code/modules/gamemaster/game_master.dm
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 287ef02a02a..b6253ef6c4c 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -57,27 +57,28 @@ 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_XENOARCH -20
+#define INIT_ORDER_CIRCUIT -21
+#define INIT_ORDER_CHEMISTRY 18
+#define INIT_ORDER_AI -22
// Subsystem fire priority, from lowest to highest priority
diff --git a/code/controllers/subsystems/emergency_shuttle.dm b/code/controllers/subsystems/emergency_shuttle.dm
index aaeb8343c60..a4d8e20667e 100644
--- a/code/controllers/subsystems/emergency_shuttle.dm
+++ b/code/controllers/subsystems/emergency_shuttle.dm
@@ -1,3 +1,5 @@
+
+
/datum/controller/process/emergencyShuttle/setup()
name = "emergency shuttle"
schedule_interval = 20 // every 2 seconds
diff --git a/code/controllers/subsystems/game_master.dm b/code/controllers/subsystems/game_master.dm
index 7f89f3ab135..7ae19937922 100644
--- a/code/controllers/subsystems/game_master.dm
+++ b/code/controllers/subsystems/game_master.dm
@@ -1,6 +1,157 @@
-/datum/controller/process/game_master/setup()
- name = "\improper GM controller"
- schedule_interval = 600 // every 60 seconds
+// This is a sort of successor to the various event systems created over the years. It is designed to be just a tad smarter than the
+// 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.
+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.
+ var/danger = 0 // The GM's best guess at how chaotic the round is. High danger makes it hold back.
+ var/staleness = -20 // Determines liklihood of the GM doing something, increases over time.
+ var/danger_modifier = 1 // Multiplier for how much 'danger' is accumulated.
+ var/staleness_modifier = 1 // Ditto. Higher numbers generally result in more events occuring in a round.
+ var/ticks_completed = 0 // Counts amount of ticks completed. Note that this ticks once a minute.
+ 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/controller/subsystem/gamemaster/Initialize()
+ available_actions = init_subtypes(/datum/gm_action)
+ for(var/datum/gm_action/action in available_actions)
+ action.gm = src
+
+ var/config_setup_delay = TRUE
+ spawn(0)
+ while(config_setup_delay)
+ if(config)
+ config_setup_delay = FALSE
+ if(config_legacy.enable_game_master)
+ suspended = FALSE
+ else
+ sleep(30 SECONDS)
+ return ..()
+
+/datum/controller/subsystem/gamemaster/fire(resumed)
+ if(ticker && ticker.current_state == GAME_STATE_PLAYING && !suspended)
+ adjust_staleness(1)
+ adjust_danger(-1)
+ ticks_completed++
+
+ var/global_afk = metric.assess_all_living_mobs()
+ global_afk -= 100
+ global_afk = abs(global_afk)
+ global_afk = round(global_afk / 100, 0.1)
+ adjust_staleness(global_afk) // Staleness increases faster if more people are less active.
+
+ if(world.time < next_action && prob(staleness * 2) )
+ log_debug("Game Master going to start something.")
+ start_action()
+
+// This is run before committing to an action/event.
+/datum/controller/subsystem/gamemaster/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.")
+ return FALSE
+ if(suspended)
+ return FALSE
+ if(ignore_time_restrictions)
+ return TRUE
+ // Last minute antagging is bad for humans to do, so the GM will respect the start and end of the round.
+ var/mills = round_duration_in_ticks
+ var/mins = round((mills % 36000) / 600)
+ var/hours = round(mills / 36000)
+
+ if(hours < 1 && mins <= 20) // Don't do anything for the first twenty minutes of the round.
+ log_debug("Game Master unable to start event: It is too early.")
+ return FALSE
+ if(hours >= 2 && mins >= 40) // Don't do anything in the last twenty minutes of the round, as well.
+ log_debug("Game Master unable to start event: It is too late.")
+ return FALSE
+ return TRUE
+
+/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.")
+ var/list/most_active_departments = metric.assess_all_departments(3, list(last_department_used))
+ var/list/best_actions = decide_best_action(most_active_departments)
+
+ if(best_actions && best_actions.len)
+ var/list/weighted_actions = list()
+ for(var/datum/gm_action/action in best_actions)
+ if(action.chaotic > danger)
+ continue // We skip dangerous events when bad stuff is already occuring.
+ weighted_actions[action] = action.get_weight()
+
+ var/datum/gm_action/choice = pickweight(weighted_actions)
+ if(choice)
+ log_debug("[choice.name] was chosen by the Game Master, and is now being ran.")
+ run_action(choice)
+
+/datum/controller/subsystem/gamemaster/proc/run_action(var/datum/gm_action/action)
+ action.set_up()
+ action.start()
+ action.announce()
+ if(action.chaotic)
+ danger += action.chaotic
+ if(action.length)
+ spawn(action.length)
+ action.end()
+ next_action = world.time + rand(15 MINUTES, 30 MINUTES)
+ last_department_used = action.departments[1]
+
+
+/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()
+
+ var/list/best_actions = list() // List of actions which involve the most active departments.
+ if(most_active_departments.len >= 2)
+ for(var/datum/gm_action/action in available_actions)
+ if(!action.enabled)
+ continue
+ // Try to incorporate an action with the top two departments first.
+ if(most_active_departments[1] in action.departments && most_active_departments[2] in action.departments)
+ best_actions.Add(action)
+ log_debug("[action.name] is being considered because both most active departments are involved.")
+
+ if(best_actions.len) // We found something for those two, let's do it.
+ return best_actions
+
+ // Otherwise we probably couldn't find something for the second highest group, so let's ignore them.
+ for(var/datum/gm_action/action in available_actions)
+ if(!action.enabled)
+ continue
+ if(most_active_departments[1] in action.departments)
+ best_actions.Add(action)
+ log_debug("[action.name] is being considered because the most active department is involved.")
+
+ if(best_actions.len) // Found something for the one guy.
+ return best_actions
+
+ // At this point we should expand our horizons.
+ for(var/datum/gm_action/action in available_actions)
+ if(!action.enabled)
+ continue
+ if(ROLE_EVERYONE in action.departments)
+ best_actions.Add(action)
+ log_debug("[action.name] is being considered because it involves everyone.")
+
+ if(best_actions.len) // Finally, perhaps?
+ return best_actions
+
+ // Just give a random event if for some reason it still can't make up its mind.
+ for(var/datum/gm_action/action in available_actions)
+ if(!action.enabled)
+ continue
+ best_actions.Add(action)
+ log_debug("[action.name] is being considered because everything else failed.")
+
+ if(best_actions.len) // Finally, perhaps?
+ return best_actions
+ else
+ log_debug("Game Master failed to find a suitable event, something very wrong is going on.")
+
-/datum/controller/process/game_master/doWork()
- game_master.process()
\ No newline at end of file
diff --git a/code/controllers/subsystems/jobs.dm b/code/controllers/subsystems/jobs.dm
index 271bf63c383..ee46e2945d9 100644
--- a/code/controllers/subsystems/jobs.dm
+++ b/code/controllers/subsystems/jobs.dm
@@ -1,673 +1,678 @@
-var/global/datum/controller/occupations/job_master
-
-#define GET_RANDOM_JOB 0
-#define BE_ASSISTANT 1
-#define RETURN_TO_LOBBY 2
-
-/datum/controller/occupations
- //List of all jobs
+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
- 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)
+#define GET_RANDOM_JOB 0
+#define BE_ASSISTANT 1
+#define RETURN_TO_LOBBY 2
- return 1
+
+/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
- proc/Debug(var/text)
- if(!Debug2) return 0
- job_debug.Add(text)
- return 1
+/datum/controller/subsystem/jobs/proc/Debug(var/text)
+ if(!Debug2)
+ return 0
+ job_debug.Add(text)
+ return 1
- proc/GetJob(var/rank)
- if(!rank) return null
- for(var/datum/job/J in occupations)
- if(!J) continue
- if(J.title == rank) return J
+/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
- proc/GetPlayerAltTitle(mob/new_player/player, rank)
- return player.client.prefs.GetPlayerAltTitle(GetJob(rank))
+/datum/controller/subsystem/jobs/proc/GetPlayerAltTitle(mob/new_player/player, rank)
+ return player.client.prefs.GetPlayerAltTitle(GetJob(rank))
- 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
-
- proc/FreeRole(var/rank) //making additional slot on the fly
+/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 && job.total_positions != -1)
- job.total_positions++
+ 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
- return 0
+ Debug("AR has failed, Player: [player], Rank: [rank]")
+ return 0
- 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/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
- 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
+/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
- if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
- continue
+/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(istype(job, GetJob(USELESS_JOB))) // We don't want to give him assistant, that's boring! //VOREStation Edit - Visitor not Assistant
- continue
+ if(job.minimum_character_age && (player.client.prefs.age < job.minimum_character_age))
+ continue
- if(job.title in command_positions) //If you want a command position, select it!
- 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(jobban_isbanned(player, job.title))
- Debug("GRJ isbanned failed, Player: [player], Job: [job.title]")
- continue
+ if(job.title in command_positions) //If you want a command position, select it!
+ continue
- if(!job.player_old_enough(player.client))
- Debug("GRJ player not old enough, Player: [player]")
- continue
+ if(jobban_isbanned(player, job.title))
+ Debug("GRJ isbanned failed, Player: [player], Job: [job.title]")
+ 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.player_old_enough(player.client))
+ Debug("GRJ player not old enough, Player: [player]")
+ continue
- 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
+ //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
- 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
+ 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
- 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
- proc/CheckHeadPositions(var/level)
+///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
- var/mob/new_player/candidate = pick(candidates)
- AssignRole(candidate, command_position)
- return
+
+ // 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".
**/
- proc/DivideOccupations()
- //Setup new player list and get the jobs list
- Debug("Running DO")
- SetupOccupations()
+/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 ticker, this just processes it
- if(ticker && ticker.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 = ticker.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 || ticker.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
-
-
- 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 = (ticker.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
-
-
- 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
+ //Holder for Triumvirate is stored in the ticker, this just processes it
+ if(ticker && ticker.triai)
+ for(var/datum/job/A in occupations)
+ if(A.title == "AI")
+ A.spawn_positions = 3
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)
+ //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
- //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
+ Debug("DO, Len: [unassigned.len]")
+ if(unassigned.len == 0) return 0
- H.equip_to_slot_or_del(C, slot_wear_id)
+ //Shuffle players and jobs
+ unassigned = shuffle(unassigned)
-// 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])"
+ HandleFeedbackGathering()
- return 1
+ //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")
- proc/LoadJobs(jobsfile) //ran during round setup, reads info from jobs.txt -- Urist
- if(!config_legacy.load_jobs_from_txt)
- return 0
+ // 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.
- var/list/jobEntries = file2list(jobsfile)
+ // Loop through all levels from high to low
+ var/list/shuffledoccupations = shuffle(occupations)
+ // var/list/disabled_jobs = ticker.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)
- for(var/job in jobEntries)
+ // 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 || ticker.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
-
- job = trim(job)
- if (!length(job))
+ 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*/
- var/pos = findtext(job, "=")
- var/name = null
- var/value = null
+ Debug("DO, Standard Check end")
- if(pos)
- name = copytext(job, 1, pos)
- value = copytext(job, pos + 1)
+ 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 = (ticker.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
- 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
-
-
- 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)
+ tmp_str += "HIGH=[level1]|MEDIUM=[level2]|LOW=[level3]|NEVER=[level4]|BANNED=[level5]|YOUNG=[level6]|-"
+ feedback_add_details("job_preferences",tmp_str)
/datum/controller/occupations/proc/LateSpawn(var/client/C, var/rank)
diff --git a/code/controllers/subsystems/master_controller.dm b/code/controllers/subsystems/master_controller.dm
index 8b3a39e536b..0bc1c199f75 100644
--- a/code/controllers/subsystems/master_controller.dm
+++ b/code/controllers/subsystems/master_controller.dm
@@ -24,10 +24,10 @@ datum/controller/game_controller/New()
qdel(master_controller)
master_controller = src
- if(!job_master)
- job_master = new /datum/controller/occupations()
- job_master.SetupOccupations()
- job_master.LoadJobs("config/jobs.txt")
+ if(!SSjobs)
+ SSjobs = new /datum/controller/occupations()
+ SSjobs.SetupOccupations()
+ SSjobs.LoadJobs("config/jobs.txt")
admin_notice("Job setup complete", R_DEBUG)
if(!syndicate_code_phrase) syndicate_code_phrase = generate_code_phrase()
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/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 3e13fac8804..9d21d8ca7cb 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -95,10 +95,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())
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 +106,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)
@@ -302,7 +302,7 @@ var/global/datum/controller/gameticker/ticker
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)
+ SSjobs.EquipRank(player, player.mind.assigned_role, 0)
UpdateFactionList(player)
//equip_custom_items(player) //VOREStation Removal
//player.apply_traits() //VOREStation Removal
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/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/cryopod.dm b/code/game/machinery/cryopod.dm
index ea55eec3d39..6f07f441160 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -474,7 +474,7 @@
//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)
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 0268187c68d..3a59a2eccf1 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/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index eec358e20a1..71c568269ad 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -1010,7 +1010,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 +1018,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/topic.dm b/code/modules/admin/topic.dm
index 359fd38d3f0..e1eb09c007b 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -376,7 +376,7 @@
if(!M.ckey) //sanity
usr << "This mob has no ckey"
return
- if(!job_master)
+ if(!SSjobs)
usr << "Job Master has not been setup!"
return
@@ -397,7 +397,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 +418,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 +439,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 +460,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 +481,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 +502,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 +523,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 +544,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 +571,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,7 +648,7 @@
alert("You cannot perform this action. You must be of a higher administrative rank!")
return
- if(!job_master)
+ if(!SSjobs)
usr << "Job Master has not been setup!"
return
@@ -658,58 +658,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
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 81b7921fc92..a530634ab23 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!
diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm
index 98f60758546..b77c9650574 100644
--- a/code/modules/admin/verbs/tripAI.dm
+++ b/code/modules/admin/verbs/tripAI.dm
@@ -6,8 +6,8 @@
usr << "This option is currently only usable during pregame. This may change at a later date."
return
- if(job_master && ticker)
- var/datum/job/job = job_master.GetJob("AI")
+ if(SSjobs && ticker)
+ var/datum/job/job = SSjobs.GetJob("AI")
if(!job)
usr << "Unable to locate the AI job"
return
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/gamemaster/game_master.dm b/code/modules/gamemaster/game_master.dm
deleted file mode 100644
index 8baa0239653..00000000000
--- a/code/modules/gamemaster/game_master.dm
+++ /dev/null
@@ -1,156 +0,0 @@
-// This is a sort of successor to the various event systems created over the years. It is designed to be just a tad smarter than the
-// 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
- 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.
- var/danger = 0 // The GM's best guess at how chaotic the round is. High danger makes it hold back.
- var/staleness = -20 // Determines liklihood of the GM doing something, increases over time.
- var/danger_modifier = 1 // Multiplier for how much 'danger' is accumulated.
- var/staleness_modifier = 1 // Ditto. Higher numbers generally result in more events occuring in a round.
- var/ticks_completed = 0 // Counts amount of ticks completed. Note that this ticks once a minute.
- 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()
- ..()
- available_actions = init_subtypes(/datum/gm_action)
- for(var/datum/gm_action/action in available_actions)
- action.gm = src
-
- var/config_setup_delay = TRUE
- spawn(0)
- while(config_setup_delay)
- if(config)
- config_setup_delay = FALSE
- if(config_legacy.enable_game_master)
- suspended = FALSE
- else
- sleep(30 SECONDS)
-
-/datum/game_master/process()
- if(ticker && ticker.current_state == GAME_STATE_PLAYING && !suspended)
- adjust_staleness(1)
- adjust_danger(-1)
- ticks_completed++
-
- var/global_afk = metric.assess_all_living_mobs()
- global_afk -= 100
- global_afk = abs(global_afk)
- global_afk = round(global_afk / 100, 0.1)
- adjust_staleness(global_afk) // Staleness increases faster if more people are less active.
-
- if(world.time < next_action && prob(staleness * 2) )
- log_debug("Game Master going to start something.")
- 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.")
- return FALSE
- if(suspended)
- return FALSE
- if(ignore_time_restrictions)
- return TRUE
- // Last minute antagging is bad for humans to do, so the GM will respect the start and end of the round.
- var/mills = round_duration_in_ticks
- var/mins = round((mills % 36000) / 600)
- var/hours = round(mills / 36000)
-
- if(hours < 1 && mins <= 20) // Don't do anything for the first twenty minutes of the round.
- log_debug("Game Master unable to start event: It is too early.")
- return FALSE
- if(hours >= 2 && mins >= 40) // Don't do anything in the last twenty minutes of the round, as well.
- log_debug("Game Master unable to start event: It is too late.")
- return FALSE
- return TRUE
-
-/datum/game_master/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.")
- var/list/most_active_departments = metric.assess_all_departments(3, list(last_department_used))
- var/list/best_actions = decide_best_action(most_active_departments)
-
- if(best_actions && best_actions.len)
- var/list/weighted_actions = list()
- for(var/datum/gm_action/action in best_actions)
- if(action.chaotic > danger)
- continue // We skip dangerous events when bad stuff is already occuring.
- weighted_actions[action] = action.get_weight()
-
- var/datum/gm_action/choice = pickweight(weighted_actions)
- if(choice)
- 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)
- action.set_up()
- action.start()
- action.announce()
- if(action.chaotic)
- danger += action.chaotic
- if(action.length)
- spawn(action.length)
- action.end()
- next_action = world.time + rand(15 MINUTES, 30 MINUTES)
- last_department_used = action.departments[1]
-
-
-/datum/game_master/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()
-
- var/list/best_actions = list() // List of actions which involve the most active departments.
- if(most_active_departments.len >= 2)
- for(var/datum/gm_action/action in available_actions)
- if(!action.enabled)
- continue
- // Try to incorporate an action with the top two departments first.
- if(most_active_departments[1] in action.departments && most_active_departments[2] in action.departments)
- best_actions.Add(action)
- log_debug("[action.name] is being considered because both most active departments are involved.")
-
- if(best_actions.len) // We found something for those two, let's do it.
- return best_actions
-
- // Otherwise we probably couldn't find something for the second highest group, so let's ignore them.
- for(var/datum/gm_action/action in available_actions)
- if(!action.enabled)
- continue
- if(most_active_departments[1] in action.departments)
- best_actions.Add(action)
- log_debug("[action.name] is being considered because the most active department is involved.")
-
- if(best_actions.len) // Found something for the one guy.
- return best_actions
-
- // At this point we should expand our horizons.
- for(var/datum/gm_action/action in available_actions)
- if(!action.enabled)
- continue
- if(ROLE_EVERYONE in action.departments)
- best_actions.Add(action)
- log_debug("[action.name] is being considered because it involves everyone.")
-
- if(best_actions.len) // Finally, perhaps?
- return best_actions
-
- // Just give a random event if for some reason it still can't make up its mind.
- for(var/datum/gm_action/action in available_actions)
- if(!action.enabled)
- continue
- best_actions.Add(action)
- log_debug("[action.name] is being considered because everything else failed.")
-
- if(best_actions.len) // Finally, perhaps?
- return best_actions
- else
- log_debug("Game Master failed to find a suitable event, something very wrong is going on.")
-
-
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/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 6fe9aa988a8..be4217bf4aa 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -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/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 577a9c9be93..94ac169025d 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -325,7 +325,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
@@ -352,7 +352,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 +362,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
@@ -435,7 +435,7 @@
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))
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)
From 857c5eba6cb2949421b3e6235caf3c024d932308 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:06:39 -0700
Subject: [PATCH 03/44] ok
---
code/controllers/subsystems/ticker.dm | 467 ++++++++++++++++++++++++++
code/game/gamemodes/gameticker.dm | 466 -------------------------
2 files changed, 467 insertions(+), 466 deletions(-)
delete mode 100644 code/game/gamemodes/gameticker.dm
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index a70bb74c5ff..38c198a1dfd 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -40,3 +40,470 @@ var/global/datum/controller/process/ticker/tickerProcess
/datum/controller/process/ticker/proc/IsRoundInProgress()
return (ticker && ticker.current_state == GAME_STATE_PLAYING)
+
+var/global/datum/controller/gameticker/ticker
+
+/datum/controller/gameticker
+ var/const/restart_timeout = 3 MINUTES //One minute is 600.
+ var/current_state = GAME_STATE_PREGAME
+
+ var/hide_mode = 0
+ var/datum/game_mode/mode = null
+ var/post_game = 0
+ var/event_time = null
+ var/event = 0
+
+ // var/login_music // music played in pregame lobby // VOREStation Edit - We do music differently
+
+ var/list/datum/mind/minds = list()//The people in the game. Used for objective tracking.
+
+ var/Bible_icon_state // icon_state the chaplain has chosen for his bible
+ var/Bible_item_state // item_state the chaplain has chosen for his bible
+ var/Bible_name // name of the bible
+ var/Bible_deity_name
+
+ var/random_players = 0 // if set to nonzero, ALL players who latejoin or declare-ready join will have random appearances/genders
+
+ var/list/syndicate_coalition = list() // list of traitor-compatible factions
+ var/list/factions = list() // list of all factions
+ var/list/availablefactions = list() // list of factions with openings
+
+ var/pregame_timeleft = 0
+
+ var/delay_end = 0 //if set to nonzero, the round will not restart on it's own
+
+ var/triai = 0//Global holder for Triumvirate
+
+ 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
+
+ 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()
+ //Create and announce mode
+ if(master_mode=="secret")
+ src.hide_mode = 1
+
+ var/list/runnable_modes = config_legacy.get_runnable_modes()
+ if((master_mode=="random") || (master_mode=="secret"))
+ if(!runnable_modes.len)
+ current_state = GAME_STATE_PREGAME
+ Master.SetRunLevel(RUNLEVEL_LOBBY)
+ to_chat(world, "Unable to choose playable game mode. Reverting to pregame lobby.")
+ return 0
+ if(secret_force_mode != "secret")
+ src.mode = config_legacy.pick_mode(secret_force_mode)
+ if(!src.mode)
+ var/list/weighted_modes = list()
+ for(var/datum/game_mode/GM in runnable_modes)
+ weighted_modes[GM.config_tag] = config_legacy.probabilities[GM.config_tag]
+ src.mode = config_legacy.gamemode_cache[pickweight(weighted_modes)]
+ else
+ src.mode = config_legacy.pick_mode(master_mode)
+
+ if(!src.mode)
+ current_state = GAME_STATE_PREGAME
+ Master.SetRunLevel(RUNLEVEL_LOBBY)
+ to_chat(world, "Serious error in mode setup! Reverting to pregame lobby.") //Uses setup instead of set up due to computational context.
+ return 0
+
+ SSjobs.ResetOccupations()
+ src.mode.create_antagonists()
+ src.mode.pre_setup()
+ SSjobs.DivideOccupations() // Apparently important for new antagonist system to register specific job antags properly.
+
+ if(!src.mode.can_start())
+ world << "Unable to start [mode.name]. Not enough players readied, [config_legacy.player_requirements[mode.config_tag]] players needed. Reverting to pregame lobby."
+ current_state = GAME_STATE_PREGAME
+ Master.SetRunLevel(RUNLEVEL_LOBBY)
+ mode.fail_setup()
+ mode = null
+ SSjobs.ResetOccupations()
+ return 0
+
+ if(hide_mode)
+ world << "The current game mode is - Secret!"
+ if(runnable_modes.len)
+ var/list/tmpmodes = new
+ for (var/datum/game_mode/M in runnable_modes)
+ tmpmodes+=M.name
+ tmpmodes = sortList(tmpmodes)
+ if(tmpmodes.len)
+ to_chat(world, "Possibilities: [english_list(tmpmodes, and_text= "; ", comma_text = "; ")]")
+ else
+ src.mode.announce()
+
+ setup_economy()
+ current_state = GAME_STATE_PLAYING
+ create_characters() //Create player characters and transfer them.
+ collect_minds()
+ equip_characters()
+ //data_core.manifest() //VOREStation Removal
+
+ callHook("roundstart")
+
+ // TODO - Leshana - Dear God Fix This. Fix all of this. Not just this line, this entire proc. This entire file!
+ spawn(0)//Forking here so we dont have to wait for this to finish
+ mode.post_setup()
+ //Cleanup some stuff
+ for(var/obj/effect/landmark/start/S in landmarks_list)
+ //Deleting Startpoints but we need the ai point to AI-ize people later
+ if (S.name != "AI")
+ qdel(S)
+ to_chat(world, "Enjoy the game!")
+ world << sound('sound/AI/welcome.ogg') // Skie
+ //Holiday Round-start stuff ~Carn
+ Holiday_Game_Start()
+
+ //start_events() //handles random events and space dust.
+ //new random event system is handled from the MC.
+
+ var/admins_number = 0
+ for(var/client/C)
+ if(C.holder)
+ admins_number++
+ if(admins_number == 0)
+ send2adminirc("A round has started with no admins online.")
+
+/* 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)
+ statistic_cycle() // Polls population totals regularly and stores them in an SQL DB -- TLE
+
+ 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!
+
+ //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
+
+ 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
+ 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
+
+
+ proc/collect_minds()
+ for(var/mob/living/player in player_list)
+ if(player.mind)
+ ticker.minds += player.mind
+
+
+ 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.")
+
+
+ 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)
+
+
+ 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
+
+ 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()
+
+ return 1
+
+/datum/controller/gameticker/proc/declare_completion()
+ world << "
A round of [mode.name] has ended!
"
+ 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(isNotAdminLevel(playerTurf.z))
+ Player << "You survived the round, but remained on [station_name()] as [Player.real_name]."
+ else
+ Player << "You managed to survive the events on [station_name()] as [Player.real_name]."
+ else if(isAdminLevel(playerTurf.z))
+ Player << "You successfully underwent crew transfer after events on [station_name()] as [Player.real_name]."
+ else if(issilicon(Player))
+ Player << "You remain operational after the events on [station_name()] as [Player.real_name]."
+ else
+ Player << "You missed the crew transfer after the events on [station_name()] as [Player.real_name]."
+ else
+ if(istype(Player,/mob/observer/dead))
+ var/mob/observer/dead/O = Player
+ if(!O.started_as_observer)
+ Player << "You did not survive the events on [station_name()]..."
+ else
+ Player << "You did not survive the events on [station_name()]..."
+ world << "
"
+
+ for (var/mob/living/silicon/ai/aiPlayer in mob_list)
+ if (aiPlayer.stat != 2)
+ world << "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws at the end of the round were:"
+ else
+ world << "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws when it was deactivated were:"
+ aiPlayer.show_laws(1)
+
+ if (aiPlayer.connected_robots.len)
+ var/robolist = "The AI's loyal minions were: "
+ for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots)
+ robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":" (Played by: [robo.key]), "]"
+ world << "[robolist]"
+
+ var/dronecount = 0
+
+ for (var/mob/living/silicon/robot/robo in mob_list)
+
+ if(istype(robo,/mob/living/silicon/robot/drone) && !istype(robo,/mob/living/silicon/robot/drone/swarm))
+ dronecount++
+ continue
+
+ if (!robo.connected_ai)
+ if (robo.stat != 2)
+ world << "[robo.name] (Played by: [robo.key]) survived as an AI-less stationbound synthetic! Its laws were:"
+ else
+ world << "[robo.name] (Played by: [robo.key]) was unable to survive the rigors of being a stationbound synthetic without an AI. Its laws were:"
+
+ if(robo) //How the hell do we lose robo between here and the world messages directly above this?
+ robo.laws.show_laws(world)
+
+ if(dronecount)
+ world << "There [dronecount>1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount>1 ? "drones" : "drone"] at the end of this round."
+
+ mode.declare_completion()//To declare normal completion.
+
+ //Ask the event manager to print round end information
+ SSevents.RoundEnd()
+
+ //Print a list of antagonists to the server log
+ var/list/total_antagonists = list()
+ //Look into all mobs in world, dead or alive
+ for(var/datum/mind/Mind in minds)
+ var/temprole = Mind.special_role
+ if(temprole) //if they are an antagonist of some sort.
+ if(temprole in total_antagonists) //If the role exists already, add the name to it
+ total_antagonists[temprole] += ", [Mind.name]([Mind.key])"
+ else
+ total_antagonists.Add(temprole) //If the role doesnt exist in the list, create it and add the mob
+ total_antagonists[temprole] += ": [Mind.name]([Mind.key])"
+
+ //Now print them all into the log!
+ log_game("Antagonists at round end were...")
+ for(var/i in total_antagonists)
+ log_game("[i]s[total_antagonists[i]].")
+
+ return 1
diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
deleted file mode 100644
index 9d21d8ca7cb..00000000000
--- a/code/game/gamemodes/gameticker.dm
+++ /dev/null
@@ -1,466 +0,0 @@
-var/global/datum/controller/gameticker/ticker
-
-/datum/controller/gameticker
- var/const/restart_timeout = 3 MINUTES //One minute is 600.
- var/current_state = GAME_STATE_PREGAME
-
- var/hide_mode = 0
- var/datum/game_mode/mode = null
- var/post_game = 0
- var/event_time = null
- var/event = 0
-
- // var/login_music // music played in pregame lobby // VOREStation Edit - We do music differently
-
- var/list/datum/mind/minds = list()//The people in the game. Used for objective tracking.
-
- var/Bible_icon_state // icon_state the chaplain has chosen for his bible
- var/Bible_item_state // item_state the chaplain has chosen for his bible
- var/Bible_name // name of the bible
- var/Bible_deity_name
-
- var/random_players = 0 // if set to nonzero, ALL players who latejoin or declare-ready join will have random appearances/genders
-
- var/list/syndicate_coalition = list() // list of traitor-compatible factions
- var/list/factions = list() // list of all factions
- var/list/availablefactions = list() // list of factions with openings
-
- var/pregame_timeleft = 0
-
- var/delay_end = 0 //if set to nonzero, the round will not restart on it's own
-
- var/triai = 0//Global holder for Triumvirate
-
- 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
-
- 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()
- //Create and announce mode
- if(master_mode=="secret")
- src.hide_mode = 1
-
- var/list/runnable_modes = config_legacy.get_runnable_modes()
- if((master_mode=="random") || (master_mode=="secret"))
- if(!runnable_modes.len)
- current_state = GAME_STATE_PREGAME
- Master.SetRunLevel(RUNLEVEL_LOBBY)
- to_chat(world, "Unable to choose playable game mode. Reverting to pregame lobby.")
- return 0
- if(secret_force_mode != "secret")
- src.mode = config_legacy.pick_mode(secret_force_mode)
- if(!src.mode)
- var/list/weighted_modes = list()
- for(var/datum/game_mode/GM in runnable_modes)
- weighted_modes[GM.config_tag] = config_legacy.probabilities[GM.config_tag]
- src.mode = config_legacy.gamemode_cache[pickweight(weighted_modes)]
- else
- src.mode = config_legacy.pick_mode(master_mode)
-
- if(!src.mode)
- current_state = GAME_STATE_PREGAME
- Master.SetRunLevel(RUNLEVEL_LOBBY)
- to_chat(world, "Serious error in mode setup! Reverting to pregame lobby.") //Uses setup instead of set up due to computational context.
- return 0
-
- SSjobs.ResetOccupations()
- src.mode.create_antagonists()
- src.mode.pre_setup()
- SSjobs.DivideOccupations() // Apparently important for new antagonist system to register specific job antags properly.
-
- if(!src.mode.can_start())
- world << "Unable to start [mode.name]. Not enough players readied, [config_legacy.player_requirements[mode.config_tag]] players needed. Reverting to pregame lobby."
- current_state = GAME_STATE_PREGAME
- Master.SetRunLevel(RUNLEVEL_LOBBY)
- mode.fail_setup()
- mode = null
- SSjobs.ResetOccupations()
- return 0
-
- if(hide_mode)
- world << "The current game mode is - Secret!"
- if(runnable_modes.len)
- var/list/tmpmodes = new
- for (var/datum/game_mode/M in runnable_modes)
- tmpmodes+=M.name
- tmpmodes = sortList(tmpmodes)
- if(tmpmodes.len)
- to_chat(world, "Possibilities: [english_list(tmpmodes, and_text= "; ", comma_text = "; ")]")
- else
- src.mode.announce()
-
- setup_economy()
- current_state = GAME_STATE_PLAYING
- create_characters() //Create player characters and transfer them.
- collect_minds()
- equip_characters()
- //data_core.manifest() //VOREStation Removal
-
- callHook("roundstart")
-
- // TODO - Leshana - Dear God Fix This. Fix all of this. Not just this line, this entire proc. This entire file!
- spawn(0)//Forking here so we dont have to wait for this to finish
- mode.post_setup()
- //Cleanup some stuff
- for(var/obj/effect/landmark/start/S in landmarks_list)
- //Deleting Startpoints but we need the ai point to AI-ize people later
- if (S.name != "AI")
- qdel(S)
- to_chat(world, "Enjoy the game!")
- world << sound('sound/AI/welcome.ogg') // Skie
- //Holiday Round-start stuff ~Carn
- Holiday_Game_Start()
-
- //start_events() //handles random events and space dust.
- //new random event system is handled from the MC.
-
- var/admins_number = 0
- for(var/client/C)
- if(C.holder)
- admins_number++
- if(admins_number == 0)
- send2adminirc("A round has started with no admins online.")
-
-/* 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)
- statistic_cycle() // Polls population totals regularly and stores them in an SQL DB -- TLE
-
- 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!
-
- //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
-
- 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
- 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
-
-
- proc/collect_minds()
- for(var/mob/living/player in player_list)
- if(player.mind)
- ticker.minds += player.mind
-
-
- 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.")
-
-
- 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)
-
-
- 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
-
- 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()
-
- return 1
-
-/datum/controller/gameticker/proc/declare_completion()
- world << "
A round of [mode.name] has ended!
"
- 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(isNotAdminLevel(playerTurf.z))
- Player << "You survived the round, but remained on [station_name()] as [Player.real_name]."
- else
- Player << "You managed to survive the events on [station_name()] as [Player.real_name]."
- else if(isAdminLevel(playerTurf.z))
- Player << "You successfully underwent crew transfer after events on [station_name()] as [Player.real_name]."
- else if(issilicon(Player))
- Player << "You remain operational after the events on [station_name()] as [Player.real_name]."
- else
- Player << "You missed the crew transfer after the events on [station_name()] as [Player.real_name]."
- else
- if(istype(Player,/mob/observer/dead))
- var/mob/observer/dead/O = Player
- if(!O.started_as_observer)
- Player << "You did not survive the events on [station_name()]..."
- else
- Player << "You did not survive the events on [station_name()]..."
- world << "
"
-
- for (var/mob/living/silicon/ai/aiPlayer in mob_list)
- if (aiPlayer.stat != 2)
- world << "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws at the end of the round were:"
- else
- world << "[aiPlayer.name] (Played by: [aiPlayer.key])'s laws when it was deactivated were:"
- aiPlayer.show_laws(1)
-
- if (aiPlayer.connected_robots.len)
- var/robolist = "The AI's loyal minions were: "
- for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots)
- robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":" (Played by: [robo.key]), "]"
- world << "[robolist]"
-
- var/dronecount = 0
-
- for (var/mob/living/silicon/robot/robo in mob_list)
-
- if(istype(robo,/mob/living/silicon/robot/drone) && !istype(robo,/mob/living/silicon/robot/drone/swarm))
- dronecount++
- continue
-
- if (!robo.connected_ai)
- if (robo.stat != 2)
- world << "[robo.name] (Played by: [robo.key]) survived as an AI-less stationbound synthetic! Its laws were:"
- else
- world << "[robo.name] (Played by: [robo.key]) was unable to survive the rigors of being a stationbound synthetic without an AI. Its laws were:"
-
- if(robo) //How the hell do we lose robo between here and the world messages directly above this?
- robo.laws.show_laws(world)
-
- if(dronecount)
- world << "There [dronecount>1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount>1 ? "drones" : "drone"] at the end of this round."
-
- mode.declare_completion()//To declare normal completion.
-
- //Ask the event manager to print round end information
- SSevents.RoundEnd()
-
- //Print a list of antagonists to the server log
- var/list/total_antagonists = list()
- //Look into all mobs in world, dead or alive
- for(var/datum/mind/Mind in minds)
- var/temprole = Mind.special_role
- if(temprole) //if they are an antagonist of some sort.
- if(temprole in total_antagonists) //If the role exists already, add the name to it
- total_antagonists[temprole] += ", [Mind.name]([Mind.key])"
- else
- total_antagonists.Add(temprole) //If the role doesnt exist in the list, create it and add the mob
- total_antagonists[temprole] += ": [Mind.name]([Mind.key])"
-
- //Now print them all into the log!
- log_game("Antagonists at round end were...")
- for(var/i in total_antagonists)
- log_game("[i]s[total_antagonists[i]].")
-
- return 1
From f394bed1fe84b1958418123473a0d67335f05c63 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:18:12 -0700
Subject: [PATCH 04/44] whew
---
code/__DEFINES/MC.dm | 2 +-
code/__DEFINES/subsystems.dm | 4 +-
code/__DEFINES/time.dm | 2 +-
code/_onclick/click.dm | 2 +-
.../configuration/configuration.dm | 2 +-
code/controllers/hooks-defs.dm | 4 +-
code/controllers/master.dm | 38 +-
code/controllers/subsystem.dm | 6 +-
code/controllers/subsystems/ai.dm | 2 +-
code/controllers/subsystems/alarm.dm | 19 +-
code/controllers/subsystems/circuits.dm | 2 +-
code/controllers/subsystems/game_master.dm | 6 +-
code/controllers/subsystems/jobs.dm | 10 +-
code/controllers/subsystems/lighting.dm | 2 +-
code/controllers/subsystems/orbits.dm | 2 +-
code/controllers/subsystems/overlays.dm | 2 +-
.../subsystems/processing/projectiles.dm | 2 +-
code/controllers/subsystems/server_maint.dm | 18 +-
code/controllers/subsystems/supply.dm | 2 +-
code/controllers/subsystems/ticker.dm | 477 ++++++++----------
code/controllers/subsystems/timer.dm | 4 +-
code/controllers/subsystems/vote.dm | 14 +-
code/datums/helper_datums/getrev.dm | 4 +-
code/datums/mind.dm | 10 +-
code/datums/world_topic.dm | 8 +-
code/defines/procs/announce.dm | 2 +-
code/game/antagonist/antagonist.dm | 6 +-
code/game/antagonist/antagonist_update.dm | 8 +-
code/game/antagonist/station/highlander.dm | 2 +-
code/game/atoms_movable.dm | 4 +-
code/game/gamemodes/cult/runes.dm | 10 +-
.../endgame/supermatter_cascade/universe.dm | 2 +-
code/game/gamemodes/epidemic/epidemic.dm | 14 +-
code/game/gamemodes/events.dm | 2 +-
code/game/gamemodes/game_mode.dm | 24 +-
code/game/gamemodes/game_mode_latespawn.dm | 2 +-
.../newmalf_ability_trees/HARDWARE.dm | 8 +-
code/game/gamemodes/newobjective.dm | 22 +-
code/game/gamemodes/objective.dm | 12 +-
code/game/jobs/job/civilian_chaplain.dm | 10 +-
code/game/json.dm | 6 +-
.../game/machinery/computer/communications.dm | 14 +-
code/game/machinery/computer/shuttle.dm | 2 +-
code/game/machinery/cryopod.dm | 6 +-
code/game/machinery/doors/door.dm | 4 +-
code/game/machinery/doors/windowdoor.dm | 4 +-
code/game/machinery/nuclear_bomb.dm | 22 +-
code/game/mecha/mecha.dm | 4 +-
code/game/objects/buckling.dm | 2 +-
.../items/devices/communicator/messaging.dm | 2 +-
.../items/devices/communicator/phone.dm | 2 +-
.../items/devices/radio/electropack.dm | 2 +-
code/game/objects/items/devices/scanners.dm | 6 +-
code/game/objects/items/weapons/weaponry.dm | 2 +-
.../crates_lockers/largecrate_vr.dm | 2 +-
.../game/objects/structures/window_spawner.dm | 2 +-
code/game/periodic_news.dm | 2 +-
code/game/response_team.dm | 4 +-
code/game/sound.dm | 2 +-
code/game/trader_visit.dm | 4 +-
code/game/turfs/space/space.dm | 4 +-
code/game/verbs/suicide.dm | 4 +-
code/game/world.dm | 6 +-
code/modules/admin/admin.dm | 90 ++--
code/modules/admin/chat_commands.dm | 10 +-
.../admin/functions/server/admin_reboot.dm | 6 +-
code/modules/admin/player_panel.dm | 6 +-
.../secrets/admin_secrets/prison_warp.dm | 2 +-
.../secrets/admin_secrets/show_game_mode.dm | 6 +-
.../secrets/fun_secrets/send_strike_team.dm | 2 +-
.../secrets/fun_secrets/triple_ai_mode.dm | 2 +-
.../admin/secrets/random_events/gravity.dm | 2 +-
code/modules/admin/topic.dm | 24 +-
code/modules/admin/verbs/SDQL2/SDQL_2.dm | 4 +-
code/modules/admin/verbs/cinematic.dm | 4 +-
code/modules/admin/verbs/debug.dm | 10 +-
code/modules/admin/verbs/randomverbs.dm | 16 +-
code/modules/admin/verbs/striketeam.dm | 2 +-
code/modules/admin/verbs/tripAI.dm | 10 +-
code/modules/ai/__readme.dm | 2 +-
code/modules/ai/ai_holder.dm | 2 +-
.../under/accessories/accessory_vr.dm | 2 +-
code/modules/events/event_dynamic.dm | 2 +-
code/modules/gamemaster/actions/stowaway.dm | 2 +-
.../integrated_electronics/subtypes/time.dm | 8 +-
code/modules/library/lib_machines.dm | 10 +-
code/modules/mining/mine_turfs.dm | 4 +-
code/modules/mob/dead/observer/observer.dm | 2 +-
code/modules/mob/death.dm | 4 +-
.../mob/freelook/ai/update_triggers.dm | 2 +-
code/modules/mob/freelook/update_triggers.dm | 2 +-
code/modules/mob/freelook/visualnet.dm | 2 +-
code/modules/mob/living/carbon/human/death.dm | 4 +-
code/modules/mob/living/living.dm | 4 +-
.../modules/mob/living/silicon/ai/latejoin.dm | 2 +-
.../silicon/robot/drone/drone_manufacturer.dm | 4 +-
.../subtypes/animal/giant_spider/hunter.dm | 2 +-
code/modules/mob/logout.dm | 2 +-
code/modules/mob/mob.dm | 6 +-
code/modules/mob/new_player/new_player.dm | 30 +-
code/modules/power/apc.dm | 2 +-
.../security levels/keycard authentication.dm | 2 +-
code/modules/tables/tables.dm | 2 +-
code/modules/vehicles/rover_vr.dm | 2 +-
.../vore/fluffstuff/custom_items_vr.dm | 2 +-
code/unit_tests/unit_test.dm | 6 +-
maps/RandomZLevels/wildwest.dm | 2 +-
107 files changed, 570 insertions(+), 622 deletions(-)
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/subsystems.dm b/code/__DEFINES/subsystems.dm
index b6253ef6c4c..447320a04ca 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -45,8 +45,8 @@
#define RUNLEVEL_INIT 0 // "Initialize Only" - Used for subsystems that should never be fired (Should also have SS_NO_FIRE set)
#define RUNLEVEL_LOBBY 1 // Initial runlevel before setup. Returns to here if setup fails.
-#define RUNLEVEL_SETUP 2 // While the gamemode setup is running. I.E gameticker.setup()
-#define RUNLEVEL_GAME 4 // After successful game ticker setup, while the round is running.
+#define RUNLEVEL_SETUP 2 // While the gamemode setup is running. I.E gameSSticker.setup()
+#define RUNLEVEL_GAME 4 // After successful game SSticker setup, while the round is running.
#define RUNLEVEL_POSTGAME 8 // When round completes but before reboot
#define RUNLEVELS_DEFAULT (RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME)
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/_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/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/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
index 7d7b709d79c..0f22b48357c 100644
--- a/code/controllers/subsystems/alarm.dm
+++ b/code/controllers/subsystems/alarm.dm
@@ -1,11 +1,14 @@
-
-// 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()
+SUBSYSTEM_DEF(alarms)
+ name = "Alarms"
+ wait = 20
+ var/list/datum/alarm/all_handlers = list()
+ // 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 = new
+ var/static/datum/alarm_handler/camera/camera_alarm = new
+ var/static/datum/alarm_handler/fire/fire_alarm = new
+ var/static/datum/alarm_handler/motion/motion_alarm = new
+ var/static/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
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/subsystems/game_master.dm b/code/controllers/subsystems/game_master.dm
index 7ae19937922..332583e86c8 100644
--- a/code/controllers/subsystems/game_master.dm
+++ b/code/controllers/subsystems/game_master.dm
@@ -33,7 +33,7 @@ SUBSYSTEM_DEF(gamemaster)
return ..()
/datum/controller/subsystem/gamemaster/fire(resumed)
- if(ticker && ticker.current_state == GAME_STATE_PLAYING && !suspended)
+ if(SSticker && SSticker.current_state == GAME_STATE_PLAYING && !suspended)
adjust_staleness(1)
adjust_danger(-1)
ticks_completed++
@@ -50,8 +50,8 @@ SUBSYSTEM_DEF(gamemaster)
// This is run before committing to an action/event.
/datum/controller/subsystem/gamemaster/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.")
+ 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
diff --git a/code/controllers/subsystems/jobs.dm b/code/controllers/subsystems/jobs.dm
index ee46e2945d9..34a8393a538 100644
--- a/code/controllers/subsystems/jobs.dm
+++ b/code/controllers/subsystems/jobs.dm
@@ -220,8 +220,8 @@ SUBSYSTEM_DEF(jobs)
Debug("Running DO")
SetupOccupations()
- //Holder for Triumvirate is stored in the ticker, this just processes it
- if(ticker && ticker.triai)
+ //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
@@ -266,7 +266,7 @@ SUBSYSTEM_DEF(jobs)
// Loop through all levels from high to low
var/list/shuffledoccupations = shuffle(occupations)
- // var/list/disabled_jobs = ticker.mode.disabled_jobs // So we can use .Find down below without a colon.
+ // 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)
@@ -276,7 +276,7 @@ SUBSYSTEM_DEF(jobs)
// Loop through all jobs
for(var/datum/job/job in shuffledoccupations) // SHUFFLE ME BABY
- if(!job || ticker.mode.disabled_jobs.Find(job.title) )
+ if(!job || SSticker.mode.disabled_jobs.Find(job.title) )
continue
if(jobban_isbanned(player, job.title))
@@ -465,7 +465,7 @@ SUBSYSTEM_DEF(jobs)
if("AI")
return H
if("Colony Director")
- var/sound/announce_sound = (ticker.current_state <= GAME_STATE_SETTING_UP)? null : sound('sound/misc/boatswain.ogg', volume=20)
+ 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.
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/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/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/supply.dm b/code/controllers/subsystems/supply.dm
index 270ebf07a5f..0c05528d295 100644
--- a/code/controllers/subsystems/supply.dm
+++ b/code/controllers/subsystems/supply.dm
@@ -60,7 +60,7 @@ SUBSYSTEM_DEF(supply)
supply_pack[P.name] = P
return ..()
-// 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/subsystem/supply/fire(resumed)
points += max(0, ((world.time - last_fire) / 10) * points_per_second)
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 38c198a1dfd..23d50969d60 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -1,49 +1,6 @@
-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)
-
-var/global/datum/controller/gameticker/ticker
-
-/datum/controller/gameticker
+SUBSYSTEM_DEF(ticker)
+ name = "Ticker"
+ wait = 20
var/const/restart_timeout = 3 MINUTES //One minute is 600.
var/current_state = GAME_STATE_PREGAME
@@ -76,41 +33,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
@@ -209,223 +136,241 @@ 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))
- 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.")
+ 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
+/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
- mode.process()
+
+/datum/controller/subsystem/ticker/proc/collect_minds()
+ for(var/mob/living/player in player_list)
+ if(player.mind)
+ ticker.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()
+ 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.")
+
+/datum/controller/subsystem/ticker/fire()
+ switch(current_state)
+ if(GAME_STATE_PREGAME)
+ pregame()
+ 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)
+ setup()
+
+/datum/controller/subsystem/ticker/proc/round_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
+ 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)
+ if(!mode.explosion_in_progress && game_finished && (mode_finished || post_game))
+ current_state = GAME_STATE_FINISHED
+ Master.SetRunLevel(RUNLEVEL_POSTGAME)
- spawn
- declare_completion()
+ spawn
+ declare_completion()
- spawn(50)
- callHook("roundend")
+ 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)
-
-
- if(blackbox)
- blackbox.save_all_data_to_sql()
+ 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
-/datum/controller/gameticker/proc/declare_completion()
+/datum/controller/subsystem/ticker/proc/declare_completion()
world << "
A round of [mode.name] has ended!
"
for(var/mob/Player in player_list)
if(Player.mind && !isnewplayer(Player))
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/subsystems/vote.dm b/code/controllers/subsystems/vote.dm
index d0ed341a6be..cb1cb11f7b3 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,13 @@ SUBSYSTEM_DEF(vote)
if(get_security_level() == "red" || get_security_level() == "delta")
initiator_key << "The current alert status is too high to call for a crew transfer!"
return 0
- if(ticker.current_state <= GAME_STATE_SETTING_UP)
+ if(SSticker.current_state <= GAME_STATE_SETTING_UP)
initiator_key << "The crew transfer button has been disabled!"
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/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/mind.dm b/code/datums/mind.dm
index 7bd431f4c34..b8ccaafd665 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,10 @@
else
mind = new /datum/mind(key)
mind.original = src
- if(ticker)
- ticker.minds += mind
+ if(SSticker)
+ SSticker.minds += mind
else
- world.log << "## DEBUG: mind_initialize(): No ticker ready yet! Please inform Carn"
+ world.log << "## DEBUG: mind_initialize(): No SSticker ready yet! Please inform Carn"
if(!mind.name)
mind.name = real_name
mind.current = src
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 a4f807c0707..ae197cb2d20 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,10 @@
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
player.current << "You have been selected this round as an antagonist!"
- message_admins("[uppertext(ticker.mode.name)]: Selected [player] as a [role_text].")
+ message_admins("[uppertext(SSticker.mode.name)]: Selected [player] as a [role_text].")
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/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/runes.dm b/code/game/gamemodes/cult/runes.dm
index 3b1eb5b96d3..e49856bb677 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -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
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."
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 d385630b0aa..0abf98e1f18 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
@@ -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 e6b4f9d4569..9ee1e620937 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 @@
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 2c568dbc5ca..c92b594ed77 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 cfd247ed20d..7e0986b5202 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
@@ -213,8 +213,8 @@ var/global/list/additional_antag_types = list()
emergency_shuttle.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
@@ -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,16 @@ 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")
- usr << "The roundtype is [capitalize(ticker.mode.name)]"
- if(ticker.mode.round_description)
- usr << "[ticker.mode.round_description]"
- if(ticker.mode.extended_round_description)
- 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]"
else
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..c28b46e6c6b 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++
diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/HARDWARE.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/HARDWARE.dm
index 33739429beb..35cc0628384 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..55256fcc4dc 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
@@ -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
@@ -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)
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 14c63ddd6c1..9c603e66abe 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
@@ -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/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/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/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 96e7fcf4e65..09c6bdcf617 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -434,7 +434,7 @@
PS.allowedtocall = !(PS.allowedtocall)
/proc/call_shuttle_proc(var/mob/user)
- if ((!( ticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !emergency_shuttle.location()))
return
if(!universe.OnShuttleCall(usr))
@@ -461,7 +461,7 @@
user << "The emergency shuttle is already on its way."
return
- if(ticker.mode.name == "blob")
+ if(SSticker.mode.name == "blob")
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
return
@@ -474,7 +474,7 @@
return
/proc/init_shift_change(var/mob/user, var/force = 0)
- if ((!( ticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !emergency_shuttle.location()))
return
if(emergency_shuttle.going_to_centcom())
@@ -499,11 +499,11 @@
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
- if(ticker.mode.name == "blob" || ticker.mode.name == "epidemic")
+ if(SSticker.mode.name == "blob" || SSticker.mode.name == "epidemic")
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
return
@@ -521,9 +521,9 @@
return
/proc/cancel_call_proc(var/mob/user)
- if (!( ticker ) || !emergency_shuttle.can_recall())
+ if (!( SSticker ) || !emergency_shuttle.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
diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm
index 4f9a54801c1..245a2d38189 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 ) || emergency_shuttle.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
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 6f07f441160..8e503ecc9c5 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]
"
@@ -481,8 +481,8 @@
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/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/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 9c2661cf97e..e7c574b7b77 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,21 +384,21 @@ 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)
- 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
+ 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!"
- 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.
- 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
+ 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!"
feedback_set_details("end_error","nuke - unhandled ending")
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 6e0867abf2b..18fdb40fbe8 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 875e0b637f0..49c67c3b3d7 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -112,7 +112,7 @@
//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)
- if(!ticker)
+ if(!SSticker)
user << "You can't buckle anyone in before the game starts."
return FALSE // Is this really needed?
if(!user.Adjacent(M) || user.restrained() || user.stat || istype(user, /mob/living/silicon/pai))
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 4f944046f4f..055bcbbae80 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 861b9e9d501..2e6340d13a9 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/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 32e96e2fdd6..90c338ae77f 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -22,7 +22,7 @@
user.setClickCooldown(user.get_attack_speed(src))
user.do_attack_animation(M)
- if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
+ if (!(istype(user, /mob/living/carbon/human) || SSticker) && SSticker.mode.name != "monkey")
user << "You don't have the dexterity to do this!"
return
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 ba51a543994..04b19bdd957 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -15,10 +15,10 @@ var/silent_ert = 0
if(!holder)
usr << "Only administrators may use this command."
return
- if(!ticker)
+ if(!SSticker)
usr << "The game hasn't started yet!"
return
- if(ticker.current_state == 1)
+ if(SSticker.current_state == 1)
usr << "The round hasn't started yet!"
return
if(send_emergency_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 b589e0b8cc3..fc6407cec9e 100644
--- a/code/game/trader_visit.dm
+++ b/code/game/trader_visit.dm
@@ -11,10 +11,10 @@ var/can_call_traders = 1
if(!holder)
usr << "Only administrators may use this command."
return
- if(!ticker)
+ if(!SSticker)
usr << "The game hasn't started yet!"
return
- if(ticker.current_state == 1)
+ if(SSticker.current_state == 1)
usr << "The round hasn't started yet!"
return
if(send_beruang)
diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm
index 2d19691b406..5d4b34fd039 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/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 81547179739..0455b76626a 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.
*/
@@ -90,7 +90,7 @@ GLOBAL_LIST(topic_status_cache)
processScheduler = new
master_controller = new /datum/controller/game_controller()
- processScheduler.deferSetupFor(/datum/controller/process/ticker)
+ processScheduler.deferSetupFor(/datum/controller/process/SSticker)
processScheduler.setup()
Master.Initialize(10, FALSE)
@@ -333,7 +333,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/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 788e7b1b962..bf4a734dbfb 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,7 +1364,7 @@ var/datum/announcement/minor/admin_min_announcer = new
usr << "Error: you are not an admin!"
return
- if(!ticker || !ticker.mode)
+ if(!SSticker || !SSticker.mode)
usr << "Mode has not started."
return
@@ -1388,12 +1388,12 @@ var/datum/announcement/minor/admin_min_announcer = new
usr << "Error: you are not an admin!"
return
- if(!ticker || !ticker.mode)
+ if(!SSticker || !SSticker.mode)
usr << "Mode has not started."
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/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..63269f0ac72 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -383,9 +383,9 @@
/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())
@@ -403,7 +403,7 @@
if (emergency_shuttle.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/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 e1eb09c007b..93f72a6042e 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,13 +200,13 @@
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 ) || !emergency_shuttle.location()))
return
if (emergency_shuttle.can_call())
emergency_shuttle.call_evac()
@@ -214,7 +214,7 @@
message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.", 1)
if("2")
- if (!( ticker ) || !emergency_shuttle.location())
+ if (!( SSticker ) || !emergency_shuttle.location())
return
if (emergency_shuttle.can_call())
emergency_shuttle.call_evac()
@@ -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"])
@@ -936,7 +936,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 +949,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 +963,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 +976,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 +1557,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 87cd0430962..e64da173c27 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/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index a530634ab23..65acb54a89e 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -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 ) || !emergency_shuttle.location()))
return
if(!check_rights(R_ADMIN|R_EVENT)) return
@@ -837,7 +837,7 @@ 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
@@ -864,7 +864,7 @@ 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 || !emergency_shuttle.can_recall())
return
emergency_shuttle.recall()
@@ -878,7 +878,7 @@ 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
@@ -905,12 +905,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_FUN)) return
- if (ticker && ticker.mode)
+ if (SSticker && SSticker.mode)
usr << "Nope you can't do this, the game's already started. This only works before rounds!"
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)
usr << "Disabled."
return
@@ -928,7 +928,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
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 7b3e59107bd..2fb33e9e232 100644
--- a/code/modules/admin/verbs/striketeam.dm
+++ b/code/modules/admin/verbs/striketeam.dm
@@ -10,7 +10,7 @@ var/const/commandos_possible = 6 //if more Commandos are needed in the future
to_chat(src, "Only administrators may use this command.")
return
- if(!ticker)
+ if(!SSticker)
usr << "The game hasn't started yet!"
return
diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm
index b77c9650574..36f0aaa8297 100644
--- a/code/modules/admin/verbs/tripAI.dm
+++ b/code/modules/admin/verbs/tripAI.dm
@@ -2,21 +2,21 @@
set category = "Fun"
set name = "Create AI Triumvirate"
- if(ticker.current_state > GAME_STATE_PREGAME)
+ if(SSticker.current_state > GAME_STATE_PREGAME)
usr << "This option is currently only usable during pregame. This may change at a later date."
return
- if(SSjobs && ticker)
+ if(SSjobs && SSticker)
var/datum/job/job = SSjobs.GetJob("AI")
if(!job)
usr << "Unable to locate the AI job"
return
- if(ticker.triai)
- ticker.triai = 0
+ 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
- ticker.triai = 1
+ SSticker.triai = 1
usr << "There will be an AI Triumvirate at round start."
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/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/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/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 4e03f94e50f..a2f7b8274a8 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/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/observer.dm b/code/modules/mob/dead/observer/observer.dm
index f1c26183cd0..536ad3c24e7 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -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/living.dm b/code/modules/mob/living/living.dm
index 23a27d61614..1633fea19eb 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/latejoin.dm b/code/modules/mob/living/silicon/ai/latejoin.dm
index 0206206c85d..a29b33cff39 100644
--- a/code/modules/mob/living/silicon/ai/latejoin.dm
+++ b/code/modules/mob/living/silicon/ai/latejoin.dm
@@ -15,7 +15,7 @@ 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."
- if(ticker && ticker.mode && ticker.mode.name == "AI malfunction")
+ if(SSticker && SSticker.mode && SSticker.mode.name == "AI malfunction")
usr << "You cannot use this verb in malfunction. If you need to leave, please adminhelp."
return
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/simple_mob/subtypes/animal/giant_spider/hunter.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/hunter.dm
index cf7443cd8d9..5f338544314 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/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 f71b232ec38..ec728bd3be4 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
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 94ac169025d..a237374c1ea 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,7 +153,7 @@
if(href_list["late_join"])
- if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
+ if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
usr << "The round is either not ready, or has already finished..."
return
/*
@@ -182,7 +182,7 @@
if(!config_legacy.enter_allowed)
usr << "There is an administrative lock on entering the game!"
return
- else if(ticker && ticker.mode && ticker.mode.explosion_in_progress)
+ else if(SSticker && SSticker.mode && SSticker.mode.explosion_in_progress)
usr << "The station is currently exploding. Joining would go poorly."
return
/*
@@ -338,7 +338,7 @@
/mob/new_player/proc/AttemptLateSpawn(rank, spawning_at)
if (src != usr)
return 0
- if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
+ if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
usr << "The round is either not ready, or has already finished..."
return 0
if(!config_legacy.enter_allowed)
@@ -380,7 +380,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 +396,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 +411,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.
@@ -480,7 +480,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/power/apc.dm b/code/modules/power/apc.dm
index 75d0e23e4db..4f0b83d9824 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]!",\
diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm
index 3510237d90d..62b7dd4bbba 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/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/vehicles/rover_vr.dm b/code/modules/vehicles/rover_vr.dm
index fc735f615a3..da23912a32b 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_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index f45aba83b40..a90d21e3e7f 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/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm
index 6464339edb0..43fb38376f3 100644
--- a/maps/RandomZLevels/wildwest.dm
+++ b/maps/RandomZLevels/wildwest.dm
@@ -75,7 +75,7 @@
if("To Kill")
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."
- ticker.mode.traitors += user.mind
+ SSticker.mode.traitors += user.mind
user.mind.special_role = "traitor"
var/datum/objective/hijack/hijack = new
hijack.owner = user.mind
From 6484ddecb249fea72a3e8655753468dc60c1b360 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:22:27 -0700
Subject: [PATCH 05/44] whew
---
code/controllers/subsystems/alarm.dm | 57 +++++++---------
.../subsystems/emergency_shuttle.dm | 67 +++++++------------
.../subsystems/master_controller.dm | 8 +--
3 files changed, 54 insertions(+), 78 deletions(-)
diff --git a/code/controllers/subsystems/alarm.dm b/code/controllers/subsystems/alarm.dm
index 0f22b48357c..247df86774b 100644
--- a/code/controllers/subsystems/alarm.dm
+++ b/code/controllers/subsystems/alarm.dm
@@ -1,45 +1,36 @@
SUBSYSTEM_DEF(alarms)
name = "Alarms"
wait = 20
- var/list/datum/alarm/all_handlers = list()
+ 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 = new
- var/static/datum/alarm_handler/camera/camera_alarm = new
- var/static/datum/alarm_handler/fire/fire_alarm = new
- var/static/datum/alarm_handler/motion/motion_alarm = new
- var/static/datum/alarm_handler/power/power_alarm = new
+ 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
-// 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
+/datum/controller/subsystem/alarm/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)
- alarm_manager = src
+ return ..()
-/datum/controller/process/alarm/doWork()
- for(last_object in all_handlers)
- var/datum/alarm_handler/AH = last_object
- AH.process()
- SCHECK
+/datum/controller/subsystem/alarm/fire()
+ for(var/datum/alarm_handler/A in all_handlers)
+ A.process()
-/datum/controller/process/alarm/proc/active_alarms()
- var/list/all_alarms = new
+/datum/controller/subsystem/alarm/proc/active_alarms()
+ . = list()
for(var/datum/alarm_handler/AH in all_handlers)
- var/list/alarms = AH.alarms
- all_alarms += alarms
+ . += AH.alarms
- return all_alarms
+/datum/controller/subsystem/alarm/proc/number_of_active_alarms()
+ return length(active_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")
+/datum/controller/subsystem/alarm/stat_entry()
+ ..("[number_of_active_alarms()] alarms")
diff --git a/code/controllers/subsystems/emergency_shuttle.dm b/code/controllers/subsystems/emergency_shuttle.dm
index a4d8e20667e..8195765ab0c 100644
--- a/code/controllers/subsystems/emergency_shuttle.dm
+++ b/code/controllers/subsystems/emergency_shuttle.dm
@@ -1,24 +1,9 @@
+SUBSYSTEM_DEF(emergencyshuttle)
+ name = "Emergency Shuttle"
+ wait = 20
-
-/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()
-
-//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
-
-// 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/static/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
@@ -34,11 +19,11 @@ 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()
+/datum/controller/subsystem/emergencyshuttle/Initialize()
escape_pods = list()
- ..()
+ return ..()
-/datum/emergency_shuttle_controller/process()
+/datum/controller/subsystem/emergencyshuttle/fire()
if (wait_for_launch)
if (evac && auto_recall && world.time >= auto_recall_time)
recall()
@@ -61,7 +46,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
@@ -84,15 +69,15 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
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
@@ -113,7 +98,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
@@ -129,7 +114,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
@@ -145,7 +130,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)
@@ -159,7 +144,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.
@@ -168,7 +153,7 @@ 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
@@ -181,19 +166,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
@@ -204,19 +189,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
@@ -226,15 +211,15 @@ 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()
diff --git a/code/controllers/subsystems/master_controller.dm b/code/controllers/subsystems/master_controller.dm
index 0bc1c199f75..8b3a39e536b 100644
--- a/code/controllers/subsystems/master_controller.dm
+++ b/code/controllers/subsystems/master_controller.dm
@@ -24,10 +24,10 @@ datum/controller/game_controller/New()
qdel(master_controller)
master_controller = src
- if(!SSjobs)
- SSjobs = new /datum/controller/occupations()
- SSjobs.SetupOccupations()
- SSjobs.LoadJobs("config/jobs.txt")
+ 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()
From cf3fbf15e66447a90cf5deda13985cb1fb751252 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:23:40 -0700
Subject: [PATCH 06/44] ok
---
.../subsystems/master_controller.dm | 10 ++---
code/controllers/subsystems/ticker.dm | 8 ++--
code/game/gamemodes/cult/narsie.dm | 4 +-
code/game/gamemodes/cult/runes.dm | 4 +-
.../endgame/supermatter_cascade/universe.dm | 4 +-
code/game/gamemodes/game_mode.dm | 8 ++--
code/game/gamemodes/game_mode_latespawn.dm | 4 +-
code/game/gamemodes/newobjective.dm | 12 +++---
code/game/gamemodes/nuclear/nuclear.dm | 2 +-
code/game/gamemodes/objective.dm | 8 ++--
code/game/gamemodes/sandbox/sandbox.dm | 2 +-
.../game/machinery/computer/communications.dm | 40 +++++++++----------
code/game/machinery/computer/shuttle.dm | 10 ++---
.../computer3/computers/communications.dm | 10 ++---
code/game/machinery/status_display.dm | 10 ++---
code/modules/admin/player_panel.dm | 12 +++---
code/modules/admin/topic.dm | 28 ++++++-------
code/modules/admin/verbs/randomverbs.dm | 18 ++++-----
code/modules/mob/dead/observer/observer.dm | 2 +-
code/modules/mob/living/carbon/human/human.dm | 2 +-
code/modules/mob/living/silicon/ai/ai.dm | 2 +-
code/modules/mob/living/silicon/silicon.dm | 2 +-
.../mob/living/simple_animal/borer/borer.dm | 2 +-
.../mob/living/simple_animal/simple_animal.dm | 2 +-
.../simple_mob/subtypes/animal/borer/borer.dm | 2 +-
.../subtypes/animal/sif/frostfly.dm | 2 +-
.../simple_mob/subtypes/animal/sif/leech.dm | 2 +-
code/modules/mob/new_player/new_player.dm | 6 +--
.../file_system/programs/command/comm.dm | 4 +-
code/modules/shuttles/escape_pods.dm | 8 ++--
code/modules/shuttles/shuttle_emergency.dm | 26 ++++++------
maps/endeavor/endeavor_things.dm | 2 +-
maps/tether/tether_things.dm | 2 +-
33 files changed, 128 insertions(+), 132 deletions(-)
diff --git a/code/controllers/subsystems/master_controller.dm b/code/controllers/subsystems/master_controller.dm
index 8b3a39e536b..299cdfe68dd 100644
--- a/code/controllers/subsystems/master_controller.dm
+++ b/code/controllers/subsystems/master_controller.dm
@@ -1,10 +1,6 @@
-//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.
-//
+// KILL THIS FILE WHENEVER POSSIBLE, ONLY HERE BECAUSE LEGACY
+SUBSYSTEM_DEF(mastercontroller)
+ name = "Master Controller System"
var/global/datum/controller/game_controller/master_controller //Set in world.New()
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 23d50969d60..6a7350b5363 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -306,15 +306,15 @@ SUBSYSTEM_DEF(ticker)
mode.process()
-// emergency_shuttle.process() //handled in scheduler
+// SSemergencyshuttle.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)
+ game_finished = (SSemergencyshuttle.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
+ 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))
@@ -376,7 +376,7 @@ SUBSYSTEM_DEF(ticker)
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))
Player << "You survived the round, but remained on [station_name()] as [Player.real_name]."
else
diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm
index 6d8785f95de..65a16839391 100644
--- a/code/game/gamemodes/cult/narsie.dm
+++ b/code/game/gamemodes/cult/narsie.dm
@@ -55,8 +55,8 @@ var/global/list/narsie_list = list()
spawn(10 SECONDS)
if(emergency_shuttle)
- emergency_shuttle.call_evac()
- emergency_shuttle.launch_time = 0 // Cannot recall
+ 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 e49856bb677..28676c3bc63 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -213,8 +213,8 @@ var/list/sacrificed = list()
spawn(10 SECONDS)
if(emergency_shuttle)
- emergency_shuttle.call_evac()
- emergency_shuttle.launch_time = 0 // Cannot recall
+ 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)
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
index 0abf98e1f18..3b85c25223b 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()
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 7e0986b5202..cd3f481c5f7 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -210,7 +210,7 @@ var/global/list/additional_antag_types = list()
latejoin_templates |= antag
if(emergency_shuttle && auto_recall_shuttle)
- emergency_shuttle.auto_recall = 1
+ SSemergencyshuttle.auto_recall = 1
feedback_set_details("round_start","[time2text(world.realtime)]")
if(SSticker && SSticker.mode)
@@ -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
diff --git a/code/game/gamemodes/game_mode_latespawn.dm b/code/game/gamemodes/game_mode_latespawn.dm
index c28b46e6c6b..5b042983fe0 100644
--- a/code/game/gamemodes/game_mode_latespawn.dm
+++ b/code/game/gamemodes/game_mode_latespawn.dm
@@ -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/newobjective.dm b/code/game/gamemodes/newobjective.dm
index 55256fcc4dc..828ace48a68 100644
--- a/code/game/gamemodes/newobjective.dm
+++ b/code/game/gamemodes/newobjective.dm
@@ -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)
@@ -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
@@ -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 724f980be1d..8df21c444e7 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 9c603e66abe..a625f032eb6 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -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
diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm
index 39e9249d240..9077e02191d 100644
--- a/code/game/gamemodes/sandbox/sandbox.dm
+++ b/code/game/gamemodes/sandbox/sandbox.dm
@@ -14,4 +14,4 @@
/datum/game_mode/sandbox/post_setup()
..()
if(emergency_shuttle)
- emergency_shuttle.auto_recall = 1
+ SSemergencyshuttle.auto_recall = 1
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 09c6bdcf617..e509dd1d1f6 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 ((!( SSticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !SSemergencyshuttle.location()))
return
if(!universe.OnShuttleCall(usr))
@@ -445,7 +445,7 @@
user << "[GLOB.using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
return
- if(emergency_shuttle.deny_shuttle)
+ if(SSemergencyshuttle.deny_shuttle)
user << "The emergency shuttle may not be sent at this time. Please try again later."
return
@@ -453,11 +453,11 @@
user << "The emergency shuttle is refueling. Please wait another [round((6000-world.time)/600)] minute\s before trying again."
return
- if(emergency_shuttle.going_to_centcom())
+ if(SSemergencyshuttle.going_to_centcom())
user << "The emergency shuttle may not be called while returning to [GLOB.using_map.boss_short]."
return
- if(emergency_shuttle.online())
+ if(SSemergencyshuttle.online())
user << "The emergency shuttle is already on its way."
return
@@ -465,7 +465,7 @@
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
return
- emergency_shuttle.call_evac()
+ 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,20 +474,20 @@
return
/proc/init_shift_change(var/mob/user, var/force = 0)
- if ((!( SSticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !SSemergencyshuttle.location()))
return
- if(emergency_shuttle.going_to_centcom())
+ if(SSemergencyshuttle.going_to_centcom())
user << "The shuttle may not be called while returning to [GLOB.using_map.boss_short]."
return
- if(emergency_shuttle.online())
+ if(SSemergencyshuttle.online())
user << "The shuttle is already on its way."
return
// if force is 0, some things may stop the shuttle call
if(!force)
- if(emergency_shuttle.deny_shuttle)
+ if(SSemergencyshuttle.deny_shuttle)
user << "[GLOB.using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later."
return
@@ -501,13 +501,13 @@
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
if(SSticker.mode.name == "blob" || SSticker.mode.name == "epidemic")
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
return
- emergency_shuttle.call_transfer()
+ SSemergencyshuttle.call_transfer()
//delay events in case of an autotransfer
if (isnull(user))
@@ -521,13 +521,13 @@
return
/proc/cancel_call_proc(var/mob/user)
- if (!( SSticker ) || !emergency_shuttle.can_recall())
+ if (!( SSticker ) || !SSemergencyshuttle.can_recall())
return
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 245a2d38189..533a57fd842 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) ) || !( SSticker ) || 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")
@@ -43,7 +43,7 @@
message_admins("[key_name_admin(user)] has launched the shuttle")
log_game("[user.ckey] has launched the shuttle early")
world << "Alert: Shuttle launch time shortened to 10 seconds!"
- emergency_shuttle.set_launch_countdown(10)
+ SSemergencyshuttle.set_launch_countdown(10)
//src.authorized = null
qdel(src.authorized)
src.authorized = list( )
@@ -60,11 +60,11 @@
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")
world << "Alert: Shuttle launch time shortened to 10 seconds!"
- emergency_shuttle.set_launch_countdown(10)
+ SSemergencyshuttle.set_launch_countdown(10)
emagged = 1
if("Cancel")
return
diff --git a/code/game/machinery/computer3/computers/communications.dm b/code/game/machinery/computer3/computers/communications.dm
index e9fb67abc34..cc7325098f2 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/status_display.dm b/code/game/machinery/status_display.dm
index 0ea298a020f..d7cc77c77f8 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -98,16 +98,16 @@
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)
@@ -196,7 +196,7 @@
/obj/machinery/status_display/proc/get_shuttle_timer_arrival()
if(!emergency_shuttle)
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)]"
@@ -204,7 +204,7 @@
/obj/machinery/status_display/proc/get_shuttle_timer_departure()
if(!emergency_shuttle)
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)]"
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 63269f0ac72..d7ffe8332cc 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -388,19 +388,19 @@
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 += "[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]
"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 93f72a6042e..ec45cbae4c9 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -206,23 +206,23 @@
switch(href_list["call_shuttle"])
if("1")
- if ((!( SSticker ) || !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 (!( SSticker ) || !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)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 65acb54a89e..504df0d1b47 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -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 ((!( SSticker ) || !emergency_shuttle.location()))
+ if ((!( SSticker ) || !SSemergencyshuttle.location()))
return
if(!check_rights(R_ADMIN|R_EVENT)) return
@@ -840,15 +840,15 @@ Traitors and the like can also be revived with the previous role mostly intact.
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(!SSticker || !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)
@@ -883,10 +883,10 @@ Traitors and the like can also be revived with the previous role mostly intact.
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"
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 536ad3c24e7..980df510665 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -222,7 +222,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
..()
if(statpanel("Status"))
if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 62c237e10b1..29698e12a14 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -66,7 +66,7 @@
stat("Intent:", "[a_intent]")
stat("Move Mode:", "[m_intent]")
if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 33e14159b54..f86a6cd572d 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/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index be4217bf4aa..43980613461 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -158,7 +158,7 @@
// 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()
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index 8898dc629a5..14d9d2c21bc 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -97,7 +97,7 @@
statpanel("Status")
if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ 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 ca08640a9af..47b3c68b5fe 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..2f30193654f 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
@@ -96,7 +96,7 @@
if(client.statpanel == "Status")
statpanel("Status")
if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ 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/sif/frostfly.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
index 5711868d157..e4e44638008 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
@@ -113,7 +113,7 @@
if(client.statpanel == "Status")
statpanel("Status")
if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ 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..aca4423d09b 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
@@ -125,7 +125,7 @@
if(client.statpanel == "Status")
statpanel("Status")
if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
+ var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
stat("Chemicals", chemicals)
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index a237374c1ea..cc193868c6e 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -425,10 +425,10 @@
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.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.
"
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/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm
index 60c1e4bd0d0..383b7dda1e8 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 SSemergencyshuttle.escape_pods)
CRASH("An escape pod with the name '[name]' has already been defined.")
- emergency_shuttle.escape_pods[name] = src
+ SSemergencyshuttle.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_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm
index b5b86007cd2..6f2b4940fba 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)
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/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
..()
From 2f3fedd79cae739a9732a878d7593c4c8d02ddf3 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:25:42 -0700
Subject: [PATCH 07/44] ok
---
code/__DEFINES/subsystems.dm | 4 +-
.../subsystems/master_controller.dm | 52 -------------------
code/controllers/subsystems/ticker.dm | 19 +++++++
vorestation.dme | 20 +++----
4 files changed, 28 insertions(+), 67 deletions(-)
delete mode 100644 code/controllers/subsystems/master_controller.dm
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 447320a04ca..b6253ef6c4c 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -45,8 +45,8 @@
#define RUNLEVEL_INIT 0 // "Initialize Only" - Used for subsystems that should never be fired (Should also have SS_NO_FIRE set)
#define RUNLEVEL_LOBBY 1 // Initial runlevel before setup. Returns to here if setup fails.
-#define RUNLEVEL_SETUP 2 // While the gamemode setup is running. I.E gameSSticker.setup()
-#define RUNLEVEL_GAME 4 // After successful game SSticker setup, while the round is running.
+#define RUNLEVEL_SETUP 2 // While the gamemode setup is running. I.E gameticker.setup()
+#define RUNLEVEL_GAME 4 // After successful game ticker setup, while the round is running.
#define RUNLEVEL_POSTGAME 8 // When round completes but before reboot
#define RUNLEVELS_DEFAULT (RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME)
diff --git a/code/controllers/subsystems/master_controller.dm b/code/controllers/subsystems/master_controller.dm
deleted file mode 100644
index 299cdfe68dd..00000000000
--- a/code/controllers/subsystems/master_controller.dm
+++ /dev/null
@@ -1,52 +0,0 @@
-// KILL THIS FILE WHENEVER POSSIBLE, ONLY HERE BECAUSE LEGACY
-SUBSYSTEM_DEF(mastercontroller)
- name = "Master Controller System"
-
-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/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 6a7350b5363..b8d2e8d0ea1 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -1,6 +1,7 @@
SUBSYSTEM_DEF(ticker)
name = "Ticker"
wait = 20
+ init_order = INIT_ORDER_TICKER
var/const/restart_timeout = 3 MINUTES //One minute is 600.
var/current_state = GAME_STATE_PREGAME
@@ -277,10 +278,28 @@ SUBSYSTEM_DEF(ticker)
to_chat(M, "Colony Directorship not forced on anyone.")
/datum/controller/subsystem/ticker/Initialize()
+ 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()
+
+ // 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)
diff --git a/vorestation.dme b/vorestation.dme
index b63dc1898ce..55dee432283 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -230,16 +230,13 @@
#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"
@@ -249,27 +246,24 @@
#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"
@@ -285,9 +279,12 @@
#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\vote.dm"
#include "code\controllers\subsystems\xenoarch.dm"
#include "code\controllers\subsystems\processing\chemistry.dm"
@@ -549,7 +546,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"
@@ -725,7 +721,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"
@@ -1967,7 +1962,6 @@
#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\atmos_leak.dm"
From 453f6bd03539dca38885786882f353ddb222ca10 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:29:03 -0700
Subject: [PATCH 08/44] compile
---
code/__DEFINES/subsystems.dm | 1 +
code/controllers/subsystems/alarm.dm | 10 +++++-----
code/game/machinery/camera/camera.dm | 4 ++--
code/game/machinery/camera/motion.dm | 2 +-
code/game/world.dm | 9 +--------
.../gamemaster/actions/{action.dm => _action.dm} | 2 +-
code/modules/gamemaster/actions/supply_conversion.dm | 2 +-
.../file_system/programs/engineering/alarm_monitor.dm | 6 +++---
vorestation.dme | 2 +-
9 files changed, 16 insertions(+), 22 deletions(-)
rename code/modules/gamemaster/actions/{action.dm => _action.dm} (94%)
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index b6253ef6c4c..0f51541a86a 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -75,6 +75,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
#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
diff --git a/code/controllers/subsystems/alarm.dm b/code/controllers/subsystems/alarm.dm
index 247df86774b..85f46ed1161 100644
--- a/code/controllers/subsystems/alarm.dm
+++ b/code/controllers/subsystems/alarm.dm
@@ -11,7 +11,7 @@ SUBSYSTEM_DEF(alarms)
var/static/datum/alarm_handler/motion/motion_alarm
var/static/datum/alarm_handler/power/power_alarm
-/datum/controller/subsystem/alarm/Initialize()
+/datum/controller/subsystem/alarms/Initialize()
atmosphere_alarm = new
camera_alarm = new
fire_alarm = new
@@ -20,17 +20,17 @@ SUBSYSTEM_DEF(alarms)
all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
return ..()
-/datum/controller/subsystem/alarm/fire()
+/datum/controller/subsystem/alarms/fire()
for(var/datum/alarm_handler/A in all_handlers)
A.process()
-/datum/controller/subsystem/alarm/proc/active_alarms()
+/datum/controller/subsystem/alarms/proc/active_alarms()
. = list()
for(var/datum/alarm_handler/AH in all_handlers)
. += AH.alarms
-/datum/controller/subsystem/alarm/proc/number_of_active_alarms()
+/datum/controller/subsystem/alarms/proc/number_of_active_alarms()
return length(active_alarms())
-/datum/controller/subsystem/alarm/stat_entry()
+/datum/controller/subsystem/alarms/stat_entry()
..("[number_of_active_alarms()] alarms")
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index dc203f2b8bf..283732d2b77 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..0f828a11c9a 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
diff --git a/code/game/world.dm b/code/game/world.dm
index 0455b76626a..1f19410742b 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -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/SSticker)
- processScheduler.setup()
-
Master.Initialize(10, FALSE)
- spawn(1)
- master_controller.setup()
#if UNIT_TEST
+ spawn(1)
initialize_unit_tests()
#endif
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/supply_conversion.dm b/code/modules/gamemaster/actions/supply_conversion.dm
index ccf7beb21a2..0f758024944 100644
--- a/code/modules/gamemaster/actions/supply_conversion.dm
+++ b/code/modules/gamemaster/actions/supply_conversion.dm
@@ -5,7 +5,7 @@
chaotic = 0
reusable = TRUE
- var/datum/controller/supply/SC
+ var/datum/controller/subsystem/supply/SC
var/running = FALSE
var/last_run
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/vorestation.dme b/vorestation.dme
index 55dee432283..8d090cb1040 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1963,7 +1963,7 @@
#include "code\modules\gamemaster\controller.dm"
#include "code\modules\gamemaster\defines.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"
From a5e9cec75ee4389a79ce421c7423fd67e892035a Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:30:37 -0700
Subject: [PATCH 09/44] k
---
code/controllers/subsystems/ticker.dm | 8 ++++----
code/modules/gamemaster/controller.dm | 4 ++--
code/modules/gamemaster/helpers.dm | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index b8d2e8d0ea1..3d2faede73e 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -278,10 +278,10 @@ SUBSYSTEM_DEF(ticker)
to_chat(M, "Colony Directorship not forced on anyone.")
/datum/controller/subsystem/ticker/Initialize()
- if(!job_master)
- job_master = new /datum/controller/occupations()
- job_master.SetupOccupations()
- job_master.LoadJobs("config/jobs.txt")
+ if(!SSjobs)
+ SSjobs = new /datum/controller/occupations()
+ SSjobs.SetupOccupations()
+ SSjobs.LoadJobs("config/jobs.txt")
admin_notice("Job setup complete", R_DEBUG)
if(!syndicate_code_phrase)
diff --git a/code/modules/gamemaster/controller.dm b/code/modules/gamemaster/controller.dm
index 343f05842d1..8a12e286638 100644
--- a/code/modules/gamemaster/controller.dm
+++ b/code/modules/gamemaster/controller.dm
@@ -5,7 +5,7 @@
game_master.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
From 607bf60aa21fe1a72df3dfdcc034033bc8fb9fb6 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:40:45 -0700
Subject: [PATCH 10/44] ok
---
code/controllers/subsystems/openspace.dm | 47 +++++++++
code/game/machinery/computer/atmos_alert.dm | 14 +--
code/modules/mob/mob.dm | 3 -
code/modules/multiz/open_space_controller.dm | 105 -------------------
code/modules/multiz/turf.dm | 12 ++-
code/modules/multiz/turf_obj_hooks.dm | 44 ++++++++
code/modules/power/apc.dm | 12 +--
7 files changed, 113 insertions(+), 124 deletions(-)
create mode 100644 code/controllers/subsystems/openspace.dm
delete mode 100644 code/modules/multiz/open_space_controller.dm
create mode 100644 code/modules/multiz/turf_obj_hooks.dm
diff --git a/code/controllers/subsystems/openspace.dm b/code/controllers/subsystems/openspace.dm
new file mode 100644
index 00000000000..87d9f8d08e2
--- /dev/null
+++ b/code/controllers/subsystems/openspace.dm
@@ -0,0 +1,47 @@
+SUBSYSTEM_DEF(openspace)
+ name = "Open Space"
+ init_order = INIT_ORDER_OPENSPACE
+ wait = 10
+
+ 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/Initialize()
+ initialize_open_space()
+ return ..()
+
+/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)
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 649965ab8d7..1585197f2d0 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -14,10 +14,10 @@ var/global/list/minor_air_alarms = list()
/obj/machinery/computer/atmos_alert/New()
..()
- atmosphere_alarm.register_alarm(src, /obj/machinery/computer/station_alert/update_icon)
+ 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)
..()
/obj/machinery/computer/atmos_alert/attack_hand(mob/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/modules/mob/mob.dm b/code/modules/mob/mob.dm
index ec728bd3be4..fbfb019a10a 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -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/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..2f705f82dd4
--- /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_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])")
+ SSopenspace.add_turf(T, 1)
+
+/turf/Exited(atom/movable/AM)
+ . = ..()
+ if(SSopenspace.subsystem_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])")
+ SSopenspace.add_turf(T, 1)
+
+/obj/update_icon()
+ . = ..()
+ if(SSopenspace.subsystem_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()")
+ SSopenspace.add_turf(T, 1)
+
+// Ouch... this is painful. But is there any other way?
+/* - No for now
+/obj/New()
+ . = ..()
+ if(SSopenspace.subsystem_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()")
+ 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_initialised && !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/power/apc.dm b/code/modules/power/apc.dm
index 4f0b83d9824..cb6d698de63 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -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
From ca07316e64b70e3ef7dfd04a5931b65b2463c8e0 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:41:38 -0700
Subject: [PATCH 11/44] k
---
vorestation.dme | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/vorestation.dme b/vorestation.dme
index 8d090cb1040..f951f1c4c8e 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -269,6 +269,7 @@
#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"
@@ -2744,11 +2745,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"
From 4f22684ca6e0464d798aab689fc41233ad8394a3 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:47:39 -0700
Subject: [PATCH 12/44] k
---
.../subsystems/emergency_shuttle.dm | 4 +--
code/controllers/subsystems/openspace.dm | 12 ++++-----
code/controllers/verbs.dm | 25 -------------------
code/modules/multiz/turf_obj_hooks.dm | 10 ++++----
4 files changed, 13 insertions(+), 38 deletions(-)
diff --git a/code/controllers/subsystems/emergency_shuttle.dm b/code/controllers/subsystems/emergency_shuttle.dm
index 8195765ab0c..9f14545117b 100644
--- a/code/controllers/subsystems/emergency_shuttle.dm
+++ b/code/controllers/subsystems/emergency_shuttle.dm
@@ -155,8 +155,8 @@ SUBSYSTEM_DEF(emergencyshuttle)
/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
diff --git a/code/controllers/subsystems/openspace.dm b/code/controllers/subsystems/openspace.dm
index 87d9f8d08e2..e9038defed2 100644
--- a/code/controllers/subsystems/openspace.dm
+++ b/code/controllers/subsystems/openspace.dm
@@ -6,15 +6,15 @@ SUBSYSTEM_DEF(openspace)
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/Initialize()
+/datum/controller/subsystem/openspace/Initialize()
initialize_open_space()
return ..()
-/datum/controller/process/open_space/copyStateFrom(var/datum/controller/process/open_space/other)
+/datum/controller/subsystem/openspace/copyStateFrom(var/datum/controller/subsystem/openspace/other)
. = ..()
OS_controller = src
-/datum/controller/process/open_space/doWork()
+/datum/controller/subsystem/openspace/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
@@ -26,12 +26,12 @@ SUBSYSTEM_DEF(openspace)
update_turf(T)
SCHECK
-/datum/controller/process/open_space/proc/update_turf(var/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/process/open_space/proc/add_turf(var/turf/T, var/recursive = 0)
+/datum/controller/subsystem/openspace/proc/add_turf(var/turf/T, var/recursive = 0)
ASSERT(isturf(T))
turfs_to_process += T
if(recursive > 0)
@@ -40,7 +40,7 @@ SUBSYSTEM_DEF(openspace)
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()
+/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)))
diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm
index 2484e842e75..bfe115c41b3 100644
--- a/code/controllers/verbs.dm
+++ b/code/controllers/verbs.dm
@@ -105,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/modules/multiz/turf_obj_hooks.dm b/code/modules/multiz/turf_obj_hooks.dm
index 2f705f82dd4..a3fe68d07a1 100644
--- a/code/modules/multiz/turf_obj_hooks.dm
+++ b/code/modules/multiz/turf_obj_hooks.dm
@@ -2,7 +2,7 @@
/turf/Entered(atom/movable/AM)
. = ..()
- if(SSopenspace.subsystem_initialised && !AM.invisibility && isobj(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])")
@@ -10,7 +10,7 @@
/turf/Exited(atom/movable/AM)
. = ..()
- if(SSopenspace.subsystem_initialised && !AM.invisibility && isobj(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])")
@@ -18,7 +18,7 @@
/obj/update_icon()
. = ..()
- if(SSopenspace.subsystem_initialised && !invisibility && isturf(loc))
+ 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()")
@@ -28,7 +28,7 @@
/* - No for now
/obj/New()
. = ..()
- if(SSopenspace.subsystem_initialised && !invisibility)
+ 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()")
@@ -37,7 +37,7 @@
// Just as New() we probably should hook Destroy() If we can think of something more efficient, lets hear it.
/obj/Destroy()
- if(SSopenspace.subsystem_initialised && !invisibility && isturf(loc))
+ if(SSopenspace.subsystem_initialized && !invisibility && isturf(loc))
var/turf/T = GetAbove(src)
if(isopenspace(T))
SSopenspace.add_turf(T, 1)
From 35ff58c335ac86716d4f0b9a9e4baf3317eb5b23 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:48:31 -0700
Subject: [PATCH 13/44] okay
---
code/game/gamemodes/cult/narsie.dm | 2 +-
code/game/gamemodes/cult/runes.dm | 2 +-
code/game/gamemodes/sandbox/sandbox.dm | 2 +-
code/modules/mob/dead/observer/observer.dm | 2 +-
code/modules/mob/living/carbon/human/human.dm | 2 +-
code/modules/mob/living/silicon/silicon.dm | 2 +-
code/modules/mob/living/simple_animal/borer/borer.dm | 2 +-
.../mob/living/simple_mob/subtypes/animal/borer/borer.dm | 2 +-
.../mob/living/simple_mob/subtypes/animal/sif/frostfly.dm | 2 +-
code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm | 2 +-
code/modules/mob/new_player/new_player.dm | 2 +-
11 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm
index 65a16839391..e1b7b9f5bfb 100644
--- a/code/game/gamemodes/cult/narsie.dm
+++ b/code/game/gamemodes/cult/narsie.dm
@@ -54,7 +54,7 @@ var/global/list/narsie_list = list()
narsie_cometh = 1
spawn(10 SECONDS)
- if(emergency_shuttle)
+ if(SSemergencyshuttle)
SSemergencyshuttle.call_evac()
SSemergencyshuttle.launch_time = 0 // Cannot recall
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 28676c3bc63..90f412b0879 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -212,7 +212,7 @@ var/list/sacrificed = list()
narsie_cometh = 1
spawn(10 SECONDS)
- if(emergency_shuttle)
+ if(SSemergencyshuttle)
SSemergencyshuttle.call_evac()
SSemergencyshuttle.launch_time = 0 // Cannot recall
diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm
index 9077e02191d..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)
+ if(SSemergencyshuttle)
SSemergencyshuttle.auto_recall = 1
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 980df510665..041241d66fc 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -221,7 +221,7 @@ 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)
+ if(SSemergencyshuttle)
var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 29698e12a14..fe104224498 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -65,7 +65,7 @@
if(statpanel("Status"))
stat("Intent:", "[a_intent]")
stat("Move Mode:", "[m_intent]")
- if(emergency_shuttle)
+ if(SSemergencyshuttle)
var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 43980613461..452c84356a8 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -157,7 +157,7 @@
// 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)
+ 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/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index 14d9d2c21bc..6e320d04361 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -96,7 +96,7 @@
..()
statpanel("Status")
- if(emergency_shuttle)
+ 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_mob/subtypes/animal/borer/borer.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm
index 2f30193654f..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,7 +95,7 @@
..()
if(client.statpanel == "Status")
statpanel("Status")
- if(emergency_shuttle)
+ 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_mob/subtypes/animal/sif/frostfly.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
index e4e44638008..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,7 +112,7 @@
..()
if(client.statpanel == "Status")
statpanel("Status")
- if(emergency_shuttle)
+ 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_mob/subtypes/animal/sif/leech.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/leech.dm
index aca4423d09b..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,7 +124,7 @@
..()
if(client.statpanel == "Status")
statpanel("Status")
- if(emergency_shuttle)
+ if(SSemergencyshuttle)
var/eta_status = SSemergencyshuttle.get_status_panel_eta()
if(eta_status)
stat(null, eta_status)
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index cc193868c6e..fc1e1b893c5 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -424,7 +424,7 @@
dat += "Welcome, [name].
"
dat += "Round Duration: [roundduration2text()]
"
- if(emergency_shuttle) //In case NanoTrasen decides reposess CentCom's shuttles.
+ 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(SSemergencyshuttle.online())
From 30c2984a6d31939cb2cfd7c4554a39a8bcb19f17 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 04:58:21 -0700
Subject: [PATCH 14/44] whew
---
code/__HELPERS/time.dm | 5 ----
code/controllers/subsystems/jobs.dm | 2 +-
code/controllers/subsystems/openspace.dm | 23 +++++--------------
code/controllers/subsystems/ticker.dm | 1 -
.../subsystems/turbolift.dm} | 22 ++++++------------
code/game/machinery/status_display.dm | 6 ++---
code/global.dm | 1 -
code/modules/admin/admin_verbs.dm | 3 ---
code/modules/admin/verbs/mapping.dm | 1 -
vorestation.dme | 2 +-
10 files changed, 18 insertions(+), 48 deletions(-)
rename code/{modules/turbolift/turbolift_process.dm => controllers/subsystems/turbolift.dm} (53%)
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/controllers/subsystems/jobs.dm b/code/controllers/subsystems/jobs.dm
index 34a8393a538..3df5854750e 100644
--- a/code/controllers/subsystems/jobs.dm
+++ b/code/controllers/subsystems/jobs.dm
@@ -674,7 +674,7 @@ SUBSYSTEM_DEF(jobs)
tmp_str += "HIGH=[level1]|MEDIUM=[level2]|LOW=[level3]|NEVER=[level4]|BANNED=[level5]|YOUNG=[level6]|-"
feedback_add_details("job_preferences",tmp_str)
-/datum/controller/occupations/proc/LateSpawn(var/client/C, var/rank)
+/datum/controller/subsystem/jobs/proc/LateSpawn(var/client/C, var/rank)
var/datum/spawnpoint/spawnpos
diff --git a/code/controllers/subsystems/openspace.dm b/code/controllers/subsystems/openspace.dm
index e9038defed2..341e81826d9 100644
--- a/code/controllers/subsystems/openspace.dm
+++ b/code/controllers/subsystems/openspace.dm
@@ -3,28 +3,17 @@ SUBSYSTEM_DEF(openspace)
init_order = INIT_ORDER_OPENSPACE
wait = 10
- 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.
+ 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/copyStateFrom(var/datum/controller/subsystem/openspace/other)
- . = ..()
- OS_controller = src
-
-/datum/controller/subsystem/openspace/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/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)
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 3d2faede73e..8156dec529c 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -129,7 +129,6 @@ SUBSYSTEM_DEF(ticker)
lighting_controller.process() //Start processing DynamicAreaLighting updates
*/
- processScheduler.start()
Master.SetRunLevel(RUNLEVEL_GAME)
if(config_legacy.sql_enabled)
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/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index d7cc77c77f8..dd4dff82cf3 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -94,7 +94,7 @@
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
@@ -194,7 +194,7 @@
maptext = new_text
/obj/machinery/status_display/proc/get_shuttle_timer_arrival()
- if(!emergency_shuttle)
+ if(!SSemergencyshuttle)
return "Error"
var/timeleft = SSemergencyshuttle.estimate_arrival_time()
if(timeleft < 0)
@@ -202,7 +202,7 @@
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 = SSemergencyshuttle.estimate_launch_time()
if(timeleft < 0)
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_verbs.dm b/code/modules/admin/admin_verbs.dm
index 71c568269ad..1837b8783f5 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,
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 12f112ac07b..da4727c5ff3 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -164,7 +164,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/vorestation.dme b/vorestation.dme
index f951f1c4c8e..614bb4b25a5 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -286,6 +286,7 @@
#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"
@@ -3254,7 +3255,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"
From 8845f196c731af6ace3ed61a19ba16eb9436b6d1 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:02:40 -0700
Subject: [PATCH 15/44] ok
---
code/__DEFINES/subsystems.dm | 1 +
code/controllers/subsystems/emergency_shuttle.dm | 4 ++--
code/controllers/subsystems/jobs.dm | 5 ++++-
code/controllers/subsystems/ticker.dm | 8 +-------
code/game/area/areas.dm | 6 +++---
code/game/gamemodes/game_mode.dm | 2 +-
code/game/machinery/camera/motion.dm | 2 +-
code/game/world.dm | 1 -
code/modules/admin/verbs/diagnostics.dm | 4 ++--
code/modules/admin/verbs/mapping.dm | 4 ----
code/modules/gamemaster/controller.dm | 2 +-
code/modules/mob/living/silicon/silicon.dm | 2 +-
code/modules/mob/living/silicon/subystems.dm | 2 +-
code/modules/turbolift/turbolift.dm | 2 +-
14 files changed, 19 insertions(+), 26 deletions(-)
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 0f51541a86a..485a177a574 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -80,6 +80,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
#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/controllers/subsystems/emergency_shuttle.dm b/code/controllers/subsystems/emergency_shuttle.dm
index 9f14545117b..9b1a5145edc 100644
--- a/code/controllers/subsystems/emergency_shuttle.dm
+++ b/code/controllers/subsystems/emergency_shuttle.dm
@@ -222,14 +222,14 @@ SUBSYSTEM_DEF(emergencyshuttle)
/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/controllers/subsystems/jobs.dm b/code/controllers/subsystems/jobs.dm
index 3df5854750e..58dd49dd265 100644
--- a/code/controllers/subsystems/jobs.dm
+++ b/code/controllers/subsystems/jobs.dm
@@ -14,7 +14,10 @@ SUBSYSTEM_DEF(jobs)
#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()
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 8156dec529c..0ba71e82a6e 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -257,7 +257,7 @@ SUBSYSTEM_DEF(ticker)
/datum/controller/subsystem/ticker/proc/collect_minds()
for(var/mob/living/player in player_list)
if(player.mind)
- ticker.minds += player.mind
+ minds += player.mind
/datum/controller/subsystem/ticker/proc/equip_characters()
@@ -277,12 +277,6 @@ SUBSYSTEM_DEF(ticker)
to_chat(M, "Colony Directorship not forced on anyone.")
/datum/controller/subsystem/ticker/Initialize()
- if(!SSjobs)
- SSjobs = new /datum/controller/occupations()
- SSjobs.SetupOccupations()
- SSjobs.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)
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 05529a09b68..94f5bf71b59 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/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index cd3f481c5f7..2219c171e15 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -209,7 +209,7 @@ var/global/list/additional_antag_types = list()
if(antag.is_latejoin_template())
latejoin_templates |= antag
- if(emergency_shuttle && auto_recall_shuttle)
+ if(SSemergencyshuttle && auto_recall_shuttle)
SSemergencyshuttle.auto_recall = 1
feedback_set_details("round_start","[time2text(world.realtime)]")
diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm
index 0f828a11c9a..69562e6d42d 100644
--- a/code/game/machinery/camera/motion.dm
+++ b/code/game/machinery/camera/motion.dm
@@ -52,7 +52,7 @@
if (!status || (stat & NOPOWER))
return 0
if (!detectTime) return 0
- motion_alarm.triggerAlarm(loc, src)
+ SSalarmsmotion_alarm.triggerAlarm(loc, src)
detectTime = -1
return 1
diff --git a/code/game/world.dm b/code/game/world.dm
index 1f19410742b..7d55fa1a3b3 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -200,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
diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm
index d302590eac6..e17b24974ea 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 da4727c5ff3..653092833b9 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)
diff --git a/code/modules/gamemaster/controller.dm b/code/modules/gamemaster/controller.dm
index 8a12e286638..3b1dd25a4d3 100644
--- a/code/modules/gamemaster/controller.dm
+++ b/code/modules/gamemaster/controller.dm
@@ -3,7 +3,7 @@
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/controller/subsystem/gamemaster/proc/interact(var/client/user)
if(!user)
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 452c84356a8..e51b18e23a7 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 ..()
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/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()
From 005af7c860b8d224481305550d5acc35a43cf362 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:07:02 -0700
Subject: [PATCH 16/44] ok
---
code/ATMOSPHERICS/components/unary/vent_pump.dm | 10 ----------
code/ATMOSPHERICS/components/unary/vent_scrubber.dm | 5 -----
code/game/machinery/alarm.dm | 4 ++--
code/game/machinery/camera/motion.dm | 2 +-
4 files changed, 3 insertions(+), 18 deletions(-)
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index cfaddfc58ec..5b1d64162e1 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/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/ATMOSPHERICS/components/unary/vent_scrubber.dm
index 4dc6bbac843..f81e9399806 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/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/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 8235ec94a92..58cbd130464 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/motion.dm b/code/game/machinery/camera/motion.dm
index 69562e6d42d..48110f0a7ac 100644
--- a/code/game/machinery/camera/motion.dm
+++ b/code/game/machinery/camera/motion.dm
@@ -52,7 +52,7 @@
if (!status || (stat & NOPOWER))
return 0
if (!detectTime) return 0
- SSalarmsmotion_alarm.triggerAlarm(loc, src)
+ SSalarms.motion_alarm.triggerAlarm(loc, src)
detectTime = -1
return 1
From 79e372b63cde8ebfe9c2e7a69b5d3f42aef7343d Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:20:05 -0700
Subject: [PATCH 17/44] ok
---
.../subsystems/emergency_shuttle.dm | 17 +++++---------
code/controllers/subsystems/shuttles.dm | 22 +++++++++----------
2 files changed, 16 insertions(+), 23 deletions(-)
diff --git a/code/controllers/subsystems/emergency_shuttle.dm b/code/controllers/subsystems/emergency_shuttle.dm
index 9b1a5145edc..c883b68351b 100644
--- a/code/controllers/subsystems/emergency_shuttle.dm
+++ b/code/controllers/subsystems/emergency_shuttle.dm
@@ -3,7 +3,6 @@ SUBSYSTEM_DEF(emergencyshuttle)
wait = 20
var/datum/shuttle/ferry/emergency/shuttle
- var/static/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
@@ -19,10 +18,6 @@ SUBSYSTEM_DEF(emergencyshuttle)
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/controller/subsystem/emergencyshuttle/Initialize()
- escape_pods = list()
- return ..()
-
/datum/controller/subsystem/emergencyshuttle/fire()
if (wait_for_launch)
if (evac && auto_recall && world.time >= auto_recall_time)
@@ -32,10 +27,10 @@ SUBSYSTEM_DEF(emergencyshuttle)
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)
@@ -59,10 +54,10 @@ SUBSYSTEM_DEF(emergencyshuttle)
//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)
diff --git a/code/controllers/subsystems/shuttles.dm b/code/controllers/subsystems/shuttles.dm
index 61a45908904..65717423500 100644
--- a/code/controllers/subsystems/shuttles.dm
+++ b/code/controllers/subsystems/shuttles.dm
@@ -2,9 +2,6 @@
// 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)
name = "Shuttles"
wait = 2 SECONDS
@@ -13,13 +10,14 @@ 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)
+/datum/controller/subsystem/shuttle/Initialize(timeofday)
global.shuttle_controller = src
setup_shuttle_docks()
for(var/I in docks_init_callbacks)
@@ -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
From 2de4b0cbc176e11d9c74177e5307834a59458fb4 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:21:28 -0700
Subject: [PATCH 18/44] ok
---
code/controllers/subsystems/shuttles.dm | 2 +-
.../secrets/admin_secrets/jump_shuttle.dm | 6 +++---
.../secrets/admin_secrets/launch_shuttle.dm | 8 ++++----
.../admin_secrets/launch_shuttle_forced.dm | 8 ++++----
.../secrets/admin_secrets/move_shuttle.dm | 6 +++---
.../overmap/ships/computers/shuttle.dm | 20 +++++++++----------
code/modules/rogueminer_vr/zone_console.dm | 4 ++--
code/modules/shuttles/shuttle.dm | 10 +++++-----
code/modules/shuttles/shuttle_console.dm | 4 ++--
code/modules/shuttles/shuttle_emergency.dm | 2 +-
code/modules/shuttles/shuttles_multi.dm | 4 ++--
code/modules/shuttles/shuttles_web.dm | 14 ++++++-------
maps/endeavor/endeavor_shuttles.dm | 2 +-
maps/tether/tether_shuttles.dm | 4 ++--
14 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/code/controllers/subsystems/shuttles.dm b/code/controllers/subsystems/shuttles.dm
index 65717423500..a0d9a27d761 100644
--- a/code/controllers/subsystems/shuttles.dm
+++ b/code/controllers/subsystems/shuttles.dm
@@ -18,7 +18,7 @@ SUBSYSTEM_DEF(shuttles)
var/docks_initialized = FALSE
/datum/controller/subsystem/shuttle/Initialize(timeofday)
- global.shuttle_controller = src
+ global.SSshuttle = src
setup_shuttle_docks()
for(var/I in docks_init_callbacks)
var/datum/callback/cb = I
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/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/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/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index 26466084bb0..82e0d1fcef3 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -20,19 +20,19 @@
/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(SSsupply.shuttle)
CRASH("A supply shuttle is already defined.")
SSsupply.shuttle = src
/datum/shuttle/Destroy()
- shuttle_controller.shuttles -= src.name
- shuttle_controller.process_shuttles -= src
+ SSshuttle.shuttles -= src.name
+ SSshuttle.process_shuttles -= src
if(SSsupply.shuttle == src)
SSsupply.shuttle = null
. = ..()
diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm
index 3d5422f4f18..923cc131bfc 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 6f2b4940fba..e06594228f1 100644
--- a/code/modules/shuttles/shuttle_emergency.dm
+++ b/code/modules/shuttles/shuttle_emergency.dm
@@ -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/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm
index 0df93db9968..e95d544a0ea 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 d24f47b1d7b..917e50865ef 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
@@ -478,7 +478,7 @@
/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/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/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)
From a37eb8b7f95bc81934cc4f08dfa3b84b7633c728 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:23:20 -0700
Subject: [PATCH 19/44] ok
---
code/controllers/subsystems/shuttles.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/controllers/subsystems/shuttles.dm b/code/controllers/subsystems/shuttles.dm
index a0d9a27d761..39bf9fa1187 100644
--- a/code/controllers/subsystems/shuttles.dm
+++ b/code/controllers/subsystems/shuttles.dm
@@ -2,7 +2,7 @@
// SSshuttles subsystem - Handles initialization and processing of shuttles.
//
-SUBSYSTEM_DEF(shuttles)
+SUBSYSTEM_DEF(shuttle)
name = "Shuttles"
wait = 2 SECONDS
priority = FIRE_PRIORITY_SHUTTLES
From 90032f61eb8c11a3f4fda8c65cfd86bbe4d32120 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:25:30 -0700
Subject: [PATCH 20/44] fix
---
code/modules/shuttles/escape_pods.dm | 4 ++--
code/modules/shuttles/shuttles_web.dm | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm
index 383b7dda1e8..03b7d33bfdd 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 SSemergencyshuttle.escape_pods)
+ if(name in SSshuttle.escape_pods)
CRASH("An escape pod with the name '[name]' has already been defined.")
- SSemergencyshuttle.escape_pods[name] = src
+ SSshuttle.escape_pods[name] = src
..()
/datum/shuttle/ferry/escape_pod/init_docking_controllers()
diff --git a/code/modules/shuttles/shuttles_web.dm b/code/modules/shuttles/shuttles_web.dm
index 917e50865ef..fffb740f275 100644
--- a/code/modules/shuttles/shuttles_web.dm
+++ b/code/modules/shuttles/shuttles_web.dm
@@ -474,7 +474,7 @@
/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)
From 6313886e0cc7729e7bc4c16a6075c131fe8994ec Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:31:54 -0700
Subject: [PATCH 21/44] k
---
.../controllers/observer_listener/atom/observer.dm | 5 -----
code/datums/observation/destroyed.dm | 14 --------------
code/modules/holomap/station_holomap.dm | 4 ++--
.../subtypes/manipulation.dm | 4 ++--
vorestation.dme | 1 -
5 files changed, 4 insertions(+), 24 deletions(-)
delete mode 100644 code/datums/observation/destroyed.dm
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/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/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/vorestation.dme b/vorestation.dme
index b63dc1898ce..135894785fe 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -361,7 +361,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"
From 908c712eb9d9a0ead97a66be47c58108e4814ff9 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:43:51 -0700
Subject: [PATCH 22/44] okay
---
code/controllers/subsystems/ticker.dm | 3 ++-
code/game/machinery/computer/atmos_alert.dm | 6 +++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 0ba71e82a6e..3d1a056b9a1 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -298,6 +298,8 @@ SUBSYSTEM_DEF(ticker)
switch(current_state)
if(GAME_STATE_PREGAME)
pregame()
+ if(GAME_STATE_SETTING_UP)
+ setup()
if(GAME_STATE_PLAYING)
round_process()
@@ -310,7 +312,6 @@ SUBSYSTEM_DEF(ticker)
if(pregame_timeleft <= 0)
current_state = GAME_STATE_SETTING_UP
Master.SetRunLevel(RUNLEVEL_SETUP)
- setup()
/datum/controller/subsystem/ticker/proc/round_process()
if(current_state != GAME_STATE_PLAYING)
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 1585197f2d0..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()
- ..()
+/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()
SSalarms.atmosphere_alarm.unregister_alarm(src)
- ..()
+ return ..()
/obj/machinery/computer/atmos_alert/attack_hand(mob/user)
ui_interact(user)
From 1a1ecca62be93a304500d47950c42496e367b690 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 05:53:04 -0700
Subject: [PATCH 23/44] Update buckling.dm
---
code/game/objects/buckling.dm | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index 875e0b637f0..f6e465bec02 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -120,17 +120,16 @@
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(.)
From a57863c8d1b7f1feafaa9aa15ebacadb174efb91 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 06:26:51 -0700
Subject: [PATCH 24/44] ok
---
code/controllers/subsystems/ticker.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 3d1a056b9a1..87fe20dcc6c 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -2,6 +2,7 @@ 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
From f039a69d686131b57123095eac8f577891ff6d53 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 15:44:26 -0700
Subject: [PATCH 25/44] Update southern_cross_jobs_vr.dm
---
maps/southern_cross/southern_cross_jobs_vr.dm | 1 +
1 file changed, 1 insertion(+)
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
From 8dd44f788386b85c09e90e6e653144e0163e059a Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 15:54:49 -0700
Subject: [PATCH 26/44] Update jobs.dm
---
code/game/jobs/jobs.dm | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
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
)
From b333c906e9212dae17455c5f89e580d6f349b76b Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 16:19:19 -0700
Subject: [PATCH 27/44] Update ooc.dm
---
code/game/verbs/ooc.dm | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 3ec799c4008..4fc5f5aa07a 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -4,10 +4,11 @@
set category = "OOC"
if(say_disabled) //This is here to try to identify lag problems
- usr << "Speech is currently admin-disabled."
+ to_chat(src, "Speech is currently admin-disabled.")
return
- if(!mob) return
+ if(!mob)
+ return
if(IsGuestKey(key))
to_chat(src, "Guests may not use OOC.")
return
@@ -24,7 +25,7 @@
to_chat(src, "OOC is globally muted.")
return
if(!config_legacy.dooc_allowed && (mob.stat == DEAD))
- usr << "OOC for dead mobs has been turned off."
+ to_chat(src, "OOC for dead mobs has been turned off.")
return
if(prefs.muted & MUTE_OOC)
to_chat(src, "You cannot use OOC (muted).")
@@ -34,11 +35,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)
@@ -69,9 +65,9 @@
else
display_name = holder.fakekey
if(holder && !holder.fakekey && (holder.rights & R_ADMIN) && config_legacy.allow_admin_ooccolor && (src.prefs.ooccolor != initial(src.prefs.ooccolor))) // keeping this for the badmins
- target << "" + create_text_tag("ooc", "OOC:", target) + " [display_name]: [msg]"
+ to_chat(target, "" + create_text_tag("ooc", "OOC:", target) + " [display_name]: [msg]")
else
- target << "" + create_text_tag("ooc", "OOC:", target) + " [display_name]: [msg]"
+ to_chat(target, "" + create_text_tag("ooc", "OOC:", target) + " [display_name]: [msg]")
/client/verb/looc(msg as text)
set name = "LOOC"
@@ -79,7 +75,7 @@
set category = "OOC"
if(say_disabled) //This is here to try to identify lag problems
- usr << "Speech is currently admin-disabled."
+ to_chat(src, "Speech is currently admin-disabled.")
return
if(!mob)
@@ -102,7 +98,7 @@
to_chat(src, "LOOC is globally muted.")
return
if(!config_legacy.dooc_allowed && (mob.stat == DEAD))
- usr << "OOC for dead mobs has been turned off."
+ to_chat(usr, "OOC for dead mobs has been turned off.")
return
if(prefs.muted & MUTE_OOC)
to_chat(src, "You cannot use OOC (muted).")
@@ -160,12 +156,12 @@
if(target in admins)
admin_stuff += "/([key])"
- target << "" + create_text_tag("looc", "LOOC:", target) + " [display_name][admin_stuff]: [msg]"
+ to_chat(target, "" + create_text_tag("looc", "LOOC:", target) + " [display_name][admin_stuff]: [msg]")
for(var/client/target in r_receivers)
var/admin_stuff = "/([key])([admin_jump_link(mob, target.holder)])"
- target << "" + create_text_tag("looc", "LOOC:", target) + " (R)[display_name][admin_stuff]: [msg]"
+ to_chat(target, "" + create_text_tag("looc", "LOOC:", target) + " (R)[display_name][admin_stuff]: [msg]")
/mob/proc/get_looc_source()
return src
From 6fb6fdd26e4499b7b19dadd4157d104f1acd4752 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 16:56:05 -0700
Subject: [PATCH 28/44] kay
---
.../atmospherics}/_atmos_setup.dm | 0
.../atmospherics}/_atmospherics_helpers.dm | 0
.../atmospherics}/atmospherics.dm | 0
.../binary_devices/algae_generator_vr.dm | 0
.../binary_devices/binary_atmos_base.dm | 0
.../components/binary_devices/circulator.dm | 0
.../components/binary_devices/dp_vent_pump.dm | 0
.../components/binary_devices/passive_gate.dm | 0
.../binary_devices/passive_gate_vr.dm | 0
.../components/binary_devices/pipeturbine.dm | 0
.../components/binary_devices/pump.dm | 0
.../components/binary_devices/volume_pump.dm | 0
.../components/omni_devices/_omni_extras.dm | 0
.../components/omni_devices/filter.dm | 0
.../components/omni_devices/mixer.dm | 0
.../components/omni_devices/omni_base.dm | 0
.../components/portables_connector.dm | 0
.../components/trinary_devices/filter.dm | 0
.../components/trinary_devices/mixer.dm | 0
.../trinary_devices/trinary_base.dm | 0
.../atmospherics}/components/tvalve.dm | 0
.../components/unary/cold_sink.dm | 0
.../components/unary/generator_input.dm | 0
.../components/unary/heat_exchanger.dm | 0
.../components/unary/heat_source.dm | 0
.../components/unary/outlet_injector.dm | 0
.../components/unary/oxygen_generator.dm | 0
.../components/unary/unary_base.dm | 0
.../components/unary/vent_pump.dm | 0
.../components/unary/vent_scrubber.dm | 0
.../components/unary/vent_scrubber_vr.dm | 0
.../atmospherics}/components/valve.dm | 0
.../atmospherics}/datum_pipe_network.dm | 0
.../atmospherics}/datum_pipeline.dm | 0
.../atmospherics}/mainspipe.dm | 0
.../atmospherics}/pipes/cap.dm | 0
.../atmospherics}/pipes/he_pipes.dm | 0
.../atmospherics}/pipes/manifold.dm | 0
.../atmospherics}/pipes/manifold4w.dm | 0
.../atmospherics}/pipes/pipe_base.dm | 0
.../atmospherics}/pipes/simple.dm | 0
.../atmospherics}/pipes/tank.dm | 0
.../atmospherics}/pipes/universal.dm | 0
.../atmospherics}/pipes/vent.dm | 0
vorestation.dme | 88 +++++++++----------
45 files changed, 44 insertions(+), 44 deletions(-)
rename code/{ATMOSPHERICS => modules/atmospherics}/_atmos_setup.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/_atmospherics_helpers.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/atmospherics.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/algae_generator_vr.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/binary_atmos_base.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/circulator.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/dp_vent_pump.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/passive_gate.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/passive_gate_vr.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/pipeturbine.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/pump.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/binary_devices/volume_pump.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/omni_devices/_omni_extras.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/omni_devices/filter.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/omni_devices/mixer.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/omni_devices/omni_base.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/portables_connector.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/trinary_devices/filter.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/trinary_devices/mixer.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/trinary_devices/trinary_base.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/tvalve.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/cold_sink.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/generator_input.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/heat_exchanger.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/heat_source.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/outlet_injector.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/oxygen_generator.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/unary_base.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/vent_pump.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/vent_scrubber.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/unary/vent_scrubber_vr.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/components/valve.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/datum_pipe_network.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/datum_pipeline.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/mainspipe.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/cap.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/he_pipes.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/manifold.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/manifold4w.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/pipe_base.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/simple.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/tank.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/universal.dm (100%)
rename code/{ATMOSPHERICS => modules/atmospherics}/pipes/vent.dm (100%)
diff --git a/code/ATMOSPHERICS/_atmos_setup.dm b/code/modules/atmospherics/_atmos_setup.dm
similarity index 100%
rename from code/ATMOSPHERICS/_atmos_setup.dm
rename to code/modules/atmospherics/_atmos_setup.dm
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 100%
rename from code/ATMOSPHERICS/components/unary/vent_pump.dm
rename to code/modules/atmospherics/components/unary/vent_pump.dm
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/modules/atmospherics/components/unary/vent_scrubber.dm
similarity index 100%
rename from code/ATMOSPHERICS/components/unary/vent_scrubber.dm
rename to code/modules/atmospherics/components/unary/vent_scrubber.dm
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/vorestation.dme b/vorestation.dme
index acdfd63963a..40d5e87f22d 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -187,50 +187,50 @@
#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\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\controllers\autotransfer.dm"
#include "code\controllers\communications.dm"
#include "code\controllers\controller.dm"
From 59769921003c36118b55dc46fa17473b3ce7fee6 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 16:56:12 -0700
Subject: [PATCH 29/44] kay2
---
vorestation.dme | 88 ++++++++++++++++++++++++-------------------------
1 file changed, 44 insertions(+), 44 deletions(-)
diff --git a/vorestation.dme b/vorestation.dme
index 40d5e87f22d..decacfb4cde 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -187,50 +187,6 @@
#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\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\controllers\autotransfer.dm"
#include "code\controllers\communications.dm"
#include "code\controllers\controller.dm"
@@ -1584,6 +1540,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"
From 674deeaa4e13a0873ed141325b5942e256d1c8fd Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:02:16 -0700
Subject: [PATCH 30/44] Update weather_sounds.dm
---
code/datums/looping_sounds/weather_sounds.dm | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
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
From bf569f2913a04ac3e56c49cc296a6ae1ee41e7d3 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:06:34 -0700
Subject: [PATCH 31/44] groan
---
code/datums/autolathe/general.dm | 2 +-
code/datums/supplypacks/security.dm | 2 +-
code/game/machinery/vending_vr.dm | 4 +-
.../objects/items/devices/taperecorder.dm | 66 +++++++++----------
.../objects/items/weapons/storage/belt.dm | 6 +-
.../crates_lockers/closets/secure/medical.dm | 2 +-
.../crates_lockers/closets/secure/security.dm | 2 +-
code/modules/clothing/suits/armor.dm | 2 +-
code/modules/clothing/suits/jobs.dm | 4 +-
code/modules/clothing/suits/miscellaneous.dm | 2 +-
code/modules/clothing/suits/solgov.dm | 2 +-
code/modules/mining/abandonedcrates.dm | 2 +-
.../living/silicon/robot/drone/drone_items.dm | 2 +-
.../vore/fluffstuff/custom_clothes_vr.dm | 6 +-
14 files changed, 52 insertions(+), 52 deletions(-)
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/supplypacks/security.dm b/code/datums/supplypacks/security.dm
index 2b25d65625a..60c99ef15d6 100644
--- a/code/datums/supplypacks/security.dm
+++ b/code/datums/supplypacks/security.dm
@@ -366,7 +366,7 @@
/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,
diff --git a/code/game/machinery/vending_vr.dm b/code/game/machinery/vending_vr.dm
index 8375536b5cd..b6a344a42dd 100644
--- a/code/game/machinery/vending_vr.dm
+++ b/code/game/machinery/vending_vr.dm
@@ -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/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/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 45ca90158cb..2109358e54b 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -165,7 +165,7 @@
/obj/item/gun/energy/gun,
/obj/item/flame/lighter,
/obj/item/flashlight,
- /obj/item/taperecorder,
+ /obj/item/tape_recorder,
/obj/item/tape,
/obj/item/pda,
/obj/item/radio/headset,
@@ -188,7 +188,7 @@
storage_slots = 7
max_w_class = ITEMSIZE_NORMAL
can_hold = list(
- /obj/item/taperecorder,
+ /obj/item/tape_recorder,
/obj/item/tape,
/obj/item/clothing/glasses,
/obj/item/flashlight,
@@ -270,7 +270,7 @@
/obj/item/photo,
/obj/item/camera_film,
/obj/item/camera,
- /obj/item/taperecorder,
+ /obj/item/tape_recorder,
/obj/item/tape,
/obj/item/healthanalyzer,
/obj/item/geiger,
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..3dce76a354d 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -251,7 +251,7 @@
/obj/item/reagent_containers/pill/methylphenidate,
/obj/item/clipboard,
/obj/item/folder/white,
- /obj/item/taperecorder,
+ /obj/item/tape_recorder,
/obj/item/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..f3b55ff5432 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -278,7 +278,7 @@
/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)
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index e1c2dd1083a..7dcd4355c04 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/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 77ff08f90d1..1488095cb3b 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
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index ef262be622e..53fb023aae3 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..ccc1c64d49a 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/taperoll)
/obj/item/clothing/suit/storage/service/sifguard
name = "\improper SifGuard jacket"
diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm
index 5e99c6f19a4..6e793e8420e 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/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index 512a7d414f6..feb37054004 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -67,7 +67,7 @@
/obj/item/pen,
/obj/item/sample,
/obj/item/forensics/sample_kit,
- /obj/item/taperecorder,
+ /obj/item/tape_recorder,
/obj/item/tape,
/obj/item/uv_light
)
diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm
index b6cddcf26bb..1377af26922 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
From 2ed2e4affa04742f53498de090436761aae00b54 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:10:17 -0700
Subject: [PATCH 32/44] sigh
---
code/datums/supplypacks/recreation_vr.dm | 2 +-
code/datums/supplypacks/supply.dm | 4 ++--
code/game/objects/items/stacks/rods.dm | 2 +-
.../objects/items/weapons/storage/belt.dm | 2 +-
code/game/objects/items/weapons/tape.dm | 24 +++++++++----------
code/game/objects/random/misc.dm | 2 +-
code/game/objects/random/random.dm | 2 +-
.../organs/internal/augment/armmounted.dm | 2 +-
code/modules/paperwork/paper.dm | 4 ++--
code/modules/paperwork/paper_bundle.dm | 2 +-
.../guns/magnetic/magnetic_construction.dm | 2 +-
code/modules/surgery/external_repair.dm | 12 +++++-----
code/modules/surgery/neck.dm | 2 +-
13 files changed, 31 insertions(+), 31 deletions(-)
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/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/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/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 2109358e54b..851ee1bd719 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -65,7 +65,7 @@
/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
)
diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm
index 27570419117..d0464e30c25 100644
--- a/code/game/objects/items/weapons/tape.dm
+++ b/code/game/objects/items/weapons/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/random/misc.dm b/code/game/objects/random/misc.dm
index 18fadb7f175..b83c5e167cd 100644
--- a/code/game/objects/random/misc.dm
+++ b/code/game/objects/random/misc.dm
@@ -128,7 +128,7 @@
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/duct_tape_roll,
prob(2);/obj/item/taperoll/engineering,
prob(1);/obj/item/taperoll/atmos,
prob(1);/obj/item/flashlight/maglight)
diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm
index 1fc096afb8e..aa278e7082d 100644
--- a/code/game/objects/random/random.dm
+++ b/code/game/objects/random/random.dm
@@ -156,7 +156,7 @@
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/duct_tape_roll,
prob(2);/obj/item/taperoll/engineering,
prob(1);/obj/item/taperoll/atmos,
prob(1);/obj/item/flashlight/maglight)
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/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 6b776565b38..8d199b7c98b 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 1e4ef5147b9..82b6bfad16a 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -44,7 +44,7 @@
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/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/surgery/external_repair.dm b/code/modules/surgery/external_repair.dm
index 98befb4b635..0f03debd99c 100644
--- a/code/modules/surgery/external_repair.dm
+++ b/code/modules/surgery/external_repair.dm
@@ -90,7 +90,7 @@
/obj/item/surgical/FixOVein = 100,
/obj/item/surgical/hemostat = 60,
/obj/item/stack/medical/ointment = 50,
- /obj/item/tape_roll = 30,
+ /obj/item/duct_tape_roll = 30,
/obj/item/taperoll = 10
)
@@ -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/taperoll))
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/taperoll))
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,7 +158,7 @@
/obj/item/surgical/cautery = 100,
/obj/item/surgical/bonesetter = 60,
/obj/item/stack/medical/bruise_pack = 50,
- /obj/item/tape_roll = 40,
+ /obj/item/duct_tape_roll = 40,
/obj/item/taperoll = 10
)
@@ -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/taperoll))
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/taperoll))
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
From e800d3ca9d6fba6f6f4209ecd07d27415b7cc15a Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:12:15 -0700
Subject: [PATCH 33/44] barrier tape
---
code/datums/supplypacks/security.dm | 6 ++---
code/game/machinery/doors/airlock.dm | 2 +-
code/game/machinery/doors/firedoor.dm | 2 +-
code/game/machinery/vending_vr.dm | 2 +-
code/game/objects/items/weapons/policetape.dm | 26 +++++++++----------
.../objects/items/weapons/storage/belt.dm | 12 ++++-----
code/game/objects/random/misc.dm | 4 +--
code/game/objects/random/random.dm | 4 +--
.../closets/secure/engineering.dm | 6 ++---
.../crates_lockers/closets/secure/medical.dm | 4 +--
.../crates_lockers/closets/secure/security.dm | 8 +++---
.../closets/secure/security_vr.dm | 8 +++---
code/modules/clothing/suits/hooded.dm | 2 +-
code/modules/clothing/suits/jobs.dm | 2 +-
code/modules/clothing/suits/solgov.dm | 2 +-
.../robot_modules/station/engineering.dm | 4 +--
.../robot/robot_modules/station/security.dm | 6 ++---
code/modules/surgery/external_repair.dm | 12 ++++-----
maps/northern_star/polaris-1.dmm | 2 +-
maps/northern_star/polaris-2.dmm | 24 ++++++++---------
maps/southern_cross/southern_cross-6.dmm | 26 +++++++++----------
.../structures/closets/engineering.dm | 2 +-
.../southern_cross/structures/closets/misc.dm | 2 +-
.../structures/closets/misc_vr.dm | 2 +-
.../mountains/quarantineshuttle.dmm | 2 +-
maps/tether/tether-01-surface1.dmm | 2 +-
maps/tether/tether-02-surface2.dmm | 2 +-
maps/tether/tether-05-station1.dmm | 2 +-
maps/tether/tether-06-station2.dmm | 2 +-
maps/tether/tether-10-colony.dmm | 24 ++++++++---------
maps/virgo/virgo-1.dmm | 2 +-
maps/virgo/virgo-2.dmm | 24 ++++++++---------
.../crates_lockers/closets/secure/security.dm | 2 +-
33 files changed, 116 insertions(+), 116 deletions(-)
diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm
index 60c99ef15d6..9b3cc3b1075 100644
--- a/code/datums/supplypacks/security.dm
+++ b/code/datums/supplypacks/security.dm
@@ -359,7 +359,7 @@
/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,
@@ -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/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/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/vending_vr.dm b/code/game/machinery/vending_vr.dm
index b6a344a42dd..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)
..()
diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm
index 8fffeb9c628..59828c8e140 100644
--- a/code/game/objects/items/weapons/policetape.dm
+++ b/code/game/objects/items/weapons/policetape.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"
@@ -14,7 +14,7 @@
var/apply_tape = FALSE
-/obj/item/taperoll/Initialize()
+/obj/item/barrier_tape_roll/Initialize()
. = ..()
if(apply_tape)
var/turf/T = get_turf(src)
@@ -62,7 +62,7 @@ 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
@@ -74,7 +74,7 @@ var/list/tape_roll_applications = list()
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
@@ -86,13 +86,13 @@ var/list/tape_roll_applications = list()
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
color = COLOR_YELLOW
-/obj/item/taperoll/engineering/applied
+/obj/item/barrier_tape_roll/engineering/applied
apply_tape = TRUE
/obj/item/tape/engineering
@@ -101,7 +101,7 @@ var/list/tape_roll_applications = list()
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
@@ -113,7 +113,7 @@ var/list/tape_roll_applications = list()
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].")
@@ -280,7 +280,7 @@ 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
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 851ee1bd719..8253b99c569 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -58,7 +58,7 @@
/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,
@@ -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,
@@ -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
)
@@ -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,
@@ -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/random/misc.dm b/code/game/objects/random/misc.dm
index b83c5e167cd..82d3c7d6ba5 100644
--- a/code/game/objects/random/misc.dm
+++ b/code/game/objects/random/misc.dm
@@ -129,8 +129,8 @@
prob(1);/obj/item/storage/belt/utility/full,
prob(5);/obj/random/tool,
prob(2);/obj/item/duct_tape_roll,
- prob(2);/obj/item/taperoll/engineering,
- prob(1);/obj/item/taperoll/atmos,
+ 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 aa278e7082d..7d1c5db24bb 100644
--- a/code/game/objects/random/random.dm
+++ b/code/game/objects/random/random.dm
@@ -157,8 +157,8 @@
prob(1);/obj/item/storage/belt/utility/full,
prob(5);/obj/random/tool,
prob(2);/obj/item/duct_tape_roll,
- prob(2);/obj/item/taperoll/engineering,
- prob(1);/obj/item/taperoll/atmos,
+ 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/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 3dce76a354d..23725ab7da9 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,
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 f3b55ff5432..0e3eb940556 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,7 +273,7 @@
/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,
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/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 1488095cb3b..aa7811e3954 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -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/solgov.dm b/code/modules/clothing/suits/solgov.dm
index ccc1c64d49a..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/tape_recorder,/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/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/surgery/external_repair.dm b/code/modules/surgery/external_repair.dm
index 0f03debd99c..5cb25b56370 100644
--- a/code/modules/surgery/external_repair.dm
+++ b/code/modules/surgery/external_repair.dm
@@ -91,7 +91,7 @@
/obj/item/surgical/hemostat = 60,
/obj/item/stack/medical/ointment = 50,
/obj/item/duct_tape_roll = 30,
- /obj/item/taperoll = 10
+ /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/duct_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/duct_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)
@@ -159,7 +159,7 @@
/obj/item/surgical/bonesetter = 60,
/obj/item/stack/medical/bruise_pack = 50,
/obj/item/duct_tape_roll = 40,
- /obj/item/taperoll = 10
+ /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/duct_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/duct_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/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/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/quarantineshuttle.dmm b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
index 2ee554763d4..06099ff7837 100644
--- a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
+++ b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
@@ -734,7 +734,7 @@
/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" = (
diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm
index 417a63858e3..1fefc817aaa 100644
--- a/maps/tether/tether-01-surface1.dmm
+++ b/maps/tether/tether-01-surface1.dmm
@@ -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,
diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm
index 0d08067cdd9..398824ffb8e 100644
--- a/maps/tether/tether-02-surface2.dmm
+++ b/maps/tether/tether-02-surface2.dmm
@@ -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,
diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm
index 725cde67036..efaf9fc531d 100644
--- a/maps/tether/tether-05-station1.dmm
+++ b/maps/tether/tether-05-station1.dmm
@@ -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" = (
diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm
index 500b58a2504..697e10fb79d 100644
--- a/maps/tether/tether-06-station2.dmm
+++ b/maps/tether/tether-06-station2.dmm
@@ -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-10-colony.dmm b/maps/tether/tether-10-colony.dmm
index 25c658754b0..2486868d7b6 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"
},
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,
From e7381f1d04d11e294b4c5ee6aace54cb3af404d6 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:14:02 -0700
Subject: [PATCH 34/44] sigh
---
.../{policetape.dm => barrier_tape.dm} | 60 +++++++++----------
.../items/weapons/{tape.dm => duct_tape.dm} | 0
2 files changed, 30 insertions(+), 30 deletions(-)
rename code/game/objects/items/weapons/{policetape.dm => barrier_tape.dm} (86%)
rename code/game/objects/items/weapons/{tape.dm => duct_tape.dm} (100%)
diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/barrier_tape.dm
similarity index 86%
rename from code/game/objects/items/weapons/policetape.dm
rename to code/game/objects/items/weapons/barrier_tape.dm
index 59828c8e140..35e52d8e49d 100644
--- a/code/game/objects/items/weapons/policetape.dm
+++ b/code/game/objects/items/weapons/barrier_tape.dm
@@ -9,7 +9,7 @@
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
@@ -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()
@@ -65,10 +65,10 @@ var/list/tape_roll_applications = list()
/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)
@@ -77,10 +77,10 @@ var/list/tape_roll_applications = list()
/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)
@@ -89,13 +89,13 @@ var/list/tape_roll_applications = list()
/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/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)
@@ -104,10 +104,10 @@ var/list/tape_roll_applications = list()
/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)
@@ -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)
@@ -286,10 +286,10 @@ var/list/tape_roll_applications = list()
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 100%
rename from code/game/objects/items/weapons/tape.dm
rename to code/game/objects/items/weapons/duct_tape.dm
From b0bc031902e75bfd3be5c2ac7e1aa95fb773d97a Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:17:22 -0700
Subject: [PATCH 35/44] k
---
code/__DEFINES/atmospherics.dm | 9 +++++++++
code/modules/atmospherics/_atmos_setup.dm | 8 --------
vorestation.dme | 1 +
3 files changed, 10 insertions(+), 8 deletions(-)
create mode 100644 code/__DEFINES/atmospherics.dm
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/modules/atmospherics/_atmos_setup.dm b/code/modules/atmospherics/_atmos_setup.dm
index 6af102cf384..dcd4c891de9 100644
--- a/code/modules/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/vorestation.dme b/vorestation.dme
index decacfb4cde..33a67d65600 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"
From 90292a5c58ed7898c4f23602a24eafefd73643dd Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:20:46 -0700
Subject: [PATCH 36/44] repath
---
code/game/objects/items/weapons/storage/belt.dm | 6 +++---
code/game/objects/items/weapons/storage/wallets.dm | 2 +-
.../structures/crates_lockers/closets/job_closets.dm | 2 +-
.../structures/crates_lockers/closets/secure/medical.dm | 2 +-
.../structures/crates_lockers/closets/secure/security.dm | 2 +-
code/modules/mob/living/silicon/robot/drone/drone_items.dm | 2 +-
vorestation.dme | 4 ++--
7 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 8253b99c569..fd8b50af45c 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -166,7 +166,7 @@
/obj/item/flame/lighter,
/obj/item/flashlight,
/obj/item/tape_recorder,
- /obj/item/tape,
+ /obj/item/barrier_tape_roll,
/obj/item/pda,
/obj/item/radio/headset,
/obj/item/clothing/gloves,
@@ -189,7 +189,7 @@
max_w_class = ITEMSIZE_NORMAL
can_hold = list(
/obj/item/tape_recorder,
- /obj/item/tape,
+ /obj/item/barrier_tape_roll,
/obj/item/clothing/glasses,
/obj/item/flashlight,
/obj/item/cell/device,
@@ -271,7 +271,7 @@
/obj/item/camera_film,
/obj/item/camera,
/obj/item/tape_recorder,
- /obj/item/tape,
+ /obj/item/barrier_tape_roll,
/obj/item/healthanalyzer,
/obj/item/geiger,
/obj/item/gps,
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/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/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 23725ab7da9..5e60b2a3537 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -252,7 +252,7 @@
/obj/item/clipboard,
/obj/item/folder/white,
/obj/item/tape_recorder,
- /obj/item/tape/random = 3,
+ /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 0e3eb940556..ae481c4e17e 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -280,7 +280,7 @@
/obj/item/storage/briefcase/crimekit,
/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/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index feb37054004..443ff8050d4 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -68,7 +68,7 @@
/obj/item/sample,
/obj/item/forensics/sample_kit,
/obj/item/tape_recorder,
- /obj/item/tape,
+ /obj/item/barrier_tape_roll,
/obj/item/uv_light
)
diff --git a/vorestation.dme b/vorestation.dme
index acdfd63963a..008e6beb87c 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1103,6 +1103,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 +1111,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 +1126,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 +1136,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"
From 2ad137efaa7cd6fcbde4e95025fb05ead5715337 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 17:25:06 -0700
Subject: [PATCH 37/44] ok
---
maps/tether/tether-01-surface1.dmm | 16 ++++++++--------
maps/tether/tether-02-surface2.dmm | 8 ++++----
maps/tether/tether-03-surface3.dmm | 8 ++++----
maps/tether/tether-05-station1.dmm | 6 +++---
maps/tether/tether-06-station2.dmm | 2 +-
maps/tether/tether-07-station3.dmm | 16 ++++++++--------
maps/tether/tether-10-colony.dmm | 10 +++++-----
7 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm
index 1fefc817aaa..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
},
@@ -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 398824ffb8e..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{
@@ -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 efaf9fc531d..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" = (
@@ -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 697e10fb79d..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
},
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 2486868d7b6..828308a0c61 100644
--- a/maps/tether/tether-10-colony.dmm
+++ b/maps/tether/tether-10-colony.dmm
@@ -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{
From 3e1e16b872700880937d50f5554fb2bac354b98c Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 18:08:03 -0700
Subject: [PATCH 38/44] fix
---
.../submaps/surface_submaps/mountains/prepper1.dmm | 2 +-
.../mountains/quarantineshuttle.dmm | 14 +++++++-------
maps/submaps/surface_submaps/plains/Boathouse.dmm | 2 +-
3 files changed, 9 insertions(+), 9 deletions(-)
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 06099ff7837..74c6434761f 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
@@ -728,7 +728,7 @@
/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,
@@ -738,18 +738,18 @@
/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)
From 903e62691610fe6ec94b20550a543bee0b007933 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 19:22:34 -0700
Subject: [PATCH 39/44] ok
---
maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
index 74c6434761f..48e95291d62 100644
--- a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
+++ b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm
@@ -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" = (
From 3129a20015ac885371a5940bfbd333a8412ff75d Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Mon, 13 Apr 2020 23:33:04 -0500
Subject: [PATCH 40/44] Automatic changelog generation for PR #1841 [ci skip]
---
html/changelogs/AutoChangeLog-pr-1841.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-1841.yml
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"
From 804c14a3f1f930c6273fe80930a50b6491917a67 Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Mon, 13 Apr 2020 23:33:13 -0500
Subject: [PATCH 41/44] Automatic changelog generation for PR #1842 [ci skip]
---
html/changelogs/AutoChangeLog-pr-1842.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-1842.yml
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"
From a1135b315dcc9e053446dba2468277c4e8fa9e4f Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Mon, 13 Apr 2020 23:33:26 -0500
Subject: [PATCH 42/44] Automatic changelog generation for PR #1845 [ci skip]
---
html/changelogs/AutoChangeLog-pr-1845.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-1845.yml
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"
From 4cc7e4311dd3b38e7db539c1d74d7bc42b03a19e Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 13 Apr 2020 21:48:56 -0700
Subject: [PATCH 43/44] dme fix
---
vorestation.dme | 1 -
1 file changed, 1 deletion(-)
diff --git a/vorestation.dme b/vorestation.dme
index b9874c0555a..7fdc05aaf0c 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -188,7 +188,6 @@
#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\controllers\autotransfer.dm"
#include "code\controllers\communications.dm"
#include "code\controllers\controller.dm"
#include "code\controllers\failsafe.dm"
From b86b769946971b2d53adb8cee606a15ea4f3adbf Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Mon, 13 Apr 2020 23:56:30 -0500
Subject: [PATCH 44/44] Automatic changelog generation for PR #1844 [ci skip]
---
html/changelogs/AutoChangeLog-pr-1844.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-1844.yml
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"