Files
Batrachophreno 8111a8489b Restore many missing inhand sprites for items, add/port others (#21831)
Many, many, many items have inhand sprites in their .dmis but for
whatever reasons do not display them in-game. This PR:

1. Updates many item definitions to point to their already-existing
inhands correctly. This consists largely of held tools, but also gas
tanks and jetpacks mounted in the suit storage slot.

2. Adds a few codersprites made by me for objects with either missing
inhands or poorly matching mishands (IE, the tape recorder, which has a
black case, reused the white inhand sprites of the health analyzer). The
new sprites are modified or recolored variations of other inhand sprites
from our repo, except for circuitboards which are new.
<img width="444" height="400" alt="image"
src="https://github.com/user-attachments/assets/7f107b9a-fe24-4e31-8f16-4d34768ee117"
/>


3. Adds inhand sprites for Inflatables and Inflatable Boxes made by
Tomixcomics.
<img width="424" height="101" alt="image"
src="https://github.com/user-attachments/assets/434107c4-8577-49a2-a58e-d6b014c03933"
/>

4. Ports inhand sprites for the Hydraulic Rescue Tool from tg's Jaws of
Life.
<img width="224" height="94" alt="Screenshot 2026-02-07 172931"
src="https://github.com/user-attachments/assets/070c7956-f6a8-4fb5-870f-10c64afcc8b3"
/>

5. Some additional cleanup while in the area. The 'analyzer' has been
renamed the 'gas analyzer' to be consistent with the other analyzer
objects, standardized icon_state naming conventions where I saw
oddballs, updated code docs to use DMDocs when in the area, etc.

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/hydraulic_rescue_tool.dmi | [SomeAngryMiner (bee
station)](https://github.com/BeeStation/BeeStation-Hornet/pull/2487),
[maxymax
(/tg/station)](https://github.com/tgstation/tgstation/pull/58616) |
CC-BY-SA |
| icons/obj/item/inflatables.dmi |
[Tomixcomics](https://github.com/tomixcomics) | CC-BY-SA |
2026-02-17 17:51:22 +00:00

133 lines
3.6 KiB
Plaintext

//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/computer/operating
name = "patient monitoring console"
desc = "A console that displays information on the status of the patient on an adjacent operating table."
density = TRUE
anchored = TRUE
icon_screen = "crew"
icon_keyboard = "teal_key"
icon_keyboard_emis = "teal_key_mask"
light_color = LIGHT_COLOR_BLUE
circuit = /obj/item/circuitboard/operating
///The operating table we are hooked into
var/obj/machinery/optable/table
///The paper with the scan of the patient
var/obj/item/paper/medscan/primer
var/obj/machinery/body_scanconsole/embedded/embedded_scanner
/obj/machinery/computer/operating/Initialize()
..()
embedded_scanner = new /obj/machinery/body_scanconsole/embedded(src, 0, TRUE, TRUE)
return INITIALIZE_HINT_LATELOAD
/obj/machinery/computer/operating/LateInitialize()
. = ..()
for(var/obj/machinery/optable/T in orange(1, src))
var/successfully_hooked = hook_table(T)
if(successfully_hooked)
break
/obj/machinery/computer/operating/Destroy()
QDEL_NULL(embedded_scanner)
QDEL_NULL(primer)
//Clear the operating table
if(table)
unhook_table(table)
. = ..()
/**
* Used to connect (hook) the computer to the operating table
*
* Returns `TRUE` on successful hook, `FALSE` otherwise
*
* * table_to_hook - An `/obj/machinery/optable` to hook to
*/
/obj/machinery/computer/operating/proc/hook_table(obj/machinery/optable/table_to_hook)
if(table)
return FALSE
if(QDELETED(table_to_hook))
crash_with("Trying to hook a QDELETED optable!")
return FALSE
if(!istype(table_to_hook))
crash_with("Trying to hook a table that is not of the correct type!")
return FALSE
table = table_to_hook
table.computer = src
return TRUE
/**
* Used to disconnect (unhook) the computer to the operating table
*
* Returns `TRUE` on successful unhook, `FALSE` otherwise
*
* * table_to_unhook - An `/obj/machinery/optable` to hook to
*/
/obj/machinery/computer/operating/proc/unhook_table(obj/machinery/optable/table_to_unhook)
if(table_to_unhook != table)
crash_with("Trying to unhook a table that is not hooked!")
return FALSE
table.computer = null
table = null
return TRUE
/obj/machinery/computer/operating/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/paper/medscan))
if(primer)
to_chat(user, SPAN_WARNING("\The [src] already has a primer!"))
return
user.visible_message("\The [user] slides \the [attacking_item] into \the [src].", SPAN_NOTICE("You slide \the [attacking_item] into \the [src]."), range = 3)
user.drop_from_inventory(attacking_item, src)
primer = attacking_item
/obj/machinery/computer/operating/attack_ai(mob/user)
if(!ai_can_interact(user))
return
return attack_hand(user)
/obj/machinery/computer/operating/attack_hand(mob/user)
if(..())
return
embedded_scanner.ui_interact(user)
/obj/machinery/computer/operating/verb/eject_primer()
set src in oview(1)
set category = "Object"
set name = "Eject Primer"
if(use_check(usr))
return
if(!primer)
to_chat(usr, SPAN_WARNING("\The [src] doesn't have a primer!"))
return
usr.visible_message("\The [usr] takes \the [primer] out of \the [src].", SPAN_NOTICE("You take \the [primer] out of \the [src]"), range = 3)
usr.put_in_hands(primer)
primer = null
/obj/machinery/computer/operating/terminal
name = "patient monitoring terminal"
icon = 'icons/obj/modular_computers/modular_terminal.dmi'
icon_screen = "med_comp"
icon_keyboard = "med_key"
icon_keyboard_emis = "med_key_mask"
is_connected = TRUE
has_off_keyboards = TRUE
can_pass_under = FALSE
light_power_on = 1