From 4ebeec67d6aa8f28833ebee8bf9cc8ba456c3340 Mon Sep 17 00:00:00 2001 From: Shadowlight213 Date: Sat, 6 Aug 2016 23:05:05 -0700 Subject: [PATCH] Adds header icons Does some fixes and cleanup Some consoles added to the map and tablets added to job loadouts for testmerging. --- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 6 +- code/game/machinery/recharger.dm | 10 ++- .../items/stacks/sheets/sheet_types.dm | 1 + code/modules/client/asset_cache.dm | 30 +++++++ code/modules/jobs/job_types/assistant.dm | 2 + code/modules/jobs/job_types/captain.dm | 4 +- code/modules/jobs/job_types/cargo_service.dm | 8 +- code/modules/jobs/job_types/civilian.dm | 6 +- .../jobs/job_types/civilian_chaplain.dm | 1 + code/modules/jobs/job_types/engineering.dm | 4 +- code/modules/jobs/job_types/medical.dm | 6 +- code/modules/jobs/job_types/science.dm | 4 +- code/modules/jobs/job_types/security.dm | 8 +- .../NTNet/NTNRC/conversation.dm | 7 +- code/modules/modular_computers/NTNet/NTNet.dm | 46 ++++++----- .../modular_computers/NTNet/NTNet_relay.dm | 27 +----- .../computers/item/modular_computer.dm | 70 +++++++++------- .../computers/item/processor.dm | 17 ++-- .../computers/item/tablet_presets.dm | 4 +- .../computers/machinery/modular_computer.dm | 17 ++-- .../file_system/computer_file.dm | 2 +- .../modular_computers/file_system/program.dm | 10 +-- .../file_system/programs/antagonist/dos.dm | 1 - .../file_system/programs/card.dm | 77 ++++++++++++++++-- .../file_system/programs/configurator.dm | 12 +-- .../file_system/programs/file_browser.dm | 6 +- .../file_system/programs/ntdownloader.dm | 22 +++-- .../file_system/programs/ntmonitor.dm | 5 ++ .../file_system/programs/ntnrc_client.dm | 12 ++- .../file_system/programs/nttransfer.dm | 7 +- .../file_system/programs/powermonitor.dm | 5 ++ .../hardware/network_card.dm | 2 +- icons/program_icons/alarm_green.gif | Bin 0 -> 107 bytes icons/program_icons/alarm_red.gif | Bin 0 -> 163 bytes icons/program_icons/batt_100.gif | Bin 0 -> 173 bytes icons/program_icons/batt_20.gif | Bin 0 -> 284 bytes icons/program_icons/batt_40.gif | Bin 0 -> 185 bytes icons/program_icons/batt_5.gif | Bin 0 -> 273 bytes icons/program_icons/batt_60.gif | Bin 0 -> 166 bytes icons/program_icons/batt_80.gif | Bin 0 -> 172 bytes icons/program_icons/charging.gif | Bin 0 -> 160 bytes icons/program_icons/downloader_finished.gif | Bin 0 -> 130 bytes icons/program_icons/downloader_running.gif | Bin 0 -> 574 bytes icons/program_icons/ntnrc_idle.gif | Bin 0 -> 113 bytes icons/program_icons/ntnrc_new.gif | Bin 0 -> 181 bytes icons/program_icons/power_norm.gif | Bin 0 -> 431 bytes icons/program_icons/power_warn.gif | Bin 0 -> 485 bytes icons/program_icons/sig_high.gif | Bin 0 -> 182 bytes icons/program_icons/sig_lan.gif | Bin 0 -> 191 bytes icons/program_icons/sig_low.gif | Bin 0 -> 179 bytes icons/program_icons/sig_none.gif | Bin 0 -> 202 bytes 51 files changed, 282 insertions(+), 157 deletions(-) create mode 100644 icons/program_icons/alarm_green.gif create mode 100644 icons/program_icons/alarm_red.gif create mode 100644 icons/program_icons/batt_100.gif create mode 100644 icons/program_icons/batt_20.gif create mode 100644 icons/program_icons/batt_40.gif create mode 100644 icons/program_icons/batt_5.gif create mode 100644 icons/program_icons/batt_60.gif create mode 100644 icons/program_icons/batt_80.gif create mode 100644 icons/program_icons/charging.gif create mode 100644 icons/program_icons/downloader_finished.gif create mode 100644 icons/program_icons/downloader_running.gif create mode 100644 icons/program_icons/ntnrc_idle.gif create mode 100644 icons/program_icons/ntnrc_new.gif create mode 100644 icons/program_icons/power_norm.gif create mode 100644 icons/program_icons/power_warn.gif create mode 100644 icons/program_icons/sig_high.gif create mode 100644 icons/program_icons/sig_lan.gif create mode 100644 icons/program_icons/sig_low.gif create mode 100644 icons/program_icons/sig_none.gif diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 753df9896f2..4d23903abfa 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -35139,6 +35139,7 @@ }, /area/crew_quarters/hor) "bzN" = ( +/obj/machinery/modular_computer/console/preset/research, /turf/open/floor/plasteel/warnwhite{ dir = 6 }, @@ -47471,6 +47472,7 @@ /obj/machinery/power/terminal{ dir = 4 }, +/obj/machinery/ntnet_relay, /turf/open/floor/bluegrid{ name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80" @@ -49066,13 +49068,11 @@ /turf/open/floor/plating, /area/maintenance/aft) "cdk" = ( -/obj/machinery/computer/monitor{ - name = "primary power monitoring console" - }, /obj/structure/cable{ icon_state = "0-2"; d2 = 2 }, +/obj/machinery/modular_computer/console/preset/engineering, /turf/open/floor/plasteel, /area/engine/engineering) "cdl" = ( diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 2a4b37d4fd4..0e267848fe6 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -36,7 +36,7 @@ playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) return - if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton) || istype(G, /obj/item/ammo_box/magazine/recharge)) + if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton) || istype(G, /obj/item/ammo_box/magazine/recharge) || istype(G, /obj/item/weapon/computer_hardware/battery_module)) if(anchored) if(charging || panel_open) return 1 @@ -127,6 +127,14 @@ use_power(200 * recharge_coeff) using_power = 1 + if(istype(charging, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/computer_hardware/battery_module/B = charging + if(B.battery) + if(B.battery.charge < B.battery.maxcharge) + B.battery.give(B.battery.chargerate * recharge_coeff) + use_power(200 * recharge_coeff) + using_power = 1 + update_icon(using_power) /obj/machinery/recharger/power_change() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 95a6e9909f7..980f9b8c882 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -30,6 +30,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = 1, on_floor = 1), \ null, \ new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = 1, on_floor = 1), \ +/* new/datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = 1, on_floor = 1), \*/ new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = 1, on_floor = 1), \ diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index ca83278c923..5ee5114ce07 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -179,6 +179,36 @@ You can set verify to TRUE if you want send() to sleep until the client has the "tgui.js" = 'tgui/assets/tgui.js' ) +/datum/asset/simple/headers + assets = list( + "alarm_green.gif" = 'icons/program_icons/alarm_green.gif', + "alarm_red.gif" = 'icons/program_icons/alarm_red.gif', + "batt_5.gif" = 'icons/program_icons/batt_5.gif', + "batt_20.gif" = 'icons/program_icons/batt_20.gif', + "batt_40.gif" = 'icons/program_icons/batt_40.gif', + "batt_60.gif" = 'icons/program_icons/batt_60.gif', + "batt_80.gif" = 'icons/program_icons/batt_80.gif', + "batt_100.gif" = 'icons/program_icons/batt_100.gif', + "charging.gif" = 'icons/program_icons/charging.gif', + "downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif', + "downloader_running.gif" = 'icons/program_icons/downloader_running.gif', + "ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif', + "ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif', + "power_norm.gif" = 'icons/program_icons/power_norm.gif', + "power_warn.gif" = 'icons/program_icons/power_warn.gif', + "sig_high.gif" = 'icons/program_icons/sig_high.gif', + "sig_low.gif" = 'icons/program_icons/sig_low.gif', + "sig_lan.gif" = 'icons/program_icons/sig_lan.gif', + "sig_none.gif" = 'icons/program_icons/sig_none.gif', + ) + + + + + + + + /datum/asset/simple/pda assets = list( "pda_atmos.png" = 'icons/pda_icons/pda_atmos.png', diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index 9a1822fad7e..13686960cdc 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -14,6 +14,7 @@ Assistant minimal_access = list() //See /datum/job/assistant/get_access() outfit = /datum/outfit/job/assistant + /datum/job/assistant/get_access() if((config.jobs_have_maint_access & ASSISTANTS_HAVE_MAINT_ACCESS) || !config.jobs_have_minimal_access) //Config has assistant maint access set . = ..() @@ -31,6 +32,7 @@ Assistant /datum/outfit/job/assistant name = "Assistant" + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) /datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H) ..() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index b605a977be8..e1987dbdd30 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -35,7 +35,7 @@ Captain suit = /obj/item/clothing/suit/armor/vest/capcarapace shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/caphat - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/station_charter=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/station_charter=1, /obj/item/modular_computer/tablet/preset/advanced = 1) backpack = /obj/item/weapon/storage/backpack/captain satchel = /obj/item/weapon/storage/backpack/satchel/cap @@ -99,7 +99,7 @@ Head of Personnel shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hopcap backpack_contents = list(/obj/item/weapon/storage/box/ids=1,\ - /obj/item/weapon/melee/classic_baton/telescopic=1) + /obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) /datum/outfit/job/hop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm index 6cc148adfbd..1ab91a61d11 100644 --- a/code/modules/jobs/job_types/cargo_service.dm +++ b/code/modules/jobs/job_types/cargo_service.dm @@ -26,6 +26,7 @@ Quartermaster shoes = /obj/item/clothing/shoes/sneakers/brown glasses = /obj/item/clothing/glasses/sunglasses l_hand = /obj/item/weapon/clipboard + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap=1) /* Cargo Technician @@ -52,6 +53,7 @@ Cargo Technician belt = /obj/item/device/pda/cargo ears = /obj/item/device/radio/headset/headset_cargo uniform = /obj/item/clothing/under/rank/cargotech + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap=1) /* @@ -92,6 +94,7 @@ Shaft Miner satchel = /obj/item/weapon/storage/backpack/satchel/explorer dufflebag = /obj/item/weapon/storage/backpack/dufflebag box = /obj/item/weapon/storage/box/survival_mining + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap=1) /* Bartender @@ -121,7 +124,7 @@ Bartender ears = /obj/item/device/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/bartender suit = /obj/item/clothing/suit/armor/vest - backpack_contents = list(/obj/item/weapon/storage/box/beanbag=1) + backpack_contents = list(/obj/item/weapon/storage/box/beanbag=1,/obj/item/modular_computer/tablet/preset/cheap=1) shoes = /obj/item/clothing/shoes/laceup /* @@ -152,6 +155,7 @@ Cook uniform = /obj/item/clothing/under/rank/chef suit = /obj/item/clothing/suit/toggle/chef head = /obj/item/clothing/head/chefhat + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap=1) /datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H) ..() @@ -200,6 +204,7 @@ Botanist backpack = /obj/item/weapon/storage/backpack/botany satchel = /obj/item/weapon/storage/backpack/satchel/hyd + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap=1) /* @@ -228,3 +233,4 @@ Janitor belt = /obj/item/device/pda/janitor ears = /obj/item/device/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/janitor + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap=1) diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index faa6818ec73..5a2071b1404 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -31,7 +31,8 @@ Clown /obj/item/weapon/reagent_containers/spray/waterflower = 1, /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, /obj/item/device/megaphone/clown = 1, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1 + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1, + /obj/item/modular_computer/tablet/preset/advanced = 1 ) backpack = /obj/item/weapon/storage/backpack/clown @@ -88,7 +89,7 @@ Mime head = /obj/item/clothing/head/beret suit = /obj/item/clothing/suit/suspenders backpack_contents = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing=1,\ - /obj/item/toy/crayon/mime=1) + /obj/item/toy/crayon/mime=1,/obj/item/modular_computer/tablet/preset/cheap = 1) backpack = /obj/item/weapon/storage/backpack/mime satchel = /obj/item/weapon/storage/backpack/mime @@ -165,6 +166,7 @@ Lawyer shoes = /obj/item/clothing/shoes/laceup l_hand = /obj/item/weapon/storage/briefcase/lawyer l_pocket = /obj/item/device/laser_pointer + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) /datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index 9eaedeb2552..2bb570bcdcc 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -26,6 +26,7 @@ Chaplain backpack_contents = list(/obj/item/device/camera/spooky = 1) backpack = /obj/item/weapon/storage/backpack/cultpack satchel = /obj/item/weapon/storage/backpack/cultpack + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) /datum/outfit/job/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 77bac526440..033288a82e2 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -36,7 +36,7 @@ Chief Engineer shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hardhat/white gloves = /obj/item/clothing/gloves/color/black/ce - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/modular_computer/tablet/preset/advanced = 1) backpack = /obj/item/weapon/storage/backpack/industrial satchel = /obj/item/weapon/storage/backpack/satchel/eng @@ -85,6 +85,7 @@ Station Engineer r_pocket = /obj/item/device/t_scanner backpack = /obj/item/weapon/storage/backpack/industrial + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap=1) satchel = /obj/item/weapon/storage/backpack/satchel/eng dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering box = /obj/item/weapon/storage/box/engineer @@ -122,5 +123,6 @@ Atmospheric Technician backpack = /obj/item/weapon/storage/backpack/industrial satchel = /obj/item/weapon/storage/backpack/satchel/eng dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) box = /obj/item/weapon/storage/box/engineer pda_slot = slot_l_store \ No newline at end of file diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 1e1b2d71311..0c3f477f232 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -34,7 +34,7 @@ Chief Medical Officer suit = /obj/item/clothing/suit/toggle/labcoat/cmo l_hand = /obj/item/weapon/storage/firstaid/regular suit_store = /obj/item/device/flashlight/pen - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/medic satchel = /obj/item/weapon/storage/backpack/satchel/med @@ -81,6 +81,7 @@ Medical Doctor backpack = /obj/item/weapon/storage/backpack/medic satchel = /obj/item/weapon/storage/backpack/satchel/med dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) /* Chemist @@ -114,6 +115,7 @@ Chemist backpack = /obj/item/weapon/storage/backpack/chemistry satchel = /obj/item/weapon/storage/backpack/satchel/chem dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) /* Geneticist @@ -147,6 +149,7 @@ Geneticist backpack = /obj/item/weapon/storage/backpack/genetics satchel = /obj/item/weapon/storage/backpack/satchel/gen dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) /* Virologist @@ -181,3 +184,4 @@ Virologist backpack = /obj/item/weapon/storage/backpack/virology satchel = /obj/item/weapon/storage/backpack/satchel/vir dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index fa163abbf8c..1ecf799a4ab 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -38,7 +38,7 @@ Research Director suit = /obj/item/clothing/suit/toggle/labcoat l_hand = /obj/item/weapon/clipboard l_pocket = /obj/item/device/laser_pointer - backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1) + backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/science satchel = /obj/item/weapon/storage/backpack/satchel/tox @@ -81,6 +81,7 @@ Scientist backpack = /obj/item/weapon/storage/backpack/science satchel = /obj/item/weapon/storage/backpack/satchel/tox + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) /* Roboticist @@ -112,5 +113,6 @@ Roboticist backpack = /obj/item/weapon/storage/backpack/science satchel = /obj/item/weapon/storage/backpack/satchel/tox + backpack_contents = list(/obj/item/modular_computer/tablet/preset/cheap = 1) pda_slot = slot_l_store diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index ec5b4a2db64..c683c233741 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -46,7 +46,7 @@ Head of Security suit_store = /obj/item/weapon/gun/energy/gun r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs - backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) + backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1, /obj/item/modular_computer/tablet/preset/advanced = 1) backpack = /obj/item/weapon/storage/backpack/security satchel = /obj/item/weapon/storage/backpack/satchel/sec @@ -104,7 +104,7 @@ Warden r_pocket = /obj/item/device/assembly/flash/handheld l_pocket = /obj/item/weapon/restraints/handcuffs suit_store = /obj/item/weapon/gun/energy/gun/advtaser - backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) + backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1,/obj/item/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/weapon/storage/backpack/security satchel = /obj/item/weapon/storage/backpack/satchel/sec @@ -158,7 +158,7 @@ Detective backpack_contents = list(/obj/item/weapon/storage/box/evidence=1,\ /obj/item/device/detective_scanner=1,\ /obj/item/weapon/melee/classic_baton=1,\ - /obj/item/weapon/reagent_containers/food/drinks/flask/det) + /obj/item/weapon/reagent_containers/food/drinks/flask/det=1,/obj/item/modular_computer/tablet/preset/cheap=1) mask = /obj/item/clothing/mask/cigarette /datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -214,7 +214,7 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science") l_pocket = /obj/item/weapon/restraints/handcuffs r_pocket = /obj/item/device/assembly/flash/handheld suit_store = /obj/item/weapon/gun/energy/gun/advtaser - backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1) + backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1,/obj/item/modular_computer/tablet/preset/advanced = 1) backpack = /obj/item/weapon/storage/backpack/security satchel = /obj/item/weapon/storage/backpack/satchel/sec diff --git a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm index a3310dec696..fad69527bb3 100644 --- a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm +++ b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm @@ -1,4 +1,4 @@ -var/global/ntnrc_uid = 0 +var/global/static/ntnrc_uid = 0 /datum/ntnet_conversation/ var/id = null @@ -27,10 +27,7 @@ var/global/ntnrc_uid = 0 /datum/ntnet_conversation/proc/trim_message_list() if(messages.len <= 50) return - for(var/message in messages) - messages -= message - if(messages <= 50) - return + messages = messages.Copy(messages.len-50 ,0) /datum/ntnet_conversation/proc/add_client(var/datum/computer_file/program/chatclient/C) if(!istype(C)) diff --git a/code/modules/modular_computers/NTNet/NTNet.dm b/code/modules/modular_computers/NTNet/NTNet.dm index d1d67403d9e..498bd206b7f 100644 --- a/code/modules/modular_computers/NTNet/NTNet.dm +++ b/code/modules/modular_computers/NTNet/NTNet.dm @@ -35,7 +35,7 @@ var/global/datum/ntnet/ntnet_global = new() add_log("NTNet logging system activated.") // Simplified logging: Adds a log. log_string is mandatory parameter, source is optional. -/datum/ntnet/proc/add_log(var/log_string, var/obj/item/weapon/computer_hardware/network_card/source = null) +/datum/ntnet/proc/add_log(log_string, obj/item/weapon/computer_hardware/network_card/source = null) var/log_text = "[worldtime2text()] - " if(source) log_text += "[source.get_network_tag()] - " @@ -44,23 +44,22 @@ var/global/datum/ntnet/ntnet_global = new() log_text += log_string logs.Add(log_text) + + // We have too many logs, remove the oldest entries until we get into the limit if(logs.len > setting_maxlogcount) - // We have too many logs, remove the oldest entries until we get into the limit - for(var/L in logs) - if(logs.len > setting_maxlogcount) - logs.Remove(L) - else - break + logs = logs.Copy(logs.len-setting_maxlogcount,0) + // Checks whether NTNet operates. If parameter is passed checks whether specific function is enabled. -/datum/ntnet/proc/check_function(var/specific_action = 0) +/datum/ntnet/proc/check_function(specific_action = 0) if(!relays || !relays.len) // No relays found. NTNet is down return 0 var/operating = 0 // Check all relays. If we have at least one working relay, network is up. - for(var/obj/machinery/ntnet_relay/R in relays) + for(var/M in relays) + var/obj/machinery/ntnet_relay/R = M if(R.is_operational()) operating = 1 break @@ -68,14 +67,15 @@ var/global/datum/ntnet/ntnet_global = new() if(setting_disabled) return 0 - if(specific_action == NTNET_SOFTWAREDOWNLOAD) - return (operating && setting_softwaredownload) - if(specific_action == NTNET_PEERTOPEER) - return (operating && setting_peertopeer) - if(specific_action == NTNET_COMMUNICATION) - return (operating && setting_communication) - if(specific_action == NTNET_SYSTEMCONTROL) - return (operating && setting_systemcontrol) + switch(specific_action) + if(NTNET_SOFTWAREDOWNLOAD) + return (operating && setting_softwaredownload) + if(NTNET_PEERTOPEER) + return (operating && setting_peertopeer) + if(NTNET_COMMUNICATION) + return (operating && setting_communication) + if(NTNET_SYSTEMCONTROL) + return (operating && setting_systemcontrol) return operating // Builds lists that contain downloadable software. @@ -94,11 +94,13 @@ var/global/datum/ntnet/ntnet_global = new() available_antag_software.Add(prog) // Attempts to find a downloadable file according to filename var -/datum/ntnet/proc/find_ntnet_file_by_name(var/filename) - for(var/datum/computer_file/program/P in available_station_software) +/datum/ntnet/proc/find_ntnet_file_by_name(filename) + for(var/N in available_station_software) + var/datum/computer_file/program/P = N if(filename == P.filename) return P - for(var/datum/computer_file/program/P in available_antag_software) + for(var/N in available_antag_software) + var/datum/computer_file/program/P = N if(filename == P.filename) return P @@ -116,7 +118,7 @@ var/global/datum/ntnet/ntnet_global = new() add_log("-!- LOGS DELETED BY SYSTEM OPERATOR -!-") // Updates maximal amount of stored logs. Use this instead of setting the number, it performs required checks. -/datum/ntnet/proc/update_max_log_count(var/lognumber) +/datum/ntnet/proc/update_max_log_count(lognumber) if(!lognumber) return 0 // Trim the value if necessary @@ -124,7 +126,7 @@ var/global/datum/ntnet/ntnet_global = new() setting_maxlogcount = lognumber add_log("Configuration Updated. Now keeping [setting_maxlogcount] logs in system memory.") -/datum/ntnet/proc/toggle_function(var/function) +/datum/ntnet/proc/toggle_function(function) if(!function) return function = text2num(function) diff --git a/code/modules/modular_computers/NTNet/NTNet_relay.dm b/code/modules/modular_computers/NTNet/NTNet_relay.dm index 00c6447f7e6..013a4b6a29d 100644 --- a/code/modules/modular_computers/NTNet/NTNet_relay.dm +++ b/code/modules/modular_computers/NTNet/NTNet_relay.dm @@ -91,34 +91,9 @@ -/* - - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if (!ui) - ui = new(user, src, ui_key, "ntnet_relay.tmpl", "NTNet Quantum Relay", 500, 300, state = state) - ui.set_initial_data(data) - ui.open() - ui.set_auto_update(1) - -*/ - -/obj/machinery/ntnet_relay/attack_hand(var/mob/living/user) +/obj/machinery/ntnet_relay/attack_hand(mob/living/user) ui_interact(user) -/* -/obj/machinery/ntnet_relay/Topic(href, href_list) - if(..()) - return 1 - if(href_list["restart"]) - dos_overload = 0 - dos_failure = 0 - update_icon() - ntnet_global.add_log("Quantum relay manually restarted from overload recovery mode to normal operation mode.") - else if(href_list["toggle"]) - enabled = !enabled - ntnet_global.add_log("Quantum relay manually [enabled ? "enabled" : "disabled"].") - update_icon() -*/ /obj/machinery/ntnet_relay/New() uid = gl_uid gl_uid++ diff --git a/code/modules/modular_computers/computers/item/modular_computer.dm b/code/modules/modular_computers/computers/item/modular_computer.dm index 780484b44a8..a9df960cb5d 100644 --- a/code/modules/modular_computers/computers/item/modular_computer.dm +++ b/code/modules/modular_computers/computers/item/modular_computer.dm @@ -45,7 +45,6 @@ var/obj/item/weapon/computer_hardware/hard_drive/portable/portable_drive // Portable data storage var/list/idle_threads = list() // Idle programs on background. They still receive process calls but can't be interacted with. - var/activetemplate = "computer_main" var/obj/physical = null @@ -97,7 +96,8 @@ if(active_program) active_program.event_idremoved(0) - for(var/datum/computer_file/program/P in idle_threads) + for(var/I in idle_threads) + var/datum/computer_file/program/P = I P.event_idremoved(1) card_slot.stored_card.forceMove(get_turf(src)) @@ -152,7 +152,8 @@ kill_program(1) machines.Remove(src) STOP_PROCESSING(SSmachine, src) - for(var/obj/item/weapon/computer_hardware/CH in src.get_all_components()) + for(var/H in src.get_all_components()) + var/obj/item/weapon/computer_hardware/CH = H uninstall_component(null, CH) qdel(CH) return ..() @@ -162,9 +163,7 @@ overlays.Cut() if(!enabled) - //set_light(0) return - //set_light(light_strength) if(active_program) overlays.Add(active_program.program_icon_state ? active_program.program_icon_state : icon_state_menu) else @@ -182,10 +181,10 @@ if(ui) ui.close() return 0 -// if((!battery_module || !battery_module.battery.charge) && !check_power_override()) -// if(ui) -// ui.close() -// return 0 + if((!battery_module || !battery_module.battery.charge) && !check_power_override()) + if(ui) + ui.close() + return 0 // If we have an active program switch to it now. if(active_program) @@ -202,9 +201,11 @@ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) -// ui = new(user, src, ui_key, "laptop_mainscreen", "NTOS Main Menu", 400, 500) - ui = new(user, src, ui_key, activetemplate, "Main menu", 400, 500, master_ui, state) -// ui.set_initial_data(data) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "computer_main", "NTOS Main menu", 400, 500, master_ui, state) ui.open() ui.set_autoupdate(state = 1) @@ -246,7 +247,8 @@ physical.visible_message("\The [src] breaks apart!") var/turf/newloc = get_turf(src) new /obj/item/stack/sheet/metal(newloc, round(steel_sheet_cost/2)) - for(var/obj/item/weapon/computer_hardware/H in get_all_components()) + for(var/C in get_all_components()) + var/obj/item/weapon/computer_hardware/H = C uninstall_component(null, H) H.forceMove(newloc) if(prob(25)) @@ -289,7 +291,8 @@ if(active_program && active_program.requires_ntnet && !get_ntnet_status(active_program.requires_ntnet_feature)) // Active program requires NTNet to run but we've just lost connection. Crash. active_program.event_networkfailure(0) - for(var/datum/computer_file/program/P in idle_threads) + for(var/I in idle_threads) + var/datum/computer_file/program/P = I if(P.requires_ntnet && !get_ntnet_status(P.requires_ntnet_feature)) P.event_networkfailure(1) @@ -301,7 +304,8 @@ else active_program = null - for(var/datum/computer_file/program/P in idle_threads) + for(var/I in idle_threads) + var/datum/computer_file/program/P = I if(P.program_state != PROGRAM_STATE_KILLED) P.process_tick() P.ntnet_status = get_ntnet_status() @@ -349,7 +353,8 @@ if(idle_threads.len) var/list/program_headers = list() - for(var/datum/computer_file/program/P in idle_threads) + for(var/I in idle_threads) + var/datum/computer_file/program/P = I if(!P.ui_header) continue program_headers.Add(list(list( @@ -364,7 +369,7 @@ return data // Relays kill program request to currently active program. Use this to quit current program. -/obj/item/modular_computer/proc/kill_program(var/forced = 0) +/obj/item/modular_computer/proc/kill_program(forced = 0) if(active_program) active_program.kill_program(forced) active_program = null @@ -374,18 +379,18 @@ update_icon() // Returns 0 for No Signal, 1 for Low Signal and 2 for Good Signal. 3 is for wired connection (always-on) -/obj/item/modular_computer/proc/get_ntnet_status(var/specific_action = 0) +/obj/item/modular_computer/proc/get_ntnet_status(specific_action = 0) if(network_card) return network_card.get_signal(specific_action) else return 0 -/obj/item/modular_computer/proc/add_log(var/text) +/obj/item/modular_computer/proc/add_log(text) if(!get_ntnet_status()) return 0 return ntnet_global.add_log(text, network_card) -/obj/item/modular_computer/proc/shutdown_computer(var/loud = 1) +/obj/item/modular_computer/proc/shutdown_computer(loud = 1) kill_program(1) for(var/datum/computer_file/program/P in idle_threads) P.kill_program(1) @@ -473,12 +478,13 @@ return // Used in following function to reduce copypaste -/obj/item/modular_computer/proc/power_failure(var/malfunction = 0) +/obj/item/modular_computer/proc/power_failure(malfunction = 0) if(enabled) // Shut down the computer physical.visible_message("\The [src]'s screen flickers \"BATTERY [malfunction ? "MALFUNCTION" : "CRITICAL"]\" warning as it shuts down unexpectedly.") if(active_program) active_program.event_powerfailure(0) - for(var/datum/computer_file/program/PRG in idle_threads) + for(var/I in idle_threads) + var/datum/computer_file/program/PRG = I PRG.event_powerfailure(1) shutdown_computer(0) @@ -502,7 +508,7 @@ last_power_usage = power_usage -/obj/item/modular_computer/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) +/obj/item/modular_computer/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/card/id)) // ID Card, try to insert it. var/obj/item/weapon/card/id/I = W if(!card_slot) @@ -588,7 +594,7 @@ return // Attempts to install the hardware into apropriate slot. -/obj/item/modular_computer/proc/try_install_component(var/mob/living/user, var/obj/item/weapon/computer_hardware/H, var/found = 0) +/obj/item/modular_computer/proc/try_install_component(mob/living/user, obj/item/weapon/computer_hardware/H, found = 0) // "USB" flash drive. if(istype(H, /obj/item/weapon/computer_hardware/hard_drive/portable)) if(portable_drive) @@ -640,7 +646,7 @@ H.forceMove(src) // Uninstalls component. Found and Critical vars may be passed by parent types, if they have additional hardware. -/obj/item/modular_computer/proc/uninstall_component(var/mob/living/user, var/obj/item/weapon/computer_hardware/H, var/found = 0, var/critical = 0) +/obj/item/modular_computer/proc/uninstall_component(mob/living/user, obj/item/weapon/computer_hardware/H, found = 0, critical = 0) if(portable_drive == H) portable_drive = null found = 1 @@ -677,7 +683,7 @@ // Checks all hardware pieces to determine if name matches, if yes, returns the hardware piece, otherwise returns null -/obj/item/modular_computer/proc/find_hardware_by_name(var/name) +/obj/item/modular_computer/proc/find_hardware_by_name(name) if(portable_drive && (portable_drive.name == name)) return portable_drive if(hard_drive && (hard_drive.name == name)) @@ -760,17 +766,19 @@ */ -/obj/item/modular_computer/proc/take_damage(var/amount, var/component_probability, var/damage_casing = 1, var/randomize = 1) +/obj/item/modular_computer/proc/take_damage(amount, component_probability, damage_casing = 1, randomize = 1) if(randomize) // 75%-125%, rand() works with integers, apparently. amount *= (rand(75, 125) / 100.0) amount = round(amount) if(damage_casing) damage += amount + damage = max(0,min(max_damage,damage)) // damage = between(0, damage, max_damage) if(component_probability) - for(var/obj/item/weapon/computer_hardware/H in get_all_components()) + for(var/I in get_all_components()) + var/obj/item/weapon/computer_hardware/H = I if(prob(component_probability)) H.take_damage(round(amount / 2)) @@ -779,17 +787,17 @@ // Stronger explosions cause serious damage to internal components // Minor explosions are mostly mitigitated by casing. -/obj/item/modular_computer/ex_act(var/severity) +/obj/item/modular_computer/ex_act(severity) take_damage(rand(100,200) / severity, 30 / severity) // EMPs are similar to explosions, but don't cause physical damage to the casing. Instead they screw up the components -/obj/item/modular_computer/emp_act(var/severity) +/obj/item/modular_computer/emp_act(severity) take_damage(rand(100,200) / severity, 50 / severity, 0) // "Stun" weapons can cause minor damage to components (short-circuits?) // "Burn" damage is equally strong against internal components and exterior casing // "Brute" damage mostly damages the casing. -/obj/item/modular_computer/bullet_act(var/obj/item/projectile/Proj) +/obj/item/modular_computer/bullet_act(obj/item/projectile/Proj) switch(Proj.damage_type) if(BRUTE) take_damage(Proj.damage, Proj.damage / 2) diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index b88aa9a7a9a..aff20f4feb3 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -16,13 +16,10 @@ machinery_computer.cpu = null machinery_computer = null -//obj/item/modular_computer/processor/nano_host() -// return machinery_computer.nano_host() - // Due to how processes work, we'd receive two process calls - one from machinery type and one from our own type. // Since we want this to be in-sync with machinery (as it's hidden type for machinery-based computers) we'll ignore // non-relayed process calls. -/obj/item/modular_computer/processor/process(var/relayed = 0) +/obj/item/modular_computer/processor/process(relayed = 0) if(relayed) ..() else @@ -39,7 +36,7 @@ if(machinery_computer) machinery_computer.handle_power() -/obj/item/modular_computer/processor/New(var/comp) +/obj/item/modular_computer/processor/New(comp) if(!comp || !istype(comp, /obj/machinery/modular_computer)) CRASH("Inapropriate type passed to obj/item/modular_computer/processor/New()! Aborting.") return @@ -55,7 +52,7 @@ /obj/item/modular_computer/processor/relay_qdel() qdel(machinery_computer) -/obj/item/modular_computer/processor/find_hardware_by_name(var/N) +/obj/item/modular_computer/processor/find_hardware_by_name(N) var/obj/item/weapon/computer_hardware/H = machinery_computer.find_hardware_by_name(N) if(H) return H @@ -96,7 +93,7 @@ return // Tesla links only work on machinery types, so we'll override the default try_install_component() proc -/obj/item/modular_computer/processor/try_install_component(var/mob/living/user, var/obj/item/weapon/computer_hardware/H, var/found = 0) +/obj/item/modular_computer/processor/try_install_component(mob/living/user, obj/item/weapon/computer_hardware/H, found = 0) if(istype(H, /obj/item/weapon/computer_hardware/tesla_link)) if(machinery_computer.tesla_link) user << "This computer's tesla link slot is already occupied by \the [machinery_computer.tesla_link]." @@ -107,7 +104,7 @@ found = 1 ..(user, H, found) -/obj/item/modular_computer/processor/uninstall_component(var/mob/living/user, var/obj/item/weapon/computer_hardware/H, var/found = 0, var/critical = 0) +/obj/item/modular_computer/processor/uninstall_component(mob/living/user, obj/item/weapon/computer_hardware/H, found = 0, critical = 0) if(machinery_computer.tesla_link == H) machinery_computer.tesla_link = null var/obj/item/weapon/computer_hardware/tesla_link/L = H @@ -122,12 +119,12 @@ return all_components // Perform adjacency checks on our machinery counterpart, rather than on ourselves. -/obj/item/modular_computer/processor/Adjacent(var/atom/neighbor) +/obj/item/modular_computer/processor/Adjacent(atom/neighbor) if(!machinery_computer) return 0 return machinery_computer.Adjacent(neighbor) -/obj/item/modular_computer/processor/turn_on(var/mob/user) +/obj/item/modular_computer/processor/turn_on(mob/user) // If we have a tesla link on our machinery counterpart, enable it automatically. Lets computer without a battery work. if(machinery_computer && machinery_computer.tesla_link) machinery_computer.tesla_link.enabled = 1 diff --git a/code/modules/modular_computers/computers/item/tablet_presets.dm b/code/modules/modular_computers/computers/item/tablet_presets.dm index 4f40e31d869..0f78d917ff2 100644 --- a/code/modules/modular_computers/computers/item/tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/tablet_presets.dm @@ -1,6 +1,6 @@ // Available as custom loadout item, this is literally the worst possible cheap tablet -/obj/item/modular_computer/tablet/preset/custom_loadout/cheap/New() +/obj/item/modular_computer/tablet/preset/cheap/New() . = ..() desc = "A low-end tablet often seen among low ranked station personnel." processor_unit = new/obj/item/weapon/computer_hardware/processor_unit/small(src) @@ -10,7 +10,7 @@ network_card = new/obj/item/weapon/computer_hardware/network_card(src) // Alternative version, an average one, for higher ranked positions mostly -/obj/item/modular_computer/tablet/preset/custom_loadout/advanced/New() +/obj/item/modular_computer/tablet/preset/advanced/New() . = ..() processor_unit = new/obj/item/weapon/computer_hardware/processor_unit/small(src) battery_module = new/obj/item/weapon/computer_hardware/battery_module(src) diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index e7ce0500c14..e05f1debb49 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -91,7 +91,7 @@ var/list/global_modular_computers = list() if(cpu) cpu.attack_self(user) // CPU is an item, that's why we route attack_hand to attack_self -/obj/machinery/modular_computer/examine(var/mob/user) +/obj/machinery/modular_computer/examine(mob/user) . = ..() if(cpu) cpu.examine(user) @@ -104,13 +104,13 @@ var/list/global_modular_computers = list() cpu.process(1) // Checks all hardware pieces to determine if name matches, if yes, returns the hardware piece, otherwise returns null -/obj/machinery/modular_computer/proc/find_hardware_by_name(var/N) +/obj/machinery/modular_computer/proc/find_hardware_by_name(N) if(tesla_link && (tesla_link.name == N)) return tesla_link return null // Used in following function to reduce copypaste -/obj/machinery/modular_computer/proc/power_failure(var/malfunction = 0) +/obj/machinery/modular_computer/proc/power_failure(malfunction = 0) if(cpu && cpu.enabled) // Shut down the computer visible_message("\The [src]'s screen flickers [cpu.battery_module ? "\"BATTERY [malfunction ? "MALFUNCTION" : "CRITICAL"]\"" : "\"EXTERNAL POWER LOSS\""] warning as it shuts down unexpectedly.") if(cpu) @@ -136,7 +136,8 @@ var/list/global_modular_computers = list() battery_powered = 0 var/power_usage = cpu.screen_on ? base_active_power_usage : base_idle_power_usage - for(var/obj/item/weapon/computer_hardware/CH in src.cpu.get_all_components()) + for(var/C in src.cpu.get_all_components()) + var/obj/item/weapon/computer_hardware/CH = C if(CH.enabled) power_usage += CH.power_usage @@ -169,7 +170,7 @@ var/list/global_modular_computers = list() return ..() -/obj/machinery/modular_computer/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) +/obj/machinery/modular_computer/attackby(var/obj/item/weapon/W as obj, mob/user) if(cpu) return cpu.attackby(W, user) return ..() @@ -177,19 +178,19 @@ var/list/global_modular_computers = list() // Stronger explosions cause serious damage to internal components // Minor explosions are mostly mitigitated by casing. -/obj/machinery/modular_computer/ex_act(var/severity) +/obj/machinery/modular_computer/ex_act(severity) if(cpu) cpu.ex_act(severity) // EMPs are similar to explosions, but don't cause physical damage to the casing. Instead they screw up the components -/obj/machinery/modular_computer/emp_act(var/severity) +/obj/machinery/modular_computer/emp_act(severity) if(cpu) cpu.emp_act(severity) // "Stun" weapons can cause minor damage to components (short-circuits?) // "Burn" damage is equally strong against internal components and exterior casing // "Brute" damage mostly damages the casing. -/obj/machinery/modular_computer/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/modular_computer/bullet_act(obj/item/projectile/Proj) if(cpu) cpu.bullet_act(Proj) diff --git a/code/modules/modular_computers/file_system/computer_file.dm b/code/modules/modular_computers/file_system/computer_file.dm index c5c1d9e86e5..c853e7ce0fd 100644 --- a/code/modules/modular_computers/file_system/computer_file.dm +++ b/code/modules/modular_computers/file_system/computer_file.dm @@ -26,7 +26,7 @@ var/global/file_uid = 0 ..() // Returns independent copy of this file. -/datum/computer_file/proc/clone(var/rename = 0) +/datum/computer_file/proc/clone(rename = 0) var/datum/computer_file/temp = new type temp.unsendable = unsendable temp.undeletable = undeletable diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index e4f1a50da6b..f907c447e91 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -20,7 +20,7 @@ var/computer_emagged = 0 // Set to 1 if computer that's running us was emagged. Computer updates this every Process() tick var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /nano/images/status_icons. Be careful not to use too large images! -/datum/computer_file/program/New(var/obj/item/modular_computer/comp = null) +/datum/computer_file/program/New(obj/item/modular_computer/comp = null) ..() if(comp && istype(comp)) computer = comp @@ -46,19 +46,19 @@ computer.update_icon() // Attempts to create a log in global ntnet datum. Returns 1 on success, 0 on fail. -/datum/computer_file/program/proc/generate_network_log(var/text) +/datum/computer_file/program/proc/generate_network_log(text) if(computer) return computer.add_log(text) return 0 -/datum/computer_file/program/proc/is_supported_by_hardware(var/hardware_flag = 0, var/loud = 0, var/mob/user = null) +/datum/computer_file/program/proc/is_supported_by_hardware(hardware_flag = 0, loud = 0, mob/user = null) if(!(hardware_flag & usage_flags)) if(loud && computer && user) user << "\The [computer] flashes an \"Hardware Error - Incompatible software\" warning." return 0 return 1 -/datum/computer_file/program/proc/get_signal(var/specific_action = 0) +/datum/computer_file/program/proc/get_signal(specific_action = 0) if(computer) return computer.get_ntnet_status(specific_action) return 0 @@ -112,7 +112,7 @@ return 0 // Use this proc to kill the program. Designed to be implemented by each program if it requires on-quit logic, such as the NTNRC client. -/datum/computer_file/program/proc/kill_program(var/forced = 0) +/datum/computer_file/program/proc/kill_program(forced = 0) program_state = PROGRAM_STATE_KILLED if(network_destination) generate_network_log("Connection to [network_destination] closed.") 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 306b1495cc3..a3eb9a27354 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm @@ -51,7 +51,6 @@ /datum/computer_file/program/ntnet_dos/ui_act(action, params) if(..()) return 1 - world << params switch(action) if("PRG_target_relay") for(var/obj/machinery/ntnet_relay/R in ntnet_global.relays) diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index 6e955174531..eefe6b671ef 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -10,13 +10,7 @@ var/is_centcom = 0 var/show_assignments = 0 -/datum/nano_module/program/card_mod - name = "ID card modification program" - var/mod_mode = 1 - var/is_centcom = 0 - var/show_assignments = 0 - -/datum/nano_module/program/card_mod/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) +/datum/computer_file/program/card_mod/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) var/list/data = get_header_data() data["src"] = "\ref[src]" @@ -228,3 +222,72 @@ /datum/computer_file/program/card_mod/proc/apply_access(var/obj/item/weapon/card/id/id_card, var/list/accesses) id_card.access |= accesses + +/datum/computer_file/program/card_mod/ui_data(mob/user) + + var/list/data = get_header_data() + + data["src"] = "\ref[src]" + data["station_name"] = station_name() + data["manifest"] = data_core ? data_core.get_manifest(0) : null + data["assignments"] = show_assignments + if(program && program.computer) + data["have_id_slot"] = !!program.computer.card_slot + data["have_printer"] = !!program.computer.nano_printer + data["authenticated"] = program.can_run(user) + if(!program.computer.card_slot) + mod_mode = 0 //We can't modify IDs when there is no card reader + else + data["have_id_slot"] = 0 + data["have_printer"] = 0 + data["authenticated"] = 0 + data["mmode"] = mod_mode + data["centcom_access"] = is_centcom + + if(program && program.computer && program.computer.card_slot) + var/obj/item/weapon/card/id/id_card = program.computer.card_slot.stored_card + data["has_id"] = !!id_card + data["id_account_number"] = id_card ? id_card.associated_account_number : null + data["id_rank"] = id_card && id_card.assignment ? id_card.assignment : "Unassigned" + data["id_owner"] = id_card && id_card.registered_name ? id_card.registered_name : "-----" + data["id_name"] = id_card ? id_card.name : "-----" + + + data["engineering_jobs"] = format_jobs(engineering_positions) + data["medical_jobs"] = format_jobs(medical_positions) + data["science_jobs"] = format_jobs(science_positions) + data["security_jobs"] = format_jobs(security_positions) + data["cargo_jobs"] = format_jobs(cargo_positions) + data["civilian_jobs"] = format_jobs(civilian_positions) + data["centcom_jobs"] = format_jobs(get_all_centcom_jobs()) + + data["all_centcom_access"] = is_centcom ? get_accesses(1) : null + data["regions"] = get_accesses() + + if(program.computer.card_slot.stored_card) + var/obj/item/weapon/card/id/id_card = program.computer.card_slot.stored_card + if(is_centcom) + var/list/all_centcom_access = list() + for(var/access in get_all_centcom_access()) + all_centcom_access.Add(list(list( + "desc" = replacetext(get_centcom_access_desc(access), " ", " "), + "ref" = access, + "allowed" = (access in id_card.access) ? 1 : 0))) + data["all_centcom_access"] = all_centcom_access + else + var/list/regions = list() + for(var/i = 1; i <= 7; i++) + var/list/accesses = list() + for(var/access in get_region_accesses(i)) + if (get_access_desc(access)) + accesses.Add(list(list( + "desc" = replacetext(get_access_desc(access), " ", " "), + "ref" = access, + "allowed" = (access in id_card.access) ? 1 : 0))) + + regions.Add(list(list( + "name" = get_region_accesses_name(i), + "accesses" = accesses))) + data["regions"] = regions + + return data \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/configurator.dm b/code/modules/modular_computers/file_system/programs/configurator.dm index 7a148346986..e0fd5e2f3cf 100644 --- a/code/modules/modular_computers/file_system/programs/configurator.dm +++ b/code/modules/modular_computers/file_system/programs/configurator.dm @@ -15,12 +15,14 @@ var/obj/item/modular_computer/movable = null -//obj/machinery/vr_sleeper/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) - /datum/computer_file/program/computerconfig/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + ui = new(user, src, ui_key, "laptop_configuration", "NTOS Configuration Utility", 575, 700, state = state) ui.open() ui.set_autoupdate(state = 1) @@ -54,7 +56,8 @@ data["battery"] = list("max" = movable.battery_module.battery.maxcharge, "charge" = round(movable.battery_module.battery.charge)) var/list/all_entries[0] - for(var/obj/item/weapon/computer_hardware/H in hardware) + for(var/I in hardware) + var/obj/item/weapon/computer_hardware/H = I all_entries.Add(list(list( "name" = H.name, "desc" = H.desc, @@ -68,11 +71,8 @@ /datum/computer_file/program/computerconfig/ui_act(action,params) - world << "test" if(..()) return - world << action - world <") t = replacetext(t, "\[/center\]", "") t = replacetext(t, "\[br\]", "
") @@ -182,6 +182,10 @@ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + ui = new(user, src, ui_key, "file_manager", "NTOS File Manage", 575, 700, state = state) ui.open() ui.set_autoupdate(state = 1) diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index cdb4a553935..6ba68126808 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -17,7 +17,7 @@ var/downloaderror = "" var/obj/item/modular_computer/my_computer = null -/datum/computer_file/program/ntnetdownload/proc/begin_file_download(var/filename) +/datum/computer_file/program/ntnetdownload/proc/begin_file_download(filename) if(downloaded_file) return 0 @@ -100,19 +100,18 @@ return 1 return 0 -//datum/nano_module/program/computer_ntnetdownload -// name = "Network Downloader" - /datum/computer_file/program/ntnetdownload/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + ui = new(user, src, ui_key, "ntnet_downloader", "NTNet Download Program", 575, 700, state = state) ui.open() ui.set_autoupdate(state = 1) - - /datum/computer_file/program/ntnetdownload/ui_data(mob/user) my_computer = computer @@ -120,10 +119,7 @@ if(!istype(my_computer)) return - var/list/data = list() - - - data = get_header_data() + var/list/data = get_header_data() // This IF cuts on data transferred to client, so i guess it's worth it. if(downloaderror) // Download errored. Wait until user resets the program. @@ -138,7 +134,8 @@ data["disk_size"] = my_computer.hard_drive.max_capacity data["disk_used"] = my_computer.hard_drive.used_capacity var/list/all_entries[0] - for(var/datum/computer_file/program/P in ntnet_global.available_station_software) + for(var/A in ntnet_global.available_station_software) + var/datum/computer_file/program/P = A // Only those programs our user can run will show in the list if(!P.can_run(user)) continue @@ -151,7 +148,8 @@ data["hackedavailable"] = 0 if(computer_emagged) // If we are running on emagged computer we have access to some "bonus" software var/list/hacked_programs[0] - for(var/datum/computer_file/program/P in ntnet_global.available_antag_software) + for(var/S in ntnet_global.available_antag_software) + var/datum/computer_file/program/P = S data["hackedavailable"] = 1 hacked_programs.Add(list(list( "filename" = P.filename, diff --git a/code/modules/modular_computers/file_system/programs/ntmonitor.dm b/code/modules/modular_computers/file_system/programs/ntmonitor.dm index 8df93e98fc4..60cc80a3b86 100644 --- a/code/modules/modular_computers/file_system/programs/ntmonitor.dm +++ b/code/modules/modular_computers/file_system/programs/ntmonitor.dm @@ -12,6 +12,11 @@ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "ntnet_monitor", "NTNet Diagnostics and Monitoring Tool", 575, 700, state = state) ui.open() ui.set_autoupdate(state = 1) diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm index 4d3fcc17b2e..62a3e303533 100644 --- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm @@ -182,6 +182,12 @@ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) + + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "ntnet_chat", "NTNet Relay Chat Client", 575, 700, state = state) ui.open() ui.set_autoupdate(state = 1) @@ -206,7 +212,8 @@ ))) data["messages"] = messages var/list/clients[0] - for(var/datum/computer_file/program/chatclient/cl in channel.clients) + for(var/C in channel.clients) + var/datum/computer_file/program/chatclient/cl = C clients.Add(list(list( "name" = cl.username ))) @@ -216,7 +223,8 @@ else // Channel selection screen var/list/all_channels[0] - for(var/datum/ntnet_conversation/conv in ntnet_global.chat_channels) + for(var/C in ntnet_global.chat_channels) + var/datum/ntnet_conversation/conv = C if(conv && conv.title) all_channels.Add(list(list( "chan" = conv.title, diff --git a/code/modules/modular_computers/file_system/programs/nttransfer.dm b/code/modules/modular_computers/file_system/programs/nttransfer.dm index 2e863d744c0..a914878c426 100644 --- a/code/modules/modular_computers/file_system/programs/nttransfer.dm +++ b/code/modules/modular_computers/file_system/programs/nttransfer.dm @@ -44,7 +44,7 @@ var/global/nttransfer_uid = 0 if(!remote) crash_download("Connection to remote server lost") -/datum/computer_file/program/nttransfer/kill_program(var/forced = 0) +/datum/computer_file/program/nttransfer/kill_program(forced = 0) if(downloaded_file) // Client mode, clean up variables for next use finalize_download() @@ -88,6 +88,11 @@ var/global/nttransfer_uid = 0 ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if (!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "ntnet_transfer", "NTNet P2P Transfer Client", 575, 700, state = state) ui.open() ui.set_autoupdate(state = 1) diff --git a/code/modules/modular_computers/file_system/programs/powermonitor.dm b/code/modules/modular_computers/file_system/programs/powermonitor.dm index 7ec0cbd3b4a..bfa946d4154 100644 --- a/code/modules/modular_computers/file_system/programs/powermonitor.dm +++ b/code/modules/modular_computers/file_system/programs/powermonitor.dm @@ -56,6 +56,11 @@ datum/tgui/master_ui = null, datum/ui_state/state = default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) + + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) + assets.send(user) + + ui = new(user, src, ui_key, "power_monitor_prog", "Power Monitoring", 1200, 1000, master_ui, state) ui.open() diff --git a/code/modules/modular_computers/hardware/network_card.dm b/code/modules/modular_computers/hardware/network_card.dm index a4d1b25f1b9..31a46260d47 100644 --- a/code/modules/modular_computers/hardware/network_card.dm +++ b/code/modules/modular_computers/hardware/network_card.dm @@ -78,7 +78,7 @@ var/global/ntnet_card_uid = 1 if(holder2) var/turf/T = get_turf(holder2) - if((T && istype(T)) && T.z == ZLEVEL_STATION) + if((T && istype(T)) && (T.z == ZLEVEL_STATION || T.z == ZLEVEL_MINING)) // Computer is on station. Low/High signal depending on what type of network card you have if(long_range) return 2 diff --git a/icons/program_icons/alarm_green.gif b/icons/program_icons/alarm_green.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c2570c8ce30fd03c48a6332eba57bcd3dab25a2 GIT binary patch literal 107 zcmZ?wbhEHb6k`x$SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%al4F+Zg z9gsXo3j>qpoc@)k-|{b>v&F38^N~f|I*jw!Tav@w9?f)meZx*h^0Z{e(_iPl?+amI Gum%9P&mj8% literal 0 HcmV?d00001 diff --git a/icons/program_icons/alarm_red.gif b/icons/program_icons/alarm_red.gif new file mode 100644 index 0000000000000000000000000000000000000000..327d58e4db8acf03e219e09ace17c6f1f990f499 GIT binary patch literal 163 zcmZ?wbhEHb6k`x$SjfO&!NBl?f#JY`0}KodivPL&TtkAL9RpmA^bD98K|()SIE@&X z8FYYbpawAp1}4op{VPwu z9Uz+lq=kVgdrtq#({K3~&(XZmz4_ijR))4m9@89-*W5WZulLlknX~7~XS7<@-QM-< z)5p3a3k8=ph_;@YD-fCaZO)aKyj=lOOHa#wTkte*^$w}Z9NjwJhnsI~PrIE`a*N4r Z`pwD9_U->OX}Y^(L`Fr2MIZx%H2^2XMuq?Y literal 0 HcmV?d00001 diff --git a/icons/program_icons/batt_20.gif b/icons/program_icons/batt_20.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d5e38fc888430a7bb2a1062468c7d822d7c66e1 GIT binary patch literal 284 zcmZ?wbhEHb)L;-}IK;rf@PmQD0tgun95?`E!hzy{Za>$MU}whwS0gveMHo^t=VfrUT;SOEL275g-IH&n1op^o z=9lV!P(86h^6mx>t7j(O%Z^Kid|P5Z$GPHY-im1Li@&d`EsQmCFt|K%`J3m`_rh+z z&%XGl`Q`8b4UOWQ*sKjFXl>T}cWXYI3Y~UjK2~sKzM#q(-TuQppDLZbR{Cf!?s%H9 d{c_%U&2Mf?S8e&VTesZc!;Tui{VEI$)&M66a}odm literal 0 HcmV?d00001 diff --git a/icons/program_icons/batt_40.gif b/icons/program_icons/batt_40.gif new file mode 100644 index 0000000000000000000000000000000000000000..d5cedb996759170d5e2477619ca9f40d66a18c6a GIT binary patch literal 185 zcmZ?wbhEHb)L;-}*u=oV@PmQDg5kh{13!QaB%t`8+s`#5*x50_)kx2PnGq+Z` zi-Cnf2c!(7oq;*qW7nO32B$n%@6~;AcK82A5r&k^c^OP*m|J z3#SnSD}xS51xPysb9ltAJO2z$d9L2e`{L~G{|zi0DVg&!v|283?E4_Kv*7N@w^{Gs zt@&&!blQ>mSizC`f+}Zp`w#bgs&w{R>7%{4<7vkB%X#NDzqu`4wdL1t-ExBuJ8Jy) Vs}Qg&7i3qn2@A+BDa!4#1^~mJZcP9H literal 0 HcmV?d00001 diff --git a/icons/program_icons/batt_60.gif b/icons/program_icons/batt_60.gif new file mode 100644 index 0000000000000000000000000000000000000000..d39534c8cb03fd6b7580267d38ebbed0e7d16433 GIT binary patch literal 166 zcmZ?wbhEHb)L;-}SjfP@@PmQDg5kh{13;$Ye{Mh5kYH!W09PYD17=2$&`%alE(T@> z9Uz+lq=kVgWlsOf({K3~&(XZmz4_ijR))4m9@89-*W5WZulLlknX~7~XS7<%UFKf1 z`(~4FeCi2qq3|8I_&BGU)(1We&T?Ux91|_L^hVh9IhhrArZ%15RF+p;vVC*Z z9Uz+lq=kVgYfk^l({K3~&(XZmz4_ijR))4m9@89-*W5WZulLlknX~7~XS7<@-8SCU z@UqJKc7ar_(qx0*Qj WFFrMOA(iFsh8__a6&8UE4AubO+dx48 literal 0 HcmV?d00001 diff --git a/icons/program_icons/charging.gif b/icons/program_icons/charging.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf19ca72876b33bb683ea14aa4d9dc4c6c621bc8 GIT binary patch literal 160 zcmZ?wbhEHb)L;-}SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%alE(T@> z9gsXo3jy+yJb<5u_TVtSn;qvt0wAPESQ>533&YSr0)^5#} LkH0rFF<1itpY1(Q literal 0 HcmV?d00001 diff --git a/icons/program_icons/downloader_finished.gif b/icons/program_icons/downloader_finished.gif new file mode 100644 index 0000000000000000000000000000000000000000..f01b7c42af8ba61a23b3ba009a1f491922267479 GIT binary patch literal 130 zcmZ?wbhEHb6k`x$SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%alE(T@> z9gsXo3j>qGoc@)k-|laiBP6A;iLESQZs9fdE`gn;8fkWGK5X@y)0gnV&)mlFMPK)y dJkk3GD#0FQM`JW^Mtrhj=MufRCyI-~8UX$-DMkPQ literal 0 HcmV?d00001 diff --git a/icons/program_icons/downloader_running.gif b/icons/program_icons/downloader_running.gif new file mode 100644 index 0000000000000000000000000000000000000000..68fb977c86dda6273d7fbd853b86ca38375891b2 GIT binary patch literal 574 zcmZ?wbhEHb6k`x$SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%alE(T@> z9gsXo3j>qvoc@)k-|laiBP6A;iLET)R_h~=Y0o;By*jn+owOJ>9m=RW66O|OWA74h zEd}Y|KK{w)`nOoDHmPCNx3e^3MNlw1SYPk+U;jj~S*eXvYtx$-T+f^X?*g@+`~Hvr ziYQjA_3-Q8d}^(=waC@4|M+>h+K(hMVsnBCAtSzs1pCZ=|HsTbplx#B#||H@=_i@6 z8DvScK^{p97bLw{HAiD|-)GKVD{io9Ul>uM&z5A<0#03AzH(Mc%dwY>85pbqqOR3W literal 0 HcmV?d00001 diff --git a/icons/program_icons/ntnrc_idle.gif b/icons/program_icons/ntnrc_idle.gif new file mode 100644 index 0000000000000000000000000000000000000000..d47c01d580080e8e614de62448815b87705a122f GIT binary patch literal 113 zcmZ?wbhEHb6k`x$n8?7uV8L+UzyTl)1d9K;{aizWogD*Qjr0td89_onSvZXtm>6_G z@*ph?O!`y$SDt>$zc^;Wt!~{*{n8&Ar)bngYlhsO6~oo#^kK@TOEwR;%O1S>ei3K; KkwqIB7_0$IQY1tG literal 0 HcmV?d00001 diff --git a/icons/program_icons/ntnrc_new.gif b/icons/program_icons/ntnrc_new.gif new file mode 100644 index 0000000000000000000000000000000000000000..af72a8b332fc4983088ccafc64593bb04294e551 GIT binary patch literal 181 zcmZ?wbhEHb6k`x$SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%alBL-#$ z9gsXo3j>q>oc@)k-|{bxS#+yg_fo&~$HpldbQvgwk|!|k#MZ@yo| T*?wfvM*LGc*ia%L6 zH5gbJbU=zg+8LNVJ$Bvsr?~GV)811_tG)|2eeYD>$-vSu>$TUecap}dW?60X(Kg8X zZxDORUFMU7Vw_-vkx?=4giDbnCG)NxE1kLa#RdURiL4|QtfqV6GX2zwDX-^!UcJa@ zoxSedcLuJ09CwyVC_c)U%u$(n)L+QW)XXYWfupNQ!M=ouhCBcc!@ou<`_u6H! zYT3F)=M2|czt#M2GoQEPwXTzM?8YT3*ZNL8y>xLR(@H08mDepETZ|_wGh#CuPq?gG zzUrmqWxwp@8ok%K=B#(;F>*TiXv2|gJ=q0IHothGGoN?$q*-@kle;^f-ZrrmVz34P Dlu)Cy literal 0 HcmV?d00001 diff --git a/icons/program_icons/power_warn.gif b/icons/program_icons/power_warn.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c85b3a85a1e46e7ea81d98562f1cf10509f13d4 GIT binary patch literal 485 zcmZ?wbhEHb6k`x$*u=oV@B;`Le*9oKaNq!t2M3D(x&2&2f}I@$T#fV$m>Gc*ia%L6 zH5gbJbU=zg+8LO`Ja*mrr?~GV)812Qz2ejFDse<>RK<8qJ9lFO!-0LPH=Qzme2d$! z!Q?haTh*Hi7Wshi)kljKh4uzSyY(Ku_T|@RnU%MFKK}mNvplu%q^f7RZf?*W7f-BK z#lWnJy>!#N==SvE98BtZOF8>8eyx>dWZ>dlD;+z%n6=5OX>I#W7nOsF8=8YvD!usw zmVeOXej-@Cu6mAVXw_>A8ZTFIkYL$G`gO`34U23&g|61AV zmstl>WoP^`48OSIedNi9Dp>9EhuO9FRMM*N!cE@;ABg&?x-c+QnMJ*}n)|0UM=Ww% z@Uw0S&h*t^CF~>HKYS8&?+W?ya*oo<4Xsl;*JjN2oEj>$Y@+k?tAR&67#OSp?%csB literal 0 HcmV?d00001 diff --git a/icons/program_icons/sig_high.gif b/icons/program_icons/sig_high.gif new file mode 100644 index 0000000000000000000000000000000000000000..efb20f6730654a761fa061b451efae0122d0aa71 GIT binary patch literal 182 zcmZ?wbhEHb)L;-}SjfP@V8L+UzyXFIKo*1Ie{Mh5kYH!W09PYD17=2$&`%alBL-#$ z9gsXo3jO_X57g-b8zbsXLHQ^1moO6yJZE zsA1B~Kl!3Vf!jT|?^ePgVB*KO^Q)UQp-((S@6Vw^UIER58u{+UcY pWZL=se|Wpurscs#79FY`73myDPRw|+k>h7VQ0L5*oskR-)&PE-NT2`! literal 0 HcmV?d00001 diff --git a/icons/program_icons/sig_low.gif b/icons/program_icons/sig_low.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f98baea8e69b04e3b8a8f12f20ad4bb09b2ec8 GIT binary patch literal 179 zcmZ?wbhEHb)L;-}IK;qUVZm_VzyXFIKo-LfAPEDC|GE8KLxPk%Fip~B~z57xb zi)?z*Z*Xy0o|rpPO~Z+yA@$@>1_6#hWrL)ndfU%un{lK$aNjjtzs6(v{wv#ltnFR= VJZVQz-_mTu^o*>a79LIpYXEgwJ&phX literal 0 HcmV?d00001 diff --git a/icons/program_icons/sig_none.gif b/icons/program_icons/sig_none.gif new file mode 100644 index 0000000000000000000000000000000000000000..79840d8a2bd4b30c263cbc680aa2727dfeb27555 GIT binary patch literal 202 zcmZ?wbhEHb)L;-}IK;rfV8QSMNd5rQ3P*m|J z3#SnSD}xS51xPysb4|pqJO2!r%))zrFb0-CKQlph(PPc@iDJ$HNpG_owf1h(n=`wt zUenMc;IZ>XC+j6^CT7V^4LFneD~G3DvVYsFjzo7kzV8>k`g)oSEfegn*X=s^y{0?n tc4VnY$MhFJy)7CAO2cZKN~((6ntigmW7~}j6!Ut0@@CGO&CkhT4FK