diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 575a3276e33..81b3038c357 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -184,7 +184,7 @@ var/global/datum/controller/gameticker/ticker feedback_set_details("end_proper","proper completion") world << "\blue Restarting in [restart_timeout/10] seconds" - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index f2647e45b2e..63e83c5d219 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -38,7 +38,7 @@ world << "Rebooting world in 5 seconds." feedback_set_details("end_error","malf - no AI") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() sleep(50) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index aaef8e49071..e6880eb09a7 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -207,7 +207,7 @@ world << "Resetting in 30 seconds!" feedback_set_details("end_error","nuke - unhandled ending") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() sleep(300) diff --git a/code/game/vote.dm b/code/game/vote.dm index 9ba927775bf..16eee1c5636 100644 --- a/code/game/vote.dm +++ b/code/game/vote.dm @@ -78,7 +78,7 @@ world <<"\red World will reboot in 10 seconds" feedback_set_details("end_error","mode vote - [winner]") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() @@ -99,7 +99,7 @@ world <<"\red World will reboot in 5 seconds" feedback_set_details("end_error","restart vote") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 8a274ded53d..f2f32357d05 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -2233,7 +2233,7 @@ log_admin("[key_name(usr)] initiated a reboot.") feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() @@ -2395,7 +2395,7 @@ log_admin("[key_name(usr)] initiated an immediate reboot.") feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index c6541a31a95..de04d7dc74c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -115,7 +115,7 @@ world << "Everyone is dead! Resetting in 30 seconds!" feedback_set_details("end_error","no live players") - feedback_set_details("round_end","[time2text(world.realtime)]") + if(blackbox) blackbox.save_all_data_to_sql() diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index be79f1aaf4f..d7acdbc71e9 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -132,19 +132,19 @@ var/obj/machinery/blackbox_recorder/blackbox use_power = 1 idle_power_usage = 10 active_power_usage = 100 - var/messages = list() - var/messages_admin = list() + var/list/messages = list() //Stores messages of non-standard frequencies + var/list/messages_admin = list() - var/msg_common = list() - var/msg_science = list() - var/msg_command = list() - var/msg_medical = list() - var/msg_engineering = list() - var/msg_security = list() - var/msg_deathsquad = list() - var/msg_syndicate = list() - var/msg_mining = list() - var/msg_cargo = list() + var/list/msg_common = list() + var/list/msg_science = list() + var/list/msg_command = list() + var/list/msg_medical = list() + var/list/msg_engineering = list() + var/list/msg_security = list() + var/list/msg_deathsquad = list() + var/list/msg_syndicate = list() + var/list/msg_mining = list() + var/list/msg_cargo = list() var/list/datum/feedback_variable/feedback = new() @@ -188,10 +188,43 @@ var/obj/machinery/blackbox_recorder/blackbox proc/get_round_feedback() return feedback + proc/round_end_data_gathering() + + var/pda_msg_amt = 0 + var/rc_msg_amt = 0 + + for(var/obj/machinery/message_server/MS in world) + if(MS.pda_msgs.len > pda_msg_amt) + pda_msg_amt = MS.pda_msgs.len + if(MS.rc_msgs.len > rc_msg_amt) + rc_msg_amt = MS.rc_msgs.len + + feedback_set_details("radio_usage","") + + feedback_add_details("radio_usage","COM-[msg_common.len]") + feedback_add_details("radio_usage","SCI-[msg_science.len]") + feedback_add_details("radio_usage","HEA-[msg_command.len]") + feedback_add_details("radio_usage","MED-[msg_medical.len]") + feedback_add_details("radio_usage","ENG-[msg_engineering.len]") + feedback_add_details("radio_usage","SEC-[msg_security.len]") + feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") + feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") + feedback_add_details("radio_usage","MIN-[msg_mining.len]") + feedback_add_details("radio_usage","CAR-[msg_cargo.len]") + feedback_add_details("radio_usage","OTH-[messages.len]") + feedback_add_details("radio_usage","PDA-[pda_msg_amt]") + feedback_add_details("radio_usage","RC-[rc_msg_amt]") + + + feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. + + //This proc is only to be called at round end. proc/save_all_data_to_sql() if(!feedback) return + round_end_data_gathering() //round_end time logging and some other data processing + var/user = sqlfdbklogin var/pass = sqlfdbkpass var/db = sqlfdbkdb diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 9f14937c66f..c2420d4dc71 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -2737,7 +2737,7 @@ "baG" = (/turf/simulated/floor/plating,/area/maintenance/asmaint2) "baH" = (/obj/machinery/camera{c_tag = "Arrivals Auxiliary Docking"; dir = 8; network = "SS13"},/turf/simulated/floor,/area/hallway/secondary/entry) "baI" = (/obj/machinery/door_control{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4},/obj/machinery/driver_button{id = "trash"; pixel_x = -26; pixel_y = -6},/turf/simulated/floor/plating,/area/maintenance/disposal) -"baJ" = (/obj/machinery/conveyor_switch{id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) +"baJ" = (/obj/machinery/conveyor_switch/oneway{id = "garbage"; name = "disposal coveyor"},/turf/simulated/floor/plating,/area/maintenance/disposal) "baK" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) "baL" = (/obj/effect/decal/cleanable/oil,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/power/apc{dir = 4; name = "Disposal APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) "baM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) @@ -8269,7 +8269,7 @@ "dda" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/lobby) "ddb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/mine/lobby) "ddc" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/lobby) -"ddd" = (/obj/machinery/conveyor_switch{id = "mining_internal"},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Airlock"; dir = 8; network = "MINE"},/turf/simulated/floor,/area/mine/lobby) +"ddd" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Airlock"; dir = 8; network = "MINE"},/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining convayor"},/turf/simulated/floor,/area/mine/lobby) "dde" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) "ddf" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "ddg" = (/obj/machinery/camera{c_tag = "Station External West"; network = "MINE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)