Assorted bugfixes and tweaks + changelog

- Adds codersprites for tablet programs that are currently required.
- Adds computer icons to some programs that missed them.
- Temporarily removes separate keyboard icon states for consoles. They may be reimplemented in the future in a bit better way.
- Rebalanced sizes of programs a bit
- File manager is no longer downloadable, as it is part of each hard drive's ROM.
- Fixed runtime error when vending a laptop
- Adjusted some code segments as per Techhead's suggestions on github
- Adds changelog.
This commit is contained in:
Atlantis
2015-12-30 02:55:11 +01:00
parent 605b78d377
commit 9e1168ae9c
20 changed files with 61 additions and 80 deletions
@@ -10,7 +10,6 @@
var/filedesc = "Unknown Program" // User-friendly name of this program.
var/extended_desc = "N/A" // Short description of this program's function.
var/program_icon_state = null // Program-specific screen icon state
var/keyboard_icon_state = null // Program-specific keboard icon state, only supported on some devices.
var/requires_ntnet = 0 // Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes.
var/requires_ntnet_feature = 0 // Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD, NTNET_PEERTOPEER, NTNET_SYSTEMCONTROL and NTNET_COMMUNICATION)
var/ntnet_status = 1 // NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc.
@@ -62,29 +61,17 @@
access_to_check = required_access
if(!access_to_check) // No required_access, allow it.
return 1
if(istype(user, /mob/living/silicon)) // AI or robot. Allow it.
return 1
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/H = user
var/obj/item/weapon/card/id/I = H.wear_id
var/obj/item/device/pda/P = H.wear_id
if(P && istype(P)) // PDA. Try to grab the ID from it then.
I = P.id
if(!I) // No equipped ID, let's try checking active hand too
I = H.get_active_hand()
P = H.get_active_hand()
if(P && istype(P))
I = P.id
if(!I || !istype(I)) // Still no ID.
if(loud && computer)
user << "<span class='danger'>\The [computer] flashes an \"RFID Error - Unable to scan ID\" warning.</span>"
return 0
if(access_to_check in I.access)
return 1
if(loud && computer)
var/obj/item/weapon/card/id/I = user.GetIdCard()
if(!I)
if(loud)
user << "<span class='danger'>\The [computer] flashes an \"RFID Error - Unable to scan ID\" warning.</span>"
return 0
if(access_to_check in I.access)
return 1
else if(loud)
user << "<span class='danger'>\The [computer] flashes an \"Access Denied\" warning.</span>"
return 0
// This attempts to retrieve header data for NanoUIs. If implementing completely new device of different type than existing ones
// always include the device here in this proc. This proc basically relays the request to whatever is running the program.
@@ -122,7 +109,7 @@
if(!running) // Our program was closed. Close the ui if it exists.
if(ui)
ui.close()
return 0
return computer.ui_interact(user)
if(istype(NM))
NM.ui_interact(user, ui_key, null, force_open)
return 0
@@ -6,11 +6,10 @@
nanomodule_path = /datum/nano_module/power_monitor/
program_icon_state = "power_monitor"
extended_desc = "This program connects to sensors around the station to provide information about electrical systems"
keyboard_icon_state = "keyboard9"
required_access = access_engine
requires_ntnet = 1
network_destination = "power monitoring system"
size = 8
size = 9
/datum/computer_file/program/alarm_monitor
filename = "alarmmonitor"
@@ -18,7 +17,6 @@
nanomodule_path = /datum/nano_module/alarm_monitor/engineering
program_icon_state = "alarm_monitor"
extended_desc = "This program provides visual interface for station's alarm system."
keyboard_icon_state = "keyboard4"
requires_ntnet = 1
network_destination = "alarm monitoring network"
size = 5
@@ -29,7 +27,6 @@
nanomodule_path = /datum/nano_module/atmos_control
program_icon_state = "atmos_control"
extended_desc = "This program allows remote control of air alarms around the station"
keyboard_icon_state = "keyboard4"
required_access = access_atmospherics
requires_ntnet = 1
network_destination = "atmospheric control system"
@@ -43,10 +40,9 @@
nanomodule_path = /datum/nano_module/rcon
program_icon_state = "generic"
extended_desc = "This program allows remote control of power distribution systems around the station."
keyboard_icon_state = "keyboard1"
required_access = access_engine
requires_ntnet = 1
network_destination = "RCON remote control system"
requires_ntnet_feature = NTNET_SYSTEMCONTROL
usage_flags = PROGRAM_LAPTOP | PROGRAM_CONSOLE
size = 25
size = 19
@@ -4,8 +4,7 @@
nanomodule_path = /datum/nano_module/crew_monitor
program_icon_state = "crew"
extended_desc = "This program connects to life signs monitoring system to provide basic information on crew health."
keyboard_icon_state = "keyboard7"
required_access = access_medical
requires_ntnet = 1
network_destination = "crew lifesigns monitoring system"
size = 20
size = 11
@@ -9,7 +9,7 @@
program_icon_state = "generic"
unsendable = 1
undeletable = 1
size = 2
size = 4
available_on_ntnet = 0
requires_ntnet = 0
nanomodule_path = /datum/nano_module/computer_configurator/
@@ -3,9 +3,9 @@
filedesc = "NTOS File Manager"
extended_desc = "This program allows management of files."
program_icon_state = "generic"
size = 10
size = 8
requires_ntnet = 0
available_on_ntnet = 1
available_on_ntnet = 0
undeletable = 1
nanomodule_path = /datum/nano_module/computer_filemanager/
var/open_file
@@ -5,7 +5,7 @@
extended_desc = "This program allows downloads of software from official NT repositories"
unsendable = 1
undeletable = 1
size = 3
size = 4
requires_ntnet = 1
requires_ntnet_feature = NTNET_SOFTWAREDOWNLOAD
available_on_ntnet = 0
@@ -1,9 +1,9 @@
/datum/computer_file/program/ntnetmonitor
filename = "ntmonitor"
filedesc = "NTNet Diagnostics and Monitoring"
program_icon_state = "generic"
program_icon_state = "comm_monitor"
extended_desc = "This program monitors stationwide NTNet network, provides access to logging systems, and allows for configuration changes"
size = 7
size = 12
requires_ntnet = 1
required_access = access_network
available_on_ntnet = 1
@@ -1,9 +1,9 @@
/datum/computer_file/program/chatclient
filename = "ntnrc_client"
filedesc = "NTNet Relay Chat Client"
program_icon_state = "generic"
program_icon_state = "command"
extended_desc = "This program allows communication over NTNRC network"
size = 10
size = 8
requires_ntnet = 1
requires_ntnet_feature = NTNET_COMMUNICATION
network_destination = "NTNRC server"
@@ -4,8 +4,8 @@ var/global/nttransfer_uid = 0
filename = "nttransfer"
filedesc = "NTNet P2P Transfer Client"
extended_desc = "This program allows for simple file transfer via direct peer to peer connection."
program_icon_state = "generic"
size = 5
program_icon_state = "comm_logs"
size = 7
requires_ntnet = 1
requires_ntnet_feature = NTNET_PEERTOPEER
network_destination = "other device via P2P tunnel"