diff --git a/code/__DEFINES/modular_computer.dm b/code/__DEFINES/modular_computer.dm index c4f1b3884f3..5158312d03f 100644 --- a/code/__DEFINES/modular_computer.dm +++ b/code/__DEFINES/modular_computer.dm @@ -1,37 +1,76 @@ -//NTNet stuff, for modular computers - -//Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. -#define MAX_NTNET_LOGS 300 -#define MIN_NTNET_LOGS 10 - -//Program bitflags +/** + * can_run_on_flags bitflags + * Used by programs to tell what type of ModPC it can run on. + * Everything a program can run on needs valid icons for each individual one. + */ +///Runs on everything. #define PROGRAM_ALL ALL +///Can run on Modular PC Consoles #define PROGRAM_CONSOLE (1<<0) +///Can run on Laptops. #define PROGRAM_LAPTOP (1<<1) +///Can run on PDAs. #define PROGRAM_PDA (1<<2) -//Program categories -#define PROGRAM_CATEGORY_CREW "Crew" -#define PROGRAM_CATEGORY_ENGI "Engineering" -#define PROGRAM_CATEGORY_SUPL "Supply" -#define PROGRAM_CATEGORY_SCI "Science" -#define PROGRAM_CATEGORY_MISC "Other" +/** + * program_flags + * Used by programs to tell the ModPC any special functions it has. + */ +///If the program requires NTNet to be online for it to work. +#define PROGRAM_REQUIRES_NTNET (1<<0) +///The program can be downloaded from the default NTNet downloader store. +#define PROGRAM_ON_NTNET_STORE (1<<1) +///The program can only be downloaded from the Syndinet store, usually nukie/emagged pda. +#define PROGRAM_ON_SYNDINET_STORE (1<<2) +///The program is unique and will delete itself upon being transferred to ensure only one copy exists. +#define PROGRAM_UNIQUE_COPY (1<<3) +///The program is a header and will show up at the top of the ModPC's UI. +#define PROGRAM_HEADER (1<<4) +///The program will run despite the ModPC not having any power in it. +#define PROGRAM_RUNS_WITHOUT_POWER (1<<5) + +//Program categories +#define PROGRAM_CATEGORY_DEVICE "Device Tools" +#define PROGRAM_CATEGORY_EQUIPMENT "Equipment" +#define PROGRAM_CATEGORY_GAMES "Games" +#define PROGRAM_CATEGORY_SECURITY "Security & Records" +#define PROGRAM_CATEGORY_ENGINEERING "Engineering" +#define PROGRAM_CATEGORY_SUPPLY "Supply" +#define PROGRAM_CATEGORY_SCIENCE "Science" + +///The default amount a program should take in cell use. +#define PROGRAM_BASIC_CELL_USE 15 + +///This app grants a minor protection against being PDA bombed if installed. +///(can sometimes prevent it from being sent, while wasting a PDA bomb from the sender). #define DETOMATIX_RESIST_MINOR 1 +///This app grants a larger protection against being PDA bombed if installed. +///(can sometimes prevent it from being sent, while wasting a PDA bomb from the sender). #define DETOMATIX_RESIST_MAJOR 2 -//NTNet transfer speeds, used when downloading/uploading a file/program. -#define NTNETSPEED_LOWSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on Low signal -#define NTNETSPEED_HIGHSIGNAL 1 // GQ/s transfer speed when the device is wirelessly connected and on High signal -#define NTNETSPEED_ETHERNET 2 // GQ/s transfer speed when the device is using wired connection +/** + * NTNet transfer speeds, used when downloading/uploading a file/program. + * The define is how fast it will download an app every program's process_tick. + */ +///Used for wireless devices with low signal. +#define NTNETSPEED_LOWSIGNAL 0.5 +///Used for wireless devices with high signal. +#define NTNETSPEED_HIGHSIGNAL 1 +///Used for laptops with a high signal, or computers, which is connected regardless of z level. +#define NTNETSPEED_ETHERNET 2 -// NTNet connection signals -///When you're away from the station/mining base and not on a console, you can't access the internet +/** + * NTNet connection signals + * Used to calculate the defines above from NTNet Downloader, this is how + * good a ModPC's signal is. + */ +///When you're away from the station/mining base and not on a console, you can't access the internet. #define NTNET_NO_SIGNAL 0 ///Low signal, so away from the station, but still connected #define NTNET_LOW_SIGNAL 1 -///On station, good signal +///On station with good signal. #define NTNET_GOOD_SIGNAL 2 -///Using a Computer, ethernet-connected. +///Using a Computer or Laptop with good signal, ethernet-connected. #define NTNET_ETHERNET_SIGNAL 3 /// The default ringtone of the Messenger app. @@ -40,6 +79,11 @@ /// The maximum length of the ringtone of the Messenger app. #define MESSENGER_RINGTONE_MAX_LENGTH 20 +/** + * PDA Themes + * For these to work, the defines must be defined in tgui/styles/themes/[define].scss + */ + ///Default NtOS PDA theme #define PDA_THEME_NTOS "ntos" #define PDA_THEME_DARK_MODE "ntos_darkmode" diff --git a/code/controllers/subsystem/modular_computers.dm b/code/controllers/subsystem/modular_computers.dm index ad0be83bb52..5ea431d72f7 100644 --- a/code/controllers/subsystem/modular_computers.dm +++ b/code/controllers/subsystem/modular_computers.dm @@ -5,8 +5,9 @@ SUBSYSTEM_DEF(modular_computers) name = "Modular Computers" flags = SS_NO_FIRE - ///List of all ModPC logging - var/list/logs = list() + ///List of all logs generated by ModPCs through the round. + ///Stops at MAX_LOG_COUNT and must be purged to keep logging. + var/list/modpc_logs = list() ///List of all programs available to download from the NTNet store. var/list/available_station_software = list() @@ -30,7 +31,7 @@ SUBSYSTEM_DEF(modular_computers) /datum/controller/subsystem/modular_computers/proc/build_software_lists() for(var/datum/computer_file/program/prog as anything in subtypesof(/datum/computer_file/program)) // Has no TGUI file so is not meant to be a downloadable thing. - if(!initial(prog.tgui_id)) + if(!initial(prog.tgui_id) || !initial(prog.filename)) continue prog = new prog @@ -65,17 +66,17 @@ SUBSYSTEM_DEF(modular_computers) log_text += log_string log_string = log_text.Join() - logs.Add(log_string) + modpc_logs.Add(log_string) // We have too many logs, remove the oldest entries until we get into the limit - if(logs.len > MAX_LOG_COUNT) - logs = logs.Copy(logs.len - MAX_LOG_COUNT, 0) + if(modpc_logs.len > MAX_LOG_COUNT) + modpc_logs = modpc_logs.Copy(modpc_logs.len - MAX_LOG_COUNT, 0) /** * Removes all station logs and leaves it with an alert that it's been wiped. */ /datum/controller/subsystem/modular_computers/proc/purge_logs() - logs = list() + modpc_logs = list() add_log("-!- LOGS DELETED BY SYSTEM OPERATOR -!-") /** diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 16eb099a486..94c8847577e 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -790,15 +790,15 @@ /obj/item/clothing/glasses/thermal/syndi, /obj/item/slimepotion/slime/sentience/nuclear, /obj/item/storage/box/syndie_kit/imp_radio, - ///obj/item/storage/box/syndie_kit/imp_uplink, // SKYRAT EDIT REMOVAL - ///obj/item/clothing/gloves/krav_maga/combatglovesplus, // SKYRAT EDIT REMOVAL + /obj/item/storage/box/syndie_kit/imp_uplink, + /obj/item/clothing/gloves/krav_maga/combatglovesplus, /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot, /obj/item/reagent_containers/hypospray/medipen/stimulants, /obj/item/storage/box/syndie_kit/imp_freedom, /obj/item/toy/eightball/haunted, ) for(var/i in 1 to 3) - var/selected_item = pick_n_take(list(item_list + modular_item_list)) // SKYRAT EDIT CHANGE - ORIGINAL : var/selected_item = pick_n_take(item_list) + var/selected_item = pick_n_take(item_list) new selected_item(src) // Paper guide is always last. diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 9527e82cfea..933390d63be 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -402,7 +402,7 @@ return if(enabled) - . += active_program ? mutable_appearance(init_icon, active_program.program_icon_state) : mutable_appearance(init_icon, icon_state_menu) + . += active_program ? mutable_appearance(init_icon, active_program.program_open_overlay) : mutable_appearance(init_icon, icon_state_menu) if(atom_integrity <= integrity_failure * max_integrity) . += mutable_appearance(init_icon, "bsod") . += mutable_appearance(init_icon, "broken") diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index aa6866ff7c5..7fd019c1bee 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -82,7 +82,7 @@ return . if(cpu.enabled) - . += cpu.active_program?.program_icon_state || screen_icon_state_menu + . += cpu.active_program?.program_open_overlay || screen_icon_state_menu else if(!(machine_stat & NOPOWER)) . += screen_icon_screensaver diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 931e8d283be..1a78ed0de07 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -1,6 +1,3 @@ -///The default amount a program should take in cell use. -#define PROGRAM_BASIC_CELL_USE 15 - // /program/ files are executable programs that do things. /datum/computer_file/program filetype = "PRG" @@ -18,10 +15,12 @@ var/filedesc = "Unknown Program" /// Short description of this program's function. var/extended_desc = "N/A" - /// Category in the NTDownloader. - var/category = PROGRAM_CATEGORY_MISC - /// Program-specific screen icon state - var/program_icon_state = null + ///What category this program can be found in within NTNetDownloader. + var/downloader_category = PROGRAM_CATEGORY_DEVICE + ///The overlay to add ontop of the ModPC running the app while it's open. + ///This is taken from the same file as the ModPC, so you can use usage_flags to prevent + ///the program from being used on devices that don't have sprites for it. + var/program_open_overlay = null ///Boolean on whether the program will appear at the top on PDA menus, or in the app list with everything else. var/header_program = FALSE /// Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes. @@ -34,7 +33,7 @@ var/available_on_ntnet = TRUE /// Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to TRUE to enable. var/available_on_syndinet = FALSE - /// Name of the tgui interface + /// Name of the tgui interface. If this is not defined, this will not be available in NTNet. var/tgui_id /// Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images must also be inserted into /datum/asset/simple/headers. var/ui_header = null @@ -55,7 +54,7 @@ var/datum/computer_file/program/temp = ..() temp.run_access = run_access temp.filedesc = filedesc - temp.program_icon_state = program_icon_state + temp.program_open_overlay = program_open_overlay temp.requires_ntnet = requires_ntnet temp.usage_flags = usage_flags if(unique_copy) diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm index 0ee695f8fd6..80ee8343252 100644 --- a/code/modules/modular_computers/file_system/programs/airestorer.dm +++ b/code/modules/modular_computers/file_system/programs/airestorer.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/ai_restorer filename = "ai_restore" filedesc = "AI Manager & Restorer" - category = PROGRAM_CATEGORY_SCI - program_icon_state = "generic" + downloader_category = PROGRAM_CATEGORY_SCIENCE + program_open_overlay = "generic" extended_desc = "Firmware Restoration Kit, capable of reconstructing damaged AI systems. Requires direct AI connection via intellicard slot." size = 12 requires_ntnet = FALSE diff --git a/code/modules/modular_computers/file_system/programs/alarm.dm b/code/modules/modular_computers/file_system/programs/alarm.dm index c1aedb9d5d9..771c6455fd7 100644 --- a/code/modules/modular_computers/file_system/programs/alarm.dm +++ b/code/modules/modular_computers/file_system/programs/alarm.dm @@ -1,9 +1,9 @@ /datum/computer_file/program/alarm_monitor filename = "alarmmonitor" filedesc = "Canary" - category = PROGRAM_CATEGORY_ENGI + downloader_category = PROGRAM_CATEGORY_ENGINEERING ui_header = "alarm_green.gif" - program_icon_state = "alert-green" + program_open_overlay = "alert-green" extended_desc = "This program provides visual interface for a station's alarm system." requires_ntnet = 1 size = 4 @@ -37,12 +37,12 @@ has_alert = (length(alert_control.listener.alarms) > 0) if(!has_alert) - program_icon_state = "alert-green" + program_open_overlay = "alert-green" ui_header = "alarm_green.gif" else // If we don't know the status, assume the worst. // Technically we should never have anything other than a truthy or falsy value // but this will allow for unknown values to fall through to be an actual alert. - program_icon_state = "alert-red" + program_open_overlay = "alert-red" ui_header = "alarm_red.gif" update_computer_icon() // Always update the icon after we check our conditional because we might've changed it diff --git a/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm b/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm index f1dbc302e61..5ad668445b7 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm @@ -2,16 +2,10 @@ filename = "contractor uplink" filedesc = "Syndicate Contractor Uplink" extended_desc = "A standard, Syndicate issued system for handling important contracts while on the field." - category = PROGRAM_CATEGORY_MISC - program_icon_state = "contractor-assign" + program_open_overlay = "contractor-assign" program_icon = "tasks" size = 10 - requires_ntnet = FALSE - available_on_ntnet = FALSE - available_on_syndinet = FALSE - usage_flags = PROGRAM_PDA //this is all we've got sprites for :sob: - unique_copy = TRUE undeletable = TRUE tgui_id = "SyndicateContractor" @@ -45,7 +39,7 @@ var/contract_id = text2num(params["contract_id"]) traitor_data.uplink_handler.contractor_hub.assigned_contracts[contract_id].status = CONTRACT_STATUS_ACTIVE traitor_data.uplink_handler.contractor_hub.current_contract = traitor_data.uplink_handler.contractor_hub.assigned_contracts[contract_id] - program_icon_state = "contractor-contract" + program_open_overlay = "contractor-contract" return TRUE if("PRG_login") @@ -59,7 +53,7 @@ traitor_data.uplink_handler.contractor_hub = new traitor_data.uplink_handler.contractor_hub.create_contracts(traitor_user.owner) user.playsound_local(user, 'sound/effects/contractstartup.ogg', 100, FALSE) - program_icon_state = "contractor-contractlist" + program_open_overlay = "contractor-contractlist" return TRUE if("PRG_call_extraction") @@ -68,7 +62,7 @@ user.playsound_local(user, 'sound/effects/confirmdropoff.ogg', 100, TRUE) traitor_data.uplink_handler.contractor_hub.current_contract.status = CONTRACT_STATUS_EXTRACTING - program_icon_state = "contractor-extracted" + program_open_overlay = "contractor-extracted" else user.playsound_local(user, 'sound/machines/uplinkerror.ogg', 50) error = "Either both you or your target aren't at the dropoff location, or the pod hasn't got a valid place to land. Clear space, or make sure you're both inside." @@ -83,7 +77,7 @@ traitor_data.uplink_handler.contractor_hub.current_contract = null traitor_data.uplink_handler.contractor_hub.assigned_contracts[contract_id].status = CONTRACT_STATUS_ABORTED - program_icon_state = "contractor-contractlist" + program_open_overlay = "contractor-contractlist" return TRUE if("PRG_redeem_TC") @@ -129,10 +123,10 @@ data["ongoing_contract"] = !!traitor_data.uplink_handler.contractor_hub.current_contract if(traitor_data.uplink_handler.contractor_hub.current_contract) - program_icon_state = "contractor-contract" + program_open_overlay = "contractor-contract" if (traitor_data.uplink_handler.contractor_hub.current_contract.status == CONTRACT_STATUS_EXTRACTING) data["extraction_enroute"] = TRUE - program_icon_state = "contractor-extracted" + program_open_overlay = "contractor-extracted" else data["extraction_enroute"] = FALSE var/turf/curr = get_turf(user) 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 be15e90faea..9ac9ba8c55d 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/ntnet_dos filename = "ntn_dos" filedesc = "DoS Traffic Generator" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "hostile" + downloader_category = PROGRAM_CATEGORY_DEVICE + program_open_overlay = "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 = TRUE 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 88aa48d0c31..36bdca90134 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/revelation filename = "revelation" filedesc = "Revelation" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "hostile" + downloader_category = PROGRAM_CATEGORY_DEVICE + program_open_overlay = "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 = FALSE diff --git a/code/modules/modular_computers/file_system/programs/arcade.dm b/code/modules/modular_computers/file_system/programs/arcade.dm index a51d3345d10..efbcbee0f74 100644 --- a/code/modules/modular_computers/file_system/programs/arcade.dm +++ b/code/modules/modular_computers/file_system/programs/arcade.dm @@ -1,9 +1,10 @@ /datum/computer_file/program/arcade filename = "dsarcade" filedesc = "Donksoft Micro Arcade" - program_icon_state = "arcade" + program_open_overlay = "arcade" extended_desc = "This port of the classic game 'Outbomb Cuban Pete', redesigned to run on tablets, with thrilling graphics and chilling storytelling." requires_ntnet = FALSE + downloader_category = PROGRAM_CATEGORY_GAMES size = 6 tgui_id = "NtosArcade" program_icon = "gamepad" @@ -30,7 +31,7 @@ heads_up = "You have crushed [boss_name]! Rejoice!" playsound(computer.loc, 'sound/arcade/win.ogg', 50) game_active = FALSE - program_icon_state = "arcade_off" + program_open_overlay = "arcade_off" if(istype(computer)) computer.update_appearance() ticket_count += 1 @@ -41,7 +42,7 @@ heads_up = "You have been defeated... how will the station survive?" playsound(computer.loc, 'sound/arcade/lose.ogg', 50) game_active = FALSE - program_icon_state = "arcade_off" + program_open_overlay = "arcade_off" if(istype(computer)) computer.update_appearance() user?.mind?.adjust_experience(/datum/skill/gaming, 10) @@ -163,7 +164,7 @@ player_hp = 30 player_mp = 10 heads_up = "You stand before [boss_name]! Prepare for battle!" - program_icon_state = "arcade" + program_open_overlay = "arcade" boss_id = rand(1,6) pause_state = FALSE if(istype(computer)) diff --git a/code/modules/modular_computers/file_system/programs/atmosscan.dm b/code/modules/modular_computers/file_system/programs/atmosscan.dm index d0044433919..fd520fbb385 100644 --- a/code/modules/modular_computers/file_system/programs/atmosscan.dm +++ b/code/modules/modular_computers/file_system/programs/atmosscan.dm @@ -6,8 +6,8 @@ /datum/computer_file/program/atmosscan filename = "atmosscan" filedesc = "AtmoZphere" - category = PROGRAM_CATEGORY_ENGI - program_icon_state = "air" + downloader_category = PROGRAM_CATEGORY_ENGINEERING + program_open_overlay = "air" extended_desc = "A small built-in sensor reads out the atmospheric conditions around the device." size = 4 tgui_id = "NtosGasAnalyzer" diff --git a/code/modules/modular_computers/file_system/programs/borg_monitor.dm b/code/modules/modular_computers/file_system/programs/borg_monitor.dm index fae48fbff2f..63db9e91016 100644 --- a/code/modules/modular_computers/file_system/programs/borg_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/borg_monitor.dm @@ -1,9 +1,9 @@ /datum/computer_file/program/borg_monitor filename = "siliconnect" filedesc = "SiliConnect" - category = PROGRAM_CATEGORY_SCI + downloader_category = PROGRAM_CATEGORY_SCIENCE ui_header = "borg_mon.gif" - program_icon_state = "generic" + program_open_overlay = "generic" extended_desc = "This program allows for remote monitoring of station cyborgs." requires_ntnet = TRUE download_access = list(ACCESS_ROBOTICS) @@ -148,9 +148,9 @@ /datum/computer_file/program/borg_monitor/syndicate filename = "roboverlord" filedesc = "Roboverlord" - category = PROGRAM_CATEGORY_SCI + downloader_category = PROGRAM_CATEGORY_SCIENCE ui_header = "borg_mon.gif" - program_icon_state = "generic" + program_open_overlay = "generic" extended_desc = "This program allows for remote monitoring of mission-assigned cyborgs." requires_ntnet = FALSE available_on_ntnet = FALSE diff --git a/code/modules/modular_computers/file_system/programs/bounty_board.dm b/code/modules/modular_computers/file_system/programs/bounty_board.dm index cb7f6c288bb..42d4a4fcf9c 100644 --- a/code/modules/modular_computers/file_system/programs/bounty_board.dm +++ b/code/modules/modular_computers/file_system/programs/bounty_board.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/bounty_board filename = "bountyboard" filedesc = "Bounty Board Request Network" - category = PROGRAM_CATEGORY_SUPL - program_icon_state = "bountyboard" + downloader_category = PROGRAM_CATEGORY_SUPPLY + program_open_overlay = "bountyboard" extended_desc = "A multi-platform network for placing requests across the station, with payment across the network being possible.." requires_ntnet = TRUE size = 10 diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index 68b251f3d19..5ebc7e91d58 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/budgetorders filename = "orderapp" filedesc = "NT IRN" - category = PROGRAM_CATEGORY_SUPL - program_icon_state = "request" + downloader_category = PROGRAM_CATEGORY_SUPPLY + program_open_overlay = "request" extended_desc = "Nanotrasen Internal Requisition Network interface for supply purchasing using a department budget account." requires_ntnet = TRUE usage_flags = PROGRAM_LAPTOP | PROGRAM_PDA diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index 05ac394b7bd..07430933120 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/card_mod filename = "plexagonidwriter" filedesc = "Plexagon Access Management" - category = PROGRAM_CATEGORY_CREW - program_icon_state = "id" + downloader_category = PROGRAM_CATEGORY_EQUIPMENT + program_open_overlay = "id" extended_desc = "Program for programming employee ID cards to access parts of the station." download_access = list(ACCESS_COMMAND) requires_ntnet = 0 diff --git a/code/modules/modular_computers/file_system/programs/cargoship.dm b/code/modules/modular_computers/file_system/programs/cargoship.dm index 462c17aba70..92c6e152f71 100644 --- a/code/modules/modular_computers/file_system/programs/cargoship.dm +++ b/code/modules/modular_computers/file_system/programs/cargoship.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/shipping filename = "shipping" filedesc = "GrandArk Exporter" - category = PROGRAM_CATEGORY_SUPL - program_icon_state = "shipping" + downloader_category = PROGRAM_CATEGORY_SUPPLY + program_open_overlay = "shipping" extended_desc = "A combination printer/scanner app that enables modular computers to print barcodes for easy scanning and shipping." size = 6 tgui_id = "NtosShipping" diff --git a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm b/code/modules/modular_computers/file_system/programs/chatroom/conversation.dm similarity index 100% rename from code/modules/modular_computers/NTNet/NTNRC/conversation.dm rename to code/modules/modular_computers/file_system/programs/chatroom/conversation.dm diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/chatroom/ntnrc_client.dm similarity index 99% rename from code/modules/modular_computers/file_system/programs/ntnrc_client.dm rename to code/modules/modular_computers/file_system/programs/chatroom/ntnrc_client.dm index aa780fc3cf8..f621ab8693a 100644 --- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/chatroom/ntnrc_client.dm @@ -7,8 +7,8 @@ /datum/computer_file/program/chatclient filename = "ntnrc_client" filedesc = "Chat Client" - category = PROGRAM_CATEGORY_CREW - program_icon_state = "command" + downloader_category = PROGRAM_CATEGORY_DEVICE + program_open_overlay = "command" extended_desc = "This program allows communication over NTNRC network" size = 8 requires_ntnet = TRUE diff --git a/code/modules/modular_computers/file_system/programs/crewmanifest.dm b/code/modules/modular_computers/file_system/programs/crewmanifest.dm index 85f9a4c5ffe..cbb8bcf08ea 100644 --- a/code/modules/modular_computers/file_system/programs/crewmanifest.dm +++ b/code/modules/modular_computers/file_system/programs/crewmanifest.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/crew_manifest filename = "plexagoncrew" filedesc = "Plexagon Crew List" - category = PROGRAM_CATEGORY_CREW - program_icon_state = "id" + downloader_category = PROGRAM_CATEGORY_SECURITY + program_open_overlay = "id" extended_desc = "Program for viewing and printing the current crew manifest" download_access = list(ACCESS_SECURITY, ACCESS_COMMAND) requires_ntnet = TRUE diff --git a/code/modules/modular_computers/file_system/programs/emojipedia.dm b/code/modules/modular_computers/file_system/programs/emojipedia.dm index 277311491a7..6aa81b506d5 100644 --- a/code/modules/modular_computers/file_system/programs/emojipedia.dm +++ b/code/modules/modular_computers/file_system/programs/emojipedia.dm @@ -2,8 +2,8 @@ /datum/computer_file/program/emojipedia filename = "emojipedia" filedesc = "EmojiPedia" - category = PROGRAM_CATEGORY_CREW // we want everyone to be able to access this application, since everyone can send emoji via PDA messages - program_icon_state = "generic" + downloader_category = PROGRAM_CATEGORY_DEVICE // we want everyone to be able to access this application, since everyone can send emoji via PDA messages + program_open_overlay = "generic" extended_desc = "This program allows you to view all the emojis you can send via PDA messages." size = 3 tgui_id = "NtosEmojipedia" 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 50fa29ccd5c..052ef68517b 100644 --- a/code/modules/modular_computers/file_system/programs/file_browser.dm +++ b/code/modules/modular_computers/file_system/programs/file_browser.dm @@ -2,7 +2,7 @@ filename = "filemanager" filedesc = "File Manager" extended_desc = "This program allows management of files." - program_icon_state = "generic" + program_open_overlay = "generic" size = 8 requires_ntnet = FALSE available_on_ntnet = FALSE diff --git a/code/modules/modular_computers/file_system/programs/frontier.dm b/code/modules/modular_computers/file_system/programs/frontier.dm index 3b001e9f39d..32f7e2dc14b 100644 --- a/code/modules/modular_computers/file_system/programs/frontier.dm +++ b/code/modules/modular_computers/file_system/programs/frontier.dm @@ -1,11 +1,11 @@ /datum/computer_file/program/scipaper_program filename = "ntfrontier" filedesc = "NT Frontier" - category = PROGRAM_CATEGORY_SCI + downloader_category = PROGRAM_CATEGORY_SCIENCE extended_desc = "Scientific paper publication and navigation software." requires_ntnet = TRUE size = 12 - program_icon_state = "research" + program_open_overlay = "research" tgui_id = "NtosScipaper" program_icon = "paper-plane" download_access = list(ACCESS_ORDNANCE) diff --git a/code/modules/modular_computers/file_system/programs/jobmanagement.dm b/code/modules/modular_computers/file_system/programs/jobmanagement.dm index c04fddcd396..73aa2033ecd 100644 --- a/code/modules/modular_computers/file_system/programs/jobmanagement.dm +++ b/code/modules/modular_computers/file_system/programs/jobmanagement.dm @@ -4,8 +4,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) /datum/computer_file/program/job_management filename = "plexagoncore" filedesc = "Plexagon HR Core" - category = PROGRAM_CATEGORY_CREW - program_icon_state = "id" + downloader_category = PROGRAM_CATEGORY_EQUIPMENT + program_open_overlay = "id" extended_desc = "Program for viewing and changing job slot availability." download_access = list(ACCESS_COMMAND) requires_ntnet = TRUE diff --git a/code/modules/modular_computers/file_system/programs/mafia_ntos.dm b/code/modules/modular_computers/file_system/programs/mafia_ntos.dm index bbcdd39d32c..2a683f3810f 100644 --- a/code/modules/modular_computers/file_system/programs/mafia_ntos.dm +++ b/code/modules/modular_computers/file_system/programs/mafia_ntos.dm @@ -1,9 +1,10 @@ /datum/computer_file/program/mafia filename = "mafia" filedesc = "Mafia" - program_icon_state = "mafia" + program_open_overlay = "mafia" extended_desc = "A program that allows you to play the infamous Mafia game, straight from your Modular PC." requires_ntnet = FALSE + downloader_category = PROGRAM_CATEGORY_GAMES size = 6 tgui_id = "NtosMafiaPanel" program_icon = "user-secret" diff --git a/code/modules/modular_computers/file_system/programs/maintenance/camera.dm b/code/modules/modular_computers/file_system/programs/maintenance/camera.dm index a6ef5d08459..ca620814d8c 100644 --- a/code/modules/modular_computers/file_system/programs/maintenance/camera.dm +++ b/code/modules/modular_computers/file_system/programs/maintenance/camera.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/maintenance/camera filename = "camera_app" filedesc = "Camera" - program_icon_state = "camera" - category = PROGRAM_CATEGORY_MISC + program_open_overlay = "camera" + downloader_category = PROGRAM_CATEGORY_EQUIPMENT extended_desc = "This program allows the taking of pictures." size = 4 usage_flags = PROGRAM_PDA diff --git a/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm b/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm index 9f8971fb7fa..25baa43b8f5 100644 --- a/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm +++ b/code/modules/modular_computers/file_system/programs/maintenance/modsuit.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/maintenance/modsuit_control filename = "modsuit_control" filedesc = "MODsuit Control" - program_icon_state = "modsuit_control" - category = PROGRAM_CATEGORY_SCI + program_open_overlay = "modsuit_control" + downloader_category = PROGRAM_CATEGORY_EQUIPMENT extended_desc = "This program allows people to connect a MODsuit to it, allowing remote control." size = 2 tgui_id = "NtosMODsuit" diff --git a/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm b/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm index e96ae083126..bee0cfce157 100644 --- a/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm +++ b/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm @@ -1,7 +1,7 @@ /datum/computer_file/program/maintenance/phys_scanner filename = "phys_scanner" filedesc = "Physical Scanner" - category = PROGRAM_CATEGORY_MISC + downloader_category = PROGRAM_CATEGORY_EQUIPMENT extended_desc = "This program allows the tablet to scan physical objects and display a data output." size = 2 usage_flags = PROGRAM_PDA diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm index 1001a12ba92..d2f4bba2b93 100644 --- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm @@ -8,8 +8,8 @@ /datum/computer_file/program/messenger filename = "nt_messenger" filedesc = "Direct Messenger" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "command" + downloader_category = PROGRAM_CATEGORY_DEVICE + program_open_overlay = "command" extended_desc = "This program allows old-school communication with other modular devices." size = 0 undeletable = TRUE // It comes by default in tablets, can't be downloaded, takes no space and should obviously not be able to be deleted. diff --git a/code/modules/modular_computers/file_system/programs/newscasterapp.dm b/code/modules/modular_computers/file_system/programs/newscasterapp.dm index 27aafee3a41..e7d3b25a3db 100644 --- a/code/modules/modular_computers/file_system/programs/newscasterapp.dm +++ b/code/modules/modular_computers/file_system/programs/newscasterapp.dm @@ -2,8 +2,8 @@ filename = "newscasterapp" filedesc = "Newscaster" download_access = list(ACCESS_LIBRARY) - category = PROGRAM_CATEGORY_CREW - program_icon_state = "bountyboard" + downloader_category = PROGRAM_CATEGORY_GAMES + program_open_overlay = "bountyboard" extended_desc = "This program allows any user to access the Newscaster network from anywhere." size = 2 requires_ntnet = TRUE diff --git a/code/modules/modular_computers/file_system/programs/notepad.dm b/code/modules/modular_computers/file_system/programs/notepad.dm index c0232fe3888..94b60b34b2e 100644 --- a/code/modules/modular_computers/file_system/programs/notepad.dm +++ b/code/modules/modular_computers/file_system/programs/notepad.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/notepad filename = "notepad" filedesc = "Notepad" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "generic" + downloader_category = PROGRAM_CATEGORY_DEVICE + program_open_overlay = "generic" extended_desc = "Jot down your work-safe thoughts and what not." size = 2 tgui_id = "NtosNotepad" diff --git a/code/modules/modular_computers/file_system/programs/nt_pay.dm b/code/modules/modular_computers/file_system/programs/nt_pay.dm index 8724375d07b..5f5cdd00b48 100644 --- a/code/modules/modular_computers/file_system/programs/nt_pay.dm +++ b/code/modules/modular_computers/file_system/programs/nt_pay.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/nt_pay filename = "ntpay" filedesc = "Nanotrasen Pay System" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "generic" + downloader_category = PROGRAM_CATEGORY_DEVICE + program_open_overlay = "generic" extended_desc = "An application that locally (in your sector) helps to transfer money or track your expenses and profits." size = 2 tgui_id = "NtosPay" diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index a5aaee6dca4..a4185ea2304 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -1,7 +1,7 @@ /datum/computer_file/program/ntnetdownload filename = "ntsoftwarehub" filedesc = "NT Software Hub" - program_icon_state = "generic" + program_open_overlay = "generic" extended_desc = "This program allows downloads of software from official NT repositories" undeletable = TRUE size = 4 @@ -10,23 +10,31 @@ tgui_id = "NtosNetDownloader" program_icon = "download" + ///The program currently being downloaded. var/datum/computer_file/program/downloaded_file + ///Boolean on whether the `downloaded_file` is being downloaded from the Syndicate store, + ///in which case it will appear as 'ENCRYPTED' in logs, rather than display file name. var/hacked_download = FALSE - var/download_completion = FALSE //GQ of downloaded data. - var/download_netspeed = 0 - var/downloaderror = "" + ///How much of the data has been downloaded. + var/download_completion + ///The error message being displayed to the user, if necessary. Null if there isn't one. + var/downloaderror + ///The list of categories to display in the UI, in order of which they appear. var/static/list/show_categories = list( - PROGRAM_CATEGORY_CREW, - PROGRAM_CATEGORY_ENGI, - PROGRAM_CATEGORY_SCI, - PROGRAM_CATEGORY_SUPL, - PROGRAM_CATEGORY_MISC, + PROGRAM_CATEGORY_DEVICE, + PROGRAM_CATEGORY_EQUIPMENT, + PROGRAM_CATEGORY_GAMES, + PROGRAM_CATEGORY_SECURITY, + PROGRAM_CATEGORY_ENGINEERING, + PROGRAM_CATEGORY_SUPPLY, + PROGRAM_CATEGORY_SCIENCE, ) /datum/computer_file/program/ntnetdownload/kill_program(mob/user) - . = ..() + abort_file_download() ui_header = null + . = ..() /datum/computer_file/program/ntnetdownload/proc/begin_file_download(filename) if(downloaded_file) @@ -83,7 +91,7 @@ if(download_completion >= downloaded_file.size) complete_file_download() // Download speed according to connectivity state. NTNet server is assumed to be on unlimited speed so we're limited by our local connectivity - download_netspeed = 0 + var/download_netspeed // Speed defines are found in misc.dm switch(ntnet_status) if(NTNET_LOW_SIGNAL) @@ -92,7 +100,8 @@ download_netspeed = NTNETSPEED_HIGHSIGNAL if(NTNET_ETHERNET_SIGNAL) download_netspeed = NTNETSPEED_ETHERNET - download_completion += download_netspeed + if(download_netspeed) + download_completion += download_netspeed /datum/computer_file/program/ntnetdownload/ui_act(action, params, datum/tgui/ui, datum/ui_state/state) switch(action) @@ -103,7 +112,6 @@ if("PRG_reseterror") if(downloaderror) download_completion = FALSE - download_netspeed = FALSE downloaded_file = null downloaderror = "" return TRUE @@ -121,7 +129,6 @@ data["downloadname"] = downloaded_file.filename data["downloaddesc"] = downloaded_file.filedesc data["downloadsize"] = downloaded_file.size - data["downloadspeed"] = download_netspeed data["downloadcompletion"] = round(download_completion, 0.1) data["disk_size"] = computer.max_capacity @@ -132,14 +139,14 @@ var/list/program_categories = list() for(var/datum/computer_file/program/programs as anything in repo) - if(!(programs.category in program_categories)) - program_categories.Add(programs.category) + if(!(programs.downloader_category in program_categories)) + program_categories.Add(programs.downloader_category) data["programs"] += list(list( "icon" = programs.program_icon, "filename" = programs.filename, "filedesc" = programs.filedesc, "fileinfo" = programs.extended_desc, - "category" = programs.category, + "category" = programs.downloader_category, "installed" = !!computer.find_file_by_name(programs.filename), "compatible" = check_compatibility(programs), "size" = programs.size, @@ -151,13 +158,8 @@ return data -/datum/computer_file/program/ntnetdownload/proc/check_compatibility(datum/computer_file/program/P) - var/hardflag = computer.hardware_flag - - if(P?.is_supported_by_hardware(hardware_flag = hardflag, loud = FALSE)) - return TRUE - return FALSE - -/datum/computer_file/program/ntnetdownload/kill_program(mob/user) - abort_file_download() - return ..() +///Checks if a provided `program_to_check` is compatible to be downloaded on our computer. +/datum/computer_file/program/ntnetdownload/proc/check_compatibility(datum/computer_file/program/program_to_check) + if(!program_to_check || !program_to_check.is_supported_by_hardware(hardware_flag = computer.hardware_flag, loud = FALSE)) + return FALSE + return TRUE diff --git a/code/modules/modular_computers/file_system/programs/portrait_printer.dm b/code/modules/modular_computers/file_system/programs/portrait_printer.dm index cdfa24be1b1..63852aafa7b 100644 --- a/code/modules/modular_computers/file_system/programs/portrait_printer.dm +++ b/code/modules/modular_computers/file_system/programs/portrait_printer.dm @@ -12,8 +12,8 @@ /datum/computer_file/program/portrait_printer filename = "PortraitPrinter" filedesc = "Marlowe Treeby's Art Galaxy" - category = PROGRAM_CATEGORY_CREW - program_icon_state = "dummy" + downloader_category = PROGRAM_CATEGORY_EQUIPMENT + program_open_overlay = "dummy" extended_desc = "This program connects to a Spinward Sector community art site for viewing and printing art." download_access = list(ACCESS_LIBRARY) usage_flags = PROGRAM_CONSOLE diff --git a/code/modules/modular_computers/file_system/programs/powermonitor.dm b/code/modules/modular_computers/file_system/programs/powermonitor.dm index 9a8026ccd6c..85721361b36 100644 --- a/code/modules/modular_computers/file_system/programs/powermonitor.dm +++ b/code/modules/modular_computers/file_system/programs/powermonitor.dm @@ -3,8 +3,8 @@ /datum/computer_file/program/power_monitor filename = "ampcheck" filedesc = "AmpCheck" - category = PROGRAM_CATEGORY_ENGI - program_icon_state = "power_monitor" + downloader_category = PROGRAM_CATEGORY_ENGINEERING + program_open_overlay = "power_monitor" extended_desc = "This program connects to sensors around the station to provide information about electrical systems" ui_header = "power_norm.gif" download_access = list(ACCESS_ENGINEERING) diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm index f79ecf26d38..d4d318e9820 100644 --- a/code/modules/modular_computers/file_system/programs/radar.dm +++ b/code/modules/modular_computers/file_system/programs/radar.dm @@ -1,9 +1,9 @@ /datum/computer_file/program/radar //generic parent that handles most of the process filename = "genericfinder" filedesc = "debug_finder" - category = PROGRAM_CATEGORY_CREW + downloader_category = PROGRAM_CATEGORY_EQUIPMENT ui_header = "borg_mon.gif" //DEBUG -- new icon before PR - program_icon_state = "radarntos" + program_open_overlay = "radarntos" requires_ntnet = TRUE available_on_ntnet = FALSE usage_flags = PROGRAM_LAPTOP | PROGRAM_PDA @@ -15,7 +15,7 @@ var/selected ///Used to store when the next scan is available. COOLDOWN_DECLARE(next_scan) - ///Used to keep track of the last value program_icon_state was set to, to prevent constant unnecessary update_appearance() calls + ///Used to keep track of the last value program_open_overlay was set to, to prevent constant unnecessary update_appearance() calls var/last_icon_state = "" ///Used by the tgui interface, themed NT or Syndicate. var/arrowstyle = "ntosradarpointer.png" @@ -181,10 +181,10 @@ var/atom/movable/signal = find_atom() if(!trackable(signal)) - program_icon_state = "[initial(program_icon_state)]lost" - if(last_icon_state != program_icon_state) + program_open_overlay = "[initial(program_open_overlay)]lost" + if(last_icon_state != program_open_overlay) computer.update_appearance() - last_icon_state = program_icon_state + last_icon_state = program_open_overlay return var/here_turf = get_turf(computer) @@ -192,17 +192,17 @@ var/trackdistance = get_dist_euclidian(here_turf, target_turf) switch(trackdistance) if(0) - program_icon_state = "[initial(program_icon_state)]direct" + program_open_overlay = "[initial(program_open_overlay)]direct" if(1 to 12) - program_icon_state = "[initial(program_icon_state)]close" + program_open_overlay = "[initial(program_open_overlay)]close" if(13 to 24) - program_icon_state = "[initial(program_icon_state)]medium" + program_open_overlay = "[initial(program_open_overlay)]medium" if(25 to INFINITY) - program_icon_state = "[initial(program_icon_state)]far" + program_open_overlay = "[initial(program_open_overlay)]far" - if(last_icon_state != program_icon_state) + if(last_icon_state != program_open_overlay) computer.update_appearance() - last_icon_state = program_icon_state + last_icon_state = program_open_overlay computer.setDir(get_dir(here_turf, target_turf)) //We can use process_tick to restart fast processing, since the computer will be running this constantly either way. @@ -302,8 +302,7 @@ /datum/computer_file/program/radar/fission360 filename = "fission360" filedesc = "Fission360" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "radarsyndicate" + program_open_overlay = "radarsyndicate" extended_desc = "This program allows for tracking of nuclear authorization disks and warheads." requires_ntnet = FALSE available_on_ntnet = FALSE diff --git a/code/modules/modular_computers/file_system/programs/records.dm b/code/modules/modular_computers/file_system/programs/records.dm index e8d61cda2ea..4f42dd0e1be 100644 --- a/code/modules/modular_computers/file_system/programs/records.dm +++ b/code/modules/modular_computers/file_system/programs/records.dm @@ -2,9 +2,9 @@ filename = "ntrecords" filedesc = "Records" extended_desc = "Allows the user to view several basic records from the crew." - category = PROGRAM_CATEGORY_MISC + downloader_category = PROGRAM_CATEGORY_SECURITY program_icon = "clipboard" - program_icon_state = "crew" + program_open_overlay = "crew" tgui_id = "NtosRecords" size = 4 usage_flags = PROGRAM_PDA | PROGRAM_LAPTOP diff --git a/code/modules/modular_computers/file_system/programs/robocontrol.dm b/code/modules/modular_computers/file_system/programs/robocontrol.dm index 52bfafdcf8e..edb37529367 100644 --- a/code/modules/modular_computers/file_system/programs/robocontrol.dm +++ b/code/modules/modular_computers/file_system/programs/robocontrol.dm @@ -2,8 +2,8 @@ /datum/computer_file/program/robocontrol filename = "botkeeper" filedesc = "BotKeeper" - category = PROGRAM_CATEGORY_SCI - program_icon_state = "robot" + downloader_category = PROGRAM_CATEGORY_SCIENCE + program_open_overlay = "robot" extended_desc = "A remote controller used for giving basic commands to non-sentient robots." requires_ntnet = TRUE size = 6 diff --git a/code/modules/modular_computers/file_system/programs/robotact.dm b/code/modules/modular_computers/file_system/programs/robotact.dm index 79c3ca93112..e89fab4258c 100644 --- a/code/modules/modular_computers/file_system/programs/robotact.dm +++ b/code/modules/modular_computers/file_system/programs/robotact.dm @@ -1,10 +1,10 @@ /datum/computer_file/program/robotact filename = "robotact" filedesc = "RoboTact" - category = PROGRAM_CATEGORY_SCI + downloader_category = PROGRAM_CATEGORY_SCIENCE extended_desc = "A built-in app for cyborg self-management and diagnostics." ui_header = "robotact.gif" //DEBUG -- new icon before PR - program_icon_state = "command" + program_open_overlay = "command" requires_ntnet = FALSE available_on_ntnet = FALSE undeletable = TRUE @@ -21,7 +21,7 @@ if(.) var/obj/item/modular_computer/pda/silicon/tablet = computer if(tablet.device_theme == PDA_THEME_SYNDICATE) - program_icon_state = "command-syndicate" + program_open_overlay = "command-syndicate" return TRUE return FALSE diff --git a/code/modules/modular_computers/file_system/programs/secureye.dm b/code/modules/modular_computers/file_system/programs/secureye.dm index bb31d74f9ab..3e1f19a935a 100644 --- a/code/modules/modular_computers/file_system/programs/secureye.dm +++ b/code/modules/modular_computers/file_system/programs/secureye.dm @@ -3,9 +3,9 @@ /datum/computer_file/program/secureye filename = "secureye" filedesc = "SecurEye" - category = PROGRAM_CATEGORY_MISC + downloader_category = PROGRAM_CATEGORY_SECURITY ui_header = "borg_mon.gif" - program_icon_state = "generic" + program_open_overlay = "generic" extended_desc = "This program allows access to standard security camera networks." requires_ntnet = TRUE download_access = list(ACCESS_SECURITY) diff --git a/code/modules/modular_computers/file_system/programs/signalcommander.dm b/code/modules/modular_computers/file_system/programs/signalcommander.dm index 81b95f1f5ba..8e98b4ce7a8 100644 --- a/code/modules/modular_computers/file_system/programs/signalcommander.dm +++ b/code/modules/modular_computers/file_system/programs/signalcommander.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/signal_commander filename = "signaler" filedesc = "SignalCommander" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "signal" + downloader_category = PROGRAM_CATEGORY_EQUIPMENT + program_open_overlay = "signal" extended_desc = "A small built-in frequency app that sends out signaller signals with the appropriate hardware." size = 2 tgui_id = "NtosSignaler" diff --git a/code/modules/modular_computers/file_system/programs/skill_tracker.dm b/code/modules/modular_computers/file_system/programs/skill_tracker.dm index 787aeb9f910..e1bdf745fb0 100644 --- a/code/modules/modular_computers/file_system/programs/skill_tracker.dm +++ b/code/modules/modular_computers/file_system/programs/skill_tracker.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/skill_tracker filename = "skilltracker" filedesc = "ExperTrak Skill Tracker" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "generic" + downloader_category = PROGRAM_CATEGORY_DEVICE + program_open_overlay = "generic" extended_desc = "Scan and view your current marketable job skills." size = 2 tgui_id = "NtosSkillTracker" diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index e310d402e9e..f3b0c44f934 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -1,9 +1,9 @@ /datum/computer_file/program/supermatter_monitor filename = "ntcims" filedesc = "NT CIMS" - category = PROGRAM_CATEGORY_ENGI + downloader_category = PROGRAM_CATEGORY_ENGINEERING ui_header = "smmon_0.gif" - program_icon_state = "smmon_0" + program_open_overlay = "smmon_0" extended_desc = "Crystal Integrity Monitoring System, connects to specially calibrated supermatter sensors to provide information on the status of supermatter-based engines." requires_ntnet = TRUE download_access = list(ACCESS_CONSTRUCTION) @@ -109,6 +109,6 @@ if(last_status != new_status) last_status = new_status ui_header = "smmon_[last_status].gif" - program_icon_state = "smmon_[last_status]" + program_open_overlay = "smmon_[last_status]" if(istype(computer)) computer.update_appearance() diff --git a/code/modules/modular_computers/file_system/programs/statusdisplay.dm b/code/modules/modular_computers/file_system/programs/statusdisplay.dm index 9350254f646..d6f9a817748 100644 --- a/code/modules/modular_computers/file_system/programs/statusdisplay.dm +++ b/code/modules/modular_computers/file_system/programs/statusdisplay.dm @@ -2,7 +2,7 @@ filename = "statusdisplay" filedesc = "Status Display" program_icon = "signal" - program_icon_state = "generic" + program_open_overlay = "generic" requires_ntnet = TRUE size = 1 diff --git a/code/modules/modular_computers/file_system/programs/techweb.dm b/code/modules/modular_computers/file_system/programs/techweb.dm index ad503422b47..df946dd9b24 100644 --- a/code/modules/modular_computers/file_system/programs/techweb.dm +++ b/code/modules/modular_computers/file_system/programs/techweb.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/science filename = "experi_track" filedesc = "Nanotrasen Science Hub" - category = PROGRAM_CATEGORY_SCI - program_icon_state = "research" + downloader_category = PROGRAM_CATEGORY_SCIENCE + program_open_overlay = "research" extended_desc = "Connect to the internal science server in order to assist in station research efforts." requires_ntnet = TRUE size = 10 diff --git a/code/modules/modular_computers/file_system/programs/theme_selector.dm b/code/modules/modular_computers/file_system/programs/theme_selector.dm index 9bc15a1a00b..8dca856a238 100644 --- a/code/modules/modular_computers/file_system/programs/theme_selector.dm +++ b/code/modules/modular_computers/file_system/programs/theme_selector.dm @@ -2,7 +2,7 @@ filename = "themeify" filedesc = "Themeify" extended_desc = "This program allows configuration of your device's theme." - program_icon_state = "generic" + program_open_overlay = "generic" undeletable = TRUE size = 0 header_program = TRUE diff --git a/code/modules/modular_computers/file_system/programs/wirecarp.dm b/code/modules/modular_computers/file_system/programs/wirecarp.dm index ed83f2ca334..8e4acbcb38a 100644 --- a/code/modules/modular_computers/file_system/programs/wirecarp.dm +++ b/code/modules/modular_computers/file_system/programs/wirecarp.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/ntnetmonitor filename = "wirecarp" filedesc = "WireCarp" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "comm_monitor" + downloader_category = PROGRAM_CATEGORY_SECURITY + program_open_overlay = "comm_monitor" extended_desc = "This program monitors stationwide NTNet network, provides access to logging systems, and allows for configuration changes" size = 12 requires_ntnet = TRUE @@ -51,7 +51,7 @@ data["idsalarm"] = SSmodular_computers.intrusion_detection_alarm data["ntnetlogs"] = list() - for(var/i in SSmodular_computers.logs) + for(var/i in SSmodular_computers.modpc_logs) data["ntnetlogs"] += list(list("entry" = i)) data["tablets"] = list() diff --git a/modular_skyrat/modules/GAGS/json_configs/head/cowboy/three_layer_hats.json b/modular_skyrat/modules/GAGS/json_configs/head/cowboy/three_layer_hats.json index 088edebfcae..0e033417d24 100644 --- a/modular_skyrat/modules/GAGS/json_configs/head/cowboy/three_layer_hats.json +++ b/modular_skyrat/modules/GAGS/json_configs/head/cowboy/three_layer_hats.json @@ -17,12 +17,6 @@ "icon_state": "feather", "blend_mode": "overlay", "color_ids": [ 3 ] - }, - { - "type": "icon_state", - "icon_state": "back", - "blend_mode": "overlay", - "color_ids": [ 4 ] } ], "flatbrim_cowl": [ diff --git a/modular_skyrat/modules/lorecaster/code/archive_viewer.dm b/modular_skyrat/modules/lorecaster/code/archive_viewer.dm index a68478faa66..e85b91fab5a 100644 --- a/modular_skyrat/modules/lorecaster/code/archive_viewer.dm +++ b/modular_skyrat/modules/lorecaster/code/archive_viewer.dm @@ -1,8 +1,8 @@ /datum/computer_file/program/news_archive filename = "NewsArchive" filedesc = "Nanotrasen News Archives" - category = PROGRAM_CATEGORY_CREW - program_icon_state = "generic" + downloader_category = PROGRAM_CATEGORY_EQUIPMENT + program_open_overlay = "generic" extended_desc = "This program lets you view out-of-circulation articles from the Nanotrasen News Network." usage_flags = PROGRAM_ALL requires_ntnet = TRUE diff --git a/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm b/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm index 1bab63287bc..5d7e97ecd14 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm @@ -14,7 +14,7 @@ GLOBAL_LIST_INIT(purchasable_nifsofts, list( filename = "nifsoftcatalog" filedesc = "NIFSoft Catalog" extended_desc = "A virtual storefront that allows the user to install NIFSofts and purchase various NIF related products" - category = PROGRAM_CATEGORY_MISC + downloader_category = PROGRAM_CATEGORY_DEVICE size = 3 tgui_id = "NtosNifsoftCatalog" program_icon = "bag-shopping" diff --git a/tgstation.dme b/tgstation.dme index c1741293134..a53051fde53 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5116,7 +5116,6 @@ #include "code\modules\modular_computers\file_system\programs\notepad.dm" #include "code\modules\modular_computers\file_system\programs\nt_pay.dm" #include "code\modules\modular_computers\file_system\programs\ntdownloader.dm" -#include "code\modules\modular_computers\file_system\programs\ntnrc_client.dm" #include "code\modules\modular_computers\file_system\programs\portrait_printer.dm" #include "code\modules\modular_computers\file_system\programs\powermonitor.dm" #include "code\modules\modular_computers\file_system\programs\radar.dm" @@ -5134,6 +5133,8 @@ #include "code\modules\modular_computers\file_system\programs\antagonist\contractor_program.dm" #include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" #include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" +#include "code\modules\modular_computers\file_system\programs\chatroom\conversation.dm" +#include "code\modules\modular_computers\file_system\programs\chatroom\ntnrc_client.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\_maintenance_program.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\camera.dm" #include "code\modules\modular_computers\file_system\programs\maintenance\modsuit.dm" @@ -5141,7 +5142,6 @@ #include "code\modules\modular_computers\file_system\programs\maintenance\themes.dm" #include "code\modules\modular_computers\file_system\programs\messenger\messenger_data.dm" #include "code\modules\modular_computers\file_system\programs\messenger\messenger_program.dm" -#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" #include "code\modules\movespeed\_movespeed_modifier.dm" #include "code\modules\movespeed\modifiers\components.dm" #include "code\modules\movespeed\modifiers\drugs.dm"