From b37ea52f4d2b79e9e76f544230f1c1781a0ab9ef Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sun, 12 Aug 2012 00:16:14 -0700 Subject: [PATCH 1/2] Some code that ensures ladders and shit play nice with the modular Z-levels --- code/TriDimension/Structures.dm | 84 ++++++++++++++++++++++----------- code/setup_3d.dm | 4 +- 2 files changed, 58 insertions(+), 30 deletions(-) diff --git a/code/TriDimension/Structures.dm b/code/TriDimension/Structures.dm index 2914f6a4ad..0509f1b36f 100644 --- a/code/TriDimension/Structures.dm +++ b/code/TriDimension/Structures.dm @@ -23,20 +23,34 @@ New() . = ..() spawn(1) //Allow map to load - if(!target) - var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] - target = locate() in locate(x,y,adjacent_to_me["down"]) - if (istype(target)) - icon_state = top_icon_state - else - target = locate() in locate(x,y,adjacent_to_me["up"]) - if (istype(target)) - icon_state = bottom_icon_state + if(z in levels_3d) + if(!target) + var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] + if("up" in adjacent_to_me) + target = locate() in locate(x,y,adjacent_to_me["up"]) + if(istype(target)) + icon_state = bottom_icon_state + else if("down" in adjacent_to_me) + target = locate() in locate(x,y,adjacent_to_me["down"]) + if(istype(target)) + icon_state = top_icon_state + else + del src + else + del src + else if("down" in adjacent_to_me) + target = locate() in locate(x,y,adjacent_to_me["down"]) + if(istype(target)) + icon_state = bottom_icon_state + else + del src else del src - if(target) - target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) - target.target = src + if(target) + target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) + target.target = src + else + del src Del() spawn(1) @@ -66,7 +80,7 @@ var/top_icon_state_open = "hatchdown-open" var/top_icon_state_close = "hatchdown-close" - bottom_icon_state = "hatchup" + bottom_icon_state = "ladderup" var/image/green_overlay var/image/red_overlay @@ -127,23 +141,37 @@ New() . = ..() spawn(1) - if(!target) - var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] - target = locate() in locate(x,y,adjacent_to_me["up"]) - if(istype(target)) - icon_state = bottom_icon_state - else - target = locate() in locate(x,y,adjacent_to_me["down"]) - if(istype(target)) - icon_state = top_icon_state + if(z in levels_3d) + if(!target) + var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] + if("up" in adjacent_to_me) + target = locate() in locate(x,y,adjacent_to_me["up"]) + if(istype(target)) + icon_state = bottom_icon_state + else if("down" in adjacent_to_me) + target = locate() in locate(x,y,adjacent_to_me["down"]) + if(istype(target)) + icon_state = top_icon_state + else + del src + else + del src + else if("down" in adjacent_to_me) + target = locate() in locate(x,y,adjacent_to_me["down"]) + if(istype(target)) + icon_state = bottom_icon_state + else + del src else del src - if(target) - target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) - target.target = src - var/obj/multiz/stairs/lead_in = locate() in get_step(src, reverse_direction(dir)) - if(lead_in) - lead_in.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) + if(target) + target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) + target.target = src + var/obj/multiz/stairs/lead_in = locate() in get_step(src, reverse_direction(dir)) + if(lead_in) + lead_in.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) + else + del src Del() diff --git a/code/setup_3d.dm b/code/setup_3d.dm index 5b15584521..607e350f15 100644 --- a/code/setup_3d.dm +++ b/code/setup_3d.dm @@ -7,9 +7,9 @@ #ifdef ZAS_3D -var/list/levels_3d = list(1,4,7) //To expediate calculations, just do "z in levels_3d" +var/list/levels_3d = list(1,2) //To expediate calculations, just do "z in levels_3d" -var/list/global_adjacent_z_levels = list("1" = list("up" = 2, "down" = 7), "2" = list("down" = 1), "7" = list("up" = 1)) //Example. 2 is above 1 which is above 7. +var/list/global_adjacent_z_levels = list("1" = list("up" = 2), "2" = list("down" = 1)) //Example. 2 is above 1 //Commented out ones are incomplete. //#include "TriDimension\Pipes.dm" //Example From 2ed777a53e8514059d8f0e00562bb47a752cc70d Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sun, 12 Aug 2012 01:00:40 -0700 Subject: [PATCH 2/2] Just committing my work before bed. --- code/TriDimension/Turfs.dm | 2 +- .../Cael_Aislinn => TriDimension}/multiz_pipe.dmi | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename code/{WorkInProgress/Cael_Aislinn => TriDimension}/multiz_pipe.dmi (100%) diff --git a/code/TriDimension/Turfs.dm b/code/TriDimension/Turfs.dm index 59342eb090..1e49e4dc80 100644 --- a/code/TriDimension/Turfs.dm +++ b/code/TriDimension/Turfs.dm @@ -75,7 +75,7 @@ atom/movable/Move() //Hackish attackby() return //nothing - proc/set_up() //Update the overlayss to make the openspace turf show what's down a level + proc/set_up() //Update the overlays to make the openspace turf show what's down a level if(!overlay_references) overlay_references = list() if(!floorbelow) return diff --git a/code/WorkInProgress/Cael_Aislinn/multiz_pipe.dmi b/code/TriDimension/multiz_pipe.dmi similarity index 100% rename from code/WorkInProgress/Cael_Aislinn/multiz_pipe.dmi rename to code/TriDimension/multiz_pipe.dmi