From 79ac3d877ada90cb04e6850d4f989db8752bd340 Mon Sep 17 00:00:00 2001 From: monster860 Date: Mon, 21 Dec 2015 12:09:50 -0500 Subject: [PATCH] Adds the ability to compile to all telecomms servers at the same time --- .../machinery/telecomms/traffic_control.dm | 63 ++++++++++++++++--- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index 878f39b0394..d484fd144fd 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -2,6 +2,7 @@ name = "telecommunications traffic control" var/screen = 0 // the screen number: + var/allservers = 0 // Are all servers being edited at the same time? var/list/servers = list() // the servers located by the computer var/mob/editingcode var/mob/lasteditor @@ -43,6 +44,7 @@ dat += "
Detected Telecommunication Servers:" dat += "
\[Flush Buffer\]" @@ -54,13 +56,19 @@ dat += "
[temp]
" dat += "
\[Main Menu\] \[Refresh\]
" dat += "
Current Network: [network]" - dat += "
Selected Server: [SelectedServer.id]

" + if(allservers) + dat += "
Selected Server: All Servers

" + else + dat += "
Selected Server: [SelectedServer.id]

" dat += "
\[Edit Code\]" dat += "
Signal Execution: " - if(SelectedServer.autoruncode) - dat += "ALWAYS" + if(allservers) + dat += "ALWAYS NEVER" else - dat += "NEVER" + if(SelectedServer.autoruncode) + dat += "ALWAYS" + else + dat += "NEVER" if(screen == 2) //code editor if(editingcode == user) @@ -213,6 +221,26 @@ compiling_errors += "(0 errors)" updateUsrDialog() + if(allservers) + spawn(0) + compiling_errors = "Please wait, compiling..." + updateUsrDialog() + + for(var/obj/machinery/telecomms/server/Server in servers) + Server.setcode(code) + var/list/compileerrors = Server.compile(user) + if(!telecomms_check(user)) + return + if(compileerrors.len) + compiling_errors = "Compile Errors
" + for(var/datum/scriptError/e in compileerrors) + compiling_errors += "\t>[e.message]
" + compiling_errors += "([compileerrors.len] errors)" + updateUsrDialog() + return // If there are errors, don't waste time compiling on other servers + compiling_errors = "TCS compilation successful!
" + compiling_errors += "(0 errors)" + updateUsrDialog() if("Clear") if(!telecomms_check(user) || user != editingcode) @@ -225,13 +253,24 @@ compiling_errors = "Server Memory Cleared!" storedcode = null updateUsrDialog() + if(allservers) + for(var/obj/machinery/telecomms/server/Server in servers) + Server.memory = list() // clear the memory + + compiling_errors = "Server Memory Cleared!" + storedcode = null + updateUsrDialog() if(href_list["viewserver"]) screen = 1 - for(var/obj/machinery/telecomms/T in servers) - if(T.id == href_list["viewserver"]) - SelectedServer = T - break + if(href_list["viewserver"] == "all") + allservers = 1 + else + allservers = 0 + for(var/obj/machinery/telecomms/T in servers) + if(T.id == href_list["viewserver"]) + SelectedServer = T + break if(href_list["operation"]) switch(href_list["operation"]) @@ -244,7 +283,7 @@ screen = 0 if("codeback") - if(SelectedServer) + if(allservers || SelectedServer) screen = 1 if("scan") @@ -268,6 +307,12 @@ if("togglerun") SelectedServer.autoruncode = !(SelectedServer.autoruncode) + if("runon") + for(var/obj/machinery/telecomms/server/Server in servers) + Server.autoruncode = 1 + if("runoff") + for(var/obj/machinery/telecomms/server/Server in servers) + Server.autoruncode = 0 if(href_list["network"])