Skip to content

Crew Monitoring Computer v2 - #38834

Merged
Inorien merged 5 commits into
vgstation-coders:Bleeding-Edgefrom
west3436:cmcv2
Jan 8, 2026
Merged

Crew Monitoring Computer v2#38834
Inorien merged 5 commits into
vgstation-coders:Bleeding-Edgefrom
west3436:cmcv2

Conversation

@west3436

@west3436 west3436 commented Jan 2, 2026

Copy link
Copy Markdown
Collaborator

What this does

Converts the CMC UI to a PCMC-inspired TGUI.

Why it's good

I've always disliked the CMC UI; it felt clunky and unresponsive with an inconsistent style. Switching this to TGUI gives us a more responsive UI which is consistent with the PCMC's UI. Holomap functionality is fully retained.

image

How it was tested

  • Verified all types of suit sensors appear on all appropriate zLevels.
  • Verified holomaps are shown for all zLevels.

Changelog

🆑

  • tweak: Converted the CMC UI to TGUI.

@west3436 west3436 added the UI Edits UI in some way. label Jan 2, 2026
@Eneocho

Eneocho commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator

Can you make it so by default it shows all Z levels, but you can discriminate by specific z-level?

@west3436

west3436 commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator Author

Can you make it so by default it shows all Z levels, but you can discriminate by specific z-level?

Certainly; I just tried to keep it consistent with the existing behavior.

@Eneocho

Eneocho commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator

Can you make it so by default it shows all Z levels, but you can discriminate by specific z-level?

Certainly; I just tried to keep it consistent with the existing behavior.

Please do, man. The only reason we have the current z-specific list is cause it's a clunky nanoUI implementation. If you're TGUIzing the CMC there's no need to keep that clunky behaviour, you can just expand the coordinates to INCLUDE the Z-level. "Location: Toxins (353,262,3)", but let the user check a specific z level only if they want (40pop and you got asked to check for the miner's coords, for example, you swap to Z3, note it down, then back to global, for example).

@aacovski

aacovski commented Jan 3, 2026

Copy link
Copy Markdown

Can you make it so by default it shows all Z levels, but you can discriminate by specific z-level?

Oftentimes, medical staff don't even bother searching through all the z-levels. Having it in one spot, rather than searching through multiple z-levels can definitely save effort and help get people back into the game faster. Furthermore, consider having multiple filters: z-level, specific vitals, maybe a filter by name?

@west3436

west3436 commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator Author

Updated OP image - you can now sort by name, role, and status. You can still filter to any zLevel and the default is ALL.

@Eneocho

Eneocho commented Jan 3, 2026

Copy link
Copy Markdown
Collaborator

you can now sort by name, role, and status. You can still filter to any zLevel and the default is ALL.

THE PR THAT SAVED SLASH VEE GEE SLASH STATION

@SECBATON-GRIFFON

SECBATON-GRIFFON commented Jan 4, 2026

Copy link
Copy Markdown
Contributor

hopefully some of the tgui interface stuff is reused from the pcmc where necessary to avoid duplicated code
that's more or less what i did with camera bug handheld tvs, weld the security camera tgui stuff onto it

@Inorien Inorien left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

show/hide holomap is producing runtimes for me

[20:53:14] Runtime in code/modules/cmc/crew.dm,370: Cannot modify null.loc.
  proc name: updateVisuals (/obj/machinery/computer/crew/proc/updateVisuals)
  usr: Oswald Wile (inorien) (/mob/living/carbon/human)
  usr.loc: The floor (219, 249, 1) (/turf/simulated/floor)
  src: Crew monitoring computer (/obj/machinery/computer/crew)
  src.loc: the floor (218,249,1) (/turf/simulated/floor)
  call stack:
  Crew monitoring computer (/obj/machinery/computer/crew): updateVisuals(Oswald Wile (/mob/living/carbon/human))
  Crew monitoring computer (/obj/machinery/computer/crew): processUser(Oswald Wile (/mob/living/carbon/human))
  Crew monitoring computer (/obj/machinery/computer/crew): ui act("toggle_holomap", /list (/list), /datum/tgui (/datum/tgui), /datum/ui_state/default (/datum/ui_state/default))
  /datum/tgui (/datum/tgui): on message("act/toggle_holomap", /list (/list), /list (/list))
  /datum/tgui_window (/datum/tgui_window): on message("act/toggle_holomap", /list (/list), /list (/list))
  tgui Topic(/list (/list))
  Inorien (/client): Topic("type=act%2Ftoggle_holomap&payl...", /list (/list), null)

just using the bridge cmc with some humans spawned in
image

@west3436

west3436 commented Jan 6, 2026

Copy link
Copy Markdown
Collaborator Author

Will debug tn, thanks for the review

@Inorien

Inorien commented Jan 6, 2026

Copy link
Copy Markdown
Collaborator

think the runtime is just from the z = 0 for all z levels

var/holomap_bgmap = "cmc_\ref[src]_\ref[user]_[z]"
here line 367 crew.dm

@west3436 west3436 mentioned this pull request Jan 7, 2026
7 tasks
@Inorien
Inorien merged commit 2cbd5d4 into vgstation-coders:Bleeding-Edge Jan 8, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

UI Edits UI in some way.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants