diff --git a/code/modules/modular_computers/computers/item/laptop_presets.dm b/code/modules/modular_computers/computers/item/laptop_presets.dm
index 7a2697ab12e..6ae8d1346ee 100644
--- a/code/modules/modular_computers/computers/item/laptop_presets.dm
+++ b/code/modules/modular_computers/computers/item/laptop_presets.dm
@@ -20,4 +20,3 @@
/obj/item/modular_computer/laptop/preset/civillian/install_programs()
var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD]
hard_drive.store_file(new/datum/computer_file/program/chatclient())
- hard_drive.store_file(new/datum/computer_file/program/nttransfer())
diff --git a/code/modules/modular_computers/computers/machinery/console_presets.dm b/code/modules/modular_computers/computers/machinery/console_presets.dm
index d2465cf85bc..8c6def18e05 100644
--- a/code/modules/modular_computers/computers/machinery/console_presets.dm
+++ b/code/modules/modular_computers/computers/machinery/console_presets.dm
@@ -49,7 +49,6 @@
/obj/machinery/modular_computer/console/preset/research/install_programs()
var/obj/item/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD]
hard_drive.store_file(new/datum/computer_file/program/ntnetmonitor())
- hard_drive.store_file(new/datum/computer_file/program/nttransfer())
hard_drive.store_file(new/datum/computer_file/program/chatclient())
hard_drive.store_file(new/datum/computer_file/program/aidiag())
@@ -76,5 +75,4 @@
/obj/machinery/modular_computer/console/preset/civilian/install_programs()
var/obj/item/computer_hardware/hard_drive/hard_drive = cpu.all_components[MC_HDD]
hard_drive.store_file(new/datum/computer_file/program/chatclient())
- hard_drive.store_file(new/datum/computer_file/program/nttransfer())
hard_drive.store_file(new/datum/computer_file/program/arcade())
diff --git a/code/modules/modular_computers/file_system/computer_file.dm b/code/modules/modular_computers/file_system/computer_file.dm
index 2e2aa8e9eb3..4e862c4ae35 100644
--- a/code/modules/modular_computers/file_system/computer_file.dm
+++ b/code/modules/modular_computers/file_system/computer_file.dm
@@ -3,8 +3,8 @@
var/filetype = "XXX" // File full names are [filename].[filetype] so like NewFile.XXX in this case
var/size = 1 // File size in GQ. Integers only!
var/obj/item/computer_hardware/hard_drive/holder // Holder that contains this file.
- var/unsendable = 0 // Whether the file may be sent to someone via NTNet transfer or other means.
- var/undeletable = 0 // Whether the file may be deleted. Setting to 1 prevents deletion/renaming/etc.
+ var/unsendable = FALSE // Whether the file may be sent to someone via NTNet transfer or other means.
+ var/undeletable = FALSE // Whether the file may be deleted. Setting to TRUE prevents deletion/renaming/etc.
var/uid // UID of this file
var/static/file_uid = 0
@@ -24,7 +24,7 @@
return ..()
// Returns independent copy of this file.
-/datum/computer_file/proc/clone(rename = 0)
+/datum/computer_file/proc/clone(rename = FALSE)
var/datum/computer_file/temp = new type
temp.unsendable = unsendable
temp.undeletable = undeletable
diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm
index 4a40b3cf86e..af1d88fb80b 100644
--- a/code/modules/modular_computers/file_system/programs/airestorer.dm
+++ b/code/modules/modular_computers/file_system/programs/airestorer.dm
@@ -4,12 +4,12 @@
program_icon_state = "generic"
extended_desc = "This program is capable of reconstructing damaged AI systems. Requires direct AI connection via intellicard slot."
size = 12
- requires_ntnet = 0
+ requires_ntnet = FALSE
usage_flags = PROGRAM_CONSOLE
transfer_access = ACCESS_HEADS
- available_on_ntnet = 1
+ available_on_ntnet = TRUE
tgui_id = "ntos_ai_restorer"
- ui_x = 600
+ ui_x = 370
ui_y = 400
var/restoring = FALSE
@@ -30,11 +30,11 @@
if(ai_slot.stored_card.AI)
return ai_slot.stored_card.AI
- return null
+ return
/datum/computer_file/program/aidiag/ui_act(action, params)
if(..())
- return TRUE
+ return
var/mob/living/silicon/ai/A = get_ai()
if(!A)
@@ -54,7 +54,7 @@
return TRUE
/datum/computer_file/program/aidiag/process_tick()
- ..()
+ . = ..()
if(!restoring) //Put the check here so we don't check for an ai all the time
return
var/obj/item/aicard/cardhold = get_ai(2)
@@ -91,9 +91,7 @@
/datum/computer_file/program/aidiag/ui_data(mob/user)
var/list/data = get_header_data()
- var/mob/living/silicon/ai/AI
- // A shortcut for getting the AI stored inside the computer. The program already does necessary checks.
- AI = get_ai()
+ var/mob/living/silicon/ai/AI = get_ai()
var/obj/item/aicard/aicard = get_ai(2)
@@ -119,4 +117,4 @@
/datum/computer_file/program/aidiag/kill_program(forced)
restoring = FALSE
- return ..(forced)
+ return ..()
diff --git a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm
index 140b9d30f7a..004b86ef81d 100644
--- a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm
+++ b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm
@@ -4,9 +4,9 @@
program_icon_state = "hostile"
extended_desc = "This advanced script can perform denial of service attacks against NTNet quantum relays. The system administrator will probably notice this. Multiple devices can run this program together against same relay for increased effect"
size = 20
- requires_ntnet = 1
- available_on_ntnet = 0
- available_on_syndinet = 1
+ requires_ntnet = TRUE
+ available_on_ntnet = FALSE
+ available_on_syndinet = TRUE
tgui_id = "ntos_net_dos"
ui_x = 400
ui_y = 250
@@ -36,61 +36,52 @@
if(target)
target.dos_sources.Remove(src)
target = null
- executed = 0
+ executed = FALSE
..()
/datum/computer_file/program/ntnet_dos/ui_act(action, params)
if(..())
- return 1
+ return
switch(action)
if("PRG_target_relay")
for(var/obj/machinery/ntnet_relay/R in SSnetworks.station_network.relays)
if("[R.uid]" == params["targid"])
target = R
- return 1
+ break
+ return TRUE
if("PRG_reset")
if(target)
target.dos_sources.Remove(src)
target = null
- executed = 0
+ executed = FALSE
error = ""
- return 1
+ return TRUE
if("PRG_execute")
if(target)
- executed = 1
+ executed = TRUE
target.dos_sources.Add(src)
if(SSnetworks.station_network.intrusion_detection_enabled)
var/obj/item/computer_hardware/network_card/network_card = computer.all_components[MC_NET]
SSnetworks.station_network.add_log("IDS WARNING - Excess traffic flood targeting relay [target.uid] detected from device: [network_card.get_network_tag()]")
- SSnetworks.station_network.intrusion_detection_alarm = 1
- return 1
+ SSnetworks.station_network.intrusion_detection_alarm = TRUE
+ return TRUE
/datum/computer_file/program/ntnet_dos/ui_data(mob/user)
if(!SSnetworks.station_network)
return
- var/list/data = list()
+ var/list/data = get_header_data()
- data = get_header_data()
-
- if(error)
- data["error"] = error
- else if(target && executed)
- data["target"] = 1
+ data["error"] = error
+ if(target && executed)
+ data["target"] = TRUE
data["speed"] = dos_speed
- // This is mostly visual, generate some strings of 1s and 0s
- // Probability of 1 is equal of completion percentage of DoS attack on this relay.
- // Combined with UI updates this adds quite nice effect to the UI
- var/percentage = target.dos_overload * 100 / target.dos_capacity
- data["dos_strings"] = list()
- for(var/j, j<10, j++)
- var/string = ""
- for(var/i, i<20, i++)
- string = "[string][prob(percentage)]"
- data["dos_strings"] += list(list("nums" = string))
+ data["overload"] = target.dos_overload
+ data["capacity"] = target.dos_capacity
else
+ data["target"] = FALSE
data["relays"] = list()
for(var/obj/machinery/ntnet_relay/R in SSnetworks.station_network.relays)
data["relays"] += list(list("id" = R.uid))
diff --git a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
index af2d3f099d9..5b85e5a67bb 100644
--- a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
+++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
@@ -4,9 +4,9 @@
program_icon_state = "hostile"
extended_desc = "This virus can destroy hard drive of system it is executed on. It may be obfuscated to look like another non-malicious program. Once armed, it will destroy the system upon next execution."
size = 13
- requires_ntnet = 0
- available_on_ntnet = 0
- available_on_syndinet = 1
+ requires_ntnet = FALSE
+ available_on_ntnet = FALSE
+ available_on_syndinet = TRUE
tgui_id = "ntos_revelation"
ui_x = 400
ui_y = 250
@@ -21,7 +21,7 @@
/datum/computer_file/program/revelation/proc/activate()
if(computer)
computer.visible_message("\The [computer]'s screen brightly flashes and loud electrical buzzing is heard.")
- computer.enabled = 0
+ computer.enabled = FALSE
computer.update_icon()
var/obj/item/computer_hardware/hard_drive/hard_drive = computer.all_components[MC_HDD]
var/obj/item/computer_hardware/battery/battery_module = computer.all_components[MC_CELL]
@@ -43,18 +43,20 @@
/datum/computer_file/program/revelation/ui_act(action, params)
if(..())
- return 1
+ return
switch(action)
if("PRG_arm")
armed = !armed
+ return TRUE
if("PRG_activate")
activate()
+ return TRUE
if("PRG_obfuscate")
- var/mob/living/user = usr
- var/newname = sanitize(input(user, "Enter new program name: "))
+ var/newname = params["new_name"]
if(!newname)
return
filedesc = newname
+ return TRUE
/datum/computer_file/program/revelation/clone()
diff --git a/code/modules/modular_computers/file_system/programs/file_browser.dm b/code/modules/modular_computers/file_system/programs/file_browser.dm
index fb90ecbfad1..52ba479c049 100644
--- a/code/modules/modular_computers/file_system/programs/file_browser.dm
+++ b/code/modules/modular_computers/file_system/programs/file_browser.dm
@@ -4,9 +4,9 @@
extended_desc = "This program allows management of files."
program_icon_state = "generic"
size = 8
- requires_ntnet = 0
- available_on_ntnet = 0
- undeletable = 1
+ requires_ntnet = FALSE
+ available_on_ntnet = FALSE
+ undeletable = TRUE
tgui_id = "ntos_file_manager"
var/open_file
@@ -14,176 +14,57 @@
/datum/computer_file/program/filemanager/ui_act(action, params)
if(..())
- return 1
+ return
var/obj/item/computer_hardware/hard_drive/HDD = computer.all_components[MC_HDD]
var/obj/item/computer_hardware/hard_drive/RHDD = computer.all_components[MC_SDD]
- var/obj/item/computer_hardware/printer/printer = computer.all_components[MC_PRINT]
switch(action)
- if("PRG_openfile")
- . = 1
- open_file = params["name"]
- if("PRG_newtextfile")
- . = 1
- var/newname = stripped_input(usr, "Enter file name or leave blank to cancel:", "File rename", max_length=50)
- if(!newname)
- return 1
- if(!HDD)
- return 1
- var/datum/computer_file/data/F = new/datum/computer_file/data()
- F.filename = newname
- F.filetype = "TXT"
- HDD.store_file(F)
if("PRG_deletefile")
- . = 1
if(!HDD)
- return 1
+ return
var/datum/computer_file/file = HDD.find_file_by_name(params["name"])
if(!file || file.undeletable)
- return 1
+ return
HDD.remove_file(file)
+ return TRUE
if("PRG_usbdeletefile")
- . = 1
if(!RHDD)
- return 1
+ return
var/datum/computer_file/file = RHDD.find_file_by_name(params["name"])
if(!file || file.undeletable)
- return 1
- RHDD.remove_file(file)
- if("PRG_closefile")
- . = 1
- open_file = null
- error = null
- if("PRG_clone")
- . = 1
- if(!HDD)
- return 1
- var/datum/computer_file/F = HDD.find_file_by_name(params["name"])
- if(!F || !istype(F))
- return 1
- var/datum/computer_file/C = F.clone(1)
- HDD.store_file(C)
- if("PRG_rename")
- . = 1
- if(!HDD)
- return 1
- var/datum/computer_file/file = HDD.find_file_by_name(params["name"])
- if(!file || !istype(file))
- return 1
- var/newname = stripped_input(usr, "Enter new file name:", "File rename", file.filename, max_length=50)
- if(file && newname)
- file.filename = newname
- if("PRG_edit")
- . = 1
- if(!open_file)
- return 1
- if(!HDD)
- return 1
- var/datum/computer_file/data/F = HDD.find_file_by_name(open_file)
- if(!F || !istype(F))
- return 1
- if(F.do_not_edit && (alert("WARNING: This file is not compatible with editor. Editing it may result in permanently corrupted formatting or damaged data consistency. Edit anyway?", "Incompatible File", "No", "Yes") == "No"))
- return 1
- // 16384 is the limit for file length in characters. Currently, papers have value of 2048 so this is 8 times as long, since we can't edit parts of the file independently.
- var/newtext = stripped_multiline_input(usr, "Editing file [open_file]. You may use most tags used in paper formatting:", "Text Editor", html_decode(F.stored_data), 16384, TRUE)
- if(!newtext)
return
- if(F)
- var/datum/computer_file/data/backup = F.clone()
- HDD.remove_file(F)
- F.stored_data = newtext
- F.calculate_size()
- // We can't store the updated file, it's probably too large. Print an error and restore backed up version.
- // This is mostly intended to prevent people from losing texts they spent lot of time working on due to running out of space.
- // They will be able to copy-paste the text from error screen and store it in notepad or something.
- if(!HDD.store_file(F))
- error = "I/O error: Unable to overwrite file. Hard drive is probably full. You may want to backup your changes before closing this window:
[F.stored_data]
"
- HDD.store_file(backup)
- if("PRG_printfile")
- . = 1
- if(!open_file)
- return 1
+ RHDD.remove_file(file)
+ return TRUE
+ if("PRG_rename")
if(!HDD)
- return 1
- var/datum/computer_file/data/F = HDD.find_file_by_name(open_file)
- if(!F || !istype(F))
- return 1
- if(!printer)
- error = "Missing Hardware: Your computer does not have required hardware to complete this operation."
- return 1
- if(!printer.print_text("" + prepare_printjob(F.stored_data) + "", open_file))
- error = "Hardware error: Printer was unable to print the file. It may be out of paper."
- return 1
+ return
+ var/datum/computer_file/file = HDD.find_file_by_name(params["name"])
+ if(!file)
+ return
+ var/newname = params["new_name"]
+ if(!newname)
+ return
+ file.filename = newname
+ return TRUE
if("PRG_copytousb")
- . = 1
if(!HDD || !RHDD)
- return 1
+ return
var/datum/computer_file/F = HDD.find_file_by_name(params["name"])
- if(!F || !istype(F))
- return 1
- var/datum/computer_file/C = F.clone(0)
+ if(!F)
+ return
+ var/datum/computer_file/C = F.clone(FALSE)
RHDD.store_file(C)
+ return TRUE
if("PRG_copyfromusb")
- . = 1
if(!HDD || !RHDD)
- return 1
+ return
var/datum/computer_file/F = RHDD.find_file_by_name(params["name"])
if(!F || !istype(F))
- return 1
- var/datum/computer_file/C = F.clone(0)
+ return
+ var/datum/computer_file/C = F.clone(FALSE)
HDD.store_file(C)
-
-/datum/computer_file/program/filemanager/proc/parse_tags(t)
- t = replacetext(t, "\[center\]", "