diff --git a/code/controllers/subsystem/map_preview.dm b/code/controllers/subsystem/map_preview.dm new file mode 100644 index 00000000000..ea63e2a6693 --- /dev/null +++ b/code/controllers/subsystem/map_preview.dm @@ -0,0 +1,79 @@ +SUBSYSTEM_DEF(map_previews) + name = "Map Previews" + ss_flags = SS_NO_FIRE + dependencies = list( + /datum/controller/subsystem/machines, + /datum/controller/subsystem/mapping, + ) + +/datum/controller/subsystem/map_previews/Initialize() +#ifndef UNIT_TESTS + if(!CONFIG_GET(flag/generate_assets_in_init)) + return SS_INIT_SUCCESS +#endif + generate_map_previews() + return SS_INIT_SUCCESS + +/datum/controller/subsystem/map_previews/proc/generate_map_previews() + var/list/worklist = list() + var/list/already_generated = list() + var/static/list/preview_blacklist = list( + /obj/machinery/computer, + /obj/machinery/computer/old, + ) + + for(var/obj/typepath as anything in subtypesof(/obj)) + if(!initial(typepath.generate_map_preview)) + continue + if(typepath in preview_blacklist) + continue + worklist += typepath + + var/turf/preview_turf = locate(1, 1, 1) + + var/filepath = "icons/obj/fluff/map_previews.dmi" + var/icon/holder = icon('icons/obj/fluff/map_previews_template.dmi') + + for(var/path in worklist) + var/obj/thingtospawn = new path(preview_turf) + + if(ismachinery(thingtospawn)) + var/obj/machinery/machine = thingtospawn + machine.set_machine_stat(machine.machine_stat & ~NOPOWER) + machine.update_appearance() + + var/key = "[thingtospawn.icon]-[thingtospawn.icon_state]" + for(var/image/overlay as anything in thingtospawn.overlays) + key += "-[overlay.icon_state]" + if(already_generated[key]) + qdel(thingtospawn) + continue + already_generated[key] = TRUE + + var/icon_name = "[path]" + for(var/dir in GLOB.cardinals) + thingtospawn.setDir(dir) + var/icon/rendered_icon = getFlatIcon(thingtospawn) + if(!rendered_icon) + continue + var/icon/preview_frame = icon(rendered_icon, frame = 1) + if(!preview_frame) + continue +#ifdef UNIT_TESTS + if(preview_frame.Width() > ICON_SIZE_X || preview_frame.Height() > ICON_SIZE_Y) + stack_trace("Map preview generation for '[icon_name]' produced an icon larger than 32x32.") + continue +#endif + holder.Insert(preview_frame, icon_name, dir) + qdel(thingtospawn) + + var/tmp_path = "tmp/map_previews.dmi" + fcopy(holder, tmp_path) + + var/old_md5 = fexists(filepath) ? rustg_hash_file(RUSTG_HASH_MD5, filepath) : "" + var/new_md5 = rustg_hash_file(RUSTG_HASH_MD5, tmp_path) + if(old_md5 != new_md5) + fcopy(tmp_path, filepath) +#ifdef UNIT_TESTS + stack_trace("Generated map previews were different than what is currently saved. If you see this in a CI run it means you need to run the game once through initialization and commit the resulting file 'icons/obj/fluff/map_previews.dmi'.") +#endif diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index c9fe85ebc3c..f7395d4fde7 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -2,6 +2,7 @@ name = "bank machine" desc = "A machine used to deposit and withdraw station funds." circuit = /obj/item/circuitboard/computer/bankmachine + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/bank_machine") icon_screen = "vault" icon_keyboard = "security_key" req_access = list(ACCESS_VAULT) diff --git a/code/game/machinery/civilian_bounty/bounty_machinery.dm b/code/game/machinery/civilian_bounty/bounty_machinery.dm index 442290ddde4..9b06f6feeb2 100644 --- a/code/game/machinery/civilian_bounty/bounty_machinery.dm +++ b/code/game/machinery/civilian_bounty/bounty_machinery.dm @@ -30,6 +30,7 @@ name = "civilian bounty control terminal" desc = "A console for assigning civilian bounties to inserted ID cards, and for controlling the bounty pad for export." status_report = "Ready for delivery." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control/civilian") icon_screen = "civ_bounty" icon_keyboard = "id_key" warmup_time = 3 SECONDS diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 883ccea87ff..aaad16175e2 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -1,6 +1,6 @@ /obj/machinery/computer name = "computer" - icon = 'icons/obj/machines/computer.dmi' + icon = MAP_SWITCH('icons/obj/machines/computer.dmi', 'icons/obj/fluff/map_previews.dmi') icon_state = "computer" density = TRUE max_integrity = 200 @@ -22,6 +22,7 @@ var/authenticated = FALSE /// Will projectiles be able to pass over this computer? var/projectiles_pass_chance = 65 + generate_map_preview = TRUE /datum/armor/machinery_computer fire = 40 diff --git a/code/game/machinery/computer/accounting.dm b/code/game/machinery/computer/accounting.dm index 6ccc1d2c7b3..ff1c047a47b 100644 --- a/code/game/machinery/computer/accounting.dm +++ b/code/game/machinery/computer/accounting.dm @@ -5,6 +5,7 @@ /obj/machinery/computer/accounting name = "account lookup console" desc = "Used to view crew member accounts and purchases." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/accounting") icon_screen = "accounts" icon_keyboard = "id_key" circuit = /obj/item/circuitboard/computer/accounting diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index dd76cd1efb7..8fb7fbf6dce 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -3,6 +3,7 @@ desc = "Used with intelliCards containing nonfunctional AIs to restore them to working order." req_access = list(ACCESS_CAPTAIN, ACCESS_ROBOTICS, ACCESS_COMMAND) circuit = /obj/item/circuitboard/computer/aifixer + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/aifixer") icon_keyboard = "tech_key" icon_screen = "ai-fixer" light_color = LIGHT_COLOR_PINK diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index a7add4639c3..bb881cb1fde 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/apc_control name = "power flow control console" desc = "Used to remotely control the flow of power to different parts of the station." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/apc_control") icon_screen = "solar" icon_keyboard = "power_key" req_access = list(ACCESS_CE) diff --git a/code/game/machinery/computer/arcade/_arcade.dm b/code/game/machinery/computer/arcade/_arcade.dm index f0879eb1da9..71b0f71775b 100644 --- a/code/game/machinery/computer/arcade/_arcade.dm +++ b/code/game/machinery/computer/arcade/_arcade.dm @@ -2,7 +2,7 @@ name = "\proper the arcade cabinet which shouldn't exist" desc = "This arcade cabinet has no games installed, and in fact, should not exist. \ Report the location of this machine to your local diety." - icon_state = "arcade" + icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade") icon_keyboard = null icon_screen = "invaders" light_color = LIGHT_COLOR_GREEN diff --git a/code/game/machinery/computer/arcade/amputation.dm b/code/game/machinery/computer/arcade/amputation.dm index d425cd5eba5..a1211489a5a 100644 --- a/code/game/machinery/computer/arcade/amputation.dm +++ b/code/game/machinery/computer/arcade/amputation.dm @@ -2,7 +2,7 @@ name = "Mediborg's Amputation Adventure" desc = "A picture of a blood-soaked medical cyborg flashes on the screen. \ The mediborg has a speech bubble that says, \"Put your hand in the machine if you aren't a coward!\"" - icon_state = "arcade" + icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade") circuit = /obj/item/circuitboard/computer/arcade/amputation interaction_flags_machine = NONE //borgs can't play, but the illiterate can. diff --git a/code/game/machinery/computer/arcade/battle.dm b/code/game/machinery/computer/arcade/battle.dm index 3c6d0242615..c0bc5b5a76b 100644 --- a/code/game/machinery/computer/arcade/battle.dm +++ b/code/game/machinery/computer/arcade/battle.dm @@ -40,7 +40,7 @@ /obj/machinery/computer/arcade/battle name = "battle arcade" desc = "Explore vast worlds and conquer." - icon_state = "arcade" + icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade/battle") icon_screen = "fighters" circuit = /obj/item/circuitboard/computer/arcade/battle diff --git a/code/game/machinery/computer/arcade/orion.dm b/code/game/machinery/computer/arcade/orion.dm index ce26a9b50fb..c662d609294 100644 --- a/code/game/machinery/computer/arcade/orion.dm +++ b/code/game/machinery/computer/arcade/orion.dm @@ -3,7 +3,7 @@ /obj/machinery/computer/arcade/orion_trail name = "The Orion Trail" desc = "Learn how our ancestors got to Orion, and have fun in the process!" - icon_state = "arcade" + icon_state = MAP_SWITCH("arcade", "/obj/machinery/computer/arcade") circuit = /obj/item/circuitboard/computer/arcade/orion_trail ///List of all orion events, created on Initialize. @@ -51,10 +51,10 @@ /obj/machinery/computer/arcade/orion_trail/kobayashi name = "Kobayashi Maru control computer" desc = "A test for cadets." - icon = 'icons/obj/machines/particle_accelerator.dmi' + icon = MAP_SWITCH('icons/obj/machines/particle_accelerator.dmi', 'icons/obj/fluff/map_previews.dmi') + icon_state = MAP_SWITCH("control_boxp", "/obj/machinery/computer/arcade/orion_trail/kobayashi") icon_keyboard = null icon_screen = null - icon_state = "control_boxp" //kobatashi has a smaller list of events, so we copy from the global list and cut whatever isn't here var/list/event_whitelist = list( /datum/orion_event/raiders, diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 9bf72d637d6..583988ef7e6 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -2,6 +2,7 @@ name = "atmospheric alert console" desc = "Used to monitor the station's air alarms." circuit = /obj/item/circuitboard/computer/atmos_alert + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/atmos_alert") icon_screen = "alert:0" icon_keyboard = "atmos_key" light_color = LIGHT_COLOR_CYAN diff --git a/code/game/machinery/computer/atmos_computers/_atmos_control.dm b/code/game/machinery/computer/atmos_computers/_atmos_control.dm index a785cd50456..5d50ad44efa 100644 --- a/code/game/machinery/computer/atmos_computers/_atmos_control.dm +++ b/code/game/machinery/computer/atmos_computers/_atmos_control.dm @@ -2,6 +2,7 @@ /obj/machinery/computer/atmos_control name = "atmospherics monitoring" desc = "Used to monitor the station's atmospherics sensors." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/atmos_control") icon_screen = "tank" icon_keyboard = "atmos_key" circuit = /obj/item/circuitboard/computer/atmos_control diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index f33cff0c7ea..45849a8e3c3 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -3,6 +3,7 @@ /obj/machinery/computer/security name = "security camera console" desc = "Used to access the various cameras on the station." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/warrant") icon_screen = "cameras" icon_keyboard = "security_key" circuit = /obj/item/circuitboard/computer/security @@ -190,7 +191,7 @@ /obj/machinery/computer/security/wooden_tv name = "security camera monitor" desc = "An old TV hooked into the station's camera network." - icon_state = "television" + icon_state = MAP_SWITCH("television", "/obj/machinery/computer/security/wooden_tv") icon_keyboard = null icon_screen = "detective_tv" pass_flags = PASSTABLE @@ -198,6 +199,7 @@ /obj/machinery/computer/security/mining name = "outpost camera console" desc = "Used to access the various cameras on the outpost." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/security/mining") icon_screen = "mining" icon_keyboard = "mining_key" network = list(CAMERANET_NETWORK_MINE, CAMERANET_NETWORK_AUXBASE) diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 9761f5ec550..18139f14807 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/camera_advanced name = "advanced camera console" desc = "Used to access the various cameras on the station." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/security") icon_screen = "cameras" icon_keyboard = "security_key" light_color = COLOR_SOFT_RED @@ -82,6 +83,7 @@ networks += "[port.shuttle_id]_[i]" /obj/machinery/computer/camera_advanced/syndie + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/syndie") icon_keyboard = "syndie_key" circuit = /obj/item/circuitboard/computer/advanced_camera diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 6f5cc6abfb8..e522c82f824 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -10,6 +10,7 @@ /obj/machinery/computer/communications name = "communications console" desc = "A console used for high-priority announcements and emergencies." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/communications") icon_screen = "comm" icon_keyboard = "tech_key" req_access = list(ACCESS_COMMAND) @@ -59,6 +60,7 @@ var/last_toggled /obj/machinery/computer/communications/syndicate + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/communications/syndicate") icon_screen = "commsyndie" circuit = /obj/item/circuitboard/computer/communications/syndicate req_access = list(ACCESS_SYNDICATE_LEADER) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index e8f700fd966..bf77b85e37e 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -6,6 +6,7 @@ /obj/machinery/computer/crew name = "crew monitoring console" desc = "Used to monitor active health sensors built into most of the crew's uniforms." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew") icon_screen = "crew" icon_keyboard = "med_key" circuit = /obj/item/circuitboard/computer/crew @@ -74,6 +75,7 @@ records.set_output(new_table) /obj/machinery/computer/crew/syndie + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew/syndie") icon_keyboard = "syndie_key" /obj/machinery/computer/crew/ui_interact(mob/user) diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 676559b9d75..76d3eab6c4e 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -74,6 +74,7 @@ /obj/machinery/computer/dna_console name = "DNA Console" desc = "From here you can research mysteries of the DNA!" + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/dna_console") icon_screen = "dna" icon_keyboard = "med_key" density = TRUE diff --git a/code/game/machinery/computer/launchpad_control.dm b/code/game/machinery/computer/launchpad_control.dm index dcbd6499ec7..d6364077859 100644 --- a/code/game/machinery/computer/launchpad_control.dm +++ b/code/game/machinery/computer/launchpad_control.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/launchpad name = "launchpad control console" desc = "Used to teleport objects to and from a launchpad." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/launchpad") icon_screen = "teleport" icon_keyboard = "teleport_key" circuit = /obj/item/circuitboard/computer/launchpad_console diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 2d6b55556d9..64110781207 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -2,6 +2,7 @@ /obj/machinery/computer/upload var/mob/living/silicon/current = null //The target of future law uploads + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/upload") icon_screen = "command" time_to_unscrew = 6 SECONDS var/locked = FALSE @@ -99,6 +100,7 @@ return TRUE /obj/machinery/computer/upload/ai + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/upload/ai") // i mean it starts locked by default name = "\improper AI upload console" desc = "Used to upload laws to the AI." circuit = /obj/item/circuitboard/computer/aiupload diff --git a/code/game/machinery/computer/mechlaunchpad.dm b/code/game/machinery/computer/mechlaunchpad.dm index ee3451bb12b..1403b4fad02 100644 --- a/code/game/machinery/computer/mechlaunchpad.dm +++ b/code/game/machinery/computer/mechlaunchpad.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/mechpad name = "orbital mech pad console" desc = "A computer designed to handle the calculations and routing required for sending and receiving mechs from orbit. Requires a link to a nearby Orbital Mech Pad to function." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/mechpad") icon_screen = "mechpad" icon_keyboard = "teleport_key" circuit = /obj/item/circuitboard/computer/mechpad diff --git a/code/game/machinery/computer/modular_shield.dm b/code/game/machinery/computer/modular_shield.dm index dd80553bf39..1f9dd39ec54 100644 --- a/code/game/machinery/computer/modular_shield.dm +++ b/code/game/machinery/computer/modular_shield.dm @@ -2,7 +2,7 @@ name = "modular shield control console" desc = "Used to remotely monitor and toggle modular shield generators." circuit = /obj/item/circuitboard/computer/modular_shield_console - + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") ///the list of generators that are linked to us var/list/obj/machinery/modular_shield_generator/generators = list() diff --git a/code/game/machinery/computer/operating_computer.dm b/code/game/machinery/computer/operating_computer.dm index 04c48a3ee5c..bbe511d94d2 100644 --- a/code/game/machinery/computer/operating_computer.dm +++ b/code/game/machinery/computer/operating_computer.dm @@ -4,6 +4,7 @@ /obj/machinery/computer/operating name = "operating computer" desc = "Monitors patient vitals and displays surgery steps. Can be loaded with surgery disks to perform experimental procedures. Automatically syncs to operating tables within its line of sight for surgical tech advancement." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew") icon_screen = "crew" icon_keyboard = "med_key" circuit = /obj/item/circuitboard/computer/operating diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.dm b/code/game/machinery/computer/orders/order_computer/mining_order.dm index 1bbb11070ee..a7ebbc945fe 100644 --- a/code/game/machinery/computer/orders/order_computer/mining_order.dm +++ b/code/game/machinery/computer/orders/order_computer/mining_order.dm @@ -16,6 +16,7 @@ 35% cheaper than express delivery."} express_tooltip = @{"Sends your purchases instantly."} credit_type = MONEY_MINING_SYMBOL + generate_map_preview = FALSE order_categories = list( CATEGORY_MINING, diff --git a/code/game/machinery/computer/orders/order_computer/order_computer.dm b/code/game/machinery/computer/orders/order_computer/order_computer.dm index d89dd05c434..ab8b32bb612 100644 --- a/code/game/machinery/computer/orders/order_computer/order_computer.dm +++ b/code/game/machinery/computer/orders/order_computer/order_computer.dm @@ -4,6 +4,7 @@ GLOBAL_LIST_EMPTY(order_console_products) /obj/machinery/computer/order_console name = "Orders Console" desc = "An interface for ordering specific ingredients from Cargo, with an express option at the cost of more money." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/order_console") icon_screen = "request" icon_keyboard = "generic_key" light_color = LIGHT_COLOR_ORANGE diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 798f20c21a8..11280255ca2 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -133,14 +133,14 @@ /obj/machinery/computer/pod/old name = "\improper DoorMex control console" - icon_state = "oldcomp" + icon_state = MAP_SWITCH("oldcomp", "/obj/machinery/computer/pod/old") icon_screen = "library" icon_keyboard = null /obj/machinery/computer/pod/old/mass_driver_controller name = "\improper Mass Driver Controller" - icon = 'icons/obj/machines/wallmounts.dmi' - icon_state = "airlock_control_standby" + icon = MAP_SWITCH('icons/obj/machines/wallmounts.dmi', 'icons/obj/fluff/map_previews.dmi') + icon_state = MAP_SWITCH("airlock_control_standby", "/obj/machinery/computer/pod/old/mass_driver_controller") icon_screen = null density = FALSE diff --git a/code/game/machinery/computer/prisoner/_prisoner.dm b/code/game/machinery/computer/prisoner/_prisoner.dm index 7ed7753f5ff..c2d0de75725 100644 --- a/code/game/machinery/computer/prisoner/_prisoner.dm +++ b/code/game/machinery/computer/prisoner/_prisoner.dm @@ -1,4 +1,5 @@ /obj/machinery/computer/prisoner + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/prisoner/gulag_teleporter_computer") interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON|INTERACT_MACHINE_REQUIRES_LITERACY /// ID card currently inserted into the computer. VAR_FINAL/obj/item/card/id/advanced/prisoner/contained_id diff --git a/code/game/machinery/computer/records/medical.dm b/code/game/machinery/computer/records/medical.dm index 108abd8fbf9..29108afabfc 100644 --- a/code/game/machinery/computer/records/medical.dm +++ b/code/game/machinery/computer/records/medical.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/records/medical name = "medical records console" desc = "This can be used to check medical records." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/records/medical") icon_screen = "medcomp" icon_keyboard = "med_key" req_one_access = list(ACCESS_MEDICAL, ACCESS_DETECTIVE, ACCESS_GENETICS) @@ -8,13 +9,14 @@ light_color = LIGHT_COLOR_BLUE /obj/machinery/computer/records/medical/syndie + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/records/medical/syndie") icon_keyboard = "syndie_key" req_one_access = list(ACCESS_SYNDICATE) /obj/machinery/computer/records/medical/laptop name = "medical laptop" desc = "A cheap Nanotrasen medical laptop, it functions as a medical records computer. It's bolted to the table." - icon_state = "laptop" + icon_state = MAP_SWITCH("laptop", "/obj/machinery/computer/records/medical/laptop") icon_screen = "medlaptop" icon_keyboard = "laptop_key" pass_flags = PASSTABLE diff --git a/code/game/machinery/computer/records/security.dm b/code/game/machinery/computer/records/security.dm index 9835b99ab93..562002b7e8d 100644 --- a/code/game/machinery/computer/records/security.dm +++ b/code/game/machinery/computer/records/security.dm @@ -8,6 +8,7 @@ /obj/machinery/computer/records/security name = "security records console" desc = "Used to view and edit personnel's security records." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/warrant") icon_screen = "security" icon_keyboard = "security_key" req_one_access = list(ACCESS_SECURITY, ACCESS_HOP) @@ -17,13 +18,14 @@ var/printing = FALSE /obj/machinery/computer/records/security/syndie + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/records/security/syndie") icon_keyboard = "syndie_key" req_one_access = list(ACCESS_SYNDICATE) /obj/machinery/computer/records/security/laptop name = "security laptop" desc = "A cheap Nanotrasen security laptop, it functions as a security records console. It's bolted to the table." - icon_state = "laptop" + icon_state = MAP_SWITCH("laptop", "/obj/machinery/computer/records/security/laptop") icon_screen = "seclaptop" icon_keyboard = "laptop_key" pass_flags = PASSTABLE diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 0111a5c71b2..9dd07904887 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/robotics name = "robotics control console" desc = "Used to remotely lockdown linked Cyborgs and Drones." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/robotics") icon_screen = "robot" icon_keyboard = "rd_key" req_access = list(ACCESS_ROBOTICS) diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index f102f185ffc..347ae65020e 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/station_alert name = "station alert console" desc = "Used to access the station's automated alert system." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/atmos_alert") icon_screen = "alert:0" icon_keyboard = "atmos_key" circuit = /obj/item/circuitboard/computer/station_alert diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index b17589bb4ba..0e3acf6df26 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -4,6 +4,7 @@ /obj/machinery/computer/teleporter name = "teleporter control console" desc = "Used to control a linked teleportation Hub and Station." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/launchpad") icon_screen = "teleport" icon_keyboard = "teleport_key" light_color = LIGHT_COLOR_BLUE diff --git a/code/game/machinery/computer/telescreen.dm b/code/game/machinery/computer/telescreen.dm index 21171e200a9..83a821fe222 100644 --- a/code/game/machinery/computer/telescreen.dm +++ b/code/game/machinery/computer/telescreen.dm @@ -13,6 +13,7 @@ /// The kind of wallframe that this telescreen drops var/frame_type = /obj/item/wallframe/telescreen projectiles_pass_chance = 100 + generate_map_preview = FALSE /obj/machinery/computer/security/telescreen/Initialize(mapload) . = ..() diff --git a/code/game/machinery/computer/terminal.dm b/code/game/machinery/computer/terminal.dm index fc618703f98..9423a554874 100644 --- a/code/game/machinery/computer/terminal.dm +++ b/code/game/machinery/computer/terminal.dm @@ -2,6 +2,7 @@ /obj/machinery/computer/terminal name = "terminal" desc = "A relatively low-tech solution for internal computing, internal network mail, and logging. This model appears to be quite old." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") circuit = /obj/item/circuitboard/computer/terminal //Deconstruction still wipes contents but this is easier than smashing the console ///Text that displays on top of the actual 'lore' funnies. var/upperinfo = "COPYRIGHT 2487 NANOSOFT-TM - DO NOT REDISTRIBUTE" diff --git a/code/game/machinery/computer/warrant.dm b/code/game/machinery/computer/warrant.dm index dd85df26060..af8b0e0d04e 100644 --- a/code/game/machinery/computer/warrant.dm +++ b/code/game/machinery/computer/warrant.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/warrant name = "security warrant console" desc = "Used to view outstanding warrants." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/warrant") icon_screen = "security" icon_keyboard = "security_key" circuit = /obj/item/circuitboard/computer/warrant diff --git a/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm b/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm index 6e1b0542080..2fc3ea73eda 100644 --- a/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm +++ b/code/game/machinery/experimental_cloner/experimental_cloner_computer.dm @@ -3,6 +3,7 @@ name = "experimental cloner control console" desc = "It scans DNA structures." circuit = /obj/item/circuitboard/computer/experimental_cloner + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/crew") icon_screen = "crew" icon_keyboard = "med_key" light_color = LIGHT_COLOR_GREEN diff --git a/code/game/machinery/satellite/satellite_control.dm b/code/game/machinery/satellite/satellite_control.dm index 9983cc439e3..077f4ebba46 100644 --- a/code/game/machinery/satellite/satellite_control.dm +++ b/code/game/machinery/satellite/satellite_control.dm @@ -1,4 +1,5 @@ /obj/machinery/computer/sat_control + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") name = "satellite control" desc = "Used to control the satellite network." circuit = /obj/item/circuitboard/computer/sat_control diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm index e09e08b7a3d..9bb4e5316c2 100644 --- a/code/game/machinery/telecomms/computers/logbrowser.dm +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -4,6 +4,7 @@ /obj/machinery/computer/telecomms/server name = "telecommunications server monitoring console" + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/telecomms/server") icon_screen = "comm_logs" desc = "Has full access to all details and record of the telecommunications network it's monitoring." diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index e3d318d0e34..c64b420993e 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -11,6 +11,7 @@ /obj/machinery/computer/message_monitor name = "message monitor console" desc = "Used to monitor the crew's PDA messages, as well as request console messages." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/telecomms/server") icon_screen = "comm_logs" circuit = /obj/item/circuitboard/computer/message_monitor light_color = LIGHT_COLOR_GREEN diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm index ff7b10dbd0f..ac2ac00a896 100644 --- a/code/game/machinery/telecomms/computers/telemonitor.dm +++ b/code/game/machinery/telecomms/computers/telemonitor.dm @@ -6,7 +6,7 @@ name = "telecommunications monitoring console" desc = "Monitors the details of the telecommunications network it's synced with." circuit = /obj/item/circuitboard/computer/comm_monitor - + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/telecomms/monitor") icon_screen = "comm_monitor" /// Weakref of the currently selected tcomms machine diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 3db7bc1c079..6cc35616c2a 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -46,6 +46,8 @@ /// The sound this obj makes when something is unbuckled from it var/unbuckle_sound = null + var/generate_map_preview = FALSE + uses_integrity = TRUE /obj/vv_edit_var(vname, vval) diff --git a/code/game/objects/structures/construction_console/construction_console.dm b/code/game/objects/structures/construction_console/construction_console.dm index 249860c99b6..73884ac7913 100644 --- a/code/game/objects/structures/construction_console/construction_console.dm +++ b/code/game/objects/structures/construction_console/construction_console.dm @@ -14,6 +14,7 @@ circuit = /obj/item/circuitboard/computer/base_construction off_action = /datum/action/innate/camera_off/base_construction jump_action = null + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/base_construction") icon_screen = "mining" icon_keyboard = "rd_key" light_color = LIGHT_COLOR_PINK diff --git a/code/modules/antagonists/abductor/machinery/camera.dm b/code/modules/antagonists/abductor/machinery/camera.dm index b64ef2ce1bd..9fc7ab31f95 100644 --- a/code/modules/antagonists/abductor/machinery/camera.dm +++ b/code/modules/antagonists/abductor/machinery/camera.dm @@ -8,8 +8,8 @@ var/abduct_created = FALSE lock_override = TRUE - icon = 'icons/obj/antags/abductor.dmi' - icon_state = "camera" + icon = MAP_SWITCH('icons/obj/antags/abductor.dmi', 'icons/obj/fluff/map_previews.dmi') + icon_state = MAP_SWITCH("camera", "/obj/machinery/computer/camera_advanced/abductor") icon_keyboard = null icon_screen = null resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF diff --git a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm index ac12e3c8222..d35ebbf348f 100644 --- a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm +++ b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm @@ -69,6 +69,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psyker name = "psyker navigation warper" desc = "Uses amplified brainwaves to designate and map a precise transit location for the psyker shuttle." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter/psyker") icon_screen = "recharge_comp_on" interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON //blind friendly x_offset = 0 diff --git a/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm b/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm index 94c16d86dbe..ee0b8b737d9 100644 --- a/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm +++ b/code/modules/antagonists/nukeop/equipment/overwatch_tools.dm @@ -20,6 +20,7 @@ Happy hunting! name = "overwatch camera console" desc = "Allows you to view members of your operative team via their bodycam feeds. We call them 'bodycams', but they're actually a swarm of tiny, near-imperceptible camera drones that follow each target. \ It is believed that adversaries either don't notice the drones, or avoid attacking them in hopes that they'll capture footage of their combat prowess against our operatives." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/security/overwatch") icon_screen = "commsyndie" icon_keyboard = "syndie_key" network = list(OPERATIVE_CAMERA_NET) diff --git a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm index 4314f10efcc..548c5a84dc2 100644 --- a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm +++ b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm @@ -220,6 +220,7 @@ icon_state = "[base_icon_state]-off" /obj/machinery/computer/piratepad_control + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") name = "cargo hold control terminal" ///Message to display on the TGUI window. var/status_report = "Ready for delivery." diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 972d7b767d1..05ee2a67299 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -331,6 +331,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /obj/machinery/computer/gateway_control name = "Gateway Control" desc = "Human friendly interface to the mysterious gate next to it." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") var/obj/machinery/gateway/G /obj/machinery/computer/gateway_control/Initialize(mapload, obj/item/circuitboard/C) diff --git a/code/modules/bitrunning/objects/quantum_console.dm b/code/modules/bitrunning/objects/quantum_console.dm index 37c4c25b66d..dbb303cc246 100644 --- a/code/modules/bitrunning/objects/quantum_console.dm +++ b/code/modules/bitrunning/objects/quantum_console.dm @@ -2,11 +2,13 @@ name = "quantum console" circuit = /obj/item/circuitboard/computer/quantum_console + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/quantum_console") icon_keyboard = "mining" icon_screen = "bitrunning" req_access = list(ACCESS_MINING) /// The server this console is connected to. var/datum/weakref/server_ref + keyboard_change_icon = FALSE /obj/machinery/computer/quantum_console/Initialize(mapload, obj/item/circuitboard/circuit) . = ..() diff --git a/code/modules/bitrunning/objects/vendor.dm b/code/modules/bitrunning/objects/vendor.dm index 951e8ff4636..c7ccf6cfd52 100644 --- a/code/modules/bitrunning/objects/vendor.dm +++ b/code/modules/bitrunning/objects/vendor.dm @@ -14,6 +14,7 @@ 35% cheaper than express delivery."} express_tooltip = @{"Sends your purchases instantly."} credit_type = MONEY_BITRUNNING_SYMBOL + generate_map_preview = FALSE order_categories = list( CATEGORY_BITRUNNING_FLAIR, diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index 6cd0aed1084..ab3f7aebbe3 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -6,6 +6,7 @@ desc = "This console allows the user to purchase a package \ with 1/40th of the delivery time: made possible by Nanotrasen's new \"1500mm Orbital Railgun\".\ All sales are near instantaneous - please choose carefully" + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/cargo/express") icon_screen = "supply_express" circuit = /obj/item/circuitboard/computer/cargo/express blockade_warning = "Bluespace instability detected. Delivery impossible." diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm index d0d45c63262..881c98fdec6 100644 --- a/code/modules/cargo/orderconsole.dm +++ b/code/modules/cargo/orderconsole.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/cargo name = "supply console" desc = "Used to order supplies, approve requests, and control the shuttle." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/cargo") icon_screen = "supply" circuit = /obj/item/circuitboard/computer/cargo light_color = COLOR_BRIGHT_ORANGE diff --git a/code/modules/explorer_drone/control_console.dm b/code/modules/explorer_drone/control_console.dm index 21c64757bc1..a4933355b97 100644 --- a/code/modules/explorer_drone/control_console.dm +++ b/code/modules/explorer_drone/control_console.dm @@ -2,6 +2,7 @@ name = "exploration drone control console" desc = "Control exploration drones from interstellar distances. Communication lag not included." circuit = /obj/item/circuitboard/computer/exodrone_console + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") //Currently controlled drone var/obj/item/exodrone/controlled_drone /// Have we lost contact with the drone without disconnecting. Unset on user confirmation. diff --git a/code/modules/explorer_drone/scanner_array.dm b/code/modules/explorer_drone/scanner_array.dm index 8a86eed2305..beee37ae799 100644 --- a/code/modules/explorer_drone/scanner_array.dm +++ b/code/modules/explorer_drone/scanner_array.dm @@ -78,6 +78,7 @@ GLOBAL_LIST_INIT(scan_conditions,init_scan_conditions()) /obj/machinery/computer/exoscanner_control name = "scanner array control console" desc = "Controls scanner arrays to initiate scans for exodrones." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") circuit = /obj/item/circuitboard/computer/exoscanner_console /// If scan was interrupted show a popup until dismissed. var/failed_popup = FALSE diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index 11c006047f2..75203688875 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -32,6 +32,7 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf /obj/machinery/computer/holodeck name = "holodeck control console" desc = "A computer used to control a nearby holodeck." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/holodeck") icon_screen = "holocontrol" //new vars diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 7d1d6ec1b7d..ab6bfe0f92c 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -20,7 +20,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0) */ /obj/machinery/computer/libraryconsole name = "library visitor console" - icon_state = "oldcomp" + icon_state = MAP_SWITCH("oldcomp", "/obj/machinery/computer/pod/old") icon_screen = "library" icon_keyboard = null circuit = /obj/item/circuitboard/computer/libraryconsole @@ -282,7 +282,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0) verb_exclaim = "beeps" pass_flags = PASSTABLE - icon_state = "oldcomp" + icon_state = MAP_SWITCH("oldcomp", "/obj/machinery/computer/pod/old") icon_screen = "library" icon_keyboard = null circuit = /obj/item/circuitboard/computer/libraryconsole diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm index 13963576232..cc40071c0d5 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm @@ -2,7 +2,7 @@ name = "exhibit info terminal" desc = "A relatively low-tech info board. Not as low-tech as an actual sign though. Appears to be quite old." upperinfo = "Nanotrasen Museum Exhibit Info" - icon_state = "plaque" + icon_state = MAP_SWITCH("plaque", "/obj/machinery/computer/terminal/museum") icon_screen = "plaque_screen" icon_keyboard = null diff --git a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm index cf85a2beda6..fd6a006813f 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm @@ -45,6 +45,7 @@ /obj/machinery/computer/vaultcontroller name = "vault controller" desc = "It seems to be powering and controlling the vault locks." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/vaultcontroller") icon_screen = "power" icon_keyboard = "power_key" light_color = LIGHT_COLOR_DIM_YELLOW diff --git a/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm b/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm index 22029f60a01..388ef6c9df2 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/caravanambush.dm @@ -36,6 +36,7 @@ toolspeed = 0.3 /obj/machinery/computer/shuttle/caravan + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate") /obj/item/circuitboard/computer/caravan build_path = /obj/machinery/computer/shuttle/caravan diff --git a/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm b/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm index 4dcd44031e7..bd2be2666eb 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/commsbuoy.dm @@ -129,6 +129,7 @@ /obj/machinery/computer/terminal/nt_commsbuoy name = "satellite dish operations terminal" + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/terminal/nt_commsbuoy") icon_screen = "comm" tguitheme = "ntos" upperinfo = "SATELLITE DISH OPERATIONS READOUT" diff --git a/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm b/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm index d020536e129..30dd4e84ad0 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/derelict_sulaco.dm @@ -39,6 +39,7 @@ name = "overwatch console" desc = "State of the art machinery for general overwatch purposes." upperinfo = "Bravo Overwatch Console" + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/terminal/sulaco/overwatch") icon_screen = "explosive" content = list("Operator: Cas Ashpole

