diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index d06ae59ab87..27fdd64cd75 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -41,15 +41,6 @@
S.close(usr)
return 1
-/obj/screen/drop
- name = "drop"
- icon = 'icons/mob/screen1_midnight.dmi'
- icon_state = "act_drop"
- layer = 19
-
-/obj/screen/drop/Click()
- usr.drop_item_v()
-
/obj/screen/grab
name = "grab"
@@ -63,202 +54,7 @@
/obj/screen/grab/attackby()
return
-/obj/screen/act_intent
- name = "intent"
- icon_state = "help"
-/obj/screen/act_intent/Click(location, control, params)
- if(ishuman(usr))
- var/_x = text2num(params2list(params)["icon-x"])
- var/_y = text2num(params2list(params)["icon-y"])
-
- if(_x<=16 && _y<=16)
- usr.a_intent_change(I_HARM)
- else if(_x<=16 && _y>=17)
- usr.a_intent_change(I_HELP)
- else if(_x>=17 && _y<=16)
- usr.a_intent_change(I_GRAB)
-
- else if(_x>=17 && _y>=17)
- usr.a_intent_change(I_DISARM)
-
- else
- usr.a_intent_change("right")
-
-/obj/screen/internals
- name = "toggle internals"
- icon_state = "internal0"
-
-/obj/screen/internals/Click()
- if(iscarbon(usr))
- var/mob/living/carbon/C = usr
- if(!C.stat && !C.stunned && !C.paralysis && !C.restrained())
- if(C.internal)
- C.internal = null
- C << "No longer running on internals."
- if(C.internals)
- C.internals.icon_state = "internal0"
- else
-
- var/no_mask
- if(!(C.wear_mask && C.wear_mask.flags & AIRTIGHT))
- if(ishuman(C))
- var/mob/living/carbon/human/H = C
- if(!(H.head && H.head.flags & AIRTIGHT))
- no_mask = 1
-
- if(no_mask)
- C << "You are not wearing a suitable mask or helmet."
- return 1
- else
- var/list/nicename = null
- var/list/tankcheck = null
- var/breathes = "oxygen" //default, we'll check later
- var/list/contents = list()
- var/from = "on"
-
- if(ishuman(C))
- var/mob/living/carbon/human/H = C
- breathes = H.species.breath_type
- nicename = list ("suit", "back", "belt", "right hand", "left hand", "left pocket", "right pocket")
- tankcheck = list (H.s_store, C.back, H.belt, C.r_hand, C.l_hand, H.l_store, H.r_store)
- else
- nicename = list("right hand", "left hand", "back")
- tankcheck = list(C.r_hand, C.l_hand, C.back)
-
- // Rigs are a fucking pain since they keep an air tank in nullspace.
- if(istype(C.back,/obj/item/weapon/rig))
- var/obj/item/weapon/rig/rig = C.back
- if(rig.air_supply)
- from = "in"
- nicename |= "hardsuit"
- tankcheck |= rig.air_supply
-
- for(var/i=1, i bestcontents)
- best = i
- bestcontents = contents[i]
-
-
- //We've determined the best container now we set it as our internals
-
- if(best)
- C << "You are now running on internals from [tankcheck[best]] [from] your [nicename[best]]."
- C.internal = tankcheck[best]
-
-
- if(C.internal)
- if(C.internals)
- C.internals.icon_state = "internal1"
- else
- C << "You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank."
-
-/obj/screen/mov_intent
- name = "run/walk toggle"
- icon = 'icons/mob/screen1_midnight.dmi'
- icon_state = "running"
-
-/obj/screen/mov_intent/Click()
- if(iscarbon(usr))
- var/mob/living/carbon/C = usr
- if(C.legcuffed)
- C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!"
- C.m_intent = "walk" //Just incase
- C.hud_used.move_intent.icon_state = "walking"
- return 1
- switch(usr.m_intent)
- if("run")
- usr.m_intent = "walk"
- usr.hud_used.move_intent.icon_state = "walking"
- if("walk")
- usr.m_intent = "run"
- usr.hud_used.move_intent.icon_state = "running"
- if(istype(usr,/mob/living/carbon/alien/humanoid))
- usr.update_icons()
-
-
-
-/obj/screen/pull
- name = "stop pulling"
- icon = 'icons/mob/screen1_Midnight.dmi'
- icon_state = "pull"
-
-/obj/screen/pull/Click()
- usr.stop_pulling()
-
-/obj/screen/pull/update_icon(mob/mymob)
- if(!mymob) return
- if(mymob.pulling)
- icon_state = "pull"
- else
- icon_state = "pull0"
-
-/obj/screen/resist
- name = "resist"
- icon = 'icons/mob/screen1_midnight.dmi'
- icon_state = "act_resist"
- layer = 19
-
-/obj/screen/resist/Click()
- if(isliving(usr))
- var/mob/living/L = usr
- L.resist()
-
-/obj/screen/throw_catch
- name = "throw/catch"
- icon = 'icons/mob/screen1_midnight.dmi'
- icon_state = "act_throw_off"
-
-/obj/screen/throw_catch/Click()
- if(iscarbon(usr))
- var/mob/living/carbon/C = usr
- C.toggle_throw_mode()
/obj/screen/storage
name = "storage"
@@ -276,6 +72,33 @@
master.attackby(I, usr, params)
return 1
+/obj/screen/gun
+ name = "gun"
+ icon = 'icons/mob/screen1.dmi'
+ master = null
+ dir = 2
+
+ /*move
+ name = "Allow Walking"
+ icon_state = "no_walk0"
+ screen_loc = ui_gun2
+
+ run
+ name = "Allow Running"
+ icon_state = "no_run0"
+ screen_loc = ui_gun3*/
+
+ item
+ name = "Allow Item Use"
+ icon_state = "no_item0"
+ screen_loc = ui_gun1
+
+ mode
+ name = "Toggle Gun Mode"
+ icon_state = "gun0"
+ screen_loc = ui_gun_select
+ //dir = 1
+
/obj/screen/zone_sel
name = "damage zone"
icon_state = "zone_sel"
@@ -347,34 +170,408 @@
overlays.Cut()
overlays += image('icons/mob/zone_sel.dmi', "[selecting]")
-/obj/screen/gun
- name = "gun"
- icon = 'icons/mob/screen1.dmi'
- master = null
- dir = 2
+/obj/screen/pull
+ name = "stop pulling"
+ icon = 'icons/mob/screen1_Midnight.dmi'
+ icon_state = "pull"
-/obj/screen/gun/mode
- name = "Toggle Gun Mode"
- icon_state = "gun0"
- screen_loc = ui_gun_select
+/obj/screen/pull/Click()
+ usr.stop_pulling()
-/obj/screen/gun/mode/Click()
- usr.client.ToggleGunMode()
+/obj/screen/pull/update_icon(mob/mymob)
+ if(!mymob) return
+ if(mymob.pulling)
+ icon_state = "pull"
+ else
+ icon_state = "pull0"
-/obj/screen/gun/item
- name = "Allow Item Use"
- icon_state = "no_item0"
- screen_loc = ui_gun1
-/obj/screen/gun/item/Click()
- if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
- return
- if(!istype(usr.get_active_hand(), /obj/item/weapon/gun))
- usr << "You need your gun in your active hand to do that!"
- return
- usr.client.AllowTargetClick()
- gun_click_time = world.time
+/obj/screen/Click(location, control, params)
+ if(!usr) return 1
+ switch(name)
+ if("toggle")
+ if(usr.hud_used.inventory_shown)
+ usr.hud_used.inventory_shown = 0
+ usr.client.screen -= usr.hud_used.other
+ else
+ usr.hud_used.inventory_shown = 1
+ usr.client.screen += usr.hud_used.other
+
+ usr.hud_used.hidden_inventory_update()
+
+ if("equip")
+ if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
+ return 1
+ if(ishuman(usr))
+ var/mob/living/carbon/human/H = usr
+ H.quick_equip()
+
+ if("resist")
+ if(isliving(usr))
+ var/mob/living/L = usr
+ L.resist()
+
+ if("mov_intent")
+ if(iscarbon(usr))
+ var/mob/living/carbon/C = usr
+ if(C.legcuffed)
+ C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!"
+ C.m_intent = "walk" //Just incase
+ C.hud_used.move_intent.icon_state = "walking"
+ return 1
+ switch(usr.m_intent)
+ if("run")
+ usr.m_intent = "walk"
+ usr.hud_used.move_intent.icon_state = "walking"
+ if("walk")
+ usr.m_intent = "run"
+ usr.hud_used.move_intent.icon_state = "running"
+ if(istype(usr,/mob/living/carbon/alien/humanoid))
+ usr.update_icons()
+ if("m_intent")
+ if(!usr.m_int)
+ switch(usr.m_intent)
+ if("run")
+ usr.m_int = "13,14"
+ if("walk")
+ usr.m_int = "14,14"
+ if("face")
+ usr.m_int = "15,14"
+ else
+ usr.m_int = null
+ if("walk")
+ usr.m_intent = "walk"
+ usr.m_int = "14,14"
+ if("face")
+ usr.m_intent = "face"
+ usr.m_int = "15,14"
+ if("run")
+ usr.m_intent = "run"
+ usr.m_int = "13,14"
+ if("Reset Machine")
+ usr.unset_machine()
+ if("internal")
+ if(iscarbon(usr))
+ var/mob/living/carbon/C = usr
+ if(!C.stat && !C.stunned && !C.paralysis && !C.restrained())
+ if(C.internal)
+ C.internal = null
+ C << "No longer running on internals."
+ if(C.internals)
+ C.internals.icon_state = "internal0"
+ else
+
+ var/no_mask
+ if(!(C.wear_mask && C.wear_mask.flags & AIRTIGHT))
+ if(ishuman(C))
+ var/mob/living/carbon/human/H = C
+ if(!(H.head && H.head.flags & AIRTIGHT))
+ no_mask = 1
+
+ if(no_mask)
+ C << "You are not wearing a suitable mask or helmet."
+ return 1
+ else
+ var/list/nicename = null
+ var/list/tankcheck = null
+ var/breathes = "oxygen" //default, we'll check later
+ var/list/contents = list()
+ var/from = "on"
+
+ if(ishuman(C))
+ var/mob/living/carbon/human/H = C
+ breathes = H.species.breath_type
+ nicename = list ("suit", "back", "belt", "right hand", "left hand", "left pocket", "right pocket")
+ tankcheck = list (H.s_store, C.back, H.belt, C.r_hand, C.l_hand, H.l_store, H.r_store)
+ else
+ nicename = list("right hand", "left hand", "back")
+ tankcheck = list(C.r_hand, C.l_hand, C.back)
+
+ // Rigs are a fucking pain since they keep an air tank in nullspace.
+ if(istype(C.back,/obj/item/weapon/rig))
+ var/obj/item/weapon/rig/rig = C.back
+ if(rig.air_supply)
+ from = "in"
+ nicename |= "hardsuit"
+ tankcheck |= rig.air_supply
+
+ for(var/i=1, i bestcontents)
+ best = i
+ bestcontents = contents[i]
+
+
+ //We've determined the best container now we set it as our internals
+
+ if(best)
+ C << "You are now running on internals from [tankcheck[best]] [from] your [nicename[best]]."
+ C.internal = tankcheck[best]
+
+
+ if(C.internal)
+ if(C.internals)
+ C.internals.icon_state = "internal1"
+ else
+ C << "You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank."
+ if("act_intent")
+ usr.a_intent_change("right")
+ if("help")
+ usr.a_intent = I_HELP
+ usr.hud_used.action_intent.icon_state = "intent_help"
+ if("harm")
+ usr.a_intent = I_HARM
+ usr.hud_used.action_intent.icon_state = "intent_harm"
+ if("grab")
+ usr.a_intent = I_GRAB
+ usr.hud_used.action_intent.icon_state = "intent_grab"
+ if("disarm")
+ usr.a_intent = I_DISARM
+ usr.hud_used.action_intent.icon_state = "intent_disarm"
+ if("throw")
+ if(!usr.stat && isturf(usr.loc) && !usr.restrained())
+ usr:toggle_throw_mode()
+ if("drop")
+ usr.drop_item_v()
+
+ if("module")
+ if(isrobot(usr))
+ var/mob/living/silicon/robot/R = usr
+ if(R.module)
+ R.hud_used.toggle_show_robot_modules()
+ return 1
+ R.pick_module()
+
+ if("radio")
+ if(issilicon(usr))
+ usr:radio_menu()
+ if("panel")
+ if(issilicon(usr))
+ usr:installed_modules()
+
+ if("store")
+ if(isrobot(usr))
+ var/mob/living/silicon/robot/R = usr
+ R.uneq_active()
+ R.hud_used.update_robot_modules_display()
+
+ if("Toggle Sensor Augmentation")
+ if(isrobot(usr))
+ var/mob/living/silicon/robot/R = usr
+ R.sensor_mode()
+
+ if("Toggle Headlamp")
+ if(isrobot(usr))
+ var/mob/living/silicon/robot/R = usr
+ R.control_headlamp()
+
+ if("module1")
+ if(istype(usr, /mob/living/silicon/robot))
+ usr:toggle_module(1)
+
+ if("module2")
+ if(istype(usr, /mob/living/silicon/robot))
+ usr:toggle_module(2)
+
+ if("module3")
+ if(istype(usr, /mob/living/silicon/robot))
+ usr:toggle_module(3)
+
+ /*if("Allow Walking")
+ if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
+ return
+ if(!istype(usr.equipped(),/obj/item/weapon/gun))
+ usr << "You need your gun in your active hand to do that!"
+ return
+ usr.client.AllowTargetMove()
+ gun_click_time = world.time
+
+ if("Disallow Walking")
+ if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
+ return
+ if(!istype(usr.equipped(),/obj/item/weapon/gun))
+ usr << "You need your gun in your active hand to do that!"
+ return
+ usr.client.AllowTargetMove()
+ gun_click_time = world.time
+
+ if("Allow Running")
+ if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
+ return
+ if(!istype(usr.equipped(),/obj/item/weapon/gun))
+ usr << "You need your gun in your active hand to do that!"
+ return
+ usr.client.AllowTargetRun()
+ gun_click_time = world.time
+
+ if("Disallow Running")
+ if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
+ return
+ if(!istype(usr.equipped(),/obj/item/weapon/gun))
+ usr << "You need your gun in your active hand to do that!"
+ return
+ usr.client.AllowTargetRun()
+ gun_click_time = world.time*/
+
+ if("Allow Item Use")
+ if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
+ return
+ if(!istype(usr.get_active_hand(), /obj/item/weapon/gun))
+ usr << "You need your gun in your active hand to do that!"
+ return
+ usr.client.AllowTargetClick()
+ gun_click_time = world.time
+
+
+ if("Disallow Item Use")
+ if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes.
+ return
+ if(!istype(usr.get_active_hand(), /obj/item/weapon/gun))
+ usr << "You need your gun in your active hand to do that!"
+ return
+ usr.client.AllowTargetClick()
+ gun_click_time = world.time
+
+ if("Toggle Gun Mode")
+ usr.client.ToggleGunMode()
+
+ if("AI Core")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.view_core()
+
+ if("Show Camera List")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ var/camera = input(AI) in AI.get_camera_list()
+ AI.ai_camera_list(camera)
+
+ if("Track With Camera")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ var/target_name = input(AI) as null|anything in AI.trackable_mobs()
+ if(target_name)
+ AI.ai_camera_track(target_name)
+
+ if("Toggle Camera Light")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.toggle_camera_light()
+
+ if("Crew Monitoring")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.subsystem_crew_monitor()
+
+ if("Show Crew Manifest")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.ai_roster()
+
+ if("Show Alerts")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.subsystem_alarm_monitor()
+
+ if("Announcement")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.announcement()
+
+ if("Call Emergency Shuttle")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.ai_call_shuttle()
+
+ if("Law Manager")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.subsystem_law_manager()
+
+ if("PDA - Send Message")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.cmd_send_pdamesg(usr)
+
+ if("PDA - Show Message Log")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.cmd_show_message_log(usr)
+
+ if("Take Image")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.aiCamera.toggle_camera_mode()
+
+ if("View Images")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.aiCamera.viewpictures()
+
+ if("Set Sensor Augmentation")
+ if(isAI(usr))
+ var/mob/living/silicon/ai/AI = usr
+ AI.sensor_mode()
+
+ // Alien
+ if("night vision")
+ var/mob/living/carbon/alien/humanoid/A = usr
+ A.nightvisiontoggle()
+
+ if("toggle leap")
+ if(istype(usr, /mob/living/carbon/alien/humanoid))
+ var/mob/living/carbon/alien/humanoid/hunter/AH = usr
+ AH.toggle_leap()
+
+ else
+ return 0
+ return 1
/obj/screen/inventory/Click()
// At this point in client Click() code we have passed the 1/10 sec check and little else