diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 0ef24fc0a81..e1b7f2e04cd 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -96,6 +96,9 @@ /datum/config_entry/flag/log_shuttle // log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console +/// Whether demos are written, if not set demo SS never initializes +/datum/config_entry/flag/demos_enabled + /datum/config_entry/flag/allow_admin_ooccolor // Allows admins with relevant permissions to have their own ooc colour /datum/config_entry/flag/allow_admin_asaycolor //Allows admins with relevant permissions to have a personalized asay color diff --git a/code/controllers/subsystem/demo.dm b/code/controllers/subsystem/demo.dm index cff81fffc00..e48c100c35d 100644 --- a/code/controllers/subsystem/demo.dm +++ b/code/controllers/subsystem/demo.dm @@ -61,6 +61,14 @@ SUBSYSTEM_DEF(demo) last_chat_message = text /datum/controller/subsystem/demo/Initialize() + if(!CONFIG_GET(flag/demos_enabled)) + flags |= SS_NO_FIRE + can_fire = FALSE + marked_dirty.Cut() + marked_new.Cut() + marked_turfs.Cut() + return ..() + WRITE_LOG_NO_FORMAT(GLOB.demo_log, "demo version 1\n") // increment this if you change the format if(GLOB.revdata) WRITE_LOG_NO_FORMAT(GLOB.demo_log, "commit [GLOB.revdata.originmastercommit || GLOB.revdata.commit]\n") @@ -394,11 +402,15 @@ SUBSYSTEM_DEF(demo) ..(msg) /datum/controller/subsystem/demo/proc/mark_turf(turf/T) + if(!can_fire) + return if(!isturf(T)) return marked_turfs[T] = TRUE /datum/controller/subsystem/demo/proc/mark_new(atom/movable/M) + if(!can_fire) + return if(!isobj(M) && !ismob(M)) return if(M.gc_destroyed) @@ -409,6 +421,8 @@ SUBSYSTEM_DEF(demo) // I can't wait for when TG ports this and they make this a #define macro. /datum/controller/subsystem/demo/proc/mark_dirty(atom/movable/M) + if(!can_fire) + return if(!isobj(M) && !ismob(M)) return if(M.gc_destroyed) @@ -417,6 +431,8 @@ SUBSYSTEM_DEF(demo) marked_dirty[M] = TRUE /datum/controller/subsystem/demo/proc/mark_destroyed(atom/movable/M) + if(!can_fire) + return if(!isobj(M) && !ismob(M)) return if(marked_new[M]) diff --git a/config/admins.txt b/config/admins.txt index 4d345dbc0bb..799bed92f90 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -141,3 +141,4 @@ Skoglol = Game Master 4dplanner = Game Master Time-Green = Game Master StyleMistake = Game Master +actioninja = Game Master diff --git a/config/config.txt b/config/config.txt index 5284febf00a..e074abda4f7 100644 --- a/config/config.txt +++ b/config/config.txt @@ -143,9 +143,12 @@ LOG_VIRUS ## log cloning actions LOG_CLONING -# log shuttle actions +## log shuttle actions LOG_SHUTTLE +## Enable the demo subsystem +# DEMOS_ENABLED + ##Log camera pictures - Must have picture logging enabled PICTURE_LOGGING_CAMERA