diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index cccc2ffb1a..c499e3d2dc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -113,6 +113,7 @@ jobs:
sudo apt update || true
sudo apt install zlib1g-dev:i386 libssl-dev:i386
ldd librust_g.so
+ ldd libbapi_dmm_reader.so
ldd libverdigris.so
- name: Unit Tests
run: |
diff --git a/.gitignore b/.gitignore
index 59626ad59f..f11d80fbec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,5 @@ package-lock.json
#These get built by some automatic process
tgui/public/tgui.bundle.css
tgui/public/tgui.bundle.js
+#ignore tracy dll
+prof.dll
diff --git a/bapi_dmm_reader.dll b/bapi_dmm_reader.dll
new file mode 100644
index 0000000000..0262c5a680
Binary files /dev/null and b/bapi_dmm_reader.dll differ
diff --git a/code/__defines/_init.dm b/code/__defines/_init.dm
new file mode 100644
index 0000000000..ccb2f266c6
--- /dev/null
+++ b/code/__defines/_init.dm
@@ -0,0 +1,19 @@
+// NEVER leave this on in your PR or the server will probably explode
+// #define ENABLE_BYOND_TRACY
+/datum/super_early_init
+
+/datum/super_early_init/New()
+ // This exists so that world.Profile() is THE FIRST PROC TO RUN in the init sequence.
+ // This allows us to get the real details of everything lagging at server start.
+ // world.Profile(PROFILE_START)
+ #if defined(ENABLE_BYOND_TRACY)
+ var/tracy_init = LIBCALL("prof.dll", "init")() // Setup Tracy integration
+ if(tracy_init != "0")
+ CRASH("Tracy init error: [tracy_init]")
+ #endif
+ // After that, the debugger is initialized.
+ // Doing it this early makes it possible to set breakpoints in the New()
+ // of things assigned to global variables or objects included in a compiled map file.
+ // world.enable_auxtools_debugger()
+
+GLOBAL_REAL(super_early_init, /datum/super_early_init) = new
diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index ff3deb6adb..b741f129ed 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -266,7 +266,6 @@ var/list/gamemode_cache = list()
var/static/radiation_material_resistance_divisor = 1
var/static/radiation_lower_limit = 0.35 //If the radiation level for a turf would be below this, ignore it.
- var/static/random_submap_orientation = FALSE // If true, submaps loaded automatically can be rotated.
var/static/autostart_solars = FALSE // If true, specifically mapped in solar control computers will set themselves up when the round starts.
// New shiny SQLite stuff.
@@ -943,9 +942,6 @@ var/list/gamemode_cache = list()
if("ipr_minimum_age")
config.ipr_minimum_age = text2num(value)
- if("random_submap_orientation")
- config.random_submap_orientation = 1
-
if("autostart_solars")
config.autostart_solars = TRUE
diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm
index ce4d200d45..42e1de651c 100644
--- a/code/controllers/subsystems/mapping.dm
+++ b/code/controllers/subsystems/mapping.dm
@@ -5,7 +5,6 @@ SUBSYSTEM_DEF(mapping)
flags = SS_NO_FIRE
var/list/map_templates = list()
- var/dmm_suite/maploader = null
var/obj/effect/landmark/engine_loader/engine_loader
var/list/shelter_templates = list()
@@ -17,7 +16,6 @@ SUBSYSTEM_DEF(mapping)
if(subsystem_initialized)
return
world.max_z_changed() // This is to set up the player z-level list, maxz hasn't actually changed (probably)
- maploader = new()
load_map_templates()
if(CONFIG_GET(flag/generate_map))
@@ -173,3 +171,10 @@ SUBSYSTEM_DEF(mapping)
if (!Debug2)
return // Only show up in stat panel if debugging is enabled.
. = ..()
+
+// VOREStation Edit: BAPI-dmm
+/datum/controller/subsystem/mapping/Shutdown()
+ // Force bapi to drop it's cached maps on server shutdown.
+ _bapidmm_clear_map_data()
+ fdel("data/baked_dmm_files/")
+// VOREStation Edit End
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 89491a5efb..7a0515abfc 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -1,5 +1,7 @@
// Areas.dm
+GLOBAL_LIST_EMPTY(areas_by_type)
+
/area
var/fire = null
var/atmos = 1
@@ -55,6 +57,11 @@
var/no_spoilers = FALSE // If true, makes it much more difficult to see what is inside an area with things like mesons.
var/soundproofed = FALSE // If true, blocks sounds from other areas and prevents hearers on other areas from hearing the sounds within.
+/area/New()
+ // Used by the maploader, this must be done in New, not init
+ GLOB.areas_by_type[type] = src
+ return ..()
+
/area/Initialize()
. = ..()
luminosity = !(dynamic_lighting)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 55730da2a4..9f00c1613a 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -62,8 +62,8 @@
// During dynamic mapload (reader.dm) this assigns the var overrides from the .dmm file
// Native BYOND maploading sets those vars before invoking New(), by doing this FIRST we come as close to that behavior as we can.
- if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New()
- GLOB._preloader.load(src)
+ if(GLOB.use_preloader && (src.type == GLOB._preloader_path))//in case the instanciated atom is creating other atoms in New()
+ world.preloader_load(src)
// Pass our arguments to InitAtom so they can be passed to initialize(), but replace 1st with if-we're-during-mapload.
var/do_initialize = SSatoms.initialized
diff --git a/code/game/world.dm b/code/game/world.dm
index 3e4a5db544..6e8a3d33ae 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -1,19 +1,5 @@
-/proc/prof_init()
- var/lib
-
- switch(world.system_type)
- if(MS_WINDOWS) lib = "prof.dll"
- if(UNIX) lib = "libprof.so"
- else CRASH("unsupported platform")
-
- var/init = LIBCALL(lib, "init")()
- if("0" != init) CRASH("[lib] init error: [init]")
-
#define RECOMMENDED_VERSION 513
/world/New()
- #ifdef TRACY
- prof_init()
- #endif
world_startup_time = world.timeofday
rollover_safety_date = world.realtime - world.timeofday // 00:00 today (ish, since floating point error with world.realtime) of today
to_world_log("Map Loading Complete")
diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm
index 0d77bb37b5..d49c3ba739 100644
--- a/code/modules/admin/verbs/map_template_loadverb.dm
+++ b/code/modules/admin/verbs/map_template_loadverb.dm
@@ -10,20 +10,13 @@
return
template = SSmapping.map_templates[map]
- var/orientation = text2dir(tgui_input_list(usr, "Choose an orientation for this Map Template.", "Orientation", list("North", "South", "East", "West")))
- if(!orientation)
- return
-
- // Convert dir to degrees rotation
- orientation = dir2angle(orientation)
-
var/turf/T = get_turf(mob)
if(!T)
return
var/list/preview = list()
- template.preload_size(template.mappath, orientation)
- for(var/S in template.get_affected_turfs(T,centered = TRUE, orientation=orientation))
+ template.preload_size(template.mappath)
+ for(var/S in template.get_affected_turfs(T,centered = TRUE))
preview += image('icons/misc/debug_group.dmi',S ,"red")
usr.client.images += preview
if(tgui_alert(usr,"Confirm location.", "Template Confirm",list("No","Yes")) == "Yes")
@@ -31,7 +24,7 @@
usr.client.images -= preview
return
- if(template.load(T, centered = TRUE, orientation=orientation))
+ if(template.load(T, centered = TRUE))
message_admins(span_adminnotice("[key_name_admin(usr)] has placed a map template ([template.name])."))
else
to_chat(usr, "Failed to place map")
@@ -49,20 +42,13 @@
return
template = SSmapping.map_templates[map]
- var/orientation = text2dir(tgui_input_list(usr, "Choose an orientation for this Map Template.", "Orientation", list("North", "South", "East", "West")))
- if(!orientation)
- return
-
- // Convert dir to degrees rotation
- orientation = dir2angle(orientation)
-
- if((!(orientation%180) && template.width > world.maxx || template.height > world.maxy) || (orientation%180 && template.width > world.maxy || template.height > world.maxx))
- if(tgui_alert(usr,"This template is larger than the existing z-levels. It will EXPAND ALL Z-LEVELS to match the size of the template. This may cause chaos. Are you sure you want to do this?","DANGER!!!",list("Cancel","Yes")) != "Yes")
+ if(template.width > world.maxx || template.height > world.maxx)
+ if(tgui_alert(usr,"This template is larger than the existing z-levels. It will EXPAND ALL Z-LEVELS to match the size of the template. This may cause chaos. Are you sure you want to do this?","DANGER!!!",list("Cancel","Yes")) == "Cancel")
to_chat(usr,"Template placement aborted.")
return
if(tgui_alert(usr,"Confirm map load.", "Template Confirm",list("No","Yes")) == "Yes")
- if(template.load_new_z(orientation=orientation))
+ if(template.load_new_z())
message_admins(span_adminnotice("[key_name_admin(usr)] has placed a map template ([template.name]) on Z level [world.maxz]."))
else
to_chat(usr, "Failed to place map")
diff --git a/code/modules/maps/bapi-dmm/bapi_bindings.dm b/code/modules/maps/bapi-dmm/bapi_bindings.dm
new file mode 100644
index 0000000000..780445e4e6
--- /dev/null
+++ b/code/modules/maps/bapi-dmm/bapi_bindings.dm
@@ -0,0 +1,36 @@
+//THIS FILE IS AUTOMATICALLY GENERATED BY BAPI_DMM_READER, PLEASE DO NOT TOUCH IT
+//PROC DEFINITIONS MAY MOVE AROUND, THIS IS NORMAL
+
+/* This comment bypasses grep checks */ /var/__bapi_dmm_reader
+
+/proc/__detect_bapi_dmm_reader()
+ if (world.system_type == UNIX)
+ if(fexists("./libbapi_dmm_reader.so"))
+ // No need for LD_LIBRARY_PATH badness.
+ return __bapi_dmm_reader = "./libbapi_dmm_reader.so"
+ // It's not in the current directory, so try others
+ return __bapi_dmm_reader = "libbapi_dmm_reader"
+ else
+ return __bapi_dmm_reader = "bapi_dmm_reader"
+
+#define BAPI_DMM_READER (__bapi_dmm_reader || __detect_bapi_dmm_reader())
+
+/proc/_bapidmm_test_connection()
+ return call_ext(BAPI_DMM_READER, "byond:_bapidmm_test_connection_ffi")()
+
+/proc/_bapidmm_parse_map_blocking(dmm_file, map_datum)
+ return call_ext(BAPI_DMM_READER, "byond:_bapidmm_parse_map_blocking_ffi")(dmm_file, map_datum)
+
+/proc/_bapidmm_load_map_buffered(parsed_map, x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower,
+x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
+ return call_ext(BAPI_DMM_READER, "byond:_bapidmm_load_map_buffered_ffi")(parsed_map, x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower,
+x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
+
+/proc/_bapidmm_work_commandbuffer(parsed_map, resume_key)
+ return call_ext(BAPI_DMM_READER, "byond:_bapidmm_work_commandbuffer_ffi")(parsed_map, resume_key)
+
+/proc/_bapidmm_clear_map_data()
+ return call_ext(BAPI_DMM_READER, "byond:_bapidmm_clear_map_data_ffi")()
+
+/proc/bapidmm_generate_automata(limit_x, limit_y, iterations, initial_wall_cell)
+ return call_ext(BAPI_DMM_READER, "byond:bapidmm_generate_automata_ffi")(limit_x, limit_y, iterations, initial_wall_cell)
diff --git a/code/modules/maps/bapi-dmm/bapi_dmm_reader.dm b/code/modules/maps/bapi-dmm/bapi_dmm_reader.dm
new file mode 100644
index 0000000000..ea71276be8
--- /dev/null
+++ b/code/modules/maps/bapi-dmm/bapi_dmm_reader.dm
@@ -0,0 +1,274 @@
+// This file provides manually written utility types and such for the BAPI DMM Reader
+
+GLOBAL_LIST_EMPTY(cached_maps)
+
+GLOBAL_VAR_INIT(use_preloader, FALSE)
+GLOBAL_VAR_INIT(_preloader_path, null)
+GLOBAL_LIST_EMPTY(_preloader_attributes)
+
+/world/proc/preloader_setup(list/the_attributes, path)
+ if(LAZYLEN(the_attributes))
+ GLOB.use_preloader = TRUE
+ GLOB._preloader_attributes = the_attributes
+ GLOB._preloader_path = path
+
+/world/proc/preloader_load(atom/what)
+ GLOB.use_preloader = FALSE
+ var/list/attributes = GLOB._preloader_attributes
+ for(var/attribute in attributes)
+ var/value = attributes[attribute]
+ if(islist(value))
+ value = deepCopyList(value)
+ #ifdef TESTING
+ if(what.vars[attribute] == value)
+ var/message = "[what.type] at [AREACOORD(what)] - VAR: [attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")]"
+ world.log << "DIRTY VAR: [message]"
+ dirty_vars += message
+ #endif
+ what.vars[attribute] = value
+
+#define MAP_DMM "dmm"
+/**
+ * TGM SPEC:
+ * TGM is a derevation of DMM, with restrictions placed on it
+ * to make it easier to parse and to reduce merge conflicts/ease their resolution
+ *
+ * Requirements:
+ * Each "statement" in a key's details ends with a new line, and wrapped in (...)
+ * All paths end with either a comma or occasionally a {, then a new line
+ * Excepting the area, who is listed last and ends with a ) to mark the end of the key
+ *
+ * {} denotes a list of variable edits applied to the path that came before the first {
+ * the final } is followed by a comma, and then a new line
+ * Variable edits have the form \tname = value;\n
+ * Except the last edit, which has no final ;, and just ends in a newline
+ * No extra padding is permitted
+ * Many values are supported. See parse_constant()
+ * Strings must be wrapped in "...", files in '...', and lists in list(...)
+ * Files are kinda susy, and may not actually work. buyer beware
+ * Lists support assoc values as expected
+ * These constants can be further embedded into lists
+ *
+ * There can be no padding in front of, or behind a path
+ *
+ * Therefore:
+ * "key" = (
+ * /path,
+ * /other/path{
+ * var = list("name" = 'filepath');
+ * other_var = /path
+ * },
+ * /turf,
+ * /area)
+ *
+ */
+#define MAP_TGM "tgm"
+#define MAP_UNKNOWN "unknown"
+
+/// Returned from parse_map to give some metadata about the map
+/datum/bapi_parsed_map
+ var/_internal_index = -1
+
+ var/original_path = ""
+ var/map_format = MAP_UNKNOWN
+ var/key_len = 0
+ var/line_len = 0
+ var/expanded_y = FALSE
+ var/expanded_x = FALSE
+
+ /// Unoffset bounds. Null on parse failure.
+ var/list/bounds = list()
+ /// Offset bounds. Same as parsed_bounds until load().
+ var/list/parsed_bounds = list()
+
+ ///any turf in this list is skipped inside of build_coordinate. Lazy assoc list
+ var/list/turf_blacklist
+
+ var/loading = FALSE
+ var/loaded_warnings = list()
+
+/**
+ * Helper and recommened way to load a map file
+ * - dmm_file: The path to the map file
+ * - x_offset: The x offset to load the map at
+ * - y_offset: The y offset to load the map at
+ * - z_offset: The z offset to load the map at
+ * - crop_map: If true, the map will be cropped to the world bounds
+ * - measure_only: If true, the map will not be loaded, but the bounds will be calculated
+ * - no_changeturf: If true, the map will not call /turf/AfterChange
+ * - x_lower: The minimum x coordinate to load
+ * - x_upper: The maximum x coordinate to load
+ * - y_lower: The minimum y coordinate to load
+ * - y_upper: The maximum y coordinate to load
+ * - z_lower: The minimum z coordinate to load
+ * - z_upper: The maximum z coordinate to load
+ * - place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf
+ * - new_z: If true, a new z level will be created for the map
+ */
+/proc/load_map_bapi(
+ dmm_file,
+ x_offset = 1,
+ y_offset = 1,
+ z_offset,
+ crop_map = FALSE,
+ measure_only = FALSE,
+ no_changeturf = FALSE,
+ x_lower = -INFINITY,
+ x_upper = INFINITY,
+ y_lower = -INFINITY,
+ y_upper = INFINITY,
+ z_lower = -INFINITY,
+ z_upper = INFINITY,
+ place_on_top = FALSE,
+ new_z = FALSE,
+)
+ if(isfile(dmm_file))
+ log_debug("bapi-dmm was passed a file instead of a path string: [dmm_file]")
+ var/name = sanitize_filename("[dmm_file]")
+ var/path = "data/baked_dmm_files/[name]"
+ if(!fexists(path))
+ var/text = file2text(dmm_file)
+ rustg_file_write(text, path)
+ dmm_file = path
+
+ if(!fexists(dmm_file))
+ stack_trace("Invalid map path: [dmm_file]")
+ return
+
+ if(!(dmm_file in GLOB.cached_maps))
+ GLOB.cached_maps[dmm_file] = new /datum/bapi_parsed_map(dmm_file)
+
+ // Bay assumption
+ if(!z_offset)
+ z_offset = world.maxz + 1
+
+ var/datum/bapi_parsed_map/parsed_map = GLOB.cached_maps[dmm_file]
+ parsed_map = parsed_map.copy()
+ if(!measure_only && !isnull(parsed_map.bounds))
+ parsed_map.load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
+ return parsed_map
+
+/datum/bapi_parsed_map/New(tfile)
+ if(isnull(tfile))
+ return // create a new datum without loading a map
+ var/ret = _bapidmm_parse_map_blocking(tfile, src)
+ if(!ret)
+ CRASH("Failed to load map [tfile], check rust_log.txt")
+
+/datum/bapi_parsed_map/Destroy()
+ ..()
+ SSatoms.map_loader_stop(REF(src)) // Just in case, I don't want to double up here
+ if(turf_blacklist)
+ turf_blacklist.Cut()
+ parsed_bounds.Cut()
+ bounds.Cut()
+ return QDEL_HINT_HARDDEL_NOW
+
+/datum/bapi_parsed_map/proc/copy()
+ // Avoids duped work just in case
+ var/datum/bapi_parsed_map/newfriend = new()
+ // use the same under-the-hood data
+ newfriend._internal_index = _internal_index
+ newfriend.original_path = original_path
+ newfriend.map_format = map_format
+ newfriend.key_len = key_len
+ newfriend.line_len = line_len
+ newfriend.parsed_bounds = parsed_bounds.Copy()
+ // Copy parsed bounds to reset to initial values
+ newfriend.bounds = parsed_bounds.Copy()
+ newfriend.turf_blacklist = turf_blacklist?.Copy()
+ // Explicitly do NOT copy `loaded` and `loaded_warnings`
+ return newfriend
+
+/datum/bapi_parsed_map/proc/load(
+ x_offset = 1,
+ y_offset = 1,
+ z_offset = 1,
+ crop_map = FALSE,
+ no_changeturf = FALSE,
+ x_lower = -INFINITY,
+ x_upper = INFINITY,
+ y_lower = -INFINITY,
+ y_upper = INFINITY,
+ z_lower = -INFINITY,
+ z_upper = INFINITY,
+ place_on_top = FALSE,
+ new_z = FALSE,
+)
+ Master.StartLoadingMap()
+ . = _load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z)
+ Master.StopLoadingMap()
+
+/datum/bapi_parsed_map/proc/_load_impl(
+ x_offset = 1,
+ y_offset = 1,
+ z_offset = 1,
+ crop_map = FALSE,
+ no_changeturf = FALSE,
+ x_lower = -INFINITY,
+ x_upper = INFINITY,
+ y_lower = -INFINITY,
+ y_upper = INFINITY,
+ z_lower = -INFINITY,
+ z_upper = INFINITY,
+ place_on_top = FALSE,
+ new_z = FALSE,
+)
+ PRIVATE_PROC(TRUE)
+ SSatoms.map_loader_begin(REF(src))
+
+ // `loading` var handled by bapidmm
+ var/resume_key = _bapidmm_load_map_buffered(
+ src,
+ x_offset,
+ y_offset,
+ z_offset,
+ crop_map,
+ no_changeturf,
+ x_lower,
+ x_upper,
+ y_lower,
+ y_upper,
+ z_lower,
+ z_upper,
+ place_on_top,
+ new_z
+ )
+
+ if(!resume_key)
+ SSatoms.map_loader_stop(REF(src))
+ CRASH("Failed to generate command buffer, check rust_log.txt and other runtimes")
+
+ var/work_remaining = FALSE
+ do
+ work_remaining = _bapidmm_work_commandbuffer(src, resume_key)
+ stoplag()
+ while(work_remaining)
+
+ SSatoms.map_loader_stop(REF(src))
+
+ // if(new_z)
+ // for(var/z_index in bounds[MAP_MINZ] to bounds[MAP_MAXZ])
+ // SSmapping.build_area_turfs(z_index)
+
+ // if(!no_changeturf)
+ // var/list/turfs = block(
+ // locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),
+ // locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))
+ // for(var/turf/T as anything in turfs)
+ // //we do this after we load everything in. if we don't, we'll have weird atmos bugs regarding atmos adjacent turfs
+ // T.AfterChange(CHANGETURF_IGNORE_AIR)
+
+ // if(expanded_x || expanded_y)
+ // SEND_GLOBAL_SIGNAL(COMSIG_GLOB_EXPANDED_WORLD_BOUNDS, expanded_x, expanded_y)
+
+ return TRUE
+
+/datum/bapi_parsed_map/proc/has_warnings()
+ if(length(loaded_warnings))
+ return TRUE
+ return FALSE
+
+// #undef MAP_DMM
+// #undef MAP_TGM
+// #undef MAP_UNKNOWN
diff --git a/code/modules/maps/bapi-dmm/bapi_helpers.dm b/code/modules/maps/bapi-dmm/bapi_helpers.dm
new file mode 100644
index 0000000000..815e4764fd
--- /dev/null
+++ b/code/modules/maps/bapi-dmm/bapi_helpers.dm
@@ -0,0 +1,110 @@
+// Internal bapi-dmm helpers
+/datum/bapi_parsed_map/proc/_bapi_add_warning(warning)
+ loaded_warnings += list(warning)
+
+/datum/bapi_parsed_map/proc/_bapi_expand_map(x, y, z, new_z, z_offset)
+ if(x > world.maxx)
+ expanded_x = TRUE
+ world.maxx = x
+ // if(new_z)
+ // world.increase_max_x(x, map_load_z_cutoff = z_offset - 1)
+ // else
+ // world.increase_max_x(x)
+ if(y > world.maxy)
+ expanded_y = TRUE
+ world.maxy = y
+ // if(new_z)
+ // world.increase_max_y(y, map_load_z_cutoff = z_offset - 1)
+ // else
+ // world.increase_max_y(y)
+ if(z > world.maxz)
+ while(world.maxz < z)
+ world.increment_max_z()
+
+/proc/_bapi_helper_get_world_bounds()
+ . = list(world.maxx, world.maxy, world.maxz)
+
+/proc/_bapi_helper_text2path(text)
+ . = text2path(text)
+
+/proc/_bapi_helper_text2file(text)
+ . = file(text)
+
+/proc/_bapi_create_atom(path, crds)
+ set waitfor = FALSE
+ . = new path (crds)
+
+/proc/_bapi_setup_preloader(list/attributes, path)
+ world.preloader_setup(attributes, path)
+
+/proc/_bapi_apply_preloader(atom/A)
+ if(GLOB.use_preloader)
+ world.preloader_load(A)
+
+/proc/_bapi_new_atom(text_path, turf/crds, list/attributes)
+ var/path = text2path(text_path)
+ if(!path)
+ CRASH("Bad atom path [text_path]")
+
+ if(attributes != null)
+ world.preloader_setup(attributes, path)
+
+ var/atom/instance = _bapi_create_atom(path, crds) // first preloader pass
+
+ if(GLOB.use_preloader && instance) // second preloader pass for atoms that don't ..() in New()
+ world.preloader_load(instance)
+
+/proc/_bapi_create_or_get_area(text_path)
+ var/path = text2path(text_path)
+ if(!path)
+ CRASH("Bad area path [text_path]")
+
+ var/area/area_instance = GLOB.areas_by_type[path]
+ if(!area_instance)
+ area_instance = new path(null)
+ if(!area_instance)
+ CRASH("[path] failed to be new'd, what'd you do?")
+
+ return area_instance
+
+/proc/_bapi_handle_area_contain(turf/T, area/A)
+ // var/area/old_area = T.loc
+ // if(old_area == A)
+ // return // no changing areas that already contain this turf, it'll confuse them
+ // LISTASSERTLEN(old_area.turfs_to_uncontain_by_zlevel, T.z, list())
+ // LISTASSERTLEN(A.turfs_by_zlevel, T.z, list())
+ // old_area.turfs_to_uncontain_by_zlevel[T.z] += T
+ // A.turfs_by_zlevel[T.z] += T
+
+/proc/_bapi_create_turf(turf/crds, text_path, list/attributes, place_on_top, no_changeturf)
+ var/path = text2path(text_path)
+ if(!path)
+ CRASH("Bad turf path [text_path]")
+
+ if(attributes != null)
+ world.preloader_setup(attributes, path)
+
+ var/atom/instance
+ if(no_changeturf)
+ instance = _bapi_create_atom(path, crds)
+ else
+ instance = crds.ChangeTurf(path, FALSE, TRUE)
+
+ if(GLOB.use_preloader && instance) // second preloader pass for atoms that don't ..() in New()
+ world.preloader_load(instance)
+
+/proc/_bapi_add_turf_to_area(area/A, turf/T)
+ if(!A || !T)
+ return
+ A.contents.Add(T)
+
+/proc/_bapi_helper_get_world_type_turf()
+ return "[world.turf]"
+
+/proc/_bapi_helper_get_world_type_area()
+ return "[world.area]"
+
+/// Implement this to have bapi-dmm sleep occasionally
+/// by returning true
+/proc/_bapi_helper_tick_check()
+ return TICK_CHECK
diff --git a/code/modules/maps/dmm_suite.dm b/code/modules/maps/dmm_suite.dm
deleted file mode 100644
index a9f9825211..0000000000
--- a/code/modules/maps/dmm_suite.dm
+++ /dev/null
@@ -1,73 +0,0 @@
-var/global/dmm_suite/maploader = null
-
-dmm_suite{
- /*
-
- dmm_suite version 1.0
- Released January 30th, 2011.
-
- defines the object /dmm_suite
- - Provides the proc load_map()
- - Loads the specified map file onto the specified z-level.
- - provides the proc write_map()
- - Returns a text string of the map in dmm format
- ready for output to a file.
- - provides the proc save_map()
- - Returns a .dmm file if map is saved
- - Returns FALSE if map fails to save
-
- The dmm_suite provides saving and loading of map files in BYOND's native DMM map
- format. It approximates the map saving and loading processes of the Dream Maker
- and Dream Seeker programs so as to allow editing, saving, and loading of maps at
- runtime.
-
- ------------------------
-
- To save a map at runtime, create an instance of /dmm_suite, and then call
- write_map(), which accepts three arguments:
- - A turf representing one corner of a three dimensional grid (Required).
- - Another turf representing the other corner of the same grid (Required).
- - Any, or a combination, of several bit flags (Optional, see documentation).
-
- The order in which the turfs are supplied does not matter, the /dmm_writer will
- determine the grid containing both, in much the same way as DM's block() function.
- write_map() will then return a string representing the saved map in dmm format;
- this string can then be saved to a file, or used for any other purose.
-
- ------------------------
-
- To load a map at runtime, create an instance of /dmm_suite, and then call load_map(),
- which accepts two arguments:
- - A .dmm file to load (Required).
- - A number representing the z-level on which to start loading the map (Optional).
-
- The /dmm_suite will load the map file starting on the specified z-level. If no
- z-level was specified, world.maxz will be increased so as to fit the map. Note
- that if you wish to load a map onto a z-level that already has objects on it,
- you will have to handle the removal of those objects. Otherwise the new map will
- simply load the new objects on top of the old ones.
-
- Also note that all type paths specified in the .dmm file must exist in the world's
- code, and that the /dmm_reader trusts that files to be loaded are in fact valid
- .dmm files. Errors in the .dmm format will cause runtime errors.
-
- */
-
- verb/load_map(var/dmm_file as file, var/z_offset as num)
- // dmm_file: A .dmm file to load (Required).
- // z_offset: A number representing the z-level on which to start loading the map (Optional).
-
- verb/write_map(var/turf/t1 as turf, var/turf/t2 as turf, var/flags as num){
- // t1: A turf representing one corner of a three dimensional grid (Required).
- // t2: Another turf representing the other corner of the same grid (Required).
- // flags: Any, or a combination, of several bit flags (Optional, see documentation).
- }
-
- // save_map is included as a legacy proc. Use write_map instead.
- verb/save_map(var/turf/t1 as turf, var/turf/t2 as turf, var/map_name as text, var/flags as num){
- // t1: A turf representing one corner of a three dimensional grid (Required).
- // t2: Another turf representing the other corner of the same grid (Required).
- // map_name: A valid name for the map to be saved, such as "castle" (Required).
- // flags: Any, or a combination, of several bit flags (Optional, see documentation).
- }
- }
\ No newline at end of file
diff --git a/code/modules/maps/fromdmp.dm b/code/modules/maps/fromdmp.dm
deleted file mode 100644
index 4c5b62a310..0000000000
--- a/code/modules/maps/fromdmp.dm
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- DMP to swapmap converter
- version 1.0
-
- by Lummox JR
- */
-
-/mob/verb/Convert(filename as file)
- dmp2swapmap(filename)
-
-/proc/d2sm_prepmap(filename)
- var/txt = file2text(filename)
- if(!txt) return
- var/i,j
- i=findText(txt,ascii2text(13)) // eliminate carriage returns
- while(i)
- txt=copytext(txt,1,i)+copytext(txt,i+1)
- i=findText(txt,ascii2text(13),i)
- i=findText(txt,"\\\n")
- while(i)
- for(j=i+2,j<=length(txt),++j) if(text2ascii(txt,j)>32) break
- txt=copytext(txt,1,i)+copytext(txt,j)
- i=findText(txt,"\\\n",i)
- return txt
-
-/proc/dmp2swapmap(filename)
- //var/txt = file2text(filename)
- //if(!txt) return
- var/txt = d2sm_prepmap(filename)
- var/mapname="[filename]"
- var/i,j,k
- i=findtext(mapname,".dmp")
- while(i && i+432) break
- txt=copytext(txt,1,i)+copytext(txt,j)
- i=findText(txt,"\\\n",i) */
- var/list/codes=new
- var/codelen=1
- var/list/areas
- var/mode=34
- var/z=0
- var/X=0,Y=0,Z=0
- while(txt)
- if(text2ascii(txt)==34)
- if(mode!=34)
- to_world("Corrupt map file [filename]: Unexpected code found after z-level [z]")
- return
- // standard line:
- // "a" = (/obj, /obj, /turf, /area)
- i=findtext(txt,"\"",2)
- var/code=copytext(txt,2,i)
- codelen=length(code)
- i=findtext(txt,"(",i)
- if(!i)
- to_world("Corrupt map file [filename]: No type list follows \"[code]\"")
- return
- k=findtext(txt,"\n",++i)
- j=(k || length(txt+1))
- while(--j>=i && text2ascii(txt,j)!=41)
- if(j2) codetrans+=d2sm_Contents(L,L.len-2,"\t\t\t\t")
- codes[code]=copytext(codetrans,1,length(codetrans))
- else if(text2ascii(txt)==40)
- mode=40
- // standard line (top-down, left-right symbol order):
- // (1,1,1) = {"
- // abcde
- // bcdef
- // "}
- i=d2sm_MatchBrace(txt,1,40)
- if(!i)
- to_world("Corrupt map file [filename]: No matching ) for coordinates: [copytext(txt,1,findtext(txt,"\n"))]")
- return
- var/list/coords=d2sm_ParseCommaList(copytext(txt,2,i))
- if(istext(coords) || coords.len!=3)
- to_world("Corrupt map file [filename]: [istext(coords)?(coords):"[copytext(txt,1,i+1)] is not a valid (x,y,z) coordinate"]")
- return
- j=findtext(txt,"{",i+1)
- if(!j)
- to_world("Corrupt map file [filename]: No braces {} following [copytext(txt,1,i+1)]")
- return
- k=d2sm_MatchBrace(txt,j,123)
- if(!k)
- to_world("Corrupt map file [filename]: No closing brace } following [copytext(txt,1,i+1)]")
- return
- var/mtxt=copytext(txt,j+1,k)
- if(findText(mtxt,"\"\n")!=1 || !findText(mtxt,"\n\"",length(mtxt)-1))
- to_world(findText(mtxt,"\"\n"))
- to_world(findText(mtxt,"\n\"",length(mtxt)-1))
- to_world("Corrupt map file [filename]: No quotes in braces following [copytext(txt,1,i+1)]")
- return
- mtxt=copytext(mtxt,2,length(mtxt))
- var/_x=0,_y=0
- for(i=1,,++_y)
- j=findText(mtxt,"\n",i+1)
- if(!j) break
- _x=max(_x,(j-i-1)/codelen)
- i=j
- X=max(X,_x)
- Y=max(Y,_y)
- z=text2num(coords[3])
- Z=max(Z,z)
- txt=copytext(txt,k+1)
- else
- i=findtext(txt,"\n")
- txt=i?copytext(txt,i+1):null
- to_world("Map size: [X],[Y],[Z]")
- //for(var/code in codes)
- // to_world("Code \"[code]\":\n[codes[code]]")
- fdel("map_[mapname].txt")
- var/F = file("map_[mapname].txt")
- to_chat(F, ". = object(\".0\")\n.0\n\ttype = /swapmap\n\tid = \"[mapname]\"\n\tz = [Z]\n\ty = [Y]\n\tx = [X]")
- if(areas)
- txt=""
- for(i=0,i0,--y) // map is top-down
- ++i
- to_chat(F, "\t\t[y]")
- for(var/x in 1 to _x)
- to_chat(F, "\t\t\t[x]")
- j=i+codelen
- to_chat(F, codes[copytext(mtxt,i,j)])
- i=j
- txt=copytext(txt,k+1)
- /* for(z in 1 to Z)
- to_chat(F, "\t[z]")
- for(var/y in 1 to Y)
- to_chat(F, "\t\t[y]")
- for(var/x in 1 to X)
- to_chat(F, "\t\t\t[x]")
- to_chat(F, codes[pick(codes)]) */
-
-/proc/d2sm_ParseCommaList(txt)
- var/list/L=new
- var/i,ch
- for(i=1,i<=length(txt),++i)
- if(text2ascii(txt,i)>32) break
- for(,i<=length(txt),++i)
- ch=text2ascii(txt,i)
- if(ch==44)
- L+=copytext(txt,1,i)
- for(++i,i<=length(txt),++i) if(text2ascii(txt,i)>32) break
- txt=copytext(txt,i)
- i=0;continue
- if(ch==40 || ch==91 || ch==123)
- i=d2sm_MatchBrace(txt,i,ch)
- if(!i) return "No matching brace found for [ascii2text(ch)]"
- if(i>1) L+=copytext(txt,1,i)
- return L
-
-/proc/d2sm_MatchBrace(txt, i, which)
- if(which==40) ++which
- else which+=2
- var/j,ch
- for(j=i+1,j<=length(txt),++j)
- ch=text2ascii(txt,j)
- if(ch==which) return j
- if(ch==40 || ch==91 || ch==123)
- j=d2sm_MatchBrace(txt,j,ch)
- if(!j) return 0
-
-/proc/d2sm_ConvertType(tt,tabs="")
- var/i=findText(tt,"{")
- if(!i) return "[tabs]type = [tt]\n"
- .="[tabs]type = [copytext(tt,1,i)]\n"
- var/list/L=d2sm_ParseCommaList(copytext(tt,i+1,d2sm_MatchBrace(tt,i,123)))
- if(istext(L)) return
- for(var/pair in L)
- .="[.][tabs][pair]\n"
-
-/proc/d2sm_Contents(list/conts,n,tabs="")
- .="[tabs]contents = list("
- var/i
- for(i=0,iz_depth)
- break
-
- ycrd--
-
- sleep(-1)
-
- //reached End Of File
- if(findtext(tfile,quote+"}",zpos,0)+2==tfile_len)
- break
- sleep(-1)
-
-/**
- * Fill a given tile with its area/turf/objects/mobs
- * Variable model is one full map line (e.g /turf/unsimulated/wall{icon_state = "rock"},/area/mine/explored)
- *
- * WORKING :
- *
- * 1) Read the model string, member by member (delimiter is ',')
- *
- * 2) Get the path of the atom and store it into a list
- *
- * 3) a) Check if the member has variables (text within '{' and '}')
- *
- * 3) b) Construct an associative list with found variables, if any (the atom index in members is the same as its variables in members_attributes)
- *
- * 4) Instanciates the atom with its variables
- *
- */
-/dmm_suite/proc/parse_grid(var/model as text,var/xcrd as num,var/ycrd as num,var/zcrd as num)
- /*Method parse_grid()
- - Accepts a text string containing a comma separated list of type paths of the
- same construction as those contained in a .dmm file, and instantiates them.
- */
-
- var/list/members = list()//will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored)
- var/list/members_attributes = list()//will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list())
-
-
- /////////////////////////////////////////////////////////
- //Constructing members and corresponding variables lists
- ////////////////////////////////////////////////////////
-
- var/index=1
- var/old_position = 1
- var/dpos
-
- do
- //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored)
- dpos= find_next_delimiter_position(model,old_position,",","{","}")//find next delimiter (comma here) that's not within {...}
-
- var/full_def = copytext(model,old_position,dpos)//full definition, e.g : /obj/foo/bar{variables=derp}
- var/atom_def = text2path(copytext(full_def,1,findtext(full_def,"{")))//path definition, e.g /obj/foo/bar
- members.Add(atom_def)
- old_position = dpos + 1
-
- //transform the variables in text format into a list (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7))
- var/list/fields = list()
-
- var/variables_start = findtext(full_def,"{")
- if(variables_start)//if there's any variable
- full_def = copytext(full_def,variables_start+1,length(full_def))//removing the last '}'
- fields = text2list(full_def,";")
-
- //then fill the members_attributes list with the corresponding variables
- members_attributes.len++
- members_attributes[index++] = fields
-
- sleep(-1)
- while(dpos != 0)
-
-
- ////////////////
- //Instanciation
- ////////////////
-
- //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile
-
- //in case of multiples turfs on one tile,
- //will contains the images of all underlying turfs, to simulate the DMM multiple tiles piling
- var/list/turfs_underlays = list()
-
- //first instance the /area and remove it from the members list
- index = members.len
- var/atom/instance
- _preloader = new(members_attributes[index])//preloader for assigning set variables on atom creation
-
- instance = locate(members[index])
- instance.contents.Add(locate(xcrd,ycrd,zcrd))
-
- if(_preloader && instance)
- _preloader.load(instance)
-
- members.Remove(members[index])
-
- //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect
-
- var/first_turf_index = 1
- while(!ispath(members[first_turf_index],/turf)) //find first /turf object in members
- first_turf_index++
-
- //instanciate the first /turf
- var/turf/T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],xcrd,ycrd,zcrd)
-
- //if others /turf are presents, simulates the underlays piling effect
- index = first_turf_index + 1
- while(index <= members.len)
- turfs_underlays.Insert(1,image(T.icon,null,T.icon_state,T.layer,T.dir))//add the current turf image to the underlays list
- var/turf/UT = instance_atom(members[index],members_attributes[index],xcrd,ycrd,zcrd)//instance new turf
- add_underlying_turf(UT,T,turfs_underlays)//simulates the DMM piling effect
- T = UT
- index++
-
- //finally instance all remainings objects/mobs
- for(index=1,index < first_turf_index,index++)
- instance_atom(members[index],members_attributes[index],xcrd,ycrd,zcrd)
-
-////////////////
-//Helpers procs
-////////////////
-
-//Instance an atom at (x,y,z) and gives it the variables in attributes
-/dmm_suite/proc/instance_atom(var/path,var/list/attributes, var/x, var/y, var/z)
- var/atom/instance
- _preloader = new(attributes, path)
-
- instance = new path (locate(x,y,z))//first preloader pass
-
- if(_preloader && instance)//second preloader pass, for those atoms that don't ..() in New()
- _preloader.load(instance)
-
- return instance
-
-//text trimming (both directions) helper proc
-//optionally removes quotes before and after the text (for variable name)
-/dmm_suite/proc/trim_text(var/what as text,var/trim_quotes=0)
- while(length(what) && (findtext(what," ",1,2)))
- what=copytext(what,2,0)
- while(length(what) && (findtext(what," ",length(what),0)))
- what=copytext(what,1,length(what))
- if(trim_quotes)
- while(length(what) && (findtext(what,quote,1,2)))
- what=copytext(what,2,0)
- while(length(what) && (findtext(what,quote,length(what),0)))
- what=copytext(what,1,length(what))
- return what
-
-//find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape
-//returns 0 if reached the last delimiter
-/dmm_suite/proc/find_next_delimiter_position(var/text as text,var/initial_position as num, var/delimiter=",",var/opening_escape=quote,var/closing_escape=quote)
- var/position = initial_position
- var/next_delimiter = findtext(text,delimiter,position,0)
- var/next_opening = findtext(text,opening_escape,position,0)
-
- while((next_opening != 0) && (next_opening < next_delimiter))
- position = findtext(text,closing_escape,next_opening + 1,0)+1
- next_delimiter = findtext(text,delimiter,position,0)
- next_opening = findtext(text,opening_escape,position,0)
-
- return next_delimiter
-
-
-//build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7))
-//return the filled list
-/dmm_suite/proc/text2list(var/text as text,var/delimiter=",")
-
- var/list/to_return = list()
-
- var/position
- var/old_position = 1
-
- do
- //find next delimiter that is not within "..."
- position = find_next_delimiter_position(text,old_position,delimiter)
-
- //check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7))
- var/equal_position = findtext(text,"=",old_position, position)
-
- var/trim_left = trim_text(copytext(text,old_position,(equal_position ? equal_position : position)),1)//the name of the variable, must trim quotes to build a BYOND compliant associatives list
- old_position = position + 1
-
- if(equal_position)//associative var, so do the association
- var/trim_right = trim_text(copytext(text,equal_position+1,position))//the content of the variable
-
- //Check for string
- if(findtext(trim_right,quote,1,2))
- trim_right = copytext(trim_right,2,findtext(trim_right,quote,3,0))
-
- //Check for number
- else if(isnum(text2num(trim_right)))
- trim_right = text2num(trim_right)
-
- //Check for null
- else if(trim_right == "null")
- trim_right = null
-
- //Check for list
- else if(copytext(trim_right,1,5) == "list")
- trim_right = text2list(copytext(trim_right,6,length(trim_right)))
-
- //Check for file
- else if(copytext(trim_right,1,2) == "'")
- trim_right = file(copytext(trim_right,2,length(trim_right)))
-
- to_return[trim_left] = trim_right
-
- else//simple var
- to_return[trim_left] = null
-
- while(position != 0)
-
- return to_return
-
-//simulates the DM multiple turfs on one tile underlaying
-/dmm_suite/proc/add_underlying_turf(var/turf/placed,var/turf/underturf, var/list/turfs_underlays)
- if(underturf.density)
- placed.density = TRUE
- if(underturf.opacity)
- placed.opacity = 1
- placed.underlays += turfs_underlays
-
-//atom creation method that preloads variables at creation
-/atom/New()
- if(_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
- _preloader.load(src)
-
- . = ..()
-
-//////////////////
-//Preloader datum
-//////////////////
-
-/dmm_suite/preloader
- parent_type = /datum
- var/list/attributes
- var/target_path
-
-/dmm_suite/preloader/New(var/list/the_attributes, var/path)
- .=..()
- if(!the_attributes.len)
- Del()
- return
- attributes = the_attributes
- target_path = path
-
-/dmm_suite/preloader/proc/load(atom/what)
- for(var/attribute in attributes)
- what.vars[attribute] = attributes[attribute]
- Del()
\ No newline at end of file
diff --git a/code/modules/maps/swapmaps.dm b/code/modules/maps/swapmaps.dm
deleted file mode 100644
index 629ea0042c..0000000000
--- a/code/modules/maps/swapmaps.dm
+++ /dev/null
@@ -1,678 +0,0 @@
-//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
-
-/*
- SwapMaps library by Lummox JR
- developed for digitalBYOND
- http://www.digitalbyond.org
-
- Version 2.1
-
- The purpose of this library is to make it easy for authors to swap maps
- in and out of their game using savefiles. Swapped-out maps can be
- transferred between worlds for an MMORPG, sent to the client, etc.
- This is facilitated by the use of a special datum and a global list.
-
- Uses of swapmaps:
-
- - Temporary battle arenas
- - House interiors
- - Individual custom player houses
- - Virtually unlimited terrain
- - Sharing maps between servers running different instances of the same
- game
- - Loading and saving pieces of maps for reusable room templates
- */
-
-/*
- User Interface:
-
- VARS:
-
- swapmaps_iconcache
- An associative list of icon files with names, like
- 'player.dmi' = "player"
- swapmaps_mode
- This must be set at runtime, like in world/New().
-
- SWAPMAPS_SAV 0 (default)
- Uses .sav files for raw /savefile output.
- SWAPMAPS_TEXT 1
- Uses .txt files via ExportText() and ImportText(). These maps
- are easily editable and appear to take up less space in the
- current version of BYOND.
-
- PROCS:
-
- SwapMaps_Find(id)
- Find a map by its id
- SwapMaps_Load(id)
- Load a map by its id
- SwapMaps_Save(id)
- Save a map by its id (calls swapmap.Save())
- SwapMaps_Unload(id)
- Save and unload a map by its id (calls swapmap.Unload())
- SwapMaps_Save_All()
- Save all maps
- SwapMaps_DeleteFile(id)
- Delete a map file
- SwapMaps_CreateFromTemplate(id)
- Create a new map by loading another map to use as a template.
- This map has id==src and will not be saved. To make it savable,
- change id with swapmap.SetID(newid).
- SwapMaps_LoadChunk(id,turf/locorner)
- Load a swapmap as a "chunk", at a specific place. A new datum is
- created but it's not added to the list of maps to save or unload.
- The new datum can be safely deleted without affecting the turfs
- it loaded. The purpose of this is to load a map file onto part of
- another swapmap or an existing part of the world.
- locorner is the corner turf with the lowest x,y,z values.
- SwapMaps_SaveChunk(id,turf/corner1,turf/corner2)
- Save a piece of the world as a "chunk". A new datum is created
- for the chunk, but it can be deleted without destroying any turfs.
- The chunk file can be reloaded as a swapmap all its own, or loaded
- via SwapMaps_LoadChunk() to become part of another map.
- SwapMaps_GetSize(id)
- Return a list corresponding to the x,y,z sizes of a map file,
- without loading the map.
- Returns null if the map is not found.
- SwapMaps_AddIconToCache(name,icon)
- Cache an icon file by name for space-saving storage
-
- swapmap.New(id,x,y,z)
- Create a new map; specify id, width (x), height (y), and
- depth (z)
- Default size is world.maxx,world.maxy,1
- swapmap.New(id,turf1,turf2)
- Create a new map; specify id and 2 corners
- This becomes a /swapmap for one of the compiled-in maps, for
- easy saving.
- swapmap.New()
- Create a new map datum, but does not allocate space or assign an
- ID (used for loading).
- swapmap.Del()
- Deletes a map but does not save
- swapmap.Save()
- Saves to map_[id].sav
- Maps with id==src are not saved.
- swapmap.Unload()
- Saves the map and then deletes it
- Maps with id==src are not saved.
- swapmap.SetID(id)
- Change the map's id and make changes to the lookup list
- swapmap.AllTurfs(z)
- Returns a block of turfs encompassing the entire map, or on just
- one z-level
- z is in world coordinates; it is optional
- swapmap.Contains(turf/T)
- Returns nonzero if T is inside the map's boundaries.
- Also works for objs and mobs, but the proc is not area-safe.
- swapmap.InUse()
- Returns nonzero if a mob with a key is within the map's
- boundaries.
- swapmap.LoCorner(z=z1)
- Returns locate(x1,y1,z), where z=z1 if none is specified.
- swapmap.HiCorner(z=z2)
- Returns locate(x2,y2,z), where z=z2 if none is specified.
- swapmap.BuildFilledRectangle(turf/corner1,turf/corner2,item)
- Builds a filled rectangle of item from one corner turf to the
- other, on multiple z-levels if necessary. The corners may be
- specified in any order.
- item is a type path like /turf/wall or /obj/barrel{full=1}.
- swapmap.BuildRectangle(turf/corner1,turf/corner2,item)
- Builds an unfilled rectangle of item from one corner turf to
- the other, on multiple z-levels if necessary.
- swapmap.BuildInTurfs(list/turfs,item)
- Builds item on all of the turfs listed. The list need not
- contain only turfs, or even only atoms.
- */
-
-swapmap
- var/id // a string identifying this map uniquely
- var/x1 // minimum x,y,z coords
- var/y1
- var/z1
- var/x2 // maximum x,y,z coords (also used as width,height,depth until positioned)
- var/y2
- var/z2
- var/tmp/locked // don't move anyone to this map; it's saving or loading
- var/tmp/mode // save as text-mode
- var/ischunk // tells the load routine to load to the specified location
-
- New(_id,x,y,z)
- if(isnull(_id)) return
- id=_id
- mode=swapmaps_mode
- if(isturf(x) && isturf(y))
- /*
- Special format: Defines a map as an existing set of turfs;
- this is useful for saving a compiled map in swapmap format.
- Because this is a compiled-in map, its turfs are not deleted
- when the datum is deleted.
- */
- x1=min(x:x,y:x);x2=max(x:x,y:x)
- y1=min(x:y,y:y);y2=max(x:y,y:y)
- z1=min(x:z,y:z);z2=max(x:z,y:z)
- InitializeSwapMaps()
- if(z2>swapmaps_compiled_maxz ||\
- y2>swapmaps_compiled_maxy ||\
- x2>swapmaps_compiled_maxx)
- qdel(src)
- return
- x2=x?(x):world.maxx
- y2=y?(y):world.maxy
- z2=z?(z):1
- AllocateSwapMap()
-
- Del()
- // a temporary datum for a chunk can be deleted outright
- // for others, some cleanup is necessary
- if(!ischunk)
- swapmaps_loaded-=src
- swapmaps_byname-=id
- if(z2>swapmaps_compiled_maxz ||\
- y2>swapmaps_compiled_maxy ||\
- x2>swapmaps_compiled_maxx)
- var/list/areas=new
- for(var/atom/A in block(locate(x1,y1,z1),locate(x2,y2,z2)))
- for(var/obj/O in A) qdel(O)
- for(var/mob/M in A)
- if(!M.key) qdel(M)
- else M.loc=null
- areas[A.loc]=null
- qdel(A)
- // delete areas that belong only to this map
- for(var/area/a in areas)
- if(a && !a.contents.len) qdel(a)
- if(x2>=world.maxx || y2>=world.maxy || z2>=world.maxz) CutXYZ()
- qdel(areas)
- ..()
-
- /*
- Savefile format:
- map
- id
- x // size, not coords
- y
- z
- areas // list of areas, not including default
- [each z; 1 to depth]
- [each y; 1 to height]
- [each x; 1 to width]
- type // of turf
- AREA // if non-default; saved as a number (index into areas list)
- vars // all other changed vars
- */
- Write(savefile/S)
- var/x
- var/y
- var/z
- var/n
- var/list/areas
- var/area/defarea=locate(world.area)
- if(!defarea) defarea=new world.area
- areas=list()
- for(var/turf/T in block(locate(x1,y1,z1),locate(x2,y2,z2)))
- areas[T.loc]=null
- for(n in areas) // quickly eliminate associations for smaller storage
- areas-=n
- areas+=n
- areas-=defarea
- InitializeSwapMaps()
- locked=1
- S["id"] << id
- S["z"] << z2-z1+1
- S["y"] << y2-y1+1
- S["x"] << x2-x1+1
- S["areas"] << areas
- for(n in 1 to areas.len) areas[areas[n]]=n
- var/oldcd=S.cd
- for(z=z1,z<=z2,++z)
- S.cd="[z-z1+1]"
- for(y=y1,y<=y2,++y)
- S.cd="[y-y1+1]"
- for(x=x1,x<=x2,++x)
- S.cd="[x-x1+1]"
- var/turf/T=locate(x,y,z)
- S["type"] << T.type
- if(T.loc!=defarea) S["AREA"] << areas[T.loc]
- T.Write(S)
- S.cd=".."
- S.cd=".."
- sleep()
- S.cd=oldcd
- locked=0
- qdel(areas)
-
- Read(savefile/S,_id,turf/locorner)
- var/x
- var/y
- var/z
- var/n
- var/list/areas
- var/area/defarea=locate(world.area)
- id=_id
- if(locorner)
- ischunk=1
- x1=locorner.x
- y1=locorner.y
- z1=locorner.z
- if(!defarea) defarea=new world.area
- if(!_id)
- S["id"] >> id
- else
- var/dummy
- S["id"] >> dummy
- S["z"] >> z2 // these are depth,
- S["y"] >> y2 // height,
- S["x"] >> x2 // width
- S["areas"] >> areas
- locked=1
- AllocateSwapMap() // adjust x1,y1,z1 - x2,y2,z2 coords
- var/oldcd=S.cd
- for(z=z1,z<=z2,++z)
- S.cd="[z-z1+1]"
- for(y=y1,y<=y2,++y)
- S.cd="[y-y1+1]"
- for(x=x1,x<=x2,++x)
- S.cd="[x-x1+1]"
- var/tp
- S["type"]>>tp
- var/turf/T=locate(x,y,z)
- T.loc.contents-=T
- T=new tp(locate(x,y,z))
- if("AREA" in S.dir)
- S["AREA"]>>n
- var/area/A=areas[n]
- A.contents+=T
- else defarea.contents+=T
- // clear the turf
- for(var/obj/O in T) qdel(O)
- for(var/mob/M in T)
- if(!M.key) qdel(M)
- else M.loc=null
- // finish the read
- T.Read(S)
- S.cd=".."
- S.cd=".."
- sleep()
- S.cd=oldcd
- locked=0
- qdel(areas)
-
- /*
- Find an empty block on the world map in which to load this map.
- If no space is found, increase world.maxz as necessary. (If the
- map is greater in x,y size than the current world, expand
- world.maxx and world.maxy too.)
-
- Ignore certain operations if loading a map as a chunk. Use the
- x1,y1,z1 position for it, and *don't* count it as a loaded map.
- */
- proc/AllocateSwapMap()
- InitializeSwapMaps()
- world.maxx=max(x2,world.maxx) // stretch x/y if necessary
- world.maxy=max(y2,world.maxy)
- if(!ischunk)
- if(world.maxz<=swapmaps_compiled_maxz)
- z1=swapmaps_compiled_maxz+1
- x1=1;y1=1
- else
- var/list/l=ConsiderRegion(1,1,world.maxx,world.maxy,swapmaps_compiled_maxz+1)
- x1=l[1]
- y1=l[2]
- z1=l[3]
- qdel(l)
- x2+=x1-1
- y2+=y1-1
- z2+=z1-1
- world.maxz=max(z2,world.maxz) // stretch z if necessary
- if(!ischunk)
- swapmaps_loaded[src]=null
- swapmaps_byname[id]=src
-
- proc/ConsiderRegion(X1,Y1,X2,Y2,Z1,Z2)
- while(1)
- var/nextz=0
- var/swapmap/M
- for(M in swapmaps_loaded)
- if(M.z2Z2) || M.z1>=Z1+z2 ||\
- M.x1>X2 || M.x2=X1+x2 ||\
- M.y1>Y2 || M.y2=Y1+y2) continue
- // look for sub-regions with a defined ceiling
- var/nz2=Z2?(Z2):Z1+z2-1+M.z2-M.z1
- if(M.x1>=X1+x2)
- .=ConsiderRegion(X1,Y1,M.x1-1,Y2,Z1,nz2)
- if(.) return
- else if(M.x2<=X2-x2)
- .=ConsiderRegion(M.x2+1,Y1,X2,Y2,Z1,nz2)
- if(.) return
- if(M.y1>=Y1+y2)
- .=ConsiderRegion(X1,Y1,X2,M.y1-1,Z1,nz2)
- if(.) return
- else if(M.y2<=Y2-y2)
- .=ConsiderRegion(X1,M.y2+1,X2,Y2,Z1,nz2)
- if(.) return
- nextz=nextz?min(nextz,M.z2+1):(M.z2+1)
- if(!M)
- /* If nextz is not 0, then at some point there was an overlap that
- could not be resolved by using an area to the side */
- if(nextz) Z1=nextz
- if(!nextz || (Z2 && Z2-Z1+1=z2)?list(X1,Y1,Z1):null
- X1=1;X2=world.maxx
- Y1=1;Y2=world.maxy
-
- proc/CutXYZ()
- var/mx=swapmaps_compiled_maxx
- var/my=swapmaps_compiled_maxy
- var/mz=swapmaps_compiled_maxz
- for(var/swapmap/M in swapmaps_loaded) // may not include src
- mx=max(mx,M.x2)
- my=max(my,M.y2)
- mz=max(mz,M.z2)
- world.maxx=mx
- world.maxy=my
- world.maxz=mz
-
- // save and delete
- proc/Unload()
- Save()
- qdel(src)
-
- proc/Save()
- if(id==src) return 0
- var/savefile/S=mode?(new):new("map_[id].sav")
- S << src
- while(locked) sleep(1)
- if(mode)
- fdel("map_[id].txt")
- S.ExportText("/","map_[id].txt")
- return 1
-
- // this will not delete existing savefiles for this map
- proc/SetID(newid)
- swapmaps_byname-=id
- id=newid
- swapmaps_byname[id]=src
-
- proc/AllTurfs(z)
- if(isnum(z) && (zz2)) return null
- return block(LoCorner(z),HiCorner(z))
-
- // this could be safely called for an obj or mob as well, but
- // probably not an area
- proc/Contains(turf/T)
- return (T && T.x>=x1 && T.x<=x2\
- && T.y>=y1 && T.y<=y2\
- && T.z>=z1 && T.z<=z2)
-
- proc/InUse()
- for(var/turf/T in AllTurfs())
- for(var/mob/M in T) if(M.key) return 1
-
- proc/LoCorner(z=z1)
- return locate(x1,y1,z)
- proc/HiCorner(z=z2)
- return locate(x2,y2,z)
-
- /*
- Build procs: Take 2 turfs as corners, plus an item type.
- An item may be like:
-
- turf/wall
- obj/fence{icon_state="iron"}
- */
- proc/BuildFilledRectangle(turf/T1,turf/T2,item)
- if(!Contains(T1) || !Contains(T2)) return
- var/turf/T=T1
- // pick new corners in a block()-friendly form
- T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z))
- T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z))
- for(T in block(T1,T2)) new item(T)
-
- proc/BuildRectangle(turf/T1,turf/T2,item)
- if(!Contains(T1) || !Contains(T2)) return
- var/turf/T=T1
- // pick new corners in a block()-friendly form
- T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z))
- T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z))
- if(T2.x-T1.x<2 || T2.y-T1.y<2) BuildFilledRectangle(T1,T2,item)
- else
- //for(T in block(T1,T2)-block(locate(T1.x+1,T1.y+1,T1.z),locate(T2.x-1,T2.y-1,T2.z)))
- for(T in block(T1,locate(T2.x,T1.y,T2.z))) new item(T)
- for(T in block(locate(T1.x,T2.y,T1.z),T2)) new item(T)
- for(T in block(locate(T1.x,T1.y+1,T1.z),locate(T1.x,T2.y-1,T2.z))) new item(T)
- for(T in block(locate(T2.x,T1.y+1,T1.z),locate(T2.x,T2.y-1,T2.z))) new item(T)
-
- /*
- Supplementary build proc: Takes a list of turfs, plus an item
- type. Actually the list doesn't have to be just turfs.
- */
- proc/BuildInTurfs(list/turfs,item)
- for(var/T in turfs) new item(T)
-
-atom
- Write(savefile/S)
- for(var/V in vars-"x"-"y"-"z"-"contents"-"icon"-"overlays"-"underlays")
- if(issaved(vars[V]))
- if(vars[V]!=initial(vars[V])) S[V]<>ic
- if(istext(ic)) icon=swapmaps_iconcache[ic]
- if(l && contents!=l)
- contents+=l
- qdel(l)
-
-
-// set this up (at runtime) as follows:
-// list(\
-// 'player.dmi'="player",\
-// 'monster.dmi'="monster",\
-// ...
-// 'item.dmi'="item")
-var/list/swapmaps_iconcache
-
-// preferred mode; sav or text
-var/const/SWAPMAPS_SAV=0
-var/const/SWAPMAPS_TEXT=1
-var/swapmaps_mode=SWAPMAPS_SAV
-
-var/swapmaps_compiled_maxx
-var/swapmaps_compiled_maxy
-var/swapmaps_compiled_maxz
-var/swapmaps_initialized
-var/swapmaps_loaded
-var/swapmaps_byname
-
-/proc/InitializeSwapMaps()
- if(swapmaps_initialized) return
- swapmaps_initialized=1
- swapmaps_compiled_maxx=world.maxx
- swapmaps_compiled_maxy=world.maxy
- swapmaps_compiled_maxz=world.maxz
- swapmaps_loaded=list()
- swapmaps_byname=list()
- if(swapmaps_iconcache)
- for(var/V in swapmaps_iconcache)
- // reverse-associate everything
- // so you can look up an icon file by name or vice-versa
- swapmaps_iconcache[swapmaps_iconcache[V]]=V
-
-/proc/SwapMaps_AddIconToCache(name,icon)
- if(!swapmaps_iconcache) swapmaps_iconcache=list()
- swapmaps_iconcache[name]=icon
- swapmaps_iconcache[icon]=name
-
-/proc/SwapMaps_Find(id)
- InitializeSwapMaps()
- return swapmaps_byname[id]
-
-/proc/SwapMaps_Load(id)
- InitializeSwapMaps()
- var/swapmap/M=swapmaps_byname[id]
- if(!M)
- var/savefile/S
- var/text=0
- if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt"))
- text=1
- else if(fexists("map_[id].sav"))
- S=new("map_[id].sav")
- else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt"))
- text=1
- else return // no file found
- if(text)
- S=new
- S.ImportText("/",file("map_[id].txt"))
- S >> M
- while(M.locked) sleep(1)
- M.mode=text
- return M
-
-/proc/SwapMaps_Save(id)
- InitializeSwapMaps()
- var/swapmap/M=swapmaps_byname[id]
- if(M) M.Save()
- return M
-
-/proc/SwapMaps_Save_All()
- InitializeSwapMaps()
- for(var/swapmap/M in swapmaps_loaded)
- if(M) M.Save()
-
-/proc/SwapMaps_Unload(id)
- InitializeSwapMaps()
- var/swapmap/M=swapmaps_byname[id]
- if(!M) return // return silently from an error
- M.Unload()
- return 1
-
-/proc/SwapMaps_DeleteFile(id)
- fdel("map_[id].sav")
- fdel("map_[id].txt")
-
-/proc/SwapMaps_CreateFromTemplate(template_id)
- var/swapmap/M=new
- var/savefile/S
- var/text=0
- if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[template_id].txt"))
- text=1
- else if(fexists("map_[template_id].sav"))
- S=new("map_[template_id].sav")
- else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[template_id].txt"))
- text=1
- else
- to_world_log("SwapMaps error in SwapMaps_CreateFromTemplate(): map_[template_id] file not found.")
- return
- if(text)
- S=new
- S.ImportText("/",file("map_[template_id].txt"))
- /*
- This hacky workaround is needed because S >> M will create a brand new
- M to fill with data. There's no way to control the Read() process
- properly otherwise. The //.0 path should always match the map, however.
- */
- S.cd="//.0"
- M.Read(S,M)
- M.mode=text
- while(M.locked) sleep(1)
- return M
-
-/proc/SwapMaps_LoadChunk(chunk_id,turf/locorner)
- var/swapmap/M=new
- var/savefile/S
- var/text=0
- if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[chunk_id].txt"))
- text=1
- else if(fexists("map_[chunk_id].sav"))
- S=new("map_[chunk_id].sav")
- else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[chunk_id].txt"))
- text=1
- else
- to_world_log("SwapMaps error in SwapMaps_LoadChunk(): map_[chunk_id] file not found.")
- return
- if(text)
- S=new
- S.ImportText("/",file("map_[chunk_id].txt"))
- /*
- This hacky workaround is needed because S >> M will create a brand new
- M to fill with data. There's no way to control the Read() process
- properly otherwise. The //.0 path should always match the map, however.
- */
- S.cd="//.0"
- M.Read(S,M,locorner)
- while(M.locked) sleep(1)
- qdel(M)
- return 1
-
-/proc/SwapMaps_SaveChunk(chunk_id,turf/corner1,turf/corner2)
- if(!corner1 || !corner2)
- to_world_log("SwapMaps error in SwapMaps_SaveChunk():")
- if(!corner1) to_world_log(" corner1 turf is null")
- if(!corner2) to_world_log(" corner2 turf is null")
- return
- var/swapmap/M=new
- M.id=chunk_id
- M.ischunk=1 // this is a chunk
- M.x1=min(corner1.x,corner2.x)
- M.y1=min(corner1.y,corner2.y)
- M.z1=min(corner1.z,corner2.z)
- M.x2=max(corner1.x,corner2.x)
- M.y2=max(corner1.y,corner2.y)
- M.z2=max(corner1.z,corner2.z)
- M.mode=swapmaps_mode
- M.Save()
- while(M.locked) sleep(1)
- qdel(M)
- return 1
-
-/proc/SwapMaps_GetSize(id)
- var/savefile/S
- var/text=0
- if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt"))
- text=1
- else if(fexists("map_[id].sav"))
- S=new("map_[id].sav")
- else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt"))
- text=1
- else
- to_world_log("SwapMaps error in SwapMaps_GetSize(): map_[id] file not found.")
- return
- if(text)
- S=new
- S.ImportText("/",file("map_[id].txt"))
- /*
- The //.0 path should always be the map. There's no other way to
- read this data.
- */
- S.cd="//.0"
- var/x
- var/y
- var/z
- S["x"] >> x
- S["y"] >> y
- S["z"] >> z
- return list(x,y,z)
diff --git a/code/modules/maps/tg/dmm_suite.dm b/code/modules/maps/tg/dmm_suite.dm
deleted file mode 100644
index d4be44f729..0000000000
--- a/code/modules/maps/tg/dmm_suite.dm
+++ /dev/null
@@ -1,63 +0,0 @@
-/dmm_suite{
- /*
-
- dmm_suite version 1.0
- Released January 30th, 2011.
-
- NOTE: Map saving functionality removed
-
- defines the object /dmm_suite
- - Provides the proc load_map()
- - Loads the specified map file onto the specified z-level.
- - provides the proc write_map()
- - Returns a text string of the map in dmm format
- ready for output to a file.
- - provides the proc save_map()
- - Returns a .dmm file if map is saved
- - Returns FALSE if map fails to save
-
- The dmm_suite provides saving and loading of map files in BYOND's native DMM map
- format. It approximates the map saving and loading processes of the Dream Maker
- and Dream Seeker programs so as to allow editing, saving, and loading of maps at
- runtime.
-
- ------------------------
-
- To save a map at runtime, create an instance of /dmm_suite, and then call
- write_map(), which accepts three arguments:
- - A turf representing one corner of a three dimensional grid (Required).
- - Another turf representing the other corner of the same grid (Required).
- - Any, or a combination, of several bit flags (Optional, see documentation).
-
- The order in which the turfs are supplied does not matter, the /dmm_writer will
- determine the grid containing both, in much the same way as DM's block() function.
- write_map() will then return a string representing the saved map in dmm format;
- this string can then be saved to a file, or used for any other purose.
-
- ------------------------
-
- To load a map at runtime, create an instance of /dmm_suite, and then call load_map(),
- which accepts two arguments:
- - A .dmm file to load (Required).
- - A number representing the z-level on which to start loading the map (Optional).
-
- The /dmm_suite will load the map file starting on the specified z-level. If no
- z-level was specified, world.maxz will be increased so as to fit the map. Note
- that if you wish to load a map onto a z-level that already has objects on it,
- you will have to handle the removal of those objects. Otherwise the new map will
- simply load the new objects on top of the old ones.
-
- Also note that all type paths specified in the .dmm file must exist in the world's
- code, and that the /dmm_reader trusts that files to be loaded are in fact valid
- .dmm files. Errors in the .dmm format will cause runtime errors.
-
- */
-}
-
-/dmm_suite/verb/load_map(var/dmm_file as file, var/x_offset as num, var/y_offset as num, var/z_offset as num, var/cropMap as num, var/measureOnly as num, no_changeturf as num){
- // dmm_file: A .dmm file to load (Required).
- // z_offset: A number representing the z-level on which to start loading the map (Optional).
- // cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional).
- // measureOnly: When true, no changes will be made to the world (Optional).
- // no_changeturf: When true, turf/AfterChange won't be called on loaded turfs
-}
\ No newline at end of file
diff --git a/code/modules/maps/tg/map_template.dm b/code/modules/maps/tg/map_template.dm
index ced27a1838..29bf89a74e 100644
--- a/code/modules/maps/tg/map_template.dm
+++ b/code/modules/maps/tg/map_template.dm
@@ -7,7 +7,6 @@
var/mappath = null
var/loaded = 0 // Times loaded this round
var/annihilate = FALSE // If true, all (movable) atoms at the location where the map is loaded will be deleted before the map is loaded in.
- var/fixed_orientation = FALSE // If true, the submap will not be rotated randomly when loaded.
var/cost = null /* The map generator has a set 'budget' it spends to place down different submaps. It will pick available submaps randomly until
it runs out. The cost of a submap should roughly corrispond with several factors such as size, loot, difficulty, desired scarcity, etc.
@@ -24,15 +23,12 @@
if(rename)
name = rename
-/datum/map_template/proc/preload_size(path, orientation = 0)
- var/bounds = SSmapping.maploader.load_map(file(path), 1, 1, 1, cropMap=FALSE, measureOnly=TRUE, orientation=orientation)
+/datum/map_template/proc/preload_size(path)
+ var/datum/bapi_parsed_map/map = load_map_bapi(path, 1, 1, 1, crop_map=FALSE, measure_only=TRUE)
+ var/list/bounds = map.parsed_bounds
if(bounds)
- if(orientation & (90 | 270))
- width = bounds[MAP_MAXY]
- height = bounds[MAP_MAXX]
- else
- width = bounds[MAP_MAXX] // Assumes all templates are rectangular, have a single Z level, and begin at 1,1,1
- height = bounds[MAP_MAXY]
+ width = bounds[MAP_MAXX] // Assumes all templates are rectangular, have a single Z level, and begin at 1,1,1
+ height = bounds[MAP_MAXY]
return bounds
/datum/map_template/proc/initTemplateBounds(var/list/bounds)
@@ -80,7 +76,7 @@
admin_notice(span_danger("Submap initializations finished."), R_DEBUG)
-/datum/map_template/proc/load_new_z(var/centered = FALSE, var/orientation = 0)
+/datum/map_template/proc/load_new_z(var/centered = FALSE)
var/x = 1
var/y = 1
@@ -88,7 +84,8 @@
x = round((world.maxx - width)/2)
y = round((world.maxy - height)/2)
- var/list/bounds = SSmapping.maploader.load_map(file(mappath), x, y, no_changeturf = TRUE, orientation=orientation)
+ var/datum/bapi_parsed_map/map = load_map_bapi(mappath, x, y, no_changeturf = TRUE)
+ var/list/bounds = map.bounds
if(!bounds)
return FALSE
@@ -100,10 +97,10 @@
on_map_loaded(world.maxz) //VOREStation Edit
return TRUE
-/datum/map_template/proc/load(turf/T, centered = FALSE, orientation = 0)
+/datum/map_template/proc/load(turf/T, centered = FALSE)
var/old_T = T
if(centered)
- T = locate(T.x - round(((orientation%180) ? height : width)/2) , T.y - round(((orientation%180) ? width : height)/2) , T.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false
+ T = locate(T.x - round((width)/2) , T.y - round((height)/2) , T.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false
if(!T)
return
if(T.x+width > world.maxx)
@@ -112,9 +109,10 @@
return
if(annihilate)
- annihilate_bounds(old_T, centered, orientation)
+ annihilate_bounds(old_T, centered)
- var/list/bounds = SSmapping.maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, orientation = orientation)
+ var/datum/bapi_parsed_map/map = load_map_bapi(mappath, T.x, T.y, T.z, crop_map = TRUE)
+ var/list/bounds = map.bounds
if(!bounds)
return
@@ -128,18 +126,18 @@
loaded++
return TRUE
-/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE, orientation = 0)
+/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE)
var/turf/placement = T
if(centered)
- var/turf/corner = locate(placement.x - round(((orientation%180) ? height : width)/2), placement.y - round(((orientation%180) ? width : height)/2), placement.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false
+ var/turf/corner = locate(placement.x - round((width)/2), placement.y - round((height)/2), placement.z) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false
if(corner)
placement = corner
- return block(placement, locate(placement.x+((orientation%180) ? height : width)-1, placement.y+((orientation%180) ? width : height)-1, placement.z))
+ return block(placement, locate(placement.x+(width)-1, placement.y+(height)-1, placement.z))
-/datum/map_template/proc/annihilate_bounds(turf/origin, centered = FALSE, orientation = 0)
+/datum/map_template/proc/annihilate_bounds(turf/origin, centered = FALSE)
var/deleted_atoms = 0
admin_notice(span_danger("Annihilating objects in submap loading locatation."), R_DEBUG)
- var/list/turfs_to_clean = get_affected_turfs(origin, centered, orientation)
+ var/list/turfs_to_clean = get_affected_turfs(origin, centered)
if(turfs_to_clean.len)
for(var/turf/T in turfs_to_clean)
for(var/atom/movable/AM in T)
@@ -150,9 +148,9 @@
//for your ever biggening badminnery kevinz000
//❤ - Cyberboss
-/proc/load_new_z_level(var/file, var/name, var/orientation = 0)
+/proc/load_new_z_level(var/file, var/name)
var/datum/map_template/template = new(file, name)
- template.load_new_z(orientation)
+ template.load_new_z()
// Very similar to the /tg/ version.
/proc/seed_submaps(var/list/z_levels, var/budget = 0, var/whitelist = /area/space, var/desired_map_template_type = null)
@@ -231,20 +229,14 @@
while(specific_sanity > 0)
specific_sanity--
- var/orientation
- if(chosen_template.fixed_orientation || !CONFIG_GET(flag/random_submap_orientation))
- orientation = 0
- else
- orientation = pick(list(0, 90, 180, 270))
-
- chosen_template.preload_size(chosen_template.mappath, orientation)
- var/width_border = SUBMAP_MAP_EDGE_PAD + round(((orientation%180) ? chosen_template.height : chosen_template.width) / 2) // %180 catches East/West (90,270) rotations on true, North/South (0,180) rotations on false //VOREStation Edit
- var/height_border = SUBMAP_MAP_EDGE_PAD + round(((orientation%180) ? chosen_template.width : chosen_template.height) / 2) //VOREStation Edit
+ chosen_template.preload_size(chosen_template.mappath)
+ var/width_border = SUBMAP_MAP_EDGE_PAD + round((chosen_template.width) / 2)
+ var/height_border = SUBMAP_MAP_EDGE_PAD + round((chosen_template.height) / 2) //VOREStation Edit
var/z_level = pick(z_levels)
var/turf/T = locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z_level)
var/valid = TRUE
- for(var/turf/check in chosen_template.get_affected_turfs(T,TRUE,orientation))
+ for(var/turf/check in chosen_template.get_affected_turfs(T,TRUE))
var/area/new_area = get_area(check)
if(!(istype(new_area, whitelist)))
valid = FALSE // Probably overlapping something important.
@@ -267,7 +259,7 @@
specific_sanity = -1 // force end the placement loop
// Do loading here.
- chosen_template.load(T, centered = TRUE, orientation=orientation) // This is run before the main map's initialization routine, so that can initilize our submaps for us instead.
+ chosen_template.load(T, centered = TRUE) // This is run before the main map's initialization routine, so that can initilize our submaps for us instead.
CHECK_TICK
@@ -306,3 +298,10 @@
else
admin_notice("Submaps loaded.", R_DEBUG)
admin_notice("Loaded: [english_list(pretty_submap_list)]", R_DEBUG)
+
+/area/template_noop
+ name = "Area Passthrough"
+
+/turf/template_noop
+ name = "Turf Passthrough"
+ icon_state = "template_void"
diff --git a/code/modules/maps/tg/reader.dm b/code/modules/maps/tg/reader.dm
deleted file mode 100644
index bb320e27ae..0000000000
--- a/code/modules/maps/tg/reader.dm
+++ /dev/null
@@ -1,549 +0,0 @@
-///////////////////////////////////////////////////////////////
-//SS13 Optimized Map loader
-//////////////////////////////////////////////////////////////
-
-//global datum that will preload variables on atoms instanciation
-GLOBAL_VAR_INIT(use_preloader, FALSE)
-GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new)
-
-/dmm_suite
- // /"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}/g
- var/static/regex/dmmRegex = new/regex({""(\[a-zA-Z]+)" = \\(((?:.|\n)*?)\\)\n(?!\t)|\\((\\d+),(\\d+),(\\d+)\\) = \\{"(\[a-zA-Z\n]*)"\\}"}, "g")
- // /^[\s\n]+"?|"?[\s\n]+$|^"|"$/g
- var/static/regex/trimQuotesRegex = new/regex({"^\[\\s\n]+"?|"?\[\\s\n]+$|^"|"$"}, "g")
- // /^[\s\n]+|[\s\n]+$/
- var/static/regex/trimRegex = new/regex("^\[\\s\n]+|\[\\s\n]+$", "g")
- var/static/list/modelCache = list()
- var/static/space_key
- #ifdef TESTING
- var/static/turfsSkipped
- #endif
-
-/**
- * Construct the model map and control the loading process
- *
- * WORKING :
- *
- * 1) Makes an associative mapping of model_keys with model
- * e.g aa = /turf/unsimulated/wall{icon_state = "rock"}
- * 2) Read the map line by line, parsing the result (using parse_grid)
- *
- */
-/dmm_suite/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, orientation as num)
-
- dmmRegex = new/regex({""(\[a-zA-Z]+)" = \\(((?:.|\n)*?)\\)\n(?!\t)|\\((\\d+),(\\d+),(\\d+)\\) = \\{"(\[a-zA-Z\n]*)"\\}"}, "g")
- trimQuotesRegex = new/regex({"^\[\\s\n]+"?|"?\[\\s\n]+$|^"|"$"}, "g")
- trimRegex = new/regex("^\[\\s\n]+|\[\\s\n]+$", "g")
- modelCache = list()
-
- //How I wish for RAII
- if(!measureOnly)
- Master.StartLoadingMap()
- space_key = null
- #ifdef TESTING
- turfsSkipped = 0
- #endif
- . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, orientation)
- #ifdef TESTING
- if(turfsSkipped)
- testing("Skipped loading [turfsSkipped] default turfs")
- #endif
- if(!measureOnly)
- Master.StopLoadingMap()
-
-/dmm_suite/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, orientation)
- var/tfile = dmm_file//the map file we're creating
- if(isfile(tfile))
- tfile = file2text(tfile)
-
- if(!x_offset)
- x_offset = 1
- if(!y_offset)
- y_offset = 1
- if(!z_offset)
- z_offset = world.maxz + 1
-
- // If it's not a single dir, default to 0 degrees rotation (Default orientation)
- if(!(orientation in list(0, 90, 180, 270)))
- orientation = 0
-
- var/list/bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF)
- var/list/grid_models = list()
- var/key_len = 0
-
- var/stored_index = 1
- while(dmmRegex.Find(tfile, stored_index))
- stored_index = dmmRegex.next
-
- // "aa" = (/type{vars=blah})
- if(dmmRegex.group[1]) // Model
- var/key = dmmRegex.group[1]
- if(grid_models[key]) // Duplicate model keys are ignored in DMMs
- continue
- if(key_len != length(key))
- if(!key_len)
- key_len = length(key)
- else
- throw EXCEPTION("Inconsistant key length in DMM")
- if(!measureOnly)
- grid_models[key] = dmmRegex.group[2]
-
- // (1,1,1) = {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}
- else if(dmmRegex.group[3]) // Coords
- if(!key_len)
- throw EXCEPTION("Coords before model definition in DMM")
-
- var/xcrdStart = text2num(dmmRegex.group[3]) + x_offset - 1
- //position of the currently processed square
- var/xcrd
- var/ycrd = text2num(dmmRegex.group[4]) + y_offset - 1
- var/zcrd = text2num(dmmRegex.group[5]) + z_offset - 1
-
- if(orientation & (EAST | WEST)) //VOREStation edit we just have to pray the upstream spacebrains take into consideration before their refator is done.
- xcrd = ycrd // temp variable
- ycrd = xcrdStart
- xcrdStart = xcrd
-
- var/zexpansion = zcrd > world.maxz
- if(zexpansion && !measureOnly)
- if(cropMap)
- continue
- else
- while(world.maxz < zcrd)
- world.increment_max_z() // create a new z_level if needed.
- if(!no_changeturf)
- WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems")
-
- bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrdStart)
- bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd)
- bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd)
-
- var/list/gridLines = splittext(dmmRegex.group[6], "\n")
-
- var/leadingBlanks = 0
- while(leadingBlanks < gridLines.len && gridLines[++leadingBlanks] == "")
- if(leadingBlanks > 1)
- gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines.
-
- if(!gridLines.len) // Skip it if only blank lines exist.
- continue
-
- if(gridLines.len && gridLines[gridLines.len] == "")
- gridLines.Cut(gridLines.len) // Remove only one blank line at the end.
-
- bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd)
- ycrd += gridLines.len - 1 // Start at the top and work down
-
- if(!cropMap && ycrd > world.maxy)
- if(!measureOnly)
- world.maxy = ycrd // Expand Y here. X is expanded in the loop below
- bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd)
- else
- bounds[MAP_MAXY] = max(bounds[MAP_MAXY], min(ycrd, world.maxy))
-
- var/maxx = xcrdStart
-
- // Assemble the grid of keys
- var/list/list/key_list = list()
- for(var/line in gridLines)
- var/list/line_keys = list()
- xcrd = 1
- for(var/tpos = 1 to length(line) - key_len + 1 step key_len)
- if(xcrd > world.maxx)
- if(cropMap)
- break
- else if(!measureOnly)
- world.maxx = xcrd
-
- if(xcrd >= 1)
- var/model_key = copytext(line, tpos, tpos + key_len)
- line_keys[++line_keys.len] = model_key
- #ifdef TESTING
- ++turfsSkipped
- #endif
- CHECK_TICK
- maxx = max(maxx, xcrd++)
- key_list[++key_list.len] = line_keys
-
- // Rotate the list according to orientation
- if(orientation != 0)
- var/num_cols = key_list[1].len
- var/num_rows = key_list.len
- var/list/list/new_key_list = list()
- // If it's rotated 180 degrees, the dimensions are the same
- if(orientation == 180)
- new_key_list.len = num_rows
- for(var/i = 1 to new_key_list.len)
- new_key_list[i] = list()
- new_key_list[i].len = num_cols
- // Else, the dimensions are swapped
- else
- new_key_list.len = num_cols
- for(var/i = 1 to new_key_list.len)
- new_key_list[i] = list()
- new_key_list[i].len = num_rows
-
- num_rows++ // Buffering against the base index of 1
- num_cols++
- // Populate the new list
- for(var/i = 1 to new_key_list.len)
- for(var/j = 1 to new_key_list[i].len)
- switch(orientation)
- if(180)
- new_key_list[i][j] = key_list[num_rows - i][num_cols - j]
- if(270)
- new_key_list[i][j] = key_list[num_rows - j][i]
- if(90)
- new_key_list[i][j] = key_list[j][num_cols - i]
-
- key_list = new_key_list
-
- if(measureOnly)
- for(var/list/line in key_list)
- maxx = max(maxx, line.len)
- else
- for(var/i = 1 to key_list.len)
- if(ycrd <= world.maxy && ycrd >= 1)
- xcrd = xcrdStart
- for(var/j = 1 to key_list[1].len)
- if(xcrd > world.maxx)
- if(cropMap)
- break
- else
- world.maxx = xcrd
-
- if(xcrd >= 1)
- var/no_afterchange = no_changeturf || zexpansion
- if(!no_afterchange || (key_list[i][j] != space_key))
- if(!grid_models[key_list[i][j]])
- throw EXCEPTION("Undefined model key in DMM: [dmm_file], [key_list[i][j]]")
- parse_grid(grid_models[key_list[i][j]], key_list[i][j], xcrd, ycrd, zcrd, no_afterchange, orientation)
- #ifdef TESTING
- else
- ++turfsSkipped
- #endif
- CHECK_TICK
- maxx = max(maxx, xcrd)
- ++xcrd
- --ycrd
-
- bounds[MAP_MAXX] = max(bounds[MAP_MAXX], cropMap ? min(maxx, world.maxx) : maxx)
-
- CHECK_TICK
-
- if(bounds[1] == 1.#INF) // Shouldn't need to check every item
- return null
- else
- // if(!measureOnly)
- // if(!no_changeturf)
- // for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])))
- // var/turf/T = t
- // //we do this after we load everything in. if we don't; we'll have weird atmos bugs regarding atmos adjacent turfs
- // T.post_change()
- return bounds
-
-/**
- * Fill a given tile with its area/turf/objects/mobs
- * Variable model is one full map line (e.g /turf/unsimulated/wall{icon_state = "rock"}, /area/mine/explored)
- *
- * WORKING :
- *
- * 1) Read the model string, member by member (delimiter is ',')
- *
- * 2) Get the path of the atom and store it into a list
- *
- * 3) a) Check if the member has variables (text within '{' and '}')
- *
- * 3) b) Construct an associative list with found variables, if any (the atom index in members is the same as its variables in members_attributes)
- *
- * 4) Instanciates the atom with its variables
- *
- */
-/dmm_suite/proc/parse_grid(model as text, model_key as text, xcrd as num,ycrd as num,zcrd as num, no_changeturf as num, orientation as num)
- /*Method parse_grid()
- - Accepts a text string containing a comma separated list of type paths of the
- same construction as those contained in a .dmm file, and instantiates them.
- */
-
- var/list/members //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored)
- var/list/members_attributes //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list())
- var/list/cached = modelCache[model]
- var/index
-
- if(cached)
- members = cached[1]
- members_attributes = cached[2]
- else
-
- /////////////////////////////////////////////////////////
- //Constructing members and corresponding variables lists
- ////////////////////////////////////////////////////////
-
- members = list()
- members_attributes = list()
- index = 1
-
- var/old_position = 1
- var/dpos
-
- do
- //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored)
- dpos = find_next_delimiter_position(model, old_position, ",", "{", "}") //find next delimiter (comma here) that's not within {...}
-
- var/full_def = trim_text(copytext(model, old_position, dpos)) //full definition, e.g : /obj/foo/bar{variables=derp}
- var/variables_start = findtext(full_def, "{")
- var/atom_def = text2path(trim_text(copytext(full_def, 1, variables_start))) //path definition, e.g /obj/foo/bar
- old_position = dpos + 1
-
- if(!atom_def) // Skip the item if the path does not exist. Fix your crap, mappers!
- error("Maploader skipping undefined type: '[trim_text(copytext(full_def, 1, variables_start))]' (key=[model_key])")
- continue
- members.Add(atom_def)
-
- //transform the variables in text format into a list (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7))
- var/list/fields = list()
-
- if(variables_start)//if there's any variable
- full_def = copytext(full_def,variables_start+1,length(full_def))//removing the last '}'
- fields = readlist(full_def, ";", TRUE)
- if(fields.len)
- if(!trim(fields[fields.len]))
- --fields.len
- for(var/I in fields)
- var/value = fields[I]
- if(istext(value))
- fields[I] = apply_text_macros(value)
-
- //then fill the members_attributes list with the corresponding variables
- members_attributes.len++
- members_attributes[index++] = fields
-
- CHECK_TICK
- while(dpos != 0)
-
- //check and see if we can just skip this turf
- //So you don't have to understand this horrid statement, we can do this if
- // 1. no_changeturf is set
- // 2. the space_key isn't set yet
- // 3. there are exactly 2 members
- // 4. with no attributes
- // 5. and the members are world.turf and world.area
- // Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default)
- // We can skip calling this proc every time we see XXX
- if(no_changeturf && !space_key && members.len == 2 && members_attributes.len == 2 && length(members_attributes[1]) == 0 && length(members_attributes[2]) == 0 && (world.area in members) && (world.turf in members))
- space_key = model_key
- return
-
-
- modelCache[model] = list(members, members_attributes)
-
-
- ////////////////
- //Instanciation
- ////////////////
-
- //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile
- var/turf/crds = locate(xcrd,ycrd,zcrd)
-
- //first instance the /area and remove it from the members list
- index = members.len
- if(members[index] != /area/template_noop)
- var/atom/instance
- GLOB._preloader.setup(members_attributes[index])//preloader for assigning set variables on atom creation
- var/atype = members[index]
- for(var/area/A in world)
- if(A.type == atype)
- instance = A
- break
- if(!instance)
- instance = new atype(null)
- if(crds)
- instance.contents.Add(crds)
-
- if(GLOB.use_preloader && instance)
- GLOB._preloader.load(instance)
-
- //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect
-
- var/first_turf_index = 1
- while(!ispath(members[first_turf_index], /turf)) //find first /turf object in members
- first_turf_index++
-
- //turn off base new Initialization until the whole thing is loaded
- SSatoms.map_loader_begin()
- //instanciate the first /turf
- var/turf/T
- if(members[first_turf_index] != /turf/template_noop)
- T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],crds,no_changeturf,orientation)
-
- if(T)
- //if others /turf are presents, simulates the underlays piling effect
- index = first_turf_index + 1
- while(index <= members.len - 1) // Last item is an /area
- var/underlay = T.appearance
- T = instance_atom(members[index],members_attributes[index],crds,no_changeturf,orientation)//instance new turf
- T.underlays += underlay
- index++
-
- //finally instance all remainings objects/mobs
- for(index in 1 to first_turf_index-1)
- instance_atom(members[index],members_attributes[index],crds,no_changeturf,orientation)
- //Restore initialization to the previous value
- SSatoms.map_loader_stop()
-
-////////////////
-//Helpers procs
-////////////////
-
-//Instance an atom at (x,y,z) and gives it the variables in attributes
-/dmm_suite/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, orientation=0)
- GLOB._preloader.setup(attributes, path)
-
- if(crds)
- if(!no_changeturf && ispath(path, /turf))
- . = crds.ChangeTurf(path, FALSE, TRUE)
- else
- . = create_atom(path, crds)//first preloader pass
-
- if(GLOB.use_preloader && .)//second preloader pass, for those atoms that don't ..() in New()
- GLOB._preloader.load(.)
-
- //custom CHECK_TICK here because we don't want things created while we're sleeping to not initialize
- if(TICK_CHECK)
- SSatoms.map_loader_stop()
- stoplag()
- SSatoms.map_loader_begin()
-
- // Rotate the atom now that it exists, rather than changing its orientation beforehand through the fields["dir"]
- if(orientation != 0) // 0 means no rotation
- var/atom/A = .
- A.set_dir(turn(A.dir, orientation))
-
-/dmm_suite/proc/create_atom(path, crds)
- set waitfor = FALSE
- . = new path (crds)
-
-//text trimming (both directions) helper proc
-//optionally removes quotes before and after the text (for variable name)
-/dmm_suite/proc/trim_text(what as text,trim_quotes=0)
- if(trim_quotes)
- return trimQuotesRegex.Replace(what, "")
- else
- return trimRegex.Replace(what, "")
-
-
-//find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape
-//returns 0 if reached the last delimiter
-/dmm_suite/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape="\"",closing_escape="\"")
- var/position = initial_position
- var/next_delimiter = findtext(text,delimiter,position,0)
- var/next_opening = findtext(text,opening_escape,position,0)
-
- while((next_opening != 0) && (next_opening < next_delimiter))
- position = findtext(text,closing_escape,next_opening + 1,0)+1
- next_delimiter = findtext(text,delimiter,position,0)
- next_opening = findtext(text,opening_escape,position,0)
-
- return next_delimiter
-
-
-//build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7))
-// text - variables in text form. Not including surrounding {} or list()
-// delimiter - Delimiter between list entries
-// keys_only_string - If true, text that looks like an associative list has its keys treated as var names,
-// otherwise they are parsed as valid associative list keys.
-//return the filled list
-/dmm_suite/proc/readlist(text as text, delimiter=",", keys_only_string = FALSE)
-
- var/list/to_return = list()
- if(text == "")
- return to_return // Fast bail-out
-
- var/position
- var/old_position = 1
-
- do
- //find next delimiter that is not within "..."
- position = find_next_delimiter_position(text,old_position,delimiter)
-
- //check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7))
- var/equal_position = findtext(text,"=",old_position, position)
-
- // part to the left of = (the key/var name), or the entire value. If treating it as a var name, strip quotes at the same time.
- var/trim_left = trim_text(copytext(text,old_position,(equal_position ? equal_position : position)), keys_only_string)
- old_position = position + 1
-
- var/trim_right = trim_left
- if(equal_position)//associative var, so do the association
- trim_right = trim_text(copytext(text,equal_position+1,position))//the content of the variable
- if(!keys_only_string) // We also need to evaluate the key for the types it is permitted to be
- if(findtext(trim_left,"\"",1,2)) //Check for string
- trim_left = copytext(trim_left,2,findtext(trim_left,"\"",3,0))
- else if(isnum(text2num(trim_left))) //Check for number
- trim_left = text2num(trim_left)
- else if(ispath(text2path(trim_left))) //Check for path
- trim_left = text2path(trim_left)
-
- // Parse the value in trim_right
- //Check for string
- if(findtext(trim_right,"\"",1,2))
- trim_right = copytext(trim_right,2,findtext(trim_right,"\"",3,0))
- //Check for number
- else if(isnum(text2num(trim_right)))
- trim_right = text2num(trim_right)
- //Check for null
- else if(trim_right == "null")
- trim_right = null
- //Check for list
- else if(copytext(trim_right,1,5) == "list")
- trim_right = readlist(copytext(trim_right,6,length(trim_right)))
- //Check for file
- else if(copytext(trim_right,1,2) == "'")
- trim_right = file(copytext(trim_right,2,length(trim_right)))
- //Check for path
- else if(ispath(text2path(trim_right)))
- trim_right = text2path(trim_right)
-
- // Now put the trim_right into the result. Method by which we do so varies on if its assoc or not
- if(equal_position)
- to_return[trim_left] = trim_right
- else
- to_return += trim_right
-
- while(position != 0)
-
- return to_return
-
-/dmm_suite/Destroy()
- ..()
- return QDEL_HINT_HARDDEL_NOW
-
-//////////////////
-//Preloader datum
-//////////////////
-
-/dmm_suite/preloader
- parent_type = /datum
- var/list/attributes
- var/target_path
-
-/dmm_suite/preloader/proc/setup(list/the_attributes, path)
- if(the_attributes.len)
- GLOB.use_preloader = TRUE
- attributes = the_attributes
- target_path = path
-
-/dmm_suite/preloader/proc/load(atom/what)
- for(var/attribute in attributes)
- var/value = attributes[attribute]
- if(islist(value))
- value = deepCopyList(value)
- what.vars[attribute] = value
- GLOB.use_preloader = FALSE
-
-/area/template_noop
- name = "Area Passthrough"
-
-/turf/template_noop
- name = "Turf Passthrough"
- icon_state = "template_void"
diff --git a/code/modules/maps/writer.dm b/code/modules/maps/writer.dm
deleted file mode 100644
index 1d4d403684..0000000000
--- a/code/modules/maps/writer.dm
+++ /dev/null
@@ -1,181 +0,0 @@
-#define DMM_IGNORE_AREAS 1
-#define DMM_IGNORE_TURFS 2
-#define DMM_IGNORE_OBJS 4
-#define DMM_IGNORE_NPCS 8
-#define DMM_IGNORE_PLAYERS 16
-#define DMM_IGNORE_MOBS 24
-dmm_suite{
- var{
- quote = "\""
- list/letter_digits = list(
- "a","b","c","d","e",
- "f","g","h","i","j",
- "k","l","m","n","o",
- "p","q","r","s","t",
- "u","v","w","x","y",
- "z",
- "A","B","C","D","E",
- "F","G","H","I","J",
- "K","L","M","N","O",
- "P","Q","R","S","T",
- "U","V","W","X","Y",
- "Z"
- )
- }
- save_map(var/turf/t1 as turf, var/turf/t2 as turf, var/map_name as text, var/flags as num){
- //Check for illegal characters in file name... in a cheap way.
- if(!((ckeyEx(map_name)==map_name) && ckeyEx(map_name))){
- CRASH("Invalid text supplied to proc save_map, invalid characters or empty string.")
- }
- //Check for valid turfs.
- if(!isturf(t1) || !isturf(t2)){
- CRASH("Invalid arguments supplied to proc save_map, arguments were not turfs.")
- }
- var/file_text = write_map(t1,t2,flags)
- if(fexists("[map_name].dmm")){
- fdel("[map_name].dmm")
- }
- var/saved_map = file("[map_name].dmm")
- saved_map << file_text
- return saved_map
- }
- write_map(var/turf/t1 as turf, var/turf/t2 as turf, var/flags as num){
- //Check for valid turfs.
- if(!isturf(t1) || !isturf(t2)){
- CRASH("Invalid arguments supplied to proc write_map, arguments were not turfs.")
- }
- var/turf/nw = locate(min(t1.x,t2.x),max(t1.y,t2.y),min(t1.z,t2.z))
- var/turf/se = locate(max(t1.x,t2.x),min(t1.y,t2.y),max(t1.z,t2.z))
- var/list/templates[0]
- var/template_buffer = {""}
- var/dmm_text = {""}
- for(var/pos_z=nw.z;pos_z<=se.z;pos_z++){
- for(var/pos_y=nw.y;pos_y>=se.y;pos_y--){
- for(var/pos_x=nw.x;pos_x<=se.x;pos_x++){
- var/turf/test_turf = locate(pos_x,pos_y,pos_z)
- var/test_template = make_template(test_turf, flags)
- var/template_number = templates.Find(test_template)
- if(!template_number){
- templates.Add(test_template)
- template_number = templates.len
- }
- template_buffer += "[template_number],"
- }
- template_buffer += ";"
- }
- template_buffer += "."
- }
- var/key_length = round/*floor*/(log(letter_digits.len,templates.len-1)+1)
- var/list/keys[templates.len]
- for(var/key_pos=1;key_pos<=templates.len;key_pos++){
- keys[key_pos] = get_model_key(key_pos,key_length)
- dmm_text += {""[keys[key_pos]]" = ([templates[key_pos]])\n"}
- }
- var/z_level = 0
- for(var/z_pos=1;TRUE;z_pos=findtext(template_buffer,".",z_pos)+1){
- if(z_pos>=length(template_buffer)){break}
- if(z_level){dmm_text+={"\n"}}
- dmm_text += {"\n(1,1,[++z_level]) = {"\n"}
- var/z_block = copytext(template_buffer,z_pos,findtext(template_buffer,".",z_pos))
- for(var/y_pos=1;TRUE;y_pos=findtext(z_block,";",y_pos)+1){
- if(y_pos>=length(z_block)){break}
- var/y_block = copytext(z_block,y_pos,findtext(z_block,";",y_pos))
- for(var/x_pos=1;TRUE;x_pos=findtext(y_block,",",x_pos)+1){
- if(x_pos>=length(y_block)){break}
- var/x_block = copytext(y_block,x_pos,findtext(y_block,",",x_pos))
- var/key_number = text2num(x_block)
- var/temp_key = keys[key_number]
- dmm_text += temp_key
- sleep(-1)
- }
- dmm_text += {"\n"}
- sleep(-1)
- }
- dmm_text += {"\"}"}
- sleep(-1)
- }
- return dmm_text
- }
- proc{
- make_template(var/turf/model as turf, var/flags as num){
- var/template = ""
- var/obj_template = ""
- var/mob_template = ""
- var/turf_template = ""
- if(!(flags & DMM_IGNORE_TURFS)){
- turf_template = "[model.type][check_attributes(model)],"
- } else{ turf_template = "[world.turf],"}
- var/area_template = ""
- if(!(flags & DMM_IGNORE_OBJS)){
- for(var/obj/O in model.contents){
- obj_template += "[O.type][check_attributes(O)],"
- }
- }
- for(var/mob/M in model.contents){
- if(M.client){
- if(!(flags & DMM_IGNORE_PLAYERS)){
- mob_template += "[M.type][check_attributes(M)],"
- }
- }
- else{
- if(!(flags & DMM_IGNORE_NPCS)){
- mob_template += "[M.type][check_attributes(M)],"
- }
- }
- }
- if(!(flags & DMM_IGNORE_AREAS)){
- var/area/m_area = model.loc
- area_template = "[m_area.type][check_attributes(m_area)]"
- } else{ area_template = "[world.area]"}
- template = "[obj_template][mob_template][turf_template][area_template]"
- return template
- }
- check_attributes(var/atom/A){
- var/attributes_text = {"{"}
- for(var/V in A.vars){
- sleep(-1)
- if((!issaved(A.vars[V])) || (A.vars[V]==initial(A.vars[V]))){continue}
- if(istext(A.vars[V])){
- attributes_text += {"[V] = "[A.vars[V]]""}
- }
- else if(isnum(A.vars[V])||ispath(A.vars[V])){
- attributes_text += {"[V] = [A.vars[V]]"}
- }
- else if(isicon(A.vars[V])||isfile(A.vars[V])){
- attributes_text += {"[V] = '[A.vars[V]]'"}
- }
- else{
- continue
- }
- if(attributes_text != {"{"}){
- attributes_text+={"; "}
- }
- }
- if(attributes_text=={"{"}){
- return
- }
- if(copytext(attributes_text, length(attributes_text)-1, 0) == {"; "}){
- attributes_text = copytext(attributes_text, 1, length(attributes_text)-1)
- }
- attributes_text += {"}"}
- return attributes_text
- }
- get_model_key(var/which as num, var/key_length as num){
- var/key = ""
- var/working_digit = which-1
- for(var/digit_pos=key_length;digit_pos>=1;digit_pos--){
- var/place_value = round/*floor*/(working_digit/(letter_digits.len**(digit_pos-1)))
- working_digit-=place_value*(letter_digits.len**(digit_pos-1))
- key = "[key][letter_digits[place_value+1]]"
- }
- return key
- }
- }
- }
-
-#undef DMM_IGNORE_AREAS
-#undef DMM_IGNORE_TURFS
-#undef DMM_IGNORE_OBJS
-#undef DMM_IGNORE_NPCS
-#undef DMM_IGNORE_PLAYERS
-#undef DMM_IGNORE_MOBS
diff --git a/code/modules/mining/shelters_vr.dm b/code/modules/mining/shelters_vr.dm
index cb0a185173..626a86506f 100644
--- a/code/modules/mining/shelters_vr.dm
+++ b/code/modules/mining/shelters_vr.dm
@@ -102,16 +102,6 @@
description = "A small cabin; turned into a shelter capsule. Includes dorm amenities, and a nice dinner."
mappath = "maps/submaps/shelters/shelter_cab.dmm"
-/datum/map_template/shelter/zeta
- name = "Shelter Zeta"
- shelter_id = "shelter_zeta"
- description = "An small dropship with a massive number of equipment, \
- weapons, and supplies. Contains exterior weapons, point defense, \
- a shield generator, and extremely advanced technology. It is \
- unknown who manufactued a vessel like this, as it is beyond the \
- technology level of most contemporary powers."
- mappath = "maps/offmap_vr/om_ships/shelter_6.dmm"
-
/datum/map_template/shelter/phi
name = "Shelter Phi"
shelter_id = "shelter_phi"
diff --git a/code/modules/random_map/automata/automata.dm b/code/modules/random_map/automata/automata.dm
index f10b9ad45d..75824e52b6 100644
--- a/code/modules/random_map/automata/automata.dm
+++ b/code/modules/random_map/automata/automata.dm
@@ -15,6 +15,7 @@
/datum/random_map/automata/generate_map()
map = verdigris_generate_automata(limit_x, limit_y, iterations, initial_wall_cell)
+ return
/datum/random_map/automata/get_additional_spawns(value, turf/T)
return
diff --git a/config/example/config.txt b/config/example/config.txt
index a8f1c531bb..c984cb2e42 100644
--- a/config/example/config.txt
+++ b/config/example/config.txt
@@ -446,11 +446,6 @@ PTO_CAP 50
# Forbids players from joining if they have no set General flavor text
REQUIRE_FLAVOR
-## Uncomment to enable submaps to have their orientation rotated randomly during map generation.
-## Submap rotation is an experimental feature and can cause bugs and weirdness if certain objects inside the submap are coded poorly.
-## Submaps can still be rotated when loading manually with the admin verbs, if desired.
-# RANDOM_SUBMAP_ORIENTATION
-
## Uncomment to allow the AI job to use 'AI Shells', a new type of borg that lets the AI hop into and out of them at will.
## This has some balance implications, and so it might not be desirable for all servers.
ALLOW_AI_SHELLS
diff --git a/guides/Guide to Map Folders.md b/guides/Guide to Map Folders.md
index 98869d2cce..b7a1f81cf7 100644
--- a/guides/Guide to Map Folders.md
+++ b/guides/Guide to Map Folders.md
@@ -39,7 +39,7 @@ virgo_minitest: VORE, Testing map used for CI, do not touch
## What _submaps.dm (map-folder-specific, Tether uses _tether_submaps.dm) should look like:
# Map-specific areas should be loaded without a #include, and the mappath should just be:
-mappath = 'tether_plains.dmm'
+mappath = "maps/your_map/tether_plains.dmm"
# Non-map specific expedition areas should be loaded as follows:
@@ -59,7 +59,7 @@ mappath = 'tether_plains.dmm'
/datum/map_template/tether_lateload/away_beach
name = "Desert Planet - Z1 Beach"
desc = "The beach away mission."
- mappath = 'maps/expedition_vr/beach/beach.dmm'
+ mappath = "maps/expedition_vr/beach/beach.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/away_beach
/datum/map_z_level/tether_lateload/away_beach
diff --git a/libbapi_dmm_reader.so b/libbapi_dmm_reader.so
new file mode 100644
index 0000000000..601f5bf919
Binary files /dev/null and b/libbapi_dmm_reader.so differ
diff --git a/maps/cynosure/cynosure_shuttles.dm b/maps/cynosure/cynosure_shuttles.dm
index 8dcd023c40..e379d5c3ee 100644
--- a/maps/cynosure/cynosure_shuttles.dm
+++ b/maps/cynosure/cynosure_shuttles.dm
@@ -450,7 +450,7 @@ ESCAPE_POD(1)
/datum/map_template/om_ships/hybrid
name = "OM Ship - Generic Shuttle"
desc = "A small privately-owned vessel."
- mappath = 'generic_shuttle.dmm'
+ mappath = "maps/cynosure/generic_shuttle.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/expedition_vr/beach/submaps/mountains.dm b/maps/expedition_vr/beach/submaps/mountains.dm
index d07fffe3ff..c3bfdfe01a 100644
--- a/maps/expedition_vr/beach/submaps/mountains.dm
+++ b/maps/expedition_vr/beach/submaps/mountains.dm
@@ -68,82 +68,82 @@
/datum/map_template/surface/mountains/normal/deadBeacon
name = "Abandoned Relay"
desc = "An unregistered comms relay, abandoned to the elements."
- mappath = 'maps/expedition_vr/beach/submaps/deadBeacon.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/deadBeacon.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/prepper1
name = "Prepper Bunker"
desc = "A little hideaway for someone with more time and money than sense."
- mappath = 'maps/expedition_vr/beach/submaps/prepper1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/prepper1.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/qshuttle
name = "Quarantined Shuttle"
desc = "An emergency landing turned viral outbreak turned tragedy."
- mappath = 'maps/expedition_vr/beach/submaps/quarantineshuttle.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/quarantineshuttle.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/Mineshaft1
name = "Abandoned Mineshaft 1"
desc = "An abandoned minning tunnel from a lost money making effort."
- mappath = 'maps/expedition_vr/beach/submaps/Mineshaft1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Mineshaft1.dmm"
cost = 5
/datum/map_template/surface/mountains/normal/crystal1
name = "Crystal Cave 1"
desc = "A small cave with glowing gems and diamonds."
- mappath = 'maps/expedition_vr/beach/submaps/crystal1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/crystal1.dmm"
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 2"
desc = "A moderate sized cave with glowing gems and diamonds."
- mappath = 'maps/expedition_vr/beach/submaps/crystal2.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/crystal2.dmm"
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 3"
desc = "A large spiral of crystals with diamonds in the center."
- mappath = 'maps/expedition_vr/beach/submaps/crystal3.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/crystal3.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/lost_explorer
name = "Lost Explorer"
desc = "The remains of an explorer who rotted away ages ago, and their equipment."
- mappath = 'maps/expedition_vr/beach/submaps/lost_explorer.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/lost_explorer.dmm"
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/Rockb1
name = "Rocky Base 1"
desc = "Someones underground hidey hole"
- mappath = 'maps/expedition_vr/beach/submaps/Rockb1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Rockb1.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/corgiritual
name = "Dark Ritual"
desc = "Who put all these plushies here? What are they doing?"
- mappath = 'maps/expedition_vr/beach/submaps/ritual.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/ritual.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/abandonedtemple
name = "Abandoned Temple"
desc = "An ancient temple, long since abandoned. Perhaps alien in origin?"
- mappath = 'maps/expedition_vr/beach/submaps/temple.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/temple.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/digsite
name = "Dig Site"
desc = "A small abandoned dig site."
- mappath = 'maps/expedition_vr/beach/submaps/digsite.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/digsite.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/vault1
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -151,7 +151,7 @@
/datum/map_template/surface/mountains/normal/vault2
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault2.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -159,56 +159,56 @@
/datum/map_template/surface/mountains/normal/vault3
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/expedition_vr/beach/submaps/vault3.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault3.dmm"
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/IceCave1A
name = "Ice Cave 1A"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/expedition_vr/beach/submaps/IceCave1A.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/IceCave1A.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1B
name = "Ice Cave 1B"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/expedition_vr/beach/submaps/IceCave1B.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/IceCave1B.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1C
name = "Ice Cave 1C"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/expedition_vr/beach/submaps/IceCave1C.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/IceCave1C.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/SwordCave
name = "Cursed Sword Cave"
desc = "An underground lake. The sword on the lake's island holds a terrible secret."
- mappath = 'maps/expedition_vr/beach/submaps/SwordCave.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/SwordCave.dmm"
/datum/map_template/surface/mountains/normal/supplydrop1
name = "Supply Drop 1"
desc = "A drop pod that landed deep within the mountains."
- mappath = 'maps/expedition_vr/beach/submaps/SupplyDrop1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/SupplyDrop1.dmm"
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crashedcontainmentshuttle
name = "Crashed Cargo Shuttle"
desc = "A severely damaged military shuttle, its cargo seems to remain intact."
- mappath = 'maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/crashedcontainmentshuttle.dmm"
cost = 30
/datum/map_template/surface/mountains/normal/deadspy
name = "Spy Remains"
desc = "W+M1 = Salt."
- mappath = 'maps/expedition_vr/beach/submaps/deadspy.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/deadspy.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/geyser1
name = "Ore-Rich Geyser"
desc = "A subterranean geyser that produces steam. This one has a particularly abundant amount of materials surrounding it."
- mappath = 'maps/expedition_vr/beach/submaps/Geyser1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Geyser1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -216,7 +216,7 @@
/datum/map_template/surface/mountains/normal/geyser2
name = "Fenced Geyser"
desc = "A subterranean geyser that produces steam. This one has a damaged fence surrounding it."
- mappath = 'maps/expedition_vr/beach/submaps/Geyser2.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Geyser2.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -224,7 +224,7 @@
/datum/map_template/surface/mountains/normal/geyser3
name = "Magmatic Geyser"
desc = "A subterranean geyser that produces incendiary gas. It is recessed into the ground, and filled with magma. It's a relatively dormant volcano."
- mappath = 'maps/expedition_vr/beach/submaps/Geyser2.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Geyser2.dmm"
cost = 10
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -232,7 +232,7 @@
/datum/map_template/surface/mountains/normal/cliff1
name = "Ore-Topped Cliff"
desc = "A raised area of rock created by volcanic forces."
- mappath = 'maps/expedition_vr/beach/submaps/Cliff1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Cliff1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Underground Cliffs"
@@ -240,7 +240,7 @@
/datum/map_template/surface/mountains/normal/deadly_rabbit // VOREStation Edit
name = "The Killer Rabbit"
desc = "A cave where the Knights of the Round have fallen to a murderous Rabbit."
- mappath = 'maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/deadly_rabbit_vr.dmm"
cost = 5
allow_duplicates = FALSE
@@ -252,46 +252,46 @@
/datum/map_template/surface/mountains/deep/lost_explorer
name = "Lost Explorer, Deep"
desc = "The remains of an explorer who rotted away ages ago, and their equipment. Again."
- mappath = 'maps/expedition_vr/beach/submaps/lost_explorer.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/lost_explorer.dmm"
cost = 5
allow_duplicates = TRUE */
/datum/map_template/surface/mountains/normal/crashed_ufo //VOREStation Edit
name = "Crashed UFO"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet it still seems to be running..."
- mappath = 'maps/expedition_vr/beach/submaps/crashed_ufo.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/crashed_ufo.dmm"
cost = 40
discard_prob = 50
/datum/map_template/surface/mountains/normal/crashed_ufo_frigate //VOREStation Edit
name = "Crashed UFO Frigate"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet the combat protocols still seem to be running..."
- mappath = 'maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/crashed_ufo_frigate.dmm"
cost = 60
discard_prob = 50
/datum/map_template/surface/mountains/normal/Scave1 //VOREStation Edit
name = "Spider Cave 1"
desc = "A minning tunnel home to an aggressive collection of spiders."
- mappath = 'maps/expedition_vr/beach/submaps/Scave1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Scave1.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/CaveTrench //VOREStation Edit
name = "Cave River"
desc = "A strange underground river."
- mappath = 'maps/expedition_vr/beach/submaps/CaveTrench.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/CaveTrench.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/Cavelake //VOREStation Edit
name = "Cave Lake"
desc = "A large underground lake."
- mappath = 'maps/expedition_vr/beach/submaps/Cavelake.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/Cavelake.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/vault1 //VOREStation Edit
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -299,7 +299,7 @@
/datum/map_template/surface/mountains/normal/vault2 //VOREStation Edit
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault2.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault2.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -307,67 +307,64 @@
/datum/map_template/surface/mountains/normal/vault3 //VOREStation Edit
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/expedition_vr/beach/submaps/vault3.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault3.dmm"
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault4 //VOREStation Edit
name = "Mine Vault 4"
desc = "A small xeno vault with potential loot. Also horrible suprises."
- mappath = 'maps/expedition_vr/beach/submaps/vault4.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault4.dmm"
cost = 20
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault5 //VOREStation Edit
name = "Mine Vault 5"
desc = "A small xeno vault with potential loot. Also major horrible suprises."
- mappath = 'maps/expedition_vr/beach/submaps/vault5.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault5.dmm"
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault6 //VOREStation Edit
name = "Mine Vault 6"
desc = "A small mercenary tower with potential loot."
- mappath = 'maps/expedition_vr/beach/submaps/vault6.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/vault6.dmm"
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/BlastMine1 //VOREStation Edit
name = "Blast Mine 1"
desc = "An abandoned blast mining site, seems that local wildlife has moved in."
- mappath = 'maps/expedition_vr/beach/submaps/BlastMine1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/BlastMine1.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/lava_trench //VOREStation Edit
name = "lava trench"
desc = "A long stretch of lava underground, almost river-like, with a small crystal research outpost on the side."
- mappath = 'maps/expedition_vr/beach/submaps/lava_trench.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/lava_trench.dmm"
cost = 20
- fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/crashedmedshuttle //VOREStation Edit
name = "Crashed Med Shuttle"
desc = "A medical response shuttle that went missing some time ago. So this is where they went."
- mappath = 'maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/CrashedMedShuttle1.dmm"
cost = 20
- fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/excavation1 //VOREStation Edit
name = "Excavation Site"
desc = "An abandoned mining site."
- mappath = 'maps/expedition_vr/beach/submaps/excavation1.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/excavation1.dmm"
cost = 20
/datum/map_template/surface/mountains/deep/spatial_anomaly
name = "spatial anomaly"
desc = "A strange section of the caves that seems twist and turn in ways that shouldn't be physically possible."
- mappath = 'maps/expedition_vr/beach/submaps/spatial_anomaly.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/spatial_anomaly.dmm"
cost = 20
- fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/Speakeasy //VOREStation add
name = "Speakeasy"
desc = "A hidden underground bar to serve drinks in secret and in style."
- mappath = 'maps/expedition_vr/beach/submaps/speakeasy_vr.dmm'
+ mappath = "maps/expedition_vr/beach/submaps/speakeasy_vr.dmm"
cost = 10
allow_duplicates = FALSE
diff --git a/maps/groundbase/groundbase_defines.dm b/maps/groundbase/groundbase_defines.dm
index 412e2bd01d..f449a7c039 100644
--- a/maps/groundbase/groundbase_defines.dm
+++ b/maps/groundbase/groundbase_defines.dm
@@ -404,7 +404,7 @@
/datum/map_template/gb_lateload/gb_centcom
name = "Groundbase - Central Command"
desc = "Central Command lives here!"
- mappath = 'gb-centcomm.dmm'
+ mappath = "maps/groundbase/gb-centcomm.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_centcom
@@ -420,7 +420,7 @@
/datum/map_template/gb_lateload/gb_misc
name = "Groundbase - Misc"
desc = "Misc areas, like some transit areas, holodecks, merc area."
- mappath = 'gb-misc.dmm'
+ mappath = "maps/groundbase/gb-misc.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/misc
@@ -433,7 +433,7 @@
/datum/map_template/gb_lateload/mining
name = "V3c Underground"
desc = "The caves underneath the survace of Virgo 3C"
- mappath = 'maps/groundbase/gb-mining.dmm'
+ mappath = "maps/groundbase/gb-mining.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/mining
@@ -453,7 +453,7 @@
/datum/map_template/common_lateload/away_aerostat
name = "Remmi Aerostat - Z1 Aerostat"
desc = "The Virgo 2 Aerostat away mission."
- mappath = 'maps/expedition_vr/aerostat/aerostat.dmm'
+ mappath = "maps/expedition_vr/aerostat/aerostat.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_aerostat
////////////////////////////////////////////////////////////////////////
@@ -508,28 +508,28 @@
/datum/map_template/gb_lateload/wilds/north/type1
name = "Northern Wilds 1"
desc = "Wilderness"
- mappath = 'maps/groundbase/northwilds/northwilds1.dmm'
+ mappath = "maps/groundbase/northwilds/northwilds1.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_north_wilds
/datum/map_template/gb_lateload/wilds/north/type2
name = "Northern Wilds 2"
desc = "Wilderness"
- mappath = 'maps/groundbase/northwilds/northwilds2.dmm'
+ mappath = "maps/groundbase/northwilds/northwilds2.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_north_wilds
/datum/map_template/gb_lateload/wilds/south/type1
name = "Southern Wilds 1"
desc = "Wilderness"
- mappath = 'maps/groundbase/southwilds/southwilds1.dmm'
+ mappath = "maps/groundbase/southwilds/southwilds1.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_south_wilds
/datum/map_template/gb_lateload/wilds/south/type2
name = "Southern Wilds 2"
desc = "Wilderness"
- mappath = 'maps/groundbase/southwilds/southwilds2.dmm'
+ mappath = "maps/groundbase/southwilds/southwilds2.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_south_wilds
/datum/map_template/gb_lateload/wilds/south/type3
name = "Southern Wilds 3"
desc = "Wilderness"
- mappath = 'maps/groundbase/southwilds/southwilds3.dmm'
+ mappath = "maps/groundbase/southwilds/southwilds3.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_south_wilds
/datum/map_template/gb_lateload/wilds/south/type3/on_map_loaded(z)
. = ..()
@@ -541,23 +541,23 @@
/datum/map_template/gb_lateload/wilds/east/type1
name = "Eastern Wilds 1"
desc = "Wilderness"
- mappath = 'maps/groundbase/eastwilds/eastwilds1.dmm'
+ mappath = "maps/groundbase/eastwilds/eastwilds1.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_east_wilds
/datum/map_template/gb_lateload/wilds/east/type2
name = "Eastern Wilds 2"
desc = "Wilderness"
- mappath = 'maps/groundbase/eastwilds/eastwilds2.dmm'
+ mappath = "maps/groundbase/eastwilds/eastwilds2.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_east_wilds
/datum/map_template/gb_lateload/wilds/west/type1
name = "Western Wilds 1"
desc = "Wilderness"
- mappath = 'maps/groundbase/westwilds/westwilds1.dmm'
+ mappath = "maps/groundbase/westwilds/westwilds1.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_west_wilds
/datum/map_template/gb_lateload/wilds/west/type2
name = "Western Wilds 2"
desc = "Wilderness"
- mappath = 'maps/groundbase/westwilds/westwilds2.dmm'
+ mappath = "maps/groundbase/westwilds/westwilds2.dmm"
associated_map_datum = /datum/map_z_level/gb_lateload/gb_west_wilds
/*
diff --git a/maps/groundbase/groundbase_poi_stuff.dm b/maps/groundbase/groundbase_poi_stuff.dm
index a0d4b571bc..6b4584c448 100644
--- a/maps/groundbase/groundbase_poi_stuff.dm
+++ b/maps/groundbase/groundbase_poi_stuff.dm
@@ -218,730 +218,730 @@
/datum/map_template/groundbase/outdoor
name = "Outdoors1"
desc = "POIs for outdoors!"
- mappath = 'pois/outdoors1.dmm'
+ mappath = "maps/groundbase/pois/outdoors1.dmm"
cost = 10
allow_duplicates = TRUE
/datum/map_template/groundbase/outdoor/thing2
name = "Outdoors2"
- mappath = 'pois/outdoors2.dmm'
+ mappath = "maps/groundbase/pois/outdoors2.dmm"
allow_duplicates = FALSE
/datum/map_template/groundbase/outdoor/thing3
name = "Outdoors3"
- mappath = 'pois/outdoors3.dmm'
+ mappath = "maps/groundbase/pois/outdoors3.dmm"
allow_duplicates = FALSE
/datum/map_template/groundbase/outdoor/thing4
name = "Outdoors4"
- mappath = 'pois/outdoors4.dmm'
+ mappath = "maps/groundbase/pois/outdoors4.dmm"
/datum/map_template/groundbase/outdoor/thing5
name = "Outdoors5"
- mappath = 'pois/outdoors5.dmm'
+ mappath = "maps/groundbase/pois/outdoors5.dmm"
/datum/map_template/groundbase/outdoor/thing6
name = "Outdoors6"
- mappath = 'pois/outdoors6.dmm'
+ mappath = "maps/groundbase/pois/outdoors6.dmm"
/datum/map_template/groundbase/outdoor/thing7
name = "Outdoors7"
- mappath = 'pois/outdoors7.dmm'
+ mappath = "maps/groundbase/pois/outdoors7.dmm"
/datum/map_template/groundbase/outdoor/thing8
name = "Outdoors8"
- mappath = 'pois/outdoors8.dmm'
+ mappath = "maps/groundbase/pois/outdoors8.dmm"
allow_duplicates = FALSE
/datum/map_template/groundbase/outdoor/thing9
name = "Outdoors9"
- mappath = 'pois/outdoors9.dmm'
+ mappath = "maps/groundbase/pois/outdoors9.dmm"
/datum/map_template/groundbase/outdoor/thing10
name = "Outdoors10"
- mappath = 'pois/outdoors10.dmm'
+ mappath = "maps/groundbase/pois/outdoors10.dmm"
/datum/map_template/groundbase/outdoor/thing11
name = "Outdoors11"
- mappath = 'pois/outdoors11.dmm'
+ mappath = "maps/groundbase/pois/outdoors11.dmm"
/datum/map_template/groundbase/outdoor/thing12
name = "Outdoors12"
- mappath = 'pois/outdoors12.dmm'
+ mappath = "maps/groundbase/pois/outdoors12.dmm"
/datum/map_template/groundbase/outdoor/thing13
name = "Outdoors13"
- mappath = 'pois/outdoors13.dmm'
+ mappath = "maps/groundbase/pois/outdoors13.dmm"
allow_duplicates = FALSE
/datum/map_template/groundbase/outdoor/thing14
name = "Outdoors14"
- mappath = 'pois/outdoors14.dmm'
+ mappath = "maps/groundbase/pois/outdoors14.dmm"
/datum/map_template/groundbase/outdoor/thing15
name = "Outdoors15"
- mappath = 'pois/outdoors15.dmm'
+ mappath = "maps/groundbase/pois/outdoors15.dmm"
allow_duplicates = FALSE
/datum/map_template/groundbase/outdoor/thing16
name = "Outdoors16"
- mappath = 'pois/outdoors16.dmm'
+ mappath = "maps/groundbase/pois/outdoors16.dmm"
allow_duplicates = FALSE
/datum/map_template/groundbase/maintcaves/cave
name = "Cave 1"
desc = "POIs for caves!"
- mappath = 'pois/cave1.dmm'
+ mappath = "maps/groundbase/pois/cave1.dmm"
cost = 1
allow_duplicates = FALSE
/datum/map_template/groundbase/maintcaves/cave/cave2
name = "Cave 2"
- mappath = 'pois/cave2.dmm'
+ mappath = "maps/groundbase/pois/cave2.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave3
name = "Cave 3"
- mappath = 'pois/cave3.dmm'
+ mappath = "maps/groundbase/pois/cave3.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave4
name = "Cave 4"
- mappath = 'pois/cave4.dmm'
+ mappath = "maps/groundbase/pois/cave4.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave5
name = "Cave 5"
- mappath = 'pois/cave5.dmm'
+ mappath = "maps/groundbase/pois/cave5.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave6
name = "Cave 6"
- mappath = 'pois/cave6.dmm'
+ mappath = "maps/groundbase/pois/cave6.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave7
name = "Cave 7"
- mappath = 'pois/cave7.dmm'
+ mappath = "maps/groundbase/pois/cave7.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave8
name = "Cave 8"
- mappath = 'pois/cave8.dmm'
+ mappath = "maps/groundbase/pois/cave8.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave9
name = "Cave 9"
- mappath = 'pois/cave9.dmm'
+ mappath = "maps/groundbase/pois/cave9.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave10
name = "Cave 10"
- mappath = 'pois/cave10.dmm'
+ mappath = "maps/groundbase/pois/cave10.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave11
name = "Cave 11"
- mappath = 'pois/cave11.dmm'
+ mappath = "maps/groundbase/pois/cave11.dmm"
cost = 5
/datum/map_template/groundbase/maintcaves/cave/cave12
name = "Cave 12"
- mappath = 'pois/cave12.dmm'
+ mappath = "maps/groundbase/pois/cave12.dmm"
cost = 5
/datum/map_template/groundbase/maintcaves/cave/cave13
name = "Cave 13"
- mappath = 'pois/cave13.dmm'
+ mappath = "maps/groundbase/pois/cave13.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave14
name = "Cave 14"
- mappath = 'pois/cave14.dmm'
+ mappath = "maps/groundbase/pois/cave14.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave15
name = "Cave 15"
- mappath = 'pois/cave15.dmm'
+ mappath = "maps/groundbase/pois/cave15.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave16
name = "Cave 16"
- mappath = 'pois/cave16.dmm'
+ mappath = "maps/groundbase/pois/cave16.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave17
name = "Cave 17"
- mappath = 'pois/cave17.dmm'
+ mappath = "maps/groundbase/pois/cave17.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave18
name = "Cave 18"
- mappath = 'pois/cave18.dmm'
+ mappath = "maps/groundbase/pois/cave18.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave19
name = "Cave 19"
- mappath = 'pois/cave19.dmm'
+ mappath = "maps/groundbase/pois/cave19.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave20
name = "Cave 20"
- mappath = 'pois/cave20.dmm'
+ mappath = "maps/groundbase/pois/cave20.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave21
name = "Cave 21"
- mappath = 'pois/cave21.dmm'
+ mappath = "maps/groundbase/pois/cave21.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave22
name = "Cave 22"
- mappath = 'pois/cave22.dmm'
+ mappath = "maps/groundbase/pois/cave22.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave23
name = "Cave 23"
- mappath = 'pois/cave23.dmm'
+ mappath = "maps/groundbase/pois/cave23.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave24
name = "Cave 24"
- mappath = 'pois/cave24.dmm'
+ mappath = "maps/groundbase/pois/cave24.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave25
name = "Cave 25"
- mappath = 'pois/cave25.dmm'
+ mappath = "maps/groundbase/pois/cave25.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave26
name = "Cave 26"
- mappath = 'pois/cave26.dmm'
+ mappath = "maps/groundbase/pois/cave26.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave27
name = "Cave 27"
- mappath = 'pois/cave27.dmm'
+ mappath = "maps/groundbase/pois/cave27.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave28
name = "Cave 28"
- mappath = 'pois/cave28.dmm'
+ mappath = "maps/groundbase/pois/cave28.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave29
name = "Cave 29"
- mappath = 'pois/cave29.dmm'
+ mappath = "maps/groundbase/pois/cave29.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave30
name = "Cave 30"
- mappath = 'pois/cave30.dmm'
+ mappath = "maps/groundbase/pois/cave30.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave31
name = "Cave 31"
- mappath = 'pois/cave31.dmm'
+ mappath = "maps/groundbase/pois/cave31.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave32
name = "Cave 32"
- mappath = 'pois/cave32.dmm'
+ mappath = "maps/groundbase/pois/cave32.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave33
name = "Cave 33"
- mappath = 'pois/cave33.dmm'
+ mappath = "maps/groundbase/pois/cave33.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave34
name = "Cave 34"
- mappath = 'pois/cave34.dmm'
+ mappath = "maps/groundbase/pois/cave34.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave35
name = "Cave 35"
- mappath = 'pois/cave35.dmm'
+ mappath = "maps/groundbase/pois/cave35.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave36
name = "Cave 36"
- mappath = 'pois/cave36.dmm'
+ mappath = "maps/groundbase/pois/cave36.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave37
name = "Cave 37"
- mappath = 'pois/cave37.dmm'
+ mappath = "maps/groundbase/pois/cave37.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave38
name = "Cave 38"
- mappath = 'pois/cave38.dmm'
+ mappath = "maps/groundbase/pois/cave38.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave39
name = "Cave 39"
- mappath = 'pois/cave39.dmm'
+ mappath = "maps/groundbase/pois/cave39.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave40
name = "Cave 40"
- mappath = 'pois/cave40.dmm'
+ mappath = "maps/groundbase/pois/cave40.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave41
name = "Cave 41"
- mappath = 'pois/cave41.dmm'
+ mappath = "maps/groundbase/pois/cave41.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave42
name = "Cave 42"
- mappath = 'pois/cave42.dmm'
+ mappath = "maps/groundbase/pois/cave42.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave43
name = "Cave 43"
- mappath = 'pois/cave43.dmm'
+ mappath = "maps/groundbase/pois/cave43.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave44
name = "Cave 44"
- mappath = 'pois/cave44.dmm'
+ mappath = "maps/groundbase/pois/cave44.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave45
name = "Cave 45"
- mappath = 'pois/cave45.dmm'
+ mappath = "maps/groundbase/pois/cave45.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave46
name = "Cave 46"
- mappath = 'pois/cave46.dmm'
+ mappath = "maps/groundbase/pois/cave46.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave47
name = "Cave 47"
- mappath = 'pois/cave47.dmm'
+ mappath = "maps/groundbase/pois/cave47.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave48
name = "Cave 48"
- mappath = 'pois/cave48.dmm'
+ mappath = "maps/groundbase/pois/cave48.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave49
name = "Cave 49"
- mappath = 'pois/cave49.dmm'
+ mappath = "maps/groundbase/pois/cave49.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave50
name = "Cave 50"
- mappath = 'pois/cave50.dmm'
+ mappath = "maps/groundbase/pois/cave50.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave51
name = "Cave 51"
- mappath = 'pois/cave51.dmm'
+ mappath = "maps/groundbase/pois/cave51.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave52
name = "Cave 52"
- mappath = 'pois/cave52.dmm'
+ mappath = "maps/groundbase/pois/cave52.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave53
name = "Cave 53"
- mappath = 'pois/cave53.dmm'
+ mappath = "maps/groundbase/pois/cave53.dmm"
/datum/map_template/groundbase/maintcaves/cave/cave54
name = "Cave 54"
- mappath = 'pois/cave54.dmm'
+ mappath = "maps/groundbase/pois/cave54.dmm"
/datum/map_template/groundbase/maintcaves/caveb
name = "Cave 1b"
- mappath = 'pois/cave1b.dmm'
+ mappath = "maps/groundbase/pois/cave1b.dmm"
cost = 3
allow_duplicates = FALSE
/datum/map_template/groundbase/maintcaves/caveb/cave2
name = "Cave 2b"
- mappath = 'pois/cave2b.dmm'
+ mappath = "maps/groundbase/pois/cave2b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave3
name = "Cave 3b"
- mappath = 'pois/cave3b.dmm'
+ mappath = "maps/groundbase/pois/cave3b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave4
name = "Cave 4b"
- mappath = 'pois/cave4b.dmm'
+ mappath = "maps/groundbase/pois/cave4b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave5
name = "Cave 5b"
- mappath = 'pois/cave5b.dmm'
+ mappath = "maps/groundbase/pois/cave5b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave6
name = "Cave 6b"
- mappath = 'pois/cave6b.dmm'
+ mappath = "maps/groundbase/pois/cave6b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave7
name = "Cave 7b"
- mappath = 'pois/cave7b.dmm'
+ mappath = "maps/groundbase/pois/cave7b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave8
name = "Cave 8b"
- mappath = 'pois/cave8b.dmm'
+ mappath = "maps/groundbase/pois/cave8b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave9
name = "Cave 9b"
- mappath = 'pois/cave9b.dmm'
+ mappath = "maps/groundbase/pois/cave9b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave10
name = "Cave 10b"
- mappath = 'pois/cave10b.dmm'
+ mappath = "maps/groundbase/pois/cave10b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave11
name = "Cave 11b"
- mappath = 'pois/cave11b.dmm'
+ mappath = "maps/groundbase/pois/cave11b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave12
name = "Cave 12b"
- mappath = 'pois/cave12b.dmm'
+ mappath = "maps/groundbase/pois/cave12b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave13
name = "Cave 13b"
- mappath = 'pois/cave13b.dmm'
+ mappath = "maps/groundbase/pois/cave13b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave14
name = "Cave 14b"
- mappath = 'pois/cave14b.dmm'
+ mappath = "maps/groundbase/pois/cave14b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave15
name = "Cave 15b"
- mappath = 'pois/cave15b.dmm'
+ mappath = "maps/groundbase/pois/cave15b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave16
name = "Cave 16b"
- mappath = 'pois/cave16b.dmm'
+ mappath = "maps/groundbase/pois/cave16b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave17
name = "Cave 17b"
- mappath = 'pois/cave17b.dmm'
+ mappath = "maps/groundbase/pois/cave17b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave18
name = "Cave 18b"
- mappath = 'pois/cave18b.dmm'
+ mappath = "maps/groundbase/pois/cave18b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave19
name = "Cave 19b"
- mappath = 'pois/cave19b.dmm'
+ mappath = "maps/groundbase/pois/cave19b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave20
name = "Cave 20b"
- mappath = 'pois/cave20b.dmm'
+ mappath = "maps/groundbase/pois/cave20b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave21
name = "Cave 21b"
- mappath = 'pois/cave21b.dmm'
+ mappath = "maps/groundbase/pois/cave21b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave22
name = "Cave 22b"
- mappath = 'pois/cave22b.dmm'
+ mappath = "maps/groundbase/pois/cave22b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave23
name = "Cave 23b"
- mappath = 'pois/cave23b.dmm'
+ mappath = "maps/groundbase/pois/cave23b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave24
name = "Cave 24b"
- mappath = 'pois/cave24b.dmm'
+ mappath = "maps/groundbase/pois/cave24b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave25
name = "Cave 25b"
- mappath = 'pois/cave25b.dmm'
+ mappath = "maps/groundbase/pois/cave25b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave26
name = "Cave 26b"
- mappath = 'pois/cave26b.dmm'
+ mappath = "maps/groundbase/pois/cave26b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave27
name = "Cave 27b"
- mappath = 'pois/cave27b.dmm'
+ mappath = "maps/groundbase/pois/cave27b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave28
name = "Cave 28b"
- mappath = 'pois/cave28b.dmm'
+ mappath = "maps/groundbase/pois/cave28b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave29
name = "Cave 29b"
- mappath = 'pois/cave29b.dmm'
+ mappath = "maps/groundbase/pois/cave29b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave30
name = "Cave 30b"
- mappath = 'pois/cave30b.dmm'
+ mappath = "maps/groundbase/pois/cave30b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave31
name = "Cave 31b"
- mappath = 'pois/cave31b.dmm'
+ mappath = "maps/groundbase/pois/cave31b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave32
name = "Cave 32b"
- mappath = 'pois/cave32b.dmm'
+ mappath = "maps/groundbase/pois/cave32b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave33
name = "Cave 33b"
- mappath = 'pois/cave33b.dmm'
+ mappath = "maps/groundbase/pois/cave33b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave34
name = "Cave 34b"
- mappath = 'pois/cave34b.dmm'
+ mappath = "maps/groundbase/pois/cave34b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave35
name = "Cave 35b"
- mappath = 'pois/cave35b.dmm'
+ mappath = "maps/groundbase/pois/cave35b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave36
name = "Cave 36b"
- mappath = 'pois/cave36b.dmm'
+ mappath = "maps/groundbase/pois/cave36b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave37
name = "Cave 37b"
- mappath = 'pois/cave37b.dmm'
+ mappath = "maps/groundbase/pois/cave37b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave38
name = "Cave 38b"
- mappath = 'pois/cave38b.dmm'
+ mappath = "maps/groundbase/pois/cave38b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave39
name = "Cave 39b"
- mappath = 'pois/cave39b.dmm'
+ mappath = "maps/groundbase/pois/cave39b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave40
name = "Cave 40b"
- mappath = 'pois/cave40b.dmm'
+ mappath = "maps/groundbase/pois/cave40b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave41
name = "Cave 41b"
- mappath = 'pois/cave41b.dmm'
+ mappath = "maps/groundbase/pois/cave41b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave42
name = "Cave 42b"
- mappath = 'pois/cave42b.dmm'
+ mappath = "maps/groundbase/pois/cave42b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave43
name = "Cave 43b"
- mappath = 'pois/cave43b.dmm'
+ mappath = "maps/groundbase/pois/cave43b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave44
name = "Cave 44b"
- mappath = 'pois/cave44b.dmm'
+ mappath = "maps/groundbase/pois/cave44b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave45
name = "Cave 45b"
- mappath = 'pois/cave45b.dmm'
+ mappath = "maps/groundbase/pois/cave45b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave46
name = "Cave 46b"
- mappath = 'pois/cave46b.dmm'
+ mappath = "maps/groundbase/pois/cave46b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave47
name = "Cave 47b"
- mappath = 'pois/cave47b.dmm'
+ mappath = "maps/groundbase/pois/cave47b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave48
name = "Cave 48b"
- mappath = 'pois/cave48b.dmm'
+ mappath = "maps/groundbase/pois/cave48b.dmm"
/datum/map_template/groundbase/maintcaves/caveb/cave49
name = "Cave 49"
- mappath = 'pois/cave49b.dmm'
+ mappath = "maps/groundbase/pois/cave49b.dmm"
/datum/map_template/groundbase/maintcaves/cavec
name = "Cave 1c"
- mappath = 'pois/cave1c.dmm'
+ mappath = "maps/groundbase/pois/cave1c.dmm"
cost = 3
allow_duplicates = FALSE
/datum/map_template/groundbase/maintcaves/cavec/cave2
name = "Cave 2c"
- mappath = 'pois/cave2c.dmm'
+ mappath = "maps/groundbase/pois/cave2c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave3
name = "Cave 3c"
- mappath = 'pois/cave3c.dmm'
+ mappath = "maps/groundbase/pois/cave3c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave4
name = "Cave 4c"
- mappath = 'pois/cave4c.dmm'
+ mappath = "maps/groundbase/pois/cave4c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave5
name = "Cave 5c"
- mappath = 'pois/cave5c.dmm'
+ mappath = "maps/groundbase/pois/cave5c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave6
name = "Cave 6c"
- mappath = 'pois/cave6c.dmm'
+ mappath = "maps/groundbase/pois/cave6c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave7
name = "Cave 7c"
- mappath = 'pois/cave7c.dmm'
+ mappath = "maps/groundbase/pois/cave7c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave8
name = "Cave 8c"
- mappath = 'pois/cave8c.dmm'
+ mappath = "maps/groundbase/pois/cave8c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave9
name = "Cave 9c"
- mappath = 'pois/cave9c.dmm'
+ mappath = "maps/groundbase/pois/cave9c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave10
name = "Cave 10c"
- mappath = 'pois/cave10c.dmm'
+ mappath = "maps/groundbase/pois/cave10c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave11
name = "Cave 11c"
- mappath = 'pois/cave11c.dmm'
+ mappath = "maps/groundbase/pois/cave11c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave12
name = "Cave 12c"
- mappath = 'pois/cave12c.dmm'
+ mappath = "maps/groundbase/pois/cave12c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave13
name = "Cave 13c"
- mappath = 'pois/cave13c.dmm'
+ mappath = "maps/groundbase/pois/cave13c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave14
name = "Cave 14c"
- mappath = 'pois/cave14c.dmm'
+ mappath = "maps/groundbase/pois/cave14c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave15
name = "Cave 15c"
- mappath = 'pois/cave15c.dmm'
+ mappath = "maps/groundbase/pois/cave15c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave16
name = "Cave 16c"
- mappath = 'pois/cave16c.dmm'
+ mappath = "maps/groundbase/pois/cave16c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave17
name = "Cave 17c"
- mappath = 'pois/cave17c.dmm'
+ mappath = "maps/groundbase/pois/cave17c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave18
name = "Cave 18c"
- mappath = 'pois/cave18c.dmm'
+ mappath = "maps/groundbase/pois/cave18c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave19
name = "Cave 19c"
- mappath = 'pois/cave19c.dmm'
+ mappath = "maps/groundbase/pois/cave19c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave20
name = "Cave 20c"
- mappath = 'pois/cave20c.dmm'
+ mappath = "maps/groundbase/pois/cave20c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave21
name = "Cave 21c"
- mappath = 'pois/cave21c.dmm'
+ mappath = "maps/groundbase/pois/cave21c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave22
name = "Cave 22c"
- mappath = 'pois/cave22c.dmm'
+ mappath = "maps/groundbase/pois/cave22c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave23
name = "Cave 23c"
- mappath = 'pois/cave23c.dmm'
+ mappath = "maps/groundbase/pois/cave23c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave24
name = "Cave 24c"
- mappath = 'pois/cave24c.dmm'
+ mappath = "maps/groundbase/pois/cave24c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave25
name = "Cave 25c"
- mappath = 'pois/cave25c.dmm'
+ mappath = "maps/groundbase/pois/cave25c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave26
name = "Cave 26c"
- mappath = 'pois/cave26c.dmm'
+ mappath = "maps/groundbase/pois/cave26c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave27
name = "Cave 27c"
- mappath = 'pois/cave27c.dmm'
+ mappath = "maps/groundbase/pois/cave27c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave28
name = "Cave 28c"
- mappath = 'pois/cave28c.dmm'
+ mappath = "maps/groundbase/pois/cave28c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave29
name = "Cave 29c"
- mappath = 'pois/cave29c.dmm'
+ mappath = "maps/groundbase/pois/cave29c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave30
name = "Cave 30c"
- mappath = 'pois/cave30c.dmm'
+ mappath = "maps/groundbase/pois/cave30c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave31
name = "Cave 31c"
- mappath = 'pois/cave31c.dmm'
+ mappath = "maps/groundbase/pois/cave31c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave32
name = "Cave 32c"
- mappath = 'pois/cave32c.dmm'
+ mappath = "maps/groundbase/pois/cave32c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave33
name = "Cave 33c"
- mappath = 'pois/cave33c.dmm'
+ mappath = "maps/groundbase/pois/cave33c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave34
name = "Cave 34c"
- mappath = 'pois/cave34c.dmm'
+ mappath = "maps/groundbase/pois/cave34c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave35
name = "Cave 35c"
- mappath = 'pois/cave35c.dmm'
+ mappath = "maps/groundbase/pois/cave35c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave36
name = "Cave 36c"
- mappath = 'pois/cave36c.dmm'
+ mappath = "maps/groundbase/pois/cave36c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave37
name = "Cave 37c"
- mappath = 'pois/cave37c.dmm'
+ mappath = "maps/groundbase/pois/cave37c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave38
name = "Cave 38c"
- mappath = 'pois/cave38c.dmm'
+ mappath = "maps/groundbase/pois/cave38c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave39
name = "Cave 39c"
- mappath = 'pois/cave39c.dmm'
+ mappath = "maps/groundbase/pois/cave39c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave40
name = "Cave 40c"
- mappath = 'pois/cave40c.dmm'
+ mappath = "maps/groundbase/pois/cave40c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave41
name = "Cave 41c"
- mappath = 'pois/cave41c.dmm'
+ mappath = "maps/groundbase/pois/cave41c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave42
name = "Cave 42c"
- mappath = 'pois/cave42c.dmm'
+ mappath = "maps/groundbase/pois/cave42c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave43
name = "Cave 43c"
- mappath = 'pois/cave43c.dmm'
+ mappath = "maps/groundbase/pois/cave43c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave44
name = "Cave 44c"
- mappath = 'pois/cave44c.dmm'
+ mappath = "maps/groundbase/pois/cave44c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave45
name = "Cave 45c"
- mappath = 'pois/cave45c.dmm'
+ mappath = "maps/groundbase/pois/cave45c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave46
name = "Cave 46c"
- mappath = 'pois/cave46c.dmm'
+ mappath = "maps/groundbase/pois/cave46c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave47
name = "Cave 47c"
- mappath = 'pois/cave47c.dmm'
+ mappath = "maps/groundbase/pois/cave47c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave48
name = "Cave 48c"
- mappath = 'pois/cave48c.dmm'
+ mappath = "maps/groundbase/pois/cave48c.dmm"
/datum/map_template/groundbase/maintcaves/cavec/cave49
name = "Cave 49"
- mappath = 'pois/cave49c.dmm'
+ mappath = "maps/groundbase/pois/cave49c.dmm"
/datum/map_template/groundbase/maintcaves/cavething
name = "Cavething 1"
- mappath = 'pois/cavething1.dmm'
+ mappath = "maps/groundbase/pois/cavething1.dmm"
cost = 10
allow_duplicates = TRUE
/datum/map_template/groundbase/maintcaves/cavething/thing2
name = "Cavething 2"
- mappath = 'pois/cavething2.dmm'
+ mappath = "maps/groundbase/pois/cavething2.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing3
name = "Cavething 3"
- mappath = 'pois/cavething3.dmm'
+ mappath = "maps/groundbase/pois/cavething3.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing4
name = "Cavething 4"
- mappath = 'pois/cavething4.dmm'
+ mappath = "maps/groundbase/pois/cavething4.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing5
name = "Cavething 5"
- mappath = 'pois/cavething5.dmm'
+ mappath = "maps/groundbase/pois/cavething5.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing6
name = "Cavething 6"
- mappath = 'pois/cavething6.dmm'
+ mappath = "maps/groundbase/pois/cavething6.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing7
name = "Cavething 7"
- mappath = 'pois/cavething7.dmm'
+ mappath = "maps/groundbase/pois/cavething7.dmm"
cost = 25
allow_duplicates = FALSE
/datum/map_template/groundbase/maintcaves/cavething/thing8
name = "Cavething 8"
- mappath = 'pois/cavething8.dmm'
+ mappath = "maps/groundbase/pois/cavething8.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing9
name = "Cavething 9"
- mappath = 'pois/cavething9.dmm'
+ mappath = "maps/groundbase/pois/cavething9.dmm"
cost = 25
allow_duplicates = FALSE
/datum/map_template/groundbase/maintcaves/cavething/thing10
name = "Cavething 10"
- mappath = 'pois/cavething10.dmm'
+ mappath = "maps/groundbase/pois/cavething10.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing11
name = "Cavething 11"
- mappath = 'pois/cavething11.dmm'
+ mappath = "maps/groundbase/pois/cavething11.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing12
name = "Cavething 12"
- mappath = 'pois/cavething12.dmm'
+ mappath = "maps/groundbase/pois/cavething12.dmm"
/datum/map_template/groundbase/maintcaves/cavething/thing13
name = "Cavething 13"
- mappath = 'pois/cavething13.dmm'
+ mappath = "maps/groundbase/pois/cavething13.dmm"
cost = 3
allow_duplicates = FALSE
/datum/map_template/groundbase/maintcaves/cavething/thing14
name = "Cavething 14"
- mappath = 'pois/cavething14.dmm'
+ mappath = "maps/groundbase/pois/cavething14.dmm"
cost = 3
allow_duplicates = FALSE
@@ -997,77 +997,77 @@
/datum/map_template/groundbase/wildvillage/square/square1
name = "square building 1"
- mappath = 'southwilds/villagepois/square1.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square1.dmm"
/area/submap/groundbase/poi/wildvillage/square/square1
/datum/map_template/groundbase/wildvillage/square/square2
name = "square building 2"
- mappath = 'southwilds/villagepois/square2.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square2.dmm"
/area/submap/groundbase/poi/wildvillage/square/square2
/datum/map_template/groundbase/wildvillage/square/square3
name = "square building 3"
- mappath = 'southwilds/villagepois/square3.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square3.dmm"
/area/submap/groundbase/poi/wildvillage/square/square3
/datum/map_template/groundbase/wildvillage/square/square4
name = "square building 4"
- mappath = 'southwilds/villagepois/square4.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square4.dmm"
/area/submap/groundbase/poi/wildvillage/square/square4
/datum/map_template/groundbase/wildvillage/square/square5
name = "square building 5"
- mappath = 'southwilds/villagepois/square5.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square5.dmm"
/area/submap/groundbase/poi/wildvillage/square/square5
/datum/map_template/groundbase/wildvillage/square/square6
name = "square building 6"
- mappath = 'southwilds/villagepois/square6.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square6.dmm"
/area/submap/groundbase/poi/wildvillage/square/square6
/datum/map_template/groundbase/wildvillage/square/square7
name = "square building 7"
- mappath = 'southwilds/villagepois/square7.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square7.dmm"
/area/submap/groundbase/poi/wildvillage/square/square7
/datum/map_template/groundbase/wildvillage/square/square8
name = "square building 8"
- mappath = 'southwilds/villagepois/square8.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square8.dmm"
/area/submap/groundbase/poi/wildvillage/square/square8
/datum/map_template/groundbase/wildvillage/square/square9
name = "square building 9"
- mappath = 'southwilds/villagepois/square9.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square9.dmm"
/area/submap/groundbase/poi/wildvillage/square/square9
/datum/map_template/groundbase/wildvillage/square/square10
name = "square building 10"
- mappath = 'southwilds/villagepois/square10.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square10.dmm"
/area/submap/groundbase/poi/wildvillage/square/square10
/datum/map_template/groundbase/wildvillage/square/square11
name = "square building 11"
- mappath = 'southwilds/villagepois/square11.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square11.dmm"
/area/submap/groundbase/poi/wildvillage/square/square11
/datum/map_template/groundbase/wildvillage/square/square12
name = "square building 12"
- mappath = 'southwilds/villagepois/square12.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/square12.dmm"
/area/submap/groundbase/poi/wildvillage/square/square12
/datum/map_template/groundbase/wildvillage/wide/wide1
name = "wide building 1"
- mappath = 'southwilds/villagepois/wide1.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/wide1.dmm"
/area/submap/groundbase/poi/wildvillage/wide/wide1
/datum/map_template/groundbase/wildvillage/wide/wide2
name = "wide building 2"
- mappath = 'southwilds/villagepois/wide2.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/wide2.dmm"
/area/submap/groundbase/poi/wildvillage/wide/wide2
/datum/map_template/groundbase/wildvillage/wide/wide3
name = "wide building 3"
- mappath = 'southwilds/villagepois/wide3.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/wide3.dmm"
/area/submap/groundbase/poi/wildvillage/wide/wide3
/datum/map_template/groundbase/wildvillage/wide/wide4
name = "wide building 4"
- mappath = 'southwilds/villagepois/wide4.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/wide4.dmm"
/area/submap/groundbase/poi/wildvillage/wide/wide4
/datum/map_template/groundbase/wildvillage/wide/wide5
name = "wide building 5"
- mappath = 'southwilds/villagepois/wide5.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/wide5.dmm"
/area/submap/groundbase/poi/wildvillage/wide/wide5
/datum/map_template/groundbase/wildvillage/wide/wide6
name = "wide building 6"
- mappath = 'southwilds/villagepois/wide6.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/wide6.dmm"
/area/submap/groundbase/poi/wildvillage/wide/wide6
/obj/item/paper/wide6
name = "\improper hand written letter"
@@ -1077,17 +1077,17 @@
/datum/map_template/groundbase/wildvillage/long/long1
name = "long building 1"
- mappath = 'southwilds/villagepois/long1.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/long1.dmm"
/area/submap/groundbase/poi/wildvillage/long/long1
/datum/map_template/groundbase/wildvillage/long/long2
name = "long building 2"
- mappath = 'southwilds/villagepois/long2.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/long2.dmm"
/area/submap/groundbase/poi/wildvillage/long/long2
/datum/map_template/groundbase/wildvillage/long/long3
name = "wide building 3"
- mappath = 'southwilds/villagepois/long3.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/long3.dmm"
/area/submap/groundbase/poi/wildvillage/long/long3
/datum/map_template/groundbase/wildvillage/long/long4
name = "wide building 4"
- mappath = 'southwilds/villagepois/long4.dmm'
+ mappath = "maps/groundbase/southwilds/villagepois/long4.dmm"
/area/submap/groundbase/poi/wildvillage/long/long4
diff --git a/maps/offmap_vr/common_offmaps.dm b/maps/offmap_vr/common_offmaps.dm
index d375c139b3..2d7bacc46b 100644
--- a/maps/offmap_vr/common_offmaps.dm
+++ b/maps/offmap_vr/common_offmaps.dm
@@ -13,7 +13,7 @@
/datum/map_template/common_lateload/away_beach
name = "Desert Planet - Z1 Beach"
desc = "The beach away mission."
- mappath = 'maps/expedition_vr/beach/beach.dmm'
+ mappath = "maps/expedition_vr/beach/beach.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_beach
/datum/map_z_level/common_lateload/away_beach
@@ -24,7 +24,7 @@
/datum/map_template/common_lateload/away_beach_cave
name = "Desert Planet - Z2 Cave"
desc = "The beach away mission's cave."
- mappath = 'maps/expedition_vr/beach/cave.dmm'
+ mappath = "maps/expedition_vr/beach/cave.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_beach_cave
/datum/map_template/common_lateload/away_beach_cave/on_map_loaded(z)
@@ -49,7 +49,7 @@
/datum/map_template/common_lateload/away_alienship
name = "Alien Ship - Z1 Ship"
desc = "The alien ship away mission."
- mappath = 'maps/expedition_vr/alienship/alienship.dmm'
+ mappath = "maps/expedition_vr/alienship/alienship.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_alienship
/datum/map_z_level/common_lateload/away_alienship
@@ -63,7 +63,7 @@
/datum/map_template/common_lateload/away_aerostat_surface
name = "Remmi Aerostat - Z2 Surface"
desc = "The surface from the Virgo 2 Aerostat."
- mappath = 'maps/expedition_vr/aerostat/surface.dmm'
+ mappath = "maps/expedition_vr/aerostat/surface.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_aerostat_surface
/datum/map_template/common_lateload/away_aerostat_surface/on_map_loaded(z)
@@ -85,7 +85,7 @@
/datum/map_template/common_lateload/away_debrisfield
name = "Debris Field - Z1 Space"
desc = "The Virgo 3 Debris Field away mission."
- mappath = 'maps/expedition_vr/space/debrisfield.dmm'
+ mappath = "maps/expedition_vr/space/debrisfield.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_debrisfield
/datum/map_template/common_lateload/away_debrisfield/on_map_loaded(z)
@@ -100,7 +100,7 @@
/datum/map_template/common_lateload/away_fueldepot
name = "Fuel Depot - Z1 Space"
desc = "An unmanned fuel depot floating in space."
- mappath = 'maps/expedition_vr/space/fueldepot.dmm'
+ mappath = "maps/expedition_vr/space/fueldepot.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_fueldepot
/datum/map_z_level/common_lateload/away_fueldepot
@@ -130,71 +130,71 @@
/datum/map_template/common_lateload/gateway/snow_outpost
name = "Snow Outpost"
desc = "Big snowy area with various outposts."
- mappath = 'maps/gateway_vr/snow_outpost.dmm'
+ mappath = "maps/gateway_vr/snow_outpost.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/gateway_destination
*/
#include "../gateway_vr/zoo.dm"
/datum/map_template/common_lateload/gateway/zoo
name = "Gateway - Zoo"
desc = "Gigantic space zoo"
- mappath = 'maps/gateway_vr/zoo_b.dmm'
+ mappath = "maps/gateway_vr/zoo_b.dmm"
#include "../gateway_vr/carpfarm.dm"
/datum/map_template/common_lateload/gateway/carpfarm
name = "Gateway - Carp Farm"
desc = "Asteroid base surrounded by carp"
- mappath = 'maps/gateway_vr/carpfarm.dmm'
+ mappath = "maps/gateway_vr/carpfarm.dmm"
#include "../gateway_vr/snowfield.dm"
/datum/map_template/common_lateload/gateway/snowfield
name = "Gateway - Snow Field"
desc = "An old base in middle of snowy wasteland"
- mappath = 'maps/gateway_vr/snowfield.dmm'
+ mappath = "maps/gateway_vr/snowfield.dmm"
#include "../gateway_vr/listeningpost.dm"
/datum/map_template/common_lateload/gateway/listeningpost
name = "Gateway - Listening Post"
desc = "Asteroid-bound mercenary listening post"
- mappath = 'maps/gateway_vr/listeningpost.dmm'
+ mappath = "maps/gateway_vr/listeningpost.dmm"
#include "../gateway_vr/variable/honlethhighlands.dm"
/datum/map_template/common_lateload/gateway/honlethhighlands_a
name = "Gateway - Honleth Highlands A"
desc = "The cold surface of some planet."
- mappath = 'maps/gateway_vr/variable/honlethhighlands_a.dmm'
+ mappath = "maps/gateway_vr/variable/honlethhighlands_a.dmm"
/datum/map_template/common_lateload/gateway/honlethhighlands_b
name = "Gateway - Honleth Highlands B"
desc = "The cold surface of some planet."
- mappath = 'maps/gateway_vr/variable/honlethhighlands_b.dmm'
+ mappath = "maps/gateway_vr/variable/honlethhighlands_b.dmm"
#include "../gateway_vr/variable/arynthilake.dm"
/datum/map_template/common_lateload/gateway/arynthilake
name = "Gateway - Arynthi Lake A"
desc = "A grassy surface with some abandoned structures."
- mappath = 'maps/gateway_vr/variable/arynthilake_a.dmm'
+ mappath = "maps/gateway_vr/variable/arynthilake_a.dmm"
/datum/map_template/common_lateload/gateway/arynthilakeunderground
name = "Gateway - Arynthi Lake Underground A"
desc = "A grassy surface with some abandoned structures."
- mappath = 'maps/gateway_vr/variable/arynthilakeunderground_a.dmm'
+ mappath = "maps/gateway_vr/variable/arynthilakeunderground_a.dmm"
/datum/map_template/common_lateload/gateway/arynthilake_b
name = "Gateway - Arynthi Lake B"
desc = "A grassy surface with some abandoned structures."
- mappath = 'maps/gateway_vr/variable/arynthilake_b.dmm'
+ mappath = "maps/gateway_vr/variable/arynthilake_b.dmm"
/datum/map_template/common_lateload/gateway/arynthilakeunderground_b
name = "Gateway - Arynthi Lake Underground B"
desc = "A grassy surface with some abandoned structures."
- mappath = 'maps/gateway_vr/variable/arynthilakeunderground_b.dmm'
+ mappath = "maps/gateway_vr/variable/arynthilakeunderground_b.dmm"
#include "../gateway_vr/wildwest.dm"
/datum/map_template/common_lateload/gateway/wildwest
name = "Gateway - Wild West"
desc = "A classic."
- mappath = 'maps/gateway_vr/wildwest.dmm'
+ mappath = "maps/gateway_vr/wildwest.dmm"
#include "../gateway_vr/lucky_7.dm"
@@ -214,7 +214,7 @@
/datum/map_template/common_lateload/om_adventure/grasscave
name = "Grass Cave"
desc = "Looks like a cave with some grass in it."
- mappath = 'maps/om_adventure/grasscave.dmm'
+ mappath = "maps/om_adventure/grasscave.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/om_adventure_destination
/datum/map_template/common_lateload/om_adventure/grasscave/on_map_loaded(z)
@@ -246,58 +246,58 @@
/datum/map_template/common_lateload/redgate/teppi_ranch
name = "Redgate - Teppi Ranch"
desc = "An abandoned teppi ranch!"
- mappath = 'maps/redgate/teppiranch.dmm'
+ mappath = "maps/redgate/teppiranch.dmm"
/datum/map_template/common_lateload/redgate/innland
name = "Redgate - Innland"
desc = "Caves and grass and a tavern, woah!"
- mappath = 'maps/redgate/innland.dmm'
+ mappath = "maps/redgate/innland.dmm"
/datum/map_template/common_lateload/redgate/abandonedisland
name = "Redgate - Abandoned Island"
desc = "It seems like it used to be people here!"
- mappath = 'maps/redgate/abandonedisland.dmm'
+ mappath = "maps/redgate/abandonedisland.dmm"
/datum/map_template/common_lateload/redgate/darkadventure
name = "Redgate - Dark Adventure"
desc = "This place seems broken!"
- mappath = 'maps/redgate/darkadventure.dmm'
+ mappath = "maps/redgate/darkadventure.dmm"
/datum/map_template/common_lateload/redgate/stardog
name = "Redgate - Star Dog"
desc = "That's a big dog!"
- mappath = 'maps/redgate/stardog.dmm'
+ mappath = "maps/redgate/stardog.dmm"
#include "../redgate/eggnogtown.dm"
/datum/map_template/common_lateload/redgate/eggnogtown
name = "Redgate - Eggnog Town"
desc = "A comfortable snowy town."
- mappath = 'maps/redgate/eggnogtown.dmm'
+ mappath = "maps/redgate/eggnogtown.dmm"
/datum/map_template/common_lateload/redgate/eggnogtownunderground
name = "Redgate - Eggnog Town Underground"
desc = "A comfortable snowy town."
- mappath = 'maps/redgate/eggnogtownunderground.dmm'
+ mappath = "maps/redgate/eggnogtownunderground.dmm"
/datum/map_template/common_lateload/redgate/hotsprings
name = "Redgate - Hotsprings"
desc = "This place is rather cosy for somewhere so abandoned!"
- mappath = 'maps/redgate/hotsprings.dmm'
+ mappath = "maps/redgate/hotsprings.dmm"
/datum/map_template/common_lateload/redgate/cybercity
name = "Redgate - Rain City"
desc = "A strange city on lockdown."
- mappath = 'maps/redgate/cybercity.dmm'
+ mappath = "maps/redgate/cybercity.dmm"
/datum/map_template/common_lateload/redgate/islands
name = "Redgate - Islands"
desc = "A series of islands out in the ocean."
- mappath = 'maps/redgate/islands.dmm'
+ mappath = "maps/redgate/islands.dmm"
/datum/map_template/common_lateload/redgate/islands_underwater
name = "Redgate - Islands Underwater"
desc = "A series of islands out in the ocean."
- mappath = 'maps/redgate/islands_underwater.dmm'
+ mappath = "maps/redgate/islands_underwater.dmm"
/obj/effect/landmark/map_data/islands
height = 2
@@ -305,12 +305,12 @@
/datum/map_template/common_lateload/redgate/train
name = "Redgate - Moving Train"
desc = "A long train travelling to who-knows-where."
- mappath = 'maps/redgate/train.dmm'
+ mappath = "maps/redgate/train.dmm"
/datum/map_template/common_lateload/redgate/train_upper
name = "Redgate - Moving Train Upper Level"
desc = "A long train travelling to who-knows-where."
- mappath = 'maps/redgate/train_upper.dmm'
+ mappath = "maps/redgate/train_upper.dmm"
/obj/effect/landmark/map_data/train
height = 2
@@ -318,12 +318,12 @@
/datum/map_template/common_lateload/redgate/fantasy
name = "Redgate - Fantasy Town"
desc = "A fantasy town full of low tech stuff."
- mappath = 'maps/redgate/fantasy.dmm'
+ mappath = "maps/redgate/fantasy.dmm"
/datum/map_template/common_lateload/redgate/fantasy_dungeon
name = "Redgate - Fantasy Dungeon"
desc = "A fantasy dungeon with lots of monsters and loot."
- mappath = 'maps/redgate/fantasy_dungeon.dmm'
+ mappath = "maps/redgate/fantasy_dungeon.dmm"
/obj/effect/landmark/map_data/fantasy
height = 2
@@ -331,22 +331,22 @@
/datum/map_template/common_lateload/redgate/laserdome
name = "Redgate - Laserdome"
desc = "A large orbital station with recreational facilities, namely a pair of laser tag arenas."
- mappath = 'maps/redgate/laserdome.dmm'
+ mappath = "maps/redgate/laserdome.dmm"
/datum/map_template/common_lateload/redgate/falls
name = "Redgate - Cascading Falls"
desc = "A world made up almost entirely of water, sprinkled with obscure marble structures."
- mappath = 'maps/redgate/falls/falls.dmm'
+ mappath = "maps/redgate/falls/falls.dmm"
/datum/map_template/common_lateload/redgate/jungle
name = "Redgate - Jungle"
desc = "A fantasy town full of low tech stuff."
- mappath = 'maps/redgate/jungle.dmm'
+ mappath = "maps/redgate/jungle.dmm"
/datum/map_template/common_lateload/redgate/jungle_underground
name = "Redgate - Jungle Underground"
desc = "A fantasy dungeon with lots of monsters and loot."
- mappath = 'maps/redgate/jungle_underground.dmm'
+ mappath = "maps/redgate/jungle_underground.dmm"
/obj/effect/landmark/map_data/jungle
height = 2
@@ -354,7 +354,7 @@
/datum/map_template/common_lateload/redgate/facility
name = "Redgate - Facility"
desc = "A facility full of unusual experiments."
- mappath = 'maps/redgate/facility.dmm'
+ mappath = "maps/redgate/facility.dmm"
//////////////////////////////////////////////////////////////////////////////////////
// Admin-use z-levels for loading whenever an admin feels like
@@ -365,7 +365,7 @@
/datum/map_template/common_lateload/fun/spa
name = "Space Spa"
desc = "A pleasant spa located in a spaceship."
- mappath = 'maps/submaps/admin_use_vr/spa.dmm'
+ mappath = "maps/submaps/admin_use_vr/spa.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/fun/spa
@@ -548,42 +548,42 @@
/datum/map_template/admin_use/ert
name = "Special Area - ERT"
desc = "It's the ERT ship! Lorge."
- mappath = 'maps/submaps/admin_use_vr/ert.dmm'
+ mappath = "maps/submaps/admin_use_vr/ert.dmm"
/datum/map_template/admin_use/trader
name = "Special Area - Trader"
desc = "Big trader ship."
- mappath = 'maps/submaps/admin_use_vr/tradeship.dmm'
+ mappath = "maps/submaps/admin_use_vr/tradeship.dmm"
/datum/map_template/admin_use/salamander_trader
name = "Special Area - Salamander Trader"
desc = "Modest trader ship."
- mappath = 'maps/submaps/admin_use_vr/salamander_trader.dmm'
+ mappath = "maps/submaps/admin_use_vr/salamander_trader.dmm"
/datum/map_template/admin_use/mercenary
name = "Special Area - Merc Ship"
desc = "Prepare tae be boarded, arr!"
- mappath = 'maps/submaps/admin_use_vr/kk_mercship.dmm'
+ mappath = "maps/submaps/admin_use_vr/kk_mercship.dmm"
/datum/map_template/admin_use/skipjack
name = "Special Area - Skipjack Base"
desc = "Stinky!"
- mappath = 'maps/submaps/admin_use_vr/skipjack.dmm'
+ mappath = "maps/submaps/admin_use_vr/skipjack.dmm"
/datum/map_template/admin_use/thunderdome
name = "Special Area - Thunderdome"
desc = "Thunderrrrdomeee"
- mappath = 'maps/submaps/admin_use_vr/thunderdome.dmm'
+ mappath = "maps/submaps/admin_use_vr/thunderdome.dmm"
/datum/map_template/admin_use/wizardbase
name = "Special Area - Wizard Base"
desc = "Wingardium Levosia"
- mappath = 'maps/submaps/admin_use_vr/wizard.dmm'
+ mappath = "maps/submaps/admin_use_vr/wizard.dmm"
/datum/map_template/admin_use/dojo
name = "Special Area - Ninja Dojo"
desc = "Sneaky"
- mappath = 'maps/submaps/admin_use_vr/dojo.dmm'
+ mappath = "maps/submaps/admin_use_vr/dojo.dmm"
//////////////////////////////////////////////////////////////////////////////
//Overmap ship spawns
@@ -623,7 +623,7 @@
/datum/map_template/common_lateload/offmap/talon_v2
name = "Offmap Ship - Talon V2"
desc = "Offmap spawn ship, the Talon."
- mappath = 'maps/offmap_vr/talon/talon_v2.dmm'
+ mappath = "maps/offmap_vr/talon/talon_v2.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/talon_v2
/datum/map_z_level/common_lateload/talon_v2
diff --git a/maps/offmap_vr/om_ships/abductor.dm b/maps/offmap_vr/om_ships/abductor.dm
index 6c405bf926..cdfacaad70 100644
--- a/maps/offmap_vr/om_ships/abductor.dm
+++ b/maps/offmap_vr/om_ships/abductor.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/abductor
name = "OM Ship - Abductor Ship (New Z)"
desc = "A ship for spooky aliens to kidnap farmers and unfortunate spacemen."
- mappath = 'abductor.dmm'
+ mappath = "maps/offmap_vr/om_ships/abductor.dmm"
/area/abductor
requires_power = 0
diff --git a/maps/offmap_vr/om_ships/aro.dm b/maps/offmap_vr/om_ships/aro.dm
index f8b1870b48..b6f7dfa3de 100644
--- a/maps/offmap_vr/om_ships/aro.dm
+++ b/maps/offmap_vr/om_ships/aro.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/aro
name = "OM Ship - Aronai (New Z)"
desc = "It's Aronai! As a spaceship."
- mappath = 'aro.dmm'
+ mappath = "maps/offmap_vr/om_ships/aro.dmm"
// The shuttle's area(s)
/area/ship/aro
diff --git a/maps/offmap_vr/om_ships/aro2.dm b/maps/offmap_vr/om_ships/aro2.dm
index 22fe311472..9b50527bda 100644
--- a/maps/offmap_vr/om_ships/aro2.dm
+++ b/maps/offmap_vr/om_ships/aro2.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/aro2
name = "OM Ship - Aronai 2.0 (New Z)"
desc = "It's Aronai! As a spaceship."
- mappath = 'aro2.dmm'
+ mappath = "maps/offmap_vr/om_ships/aro2.dmm"
/area/aro2
requires_power = 1
diff --git a/maps/offmap_vr/om_ships/aro3.dm b/maps/offmap_vr/om_ships/aro3.dm
index e891bd6e96..3cb4bfdc4f 100644
--- a/maps/offmap_vr/om_ships/aro3.dm
+++ b/maps/offmap_vr/om_ships/aro3.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/aro3
name = "OM Ship - Aronai 3.0 (New Z)"
desc = "It's Aronai! As a spaceship."
- mappath = 'aro3.dmm'
+ mappath = "maps/offmap_vr/om_ships/aro3.dmm"
/area/aro3
requires_power = 1
diff --git a/maps/offmap_vr/om_ships/bearcat.dm b/maps/offmap_vr/om_ships/bearcat.dm
index 6c21dc6ed5..f3e3253de9 100644
--- a/maps/offmap_vr/om_ships/bearcat.dm
+++ b/maps/offmap_vr/om_ships/bearcat.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/bearcat
name = "OM Ship - Bearcat (New Z)"
desc = "An old salvage ship, abandoned but seemingly intact."
- mappath = 'bearcat.dmm'
+ mappath = "maps/offmap_vr/om_ships/bearcat.dmm"
// The 'shuttle'
/datum/shuttle/autodock/overmap/bearcat
diff --git a/maps/offmap_vr/om_ships/curashuttle.dm b/maps/offmap_vr/om_ships/curashuttle.dm
index 212c5b56c4..49024cdf8c 100644
--- a/maps/offmap_vr/om_ships/curashuttle.dm
+++ b/maps/offmap_vr/om_ships/curashuttle.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/curabiturmedical
name = "OM Ship - Curabitur Rescue Shuttle (new Z)"
desc = "A small corporate rescue shuttle."
- mappath = 'curashuttle.dmm'
+ mappath = "maps/offmap_vr/om_ships/curashuttle.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/geckos.dm b/maps/offmap_vr/om_ships/geckos.dm
index 469ed60b45..e2641ebf68 100644
--- a/maps/offmap_vr/om_ships/geckos.dm
+++ b/maps/offmap_vr/om_ships/geckos.dm
@@ -8,19 +8,19 @@
/datum/map_template/om_ships/gecko_stationhopper
name = "OM Ship - Gecko Stationhopper (new Z)"
desc = "A medium personnel transport shuttle."
- mappath = 'gecko_sh.dmm'
+ mappath = "maps/offmap_vr/om_ships/gecko_sh.dmm"
annihilate = TRUE
/datum/map_template/om_ships/gecko_cargohauler
name = "OM Ship - Gecko Cargo Hauler (new Z)"
desc = "A medium supply transport shuttle."
- mappath = 'gecko_cr.dmm'
+ mappath = "maps/offmap_vr/om_ships/gecko_cr.dmm"
annihilate = TRUE
/datum/map_template/om_ships/gecko_cargohauler_wreck
name = "OM Ship - Wrecked Gecko Cargo Hauler (new Z)"
desc = "A wrecked medium supply transport shuttle."
- mappath = 'gecko_cr_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/gecko_cr_wreck.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/generic_shuttle.dm b/maps/offmap_vr/om_ships/generic_shuttle.dm
index 0be9f3b7a8..cb09b1eb8e 100644
--- a/maps/offmap_vr/om_ships/generic_shuttle.dm
+++ b/maps/offmap_vr/om_ships/generic_shuttle.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/hybrid
name = "OM Ship - Generic Shuttle"
desc = "A small privately-owned vessel."
- mappath = 'generic_shuttle.dmm'
+ mappath = "maps/offmap_vr/om_ships/generic_shuttle.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/hybridshuttle.dm b/maps/offmap_vr/om_ships/hybridshuttle.dm
index 09bdc7abad..3fba1efbdb 100644
--- a/maps/offmap_vr/om_ships/hybridshuttle.dm
+++ b/maps/offmap_vr/om_ships/hybridshuttle.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/hybrid
name = "OM Ship - Hybrid Shuttle"
desc = "A prototype human/alien tech hybrid shuttle."
- mappath = 'hybridshuttle.dmm'
+ mappath = "maps/offmap_vr/om_ships/hybridshuttle.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/itglight.dm b/maps/offmap_vr/om_ships/itglight.dm
index d38f066fc7..0c158a33cf 100644
--- a/maps/offmap_vr/om_ships/itglight.dm
+++ b/maps/offmap_vr/om_ships/itglight.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/itglight
name = "OM Ship - ITG Dauntless (New Z)"
desc = "A small, well armed interstellar cargo ship!!"
- mappath = 'itglight.dmm'
+ mappath = "maps/offmap_vr/om_ships/itglight.dmm"
/area/itglight
requires_power = 1
diff --git a/maps/offmap_vr/om_ships/lunaship.dm b/maps/offmap_vr/om_ships/lunaship.dm
index c624d9c210..c5cd942855 100644
--- a/maps/offmap_vr/om_ships/lunaship.dm
+++ b/maps/offmap_vr/om_ships/lunaship.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/lunaship
name = "OM Ship - LUNA"
desc = "It's LUNA! As a spaceship."
- mappath = 'lunaship.dmm'
+ mappath = "maps/offmap_vr/om_ships/lunaship.dmm"
/area/lunaship
requires_power = 1
diff --git a/maps/offmap_vr/om_ships/mackerels.dm b/maps/offmap_vr/om_ships/mackerels.dm
index d132b9ce2c..28f0a2076b 100644
--- a/maps/offmap_vr/om_ships/mackerels.dm
+++ b/maps/offmap_vr/om_ships/mackerels.dm
@@ -11,31 +11,31 @@
/datum/map_template/om_ships/mackerel_stationhopper
name = "OM Ship - Mackerel Stationhopper (new Z)"
desc = "A small personnel transport shuttle."
- mappath = 'mackerel_sh.dmm'
+ mappath = "maps/offmap_vr/om_ships/mackerel_sh.dmm"
annihilate = TRUE
/datum/map_template/om_ships/mackerel_lightcargo
name = "OM Ship - Mackerel Light Cargo (new Z)"
desc = "A small light cargo transport shuttle."
- mappath = 'mackerel_lc.dmm'
+ mappath = "maps/offmap_vr/om_ships/mackerel_lc.dmm"
annihilate = TRUE
/datum/map_template/om_ships/mackerel_heavycargo
name = "OM Ship - Mackerel Heavy Cargo (new Z)"
desc = "A small secure cargo transport shuttle."
- mappath = 'mackerel_hc.dmm'
+ mappath = "maps/offmap_vr/om_ships/mackerel_hc.dmm"
annihilate = TRUE
/datum/map_template/om_ships/mackerel_heavycargo_skel
name = "OM Ship - Mackerel Heavy Cargo Spartanized (new Z)"
desc = "A small heavy cargo transport shuttle."
- mappath = 'mackerel_hc_skel.dmm'
+ mappath = "maps/offmap_vr/om_ships/mackerel_hc_skel.dmm"
annihilate = TRUE
/datum/map_template/om_ships/mackerel_lightcargo_wreck
name = "OM Ship - Mackerel Light Cargo Wreck (new Z)"
desc = "A small light cargo transport shuttle, struck by... something. Ouch."
- mappath = 'mackerel_lc_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/mackerel_lc_wreck.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/mercship.dm b/maps/offmap_vr/om_ships/mercship.dm
index 89568e9444..9b96af5d13 100644
--- a/maps/offmap_vr/om_ships/mercship.dm
+++ b/maps/offmap_vr/om_ships/mercship.dm
@@ -8,7 +8,7 @@
/datum/map_template/om_ships/syndicatecarrier
name = "OM Ship - Generic Cruiser (New Z)"
desc = "Mercenary Ship."
- mappath = 'mercship.dmm'
+ mappath = "maps/offmap_vr/om_ships/mercship.dmm"
// The ship's area(s)
/area/ship/mercenary
diff --git a/maps/offmap_vr/om_ships/salamander.dm b/maps/offmap_vr/om_ships/salamander.dm
index 661e8f22c5..b55061c27d 100644
--- a/maps/offmap_vr/om_ships/salamander.dm
+++ b/maps/offmap_vr/om_ships/salamander.dm
@@ -7,14 +7,14 @@
/datum/map_template/om_ships/salamander
name = "OM Ship - Salamander Corvette"
desc = "A medium multirole spacecraft."
- mappath = 'salamander.dmm'
+ mappath = "maps/offmap_vr/om_ships/salamander.dmm"
annihilate = TRUE
// Map template for spawning the shuttle
/datum/map_template/om_ships/salamander_wreck
name = "OM Ship - Salamander Corvette Wreckage"
desc = "A medium multirole spacecraft, or at least what's left of it."
- mappath = 'salamander_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/salamander_wreck.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/screebarge.dm b/maps/offmap_vr/om_ships/screebarge.dm
index 0da5104581..dcc665e66f 100644
--- a/maps/offmap_vr/om_ships/screebarge.dm
+++ b/maps/offmap_vr/om_ships/screebarge.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/screebarge
name = "OM Ship - Battle Barge"
desc = "The BATTLE BARGE."
- mappath = 'screebarge.dmm'
+ mappath = "maps/offmap_vr/om_ships/screebarge.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/sdf_corvettes.dm b/maps/offmap_vr/om_ships/sdf_corvettes.dm
index 558ed21fae..7050f59a30 100644
--- a/maps/offmap_vr/om_ships/sdf_corvettes.dm
+++ b/maps/offmap_vr/om_ships/sdf_corvettes.dm
@@ -9,19 +9,19 @@
/datum/map_template/om_ships/sdf_corvette
name = "OM Ship - SDF Corvette (new Z)"
desc = "A small SDF patrol corvette."
- mappath = 'sdf_corvette.dmm'
+ mappath = "maps/offmap_vr/om_ships/sdf_corvette.dmm"
annihilate = TRUE
/datum/map_template/om_ships/sdf_corvette_wreck
name = "OM Ship - SDF Corvette Wreck (new Z)"
desc = "A small SD patrol corvette. It seems to have had a bad day."
- mappath = 'sdf_corvette_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/sdf_corvette_wreck.dmm"
annihilate = TRUE
/datum/map_template/om_ships/sdf_corvette
name = "OM Ship - SDF Cutter (new Z)"
desc = "A small SDF cutter, outfitted with an ORB/OFD."
- mappath = 'sdf_cutter.dmm'
+ mappath = "maps/offmap_vr/om_ships/sdf_cutter.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/shelter_5.dm b/maps/offmap_vr/om_ships/shelter_5.dm
index a1060f79f0..b25c9e7b28 100644
--- a/maps/offmap_vr/om_ships/shelter_5.dm
+++ b/maps/offmap_vr/om_ships/shelter_5.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/escapepod
name = "OM Ship - Escape Pod"
desc = "An escape pod."
- mappath = 'shelter_5.dmm'
+ mappath = "maps/offmap_vr/om_ships/shelter_5.dmm"
annihilate = TRUE
// The shuttle's area(s)
diff --git a/maps/offmap_vr/om_ships/vespa.dm b/maps/offmap_vr/om_ships/vespa.dm
index be3810bad3..f4b936a612 100644
--- a/maps/offmap_vr/om_ships/vespa.dm
+++ b/maps/offmap_vr/om_ships/vespa.dm
@@ -7,7 +7,7 @@
/datum/map_template/om_ships/vespa
name = "OM Ship - Vespa (New Z)"
desc = "The Vespa, a Hephaestus Industries vessel."
- mappath = 'vespa.dmm'
+ mappath = "maps/offmap_vr/om_ships/vespa.dmm"
// The shuttle's area(s)
/area/ship/expe
diff --git a/maps/om_adventure/grasscave.dm b/maps/om_adventure/grasscave.dm
index e4544cd087..c52271f59a 100644
--- a/maps/om_adventure/grasscave.dm
+++ b/maps/om_adventure/grasscave.dm
@@ -111,7 +111,7 @@
/datum/map_template/om_adventure/outdoor/darkstar
name = "Darkstar"
desc = "A mysterious shape!"
- mappath = 'pois/darkstar.dmm'
+ mappath = "maps/om_adventure/pois/darkstar.dmm"
cost = 5
/area/om_adventure/poi/darktear1
@@ -120,7 +120,7 @@
/datum/map_template/om_adventure/cave/darktear1
name = "darktear1"
desc = "A mysterious shape!"
- mappath = 'pois/darktear1.dmm'
+ mappath = "maps/om_adventure/pois/darktear1.dmm"
cost = 5
/area/om_adventure/poi/darktear2
@@ -129,7 +129,7 @@
/datum/map_template/om_adventure/cave/darktear2
name = "darktear2"
desc = "A mysterious shape!"
- mappath = 'pois/darktear2.dmm'
+ mappath = "maps/om_adventure/pois/darktear2.dmm"
cost = 5
/area/om_adventure/poi/darktear3
@@ -138,7 +138,7 @@
/datum/map_template/om_adventure/cave/darktear3
name = "darktear3"
desc = "A mysterious shape!"
- mappath = 'pois/darktear3.dmm'
+ mappath = "maps/om_adventure/pois/darktear3.dmm"
cost = 5
/area/om_adventure/poi/darktear4
@@ -147,7 +147,7 @@
/datum/map_template/om_adventure/cave/darktear4
name = "darktear4"
desc = "A mysterious shape!"
- mappath = 'pois/darktear4.dmm'
+ mappath = "maps/om_adventure/pois/darktear4.dmm"
cost = 5
/area/om_adventure/poi/darktear_sample
@@ -156,7 +156,7 @@
/datum/map_template/om_adventure/cave/darktear_sample
name = "darktear (Samples)" //1 uncommon-or-rare sample
desc = "Ooh, spooky"
- mappath = 'pois/darktear_sample.dmm'
+ mappath = "maps/om_adventure/pois/darktear_sample.dmm"
cost = 5
/area/om_adventure/poi/fleshtear1
@@ -165,7 +165,7 @@
/datum/map_template/om_adventure/cave/fleshtear1
name = "fleshtear1"
desc = "Wow gross!"
- mappath = 'pois/fleshtear1.dmm'
+ mappath = "maps/om_adventure/pois/fleshtear1.dmm"
cost = 5
/area/om_adventure/poi/fleshtear2
@@ -174,7 +174,7 @@
/datum/map_template/om_adventure/cave/fleshtear2
name = "fleshtear2"
desc = "Wow gross!"
- mappath = 'pois/fleshtear2.dmm'
+ mappath = "maps/om_adventure/pois/fleshtear2.dmm"
cost = 5
/area/om_adventure/poi/fleshtear3
@@ -183,7 +183,7 @@
/datum/map_template/om_adventure/cave/fleshtear3
name = "fleshtear3"
desc = "Wow gross!"
- mappath = 'pois/fleshtear3.dmm'
+ mappath = "maps/om_adventure/pois/fleshtear3.dmm"
cost = 5
/area/om_adventure/poi/fleshtear4
@@ -192,7 +192,7 @@
/datum/map_template/om_adventure/cave/fleshtear4
name = "fleshtear4"
desc = "Wow gross!"
- mappath = 'pois/fleshtear4.dmm'
+ mappath = "maps/om_adventure/pois/fleshtear4.dmm"
cost = 5
/area/om_adventure/poi/fleshtear_samples
@@ -201,7 +201,7 @@
/datum/map_template/om_adventure/cave/fleshtear_samples
name = "fleshtear (Samples)" //3 common/uncommon samples
desc = "Ooh, meaty"
- mappath = 'pois/fleshtear_samples.dmm'
+ mappath = "maps/om_adventure/pois/fleshtear_samples.dmm"
cost = 5
/area/om_adventure/poi/cabin1
@@ -210,7 +210,7 @@
/datum/map_template/om_adventure/outdoor/cabin1
name = "cabin1"
desc = "A comfy home!"
- mappath = 'pois/cabin1.dmm'
+ mappath = "maps/om_adventure/pois/cabin1.dmm"
cost = 20
/area/om_adventure/poi/cabin2
@@ -219,7 +219,7 @@
/datum/map_template/om_adventure/outdoor/cabin2
name = "cabin2"
desc = "A comfy home!"
- mappath = 'pois/cabin2.dmm'
+ mappath = "maps/om_adventure/pois/cabin2.dmm"
cost = 20
/area/om_adventure/poi/cabin3
@@ -228,7 +228,7 @@
/datum/map_template/om_adventure/outdoor/cabin3
name = "cabin3"
desc = "A comfy... home?"
- mappath = 'pois/cabin3.dmm'
+ mappath = "maps/om_adventure/pois/cabin3.dmm"
cost = 10
/area/om_adventure/poi/camp
@@ -237,7 +237,7 @@
/datum/map_template/om_adventure/outdoor/camp
name = "Camp"
desc = "A camp!"
- mappath = 'pois/camp.dmm'
+ mappath = "maps/om_adventure/pois/camp.dmm"
cost = 20
/area/om_adventure/poi/shuttlewreck1
@@ -246,7 +246,7 @@
/datum/map_template/om_adventure/outdoor/shuttlewreck1
name = "Shuttle wreck"
desc = "Long abandoned!"
- mappath = 'pois/shuttlewreck1.dmm'
+ mappath = "maps/om_adventure/pois/shuttlewreck1.dmm"
cost = 5
/area/om_adventure/poi/shuttlewreck2
@@ -255,7 +255,7 @@
/datum/map_template/om_adventure/outdoor/shuttlewreck2
name = "Shuttle wreck"
desc = "Long abandoned!"
- mappath = 'pois/shuttlewreck2.dmm'
+ mappath = "maps/om_adventure/pois/shuttlewreck2.dmm"
cost = 10
/area/om_adventure/poi/shuttlewreck3
@@ -264,7 +264,7 @@
/datum/map_template/om_adventure/outdoor/shuttlewreck3
name = "Shuttle wreck"
desc = "Long abandoned!"
- mappath = 'pois/shuttlewreck3.dmm'
+ mappath = "maps/om_adventure/pois/shuttlewreck3.dmm"
cost = 5
/area/om_adventure/poi/shuttlewreck4
@@ -273,7 +273,7 @@
/datum/map_template/om_adventure/outdoor/shuttlewreck4
name = "Shuttle wreck"
desc = "Long abandoned!"
- mappath = 'pois/shuttlewreck4.dmm'
+ mappath = "maps/om_adventure/pois/shuttlewreck4.dmm"
cost = 10
/area/om_adventure/poi/medicalcenter
@@ -282,7 +282,7 @@
/datum/map_template/om_adventure/outdoor/medicalcenter
name = "Medical Center"
desc = "Maybe they used to heal people here."
- mappath = 'pois/medicalcenter.dmm'
+ mappath = "maps/om_adventure/pois/medicalcenter.dmm"
cost = 10
/area/om_adventure/poi/shippart1
@@ -291,7 +291,7 @@
/datum/map_template/om_adventure/outdoor/shippart1
name = "Ship Part"
desc = "Something bad happened here."
- mappath = 'pois/shippart1.dmm'
+ mappath = "maps/om_adventure/pois/shippart1.dmm"
cost = 10
/area/om_adventure/poi/woodentemple
@@ -300,7 +300,7 @@
/datum/map_template/om_adventure/cave/woodentemple
name = "Wooden Temple"
desc = "A comfy wooden temple."
- mappath = 'pois/woodentemple.dmm'
+ mappath = "maps/om_adventure/pois/woodentemple.dmm"
cost = 10
/area/om_adventure/poi/alienchamber1
@@ -309,7 +309,7 @@
/datum/map_template/om_adventure/cave/alienchamber1
name = "Alien Chamber"
desc = "A mysterious alien chamber!"
- mappath = 'pois/alienchamber1.dmm'
+ mappath = "maps/om_adventure/pois/alienchamber1.dmm"
cost = 10
/area/om_adventure/poi/alienchamber2
@@ -318,7 +318,7 @@
/datum/map_template/om_adventure/cave/alienchamber2
name = "Alien Chamber"
desc = "A mysterious alien chamber!"
- mappath = 'pois/alienchamber2.dmm'
+ mappath = "maps/om_adventure/pois/alienchamber2.dmm"
cost = 10
/area/om_adventure/poi/alienchamber3
@@ -327,7 +327,7 @@
/datum/map_template/om_adventure/cave/alienchamber3
name = "Alien Chamber"
desc = "A mysterious alien chamber!"
- mappath = 'pois/alienchamber3.dmm'
+ mappath = "maps/om_adventure/pois/alienchamber3.dmm"
cost = 10
/area/om_adventure/poi/alienchamber4
@@ -336,7 +336,7 @@
/datum/map_template/om_adventure/cave/alienchamber4
name = "Alien Chamber"
desc = "A mysterious alien chamber!"
- mappath = 'pois/alienchamber4.dmm'
+ mappath = "maps/om_adventure/pois/alienchamber4.dmm"
cost = 10
/obj/tether_away_spawner/spookyland
diff --git a/maps/stellar_delight/stellar_delight_defines.dm b/maps/stellar_delight/stellar_delight_defines.dm
index 450a72379d..4d72693fb6 100644
--- a/maps/stellar_delight/stellar_delight_defines.dm
+++ b/maps/stellar_delight/stellar_delight_defines.dm
@@ -321,7 +321,7 @@
/datum/map_template/ship_lateload/ship_centcom
name = "Ship - Central Command"
desc = "Central Command lives here!"
- mappath = 'ship_centcom.dmm'
+ mappath = "maps/stellar_delight/ship_centcom.dmm"
associated_map_datum = /datum/map_z_level/ship_lateload/ship_centcom
@@ -337,7 +337,7 @@
/datum/map_template/ship_lateload/ship_misc
name = "Ship - Misc"
desc = "Misc areas, like some transit areas, holodecks, merc area."
- mappath = 'ship_misc.dmm'
+ mappath = "maps/stellar_delight/ship_misc.dmm"
associated_map_datum = /datum/map_z_level/ship_lateload/misc
@@ -350,7 +350,7 @@
/datum/map_template/ship_lateload/space_rocks
name = "V3b Asteroid Field"
desc = "Space debris is common in V3b's orbit due to the proximity of Virgo 3"
- mappath = 'maps/submaps/space_rocks/space_rocks.dmm'
+ mappath = "maps/submaps/space_rocks/space_rocks.dmm"
associated_map_datum = /datum/map_z_level/ship_lateload/space_rocks
@@ -369,7 +369,7 @@
/datum/map_template/ship_lateload/overmap
name = "Overmap"
desc = "Overmap lives here :3"
- mappath = 'overmap.dmm'
+ mappath = "maps/stellar_delight/overmap.dmm"
associated_map_datum = /datum/map_z_level/ship_lateload/overmap
@@ -382,5 +382,5 @@
/datum/map_template/common_lateload/away_aerostat
name = "Remmi Aerostat - Z1 Aerostat"
desc = "The Virgo 2 Aerostat away mission."
- mappath = 'maps/expedition_vr/aerostat/aerostat_science_outpost.dmm'
+ mappath = "maps/expedition_vr/aerostat/aerostat_science_outpost.dmm"
associated_map_datum = /datum/map_z_level/common_lateload/away_aerostat
diff --git a/maps/submaps/admin_use_vr/ert.dm b/maps/submaps/admin_use_vr/ert.dm
index 06021501f0..70db305bc4 100644
--- a/maps/submaps/admin_use_vr/ert.dm
+++ b/maps/submaps/admin_use_vr/ert.dm
@@ -8,7 +8,7 @@
/datum/map_template/om_ships/ert_ship
name = "OM Ship - ERT Ship (New Z)"
desc = "NT Emergency Response Ship."
- mappath = 'ert.dmm'
+ mappath = "maps/submaps/admin_use_vr/ert.dmm"
// The ship's area(s)
/area/ship/ert
diff --git a/maps/submaps/admin_use_vr/event_autonomous_drone.dm b/maps/submaps/admin_use_vr/event_autonomous_drone.dm
index 48a7735968..2bdb6e59af 100644
--- a/maps/submaps/admin_use_vr/event_autonomous_drone.dm
+++ b/maps/submaps/admin_use_vr/event_autonomous_drone.dm
@@ -6,7 +6,7 @@
/datum/map_template/om_ships/event_autonomous_drone
name = "OM Ship - Cargo Drone"
desc = "A small cargo hauler"
- mappath = 'event_autonomous_drone.dmm'
+ mappath = "maps/submaps/admin_use_vr/event_autonomous_drone.dmm"
annihilate = TRUE
/datum/shuttle/autodock/overmap/event_autonomous_drone
diff --git a/maps/submaps/admin_use_vr/fun.dm b/maps/submaps/admin_use_vr/fun.dm
index 6702e32122..5d5d09c4ba 100644
--- a/maps/submaps/admin_use_vr/fun.dm
+++ b/maps/submaps/admin_use_vr/fun.dm
@@ -11,7 +11,7 @@
/datum/map_template/admin_use/casino
name = "Lucky 7 Casino"
desc = "A casino to gamble your life away."
- mappath = 'maps/submaps/admin_use_vr/lucky_7.dmm'
+ mappath = "maps/submaps/admin_use_vr/lucky_7.dmm"
// NEVER EVER use these on an actual included map.
// These are for admins to use when they make quick maps and upload the .dmm files for loading
diff --git a/maps/submaps/admin_use_vr/mercship.dm b/maps/submaps/admin_use_vr/mercship.dm
index 6af7a7192e..07596f2794 100644
--- a/maps/submaps/admin_use_vr/mercship.dm
+++ b/maps/submaps/admin_use_vr/mercship.dm
@@ -8,7 +8,7 @@
/datum/map_template/om_ships/manta_ship
name = "OM Ship - Mercenary Cruiser (New Z)"
desc = "Mercenary Manta Cruiser."
- mappath = 'kk_mercship.dmm'
+ mappath = "maps/submaps/admin_use_vr/kk_mercship.dmm"
// The ship's area(s)
/area/ship/manta
diff --git a/maps/submaps/depreciated_vr/_depreciated.dm b/maps/submaps/depreciated_vr/_depreciated.dm
index bc252758a5..659d011668 100644
--- a/maps/submaps/depreciated_vr/_depreciated.dm
+++ b/maps/submaps/depreciated_vr/_depreciated.dm
@@ -1,25 +1,25 @@
/datum/map_template/admin_use/old_mercenary
name = "Special Area - Old Merc Base"
desc = "So much red!"
- mappath = 'maps/submaps/admin_use_vr/mercbase.dmm'
+ mappath = "maps/submaps/admin_use_vr/mercbase.dmm"
/datum/map_template/admin_use/ert
name = "Special Area - ERT"
desc = "ERT Base."
- mappath = 'maps/submaps/admin_use_vr/ert_base.dmm'
+ mappath = "maps/submaps/admin_use_vr/ert_base.dmm"
// Old two-Z Talon - left commented out because multi-z maploading is fussy or something IIRC
/*
/datum/map_template/tether_lateload/offmap/talon1
name = "Offmap Ship - Talon Z1"
desc = "Offmap spawn ship, the Talon."
- mappath = 'maps/submaps/depreciated_vr/talon/talon1.dmm'
+ mappath = "maps/submaps/depreciated_vr/talon/talon1.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/talon1
/datum/map_template/tether_lateload/offmap/talon2
name = "Offmap Ship - Talon Z2"
desc = "Offmap spawn ship, the Talon."
- mappath = 'maps/submaps/depreciated_vr/talon/talon2.dmm'
+ mappath = "maps/submaps/depreciated_vr/talon/talon2.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/talon2
/datum/map_z_level/tether_lateload/talon1
@@ -33,4 +33,4 @@
flags = MAP_LEVEL_PLAYER
base_turf = /turf/simulated/open
z = Z_LEVEL_OFFMAP2
-*/
\ No newline at end of file
+*/
diff --git a/maps/submaps/engine_submaps/southern_cross/_engine_submaps.dm b/maps/submaps/engine_submaps/southern_cross/_engine_submaps.dm
index b6f9069902..d76cd1f544 100644
--- a/maps/submaps/engine_submaps/southern_cross/_engine_submaps.dm
+++ b/maps/submaps/engine_submaps/southern_cross/_engine_submaps.dm
@@ -18,19 +18,19 @@
/datum/map_template/engine/rust
name = "R-UST Engine"
desc = "R-UST Fusion Tokamak Engine"
- mappath = 'maps/submaps/engine_submaps/southern_cross/engine_rust.dmm'
+ mappath = "maps/submaps/engine_submaps/southern_cross/engine_rust.dmm"
/datum/map_template/engine/singulo
name = "Singularity Engine"
desc = "Lord Singuloth"
- mappath = 'maps/submaps/engine_submaps/southern_cross/engine_singulo.dmm'
+ mappath = "maps/submaps/engine_submaps/southern_cross/engine_singulo.dmm"
/datum/map_template/engine/supermatter
name = "Supermatter Engine"
desc = "Old Faithful Supermatter"
- mappath = 'maps/submaps/engine_submaps/southern_cross/engine_sme.dmm'
+ mappath = "maps/submaps/engine_submaps/southern_cross/engine_sme.dmm"
/datum/map_template/engine/tesla
name = "Edison's Bane"
desc = "The Telsa Engine"
- mappath = 'maps/submaps/engine_submaps/southern_cross/engine_tesla.dmm'
+ mappath = "maps/submaps/engine_submaps/southern_cross/engine_tesla.dmm"
diff --git a/maps/submaps/engine_submaps_vr/tether/_engine_submaps.dm b/maps/submaps/engine_submaps_vr/tether/_engine_submaps.dm
index 2539c3eaa2..e720312951 100644
--- a/maps/submaps/engine_submaps_vr/tether/_engine_submaps.dm
+++ b/maps/submaps/engine_submaps_vr/tether/_engine_submaps.dm
@@ -1,4 +1,4 @@
-// This causes engine maps to get 'checked' and compiled, when undergoing a unit test.
+ // This causes engine maps to get 'checked' and compiled, when undergoing a unit test.
// This is so CI can validate PoIs, and ensure future changes don't break PoIs, as PoIs are loaded at runtime and the compiler can't catch errors.
// When adding a new engine, please add it to this list.
#ifdef MAP_TEST
@@ -17,19 +17,19 @@
/datum/map_template/engine/rust
name = "R-UST Engine"
desc = "R-UST Fusion Tokamak Engine"
- mappath = 'maps/submaps/engine_submaps_vr/tether/engine_rust.dmm'
+ mappath = "maps/submaps/engine_submaps_vr/tether/engine_rust.dmm"
/datum/map_template/engine/singulo
name = "Singularity Engine"
desc = "Lord Singuloth"
- mappath = 'maps/submaps/engine_submaps_vr/tether/engine_singulo.dmm'
+ mappath = "maps/submaps/engine_submaps_vr/tether/engine_singulo.dmm"
/datum/map_template/engine/supermatter
name = "Supermatter Engine"
desc = "Old Faithful Supermatter"
- mappath = 'maps/submaps/engine_submaps_vr/tether/engine_sme.dmm'
+ mappath = "maps/submaps/engine_submaps_vr/tether/engine_sme.dmm"
/datum/map_template/engine/tesla
name = "Edison's Bane"
desc = "The Telsa Engine"
- mappath = 'maps/submaps/engine_submaps_vr/tether/engine_tesla.dmm'
+ mappath = "maps/submaps/engine_submaps_vr/tether/engine_tesla.dmm"
diff --git a/maps/submaps/pois_vr/aerostat/virgo2.dm b/maps/submaps/pois_vr/aerostat/virgo2.dm
index e897592dd4..5362035b65 100644
--- a/maps/submaps/pois_vr/aerostat/virgo2.dm
+++ b/maps/submaps/pois_vr/aerostat/virgo2.dm
@@ -38,170 +38,170 @@
/datum/map_template/virgo2/Flake
name = "Forest Lake"
desc = "A serene lake sitting amidst the surface."
- mappath = 'Flake.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Flake.dmm"
cost = 10
/datum/map_template/virgo2/Mcamp1
name = "Military Camp 1"
desc = "A derelict military camp host to some unsavory dangers"
- mappath = 'MCamp1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/MCamp1.dmm"
cost = 5
/datum/map_template/virgo2/Mudpit
name = "Mudpit"
desc = "What happens when someone is a bit too careless with gas.."
- mappath = 'Mudpit.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Mudpit.dmm"
cost = 5
/datum/map_template/virgo2/Rocky1
name = "Rocky1"
desc = "DununanununanununuNAnana"
- mappath = 'Rocky1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Rocky1.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/virgo2/RareSample
name = "Rocky1"
desc = "Ooh, shiny!" //a single rare sample, sitting in the open
- mappath = 'RareSample.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/RareSample.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/virgo2/SamplePocket
name = "Sampleroid"
desc = "What's in the (rock)box?" //one common/uncommon, one uncommon/rare, and one any grade
- mappath = 'SamplePocket.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/SamplePocket.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/virgo2/Shack1
name = "Shack1"
desc = "A small shack in the middle of nowhere, Your halloween murder happens here"
- mappath = 'Shack1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Shack1.dmm"
cost = 5
/datum/map_template/virgo2/Smol1
name = "Smol1"
desc = "A tiny grove of trees, The Nemesis of thicc"
- mappath = 'Smol1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Smol1.dmm"
cost = 5
/datum/map_template/virgo2/Snowrock1
name = "Snowrock1"
desc = "A rocky snow covered area"
- mappath = 'Snowrock1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Snowrock1.dmm"
cost = 5
/datum/map_template/virgo2/Lab1
name = "Lab1"
desc = "An isolated small robotics lab."
- mappath = 'Lab1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Lab1.dmm"
cost = 5
/datum/map_template/virgo2/Rocky4
name = "Rocky4"
desc = "An interesting geographic formation."
- mappath = 'Rocky4.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Rocky4.dmm"
cost = 5
/datum/map_template/virgo2/DJOutpost1
name = "DJOutpost1"
desc = "Home of Sif Free Radio, the best - and only - radio station for miles around."
- mappath = 'DJOutpost1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/DJOutpost1.dmm"
template_group = "Sif Free Radio"
cost = 5
/datum/map_template/virgo2/DJOutpost2
name = "DJOutpost2"
desc = "The cratered remains of Sif Free Radio, the best - and only - radio station for miles around."
- mappath = 'DJOutpost2.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/DJOutpost2.dmm"
template_group = "Sif Free Radio"
cost = 5
/datum/map_template/virgo2/Boombase
name = "Boombase"
desc = "What happens when you don't follow SOP."
- mappath = 'Boombase.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Boombase.dmm"
cost = 5
/*
/datum/map_template/virgo2/BSD
name = "Black Shuttle Down"
desc = "You REALLY shouldn't be near this."
- mappath = 'Blackshuttledown.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Blackshuttledown.dmm"
cost = 30
*/
/datum/map_template/virgo2/Rockybase
name = "Rocky Base"
desc = "A guide to upsetting Icarus and the EIO"
- mappath = 'Rockybase.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Rockybase.dmm"
cost = 35
/datum/map_template/virgo2/MHR
name = "Manhack Rock"
desc = "A rock filled with nasty Synthetics."
- mappath = 'MHR.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/MHR.dmm"
cost = 15
/datum/map_template/virgo2/GovPatrol
name = "Government Patrol"
desc = "A long lost SifGuard ground survey patrol. Now they have you guys!"
- mappath = 'GovPatrol.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/GovPatrol.dmm"
cost = 5
/datum/map_template/virgo2/DecoupledEngine
name = "Decoupled Engine"
desc = "A damaged fission engine jettisoned from a starship long ago."
- mappath = 'DecoupledEngine.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/DecoupledEngine.dmm"
cost = 15
/*
/datum/map_template/virgo2/DoomP
name = "DoomP"
desc = "Witty description here."
- mappath = 'DoomP.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/DoomP.dmm"
cost = 30
*/
/datum/map_template/virgo2/Cave
name = "CaveS"
desc = "Chitter chitter!"
- mappath = 'CaveS.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/CaveS.dmm"
cost = 20
/datum/map_template/virgo2/Drugden
name = "Drugden"
desc = "The remains of ill thought out whims."
- mappath = 'Drugden.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Drugden.dmm"
cost = 20
/datum/map_template/virgo2/Musk
name = "Musk"
desc = "0 to 60 in 1.9 seconds."
- mappath = 'Musk.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Musk.dmm"
cost = 10
/datum/map_template/virgo2/Manor1
name = "Manor1"
desc = "Whodunit"
- mappath = 'Manor1.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Manor1.dmm"
cost = 20
/datum/map_template/virgo2/Epod3
name = "Emergency Pod 3"
desc = "A webbed Emergency pod in the middle of nowhere."
- mappath = 'Epod3.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Epod3.dmm"
cost = 5
/datum/map_template/virgo2/Epod4
name = "Emergency Pod 4"
desc = "A flooded Emergency pod in the middle of nowhere."
- mappath = 'Epod4.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/Epod4.dmm"
cost = 5
/datum/map_template/virgo2/ButcherShack
name = "Butcher Shack"
desc = "An old, bloody butcher's shack. Get your meat here!"
- mappath = 'butchershack.dmm'
+ mappath = "maps/submaps/pois_vr/aerostat/butchershack.dmm"
cost = 5
diff --git a/maps/submaps/pois_vr/debris_field/_templates.dm b/maps/submaps/pois_vr/debris_field/_templates.dm
index 28fd72ecbc..8b915e9cef 100644
--- a/maps/submaps/pois_vr/debris_field/_templates.dm
+++ b/maps/submaps/pois_vr/debris_field/_templates.dm
@@ -5,317 +5,317 @@
/datum/map_template/debrisfield/asteroids1
name = "Asteroids 1"
- mappath = 'asteroids1.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids1.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids2
name = "Asteroids 2"
- mappath = 'asteroids2.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids2.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids3
name = "Asteroids 3"
- mappath = 'asteroids3.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids3.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids4
name = "Asteroids 4"
- mappath = 'asteroids4.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids4.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids5
name = "Asteroids 5"
- mappath = 'asteroids5.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids5.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids6
name = "Asteroids 6"
- mappath = 'asteroids6.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids6.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids7
name = "Asteroids 7"
- mappath = 'asteroids7.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids7.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids8
name = "Asteroids 8"
- mappath = 'asteroids8.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids8.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids9
name = "Asteroids 9"
- mappath = 'asteroids9.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids9.dmm"
cost = 2
/datum/map_template/debrisfield/asteroids10
name = "Asteroids 10"
- mappath = 'asteroids10.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/asteroids10.dmm"
cost = 2
/datum/map_template/debrisfield/sampleroid1 //2 common/uncommon samples
name = "Samples Rock 1"
- mappath = 'sample_asteroid1.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/sample_asteroid1.dmm"
cost = 5
/datum/map_template/debrisfield/sampleroid2 //cluster of 3 commons
name = "Samples Rock 2"
- mappath = 'sample_asteroid2.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/sample_asteroid2.dmm"
cost = 5
/datum/map_template/debrisfield/sampleroid3 //single rare surrounded by rock
name = "Samples Rock 3"
- mappath = 'sample_asteroid3.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/sample_asteroid3.dmm"
cost = 5
/datum/map_template/debrisfield/carp_asteroids1
name = "Carp Asteroids 1"
- mappath = 'carp_asteroids1.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/carp_asteroids1.dmm"
cost = 5
/datum/map_template/debrisfield/carp_asteroids2
name = "Carp Asteroids 2"
- mappath = 'carp_asteroids2.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/carp_asteroids2.dmm"
cost = 5
/datum/map_template/debrisfield/carp_asteroids3
name = "Carp Asteroids 3"
- mappath = 'carp_asteroids3.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/carp_asteroids3.dmm"
cost = 5
/datum/map_template/debrisfield/carp_asteroids4
name = "Carp Asteroids 4"
- mappath = 'carp_asteroids4.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/carp_asteroids4.dmm"
cost = 5
/datum/map_template/debrisfield/carp_asteroids5
name = "Carp Asteroids 5"
- mappath = 'carp_asteroids5.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/carp_asteroids5.dmm"
cost = 5
/datum/map_template/debrisfield/carp_asteroids6
name = "Carp Asteroids 6"
- mappath = 'carp_asteroids6.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/carp_asteroids6.dmm"
cost = 5
/datum/map_template/debrisfield/carp_asteroids7
name = "Carp Asteroids 7"
- mappath = 'carp_asteroids7.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/carp_asteroids7.dmm"
cost = 5
/datum/map_template/debrisfield/foodstand
name = "Food Stand"
- mappath = 'foodstand.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/foodstand.dmm"
cost = 20
allow_duplicates = FALSE
/datum/map_template/debrisfield/debris1
name = "Debris 1"
- mappath = 'debris1.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris1.dmm"
cost = 2
/datum/map_template/debrisfield/debris2
name = "Debris 2"
- mappath = 'debris2.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris2.dmm"
cost = 2
/datum/map_template/debrisfield/debris3
name = "Debris 3"
- mappath = 'debris3.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris3.dmm"
cost = 2
/datum/map_template/debrisfield/debris4
name = "Debris 4"
- mappath = 'debris4.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris4.dmm"
cost = 2
/datum/map_template/debrisfield/debris5
name = "Debris 5"
- mappath = 'debris5.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris5.dmm"
cost = 2
/datum/map_template/debrisfield/debris6
name = "Debris 6"
- mappath = 'debris6.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris6.dmm"
cost = 2
/datum/map_template/debrisfield/debris7
name = "Debris 7"
- mappath = 'debris7.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris7.dmm"
cost = 2
/datum/map_template/debrisfield/debris8
name = "Debris 8"
- mappath = 'debris8.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris8.dmm"
cost = 2
/datum/map_template/debrisfield/debris9
name = "Debris 9"
- mappath = 'debris9.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris9.dmm"
cost = 2
/datum/map_template/debrisfield/debris10
name = "Debris 10"
- mappath = 'debris10.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris10.dmm"
cost = 2
/datum/map_template/debrisfield/debris11
name = "Debris 11"
- mappath = 'debris11.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris11.dmm"
cost = 2
/datum/map_template/debrisfield/debris12
name = "Debris 12"
- mappath = 'debris12.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris12.dmm"
cost = 2
/datum/map_template/debrisfield/debris13
name = "Debris 13"
- mappath = 'debris13.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris13.dmm"
cost = 2
/datum/map_template/debrisfield/debris14
name = "Debris 14"
- mappath = 'debris14.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/debris14.dmm"
cost = 2
/datum/map_template/debrisfield/escape_pod
name = "Ancient Escape Pod"
- mappath = 'escape_pod.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/escape_pod.dmm"
cost = 5
allow_duplicates = FALSE
/datum/map_template/debrisfield/old_satellite
name = "Old Satellite"
- mappath = 'old_satellite.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/old_satellite.dmm"
cost = 10
allow_duplicates = FALSE
/datum/map_template/debrisfield/old_teleporter
name = "Old Teleporter"
- mappath = 'old_teleporter.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/old_teleporter.dmm"
cost = 10
allow_duplicates = FALSE
/datum/map_template/debrisfield/old_mining_outpost
name = "Old Drone Mining Outpost"
- mappath = 'mining_drones.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/mining_drones.dmm"
cost = 20
allow_duplicates = FALSE
/datum/map_template/debrisfield/ship_mining_drone
name = "Disabled Mining Drone Ship"
- mappath = 'ship_mining_drone.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/ship_mining_drone.dmm"
cost = 35
allow_duplicates = FALSE
/datum/map_template/debrisfield/ship_sup_exploded
name = "Exploded Cargo Ship"
- mappath = 'ship_sup_exploded.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/ship_sup_exploded.dmm"
cost = 35
allow_duplicates = FALSE
/datum/map_template/debrisfield/ship_med_crashed
name = "Crashed Medical Ship"
- mappath = 'ship_med_crashed.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/ship_med_crashed.dmm"
cost = 35
allow_duplicates = FALSE
/datum/map_template/debrisfield/ship_sci_overrun
name = "Overrun Research Ship"
- mappath = 'ship_sci_overrun.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/ship_sci_overrun.dmm"
cost = 35
allow_duplicates = FALSE
/datum/map_template/debrisfield/phoron_tanker
name = "Betrayed Phoron Tanker"
- mappath = 'ship_tanker_betrayed.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/ship_tanker_betrayed.dmm"
cost = 35
allow_duplicates = FALSE
/datum/map_template/debrisfield/ship_tourist_overrun
name = "Overrun private yacht"
- mappath = 'ship_tourist_overrun.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/ship_tourist_overrun.dmm"
cost = 35
allow_duplicates = FALSE
/datum/map_template/debrisfield/oldshuttle
name = "Old Expedition Shuttle"
- mappath = 'oldshuttle.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/oldshuttle.dmm"
cost = 30
allow_duplicates = FALSE
/datum/map_template/debrisfield/tinycarrier
name = "Disabled Tiny Carrier"
- mappath = 'tinycarrier.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/tinycarrier.dmm"
cost = 30
allow_duplicates = FALSE
/datum/map_template/debrisfield/alien_massive_derelict
name = "Alien Derelict"
- mappath = 'derelict.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/derelict.dmm"
cost = 35
allow_duplicates = FALSE
discard_prob = 50
/datum/map_template/debrisfield/new_escape_pod
name = "Escape Pod"
- mappath = 'new_escapepod.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/new_escapepod.dmm"
cost = 10
allow_duplicates = FALSE
discard_prob = 10
/datum/map_template/debrisfield/new_escape_pod_infested_xeno
name = "Xeno-Infested Escape Pod"
- mappath = 'new_escapepod_xeno.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm"
cost = 20
allow_duplicates = FALSE
discard_prob = 25
/datum/map_template/debrisfield/new_escape_pod_infested_carp
name = "Carp-Infested Escape Pod"
- mappath = 'new_escapepod_carp.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/new_escapepod_carp.dmm"
cost = 20
allow_duplicates = FALSE
discard_prob = 25
/datum/map_template/debrisfield/new_escape_pod_infested_robo
name = "Robo-Infested Escape Pod"
- mappath = 'new_escapepod_robo.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/new_escapepod_robo.dmm"
cost = 20
allow_duplicates = FALSE
discard_prob = 25
/datum/map_template/debrisfield/gutted_mackerel
name = "Gutted Mackerel LC"
- mappath = 'maps/offmap_vr/om_ships/mackerel_lc_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/mackerel_lc_wreck.dmm"
cost = 35
allow_duplicates = FALSE
discard_prob = 25
/datum/map_template/debrisfield/wrecked_salamander
name = "Wrecked Salamander"
- mappath = 'maps/offmap_vr/om_ships/salamander_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/salamander_wreck.dmm"
cost = 35
allow_duplicates = FALSE
discard_prob = 34
/datum/map_template/debrisfield/ruined_gecko
name = "Ruined Gecko CR"
- mappath = 'maps/offmap_vr/om_ships/gecko_cr_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/gecko_cr_wreck.dmm"
cost = 45
allow_duplicates = FALSE
discard_prob = 50
/datum/map_template/debrisfield/blasted_sdf
name = "Blasted SDF Corvette"
- mappath = 'maps/offmap_vr/om_ships/sdf_corvette_wreck.dmm'
+ mappath = "maps/offmap_vr/om_ships/sdf_corvette_wreck.dmm"
cost = 35
allow_duplicates = FALSE
discard_prob = 25
/datum/map_template/debrisfield/phoron_tanker
name = "Betrayed Phoron Tanker"
- mappath = 'ship_tanker_betrayed.dmm'
+ mappath = "maps/submaps/pois_vr/debris_field/ship_tanker_betrayed.dmm"
cost = 35
allow_duplicates = FALSE
discard_prob = 25
diff --git a/maps/submaps/space_rocks/space_rocks_pois.dm b/maps/submaps/space_rocks/space_rocks_pois.dm
index 4999b37ac8..96862ef39a 100644
--- a/maps/submaps/space_rocks/space_rocks_pois.dm
+++ b/maps/submaps/space_rocks/space_rocks_pois.dm
@@ -20,7 +20,7 @@
/datum/map_template/space_rocks/bittynest1
name = "Bittynest1"
desc = "A smol nest for smol badguys"
- mappath = 'bittynest1.dmm'
+ mappath = "maps/submaps/space_rocks/bittynest1.dmm"
cost = 5
/area/submap/space_rocks/bittynest2
@@ -29,7 +29,7 @@
/datum/map_template/space_rocks/bittynest2
name = "Bittynest2"
desc = "A smol nest for smol badguys"
- mappath = 'bittynest2.dmm'
+ mappath = "maps/submaps/space_rocks/bittynest2.dmm"
cost = 5
/area/submap/space_rocks/bittynest3
@@ -38,7 +38,7 @@
/datum/map_template/space_rocks/bittynest3
name = "Bittynest3"
desc = "A smol nest for smol badguys"
- mappath = 'bittynest3.dmm'
+ mappath = "maps/submaps/space_rocks/bittynest3.dmm"
cost = 5
/area/submap/space_rocks/bittynest4
@@ -47,7 +47,7 @@
/datum/map_template/space_rocks/bittynest4
name = "Bittynest4"
desc = "A smol nest for smol badguys"
- mappath = 'bittynest4.dmm'
+ mappath = "maps/submaps/space_rocks/bittynest4.dmm"
cost = 5
/area/submap/space_rocks/tunnel1
@@ -56,7 +56,7 @@
/datum/map_template/space_rocks/tunnel1
name = "Tunnel1"
desc = "A tunnel left behind!"
- mappath = 'tunnel1.dmm'
+ mappath = "maps/submaps/space_rocks/tunnel1.dmm"
cost = 10
/area/submap/space_rocks/tunnel2
@@ -65,7 +65,7 @@
/datum/map_template/space_rocks/tunnel2
name = "Tunnel2"
desc = "A tunnel left behind!"
- mappath = 'tunnel2.dmm'
+ mappath = "maps/submaps/space_rocks/tunnel2.dmm"
cost = 10
/area/submap/space_rocks/spacecrystals
@@ -74,7 +74,7 @@
/datum/map_template/space_rocks/tunnel2
name = "Space Crystals"
desc = "Some crystals living in space!"
- mappath = 'spacecrystals.dmm'
+ mappath = "maps/submaps/space_rocks/spacecrystals.dmm"
cost = 10
/area/submap/space_rocks/clearing
@@ -83,7 +83,7 @@
/datum/map_template/space_rocks/clearing
name = "Clearing"
desc = "A clear spot for mischief to happen."
- mappath = 'clearing.dmm'
+ mappath = "maps/submaps/space_rocks/clearing.dmm"
cost = 10
/area/submap/space_rocks/seventemple
@@ -92,5 +92,5 @@
/datum/map_template/space_rocks/seventemple
name = "Temple of the Seven"
desc = "A mysterious space!"
- mappath = 'seventemple.dmm'
+ mappath = "maps/submaps/space_rocks/seventemple.dmm"
cost = 25
diff --git a/maps/submaps/surface_submaps/mountains/mountains.dm b/maps/submaps/surface_submaps/mountains/mountains.dm
index 0bdff1da4a..de8aba6188 100644
--- a/maps/submaps/surface_submaps/mountains/mountains.dm
+++ b/maps/submaps/surface_submaps/mountains/mountains.dm
@@ -68,82 +68,82 @@
/datum/map_template/surface/mountains/normal/deadBeacon
name = "Abandoned Relay"
desc = "An unregistered comms relay, abandoned to the elements."
- mappath = 'maps/submaps/surface_submaps/mountains/deadBeacon.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/deadBeacon.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/prepper1
name = "Prepper Bunker"
desc = "A little hideaway for someone with more time and money than sense."
- mappath = 'maps/submaps/surface_submaps/mountains/prepper1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/prepper1.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/qshuttle
name = "Quarantined Shuttle"
desc = "An emergency landing turned viral outbreak turned tragedy."
- mappath = 'maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/Mineshaft1
name = "Abandoned Mineshaft 1"
desc = "An abandoned minning tunnel from a lost money making effort."
- mappath = 'maps/submaps/surface_submaps/mountains/Mineshaft1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Mineshaft1.dmm"
cost = 5
/datum/map_template/surface/mountains/normal/crystal1
name = "Crystal Cave 1"
desc = "A small cave with glowing gems and diamonds."
- mappath = 'maps/submaps/surface_submaps/mountains/crystal1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/crystal1.dmm"
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 2"
desc = "A moderate sized cave with glowing gems and diamonds."
- mappath = 'maps/submaps/surface_submaps/mountains/crystal2.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/crystal2.dmm"
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crystal2
name = "Crystal Cave 3"
desc = "A large spiral of crystals with diamonds in the center."
- mappath = 'maps/submaps/surface_submaps/mountains/crystal3.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/crystal3.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/lost_explorer
name = "Lost Explorer"
desc = "The remains of an explorer who rotted away ages ago, and their equipment."
- mappath = 'maps/submaps/surface_submaps/mountains/lost_explorer.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/lost_explorer.dmm"
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/Rockb1
name = "Rocky Base 1"
desc = "Someones underground hidey hole"
- mappath = 'maps/submaps/surface_submaps/mountains/Rockb1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Rockb1.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/corgiritual
name = "Dark Ritual"
desc = "Who put all these plushies here? What are they doing?"
- mappath = 'maps/submaps/surface_submaps/mountains/ritual.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/ritual.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/abandonedtemple
name = "Abandoned Temple"
desc = "An ancient temple, long since abandoned. Perhaps alien in origin?"
- mappath = 'maps/submaps/surface_submaps/mountains/temple.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/temple.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/digsite
name = "Dig Site"
desc = "A small abandoned dig site."
- mappath = 'maps/submaps/surface_submaps/mountains/digsite.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/digsite.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/vault1
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -151,7 +151,7 @@
/datum/map_template/surface/mountains/normal/vault2
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault2.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -159,56 +159,56 @@
/datum/map_template/surface/mountains/normal/vault3
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault3.dmm"
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/IceCave1A
name = "Ice Cave 1A"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/submaps/surface_submaps/mountains/IceCave1A.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/IceCave1A.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1B
name = "Ice Cave 1B"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/submaps/surface_submaps/mountains/IceCave1B.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/IceCave1B.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/IceCave1C
name = "Ice Cave 1C"
desc = "This cave's slippery ice makes it hard to navigate, but determined explorers will be rewarded."
- mappath = 'maps/submaps/surface_submaps/mountains/IceCave1C.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/IceCave1C.dmm"
cost = 10
/datum/map_template/surface/mountains/normal/SwordCave
name = "Cursed Sword Cave"
desc = "An underground lake. The sword on the lake's island holds a terrible secret."
- mappath = 'maps/submaps/surface_submaps/mountains/SwordCave.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/SwordCave.dmm"
/datum/map_template/surface/mountains/normal/supplydrop1
name = "Supply Drop 1"
desc = "A drop pod that landed deep within the mountains."
- mappath = 'maps/submaps/surface_submaps/mountains/SupplyDrop1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/SupplyDrop1.dmm"
cost = 10
allow_duplicates = TRUE
/datum/map_template/surface/mountains/normal/crashedcontainmentshuttle
name = "Crashed Cargo Shuttle"
desc = "A severely damaged military shuttle, its cargo seems to remain intact."
- mappath = 'maps/submaps/surface_submaps/mountains/crashedcontainmentshuttle_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/mountains/crashedcontainmentshuttle_vr.dmm" //VOREStation Edit
cost = 30
/datum/map_template/surface/mountains/normal/deadspy
name = "Spy Remains"
desc = "W+M1 = Salt."
- mappath = 'maps/submaps/surface_submaps/mountains/deadspy.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/deadspy.dmm"
cost = 15
/datum/map_template/surface/mountains/normal/geyser1
name = "Ore-Rich Geyser"
desc = "A subterranean geyser that produces steam. This one has a particularly abundant amount of materials surrounding it."
- mappath = 'maps/submaps/surface_submaps/mountains/Geyser1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Geyser1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -216,7 +216,7 @@
/datum/map_template/surface/mountains/normal/geyser2
name = "Fenced Geyser"
desc = "A subterranean geyser that produces steam. This one has a damaged fence surrounding it."
- mappath = 'maps/submaps/surface_submaps/mountains/Geyser2.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Geyser2.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -224,7 +224,7 @@
/datum/map_template/surface/mountains/normal/geyser3
name = "Magmatic Geyser"
desc = "A subterranean geyser that produces incendiary gas. It is recessed into the ground, and filled with magma. It's a relatively dormant volcano."
- mappath = 'maps/submaps/surface_submaps/mountains/Geyser2.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Geyser2.dmm"
cost = 10
allow_duplicates = TRUE
template_group = "Underground Geysers"
@@ -232,7 +232,7 @@
/datum/map_template/surface/mountains/normal/cliff1
name = "Ore-Topped Cliff"
desc = "A raised area of rock created by volcanic forces."
- mappath = 'maps/submaps/surface_submaps/mountains/Cliff1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Cliff1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Underground Cliffs"
@@ -240,7 +240,7 @@
/datum/map_template/surface/mountains/normal/deadly_rabbit // VOREStation Edit
name = "The Killer Rabbit"
desc = "A cave where the Knights of the Round have fallen to a murderous Rabbit."
- mappath = 'maps/submaps/surface_submaps/mountains/deadly_rabbit_vr.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/deadly_rabbit_vr.dmm"
cost = 5
allow_duplicates = FALSE
@@ -252,46 +252,46 @@
/datum/map_template/surface/mountains/deep/lost_explorer
name = "Lost Explorer, Deep"
desc = "The remains of an explorer who rotted away ages ago, and their equipment. Again."
- mappath = 'maps/submaps/surface_submaps/mountains/lost_explorer.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/lost_explorer.dmm"
cost = 5
allow_duplicates = TRUE */
/datum/map_template/surface/mountains/normal/crashed_ufo //VOREStation Edit
name = "Crashed UFO"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet it still seems to be running..."
- mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/crashed_ufo.dmm"
cost = 40
discard_prob = 50
/datum/map_template/surface/mountains/normal/crashed_ufo_frigate //VOREStation Edit
name = "Crashed UFO Frigate"
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet the combat protocols still seem to be running..."
- mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm"
cost = 60
discard_prob = 50
/datum/map_template/surface/mountains/normal/Scave1 //VOREStation Edit
name = "Spider Cave 1"
desc = "A minning tunnel home to an aggressive collection of spiders."
- mappath = 'maps/submaps/surface_submaps/mountains/Scave1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Scave1.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/CaveTrench //VOREStation Edit
name = "Cave River"
desc = "A strange underground river."
- mappath = 'maps/submaps/surface_submaps/mountains/CaveTrench.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/CaveTrench.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/Cavelake //VOREStation Edit
name = "Cave Lake"
desc = "A large underground lake."
- mappath = 'maps/submaps/surface_submaps/mountains/Cavelake.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/Cavelake.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/vault1 //VOREStation Edit
name = "Mine Vault 1"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault1.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -299,7 +299,7 @@
/datum/map_template/surface/mountains/normal/vault2 //VOREStation Edit
name = "Mine Vault 2"
desc = "A small vault with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault2.dmm"
cost = 5
allow_duplicates = TRUE
template_group = "Buried Vaults"
@@ -307,67 +307,64 @@
/datum/map_template/surface/mountains/normal/vault3 //VOREStation Edit
name = "Mine Vault 3"
desc = "A small vault with potential loot. Also a horrible suprise."
- mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault3.dmm"
cost = 15
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault4 //VOREStation Edit
name = "Mine Vault 4"
desc = "A small xeno vault with potential loot. Also horrible suprises."
- mappath = 'maps/submaps/surface_submaps/mountains/vault4.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault4.dmm"
cost = 20
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault5 //VOREStation Edit
name = "Mine Vault 5"
desc = "A small xeno vault with potential loot. Also major horrible suprises."
- mappath = 'maps/submaps/surface_submaps/mountains/vault5.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault5.dmm"
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/vault6 //VOREStation Edit
name = "Mine Vault 6"
desc = "A small mercenary tower with potential loot."
- mappath = 'maps/submaps/surface_submaps/mountains/vault6.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/vault6.dmm"
cost = 25
template_group = "Buried Vaults"
/datum/map_template/surface/mountains/normal/BlastMine1 //VOREStation Edit
name = "Blast Mine 1"
desc = "An abandoned blast mining site, seems that local wildlife has moved in."
- mappath = 'maps/submaps/surface_submaps/mountains/BlastMine1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/BlastMine1.dmm"
cost = 20
/datum/map_template/surface/mountains/normal/lava_trench //VOREStation Edit
name = "lava trench"
desc = "A long stretch of lava underground, almost river-like, with a small crystal research outpost on the side."
- mappath = 'maps/submaps/surface_submaps/mountains/lava_trench.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/lava_trench.dmm"
cost = 20
- fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/crashedmedshuttle //VOREStation Edit
name = "Crashed Med Shuttle"
desc = "A medical response shuttle that went missing some time ago. So this is where they went."
- mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/mountains/CrashedMedShuttle1_vr.dmm" //VOREStation Edit
cost = 20
- fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/excavation1 //VOREStation Edit
name = "Excavation Site"
desc = "An abandoned mining site."
- mappath = 'maps/submaps/surface_submaps/mountains/excavation1.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/excavation1.dmm"
cost = 20
/datum/map_template/surface/mountains/deep/spatial_anomaly
name = "spatial anomaly"
desc = "A strange section of the caves that seems twist and turn in ways that shouldn't be physically possible."
- mappath = 'maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm"
cost = INFINITY /// Prevent spawning.
- fixed_orientation = TRUE
/datum/map_template/surface/mountains/normal/Speakeasy //VOREStation add
name = "Speakeasy"
desc = "A hidden underground bar to serve drinks in secret and in style."
- mappath = 'maps/submaps/surface_submaps/mountains/speakeasy_vr.dmm'
+ mappath = "maps/submaps/surface_submaps/mountains/speakeasy_vr.dmm"
cost = 10
allow_duplicates = FALSE
diff --git a/maps/submaps/surface_submaps/plains/plains.dm b/maps/submaps/surface_submaps/plains/plains.dm
index 7063aaf134..bdac69b598 100644
--- a/maps/submaps/surface_submaps/plains/plains.dm
+++ b/maps/submaps/surface_submaps/plains/plains.dm
@@ -61,289 +61,288 @@
/datum/map_template/surface/plains/farm1
name = "Farm 1"
desc = "A small farm tended by a farmbot."
- mappath = 'maps/submaps/surface_submaps/plains/farm1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/farm1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/construction1
name = "Construction Site 1"
desc = "A structure being built. It seems laziness is not limited to engineers."
- mappath = 'maps/submaps/surface_submaps/plains/construction1.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/construction1.dmm"
cost = 10
/datum/map_template/surface/plains/camp1
name = "Camp Site 1"
desc = "A small campsite, complete with housing and bonfire."
- mappath = 'maps/submaps/surface_submaps/plains/camp1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/camp1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/house1
name = "House 1"
desc = "A fair sized house out in the frontier, that belonged to a well-traveled explorer."
- mappath = 'maps/submaps/surface_submaps/plains/house1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/house1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/beacons
name = "Collection of Marker Beacons"
desc = "A bunch of marker beacons, scattered in a strange pattern."
- mappath = 'maps/submaps/surface_submaps/plains/beacons.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/beacons.dmm"
cost = 5
- fixed_orientation = TRUE
/datum/map_template/surface/plains/Epod
name = "Emergency Pod"
desc = "A vacant Emergency pod in the middle of nowhere."
- mappath = 'maps/submaps/surface_submaps/plains/Epod.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Epod.dmm"
cost = 5
/datum/map_template/surface/plains/Epod2
name = "Emergency Pod 2"
desc = "A locked Emergency pod in the middle of nowhere."
- mappath = 'maps/submaps/surface_submaps/plains/Epod2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Epod2.dmm"
cost = 5
/datum/map_template/surface/plains/normal/Rocky2
name = "Rocky 2"
desc = "More rocks."
- mappath = 'maps/submaps/surface_submaps/plains/Rocky2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Rocky2.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/surface/plains/PascalB
name = "Irradiated Manhole Cover"
desc = "How did this old thing get all the way out here?"
- mappath = 'maps/submaps/surface_submaps/plains/PascalB.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/PascalB.dmm"
cost = 5
/datum/map_template/surface/plains/bonfire
name = "Abandoned Bonfire"
desc = "Someone seems to enjoy orange juice a bit too much."
- mappath = 'maps/submaps/surface_submaps/plains/bonfire.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/bonfire.dmm"
cost = 5
/datum/map_template/surface/plains/Rocky5
name = "Rocky 5"
desc = "More rocks, Less Stalone"
- mappath = 'maps/submaps/surface_submaps/plains/Rocky5.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Rocky5.dmm"
cost = 5
/datum/map_template/surface/plains/Shakden
name = "Shantak Den"
desc = "Not to be confused with Shaq Den"
- mappath = 'maps/submaps/surface_submaps/plains/Shakden_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Shakden_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/Field1
name = "Field 1"
desc = "A regular field with a tug on it"
- mappath = 'maps/submaps/surface_submaps/plains/Field1.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Field1.dmm"
cost = 20
/datum/map_template/surface/plains/Thiefc
name = "Thieves Cave"
desc = "A thieves stash"
- mappath = 'maps/submaps/surface_submaps/plains/Thiefc_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Thiefc_vr.dmm" //VOREStation Edit
cost = 20
/datum/map_template/surface/plains/smol2
name = "Small 2"
desc = "A small formation of mishaped surgery"
- mappath = 'maps/submaps/surface_submaps/plains/smol2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/smol2.dmm"
cost = 10
/datum/map_template/surface/plains/Mechpt
name = "Mechpit"
desc = "A illmade Mech brawling ring"
- mappath = 'maps/submaps/surface_submaps/plains/Mechpt.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Mechpt.dmm"
cost = 15
/datum/map_template/surface/plains/Boathouse
name = "Boathouse"
desc = "A fance house on a lake."
- mappath = 'maps/submaps/surface_submaps/plains/Boathouse_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Boathouse_vr.dmm" //VOREStation Edit
cost = 30
/datum/map_template/surface/plains/PooledR
name = "Pooled Rocks"
desc = "An intresting rocky location"
- mappath = 'maps/submaps/surface_submaps/plains/PooledR_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/PooledR_vr.dmm" //VOREStation Edit
cost = 15
/datum/map_template/surface/plains/Smol3
name = "Small 3"
desc = "A small stand"
- mappath = 'maps/submaps/surface_submaps/plains/Smol3.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Smol3.dmm"
cost = 10
/datum/map_template/surface/plains/Diner
name = "Diner"
desc = "Old Timey Tasty"
- mappath = 'maps/submaps/surface_submaps/plains/Diner_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Diner_vr.dmm" //VOREStation Edit
cost = 25
/datum/map_template/surface/plains/snow1
name = "Snow 1"
desc = "Snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow1.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow1.dmm"
cost = 5
/datum/map_template/surface/plains/snow2
name = "Snow 2"
desc = "More snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow2.dmm"
cost = 5
/datum/map_template/surface/plains/snow3
name = "Snow 3"
desc = "Snow Snow Snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow3.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow3.dmm"
cost = 5
/datum/map_template/surface/plains/snow4
name = "Snow 4"
desc = "Too much snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow4.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow4.dmm"
cost = 5
/datum/map_template/surface/plains/snow5
name = "Snow 5"
desc = "Please stop the snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow5.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow5.dmm"
cost = 5
/datum/map_template/surface/plains/RationCache
name = "Ration Cache"
desc = "A forgotten cache of emergency rations."
- mappath = 'maps/submaps/surface_submaps/plains/RationCache_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/RationCache_vr.dmm" //VOREStation Edit
cost = 5
/datum/map_template/surface/plains/SupplyDrop2
name = "Old Supply Drop"
desc = "A drop pod that's clearly been here a while, most of the things inside are rusted and worthless."
- mappath = 'maps/submaps/surface_submaps/plains/SupplyDrop2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/SupplyDrop2.dmm"
cost = 8
/datum/map_template/surface/plains/Oldhouse
name = "Old House"
desc = "Someones old library it seems.."
- mappath = 'maps/submaps/surface_submaps/plains/Oldhouse_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Oldhouse_vr.dmm" //VOREStation Edit
cost = 15
/datum/map_template/surface/plains/ChemSpill1
name = "Ruptured Canister"
desc = "A dumped chemical canister. Looks dangerous."
- mappath = 'maps/submaps/surface_submaps/plains/chemspill1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/chemspill1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/PlainsKururak
name = "Lone Kururak"
desc = "A lone Kururak's den."
- mappath = 'maps/submaps/surface_submaps/plains/PlainsKururak.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/PlainsKururak.dmm"
cost = 10
/datum/map_template/surface/plains/BuriedTreasure1
name = "Buried Treasure 1"
desc = "A hole in the ground, who knows what might be inside!"
- mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/BuriedTreasure.dmm"
cost = 10
template_group = "Shallow Grave"
/datum/map_template/surface/plains/BuriedTreasure2
name = "Buried Treasure 2"
desc = "A hole in the ground, who knows what might be inside!"
- mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/BuriedTreasure2.dmm"
cost = 10
template_group = "Shallow Grave"
/datum/map_template/surface/plains/BuriedTreasure3
name = "Buried Treasure 3"
desc = "A hole in the ground, who knows what might be inside!"
- mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure3.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/BuriedTreasure3.dmm"
cost = 10
template_group = "Shallow Grave"
/datum/map_template/surface/plains/oldhotel
name = "Old Hotel"
desc = "A abandoned hotel of sort, wonder why it was left behind."
- mappath = 'maps/submaps/surface_submaps/plains/oldhotel.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/oldhotel.dmm"
cost = 15
/datum/map_template/surface/plains/priderock
name = "Pride Rock"
desc = "A quite steep petruding rock from the earth, looks like a good hike."
- mappath = 'maps/submaps/surface_submaps/plains/priderock.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/priderock.dmm"
cost = 10
/datum/map_template/surface/plains/lonehome
name = "Lone Home"
desc = "A quite inoffensive looking home, damaged but still holding up."
- mappath = 'maps/submaps/surface_submaps/plains/lonehome_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/lonehome_vr.dmm" //VOREStation Edit
cost = 15
/datum/map_template/surface/plains/hotspring
name = "Hot Spring"
desc = "Wait what, a hotspring in a frost planet?"
- mappath = 'maps/submaps/surface_submaps/plains/hotspring.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/hotspring.dmm"
cost = 5
/datum/map_template/surface/plains/methlab
name = "Meth Lab"
desc = "A broken down greenhouse lab?, this does not look safe."
- mappath = 'maps/submaps/surface_submaps/plains/methlab.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/methlab.dmm"
cost = 15
/datum/map_template/surface/plains/VRDen
name = "VR Den"
desc = "A temporarily abandoned VR den, still functional."
- mappath = 'maps/submaps/surface_submaps/plains/VRDen.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/VRDen.dmm"
cost = 10
/datum/map_template/surface/plains/leopardmanderden
name = "Leopardmander Den"
desc = "Den of a voracious but very rare beast."
- mappath = 'maps/submaps/surface_submaps/plains/leopardmanderden.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/leopardmanderden.dmm"
cost = 10
/datum/map_template/surface/plains/greatwolfden
name = "Great Wolf Den"
desc = "Den hosted by the biggest alpha wolf of the wilderness"
- mappath = 'maps/submaps/surface_submaps/plains/greatwolfden.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/greatwolfden.dmm"
cost = 15
/datum/map_template/surface/plains/dogbase
name = "Dog Base"
desc = "A highly secured base with hungry trained canines"
- mappath = 'maps/submaps/surface_submaps/plains/dogbase.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/dogbase.dmm"
cost = 20
allow_duplicates = FALSE
/datum/map_template/surface/wilderness/normal/emptycabin
name = "Empty Cabin"
desc = "An inconspicuous looking den hosted by a hungry otie"
- mappath = 'maps/submaps/surface_submaps/plains/emptycabin.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/emptycabin.dmm"
cost = 10
/datum/map_template/surface/plains/lonewolf
name = "Lone Wolf"
desc = "A large oppressing wolf, supervising from above its cliff"
- mappath = 'maps/submaps/surface_submaps/plains/lonewolf.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/lonewolf.dmm"
cost = 5
/datum/map_template/surface/plains/otieshelter
name = "Otie Shelter"
desc = "A experimental lab of various breeds of oties"
- mappath = 'maps/submaps/surface_submaps/plains/otieshelter.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/otieshelter.dmm"
cost = 15
/datum/map_template/surface/plains/syndisniper
name = "Syndi Sniper"
desc = "Syndicate watch tower, deadly but secluded"
- mappath = 'maps/submaps/surface_submaps/plains/syndisniper.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/syndisniper.dmm"
cost = 5
/datum/map_template/surface/plains/drgnplateu
name = "Dragon Plateu"
desc = "A dangerous plateu of cliffs home to a rampant gold hoarding dragon"
- mappath = 'maps/submaps/surface_submaps/plains/drgnplateu.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/drgnplateu.dmm"
cost = 15
allow_duplicates = FALSE
diff --git a/maps/submaps/surface_submaps/plains/plains_vr.dm b/maps/submaps/surface_submaps/plains/plains_vr.dm
index e194b6293d..5fd4c3cc65 100644
--- a/maps/submaps/surface_submaps/plains/plains_vr.dm
+++ b/maps/submaps/surface_submaps/plains/plains_vr.dm
@@ -61,288 +61,287 @@
/datum/map_template/surface/plains/farm1
name = "Farm 1"
desc = "A small farm tended by a farmbot."
- mappath = 'maps/submaps/surface_submaps/plains/farm1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/farm1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/construction1
name = "Construction Site 1"
desc = "A structure being built. It seems laziness is not limited to engineers."
- mappath = 'maps/submaps/surface_submaps/plains/construction1.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/construction1.dmm"
cost = 10
/datum/map_template/surface/plains/camp1
name = "Camp Site 1"
desc = "A small campsite, complete with housing and bonfire."
- mappath = 'maps/submaps/surface_submaps/plains/camp1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/camp1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/house1
name = "House 1"
desc = "A fair sized house out in the frontier, that belonged to a well-traveled explorer."
- mappath = 'maps/submaps/surface_submaps/plains/house1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/house1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/beacons
name = "Collection of Marker Beacons"
desc = "A bunch of marker beacons, scattered in a strange pattern."
- mappath = 'maps/submaps/surface_submaps/plains/beacons.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/beacons.dmm"
cost = 5
- fixed_orientation = TRUE
/datum/map_template/surface/plains/Epod
name = "Emergency Pod"
desc = "A vacant Emergency pod in the middle of nowhere."
- mappath = 'maps/submaps/surface_submaps/plains/Epod.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Epod.dmm"
cost = 5
/datum/map_template/surface/plains/Epod2
name = "Emergency Pod 2"
desc = "A locked Emergency pod in the middle of nowhere."
- mappath = 'maps/submaps/surface_submaps/plains/Epod2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Epod2.dmm"
cost = 5
/datum/map_template/surface/plains/normal/Rocky2
name = "Rocky 2"
desc = "More rocks."
- mappath = 'maps/submaps/surface_submaps/plains/Rocky2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Rocky2.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/surface/plains/PascalB
name = "Irradiated Manhole Cover"
desc = "How did this old thing get all the way out here?"
- mappath = 'maps/submaps/surface_submaps/plains/PascalB.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/PascalB.dmm"
cost = 5
/datum/map_template/surface/plains/bonfire
name = "Abandoned Bonfire"
desc = "Someone seems to enjoy orange juice a bit too much."
- mappath = 'maps/submaps/surface_submaps/plains/bonfire.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/bonfire.dmm"
cost = 5
/datum/map_template/surface/plains/Rocky5
name = "Rocky 5"
desc = "More rocks, Less Stalone"
- mappath = 'maps/submaps/surface_submaps/plains/Rocky5.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Rocky5.dmm"
cost = 5
/datum/map_template/surface/plains/Shakden
name = "Shantak Den"
desc = "Not to be confused with Shaq Den"
- mappath = 'maps/submaps/surface_submaps/plains/Shakden_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Shakden_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/Field1
name = "Field 1"
desc = "A regular field with a tug on it"
- mappath = 'maps/submaps/surface_submaps/plains/Field1.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Field1.dmm"
cost = 20
/datum/map_template/surface/plains/Thiefc
name = "Thieves Cave"
desc = "A thieves stash"
- mappath = 'maps/submaps/surface_submaps/plains/Thiefc_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Thiefc_vr.dmm" //VOREStation Edit
cost = 20
/datum/map_template/surface/plains/smol2
name = "Small 2"
desc = "A small formation of mishaped surgery"
- mappath = 'maps/submaps/surface_submaps/plains/smol2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/smol2.dmm"
cost = 10
/datum/map_template/surface/plains/Mechpt
name = "Mechpit"
desc = "A illmade Mech brawling ring"
- mappath = 'maps/submaps/surface_submaps/plains/Mechpt.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Mechpt.dmm"
cost = 15
/datum/map_template/surface/plains/Boathouse
name = "Boathouse"
desc = "A fance house on a lake."
- mappath = 'maps/submaps/surface_submaps/plains/Boathouse_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Boathouse_vr.dmm" //VOREStation Edit
cost = 30
/datum/map_template/surface/plains/PooledR
name = "Pooled Rocks"
desc = "An intresting rocky location"
- mappath = 'maps/submaps/surface_submaps/plains/PooledR_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/PooledR_vr.dmm" //VOREStation Edit
cost = 15
/datum/map_template/surface/plains/Smol3
name = "Small 3"
desc = "A small stand"
- mappath = 'maps/submaps/surface_submaps/plains/Smol3.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/Smol3.dmm"
cost = 10
/datum/map_template/surface/plains/Diner
name = "Diner"
desc = "Old Timey Tasty"
- mappath = 'maps/submaps/surface_submaps/plains/Diner_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Diner_vr.dmm" //VOREStation Edit
cost = 25
/datum/map_template/surface/plains/snow1
name = "Snow 1"
desc = "Snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow1.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow1.dmm"
cost = 5
/datum/map_template/surface/plains/snow2
name = "Snow 2"
desc = "More snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow2.dmm"
cost = 5
/datum/map_template/surface/plains/snow3
name = "Snow 3"
desc = "Snow Snow Snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow3.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow3.dmm"
cost = 5
/datum/map_template/surface/plains/snow4
name = "Snow 4"
desc = "Too much snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow4.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow4.dmm"
cost = 5
/datum/map_template/surface/plains/snow5
name = "Snow 5"
desc = "Please stop the snow"
- mappath = 'maps/submaps/surface_submaps/plains/snow5.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/snow5.dmm"
cost = 5
/datum/map_template/surface/plains/RationCache
name = "Ration Cache"
desc = "A forgotten cache of emergency rations."
- mappath = 'maps/submaps/surface_submaps/plains/RationCache_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/RationCache_vr.dmm" //VOREStation Edit
cost = 5
/datum/map_template/surface/plains/SupplyDrop2
name = "Old Supply Drop"
desc = "A drop pod that's clearly been here a while, most of the things inside are rusted and worthless."
- mappath = 'maps/submaps/surface_submaps/plains/SupplyDrop2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/SupplyDrop2.dmm"
cost = 8
/datum/map_template/surface/plains/Oldhouse
name = "Old House"
desc = "Someones old library it seems.."
- mappath = 'maps/submaps/surface_submaps/plains/Oldhouse_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/Oldhouse_vr.dmm" //VOREStation Edit
cost = 15
/datum/map_template/surface/plains/ChemSpill1
name = "Ruptured Canister"
desc = "A dumped chemical canister. Looks dangerous."
- mappath = 'maps/submaps/surface_submaps/plains/chemspill1_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/chemspill1_vr.dmm" //VOREStation Edit
cost = 10
/datum/map_template/surface/plains/PlainsKururak
name = "Lone Kururak"
desc = "A lone Kururak's den."
- mappath = 'maps/submaps/surface_submaps/plains/PlainsKururak.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/PlainsKururak.dmm"
cost = 10
/datum/map_template/surface/plains/BuriedTreasure1
name = "Buried Treasure 1"
desc = "A hole in the ground, who knows what might be inside!"
- mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/BuriedTreasure.dmm"
cost = 10
template_group = "Shallow Grave"
/datum/map_template/surface/plains/BuriedTreasure2
name = "Buried Treasure 2"
desc = "A hole in the ground, who knows what might be inside!"
- mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure2.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/BuriedTreasure2.dmm"
cost = 10
template_group = "Shallow Grave"
/datum/map_template/surface/plains/BuriedTreasure3
name = "Buried Treasure 3"
desc = "A hole in the ground, who knows what might be inside!"
- mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure3.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/BuriedTreasure3.dmm"
cost = 10
template_group = "Shallow Grave"
/datum/map_template/surface/plains/oldhotel
name = "Old Hotel"
desc = "A abandoned hotel of sort, wonder why it was left behind."
- mappath = 'maps/submaps/surface_submaps/plains/oldhotel.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/oldhotel.dmm"
cost = 15
/datum/map_template/surface/plains/priderock
name = "Pride Rock"
desc = "A quite steep petruding rock from the earth, looks like a good hike."
- mappath = 'maps/submaps/surface_submaps/plains/priderock.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/priderock.dmm"
cost = 10
/datum/map_template/surface/plains/lonehome
name = "Lone Home"
desc = "A quite inoffensive looking home, damaged but still holding up."
- mappath = 'maps/submaps/surface_submaps/plains/lonehome_vr.dmm' //VOREStation Edit
+ mappath = "maps/submaps/surface_submaps/plains/lonehome_vr.dmm" //VOREStation Edit
cost = 15
/datum/map_template/surface/plains/hotspring
name = "Hot Spring"
desc = "Wait what, a hotspring in a frost planet?"
- mappath = 'maps/submaps/surface_submaps/plains/hotspring.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/hotspring.dmm"
cost = 5
/datum/map_template/surface/plains/methlab
name = "Meth Lab"
desc = "A broken down greenhouse lab?, this does not look safe."
- mappath = 'maps/submaps/surface_submaps/plains/methlab.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/methlab.dmm"
cost = 15
/datum/map_template/surface/plains/VRDen
name = "VR Den"
desc = "A temporarily abandoned VR den, still functional."
- mappath = 'maps/submaps/surface_submaps/plains/VRDen.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/VRDen.dmm"
cost = 10
/datum/map_template/surface/plains/leopardmanderden
name = "Leopardmander Den"
desc = "Den of a voracious but very rare beast."
- mappath = 'maps/submaps/surface_submaps/plains/leopardmanderden.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/leopardmanderden.dmm"
cost = 10
/datum/map_template/surface/plains/greatwolfden
name = "Great Wolf Den"
desc = "Den hosted by the biggest alpha wolf of the wilderness"
- mappath = 'maps/submaps/surface_submaps/plains/greatwolfden.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/greatwolfden.dmm"
cost = 15
/*
/datum/map_template/surface/plains/dogbase
name = "Dog Base"
desc = "A highly secured base with hungry trained canines"
- mappath = 'maps/submaps/surface_submaps/plains/dogbase.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/dogbase.dmm"
cost = 20
allow_duplicates = FALSE
*/
/datum/map_template/surface/plains/emptycabin
name = "Empty Cabin"
desc = "An inconspicuous looking den hosted by a hungry otie"
- mappath = 'maps/submaps/surface_submaps/plains/emptycabin.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/emptycabin.dmm"
cost = 10
/datum/map_template/surface/plains/lonewolf
name = "Lone Wolf"
desc = "A large oppressing wolf, supervising from above its cliff"
- mappath = 'maps/submaps/surface_submaps/plains/lonewolf.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/lonewolf.dmm"
cost = 5
/*
/datum/map_template/surface/plains/otieshelter
name = "Otie Shelter"
desc = "A experimental lab of various breeds of oties"
- mappath = 'maps/submaps/surface_submaps/plains/otieshelter.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/otieshelter.dmm"
cost = 15
/datum/map_template/surface/plains/syndisniper
name = "Syndi Sniper"
desc = "Syndicate watch tower, deadly but secluded"
- mappath = 'maps/submaps/surface_submaps/plains/syndisniper.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/syndisniper.dmm"
cost = 5
*/
/datum/map_template/surface/plains/drgnplateu
name = "Dragon Plateu"
desc = "A dangerous plateu of cliffs home to a rampant gold hoarding dragon"
- mappath = 'maps/submaps/surface_submaps/plains/drgnplateu.dmm'
+ mappath = "maps/submaps/surface_submaps/plains/drgnplateu.dmm"
cost = 15
allow_duplicates = FALSE
diff --git a/maps/submaps/surface_submaps/wilderness/wilderness.dm b/maps/submaps/surface_submaps/wilderness/wilderness.dm
index eb5f696ae3..6cdb63df70 100644
--- a/maps/submaps/surface_submaps/wilderness/wilderness.dm
+++ b/maps/submaps/surface_submaps/wilderness/wilderness.dm
@@ -31,7 +31,7 @@
#include "Manor1.dmm"
#include "Epod3.dmm"
#include "Epod4.dmm"
-#include "ButcherShack.dmm"
+#include "butchershack.dmm"
#include "Chapel.dmm"
#include "Shelter.dmm"
#include "derelictengine.dmm"
@@ -72,328 +72,328 @@
/datum/map_template/surface/wilderness/normal/spider1
name = "Spider Nest 1"
desc = "A small spider nest, in the forest."
- mappath = 'maps/submaps/surface_submaps/wilderness/spider1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/spider1.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/surface/wilderness/normal/Flake
name = "Forest Lake"
desc = "A serene lake sitting amidst the surface."
- mappath = 'maps/submaps/surface_submaps/wilderness/Flake.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Flake.dmm"
cost = 10
/datum/map_template/surface/wilderness/normal/Mcamp1
name = "Military Camp 1"
desc = "A derelict military camp host to some unsavory dangers"
- mappath = 'maps/submaps/surface_submaps/wilderness/MCamp1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/MCamp1.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/Mudpit
name = "Mudpit"
desc = "What happens when someone is a bit too careless with gas.."
- mappath = 'maps/submaps/surface_submaps/wilderness/Mudpit.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Mudpit.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/Rocky1
name = "Rocky 1"
desc = "DununanununanununuNAnana"
- mappath = 'maps/submaps/surface_submaps/wilderness/Rocky1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Rocky1.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/surface/wilderness/normal/Rocky2
name = "Rocky 2"
desc = "More rocks."
- mappath = 'maps/submaps/surface_submaps/wilderness/Rocky2.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Rocky2.dmm"
allow_duplicates = TRUE
cost = 5
/datum/map_template/surface/wilderness/normal/Rocky3
name = "Rocky 3"
desc = "More and more and more rocks."
- mappath = 'maps/submaps/surface_submaps/wilderness/Rocky3.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Rocky3.dmm"
desc = "DununanununanununuNAnana"
cost = 5
/datum/map_template/surface/wilderness/normal/Shack1
name = "Shack 1"
desc = "A small shack in the middle of nowhere, Your halloween murder happens here"
- mappath = 'maps/submaps/surface_submaps/wilderness/Shack1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Shack1.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/Smol1
name = "Smol 1"
desc = "A tiny grove of trees, The Nemesis of thicc"
- mappath = 'maps/submaps/surface_submaps/wilderness/Smol1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Smol1.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/Snowrock1
name = "Snowrock 1"
desc = "A rocky snow covered area"
- mappath = 'maps/submaps/surface_submaps/wilderness/Snowrock1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Snowrock1.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/Cragzone1
name = "Cragzone 1"
desc = "Rocks and more rocks."
- mappath = 'maps/submaps/surface_submaps/wilderness/Cragzone1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Cragzone1.dmm"
cost = 5
allow_duplicates = TRUE
/datum/map_template/surface/wilderness/normal/Lab1
name = "Lab 1"
desc = "An isolated small robotics lab."
- mappath = 'maps/submaps/surface_submaps/wilderness/Lab1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Lab1.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/Rocky4
name = "Rocky 4"
desc = "An interesting geographic formation."
- mappath = 'maps/submaps/surface_submaps/wilderness/Rocky4.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Rocky4.dmm"
cost = 5
/datum/map_template/surface/wilderness/deep/DJOutpost1
name = "DJOutpost 1"
desc = "Home of Sif Free Radio, the best - and only - radio station for miles around."
- mappath = 'maps/submaps/surface_submaps/wilderness/DJOutpost1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/DJOutpost1.dmm"
template_group = "Sif Free Radio"
cost = 5
/datum/map_template/surface/wilderness/deep/DJOutpost2
name = "DJOutpost 2"
desc = "The cratered remains of Sif Free Radio, the best - and only - radio station for miles around."
- mappath = 'maps/submaps/surface_submaps/wilderness/DJOutpost2.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/DJOutpost2.dmm"
template_group = "Sif Free Radio"
cost = 5
/datum/map_template/surface/wilderness/deep/DJOutpost3
name = "DJOutpost 3"
desc = "The surprisingly high-tech home of Sif Free Radio, the best - and only - radio station for miles around."
- mappath = 'maps/submaps/surface_submaps/wilderness/DJOutpost3.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/DJOutpost3.dmm"
template_group = "Sif Free Radio"
cost = 10
/datum/map_template/surface/wilderness/deep/DJOutpost4
name = "DJOutpost 4"
desc = "The surprisingly high-tech home of Sif Free Radio, the only radio station run by mindless clones."
- mappath = 'maps/submaps/surface_submaps/wilderness/DJOutpost4.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/DJOutpost4.dmm"
template_group = "Sif Free Radio"
cost = INFINITY /// Prevent spawning.
/datum/map_template/surface/wilderness/deep/Boombase
name = "Boombase"
desc = "What happens when you don't follow SOP."
- mappath = 'maps/submaps/surface_submaps/wilderness/Boombase.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Boombase.dmm"
cost = 5
/datum/map_template/surface/wilderness/deep/BSD
name = "Black Shuttle Down"
desc = "You REALLY shouldn't be near this."
- mappath = 'maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm"
cost = 30
template_group = "Shuttle Down"
/datum/map_template/surface/wilderness/deep/BluSD
name = "Blue Shuttle Down"
desc = "You REALLY shouldn't be near this. Mostly because they're Police."
- mappath = 'maps/submaps/surface_submaps/wilderness/Blueshuttledown.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Blueshuttledown.dmm"
cost = INFINITY /// Prevent spawning.
template_group = "Shuttle Down"
/datum/map_template/surface/wilderness/deep/Rockybase
name = "Rocky Base"
desc = "A guide to upsetting Icarus and the EIO"
- mappath = 'maps/submaps/surface_submaps/wilderness/Rockybase.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Rockybase.dmm"
cost = 35
/datum/map_template/surface/wilderness/deep/MHR
name = "Manhack Rock"
desc = "A rock filled with nasty Synthetics."
- mappath = 'maps/submaps/surface_submaps/wilderness/MHR.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/MHR.dmm"
cost = 15
/datum/map_template/surface/wilderness/normal/GovPatrol
name = "Government Patrol"
desc = "A long lost SifGuard ground survey patrol. Now they have you guys!"
- mappath = 'maps/submaps/surface_submaps/wilderness/GovPatrol.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/GovPatrol.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/KururakDen
name = "Kururak Den"
desc = "The den of a Kururak pack. May contain hibernating members."
- mappath = 'maps/submaps/surface_submaps/wilderness/kururakden.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/kururakden.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/DecoupledEngine
name = "Decoupled Engine"
desc = "A damaged fission engine jettisoned from a starship long ago."
- mappath = 'maps/submaps/surface_submaps/wilderness/DecoupledEngine.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/DecoupledEngine.dmm"
cost = 15
/datum/map_template/surface/wilderness/deep/DoomP
name = "DoomP"
desc = "Witty description here."
- mappath = 'maps/submaps/surface_submaps/wilderness/DoomP.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/DoomP.dmm"
cost = 30
/datum/map_template/surface/wilderness/deep/Cave
name = "CaveS"
desc = "Chitter chitter!"
- mappath = 'maps/submaps/surface_submaps/wilderness/CaveS.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/CaveS.dmm"
cost = 20
/datum/map_template/surface/wilderness/normal/Drugden
name = "Drug Den"
desc = "The remains of ill thought out whims."
- mappath = 'maps/submaps/surface_submaps/wilderness/Drugden.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Drugden.dmm"
cost = 20
/datum/map_template/surface/wilderness/normal/Musk
name = "Musk"
desc = "0 to 60 in 1.9 seconds."
- mappath = 'maps/submaps/surface_submaps/wilderness/Musk.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Musk.dmm"
cost = 10
/datum/map_template/surface/wilderness/deep/Manor1
name = "Manor 1"
desc = "Whodunit"
- mappath = 'maps/submaps/surface_submaps/wilderness/Manor1.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Manor1.dmm"
cost = 20
/datum/map_template/surface/wilderness/deep/Epod3
name = "Emergency Pod 3"
desc = "A webbed Emergency pod in the middle of nowhere."
- mappath = 'maps/submaps/surface_submaps/wilderness/Epod3.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Epod3.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/Epod4
name = "Emergency Pod 4"
desc = "A flooded Emergency pod in the middle of nowhere."
- mappath = 'maps/submaps/surface_submaps/wilderness/Epod4.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Epod4.dmm"
cost = 5
/datum/map_template/surface/wilderness/normal/ButcherShack
name = "Butcher Shack"
desc = "An old, bloody butcher's shack. Get your meat here!"
- mappath = 'maps/submaps/surface_submaps/wilderness/ButcherShack.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/butchershack.dmm"
cost = 5
/datum/map_template/surface/wilderness/deep/Chapel1
name = "Chapel 1"
desc = "The chapel of lights and a robot."
- mappath = 'maps/submaps/surface_submaps/wilderness/Chapel.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Chapel.dmm"
cost = 20
/datum/map_template/surface/wilderness/normal/Shelter1
name = "Shelter 1"
desc = "The remains of a resourceful, but prideful explorer."
- mappath = 'maps/submaps/surface_submaps/wilderness/Shelter.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/Shelter.dmm"
cost = 10
/datum/map_template/surface/wilderness/normal/ChemSpill2
name = "Acrid Lake"
desc = "A pool of water contaminated with highly dangerous chemicals."
- mappath = 'maps/submaps/surface_submaps/wilderness/chemspill2.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/chemspill2.dmm"
cost = 10
/datum/map_template/surface/wilderness/normal/FrostflyNest
name = "Frostfly Nest"
desc = "The nest of a Frostfly, or more."
- mappath = 'maps/submaps/surface_submaps/wilderness/FrostflyNest.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/FrostflyNest.dmm"
cost = 20
/datum/map_template/surface/wilderness/deep/DerelictEngine
name = "Derelict Engine"
desc = "An crashed alien ship, something went wrong inside."
- mappath = 'maps/submaps/surface_submaps/wilderness/derelictengine.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/derelictengine.dmm"
cost = 45
/datum/map_template/surface/wilderness/normal/WolfDen
name = "Wolf Den"
desc = "Small wolf den and their hunt spoils."
- mappath = 'maps/submaps/surface_submaps/wilderness/wolfden.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/wolfden.dmm"
cost = 10
/datum/map_template/surface/wilderness/normal/DemonPool
name = "Demon Pool"
desc = "A cult ritual gone horribly wrong."
- mappath = 'maps/submaps/surface_submaps/wilderness/demonpool.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/demonpool.dmm"
cost = 15
/datum/map_template/surface/wilderness/normal/FrostOasis
name = "Frost Oasis"
desc = "A strange oasis with a gathering of wild animals."
- mappath = 'maps/submaps/surface_submaps/wilderness/frostoasis.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/frostoasis.dmm"
cost = 15
/datum/map_template/surface/wilderness/deep/XenoHive
name = "Xeno Hive"
desc = "A containment experiment gone wrong."
- mappath = 'maps/submaps/surface_submaps/wilderness/xenohive.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/xenohive.dmm"
cost = 25
/datum/map_template/surface/wilderness/deep/BorgLab
name = "Borg Lab"
desc = "Production of experimental combat robots gone rogue."
- mappath = 'maps/submaps/surface_submaps/wilderness/borglab.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/borglab.dmm"
cost = 30
/datum/map_template/surface/wilderness/normal/Chasm
name = "Chasm"
desc = "An inconspicuous looking cave, watch your step."
- mappath = 'maps/submaps/surface_submaps/wilderness/chasm.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/chasm.dmm"
cost = 20
/datum/map_template/surface/wilderness/deep/DeathDen
name = "Death Den"
desc = "Gathering of acolytes gone wrong."
- mappath = 'maps/submaps/surface_submaps/wilderness/deathden.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/deathden.dmm"
cost = 15
/datum/map_template/surface/wilderness/deep/leopardmanderden
name = "Leopardmander Den"
desc = "Den of a voracious but very rare beast."
- mappath = 'maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm"
cost = 10
/datum/map_template/surface/wilderness/deep/greatwolfden
name = "Great Wolf Den"
desc = "Den hosted by the biggest alpha wolf of the wilderness"
- mappath = 'maps/submaps/surface_submaps/wilderness/greatwolfden.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/greatwolfden.dmm"
cost = 15
/datum/map_template/surface/wilderness/deep/dogbase
name = "Dog Base"
desc = "A highly secured base with hungry trained canines"
- mappath = 'maps/submaps/surface_submaps/wilderness/dogbase.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/dogbase.dmm"
cost = 20
/datum/map_template/surface/wilderness/normal/emptycabin
name = "Empty Cabin"
desc = "An inconspicuous looking den hosted by a hungry otie"
- mappath = 'maps/submaps/surface_submaps/wilderness/emptycabin.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/emptycabin.dmm"
cost = 10
/datum/map_template/surface/wilderness/deep/lonewolf
name = "Lone Wolf"
desc = "A large oppressing wolf, supervising from above its cliff"
- mappath = 'maps/submaps/surface_submaps/wilderness/lonewolf.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/lonewolf.dmm"
cost = 5
/datum/map_template/surface/wilderness/deep/otieshelter
name = "Otie Shelter"
desc = "A experimental lab of various breeds of oties"
- mappath = 'maps/submaps/surface_submaps/wilderness/otieshelter.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/otieshelter.dmm"
cost = 15
/datum/map_template/surface/wilderness/deep/syndisniper
name = "Syndi Sniper"
desc = "Syndicate watch tower, deadly but secluded"
- mappath = 'maps/submaps/surface_submaps/wilderness/syndisniper.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/syndisniper.dmm"
cost = 5
/datum/map_template/surface/wilderness/deep/drgnplateu
name = "Dragon Plateu"
desc = "A dangerous plateu of cliffs home to a rampant gold hoarding dragon"
- mappath = 'maps/submaps/surface_submaps/wilderness/drgnplateu.dmm'
+ mappath = "maps/submaps/surface_submaps/wilderness/drgnplateu.dmm"
cost = 15
diff --git a/maps/tether/submaps/_tether_submaps.dm b/maps/tether/submaps/_tether_submaps.dm
index 097a6b4338..b2f28282a3 100644
--- a/maps/tether/submaps/_tether_submaps.dm
+++ b/maps/tether/submaps/_tether_submaps.dm
@@ -7,7 +7,7 @@
/datum/map_template/tether_lateload/tether_centcom
name = "Tether - Centcom"
desc = "Central Command lives here!"
- mappath = 'tether_centcom.dmm'
+ mappath = "maps/tether/submaps/tether_centcom.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/centcom
@@ -20,7 +20,7 @@
/datum/map_template/tether_lateload/tether_misc
name = "Tether - Misc"
desc = "Misc areas, like some transit areas, holodecks, merc area."
- mappath = 'tether_misc.dmm'
+ mappath = "maps/tether/submaps/tether_misc.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/misc
@@ -34,7 +34,7 @@
/datum/map_template/tether_lateload/tether_underdark
name = "Tether - Underdark"
desc = "Mining, but harder."
- mappath = 'tether_underdark.dmm'
+ mappath = "maps/tether/submaps/tether_underdark.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/underdark
@@ -56,7 +56,7 @@
/datum/map_template/tether_lateload/tether_plains
name = "Tether - Plains"
desc = "The Virgo 3B away mission."
- mappath = 'tether_plains.dmm'
+ mappath = "maps/tether/submaps/tether_plains.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/tether_plains
/datum/map_z_level/tether_lateload/tether_plains
@@ -79,42 +79,42 @@
/datum/map_template/admin_use/ert
name = "Special Area - ERT"
desc = "It's the ERT ship! Lorge."
- mappath = 'maps/submaps/admin_use_vr/ert.dmm'
+ mappath = "maps/submaps/admin_use_vr/ert.dmm"
/datum/map_template/admin_use/trader
name = "Special Area - Trader"
desc = "Big trader ship."
- mappath = 'maps/submaps/admin_use_vr/tradeship.dmm'
+ mappath = "maps/submaps/admin_use_vr/tradeship.dmm"
/datum/map_template/admin_use/salamander_trader
name = "Special Area - Salamander Trader"
desc = "Modest trader ship."
- mappath = 'maps/submaps/admin_use_vr/salamander_trader.dmm'
+ mappath = "maps/submaps/admin_use_vr/salamander_trader.dmm"
/datum/map_template/admin_use/mercenary
name = "Special Area - Merc Ship"
desc = "Prepare tae be boarded, arr!"
- mappath = 'maps/submaps/admin_use_vr/kk_mercship.dmm'
+ mappath = "maps/submaps/admin_use_vr/kk_mercship.dmm"
/datum/map_template/admin_use/skipjack
name = "Special Area - Skipjack Base"
desc = "Stinky!"
- mappath = 'maps/submaps/admin_use_vr/skipjack.dmm'
+ mappath = "maps/submaps/admin_use_vr/skipjack.dmm"
/datum/map_template/admin_use/thunderdome
name = "Special Area - Thunderdome"
desc = "Thunderrrrdomeee"
- mappath = 'maps/submaps/admin_use_vr/thunderdome.dmm'
+ mappath = "maps/submaps/admin_use_vr/thunderdome.dmm"
/datum/map_template/admin_use/wizardbase
name = "Special Area - Wizard Base"
desc = "Wingardium Levosia"
- mappath = 'maps/submaps/admin_use_vr/wizard.dmm'
+ mappath = "maps/submaps/admin_use_vr/wizard.dmm"
/datum/map_template/admin_use/dojo
name = "Special Area - Ninja Dojo"
desc = "Sneaky"
- mappath = 'maps/submaps/admin_use_vr/dojo.dmm'
+ mappath = "maps/submaps/admin_use_vr/dojo.dmm"
//////////////////////////////////////////////////////////////////////////////
//Rogue Mines Stuff
@@ -122,7 +122,7 @@
/datum/map_template/tether_lateload/tether_roguemines1
name = "Asteroid Belt 1"
desc = "Mining, but rogue. Zone 1"
- mappath = 'maps/submaps/rogue_mines_vr/rogue_mine1.dmm'
+ mappath = "maps/submaps/rogue_mines_vr/rogue_mine1.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/roguemines1
@@ -134,7 +134,7 @@
/datum/map_template/tether_lateload/tether_roguemines2
name = "Asteroid Belt 2"
desc = "Mining, but rogue. Zone 2"
- mappath = 'maps/submaps/rogue_mines_vr/rogue_mine2.dmm'
+ mappath = "maps/submaps/rogue_mines_vr/rogue_mine2.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/roguemines2
@@ -206,7 +206,7 @@
/datum/map_template/tether_lateload/away_aerostat
name = "Remmi Aerostat - Z1 Aerostat"
desc = "The Virgo 2 Aerostat away mission."
- mappath = 'maps/expedition_vr/aerostat/aerostat.dmm'
+ mappath = "maps/expedition_vr/aerostat/aerostat.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/away_aerostat
/datum/map_z_level/tether_lateload/away_aerostat
@@ -217,7 +217,7 @@
/datum/map_template/tether_lateload/away_aerostat_surface
name = "Remmi Aerostat - Z2 Surface"
desc = "The surface from the Virgo 2 Aerostat."
- mappath = 'maps/expedition_vr/aerostat/surface.dmm'
+ mappath = "maps/expedition_vr/aerostat/surface.dmm"
associated_map_datum = /datum/map_z_level/tether_lateload/away_aerostat_surface
/datum/map_template/tether_lateload/away_aerostat_surface/on_map_loaded(z)
diff --git a/maps/tether/submaps/underdark_pois/_templates.dm b/maps/tether/submaps/underdark_pois/_templates.dm
index 4af0b5b29a..d9dd4bc30a 100644
--- a/maps/tether/submaps/underdark_pois/_templates.dm
+++ b/maps/tether/submaps/underdark_pois/_templates.dm
@@ -5,171 +5,171 @@
/datum/map_template/underdark/normal_mob
name = "Underdark Normal Mob Spawn"
- mappath = 'normal_mob.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/normal_mob.dmm"
cost = 5
/datum/map_template/underdark/hard_mob
name = "Underdark Hard Mob Spawn"
- mappath = 'hard_mob.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/hard_mob.dmm"
cost = 15
/datum/map_template/underdark/vault1
name = "Underdark Vault 1"
- mappath = 'vault1.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/vault1.dmm"
cost = 10
/datum/map_template/underdark/vault2
name = "Underdark Vault 2"
- mappath = 'vault2.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/vault2.dmm"
cost = 15
/datum/map_template/underdark/vault3
name = "Underdark Vault 3"
- mappath = 'vault3.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/vault3.dmm"
cost = 10
/datum/map_template/underdark/guardedloot_normal
name = "Underdark Guarded Loot Normal"
- mappath = 'guardedloot_normal.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/guardedloot_normal.dmm"
cost = 10
/datum/map_template/underdark/guardedloot_hard
name = "Underdark Guarded Loot Hard"
- mappath = 'guardedloot_hard.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/guardedloot_hard.dmm"
cost = 15
/datum/map_template/underdark/guardedsample_normal
name = "Underdark Guarded Sample Normal" //2x common-or-uncommon
- mappath = 'guardedsample_normal.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/guardedsample_normal.dmm"
cost = 10
/datum/map_template/underdark/guardedsample_hard
name = "Underdark Guarded Sample Hard" //uncommon-or-rare
- mappath = 'guardedsample_hard.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/guardedsample_hard.dmm"
cost = 15
/datum/map_template/underdark/blaster
name = "Underdark Blaster"
- mappath = 'blaster.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/blaster.dmm"
cost = 10
/datum/map_template/underdark/mechwreck
name = "Underdark Mech Wreck"
- mappath = 'mechwreck.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/mechwreck.dmm"
cost = 15
allow_duplicates = FALSE
/datum/map_template/underdark/abandonedshelter
name = "Underdark Abandoned Shelter"
- mappath = 'abandonedshelter.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/abandonedshelter.dmm"
cost = 15
allow_duplicates = FALSE
/datum/map_template/underdark/deadminer
name = "Underdark Dead Miner"
- mappath = 'deadminer.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/deadminer.dmm"
cost = 15
allow_duplicates = FALSE
/datum/map_template/underdark/underhall
name = "Underdark Golden Hall"
- mappath = 'goldhall.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/goldhall.dmm"
cost = 20
allow_duplicates = FALSE
/datum/map_template/underdark/mechbay
name = "Underdark Mech Bay"
- mappath = 'mechbay.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/mechbay.dmm"
cost = 25
allow_duplicates = FALSE
/datum/map_template/underdark/testsite
name = "Underdark Test Site"
- mappath = 'testsite.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/testsite.dmm"
cost = 20
allow_duplicates = FALSE
/datum/map_template/underdark/corridor // Bob was a derp
name = "Underdark Corridor"
- mappath = 'Corridor.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/Corridor.dmm"
cost = 5
allow_duplicates = FALSE
/datum/map_template/underdark/old_drone_hive
name = "Underdark Old Drone Hive"
- mappath = 'old_drone_hive.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/old_drone_hive.dmm"
cost = 15
/datum/map_template/underdark/phoron_rat_den
name = "Underdark Phoron Rat Den"
- mappath = 'phoron_rat_den.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/phoron_rat_den.dmm"
cost = 25
allow_duplicates = FALSE
/datum/map_template/underdark/subterranean_lake
name = "Underdark Underground Lake"
- mappath = 'subterranean_lake.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/subterranean_lake.dmm"
cost = 5
/datum/map_template/underdark/spider_nest
name = "Underdark Spider Nest"
- mappath = 'spider_nest.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/spider_nest.dmm"
cost = 15
/datum/map_template/underdark/rykka_easter_egg // bark bark Rykka was here. <3
name = "Underdark GSD"
- mappath = 'rykka_easter_egg.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm"
cost = 5
allow_duplicates = FALSE
/datum/map_template/underdark/tree_shrine
name = "Underdark Tree"
- mappath = 'tree_shrine.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/tree_shrine.dmm"
cost = 10
allow_duplicates = FALSE
/datum/map_template/underdark/abandoned_outpost
name = "Underdark Abandonded Outpost"
- mappath = 'abandonded_outpost.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/abandonded_outpost.dmm"
cost = 45
allow_duplicates = FALSE
discard_prob = 35
/datum/map_template/underdark/mimicry
name = "Underdark Mimic Death"
- mappath = 'mimicry.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/mimicry.dmm"
cost = 15
/datum/map_template/underdark/wolf_den
name = "Underdark Wolf Den"
- mappath = 'wolf_den.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/wolf_den.dmm"
cost = 15
/datum/map_template/underdark/puzzle_corridor
name = "Underdark Puzzle Corridor"
- mappath = 'puzzle_corridor.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/puzzle_corridor.dmm"
cost = 10
/*
// Comment out unfinished/unbalanced POI's here
/datum/map_template/underdark/rad_threat
name = "Underdark Rad Threat"
- mappath = 'rad_threat.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/rad_threat.dmm"
cost = 10
/datum/map_template/underdark/broken_engine
name = "Underdark Broken Twin Engine"
- mappath = 'broken_engine.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/broken_engine.dmm"
cost = 10
/datum/map_template/underdark/boss_mob
name = "Underdark Boss Mob Spawn"
- mappath = 'boss_mob.dmm'
+ mappath = "maps/tether/submaps/underdark_pois/boss_mob.dmm"
cost = 60
allow_duplicates = FALSE
/datum/map_template/underdark/whatever_treasure
name = "Some Kinda Treasure" //A name, only visible to admins
- mappath = 'hard_mob.dmm' //The .dmm file for this template (in this folder)
+ mappath = "maps/tether/submaps/underdark_pois/hard_mob.dmm" //The .dmm file for this template (in this folder"
cost = 10 //How 'valuable' this template is
*/
diff --git a/vorestation.dme b/vorestation.dme
index 1519ec9d12..16ee7ed117 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -23,6 +23,7 @@
#include "code\__defines\_click.dm"
#include "code\__defines\_compile_options.dm"
#include "code\__defines\_helpers.dm"
+#include "code\__defines\_init.dm"
#include "code\__defines\_lists.dm"
#include "code\__defines\_planes+layers.dm"
#include "code\__defines\_planes+layers_vr.dm"
@@ -2718,10 +2719,11 @@
#include "code\modules\lore_codex\robutt_data\main_robutts.dm"
#include "code\modules\lore_codex\robutt_data\more.dm"
#include "code\modules\makeup\nailpolish.dm"
-#include "code\modules\maps\tg\dmm_suite.dm"
+#include "code\modules\maps\bapi-dmm\bapi_bindings.dm"
+#include "code\modules\maps\bapi-dmm\bapi_dmm_reader.dm"
+#include "code\modules\maps\bapi-dmm\bapi_helpers.dm"
#include "code\modules\maps\tg\map_template.dm"
#include "code\modules\maps\tg\map_template_vr.dm"
-#include "code\modules\maps\tg\reader.dm"
#include "code\modules\materials\fifty_spawner.dm"
#include "code\modules\materials\fifty_spawner_mats.dm"
#include "code\modules\materials\fifty_spawner_mats_vr.dm"