diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm
index c22ba708774..d047b394b63 100644
--- a/code/__DEFINES/hud.dm
+++ b/code/__DEFINES/hud.dm
@@ -26,13 +26,12 @@
#define DATA_HUD_MEDICAL_BASIC 3
#define DATA_HUD_MEDICAL_ADVANCED 4
#define DATA_HUD_DIAGNOSTIC 5
-//antag HUD defines
-#define ANTAG_HUD_CULT 6
-#define ANTAG_HUD_REV 7
-#define ANTAG_HUD_OPS 8
-#define ANTAG_HUD_WIZ 9
-#define ANTAG_HUD_SHADOW 10
-#define ANTAG_HUD_VAMPIRE 11
-
//NATIONS
-#define DATA_HUD_NATIONS 12
\ No newline at end of file
+#define DATA_HUD_NATIONS 6
+//antag HUD defines
+#define ANTAG_HUD_CULT 7
+#define ANTAG_HUD_REV 8
+#define ANTAG_HUD_OPS 9
+#define ANTAG_HUD_WIZ 10
+#define ANTAG_HUD_SHADOW 11
+#define ANTAG_HUD_VAMPIRE 12
diff --git a/code/datums/hud.dm b/code/datums/hud.dm
index e37f8f0800b..569620158dd 100644
--- a/code/datums/hud.dm
+++ b/code/datums/hud.dm
@@ -7,7 +7,7 @@ var/datum/atom_hud/huds = list( \
DATA_HUD_MEDICAL_BASIC = new/datum/atom_hud/data/human/medical/basic(), \
DATA_HUD_MEDICAL_ADVANCED = new/datum/atom_hud/data/human/medical/advanced(), \
DATA_HUD_DIAGNOSTIC = new/datum/atom_hud/data/diagnostic(),
- //DATA_HUD_NATIONS = new/datum/atom_hud/data/human/nations(), \//
+ DATA_HUD_NATIONS = new/datum/atom_hud/data/human/nations(), \
ANTAG_HUD_CULT = new/datum/atom_hud/antag(), \
ANTAG_HUD_REV = new/datum/atom_hud/antag(), \
ANTAG_HUD_OPS = new/datum/atom_hud/antag(), \
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index b31b60690a0..92ff07ae274 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -47,8 +47,9 @@
hud_icons = list (DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD)
-///datum/atom_hud/data/human/nations
-// hud_icons = list(NATIONS_HUD)
+/datum/atom_hud/data/human/nations
+ hud_icons = list(NATIONS_HUD)
+
/* MED/SEC/DIAG HUD HOOKS */
/*
@@ -258,11 +259,11 @@
holder.icon_state = "hudwarn"
-////NATIONS/////
-///mob/living/carbon/human/proc/nation_hud_set_ID()
-// var/image/holder = hud_list[NATIONS_HUD]
-// holder.icon_state = "hudunknown"
-// if(mind && mind.nation)
-// holder.icon_state = "hud[mind.nation.default_name]"
+//NATIONS/////
+/mob/living/carbon/human/proc/nation_hud_set_ID()
+ var/image/holder = hud_list[NATIONS_HUD]
+ holder.icon_state = "hudunknown"
+ if(mind && mind.nation)
+ holder.icon_state = "hud[mind.nation.default_name]"
diff --git a/code/game/gamemodes/nations/nations.dm b/code/game/gamemodes/nations/nations.dm
index 6003a8a3560..a7e70b83ce9 100644
--- a/code/game/gamemodes/nations/nations.dm
+++ b/code/game/gamemodes/nations/nations.dm
@@ -139,7 +139,6 @@ datum/game_mode/nations
continue
H << "You are now part of the great sovereign nation of [H.mind.nation.default_name]!"
continue
- //H.nation_hud_set_ID()
if(H.mind.assigned_role in civilian_positions)
H << "You do not belong to any nation and are free to sell your services to the highest bidder."
continue
@@ -147,6 +146,8 @@ datum/game_mode/nations
else
message_admins("[H.name] with [H.mind.assigned_role] could not find any nation to assign!")
continue
+ H.nation_hud_set_ID()
+
/datum/game_mode/nations/proc/set_ai()
for(var/mob/living/silicon/ai/AI in mob_list)
@@ -272,7 +273,6 @@ datum/game_mode/nations
H.mind.nation.membership += H.mind.current
H << "You are now part of the great sovereign nation of [H.mind.nation.current_name]!"
return 1
- //H.nation_hud_set_ID()
if(H.mind.assigned_role in civilian_positions)
H << "You do not belong to any nation and are free to sell your services to the highest bidder."
return 1
@@ -284,6 +284,7 @@ datum/game_mode/nations
else
message_admins("[H.name] with [H.mind.assigned_role] could not find any nation to assign!")
return 1
+ H.nation_hud_set_ID()
message_admins("[H.name] latejoined with no mind.")
return 1
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 84fd44e8851..f6cf5c1dc30 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -111,36 +111,18 @@ Works together with spawning an observer, noted above.
if(!client) return 0
//regular_hud_updates()
- if(client.images.len)
- for(var/image/hud in client.images)
- if(copytext(hud.icon_state,1,4) == "hud")
- client.images.Remove(hud)
- if(antagHUD)
- var/list/target_list = list()
- for(var/mob/living/target in oview(src, 14))
- if(target.mind && (target.mind.special_role || issilicon(target) || target.mind.nation))
- target_list += target
- if(target_list.len)
- assess_targets(target_list, src)
- //if(medHUD)
- /// process_medHUD(src)
- //if(secHUD)
- // process_secHUD(src)
+ //if(client.images.len)
+ // for(var/image/hud in client.images)
+ // if(copytext(hud.icon_state,1,4) == "hud")
+ // client.images.Remove(hud)
+ //if(antagHUD)
+ // var/list/target_list = list()
+ // for(var/mob/living/target in oview(src, 14))
+ // if(target.mind && (target.mind.special_role || issilicon(target) || target.mind.nation))
+ // target_list += target
+ // if(target_list.len)
+ // assess_targets(target_list, src)
-/*
-/mob/dead/proc/process_medHUD(var/mob/M)
- var/client/C = M.client
- for(var/mob/living/carbon/human/patient in oview(M, 14))
- C.images += patient.hud_list[HEALTH_HUD]
- C.images += patient.hud_list[STATUS_HUD_OOC]
-
-/mob/dead/proc/process_secHUD(var/mob/M)
- var/client/C = M.client
- for(var/mob/living/carbon/human/target in oview(M, 14))
- C.images += target.hud_list[IMPTRACK_HUD]
- C.images += target.hud_list[IMPLOYAL_HUD]
- C.images += target.hud_list[IMPCHEM_HUD]
-*/
/mob/dead/proc/assess_targets(list/target_list, mob/dead/observer/U)
var/client/C = U.client
@@ -311,9 +293,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(M.antagHUD)
M.antagHUD = 0
src << "\blue AntagHUD Disabled"
+ for(var/datum/atom_hud/H in huds)
+ if(istype(H, /datum/atom_hud/antag) || istype(H, /datum/atom_hud/data/human/security/advanced))
+ H.add_hud_to(usr)
else
M.antagHUD = 1
src << "\blue AntagHUD Enabled"
+ for(var/datum/atom_hud/H in huds)
+ if(istype(H, /datum/atom_hud/antag) || istype(H, /datum/atom_hud/data/human/security/advanced))
+ H.remove_hud_from(usr)
/mob/dead/observer/proc/dead_tele(A in ghostteleportlocs)
set category = "Ghost"
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 9bbb0021366..0bc919e4b0c 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -1,6 +1,6 @@
/mob/living/carbon/human
- hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD)
+ hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,NATIONS_HUD)
//Hair colour and style
var/r_hair = 0
var/g_hair = 0
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 5096653c7fa..3deacfdca2f 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -80,7 +80,7 @@ var/list/robot_verbs_default = list(
var/updating = 0 //portable camera camerachunk update
- hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD)
+ hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD,NATIONS_HUD)
var/jetpackoverlay = 0
var/magpulse = 0
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index f4e28cf2d48..ad56f0fdedf 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -24,7 +24,7 @@
var/next_alarm_notice
var/list/datum/alarm/queued_alarms = new()
- hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD)
+ hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD,NATIONS_HUD)
var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use