From ebebdbc37b5417ba9f3599baaed77f1c6d40d526 Mon Sep 17 00:00:00 2001 From: Leshana Date: Wed, 11 Apr 2018 21:21:04 -0400 Subject: [PATCH] Fix wall frames dropping steel and bugging on failure to place. Previously, if you tried to place a frame on a wall and it failed (due to something already being there etc) you would no longer be asked what type to use next time you try, and it will runtime. Fixes this by performing the safety checks *before* asking you want you want to build. Since the checks don't depend on what type you want to build anyway its fine. --- code/game/machinery/wall_frames.dm | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/code/game/machinery/wall_frames.dm b/code/game/machinery/wall_frames.dm index 1765eac3ec..2d0a8bf545 100644 --- a/code/game/machinery/wall_frames.dm +++ b/code/game/machinery/wall_frames.dm @@ -54,17 +54,6 @@ /obj/item/frame/proc/try_build(turf/on_wall, mob/user as mob) update_type_list() - var/datum/frame/frame_types/frame_type - if(!build_machine_type) - var/datum/frame/frame_types/response = input(user, "What kind of frame would you like to make?", "Frame type request", null) in frame_types_wall - if(!response || response.name == "Cancel") - return - frame_type = response - - build_machine_type = /obj/structure/frame - - if(frame_type.frame_size != 5) - new /obj/item/stack/material/steel(user.loc, (5 - frame_type.frame_size)) if(get_dist(on_wall, user)>1) return @@ -92,6 +81,18 @@ to_chat(user, "There's already an item on this wall!") return + var/datum/frame/frame_types/frame_type + if(!build_machine_type) + var/datum/frame/frame_types/response = input(user, "What kind of frame would you like to make?", "Frame type request", null) in frame_types_wall + if(!response || response.name == "Cancel") + return + frame_type = response + + build_machine_type = /obj/structure/frame + + if(frame_type.frame_size != 5) + new /obj/item/stack/material/steel(user.loc, (5 - frame_type.frame_size)) + var/obj/machinery/M = new build_machine_type(loc, ndir, 1, frame_type) M.fingerprints = fingerprints M.fingerprintshidden = fingerprintshidden