diff --git a/baystation12.dme b/baystation12.dme
index 80b05e58cbf..967eba404a0 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -64,9 +64,11 @@
#include "code\_onclick\hud\alien_larva.dm"
#include "code\_onclick\hud\hud.dm"
#include "code\_onclick\hud\human.dm"
+#include "code\_onclick\hud\mommi.dm"
#include "code\_onclick\hud\monkey.dm"
#include "code\_onclick\hud\movable_screen_objects.dm"
#include "code\_onclick\hud\other_mobs.dm"
+#include "code\_onclick\hud\pai.dm"
#include "code\_onclick\hud\robot.dm"
#include "code\_onclick\hud\screen_objects.dm"
#include "code\_onclick\hud\spell_screen_objects.dm"
@@ -328,7 +330,6 @@
#include "code\game\gamemodes\sandbox\sandbox.dm"
#include "code\game\gamemodes\traitor\doubleagent.dm"
#include "code\game\gamemodes\traitor\traitor.dm"
-#include "code\game\gamemodes\vampire\hud.dm"
#include "code\game\gamemodes\vampire\vampire.dm"
#include "code\game\gamemodes\vampire\vampire_powers.dm"
#include "code\game\gamemodes\wizard\artefact.dm"
@@ -1199,7 +1200,6 @@
#include "code\modules\mob\living\carbon\metroid\death.dm"
#include "code\modules\mob\living\carbon\metroid\emote.dm"
#include "code\modules\mob\living\carbon\metroid\examine.dm"
-#include "code\modules\mob\living\carbon\metroid\hud.dm"
#include "code\modules\mob\living\carbon\metroid\life.dm"
#include "code\modules\mob\living\carbon\metroid\login.dm"
#include "code\modules\mob\living\carbon\metroid\metroid.dm"
@@ -1241,7 +1241,6 @@
#include "code\modules\mob\living\silicon\mommi\death.dm"
#include "code\modules\mob\living\silicon\mommi\emote.dm"
#include "code\modules\mob\living\silicon\mommi\examine.dm"
-#include "code\modules\mob\living\silicon\mommi\hud.dm"
#include "code\modules\mob\living\silicon\mommi\inventory.dm"
#include "code\modules\mob\living\silicon\mommi\laws.dm"
#include "code\modules\mob\living\silicon\mommi\life.dm"
@@ -1254,7 +1253,6 @@
#include "code\modules\mob\living\silicon\mommi\update_icons.dm"
#include "code\modules\mob\living\silicon\pai\death.dm"
#include "code\modules\mob\living\silicon\pai\examine.dm"
-#include "code\modules\mob\living\silicon\pai\hud.dm"
#include "code\modules\mob\living\silicon\pai\life.dm"
#include "code\modules\mob\living\silicon\pai\pai.dm"
#include "code\modules\mob\living\silicon\pai\personality.dm"
diff --git a/code/WorkInProgress/Cael_Aislinn/sculpture.dm b/code/WorkInProgress/Cael_Aislinn/sculpture.dm
index d4ad41ff402..6fd428ae4ce 100644
--- a/code/WorkInProgress/Cael_Aislinn/sculpture.dm
+++ b/code/WorkInProgress/Cael_Aislinn/sculpture.dm
@@ -24,7 +24,7 @@
/mob/living/simple_animal/sculpture/proc/GrabMob(var/mob/living/target)
if(target && target != src && ishuman(target) && !observed)
- G = new /obj/item/weapon/grab(src, target)
+ G = getFromPool(/obj/item/weapon/grab,src,target)
target.Stun(1)
target.Paralyse(1)
G.loc = src
diff --git a/code/_onclick/hud/adminbus.dm b/code/_onclick/hud/adminbus.dm
index 90e453db370..074509bc398 100644
--- a/code/_onclick/hud/adminbus.dm
+++ b/code/_onclick/hud/adminbus.dm
@@ -1,210 +1,210 @@
/datum/hud/proc/adminbus_hud()
- mymob.gui_icons.adminbus_bg = new /obj/screen()
+ mymob.gui_icons.adminbus_bg = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_bg.icon = 'icons/adminbus/fullscreen.dmi'
mymob.gui_icons.adminbus_bg.icon_state = "HUD"
mymob.gui_icons.adminbus_bg.name = "HUD"
mymob.gui_icons.adminbus_bg.layer = 19
mymob.gui_icons.adminbus_bg.screen_loc = ui_adminbus_bg
- mymob.gui_icons.adminbus_delete = new /obj/screen()
+ mymob.gui_icons.adminbus_delete = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_delete.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_delete.icon_state = "icon_delete"
mymob.gui_icons.adminbus_delete.name = "Delete Bus"
mymob.gui_icons.adminbus_delete.screen_loc = ui_adminbus_delete
- mymob.gui_icons.adminbus_delmobs = new /obj/screen()
+ mymob.gui_icons.adminbus_delmobs = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_delmobs.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_delmobs.icon_state = "icon_delmobs"
mymob.gui_icons.adminbus_delmobs.name = "Delete Mobs"
mymob.gui_icons.adminbus_delmobs.screen_loc = ui_adminbus_delmobs
- mymob.gui_icons.adminbus_spclowns = new /obj/screen()
+ mymob.gui_icons.adminbus_spclowns = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_spclowns.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_spclowns.icon_state = "icon_spclown"
mymob.gui_icons.adminbus_spclowns.name = "Spawn Clowns"
mymob.gui_icons.adminbus_spclowns.screen_loc = ui_adminbus_spclowns
- mymob.gui_icons.adminbus_spcarps = new /obj/screen()
+ mymob.gui_icons.adminbus_spcarps = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_spcarps.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_spcarps.icon_state = "icon_spcarp"
mymob.gui_icons.adminbus_spcarps.name = "Spawn Carps"
mymob.gui_icons.adminbus_spcarps.screen_loc = ui_adminbus_spcarps
- mymob.gui_icons.adminbus_spbears = new /obj/screen()
+ mymob.gui_icons.adminbus_spbears = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_spbears.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_spbears.icon_state = "icon_spbear"
mymob.gui_icons.adminbus_spbears.name = "Spawn Bears"
mymob.gui_icons.adminbus_spbears.screen_loc = ui_adminbus_spbears
- mymob.gui_icons.adminbus_sptrees = new /obj/screen()
+ mymob.gui_icons.adminbus_sptrees = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_sptrees.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_sptrees.icon_state = "icon_sptree"
mymob.gui_icons.adminbus_sptrees.name = "Spawn Trees"
mymob.gui_icons.adminbus_sptrees.screen_loc = ui_adminbus_sptrees
- mymob.gui_icons.adminbus_spspiders = new /obj/screen()
+ mymob.gui_icons.adminbus_spspiders = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_spspiders.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_spspiders.icon_state = "icon_spspider"
mymob.gui_icons.adminbus_spspiders.name = "Spawn Spiders"
mymob.gui_icons.adminbus_spspiders.screen_loc = ui_adminbus_spspiders
- mymob.gui_icons.adminbus_spalien = new /obj/screen()
+ mymob.gui_icons.adminbus_spalien = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_spalien.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_spalien.icon_state = "icon_spalien"
mymob.gui_icons.adminbus_spalien.name = "Spawn Large Alien Queen"
mymob.gui_icons.adminbus_spalien.screen_loc = ui_adminbus_spalien
- mymob.gui_icons.adminbus_loadsids = new /obj/screen()
+ mymob.gui_icons.adminbus_loadsids = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_loadsids.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_loadsids.icon_state = "icon_loadsids"
mymob.gui_icons.adminbus_loadsids.name = "Spawn Loads of Captain Spare IDs"
mymob.gui_icons.adminbus_loadsids.screen_loc = ui_adminbus_loadsids
- mymob.gui_icons.adminbus_loadsmoney = new /obj/screen()
+ mymob.gui_icons.adminbus_loadsmoney = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_loadsmoney.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_loadsmoney.icon_state = "icon_loadsmone"
mymob.gui_icons.adminbus_loadsmoney.name = "Spawn Loads of Money"
mymob.gui_icons.adminbus_loadsmoney.screen_loc = ui_adminbus_loadsmone
- mymob.gui_icons.adminbus_massrepair = new /obj/screen()
+ mymob.gui_icons.adminbus_massrepair = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_massrepair.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_massrepair.icon_state = "icon_massrepair"
mymob.gui_icons.adminbus_massrepair.name = "Repair Surroundings"
mymob.gui_icons.adminbus_massrepair.screen_loc = ui_adminbus_massrepair
- mymob.gui_icons.adminbus_massrejuv = new /obj/screen()
+ mymob.gui_icons.adminbus_massrejuv = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_massrejuv.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_massrejuv.icon_state = "icon_massrejuv"
mymob.gui_icons.adminbus_massrejuv.name = "Mass Rejuvination"
mymob.gui_icons.adminbus_massrejuv.screen_loc = ui_adminbus_massrejuv
- mymob.gui_icons.adminbus_hook = new /obj/screen()
+ mymob.gui_icons.adminbus_hook = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_hook.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_hook.icon_state = "icon_hook"
mymob.gui_icons.adminbus_hook.name = "Singularity Hook"
mymob.gui_icons.adminbus_hook.screen_loc = ui_adminbus_hook
- mymob.gui_icons.adminbus_juke = new /obj/screen()
+ mymob.gui_icons.adminbus_juke = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_juke.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_juke.icon_state = "icon_jukebox"
mymob.gui_icons.adminbus_juke.name = "Adminbus-mounted Jukebox"
mymob.gui_icons.adminbus_juke.screen_loc = ui_adminbus_juke
- mymob.gui_icons.adminbus_tele = new /obj/screen()
+ mymob.gui_icons.adminbus_tele = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_tele.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_tele.icon_state = "icon_teleport"
mymob.gui_icons.adminbus_tele.name = "Teleportation"
mymob.gui_icons.adminbus_tele.screen_loc = ui_adminbus_tele
- mymob.gui_icons.adminbus_bumpers_1 = new /obj/screen()
+ mymob.gui_icons.adminbus_bumpers_1 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_bumpers_1.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_bumpers_1.icon_state = "icon_bumpers_1-on"
mymob.gui_icons.adminbus_bumpers_1.name = "Capture Mobs"
mymob.gui_icons.adminbus_bumpers_1.screen_loc = ui_adminbus_bumpers_1
- mymob.gui_icons.adminbus_bumpers_2 = new /obj/screen()
+ mymob.gui_icons.adminbus_bumpers_2 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_bumpers_2.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_bumpers_2.icon_state = "icon_bumpers_2-off"
mymob.gui_icons.adminbus_bumpers_2.name = "Hit Mobs"
mymob.gui_icons.adminbus_bumpers_2.screen_loc = ui_adminbus_bumpers_2
- mymob.gui_icons.adminbus_bumpers_3 = new /obj/screen()
+ mymob.gui_icons.adminbus_bumpers_3 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_bumpers_3.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_bumpers_3.icon_state = "icon_bumpers_3-off"
mymob.gui_icons.adminbus_bumpers_3.name = "Gib Mobs"
mymob.gui_icons.adminbus_bumpers_3.screen_loc = ui_adminbus_bumpers_3
- mymob.gui_icons.adminbus_door_0 = new /obj/screen()
+ mymob.gui_icons.adminbus_door_0 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_door_0.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_door_0.icon_state = "icon_door_0-on"
mymob.gui_icons.adminbus_door_0.name = "Close Door"
mymob.gui_icons.adminbus_door_0.screen_loc = ui_adminbus_door_0
- mymob.gui_icons.adminbus_door_1 = new /obj/screen()
+ mymob.gui_icons.adminbus_door_1 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_door_1.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_door_1.icon_state = "icon_door_1-off"
mymob.gui_icons.adminbus_door_1.name = "Open Door"
mymob.gui_icons.adminbus_door_1.screen_loc = ui_adminbus_door_1
- mymob.gui_icons.adminbus_roadlights_0 = new /obj/screen()
+ mymob.gui_icons.adminbus_roadlights_0 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_roadlights_0.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_roadlights_0.icon_state = "icon_lights_0-on"
mymob.gui_icons.adminbus_roadlights_0.name = "Turn Off Headlights"
mymob.gui_icons.adminbus_roadlights_0.screen_loc = ui_adminbus_roadlights_0
- mymob.gui_icons.adminbus_roadlights_1 = new /obj/screen()
+ mymob.gui_icons.adminbus_roadlights_1 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_roadlights_1.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_roadlights_1.icon_state = "icon_lights_1-off"
mymob.gui_icons.adminbus_roadlights_1.name = "Dipped Headlights"
mymob.gui_icons.adminbus_roadlights_1.screen_loc = ui_adminbus_roadlights_1
- mymob.gui_icons.adminbus_roadlights_2 = new /obj/screen()
+ mymob.gui_icons.adminbus_roadlights_2 = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_roadlights_2.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_roadlights_2.icon_state = "icon_lights_2-off"
mymob.gui_icons.adminbus_roadlights_2.name = "Main Headlights"
mymob.gui_icons.adminbus_roadlights_2.screen_loc = ui_adminbus_roadlights_2
- mymob.gui_icons.adminbus_free = new /obj/screen()
+ mymob.gui_icons.adminbus_free = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_free.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_free.icon_state = "icon_free"
mymob.gui_icons.adminbus_free.name = "Release Passengers"
mymob.gui_icons.adminbus_free.screen_loc = ui_adminbus_free
- mymob.gui_icons.adminbus_home = new /obj/screen()
+ mymob.gui_icons.adminbus_home = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_home.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_home.icon_state = "icon_home"
mymob.gui_icons.adminbus_home.name = "Send Passengers Back Home"
mymob.gui_icons.adminbus_home.screen_loc = ui_adminbus_home
- mymob.gui_icons.adminbus_antag = new /obj/screen()
+ mymob.gui_icons.adminbus_antag = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_antag.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_antag.icon_state = "icon_antag"
mymob.gui_icons.adminbus_antag.name = "Antag Madness!"
mymob.gui_icons.adminbus_antag.screen_loc = ui_adminbus_antag
- mymob.gui_icons.adminbus_dellasers = new /obj/screen()
+ mymob.gui_icons.adminbus_dellasers = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_dellasers.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_dellasers.icon_state = "icon_delgiven"
mymob.gui_icons.adminbus_dellasers.name = "Delete the given Infinite Laser Guns"
mymob.gui_icons.adminbus_dellasers.screen_loc = ui_adminbus_dellasers
- mymob.gui_icons.adminbus_givelasers = new /obj/screen()
+ mymob.gui_icons.adminbus_givelasers = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_givelasers.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_givelasers.icon_state = "icon_givelasers"
mymob.gui_icons.adminbus_givelasers.name = "Give Infinite Laser Guns to the Passengers"
mymob.gui_icons.adminbus_givelasers.screen_loc = ui_adminbus_givelasers
- mymob.gui_icons.adminbus_delbombs = new /obj/screen()
+ mymob.gui_icons.adminbus_delbombs = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_delbombs.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_delbombs.icon_state = "icon_delgiven"
mymob.gui_icons.adminbus_delbombs.name = "Delete the given Fuse-Bombs"
mymob.gui_icons.adminbus_delbombs.screen_loc = ui_adminbus_delbombs
- mymob.gui_icons.adminbus_givebombs = new /obj/screen()
+ mymob.gui_icons.adminbus_givebombs = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_givebombs.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_givebombs.icon_state = "icon_givebombs"
mymob.gui_icons.adminbus_givebombs.name = "Give Fuse-Bombs to the Passengers"
mymob.gui_icons.adminbus_givebombs.screen_loc = ui_adminbus_givebombs
- mymob.gui_icons.adminbus_tdred = new /obj/screen()
+ mymob.gui_icons.adminbus_tdred = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_tdred.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_tdred.icon_state = "icon_tdred"
mymob.gui_icons.adminbus_tdred.name = "Send Passengers to the Thunderdome's Red Team"
mymob.gui_icons.adminbus_tdred.screen_loc = ui_adminbus_tdred
- mymob.gui_icons.adminbus_tdarena = new /obj/screen()
+ mymob.gui_icons.adminbus_tdarena = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_tdarena.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_tdarena.icon_state = "icon_tdarena"
mymob.gui_icons.adminbus_tdarena.name = "Split the Passengers between the two Thunderdome Teams"
mymob.gui_icons.adminbus_tdarena.screen_loc = ui_adminbus_tdarena
- mymob.gui_icons.adminbus_tdgreen = new /obj/screen()
+ mymob.gui_icons.adminbus_tdgreen = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_tdgreen.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_tdgreen.icon_state = "icon_tdgreen"
mymob.gui_icons.adminbus_tdgreen.name = "Send Passengers to the Thunderdome's Green Team"
mymob.gui_icons.adminbus_tdgreen.screen_loc = ui_adminbus_tdgreen
- mymob.gui_icons.adminbus_tdobs = new /obj/screen()
+ mymob.gui_icons.adminbus_tdobs = getFromPool(/obj/screen)
mymob.gui_icons.adminbus_tdobs.icon = 'icons/adminbus/32x32.dmi'
mymob.gui_icons.adminbus_tdobs.icon_state = "icon_tdobs"
mymob.gui_icons.adminbus_tdobs.name = "Send Passengers to the Thunderdome's Observers' Lodge"
@@ -249,7 +249,7 @@
)
for(var/i=1;i<=16;i++)
- var/obj/screen/S = new /obj/screen()
+ var/obj/screen/S = getFromPool(/obj/screen)
S.icon = 'icons/adminbus/32x32.dmi'
S.icon_state = ""
S.screen_loc = "[12-round(i/2)]:[16*((i-1)%2)],14:16"
diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index 3f24ae0bf7e..9641e27a398 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -7,7 +7,7 @@
var/obj/screen/using
//AI core
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "AI Core"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "ai_core"
@@ -16,7 +16,7 @@
adding += using
//Camera list
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Show Camera List"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "camera"
@@ -25,7 +25,7 @@
adding += using
//Track
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Track With Camera"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "track"
@@ -34,7 +34,7 @@
adding += using
//Camera light
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Toggle Camera Light"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "camera_light"
@@ -43,7 +43,7 @@
adding += using
//Crew Manifest
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Show Crew Manifest"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "manifest"
@@ -52,7 +52,7 @@
adding += using
//Alerts
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Show Alerts"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "alerts"
@@ -61,7 +61,7 @@
adding += using
//Announcement
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Announcement"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "announcement"
@@ -70,7 +70,7 @@
adding += using
//Shuttle
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Call Emergency Shuttle"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "call_shuttle"
@@ -79,7 +79,7 @@
adding += using
//Laws
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "State Laws"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "state_laws"
@@ -88,7 +88,7 @@
adding += using
//PDA message
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "PDA - Send Message"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "pda_send"
@@ -97,7 +97,7 @@
adding += using
//PDA log
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "PDA - Show Message Log"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "pda_receive"
@@ -106,7 +106,7 @@
adding += using
//Take image
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "Take Image"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "take_picture"
@@ -115,7 +115,7 @@
adding += using
//View images
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "View Images"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "view_images"
diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm
index 783cb692bc8..7a45dda9b2b 100644
--- a/code/_onclick/hud/alien.dm
+++ b/code/_onclick/hud/alien.dm
@@ -6,7 +6,7 @@
var/obj/screen/using
var/obj/screen/inventory/inv_box
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "act_intent"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_alien.dmi'
@@ -22,7 +22,7 @@
ico = new('icons/mob/screen1_alien.dmi', "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "help"
using.icon = ico
using.screen_loc = ui_acti
@@ -33,7 +33,7 @@
ico = new('icons/mob/screen1_alien.dmi', "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "disarm"
using.icon = ico
using.screen_loc = ui_acti
@@ -44,7 +44,7 @@
ico = new('icons/mob/screen1_alien.dmi', "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "grab"
using.icon = ico
using.screen_loc = ui_acti
@@ -55,7 +55,7 @@
ico = new('icons/mob/screen1_alien.dmi', "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "harm"
using.icon = ico
using.screen_loc = ui_acti
@@ -65,7 +65,7 @@
//end intent small hud objects
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "mov_intent"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_alien.dmi'
@@ -75,7 +75,7 @@
src.adding += using
move_intent = using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "drop"
using.icon = 'icons/mob/screen1_alien.dmi'
using.icon_state = "act_drop"
@@ -85,7 +85,7 @@
//equippable shit
//suit
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "o_clothing"
inv_box.dir = SOUTH
inv_box.icon = 'icons/mob/screen1_alien.dmi'
@@ -95,7 +95,7 @@
inv_box.layer = 19
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "r_hand"
inv_box.dir = WEST
inv_box.icon = 'icons/mob/screen1_alien.dmi'
@@ -108,7 +108,7 @@
inv_box.slot_id = slot_r_hand
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "l_hand"
inv_box.dir = EAST
inv_box.icon = 'icons/mob/screen1_alien.dmi'
@@ -121,7 +121,7 @@
src.l_hand_hud_object = inv_box
src.adding += inv_box
- using = new /obj/screen/inventory()
+ using = getFromPool(/obj/screen/inventory)
using.name = "hand"
using.dir = SOUTH
using.icon = 'icons/mob/screen1_alien.dmi'
@@ -130,7 +130,7 @@
using.layer = 19
src.adding += using
- using = new /obj/screen/inventory()
+ using = getFromPool(/obj/screen/inventory)
using.name = "hand"
using.dir = SOUTH
using.icon = 'icons/mob/screen1_alien.dmi'
@@ -140,7 +140,7 @@
src.adding += using
//pocket 1
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "storage1"
inv_box.icon = 'icons/mob/screen1_alien.dmi'
inv_box.icon_state = "pocket"
@@ -150,7 +150,7 @@
src.adding += inv_box
//pocket 2
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "storage2"
inv_box.icon = 'icons/mob/screen1_alien.dmi'
inv_box.icon_state = "pocket"
@@ -160,7 +160,7 @@
src.adding += inv_box
//head
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "head"
inv_box.icon = 'icons/mob/screen1_alien.dmi'
inv_box.icon_state = "hair"
@@ -171,7 +171,7 @@
//end of equippable shit
/*
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "resist"
using.icon = 'icons/mob/screen1_alien.dmi'
using.icon_state = "act_resist"
@@ -180,62 +180,62 @@
src.adding += using
*/
- mymob.throw_icon = new /obj/screen()
+ mymob.throw_icon = getFromPool(/obj/screen)
mymob.throw_icon.icon = 'icons/mob/screen1_alien.dmi'
mymob.throw_icon.icon_state = "act_throw_off"
mymob.throw_icon.name = "throw"
mymob.throw_icon.screen_loc = ui_drop_throw
- mymob.oxygen = new /obj/screen()
+ mymob.oxygen = getFromPool(/obj/screen)
mymob.oxygen.icon = 'icons/mob/screen1_alien.dmi'
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_alien_oxygen
- mymob.toxin = new /obj/screen()
+ mymob.toxin = getFromPool(/obj/screen)
mymob.toxin.icon = 'icons/mob/screen1_alien.dmi'
mymob.toxin.icon_state = "tox0"
mymob.toxin.name = "toxin"
mymob.toxin.screen_loc = ui_alien_toxin
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = 'icons/mob/screen1_alien.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_alien_fire
- mymob.healths = new /obj/screen()
+ mymob.healths = getFromPool(/obj/screen)
mymob.healths.icon = 'icons/mob/screen1_alien.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_alien_health
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = 'icons/mob/screen1_alien.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull_resist
- mymob.blind = new /obj/screen()
+ mymob.blind = getFromPool(/obj/screen)
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
mymob.blind.layer = 0
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1_alien.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.icon = 'icons/mob/screen1_alien.dmi'
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
\ No newline at end of file
diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm
index 1335cefc60e..2c0ee4f0c2b 100644
--- a/code/_onclick/hud/alien_larva.dm
+++ b/code/_onclick/hud/alien_larva.dm
@@ -5,7 +5,7 @@
var/obj/screen/using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "act_intent"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_alien.dmi'
@@ -15,7 +15,7 @@
src.adding += using
action_intent = using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "mov_intent"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_alien.dmi'
@@ -25,57 +25,57 @@
src.adding += using
move_intent = using
- mymob.oxygen = new /obj/screen()
+ mymob.oxygen = getFromPool(/obj/screen)
mymob.oxygen.icon = 'icons/mob/screen1_alien.dmi'
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_alien_oxygen
- mymob.toxin = new /obj/screen()
+ mymob.toxin = getFromPool(/obj/screen)
mymob.toxin.icon = 'icons/mob/screen1_alien.dmi'
mymob.toxin.icon_state = "tox0"
mymob.toxin.name = "toxin"
mymob.toxin.screen_loc = ui_alien_toxin
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = 'icons/mob/screen1_alien.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_alien_fire
- mymob.healths = new /obj/screen()
+ mymob.healths = getFromPool(/obj/screen)
mymob.healths.icon = 'icons/mob/screen1_alien.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_alien_health
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = 'icons/mob/screen1_alien.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull_resist
- mymob.blind = new /obj/screen()
+ mymob.blind = getFromPool(/obj/screen)
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
mymob.blind.layer = 0
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1_alien.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += image("icon" = 'icons/mob/zone_sel.dmi', "icon_state" = text("[]", mymob.zone_sel.selecting))
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list( mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index b5f04a6133c..0f5e29181af 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -1,84 +1,3 @@
-/*
- The global hud:
- Uses the same visual objects for all players.
-*/
-var/datum/global_hud/global_hud = new()
-
-/datum/hud/var/obj/screen/grab_intent
-/datum/hud/var/obj/screen/hurt_intent
-/datum/hud/var/obj/screen/disarm_intent
-/datum/hud/var/obj/screen/help_intent
-
-/datum/global_hud
- var/obj/screen/druggy
- var/obj/screen/blurry
- var/list/vimpaired
- var/list/darkMask
-
-/datum/global_hud/New()
- //420erryday psychedellic colours screen overlay for when you are high
- druggy = new /obj/screen()
- druggy.screen_loc = "WEST,SOUTH to EAST,NORTH"
- druggy.icon_state = "druggy"
- druggy.layer = 17
- druggy.mouse_opacity = 0
-
- //that white blurry effect you get when you eyes are damaged
- blurry = new /obj/screen()
- blurry.screen_loc = "WEST,SOUTH to EAST,NORTH"
- blurry.icon_state = "blurry"
- blurry.layer = 17
- blurry.mouse_opacity = 0
-
- var/obj/screen/O
- var/i
- //that nasty looking dither you get when you're short-sighted
- vimpaired = newlist(/obj/screen,/obj/screen,/obj/screen,/obj/screen)
- O = vimpaired[1]
- O.screen_loc = "1,1 to 5,15"
- O = vimpaired[2]
- O.screen_loc = "5,1 to 10,5"
- O = vimpaired[3]
- O.screen_loc = "6,11 to 10,15"
- O = vimpaired[4]
- O.screen_loc = "11,1 to 15,15"
-
- //welding mask overlay black/dither
- darkMask = newlist(/obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen)
- O = darkMask[1]
- O.screen_loc = "3,3 to 5,13"
- O = darkMask[2]
- O.screen_loc = "5,3 to 10,5"
- O = darkMask[3]
- O.screen_loc = "6,11 to 10,13"
- O = darkMask[4]
- O.screen_loc = "11,3 to 13,13"
- O = darkMask[5]
- O.screen_loc = "1,1 to 15,2"
- O = darkMask[6]
- O.screen_loc = "1,3 to 2,15"
- O = darkMask[7]
- O.screen_loc = "14,3 to 15,15"
- O = darkMask[8]
- O.screen_loc = "3,14 to 13,15"
-
- for(i = 1, i <= 4, i++)
- O = vimpaired[i]
- O.icon_state = "dither50"
- O.layer = 17
- O.mouse_opacity = 0
-
- O = darkMask[i]
- O.icon_state = "dither50"
- O.layer = 17
- O.mouse_opacity = 0
-
- for(i = 5, i <= 8, i++)
- O = darkMask[i]
- O.icon_state = "black"
- O.layer = 17
- O.mouse_opacity = 0
-
/*
The hud datum
Used to show and hide huds for all the different mob types,
@@ -88,6 +7,11 @@ var/datum/global_hud/global_hud = new()
/datum/hud
var/mob/mymob
+ var/obj/screen/grab_intent
+ var/obj/screen/hurt_intent
+ var/obj/screen/disarm_intent
+ var/obj/screen/help_intent
+
var/hud_shown = 1 //Used for the HUD toggle (F12)
var/inventory_shown = 1 //the inventory
var/show_intent_icons = 0
@@ -108,12 +32,31 @@ var/datum/global_hud/global_hud = new()
var/list/obj/screen/item_action/item_action_list = list() //Used for the item action ui buttons.
-
-datum/hud/New(mob/owner)
+/datum/hud/New(mob/owner)
mymob = owner
instantiate()
..()
+/datum/hud/Destroy()
+ ..()
+ grab_intent = null
+ hurt_intent = null
+ disarm_intent = null
+ help_intent = null
+ lingchemdisplay = null
+ blobpwrdisplay = null
+ blobhealthdisplay = null
+ vampire_blood_display = null
+ r_hand_hud_object = null
+ l_hand_hud_object = null
+ action_intent = null
+ move_intent = null
+ adding = null
+ other = null
+ hotkeybuttons = null
+ item_action_list = null
+ mymob = null
+
/datum/hud/proc/hidden_inventory_update()
if(!mymob)
@@ -262,3 +205,79 @@ datum/hud/New(mob/owner)
usr << "Inventory hiding is currently only supported for human mobs, sorry."
else
usr << "This mob type does not use a HUD."
+
+/*
+ The global hud:
+ Uses the same visual objects for all players.
+*/
+var/datum/global_hud/global_hud = new()
+
+/datum/global_hud
+ var/obj/screen/druggy
+ var/obj/screen/blurry
+ var/list/vimpaired
+ var/list/darkMask
+
+/datum/global_hud/New()
+ //420erryday psychedellic colours screen overlay for when you are high
+ druggy = getFromPool(/obj/screen)
+ druggy.screen_loc = "WEST,SOUTH to EAST,NORTH"
+ druggy.icon_state = "druggy"
+ druggy.layer = 17
+ druggy.mouse_opacity = 0
+
+ //that white blurry effect you get when you eyes are damaged
+ blurry = getFromPool(/obj/screen)
+ blurry.screen_loc = "WEST,SOUTH to EAST,NORTH"
+ blurry.icon_state = "blurry"
+ blurry.layer = 17
+ blurry.mouse_opacity = 0
+
+ var/obj/screen/O
+ var/i
+ //that nasty looking dither you get when you're short-sighted
+ vimpaired = newlist(/obj/screen,/obj/screen,/obj/screen,/obj/screen)
+ O = vimpaired[1]
+ O.screen_loc = "1,1 to 5,15"
+ O = vimpaired[2]
+ O.screen_loc = "5,1 to 10,5"
+ O = vimpaired[3]
+ O.screen_loc = "6,11 to 10,15"
+ O = vimpaired[4]
+ O.screen_loc = "11,1 to 15,15"
+
+ //welding mask overlay black/dither
+ darkMask = newlist(/obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen)
+ O = darkMask[1]
+ O.screen_loc = "3,3 to 5,13"
+ O = darkMask[2]
+ O.screen_loc = "5,3 to 10,5"
+ O = darkMask[3]
+ O.screen_loc = "6,11 to 10,13"
+ O = darkMask[4]
+ O.screen_loc = "11,3 to 13,13"
+ O = darkMask[5]
+ O.screen_loc = "1,1 to 15,2"
+ O = darkMask[6]
+ O.screen_loc = "1,3 to 2,15"
+ O = darkMask[7]
+ O.screen_loc = "14,3 to 15,15"
+ O = darkMask[8]
+ O.screen_loc = "3,14 to 13,15"
+
+ for(i = 1, i <= 4, i++)
+ O = vimpaired[i]
+ O.icon_state = "dither50"
+ O.layer = 17
+ O.mouse_opacity = 0
+
+ O = darkMask[i]
+ O.icon_state = "dither50"
+ O.layer = 17
+ O.mouse_opacity = 0
+
+ for(i = 5, i <= 8, i++)
+ O = darkMask[i]
+ O.icon_state = "black"
+ O.layer = 17
+ O.mouse_opacity = 0
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 9b4b55d136f..66925576871 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -7,7 +7,7 @@
var/obj/screen/using
var/obj/screen/inventory/inv_box
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "act_intent"
using.dir = SOUTHWEST
using.icon = ui_style
@@ -23,7 +23,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "help"
using.icon = ico
using.screen_loc = ui_acti
@@ -34,7 +34,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "disarm"
using.icon = ico
using.screen_loc = ui_acti
@@ -45,7 +45,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "grab"
using.icon = ico
using.screen_loc = ui_acti
@@ -56,7 +56,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "harm"
using.icon = ico
using.screen_loc = ui_acti
@@ -66,7 +66,7 @@
//end intent small hud objects
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "mov_intent"
using.dir = SOUTHWEST
using.icon = ui_style
@@ -78,7 +78,7 @@
src.adding += using
move_intent = using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "drop"
using.icon = ui_style
using.icon_state = "act_drop"
@@ -88,7 +88,7 @@
using.alpha = ui_alpha
src.hotkeybuttons += using
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "i_clothing"
inv_box.dir = SOUTH
inv_box.icon = ui_style
@@ -100,7 +100,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "o_clothing"
inv_box.dir = SOUTH
inv_box.icon = ui_style
@@ -112,7 +112,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "r_hand"
inv_box.dir = WEST
inv_box.icon = ui_style
@@ -128,7 +128,7 @@
src.r_hand_hud_object = inv_box
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "l_hand"
inv_box.dir = EAST
inv_box.icon = ui_style
@@ -143,7 +143,7 @@
src.l_hand_hud_object = inv_box
src.adding += inv_box
- using = new /obj/screen/inventory()
+ using = getFromPool(/obj/screen/inventory)
using.name = "hand"
using.dir = SOUTH
using.icon = ui_style
@@ -154,7 +154,7 @@
using.alpha = ui_alpha
src.adding += using
- using = new /obj/screen/inventory()
+ using = getFromPool(/obj/screen/inventory)
using.name = "hand"
using.dir = SOUTH
using.icon = ui_style
@@ -165,7 +165,7 @@
using.alpha = ui_alpha
src.adding += using
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "id"
inv_box.dir = NORTH
inv_box.icon = ui_style
@@ -177,7 +177,7 @@
inv_box.alpha = ui_alpha
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "mask"
inv_box.dir = NORTH
inv_box.icon = ui_style
@@ -189,7 +189,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "back"
inv_box.dir = NORTH
inv_box.icon = ui_style
@@ -201,7 +201,7 @@
inv_box.alpha = ui_alpha
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "storage1"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
@@ -212,7 +212,7 @@
inv_box.alpha = ui_alpha
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "storage2"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
@@ -223,7 +223,7 @@
inv_box.alpha = ui_alpha
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "suit storage"
inv_box.icon = ui_style
inv_box.dir = 8 //The sprite at dir=8 has the background whereas the others don't.
@@ -235,7 +235,7 @@
inv_box.alpha = ui_alpha
src.adding += inv_box
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "resist"
using.icon = ui_style
using.icon_state = "act_resist"
@@ -245,7 +245,7 @@
using.alpha = ui_alpha
src.hotkeybuttons += using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "toggle"
using.icon = ui_style
using.icon_state = "other"
@@ -255,7 +255,7 @@
using.alpha = ui_alpha
src.adding += using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "equip"
using.icon = ui_style
using.icon_state = "act_equip"
@@ -265,7 +265,7 @@
using.alpha = ui_alpha
src.adding += using
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "gloves"
inv_box.icon = ui_style
inv_box.icon_state = "gloves"
@@ -276,7 +276,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "eyes"
inv_box.icon = ui_style
inv_box.icon_state = "glasses"
@@ -287,7 +287,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "ears"
inv_box.icon = ui_style
inv_box.icon_state = "ears"
@@ -298,7 +298,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "head"
inv_box.icon = ui_style
inv_box.icon_state = "hair"
@@ -309,7 +309,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "shoes"
inv_box.icon = ui_style
inv_box.icon_state = "shoes"
@@ -320,7 +320,7 @@
inv_box.alpha = ui_alpha
src.other += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "belt"
inv_box.icon = ui_style
inv_box.icon_state = "belt"
@@ -331,7 +331,7 @@
inv_box.alpha = ui_alpha
src.adding += inv_box
- mymob.throw_icon = new /obj/screen()
+ mymob.throw_icon = getFromPool(/obj/screen)
mymob.throw_icon.icon = ui_style
mymob.throw_icon.icon_state = "act_throw_off"
mymob.throw_icon.name = "throw"
@@ -340,62 +340,62 @@
mymob.throw_icon.alpha = ui_alpha
src.hotkeybuttons += mymob.throw_icon
- mymob.oxygen = new /obj/screen()
+ mymob.oxygen = getFromPool(/obj/screen)
mymob.oxygen.icon = ui_style
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_oxygen
- mymob.pressure = new /obj/screen()
+ mymob.pressure = getFromPool(/obj/screen)
mymob.pressure.icon = ui_style
mymob.pressure.icon_state = "pressure0"
mymob.pressure.name = "pressure"
mymob.pressure.screen_loc = ui_pressure
- mymob.toxin = new /obj/screen()
+ mymob.toxin = getFromPool(/obj/screen)
mymob.toxin.icon = ui_style
mymob.toxin.icon_state = "tox0"
mymob.toxin.name = "toxin"
mymob.toxin.screen_loc = ui_toxin
- mymob.internals = new /obj/screen()
+ mymob.internals = getFromPool(/obj/screen)
mymob.internals.icon = ui_style
mymob.internals.icon_state = "internal0"
mymob.internals.name = "internal"
mymob.internals.screen_loc = ui_internal
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = ui_style
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
- mymob.bodytemp = new /obj/screen()
+ mymob.bodytemp = getFromPool(/obj/screen)
mymob.bodytemp.icon = ui_style
mymob.bodytemp.icon_state = "temp1"
mymob.bodytemp.name = "body temperature"
mymob.bodytemp.screen_loc = ui_temp
- mymob.healths = new /obj/screen()
+ mymob.healths = getFromPool(/obj/screen)
mymob.healths.icon = ui_style
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_health
- mymob.nutrition_icon = new /obj/screen()
+ mymob.nutrition_icon = getFromPool(/obj/screen)
mymob.nutrition_icon.icon = ui_style
mymob.nutrition_icon.icon_state = "nutrition0"
mymob.nutrition_icon.name = "nutrition"
mymob.nutrition_icon.screen_loc = ui_nutrition
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = ui_style
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull_resist
src.hotkeybuttons += mymob.pullin
- mymob.blind = new /obj/screen()
+ mymob.blind = getFromPool(/obj/screen)
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
@@ -403,7 +403,7 @@
mymob.blind.mouse_opacity = 0
mymob.blind.layer = 0
- mymob.damageoverlay = new /obj/screen()
+ mymob.damageoverlay = getFromPool(/obj/screen)
mymob.damageoverlay.icon = 'icons/mob/screen1_full.dmi'
mymob.damageoverlay.icon_state = "oxydamageoverlay0"
mymob.damageoverlay.name = "dmg"
@@ -411,16 +411,16 @@
mymob.damageoverlay.mouse_opacity = 0
mymob.damageoverlay.layer = 18.1 //The black screen overlay sets layer to 18 to display it, this one has to be just on top.
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = ui_style
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.pain = new /obj/screen( null )
+ mymob.pain = getFromPool(/obj/screen)
- mymob.zone_sel = new /obj/screen/zone_sel( null )
+ mymob.zone_sel = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.icon = ui_style
mymob.zone_sel.color = ui_color
mymob.zone_sel.alpha = ui_alpha
@@ -428,27 +428,27 @@
mymob.zone_sel.overlays += 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.gun_setting_icon = getFromPool(/obj/screen/gun/mode)
if (mymob.client)
if (mymob.client.gun_mode) // If in aim mode, correct the sprite
mymob.gun_setting_icon.dir = 2
for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons
if (G.target)
- mymob.item_use_icon = new /obj/screen/gun/item(null)
+ mymob.item_use_icon = getFromPool(/obj/screen/gun/item)
if (mymob.client.target_can_click)
mymob.item_use_icon.dir = 1
src.adding += mymob.item_use_icon
- mymob.gun_move_icon = new /obj/screen/gun/move(null)
+ mymob.gun_move_icon = getFromPool(/obj/screen/gun/move)
if (mymob.client.target_can_move)
mymob.gun_move_icon.dir = 1
- mymob.gun_run_icon = new /obj/screen/gun/run(null)
+ mymob.gun_run_icon = getFromPool(/obj/screen/gun/run)
if (mymob.client.target_can_run)
mymob.gun_run_icon.dir = 1
src.adding += mymob.gun_run_icon
src.adding += mymob.gun_move_icon
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.damageoverlay, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach )
mymob.client.screen += src.adding + src.hotkeybuttons
@@ -483,7 +483,7 @@
for(var/obj/item/I in src)
if(I.action_button_name)
if(hud_used.item_action_list.len < num)
- var/obj/screen/item_action/N = new(hud_used)
+ var/obj/screen/item_action/N = getFromPool(/obj/screen/item_action,hud_used)
hud_used.item_action_list += N
var/obj/screen/item_action/A = hud_used.item_action_list[num]
diff --git a/code/modules/mob/living/silicon/mommi/hud.dm b/code/_onclick/hud/mommi.dm
similarity index 84%
rename from code/modules/mob/living/silicon/mommi/hud.dm
rename to code/_onclick/hud/mommi.dm
index 9bd4b95beba..658bb97267f 100644
--- a/code/modules/mob/living/silicon/mommi/hud.dm
+++ b/code/_onclick/hud/mommi.dm
@@ -9,7 +9,7 @@
var/obj/screen/inventory/inv_box
// Radio
- using = new /obj/screen() // Set using to a new object
+ using = getFromPool(/obj/screen) // Set using to a new object
using.name = "radio" // Name it
using.dir = SOUTHWEST // Set its direction
using.icon = 'icons/mob/screen1_robot.dmi' // Pick the base icon
@@ -19,7 +19,7 @@
src.adding += using // Place using in our adding list
// Module select
- using = new /obj/screen() // Set using to a new object
+ using = getFromPool(/obj/screen) // Set using to a new object
using.name = INV_SLOT_TOOL
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -29,7 +29,7 @@
src.adding += using // Place using in our adding list
M.inv_tool = using // Save this using as our MoMMI's inv_sight
/*
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = INV_SLOT_SIGHT
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -41,7 +41,7 @@
// End of module select
// Head
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "head"
inv_box.dir = NORTH
inv_box.icon_state = "hair"
@@ -52,7 +52,7 @@
// Intent
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "act_intent"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -63,28 +63,28 @@
action_intent = using
// Cell
- mymob:cells = new /obj/screen()
+ mymob:cells = getFromPool(/obj/screen)
mymob:cells.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen)
mymob.healths.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen)
mymob.hands.icon = 'icons/mob/screen1_robot.dmi'
mymob.hands.icon_state = "nomod"
mymob.hands.name = "module"
mymob.hands.screen_loc = ui_borg_module
// Module Panel
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "panel"
using.icon = 'icons/mob/screen1_robot.dmi'
using.icon_state = "panel"
@@ -93,41 +93,41 @@
src.adding += using
// Store
- mymob.throw_icon = new /obj/screen()
+ mymob.throw_icon = getFromPool(/obj/screen)
mymob.throw_icon.icon = 'icons/mob/screen1_robot.dmi'
mymob.throw_icon.icon_state = "store"
mymob.throw_icon.name = "store"
mymob.throw_icon.screen_loc = ui_borg_store
// Temp
- mymob.bodytemp = new /obj/screen()
+ mymob.bodytemp = getFromPool(/obj/screen)
mymob.bodytemp.icon_state = "temp0"
mymob.bodytemp.name = "body temperature"
mymob.bodytemp.screen_loc = ui_temp
// Oxygen
- mymob.oxygen = new /obj/screen()
+ mymob.oxygen = getFromPool(/obj/screen)
mymob.oxygen.icon = 'icons/mob/screen1_robot.dmi'
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_oxygen
// Fire
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = 'icons/mob/screen1_robot.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
// Pulling
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = 'icons/mob/screen1_robot.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_borg_pull
// Blindness overlay
- mymob.blind = new /obj/screen()
+ mymob.blind = getFromPool(/obj/screen)
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
@@ -135,7 +135,7 @@
mymob.blind.layer = 0
// Getting flashed overlay
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1_robot.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
@@ -143,13 +143,13 @@
mymob.flash.layer = 17
// Zone
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.icon = 'icons/mob/screen1_robot.dmi'
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
// Reset the client's screen
- mymob.client.screen = null
+ mymob.client.reset_screen()
// Add everything to their screen
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm
index cd803a62ad0..4b5abb246b9 100644
--- a/code/_onclick/hud/monkey.dm
+++ b/code/_onclick/hud/monkey.dm
@@ -6,7 +6,7 @@
var/obj/screen/using
var/obj/screen/inventory/inv_box
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "act_intent"
using.dir = SOUTHWEST
using.icon = ui_style
@@ -22,7 +22,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "help"
using.icon = ico
using.screen_loc = ui_acti
@@ -33,7 +33,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "disarm"
using.icon = ico
using.screen_loc = ui_acti
@@ -44,7 +44,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "grab"
using.icon = ico
using.screen_loc = ui_acti
@@ -55,7 +55,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
- using = new /obj/screen( src )
+ using = getFromPool(/obj/screen,src)
using.name = "harm"
using.icon = ico
using.screen_loc = ui_acti
@@ -65,7 +65,7 @@
//end intent small hud objects
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "mov_intent"
using.dir = SOUTHWEST
using.icon = ui_style
@@ -75,7 +75,7 @@
src.adding += using
move_intent = using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "drop"
using.icon = ui_style
using.icon_state = "act_drop"
@@ -83,7 +83,7 @@
using.layer = 19
src.adding += using
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "r_hand"
inv_box.dir = WEST
inv_box.icon = ui_style
@@ -96,7 +96,7 @@
src.r_hand_hud_object = inv_box
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "l_hand"
inv_box.dir = EAST
inv_box.icon = ui_style
@@ -109,7 +109,7 @@
src.l_hand_hud_object = inv_box
src.adding += inv_box
- using = new /obj/screen/inventory()
+ using = getFromPool(/obj/screen/inventory)
using.name = "hand"
using.dir = SOUTH
using.icon = ui_style
@@ -118,7 +118,7 @@
using.layer = 19
src.adding += using
- using = new /obj/screen/inventory()
+ using = getFromPool(/obj/screen/inventory)
using.name = "hand"
using.dir = SOUTH
using.icon = ui_style
@@ -127,43 +127,43 @@
using.layer = 19
src.adding += using
- mymob.m_suitclothesbg = new /obj/screen()
+ mymob.m_suitclothesbg = getFromPool(/obj/screen)
mymob.m_suitclothesbg.icon = ui_style
mymob.m_suitclothesbg.icon_state = "center"
mymob.m_suitclothesbg.name = "uniform"
mymob.m_suitclothesbg.screen_loc = ui_monkey_uniform
- mymob.m_suitclothes = new /obj/screen()
+ mymob.m_suitclothes = getFromPool(/obj/screen)
mymob.m_suitclothes.icon = 'icons/mob/monkey.dmi'
mymob.m_suitclothes.icon_state = "none"
mymob.m_suitclothes.name = "uniform"
mymob.m_suitclothes.screen_loc = ui_monkey_uniform
- mymob.m_hatbg = new /obj/screen()
+ mymob.m_hatbg = getFromPool(/obj/screen)
mymob.m_hatbg.icon = ui_style
mymob.m_hatbg.icon_state = "hair"
mymob.m_hatbg.name = "hat"
mymob.m_hatbg.screen_loc = ui_monkey_hat
- mymob.m_hat = new /obj/screen()
+ mymob.m_hat = getFromPool(/obj/screen)
mymob.m_hat.icon = 'icons/obj/clothing/hats.dmi'
mymob.m_hat.icon_state = "none"
mymob.m_hat.name = "hat"
mymob.m_hat.screen_loc = ui_monkey_hat
- mymob.m_glassesbg = new /obj/screen()
+ mymob.m_glassesbg = getFromPool(/obj/screen)
mymob.m_glassesbg.icon = ui_style
mymob.m_glassesbg.icon_state = "glasses"
mymob.m_glassesbg.name = "glasses"
mymob.m_glassesbg.screen_loc = ui_monkey_glasses
- mymob.m_glasses = new /obj/screen()
+ mymob.m_glasses = getFromPool(/obj/screen)
mymob.m_glasses.icon = 'icons/obj/clothing/glasses.dmi'
mymob.m_glasses.icon_state = "none"
mymob.m_glasses.name = "glasses"
mymob.m_glasses.screen_loc = ui_monkey_glasses
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "mask"
inv_box.dir = NORTH
inv_box.icon = ui_style
@@ -173,7 +173,7 @@
inv_box.layer = 19
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = getFromPool(/obj/screen/inventory)
inv_box.name = "back"
inv_box.dir = NORTHEAST
inv_box.icon = ui_style
@@ -183,100 +183,100 @@
inv_box.layer = 19
src.adding += inv_box
- mymob.throw_icon = new /obj/screen()
+ mymob.throw_icon = getFromPool(/obj/screen)
mymob.throw_icon.icon = ui_style
mymob.throw_icon.icon_state = "act_throw_off"
mymob.throw_icon.name = "throw"
mymob.throw_icon.screen_loc = ui_drop_throw
- mymob.oxygen = new /obj/screen()
+ mymob.oxygen = getFromPool(/obj/screen)
mymob.oxygen.icon = ui_style
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_oxygen
- mymob.pressure = new /obj/screen()
+ mymob.pressure = getFromPool(/obj/screen)
mymob.pressure.icon = ui_style
mymob.pressure.icon_state = "pressure0"
mymob.pressure.name = "pressure"
mymob.pressure.screen_loc = ui_pressure
- mymob.toxin = new /obj/screen()
+ mymob.toxin = getFromPool(/obj/screen)
mymob.toxin.icon = ui_style
mymob.toxin.icon_state = "tox0"
mymob.toxin.name = "toxin"
mymob.toxin.screen_loc = ui_toxin
- mymob.internals = new /obj/screen()
+ mymob.internals = getFromPool(/obj/screen)
mymob.internals.icon = ui_style
mymob.internals.icon_state = "internal0"
mymob.internals.name = "internal"
mymob.internals.screen_loc = ui_internal
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = ui_style
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
- mymob.bodytemp = new /obj/screen()
+ mymob.bodytemp = getFromPool(/obj/screen)
mymob.bodytemp.icon = ui_style
mymob.bodytemp.icon_state = "temp1"
mymob.bodytemp.name = "body temperature"
mymob.bodytemp.screen_loc = ui_temp
- mymob.healths = new /obj/screen()
+ mymob.healths = getFromPool(/obj/screen)
mymob.healths.icon = ui_style
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_health
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = ui_style
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_pull_resist
- mymob.blind = new /obj/screen()
+ mymob.blind = getFromPool(/obj/screen)
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
mymob.blind.layer = 0
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = ui_style
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.icon = ui_style
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += 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.gun_setting_icon = getFromPool(/obj/screen/gun/mode)
if (mymob.client)
if (mymob.client.gun_mode) // If in aim mode, correct the sprite
mymob.gun_setting_icon.dir = 2
for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons
if (G.target)
- mymob.item_use_icon = new /obj/screen/gun/item(null)
+ mymob.item_use_icon = getFromPool(/obj/screen/gun/item)
if (mymob.client.target_can_click)
mymob.item_use_icon.dir = 1
src.adding += mymob.item_use_icon
- mymob.gun_move_icon = new /obj/screen/gun/move(null)
+ mymob.gun_move_icon = getFromPool(/obj/screen/gun/move)
if (mymob.client.target_can_move)
mymob.gun_move_icon.dir = 1
- mymob.gun_run_icon = new /obj/screen/gun/run(null)
+ mymob.gun_run_icon = getFromPool(/obj/screen/gun/run)
if (mymob.client.target_can_run)
mymob.gun_run_icon.dir = 1
src.adding += mymob.gun_run_icon
src.adding += mymob.gun_move_icon
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.m_hatbg, mymob.m_hat, mymob.m_suitclothesbg, mymob.m_suitclothes, mymob.m_glassesbg, mymob.m_glasses, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm
index c474528b97b..c485a615f4a 100644
--- a/code/_onclick/hud/other_mobs.dm
+++ b/code/_onclick/hud/other_mobs.dm
@@ -3,67 +3,67 @@
return
/datum/hud/proc/ghost_hud()
- mymob.visible = new /obj/screen()
+ mymob.visible = getFromPool(/obj/screen)
mymob.visible.icon = 'icons/mob/screen1_ghost.dmi'
mymob.visible.icon_state = "visible0"
mymob.visible.name = "visible"
mymob.visible.screen_loc = ui_health
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list(mymob.visible, mymob.flash)
/datum/hud/proc/corgi_hud()
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = 'icons/mob/screen1_corgi.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
- mymob.healths = new /obj/screen()
+ mymob.healths = getFromPool(/obj/screen)
mymob.healths.icon = 'icons/mob/screen1_corgi.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_health
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = 'icons/mob/screen1_corgi.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_construct_pull
- mymob.oxygen = new /obj/screen()
+ mymob.oxygen = getFromPool(/obj/screen)
mymob.oxygen.icon = 'icons/mob/screen1_corgi.dmi'
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_oxygen
- mymob.toxin = new /obj/screen()
+ mymob.toxin = getFromPool(/obj/screen)
mymob.toxin.icon = 'icons/mob/screen1_corgi.dmi'
mymob.toxin.icon_state = "tox0"
mymob.toxin.name = "toxin"
mymob.toxin.screen_loc = ui_toxin
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list(mymob.fire, mymob.healths, mymob.pullin, mymob.oxygen, mymob.toxin, mymob.flash)
/datum/hud/proc/brain_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
- mymob.blind = new /obj/screen()
+ mymob.blind = getFromPool(/obj/screen)
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
@@ -72,55 +72,55 @@
/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
- blobpwrdisplay = new /obj/screen()
+ blobpwrdisplay = getFromPool(/obj/screen)
blobpwrdisplay.name = "blob power"
blobpwrdisplay.icon_state = "block"
blobpwrdisplay.screen_loc = ui_health
blobpwrdisplay.layer = 20
- blobhealthdisplay = new /obj/screen()
+ blobhealthdisplay = getFromPool(/obj/screen)
blobhealthdisplay.name = "blob health"
blobhealthdisplay.icon_state = "block"
blobhealthdisplay.screen_loc = ui_internal
blobhealthdisplay.layer = 20
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list(blobpwrdisplay, blobhealthdisplay)
/datum/hud/proc/shade_hud()
- mymob.healths = new /obj/screen()
+ mymob.healths = getFromPool(/obj/screen)
mymob.healths.icon = 'icons/mob/screen1_shade.dmi'
mymob.healths.icon_state = "shade_health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_construct_health
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = 'icons/mob/screen1_shade.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_construct_pull
- mymob.purged = new /obj/screen()
+ mymob.purged = getFromPool(/obj/screen)
mymob.purged.icon = 'icons/mob/screen1_shade.dmi'
mymob.purged.icon_state = "purge0"
mymob.purged.name = "purged"
mymob.purged.screen_loc = ui_construct_purge
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.icon = 'icons/mob/screen1_shade.dmi'
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list(mymob.healths, mymob.pullin, mymob.zone_sel, mymob.purged, mymob.flash)
@@ -136,7 +136,7 @@
else if(istype(mymob,/mob/living/simple_animal/construct/harvester))
constructtype = "harvester"
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
@@ -144,37 +144,47 @@
mymob.flash.layer = 17
if(constructtype)
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen)
mymob.healths.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen)
mymob.pullin.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.icon = 'icons/mob/screen1_construct.dmi'
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
- mymob.purged = new /obj/screen()
+ mymob.purged = getFromPool(/obj/screen)
mymob.purged.icon = 'icons/mob/screen1_construct.dmi'
mymob.purged.icon_state = "purge0"
mymob.purged.name = "purged"
mymob.purged.screen_loc = ui_construct_purge
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list(mymob.fire, mymob.healths, mymob.pullin, mymob.zone_sel, mymob.purged, mymob.flash)
+/datum/hud/proc/vampire_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
+
+ vampire_blood_display = getFromPool(/obj/screen)
+ vampire_blood_display.name = "Vampire Blood"
+ vampire_blood_display.icon_state = "dark128"
+ vampire_blood_display.screen_loc = "14:28,9:15"
+ vampire_blood_display.layer = 20
+
+ mymob.client.screen += list(vampire_blood_display)
+
diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/_onclick/hud/pai.dm
similarity index 96%
rename from code/modules/mob/living/silicon/pai/hud.dm
rename to code/_onclick/hud/pai.dm
index 9cbbee9ea83..b48a8d41c89 100644
--- a/code/modules/mob/living/silicon/pai/hud.dm
+++ b/code/_onclick/hud/pai.dm
@@ -1,113 +1,117 @@
-/mob/living/silicon/pai/regular_hud_updates()
- if(client)
- for(var/image/hud in client.images)
- if(findtext(hud.icon_state, "hud", 1, 4))
- client.images -= hud
-
-/mob/living/silicon/pai/proc/securityHUD()
- if(client)
- var/image/holder
- var/turf/T = get_turf(src.loc)
- for(var/mob/living/carbon/human/perp in view(T))
- if(src.see_invisible < perp.invisibility)
- continue
- var/perpname = "wot"
- holder = perp.hud_list[ID_HUD]
- if(perp.wear_id)
- var/obj/item/weapon/card/id/I = perp.wear_id.GetID()
- if(I)
- perpname = I.registered_name
- holder.icon_state = "hud[ckey(perp:wear_id:GetJobName())]"
- client.images += holder
- else
- perpname = perp.name
- holder.icon_state = "hudunknown"
- client.images += holder
- else
- holder.icon_state = "hudunknown"
- client.images += holder
-
- for(var/datum/data/record/E in data_core.general)
- if(E.fields["name"] == perpname)
- holder = perp.hud_list[WANTED_HUD]
- for(var/datum/data/record/R in data_core.security)
- if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
- holder.icon_state = "hudwanted"
- client.images += holder
- break
- else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
- holder.icon_state = "hudprisoner"
- client.images += holder
- break
- else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Parolled"))
- holder.icon_state = "hudparolled"
- client.images += holder
- break
- else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Released"))
- holder.icon_state = "hudreleased"
- client.images += holder
- break
-
-/mob/living/silicon/pai/proc/medicalHUD()
- if(client)
- var/image/holder
- var/turf/T = get_turf(src.loc)
- for(var/mob/living/carbon/human/patient in view(T))
- if(src.see_invisible < patient.invisibility)
- continue
- var/foundVirus = 0
- for(var/datum/disease/D in patient.viruses)
- if(!D.hidden[SCANNER])
- foundVirus++
-
- for (var/ID in patient.virus2)
- if (ID in virusDB)
- foundVirus = 1
- break
-
- holder = patient.hud_list[HEALTH_HUD]
- if(patient.stat == 2)
- holder.icon_state = "hudhealth-100"
- client.images += holder
- else
- holder.icon_state = "hud[RoundHealth(patient.health)]"
- client.images += holder
-
- holder = patient.hud_list[STATUS_HUD]
- if(patient.stat == 2)
- holder.icon_state = "huddead"
- else if(patient.status_flags & XENO_HOST)
- holder.icon_state = "hudxeno"
- else if(foundVirus)
- holder.icon_state = "hudill"
- else if(patient.has_brain_worms())
- var/mob/living/simple_animal/borer/B = patient.has_brain_worms()
- if(B.controlling)
- holder.icon_state = "hudbrainworm"
- else
- holder.icon_state = "hudhealthy"
- else
- holder.icon_state = "hudhealthy"
- client.images += holder
-
-/mob/living/silicon/pai/proc/RoundHealth(health)
- switch(health)
- if(100 to INFINITY)
- return "health100"
- if(70 to 100)
- return "health80"
- if(50 to 70)
- return "health60"
- if(30 to 50)
- return "health40"
- if(20 to 30)
- return "health25"
- if(5 to 15)
- return "health10"
- if(1 to 5)
- return "health1"
- if(-99 to 0)
- return "health0"
- else
- return "health-100"
- return "0"
\ No newline at end of file
+#define SCANNER 1
+
+/mob/living/silicon/pai/regular_hud_updates()
+ if(client)
+ for(var/image/hud in client.images)
+ if(findtext(hud.icon_state, "hud", 1, 4))
+ client.images -= hud
+
+/mob/living/silicon/pai/proc/securityHUD()
+ if(client)
+ var/image/holder
+ var/turf/T = get_turf(src.loc)
+ for(var/mob/living/carbon/human/perp in view(T))
+ if(src.see_invisible < perp.invisibility)
+ continue
+ var/perpname = "wot"
+ holder = perp.hud_list[ID_HUD]
+ if(perp.wear_id)
+ var/obj/item/weapon/card/id/I = perp.wear_id.GetID()
+ if(I)
+ perpname = I.registered_name
+ holder.icon_state = "hud[ckey(perp:wear_id:GetJobName())]"
+ client.images += holder
+ else
+ perpname = perp.name
+ holder.icon_state = "hudunknown"
+ client.images += holder
+ else
+ holder.icon_state = "hudunknown"
+ client.images += holder
+
+ for(var/datum/data/record/E in data_core.general)
+ if(E.fields["name"] == perpname)
+ holder = perp.hud_list[WANTED_HUD]
+ for(var/datum/data/record/R in data_core.security)
+ if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
+ holder.icon_state = "hudwanted"
+ client.images += holder
+ break
+ else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
+ holder.icon_state = "hudprisoner"
+ client.images += holder
+ break
+ else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Parolled"))
+ holder.icon_state = "hudparolled"
+ client.images += holder
+ break
+ else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Released"))
+ holder.icon_state = "hudreleased"
+ client.images += holder
+ break
+
+/mob/living/silicon/pai/proc/medicalHUD()
+ if(client)
+ var/image/holder
+ var/turf/T = get_turf(src.loc)
+ for(var/mob/living/carbon/human/patient in view(T))
+ if(src.see_invisible < patient.invisibility)
+ continue
+ var/foundVirus = 0
+ for(var/datum/disease/D in patient.viruses)
+ if(!D.hidden[SCANNER])
+ foundVirus++
+
+ for (var/ID in patient.virus2)
+ if (ID in virusDB)
+ foundVirus = 1
+ break
+
+ holder = patient.hud_list[HEALTH_HUD]
+ if(patient.stat == 2)
+ holder.icon_state = "hudhealth-100"
+ client.images += holder
+ else
+ holder.icon_state = "hud[RoundHealth(patient.health)]"
+ client.images += holder
+
+ holder = patient.hud_list[STATUS_HUD]
+ if(patient.stat == 2)
+ holder.icon_state = "huddead"
+ else if(patient.status_flags & XENO_HOST)
+ holder.icon_state = "hudxeno"
+ else if(foundVirus)
+ holder.icon_state = "hudill"
+ else if(patient.has_brain_worms())
+ var/mob/living/simple_animal/borer/B = patient.has_brain_worms()
+ if(B.controlling)
+ holder.icon_state = "hudbrainworm"
+ else
+ holder.icon_state = "hudhealthy"
+ else
+ holder.icon_state = "hudhealthy"
+ client.images += holder
+
+/mob/living/silicon/pai/proc/RoundHealth(health)
+ switch(health)
+ if(100 to INFINITY)
+ return "health100"
+ if(70 to 100)
+ return "health80"
+ if(50 to 70)
+ return "health60"
+ if(30 to 50)
+ return "health40"
+ if(20 to 30)
+ return "health25"
+ if(5 to 15)
+ return "health10"
+ if(1 to 5)
+ return "health1"
+ if(-99 to 0)
+ return "health0"
+ else
+ return "health-100"
+ return "0"
+
+#undef SCANNER
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index fc0b6928cb9..5783995d512 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -7,7 +7,7 @@
//Radio
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "radio"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -18,7 +18,7 @@
//Module select
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "module1"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -28,7 +28,7 @@
src.adding += using
mymob:inv1 = using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "module2"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -38,7 +38,7 @@
src.adding += using
mymob:inv2 = using
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "module3"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -51,7 +51,7 @@
//End of module select
//Intent
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "act_intent"
using.dir = SOUTHWEST
using.icon = 'icons/mob/screen1_robot.dmi'
@@ -62,28 +62,28 @@
action_intent = using
//Cell
- mymob:cells = new /obj/screen()
+ mymob:cells = getFromPool(/obj/screen)
mymob:cells.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen)
mymob.healths.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen)
mymob.hands.icon = 'icons/mob/screen1_robot.dmi'
mymob.hands.icon_state = "nomod"
mymob.hands.name = "module"
mymob.hands.screen_loc = ui_borg_module
//Module Panel
- using = new /obj/screen()
+ using = getFromPool(/obj/screen)
using.name = "panel"
using.icon = 'icons/mob/screen1_robot.dmi'
using.icon_state = "panel"
@@ -92,77 +92,77 @@
src.adding += using
//Store
- mymob.throw_icon = new /obj/screen()
+ mymob.throw_icon = getFromPool(/obj/screen)
mymob.throw_icon.icon = 'icons/mob/screen1_robot.dmi'
mymob.throw_icon.icon_state = "store"
mymob.throw_icon.name = "store"
mymob.throw_icon.screen_loc = ui_borg_store
//Temp
- mymob.bodytemp = new /obj/screen()
+ mymob.bodytemp = getFromPool(/obj/screen)
mymob.bodytemp.icon_state = "temp0"
mymob.bodytemp.name = "body temperature"
mymob.bodytemp.screen_loc = ui_temp
- mymob.oxygen = new /obj/screen()
+ mymob.oxygen = getFromPool(/obj/screen)
mymob.oxygen.icon = 'icons/mob/screen1_robot.dmi'
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_oxygen
- mymob.fire = new /obj/screen()
+ mymob.fire = getFromPool(/obj/screen)
mymob.fire.icon = 'icons/mob/screen1_robot.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
- mymob.pullin = new /obj/screen()
+ mymob.pullin = getFromPool(/obj/screen)
mymob.pullin.icon = 'icons/mob/screen1_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 = getFromPool(/obj/screen)
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "1,1"
mymob.blind.layer = 0
- mymob.flash = new /obj/screen()
+ mymob.flash = getFromPool(/obj/screen)
mymob.flash.icon = 'icons/mob/screen1_robot.dmi'
mymob.flash.icon_state = "blank"
mymob.flash.name = "flash"
mymob.flash.screen_loc = "1,1 to 15,15"
mymob.flash.layer = 17
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = getFromPool(/obj/screen/zone_sel)
mymob.zone_sel.icon = 'icons/mob/screen1_robot.dmi'
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += 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.gun_setting_icon = getFromPool(/obj/screen/gun/mode)
if (mymob.client)
if (mymob.client.gun_mode) // If in aim mode, correct the sprite
mymob.gun_setting_icon.dir = 2
for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons
if (G.target)
- mymob.item_use_icon = new /obj/screen/gun/item(null)
+ mymob.item_use_icon = getFromPool(/obj/screen/gun/item)
if (mymob.client.target_can_click)
mymob.item_use_icon.dir = 1
src.adding += mymob.item_use_icon
- mymob.gun_move_icon = new /obj/screen/gun/move(null)
+ mymob.gun_move_icon = getFromPool(/obj/screen/gun/move)
if (mymob.client.target_can_move)
mymob.gun_move_icon.dir = 1
- mymob.gun_run_icon = new /obj/screen/gun/run(null)
+ mymob.gun_run_icon = getFromPool(/obj/screen/gun/run)
if (mymob.client.target_can_run)
mymob.gun_run_icon.dir = 1
src.adding += mymob.gun_run_icon
src.adding += mymob.gun_move_icon
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.rest, mymob.sleep, mymob.mach )
mymob.client.screen += src.adding + src.other
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index f3416255076..f94c7c1a6b6 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -48,6 +48,10 @@
/obj/screen/item_action
var/obj/item/owner
+/obj/screen/item_action/Destroy()
+ ..()
+ owner = null
+
/obj/screen/item_action/Click()
if(!usr || !owner)
return 1
@@ -83,11 +87,6 @@
/obj/screen/grab/attackby()
return
-/obj/screen/grab/Destroy()
- if(master)
- master = null
- ..()
-
/obj/screen/storage
name = "storage"
@@ -748,3 +747,8 @@
usr.update_inv_r_hand(0)
usr.delayNextAttack(6)
return 1
+
+client/proc/reset_screen()
+ for(var/obj/screen/objects in src.screen)
+ returnToPool(objects)
+ src.screen = null
\ No newline at end of file
diff --git a/code/_onclick/hud/spell_screen_objects.dm b/code/_onclick/hud/spell_screen_objects.dm
index a8fcc003a2b..faf8dc3c5c8 100644
--- a/code/_onclick/hud/spell_screen_objects.dm
+++ b/code/_onclick/hud/spell_screen_objects.dm
@@ -12,6 +12,18 @@
var/mob/spell_holder
+/obj/screen/movable/spell_master/Destroy()
+ ..()
+ for(var/obj/screen/spell/spells in spell_objects)
+ spells.spellmaster = null
+ spell_objects = null
+ if(spell_holder)
+ spell_holder.spell_masters -= src
+
+/obj/screen/movable/spell_master/resetVariables()
+ ..("spell_objects", args)
+ spell_objects = list()
+
/obj/screen/movable/spell_master/MouseDrop()
if(showing)
return
@@ -20,7 +32,7 @@
/obj/screen/movable/spell_master/Click()
if(!spell_objects.len)
- qdel(src)
+ returnToPool(src)
return
toggle_open()
@@ -64,9 +76,10 @@
if(spell.spell_flags & NO_BUTTON) //no button to add if we don't get one
return
- var/obj/screen/spell/newscreen = new
-
+ var/obj/screen/spell/newscreen = getFromPool(/obj/screen/spell)
+ newscreen.spellmaster = src
newscreen.spell = spell
+
if(!spell.override_base) //if it's not set, we do basic checks
if(spell.spell_flags & CONSTRUCT_CHECK)
newscreen.spell_base = "const" //construct spells
@@ -82,15 +95,13 @@
/obj/screen/movable/spell_master/proc/remove_spell(var/spell/spell)
for(var/obj/screen/spell/s_object in spell_objects)
if(s_object.spell == spell)
- spell_objects.Remove(s_object)
- qdel(s_object)
+ returnToPool(s_object)
break
if(spell_objects.len)
toggle_open(showing + 1)
else
- spell_holder.spell_masters.Remove(src)
- qdel(src)
+ returnToPool(src)
/obj/screen/movable/spell_master/proc/silence_spells(var/amount)
for(var/obj/screen/spell/spell in spell_objects)
@@ -125,12 +136,21 @@
var/spell/spell = null
var/handle_icon_updates = 0
+ var/obj/screen/movable/spell_master/spellmaster
var/icon/last_charged_icon
+/obj/screen/spell/Destroy()
+ ..()
+ if(spellmaster)
+ spellmaster.spell_objects -= src
+ if(spellmaster && !spellmaster.spell_objects.len)
+ returnToPool(master)
+ spellmaster = null
+
/obj/screen/spell/proc/update_charge(var/forced_update = 0)
if(!spell)
- qdel(src)
+ returnToPool(src)
return
if((last_charge == spell.charge_counter || !handle_icon_updates) && !forced_update)
@@ -168,7 +188,7 @@
/obj/screen/spell/Click()
if(!usr || !spell)
- qdel(src)
+ returnToPool(src)
return
spell.perform(usr)
diff --git a/code/game/gamemodes/blob/hud.dm b/code/game/gamemodes/blob/hud.dm
deleted file mode 100644
index d03006f3b82..00000000000
--- a/code/game/gamemodes/blob/hud.dm
+++ /dev/null
@@ -1,17 +0,0 @@
-/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
-
- blobpwrdisplay = new /obj/screen()
- blobpwrdisplay.name = "blob power"
- blobpwrdisplay.icon_state = "block"
- blobpwrdisplay.screen_loc = ui_health
- blobpwrdisplay.layer = 20
-
- blobhealthdisplay = new /obj/screen()
- blobhealthdisplay.name = "blob health"
- blobhealthdisplay.icon_state = "block"
- blobhealthdisplay.screen_loc = ui_internal
- blobhealthdisplay.layer = 20
-
- mymob.client.screen = null
-
- mymob.client.screen += list(blobpwrdisplay, blobhealthdisplay)
\ No newline at end of file
diff --git a/code/game/gamemodes/vampire/hud.dm b/code/game/gamemodes/vampire/hud.dm
deleted file mode 100644
index 44b34d00e0f..00000000000
--- a/code/game/gamemodes/vampire/hud.dm
+++ /dev/null
@@ -1,9 +0,0 @@
-/datum/hud/proc/vampire_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
-
- vampire_blood_display = new /obj/screen()
- vampire_blood_display.name = "Vampire Blood"
- vampire_blood_display.icon_state = "dark128"
- vampire_blood_display.screen_loc = "14:28,9:15"
- vampire_blood_display.layer = 20
-
- mymob.client.screen += list(vampire_blood_display)
\ No newline at end of file
diff --git a/code/game/hud.dm b/code/game/hud.dm
deleted file mode 100644
index d16ed96be46..00000000000
--- a/code/game/hud.dm
+++ /dev/null
@@ -1,300 +0,0 @@
-//Upper left action buttons, displayed when you pick up an item that has this enabled.
-#define ui_action_slot1 "1:6,14:26"
-#define ui_action_slot2 "2:8,14:26"
-#define ui_action_slot3 "3:10,14:26"
-#define ui_action_slot4 "4:12,14:26"
-#define ui_action_slot5 "5:14,14:26"
-
-//Lower left, persistant menu
-#define ui_inventory "1:6,1:5"
-
-//Lower center, persistant menu
-#define ui_sstore1 "3:10,1:5"
-#define ui_id "4:12,1:5"
-#define ui_belt "5:14,1:5"
-#define ui_back "6:14,1:5"
-#define ui_rhand "7:16,1:5"
-#define ui_lhand "8:16,1:5"
-#define ui_equip "7:16,2:5"
-#define ui_swaphand1 "7:16,2:5"
-#define ui_swaphand2 "8:16,2:5"
-#define ui_storage1 "9:18,1:5"
-#define ui_storage2 "10:20,1:5"
-
-#define ui_alien_head "4:12,1:5" //aliens
-#define ui_alien_oclothing "5:14,1:5" //aliens
-
-#define ui_inv1 "6:16,1:5" //borgs
-#define ui_inv2 "7:16,1:5" //borgs
-#define ui_inv3 "8:16,1:5" //borgs
-#define ui_borg_store "9:16,1:5" //borgs
-
-#define ui_monkey_mask "5:14,1:5" //monkey
-#define ui_monkey_back "6:14,1:5" //monkey
-
-//Lower right, persistant menu
-#define ui_dropbutton "11:22,1:5"
-#define ui_drop_throw "14:28,2:7"
-#define ui_pull_resist "13:26,2:7"
-#define ui_acti "13:26,1:5"
-#define ui_movi "12:24,1:5"
-#define ui_zonesel "14:28,1:5"
-#define ui_acti_alt "14:28,1:5" //alternative intent switcher for when the interface is hidden (F12)
-
-#define ui_borg_pull "12:24,2:7"
-#define ui_borg_module "13:26,2:7"
-#define ui_borg_panel "14:28,2:7"
-
-//Gun buttons
-#define ui_gun1 "13:26,3:7"
-#define ui_gun2 "14:28, 4:7"
-#define ui_gun3 "13:26,4:7"
-#define ui_gun_select "14:28,3:7"
-
-//Upper-middle right (damage indicators)
-#define ui_toxin "14:28,13:27"
-#define ui_fire "14:28,12:25"
-#define ui_oxygen "14:28,11:23"
-#define ui_pressure "14:28,10:21"
-
-#define ui_alien_toxin "14:28,13:25"
-#define ui_alien_fire "14:28,12:25"
-#define ui_alien_oxygen "14:28,11:25"
-
-//Middle right (status indicators)
-#define ui_nutrition "14:28,5:11"
-#define ui_temp "14:28,6:13"
-#define ui_health "14:28,7:15"
-#define ui_internal "14:28,8:17"
- //borgs
-#define ui_borg_health "14:28,6:13" //borgs have the health display where humans have the pressure damage indicator.
-#define ui_alien_health "14:28,6:13" //aliens have the health display where humans have the pressure damage indicator.
-
-//Pop-up inventory
-#define ui_shoes "2:8,1:5"
-
-#define ui_iclothing "1:6,2:7"
-#define ui_oclothing "2:8,2:7"
-#define ui_gloves "3:10,2:7"
-
-#define ui_glasses "1:6,3:9"
-#define ui_mask "2:8,3:9"
-#define ui_ears "3:10,3:9"
-
-#define ui_head "2:8,4:11"
-
-//Intent small buttons
-#define ui_help_small "12:8,1:1"
-#define ui_disarm_small "12:15,1:18"
-#define ui_grab_small "12:32,1:18"
-#define ui_harm_small "12:39,1:1"
-
-//#define ui_swapbutton "6:-16,1:5" //Unused
-
-//#define ui_headset "SOUTH,8"
-#define ui_hand "6:14,1:5"
-#define ui_hstore1 "5,5"
-//#define ui_resist "EAST+1,SOUTH-1"
-#define ui_sleep "EAST+1, NORTH-13"
-#define ui_rest "EAST+1, NORTH-14"
-
-
-#define ui_iarrowleft "SOUTH-1,11"
-#define ui_iarrowright "SOUTH-1,13"
-
-var/datum/global_hud/global_hud = new()
-
-/datum/global_hud
- var/obj/screen/druggy
- var/obj/screen/blurry
- var/list/vimpaired
- var/list/darkMask
-
- New()
- //420erryday psychedellic colours screen overlay for when you are high
- druggy = new /obj/screen()
- druggy.screen_loc = "WEST,SOUTH to EAST,NORTH"
- druggy.icon_state = "druggy"
- druggy.layer = 17
- druggy.mouse_opacity = 0
-
- //that white blurry effect you get when you eyes are damaged
- blurry = new /obj/screen()
- blurry.screen_loc = "WEST,SOUTH to EAST,NORTH"
- blurry.icon_state = "blurry"
- blurry.layer = 17
- blurry.mouse_opacity = 0
-
- var/obj/screen/O
- var/i
- //that nasty looking dither you get when you're short-sighted
- vimpaired = newlist(/obj/screen,/obj/screen,/obj/screen,/obj/screen)
- O = vimpaired[1]
- O.screen_loc = "1,1 to 5,15"
- O = vimpaired[2]
- O.screen_loc = "5,1 to 10,5"
- O = vimpaired[3]
- O.screen_loc = "6,11 to 10,15"
- O = vimpaired[4]
- O.screen_loc = "11,1 to 15,15"
-
- //welding mask overlay black/dither
- darkMask = newlist(/obj/screen,/obj/screen,/obj/screen,/obj/screen,/obj/screen,/obj/screen,/obj/screen,/obj/screen)
- O = darkMask[1]
- O.screen_loc = "3,3 to 5,13"
- O = darkMask[2]
- O.screen_loc = "5,3 to 10,5"
- O = darkMask[3]
- O.screen_loc = "6,11 to 10,13"
- O = darkMask[4]
- O.screen_loc = "11,3 to 13,13"
- O = darkMask[5]
- O.screen_loc = "1,1 to 15,2"
- O = darkMask[6]
- O.screen_loc = "1,3 to 2,15"
- O = darkMask[7]
- O.screen_loc = "14,3 to 15,15"
- O = darkMask[8]
- O.screen_loc = "3,14 to 13,15"
-
- for(i=1,i<=4,i++)
- O = vimpaired[i]
- O.icon_state = "dither50"
- O.layer = 17
- O.mouse_opacity = 0
-
- O = darkMask[i]
- O.icon_state = "dither50"
- O.layer = 17
- O.mouse_opacity = 0
-
- for(i=5,i<=8,i++)
- O = darkMask[i]
- O.icon_state = "black"
- O.layer = 17
- O.mouse_opacity = 0
-
-
-/datum/hud/var/obj/screen/grab_intent
-/datum/hud/var/obj/screen/hurt_intent
-/datum/hud/var/obj/screen/disarm_intent
-/datum/hud/var/obj/screen/help_intent
-
-/datum/hud
- var/mob/mymob
-
- var/hud_shown = 1 //Used for the HUD toggle (F12)
- var/inventory_shown = 1 //the inventory
- var/show_intent_icons = 0
- var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
-
- var/obj/screen/blobpwrdisplay
- var/obj/screen/blobhealthdisplay
- var/obj/screen/vampire_blood_display
- var/obj/screen/r_hand_hud_object
- var/obj/screen/l_hand_hud_object
- var/obj/screen/action_intent
- var/obj/screen/move_intent
-
- var/list/adding
- var/list/other
- var/list/obj/screen/hotkeybuttons
-
- var/list/obj/screen/item_action/item_action_list //Used for the item action ui buttons.
-
-
-datum/hud/New(mob/owner)
- mymob = owner
- instantiate()
- ..()
- return
-
-
-/datum/hud/proc/hidden_inventory_update()
- if(!mymob) return
- if(ishuman(mymob))
- var/mob/living/carbon/human/H = mymob
- 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.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
- if(H.wear_mask) H.wear_mask.screen_loc = ui_mask
- if(H.head) H.head.screen_loc = ui_head
- 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.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
- if(H.wear_mask) H.wear_mask.screen_loc = null
- if(H.head) H.head.screen_loc = null
-
-/datum/hud/proc/persistant_inventory_update()
- if(!mymob) return
- if(ishuman(mymob))
- var/mob/living/carbon/human/H = mymob
- if(hud_shown)
- if(H.s_store) H.s_store.screen_loc = ui_sstore1
- if(H.wear_id) H.wear_id.screen_loc = ui_id
- if(H.belt) H.belt.screen_loc = ui_belt
- if(H.back) H.back.screen_loc = ui_back
- if(H.l_store) H.l_store.screen_loc = ui_storage1
- if(H.r_store) H.r_store.screen_loc = ui_storage2
- else
- if(H.s_store) H.s_store.screen_loc = null
- if(H.wear_id) H.wear_id.screen_loc = null
- if(H.belt) H.belt.screen_loc = null
- if(H.back) H.back.screen_loc = null
- if(H.l_store) H.l_store.screen_loc = null
- if(H.r_store) H.r_store.screen_loc = null
-
-
-/datum/hud/proc/instantiate()
- if(!ismob(mymob)) return 0
- if(!mymob.client) return 0
- var/ui_style = ui_style2icon(mymob.client.prefs.UI_style)
-
- if(ishuman(mymob))
- human_hud(ui_style) // Pass the player the UI style chosen in preferences
-
- else if(ismonkey(mymob))
- monkey_hud(ui_style)
-
- else if(isbrain(mymob))
- brain_hud(ui_style)
-
- else if(islarva(mymob))
- larva_hud()
-
- else if(isalien(mymob))
- alien_hud()
-
- else if(isAI(mymob))
- ai_hud()
-
- else if(isMoMMI(mymob))
- mommi_hud()
-
- else if(isrobot(mymob))
- robot_hud()
-
-// else if(ishivebot(mymob))
-// hivebot_hud()
-
-// else if(ishivemainframe(mymob))
-// hive_mainframe_hud()
-
- else if(isobserver(mymob))
- ghost_hud()
-
- else if(isovermind(mymob))
- blob_hud()
-
- else if(mymob.mind)
- if(mymob.mind.vampire)
- vampire_hud()
- return
diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm
index 4c4d92428b6..f36c242f47d 100644
--- a/code/game/machinery/OpTable.dm
+++ b/code/game/machinery/OpTable.dm
@@ -167,7 +167,7 @@
if (istype(W, /obj/item/weapon/grab))
if(iscarbon(W:affecting))
take_victim(W:affecting,usr)
- del(W)
+ returnToPool(W)
return
if(isrobot(user)) return
user.drop_item(W, src.loc)
diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm
index 35954c0c8b6..352fc75dcb8 100644
--- a/code/game/machinery/overview.dm
+++ b/code/game/machinery/overview.dm
@@ -164,7 +164,7 @@
for(var/i=0; i[G.assailant] smashes [G.affecting] through the foamed metal wall."
- del(I)
- del(src)
+ returnToPool(I)
+ qdel(src)
return
if(prob(I.force*20 - metal*25))
@@ -934,7 +934,7 @@ steam.start() -- spawns the effect
for(var/mob/O in oviewers(user))
if ((O.client && !( O.blinded )))
O << "[user] smashes through the foamed metal."
- del(src)
+ qdel(src)
else
user << "You hit the metal foam to no effect."
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index d6fba1b32f1..17d614869ea 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -88,7 +88,7 @@
return
var/mob/M = G:affecting
if(put_mob(M))
- del(G)
+ returnToPool(G)
src.updateUsrDialog()
return
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index db779251c5b..b4b4779291d 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -456,13 +456,13 @@
else
verbs -= /obj/item/weapon/storage/verb/toggle_gathering_mode
- src.boxes = new /obj/screen/storage( )
+ src.boxes = getFromPool(/obj/screen/storage)
src.boxes.name = "storage"
src.boxes.master = src
src.boxes.icon_state = "block"
src.boxes.screen_loc = "7,7 to 10,8"
src.boxes.layer = 19
- src.closer = new /obj/screen/close( )
+ src.closer = getFromPool(/obj/screen/close)
src.closer.master = src
src.closer.icon_state = "x"
src.closer.layer = 20
@@ -525,8 +525,10 @@
/obj/item/weapon/storage/Destroy()
close_all()
- qdel(boxes)
- qdel(closer)
+ returnToPool(boxes)
+ returnToPool(closer)
+ boxes = null
+ closer = null
..()
/obj/item/weapon/storage/preattack(atom/target, mob/user, adjacent, params)
diff --git a/code/game/objects/storage/coat.dm b/code/game/objects/storage/coat.dm
index 1986050b55e..81075af11b5 100644
--- a/code/game/objects/storage/coat.dm
+++ b/code/game/objects/storage/coat.dm
@@ -200,13 +200,13 @@
/obj/item/clothing/suit/storage/New()
. = ..()
- boxes = new /obj/screen/storage( )
+ boxes = getFromPool(/obj/screen/storage)
boxes.name = "storage"
boxes.master = src
boxes.icon_state = "block"
boxes.screen_loc = "7,7 to 10,8"
boxes.layer = 19
- closer = new /obj/screen/close( )
+ closer = getFromPool(/obj/screen/close)
closer.master = src
closer.icon_state = "x"
closer.layer = 20
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index 2cb940432b6..fca5a593721 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -45,8 +45,8 @@
src.meattype = 1
for(var/mob/O in viewers(src, null))
O.show_message(text("[user] has forced [G.affecting] onto the spike, killing them instantly!"))
- del(G.affecting)
- del(G)
+ qdel(G.affecting)
+ returnToPool(G)
else
user << "The spike already has something on it, finish collecting its meat first!"
@@ -59,8 +59,8 @@
src.meattype = 2
for(var/mob/O in viewers(src, null))
O.show_message(text("[user] has forced [G.affecting] onto the spike, killing them instantly!"))
- del(G.affecting)
- del(G)
+ qdel(G.affecting)
+ returnToPool(G)
else
user << "The spike already has something on it, finish collecting its meat first!"
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index c0de81beded..a56a69d83f0 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -356,7 +356,7 @@
G.affecting.loc = src.loc
G.affecting.Weaken(5)
visible_message("[G.assailant] puts [G.affecting] on \the [src].")
- del(W)
+ returnToPool(W)
return
if (istype(W, /obj/item/weapon/wrench) && can_disassemble())
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 96b5caf03da..af536b77425 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -225,7 +225,7 @@
if(istype(G.affecting, /mob/living))
var/mob/living/M = G.affecting
var/gstate = G.state
- del(W) //Gotta delete it here because if window breaks, it won't get deleted
+ returnToPool(W) //Gotta delete it here because if window breaks, it won't get deleted
switch(gstate)
if(GRAB_PASSIVE)
M.apply_damage(5) //Meh, bit of pain, window is fine, just a shove
diff --git a/code/modules/mob/dead/observer/hud.dm b/code/modules/mob/dead/observer/hud.dm
deleted file mode 100644
index 4290ca5d3a3..00000000000
--- a/code/modules/mob/dead/observer/hud.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-
-/datum/hud/proc/ghost_hud()
- return
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 0f98103e6a6..b4abdeebc1e 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -245,7 +245,7 @@
if(I_GRAB)
if(M == src)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src)
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M, src)
M.put_in_active_hand(G)
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index c573fa47cd3..fd6881b08d9 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -226,7 +226,7 @@
if(I_GRAB)
if(M == src)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
grabbed_by += G
diff --git a/code/modules/mob/living/carbon/brain/hud.dm b/code/modules/mob/living/carbon/brain/hud.dm
deleted file mode 100644
index b9f455b53ec..00000000000
--- a/code/modules/mob/living/carbon/brain/hud.dm
+++ /dev/null
@@ -1,10 +0,0 @@
-/datum/hud/proc/brain_hud(var/ui_style='icons/mob/screen1_old.dmi')
-
- //ui_style='icons/mob/screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
-
- mymob.blind = new /obj/screen()
- mymob.blind.icon = 'icons/mob/screen1_full.dmi'
- mymob.blind.icon_state = "blackimageoverlay"
- mymob.blind.name = " "
- mymob.blind.screen_loc = "1,1"
- mymob.blind.layer = 0
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 545f3f7a514..6ea2ec294cf 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -402,7 +402,7 @@
M.LAssailant = null
else
M.LAssailant = usr
- del(G)
+ returnToPool(G)
if(!item) return //Grab processing has a chance of returning null
//item.layer = initial(item.layer)
diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm
deleted file mode 100644
index d7b93ff3873..00000000000
--- a/code/modules/mob/living/carbon/human/hud.dm
+++ /dev/null
@@ -1,567 +0,0 @@
-/datum/hud/proc/human_hud(var/ui_style='icons/mob/screen1_old.dmi')
-
- src.adding = list()
- src.other = list()
- src.hotkeybuttons = list() //These can be disabled for hotkey usersx
-
- var/obj/screen/using
- var/obj/screen/inventory/inv_box
-
- using = new /obj/screen()
- using.name = "act_intent"
- using.dir = SOUTHWEST
- using.icon = ui_style
- using.icon_state = "intent_"+mymob.a_intent
- using.screen_loc = ui_acti
- using.layer = 20
- src.adding += using
- action_intent = using
-
-//intent small hud objects
- var/icon/ico
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
- using = new /obj/screen( src )
- using.name = "help"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- help_intent = using
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
- using = new /obj/screen( src )
- using.name = "disarm"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- disarm_intent = using
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
- using = new /obj/screen( src )
- using.name = "grab"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- grab_intent = using
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
- using = new /obj/screen( src )
- using.name = "harm"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- hurt_intent = using
-
-//end intent small hud objects
-
- using = new /obj/screen()
- using.name = "mov_intent"
- using.dir = SOUTHWEST
- using.icon = ui_style
- using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
- using.screen_loc = ui_movi
- using.layer = 20
- src.adding += using
- move_intent = using
-
- using = new /obj/screen()
- using.name = "drop"
- using.icon = ui_style
- using.icon_state = "act_drop"
- using.screen_loc = ui_drop_throw
- using.layer = 19
- src.hotkeybuttons += using
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "i_clothing"
- inv_box.dir = SOUTH
- inv_box.icon = ui_style
- inv_box.slot_id = slot_w_uniform
- inv_box.icon_state = "center"
- inv_box.screen_loc = ui_iclothing
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "o_clothing"
- inv_box.dir = SOUTH
- inv_box.icon = ui_style
- inv_box.slot_id = slot_wear_suit
- inv_box.icon_state = "equip"
- inv_box.screen_loc = ui_oclothing
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "r_hand"
- inv_box.dir = WEST
- inv_box.icon = ui_style
- inv_box.icon_state = "hand_inactive"
- if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use
- inv_box.icon_state = "hand_active"
- inv_box.screen_loc = ui_rhand
- inv_box.slot_id = slot_r_hand
- inv_box.layer = 19
- src.r_hand_hud_object = inv_box
- src.adding += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "l_hand"
- inv_box.dir = EAST
- inv_box.icon = ui_style
- inv_box.icon_state = "hand_inactive"
- if(mymob && mymob.hand) //This being 1 means the left hand is in use
- inv_box.icon_state = "hand_active"
- inv_box.screen_loc = ui_lhand
- inv_box.slot_id = slot_l_hand
- inv_box.layer = 19
- src.l_hand_hud_object = inv_box
- src.adding += inv_box
-
- using = new /obj/screen/inventory()
- using.name = "hand"
- using.dir = SOUTH
- using.icon = ui_style
- using.icon_state = "hand1"
- using.screen_loc = ui_swaphand1
- using.layer = 19
- src.adding += using
-
- using = new /obj/screen/inventory()
- using.name = "hand"
- using.dir = SOUTH
- using.icon = ui_style
- using.icon_state = "hand2"
- using.screen_loc = ui_swaphand2
- using.layer = 19
- src.adding += using
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "id"
- inv_box.dir = NORTH
- inv_box.icon = ui_style
- inv_box.icon_state = "id"
- inv_box.screen_loc = ui_id
- inv_box.slot_id = slot_wear_id
- inv_box.layer = 19
- src.adding += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "mask"
- inv_box.dir = NORTH
- inv_box.icon = ui_style
- inv_box.icon_state = "equip"
- inv_box.screen_loc = ui_mask
- inv_box.slot_id = slot_wear_mask
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "back"
- inv_box.dir = NORTH
- inv_box.icon = ui_style
- inv_box.icon_state = "back"
- inv_box.screen_loc = ui_back
- inv_box.slot_id = slot_back
- inv_box.layer = 19
- src.adding += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "storage1"
- inv_box.icon = ui_style
- inv_box.icon_state = "pocket"
- inv_box.screen_loc = ui_storage1
- inv_box.slot_id = slot_l_store
- inv_box.layer = 19
- src.adding += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "storage2"
- inv_box.icon = ui_style
- inv_box.icon_state = "pocket"
- inv_box.screen_loc = ui_storage2
- inv_box.slot_id = slot_r_store
- inv_box.layer = 19
- src.adding += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "suit storage"
- inv_box.icon = ui_style
- inv_box.dir = 8 //The sprite at dir=8 has the background whereas the others don't.
- inv_box.icon_state = "belt"
- inv_box.screen_loc = ui_sstore1
- inv_box.slot_id = slot_s_store
- inv_box.layer = 19
- src.adding += inv_box
-
- using = new /obj/screen()
- using.name = "resist"
- using.icon = ui_style
- using.icon_state = "act_resist"
- using.screen_loc = ui_pull_resist
- using.layer = 19
- src.hotkeybuttons += using
-
- using = new /obj/screen()
- using.name = "other"
- using.icon = ui_style
- using.icon_state = "other"
- using.screen_loc = ui_inventory
- using.layer = 20
- src.adding += using
-
- using = new /obj/screen()
- using.name = "equip"
- using.icon = ui_style
- using.icon_state = "act_equip"
- using.screen_loc = ui_equip
- using.layer = 20
- src.adding += using
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "gloves"
- inv_box.icon = ui_style
- inv_box.icon_state = "gloves"
- inv_box.screen_loc = ui_gloves
- inv_box.slot_id = slot_gloves
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "eyes"
- inv_box.icon = ui_style
- inv_box.icon_state = "glasses"
- inv_box.screen_loc = ui_glasses
- inv_box.slot_id = slot_glasses
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "ears"
- inv_box.icon = ui_style
- inv_box.icon_state = "ears"
- inv_box.screen_loc = ui_ears
- inv_box.slot_id = slot_ears
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "head"
- inv_box.icon = ui_style
- inv_box.icon_state = "hair"
- inv_box.screen_loc = ui_head
- inv_box.slot_id = slot_head
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "shoes"
- inv_box.icon = ui_style
- inv_box.icon_state = "shoes"
- inv_box.screen_loc = ui_shoes
- inv_box.slot_id = slot_shoes
- inv_box.layer = 19
- src.other += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "belt"
- inv_box.icon = ui_style
- inv_box.icon_state = "belt"
- inv_box.screen_loc = ui_belt
- inv_box.slot_id = slot_belt
- inv_box.layer = 19
- src.adding += inv_box
-
- mymob.throw_icon = new /obj/screen()
- mymob.throw_icon.icon = ui_style
- mymob.throw_icon.icon_state = "act_throw_off"
- mymob.throw_icon.name = "throw"
- mymob.throw_icon.screen_loc = ui_drop_throw
- src.hotkeybuttons += mymob.throw_icon
-
- mymob.oxygen = new /obj/screen()
- mymob.oxygen.icon = ui_style
- mymob.oxygen.icon_state = "oxy0"
- mymob.oxygen.name = "oxygen"
- mymob.oxygen.screen_loc = ui_oxygen
-
- mymob.pressure = new /obj/screen()
- mymob.pressure.icon = ui_style
- mymob.pressure.icon_state = "pressure0"
- mymob.pressure.name = "pressure"
- mymob.pressure.screen_loc = ui_pressure
-
- mymob.toxin = new /obj/screen()
- mymob.toxin.icon = ui_style
- mymob.toxin.icon_state = "tox0"
- mymob.toxin.name = "toxin"
- mymob.toxin.screen_loc = ui_toxin
-
- mymob.internals = new /obj/screen()
- mymob.internals.icon = ui_style
- mymob.internals.icon_state = "internal0"
- mymob.internals.name = "internal"
- mymob.internals.screen_loc = ui_internal
-
- mymob.fire = new /obj/screen()
- mymob.fire.icon = ui_style
- mymob.fire.icon_state = "fire0"
- mymob.fire.name = "fire"
- mymob.fire.screen_loc = ui_fire
-
- mymob.bodytemp = new /obj/screen()
- mymob.bodytemp.icon = ui_style
- mymob.bodytemp.icon_state = "temp1"
- mymob.bodytemp.name = "body temperature"
- mymob.bodytemp.screen_loc = ui_temp
-
- mymob.healths = new /obj/screen()
- mymob.healths.icon = ui_style
- mymob.healths.icon_state = "health0"
- mymob.healths.name = "health"
- mymob.healths.screen_loc = ui_health
-
- mymob.nutrition_icon = new /obj/screen()
- mymob.nutrition_icon.icon = ui_style
- mymob.nutrition_icon.icon_state = "nutrition0"
- mymob.nutrition_icon.name = "nutrition"
- mymob.nutrition_icon.screen_loc = ui_nutrition
-
- mymob.pullin = new /obj/screen()
- mymob.pullin.icon = ui_style
- mymob.pullin.icon_state = "pull0"
- mymob.pullin.name = "pull"
- mymob.pullin.screen_loc = ui_pull_resist
- src.hotkeybuttons += mymob.pullin
-
- mymob.blind = new /obj/screen()
- mymob.blind.icon = 'icons/mob/screen1_full.dmi'
- mymob.blind.icon_state = "blackimageoverlay"
- mymob.blind.name = " "
- mymob.blind.screen_loc = "1,1"
- mymob.blind.mouse_opacity = 0
- mymob.blind.layer = 0
-
- mymob.damageoverlay = new /obj/screen()
- mymob.damageoverlay.icon = 'icons/mob/screen1_full.dmi'
- mymob.damageoverlay.icon_state = "oxydamageoverlay0"
- mymob.damageoverlay.name = "dmg"
- mymob.damageoverlay.screen_loc = "1,1"
- mymob.damageoverlay.mouse_opacity = 0
- mymob.damageoverlay.layer = 18.1 //The black screen overlay sets layer to 18 to display it, this one has to be just on top.
-
- mymob.flash = new /obj/screen()
- mymob.flash.icon = ui_style
- mymob.flash.icon_state = "blank"
- mymob.flash.name = "flash"
- mymob.flash.screen_loc = "1,1 to 15,15"
- mymob.flash.layer = 17
-
- mymob.pain = new /obj/screen( null )
-
-/*
- mymob.hands = new /obj/screen( null )
- mymob.hands.icon = ui_style
- mymob.hands.icon_state = "hand"
- mymob.hands.name = "hand"
- mymob.hands.screen_loc = ui_hand
- mymob.hands.dir = NORTH
-
- mymob.sleep = new /obj/screen( null )
- mymob.sleep.icon = ui_style
- mymob.sleep.icon_state = "sleep0"
- mymob.sleep.name = "sleep"
- mymob.sleep.screen_loc = ui_sleep
-
- mymob.rest = new /obj/screen( null )
- mymob.rest.icon = ui_style
- mymob.rest.icon_state = "rest0"
- mymob.rest.name = "rest"
- mymob.rest.screen_loc = ui_rest
-*/
-
- /*/Monkey blockers
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_ears
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_belt
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_shoes
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_storage2
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_glasses
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_gloves
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_storage1
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_headset
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_oclothing
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_iclothing
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_id
- using.layer = 20
- src.mon_blo += using
-
- using = new /obj/screen( src )
- using.name = "blocked"
- using.icon_state = "blocked"
- using.screen_loc = ui_head
- using.layer = 20
- src.mon_blo += using
-//Monkey blockers
-*/
-
- mymob.zone_sel = new /obj/screen/zone_sel( null )
- mymob.zone_sel.icon = ui_style
- mymob.zone_sel.overlays.len = 0
- mymob.zone_sel.overlays += 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)
- if (mymob.client)
- if (mymob.client.gun_mode) // If in aim mode, correct the sprite
- mymob.gun_setting_icon.dir = 2
- for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons
- if (G.target)
- mymob.item_use_icon = new /obj/screen/gun/item(null)
- if (mymob.client.target_can_click)
- mymob.item_use_icon.dir = 1
- src.adding += mymob.item_use_icon
- mymob.gun_move_icon = new /obj/screen/gun/move(null)
- if (mymob.client.target_can_move)
- mymob.gun_move_icon.dir = 1
- mymob.gun_run_icon = new /obj/screen/gun/run(null)
- if (mymob.client.target_can_run)
- mymob.gun_run_icon.dir = 1
- src.adding += mymob.gun_run_icon
- src.adding += mymob.gun_move_icon
-
-
- mymob.client.screen = null
-
- mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.damageoverlay, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach )
- mymob.client.screen += src.adding + src.hotkeybuttons
- inventory_shown = 0;
-
- return
-
-
-/mob/living/carbon/human/verb/toggle_hotkey_verbs()
- set category = "OOC"
- set name = "Toggle hotkey buttons"
- set desc = "This disables or enables the user interface buttons which can be used with hotkeys."
-
- if(hud_used.hotkey_ui_hidden)
- client.screen += src.hud_used.hotkeybuttons
- src.hud_used.hotkey_ui_hidden = 0
- else
- client.screen -= src.hud_used.hotkeybuttons
- src.hud_used.hotkey_ui_hidden = 1
-
-
-/mob/living/carbon/human/update_action_buttons()
- var/num = 1
- if(!src.hud_used) return
- if(!src.client) return
-
- if(!hud_used.hud_shown) //Hud toggled to minimal
- return
-
- src.client.screen -= src.hud_used.item_action_list
- hud_used.item_action_list = list()
-
- for(var/obj/item/I in src)
- if(I.icon_action_button)
- var/obj/screen/item_action/A = new(src.hud_used)
- A.icon = 'icons/mob/screen1_action.dmi'
- A.icon_state = I.icon_action_button
- if(I.action_button_name)
- A.name = I.action_button_name
- else
- A.name = "Use [I.name]"
- A.owner = I
- hud_used.item_action_list += A
- switch(num)
- if(1)
- A.screen_loc = ui_action_slot1
- if(2)
- A.screen_loc = ui_action_slot2
- if(3)
- A.screen_loc = ui_action_slot3
- if(4)
- A.screen_loc = ui_action_slot4
- if(5)
- A.screen_loc = ui_action_slot5
- break //5 slots available, so no more can be added.
- num++
-
- src.client.screen += src.hud_used.item_action_list
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm
index 88ddacd446b..5804711e42f 100644
--- a/code/modules/mob/living/carbon/human/human_attackalien.dm
+++ b/code/modules/mob/living/carbon/human/human_attackalien.dm
@@ -12,7 +12,7 @@
return
if (w_uniform)
w_uniform.add_fingerprint(M)
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src)
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index a3521d65bd5..e51f3793975 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -101,7 +101,7 @@
if(w_uniform)
w_uniform.add_fingerprint(M)
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src)
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
if(buckled)
M << "You cannot grab [src], \he is buckled in!"
if(!G) //the grab will delete itself in New if affecting is anchored
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index af44ace81fb..b68ad2e3bda 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1588,7 +1588,7 @@ var/global/list/organ_damage_overlays = list(
if(eye_blurry)
if(!istype(global_hud.blurry,/obj/screen))
- global_hud.blurry = new /obj/screen()
+ global_hud.blurry = getFromPool(/obj/screen)
global_hud.blurry.screen_loc = "WEST,SOUTH to EAST,NORTH"
global_hud.blurry.icon_state = "blurry"
global_hud.blurry.layer = 17
@@ -1596,7 +1596,7 @@ var/global/list/organ_damage_overlays = list(
client.screen += global_hud.blurry
if(druggy)
if(!istype(global_hud.druggy,/obj/screen))
- global_hud.druggy = new /obj/screen()
+ global_hud.druggy = getFromPool(/obj/screen)
global_hud.druggy.screen_loc = "WEST,SOUTH to EAST,NORTH"
global_hud.druggy.icon_state = "druggy"
global_hud.druggy.layer = 17
diff --git a/code/modules/mob/living/carbon/metroid/hud.dm b/code/modules/mob/living/carbon/metroid/hud.dm
deleted file mode 100644
index 77a78f7c579..00000000000
--- a/code/modules/mob/living/carbon/metroid/hud.dm
+++ /dev/null
@@ -1,4 +0,0 @@
-
-/mob/living/carbon/slime/regular_hud_updates()
- return
-
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index 4716cc88b75..600138c2464 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -522,3 +522,6 @@
else
if(!AIproc)
spawn() AIprocess()
+
+/mob/living/carbon/slime/regular_hud_updates()
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index b45957f434c..c86605ea288 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -458,7 +458,7 @@
if (I_GRAB)
if (M == src)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
@@ -549,7 +549,7 @@
if (I_GRAB)
if (M == src)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
@@ -1226,4 +1226,4 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
return
else
..()
-*/
\ No newline at end of file
+*/
diff --git a/code/modules/mob/living/carbon/monkey/hud.dm b/code/modules/mob/living/carbon/monkey/hud.dm
deleted file mode 100644
index 28059e7bed9..00000000000
--- a/code/modules/mob/living/carbon/monkey/hud.dm
+++ /dev/null
@@ -1,249 +0,0 @@
-/datum/hud/proc/monkey_hud(var/ui_style='icons/mob/screen1_old.dmi')
-
- src.adding = list()
- src.other = list()
-
- var/obj/screen/using
- var/obj/screen/inventory/inv_box
-
- using = new /obj/screen()
- using.name = "act_intent"
- using.dir = SOUTHWEST
- using.icon = ui_style
- using.icon_state = (mymob.a_intent == "hurt" ? "harm" : mymob.a_intent)
- using.screen_loc = ui_acti
- using.layer = 20
- src.adding += using
- action_intent = using
-
-//intent small hud objects
- var/icon/ico
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
- using = new /obj/screen( src )
- using.name = "help"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- help_intent = using
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
- using = new /obj/screen( src )
- using.name = "disarm"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- disarm_intent = using
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
- using = new /obj/screen( src )
- using.name = "grab"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- grab_intent = using
-
- ico = new(ui_style, "black")
- ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
- ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
- using = new /obj/screen( src )
- using.name = "harm"
- using.icon = ico
- using.screen_loc = ui_acti
- using.layer = 21
- src.adding += using
- hurt_intent = using
-
-//end intent small hud objects
-
- using = new /obj/screen()
- using.name = "mov_intent"
- using.dir = SOUTHWEST
- using.icon = ui_style
- using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
- using.screen_loc = ui_movi
- using.layer = 20
- src.adding += using
- move_intent = using
-
- using = new /obj/screen()
- using.name = "drop"
- using.icon = ui_style
- using.icon_state = "act_drop"
- using.screen_loc = ui_drop_throw
- using.layer = 19
- src.adding += using
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "r_hand"
- inv_box.dir = WEST
- inv_box.icon = ui_style
- inv_box.icon_state = "hand_inactive"
- if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use
- inv_box.icon_state = "hand_active"
- inv_box.screen_loc = ui_rhand
- inv_box.slot_id = slot_r_hand
- inv_box.layer = 19
- src.r_hand_hud_object = inv_box
- src.adding += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "l_hand"
- inv_box.dir = EAST
- inv_box.icon = ui_style
- inv_box.icon_state = "hand_inactive"
- if(mymob && mymob.hand) //This being 1 means the left hand is in use
- inv_box.icon_state = "hand_active"
- inv_box.screen_loc = ui_lhand
- inv_box.slot_id = slot_l_hand
- inv_box.layer = 19
- src.l_hand_hud_object = inv_box
- src.adding += inv_box
-
- using = new /obj/screen()
- using.name = "hand"
- using.dir = SOUTH
- using.icon = ui_style
- using.icon_state = "hand1"
- using.screen_loc = ui_swaphand1
- using.layer = 19
- src.adding += using
-
- using = new /obj/screen()
- using.name = "hand"
- using.dir = SOUTH
- using.icon = ui_style
- using.icon_state = "hand2"
- using.screen_loc = ui_swaphand2
- using.layer = 19
- src.adding += using
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "mask"
- inv_box.dir = NORTH
- inv_box.icon = ui_style
- inv_box.icon_state = "equip"
- inv_box.screen_loc = ui_monkey_mask
- inv_box.slot_id = slot_wear_mask
- inv_box.layer = 19
- src.adding += inv_box
-
- inv_box = new /obj/screen/inventory()
- inv_box.name = "back"
- inv_box.dir = NORTHEAST
- inv_box.icon = ui_style
- inv_box.icon_state = "equip"
- inv_box.screen_loc = ui_back
- inv_box.slot_id = slot_back
- inv_box.layer = 19
- src.adding += inv_box
-
- mymob.throw_icon = new /obj/screen()
- mymob.throw_icon.icon = ui_style
- mymob.throw_icon.icon_state = "act_throw_off"
- mymob.throw_icon.name = "throw"
- mymob.throw_icon.screen_loc = ui_drop_throw
-
- mymob.oxygen = new /obj/screen()
- mymob.oxygen.icon = ui_style
- mymob.oxygen.icon_state = "oxy0"
- mymob.oxygen.name = "oxygen"
- mymob.oxygen.screen_loc = ui_oxygen
-
- mymob.pressure = new /obj/screen()
- mymob.pressure.icon = ui_style
- mymob.pressure.icon_state = "pressure0"
- mymob.pressure.name = "pressure"
- mymob.pressure.screen_loc = ui_pressure
-
- mymob.toxin = new /obj/screen()
- mymob.toxin.icon = ui_style
- mymob.toxin.icon_state = "tox0"
- mymob.toxin.name = "toxin"
- mymob.toxin.screen_loc = ui_toxin
-
- mymob.internals = new /obj/screen()
- mymob.internals.icon = ui_style
- mymob.internals.icon_state = "internal0"
- mymob.internals.name = "internal"
- mymob.internals.screen_loc = ui_internal
-
- mymob.fire = new /obj/screen()
- mymob.fire.icon = ui_style
- mymob.fire.icon_state = "fire0"
- mymob.fire.name = "fire"
- mymob.fire.screen_loc = ui_fire
-
- mymob.bodytemp = new /obj/screen()
- mymob.bodytemp.icon = ui_style
- mymob.bodytemp.icon_state = "temp1"
- mymob.bodytemp.name = "body temperature"
- mymob.bodytemp.screen_loc = ui_temp
-
- mymob.healths = new /obj/screen()
- mymob.healths.icon = ui_style
- mymob.healths.icon_state = "health0"
- mymob.healths.name = "health"
- mymob.healths.screen_loc = ui_health
-
- mymob.pullin = new /obj/screen()
- mymob.pullin.icon = ui_style
- mymob.pullin.icon_state = "pull0"
- mymob.pullin.name = "pull"
- mymob.pullin.screen_loc = ui_pull_resist
-
- mymob.blind = new /obj/screen()
- mymob.blind.icon = 'icons/mob/screen1_full.dmi'
- mymob.blind.icon_state = "blackimageoverlay"
- mymob.blind.name = " "
- mymob.blind.screen_loc = "1,1"
- mymob.blind.layer = 0
-
- mymob.flash = new /obj/screen()
- mymob.flash.icon = ui_style
- mymob.flash.icon_state = "blank"
- mymob.flash.name = "flash"
- mymob.flash.screen_loc = "1,1 to 15,15"
- mymob.flash.layer = 17
-
- mymob.zone_sel = new /obj/screen/zone_sel()
- mymob.zone_sel.icon = ui_style
- mymob.zone_sel.overlays.len = 0
- mymob.zone_sel.overlays += 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)
- if (mymob.client)
- if (mymob.client.gun_mode) // If in aim mode, correct the sprite
- mymob.gun_setting_icon.dir = 2
- for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons
- if (G.target)
- mymob.item_use_icon = new /obj/screen/gun/item(null)
- if (mymob.client.target_can_click)
- mymob.item_use_icon.dir = 1
- src.adding += mymob.item_use_icon
- mymob.gun_move_icon = new /obj/screen/gun/move(null)
- if (mymob.client.target_can_move)
- mymob.gun_move_icon.dir = 1
- mymob.gun_run_icon = new /obj/screen/gun/run(null)
- if (mymob.client.target_can_run)
- mymob.gun_run_icon.dir = 1
- src.adding += mymob.gun_run_icon
- src.adding += mymob.gun_move_icon
-
- mymob.client.screen = null
-
- mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach )
- mymob.client.screen += src.adding + src.other
-
- return
-
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index f13d5dc62f5..a483ce47baf 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -445,7 +445,7 @@
if (M == src || anchored)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
@@ -514,7 +514,7 @@
if (I_GRAB)
if (M == src)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 0688c4bfc35..bc39841f291 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -659,17 +659,17 @@
for(var/obj/item/weapon/grab/G in usr.grabbed_by)
resisting++
if (G.state == GRAB_PASSIVE)
- del(G)
+ returnToPool(G)
else
if (G.state == GRAB_AGGRESSIVE)
if (prob(25))
L.visible_message("[L] has broken free of [G.assailant]'s grip!")
- del(G)
+ returnToPool(G)
else
if (G.state == GRAB_NECK)
if (prob(5))
L.visible_message("[L] has broken free of [G.assailant]'s headlock!")
- del(G)
+ returnToPool(G)
if(resisting)
L.visible_message("[L] resists!")
diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm
index f206ee1fba9..0ce5acb3bed 100644
--- a/code/modules/mob/living/silicon/ai/login.dm
+++ b/code/modules/mob/living/silicon/ai/login.dm
@@ -3,12 +3,12 @@
for(var/obj/effect/rune/rune in rune_list) //HOLY FUCK WHO THOUGHT LOOPING THROUGH THE WORLD WAS A GOOD IDEA
client.images += rune.blood_image
regenerate_icons()
- flash = new /obj/screen()
+ flash = getFromPool(/obj/screen)
flash.icon_state = "blank"
flash.name = "flash"
flash.screen_loc = "1,1 to 15,15"
flash.layer = 17
- blind = new /obj/screen()
+ blind = getFromPool(/obj/screen)
blind.icon_state = "black"
blind.name = " "
blind.screen_loc = "1,1 to 15,15"
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 326dcf8d397..f6cb658e701 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -929,7 +929,7 @@
if (I_GRAB)
if (M == src)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 17a68adf949..18430c4819a 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -101,7 +101,7 @@
/mob/living/simple_animal/Login()
if(src && src.client)
- src.client.screen = null
+ src.client.reset_screen()
..()
/mob/living/simple_animal/updatehealth()
@@ -327,7 +327,7 @@
if (!(status_flags & CANPUSH))
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
@@ -363,7 +363,7 @@
if(!(status_flags & CANPUSH))
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M,src)
M.put_in_active_hand(G)
@@ -598,4 +598,4 @@
/mob/living/simple_animal/say_understands(var/mob/other,var/datum/language/speaking = null)
if(issilicon(other))
return 1
- return ..()
+ return ..()
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index e65ec0c3dcf..123c354d961 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -28,9 +28,9 @@
update_Login_details()
world.update_status()
+ if(hud_used) qdel(hud_used) //remove the hud objects
client.images = null //remove the images such as AIs being unable to see runes
- client.screen = null //remove hud items just in case
- if(hud_used) del(hud_used) //remove the hud objects
+ client.reset_screen() //remove hud items just in case
hud_used = new /datum/hud(src)
gui_icons = new /datum/ui_icons(src)
@@ -43,12 +43,7 @@
..()
- if(loc && !isturf(loc))
- client.eye = loc
- client.perspective = EYE_PERSPECTIVE
- else
- client.eye = src
- client.perspective = MOB_PERSPECTIVE
+ reset_view()
//Clear ability list and update from mob.
client.verbs -= ability_verbs
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 1b5860f8a58..151359947a6 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -5,11 +5,15 @@
/mob/Destroy() // This makes sure that mobs with clients/keys are not just deleted from the game.
unset_machine()
- if(client)
- for(var/atom/movable/AM in client.screen)
- qdel(AM)
- client.screen = list()
qdel(hud_used)
+ if(client)
+ remove_screen_obj_references()
+ for(var/atom/movable/AM in client.screen)
+ if(istype(AM,/obj/screen))
+ returnToPool(AM)
+ else
+ qdel(AM)
+ client.screen = list()
if(mind && mind.current == src)
spellremove(src)
mob_list.Remove(src)
@@ -18,6 +22,39 @@
ghostize()
..()
+/mob/proc/remove_screen_obj_references()
+ flash = null
+ blind = null
+ hands = null
+ pullin = null
+ visible = null
+ purged = null
+ internals = null
+ oxygen = null
+ i_select = null
+ m_select = null
+ toxin = null
+ fire = null
+ bodytemp = null
+ healths = null
+ throw_icon = null
+ nutrition_icon = null
+ pressure = null
+ damageoverlay = null
+ pain = null
+ item_use_icon = null
+ gun_move_icon = null
+ gun_run_icon = null
+ gun_setting_icon = null
+ m_suitclothes = null
+ m_suitclothesbg = null
+ m_hat = null
+ m_hatbg = null
+ m_glasses = null
+ m_glassesbg = null
+ spell_masters = null
+ zone_sel = null
+
/mob/proc/cultify()
return
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 905dd4cac29..f2f3dea99d5 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -11,9 +11,6 @@
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
- //Not in use yet
- var/obj/effect/organstructure/organStructure = null
-
var/obj/screen/flash = null
var/obj/screen/blind = null
var/obj/screen/hands = null
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 4b767089820..bb4ecb95259 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -25,10 +25,10 @@
affecting = victim
if(affecting.anchored)
- qdel(src)
+ returnToPool(src)
return
- hud = new /obj/screen/grab(src)
+ hud = getFromPool(/obj/screen/grab)
hud.icon_state = "reinforce"
hud.name = "reinforce grab"
hud.master = src
@@ -57,7 +57,7 @@
confirm()
if(!assailant)
affecting = null
- qdel(src)
+ returnToPool(src)
return
if(assailant.client)
@@ -116,7 +116,7 @@
return
*/
if(!assailant.canmove || assailant.lying)
- qdel(src)
+ returnToPool(src)
return
last_upgrade = world.time
@@ -150,10 +150,10 @@
if(state == GRAB_KILL)
return
if(!assailant || !affecting)
- qdel(src)
+ returnToPool(src)
return
if(!assailant.canmove || assailant.lying)
- qdel(src)
+ returnToPool(src)
return
state = GRAB_KILL
assailant.visible_message("[assailant] has tightened \his grip on [affecting]'s neck!")
@@ -167,7 +167,7 @@
affecting.losebreath += 1
else
if(!assailant || !affecting)
- qdel(src)
+ returnToPool(src)
return
assailant.visible_message("[assailant] was unable to tighten \his grip on [affecting]'s neck!")
hud.icon_state = "disarm/kill"
@@ -177,12 +177,12 @@
//This is used to make sure the victim hasn't managed to yackety sax away before using the grab.
/obj/item/weapon/grab/proc/confirm()
if(!assailant || !affecting)
- qdel(src)
+ returnToPool(src)
return 0
if(affecting)
if(!isturf(assailant.loc) || ( !isturf(affecting.loc) || assailant.loc != affecting.loc && get_dist(assailant, affecting) > 1) )
- qdel(src)
+ returnToPool(src)
return 0
return 1
@@ -207,11 +207,11 @@
user.visible_message("[user] devours [affecting]!")
affecting.loc = user
attacker.stomach_contents.Add(affecting)
- qdel(src)
+ returnToPool(src)
/obj/item/weapon/grab/dropped()
- qdel(src)
+ returnToPool(src)
/obj/item/weapon/grab/Destroy()
if(affecting)
@@ -221,5 +221,5 @@
if(assailant.client)
assailant.client.screen -= hud
assailant = null
- qdel(hud)
+ returnToPool(hud)
..()
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index ced710309d2..09cfaccd958 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -350,12 +350,12 @@
mob.delayNextMove(10)
if(!prob(25)) return 1
mob.visible_message(" [mob] has broken free of [G.assailant]'s grip!")
- del(G)
+ returnToPool(G)
if(G.state == GRAB_NECK)
mob.delayNextMove(10)
if(!prob(5)) return 1
mob.visible_message(" [mob] has broken free of [G.assailant]'s headlock!")
- del(G)
+ returnToPool(G)
return 0
diff --git a/code/modules/mob/new_player/hud.dm b/code/modules/mob/new_player/hud.dm
deleted file mode 100644
index 67af01d6453..00000000000
--- a/code/modules/mob/new_player/hud.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-
-/datum/hud/proc/unplayer_hud()
- return
\ No newline at end of file
diff --git a/code/modules/mob/spells.dm b/code/modules/mob/spells.dm
index 57ff7f77b76..7e4e54f5bd0 100644
--- a/code/modules/mob/spells.dm
+++ b/code/modules/mob/spells.dm
@@ -9,7 +9,7 @@
spell_master.add_spell(spell_to_add)
return 1
- var/obj/screen/movable/spell_master/new_spell_master = new master_type //we're here because either we didn't find our type, or we have no spell masters to attach to
+ var/obj/screen/movable/spell_master/new_spell_master = getFromPool(master_type) //we're here because either we didn't find our type, or we have no spell masters to attach to
if(client)
src.client.screen += new_spell_master
new_spell_master.spell_holder = src
diff --git a/code/modules/projectiles/targeting.dm b/code/modules/projectiles/targeting.dm
index de906b3e0da..589f6232aff 100644
--- a/code/modules/projectiles/targeting.dm
+++ b/code/modules/projectiles/targeting.dm
@@ -237,17 +237,17 @@ client/var
//These are called by the on-screen buttons, adjusting what the victim can and cannot do.
client/proc/add_gun_icons()
if (!usr.item_use_icon)
- usr.item_use_icon = new /obj/screen/gun/item(null)
+ usr.item_use_icon = getFromPool(/obj/screen/gun/item)
usr.item_use_icon.icon_state = "no_item[target_can_click]"
usr.item_use_icon.name = "[target_can_click ? "Disallow" : "Allow"] Item Use"
if (!usr.gun_move_icon)
- usr.gun_move_icon = new /obj/screen/gun/move(null)
+ usr.gun_move_icon = getFromPool(/obj/screen/gun/move)
usr.gun_move_icon.icon_state = "no_walk[target_can_move]"
usr.gun_move_icon.name = "[target_can_move ? "Disallow" : "Allow"] Walking"
if (target_can_move && !usr.gun_run_icon)
- usr.gun_run_icon = new /obj/screen/gun/run(null)
+ usr.gun_run_icon = getFromPool(/obj/screen/gun/run)
usr.gun_run_icon.icon_state = "no_run[target_can_run]"
usr.gun_run_icon.name = "[target_can_run ? "Disallow" : "Allow"] Running"
@@ -263,9 +263,9 @@ client/proc/remove_gun_icons()
screen -= usr.gun_move_icon
if (target_can_move)
screen -= usr.gun_run_icon
- del usr.gun_move_icon
- del usr.item_use_icon
- del usr.gun_run_icon
+ returnToPool(usr.gun_move_icon)
+ returnToPool(usr.item_use_icon)
+ returnToPool(usr.gun_run_icon)
client/verb/ToggleGunMode()
set hidden = 1
@@ -289,7 +289,7 @@ client/verb/AllowTargetMove()
target_can_move = !target_can_move
if(target_can_move)
usr << "Target may now walk."
- usr.gun_run_icon = new /obj/screen/gun/run(null) //adding icon for running permission
+ usr.gun_run_icon = getFromPool(/obj/screen/gun/run) //adding icon for running permission
screen += usr.gun_run_icon
else
usr << "Target may no longer move."
diff --git a/code/unused/hivebot/hivebot.dm b/code/unused/hivebot/hivebot.dm
index d5f5dad128b..67aac4c6107 100644
--- a/code/unused/hivebot/hivebot.dm
+++ b/code/unused/hivebot/hivebot.dm
@@ -194,7 +194,7 @@
if (M.a_intent == "grab")
if (M == src)
return
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M )
+ var/obj/item/weapon/grab/G = getFromPool(/obj/item/weapon/grab,M)
G.assailant = M
if (M.hand)
M.l_hand = G
@@ -465,7 +465,7 @@ Frequency:
if (istype(G, /obj/item/weapon/grab))
for(var/mob/O in viewers(M, null))
O.show_message(text("[G.affecting] has been pulled from [G.assailant]'s grip by [src]"), 1)
- del(G)
+ returnToPool(G)
else
ok = 0
if (locate(/obj/item/weapon/grab, M.grabbed_by.len))
diff --git a/code/unused/hivebot/hud.dm b/code/unused/hivebot/hud.dm
index 212eb5090d2..7d07eb9efd3 100644
--- a/code/unused/hivebot/hud.dm
+++ b/code/unused/hivebot/hud.dm
@@ -243,7 +243,7 @@
mymob.zone_sel.overlays.len = 0
mymob.zone_sel.overlays += image("icon" = 'icons/mob/zone_sel.dmi', "icon_state" = text("[]", mymob.zone_sel.selecting))
- mymob.client.screen = null
+ mymob.client.reset_screen()
mymob.client.screen += list(mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep) //, mymob.mach )
mymob.client.screen += src.adding + src.other