diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index a697f83323a..47ca03d4dcd 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -69,6 +69,7 @@
#define ui_gun4 "EAST-3:24,SOUTH+2:7"
//Upper-middle right (damage indicators)
+#define ui_up_hint "EAST-1:28,NORTH-1:29"
#define ui_toxin "EAST-1:28,NORTH-2:27"
#define ui_fire "EAST-1:28,NORTH-3:25"
#define ui_oxygen "EAST-1:28,NORTH-4:23"
@@ -83,7 +84,8 @@
#define ui_temp "EAST-1:28,CENTER-1:13"
#define ui_health "EAST-1:28,CENTER:15"
#define ui_internal "EAST-1:28,CENTER+1:17"
- //borgs
+
+//borgs
#define ui_borg_health "EAST-1:28,CENTER-1:13" //borgs have the health display where humans have the pressure damage indicator.
#define ui_alien_health "EAST-1:28,CENTER-1:13" //aliens have the health display where humans have the pressure damage indicator.
@@ -141,3 +143,5 @@
#define ui_ai_pda_log "SOUTH:6,WEST+9:16"
#define ui_ai_take_picture "SOUTH:6,WEST+10:16"
#define ui_ai_view_images "SOUTH:6,WEST+11:16"
+#define ui_ai_move_up "SOUTH:6,WEST+12:16"
+#define ui_ai_move_down "SOUTH:6,WEST+13:16"
diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index 867afc0886d..6625499ae8f 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -16,7 +16,9 @@
new /obj/screen/ai/pda_log,
new /obj/screen/ai/take_image,
new /obj/screen/ai/view_image,
- new /obj/screen/ai/sensor_aug
+ new /obj/screen/ai/sensor_aug,
+ new /obj/screen/ai/move_up,
+ new /obj/screen/ai/move_down
)
mymob.client.screen += adding + other
diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm
index a46440da06c..cdfe3958099 100644
--- a/code/_onclick/hud/alien_larva.dm
+++ b/code/_onclick/hud/alien_larva.dm
@@ -10,26 +10,26 @@
using = new /obj/screen/movement_intent()
using.set_dir(SOUTHWEST)
- using.icon = 'icons/mob/screen1_alien.dmi'
+ using.icon = 'icons/mob/screen/alien.dmi'
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
src.adding += using
move_intent = using
mymob.healths = new /obj/screen()
- mymob.healths.icon = 'icons/mob/screen1_alien.dmi'
+ mymob.healths.icon = 'icons/mob/screen/alien.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_alien_health
mymob.blind = new /obj/screen()
- mymob.blind.icon = 'icons/mob/screen1_full.dmi'
+ mymob.blind.icon = 'icons/mob/screen/full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
mymob.blind.invisibility = 101
mymob.flash = new /obj/screen()
- mymob.flash.icon = 'icons/mob/screen1_alien.dmi'
+ mymob.flash.icon = 'icons/mob/screen/alien.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = ui_entire_screen
@@ -37,7 +37,7 @@
mymob.flash.mouse_opacity = 0
mymob.fire = new /obj/screen()
- mymob.fire.icon = 'icons/mob/screen1_alien.dmi'
+ mymob.fire.icon = 'icons/mob/screen/alien.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
diff --git a/code/_onclick/hud/gun_mode.dm b/code/_onclick/hud/gun_mode.dm
index e5d1fbce37d..676788ee1d7 100644
--- a/code/_onclick/hud/gun_mode.dm
+++ b/code/_onclick/hud/gun_mode.dm
@@ -1,6 +1,6 @@
/obj/screen/gun
name = "gun"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
master = null
dir = 2
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 936eef6a50a..7e2c7248749 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -1,7 +1,7 @@
/mob/living/carbon/human/instantiate_hud(var/datum/hud/HUD, var/ui_style, var/ui_color, var/ui_alpha)
HUD.human_hud(ui_style, ui_color, ui_alpha, src)
-/datum/hud/proc/human_hud(var/ui_style='icons/mob/screen1_White.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255, var/mob/living/carbon/human/target)
+/datum/hud/proc/human_hud(var/ui_style='icons/mob/screen/white.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255, var/mob/living/carbon/human/target)
var/datum/hud_data/hud_data
if(!istype(target))
hud_data = new()
@@ -292,8 +292,16 @@
mymob.nutrition_icon.screen_loc = ui_nutrition
hud_elements |= mymob.nutrition_icon
+ if(hud_data.has_up_hint)
+ mymob.up_hint = new /obj/screen()
+ mymob.up_hint.icon = ui_style
+ mymob.up_hint.icon_state = "uphint0"
+ mymob.up_hint.name = "up hint"
+ mymob.up_hint.screen_loc = ui_up_hint
+ hud_elements |= mymob.up_hint
+
mymob.blind = new /obj/screen()
- mymob.blind.icon = 'icons/mob/screen1_full.dmi'
+ mymob.blind.icon = 'icons/mob/screen/full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
@@ -302,7 +310,7 @@
hud_elements |= mymob.blind
mymob.damageoverlay = new /obj/screen()
- mymob.damageoverlay.icon = 'icons/mob/screen1_full.dmi'
+ mymob.damageoverlay.icon = 'icons/mob/screen/full.dmi'
mymob.damageoverlay.icon_state = "oxydamageoverlay0"
mymob.damageoverlay.name = "dmg"
mymob.damageoverlay.screen_loc = "1,1"
diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm
index d7fe7ef290c..8c2e0d6a850 100644
--- a/code/_onclick/hud/other_mobs.dm
+++ b/code/_onclick/hud/other_mobs.dm
@@ -11,9 +11,9 @@
/mob/living/carbon/brain/instantiate_hud(var/datum/hud/HUD)
HUD.brain_hud()
-/datum/hud/proc/brain_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
+/datum/hud/proc/brain_hud(ui_style = 'icons/mob/screen/midnight.dmi')
mymob.blind = new /obj/screen()
- mymob.blind.icon = 'icons/mob/screen1_full.dmi'
+ mymob.blind.icon = 'icons/mob/screen/full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
@@ -22,7 +22,7 @@
/mob/living/silicon/ai/instantiate_hud(var/datum/hud/HUD)
HUD.ai_hud()
-/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
+/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen/midnight.dmi')
blobpwrdisplay = new /obj/screen()
blobpwrdisplay.name = "blob power"
@@ -43,7 +43,7 @@
/mob/living/carbon/slime/instantiate_hud(var/datum/hud/HUD)
HUD.slime_hud()
-/datum/hud/proc/slime_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
+/datum/hud/proc/slime_hud(ui_style = 'icons/mob/screen/midnight.dmi')
src.adding = list()
@@ -127,7 +127,7 @@
constructtype = "harvester"
mymob.flash = new /obj/screen()
- mymob.flash.icon = 'icons/mob/screen1.dmi'
+ mymob.flash.icon = 'icons/mob/screen/generic.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = ui_entire_screen
@@ -136,30 +136,31 @@
if(constructtype)
mymob.fire = new /obj/screen()
- mymob.fire.icon = 'icons/mob/screen1_construct.dmi'
+ mymob.fire.icon = 'icons/mob/screen/construct.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_construct_fire
mymob.healths = new /obj/screen()
- mymob.healths.icon = 'icons/mob/screen1_construct.dmi'
+ mymob.healths.icon = 'icons/mob/screen/construct.dmi'
mymob.healths.icon_state = "[constructtype]_health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_construct_health
mymob.pullin = new /obj/screen()
- mymob.pullin.icon = 'icons/mob/screen1_construct.dmi'
+ mymob.pullin.icon = 'icons/mob/screen/construct.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_construct_pull
mymob.zone_sel = new /obj/screen/zone_sel()
- mymob.zone_sel.icon = 'icons/mob/screen1_construct.dmi'
+
+ mymob.zone_sel.icon = 'icons/mob/screen/construct.dmi'
mymob.zone_sel.cut_overlays()
mymob.zone_sel.add_overlay(image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]"))
mymob.purged = new /obj/screen()
- mymob.purged.icon = 'icons/mob/screen1_construct.dmi'
+ mymob.purged.icon = 'icons/mob/screen/construct.dmi'
mymob.purged.icon_state = "purge0"
mymob.purged.name = "purged"
mymob.purged.screen_loc = ui_construct_purge
diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm
index e182dbba265..12b20e6111f 100644
--- a/code/_onclick/hud/parallax.dm
+++ b/code/_onclick/hud/parallax.dm
@@ -46,7 +46,7 @@
/obj/screen/plane_master/parallax_spacemaster/New()
..()
- overlays += image(icon = 'icons/mob/screen1.dmi', icon_state = "blank")
+ overlays += image(icon = 'icons/mob/screen/generic.dmi', icon_state = "blank")
if(universe)
universe.convert_parallax(src)
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index f92a6ba171c..24ed0106151 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -14,7 +14,7 @@ var/obj/screen/robot_inventory
using = new /obj/screen()
using.name = "radio"
using.set_dir(SOUTHWEST)
- using.icon = 'icons/mob/screen1_robot.dmi'
+ using.icon = 'icons/mob/screen/robot.dmi'
using.icon_state = "radio"
using.screen_loc = ui_movi
using.layer = 20
@@ -40,7 +40,7 @@ var/obj/screen/robot_inventory
using = new /obj/screen()
using.name = "act_intent"
using.set_dir(SOUTHWEST)
- using.icon = 'icons/mob/screen1_robot.dmi'
+ using.icon = 'icons/mob/screen/robot.dmi'
using.icon_state = mymob.a_intent
using.screen_loc = ui_acti
using.layer = 20
@@ -49,21 +49,21 @@ var/obj/screen/robot_inventory
//Cell
mymob:cells = new /obj/screen()
- mymob:cells.icon = 'icons/mob/screen1_robot.dmi'
+ mymob:cells.icon = 'icons/mob/screen/robot.dmi'
mymob:cells.icon_state = "charge-empty"
mymob:cells.name = "cell"
mymob:cells.screen_loc = ui_toxin
//Health
mymob.healths = new /obj/screen()
- mymob.healths.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.healths.icon = 'icons/mob/screen/robot.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_borg_health
//Installed Module
mymob.hands = new /obj/screen()
- mymob.hands.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.hands.icon = 'icons/mob/screen/robot.dmi'
mymob.hands.icon_state = "nomod"
mymob.hands.name = "module"
mymob.hands.screen_loc = ui_borg_module
@@ -71,7 +71,7 @@ var/obj/screen/robot_inventory
//Module Panel
using = new /obj/screen()
using.name = "panel"
- using.icon = 'icons/mob/screen1_robot.dmi'
+ using.icon = 'icons/mob/screen/robot.dmi'
using.icon_state = "panel"
using.screen_loc = ui_borg_panel
using.layer = 19
@@ -79,7 +79,7 @@ var/obj/screen/robot_inventory
//Store
mymob.throw_icon = new /obj/screen()
- mymob.throw_icon.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.throw_icon.icon = 'icons/mob/screen/robot.dmi'
mymob.throw_icon.icon_state = "store"
mymob.throw_icon.name = "store"
mymob.throw_icon.screen_loc = ui_borg_store
@@ -87,7 +87,7 @@ var/obj/screen/robot_inventory
//Inventory
robot_inventory = new /obj/screen()
robot_inventory.name = "inventory"
- robot_inventory.icon = 'icons/mob/screen1_robot.dmi'
+ robot_inventory.icon = 'icons/mob/screen/robot.dmi'
robot_inventory.icon_state = "inventory"
robot_inventory.screen_loc = ui_borg_inventory
@@ -99,32 +99,32 @@ var/obj/screen/robot_inventory
mymob.oxygen = new /obj/screen()
- mymob.oxygen.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.oxygen.icon = 'icons/mob/screen/robot.dmi'
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_oxygen
mymob.fire = new /obj/screen()
- mymob.fire.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.fire.icon = 'icons/mob/screen/robot.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
mymob.pullin = new /obj/screen()
- mymob.pullin.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.pullin.icon = 'icons/mob/screen/robot.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_borg_pull
mymob.blind = new /obj/screen()
- mymob.blind.icon = 'icons/mob/screen1_full.dmi'
+ mymob.blind.icon = 'icons/mob/screen/full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
mymob.blind.invisibility = 101
mymob.flash = new /obj/screen()
- mymob.flash.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.flash.icon = 'icons/mob/screen/robot.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = ui_entire_screen
@@ -132,10 +132,11 @@ var/obj/screen/robot_inventory
mymob.flash.mouse_opacity = 0
mymob.zone_sel = new /obj/screen/zone_sel()
- mymob.zone_sel.icon = 'icons/mob/screen1_robot.dmi'
+ mymob.zone_sel.icon = 'icons/mob/screen/robot.dmi'
mymob.zone_sel.cut_overlays()
mymob.zone_sel.add_overlay(image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]"))
+
//Handle the gun settings buttons
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
mymob.item_use_icon = new /obj/screen/gun/item(null)
@@ -197,7 +198,7 @@ var/obj/screen/robot_inventory
else
if(r.module.emag in r.module.modules)
r.module.modules -= r.module.emag
-
+
if(r.malfAImodule)
if(!((r.module.malfAImodule in r.module.modules) && r.module.malfAImodule == null))
r.module.modules += r.module.malfAImodule
diff --git a/code/_onclick/hud/screen_object_types/ai_screen_objs.dm b/code/_onclick/hud/screen_object_types/ai_screen_objs.dm
index 8b93f5a6d55..6d26499a8f5 100644
--- a/code/_onclick/hud/screen_object_types/ai_screen_objs.dm
+++ b/code/_onclick/hud/screen_object_types/ai_screen_objs.dm
@@ -2,7 +2,7 @@
/obj/screen/module
dir = SOUTHWEST
- icon = 'icons/mob/screen1_robot.dmi'
+ icon = 'icons/mob/screen/robot.dmi'
var/mod_pos
/obj/screen/module/one
@@ -33,7 +33,7 @@
R.toggle_module(mod_pos)
/obj/screen/ai
- icon = 'icons/mob/screen_ai.dmi'
+ icon = 'icons/mob/screen/ai.dmi'
layer = 21
/obj/screen/ai/core
@@ -189,3 +189,21 @@
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.sensor_mode()
+
+/obj/screen/ai/move_up
+ name = "Move Up"
+ icon_state = "move_up"
+ screen_loc = ui_ai_move_up
+
+/obj/screen/ai/move_up/Click()
+ if (isAI(usr))
+ usr.up()
+
+/obj/screen/ai/move_down
+ name = "Move Down"
+ icon_state = "move_down"
+ screen_loc = ui_ai_move_down
+
+/obj/screen/ai/move_down/Click()
+ if (isAI(usr))
+ usr.down()
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 1750be83791..83b47c23bb3 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -8,7 +8,7 @@
*/
/obj/screen
name = ""
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
layer = 20.0
unacidable = 1
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
@@ -223,6 +223,15 @@
if(usr.client)
usr.client.drop_item()
+ if("up hint")
+ var/turf/T = GetAbove(usr)
+ if (!T)
+ to_chat(usr, "There is nothing above you!")
+ else if (T.is_hole)
+ to_chat(usr, "There's no roof above your head! You can see up!")
+ else
+ to_chat(usr, "You see a ceiling staring back at you.")
+
if("module")
if(isrobot(usr))
var/mob/living/silicon/robot/R = usr
diff --git a/code/_onclick/hud/spell_screen_objects.dm b/code/_onclick/hud/spell_screen_objects.dm
index 1620f6250f6..9aaa100d209 100644
--- a/code/_onclick/hud/spell_screen_objects.dm
+++ b/code/_onclick/hud/spell_screen_objects.dm
@@ -1,6 +1,6 @@
/obj/screen/movable/spell_master
name = "Spells"
- icon = 'icons/mob/screen_spells.dmi'
+ icon = 'icons/mob/screen/spells.dmi'
icon_state = "wiz_spell_ready"
var/list/obj/screen/spell/spell_objects = list()
var/showing = 0
@@ -145,7 +145,7 @@
//This is what you click to cast things//
/////////////////////////////////////////
/obj/screen/spell
- icon = 'icons/mob/screen_spells.dmi'
+ icon = 'icons/mob/screen/spells.dmi'
icon_state = "wiz_spell_base"
var/spell_base = "wiz"
var/last_charge = 0 //not a time, but the last remembered charge value
diff --git a/code/game/objects/effects/bump_teleporter.dm b/code/game/objects/effects/bump_teleporter.dm
index 9379234ca68..f056b415f09 100644
--- a/code/game/objects/effects/bump_teleporter.dm
+++ b/code/game/objects/effects/bump_teleporter.dm
@@ -2,7 +2,7 @@ var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list()
/obj/effect/bump_teleporter
name = "bump-teleporter"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
var/id = null //id of this bump_teleporter.
var/id_target = null //id of bump_teleporter which this moves you to.
@@ -31,4 +31,4 @@ var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list()
for(var/obj/effect/bump_teleporter/BT in BUMP_TELEPORTERS)
if(BT.id == src.id_target)
usr.loc = BT.loc //Teleport to location with correct id.
- return
\ No newline at end of file
+ return
diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm
index a55fcdc485e..d38656217ef 100644
--- a/code/game/objects/effects/decals/misc.dm
+++ b/code/game/objects/effects/decals/misc.dm
@@ -1,7 +1,7 @@
/obj/effect/decal/point
name = "arrow"
desc = "It's an arrow hanging in mid-air. There may be a wizard about."
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "arrow"
layer = 16.0
anchored = 1
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 271385285eb..3b98de2ab07 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -1,6 +1,6 @@
/obj/effect/landmark
name = "landmark"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
anchored = 1.0
unacidable = 1
@@ -93,7 +93,7 @@
/obj/effect/landmark/start
name = "start"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x"
anchored = 1.0
invisibility = 101
diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm
index ec45c7a0894..7d5db017178 100644
--- a/code/game/objects/effects/manifest.dm
+++ b/code/game/objects/effects/manifest.dm
@@ -1,6 +1,6 @@
/obj/effect/manifest
name = "manifest"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x"
unacidable = 1//Just to be sure.
@@ -18,4 +18,4 @@
P.name = "paper- 'Crew Manifest'"
//SN src = null
qdel(src)
- return
\ No newline at end of file
+ return
diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm
index a9d9251a7d4..357c10a10d1 100644
--- a/code/game/objects/effects/spawners/bombspawner.dm
+++ b/code/game/objects/effects/spawners/bombspawner.dm
@@ -1,7 +1,7 @@
/* The old single tank bombs that dont really work anymore
/obj/effect/spawner/bomb
name = "bomb"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x"
var/btype = 0 //0 = radio, 1= prox, 2=time
var/explosive = 1 // 0= firebomb
@@ -111,15 +111,15 @@
set name = "Instant TTV"
if(!check_rights(R_SPAWN)) return
-
+
var/obj/effect/spawner/newbomb/proto = /obj/effect/spawner/newbomb/radio/custom
-
+
var/p = input("Enter phoron amount (mol):","Phoron", initial(proto.phoron_amt)) as num|null
if(p == null) return
-
+
var/o = input("Enter oxygen amount (mol):","Oxygen", initial(proto.oxygen_amt)) as num|null
if(o == null) return
-
+
var/c = input("Enter carbon dioxide amount (mol):","Carbon Dioxide", initial(proto.carbon_amt)) as num|null
if(c == null) return
@@ -127,11 +127,11 @@
/obj/effect/spawner/newbomb
name = "TTV bomb"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x"
-
+
var/assembly_type = /obj/item/device/assembly/signaler
-
+
//Note that the maximum amount of gas you can put in a 70L air tank at 1013.25 kPa and 519K is 16.44 mol.
var/phoron_amt = 10.96
var/oxygen_amt = 16.44
diff --git a/code/modules/awaymissions/loot.dm b/code/modules/awaymissions/loot.dm
index 2a45c4c0de4..da1de0a597d 100644
--- a/code/modules/awaymissions/loot.dm
+++ b/code/modules/awaymissions/loot.dm
@@ -1,5 +1,5 @@
/obj/effect/spawner/lootdrop
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
var/lootcount = 1 //how many items will be spawned
var/lootdoubles = 0 //if the same item can be spawned twice
@@ -22,5 +22,5 @@
continue
new loot_path(get_turf(src))
-
+
return INITIALIZE_HINT_QDEL
diff --git a/code/modules/cargo/randomstock.dm b/code/modules/cargo/randomstock.dm
index d0b5e1ad707..74b292b98f4 100644
--- a/code/modules/cargo/randomstock.dm
+++ b/code/modules/cargo/randomstock.dm
@@ -455,7 +455,7 @@ var/list/global/random_stock_large = list(
/obj/effect/large_stock_marker
name = "Large Stock Marker"
desc = "This marks a place where a large object could spawn in cargo"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x3"
//This function actually handles the spawning.
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index f1039dbdd27..73581787341 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -297,8 +297,8 @@
/obj/item/clothing/ears/offear
name = "Other ear"
w_class = 5.0
- icon = 'icons/mob/screen1_Midnight.dmi'
- icon_state = "block"
+ icon = 'icons/mob/screen/midnight.dmi'
+ icon_state = "blocked"
slot_flags = SLOT_EARS | SLOT_TWOEARS
New(var/obj/O)
diff --git a/code/modules/mining/machine_input_output_plates.dm b/code/modules/mining/machine_input_output_plates.dm
index d8693a1316b..e390c2b1f33 100644
--- a/code/modules/mining/machine_input_output_plates.dm
+++ b/code/modules/mining/machine_input_output_plates.dm
@@ -1,7 +1,7 @@
/**********************Input and output plates**************************/
/obj/machinery/mineral/input
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
name = "Input area"
density = 0
@@ -10,10 +10,10 @@
icon_state = "blank"
/obj/machinery/mineral/output
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x"
name = "Output area"
density = 0
anchored = 1.0
New()
- icon_state = "blank"
\ No newline at end of file
+ icon_state = "blank"
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index f61a839bf7a..755211286a6 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -117,8 +117,16 @@
/mob/living/carbon/human/Move()
. = ..()
+
+ var/turf/T = loc
+ if (!isturf(T))
+ return
+
+ if (client)
+ var/turf/B = GetAbove(T)
+ up_hint.icon_state = "uphint[(B ? B.is_hole : 0)]"
+
if (is_noisy && !stat && !lying)
- var/turf/T = loc
if ((x == last_x && y == last_y) || !T.footstep_sound)
return
last_x = x
diff --git a/code/modules/mob/living/carbon/human/species/species_hud.dm b/code/modules/mob/living/carbon/human/species/species_hud.dm
index 13354058ebb..88e843e8fe0 100644
--- a/code/modules/mob/living/carbon/human/species/species_hud.dm
+++ b/code/modules/mob/living/carbon/human/species/species_hud.dm
@@ -11,6 +11,7 @@
var/has_throw = 1 // Set to draw throw button.
var/has_resist = 1 // Set to draw resist button.
var/has_internals = 1 // Set to draw the internals toggle button.
+ var/has_up_hint = 1 // Set to draw the "look-up" hint icon.
var/list/equip_slots = list() // Checked by mob_can_equip().
// Contains information on the position and tag for all inventory slots
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
index 3e324c5306e..48fb751fd3f 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm
@@ -326,7 +326,7 @@
/datum/hud_data/alien
- icon = 'icons/mob/screen1_alien.dmi'
+ icon = 'icons/mob/screen/alien.dmi'
has_a_intent = 1
has_m_intent = 1
has_warnings = 1
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 1724ad29bdf..01debae0bd6 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -31,6 +31,7 @@
var/obj/screen/gun/move/gun_move_icon = null
var/obj/screen/gun/run/gun_run_icon = null
var/obj/screen/gun/mode/gun_setting_icon = null
+ var/obj/screen/up_hint = null
//spells hud icons - this interacts with add_spell and remove_spell
var/list/obj/screen/movable/spell_master/spell_masters = null
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 0af536cbce6..e58b8d01acd 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -27,7 +27,7 @@
/obj/item/weapon/grab
name = "grab"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "reinforce"
flags = 0
var/obj/screen/grab/hud = null
diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm
index 902b062b044..908d88c5d7a 100644
--- a/code/modules/overmap/sectors.dm
+++ b/code/modules/overmap/sectors.dm
@@ -22,7 +22,7 @@ var/global/list/map_sectors = list()
//===================================================================================
/obj/effect/mapinfo/
name = "map info metaobject"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
invisibility = 101
var/obj_type //type of overmap object it spawns
@@ -62,7 +62,7 @@ var/global/list/map_sectors = list()
map_z = data.zlevel
name = data.name
always_known = data.known
- if (data.icon != 'icons/mob/screen1.dmi')
+ if (data.icon != 'icons/mob/screen/generic.dmi')
icon = data.icon
icon_state = data.icon_state
if(data.desc)
diff --git a/code/modules/spells/contracts.dm b/code/modules/spells/contracts.dm
index bbbf57d8df1..6ed033b7c43 100644
--- a/code/modules/spells/contracts.dm
+++ b/code/modules/spells/contracts.dm
@@ -1,7 +1,7 @@
/obj/item/weapon/contract
name = "contract"
desc = "written in the blood of some unfortunate fellow."
- icon = 'icons/mob/screen_spells.dmi'
+ icon = 'icons/mob/screen/spells.dmi'
icon_state = "master_open"
var/contract_master = null
diff --git a/code/modules/spells/hand/hand_item.dm b/code/modules/spells/hand/hand_item.dm
index 93b87a604cc..28dda0c07a9 100644
--- a/code/modules/spells/hand/hand_item.dm
+++ b/code/modules/spells/hand/hand_item.dm
@@ -4,7 +4,7 @@ Basically: I can use it to target things where I click. I can then pass these ta
/obj/item/magic_hand
name = "Magic Hand"
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
flags = 0
abstract = 1
w_class = 5.0
diff --git a/code/modules/supermatter/setup_supermatter.dm b/code/modules/supermatter/setup_supermatter.dm
index 5cb60767ce5..fc80e2eecdb 100644
--- a/code/modules/supermatter/setup_supermatter.dm
+++ b/code/modules/supermatter/setup_supermatter.dm
@@ -105,7 +105,7 @@
invisibility = 101
anchored = 1
density = 0
- icon = 'icons/mob/screen1.dmi'
+ icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
/obj/effect/engine_setup/proc/activate(var/last = 0)
diff --git a/code/unit_tests/mob_tests.dm b/code/unit_tests/mob_tests.dm
index 488512d20be..414f99e0676 100644
--- a/code/unit_tests/mob_tests.dm
+++ b/code/unit_tests/mob_tests.dm
@@ -521,7 +521,7 @@ datum/unit_test/mob_damage/vaurca/halloss
datum/unit_test/robot_module_icons
name = "MOB: Robot module icon check"
- var/icon_file = 'icons/mob/screen1_robot.dmi'
+ var/icon_file = 'icons/mob/screen/robot.dmi'
datum/unit_test/robot_module_icons/start_test()
var/failed = 0
diff --git a/html/changelogs/skull132-uphint.yml b/html/changelogs/skull132-uphint.yml
new file mode 100644
index 00000000000..d3a4301d2f9
--- /dev/null
+++ b/html/changelogs/skull132-uphint.yml
@@ -0,0 +1,6 @@
+author: Skull132
+delete-after: true
+
+changes:
+ - rscadd: "Added a roof indicator to the top right of the game screen."
+ - rscadd: "Added move-up and -down buttons to the AI UI. Sprites courtesy of BygoneHero."
diff --git a/icons/mob/screen1_alien.dmi b/icons/mob/screen/action.dmi
similarity index 100%
rename from icons/mob/screen1_alien.dmi
rename to icons/mob/screen/action.dmi
diff --git a/icons/mob/screen1_action.dmi b/icons/mob/screen/action_button.dmi
similarity index 100%
rename from icons/mob/screen1_action.dmi
rename to icons/mob/screen/action_button.dmi
diff --git a/icons/mob/screen/ai.dmi b/icons/mob/screen/ai.dmi
new file mode 100644
index 00000000000..a6c54ee7480
Binary files /dev/null and b/icons/mob/screen/ai.dmi differ
diff --git a/icons/mob/screen/alien.dmi b/icons/mob/screen/alien.dmi
new file mode 100644
index 00000000000..58516e1c0d1
Binary files /dev/null and b/icons/mob/screen/alien.dmi differ
diff --git a/icons/mob/screen/construct.dmi b/icons/mob/screen/construct.dmi
new file mode 100644
index 00000000000..94e5e356ff5
Binary files /dev/null and b/icons/mob/screen/construct.dmi differ
diff --git a/icons/mob/screen1_full.dmi b/icons/mob/screen/full.dmi
similarity index 100%
rename from icons/mob/screen1_full.dmi
rename to icons/mob/screen/full.dmi
diff --git a/icons/mob/screen/generic.dmi b/icons/mob/screen/generic.dmi
new file mode 100644
index 00000000000..ffa7a47aa9b
Binary files /dev/null and b/icons/mob/screen/generic.dmi differ
diff --git a/icons/mob/screen/midnight.dmi b/icons/mob/screen/midnight.dmi
index 8fbf0f1bb0c..5ca20700d14 100644
Binary files a/icons/mob/screen/midnight.dmi and b/icons/mob/screen/midnight.dmi differ
diff --git a/icons/mob/screen/old-noborder.dmi b/icons/mob/screen/old-noborder.dmi
index db107e42588..ac1a28d4b64 100644
Binary files a/icons/mob/screen/old-noborder.dmi and b/icons/mob/screen/old-noborder.dmi differ
diff --git a/icons/mob/screen/old.dmi b/icons/mob/screen/old.dmi
index c41806b0bdb..8bfaccf861a 100644
Binary files a/icons/mob/screen/old.dmi and b/icons/mob/screen/old.dmi differ
diff --git a/icons/mob/screen/orange.dmi b/icons/mob/screen/orange.dmi
index ee0dd097bdb..c369a6ea302 100644
Binary files a/icons/mob/screen/orange.dmi and b/icons/mob/screen/orange.dmi differ
diff --git a/icons/mob/screen/robot.dmi b/icons/mob/screen/robot.dmi
new file mode 100644
index 00000000000..ac162aa87fa
Binary files /dev/null and b/icons/mob/screen/robot.dmi differ
diff --git a/icons/mob/screen_spells.dmi b/icons/mob/screen/spells.dmi
similarity index 100%
rename from icons/mob/screen_spells.dmi
rename to icons/mob/screen/spells.dmi
diff --git a/icons/mob/screen/white.dmi b/icons/mob/screen/white.dmi
index 5415d7d1194..ca073d5468b 100644
Binary files a/icons/mob/screen/white.dmi and b/icons/mob/screen/white.dmi differ
diff --git a/icons/mob/screen1.dmi b/icons/mob/screen1.dmi
deleted file mode 100644
index d056f707eb4..00000000000
Binary files a/icons/mob/screen1.dmi and /dev/null differ
diff --git a/icons/mob/screen1_Midnight.dmi b/icons/mob/screen1_Midnight.dmi
deleted file mode 100644
index 7a5cc74ad35..00000000000
Binary files a/icons/mob/screen1_Midnight.dmi and /dev/null differ
diff --git a/icons/mob/screen1_Orange.dmi b/icons/mob/screen1_Orange.dmi
deleted file mode 100644
index 65aeb22a182..00000000000
Binary files a/icons/mob/screen1_Orange.dmi and /dev/null differ
diff --git a/icons/mob/screen1_White.dmi b/icons/mob/screen1_White.dmi
deleted file mode 100644
index 9f188398f83..00000000000
Binary files a/icons/mob/screen1_White.dmi and /dev/null differ
diff --git a/icons/mob/screen1_construct.dmi b/icons/mob/screen1_construct.dmi
deleted file mode 100644
index 67a37ccd738..00000000000
Binary files a/icons/mob/screen1_construct.dmi and /dev/null differ
diff --git a/icons/mob/screen1_old.dmi b/icons/mob/screen1_old.dmi
deleted file mode 100644
index 2118a08ed86..00000000000
Binary files a/icons/mob/screen1_old.dmi and /dev/null differ
diff --git a/icons/mob/screen1_robot.dmi b/icons/mob/screen1_robot.dmi
deleted file mode 100644
index 9d6b9800aa3..00000000000
Binary files a/icons/mob/screen1_robot.dmi and /dev/null differ
diff --git a/icons/mob/screen_ai.dmi b/icons/mob/screen_ai.dmi
deleted file mode 100644
index ddc08ed4395..00000000000
Binary files a/icons/mob/screen_ai.dmi and /dev/null differ