[MIRROR] Fix Transparent Floors Multi Z clipping [MDB IGNORE] (#10523)

* Fix Transparent Floors Multi Z clipping (#63878)

Fixes #63770 (Objects on Lower Z level appearing on top Z level when under glass tiles)

This fixes some MultiZ issues that were discovered after I made #62875 (566b9ee1d8). I never setup a new plane for the transparent turfs and because of this any objects, icons, or sprites that were offset from the boundary of the turf would make any bottom Z level stuff appear on the current Z level.

We want stuff to look normal.

* Fix Transparent Floors Multi Z clipping

Co-authored-by: Tim <timothymtorres@gmail.com>
This commit is contained in:
SkyratBot
2022-01-08 03:43:42 +01:00
committed by GitHub
parent 0aba9aef8d
commit e63bb39ac9
3 changed files with 11 additions and 0 deletions

View File

@@ -16,6 +16,8 @@
#define GRAVITY_PULSE_RENDER_TARGET "*GRAVPULSE_RENDER_TARGET"
#define OPENSPACE_LAYER 600 //Openspace layer over all
#define TRANSPARENT_FLOOR_PLANE -10 //Transparent plane that shows openspace underneath the floor
#define OPENSPACE_PLANE -9 //Openspace plane below all turfs
#define OPENSPACE_BACKDROP_PLANE -8 //Black square just over openspace plane to guaranteed cover all in openspace turf

View File

@@ -50,6 +50,13 @@
add_filter("second_stage_openspace", 2, drop_shadow_filter(color = "#04080FAA", size = -15))
add_filter("third_stage_openspace", 3, drop_shadow_filter(color = "#04080FAA", size = -20))
///For any transparent multi-z tiles we want to render
/atom/movable/screen/plane_master/transparent
name = "transparent plane master"
plane = TRANSPARENT_FLOOR_PLANE
appearance_flags = PLANE_MASTER
render_relay_plane = RENDER_PLANE_GAME
///Contains just the floor
/atom/movable/screen/plane_master/floor
name = "floor plane master"

View File

@@ -14,6 +14,8 @@
our_turf.layer = OPENSPACE_LAYER
if(is_openspace)
our_turf.plane = OPENSPACE_PLANE
else
our_turf.plane = TRANSPARENT_FLOOR_PLANE
RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, .proc/on_multiz_turf_del)
RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_turf_new)