diff --git a/code/__DEFINES/mob_hud.dm b/code/__DEFINES/mob_hud.dm index 7536b7576d8d..97cbe0281924 100644 --- a/code/__DEFINES/mob_hud.dm +++ b/code/__DEFINES/mob_hud.dm @@ -54,6 +54,7 @@ #define TRACKER_LZ "track_lz" #define TRACKER_CO "track_co" #define TRACKER_XO "track_xo" +#define TRACKER_CMP "track_cmp" #define TRACKER_CL "track_cl" #define TRACKER_ASL "_asl" // Alpha Squad Leader diff --git a/code/game/jobs/job/command/police/chief_police.dm b/code/game/jobs/job/command/police/chief_police.dm index 63e6d8023f17..ecc8af38526c 100644 --- a/code/game/jobs/job/command/police/chief_police.dm +++ b/code/game/jobs/job/command/police/chief_police.dm @@ -5,6 +5,16 @@ flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/cmp entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. You lead the Military Police, ensure your officers maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!" + var/mob/living/carbon/human/active_cmp + +/datum/job/command/warrant/generate_entry_conditions(mob/living/cmp, whitelist_status) + . = ..() + active_cmp = cmp + RegisterSignal(cmp, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_active_cmp)) + +/datum/job/command/warrant/proc/cleanup_active_cmp(mob/cmp) + SIGNAL_HANDLER + active_cmp = null AddTimelock(/datum/job/command/warrant, list( JOB_POLICE_ROLES = 15 HOURS, diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm index b69773dbf8bf..85d08641bfdf 100644 --- a/code/game/machinery/vending/vending_types.dm +++ b/code/game/machinery/vending/vending_types.dm @@ -296,6 +296,7 @@ /obj/item/storage/firstaid/fire = 2, /obj/item/storage/firstaid/rad = 1, /obj/item/device/radio/headset = 6, + /obj/item/tool/crew_monitor = 1, ) contraband = list(/obj/item/storage/fancy/cigar = 2,/obj/item/tool/lighter/zippo = 2) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index b9b7e94d9ae5..320e44f3f503 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -565,6 +565,21 @@ initial_keys = list(/obj/item/device/encryptionkey/cmpcom/cdrcom) volume = RADIO_VOLUME_CRITICAL +/obj/item/device/radio/headset/almayer/mcom/sea + name = "marine senior enlisted advisor headset" + desc = "Issued only to senior enlisted advisors. Channels are as follows: :v - marine command, :p - military police, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel" + icon_state = "mco_headset" + initial_keys = list(/obj/item/device/encryptionkey/cmpcom/cdrcom) + volume = RADIO_VOLUME_CRITICAL + misc_tracking = TRUE + locate_setting = TRACKER_CO + + inbuilt_tracking_options = list( + "Commanding Officer" = TRACKER_CO, + "Executive Officer" = TRACKER_XO, + "Chief MP" = TRACKER_CMP + ) + /obj/item/device/radio/headset/almayer/mcom/synth name = "marine synth headset" desc = "Issued only to USCM synthetics. Channels are as follows: :v - marine command, :p - military police, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel" diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index a53504fec0c9..9c00599ec9cd 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -609,7 +609,7 @@ back_item = /obj/item/storage/backpack/marine new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom/cdrcom(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom/sea(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m44/custom(new_human), WEAR_WAIST) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 62e2c7a01cd1..213d037afe6e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1259,6 +1259,11 @@ if(TRACKER_XO) H = GLOB.marine_leaders[JOB_XO] tracking_suffix = "_xo" + if(TRACKER_CMP) + var/datum/job/command/warrant/cmp_job = GLOB.RoleAuthority.roles_for_mode[JOB_CHIEF_POLICE] + if(cmp_job?.active_cmp) + H = cmp_job.active_cmp + tracking_suffix = "_cmp" if(TRACKER_CL) var/datum/job/civilian/liaison/liaison_job = GLOB.RoleAuthority.roles_for_mode[JOB_CORPORATE_LIAISON] if(liaison_job?.active_liaison) diff --git a/icons/mob/hud/human_midnight.dmi b/icons/mob/hud/human_midnight.dmi index c6fc989fec2d..78a0b105610e 100644 Binary files a/icons/mob/hud/human_midnight.dmi and b/icons/mob/hud/human_midnight.dmi differ