Squad Overwatch: Cas Ashpole

Squad Leader Deployed
Squad Smartgunners: 1 Deployed
Squad Corpsmen: 1 Deployed
Squad Engineers: 2 Deployed
Squad Marines: 4 Deployed
Total: 9 Deployed
Marines Alive: 0

Name Role State Location SL Distance
Chip Mello Squad Leader Dead Self-Destruct Core Room N/A
Sophie Knight Squad Smartgunner Dead Self-Destruct Core Room 4
Marie Newman Squad Corpsman Dead Unknown N/A
Angelo Patton Squad Engineer Dead Sulaco Maintenance 19
Marlon Foster Squad Engineer Dead Sulaco Dropship Hangar 28
Doug Davidson Squad Marine Dead Sulaco Hangar Workshop 33
Courtney Miller Squad Marine Dead Sulaco Hangar Workshop 42
Cesar Jefferson Squad Marine Dead Self-Destruct Core Room 14

Primary Objective: Defend the self-destruct core.
Secondary Objective: Give them hell!
") @@ -52,6 +53,7 @@ /obj/machinery/computer/terminal/sulaco/helm name = "helms computer" desc = "The navigation console for the Sulaco." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate") icon_screen = "syndishuttle" icon_keyboard = "syndie_key" upperinfo = "Navigation" @@ -60,6 +62,7 @@ /obj/machinery/computer/terminal/sulaco/map name = "map table" desc = "A table that displays a map of the current target location." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/terminal/sulaco/map") icon_screen = "mining" upperinfo = "LV-624" content = list("The display can barely output an image of a map, owing to its damage, but you can make out bits and pieces of something. It appears to be a satellite image of a colony located on a jungle planet. Lush and thick greenery covers the southern part, while the northern area is encompassed by mountainous rock.

A river flows through the colony, splitting it in two. In addition, several icons are scattered across the map, but you are sadly not able to make much sense of them.") diff --git a/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_machines.dm b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_machines.dm index c2552b10744..9355c637c98 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_machines.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_machines.dm @@ -1,4 +1,5 @@ /obj/machinery/computer/old + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/piratepad_control") name = "old computer" circuit = /obj/item/circuitboard/computer diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index ff4bf581cd8..b371033bce2 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -15,8 +15,8 @@ name = "auxiliary base management console" desc = "Allows a deployable expedition base to be dropped from the station to a designated mining location. It can also \ interface with the mining shuttle at the landing site if a mobile beacon is also deployed." - icon = 'icons/obj/machines/wallmounts.dmi' - icon_state = "pod_off" + icon = MAP_SWITCH('icons/obj/machines/wallmounts.dmi', 'icons/obj/fluff/map_previews.dmi') + icon_state = MAP_SWITCH("pod_off", "/obj/machinery/computer/shuttle/pod") icon_keyboard = null icon_screen = "pod_on" req_one_access = list(ACCESS_AUX_BASE, ACCESS_COMMAND) diff --git a/code/modules/power/turbine/turbine_computer.dm b/code/modules/power/turbine/turbine_computer.dm index 7771bda03f8..815bed616c1 100644 --- a/code/modules/power/turbine/turbine_computer.dm +++ b/code/modules/power/turbine/turbine_computer.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/turbine_computer name = "gas turbine control computer" desc = "A computer to remotely control a gas turbine." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/turbine_computer") icon_screen = "turbinecomp" icon_keyboard = "tech_key" circuit = /obj/item/circuitboard/computer/turbine_computer diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 647aa146a30..61af619cd31 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -10,6 +10,7 @@ base_icon_state = "pandemic" resistance_flags = ACID_PROOF circuit = /obj/item/circuitboard/computer/pandemic + generate_map_preview = FALSE /// Whether the pandemic is ready to make another culture/vaccine var/wait = FALSE diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 1e2e0de6f02..33e689100c5 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -19,6 +19,7 @@ Nothing else in the console has ID requirements. /obj/machinery/computer/rdconsole name = "R&D Console" desc = "A console used to interface with R&D tools." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/rdconsole") icon_screen = "rdcomp" icon_keyboard = "rd_key" circuit = /obj/item/circuitboard/computer/rdconsole diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index bcb81a84bbc..a0e8ad98869 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -31,6 +31,7 @@ networks = list(CAMERANET_NETWORK_SS13) circuit = /obj/item/circuitboard/computer/xenobiology + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/xenobio") icon_screen = "slime_comp" icon_keyboard = "rd_key" diff --git a/code/modules/shuttle/mobile_port/variants/emergency/emergency_console.dm b/code/modules/shuttle/mobile_port/variants/emergency/emergency_console.dm index b663323a3cf..ef185d21d9c 100644 --- a/code/modules/shuttle/mobile_port/variants/emergency/emergency_console.dm +++ b/code/modules/shuttle/mobile_port/variants/emergency/emergency_console.dm @@ -6,6 +6,7 @@ /obj/machinery/computer/emergency_shuttle name = "emergency shuttle console" desc = "For shuttle control." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/shuttle") icon_screen = "shuttle" icon_keyboard = "tech_key" resistance_flags = INDESTRUCTIBLE diff --git a/code/modules/shuttle/mobile_port/variants/emergency/pods.dm b/code/modules/shuttle/mobile_port/variants/emergency/pods.dm index 6d9460f1435..3fa9e281bc5 100644 --- a/code/modules/shuttle/mobile_port/variants/emergency/pods.dm +++ b/code/modules/shuttle/mobile_port/variants/emergency/pods.dm @@ -23,8 +23,8 @@ name = "pod control computer" locked = TRUE possible_destinations = "pod_asteroid" - icon = 'icons/obj/machines/wallmounts.dmi' - icon_state = "pod_off" + icon = MAP_SWITCH('icons/obj/machines/wallmounts.dmi', 'icons/obj/fluff/map_previews.dmi') + icon_state = MAP_SWITCH("pod_off", "/obj/machinery/computer/shuttle/pod") circuit = /obj/item/circuitboard/computer/emergency_pod light_color = LIGHT_COLOR_BLUE density = FALSE diff --git a/code/modules/shuttle/shuttle_consoles/shuttle_console.dm b/code/modules/shuttle/shuttle_consoles/shuttle_console.dm index 141f5769db0..ef7c9949498 100644 --- a/code/modules/shuttle/shuttle_consoles/shuttle_console.dm +++ b/code/modules/shuttle/shuttle_consoles/shuttle_console.dm @@ -9,6 +9,7 @@ /obj/machinery/computer/shuttle name = "shuttle console" desc = "A shuttle control computer." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/shuttle") icon_screen = "shuttle" icon_keyboard = "tech_key" light_color = LIGHT_COLOR_CYAN diff --git a/code/modules/shuttle/shuttle_consoles/syndicate.dm b/code/modules/shuttle/shuttle_consoles/syndicate.dm index 07115b52636..dc387091ddc 100644 --- a/code/modules/shuttle/shuttle_consoles/syndicate.dm +++ b/code/modules/shuttle/shuttle_consoles/syndicate.dm @@ -4,6 +4,7 @@ name = "syndicate shuttle terminal" desc = "The terminal used to control the syndicate transport shuttle." circuit = /obj/item/circuitboard/computer/syndicate_shuttle + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate") icon_screen = "syndishuttle" icon_keyboard = "syndie_key" light_color = COLOR_SOFT_RED @@ -56,6 +57,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate name = "syndicate shuttle navigation computer" desc = "Used to designate a precise transit location for the syndicate shuttle." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate") icon_screen = "syndishuttle" icon_keyboard = "syndie_key" shuttleId = "syndicate" diff --git a/code/modules/transport/tram/tram_controls.dm b/code/modules/transport/tram/tram_controls.dm index a1d0f846107..3664c464551 100644 --- a/code/modules/transport/tram/tram_controls.dm +++ b/code/modules/transport/tram/tram_controls.dm @@ -27,6 +27,7 @@ var/specific_transport_id = TRAMSTATION_LINE_1 /// If the sign is adjusted for split type tram windows var/split_mode = FALSE + generate_map_preview = FALSE /obj/machinery/computer/tram_controls/split circuit = /obj/item/circuitboard/computer/tram_controls/split diff --git a/code/modules/vehicles/mecha/mech_bay.dm b/code/modules/vehicles/mecha/mech_bay.dm index 4011b490b85..7f6ca714176 100644 --- a/code/modules/vehicles/mecha/mech_bay.dm +++ b/code/modules/vehicles/mecha/mech_bay.dm @@ -94,6 +94,7 @@ /obj/machinery/computer/mech_bay_power_console name = "mech bay power control console" desc = "Displays the status of mechs connected to the recharge station." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/mech_bay_power_console") icon_screen = "recharge_comp" icon_keyboard = "rd_key" circuit = /obj/item/circuitboard/computer/mech_bay_power_console diff --git a/code/modules/vehicles/mecha/mecha_control_console.dm b/code/modules/vehicles/mecha/mecha_control_console.dm index 66c165f6462..06f3f305232 100644 --- a/code/modules/vehicles/mecha/mecha_control_console.dm +++ b/code/modules/vehicles/mecha/mecha_control_console.dm @@ -1,6 +1,7 @@ /obj/machinery/computer/mecha name = "exosuit control console" desc = "Used to remotely locate or lockdown exosuits." + icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/mecha") icon_screen = "mecha" icon_keyboard = "tech_key" req_access = list(ACCESS_ROBOTICS) diff --git a/icons/obj/fluff/map_previews.dmi b/icons/obj/fluff/map_previews.dmi new file mode 100644 index 00000000000..224b2094117 Binary files /dev/null and b/icons/obj/fluff/map_previews.dmi differ diff --git a/icons/obj/fluff/map_previews_template.dmi b/icons/obj/fluff/map_previews_template.dmi new file mode 100644 index 00000000000..77896621945 Binary files /dev/null and b/icons/obj/fluff/map_previews_template.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 729a220b8db..089404f9838 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -731,6 +731,7 @@ #include "code\controllers\subsystem\lighting.dm" #include "code\controllers\subsystem\lua.dm" #include "code\controllers\subsystem\machines.dm" +#include "code\controllers\subsystem\map_preview.dm" #include "code\controllers\subsystem\map_vote.dm" #include "code\controllers\subsystem\mapping.dm" #include "code\controllers\subsystem\market.dm"