anchor.diff:  
   			isBusy = TRUE
   
  -			animate(background,  alpha = 0, time = 10)
  -			animate(text,        alpha = 0, time = 10)
  -		//	animate(text_shadow, alpha = 0, time = 10)
  -			animate(button,      alpha = 0, time = 10)
  -
  -			if(image)
  -				animate(image,  alpha = 0, time = 10)
  +			background.Hide(10)
  +			displayText.Hide(10)
  +		//	text_shadow.Hide(10)
  +
  +			if(button1) button1.Hide(10)
  +			if(button2) button2.Hide(10)
  +			if(button3) button3.Hide(10)
  +
  +			if(displayImage)
  +				displayImage.Hide(10)
   
   			if(owner)
   				owner.screen_text = null
   				owner << sound(null, 0, 0, 9)
   
  -			button.parent = null
  +			if(button1)	button1.parent = null
  +			if(button2)	button2.parent = null
  +			if(button3)	button3.parent = null
  +
  +
   			isDisposed = TRUE
   
   			sleep(10)
   
   			if(owner)
   				owner.client.screen -= background
  -				owner.client.screen -= text
  +				owner.client.screen -= displayText
   		//		owner.client.screen -= text_shadow
  -				owner.client.screen -= button
  -
  -				if(image)
  -					owner.client.screen -= image
  +
  +				if(button1)		 owner.client.screen -= button1
  +				if(button2)		 owner.client.screen -= button2
  +				if(button3)		 owner.client.screen -= button3
  +				if(displayImage) owner.client.screen -= displayImage
   
   				owner = null
   
  -			image       = null
  -			text        = null
  -	//		text_shadow = null
  -			background  = null
  -			button      = null
  +			displayImage = null
  +			displayText  = null
  +	//		text_shadow  = null
  +			background   = null
  +			button1      = null
  +			button2      = null
  +			button3      = null
   
   obj/hud
   
  
positive.code: 		tmp
  			isBusy     = FALSE
  			isDisposed = FALSE
  
  	New(mob/Player/p, atom/a = null)
  		..()
  
  		owner             = p
  		owner.screen_text = src
  
  		text        = new
  	//	text_shadow = new
  		background  = new
  		button      = new(src)
  
  
  		if(a)
  			image = new
  			image.appearance = a.appearance
  			image.transform *= 6.5
  			image.underlays  = null
  
  			p.client.screen += image
  
  	//	shadowedMapText(text, text_shadow, 1, SOUTH)
  
  		p.client.screen += background
  		p.client.screen += text
  	//	p.client.screen += text_shadow
  		p.client.screen += button
  
  	proc
  		SetText(t, soundID)
  			text.maptext        = "<b><font color=white>[t]</font></b>"
  	//		text_shadow.maptext = "<b><font color=black>[t]</font></b>"
  
  			if(owner.playSounds && soundID)
  				owner << sound(file("Sound/[soundID].ogg"), 0, 0, 9)
  
  		AddText(t, soundID = null)
  
  			if(text.maptext == null)
  				SetText(t, soundID)
  			else
  				if(!queue) queue = list()
  
  				queue[t] = soundID
  
  		Next()
  			if(isBusy) return
  
  			if(!queue)
  				Dispose()
  			else
  				isBusy = TRUE
  
  				animate(text, alpha = 0, time = 5)
  				sleep(5)
  
  				SetText(queue[1], queue[queue[1]])
  				queue -= queue[1]
  
  				animate(text, alpha = 255, time = 5)
  
  				if(!queue.len) queue = null
  
  				sleep(5)
  				isBusy = FALSE
  
  		Dispose()
  			set waitfor = FALSE
  
  
negative.code: 			color = "#2299d0"
  
  			alpha     = 235
  			maptext_x = 26
  			maptext_y = 6
  			layer = 20
  
  			var/ScreenText/parent
  
  			New(ScreenText/parent, text, color, screenLoc = "CENTER:24-1,CENTER-2")
  
  				src.parent = parent
  				screen_loc = screenLoc
  				Set(text, color)
  
  				parent.owner.client.screen += src
  
  				..()
  
  			proc
  				Set(text, color)
  					maptext    = "<font color=white>[text]</font>"
  					src.color  = color
  					name       = text
  
  					if(invisibility) Show()
  
  			Click()
  				..()
  				if(parent)
  					parent.Next(name)
  
  		New()
  			..()
  
  		/*	var/px = width  / 2
  			var/py = height / 2
  
  			var/tx = round(px / 32, 1)
  			var/ty = round(py / 32, 1)
  
  			px = px % 32
  			py = py % 32
  
  			if(px)
  				tx++
  				px = 32 - px
  
  			if(py)
  				ty++
  				py = 32 - py*/
  
  			Show(10)
  
  		proc
  			Hide(t = 5)
  				set waitfor = 0
  				if(invisibility) return
  
  				var/a = alpha
  
  				animate(src, alpha = 0, time = t)
  
  				sleep(t)
  				alpha = a
  				invisibility = 10
  
  			Show(t = 5)
  				var/a        = alpha
  				alpha        = 0
  				invisibility = 0
  
  				animate(src, alpha = a, time = t)
  
  
  /*proc/shadowedMapText(atom/a, shadow_object = null, offset = 1, shadow_dir = SOUTH)
  