Status display alarms now clear properly on all mode changes.

Previously one had to first set the display mode to Clear before the overlays would go away.
This corrects situations where, for example, the emergency shuttle ETA could be covered by a NT logo.
This commit is contained in:
PsiOmega
2015-09-05 12:00:39 +02:00
parent 8311e06d2b
commit d77f0f3997

View File

@@ -28,6 +28,7 @@
var/message2 = "" // message line 2 var/message2 = "" // message line 2
var/index1 // display index for scrolling messages or 0 if non-scrolling var/index1 // display index for scrolling messages or 0 if non-scrolling
var/index2 var/index2
var/picture = null
var/frequency = 1435 // radio frequency var/frequency = 1435 // radio frequency
@@ -72,13 +73,13 @@
// set what is displayed // set what is displayed
/obj/machinery/status_display/proc/update() /obj/machinery/status_display/proc/update()
remove_display()
if(friendc && !ignore_friendc) if(friendc && !ignore_friendc)
set_picture("ai_friend") set_picture("ai_friend")
return 1 return 1
switch(mode) switch(mode)
if(STATUS_DISPLAY_BLANK) //blank if(STATUS_DISPLAY_BLANK) //blank
remove_display()
return 1 return 1
if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer
if(emergency_shuttle.waiting_to_leave()) if(emergency_shuttle.waiting_to_leave())
@@ -96,8 +97,6 @@
if(length(message2) > CHARS_PER_LINE) if(length(message2) > CHARS_PER_LINE)
message2 = "Error" message2 = "Error"
update_display(message1, message2) update_display(message1, message2)
else
remove_display()
return 1 return 1
if(STATUS_DISPLAY_MESSAGE) //custom messages if(STATUS_DISPLAY_MESSAGE) //custom messages
var/line1 var/line1
@@ -122,6 +121,9 @@
index2 -= message2_len index2 -= message2_len
update_display(line1, line2) update_display(line1, line2)
return 1 return 1
if(STATUS_DISPLAY_ALERT)
set_picture(picture_state)
return 1
if(STATUS_DISPLAY_TIME) if(STATUS_DISPLAY_TIME)
message1 = "TIME" message1 = "TIME"
message2 = worldtime2text() message2 = worldtime2text()
@@ -150,9 +152,11 @@
index2 = 0 index2 = 0
/obj/machinery/status_display/proc/set_picture(state) /obj/machinery/status_display/proc/set_picture(state)
picture_state = state
remove_display() remove_display()
overlays += image('icons/obj/status_display.dmi', icon_state=picture_state) if(!picture || picture_state != state)
picture_state = state
picture = image('icons/obj/status_display.dmi', icon_state=picture_state)
overlays |= picture
/obj/machinery/status_display/proc/update_display(line1, line2) /obj/machinery/status_display/proc/update_display(line1, line2)
var/new_text = {"<div style="font-size:[FONT_SIZE];color:[FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"} var/new_text = {"<div style="font-size:[FONT_SIZE];color:[FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"}
@@ -207,7 +211,7 @@
if("time") if("time")
mode = STATUS_DISPLAY_TIME mode = STATUS_DISPLAY_TIME
update()
#undef CHARS_PER_LINE #undef CHARS_PER_LINE
#undef FOND_SIZE #undef FOND_SIZE