[MIRROR] [NO GBP] Fixes blindness icons on lower station z-levels [MDB IGNORE] (#17170)

* [NO GBP] Fixes blindness icons on lower station z-levels (#70608)

I previously tested that footsteps worked when hearing them from a lower Z-level but forgot to test if you can see them while on a lower z-level.

It didn't occur to me that offsetted planecube planes wouldn't work with being over the fullscreen blindness mask past the top level but that makes sense in retrospect.

So the blindness effects (via play_fov_effect()) are now on the fullscreen plane. Partially reverted doing this with manually talking bubbles as well so they look normal again, and then added a FOV effect as well for chat bubbles.

NOTE: Runetext is in general also only above the blind mask on the highest station level and below on others for the same planecube issue but that's a whole other can of worms.

* [NO GBP] Fixes blindness icons on lower station z-levels

Co-authored-by: Tastyfish <crazychris32@gmail.com>
This commit is contained in:
SkyratBot
2022-10-25 23:47:47 -04:00
committed by GitHub
co-authored by Tastyfish
parent 5a24079879
commit c649995506
6 changed files with 10 additions and 20 deletions
+4 -6
View File
@@ -66,9 +66,6 @@
#define FULLSCREEN_PLANE 23
///Visuals that represent sounds happening, and can be seen while blind.
#define SOUND_EFFECT_VISUAL_PLANE 25
///--------------- FULLSCREEN RUNECHAT BUBBLES ------------
///Popup Chat Messages
@@ -213,10 +210,11 @@
#define CRIT_LAYER 5
#define CURSE_LAYER 6
///--------------- SOUND EFFECT VISUALS ------------
#define FOV_EFFECT_LAYER 100
///--------------- FULLSCREEN RUNECHAT BUBBLES ------------
/// Bubble for typing indicators
#define TYPING_LAYER 1
#define FOV_EFFECTS_LAYER 2 //Blindness effects are not layer 4, they lie to you
#define TYPING_LAYER 500
#define RADIAL_BACKGROUND_LAYER 0
///1000 is an unimportant number, it's just to normalize copied layers
@@ -507,14 +507,6 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master)
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
allows_offsetting = FALSE
/atom/movable/screen/plane_master/sound_effect_visual
name = "Sound Effect Visuals"
documentation = "Holds anything that is a game visual, but is displayed over fullscreen effects. \
<br>Displayed over fullscreen effects, but still under runechat and the HUD."
plane = SOUND_EFFECT_VISUAL_PLANE
render_relay_planes = list(RENDER_PLANE_NON_GAME)
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/atom/movable/screen/plane_master/runechat
name = "Runechat"
documentation = "Holds runechat images, that text that pops up when someone say something. Uses a dropshadow to well, look nice."
@@ -117,7 +117,6 @@ INITIALIZE_IMMEDIATE(/atom/movable/plane_master_controller)
PIPECRAWL_IMAGES_PLANE,
HIGH_GAME_PLANE,
FULLSCREEN_PLANE,
SOUND_EFFECT_VISUAL_PLANE,
RUNECHAT_PLANE,
HUD_PLANE,
ABOVE_HUD_PLANE,
+2 -3
View File
@@ -89,9 +89,9 @@
//did you know you can subtype /image and /mutable_appearance? // Stop telling them that they might actually do it
/image/fov_image
icon = 'icons/effects/fov/fov_effects.dmi'
layer = FOV_EFFECTS_LAYER
layer = EFFECTS_LAYER + FOV_EFFECT_LAYER
appearance_flags = RESET_COLOR | RESET_TRANSFORM
plane = SOUND_EFFECT_VISUAL_PLANE
plane = FULLSCREEN_PLANE
/// Plays a visual effect representing a sound cue for people with vision obstructed by FOV or blindness
/proc/play_fov_effect(atom/center, range, icon_state, dir = SOUTH, ignore_self = FALSE, angle = 0, list/override_list)
@@ -110,7 +110,6 @@
if(!fov_image) //Make the image once we found one recipient to receive it
fov_image = new()
fov_image.loc = anchor_point
SET_PLANE(fov_image, SOUND_EFFECT_VISUAL_PLANE, anchor_point)
fov_image.icon_state = icon_state
fov_image.dir = dir
if(angle)
+4 -2
View File
@@ -77,8 +77,9 @@
/mob/living/create_thinking_indicator()
if(active_thinking_indicator || active_typing_indicator || !thinking_IC || stat != CONSCIOUS )
return FALSE
active_thinking_indicator = mutable_appearance('icons/mob/effects/talk.dmi', "[bubble_icon]3", TYPING_LAYER, src, SOUND_EFFECT_VISUAL_PLANE)
active_thinking_indicator = mutable_appearance('icons/mob/effects/talk.dmi', "[bubble_icon]3", TYPING_LAYER)
add_overlay(active_thinking_indicator)
play_fov_effect(src, 6, "talk", ignore_self = TRUE)
/mob/living/remove_thinking_indicator()
if(!active_thinking_indicator)
@@ -89,8 +90,9 @@
/mob/living/create_typing_indicator()
if(active_typing_indicator || active_thinking_indicator || !thinking_IC || stat != CONSCIOUS)
return FALSE
active_typing_indicator = mutable_appearance('icons/mob/effects/talk.dmi', "[bubble_icon]0", TYPING_LAYER, src, SOUND_EFFECT_VISUAL_PLANE)
active_typing_indicator = mutable_appearance('icons/mob/effects/talk.dmi', "[bubble_icon]0", TYPING_LAYER)
add_overlay(active_typing_indicator)
play_fov_effect(src, 6, "talk", ignore_self = TRUE)
/mob/living/remove_typing_indicator()
if(!active_typing_indicator)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB