diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 769f7707ea..fb8a134c5a 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -707,7 +707,8 @@ datum/mind
var/mob/living/carbon/human/H = current
del(H.belt)
del(H.back)
- del(H.ears)
+ del(H.l_ear)
+ del(H.r_ear)
del(H.gloves)
del(H.head)
del(H.shoes)
@@ -989,7 +990,8 @@ datum/mind
var/mob/living/carbon/human/H = current
del(H.belt)
del(H.back)
- del(H.ears)
+ del(H.l_ear)
+ del(H.r_ear)
del(H.gloves)
del(H.head)
del(H.shoes)
diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm
index 437b5be0c2..c3b77d5f87 100644
--- a/code/game/gamemodes/events/space_ninja.dm
+++ b/code/game/gamemodes/events/space_ninja.dm
@@ -534,7 +534,7 @@ As such, it's hard-coded for now. No reason for it not to be, really.
del(gloves)
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
- equip_to_slot_or_del(R, slot_ears)
+ equip_to_slot_or_del(R, slot_l_ear)
if(gender==FEMALE)
equip_to_slot_or_del(new /obj/item/clothing/under/color/blackf(src), slot_w_uniform)
else
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index d014ba0960..be68855414 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -205,7 +205,7 @@
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(synd_mob)
R.set_frequency(radio_freq)
- synd_mob.equip_to_slot_or_del(R, slot_ears)
+ synd_mob.equip_to_slot_or_del(R, slot_l_ear)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(synd_mob), slot_w_uniform)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(synd_mob), slot_shoes)
diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm
index 0168bbf204..53d90a7e98 100644
--- a/code/game/gamemodes/setupgame.dm
+++ b/code/game/gamemodes/setupgame.dm
@@ -95,14 +95,14 @@
var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc)
M.real_name = "Corpse"
M.death()
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/device/pda/engineering(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(M), slot_shoes)
// M.equip_to_slot_or_del(new /obj/item/weapon/storage/toolbox/mechanical(M), slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/t_scanner(M), slot_r_store)
- //M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ //M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
if (prob(50))
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), slot_wear_mask)
@@ -117,7 +117,7 @@
var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc)
M.real_name = "Corpse"
M.death()
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(M), slot_shoes)
@@ -140,7 +140,7 @@
var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc)
M.real_name = "Corpse"
M.death()
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/utilitybelt(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_engineer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(M), slot_shoes)
@@ -161,7 +161,7 @@
var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc)
M.real_name = "Corpse"
M.death()
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
//M.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index ba5700b1df..add8ee00a6 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -162,7 +162,7 @@
del(wizard_mob.r_store)
del(wizard_mob.l_store)
- wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_ears)
+ wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_l_ear)
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(wizard_mob), slot_w_uniform)
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(wizard_mob), slot_shoes)
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit)
diff --git a/code/game/hud.dm b/code/game/hud.dm
index 0439985288..99042bdef9 100644
--- a/code/game/hud.dm
+++ b/code/game/hud.dm
@@ -79,7 +79,8 @@
#define ui_glasses "1:6,3:9"
#define ui_mask "2:8,3:9"
-#define ui_ears "3:10,3:9"
+#define ui_l_ear "3:10,3:9"
+#define ui_r_ear "3:10,4:11"
#define ui_head "2:8,4:11"
@@ -214,7 +215,8 @@ datum/hud/New(mob/owner)
if(inventory_shown && hud_shown)
if(H.shoes) H.shoes.screen_loc = ui_shoes
if(H.gloves) H.gloves.screen_loc = ui_gloves
- if(H.ears) H.ears.screen_loc = ui_ears
+ if(H.l_ear) H.l_ear.screen_loc = ui_l_ear
+ if(H.r_ear) H.r_ear.screen_loc = ui_r_ear
if(H.glasses) H.glasses.screen_loc = ui_glasses
if(H.w_uniform) H.w_uniform.screen_loc = ui_iclothing
if(H.wear_suit) H.wear_suit.screen_loc = ui_oclothing
@@ -223,7 +225,8 @@ datum/hud/New(mob/owner)
else
if(H.shoes) H.shoes.screen_loc = null
if(H.gloves) H.gloves.screen_loc = null
- if(H.ears) H.ears.screen_loc = null
+ if(H.l_ear) H.l_ear.screen_loc = null
+ if(H.r_ear) H.r_ear.screen_loc = null
if(H.glasses) H.glasses.screen_loc = null
if(H.w_uniform) H.w_uniform.screen_loc = null
if(H.wear_suit) H.wear_suit.screen_loc = null
diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm
index 38cb9d10be..7d93bdb325 100644
--- a/code/game/jobs/job/captain.dm
+++ b/code/game/jobs/job/captain.dm
@@ -14,7 +14,7 @@
minimal_player_age = 14
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_cap(H), slot_back)
@@ -70,7 +70,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index 8d9e0875dc..ce7c3968f3 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -116,7 +116,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/quartermaster(H), slot_belt)
@@ -146,7 +146,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/cargo(H), slot_belt)
@@ -174,7 +174,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo (H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo (H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
@@ -342,7 +342,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm
index 3ab06c4e38..246d3eb3f0 100644
--- a/code/game/jobs/job/engineering.dm
+++ b/code/game/jobs/job/engineering.dm
@@ -22,7 +22,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
@@ -57,7 +57,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
@@ -91,7 +91,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 22dd096bcc..1303976b13 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -19,7 +19,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
@@ -53,7 +53,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
@@ -115,7 +115,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chemist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt)
@@ -143,7 +143,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_medsci(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_medsci(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/geneticist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt)
@@ -171,7 +171,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
@@ -204,7 +204,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm
index fbfe286e48..c4c117b260 100644
--- a/code/game/jobs/job/science.dm
+++ b/code/game/jobs/job/science.dm
@@ -21,7 +21,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/rd(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/rd(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/research_director(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/rd(H), slot_belt)
@@ -50,7 +50,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt)
@@ -77,7 +77,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt)
@@ -104,7 +104,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/roboticist(H), slot_w_uniform)
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index dd04b9cbac..b8f91554d4 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -25,7 +25,7 @@
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/hos(H), slot_belt)
@@ -61,7 +61,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
@@ -100,7 +100,7 @@
minimal_player_age = 7
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
@@ -146,7 +146,7 @@
minimal_player_age = 7
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm
index fc5f7df203..cb8a73278c 100644
--- a/code/game/jobs/job_controller.dm
+++ b/code/game/jobs/job_controller.dm
@@ -431,7 +431,7 @@ var/global/datum/controller/occupations/job_master
H << "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp."
spawnId(H, rank, alt_title)
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_l_ear)
//Gives glasses to the vision impaired
if(H.disabilities & NEARSIGHTED)
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 91b2455eb0..b461cd4b12 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -122,7 +122,7 @@
for(var/mob/living/carbon/M in ohearers(6, chassis))
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
- if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
+ if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs))
continue
M << "HONK"
M.sleeping = 0
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index c55684eb19..39252964f6 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -461,11 +461,21 @@
if( !(slot_flags & SLOT_HEAD) )
return 0
return 1
- if(slot_ears)
- if(H.ears)
+ if(slot_l_ear)
+ if(H.l_ear)
return 0
if( !(slot_flags & SLOT_EARS) )
return 0
+ if( (slot_flags & SLOT_TWOEARS) && H.r_ear )
+ return 0
+ return 1
+ if(slot_r_ear)
+ if(H.r_ear)
+ return 0
+ if( !(slot_flags & SLOT_EARS) )
+ return 0
+ if( (slot_flags & SLOT_TWOEARS) && H.l_ear )
+ return 0
return 1
if(slot_w_uniform)
if(H.w_uniform)
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 05285807d7..f8b908264d 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -23,7 +23,7 @@
/obj/item/device/radio/headset/receive_range(freq, level)
if(ishuman(src.loc))
var/mob/living/carbon/human/H = src.loc
- if(H.ears == src)
+ if(H.l_ear == src || H.r_ear == src)
return ..(freq, level)
return -1
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index 2ff047a746..1a50e9ad05 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -38,7 +38,7 @@
if(iscarbon(M))
eye_safety = M.eyecheck()
if(ishuman(M))
- if(istype(M:ears, /obj/item/clothing/ears/earmuffs))
+ if(istype(M:l_ear, /obj/item/clothing/ears/earmuffs) || istype(M:r_ear, /obj/item/clothing/ears/earmuffs))
ear_safety += 2
if(HULK in M.mutations)
ear_safety += 1
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 1f08c11230..9d6cab7723 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -258,8 +258,11 @@
if(H.glasses && washglasses)
if(H.glasses.clean_blood())
H.update_inv_glasses(0)
- if(H.ears && washears)
- if(H.ears.clean_blood())
+ if(H.l_ear && washears)
+ if(H.l_ear.clean_blood())
+ H.update_inv_ears(0)
+ if(H.r_ear && washears)
+ if(H.r_ear.clean_blood())
H.update_inv_ears(0)
if(H.belt)
if(H.belt.clean_blood())
diff --git a/code/game/response_team.dm b/code/game/response_team.dm
index 282db62f72..a518cef566 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -280,13 +280,12 @@ proc/trigger_armed_response_team(var/force = 0)
/mob/living/carbon/human/proc/equip_strike_team(leader_selected = 0)
//Special radio setup
- equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_ears)
+ equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_l_ear)
//Replaced with new ERT uniform
equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(src), slot_w_uniform)
equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes)
equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves)
- equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_ears)
equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses)
equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(src), slot_back)
/*
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index b28cb8420e..f8165e848c 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1405,7 +1405,7 @@
if(!istype(H))
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- if(!istype(H.ears, /obj/item/device/radio/headset))
+ if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
usr << "The person you are trying to contact is not wearing a headset"
return
@@ -1422,7 +1422,7 @@
if(!istype(H))
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- if(!istype(H.ears, /obj/item/device/radio/headset))
+ if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
usr << "The person you are trying to contact is not wearing a headset"
return
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index f08f5c3a30..0659622f6a 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -667,7 +667,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/chaplain_hood(M), slot_head)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/chaplain_hoodie(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(M), slot_l_store)
@@ -689,7 +689,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/kitchenknife(M), slot_l_store)
@@ -706,7 +706,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wcoat(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store)
@@ -747,7 +747,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/representative(M), slot_w_uniform)
M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes)
M.equip_if_possible(new /obj/item/clothing/gloves/white(M), slot_gloves)
- M.equip_if_possible(new /obj/item/device/radio/headset/heads/hop(M), slot_ears)
+ M.equip_if_possible(new /obj/item/device/radio/headset/heads/hop(M), slot_l_ear)
var/obj/item/device/pda/heads/pda = new(M)
pda.owner = M.real_name
@@ -772,7 +772,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/officer(M), slot_w_uniform)
M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes)
M.equip_if_possible(new /obj/item/clothing/gloves/white(M), slot_gloves)
- M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_ears)
+ M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
var/obj/item/device/pda/heads/pda = new(M)
@@ -797,7 +797,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/captain(M), slot_w_uniform)
M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes)
M.equip_if_possible(new /obj/item/clothing/gloves/white(M), slot_gloves)
- M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_ears)
+ M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/captain(M), slot_head)
var/obj/item/device/pda/heads/pda = new(M)
@@ -821,7 +821,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
@@ -840,7 +840,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/swat/officer(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), slot_head)
@@ -861,7 +861,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
@@ -873,7 +873,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
@@ -885,7 +885,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/marisa(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/marisa(M), slot_shoes)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/marisa(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/spellbook(M), slot_r_hand)
@@ -896,7 +896,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
- M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_ears)
+ M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/hgpirate(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm
index 06cb9f6456..822043720d 100644
--- a/code/modules/admin/verbs/onlyone.dm
+++ b/code/modules/admin/verbs/onlyone.dm
@@ -31,7 +31,7 @@
del(I)
H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears)
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/weapon/claymore(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes)
diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm
index ca5d8e5cb8..8ea48ea489 100644
--- a/code/modules/admin/verbs/striketeam.dm
+++ b/code/modules/admin/verbs/striketeam.dm
@@ -125,7 +125,7 @@ var/global/sent_strike_team = 0
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
R.set_frequency(1441)
- equip_to_slot_or_del(R, slot_ears)
+ equip_to_slot_or_del(R, slot_l_ear)
if (leader_selected == 0)
equip_to_slot_or_del(new /obj/item/clothing/under/color/green(src), slot_w_uniform)
else
diff --git a/code/modules/admin/verbs/striketeam_syndicate.dm b/code/modules/admin/verbs/striketeam_syndicate.dm
index c74e0b9f70..e8c446d966 100644
--- a/code/modules/admin/verbs/striketeam_syndicate.dm
+++ b/code/modules/admin/verbs/striketeam_syndicate.dm
@@ -131,7 +131,7 @@ var/global/sent_syndicate_strike_team = 0
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(src)
R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode.
- equip_to_slot_or_del(R, slot_ears)
+ equip_to_slot_or_del(R, slot_l_ear)
equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(src), slot_w_uniform)
equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes)
if (!syndicate_leader_selected)
diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm
index be4b04f42f..1e3a8defe7 100644
--- a/code/modules/admin/verbs/vox_raiders.dm
+++ b/code/modules/admin/verbs/vox_raiders.dm
@@ -4,7 +4,7 @@ var/global/vox_tick = 1
var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(src)
R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode.
- equip_to_slot_or_del(R, slot_ears)
+ equip_to_slot_or_del(R, slot_l_ear)
equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_robes(src), slot_w_uniform)
equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(src), slot_shoes) // REPLACE THESE WITH CODED VOX ALTERNATIVES.
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index e0cc01cb3e..e9304976cc 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -42,7 +42,7 @@
if(src.corpsegloves)
M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves)
if(src.corpseradio)
- M.equip_to_slot_or_del(new src.corpseradio(M), slot_ears)
+ M.equip_to_slot_or_del(new src.corpseradio(M), slot_l_ear)
if(src.corpseglasses)
M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses)
if(src.corpsemask)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 2d13a0ce92..1e3213e66e 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -9,12 +9,60 @@
throwforce = 2
slot_flags = SLOT_EARS
+/obj/item/clothing/ears/attack_hand(mob/user as mob)
+ if (!user) return
+
+ if (src.loc != user || !istype(user,/mob/living/carbon/human))
+ ..()
+ return
+
+ var/mob/living/carbon/human/H = user
+ if(H.l_ear != src && H.r_ear != src)
+ ..()
+ return
+
+ if(!canremove)
+ return
+
+ var/obj/item/clothing/ears/O
+ if(slot_flags & SLOT_TWOEARS )
+ O = (H.l_ear == src ? H.r_ear : H.l_ear)
+ user.u_equip(O)
+ if(!istype(src,/obj/item/clothing/ears/offear))
+ del(O)
+ O = src
+ else
+ O = src
+
+ user.u_equip(src)
+
+ if (O)
+ user.put_in_hands(O)
+ O.add_fingerprint(user)
+
+ if(istype(src,/obj/item/clothing/ears/offear))
+ del(src)
+
+/obj/item/clothing/ears/offear
+ name = "Other ear"
+ w_class = 5.0
+ icon = 'icons/mob/screen1_Midnight.dmi'
+ icon_state = "block"
+ slot_flags = SLOT_EARS | SLOT_TWOEARS
+
+ New(var/obj/O)
+ name = O.name
+ desc = O.desc
+ icon = O.icon
+ icon_state = O.icon_state
+ dir = O.dir
+
/obj/item/clothing/ears/earmuffs
name = "earmuffs"
desc = "Protects your hearing from loud noises, and quiet ones as well."
icon_state = "earmuffs"
item_state = "earmuffs"
-
+ slot_flags = SLOT_EARS | SLOT_TWOEARS
//Glasses
/obj/item/clothing/glasses
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 0da20f1a5e..0bcf1b9244 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -194,7 +194,8 @@
if(hasvar(src,"back")) if(src:back) items += src:back
if(hasvar(src,"belt")) if(src:belt) items += src:belt
- if(hasvar(src,"ears")) if(src:ears) items += src:ears
+ if(hasvar(src,"l_ear")) if(src:l_ear) items += src:l_ear
+ if(hasvar(src,"r_ear")) if(src:r_ear) items += src:r_ear
if(hasvar(src,"glasses")) if(src:glasses) items += src:glasses
if(hasvar(src,"gloves")) if(src:gloves) items += src:gloves
if(hasvar(src,"head")) if(src:head) items += src:head
@@ -255,9 +256,13 @@
if(!src.wear_id && src.w_uniform)
src.wear_id = W
equipped = 1
- if(slot_ears)
- if(!src.ears)
- src.ears = W
+ if(slot_l_ear)
+ if(!src.l_ear)
+ src.l_ear = W
+ equipped = 1
+ if(slot_r_ear)
+ if(!src.r_ear)
+ src.r_ear = W
equipped = 1
if(slot_glasses)
if(!src.glasses)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index e074d9caae..5efefee11d 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -163,9 +163,13 @@
else
msg += "[t_He] [t_has] \icon[glasses] \a [glasses] covering [t_his] eyes.\n"
- //ears
- if(ears && !skipears)
- msg += "[t_He] [t_has] \icon[ears] \a [ears] on [t_his] ears.\n"
+ //left ear
+ if(l_ear && !skipears)
+ msg += "[t_He] [t_has] \icon[l_ear] \a [l_ear] on [t_his] left ear.\n"
+
+ //right ear
+ if(r_ear && !skipears)
+ msg += "[t_He] [t_has] \icon[r_ear] \a [r_ear] on [t_his] right ear.\n"
//ID
if(wear_id)
diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm
index c1cf163469..70f204bbc4 100644
--- a/code/modules/mob/living/carbon/human/hud.dm
+++ b/code/modules/mob/living/carbon/human/hud.dm
@@ -249,11 +249,20 @@
src.other += inv_box
inv_box = new /obj/screen/inventory()
- inv_box.name = "ears"
+ inv_box.name = "l_ear"
inv_box.icon = ui_style
inv_box.icon_state = "ears"
- inv_box.screen_loc = ui_ears
- inv_box.slot_id = slot_ears
+ inv_box.screen_loc = ui_l_ear
+ inv_box.slot_id = slot_l_ear
+ inv_box.layer = 19
+ src.other += inv_box
+
+ inv_box = new /obj/screen/inventory()
+ inv_box.name = "r_ear"
+ inv_box.icon = ui_style
+ inv_box.icon_state = "ears"
+ inv_box.screen_loc = ui_r_ear
+ inv_box.slot_id = slot_r_ear
inv_box.layer = 19
src.other += inv_box
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index cfef1b78a0..e2548ff08f 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -198,7 +198,7 @@
b_loss = b_loss/1.5
f_loss = f_loss/1.5
- if (!istype(ears, /obj/item/clothing/ears/earmuffs))
+ if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 30
ear_deaf += 120
if (prob(70) && !shielded)
@@ -208,7 +208,7 @@
b_loss += 30
if (prob(getarmor(null, "bomb")))
b_loss = b_loss/2
- if (!istype(ears, /obj/item/clothing/ears/earmuffs))
+ if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
ear_damage += 15
ear_deaf += 60
if (prob(50) && !shielded)
@@ -398,7 +398,8 @@
Right Hand: [(r_hand ? r_hand : "Nothing")]
Gloves: [(gloves ? gloves : "Nothing")]
Eyes: [(glasses ? glasses : "Nothing")]
-
Ears: [(ears ? ears : "Nothing")]
+
Left Ear: [(l_ear ? l_ear : "Nothing")]
+
Right Ear: [(r_ear ? r_ear : "Nothing")]
Head: [(head ? head : "Nothing")]
Shoes: [(shoes ? shoes : "Nothing")]
Belt: [(belt ? belt : "Nothing")]
@@ -812,7 +813,7 @@
/mob/living/carbon/human/abiotic(var/full_body = 0)
- if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.ears || src.gloves)))
+ if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves)))
return 1
if( (src.l_hand && !src.l_hand.abstract) || (src.r_hand && !src.r_hand.abstract) )
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index d9768992d3..315b3f4091 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -34,7 +34,8 @@
var/obj/item/gloves = null
var/obj/item/glasses = null
var/obj/item/head = null
- var/obj/item/ears = null
+ var/obj/item/l_ear = null
+ var/obj/item/r_ear = null
var/obj/item/wear_id = null
var/obj/item/r_store = null
var/obj/item/l_store = null
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 8e5938fffd..46d7083644 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -31,7 +31,9 @@
if(slot_wear_id)
// the only relevant check for this is the uniform check
return 1
- if(slot_ears)
+ if(slot_l_ear)
+ return has_organ("head")
+ if(slot_r_ear)
return has_organ("head")
if(slot_glasses)
return has_organ("head")
@@ -92,8 +94,12 @@
update_hair(0) //rebuild hair
success = 1
update_inv_head()
- else if (W == ears)
- ears = null
+ else if (W == l_ear)
+ l_ear = null
+ success = 1
+ update_inv_ears()
+ else if (W == r_ear)
+ r_ear = null
success = 1
update_inv_ears()
else if (W == shoes)
@@ -215,8 +221,22 @@
src.wear_id = W
W.equipped(src, slot)
update_inv_wear_id(redraw_mob)
- if(slot_ears)
- src.ears = W
+ if(slot_l_ear)
+ src.l_ear = W
+ if(l_ear.slot_flags & SLOT_TWOEARS)
+ var/obj/item/clothing/ears/offear/O = new(W)
+ O.loc = src
+ src.r_ear = O
+ O.layer = 20
+ W.equipped(src, slot)
+ update_inv_ears(redraw_mob)
+ if(slot_r_ear)
+ src.r_ear = W
+ if(r_ear.slot_flags & SLOT_TWOEARS)
+ var/obj/item/clothing/ears/offear/O = new(W)
+ O.loc = src
+ src.l_ear = O
+ O.layer = 20
W.equipped(src, slot)
update_inv_ears(redraw_mob)
if(slot_glasses)
@@ -393,12 +413,18 @@
return
else
message = "\red [source] is trying to take off the [target.glasses] from [target]'s eyes!"
- if("ears")
- if(target.ears && !target.ears.canremove)
- message = "\red [source] fails to take off \a [target.ears] from [target]'s ears!"
+ if("l_ear")
+ if(target.l_ear && !target.l_ear.canremove)
+ message = "\red [source] fails to take off \a [target.l_ear] from [target]'s left ear!"
return
else
- message = "\red [source] is trying to take off the [target.ears] from [target]'s ears!"
+ message = "\red [source] is trying to take off the [target.l_ear] from [target]'s left ear!"
+ if("r_ear")
+ if(target.r_ear && !target.r_ear.canremove)
+ message = "\red [source] fails to take off \a [target.r_ear] from [target]'s right ear!"
+ return
+ else
+ message = "\red [source] is trying to take off the [target.r_ear] from [target]'s right ear!"
if("head")
if(target.head && !target.head.canremove)
message = "\red [source] fails to take off \a [target.head] from [target]'s head!"
@@ -510,10 +536,14 @@ It can still be worn/put on as normal.
slot_to_process = slot_head
if (target.head && target.head.canremove)
strip_item = target.head
- if("ears")
- slot_to_process = slot_ears
- if (target.ears)
- strip_item = target.ears
+ if("l_ear")
+ slot_to_process = slot_l_ear
+ if (target.l_ear)
+ strip_item = target.l_ear
+ if("r_ear")
+ slot_to_process = slot_r_ear
+ if (target.r_ear)
+ strip_item = target.r_ear
if("shoes")
slot_to_process = slot_shoes
if (target.shoes && target.shoes.canremove)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 9efb72f203..f026d0c50c 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1039,7 +1039,7 @@
ear_deaf = max(ear_deaf, 1)
else if(ear_deaf) //deafness, heals slowly over time
ear_deaf = max(ear_deaf-1, 0)
- else if(istype(ears, /obj/item/clothing/ears/earmuffs)) //resting your ears with earmuffs heals ear damage faster
+ else if(istype(l_ear, /obj/item/clothing/ears/earmuffs) || istype(r_ear, /obj/item/clothing/ears/earmuffs)) //resting your ears with earmuffs heals ear damage faster
ear_damage = max(ear_damage-0.15, 0)
ear_deaf = max(ear_deaf, 1)
else if(ear_damage < 25) //ear damage heals slowly under this threshold. otherwise you'll need earmuffs
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index cce4d70d3d..45b42a9447 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -576,9 +576,13 @@ proc/get_damage_icon_part(damage_state, body_part)
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_ears(var/update_icons=1)
- if(ears)
- overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]2")
- overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]")
+ if(l_ear || r_ear)
+ if(l_ear)
+ overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[l_ear.icon_state]2")
+ overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[l_ear.icon_state]")
+ if(r_ear)
+ overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[r_ear.icon_state]2")
+ overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[r_ear.icon_state]")
else
overlays_lying[EARS_LAYER] = null
overlays_standing[EARS_LAYER] = null
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 3c13b8befd..510fd52709 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -1,7 +1,7 @@
#define SAY_MINIMUM_PRESSURE 10
var/list/department_radio_keys = list(
- ":r" = "right hand", "#r" = "right hand", ".r" = "right hand",
- ":l" = "left hand", "#l" = "left hand", ".l" = "left hand",
+ ":r" = "right ear", "#r" = "right ear", ".r" = "right ear",
+ ":l" = "left ear", "#l" = "left ear", ".l" = "left ear",
":i" = "intercom", "#i" = "intercom", ".i" = "intercom",
":h" = "department", "#h" = "department", ".h" = "department",
":c" = "Command", "#c" = "Command", ".c" = "Command",
@@ -16,8 +16,8 @@ var/list/department_radio_keys = list(
":u" = "Supply", "#u" = "Supply", ".u" = "Supply",
":g" = "changeling", "#g" = "changeling", ".g" = "changeling",
- ":R" = "right hand", "#R" = "right hand", ".R" = "right hand",
- ":L" = "left hand", "#L" = "left hand", ".L" = "left hand",
+ ":R" = "right ear", "#R" = "right ear", ".R" = "right ear",
+ ":L" = "left ear", "#L" = "left ear", ".L" = "left ear",
":I" = "intercom", "#I" = "intercom", ".I" = "intercom",
":H" = "department", "#H" = "department", ".H" = "department",
":C" = "Command", "#C" = "Command", ".C" = "Command",
@@ -34,8 +34,8 @@ var/list/department_radio_keys = list(
//kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
- ":ê" = "right hand", "#ê" = "right hand", ".ê" = "right hand",
- ":ä" = "left hand", "#ä" = "left hand", ".ä" = "left hand",
+ ":ê" = "right ear", "#ê" = "right ear", ".ê" = "right ear",
+ ":ä" = "left ear", "#ä" = "left ear", ".ä" = "left ear",
":ø" = "intercom", "#ø" = "intercom", ".ø" = "intercom",
":ð" = "department", "#ð" = "department", ".ð" = "department",
":ñ" = "Command", "#ñ" = "Command", ".ñ" = "Command",
@@ -59,8 +59,12 @@ var/list/department_radio_keys = list(
if (!ishuman(src))
return
var/mob/living/carbon/human/H = src
- if (H.ears)
- var/obj/item/device/radio/headset/dongle = H.ears
+ if (H.l_ear || H.r_ear)
+ var/obj/item/device/radio/headset/dongle
+ if(istype(H.l_ear,/obj/item/device/radio/headset))
+ dongle = H.l_ear
+ else
+ dongle = H.r_ear
if(!istype(dongle)) return
if(dongle.translate_binary) return 1
@@ -68,10 +72,14 @@ var/list/department_radio_keys = list(
if (isalien(src)) return 1
if (!ishuman(src)) return
var/mob/living/carbon/human/H = src
- if (H.ears)
- var/obj/item/device/radio/headset/dongle = H.ears
+ if (H.l_ear || H.r_ear)
+ var/obj/item/device/radio/headset/dongle
+ if(istype(H.l_ear,/obj/item/device/radio/headset))
+ dongle = H.l_ear
+ else
+ dongle = H.r_ear
if(!istype(dongle)) return
- if(dongle.translate_hive) return 1
+ if(dongle.translate_binary) return 1
/mob/living/say(var/message)
@@ -179,27 +187,31 @@ var/list/department_radio_keys = list(
switch (message_mode)
if ("headset")
- if (src:ears)
- src:ears.talk_into(src, message)
- used_radios += src:ears
+ if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
+ src:l_ear.talk_into(src, message)
+ used_radios += src:l_ear
+ is_speaking_radio = 1
+ else if (src:r_ear)
+ src:r_ear.talk_into(src, message)
+ used_radios += src:r_ear
is_speaking_radio = 1
message_range = 1
italics = 1
- if ("right hand")
- if (r_hand)
- r_hand.talk_into(src, message)
- used_radios += src:r_hand
+ if ("right ear")
+ if (src:r_ear)
+ src:r_ear.talk_into(src, message)
+ used_radios += src:r_ear
is_speaking_radio = 1
message_range = 1
italics = 1
- if ("left hand")
- if (l_hand)
- l_hand.talk_into(src, message)
- used_radios += src:l_hand
+ if ("left ear")
+ if (src:l_ear)
+ src:l_ear.talk_into(src, message)
+ used_radios += src:l_ear
is_speaking_radio = 1
message_range = 1
@@ -233,9 +245,13 @@ var/list/department_radio_keys = list(
if ("department")
if(istype(src, /mob/living/carbon))
- if (src:ears)
- src:ears.talk_into(src, message, message_mode)
- used_radios += src:ears
+ if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
+ src:l_ear.talk_into(src, message, message_mode)
+ used_radios += src:l_ear
+ is_speaking_radio = 1
+ if (src:r_ear)
+ src:r_ear.talk_into(src, message, message_mode)
+ used_radios += src:r_ear
is_speaking_radio = 1
else if(istype(src, /mob/living/silicon/robot))
if (src:radio)
@@ -267,9 +283,12 @@ var/list/department_radio_keys = list(
R.radio.talk_into(src, message, message_mode)
used_radios += R.radio
else
- if (src:ears)
- src:ears.talk_into(src, message, message_mode)
- used_radios += src:ears
+ if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
+ src:l_ear.talk_into(src, message, message_mode)
+ used_radios += src:l_ear
+ else if (src:r_ear)
+ src:r_ear.talk_into(src, message, message_mode)
+ used_radios += src:r_ear
message_range = 1
italics = 1
/////SPECIAL HEADSETS END
diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm
index e3f7f3ceac..8c7561f7d7 100644
--- a/code/modules/mob/living/simple_animal/corpse.dm
+++ b/code/modules/mob/living/simple_animal/corpse.dm
@@ -43,7 +43,7 @@
if(src.corpsegloves)
M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves)
if(src.corpseradio)
- M.equip_to_slot_or_del(new src.corpseradio(M), slot_ears)
+ M.equip_to_slot_or_del(new src.corpseradio(M), slot_l_ear)
if(src.corpseglasses)
M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses)
if(src.corpsemask)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 6171377730..3677ceac70 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -182,7 +182,8 @@ var/list/slot_equipment_priority = list( \
slot_head,\
slot_shoes,\
slot_gloves,\
- slot_ears,\
+ slot_l_ear,\
+ slot_r_ear,\
slot_glasses,\
slot_belt,\
slot_s_store,\
@@ -961,4 +962,4 @@ mob/verb/yank_out_object()
pinned -= O
if(!pinned.len)
anchored = 0
- return 1
+ return 1
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index de03750000..d3192dc9de 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -454,7 +454,8 @@
organ= new /obj/item/weapon/organ/head(owner.loc, owner)
owner.u_equip(owner.glasses)
owner.u_equip(owner.head)
- owner.u_equip(owner.ears)
+ owner.u_equip(owner.l_ear)
+ owner.u_equip(owner.r_ear)
owner.u_equip(owner.wear_mask)
if(ARM_RIGHT)
if(status & ORGAN_ROBOT)
diff --git a/code/setup.dm b/code/setup.dm
index 9b11e9a9cf..ed5255a4ce 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -171,7 +171,8 @@ var/MAX_EXPLOSION_RANGE = 14
#define SLOT_BACK 1024
#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets.
#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets.
-
+#define SLOT_TWOEARS 8192
+#define SLOT_LEGS = 16384
//FLAGS BITMASK
#define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere
@@ -235,7 +236,7 @@ var/MAX_EXPLOSION_RANGE = 14
#define slot_r_hand 5
#define slot_belt 6
#define slot_wear_id 7
-#define slot_ears 8
+#define slot_l_ear 8
#define slot_glasses 9
#define slot_gloves 10
#define slot_head 11
@@ -247,6 +248,8 @@ var/MAX_EXPLOSION_RANGE = 14
#define slot_s_store 17
#define slot_in_backpack 18
#define slot_legcuffed 19
+#define slot_r_ear 20
+#define slot_legs 21
//Cant seem to find a mob bitflags area other than the powers one