From a01379d6542803c5969f916eca495f8592fe38bd Mon Sep 17 00:00:00 2001 From: "baloh.matevz" Date: Mon, 7 Mar 2011 00:26:09 +0000 Subject: [PATCH] GLASS: - Making single panned glass now checks if there is already a pane facing the default way and adjusts to face the nearest empty way in a counter-clockwise search direction. Should make placing windows easier - Windows now have 'rotate clockwise' and 'rotate counter-clockwise' verbs - Fixed window creation, a bug which my previous update made MAPPING DEBUG TOOLS: - Renamed all verbs in mapping to other names so they don't interfere with existing verbs when writing part of the command and pressing tab. (copied for previous update as this one actually fixes it) git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1166 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/objects/stacks/glass.dm | 33 ++++++++++++++++++++++++----- code/game/objects/window.dm | 22 +++++++++++++++---- code/modules/admin/verbs/mapping.dm | 6 +++--- 3 files changed, 49 insertions(+), 12 deletions(-) diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index ae3ebdcce2d..848ddb6b63b 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -27,10 +27,28 @@ SHARDS if(!(win.ini_dir in cardinal)) usr << "\red Can't let you do that." return 1 - var/obj/window/W = new /obj/window( usr.loc, reinf ) - if (directions.len) - W.dir = directions[1] - W.ini_dir = W.dir + var/dir_to_set = 2 + //yes, this could probably be done better but hey... it works... + for(var/obj/window/WT in usr.loc) + if (WT.dir == dir_to_set) + dir_to_set = 4 + for(var/obj/window/WT in usr.loc) + if (WT.dir == dir_to_set) + dir_to_set = 1 + for(var/obj/window/WT in usr.loc) + if (WT.dir == dir_to_set) + dir_to_set = 8 + for(var/obj/window/WT in usr.loc) + if (WT.dir == dir_to_set) + dir_to_set = 2 + var/obj/window/W + if(reinf) + W = new /obj/window/reinforced( usr.loc, reinf ) + W.state = 0 + else + W = new /obj/window/basic( usr.loc, reinf ) + W.dir = dir_to_set + W.ini_dir = W.dir W.anchored = 0 src.use(1) if("full (2 sheets)") @@ -39,7 +57,12 @@ SHARDS if (locate(/obj/window) in usr.loc) usr << "\red Can't let you do that." return 1 - var/obj/window/W = new /obj/window( usr.loc, reinf ) + var/obj/window/W + if(reinf) + W = new /obj/window/reinforced( usr.loc, reinf ) + W.state = 0 + else + W = new /obj/window/basic( usr.loc, reinf ) W.dir = SOUTHWEST W.ini_dir = SOUTHWEST W.anchored = 0 diff --git a/code/game/objects/window.dm b/code/game/objects/window.dm index 8416efe860d..a77a8f68b66 100644 --- a/code/game/objects/window.dm +++ b/code/game/objects/window.dm @@ -149,9 +149,6 @@ return /obj/window/attackby(obj/item/weapon/W as obj, mob/user as mob) - - - if (istype(W, /obj/item/weapon/screwdriver)) if(reinf && state >= 1) state = 3 - state @@ -197,7 +194,7 @@ /obj/window/verb/rotate() - set name = "Rotate Window" + set name = "Rotate Window Counter-Clockwise" set src in oview(1) if (src.anchored) @@ -213,6 +210,23 @@ src.ini_dir = src.dir return +/obj/window/verb/revrotate() + set name = "Rotate Window Clockwise" + set src in oview(1) + + if (src.anchored) + usr << "It is fastened to the floor; therefore, you can't rotate it!" + return 0 + + update_nearby_tiles(need_rebuild=1) //Compel updates before + + src.dir = turn(src.dir, 270) + + update_nearby_tiles(need_rebuild=1) + + src.ini_dir = src.dir + return + /obj/window/New(Loc,re=0) ..() diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 74f065abf53..5961697a9d7 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -44,7 +44,7 @@ var/intercom_range_display_status = 0 camera_view() set category = "Mapping" - set name = "MAP Sec Camera Range Display" + set name = "Camera Range Display" if(camera_range_display_status) camera_range_display_status = 0 @@ -64,7 +64,7 @@ var/intercom_range_display_status = 0 sec_camera_report() set category = "Mapping" - set name = "MAP Sec Camera Report" + set name = "Camera Report" if(!master_controller) alert(usr,"Master_controller not found.","Sec Camera Report") @@ -93,7 +93,7 @@ var/intercom_range_display_status = 0 intercom_view() set category = "Mapping" - set name = "MAP Intercom Range Display" + set name = "Intercom Range Display" if(intercom_range_display_status) intercom_range_display_status = 0