From 5437b1bbacd34d37b0ce4ac17b0fdb14763927fb Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 27 Aug 2013 22:05:27 +0100 Subject: [PATCH] Added two ears back. --- code/datums/mind.dm | 6 +- code/game/gamemodes/events/space_ninja.dm | 2 +- code/game/gamemodes/nuclear/nuclear.dm | 2 +- code/game/gamemodes/setupgame.dm | 10 +-- code/game/gamemodes/wizard/wizard.dm | 2 +- code/game/hud.dm | 9 ++- code/game/jobs/job/captain.dm | 4 +- code/game/jobs/job/civilian.dm | 8 +- code/game/jobs/job/engineering.dm | 6 +- code/game/jobs/job/medical.dm | 12 +-- code/game/jobs/job/science.dm | 8 +- code/game/jobs/job/security.dm | 8 +- code/game/jobs/job_controller.dm | 2 +- code/game/mecha/equipment/weapons/weapons.dm | 2 +- code/game/objects/items.dm | 14 +++- .../objects/items/devices/radio/headset.dm | 2 +- .../items/weapons/grenades/flashbang.dm | 2 +- code/game/objects/structures/watercloset.dm | 7 +- code/game/response_team.dm | 3 +- code/modules/admin/topic.dm | 4 +- code/modules/admin/verbs/debug.dm | 24 +++--- code/modules/admin/verbs/onlyone.dm | 2 +- code/modules/admin/verbs/striketeam.dm | 2 +- .../admin/verbs/striketeam_syndicate.dm | 2 +- code/modules/admin/verbs/vox_raiders.dm | 2 +- code/modules/awaymissions/corpse.dm | 2 +- code/modules/clothing/clothing.dm | 50 ++++++++++++- code/modules/mob/inventory.dm | 13 +++- .../mob/living/carbon/human/examine.dm | 10 ++- code/modules/mob/living/carbon/human/hud.dm | 15 +++- code/modules/mob/living/carbon/human/human.dm | 9 ++- .../mob/living/carbon/human/human_defines.dm | 3 +- .../mob/living/carbon/human/inventory.dm | 56 ++++++++++---- code/modules/mob/living/carbon/human/life.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 10 ++- code/modules/mob/living/say.dm | 75 ++++++++++++------- .../mob/living/simple_animal/corpse.dm | 2 +- code/modules/mob/mob.dm | 5 +- code/modules/organs/organ_external.dm | 3 +- code/setup.dm | 7 +- 40 files changed, 275 insertions(+), 132 deletions(-) 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