diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 10d5acfc346..654c04c8ffa 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -136,7 +136,8 @@ var/list/admin_verbs_debug = list( /client/proc/reset_latejoin_spawns, /client/proc/create_outfits, /client/proc/debug_huds, - /client/proc/map_template_load + /client/proc/map_template_load, + /client/proc/map_template_upload ) var/list/admin_verbs_possess = list( /proc/possess, diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm index b4919f7df0e..d818afffbb3 100644 --- a/code/modules/admin/verbs/map_template_loadverb.dm +++ b/code/modules/admin/verbs/map_template_loadverb.dm @@ -1,18 +1,47 @@ /client/proc/map_template_load() set category = "Debug" - set name = "Load Map Template" + set name = "Map template - Place" var/turf/T = get_turf(mob) if(!T) return - var/map = input(usr, "Choose a Map Template to load at your CURRENT LOCATION","Load Map Template") as null|anything in flist("_maps/templates/") + + var/list/filelist = flist("_maps/templates/") + filelist |= map_template_uploads + + var/map = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in filelist if(!map) return - var/formatted_map = "_maps/templates/[map]" - var/mapfile = file(formatted_map) + + var/mapfile + if(map in map_template_uploads) //in the cache, not the template folder + mapfile = map + else + mapfile = file("_maps/templates/[map]") + if(isfile(mapfile)) maploader.load_map(mapfile, T.x, T.y, T.z) - message_admins("[key_name_admin(usr)] has loaded a map template ([map]) at (JMP)") + message_admins("[key_name_admin(usr)] has placed a map template ([map]) at (JMP)") else - usr << "Bad map file" + usr << "Bad map file: [map]" + + +//A list of map files that have been uploaded by admins +//It's NOT persistent between rounds +var/global/list/map_template_uploads = list() + + +/client/proc/map_template_upload() + set category = "Debug" + set name = "Map Template - Upload" + + var/map = input(usr, "Choose a Map Template to upload to template storage","Upload Map Template") as null|file + if(!map) + return + if(!findtext("[map]",".dmm")) + usr << "Bad map file: [map]" + return + + map_template_uploads |= file(map) + message_admins("[key_name_admin(usr)] has uploaded a map template ([map])")