diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index 7a03b7df5de..a5d854e3c26 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -3,6 +3,10 @@ GLOBAL_LIST_EMPTY(radial_menus) +/obj/screen/radial/Destroy() + parent = null + return ..() + /obj/screen/radial icon = 'icons/screen/radial.dmi' layer = HUD_ABOVE_ITEM_LAYER @@ -290,6 +294,8 @@ GLOBAL_LIST_EMPTY(radial_menus) /datum/radial_menu/Destroy() Reset() hide() + QDEL_NULL_LIST(elements) + QDEL_NULL(close_button) QDEL_NULL(custom_check_callback) return ..() diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm index c8860c6cd4f..7ee1675f3d3 100644 --- a/code/modules/multiz/structures.dm +++ b/code/modules/multiz/structures.dm @@ -22,6 +22,11 @@ var/climb_time = 2 SECONDS var/static/list/climbsounds = list('sound/effects/ladder.ogg','sound/effects/ladder2.ogg','sound/effects/ladder3.ogg','sound/effects/ladder4.ogg') + var/static/radial_ladder_down = image(icon = 'icons/screen/radial.dmi', icon_state = "radial_ladder_down") + var/static/radial_ladder_up = image(icon = 'icons/screen/radial.dmi', icon_state = "radial_ladder_up") + + var/static/list/radial_options = list("up" = radial_ladder_up, "down" = radial_ladder_down) + /obj/structure/ladder/handle_default_wrench_attackby() var/last_anchored = anchored . = ..() @@ -186,7 +191,7 @@ if(!target_up && !target_down) to_chat(M, SPAN_WARNING("\The [src] does not seem to lead anywhere.")) else if(target_down && target_up) - var/direction = input(M,"Do you want to go up or down?", "Up or down the ladder?") as null|anything in list("up", "down") + var/direction = show_radial_menu(M, src, radial_options, require_near = !(isEye(M) || isobserver(M))) if(!direction) return if(!M.may_climb_ladders(src)) diff --git a/icons/screen/radial.dmi b/icons/screen/radial.dmi index d2d032fbbb4..dc99c4688de 100644 Binary files a/icons/screen/radial.dmi and b/icons/screen/radial.dmi differ