diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 2a95fd7803..7789fe4a47 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -82,6 +82,7 @@ var/valueholder = "derp" var/objholder = /obj/structure/closet var/atom/movable/stored = null + var/list/preview = list() /datum/buildmode/New(client/c) create_buttons() @@ -94,6 +95,8 @@ holder.screen -= buttons holder.click_intercept = null holder.show_popup_menus = 1 + usr.client.images -= preview + preview.Cut() qdel(src) return @@ -150,6 +153,7 @@ if(AREA_BUILDMODE) dat += "***********************************************************" dat += "Left Mouse Button on turf/obj/mob = Select corner" + dat += "Right Mouse Button on turf/obj/mob = Reset corner selection" dat += "Right Mouse Button on buildmode button = Select generator" dat += "***********************************************************" if(COPY_BUILDMODE) @@ -338,13 +342,20 @@ throw_atom.throw_at(object, 10, 1,user) log_admin("Build Mode: [key_name(user)] threw [throw_atom] at [object] ([object.x],[object.y],[object.z])") if(AREA_BUILDMODE) - if(!cornerA) - cornerA = get_turf(object) - return - if(cornerA && !cornerB) - cornerB = get_turf(object) - if(left_click) //rectangular + if(!cornerA) + cornerA = get_turf(object) + preview += image('icons/turf/overlays.dmi',cornerA,"greenOverlay") + usr.client.images -= preview + usr.client.images += preview + return + if(cornerA && !cornerB) + cornerB = get_turf(object) + preview += image('icons/turf/overlays.dmi',cornerB,"blueOverlay") + usr.client.images -= preview + usr.client.images += preview + to_chat(user, "Region selected, if you're happy with your selection left click again, otherwise right click.") + return if(cornerA && cornerB) if(!generator_path) to_chat(user, "Select generator type first.") @@ -354,10 +365,18 @@ if(GLOB.reloading_map) to_chat(user, "You are already reloading an area! Please wait for it to fully finish loading before trying to load another!") return - G.defineRegion(cornerA,cornerB,1) - G.generate() + G.defineRegion(cornerA, cornerB, 1) + for(var/t in G.map) + preview += image('icons/turf/overlays.dmi', t ,"redOverlay") + usr.client.images -= preview + usr.client.images += preview + var/confirm = alert("Are you sure you want run the map generator?", "Run generator", "Yes", "No") + if(confirm == "Yes") + G.generate() cornerA = null cornerB = null + usr.client.images -= preview + preview.Cut() return //Something wrong - Reset cornerA = null diff --git a/icons/turf/overlays.dmi b/icons/turf/overlays.dmi index 34819bdca9..c1867fb12f 100644 Binary files a/icons/turf/overlays.dmi and b/icons/turf/overlays.dmi differ