From e2dae42dc42f170af6803d9b77a497c447d3cdd3 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 26 Nov 2023 18:55:55 -0800 Subject: [PATCH] runtime maploading 2/3: multiz update (#6145) 3/3 is world structs and the fun that comes with that this pr has: - transitions - new multiz system - lookup optimizations - misc updates --------- Co-authored-by: silicons --- citadel.dme | 30 +- code/__DEFINES/_flags/atom_flags.dm | 8 +- code/__DEFINES/mapping/levels.dm | 6 +- code/__DEFINES/mapping/multiz.dm | 16 + code/__DEFINES/turfs/type_generation.dm | 2 +- code/__DEFINES/z_levels.dm | 2 - code/_globals/bitfields.dm | 19 +- code/controllers/subsystem/air.dm | 4 +- code/controllers/subsystem/lighting.dm | 4 +- .../mapping/level_helpers/linkage.dm | 10 +- .../subsystem/mapping/level_helpers/lookup.dm | 50 +- .../mapping/level_helpers/virtualization.dm | 14 + code/controllers/subsystem/mapping/levels.dm | 242 +- code/controllers/subsystem/mapping/maps.dm | 12 +- .../mapping/spatial_helpers/angle.dm | 29 + .../subsystem/mapping/spatial_helpers/dir.dm | 48 + .../mapping/spatial_helpers/distance.dm | 29 + .../subsystem/mapping/spatial_helpers/loc.dm | 17 + .../mapping/spatial_helpers/stack.dm | 13 + .../subsystem/mapping/spatial_helpers/step.dm | 10 + code/controllers/subsystem/planets.dm | 15 +- code/controllers/subsystem/zmimic.dm | 6 +- code/datums/armor/objects/windows.dm | 2 +- .../components/turfs/transition_border.dm | 275 + code/game/objects/explosion.dm | 10 +- code/game/turfs/change_turf.dm | 16 +- code/game/turfs/simulated/floor/floor.dm | 13 + .../turfs/simulated/floor/floor_attackby.dm | 2 +- code/game/turfs/simulated/floor/floor_icon.dm | 5 - .../game/turfs/simulated/wall/wall_attacks.dm | 2 +- code/game/turfs/space/space.dm | 19 +- code/game/turfs/turf.dm | 25 +- code/game/turfs/unsimulated.dm | 22 + code/game/turfs/unsimulated/planetary.dm | 18 +- .../atmospherics/environmental/turf.dm | 2 +- .../environmental/zas/controller.dm | 2 +- .../atmospherics/environmental/zas/debug.dm | 6 +- .../atmospherics/environmental/zas/turf.dm | 4 +- code/modules/clothing/gloves/_gloves.dm | 1 + code/modules/clothing/gloves/rings/_rings.dm | 1 + code/modules/events/meteor_strike_vr.dm | 2 +- .../integrated_electronics/subtypes/output.dm | 3 +- code/modules/lighting/lighting_corner.dm | 4 +- code/modules/lighting/lighting_turf.dm | 14 + .../mapping/{ => map_helpers}/paint.dm | 2 + code/modules/mapping/map_level.dm | 271 +- code/modules/mapping/map_template.dm | 2 +- code/modules/mapping/multiz_helpers.dm | 42 - code/modules/maps/overmap/space/centcom.dm | 3 - .../modules/maps/overmap/space/talon/talon.dm | 3 - .../space/trade_station/trade_station.dm | 3 - .../templates/shuttles/admin_spawn/ert.dm | 3 - .../shuttles/admin_spawn/manta_mercship.dm | 3 - code/modules/mining/mine_turfs.dm | 1 + code/modules/mining/shelter_atoms.dm | 2 +- .../simple_mob/subtypes/vore/demon/demon.dm | 2 +- .../subtypes/vore/shadekin/ability_procs.dm | 2 +- code/modules/mob/mob_helpers.dm | 4 +- code/modules/mob/observer/observer.dm | 2 +- code/modules/multiz/atoms.dm | 3 + code/modules/multiz/basic.dm | 64 - code/modules/multiz/basic_legacy.dm | 23 + code/modules/multiz/core.dm | 39 + code/modules/multiz/falling.dm | 3 + code/modules/multiz/ladder.dm | 148 - code/modules/multiz/level_data.dm | 86 - code/modules/multiz/map_data.dm | 43 - code/modules/multiz/movement.dm | 18 +- code/modules/multiz/{ => structures}/hoist.dm | 6 +- .../ladder.dm} | 155 +- code/modules/multiz/{ => structures}/pipes.dm | 6 +- .../{structures.dm => structures/stairs.dm} | 44 +- .../vorestation_portals.dm} | 0 code/modules/multiz/turf.dm | 63 +- .../multiz/{open_turf.dm => turfs/open.dm} | 9 +- code/modules/multiz/zmimic/mimic_common.dm | 4 +- code/modules/multiz/zmimic/mimic_movable.dm | 16 +- code/modules/multiz/zmimic/mimic_turf.dm | 2 +- code/modules/power/cable.dm | 9 +- code/modules/recycling/disposal.dm | 4 +- code/modules/shieldgen/shield_gen.dm | 10 +- code/modules/shieldgen/shield_generator.dm | 20 +- code/modules/shuttles/shuttle.dm | 10 +- code/modules/ventcrawl/ventcrawl_multiz.dm | 10 +- maps/REGEXING_MAP_PORTS.md | 7 + maps/euthenia/levels/deck4.dmm | 1 - maps/generic/map_data.dm | 20 - maps/generic/misc.dm | 2 +- maps/map_levels/140x140/talon/talon2.dmm | 1 - maps/rift/levels/rift-01-underground3.dmm | 17 - maps/rift/levels/rift-02-underground2.dmm | 8 - maps/rift/levels/rift-03-underground1.dmm | 26 - maps/rift/levels/rift-04-surface1.dmm | 23 - maps/rift/levels/rift-06-surface3.dmm | 1 - maps/rift/levels/rift-07-west_base.dmm | 11 - maps/rift/levels/rift-08-west_deep.dmm | 8 - maps/rift/levels/rift-09-west_caves.dmm | 23 - maps/rift/levels/rift-10-west_plains.dmm | 7397 ++++---- maps/rift/rift.dm | 14 + maps/sectors/desert_140/desert_140.dm | 1 + maps/sectors/desert_192/desert_192.dm | 1 + maps/sectors/frozen_140/frozen_140.dm | 1 + maps/sectors/frozen_192/frozen_192.dm | 1 + maps/sectors/gaia_140/gaia_140.dm | 1 + maps/sectors/gaia_192/gaia_192.dm | 1 + maps/sectors/lavaland_140/lavaland_140.dm | 4 +- .../lavaland_140/levels/lavaland_140.dmm | 21 +- .../lavaland_140/levels/lavaland_140_east.dmm | 41 +- maps/sectors/lavaland_192/lavaland_192.dm | 4 +- .../lavaland_192/levels/lavaland_192.dmm | 11 - .../lavaland_192/levels/lavaland_192_east.dmm | 11 - .../miaphus_192/levels/miaphus_192_beach.dmm | 2040 ++- .../miaphus_192/levels/miaphus_192_cave.dmm | 2294 ++- .../miaphus_192/levels/miaphus_192_desert.dmm | 1523 +- maps/sectors/miaphus_192/miaphus_192.dm | 1 + maps/sectors/mining_140/mining_140.dm | 1 + maps/sectors/mining_192/mining_192.dm | 1 + .../virgo4_140/levels/virgo4_140_beach.dmm | 13898 ++++++++-------- .../virgo4_140/levels/virgo4_140_cave.dmm | 3240 ++-- .../virgo4_140/levels/virgo4_140_desert.dmm | 1372 +- maps/templates/admin/ert.dmm | 1 - maps/templates/admin/kk_mercship.dmm | 1 - maps/tether/levels/mining.dmm | 7 - maps/tether/levels/plains.dmm | 5 - maps/tether/levels/station2.dmm | 1 - maps/tether/levels/surface1.dmm | 12 - maps/triumph/levels/deck4.dmm | 1 - 127 files changed, 17366 insertions(+), 16863 deletions(-) delete mode 100644 code/__DEFINES/z_levels.dm create mode 100644 code/controllers/subsystem/mapping/level_helpers/virtualization.dm create mode 100644 code/controllers/subsystem/mapping/spatial_helpers/angle.dm create mode 100644 code/controllers/subsystem/mapping/spatial_helpers/dir.dm create mode 100644 code/controllers/subsystem/mapping/spatial_helpers/distance.dm create mode 100644 code/controllers/subsystem/mapping/spatial_helpers/loc.dm create mode 100644 code/controllers/subsystem/mapping/spatial_helpers/stack.dm create mode 100644 code/controllers/subsystem/mapping/spatial_helpers/step.dm create mode 100644 code/datums/components/turfs/transition_border.dm rename code/modules/mapping/{ => map_helpers}/paint.dm (98%) delete mode 100644 code/modules/mapping/multiz_helpers.dm delete mode 100644 code/modules/multiz/basic.dm create mode 100644 code/modules/multiz/basic_legacy.dm create mode 100644 code/modules/multiz/core.dm delete mode 100644 code/modules/multiz/ladder.dm delete mode 100644 code/modules/multiz/level_data.dm delete mode 100644 code/modules/multiz/map_data.dm rename code/modules/multiz/{ => structures}/hoist.dm (97%) rename code/modules/multiz/{ladder_assembly_vr.dm => structures/ladder.dm} (50%) rename code/modules/multiz/{ => structures}/pipes.dm (98%) rename code/modules/multiz/{structures.dm => structures/stairs.dm} (91%) rename code/modules/multiz/{structures_vr.dm => structures/vorestation_portals.dm} (100%) rename code/modules/multiz/{open_turf.dm => turfs/open.dm} (92%) diff --git a/citadel.dme b/citadel.dme index 2abc2abd8d5..44006bf29a3 100644 --- a/citadel.dme +++ b/citadel.dme @@ -102,7 +102,6 @@ #include "code\__DEFINES\vote.dm" #include "code\__DEFINES\vv.dm" #include "code\__DEFINES\wires.dm" -#include "code\__DEFINES\z_levels.dm" #include "code\__DEFINES\_flags\_flags.dm" #include "code\__DEFINES\_flags\area_flags.dm" #include "code\__DEFINES\_flags\atom_flags.dm" @@ -579,6 +578,13 @@ #include "code\controllers\subsystem\mapping\level_helpers\linkage.dm" #include "code\controllers\subsystem\mapping\level_helpers\lookup.dm" #include "code\controllers\subsystem\mapping\level_helpers\traits.dm" +#include "code\controllers\subsystem\mapping\level_helpers\virtualization.dm" +#include "code\controllers\subsystem\mapping\spatial_helpers\angle.dm" +#include "code\controllers\subsystem\mapping\spatial_helpers\dir.dm" +#include "code\controllers\subsystem\mapping\spatial_helpers\distance.dm" +#include "code\controllers\subsystem\mapping\spatial_helpers\loc.dm" +#include "code\controllers\subsystem\mapping\spatial_helpers\stack.dm" +#include "code\controllers\subsystem\mapping\spatial_helpers\step.dm" #include "code\controllers\subsystem\networks\_networks.dm" #include "code\controllers\subsystem\networks\simple.dm" #include "code\controllers\subsystem\persistence\_persistence.dm" @@ -723,6 +729,7 @@ #include "code\datums\components\riding\mob\robot.dm" #include "code\datums\components\riding\simple\_simple.dm" #include "code\datums\components\riding\vehicle\_vehicle.dm" +#include "code\datums\components\turfs\transition_border.dm" #include "code\datums\design\design.dm" #include "code\datums\design\design_holder.dm" #include "code\datums\design\designs\sheets.dm" @@ -3086,8 +3093,6 @@ #include "code\modules\mapping\map_level.dm" #include "code\modules\mapping\map_template.dm" #include "code\modules\mapping\minimaps.dm" -#include "code\modules\mapping\multiz_helpers.dm" -#include "code\modules\mapping\paint.dm" #include "code\modules\mapping\shuttle.dm" #include "code\modules\mapping\submap.dm" #include "code\modules\mapping\submaps_legacy.dm" @@ -3101,6 +3106,7 @@ #include "code\modules\mapping\map_helpers\baseturf.dm" #include "code\modules\mapping\map_helpers\component_injector.dm" #include "code\modules\mapping\map_helpers\engine_loader.dm" +#include "code\modules\mapping\map_helpers\paint.dm" #include "code\modules\mapping\map_helpers\network_builder\_network_builder.dm" #include "code\modules\mapping\map_helpers\network_builder\power_cable.dm" #include "code\modules\mapping\spawner\_spawner.dm" @@ -3872,19 +3878,17 @@ #include "code\modules\movespeed\modifiers\misc.dm" #include "code\modules\movespeed\modifiers\mob.dm" #include "code\modules\multiz\atoms.dm" -#include "code\modules\multiz\basic.dm" +#include "code\modules\multiz\basic_legacy.dm" +#include "code\modules\multiz\core.dm" #include "code\modules\multiz\falling.dm" -#include "code\modules\multiz\hoist.dm" -#include "code\modules\multiz\ladder.dm" -#include "code\modules\multiz\ladder_assembly_vr.dm" -#include "code\modules\multiz\level_data.dm" -#include "code\modules\multiz\map_data.dm" #include "code\modules\multiz\movement.dm" -#include "code\modules\multiz\open_turf.dm" -#include "code\modules\multiz\pipes.dm" -#include "code\modules\multiz\structures.dm" -#include "code\modules\multiz\structures_vr.dm" #include "code\modules\multiz\turf.dm" +#include "code\modules\multiz\structures\hoist.dm" +#include "code\modules\multiz\structures\ladder.dm" +#include "code\modules\multiz\structures\pipes.dm" +#include "code\modules\multiz\structures\stairs.dm" +#include "code\modules\multiz\structures\vorestation_portals.dm" +#include "code\modules\multiz\turfs\open.dm" #include "code\modules\multiz\zmimic\_mimic_docs.dm" #include "code\modules\multiz\zmimic\mimic_common.dm" #include "code\modules\multiz\zmimic\mimic_movable.dm" diff --git a/code/__DEFINES/_flags/atom_flags.dm b/code/__DEFINES/_flags/atom_flags.dm index e6bb75e57b3..5f9ef421b70 100644 --- a/code/__DEFINES/_flags/atom_flags.dm +++ b/code/__DEFINES/_flags/atom_flags.dm @@ -8,9 +8,14 @@ /// Atom queued to SSoverlay for compile_overlays #define ATOM_OVERLAY_QUEUED (1<<3) /// Atom is absolute-abstract - should not be interactable or movable in any way shape or form +/// This is for stuff like lighting. #define ATOM_ABSTRACT (1<<4) +/// Atom is not considered a game world object. +/// This means semantic "wipe game world state" things like turf.empty(), saving, loading, etc, should ignore it, +/// but the atom is not abstract. +#define ATOM_NONWORLD (1<<5) /// uses integrity, and is broken -#define ATOM_BROKEN (1<<5) +#define ATOM_BROKEN (1<<6) /// Used for items if they don't want to get a blood overlay. #define NOBLOODY (1<<7) // TODO: item flag /// Reagents don't react inside this container. @@ -50,6 +55,7 @@ DEFINE_BITFIELD(atom_flags, list( BITFIELD(ATOM_HEAR), BITFIELD(ATOM_OVERLAY_QUEUED), BITFIELD(ATOM_ABSTRACT), + BITFIELD(ATOM_NONWORLD), BITFIELD(ATOM_BROKEN), BITFIELD(NOBLOODY), BITFIELD(NOREACT), diff --git a/code/__DEFINES/mapping/levels.dm b/code/__DEFINES/mapping/levels.dm index 5439aae3a18..4556d80e444 100644 --- a/code/__DEFINES/mapping/levels.dm +++ b/code/__DEFINES/mapping/levels.dm @@ -6,9 +6,11 @@ /// Default - don't preprocess for unlinked sides, just leave them empty #define Z_LINKAGE_NORMAL "normal" /// Crosslinked - crosslink with other crosslinked zlevels at random using some semblence of continuity -#define Z_LINKAGE_CROSSLINKED "crosslink" +// todo: crosslink support +// #define Z_LINKAGE_CROSSLINKED "crosslink" /// Selflooping - automatically link to itself for unlinked sides -#define Z_LINKAGE_SELFLOOP "selfloop" +// todo: selfloop support +// #define Z_LINKAGE_SELFLOOP "selfloop" //? "transition" diff --git a/code/__DEFINES/mapping/multiz.dm b/code/__DEFINES/mapping/multiz.dm index 7ce01f533e4..b43bdd839d7 100644 --- a/code/__DEFINES/mapping/multiz.dm +++ b/code/__DEFINES/mapping/multiz.dm @@ -18,3 +18,19 @@ /// these flags mean a fall should stop #define FALL_FLAGS_STOP (FALL_BLOCKED | FALL_RECOVERED | FALL_TERMINATED) + +/// there's a level above +#define Z_HAS_ABOVE(z) (!isnull(SSmapping.cached_level_up[z])) +/// there's a level below +#define Z_HAS_BELOW(z) (!isnull(SSmapping.cached_level_down[z])) + +/// get turf below this turf, if any +/// we are at the mercy of zmimic when we do this. do not use in critical maploader code. +#define TURF_BELOW_ISH(T) (T.below || T.below()) +/// get turf above this turf, if any +/// we are at the mercy of zmimic when we do this. do not use in critical maploader code. +#define TURF_ABOVE_ISH(T) (T.above || T.above()) + +/// we should use get virtual step due to our x/y being border +/// we do not get step this, so use it on something **on** game world. (aka turf or on turf). +#define AT_MAP_BORDER(A) (A.x == 2 || A.y == 2 || A.x == world.maxx - 1 || A.y == world.maxy - 1) diff --git a/code/__DEFINES/turfs/type_generation.dm b/code/__DEFINES/turfs/type_generation.dm index 35f7f987e1a..d8fb0c98e7e 100644 --- a/code/__DEFINES/turfs/type_generation.dm +++ b/code/__DEFINES/turfs/type_generation.dm @@ -1,4 +1,4 @@ - +/// create the standard 4 types of turfs for a given turf type. #define CREATE_STANDARD_TURFS(type) \ ##type/indoors { \ outdoors = FALSE; \ diff --git a/code/__DEFINES/z_levels.dm b/code/__DEFINES/z_levels.dm deleted file mode 100644 index f011970525c..00000000000 --- a/code/__DEFINES/z_levels.dm +++ /dev/null @@ -1,2 +0,0 @@ -#define HasBelow(Z) (((Z) > world.maxz || (Z) < 2 || ((Z)-1) > z_levels.len) ? 0 : z_levels[(Z)-1]) -#define HasAbove(Z) (((Z) >= world.maxz || (Z) < 1 || (Z) > z_levels.len) ? 0 : z_levels[(Z)]) diff --git a/code/_globals/bitfields.dm b/code/_globals/bitfields.dm index a3f10bff5c4..7205896c151 100644 --- a/code/_globals/bitfields.dm +++ b/code/_globals/bitfields.dm @@ -60,7 +60,7 @@ GLOBAL_LIST_INIT(bitfields, generate_bitfields()) "TRANSPARENT" = TRANSPARENT, "AMOUNT_VISIBLE" = AMOUNT_VISIBLE, "NO_REACT" = NO_REACT, - ), + ), "sight" = list( "SEE_INFRA" = SEE_INFRA, "SEE_SELF" = SEE_SELF, @@ -70,9 +70,18 @@ GLOBAL_LIST_INIT(bitfields, generate_bitfields()) "SEE_PIXELS" = SEE_PIXELS, "SEE_THRU" = SEE_THRU, "SEE_BLACKNESS" = SEE_BLACKNESS, - "BLIND" = BLIND - ), - - ) + "BLIND" = BLIND, + ), + "vis_flags" = list( + "VIS_INHERIT_ICON" = VIS_INHERIT_ICON, + "VIS_INHERIT_ICON_STATE" = VIS_INHERIT_ICON_STATE, + "VIS_INHERIT_DIR" = VIS_INHERIT_DIR, + "VIS_INHERIT_LAYER" = VIS_INHERIT_LAYER, + "VIS_INHERIT_PLANE" = VIS_INHERIT_PLANE, + "VIS_INHERIT_ID" = VIS_INHERIT_ID, + "VIS_UNDERLAY" = VIS_UNDERLAY, + "VIS_HIDE" = VIS_HIDE, + ), +) #undef FLAG diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index f971da5f53b..062341b700c 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -358,9 +358,9 @@ SUBSYSTEM_DEF(air) gas_string = A.initial_gas_mix // 2. check if it's special and should look up the level's defaults switch(gas_string) - if(ATMOSPHERE_USE_INDOORS) - gas_string = SSmapping.lookup_outdoors_air(turf_context.z) if(ATMOSPHERE_USE_OUTDOORS) + gas_string = SSmapping.lookup_outdoors_air(turf_context.z) + if(ATMOSPHERE_USE_INDOORS) gas_string = SSmapping.lookup_indoors_air(turf_context.z) // 3: process atmosphere if(generated_atmospheres[gas_string]) diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 82970243918..5bff0ce41f9 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -127,7 +127,9 @@ SUBSYSTEM_DEF(lighting) . += 1 if (TURF_IS_AMBIENT_LIT_UNSAFE(T)) T.generate_missing_corners() // Forcibly generate corners. - + else + if(!T.lighting_disable_fullbright) + T.add_overlay(/obj/effect/fullbright, TRUE) CHECK_TICK // It's safe to pass a list of non-turfs to this list - it'll only check turfs. diff --git a/code/controllers/subsystem/mapping/level_helpers/linkage.dm b/code/controllers/subsystem/mapping/level_helpers/linkage.dm index 4fe12fb0f97..79b8d97723d 100644 --- a/code/controllers/subsystem/mapping/level_helpers/linkage.dm +++ b/code/controllers/subsystem/mapping/level_helpers/linkage.dm @@ -6,7 +6,9 @@ */ /datum/controller/subsystem/mapping/proc/crosslinked_levels() RETURN_TYPE(/list) - . = list() - for(var/datum/map_level/L as anything in ordered_levels) - if(L.linkage == Z_LINKAGE_CROSSLINKED) - . += L.z_index + return list() + // todo: crosslink support + // . = list() + // for(var/datum/map_level/L as anything in ordered_levels) + // if(L.linkage == Z_LINKAGE_CROSSLINKED) + // . += L.z_index diff --git a/code/controllers/subsystem/mapping/level_helpers/lookup.dm b/code/controllers/subsystem/mapping/level_helpers/lookup.dm index 54aaa6bc639..3763211adf9 100644 --- a/code/controllers/subsystem/mapping/level_helpers/lookup.dm +++ b/code/controllers/subsystem/mapping/level_helpers/lookup.dm @@ -26,7 +26,51 @@ return ordered_levels[z]?.display_name /** - * returns the z index of an id + * returns level datum in dir of level + * + * if diagonal, only returns a level if both steps are consistent with each other. */ -/datum/controller/subsystem/mapping/proc/level_by_id(id) - return keyed_levels[id]?.z_index +/datum/controller/subsystem/mapping/proc/level_datum_in_dir(z, dir) + if(dir & (dir - 1)) + // if diagonal, pass to level for advanced handling + return ordered_levels[z].level_in_dir(dir)?.z_index + var/index + switch(dir) + if(NORTH) + index = cached_level_north[z] + if(SOUTH) + index = cached_level_south[z] + if(EAST) + index = cached_level_east[z] + if(WEST) + index = cached_level_west[z] + if(UP) + index = cached_level_up[z] + if(DOWN) + index = cached_level_down[z] + return ordered_levels[index] + +/** + * returns level index in dir of level + * + * if diagonal, only returns a level if both steps are consistent with each other. + */ +/datum/controller/subsystem/mapping/proc/level_index_in_dir(z, dir) + if(dir & (dir - 1)) + // if diagonal, pass to level for advanced handling + return ordered_levels[z].level_in_dir(dir) + var/index + switch(dir) + if(NORTH) + index = cached_level_north[z] + if(SOUTH) + index = cached_level_south[z] + if(EAST) + index = cached_level_east[z] + if(WEST) + index = cached_level_west[z] + if(UP) + index = cached_level_up[z] + if(DOWN) + index = cached_level_down[z] + return index diff --git a/code/controllers/subsystem/mapping/level_helpers/virtualization.dm b/code/controllers/subsystem/mapping/level_helpers/virtualization.dm new file mode 100644 index 00000000000..3749cb2bbbf --- /dev/null +++ b/code/controllers/subsystem/mapping/level_helpers/virtualization.dm @@ -0,0 +1,14 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * GAME PROC: is_level_virtualized(z) + * Checks if we should use GetVirtualCoords or similar for things like GPSes, radios + * + * Returns TRUE if: + * z is in a world_struct + */ +/datum/controller/subsystem/mapping/proc/is_level_virtualized(z) + // todo: world structs + return FALSE + // return !isnull(struct_by_z[z]) diff --git a/code/controllers/subsystem/mapping/levels.dm b/code/controllers/subsystem/mapping/levels.dm index 70511b62033..d4adff35c9f 100644 --- a/code/controllers/subsystem/mapping/levels.dm +++ b/code/controllers/subsystem/mapping/levels.dm @@ -7,21 +7,164 @@ * All adds/removes should go through this. Directly modifying zlevel amount/whatever is forbidden. */ /datum/controller/subsystem/mapping + //* level lookups /// indexed level datums var/static/list/datum/map_level/ordered_levels = list() /// k-v id to level datum lookup var/static/list/datum/map_level/keyed_levels = list() + + //* level fluff lookups /// literally just a random hexadecimal store to prevent collision var/static/list/random_fluff_level_hashes = list() + + //* multiz core + /// Ordered lookup list for multiz up + var/list/cached_level_up + /// Ordered lookup list for multiz down + var/list/cached_level_down + /// Ordered lookup list for east transition + var/list/cached_level_east + /// Ordered lookup list for west transition + var/list/cached_level_west + /// Ordered lookup list for north transition + var/list/cached_level_north + /// Ordered lookup list for south transition + var/list/cached_level_south + /// Z access lookup - z = list() of zlevels it can access. For performance, this is currently only including bidirectional links, AND does not support looping. + var/list/z_stack_lookup + /// does z stack lookup need a rebuild? + var/z_stack_dirty = TRUE + + //* initializations /// stuff that puts themselves in this get map_initializations() hook called on them /// at end of level or map load cycle before general atom init. var/tmp/list/obj/map_helper/map_initialization_hooked /// this initializations hooked - this cycle var/tmp/list/obj/map_helper/map_initialization_hooking +//* Rebuilds / Caching + /datum/controller/subsystem/mapping/on_max_z_changed(old_z_count, new_z_count) . = ..() - // synchronize datastructures *except* for ordered_levels; allocate_z_index should be doing that. + synchronize_datastructures() + +/** + * Ensure all synchronized lists are valid + */ +/datum/controller/subsystem/mapping/proc/synchronize_datastructures() +#define SYNC(var) if(!var) { var = list() ; } ; if(var.len != world.maxz) { . = TRUE ; var.len = world.maxz; } + . = FALSE + SYNC(cached_level_up) + SYNC(cached_level_down) + SYNC(cached_level_east) + SYNC(cached_level_west) + SYNC(cached_level_north) + SYNC(cached_level_south) + SYNC(z_stack_lookup) + z_stack_dirty = FALSE + if(.) + z_stack_dirty = TRUE +#undef SYNC + +/** + * Call whenever a zlevel's up/down is modified + * + * This does NOT rebuild turf graphics - call it on each level for that. + * + * @params + * * updated - the level updated, if doing a single update + * * targeted - the new level the level is pointing to, if doing a single update + * * dir - the direction from updated to targeted + */ +/datum/controller/subsystem/mapping/proc/rebuild_verticality(datum/map_level/updated, datum/map_level/targeted, dir) + if(!updated || !cached_level_up || !cached_level_down) + // full rebuild + z_stack_dirty = TRUE + cached_level_up = list() + cached_level_down = list() + cached_level_up.len = world.maxz + cached_level_down.len = world.maxz + for(var/i in 1 to world.maxz) + var/datum/map_level/level = ordered_levels[i] + cached_level_up[i] = level.level_in_dir(UP)?.z_index + cached_level_down[i] = level.level_in_dir(DOWN)?.z_index + else + // smart rebuild + ASSERT(dir) + if(!updated.loaded) + return + z_stack_dirty = TRUE + var/datum/map_level/level = updated + switch(dir) + if(UP) + cached_level_up[level.z_index] = level.level_in_dir(UP)?.z_index + if(DOWN) + cached_level_down[level.z_index] = level.level_in_dir(DOWN)?.z_index + else + CRASH("Invalid dir: [dir]") + +/** + * Call whenever a zlevel's east/west/north/south is modified + * + * This does NOT rebuild turf graphics - call it on each level for that. + * + * @params + * * updated - the level updated, if doing a single update + * * targeted - the new level the level is pointing to, if doing a single update + * * dir - the direction from updated to targeted + */ +/datum/controller/subsystem/mapping/proc/rebuild_transitions(datum/map_level/updated, datum/map_level/targeted, dir) + if(!updated || !cached_level_east || !cached_level_west || !cached_level_north || !cached_level_south) + // full rebuild + cached_level_east = list() + cached_level_west = list() + cached_level_north = list() + cached_level_south = list() + cached_level_east.len = cached_level_west.len = cached_level_north.len = cached_level_south.len = world.maxz + for(var/i in 1 to world.maxz) + var/datum/map_level/level = ordered_levels[i] + cached_level_north[i] = level.level_in_dir(NORTH)?.z_index + cached_level_south[i] = level.level_in_dir(SOUTH)?.z_index + cached_level_east[i] = level.level_in_dir(EAST)?.z_index + cached_level_west[i] = level.level_in_dir(WEST)?.z_index + else + // smart rebuild + if(!updated.loaded) + return + ASSERT(dir) + var/datum/map_level/level = updated + switch(dir) + if(NORTH) + cached_level_north[level.z_index] = level.level_in_dir(NORTH)?.z_index + if(SOUTH) + cached_level_south[level.z_index] = level.level_in_dir(SOUTH)?.z_index + if(EAST) + cached_level_east[level.z_index] = level.level_in_dir(EAST)?.z_index + if(WEST) + cached_level_west[level.z_index] = level.level_in_dir(WEST)?.z_index + else + CRASH("Invalid dir: [dir]") + +/** + * Automatically rebuilds the transitions and multiz of any zlevel that has them. + * Usually called on world load. + * + * Can specify a list of zlevels to check (indices, not datums!), otherwise rebuilds all + */ +/datum/controller/subsystem/mapping/proc/rebuild_level_multiz(list/indices, turfs, transitions) + if(!indices) + indices = list() + for(var/i in 1 to world.maxz) + indices += i + for(var/number in indices) + var/datum/map_level/L = ordered_levels[number] + if(transitions) + L.rebuild_transitions() + if(turfs) + L.rebuild_turfs() + CHECK_TICK + +//* Allocations & Deallocations /** * allocates a new map level using the given datum. @@ -68,7 +211,11 @@ if(isnull(level_or_path.display_name)) level_or_path.display_name = "Sector [level_or_path.display_id]" - // todo: rebuild? + if(rebuild) + rebuild_verticality() + rebuild_transitions() + rebuild_level_multiz(list(z_index), TRUE, TRUE) + // todo: legacy if(!isnull(level_or_path.planet_path)) SSplanets.legacy_planet_assert(z_index, level_or_path.planet_path) @@ -181,7 +328,10 @@ . = loaded_bounds - // todo: rebuild? + if(rebuild) + rebuild_verticality() + rebuild_transitions() + rebuild_level_multiz(list(real_z), TRUE, TRUE) /** * destroys a loaded level and frees it for later usage @@ -203,6 +353,8 @@ /datum/controller/subsystem/mapping/proc/deallocate_level(datum/map_level/instance) CRASH("unimplemented") +//* Traits, Attributes, and IDs + /** * called when a trait is added to a loaded level * @@ -239,3 +391,87 @@ . = "[discriminator][num2hex(rand(1, 16 ** 4 - 1))]" while(. in random_fluff_level_hashes) random_fluff_level_hashes += . + +//* Z stacks + +/** + * Gets the sorted Z stack list of a level - the levels accessible from a single level, in multiz + */ +/datum/controller/subsystem/mapping/proc/get_z_stack(z) + if(z_stack_dirty) + recalculate_z_stack() + var/list/L = z_stack_lookup[z] + return L.Copy() + +/** + * Recalculates Z stack + * + * **Warning**: rebuild_verticality must be called to recalculate up/down lookups, + * as this proc uses them for speed! + */ +/datum/controller/subsystem/mapping/proc/recalculate_z_stack() + validate_no_loops() + z_stack_lookup = list() + z_stack_lookup.len = world.maxz + var/list/left = list() + for(var/z in 1 to world.maxz) + // todo: stacks + // if(struct_by_z[z]) + // var/datum/world_struct/struct = struct_by_z[z] + // z_stack_lookup[z] = struct.stack_lookup[struct.real_indices.Find(z)] + // else + // left += z + left += z + var/list/datum/map_level/bottoms = list() + // let's sing the bottom song + for(var/z in left) + if(cached_level_down[z]) + continue + bottoms += ordered_levels[z] + for(var/datum/map_level/bottom as anything in bottoms) + // register us + var/list/stack = list(bottom.z_index) + z_stack_lookup[bottom.z_index] = stack + // let's sing the list manipulation song + var/datum/map_level/next = ordered_levels[cached_level_up[bottom.z_index]] + while(next) + stack += next.z_index + z_stack_lookup[next.z_index] = stack + next = ordered_levels[cached_level_up[next.z_index]] + +/** + * Ensures there's no up/down infinite loops + */ +/datum/controller/subsystem/mapping/proc/validate_no_loops() + var/list/loops = list() + for(var/z in 1 to world.maxz) + var/list/found + found = list(z) + var/next = z + while(next) + next = cached_level_up[next] + if(next in found) + loops += next + break + if(next) + found += next + next = z + while(next) + next = cached_level_down[next] + if(next in found) + loops += next + break + if(next) + found += next + if(!loops.len) + return + for(var/z in loops) + var/datum/map_level/level = ordered_levels[z] + level.link_above = null + level.link_below = null + // if(struct_by_z[z]) + // var/datum/world_struct/struct = struct_by_z[z] + // struct.Deconstruct() + // qdel(struct) + stack_trace("WARNING: Up/Down loops found in zlevels [english_list(loops)]. This is not allowed and will cause both falling and zcopy to infinitely loop. All zlevels involved have been disconnected, and any structs involved have been destroyed.") + rebuild_verticality() diff --git a/code/controllers/subsystem/mapping/maps.dm b/code/controllers/subsystem/mapping/maps.dm index 6d19891464c..eb026fa91ab 100644 --- a/code/controllers/subsystem/mapping/maps.dm +++ b/code/controllers/subsystem/mapping/maps.dm @@ -147,7 +147,12 @@ // invoke global finalize for(var/datum/map/map as anything in actually_loaded) map.on_loaded_finalize() - // todo: rebuild? + // rebuild multiz + // this is just for visuals + var/list/indices_to_rebuild = list() + for(var/datum/map_level/level as anything in loaded_levels) + indices_to_rebuild += level.z_index + rebuild_level_multiz(indices_to_rebuild, TRUE, TRUE) /datum/controller/subsystem/mapping/proc/_load_map_impl(datum/map/instance, list/datum/map_level/loaded_levels, list/datum/callback/generation_callbacks, list/datum/map/this_batch, list/bounds_collect) PRIVATE_PROC(TRUE) @@ -172,6 +177,11 @@ instance.on_loaded_immediate() + // rebuild multiz + // this is for the lookups, which must be done immediately, as generation/hooks might require it. + rebuild_verticality() + rebuild_transitions() + // todo: legacy for(var/path in instance.legacy_assert_shuttle_datums) SSshuttle.legacy_shuttle_assert(path) diff --git a/code/controllers/subsystem/mapping/spatial_helpers/angle.dm b/code/controllers/subsystem/mapping/spatial_helpers/angle.dm new file mode 100644 index 00000000000..e340311fad1 --- /dev/null +++ b/code/controllers/subsystem/mapping/spatial_helpers/angle.dm @@ -0,0 +1,29 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * Gets virual angle between two turfs in horizontal terms + * IGNORES STRUCT Z DEPTH! + * + * Angle is clockwise from north. + * + * If the atoms aren't in managed space, acts like GetAngle + * + * Returns null for unreachable, + * if A is in managed space and B isn't or vice versa, + * OR if they both aren't and aren't in the same zlevel, + * OR if hey both are and aren't in the same struct + */ +/datum/controller/subsystem/mapping/proc/get_virtual_angle(atom/A, atom/B) + return get_visual_angle(A, B) + // A = get_turf(A) + // B = get_turf(B) + // if(A.z == B.z) + // return get_physics_angle(A, B) + // if(!is_level_virtualized(A) || !is_level_virtualized(B)) + // return null + // if(struct_by_z[A.z] != struct_by_z[B.z]) + // return null + // var/datum/space_level/S1 = ordered_levels[A.z] + // var/datum/space_level/S2 = ordered_levels[B.z] + // return get_angle_direct(S1.struct_x * world.maxx + A.x, S1.struct_y * world.maxy + A.y, S2.struct_x * world.maxx + B.x, S2.struct_y * world.maxy + B.y) diff --git a/code/controllers/subsystem/mapping/spatial_helpers/dir.dm b/code/controllers/subsystem/mapping/spatial_helpers/dir.dm new file mode 100644 index 00000000000..41b70367f9b --- /dev/null +++ b/code/controllers/subsystem/mapping/spatial_helpers/dir.dm @@ -0,0 +1,48 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * Gets virual direction between two turfs + * + * If the atoms aren't in managed space, acts like get_dir_multiz - works on zstacks only or same level. + * + * Returns NONE for unreachable, + * if A is in managed space and B isn't or vice versa, + * OR if they both aren't and aren't in the same zlevel or zstack, + * OR if hey both are and aren't in the same struct + */ +/datum/controller/subsystem/mapping/proc/get_virtual_dir(turf/A, turf/B) + return get_dir(A, B) + // A = get_turf(A) + // B = get_turf(B) + // if(A.z == B.z) + // return get_dir(A, B) + // if(!is_level_virtualized(A) || !is_level_virtualized(B)) + // // last ditch - check stacks + // var/list/stack = z_stack_lookup + // var/pos = stack.Find(B.z) + // if(!pos) + // return NONE // couldn't find + // // found, old get_dir_multiz + // . = get_dir(A, B) + // if(stack.Find(A.z) < pos) + // . |= UP + // else + // . |= DOWN + // return + // if(struct_by_z[A.z] != struct_by_z[B.z]) + // return NONE + // var/datum/space_level/S1 = ordered_levels[A.z] + // var/datum/space_level/S2 = ordered_levels[B.z] + // . = NONE + // if(S1.struct_z > S2.struct_z) + // . |= DOWN + // else if(S1.struct_z < S2.struct_z) + // . |= UP + // if(S1.struct_x == S2.struct_x) + // return . | (S1.struct_y > S2.struct_y? SOUTH : NORTH) + // else if(S1.struct_y == S2.struct_y) + // return . | (S1.struct_x > S2.struct_x? WEST : EAST) + // else + // . |= (S1.struct_y > S2.struct_y)? SOUTH : NORTH + // . |= (S1.struct_x > S2.struct_x)? WEST : EAST diff --git a/code/controllers/subsystem/mapping/spatial_helpers/distance.dm b/code/controllers/subsystem/mapping/spatial_helpers/distance.dm new file mode 100644 index 00000000000..6a6ea0d5c9b --- /dev/null +++ b/code/controllers/subsystem/mapping/spatial_helpers/distance.dm @@ -0,0 +1,29 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * Get virtual distance between two turfs + * + * If the atoms aren't in managed space, acts ilke get_dist + * + * z_dist refers to the distance that zlevels count for - defaults to the z_canonical_dist of a struct, or 0 otherwise. + * + * Returns -1 for unreachable, + * If A is in managed and B isn't, or vice versa, + * OR if they both aren't and they aren't the same zlevel, + * Or if they both are and aren't in the same struct. + */ +/datum/controller/subsystem/mapping/proc/get_virtual_dist(turf/A, turf/B, z_dist) + // todo: get_dist after 515 + return get_manhattan_dist(A, B) + // A = get_turf(A) + // B = get_turf(B) + // if(A.z == B.z) + // return get_dist(A, B) + // if(!is_level_virtualized(A) || !is_level_virtualized(B)) + // return -1 + // if(struct_by_z[A.z] != struct_by_z[B.z]) + // return -1 + // var/datum/space_level/S1 = ordered_levels[A.z] + // var/datum/space_level/S2 = ordered_levels[B.z] + // return sqrt(((S2.struct_x * world.maxx + B.x) - (S1.struct_x * world.maxx + A.x)) ** 2 + ((S2.struct_y * world.maxy + B.y) - (S1.struct_y * world.maxy + A.y)) ** 2 + ((S2.struct_z - S1.struct_z) * z_dist) ** 2) diff --git a/code/controllers/subsystem/mapping/spatial_helpers/loc.dm b/code/controllers/subsystem/mapping/spatial_helpers/loc.dm new file mode 100644 index 00000000000..639d557e20d --- /dev/null +++ b/code/controllers/subsystem/mapping/spatial_helpers/loc.dm @@ -0,0 +1,17 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * Get a coordinate set of list(x, y, z) of virtual coordinates for an turf. + * + * Note: Z should be interpreted as DEPTH here, not real sector Z. Every world_struct starts at z = 1. + * Also, x, y, and z can all be negative here. + */ +/datum/controller/subsystem/mapping/proc/get_virtual_coords(turf/A) + return list(A.x, A.y, A.z) + // A = get_turf(A) + // if(!struct_by_z[A.z]) + // return list(A.x, A.y, A.z) + // var/datum/world_struct/struct = struct_by_z[A.z] + // var/datum/space_level/S = ordered_levels[A.z] + // return list((S.struct_x * world.maxx) + A.x , (S.struct_y * world.maxy) + A.y, S.struct_z) diff --git a/code/controllers/subsystem/mapping/spatial_helpers/stack.dm b/code/controllers/subsystem/mapping/spatial_helpers/stack.dm new file mode 100644 index 00000000000..7e3bd4c6b46 --- /dev/null +++ b/code/controllers/subsystem/mapping/spatial_helpers/stack.dm @@ -0,0 +1,13 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * get all turfs in the zstack up/down from the given turf. + */ +/datum/controller/subsystem/mapping/proc/get_turfs_within_stack(turf/T) + var/list/stack = get_z_stack(T.z) + if(isnull(stack)) + return list(T) + . = list() + for(var/z in stack) + . += locate(T.x, T.y, z) diff --git a/code/controllers/subsystem/mapping/spatial_helpers/step.dm b/code/controllers/subsystem/mapping/spatial_helpers/step.dm new file mode 100644 index 00000000000..9ae8a097a2e --- /dev/null +++ b/code/controllers/subsystem/mapping/spatial_helpers/step.dm @@ -0,0 +1,10 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * Get logical step in dir for a turf + */ +/datum/controller/subsystem/mapping/proc/get_virtual_step(turf/A, dir) + return get_step(A, dir) + // todo: impl + // #warn impl also make sure border is 2 from edge aka 1 from edge is hte teleport loc diff --git a/code/controllers/subsystem/planets.dm b/code/controllers/subsystem/planets.dm index af3a20ac5c5..cf113153c44 100644 --- a/code/controllers/subsystem/planets.dm +++ b/code/controllers/subsystem/planets.dm @@ -181,17 +181,6 @@ SUBSYSTEM_DEF(planets) /datum/controller/subsystem/planets/proc/updateTemp(datum/planet/P) //Set new temperatures - for(var/W in P.planet_walls) - var/turf/unsimulated/wall/planetary/wall = W - wall.set_temperature(P.weather_holder.temperature) + for(var/turf/T in P.planet_walls) + T.sector_set_temperature(P.weather_holder.temperature) CHECK_TICK - -/datum/controller/subsystem/planets/proc/weatherDisco() - var/count = 100000 - while(count > 0) - count-- - for(var/planet in planets) - var/datum/planet/P = planet - if(P.weather_holder) - P.weather_holder.change_weather(pick(P.weather_holder.allowed_weather_types)) - sleep(3) diff --git a/code/controllers/subsystem/zmimic.dm b/code/controllers/subsystem/zmimic.dm index f325c0e48ec..4eef5327f2d 100644 --- a/code/controllers/subsystem/zmimic.dm +++ b/code/controllers/subsystem/zmimic.dm @@ -159,7 +159,7 @@ SUBSYSTEM_DEF(zmimic) zlev_maximums = new(world.maxz) var/start_zlev = 1 for (var/z in 1 to world.maxz) - if (!HasAbove(z)) + if (!SSmapping.cached_level_up[z]) for (var/member_zlev in start_zlev to z) zlev_maximums[member_zlev] = z if (z - start_zlev > OPENTURF_MAX_DEPTH) @@ -187,8 +187,8 @@ SUBSYSTEM_DEF(zmimic) for (var/turf/T in block(locate(1, 1, zlev), locate(world.maxx, world.maxy, zlev))) if (T.mz_flags & MZ_MIMIC_BELOW) flush_z_state(T) - T.below = GetAbove(T) - T.above = GetBelow(T) + T.below = T.below() + T.above = T.above() T.update_mimic() CHECK_TICK // wake() diff --git a/code/datums/armor/objects/windows.dm b/code/datums/armor/objects/windows.dm index 369d9487d8c..841f8814178 100644 --- a/code/datums/armor/objects/windows.dm +++ b/code/datums/armor/objects/windows.dm @@ -5,6 +5,6 @@ /datum/armor/window/reinforced melee_deflect = 6 - melee_soak = 2 + melee_soak = 0 melee_tier = ARMOR_BARELY_BEATS(MELEE_TIER_MEDIUM) melee = 0.2 diff --git a/code/datums/components/turfs/transition_border.dm b/code/datums/components/turfs/transition_border.dm new file mode 100644 index 00000000000..bf885a186a6 --- /dev/null +++ b/code/datums/components/turfs/transition_border.dm @@ -0,0 +1,275 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * Component used for turf transitions. + * + * How it works is, the outermost turf on z-levels is actually + * the second from the edge turf on the adjacent z-level. + * + * This way, we have *near* perfect native-like simulation with moves without + * having to do anything too special. + */ +/datum/component/transition_border + var/atom/movable/mirage_border/holder1 + var/atom/movable/mirage_border/holder2 + var/atom/movable/mirage_border/holder3 + var/range + var/dir + /// do we render visuals? + var/render = TRUE + +/datum/component/transition_border/Initialize(range = 10, dir, render) + if(!isturf(parent)) + return COMPONENT_INCOMPATIBLE + if(!dir || range < 1) + . = COMPONENT_INCOMPATIBLE + CRASH("[type] improperly instanced with the following args: direction=\[[dir]\], range=\[[range]\]") + if(range > world.maxx || range > world.maxy || range > 20) + . = COMPONENT_INCOMPATIBLE + CRASH("[range] is too big a range. Max: 20, or the smallest dimension of the world.") + src.range = range + src.dir = dir + if(!isnull(render)) + src.render = render + +/datum/component/transition_border/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_ATOM_ENTERED, .proc/transit) + rebuild() + +/datum/component/transition_border/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_ATOM_ENTERED) + QDEL_NULL(holder1) + QDEL_NULL(holder2) + QDEL_NULL(holder3) + return ..() + +/datum/component/transition_border/proc/transit(datum/source, atom/movable/AM) + if(AM.atom_flags & ATOM_ABSTRACT) + return // nah. + var/turf/our_turf = parent + var/z_index = SSmapping.level_index_in_dir(our_turf.z, dir) + if(isnull(z_index)) + STACK_TRACE("no z index?! deleting self.") + qdel(src) + return + var/turf/target + switch(dir) + if(NORTH) + target = locate(our_turf.x, 2, z_index) + if(SOUTH) + target = locate(our_turf.x, world.maxy - 1, z_index) + if(EAST) + target = locate(2, our_turf.y, z_index) + if(WEST) + target = locate(world.maxx - 1, our_turf.y, z_index) + if(NORTHEAST) + target = locate(2, 2, z_index) + if(NORTHWEST) + target = locate(world.maxx - 1, 2, z_index) + if(SOUTHEAST) + target = locate(2, world.maxy - 1, z_index) + if(SOUTHWEST) + target = locate(world.maxx - 1, world.maxy - 1, z_index) + AM.locationTransitForceMove(target, recurse_levels = 2) + +/datum/component/transition_border/proc/rebuild() + // reset first + holder1?.reset() + holder2?.reset() + holder3?.reset() + + // "why the hell do you need 3 holders" + // because otherwise i can't offset them right, because we want the map to look like it's continuous, not overlapping + // i hate byond! + + if(ISDIAGONALDIR(dir)) + // 1 is NS + // 2 is EW + // 3 is diag + var/list/turfs + + turfs = turfs_in_cardinal(NSCOMPONENT(dir)) + if(length(turfs)) + if(!holder1) + holder1 = new(parent) + holder1.vis_contents = turfs + holder1.pixel_y = dir & SOUTH? -world.icon_size * (range - 1) : 0 + + turfs = turfs_in_cardinal(EWCOMPONENT(dir)) + if(length(turfs)) + if(!holder2) + holder2 = new(parent) + holder2.vis_contents = turfs + holder2.pixel_x = dir & WEST? -world.icon_size * (range - 1) : 0 + + turfs = turfs_in_diagonal(dir) + if(length(turfs)) + if(!holder3) + holder3 = new(parent) + holder3.vis_contents = turfs + holder3.pixel_y = dir & SOUTH? -world.icon_size * (range - 1) : 0 + holder3.pixel_x = dir & WEST? -world.icon_size * (range - 1) : 0 + else + var/list/turfs = turfs_in_cardinal(dir) + if(!length(turfs)) + return + if(!holder1) + holder1 = new(parent) + holder1.vis_contents = turfs + holder1.pixel_x = dir == WEST? -world.icon_size * (range - 1) : 0 + holder1.pixel_y = dir == SOUTH? -world.icon_size * (range - 1) : 0 + +/datum/component/transition_border/proc/turfs_in_diagonal(dir) + ASSERT(dir & (dir - 1)) + var/turf/our_turf = parent + var/datum/map_level/our_level = SSmapping.ordered_levels[our_turf.z] + if(isnull(our_level)) + return list() + var/datum/map_level/target_level = our_level.level_in_dir(dir) + if(isnull(target_level)) + return list() + switch(dir) + if(NORTHWEST) + return block( + locate(world.maxx - 1, 2, target_level.z_index), + locate(world.maxx - 1 - range + 1, 2 + range - 1, target_level.z_index), + ) + if(NORTHEAST) + return block( + locate(2, 2, target_level.z_index), + locate(2, 2 + range - 1, target_level.z_index), + ) + if(SOUTHWEST) + return block( + locate(world.maxx - 1, world.maxy - 1, target_level.z_index), + locate(world.maxx - 1 - range + 1, world.maxy - 1 - range + 1, target_level.z_index), + ) + if(SOUTHEAST) + return block( + locate(2, world.maxy - 1, target_level.z_index), + locate(2 + range - 1, world.maxy - 1 - range + 1, target_level.z_index), + ) + else + CRASH("what?") + +/datum/component/transition_border/proc/turfs_in_cardinal(dir) + var/turf/our_turf = parent + var/datum/map_level/our_level = SSmapping.ordered_levels[our_turf.z] + if(isnull(our_level)) + return list() + var/datum/map_level/target_level = our_level.level_in_dir(dir) + if(isnull(target_level)) + return list() + switch(dir) + if(NORTH) + return block( + locate(our_turf.x, 2, target_level.z_index), + locate(our_turf.x, 2 + range - 1, target_level.z_index), + ) + if(SOUTH) + return block( + locate(our_turf.x, world.maxy - 1, target_level.z_index), + locate(our_turf.x, world.maxy - 1 - range + 1, target_level.z_index), + ) + if(EAST) + return block( + locate(2, our_turf.y, target_level.z_index), + locate(2 + range - 1, our_turf.y, target_level.z_index), + ) + if(WEST) + return block( + locate(world.maxx - 1, our_turf.y, target_level.z_index), + locate(world.maxx - 1 - range + 1, our_turf.y, target_level.z_index), + ) + else + CRASH("what?") + +/** + * makes us into a level border, which changeturfs us if we aren't already a /turf/level_border + */ +/turf/proc/_make_transition_border(dir, render = TRUE) + var/turf/T = src + if(!istype(T, /turf/level_border)) + T = PlaceOnTop(/turf/level_border) + if(isnull(SSmapping.level_index_in_dir(z, dir))) + return + var/datum/component/transition_border/border = T.GetComponent(/datum/component/transition_border) + if(border) + qdel(border) + T.AddComponent(/datum/component/transition_border, dir = dir, render = render) + +/** + * clears us from being a level border, which scrapes us away if we're a /turf/level_border + */ +/turf/proc/_dispose_transition_border() + var/turf/T = src + if(istype(T, /turf/level_border)) + T = ScrapeAway(1) + var/datum/component/transition_border/border = T.GetComponent(/datum/component/transition_border) + if(!isnull(border)) + qdel(border) + return TRUE + return FALSE + +/atom/movable/mirage_border + name = "Mirage holder" + anchored = TRUE + plane = SPACE_PLANE + density = FALSE + atom_flags = ATOM_ABSTRACT + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + vis_flags = VIS_HIDE // THIS IS VERY FUCKING IMPORTANT; WILL CRASH SERVER IF IT LOOPS. + +/atom/movable/mirage_border/doMove(atom/destination) + return FALSE + +/atom/movable/mirage_border/proc/reset() + pixel_x = 0 + pixel_y = 0 + vis_contents.len = 0 + +/atom/movable/mirage_border/vv_edit_var(var_name, var_value, raw_edit) + if(var_value == NAMEOF(src, vis_flags)) // NO + return FALSE + return ..() + +/** + * borders at the edge of zlevels + */ +CREATE_STANDARD_TURFS(/turf/level_border) +/turf/level_border + name = "level border" + desc = "You shouldn't see this." + invisibility = 101 + icon = null + icon_state = null + plane = SPACE_PLANE + vis_flags = VIS_HIDE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + density = FALSE + initial_gas_mix = ATMOSPHERE_USE_OUTDOORS + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + // so the fullbright overlay doesn't cause issues on the other side + lighting_disable_fullbright = TRUE + +// todo: refactor +/turf/level_border/Initialize(mapload) + . = ..() + SSplanets.addWall(src) + +/turf/level_border/Destroy() + SSplanets.removeWall(src) + return ..() + +//? Sector API + +/turf/level_border/sector_set_temperature(temperature) + if(temperature == src.temperature) + return + src.temperature = temperature + // Force ZAS to reconsider our connections because our temperature has changed + if(connections) + connections.erase_all() + queue_zone_update() diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 84ca8a55673..037af3ccda1 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -1,6 +1,8 @@ //TODO: Flash range does nothing currently /proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, z_transfer = UP|DOWN, shaped) + if(isnull(epicenter)) + return var/multi_z_scalar = config_legacy.multi_z_explosion_scalar spawn(0) var/start = world.timeofday @@ -16,10 +18,10 @@ if(adj_dev > 0 || adj_heavy > 0) - if(HasAbove(epicenter.z) && z_transfer & UP) - explosion(GetAbove(epicenter), round(adj_dev), round(adj_heavy), round(adj_light), round(adj_flash), 0, UP, shaped) - if(HasBelow(epicenter.z) && z_transfer & DOWN) - explosion(GetBelow(epicenter), round(adj_dev), round(adj_heavy), round(adj_light), round(adj_flash), 0, DOWN, shaped) + if(z_transfer & UP) + explosion(epicenter.above(), round(adj_dev), round(adj_heavy), round(adj_light), round(adj_flash), 0, UP, shaped) + if(z_transfer & DOWN) + explosion(epicenter.below(), round(adj_dev), round(adj_heavy), round(adj_light), round(adj_flash), 0, DOWN, shaped) var/max_range = max(devastation_range, heavy_impact_range, light_impact_range, flash_range) diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index 269c83a0606..b9d2f703264 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(multiz_hole_baseturfs, typecacheof(list( warning("Z-level [z] has invalid baseturf '[SSmapping.level_baseturf(z)]'") . = world.turf if(. == world.turf) // no space/basic check, if you use space/basic in a map honestly get bent - if(istype(GetBelow(src), /turf/simulated)) + if(istype(below(), /turf/simulated)) . = /turf/simulated/open /** * get baseturf on bottom @@ -80,28 +80,32 @@ GLOBAL_LIST_INIT(multiz_hole_baseturfs, typecacheof(list( if(null) return if(/turf/baseturf_bottom) + var/turf/below = below() path = SSmapping.level_baseturf(z) || /turf/space if(!ispath(path)) stack_trace("Z-level [z] has invalid baseturf '[SSmapping.level_baseturf(z)]'") path = /turf/space if(path == /turf/space) // no space/basic check, if you use space/basic in a map honestly get bent - if(istype(GetBelow(src), /turf/simulated)) + if(istype(below, /turf/simulated)) path = /turf/simulated/open else if(path == /turf/simulated/open) - if(istype(GetBelow(src), /turf/space)) + if(istype(below, /turf/space)) path = /turf/space if(/turf/space/basic) + var/turf/below = below() // basic doesn't initialize and this will cause issues // no warning though because this can happen naturaly as a result of it being built on top of - if(istype(GetBelow(src), /turf/simulated)) + if(istype(below, /turf/simulated)) path = /turf/simulated/open else path = /turf/space if(/turf/space) - if(istype(GetBelow(src), /turf/simulated)) + var/turf/below = below() + if(istype(below, /turf/simulated)) path = /turf/simulated/open if(/turf/simulated/open) - if(istype(GetBelow(src), /turf/space)) + var/turf/below = below() + if(istype(below, /turf/space)) path = /turf/space if(!global.use_preloader && path == type && !(flags & CHANGETURF_FORCEOP) && (baseturfs == new_baseturfs)) // Don't no-op if the map loader requires it to be reconstructed, or if this is a new set of baseturfs diff --git a/code/game/turfs/simulated/floor/floor.dm b/code/game/turfs/simulated/floor/floor.dm index 1428e14ad6c..49495574537 100644 --- a/code/game/turfs/simulated/floor/floor.dm +++ b/code/game/turfs/simulated/floor/floor.dm @@ -216,3 +216,16 @@ to_chat(user, SPAN_NOTICE("You deconstruct \the [src].")) ScrapeAway(flags = CHANGETURF_INHERIT_AIR|CHANGETURF_PRESERVE_OUTDOORS) return TRUE + +//? Multiz + +/turf/simulated/floor/update_multiz() + update_ceilingless_overlay() + +/turf/simulated/floor/proc/update_ceilingless_overlay() + // Show 'ceilingless' overlay. + var/turf/above = above(src) + if(isopenturf(above) && !istype(src, /turf/simulated/floor/outdoors)) // This won't apply to outdoor turfs since its assumed they don't have a ceiling anyways. + add_overlay(GLOB.no_ceiling_image, TRUE) + else + cut_overlay(GLOB.no_ceiling_image, TRUE) diff --git a/code/game/turfs/simulated/floor/floor_attackby.dm b/code/game/turfs/simulated/floor/floor_attackby.dm index 93c3ac2cd23..b45610e3c81 100644 --- a/code/game/turfs/simulated/floor/floor_attackby.dm +++ b/code/game/turfs/simulated/floor/floor_attackby.dm @@ -11,7 +11,7 @@ if(istype(C, /obj/item/stack/tile/roofing)) var/expended_tile = FALSE // To track the case. If a ceiling is built in a multiz zlevel, it also necessarily roofs it against weather - var/turf/T = GetAbove(src) + var/turf/T = above() var/obj/item/stack/tile/roofing/R = C // Patch holes in the ceiling diff --git a/code/game/turfs/simulated/floor/floor_icon.dm b/code/game/turfs/simulated/floor/floor_icon.dm index a845a98e5b3..e692882b64a 100644 --- a/code/game/turfs/simulated/floor/floor_icon.dm +++ b/code/game/turfs/simulated/floor/floor_icon.dm @@ -21,11 +21,6 @@ var/list/flooring_cache = list() if(LAZYLEN(decals)) add_overlay(decals) - // Show 'ceilingless' overlay. - var/turf/above = Above(src) - if(isopenturf(above) && !istype(src, /turf/simulated/floor/outdoors)) // This won't apply to outdoor turfs since its assumed they don't have a ceiling anyways. - add_overlay(GLOB.no_ceiling_image) - update_border_spillover() // sigh . = ..() diff --git a/code/game/turfs/simulated/wall/wall_attacks.dm b/code/game/turfs/simulated/wall/wall_attacks.dm index 4a2d2a92984..b57b0a545c5 100644 --- a/code/game/turfs/simulated/wall/wall_attacks.dm +++ b/code/game/turfs/simulated/wall/wall_attacks.dm @@ -113,7 +113,7 @@ if(istype(I, /obj/item/stack/tile/roofing)) var/expended_tile = FALSE // To track the case. If a ceiling is built in a multiz zlevel, it also necessarily roofs it against weather - var/turf/T = GetAbove(src) + var/turf/T = above() var/obj/item/stack/tile/roofing/R = I // Place plating over a wall diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 70f4b7e1426..bb6ddac50bc 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -27,7 +27,6 @@ return /turf/space/Initialize(mapload) - SHOULD_CALL_PARENT(FALSE) atom_flags |= ATOM_INITIALIZED @@ -44,10 +43,13 @@ else if(x == world.maxx || forced_dirs & EAST) edge |= EAST - if(!HasBelow(z)) + if (CONFIG_GET(flag/starlight)) + update_starlight() + + var/turf/below = below() + if(isnull(below)) return INITIALIZE_HINT_NORMAL - var/turf/below = GetBelow(src) if(isspaceturf(below)) return INITIALIZE_HINT_NORMAL @@ -55,16 +57,15 @@ if(!below.density && (A.area_flags & AREA_FLAG_EXTERNAL)) return INITIALIZE_HINT_NORMAL - if (CONFIG_GET(flag/starlight)) - update_starlight() - - return INITIALIZE_HINT_LATELOAD // oh no! we need to switch to being a different kind of turf! + return INITIALIZE_HINT_NORMAL + // todo: wtf happened there..? + // return INITIALIZE_HINT_LATELOAD // oh no! we need to switch to being a different kind of turf! /turf/space/Destroy() // Cleanup cached z_eventually_space values above us. if (above) var/turf/T = src - while ((T = GetAbove(T))) + while ((T = T.above())) T.z_eventually_space = FALSE return ..() @@ -126,7 +127,7 @@ to_chat(user, "The plating is going to need some support.") if(istype(C, /obj/item/stack/tile/roofing)) - var/turf/T = GetAbove(src) + var/turf/T = above() var/obj/item/stack/tile/roofing/R = C // Patch holes in the ceiling diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 17ab21b37ae..80f34fef987 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -161,8 +161,6 @@ Entered(AM) var/area/A = loc - if(!TURF_IS_DYNAMICALLY_LIT_UNSAFE(src)) - add_overlay(/obj/effect/fullbright) if (light_power && light_range) update_light() @@ -557,12 +555,10 @@ // open but turf wants to be outside, invert to OUTSIDE_NO). // Do we have a roof over our head? Should we care? - if(HasAbove(z)) - var/turf/top_of_stack = src - while(HasAbove(top_of_stack.z)) - top_of_stack = GetAbove(top_of_stack) - if(top_of_stack.is_open() != . || (top_of_stack.is_outside != OUTSIDE_AREA && top_of_stack.is_outside != .)) - return !. + var/turf/top_of_stack = src + while((top_of_stack = top_of_stack.above())) + if(top_of_stack.is_open() != . || (top_of_stack.is_outside != OUTSIDE_AREA && top_of_stack.is_outside != .)) + return !. /turf/proc/set_outside(new_outside, skip_weather_update = FALSE) if(is_outside != new_outside) @@ -604,6 +600,19 @@ continue . = max(., O.depth_level) +//? Multiz + +/turf/proc/update_multiz() + return + +//? Sector API + +/** + * called by planet / weather to update temperature during weather changes + */ +/turf/proc/sector_set_temperature(temperature) + return + //? Radiation /turf/proc/update_rad_insulation() diff --git a/code/game/turfs/unsimulated.dm b/code/game/turfs/unsimulated.dm index 2c5885f6eef..9b653827d58 100644 --- a/code/game/turfs/unsimulated.dm +++ b/code/game/turfs/unsimulated.dm @@ -7,10 +7,21 @@ /turf/unsimulated/Initialize(mapload) SHOULD_CALL_PARENT(FALSE) + atom_flags |= ATOM_INITIALIZED + SETUP_SMOOTHING() + + // todo: refactor this, planets are awful code + SSplanets.addWall(src) + return INITIALIZE_HINT_NORMAL +/turf/unsimulated/Destroy() + // todo: refactor this, planets are awful code + SSplanets.removeWall(src) + return ..() + /turf/unsimulated/fake_space name = "\proper space" icon = 'icons/turf/space.dmi' @@ -30,3 +41,14 @@ /turf/unsimulated/rcd_act(mob/living/user, obj/item/rcd/the_rcd, passed_mode) return FALSE + +//? Sector API + +/turf/unsimulated/sector_set_temperature(temperature) + if(temperature == src.temperature) + return + src.temperature = temperature + // Force ZAS to reconsider our connections because our temperature has changed + if(connections) + connections.erase_all() + queue_zone_update() diff --git a/code/game/turfs/unsimulated/planetary.dm b/code/game/turfs/unsimulated/planetary.dm index c9762efcb00..9a93923a4a8 100644 --- a/code/game/turfs/unsimulated/planetary.dm +++ b/code/game/turfs/unsimulated/planetary.dm @@ -10,24 +10,8 @@ alpha = 0 blocks_air = 0 // Set these to get your desired planetary atmosphere. - initial_gas_mix = GAS_STRING_STP - -/turf/unsimulated/wall/planetary/Initialize(mapload) - . = ..() - SSplanets.addWall(src) - -/turf/unsimulated/wall/planetary/Destroy() - SSplanets.removeWall(src) - return ..() + initial_gas_mix = ATMOSPHERE_USE_OUTDOORS -/turf/unsimulated/wall/planetary/proc/set_temperature(var/new_temperature) - if(new_temperature == temperature) - return - temperature = new_temperature - // Force ZAS to reconsider our connections because our temperature has changed - if(connections) - connections.erase_all() - queue_zone_update() // Normal station/earth air. /turf/unsimulated/wall/planetary/normal diff --git a/code/modules/atmospherics/environmental/turf.dm b/code/modules/atmospherics/environmental/turf.dm index c2696fc55d3..d74e3a60f27 100644 --- a/code/modules/atmospherics/environmental/turf.dm +++ b/code/modules/atmospherics/environmental/turf.dm @@ -45,7 +45,7 @@ /turf/proc/CheckAirBlock(turf/other) if(other == src) return CanAtmosPass(src, NONE) - var/d = other.z == z? get_dir(src, other) : get_dir_multiz(src, other) + var/d = other.z == z? get_dir(src, other) : vertical_dir(other) var/o = global.reverse_dir[d] return min(CanAtmosPass(other, d), other.CanAtmosPass(src, o)) diff --git a/code/modules/atmospherics/environmental/zas/controller.dm b/code/modules/atmospherics/environmental/zas/controller.dm index 1e2c42d5f13..23971c36b29 100644 --- a/code/modules/atmospherics/environmental/zas/controller.dm +++ b/code/modules/atmospherics/environmental/zas/controller.dm @@ -128,7 +128,7 @@ Class Procs: merge(A.zone, B.zone) return - var/a_to_b = given_dir || get_dir_multiz(A, B) + var/a_to_b = given_dir || A.vertical_dir(B) var/b_to_a = global.reverse_dir[a_to_b] if(!A.connections) diff --git a/code/modules/atmospherics/environmental/zas/debug.dm b/code/modules/atmospherics/environmental/zas/debug.dm index 634652c27fb..40ea525478b 100644 --- a/code/modules/atmospherics/environmental/zas/debug.dm +++ b/code/modules/atmospherics/environmental/zas/debug.dm @@ -84,15 +84,15 @@ var/image/mark = image('icons/testing/Zone.dmi', icon_state = "mark") to_chat(mob, "No air passage :x") return - var/turf/other_turf = get_step_multiz(T, direction_list[direction]) + var/turf/other_turf = T.vertical_step(direction_list[direction]) if(!istype(other_turf)) to_chat(mob, "there's no turf in that dir.") return if(!istype(other_turf, /turf/simulated)) to_chat(mob, SPAN_RED("the other turf is unsimulated.")) - var/t_block = T.CanAtmosPass(other_turf, get_dir_multiz(T, other_turf)) - var/o_block = other_turf.CanAtmosPass(T, get_dir_multiz(other_turf, T)) + var/t_block = T.CanAtmosPass(other_turf, T.vertical_dir(other_turf)) + var/o_block = other_turf.CanAtmosPass(T, other_turf.vertical_dir(T)) if(o_block == ATMOS_PASS_AIR_BLOCKED) if(t_block == ATMOS_PASS_AIR_BLOCKED) diff --git a/code/modules/atmospherics/environmental/zas/turf.dm b/code/modules/atmospherics/environmental/zas/turf.dm index be51633d6a9..e0871e96905 100644 --- a/code/modules/atmospherics/environmental/zas/turf.dm +++ b/code/modules/atmospherics/environmental/zas/turf.dm @@ -25,7 +25,7 @@ for(var/d = 1, d < 16, d *= 2) #endif - var/turf/simulated/potential = get_step_multiz(src, d) + var/turf/simulated/potential = vertical_step(d) if(!istype(potential) || !potential.has_valid_zone()) continue @@ -145,7 +145,7 @@ GLOBAL_REAL_VAR(list/gzn_check) = list(NORTH, SOUTH, EAST, WEST) for(var/d = 1, d < 16, d *= 2) #endif - var/turf/potential = get_step_multiz(src, d) + var/turf/potential = vertical_step(d) if(!potential) continue var/them_to_us = potential.CanAtmosPass(src, global.reverse_dir[d]) diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index b4d3538ed26..7804d8f33c9 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -24,6 +24,7 @@ // todo: this is an awful way to do it but it works unequip_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' + material_factoring = 0 /obj/item/clothing/gloves/get_fibers() return "material from a pair of [name]." diff --git a/code/modules/clothing/gloves/rings/_rings.dm b/code/modules/clothing/gloves/rings/_rings.dm index c7cd1f227e9..75ffe0908b4 100644 --- a/code/modules/clothing/gloves/rings/_rings.dm +++ b/code/modules/clothing/gloves/rings/_rings.dm @@ -11,3 +11,4 @@ fingerprint_chance = 100 punch_force = 2 body_cover_flags = 0 + material_factoring = 0 diff --git a/code/modules/events/meteor_strike_vr.dm b/code/modules/events/meteor_strike_vr.dm index 053198c6a15..1a2001d1795 100644 --- a/code/modules/events/meteor_strike_vr.dm +++ b/code/modules/events/meteor_strike_vr.dm @@ -31,7 +31,7 @@ /obj/effect/meteor_falling/proc/meteor_fall() var/turf/current = get_turf(src) if(istype(current, /turf/simulated/open) || istype(current, /turf/space)) - var/turf/below = GetBelow(src) + var/turf/below = current.below() if(below.density) meteor_impact() return diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm index 4f627e45a0e..5b829f4cc09 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -506,7 +506,8 @@ if(hologram) update_hologram() -/obj/item/integrated_circuit/output/holographic_projector/on_loc_moved(atom/oldloc) +/obj/item/integrated_circuit/output/holographic_projector/ext_moved(oldLoc, dir) + . = ..() if(hologram) update_hologram_position() diff --git a/code/modules/lighting/lighting_corner.dm b/code/modules/lighting/lighting_corner.dm index 902e8641af8..3e341f2db56 100644 --- a/code/modules/lighting/lighting_corner.dm +++ b/code/modules/lighting/lighting_corner.dm @@ -138,8 +138,8 @@ var/global/list/REVERSE_LIGHTING_CORNER_DIAGONAL = list(0, 0, 0, 0, 3, 4, 0, 0, #undef OVERLAY_PRESENT -#define GET_ABOVE(T) (HasAbove(T:z) ? get_step(T, UP) : null) -#define GET_BELOW(T) (HasBelow(T:z) ? get_step(T, DOWN) : null) +#define GET_ABOVE(T) (T.above()) +#define GET_BELOW(T) (T.below()) #define UPDATE_APPARENT(T, CH) T.apparent_##CH = T.self_##CH + T.below_##CH + T.ambient_##CH + T.above_ambient_##CH diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index c8e6ce4657b..548fdb20cfb 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -18,6 +18,8 @@ var/tmp/has_opaque_atom = FALSE /// If this is TRUE, an above turf's ambient light is affecting this turf. var/tmp/ambient_has_indirect = FALSE + /// we don't use fullbright overlay when dark - this is only here for stuff like level borders which are 'abstract' turfs + var/tmp/lighting_disable_fullbright = FALSE //! Record-keeping, do not touch -- that means you, admins. var/tmp/ambient_active = FALSE //! Do we have non-zero ambient light? Use [TURF_IS_AMBIENT_LIT] instead of reading this directly. @@ -40,6 +42,15 @@ datum_flags |= DF_VAR_EDITED return TRUE + if(NAMEOF(src, dynamic_lighting)) + . = ..() + if(!.) + return + if(!dynamic_lighting && !isnull(lighting_overlay)) + lighting_clear_overlay() + else if(dynamic_lighting && isnull(lighting_overlay)) + lighting_build_overlay() + return return ..() /turf/proc/set_ambient_light(color, multiplier) @@ -167,6 +178,8 @@ if (lighting_overlay.loc != src) stack_trace("Lighting overlay variable on turf [log_info_line(src)] is insane, lighting overlay actually located on [log_info_line(lighting_overlay.loc)]!") + if(!lighting_disable_fullbright) + add_overlay(/obj/effect/fullbright, TRUE) qdel(lighting_overlay, TRUE) lighting_overlay = null @@ -182,6 +195,7 @@ if (!lighting_corners_initialised || !corners) generate_missing_corners() + cut_overlay(/obj/effect/fullbright, FALSE) new /atom/movable/lighting_overlay(src, now) for (var/datum/lighting_corner/C in corners) diff --git a/code/modules/mapping/paint.dm b/code/modules/mapping/map_helpers/paint.dm similarity index 98% rename from code/modules/mapping/paint.dm rename to code/modules/mapping/map_helpers/paint.dm index b7fd1a3f904..a710d78b080 100644 --- a/code/modules/mapping/paint.dm +++ b/code/modules/mapping/map_helpers/paint.dm @@ -1,6 +1,8 @@ #define CREATE_PAINT(x, c) /obj/effect/paint/x/color=c #define CREATE_PAINT_STRIPE(x, c) /obj/effect/paint_stripe/x/color=c +// todo: why tf isn't this a map helper + /obj/effect/paint name = "coat of paint" icon = 'icons/effects/effects.dmi' diff --git a/code/modules/mapping/map_level.dm b/code/modules/mapping/map_level.dm index ddbc5f67b28..eaef8c702a5 100644 --- a/code/modules/mapping/map_level.dm +++ b/code/modules/mapping/map_level.dm @@ -18,39 +18,56 @@ var/absolute_path /// relative path. useless outside of manual maploads, as we can't parse relative path from DM yet. var/relative_path - /// are we loaded in - var/tmp/loaded = FALSE - /// our zlevel once loaded - var/tmp/z_index /// are we modified from our prototype/definition? var/tmp/modified = FALSE /// linkage enum + // todo: this is not implemented yet var/linkage = Z_LINKAGE_NORMAL /// transition enum var/transition = Z_TRANSITION_DEFAULT + /// set to FALSE if transition borders are defined via /turf/level_border, to disable trampling the turf into /turf/level_border + var/transition_trampling = TRUE /// base turf typepath for this level var/base_turf = /turf/space /// base area typepath for this level var/base_area = /area/space /// id of north zlevel - overrides linkage if set. can be set to path, autoconverts to id on new. + /// can also be set to instance - used for structs. var/link_north /// id of south zlevel - overrides linkage if set. can be set to path, autoconverts to id on new. + /// can also be set to instance - used for structs. var/link_south /// id of west zlevel - overrides linkage if set. can be set to path, autoconverts to id on new. + /// can also be set to instance - used for structs. var/link_west /// id of east zlevel - overrides linkage if set. can be set to path, autoconverts to id on new. + /// can also be set to instance - used for structs. var/link_east /// id of below zlevel - overrides linkage if set. can be set to path, autoconverts to id on new. + /// can also be set to instance - used for structs. var/link_below /// id of above zlevel - overrides linkage if set. can be set to path, autoconverts to id on new. + /// can also be set to instance - used for structs. var/link_above /// gas string / atmosphere path / atmosphere id for indoors air + /// if atmosphere path, it'll be automatically packed to ID on serialize, as we don't want to serialize paths to disk. var/air_indoors = GAS_STRING_STP /// gas string / atmosphere path / atmosphere id for outdoors air + /// if atmosphere path, it'll be automatically packed to ID on serialize, as we don't want to serialize paths to disk. var/air_outdoors = GAS_STRING_VACUUM /// load orientation - overridden if loaded as part of a /datum/map var/orientation = SOUTH + //* Loading + /// are we loaded in + var/tmp/loaded = FALSE + /// our zlevel once loaded + var/tmp/z_index + + //* Tracking + var/turfs_rebuild_count = 0 + var/transitions_rebuild_count = 0 + //* LEGACY BELOW *// var/flags = 0 // Bitflag of which *_levels lists this z should be put into. @@ -73,12 +90,6 @@ UNPACK_LINK(link_above) BLOCK_BYOND_BUG_2072419 #undef UNPACK_LINK - if(ispath(air_indoors, /datum/atmosphere)) - var/datum/atmosphere/cast_air_indoors = air_indoors - air_indoors = initial(cast_air_indoors.id) - if(ispath(air_outdoors, /datum/atmosphere)) - var/datum/atmosphere/cast_air_outdoors = air_outdoors - air_outdoors = initial(cast_air_outdoors.id) /datum/map_level/Destroy() if(loaded) @@ -108,8 +119,20 @@ .["link_east"] = link_east .["link_above"] = link_above .["link_below"] = link_below - .["air_indoors"] = air_indoors - .["air_outdoors"] = air_outdoors + + var/unpacked_air_indoors + if(ispath(air_indoors, /datum/atmosphere)) + var/datum/atmosphere/cast_air_indoors = air_indoors + // cast to id if possible, otherwise keep as type + unpacked_air_indoors = initial(cast_air_indoors.id) || air_indoors + var/unpacked_air_outdoors + if(ispath(air_outdoors, /datum/atmosphere)) + var/datum/atmosphere/cast_air_outdoors = air_outdoors + // cast to id if possible, otherwise keep as type + unpacked_air_outdoors = initial(cast_air_outdoors.id) || air_outdoors + .["air_indoors"] = unpacked_air_indoors + .["air_outdoors"] = unpacked_air_outdoors + .["orientation"] = orientation /datum/map_level/deserialize(list/data) @@ -174,22 +197,49 @@ /** * get level datum in dir + * + * if diagonal, only returns a level if both steps are consistent with each other. */ /datum/map_level/proc/level_in_dir(dir) RETURN_TYPE(/datum/map_level) + if(dir & (dir - 1)) + if(dir & (UP|DOWN)) + CRASH("unsupported operation of attempting to grab a vertical + diagonal direction.") + switch(dir) + if(NORTHWEST) + if(NORTHEAST) + if(SOUTHWEST) + if(SOUTHEAST) + else + CRASH("invalid dir: [dir]") + var/d1 = NSCOMPONENT(dir) + var/d2 = EWCOMPONENT(dir) + var/datum/map_level/l1 = level_in_dir(d1) + l1 = l1?.level_in_dir(d2) + var/datum/map_level/l2 = level_in_dir(d2) + l2 = l2?.level_in_dir(d1) + // if one side is null, we listen to the other + if(isnull(l1)) + return l2 + if(isnull(l2)) + return l1 + // if both sides are not null, we require agreement between the two + return (l1 == l2)? l1 : null switch(dir) + #define RESOLVE(X) istype(X, /datum/map_level)? X : SSmapping.keyed_levels[X] if(NORTH) - return SSmapping.keyed_levels[link_north] + return RESOLVE(link_north) if(SOUTH) - return SSmapping.keyed_levels[link_south] + return RESOLVE(link_south) if(EAST) - return SSmapping.keyed_levels[link_east] + return RESOLVE(link_east) if(WEST) - return SSmapping.keyed_levels[link_west] + return RESOLVE(link_west) if(UP) - return SSmapping.keyed_levels[link_above] + return RESOLVE(link_above) if(DOWN) - return SSmapping.keyed_levels[link_below] + return RESOLVE(link_below) + #undef RESOLVE /** * called right after we physically load in, before init @@ -226,6 +276,8 @@ /datum/map_level/proc/allow_deallocate() return TRUE +//* traits + /datum/map_level/proc/has_trait(trait) return trait in traits @@ -243,6 +295,8 @@ if(loaded) SSmapping.on_trait_del(src, trait) +//* attributes + /datum/map_level/proc/get_attribute(attribute) return attributes?[attribute] @@ -258,6 +312,187 @@ if(loaded) SSmapping.on_attribute_set(src, attribute, old, null) +//* rebuilds + +/** + * Rebuild turfs up/down of us + * This will sleep + */ +/datum/map_level/proc/rebuild_vertical_levels() + for(var/datum/map_level/L in list( + level_in_dir(UP), + level_in_dir(DOWN) + )) + L.rebuild_turfs() + +/** + * Rebuild turfs adjacent of us + * This will sleep + */ +/datum/map_level/proc/rebuild_adjacent_levels() + for(var/datum/map_level/L in list( + level_in_dir(NORTH), + level_in_dir(SOUTH), + level_in_dir(EAST), + level_in_dir(WEST) + )) + L.rebuild_transitions() + +/** + * call to rebuild all turfs for vertical multiz + * + * this will sleep + */ +/datum/map_level/proc/rebuild_turfs() + for(var/turf/T as anything in block(locate(1, 1, z_index), locate(world.maxx, world.maxy, z_index))) + T.update_multiz() + CHECK_TICK + turfs_rebuild_count++ + +/** + * call to rebuild all turfs for horizontal transitions + * + * this will sleep + */ +/datum/map_level/proc/rebuild_transitions() + switch(transition) + // do nothing + if(Z_TRANSITION_DISABLED) + // default not implemented + if(Z_TRANSITION_FORCED, Z_TRANSITION_DEFAULT, Z_TRANSITION_INVISIBLE) + var/visible = transition != Z_TRANSITION_INVISIBLE + // cardinals + if(!isnull(link_south)) + for(var/turf/T as anything in transition_turfs(SOUTH)) + T._make_transition_border(SOUTH, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(SOUTH)) + T._dispose_transition_border() + CHECK_TICK + if(!isnull(link_north)) + for(var/turf/T as anything in transition_turfs(NORTH)) + T._make_transition_border(NORTH, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(NORTH)) + T._dispose_transition_border() + CHECK_TICK + if(!isnull(link_east)) + for(var/turf/T as anything in transition_turfs(EAST)) + T._make_transition_border(EAST, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(EAST)) + T._dispose_transition_border() + CHECK_TICK + if(!isnull(link_west)) + for(var/turf/T as anything in transition_turfs(WEST)) + T._make_transition_border(WEST, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(WEST)) + T._dispose_transition_border() + CHECK_TICK + // diagonals + var/datum/map_level/resolved + resolved = level_in_dir(NORTHWEST) + if(!isnull(resolved)) + for(var/turf/T as anything in transition_turfs(NORTHWEST)) + T._make_transition_border(NORTHWEST, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(NORTHWEST)) + T._dispose_transition_border() + CHECK_TICK + resolved = level_in_dir(NORTHEAST) + if(!isnull(resolved)) + for(var/turf/T as anything in transition_turfs(NORTHEAST)) + T._make_transition_border(NORTHEAST, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(NORTHEAST)) + T._dispose_transition_border() + CHECK_TICK + resolved = level_in_dir(SOUTHWEST) + if(!isnull(resolved)) + for(var/turf/T as anything in transition_turfs(SOUTHWEST)) + T._make_transition_border(SOUTHWEST, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(SOUTHWEST)) + T._dispose_transition_border() + CHECK_TICK + resolved = level_in_dir(SOUTHEAST) + if(!isnull(resolved)) + for(var/turf/T as anything in transition_turfs(SOUTHEAST)) + T._make_transition_border(SOUTHEAST, visible) + CHECK_TICK + else + for(var/turf/T as anything in transition_turfs(SOUTHEAST)) + T._dispose_transition_border() + CHECK_TICK + transitions_rebuild_count++ + +/** + * destroys all transitions on border turfs + * call when changing level size + * + * this will sleep + */ +/datum/map_level/proc/destroy_transitions() + for(var/turf/T as anything in transition_turfs()) + T._dispose_transition_border() + CHECK_TICK + +/** + * get transition turfs + * + * @params + * * dir - direction; if null, we grab all, including diagonals + */ +/datum/map_level/proc/transition_turfs(dir) + switch(dir) + if(null) + . = ( + block(locate(1, 1, z_index), locate(world.maxx, 1, z_index)) + \ + block(locate(1, world.maxy, z_index), locate(world.maxx, world.maxy, z_index)) + \ + block(locate(1, 2, z_index), locate(1, world.maxy - 2, z_index)) + \ + block(locate(world.maxx, 2, z_index), locate(world.maxx, world.maxy - 2, z_index)) + ) + if(NORTH) + . = block(locate(2, world.maxy, z_index), locate(world.maxx - 1, world.maxy, z_index)) + if(SOUTH) + . = block(locate(2, 1, z_index), locate(world.maxx - 1, 1, z_index)) + if(EAST) + . = block(locate(world.maxx, 2, z_index), locate(world.maxx, world.maxy - 1, z_index)) + if(WEST) + . = block(locate(1, 2, z_index), locate(1, world.maxy - 1, z_index)) + if(NORTHEAST) + . = list(locate(world.maxx, world.maxy, z_index)) + if(NORTHWEST) + . = list(locate(1, world.maxy, z_index)) + if(SOUTHEAST) + . = list(locate(world.maxx, 1, z_index)) + if(SOUTHWEST) + . = list(locate(1, 1, z_index)) + else + CRASH("what?") + if(transition_trampling) + return + var/list/transformed = list() + for(var/turf/level_border/border in .) + transformed += border + return transformed + +/** + * get all turfs + */ +/datum/map_level/proc/level_turfs() + return Z_TURFS(z_index) + +//* subtypes + /** * dynamically generated levels should use this */ diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 3032f2e38ba..0d83f513dd2 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -204,7 +204,7 @@ var/cleaned = 0 for(var/turf/T as anything in cleaning) for(var/atom/movable/AM as anything in T) - if(AM.atom_flags & ATOM_ABSTRACT) + if(AM.atom_flags & (ATOM_ABSTRACT | ATOM_NONWORLD)) continue qdel(AM) ++cleaned diff --git a/code/modules/mapping/multiz_helpers.dm b/code/modules/mapping/multiz_helpers.dm deleted file mode 100644 index adffaa4a159..00000000000 --- a/code/modules/mapping/multiz_helpers.dm +++ /dev/null @@ -1,42 +0,0 @@ -/proc/get_step_multiz(ref, dir) - if(dir & UP) - dir &= ~UP - . = GetAbove(ref) - if(!.) - return - return get_step(., dir) - // return get_step(SSmapping.get_turf_above(get_turf(ref)), dir) - if(dir & DOWN) - dir &= ~DOWN - . = GetBelow(ref) - if(!.) - return - return get_step(., dir) - // return get_step(SSmapping.get_turf_below(get_turf(ref)), dir) - return get_step(ref, dir) - -/proc/get_dir_multiz(turf/us, turf/them) - us = get_turf(us) - them = get_turf(them) - if(!us || !them) - return NONE - if(us.z == them.z) - return get_dir(us, them) - else - var/turf/T = us.above() - var/dir = NONE - if(T && (T.z == them.z)) - dir = UP - else - T = us.below() - if(T && (T.z == them.z)) - dir = DOWN - else - return get_dir(us, them) - return (dir | get_dir(us, them)) - -/turf/proc/above() - return get_step_multiz(src, UP) - -/turf/proc/below() - return get_step_multiz(src, DOWN) diff --git a/code/modules/maps/overmap/space/centcom.dm b/code/modules/maps/overmap/space/centcom.dm index 58fd0612eed..500d9027e36 100644 --- a/code/modules/maps/overmap/space/centcom.dm +++ b/code/modules/maps/overmap/space/centcom.dm @@ -47,9 +47,6 @@ "NDV Quicksilver" = list("specops_hangar") ) -/obj/landmark/map_data/centcom - height = 1 - // ERT Shuttle can be found at '/maps/overmap/shuttles/specialops.dm' // EXCLUSIVE NAV POINT FOR DOCKING INSIDE (ERT SHUTTLE ONLY) diff --git a/code/modules/maps/overmap/space/talon/talon.dm b/code/modules/maps/overmap/space/talon/talon.dm index 562cac66e18..256250109e8 100644 --- a/code/modules/maps/overmap/space/talon/talon.dm +++ b/code/modules/maps/overmap/space/talon/talon.dm @@ -19,9 +19,6 @@ announce_channel = "Talon" on_store_name = "ITV Talon Robotic Storage" -/obj/landmark/map_data/talon - height = 2 - /////////////////////////// //// The Talon /obj/overmap/entity/visitable/ship/talon diff --git a/code/modules/maps/overmap/space/trade_station/trade_station.dm b/code/modules/maps/overmap/space/trade_station/trade_station.dm index b3957e13022..789889039e6 100644 --- a/code/modules/maps/overmap/space/trade_station/trade_station.dm +++ b/code/modules/maps/overmap/space/trade_station/trade_station.dm @@ -58,9 +58,6 @@ announce_channel = "Trade" on_store_name = "Beruang Trading Corp Storage" -/obj/landmark/map_data/trade - height = 1 - // Their shuttle // Shuttle landmarks. Need to be removed at some point and generic waypoints used diff --git a/code/modules/maps/templates/shuttles/admin_spawn/ert.dm b/code/modules/maps/templates/shuttles/admin_spawn/ert.dm index bb2afc52dbd..0522b1998d4 100644 --- a/code/modules/maps/templates/shuttles/admin_spawn/ert.dm +++ b/code/modules/maps/templates/shuttles/admin_spawn/ert.dm @@ -114,9 +114,6 @@ initial_generic_waypoints = list("ert_ship_near_fore", "ert_ship_near_aft", "ert_ship_near_port", "ert_ship_near_star", "ert_ship_port", "ert_ship_star", "ert_ship_base_dock", "omship_spawn_ert_lander") // initial_restricted_waypoints = list("NRV Von Braun's Bay" = list("omship_spawn_ert_lander")) -/obj/landmark/map_data/ert_ship - height = 1 - /obj/effect/shuttle_landmark/premade/ert_ship_port name = "NRV Von Braun - Port Airlock" landmark_tag = "ert_ship_port" diff --git a/code/modules/maps/templates/shuttles/admin_spawn/manta_mercship.dm b/code/modules/maps/templates/shuttles/admin_spawn/manta_mercship.dm index 659fe9df7ac..6b42ccc0d94 100644 --- a/code/modules/maps/templates/shuttles/admin_spawn/manta_mercship.dm +++ b/code/modules/maps/templates/shuttles/admin_spawn/manta_mercship.dm @@ -133,9 +133,6 @@ initial_generic_waypoints = list("manta_ship_near_fore", "manta_ship_near_aft", "manta_ship_near_port", "manta_ship_near_star", "manta_ship_port", "manta_ship_star", "manta_ship_base_dock", "omship_spawn_manta_lander") // initial_restricted_waypoints = list("Mercenary Cruiser's Bay" = list("omship_spawn_manta_lander")) -/obj/landmark/map_data/manta_ship - height = 1 - /obj/effect/shuttle_landmark/premade/manta_ship_port name = "SAARE Cruiser - Port Airlock" landmark_tag = "manta_ship_port" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index f7f5610b7e9..66f36778875 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -1,4 +1,5 @@ /**********************Mineral deposits**************************/ +CREATE_STANDARD_TURFS(/turf/unsimulated/mineral) /turf/unsimulated/mineral name = "impassable rock" icon = 'icons/turf/walls.dmi' diff --git a/code/modules/mining/shelter_atoms.dm b/code/modules/mining/shelter_atoms.dm index 59eb8f1da0a..3424352228b 100644 --- a/code/modules/mining/shelter_atoms.dm +++ b/code/modules/mining/shelter_atoms.dm @@ -49,7 +49,7 @@ var/turf/deploy_location = get_turf(src) var/status = template.check_deploy(deploy_location) - var/turf/above_location = GetAbove(deploy_location) + var/turf/above_location = deploy_location.above() if(above_location && status == SHELTER_DEPLOY_ALLOWED) status = template.check_deploy(above_location) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm index 27a0d6a5cd5..e4ce752d382 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/demon/demon.dm @@ -65,7 +65,7 @@ /mob/living/simple_mob/vore/demon/zMove(direction) if(shifted_out) - var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) + var/turf/destination = get_vertical_step(src, direction) if(destination) forceMove(destination) return TRUE diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm index f0763a8c527..cd42c0628b6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm @@ -103,7 +103,7 @@ /mob/living/simple_mob/shadekin/zMove(direction) if(ability_flags & AB_PHASE_SHIFTED) - var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) + var/turf/destination = get_vertical_step(src, direction) if(destination) forceMove(destination) return TRUE diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 3fdd8a484f7..f19128feca7 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -536,7 +536,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM) /// The base miss chance for the different defence zones var/list/global/base_miss_chance = list( BP_HEAD = 40, - BP_CHEST = 10, + BP_TORSO = 10, BP_GROIN = 20, BP_L_LEG = 30, BP_R_LEG = 30, @@ -554,7 +554,7 @@ var/list/global/base_miss_chance = list( */ var/list/global/organ_rel_size = list( BP_HEAD = 25, - BP_CHEST = 70, + BP_TORSO = 70, BP_GROIN = 30, BP_L_LEG = 25, BP_R_LEG = 25, diff --git a/code/modules/mob/observer/observer.dm b/code/modules/mob/observer/observer.dm index d5de0fbe283..c9a222f1975 100644 --- a/code/modules/mob/observer/observer.dm +++ b/code/modules/mob/observer/observer.dm @@ -6,7 +6,7 @@ cached_multiplicative_slowdown = 0.5 // 20 tiles per second invisibility = INVISIBILITY_OBSERVER see_invisible = SEE_INVISIBLE_OBSERVER - atom_flags = ATOM_ABSTRACT | ATOM_HEAR + atom_flags = ATOM_NONWORLD | ATOM_HEAR /// Our darksight var/datum/vision/baseline/vision_innate = /datum/vision/baseline/observer diff --git a/code/modules/multiz/atoms.dm b/code/modules/multiz/atoms.dm index 149f6e1540d..9aa67f7f61c 100644 --- a/code/modules/multiz/atoms.dm +++ b/code/modules/multiz/atoms.dm @@ -1,3 +1,6 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + /** * returns if an atom can enter our tile from a multiz move * diff --git a/code/modules/multiz/basic.dm b/code/modules/multiz/basic.dm deleted file mode 100644 index 27f96735f2a..00000000000 --- a/code/modules/multiz/basic.dm +++ /dev/null @@ -1,64 +0,0 @@ -// If you add a more comprehensive system, just untick this file. -var/global/list/z_levels = list() // Each bit re... haha just kidding this is a list of bools now - -// Thankfully, no bitwise magic is needed here. -/proc/GetAbove(atom/atom) - var/turf/turf = get_turf(atom) - if(!turf) - return null - return HasAbove(turf.z) ? get_step(turf, UP) : null - -/proc/GetBelow(atom/atom) - var/turf/turf = get_turf(atom) - if(!turf) - return null - return HasBelow(turf.z) ? get_step(turf, DOWN) : null - -/turf/proc/Above() - return HasAbove(z)? get_step(src, UP) : null - -/turf/proc/Below() - return HasBelow(z)? get_step(src, DOWN) : null - - - -GLOBAL_LIST_EMPTY(connected_z_cache) - -/proc/GetConnectedZlevels(z) - . = list(z) - // Traverse up and down to get the multiz stack. - for(var/level = z, HasBelow(level), level--) - . |= level-1 - for(var/level = z, HasAbove(level), level++) - . |= level+1 - - // Check stack for any laterally connected neighbors. - for(var/tz in .) - var/obj/level_data/level = GLOB.levels_by_z["[tz]"] - if(level) - level.find_connected_levels(.) - - -/proc/AreConnectedZLevels(zA, zB) - if (zA <= 0 || zB <= 0 || zA > world.maxz || zB > world.maxz) - return FALSE - if (zA == zB) - return TRUE - if (length(GLOB.connected_z_cache) >= zA && length(GLOB.connected_z_cache[zA]) >= zB) - return GLOB.connected_z_cache[zA][zB] - var/list/levels = GetConnectedZlevels(zA) - var/list/new_entry = new(world.maxz) - for (var/entry in levels) - new_entry[entry] = TRUE - if (GLOB.connected_z_cache.len < zA) - GLOB.connected_z_cache.len = zA - GLOB.connected_z_cache[zA] = new_entry - return new_entry[zB] - -/proc/get_zstep(ref, dir) - if(dir == UP) - . = GetAbove(ref) - else if (dir == DOWN) - . = GetBelow(ref) - else - . = get_step(ref, dir) diff --git a/code/modules/multiz/basic_legacy.dm b/code/modules/multiz/basic_legacy.dm new file mode 100644 index 00000000000..ea5465d4944 --- /dev/null +++ b/code/modules/multiz/basic_legacy.dm @@ -0,0 +1,23 @@ + +GLOBAL_LIST_EMPTY(connected_z_cache) + +// todo: legacy code +/proc/GetConnectedZlevels(z) + return SSmapping.get_z_stack(z) + +// todo: legacy code +/proc/AreConnectedZLevels(zA, zB) + if (zA <= 0 || zB <= 0 || zA > world.maxz || zB > world.maxz) + return FALSE + if (zA == zB) + return TRUE + if (length(GLOB.connected_z_cache) >= zA && length(GLOB.connected_z_cache[zA]) >= zB) + return GLOB.connected_z_cache[zA][zB] + var/list/levels = GetConnectedZlevels(zA) + var/list/new_entry = new(world.maxz) + for (var/entry in levels) + new_entry[entry] = TRUE + if (GLOB.connected_z_cache.len < zA) + GLOB.connected_z_cache.len = zA + GLOB.connected_z_cache[zA] = new_entry + return new_entry[zB] diff --git a/code/modules/multiz/core.dm b/code/modules/multiz/core.dm new file mode 100644 index 00000000000..5d16359cd4b --- /dev/null +++ b/code/modules/multiz/core.dm @@ -0,0 +1,39 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + +/** + * This is the basic get multiz step. + * It will not look across lateral transitions, only up/down. + */ +/proc/get_vertical_step(atom/A, dir) + if((dir & (UP|DOWN)) == 0) + return get_step(A, dir) + var/turf/T = get_turf(A) + if(dir & UP) + return get_step(locate(T.x, T.y, SSmapping.cached_level_up[T.z]), dir & ~UP) + if(dir & DOWN) + return get_step(locate(T.x, T.y, SSmapping.cached_level_down[T.z]), dir & ~DOWN) + +/** + * Basic multiz get dir + * Will not look across lateral transitions, only directly up/down. + * + * returns null if B is not on the same level or on a level directly above/below to A. + */ +/proc/get_vertical_dir(atom/A, atom/B) + var/turf/AT = get_turf(A) + var/turf/BT = get_turf(B) + if(AT.z == BT.z) + return get_dir(AT, BT) + else if(BT.z == SSmapping.cached_level_up[AT.z]) + return get_dir(AT, BT) | UP + else if(BT.z == SSmapping.cached_level_down[AT.z]) + return get_dir(AT, BT) | DOWN + +/** + * This is the full get multiz step. + * It will look across lateral transitions and other struct magic. + */ +/proc/get_virtual_step(atom/A, dir) + var/turf/T = get_turf(A) + return SSmapping.get_virtual_step(T, dir) diff --git a/code/modules/multiz/falling.dm b/code/modules/multiz/falling.dm index c04ffffc772..7e671e085d1 100644 --- a/code/modules/multiz/falling.dm +++ b/code/modules/multiz/falling.dm @@ -1,3 +1,6 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + /** * Stops a thing from falling through this * diff --git a/code/modules/multiz/ladder.dm b/code/modules/multiz/ladder.dm deleted file mode 100644 index 92efc89112e..00000000000 --- a/code/modules/multiz/ladder.dm +++ /dev/null @@ -1,148 +0,0 @@ -/obj/structure/ladder - name = "ladder" - desc = "A ladder. You can climb it up and down." - icon_state = "ladder01" - icon = 'icons/obj/structures/multiz.dmi' - density = 0 - opacity = 0 - anchored = 1 - - var/allowed_directions = DOWN - var/obj/structure/ladder/target_up - var/obj/structure/ladder/target_down - - var/climb_time = 2 SECONDS - -/obj/structure/ladder/Initialize(mapload) - . = ..() - // the upper will connect to the lower - if(allowed_directions & DOWN) //we only want to do the top one, as it will initialize the ones before it. - for(var/obj/structure/ladder/L in GetBelow(src)) - if(L.allowed_directions & UP) - target_down = L - L.target_up = src - return - update_icon() - -/obj/structure/ladder/Destroy() - if(target_down) - target_down.target_up = null - target_down = null - if(target_up) - target_up.target_down = null - target_up = null - return ..() - -/obj/structure/ladder/attackby(obj/item/C as obj, mob/user as mob) - attack_hand(user) - return - -/obj/structure/ladder/attack_hand(mob/user, list/params) - . = ..() - if(.) - return - var/mob/living/M = user - if(!istype(M)) - return - if(!M.may_climb_ladders(src)) - return - - var/obj/structure/ladder/target_ladder = getTargetLadder(M) - if(!target_ladder) - return - if(M.loc != loc) - step_towards(M, loc) - if(M.loc != loc) - to_chat(M, "You fail to reach \the [src].") - return - - climbLadder(M, target_ladder) - -/obj/structure/ladder/attack_ghost(var/mob/M) - . = ..() - var/target_ladder = getTargetLadder(M) - if(target_ladder) - M.locationTransitForceMove(get_turf(target_ladder), 1, allow_buckled = TRUE, allow_pulled = FALSE, allow_grabbed = TRUE) - -/obj/structure/ladder/attack_robot(var/mob/M) - attack_hand(M) - -/obj/structure/ladder/proc/getTargetLadder(var/mob/M) - if((!target_up && !target_down) || (target_up && !istype(target_up.loc, /turf) || (target_down && !istype(target_down.loc,/turf)))) - to_chat(M, "\The [src] is incomplete and can't be climbed.") - return - if(target_down && target_up) - var/direction = alert(M,"Do you want to go up or down?", "Ladder", "Up", "Down", "Cancel") - - if(direction == "Cancel") - return - - if(!M.may_climb_ladders(src)) - return - - switch(direction) - if("Up") - return target_up - if("Down") - return target_down - else - return target_down || target_up - -/mob/proc/may_climb_ladders(var/ladder) - if(!Adjacent(ladder)) - to_chat(src, "You need to be next to \the [ladder] to start climbing.") - return FALSE - if(incapacitated()) - to_chat(src, "You are physically unable to climb \the [ladder].") - return FALSE - return TRUE - -/mob/observer/ghost/may_climb_ladders(var/ladder) - return TRUE - -/obj/structure/ladder/proc/climbLadder(var/mob/M, var/obj/target_ladder) - var/direction = (target_ladder == target_up ? "up" : "down") - M.visible_message("\The [M] begins climbing [direction] \the [src]!", - "You begin climbing [direction] \the [src]!", - "You hear the grunting and clanging of a metal ladder being used.") - - target_ladder.audible_message("You hear something coming [direction] \the [src]") - - if(do_after(M, climb_time, src)) - var/turf/T = get_turf(target_ladder) - for(var/atom/A in T) - if(!A.CanPass(M, M.loc, 1.5, 0)) - to_chat(M, "\The [A] is blocking \the [src].") - return FALSE - return M.forceMove(T) - -/obj/structure/ladder/CanPass(obj/mover, turf/source, height, airflow) - . = ..() - return airflow || !density - -/obj/structure/ladder/update_icon() - icon_state = "ladder[!!(allowed_directions & UP)][!!(allowed_directions & DOWN)]" - -/obj/structure/ladder/up - allowed_directions = UP - icon_state = "ladder10" - -/obj/structure/ladder/updown - allowed_directions = UP|DOWN - icon_state = "ladder11" - - -// Meme Variants, Snake Eater. Used on Rift for that 3 meter difference between the base z level and the one above it -Bloop - -/obj/structure/ladder/snake_eater - name = "long ladder" - desc = "A ladder. You can climb it up and down. This one looks really long, what a thrill..." - climb_time = 120 SECONDS - -/obj/structure/ladder/snake_eater/up - allowed_directions = UP - icon_state = "ladder10" - -/obj/structure/ladder/snake_eater/updown - allowed_directions = UP|DOWN - icon_state = "ladder11" diff --git a/code/modules/multiz/level_data.dm b/code/modules/multiz/level_data.dm deleted file mode 100644 index 4558c34e151..00000000000 --- a/code/modules/multiz/level_data.dm +++ /dev/null @@ -1,86 +0,0 @@ -#define ZLEVEL_STATION (1<<0) -#define ZLEVEL_ADMIN (1<<1) -#define ZLEVEL_CONTACT (1<<2) -#define ZLEVEL_PLAYER (1<<3) -#define ZLEVEL_SEALED (1<<4) - -GLOBAL_LIST_EMPTY(levels_by_z) -GLOBAL_LIST_EMPTY(levels_by_id) - -/obj/level_data - // simulated = FALSE - - var/my_z - var/level_id - var/list/connects_to - var/level_flags - - -INITIALIZE_IMMEDIATE(/obj/level_data) -/obj/level_data/Initialize() - . = ..() - my_z = z - forceMove(null) - if(GLOB.levels_by_z["[my_z]"]) - stack_trace("Duplicate level data created for z[z].") - GLOB.levels_by_z["[my_z]"] = src - if(!level_id) - level_id = "leveldata_[my_z]_[sequential_id(/obj/level_data)]" - if(level_id in GLOB.levels_by_id) - stack_trace("Duplicate level_id '[level_id]' for z[my_z].") - else - GLOB.levels_by_id[level_id] = src - - if(level_flags & ZLEVEL_STATION) - (LEGACY_MAP_DATUM).station_levels |= my_z - if(level_flags & ZLEVEL_ADMIN) - (LEGACY_MAP_DATUM).admin_levels |= my_z - if(level_flags & ZLEVEL_CONTACT) - (LEGACY_MAP_DATUM).contact_levels |= my_z - if(level_flags & ZLEVEL_PLAYER) - (LEGACY_MAP_DATUM).player_levels |= my_z - if(level_flags & ZLEVEL_SEALED) - (LEGACY_MAP_DATUM).sealed_levels |= my_z - -/obj/level_data/Destroy(force) - if(force) - new type(locate(round(world.maxx/2), round(world.maxy/2), my_z)) - return ..() - return QDEL_HINT_LETMELIVE - -/obj/level_data/proc/find_connected_levels(list/found) - for(var/other_id in connects_to) - var/obj/level_data/neighbor = GLOB.levels_by_id[other_id] - neighbor.add_connected_levels(found) - -/obj/level_data/proc/add_connected_levels(list/found) - . = found - if((my_z in found)) - return - LAZYADD(found, my_z) - if(!length(connects_to)) - return - for(var/other_id in connects_to) - var/obj/level_data/neighbor = GLOB.levels_by_id[other_id] - neighbor.add_connected_levels(found) - -// Mappable subtypes. -/obj/level_data/main_level - name = "Main Station Level" - level_flags = (ZLEVEL_STATION|ZLEVEL_CONTACT|ZLEVEL_PLAYER) - -/obj/level_data/admin_level - name = "Admin Level" - level_flags = (ZLEVEL_ADMIN|ZLEVEL_SEALED) - -/obj/level_data/player_level - name = "Player Level" - level_flags = (ZLEVEL_CONTACT|ZLEVEL_PLAYER) - -BLOCK_BYOND_BUG_2072419 - -#undef ZLEVEL_STATION -#undef ZLEVEL_ADMIN -#undef ZLEVEL_CONTACT -#undef ZLEVEL_PLAYER -#undef ZLEVEL_SEALED diff --git a/code/modules/multiz/map_data.dm b/code/modules/multiz/map_data.dm deleted file mode 100644 index 6d48ad47e82..00000000000 --- a/code/modules/multiz/map_data.dm +++ /dev/null @@ -1,43 +0,0 @@ -// TODO: Convert to /obj/abstract/map_data @Zandario -/obj/landmark/map_data - name = "Map Data" - desc = "An unknown location." - - /// The number of Z-Levels in the map. - var/height = 1 - /// What the map edge should be formed with. (null = world.turf) - var/turf/edge_type - - /// An associate list of door types/list of allowed turfs. - VAR_PROTECTED/UT_turf_exceptions_by_door_type - -#ifdef UNIT_TEST -/// Do not use this in production; for unit tests ONLY. -/obj/landmark/map_data/proc/get_UT_turf_exceptions_by_door_type() - return UT_turf_exceptions_by_door_type -#else -/obj/landmark/map_data/proc/get_UT_turf_exceptions_by_door_type() - CRASH("map_data.get_UT_turf_exceptions_by_door_type() called in production code!") -#endif - -// If the height is more than 1, we mark all contained levels as connected. -// This is in New because it is an auxiliary effect specifically needed pre-init. -/obj/landmark/map_data/New(turf/loc, _height) - ..() - if(!istype(loc)) // Using loc.z is safer when using the maploader and New. - return - if(_height) - height = _height - for(var/i = (loc.z - height + 1) to (loc.z-1)) - if (z_levels.len There is nothing of interest in this direction.") /mob/observer/eye/zMove(direction) - var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) + var/turf/destination = (direction == UP) ? get_vertical_step(src, UP) : get_vertical_step(src, DOWN) if(destination) setLoc(destination) else @@ -187,7 +187,7 @@ if(!isturf(loc)) return - var/turf/below = GetBelow(src) + var/turf/below = get_vertical_step(src, DOWN) if(!below) return @@ -279,16 +279,6 @@ /obj/mecha/can_fall() return TRUE -/obj/item/pipe/can_fall() - . = ..() - - if(anchored) - return FALSE - - var/turf/below = GetBelow(src) - if((locate(/obj/structure/disposalpipe/up) in below) || (locate(/obj/machinery/atmospherics/pipe/zpipe/up) in below)) - return FALSE - /mob/can_fall() if(buckled) return FALSE // buckled falls instead diff --git a/code/modules/multiz/hoist.dm b/code/modules/multiz/structures/hoist.dm similarity index 97% rename from code/modules/multiz/hoist.dm rename to code/modules/multiz/structures/hoist.dm index 5ade15effd6..993a42465a9 100644 --- a/code/modules/multiz/hoist.dm +++ b/code/modules/multiz/structures/hoist.dm @@ -240,7 +240,8 @@ collapse_kit() /obj/structure/hoist/proc/can_move_dir(direction) - var/turf/dest = direction == UP ? GetAbove(source_hook) : GetBelow(source_hook) + var/turf/move_src = get_turf(src) + var/turf/dest = direction == UP ? move_src.above() : move_src.below() switch(direction) if (UP) if (!isopenturf(dest)) // can't move into a solid tile @@ -258,7 +259,8 @@ var/can = can_move_dir(direction) if (!can) return 0 - var/turf/move_dest = direction == UP ? GetAbove(source_hook) : GetBelow(source_hook) + var/turf/move_src = get_turf(src) + var/turf/move_dest = direction == UP ? move_src.above() : move_src.below() source_hook.forceMove(move_dest) if (!ishoisting) return 1 diff --git a/code/modules/multiz/ladder_assembly_vr.dm b/code/modules/multiz/structures/ladder.dm similarity index 50% rename from code/modules/multiz/ladder_assembly_vr.dm rename to code/modules/multiz/structures/ladder.dm index 747b0afddca..2785bd4cd1e 100644 --- a/code/modules/multiz/ladder_assembly_vr.dm +++ b/code/modules/multiz/structures/ladder.dm @@ -1,3 +1,156 @@ +//* Ladders + +/obj/structure/ladder + name = "ladder" + desc = "A ladder. You can climb it up and down." + icon_state = "ladder01" + icon = 'icons/obj/structures/multiz.dmi' + density = 0 + opacity = 0 + anchored = 1 + + var/allowed_directions = DOWN + var/obj/structure/ladder/target_up + var/obj/structure/ladder/target_down + + var/climb_time = 2 SECONDS + +/obj/structure/ladder/Initialize(mapload) + . = ..() + // the upper will connect to the lower + if(allowed_directions & DOWN) //we only want to do the top one, as it will initialize the ones before it. + for(var/obj/structure/ladder/L in get_vertical_step(src, DOWN)) + if(L.allowed_directions & UP) + target_down = L + L.target_up = src + return + update_icon() + +/obj/structure/ladder/Destroy() + if(target_down) + target_down.target_up = null + target_down = null + if(target_up) + target_up.target_down = null + target_up = null + return ..() + +/obj/structure/ladder/attackby(obj/item/C as obj, mob/user as mob) + attack_hand(user) + return + +/obj/structure/ladder/attack_hand(mob/user, list/params) + . = ..() + if(.) + return + var/mob/living/M = user + if(!istype(M)) + return + if(!M.may_climb_ladders(src)) + return + + var/obj/structure/ladder/target_ladder = getTargetLadder(M) + if(!target_ladder) + return + if(M.loc != loc) + step_towards(M, loc) + if(M.loc != loc) + to_chat(M, "You fail to reach \the [src].") + return + + climbLadder(M, target_ladder) + +/obj/structure/ladder/attack_ghost(var/mob/M) + . = ..() + var/target_ladder = getTargetLadder(M) + if(target_ladder) + M.locationTransitForceMove(get_turf(target_ladder), 1, allow_buckled = TRUE, allow_pulled = FALSE, allow_grabbed = TRUE) + +/obj/structure/ladder/attack_robot(var/mob/M) + attack_hand(M) + +/obj/structure/ladder/proc/getTargetLadder(var/mob/M) + if((!target_up && !target_down) || (target_up && !istype(target_up.loc, /turf) || (target_down && !istype(target_down.loc,/turf)))) + to_chat(M, "\The [src] is incomplete and can't be climbed.") + return + if(target_down && target_up) + var/direction = alert(M,"Do you want to go up or down?", "Ladder", "Up", "Down", "Cancel") + + if(direction == "Cancel") + return + + if(!M.may_climb_ladders(src)) + return + + switch(direction) + if("Up") + return target_up + if("Down") + return target_down + else + return target_down || target_up + +/mob/proc/may_climb_ladders(var/ladder) + if(!Adjacent(ladder)) + to_chat(src, "You need to be next to \the [ladder] to start climbing.") + return FALSE + if(incapacitated()) + to_chat(src, "You are physically unable to climb \the [ladder].") + return FALSE + return TRUE + +/mob/observer/ghost/may_climb_ladders(var/ladder) + return TRUE + +/obj/structure/ladder/proc/climbLadder(var/mob/M, var/obj/target_ladder) + var/direction = (target_ladder == target_up ? "up" : "down") + M.visible_message("\The [M] begins climbing [direction] \the [src]!", + "You begin climbing [direction] \the [src]!", + "You hear the grunting and clanging of a metal ladder being used.") + + target_ladder.audible_message("You hear something coming [direction] \the [src]") + + if(do_after(M, climb_time, src)) + var/turf/T = get_turf(target_ladder) + for(var/atom/A in T) + if(!A.CanPass(M, M.loc, 1.5, 0)) + to_chat(M, "\The [A] is blocking \the [src].") + return FALSE + return M.forceMove(T) + +/obj/structure/ladder/CanPass(obj/mover, turf/source, height, airflow) + . = ..() + return airflow || !density + +/obj/structure/ladder/update_icon() + icon_state = "ladder[!!(allowed_directions & UP)][!!(allowed_directions & DOWN)]" + +/obj/structure/ladder/up + allowed_directions = UP + icon_state = "ladder10" + +/obj/structure/ladder/updown + allowed_directions = UP|DOWN + icon_state = "ladder11" + + +// Meme Variants, Snake Eater. Used on Rift for that 3 meter difference between the base z level and the one above it -Bloop + +/obj/structure/ladder/snake_eater + name = "long ladder" + desc = "A ladder. You can climb it up and down. This one looks really long, what a thrill..." + climb_time = 120 SECONDS + +/obj/structure/ladder/snake_eater/up + allowed_directions = UP + icon_state = "ladder10" + +/obj/structure/ladder/snake_eater/updown + allowed_directions = UP|DOWN + icon_state = "ladder11" + +//* Ladder Assemblies + #define CONSTRUCTION_UNANCHORED 0 #define CONSTRUCTION_WRENCHED 1 #define CONSTRUCTION_WELDED 2 @@ -82,7 +235,7 @@ var/obj/structure/ladder_assembly/above for(var/direction in list(DOWN, UP)) - var/turf/T = get_zstep(src, direction) + var/turf/T = get_vertical_step(src, direction) if(!T) continue var/obj/structure/ladder_assembly/LA = locate(/obj/structure/ladder_assembly, T) if(!LA) continue diff --git a/code/modules/multiz/pipes.dm b/code/modules/multiz/structures/pipes.dm similarity index 98% rename from code/modules/multiz/pipes.dm rename to code/modules/multiz/structures/pipes.dm index e91378cd97d..bf5d119634a 100644 --- a/code/modules/multiz/pipes.dm +++ b/code/modules/multiz/structures/pipes.dm @@ -1,3 +1,5 @@ +// todo: this should go in atmospherics. + //////////////////////////// // parent class for pipes // //////////////////////////// @@ -141,7 +143,7 @@ node1 = target break - var/turf/above = GetAbove(src) + var/turf/above = get_vertical_step(src, UP) if(above) for(var/obj/machinery/atmospherics/target in above) if(istype(target, /obj/machinery/atmospherics/pipe/zpipe/down)) @@ -179,7 +181,7 @@ node1 = target break - var/turf/below = GetBelow(src) + var/turf/below = get_vertical_step(src, DOWN) if(below) for(var/obj/machinery/atmospherics/target in below) if(istype(target, /obj/machinery/atmospherics/pipe/zpipe/up)) diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures/stairs.dm similarity index 91% rename from code/modules/multiz/structures.dm rename to code/modules/multiz/structures/stairs.dm index 7d4050c4ab4..6c3816481ad 100644 --- a/code/modules/multiz/structures.dm +++ b/code/modules/multiz/structures/stairs.dm @@ -37,7 +37,7 @@ // Case 1: In working order if(B.top == T && M.bottom == B && T.bottom == B && \ - get_turf(M) == get_step(B, B.dir) && O == GetAbove(B) && get_turf(T) == GetAbove(M)) + get_turf(M) == get_step(B, B.dir) && O == get_vertical_step(B, UP) && get_turf(T) == get_vertical_step(M, UP)) return TRUE // Case 2: The top is linked to someone else @@ -75,7 +75,7 @@ /obj/structure/stairs/proc/common_prechecks(atom/movable/AM, atom/oldLoc) if(!isturf(AM.loc)) // maybe don't yank things out that're being picked up huh return - if(oldLoc && ((get_turf(oldLoc) == get_destination_turf()) || (get_turf(oldLoc) == GetBelow(src)))) + if(oldLoc && ((get_turf(oldLoc) == get_destination_turf()) || (get_turf(oldLoc) == get_vertical_step(src, DOWN)))) return FALSE if(isobserver(AM)) return FALSE @@ -107,7 +107,7 @@ /obj/structure/stairs/bottom/Initialize(mapload) . = ..() - if(!GetAbove(src)) + if(!get_vertical_step(src, UP)) warning("Stair created without level above: ([loc.x], [loc.y], [loc.z])") return INITIALIZE_HINT_QDEL @@ -127,19 +127,19 @@ // In the case where we're provided all the pieces, just try connecting them. // In order: all exist, they are appropriately adjacent, and they can connect if(istype(B) && istype(M) && istype(T) && istype(O) && \ - B.Adjacent(M) && (GetBelow(O) == get_turf(B)) && T.Adjacent(O) && \ + B.Adjacent(M) && (get_vertical_step(O, DOWN) == get_turf(B)) && T.Adjacent(O) && \ ..()) return TRUE // If we're already configured, just check those else if(istype(top) && istype(middle)) - O = locate(/turf/simulated/open) in GetAbove(src) + O = locate(/turf/simulated/open) in get_vertical_step(src, UP) if(..(src, middle, top, O)) return TRUE var/turf/B2 = get_step(src, src.dir) - O = GetAbove(src) - var/turf/T2 = GetAbove(B2) + O = get_vertical_step(src, UP) + var/turf/T2 = get_vertical_step(B2, UP) // T1 is the same regardless of B1's dir, so we can enforce it here if(!istype(O)) @@ -156,7 +156,7 @@ // Else, we have to look in other directions for(var/dir in GLOB.cardinal - src.dir) B2 = get_step(src, dir) - T2 = GetAbove(B2) + T2 = get_vertical_step(B2, UP) if(!istype(B2) || !istype(T2)) continue @@ -199,7 +199,7 @@ /obj/structure/stairs/middle/Initialize(mapload) . = ..() - if(!GetAbove(src)) + if(!get_vertical_step(src, UP)) warning("Stair created without level above: ([loc.x], [loc.y], [loc.z])") return INITIALIZE_HINT_QDEL @@ -219,18 +219,18 @@ // In the case where we're provided all the pieces, just try connecting them. // In order: all exist, they are appropriately adjacent, and they can connect if(istype(B) && istype(M) && istype(T) && istype(O) && \ - B.Adjacent(M) && (GetBelow(O) == B.loc) && T.Adjacent(O) && \ + B.Adjacent(M) && (get_vertical_step(O, DOWN) == B.loc) && T.Adjacent(O) && \ ..()) return TRUE else if(istype(top) && istype(bottom)) - O = locate(/turf/simulated/open) in GetAbove(bottom) + O = locate(/turf/simulated/open) in get_vertical_step(bottom, UP) if(..(bottom, src, top, O)) return TRUE var/turf/B1 = get_step(src, turn(src.dir, 180)) - O = GetAbove(B1) - var/turf/T2 = GetAbove(src) + O = get_vertical_step(B1, UP) + var/turf/T2 = get_vertical_step(src, UP) B = locate(/obj/structure/stairs/bottom) in B1 T = locate(/obj/structure/stairs/top) in T2 @@ -247,7 +247,7 @@ // Else, we have to look in other directions for(var/dir in GLOB.cardinal - src.dir) B1 = get_step(src, turn(dir, 180)) - O = GetAbove(B1) + O = get_vertical_step(B1, UP) if(!istype(B1) || !istype(O)) continue @@ -282,7 +282,7 @@ /obj/structure/stairs/top/Initialize(mapload) . = ..() - if(!GetBelow(src)) + if(!get_vertical_step(src, DOWN)) warning("Stair created without level below: ([loc.x], [loc.y], [loc.z])") return INITIALIZE_HINT_QDEL @@ -302,19 +302,19 @@ // In the case where we're provided all the pieces, just try connecting them. // In order: all exist, they are appropriately adjacent, and they can connect if(istype(B) && istype(M) && istype(T) && istype(O) && \ - B.Adjacent(M) && (GetBelow(O) == B.loc) && T.Adjacent(O) && \ + B.Adjacent(M) && (get_vertical_step(O, DOWN) == B.loc) && T.Adjacent(O) && \ (. = ..())) return else if(istype(middle) && istype(bottom)) - O = locate(/turf/simulated/open) in GetAbove(bottom) + O = locate(/turf/simulated/open) in get_vertical_step(bottom, UP) if(..(bottom, middle, src, O)) return TRUE O = get_step(src, turn(src.dir, 180)) - var/turf/B1 = GetBelow(O) - var/turf/B2 = GetBelow(src) + var/turf/B1 = get_vertical_step(O, DOWN) + var/turf/B2 = get_vertical_step(src, DOWN) B = locate(/obj/structure/stairs/bottom) in B1 M = locate(/obj/structure/stairs/middle) in B2 @@ -331,7 +331,7 @@ // Else, we have to look in other directions for(var/dir in GLOB.cardinal - src.dir) O = get_step(src, turn(dir, 180)) - B1 = GetBelow(O) + B1 = get_vertical_step(O, DOWN) if(!istype(B1) || !istype(O)) continue @@ -372,8 +372,8 @@ ..() var/turf/B1 = get_step(get_turf(src), turn(dir, 180)) var/turf/B2 = get_turf(src) - var/turf/T1 = GetAbove(B1) - var/turf/T2 = GetAbove(B2) + var/turf/T1 = get_vertical_step(B1, UP) + var/turf/T2 = get_vertical_step(B2, UP) if(!istype(B1) || !istype(B2)) warning("Stair created at invalid loc: ([loc.x], [loc.y], [loc.z])") diff --git a/code/modules/multiz/structures_vr.dm b/code/modules/multiz/structures/vorestation_portals.dm similarity index 100% rename from code/modules/multiz/structures_vr.dm rename to code/modules/multiz/structures/vorestation_portals.dm diff --git a/code/modules/multiz/turf.dm b/code/modules/multiz/turf.dm index 0448e3e4464..f3b45acfb6e 100644 --- a/code/modules/multiz/turf.dm +++ b/code/modules/multiz/turf.dm @@ -1,3 +1,6 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2023 Citadel Station developers. *// + /** * WARNING: This proc is unique. Read the doc here, especially the return value. * Check if an atom can move into us from either above or below @@ -57,10 +60,10 @@ // we assume dir is up/down because why wouldn't it be var/turf/dest if(dir == UP) - dest = Above() + dest = above() return dest && (z_pass_out_obstruction(mover, UP, dest) || dest.z_pass_in_obstruction(mover, DOWN, src)) else if(dir == DOWN) - dest = Below() + dest = below() return dest && (z_pass_out_obstruction(mover, DOWN, dest) || dest.z_pass_in_obstruction(mover, UP, src)) CRASH("What?") @@ -75,10 +78,10 @@ // we assume dir is up/down because why wouldn't it be var/turf/dest if(dir == UP) - dest = Above() + dest = above() return dest && !z_pass_out_obstruction(mover, UP, dest) && !dest.z_pass_in_obstruction(mover, DOWN, src) else if(dir == DOWN) - dest = Below() + dest = below() return dest && !z_pass_out_obstruction(mover, DOWN, dest) && !dest.z_pass_in_obstruction(mover, UP, src) CRASH("What?") @@ -113,15 +116,53 @@ /turf/check_impact(atom/movable/falling_atom) return TRUE -/turf/proc/multiz_turf_del(turf/T, dir) - SEND_SIGNAL(src, COMSIG_TURF_MULTIZ_DEL, T, dir) - -/turf/proc/multiz_turf_new(turf/T, dir) - SEND_SIGNAL(src, COMSIG_TURF_MULTIZ_NEW, T, dir) - /turf/smooth_icon() . = ..() if(SSzmimic.initialized) - var/turf/simulated/open/above = GetAbove(src) + var/turf/simulated/open/above = above() if(istype(above)) above.queue() + +//* lookups + +/turf/proc/above() + RETURN_TYPE(/turf) + return locate(x, y, SSmapping.cached_level_up[z]) + +/turf/proc/below() + RETURN_TYPE(/turf) + return locate(x, y, SSmapping.cached_level_down[z]) + +/** + * This is the basic get multiz step. + * It will not look across lateral transitions, only up/down. + */ +/turf/proc/vertical_step(dir) + RETURN_TYPE(/turf) + if((dir & (UP|DOWN)) == 0) + return get_step(src, dir) + else if(dir & UP) + return get_step(locate(x, y, SSmapping.cached_level_up[z]), dir & ~(UP)) + else if(dir & DOWN) + return get_step(locate(x, y, SSmapping.cached_level_down[z]), dir & ~(DOWN)) + CRASH("how did we get here?") + +/** + * Basic multiz get dir + * Will not look across lateral transitions, only directly up/down. + */ +/turf/proc/vertical_dir(turf/other) + if(other.z == z) + return get_dir(src, other) + else if(other.z == SSmapping.cached_level_up[z]) + return get_dir(src, other) | UP + else if(other.z == SSmapping.cached_level_down[z]) + return get_dir(src, other) | DOWN + +/** + * This is the full get multiz step. + * It will look across lateral transitions and other struct magic. + */ +/turf/proc/virtual_step(dir) + RETURN_TYPE(/turf) + return SSmapping.get_virtual_step(src, dir) diff --git a/code/modules/multiz/open_turf.dm b/code/modules/multiz/turfs/open.dm similarity index 92% rename from code/modules/multiz/open_turf.dm rename to code/modules/multiz/turfs/open.dm index 8d28b0d83ad..33e1ad1d90f 100644 --- a/code/modules/multiz/open_turf.dm +++ b/code/modules/multiz/turfs/open.dm @@ -15,7 +15,7 @@ /turf/simulated/open/Initialize(mapload) . = ..() icon_state = "" - ASSERT(HasBelow(z)) + ASSERT(!isnull(below())) queue() /turf/simulated/open/Entered(atom/movable/mover) @@ -47,7 +47,7 @@ . = ..() if(distance <= 2) var/depth = 1 - for(var/turf/T = GetBelow(src); (istype(T) && T.is_open()); T = GetBelow(T)) + for(var/turf/T = below(); (istype(T) && T.is_open()); T = T.below()) depth += 1 to_chat(user, "It is about [depth] level\s deep.") @@ -56,8 +56,7 @@ return TRUE /turf/simulated/open/is_space() - var/turf/below = GetBelow(src) - return !below || below.is_space() + return below()?.is_space() /turf/simulated/open/is_open() return TRUE @@ -67,7 +66,7 @@ /turf/simulated/open/is_safe_to_enter(mob/living/L) if(L.can_fall()) - if(!locate(/obj/structure/stairs) in GetBelow(src)) + if(!locate(/obj/structure/stairs) in below()) return FALSE return ..() diff --git a/code/modules/multiz/zmimic/mimic_common.dm b/code/modules/multiz/zmimic/mimic_common.dm index 1d08c05a6b1..e4adeb6d93d 100644 --- a/code/modules/multiz/zmimic/mimic_common.dm +++ b/code/modules/multiz/zmimic/mimic_common.dm @@ -3,9 +3,9 @@ return /turf/proc/is_above_space() - var/turf/T = GetBelow(src) + var/turf/T = below() while (T && (T.mz_flags & MZ_MIMIC_BELOW)) - T = GetBelow(T) + T = T.below() return isspaceturf(T) /turf/update_appearance(updates) diff --git a/code/modules/multiz/zmimic/mimic_movable.dm b/code/modules/multiz/zmimic/mimic_movable.dm index b4bd3815acb..43a9c075e8a 100644 --- a/code/modules/multiz/zmimic/mimic_movable.dm +++ b/code/modules/multiz/zmimic/mimic_movable.dm @@ -4,12 +4,13 @@ /// Movable-level Z-Mimic flags. This uses ZMM_* flags, not ZM_* flags. var/zmm_flags = NONE -/atom/movable/forceMove(atom/dest) - . = ..(dest) +/atom/movable/doMove(atom/destination) + . = ..(destination) if (. && bound_overlay) // The overlay will handle cleaning itself up on non-openspace turfs. - if (isturf(dest)) - bound_overlay.forceMove(get_step(src, UP)) + if (isturf(destination)) + var/turf/current = get_turf(src) + bound_overlay.doMove(current.above) if (bound_overlay && dir != bound_overlay.dir) bound_overlay.setDir(dir) else // Not a turf, so we need to destroy immediately instead of waiting for the destruction timer to proc. @@ -21,7 +22,8 @@ return if (bound_overlay) - bound_overlay.forceMove(get_step(src, UP)) + var/turf/current = get_turf(src) + bound_overlay.doMove(current.above) // forceMove could've deleted our overlay if (bound_overlay && bound_overlay.dir != dir) bound_overlay.setDir(dir) @@ -77,7 +79,7 @@ // This is an abstract object, we don't care about the move stack or throwing events. /atom/movable/openspace/Move() if (bound_overlay) - bound_overlay.forceMove(get_step(src, UP)) + bound_overlay.forceMove(get_vertical_step(src, UP)) // forceMove could've deleted our overlay if (bound_overlay && bound_overlay.dir != dir) bound_overlay.setDir(dir) @@ -193,7 +195,7 @@ SHOULD_CALL_PARENT(FALSE) . = associated_atom.examine(arglist(args)) // just pass all the args to the copied atom -/atom/movable/openspace/mimic/forceMove(turf/dest) +/atom/movable/openspace/mimic/doMove(atom/destination) . = ..() if (MOVABLE_IS_BELOW_ZTURF(associated_atom)) if (destruction_timer) diff --git a/code/modules/multiz/zmimic/mimic_turf.dm b/code/modules/multiz/zmimic/mimic_turf.dm index da5a2414332..f4a025cac96 100644 --- a/code/modules/multiz/zmimic/mimic_turf.dm +++ b/code/modules/multiz/zmimic/mimic_turf.dm @@ -55,7 +55,7 @@ CRASH("Attempt to enable Z-mimic on already-enabled turf!") shadower = new(src) SSzmimic.openspace_turfs += 1 - var/turf/under = GetBelow(src) + var/turf/under = below() if (under) below = under below.above = src diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 0bdbbca8b21..942f7b03227 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -238,7 +238,7 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list( O.show_message("[user] cuts the cable.", 1) if(d1 == DOWN || d2 == DOWN) - var/turf/turf = GetBelow(src) + var/turf/turf = get_vertical_step(src, DOWN) if(turf) for(var/obj/structure/cable/c in turf) if(c.d1 == UP || c.d2 == UP) @@ -364,7 +364,8 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list( if(!(d1 == direction || d2 == direction)) //if the cable is not pointed in this direction, do nothing return - var/turf/TB = get_zstep(src, direction) + var/turf/us = get_turf(src) + var/turf/TB = us.vertical_step(direction) for(var/obj/structure/cable/C in TB) @@ -440,7 +441,7 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list( if(cable_dir == 0) continue var/reverse = global.reverse_dir[cable_dir] - T = get_zstep(src, cable_dir) + T = get_vertical_step(src, cable_dir) if(T) for(var/obj/structure/cable/C in T) if(C.d1 == reverse || C.d2 == reverse) @@ -718,7 +719,7 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list( put_cable(F, user, end_dir, dirn) if(end_dir == DOWN) - put_cable(GetBelow(F), user, UP, 0) + put_cable(F.below(), user, UP, 0) to_chat(user, "You slide some cable downward.") /obj/item/stack/cable_coil/proc/put_cable(turf/simulated/F, mob/user, d1, d2) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index ddc0d7b1746..d41c9d9fa27 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -990,7 +990,7 @@ var/obj/structure/disposalpipe/P if(nextdir == 12) - T = GetAbove(src) + T = get_vertical_step(src, UP) if(!T) H.forceMove(loc) return @@ -1040,7 +1040,7 @@ var/obj/structure/disposalpipe/P if(nextdir == 11) - T = GetBelow(src) + T = get_vertical_step(src, DOWN) if(!T) H.forceMove(src.loc) return diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 01ba2d32746..1048bab6de7 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -126,7 +126,7 @@ + \ ++ \ +++
" - if(HasAbove(src.z) || HasBelow(src.z)) // Won't show up on maps lacking MultiZ support. + if(Z_HAS_ABOVE(src.z) || Z_HAS_BELOW(src.z)) // Won't show up on maps lacking MultiZ support. t += "Vertical Shielding (restart required): \ - \ [z_range] Vertical Range \ @@ -287,8 +287,8 @@ if(z_range) var/i = z_range - while(HasAbove(T.z) && i) - T = GetAbove(T) + while(Z_HAS_ABOVE(T.z) && i) + T = T.above() i-- if(istype(T)) out += get_shielded_turfs_on_z_level(T) @@ -296,8 +296,8 @@ T = get_turf(src) i = z_range - while(HasBelow(T.z) && i) - T = GetBelow(T) + while(Z_HAS_BELOW(T.z) && i) + T = T.below() i-- if(istype(T)) out += get_shielded_turfs_on_z_level(T) diff --git a/code/modules/shieldgen/shield_generator.dm b/code/modules/shieldgen/shield_generator.dm index 1c991f98941..169fcecce17 100644 --- a/code/modules/shieldgen/shield_generator.dm +++ b/code/modules/shieldgen/shield_generator.dm @@ -663,32 +663,16 @@ // Returns a list of turfs from which a field will propagate. If multi-Z mode is enabled, this will return a "column" of turfs above and below the generator. /obj/machinery/power/shield_generator/proc/get_base_turfs() - var/list/turfs = list() var/turf/T = get_turf(src) if(!istype(T)) return - turfs.Add(T) - // Multi-Z mode is disabled if(!check_flag(MODEFLAG_MULTIZ)) - return turfs - - while(HasAbove(T.z)) - T = GetAbove(T) - if(istype(T)) - turfs.Add(T) - - T = get_turf(src) - - while(HasBelow(T.z)) - T = GetBelow(T) - if(istype(T)) - turfs.Add(T) - - return turfs + return list(T) + return SSmapping.get_turfs_within_stack(T) // Starts fully charged /obj/machinery/power/shield_generator/charged/Initialize(mapload) diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index 8a134e4038c..c1add76a05a 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -49,7 +49,7 @@ for(var/turf/T in A.contents) // inject ceiling if(ceiling_type) - var/turf/above = GetAbove(T) + var/turf/above = T.above() if(above && !(above.loc in shuttle_area)) above.PlaceBelowLogicalBottom(ceiling_type, CHANGETURF_INHERIT_AIR | CHANGETURF_PRESERVE_OUTDOORS) // inject floor @@ -325,9 +325,9 @@ var/list/powernets = list() for(var/area/A in shuttle_area) // If there was a zlevel above our origin and we own the ceiling, erase our ceiling now we're leaving - if(ceiling_type && HasAbove(current_location.z)) + if(ceiling_type && Z_HAS_ABOVE(current_location.z)) for(var/turf/TO in A.contents) - var/turf/TA = GetAbove(TO) + var/turf/TA = TO.above() TA.ScrapeFromLogicalBottom(CHANGETURF_INHERIT_AIR | CHANGETURF_PRESERVE_OUTDOORS, ceiling_type) if(knockdown) for(var/mob/living/M in A) @@ -352,10 +352,10 @@ current_location = destination // If there's a zlevel above our destination, paint in a ceiling on it so we retain our air - if(ceiling_type && HasAbove(current_location.z)) + if(ceiling_type && Z_HAS_ABOVE(current_location.z)) for(var/area/A in shuttle_area) for(var/turf/TD in A.contents) - var/turf/TA = GetAbove(TD) + var/turf/TA = TD.above() if(TA.loc in shuttle_area) continue TA.PlaceBelowLogicalBottom(ceiling_type, CHANGETURF_INHERIT_AIR | CHANGETURF_PRESERVE_OUTDOORS) diff --git a/code/modules/ventcrawl/ventcrawl_multiz.dm b/code/modules/ventcrawl/ventcrawl_multiz.dm index cf2739f951e..9d67dc69370 100644 --- a/code/modules/ventcrawl/ventcrawl_multiz.dm +++ b/code/modules/ventcrawl/ventcrawl_multiz.dm @@ -3,7 +3,10 @@ set desc = "Climb up through a pipe." set category = "Abilities" set src = usr.loc - var/obj/machinery/atmospherics/target = check_ventcrawl(GetAbove(loc)) + var/turf/T = loc + if(!istype(T)) + return + var/obj/machinery/atmospherics/target = check_ventcrawl(T.above()) if(target) ventcrawl_to(usr, target, UP) /obj/machinery/atmospherics/pipe/zpipe/down/verb/ventcrawl_move_down() @@ -11,7 +14,10 @@ set desc = "Climb down through a pipe." set category = "Abilities" set src = usr.loc - var/obj/machinery/atmospherics/target = check_ventcrawl(GetBelow(loc)) + var/turf/T = loc + if(!istype(T)) + return + var/obj/machinery/atmospherics/target = check_ventcrawl(T.below()) if(target) ventcrawl_to(usr, target, DOWN) /obj/machinery/atmospherics/pipe/zpipe/proc/check_ventcrawl(var/turf/target) diff --git a/maps/REGEXING_MAP_PORTS.md b/maps/REGEXING_MAP_PORTS.md index 3cddc389184..8d652992596 100644 --- a/maps/REGEXING_MAP_PORTS.md +++ b/maps/REGEXING_MAP_PORTS.md @@ -49,3 +49,10 @@ Apply regexes in this order: `\td1 = 16;\n\td2 = 0;\n\ticon_state = "16-0"`-`\ticon_state = "16-0"` // 32-x (side-going-down) `\td1 = 32;\n\td2 = (1|2|4|8);\n\ticon_state = "32-\1"`-`\ticon_state = "32-$1"` + +## Selective + +// Map portals have been replaced with transition border components +// Only do this to map portals that are actually borders. +// Maps can use them for other purposes, too. +`\(\n/obj/effect/map_effect/portal[a-z_A-Z/]*\{\n(\t*[a-zA-Z0-9 \t=_";]+\n)*\t*\},`-`(` diff --git a/maps/euthenia/levels/deck4.dmm b/maps/euthenia/levels/deck4.dmm index 47a86a77754..07d93f4f8ae 100644 --- a/maps/euthenia/levels/deck4.dmm +++ b/maps/euthenia/levels/deck4.dmm @@ -8165,7 +8165,6 @@ /turf/simulated/floor/tiled, /area/rnd/research/testingrange) "Yw" = ( -/obj/landmark/map_data/euthenia, /turf/space, /area/space) "Yx" = ( diff --git a/maps/generic/map_data.dm b/maps/generic/map_data.dm index 27f0ec4a5cc..165463859be 100644 --- a/maps/generic/map_data.dm +++ b/maps/generic/map_data.dm @@ -1,27 +1,7 @@ // These specify how many z levels are in a map. Consoladating them here for map compiling ease - Bloop -// Tether -/obj/landmark/map_data/virgo3b - height = 6 - /obj/overmap/entity/visitable/sector/virgo3b // Just a placeholder for when the map isnt loaded -// Triumph -/obj/landmark/map_data/triumph - height = 4 - -// Lythios -/obj/landmark/map_data/lythios43c - height = 6 - -/obj/landmark/map_data/west_plains - height = 4 - -/** Euthenia */ - -/obj/landmark/map_data/euthenia - height = 5 - // See beach.dm for more details on this. Placeholder for now to stop compiling issues -Bloop /obj/away_mission_init/beachcave name = "away mission initializer - beachcave" diff --git a/maps/generic/misc.dm b/maps/generic/misc.dm index d9a98415fe8..df4cfe92d06 100644 --- a/maps/generic/misc.dm +++ b/maps/generic/misc.dm @@ -38,7 +38,7 @@ /obj/machinery/smartfridge/chemistry/chemvator/down/Initialize(mapload) // /obj/machinery/smartfridge/chemistry/chemvator/down/Initialize(mapload) // Triumph variant had initialize at mapload. Dont know why, leaving this here for reference -Bloop . = ..() - var/obj/machinery/smartfridge/chemistry/chemvator/above = locate(/obj/machinery/smartfridge/chemistry/chemvator,get_zstep(src,UP)) + var/obj/machinery/smartfridge/chemistry/chemvator/above = locate(/obj/machinery/smartfridge/chemistry/chemvator) in get_vertical_step(src, UP) if(istype(above)) above.attached = src attached = above diff --git a/maps/map_levels/140x140/talon/talon2.dmm b/maps/map_levels/140x140/talon/talon2.dmm index bd445b243e5..e7ee7c96a3f 100644 --- a/maps/map_levels/140x140/talon/talon2.dmm +++ b/maps/map_levels/140x140/talon/talon2.dmm @@ -1420,7 +1420,6 @@ /turf/simulated/floor/plating, /area/talon/maintenance/decktwo_starboard) "qd" = ( -/obj/landmark/map_data/talon, /turf/space, /area/space) "qr" = ( diff --git a/maps/rift/levels/rift-01-underground3.dmm b/maps/rift/levels/rift-01-underground3.dmm index e7de9ee33e8..c486064ee9d 100644 --- a/maps/rift/levels/rift-01-underground3.dmm +++ b/maps/rift/levels/rift-01-underground3.dmm @@ -83,9 +83,6 @@ /area/quartermaster/mining_airlock) "eW" = ( /obj/effect/zone_divider, -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/underground/under1) "fs" = ( @@ -206,9 +203,6 @@ "ln" = ( /obj/effect/zone_divider, /obj/effect/zone_divider, -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/underground/under1) "lH" = ( @@ -319,11 +313,6 @@ /turf/simulated/floor/holofloor/tiled/dark, /area/turbolift/rmine/under3) "rZ" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 4; - name = "center_to_westbase"; - portal_id = "westbasestep" - }, /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/underground/under1) "sc" = ( @@ -398,9 +387,6 @@ /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/underground/under1) "wN" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/underground/under1) "wV" = ( @@ -765,9 +751,6 @@ /turf/simulated/floor/tiled/steel_grid, /area/quartermaster/mining_airlock) "SW" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/outdoors/gravsnow/lythios43c, /area/rift/surfacebase/underground/under1) "Tr" = ( diff --git a/maps/rift/levels/rift-02-underground2.dmm b/maps/rift/levels/rift-02-underground2.dmm index d1485869566..c1e1eab0ca8 100644 --- a/maps/rift/levels/rift-02-underground2.dmm +++ b/maps/rift/levels/rift-02-underground2.dmm @@ -7808,9 +7808,6 @@ /turf/simulated/floor/tiled/techfloor, /area/rnd/secure_storage/critical/vault2) "yT" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/sky/depths/lythios43c, /area/rift/surfacebase/underground/under2) "yU" = ( @@ -10959,11 +10956,6 @@ /turf/simulated/floor/tiled/white, /area/rnd/secure_storage/lower) "Lg" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 4; - name = "center_to_westdeep"; - portal_id = "westdeepstep" - }, /turf/simulated/floor/sky/depths/lythios43c, /area/rift/surfacebase/underground/under2) "Li" = ( diff --git a/maps/rift/levels/rift-03-underground1.dmm b/maps/rift/levels/rift-03-underground1.dmm index 44cbe520380..f10000d25cf 100644 --- a/maps/rift/levels/rift-03-underground1.dmm +++ b/maps/rift/levels/rift-03-underground1.dmm @@ -5700,9 +5700,6 @@ /turf/simulated/floor/plating, /area/maintenance/elevator) "sI" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/lythios43c/indoors, /area/rift/surfacebase/underground/under1) "sJ" = ( @@ -6285,11 +6282,6 @@ /turf/simulated/floor/plating, /area/maintenance/engineering/upper) "uJ" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 4; - name = "center_to_westcave"; - portal_id = "westcavestep" - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/underground/under1) "uM" = ( @@ -7466,9 +7458,6 @@ /turf/simulated/floor/plating, /area/maintenance/engineering) "yu" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /obj/structure/catwalk/plank, /turf/simulated/open/lythios43c, /area/rift/surfacebase/underground/under1) @@ -10217,9 +10206,6 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/rift/station/fighter_bay/hangar) "It" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/underground/under1) "Iv" = ( @@ -12468,9 +12454,6 @@ /turf/simulated/floor/tiled, /area/rnd/secure_storage/upper) "Qc" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /obj/structure/railing/grey{ dir = 1 }, @@ -12608,9 +12591,6 @@ /turf/simulated/floor, /area/storage/tech) "QJ" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/wall/r_wall/prepainted, /area/rift/surfacebase/underground/under1) "QM" = ( @@ -12673,9 +12653,6 @@ /turf/simulated/floor/tiled, /area/engineering/atmos) "QZ" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /obj/structure/catwalk, /turf/simulated/open/lythios43c, /area/rift/surfacebase/underground/under1) @@ -13357,9 +13334,6 @@ /turf/simulated/floor, /area/storage/tech) "TQ" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /obj/structure/railing, /turf/simulated/open/lythios43c, /area/rift/surfacebase/underground/under1) diff --git a/maps/rift/levels/rift-04-surface1.dmm b/maps/rift/levels/rift-04-surface1.dmm index fc91214874e..441fbf41646 100644 --- a/maps/rift/levels/rift-04-surface1.dmm +++ b/maps/rift/levels/rift-04-surface1.dmm @@ -5673,9 +5673,6 @@ icon_state = "4-8" }, /obj/structure/railing, -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/lythios43c, /area/rift/surfacebase/outside/outside1) "dLp" = ( @@ -11389,9 +11386,6 @@ /turf/simulated/floor/plating, /area/maintenance/cargo) "hqG" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/floor/tiled/steel_grid/lythios43c, /area/rift/surfacebase/outside/outside1) "hqO" = ( @@ -12666,11 +12660,6 @@ /turf/simulated/floor/wood, /area/maintenance/starboard) "ieX" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 4; - name = "center_to_westplain"; - portal_id = "westplainstep" - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/outside1) "ieZ" = ( @@ -13583,9 +13572,6 @@ /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/outside/outside1) "iFU" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /obj/structure/railing, /obj/effect/floor_decal/steeldecal/steel_decals10{ dir = 6 @@ -22023,9 +22009,6 @@ /turf/simulated/floor/tiled/steel, /area/quartermaster/hallway) "nNX" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/outside1) "nOq" = ( @@ -24114,9 +24097,6 @@ /turf/simulated/floor/lythios43c, /area/rift/surfacebase/outside/outside1) "oZW" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /obj/effect/floor_decal/steeldecal/steel_decals10{ dir = 9 }, @@ -36653,9 +36633,6 @@ /area/rnd/xenobiology/xenoflora) "wCM" = ( /obj/structure/railing, -/obj/effect/map_effect/portal/line/side_a{ - dir = 4 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/outside1) "wDd" = ( diff --git a/maps/rift/levels/rift-06-surface3.dmm b/maps/rift/levels/rift-06-surface3.dmm index 04f3bdbcb5b..b7284889d5c 100644 --- a/maps/rift/levels/rift-06-surface3.dmm +++ b/maps/rift/levels/rift-06-surface3.dmm @@ -1360,7 +1360,6 @@ /turf/simulated/floor/tiled/techmaint, /area/rift/surfaceeva/aa/cliff_south) "aen" = ( -/obj/landmark/map_data/lythios43c, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/outside3) "aep" = ( diff --git a/maps/rift/levels/rift-07-west_base.dmm b/maps/rift/levels/rift-07-west_base.dmm index d604a99d469..2a72adcd645 100644 --- a/maps/rift/levels/rift-07-west_base.dmm +++ b/maps/rift/levels/rift-07-west_base.dmm @@ -259,11 +259,6 @@ /turf/simulated/wall, /area/rift/surfacebase/outside/west_base) "mb" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 8; - name = "westbase_to_center"; - portal_id = "westbasestep" - }, /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/outside/west_base) "my" = ( @@ -308,9 +303,6 @@ /turf/simulated/mineral/floor/icerock/lythios43c/indoors/ignore_cavegen, /area/rift/surfacebase/outside/west_base) "ns" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/floor/outdoors/snow/lythios43c, /area/rift/surfacebase/outside/west_base) "nO" = ( @@ -931,9 +923,6 @@ /turf/simulated/floor/tiled/techfloor/grid/lythios43c/indoors, /area/rift/facility/interior/underground3) "TM" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/floor/outdoors/gravsnow/lythios43c, /area/rift/surfacebase/outside/west_base) "TT" = ( diff --git a/maps/rift/levels/rift-08-west_deep.dmm b/maps/rift/levels/rift-08-west_deep.dmm index 2a1adf710b7..83a4421b7d7 100644 --- a/maps/rift/levels/rift-08-west_deep.dmm +++ b/maps/rift/levels/rift-08-west_deep.dmm @@ -811,11 +811,6 @@ /turf/simulated/floor/tiled/steel/lythios43c, /area/rift/facility/interior/underground2) "il" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 8; - name = "westdeep_to_center"; - portal_id = "westdeepstep" - }, /turf/simulated/floor/sky/depths/west/lythios43c, /area/rift/surfacebase/outside/west_deep) "iq" = ( @@ -5484,9 +5479,6 @@ /turf/simulated/floor/reinforced, /area/gateway) "Yw" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/floor/sky/depths/west/lythios43c, /area/rift/surfacebase/outside/west_deep) "YA" = ( diff --git a/maps/rift/levels/rift-09-west_caves.dmm b/maps/rift/levels/rift-09-west_caves.dmm index 5aa08179f42..40298ba1ab8 100644 --- a/maps/rift/levels/rift-09-west_caves.dmm +++ b/maps/rift/levels/rift-09-west_caves.dmm @@ -1295,9 +1295,6 @@ /area/rift/geothermal) "pA" = ( /obj/structure/catwalk/plank, -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west_caves) "pB" = ( @@ -1747,11 +1744,6 @@ /turf/simulated/mineral/floor/icerock/lythios43c/indoors/ignore_cavegen, /area/rift/surfacebase/outside/west_caves) "uD" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 8; - name = "westcave_to_center"; - portal_id = "westcavestep" - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west_caves) "uJ" = ( @@ -2424,9 +2416,6 @@ dir = 1 }, /obj/structure/catwalk/plank, -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west_caves) "Cv" = ( @@ -2901,9 +2890,6 @@ /turf/simulated/floor/tiled/steel_dirty/lythios43c/indoors, /area/outpost/mining_main/outpost) "GI" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west_caves) "GN" = ( @@ -3462,9 +3448,6 @@ /turf/simulated/mineral/floor/icerock/lythios43c/indoors/ignore_cavegen, /area/rift/surfacebase/outside/west_caves/submap_seedzone) "Ot" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /obj/structure/catwalk, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west_caves) @@ -4009,9 +3992,6 @@ /turf/simulated/floor/lythios43c, /area/rift/surfacebase/outside/west_caves) "Uz" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /obj/structure/railing, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west_caves) @@ -4187,9 +4167,6 @@ /turf/simulated/floor, /area/rnd/outpost/maintenance) "VS" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/wall/r_wall, /area/rift/surfacebase/outside/west_caves) "VU" = ( diff --git a/maps/rift/levels/rift-10-west_plains.dmm b/maps/rift/levels/rift-10-west_plains.dmm index 6d29a0c0478..d3c1182a4be 100644 --- a/maps/rift/levels/rift-10-west_plains.dmm +++ b/maps/rift/levels/rift-10-west_plains.dmm @@ -1138,14 +1138,6 @@ /obj/machinery/door/firedoor/glass, /turf/simulated/floor, /area/rnd/outpost/mixing) -"fo" = ( -/obj/landmark/map_data/west_plains, -/turf/unsimulated/wall/planetary/lythios43c{ - desc = "Glacial permafrost, compacted harder than stone."; - icon_state = "icerock-dark"; - name = "glacier wall" - }, -/area/rift/surfacebase/outside/west) "fq" = ( /obj/effect/floor_decal/industrial/warning/dust, /obj/structure/railing, @@ -2060,9 +2052,6 @@ /turf/simulated/floor, /area/rnd/outpost/atmos) "ji" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/floor/tiled/steel_grid/lythios43c, /area/rift/surfacebase/outside/west) "jm" = ( @@ -2803,9 +2792,6 @@ icon_state = "4-8" }, /obj/structure/railing, -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/floor/lythios43c, /area/rift/surfacebase/outside/west) "mL" = ( @@ -3711,9 +3697,6 @@ /obj/effect/floor_decal/steeldecal/steel_decals10{ dir = 10 }, -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/floor/tiled/steel_grid/lythios43c, /area/rift/surfacebase/outside/west) "rb" = ( @@ -4917,9 +4900,6 @@ /turf/simulated/floor/tiled/monotile, /area/rift/exterior/nuketown/interior) "we" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west) "wg" = ( @@ -5762,9 +5742,6 @@ /area/rnd/outpost/anomaly_lab) "zL" = ( /obj/structure/railing, -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /turf/simulated/open/lythios43c, /area/rift/surfacebase/outside/west) "zM" = ( @@ -6658,9 +6635,6 @@ /obj/effect/floor_decal/steeldecal/steel_decals10{ dir = 6 }, -/obj/effect/map_effect/portal/line/side_b{ - dir = 8 - }, /obj/structure/railing, /turf/simulated/floor/tiled/steel_grid/lythios43c, /area/rift/surfacebase/outside/west) @@ -8518,14 +8492,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/rnd/outpost/anomaly_lab/airlock) -"Nw" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 8; - name = "westplain_to_center"; - portal_id = "westplainstep" - }, -/turf/simulated/open/lythios43c, -/area/rift/surfacebase/outside/west) "Nx" = ( /obj/structure/barricade/cutout/fluke, /turf/simulated/floor/outdoors/snow/lythios43c, @@ -10765,9 +10731,6 @@ }, /turf/simulated/floor/tiled/steel_dirty/lythios43c/indoors, /area/rift/facility/exterior/shuttle) -"Yd" = ( -/turf/simulated/open/lythios43c, -/area/rift/surfacebase/outside/west) "Yg" = ( /obj/effect/floormimic/cointoss, /turf/simulated/floor/wood/lythios43c, @@ -11348,7 +11311,7 @@ HC HC HC HC -fo +HC "} (2,1,1) = {" IY @@ -25603,10 +25566,10 @@ sv sv sv sv -Yd -Yd -Yd -Yd +we +we +we +we dQ dQ dQ @@ -25797,9 +25760,9 @@ sv sv sv sv -Yd -Yd -Yd +we +we +we sv dQ dQ @@ -25990,10 +25953,10 @@ sv sv sv sv -Yd -Yd -Yd -Yd +we +we +we +we sv dQ dQ @@ -26183,10 +26146,10 @@ sv sv sv sv -Yd -Yd -Yd -Yd +we +we +we +we sv sv dQ @@ -26376,10 +26339,10 @@ sv sv sv sv -Yd -Yd -Yd -Yd +we +we +we +we sv sv sv @@ -26567,12 +26530,12 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we sv sv sv @@ -26758,13 +26721,13 @@ sv sv sv sv -Yd -Yd -Yd -Yd +we +we +we +we sv -Yd -Yd +we +we sv sv sv @@ -42839,15 +42802,15 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we cU fh pS @@ -43030,18 +42993,18 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we cU lb ib @@ -43050,8 +43013,8 @@ IV IV IV ib -Yd -Yd +we +we sv sv sv @@ -43221,21 +43184,21 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we cU lb of @@ -43244,10 +43207,10 @@ IV IV IV ib -Yd -Yd -Yd -Yd +we +we +we +we sv sv sv @@ -43408,28 +43371,28 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we cU lb of @@ -43438,13 +43401,13 @@ IV IV IV ib -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we ga jp WG @@ -43592,38 +43555,38 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we cU lb ib @@ -43632,13 +43595,13 @@ IV IV IV ib -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we ga Zg WG @@ -43777,47 +43740,47 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Ec UM pS @@ -43826,13 +43789,13 @@ xK xK ib pS -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we pn Wv WG @@ -43969,64 +43932,64 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we pn og Ts @@ -44142,85 +44105,85 @@ PP PP sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we pn Bv rI @@ -44332,89 +44295,89 @@ HC "} (172,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we ga pn pn @@ -44526,89 +44489,89 @@ HC "} (173,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we fK Yp Yp @@ -44720,89 +44683,89 @@ HC "} (174,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb Yp Yp @@ -44867,14 +44830,14 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we sv sv sv @@ -44914,90 +44877,90 @@ HC "} (175,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we dC dC dC @@ -45026,7 +44989,7 @@ dC or mC or -Yd +we sv sv sv @@ -45058,20 +45021,20 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we sv sv sv @@ -45097,340 +45060,131 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we WF "} (176,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -or -wL -bw -Pg -or -Yd -Lb -je -Yd -Yd -Yd -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -WF -"} -(177,1,1) = {" -WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Lb -wL -bw -Pg -Yd -Yd -Lb -je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -sv -sv -sv -sv -sv -sv -sv -sv -sv -sv +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +or +wL +bw +Pg +or +we +Lb +je +we +we +we sv sv sv @@ -45440,2774 +45194,2983 @@ sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd sv sv sv sv sv sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -WF -"} -(178,1,1) = {" -WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Lb -wL -bw -Pg -Yd -Yd -Lb -je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -sv -sv -sv -sv -sv -sv -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -WF -"} -(179,1,1) = {" -WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Lb -wL -bw -Pg -Yd -Yd -Lb -je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -WF -"} -(180,1,1) = {" -WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Lb -wL -bw -Pg -Yd -Yd -Lb -je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -WF -"} -(181,1,1) = {" -WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -wm -wL -bw -Pg -bL -Yd -Lb -je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} -(182,1,1) = {" +(177,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +sv +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +sv +sv +sv +sv +sv +sv +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} -(183,1,1) = {" +(178,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -WF -"} -(184,1,1) = {" +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +sv +sv +sv +sv +sv +sv +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +WF +"} +(179,1,1) = {" +WF +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +Lb +wL +bw +Pg +we +we +Lb +je +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +WF +"} +(180,1,1) = {" +WF +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +Lb +wL +bw +Pg +we +we +Lb +je +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +WF +"} +(181,1,1) = {" +WF +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +wm +wL +bw +Pg +bL +we +Lb +je +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +WF +"} +(182,1,1) = {" +WF +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +Lb +wL +bw +Pg +we +we +Lb +je +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +WF +"} +(183,1,1) = {" +WF +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +Lb +wL +bw +Pg +we +we +Lb +je +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +WF +"} +(184,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (185,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (186,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (187,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we wm wL bw Pg bL -Yd +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (188,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (189,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (190,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (191,1,1) = {" WF -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we Lb wL bw Pg -Yd -Yd +we +we Lb je -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd -Yd +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we +we WF "} (192,1,1) = {" @@ -48401,6 +48364,6 @@ we we we we -Nw +we WF "} diff --git a/maps/rift/rift.dm b/maps/rift/rift.dm index fa192831239..b03e50c87c5 100644 --- a/maps/rift/rift.dm +++ b/maps/rift/rift.dm @@ -164,6 +164,13 @@ /area/engineering/atmos_intake, // Outside, /area/rnd/external) // Outside, +/datum/map_level/rift + abstract_type = /datum/map_level/rift + air_outdoors = /datum/atmosphere/planet/lythios43c + +/datum/map_level/rift/station + abstract_type = /datum/map_level/rift/station + /datum/map_level/rift/station/underground_floor id = "RiftUnderground3" name = "Rift - East Canyon" @@ -179,6 +186,7 @@ flags = LEGACY_LEVEL_CONTACT|LEGACY_LEVEL_PLAYER|LEGACY_LEVEL_CONSOLES|LEGACY_LEVEL_SEALED planet_path = /datum/planet/lythios43c link_above = /datum/map_level/rift/station/underground_deep + link_west = /datum/map_level/rift/base /datum/map_level/rift/station/underground_floor/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() @@ -201,6 +209,7 @@ planet_path = /datum/planet/lythios43c link_below = /datum/map_level/rift/station/underground_floor link_above = /datum/map_level/rift/station/underground_shallow + link_west = /datum/map_level/rift/deep /datum/map_level/rift/station/underground_deep/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() @@ -223,6 +232,7 @@ planet_path = /datum/planet/lythios43c link_below = /datum/map_level/rift/station/underground_deep link_above = /datum/map_level/rift/station/surface_low + link_west = /datum/map_level/rift/caves /datum/map_level/rift/station/underground_shallow/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() @@ -245,6 +255,7 @@ planet_path = /datum/planet/lythios43c link_below = /datum/map_level/rift/station/underground_shallow link_above = /datum/map_level/rift/station/surface_mid + link_west = /datum/map_level/rift/plains /datum/map_level/rift/station/surface_low/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() @@ -307,6 +318,7 @@ flags = LEGACY_LEVEL_STATION|LEGACY_LEVEL_CONTACT|LEGACY_LEVEL_PLAYER planet_path = /datum/planet/lythios43c link_above = /datum/map_level/rift/deep + link_east = /datum/map_level/rift/station/underground_floor /datum/map_level/rift/base/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() @@ -338,6 +350,7 @@ planet_path = /datum/planet/lythios43c link_below = /datum/map_level/rift/base link_above = /datum/map_level/rift/caves + link_east = /datum/map_level/rift/station/underground_deep /datum/map_level/rift/deep/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() @@ -368,6 +381,7 @@ planet_path = /datum/planet/lythios43c link_below = /datum/map_level/rift/deep link_above = /datum/map_level/rift/plains + link_east = /datum/map_level/rift/station/underground_shallow /datum/map_level/rift/caves/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() diff --git a/maps/sectors/desert_140/desert_140.dm b/maps/sectors/desert_140/desert_140.dm index eef3d9844ad..e25421bab7e 100644 --- a/maps/sectors/desert_140/desert_140.dm +++ b/maps/sectors/desert_140/desert_140.dm @@ -18,6 +18,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classh + air_outdoors = /datum/atmosphere/planet/classh /datum/map_level/sector/desert_140/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() diff --git a/maps/sectors/desert_192/desert_192.dm b/maps/sectors/desert_192/desert_192.dm index 5d0b17d5fe6..aab8305a2d9 100644 --- a/maps/sectors/desert_192/desert_192.dm +++ b/maps/sectors/desert_192/desert_192.dm @@ -18,6 +18,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classh + air_outdoors = /datum/atmosphere/planet/classh /datum/map_level/sector/desert_192/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() diff --git a/maps/sectors/frozen_140/frozen_140.dm b/maps/sectors/frozen_140/frozen_140.dm index 72b9d18c4bd..8c87d5df525 100644 --- a/maps/sectors/frozen_140/frozen_140.dm +++ b/maps/sectors/frozen_140/frozen_140.dm @@ -18,6 +18,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classp + air_outdoors = /datum/atmosphere/planet/classp /datum/map_level/sector/frozen_140/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() diff --git a/maps/sectors/frozen_192/frozen_192.dm b/maps/sectors/frozen_192/frozen_192.dm index e9421afd267..1fd12da4e06 100644 --- a/maps/sectors/frozen_192/frozen_192.dm +++ b/maps/sectors/frozen_192/frozen_192.dm @@ -18,6 +18,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classp + air_outdoors = /datum/atmosphere/planet/classp /datum/map_level/sector/frozen_192/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() diff --git a/maps/sectors/gaia_140/gaia_140.dm b/maps/sectors/gaia_140/gaia_140.dm index 5f25dce2682..3cd18e3ad7e 100644 --- a/maps/sectors/gaia_140/gaia_140.dm +++ b/maps/sectors/gaia_140/gaia_140.dm @@ -18,3 +18,4 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classm + air_outdoors = /datum/atmosphere/planet/classm diff --git a/maps/sectors/gaia_192/gaia_192.dm b/maps/sectors/gaia_192/gaia_192.dm index 4b256aacfc2..1730943030c 100644 --- a/maps/sectors/gaia_192/gaia_192.dm +++ b/maps/sectors/gaia_192/gaia_192.dm @@ -18,3 +18,4 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classm + air_outdoors = /datum/atmosphere/planet/classm diff --git a/maps/sectors/lavaland_140/lavaland_140.dm b/maps/sectors/lavaland_140/lavaland_140.dm index f2c44ef289f..ec77520a067 100644 --- a/maps/sectors/lavaland_140/lavaland_140.dm +++ b/maps/sectors/lavaland_140/lavaland_140.dm @@ -15,6 +15,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/lavaland + air_outdoors = /datum/atmosphere/planet/lavaland /datum/map_level/sector/lavaland_140/base id = "LavalandBase140" @@ -61,6 +62,3 @@ // todo: yielding generation new /datum/random_map/noise/ore/lavaland(null, 1, 1, z_index, 64, 64) new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, z_index, world.maxx - 4, world.maxy - 4) - -/obj/landmark/map_data/lavaland_east - height = 1 diff --git a/maps/sectors/lavaland_140/levels/lavaland_140.dmm b/maps/sectors/lavaland_140/levels/lavaland_140.dmm index 41bbf6c3643..ef52bb9e469 100644 --- a/maps/sectors/lavaland_140/levels/lavaland_140.dmm +++ b/maps/sectors/lavaland_140/levels/lavaland_140.dmm @@ -41,12 +41,7 @@ /turf/simulated/floor/tiled, /area/lavaland/central/base/common) "bu" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 8; - name = "to_east"; - portal_id = "eaststep" - }, -/turf/simulated/floor/tiled/dark/lavaland, +/turf/level_border, /area/lavaland/central/transit) "bG" = ( /obj/machinery/atmospherics/portables_connector, @@ -128,12 +123,6 @@ }, /turf/simulated/floor/tiled/old_tile, /area/lavaland/central/base/common) -"eb" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 8 - }, -/turf/simulated/floor/tiled/dark/lavaland, -/area/lavaland/central/transit) "ew" = ( /turf/simulated/floor/tiled, /area/lavaland/central/base/common) @@ -22416,10 +22405,10 @@ Ru Ru MV bu -eb -eb -eb -eb +bu +bu +bu +bu MV Ru Ru diff --git a/maps/sectors/lavaland_140/levels/lavaland_140_east.dmm b/maps/sectors/lavaland_140/levels/lavaland_140_east.dmm index 942e236f53d..78a06e4759a 100644 --- a/maps/sectors/lavaland_140/levels/lavaland_140_east.dmm +++ b/maps/sectors/lavaland_140/levels/lavaland_140_east.dmm @@ -149,9 +149,6 @@ }, /turf/simulated/floor/outdoors/lavaland, /area/lavaland/east/explored) -"bL" = ( -/turf/simulated/floor/tiled/dark/lavaland, -/area/lavaland/east/transit) "ch" = ( /obj/structure/bed/double, /obj/item/bedsheet/orangedouble, @@ -270,10 +267,6 @@ /obj/machinery/vending/cola, /turf/simulated/floor/tiled/lavaland, /area/lavaland/east/ashlander_village) -"fD" = ( -/obj/landmark/map_data/lavaland_east, -/turf/simulated/mineral/triumph/lavaland, -/area/lavaland/east/explored) "fL" = ( /obj/effect/floor_decal/industrial/warning/dust{ dir = 8 @@ -1790,9 +1783,6 @@ /turf/simulated/floor/tiled/lavaland, /area/lavaland/east/ashlander_village) "Kv" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 4 - }, /turf/simulated/floor/tiled/dark/lavaland, /area/lavaland/east/transit) "Kx" = ( @@ -2262,12 +2252,7 @@ /turf/simulated/floor/tiled/lavaland, /area/lavaland/east/ashlander_village) "TX" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 4; - name = "east_to_center"; - portal_id = "eaststep" - }, -/turf/simulated/floor/tiled/dark/lavaland, +/turf/level_border, /area/lavaland/east/transit) "TY" = ( /obj/effect/floor_decal/industrial/warning/dust/corner{ @@ -2734,10 +2719,10 @@ wR wR ad TX -Kv -Kv -Kv -Kv +TX +TX +TX +TX ad wR wR @@ -2876,9 +2861,9 @@ kx wR ad az -bL -bL -bL +Kv +Kv +Kv cU ad wR @@ -2919,7 +2904,7 @@ kx kx kx kx -fD +kx wR "} (3,1,1) = {" @@ -3018,10 +3003,10 @@ kx wR ad aL -bL -bL -bL -bL +Kv +Kv +Kv +Kv ad wR kx diff --git a/maps/sectors/lavaland_192/lavaland_192.dm b/maps/sectors/lavaland_192/lavaland_192.dm index 392735d1453..9c8717e7023 100644 --- a/maps/sectors/lavaland_192/lavaland_192.dm +++ b/maps/sectors/lavaland_192/lavaland_192.dm @@ -15,6 +15,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/lavaland + air_outdoors = /datum/atmosphere/planet/lavaland /datum/map_level/sector/lavaland_192/base id = "LavalandBase192" @@ -61,6 +62,3 @@ // todo: yielding generation new /datum/random_map/noise/ore/lavaland(null, 1, 1, z_index, 64, 64) new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, z_index, world.maxx - 4, world.maxy - 4) - -/obj/landmark/map_data/lavaland_east - height = 1 diff --git a/maps/sectors/lavaland_192/levels/lavaland_192.dmm b/maps/sectors/lavaland_192/levels/lavaland_192.dmm index df01b1ab7f7..e7f66587be0 100644 --- a/maps/sectors/lavaland_192/levels/lavaland_192.dmm +++ b/maps/sectors/lavaland_192/levels/lavaland_192.dmm @@ -508,9 +508,6 @@ /turf/simulated/floor/plating, /area/lavaland/central/base/common) "lT" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 8 - }, /turf/simulated/mineral/triumph/lavaland, /area/lavaland/central/explored) "lX" = ( @@ -1094,9 +1091,6 @@ /turf/simulated/floor/tiled, /area/lavaland/central/base/common) "tV" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 8 - }, /turf/simulated/floor/outdoors/lava/lavaland, /area/lavaland/central/explored) "ub" = ( @@ -2547,11 +2541,6 @@ /turf/simulated/floor/outdoors/lava/lavaland, /area/lavaland/central/explored) "ZK" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 8; - name = "to_east"; - portal_id = "eaststep" - }, /turf/simulated/mineral/triumph/lavaland, /area/lavaland/central/explored) "ZO" = ( diff --git a/maps/sectors/lavaland_192/levels/lavaland_192_east.dmm b/maps/sectors/lavaland_192/levels/lavaland_192_east.dmm index 98708165c2b..86544389ea6 100644 --- a/maps/sectors/lavaland_192/levels/lavaland_192_east.dmm +++ b/maps/sectors/lavaland_192/levels/lavaland_192_east.dmm @@ -34,11 +34,6 @@ /turf/simulated/floor/bone/lavaland, /area/lavaland/east/ashlander_village) "gx" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 4; - name = "east_to_center"; - portal_id = "eaststep" - }, /turf/simulated/mineral/triumph/lavaland, /area/lavaland/east/explored) "iE" = ( @@ -350,9 +345,6 @@ /turf/simulated/floor/outdoors/lava/indoors/noblend/lavaland, /area/lavaland/east/ashlander_village) "TF" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 4 - }, /turf/simulated/floor/outdoors/lava/lavaland, /area/lavaland/east/explored) "Uc" = ( @@ -363,9 +355,6 @@ /turf/simulated/floor/bone/engraved/lavaland, /area/lavaland/east/ashlander_village) "WT" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 4 - }, /turf/simulated/mineral/triumph/lavaland, /area/lavaland/east/explored) "XO" = ( diff --git a/maps/sectors/miaphus_192/levels/miaphus_192_beach.dmm b/maps/sectors/miaphus_192/levels/miaphus_192_beach.dmm index f7ade96d392..8637b2b4446 100644 --- a/maps/sectors/miaphus_192/levels/miaphus_192_beach.dmm +++ b/maps/sectors/miaphus_192/levels/miaphus_192_beach.dmm @@ -73,10 +73,8 @@ /turf/simulated/floor/water/deep, /area/tether_away/beach/water) "an" = ( -/turf/simulated/mineral/floor/cave{ - name = "dirt" - }, -/area/tether_away/beach/jungle) +/turf/level_border, +/area/tether_away/beach/mineshaft) "ao" = ( /obj/structure/simple_door/wood, /turf/simulated/floor/tiled/asteroid_steel, @@ -360,7 +358,7 @@ /turf/simulated/floor/outdoors/beach/sand/desert, /area/tether_away/beach/jungle) "bi" = ( -/turf/unsimulated/wall/planetary/normal, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/water) "bj" = ( /turf/simulated/floor/water, @@ -394,13 +392,7 @@ /turf/simulated/floor/tiled/old_tile/white, /area/tether_away/beach/resort/lockermed) "bo" = ( -/obj/effect/map_effect/portal/master/side_a{ - name = "V4_Cave_Entrance"; - portal_id = "V4_cave_step" - }, -/turf/simulated/mineral/floor/cave{ - name = "dirt" - }, +/turf/level_border, /area/tether_away/beach/jungle) "bp" = ( /turf/simulated/floor/outdoors/beach/sand, @@ -409,7 +401,6 @@ /turf/simulated/mineral/ignore_mapgen, /area/tether_away/beach/jungle) "br" = ( -/obj/effect/map_effect/portal/line/side_a, /turf/simulated/mineral/floor/cave{ name = "dirt" }, @@ -484,10 +475,6 @@ /obj/structure/bed/chair/comfy, /turf/simulated/floor/wood/broken, /area/tether_away/beach/desalinator) -"bR" = ( -/obj/effect/map_effect/portal/line/side_a, -/turf/simulated/floor/outdoors/beach/sand/lowdesert, -/area/tether_away/beach/jungle) "bS" = ( /obj/machinery/conveyor{ dir = 4; @@ -803,9 +790,8 @@ /turf/simulated/floor/wood, /area/tether_away/beach/resort/bunk) "eX" = ( -/obj/effect/map_effect/portal/line/side_a, -/turf/simulated/floor/outdoors/beach/sand/desert, -/area/tether_away/beach/jungle) +/turf/simulated/floor/outdoors/beach/sand, +/area/tether_away/beach/mineshaft) "eZ" = ( /obj/structure/stairs/middle{ dir = 2 @@ -2017,12 +2003,8 @@ }, /area/tether_away/beach/mineyard) "px" = ( -/obj/effect/map_effect/portal/master/side_a{ - name = "V4_Desert_Entrance"; - portal_id = "V4_desert_step" - }, /turf/simulated/floor/outdoors/beach/sand/lowdesert, -/area/tether_away/beach/jungle) +/area/tether_away/beach/mineshaft) "py" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3197,7 +3179,7 @@ /turf/simulated/floor/tiled/asteroid_steel, /area/tether_away/beach/powershed) "zV" = ( -/turf/unsimulated/mineral, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/mineshaft) "zZ" = ( /obj/structure/cable/cyan{ @@ -3397,7 +3379,7 @@ /turf/simulated/floor/tiled/old_tile/white, /area/tether_away/beach/resort/canteen) "Cg" = ( -/turf/unsimulated/mineral, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/water) "Ch" = ( /obj/structure/table/reinforced, @@ -4363,7 +4345,7 @@ /turf/simulated/floor/tiled/steel_dirty, /area/tether_away/beach/station) "Lj" = ( -/turf/unsimulated/mineral, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/coast) "Lo" = ( /obj/structure/sign/warning/high_voltage, @@ -4523,7 +4505,7 @@ /turf/simulated/floor/tiled/steel_dirty, /area/tether_away/beach/bunker/mess) "MA" = ( -/turf/unsimulated/mineral, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/jungle) "ME" = ( /obj/structure/cable{ @@ -5302,7 +5284,7 @@ /turf/simulated/floor/tiled/old_tile/white, /area/tether_away/beach/resort/lockermed) "TK" = ( -/turf/unsimulated/wall/planetary/desert/standard_temp, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/jungle) "TM" = ( /obj/item/material/kitchen/rollingpin, @@ -7839,9 +7821,9 @@ bi "} (11,1,1) = {" zV -ZC -ZC -ZC +px +px +px ZC ZC ZC @@ -8032,10 +8014,10 @@ am bi "} (12,1,1) = {" -zV -ZC -ZC -ZC +an +px +px +px ZC ZC ZC @@ -8226,10 +8208,10 @@ am bi "} (13,1,1) = {" -zV -ZC -ZC -ZC +an +px +px +px ZC ZC ZC @@ -8420,10 +8402,10 @@ am bi "} (14,1,1) = {" -zV -ZC -ZC -ZC +an +px +eX +eX ZC ZC ZC @@ -8614,13 +8596,13 @@ am bi "} (15,1,1) = {" -zV -ZC -ZC -ZC -ZC -ZC -ZC +an +px +eX +eX +px +px +px ZC ZC ZC @@ -8808,13 +8790,13 @@ am bi "} (16,1,1) = {" -zV -ZC -ZC -ZC -ZC +an ZC ZC +eX +px +px +px ZC ZC ZC @@ -9005,10 +8987,10 @@ bi zV ZC ZC -ZC -ZC -ZC -ZC +eX +px +px +px ZC ZC ZC @@ -9199,11 +9181,11 @@ bi zV ZC ZC -ZC -ZC -ZC -ZC -ZC +eX +eX +eX +px +px ZC ZC ZC @@ -9393,11 +9375,11 @@ bi zV ZC ZC -ZC -ZC -ZC -ZC -ZC +px +eX +eX +px +px ZC ZC ZC @@ -9587,11 +9569,11 @@ bi zV ZC ZC -ZC -ZC -ZC -ZC -ZC +px +px +px +px +px ZC ZC ZC @@ -9782,11 +9764,11 @@ zV ZC ZC ZC -ZC -ZC -ZC -ZC -ZC +px +px +px +px +px ZC ZC ZC @@ -9976,11 +9958,11 @@ zV ZC ZC ZC -ZC -ZC -ZC -ZC -ZC +px +px +px +px +px ZC ZC ZC @@ -10170,11 +10152,11 @@ zV ZC ZC ZC -ZC -ZC -ZC -ZC -ZC +px +px +px +px +px ZC ZC ZC @@ -10364,11 +10346,11 @@ zV ZC ZC ZC -ZC -ZC -ZC -ZC -ZC +px +px +px +px +px ZC ZC ZC @@ -10560,10 +10542,10 @@ ZC ZC ZC ZC -ZC -ZC -ZC -ZC +px +eX +px +px ZC ZC ZC @@ -10754,10 +10736,10 @@ bq bq bq bq -bq -bq -bq -bq +ce +bp +ce +ce bq bq bq @@ -10765,7 +10747,7 @@ bq bq bq Td -an +br bq bq bq @@ -10948,19 +10930,19 @@ bq bq bq bq +ce +ce +ce +ce +ce bq bq bq bq bq -bq -bq -bq -bq -bq -an -an -an +br +br +br bq bq bq @@ -11143,17 +11125,17 @@ bq bq bq bq +ce +ce +ce +ce bq bq bq bq bq bq -bq -bq -bq -bq -an +br AF bq bq @@ -11337,10 +11319,10 @@ bq bq bq bq -bq -bq -bq -bq +ce +ce +ce +ce bq bq bq @@ -11350,7 +11332,7 @@ bq Mg AF AF -an +br oS bp bp @@ -11531,11 +11513,11 @@ bq bq bq bq -bq -bq -bq -bq -bq +ce +ce +bp +bp +ce bq bq bq @@ -11544,7 +11526,7 @@ bq bq bq AF -an +br JQ bp bp @@ -11725,21 +11707,21 @@ bq bq bq bq +ce +ce +bp +bp +ce +ce bq bq bq bq bq bq -bq -bq -bq -bq -bq -bq -an -an -an +br +br +br bp bp bp @@ -11920,11 +11902,11 @@ bq bq bq bq -bq -bq -bq -bq -bq +ce +bp +bp +ce +ce bq bq bq @@ -12114,11 +12096,11 @@ bq bq bq bq -bq -bq -bq -bq -bq +ce +bp +bp +ce +ce bq bq bq @@ -12308,13 +12290,13 @@ bq bq bq bq -bq -bq -bq -bq -bq -bq -bq +ce +ce +ce +ce +ce +ce +ce bq bq bq @@ -12503,12 +12485,12 @@ bq bq bq bq -bq -bq -bq -bq -bq -bq +ce +ce +ce +ce +ce +ce bq bq bq @@ -12697,12 +12679,12 @@ bq bq bq bq -bq -bq -bq -bq -bq -bq +ce +ce +ce +bp +ce +ce bq bq bq @@ -12891,13 +12873,13 @@ bq bq bq bq -bq -bq -bq -bq -bq -bq -bq +ce +ce +ce +bp +ce +ce +ce bq bp bp @@ -13085,13 +13067,13 @@ bq bq bq bq -bq -bq -bq -bq -bq -bq -bq +ce +ce +ce +ce +ce +ce +ce bp bp bp @@ -13279,14 +13261,14 @@ bq bq bq bq -bq -bq -bq -bq -bq -bq -bq -bp +ce +ce +ce +ce +ce +ce +ce +ce bp bp bp @@ -13473,21 +13455,6 @@ bq bq bq bq -bq -bq -bq -bq -bq -bq -bp -bp -bp -bp -bp -ce -ce -ce -ce ce ce ce @@ -13496,185 +13463,200 @@ ce ce ce ce -ce -ce -ce -ce -ce -ce -ce -ce -bp -bq -bq -bq -bq -bq -bq -bq -ZC -ZC -PV -xy -xy -xy -ZC -ZC -ZC -ZC -Wd -xy -xy -xy -xy -wg -ZC -ZC -ZC -ZC -ZC -ZC -ZC -ZC -ZC -ZC -bq -bq -bq -bq -bq -bp -bp -bp -bp -bp -bp -bp -bp -SK -bp -aa -aa -aa -aa -aa -aa -bp -bp -bp -bp -bp -bp -bq -bq -bq -bq -bq -bq -bq -bq -aa -CC -uO -ak -sD -sD -sD -sD -am -am -am -am -am -am -am -bj -bj -le -dY -tr -tr -tr -tr -tr -tr -pq -Ey -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -bi -"} -(41,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bp -bp -bp -bp +bp +bp +bp +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +bp +bq +bq +bq +bq +bq +bq +bq +ZC +ZC +PV +xy +xy +xy +ZC +ZC +ZC +ZC +Wd +xy +xy +xy +xy +wg +ZC +ZC +ZC +ZC +ZC +ZC +ZC +ZC +ZC +ZC +bq +bq +bq +bq +bq +bp +bp +bp +bp +bp +bp +bp +bp +SK +bp +aa +aa +aa +aa +aa +aa +bp +bp +bp +bp +bp +bp +bq +bq +bq +bq +bq +bq +bq +bq +aa +CC +uO +ak +sD +sD +sD +sD +am +am +am +am +am +am +am +bj +bj +le +dY +tr +tr +tr +tr +tr +tr +pq +Ey +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +bi +"} +(41,1,1) = {" +MA +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +ce +ce +ce +ce +ce bp bp bp @@ -13864,9 +13846,9 @@ bq bq bq bq -bp -bp -bp +ce +ce +ce bp bp bp @@ -14058,9 +14040,9 @@ bq bq bq bp -bp -bp -bp +ce +ce +ce bp bp bp @@ -14865,7 +14847,7 @@ bp bp bp bq -an +br xy xy xy @@ -18509,7 +18491,7 @@ bi "} (66,1,1) = {" TK -px +ce ce ce aa @@ -18703,7 +18685,7 @@ bi "} (67,1,1) = {" TK -bR +ce ce ce ce @@ -18897,7 +18879,7 @@ bi "} (68,1,1) = {" TK -bR +ce ce ce bp @@ -19091,7 +19073,7 @@ bi "} (69,1,1) = {" TK -bR +ce bp ce ce @@ -19285,7 +19267,7 @@ bi "} (70,1,1) = {" TK -bR +ce bp bp ce @@ -19479,7 +19461,7 @@ bi "} (71,1,1) = {" TK -eX +aa ce ce ce @@ -19673,7 +19655,7 @@ bi "} (72,1,1) = {" TK -bR +ce ce ce ce @@ -24531,9 +24513,10 @@ bq bq bq bq +br bq bq -bq +br bq bq bq @@ -24543,8 +24526,7 @@ ce ce ce ce -aa -aa +ce aa aa aa @@ -24725,10 +24707,10 @@ bq bq bq bq +br bq -bq -bq -bq +br +br bq bq bq @@ -24737,8 +24719,8 @@ bq bq ce ce -aa -aa +ce +ce aa aa aa @@ -24918,11 +24900,11 @@ bq bq bq bq -bq -bq -bq -bq -bq +br +br +br +br +br bq bq bq @@ -25112,21 +25094,21 @@ bq bq bq bq -bq -bq -bq -bq -bq +br +br +br +br +br bq bq bq bq bq ce +ax ce -ce -tj -Jn +ax +ax ce aa aa @@ -25301,23 +25283,23 @@ bi MA bq bq +br bq bq +br bq -bq -bq -bq -bq -bq -bq -bq +br +br +br +br +ce bq bq bq bq ce ce -ce +ax ce ce ce @@ -25493,26 +25475,26 @@ bi "} (102,1,1) = {" MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +MA +br +br +br +br +br +br +br +br +br +br +ce +ce +rm +ce +ce +ce ce ce ce -bp ce ce ce @@ -25686,29 +25668,29 @@ am bi "} (103,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -ce -ce +bo +br +br +br +br +br +br +br +br +br +br +br +br +br +br ce ce ce +ax +ax +ax +ax +ax ce ce ce @@ -25880,29 +25862,29 @@ am bi "} (104,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +bo +br +br +br +br +br +br +br +br +br +br +br +br +br ce ce +ax ce -bp ce +ax +ax +ce +ax ce ce ce @@ -26074,29 +26056,29 @@ am bi "} (105,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +bo +br +br +br +br +br +br +br +br +br +br +br +ce +ce +rm +ce +ce +ce +ce +ax ce ce ce -bp -bp ce ce ce @@ -26268,29 +26250,29 @@ am bi "} (106,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +bo +br +br +br +br +br +br +br +br +br +br +br +ce +ce bq ce ce ce -bp +ce +ce +ce +ce +ce bp ce ce @@ -26462,29 +26444,29 @@ am bi "} (107,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +bo +br +br +br +br +br +br +br +br +br +br +br +br +ce bq bq ce ce -bp -bp +ce +ce +ce +ce +ce bp ce ce @@ -26656,22 +26638,19 @@ am bi "} (108,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +bo +br +br +br +br +br +br +br +br +br +br +br +br bq bq bq @@ -26679,6 +26658,9 @@ ce ce ce ce +ce +ce +ce bp ce ce @@ -26851,19 +26833,16 @@ bi "} (109,1,1) = {" MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +MA +br +br +br +br +br +br +br +br +br bq bq bq @@ -26873,6 +26852,9 @@ ce ce ce ce +ce +ce +ce tj ce ce @@ -27046,22 +27028,22 @@ bi (110,1,1) = {" MA bq +br +br +br +br +br +br +br +br +br bq bq bq bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +ce +ce +ce ce ce ce @@ -27241,19 +27223,14 @@ bi MA bq bq +br +br +br bq bq bq bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +br bq bq bq @@ -27266,6 +27243,11 @@ ce ce ce ce +ce +ce +ce +ce +ce aa aa aa @@ -27436,13 +27418,7 @@ MA bq bq bq -bq -bq -bq -bq -bq -bq -bq +br bq bq bq @@ -27453,6 +27429,9 @@ bq bq bq ce +ce +ce +ce bp ce ce @@ -27460,6 +27439,9 @@ ce ce ce ce +ce +ce +ce aa aa aa @@ -27642,14 +27624,14 @@ bq bq bq bq -bq -bq -bq ce ce bp bp bp +ce +ce +bp bp ce ce @@ -27820,200 +27802,200 @@ am bi "} (114,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -ce -bp -bp -bp -ce -ce -ce -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -lI -lI -lI -lI -lI -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Nv -Fm -Nv -lI -lI -lI -lI -lI -Nv -zs -kR -YR -DK -kT -qi -zw -BT -BT -BT -BT -BT -BC -BT -BT -BT -BT -BT -zw -zw -lI -lI -lI -lI -lI -CC -uO -ak -ak -ak -ak -ak -sD -ak -ak -sD -ak -sD -sD -sD -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -bi -"} -(115,1,1) = {" +MA +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +ce +ce +bp +bp +bp +bp +ce +bp +ce +ce +ce +ce +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bp +aa +lI +lI +lI +lI +lI +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Fm +Nv +lI +lI +lI +lI +lI +Nv +zs +kR +YR +DK +kT +qi +zw +BT +BT +BT +BT +BT +BC +BT +BT +BT +BT +BT +zw +zw +lI +lI +lI +lI +lI +CC +uO +ak +ak +ak +ak +ak +sD +ak +ak +sD +ak +sD +sD +sD +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +bi +"} +(115,1,1) = {" MA bq bq @@ -28993,10 +28975,9 @@ bq bq bq bq -an bq bq -an +bq bq bq bq @@ -29008,6 +28989,7 @@ ce ce ce ce +ce aa aa aa @@ -29187,16 +29169,16 @@ bq bq bq bq -an bq -an -an bq bq bq bq bq bq +bq +ce +ce ce ce ce @@ -29380,16 +29362,16 @@ bq bq bq bq -an -an -an -an -an bq bq bq bq bq +bq +bq +bq +bq +ce ce ce ce @@ -29574,21 +29556,21 @@ bq bq bq bq -an -an -an -an -an +bq +bq +bq +bq bq bq bq bq bq ce -ax ce -ax -ax +ce +ce +ce +ce ce ce aa @@ -29763,23 +29745,23 @@ bi MA bq bq -an bq bq -an bq -an -an -an -an -ce +bq +bq +bq +bq +bq +bq +bq bq bq bq bq ce ce -ax +ce ce ce ce @@ -29955,22 +29937,22 @@ bi "} (125,1,1) = {" MA -MA -an -an -an -an -an -an -an -an -an -an -ce -ce -rm -ce -ce +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq ce ce ce @@ -30149,28 +30131,28 @@ bi "} (126,1,1) = {" MA -bo -an -an -an -an -an -an -an -an -an -an -an -an -an +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +ce +ce +ce ce ce ce -ax -ax -ax -ax -ax ce aa aa @@ -30343,28 +30325,28 @@ bi "} (127,1,1) = {" MA -br -an -an -an -an -an -an -an -an -an -an -an -an +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +ce ce ce -ax ce ce -ax -ax ce -ax ce aa aa @@ -30537,25 +30519,25 @@ bi "} (128,1,1) = {" MA -br -an -an -an -an -an -an -an -an -an -an -ce -ce -rm -ce +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq ce ce ce -ax ce ce ce @@ -30731,22 +30713,22 @@ bi "} (129,1,1) = {" MA -br -an -an -an -an -an -an -an -an -an -an -ce -ce bq -ce -ce +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq ce ce ce @@ -30925,22 +30907,22 @@ bi "} (130,1,1) = {" MA -br -an -an -an -an -an -an -an -an -an -an -an -ce bq bq -ce +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq ce ce ce @@ -31119,22 +31101,22 @@ bi "} (131,1,1) = {" MA -br -an -an -an -an -an -an -an -an -an -an -an bq bq bq -ce +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq ce ce ce @@ -31313,23 +31295,23 @@ bi "} (132,1,1) = {" MA -MA -an -an -an -an -an -an -an -an -an bq bq bq bq bq -ce -ce +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq ce ce ce @@ -31508,21 +31490,21 @@ bi (133,1,1) = {" MA bq -an -an -an -an -an -an -an -an -an bq bq bq bq -ce -ce +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq ce ce ce @@ -31703,19 +31685,19 @@ bi MA bq bq -an -an -an bq bq bq bq -an bq bq bq bq -ce +bq +bq +bq +bq +bq ce ce ce @@ -31898,7 +31880,9 @@ MA bq bq bq -an +bq +bq +bq bq bq bq @@ -31912,8 +31896,6 @@ ce ce ce ce -bp -ce ce ce ce @@ -32106,9 +32088,9 @@ bq bq ce ce -bp -bp -bp +ce +ce +ce ce ce ce @@ -32300,10 +32282,10 @@ bq bq ce ce -bp -bp -bp -bp +ce +ce +ce +ce ce ce ce @@ -39132,7 +39114,7 @@ bq bq bq bq -an +br bq bq bq @@ -39326,8 +39308,8 @@ bq bq bq bq -an -an +br +br qm bq bq @@ -39521,8 +39503,8 @@ bq bq bq bq -an -an +br +br bq bq bq @@ -39715,9 +39697,9 @@ bq bq bq bq -an -an -an +br +br +br bq bq bq @@ -39908,12 +39890,12 @@ bq bq bq bq -an -an -an -an -an -an +br +br +br +br +br +br qm bq bq @@ -40100,16 +40082,16 @@ bq bq bq qm -an -an -an -an -an -an -an -an -an -an +br +br +br +br +br +br +br +br +br +br bq bq bq @@ -40293,18 +40275,18 @@ bq bq bq bq -an -an -an +br +br +br bq bq bq bq bq bq -an -an -an +br +br +br bq bq bq @@ -40486,8 +40468,8 @@ bq bq bq bq -an -an +br +br qm bq bq @@ -40497,8 +40479,8 @@ bq bq bq bq -an -an +br +br bq bq bq @@ -40692,8 +40674,8 @@ bq bq bq bq -an -an +br +br od if mQ @@ -41468,8 +41450,8 @@ bq bq bq bq -an -an +br +br if od od @@ -41653,16 +41635,16 @@ bq bq bq bq -an -an +br +br bq bq bq bq bq bq -an -an +br +br bq bq bq @@ -41847,16 +41829,16 @@ bq bq bq bq -an -an -an -an +br +br +br +br bq bq bq -an -an -an +br +br +br bq bq bq @@ -42042,14 +42024,14 @@ bq bq bq qm -an -an -an -an -an -an -an -an +br +br +br +br +br +br +br +br bq bq bq @@ -42241,9 +42223,9 @@ bq bq bq qm -an -an -an +br +br +br bq bq bq @@ -42437,7 +42419,7 @@ bq bq bq bq -an +br qm bq bq diff --git a/maps/sectors/miaphus_192/levels/miaphus_192_cave.dmm b/maps/sectors/miaphus_192/levels/miaphus_192_cave.dmm index 54770ae7fcc..63a95db8dd9 100644 --- a/maps/sectors/miaphus_192/levels/miaphus_192_cave.dmm +++ b/maps/sectors/miaphus_192/levels/miaphus_192_cave.dmm @@ -1,54 +1,32 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 1; - name = "V4_to_beach"; - portal_id = "V4_cave_step" - }, /turf/simulated/mineral/floor/ignore_mapgen/cave, -/area/tether_away/cave/explored/normal) -"b" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, -/turf/simulated/mineral/floor/ignore_mapgen/cave, -/area/tether_away/cave/explored/normal) +/area/tether_away/cave/unexplored/normal) "c" = ( /turf/simulated/mineral/cave, /area/tether_away/cave/unexplored/normal) "d" = ( -/turf/simulated/mineral/floor/ignore_mapgen/cave, +/turf/level_border, /area/tether_away/cave/explored/normal) "e" = ( /turf/simulated/mineral/cave, /area/tether_away/cave/explored/normal) -"h" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 4 - }, -/turf/simulated/mineral/floor/ignore_mapgen/cave, -/area/tether_away/cave/explored/normal) "i" = ( /obj/away_mission_init/beachcave, /turf/simulated/mineral/cave, /area/tether_away/cave/explored/normal) "j" = ( -/turf/unsimulated/mineral, +/turf/unsimulated/mineral/outdoors, /area/tether_away/cave/explored/normal) "r" = ( /obj/tether_away_spawner/beach_cave, /turf/simulated/mineral/floor/ignore_mapgen/cave, /area/tether_away/cave/explored/normal) "I" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 4; - name = "desert to caves"; - portal_id = "V4_cave_desert_step" - }, /turf/simulated/mineral/floor/ignore_mapgen/cave, /area/tether_away/cave/explored/normal) "M" = ( -/turf/unsimulated/wall/planetary, +/turf/unsimulated/mineral/outdoors, /area/tether_away/cave/explored/normal) (1,1,1) = {" @@ -110,6 +88,11 @@ M M M M +d +d +d +d +d M M M @@ -223,16 +206,11 @@ M M M M -M -M -M -M -M -M -M -M -M -M +d +d +d +d +d M M M @@ -304,10 +282,10 @@ j j j j -h -h -h -h +I +I +I +I I j j @@ -422,12 +400,12 @@ j j j j -j -j -j -j -j -j +I +I +I +I +I +I j j j @@ -497,20 +475,12 @@ e e e e -d -d -d -d -d -d -e -e -e -e -e -e -e -e +I +I +I +I +I +I e e e @@ -624,6 +594,14 @@ e e e e +I +I +I +I +I +I +I +I e e e @@ -690,20 +668,14 @@ e e e e -d -d -d -d -d -d -d -d -e -e -e -e -e -e +I +I +I +I +I +I +I +I e e e @@ -818,6 +790,12 @@ e e e e +I +I +I +I +I +I e e e @@ -872,32 +850,26 @@ e e e e -d -d -e -e -e -e -e -e -d -d -d -d -d -d +I +I e -d -d -d -d -d e e e e e +I +I +I +I +I +I e +I +I +I +I +I e e e @@ -1013,6 +985,12 @@ e e e e +I +I +I +I +I +I e e e @@ -1064,29 +1042,29 @@ c c c c -d +I r -d -d -d +I +I +I e e e e -d -d -d -d -d -d +I +I +I +I +I +I e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -1202,12 +1180,12 @@ c c c c -c -c -c -c -c -c +a +a +a +a +a +a c e e @@ -1258,31 +1236,31 @@ c c c c -d -d -d -d -d +I +I +I +I +I e e e -d -d +I +I e e -d -d -d +I +I +I e e e -d -d -d -d -d -d -d +I +I +I +I +I +I +I e e e @@ -1396,13 +1374,13 @@ c c c c -c -c -c -c -c -c -c +a +a +a +a +a +a +a e e e @@ -1455,29 +1433,29 @@ c c e e -d -d -d -d -d -d -e -e -e -d -d -e -e +I +I +I +I +I +I e e -d -d -d -d -d -d -d -d +e +I +I +e +e +e +e +I +I +I +I +I +I +I +I e e e @@ -1591,12 +1569,12 @@ c c c c -c -c -c -c -c -c +a +a +a +a +a +a e e e @@ -1650,42 +1628,37 @@ c e e e -d -d -d -d +I +I +I +I e e e e -d -d +I +I e e e e -d -d +I +I e e -d -d -d -d -d -d -d -d -d -d -d -d -d -c -c -c -c -c +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -1791,7 +1764,12 @@ c c c c -e +a +a +a +a +a +I e e j @@ -1844,43 +1822,38 @@ c c e e -d -d +I +I e e e e e e -d -d +I +I e e e -d -d -d +I +I +I e e -d -d -d -d -d -d -d -d -d -d -d -d -d -d -c -c -c -c -c +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -1985,8 +1958,13 @@ c c c c -e -e +a +a +a +a +a +I +I e j M @@ -2039,42 +2017,37 @@ c e e e -d -d +I +I e e e e e -d -d +I +I e e e -d -d +I +I e e e e -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I e e -d -d -d -c -c -c -c -c +I +I +I c c c @@ -2179,8 +2152,13 @@ c c c c -e -e +a +a +a +a +a +I +I e j M @@ -2234,40 +2212,37 @@ e e e e -d -d +I +I e e e e -d -d +I +I e e e -d -d -d +I +I +I e e e e e -d -d -d -d -d +I +I +I +I +I e e e c -d -d -d -c -c -c +I +I +I c c c @@ -2373,11 +2348,14 @@ c c c c -e -e -e -j -M +a +a +a +I +I +I +I +d "} (13,1,1) = {" M @@ -2428,40 +2406,38 @@ c e e e -d -d -d +I +I +I e e e -d -d -d +I +I +I e e -d -d -d -d +I +I +I +I e e e -d -d -d -d -d +I +I +I +I +I e e e e c -d -d +I +I r -d -c -c +I c c c @@ -2567,11 +2543,13 @@ c c c c -e -e -e -j -M +a +a +I +I +I +I +d "} (14,1,1) = {" M @@ -2623,27 +2601,27 @@ e e e e -d -d -d +I +I +I e e e -d -d +I +I e e -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I e e e @@ -2652,11 +2630,11 @@ e c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -2761,11 +2739,11 @@ c c c c -e -e -e -j -M +I +I +I +I +d "} (15,1,1) = {" M @@ -2818,25 +2796,25 @@ e e e e -d -d -d +I +I +I e e e -d -d -d -d +I +I +I +I e e e -d -d -d -d -d -d +I +I +I +I +I +I e e e @@ -2847,21 +2825,21 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -2955,11 +2933,11 @@ c c c c -e -e -e -j -M +I +I +I +I +d "} (16,1,1) = {" M @@ -3013,23 +2991,23 @@ e e e e -d -d -d -d +I +I +I +I e -d -d -d -d +I +I +I +I e e e e -d -d -d -d +I +I +I +I e e e @@ -3042,21 +3020,21 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -3149,11 +3127,11 @@ c c c c -e -e -e -j -M +I +I +I +I +d "} (17,1,1) = {" M @@ -3208,21 +3186,21 @@ c e e e -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I e e e -d -d -d -d +I +I +I +I e e e @@ -3238,20 +3216,20 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -3403,19 +3381,19 @@ e e e e -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I e -d -d -d -d +I +I +I +I e e e @@ -3443,10 +3421,10 @@ c c c c -d -d +I +I r -d +I c c c @@ -3600,15 +3578,15 @@ e e e e -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I e e e @@ -3638,9 +3616,9 @@ c c c c -d -d -d +I +I +I c c c @@ -3797,11 +3775,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -3992,9 +3970,9 @@ e e e e -d -d -d +I +I +I e e e @@ -4187,9 +4165,9 @@ e c c c -d +I r -d +I e e e @@ -4241,8 +4219,8 @@ c c c c -d -d +I +I c c c @@ -4381,10 +4359,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -4435,9 +4413,9 @@ c c c c -d -d -d +I +I +I c c c @@ -4576,10 +4554,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -4629,10 +4607,10 @@ c c c c -d +I r -d -d +I +I c c c @@ -4771,9 +4749,9 @@ c c c c -d -d -d +I +I +I c c c @@ -4823,11 +4801,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -4966,9 +4944,9 @@ c c c c -d -d -d +I +I +I c c c @@ -5019,10 +4997,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -5161,9 +5139,9 @@ c c c c -d -d -d +I +I +I c c c @@ -5213,11 +5191,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -5239,8 +5217,8 @@ c c c c -d -d +I +I c c c @@ -5355,9 +5333,9 @@ c c c c -d -d -d +I +I +I c c c @@ -5408,12 +5386,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -5433,8 +5411,8 @@ c c c c -d -d +I +I c c c @@ -5550,9 +5528,9 @@ c c c c -d -d -d +I +I +I c c c @@ -5603,12 +5581,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -5627,7 +5605,7 @@ c c c c -d +I c c c @@ -5745,13 +5723,8 @@ c c c c -d -d -c -c -c -c -c +I +I c c c @@ -5797,17 +5770,18 @@ c c c c -d -d -d -d -d -d c c c c c +I +I +I +I +I +I +c c c c @@ -5821,7 +5795,11 @@ c c c c -d +c +c +c +c +I c c c @@ -5939,8 +5917,8 @@ c c c c -d -d +I +I c c c @@ -5993,11 +5971,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -6015,7 +5993,7 @@ c c c c -d +I c c c @@ -6133,8 +6111,8 @@ c c c c -d -d +I +I c c c @@ -6188,11 +6166,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -6208,8 +6186,8 @@ c c c c -d -d +I +I c c c @@ -6327,8 +6305,8 @@ c c c c -d -d +I +I c c c @@ -6384,14 +6362,14 @@ c c c c -d -d -d +I +I +I c c c -d -d +I +I c c c @@ -6402,8 +6380,8 @@ c c c c -d -d +I +I c c c @@ -6520,8 +6498,8 @@ c c c c -d -d +I +I c c c @@ -6579,12 +6557,12 @@ c c c c -d -d -d -d +I +I +I +I c -d +I c c c @@ -6593,10 +6571,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -6713,9 +6691,9 @@ c c c c -d -d -d +I +I +I c c c @@ -6773,13 +6751,13 @@ c c c c -d -d +I +I r -d -d -d -d +I +I +I +I c c c @@ -6787,10 +6765,10 @@ c c c c -d +I c -d -d +I +I c c c @@ -6907,7 +6885,7 @@ c c c c -d +I r c c @@ -6968,22 +6946,22 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c c c c -d -d -d -d +I +I +I +I c c c @@ -7101,8 +7079,8 @@ c c c c -d -d +I +I c c c @@ -7163,20 +7141,20 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c c -d -d +I +I r -d +I c c c @@ -7358,18 +7336,18 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -7553,16 +7531,16 @@ c c c c -d -d -d -d -d +I +I +I +I +I c -d -d -d -d +I +I +I +I c c c @@ -7749,10 +7727,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -7945,9 +7923,9 @@ c c c c -d -d -d +I +I +I c c c @@ -8140,9 +8118,9 @@ c c c c -d -d -d +I +I +I c c c @@ -8334,10 +8312,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -8530,9 +8508,9 @@ c c c c -d -d -d +I +I +I c c c @@ -8726,8 +8704,8 @@ c c c c -d -d +I +I c c c @@ -8921,8 +8899,8 @@ c c c c -d -d +I +I c c c @@ -9115,8 +9093,8 @@ c c c c -d -d +I +I c c c @@ -9310,8 +9288,8 @@ c c c c -d -d +I +I c c c @@ -9504,8 +9482,8 @@ c c c c -d -d +I +I c c c @@ -9698,9 +9676,9 @@ c c c c -d -d -d +I +I +I c c c @@ -9892,10 +9870,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -10087,9 +10065,9 @@ c c c c -d -d -d +I +I +I c c c @@ -10281,10 +10259,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -10476,9 +10454,9 @@ c c c c -d -d -d +I +I +I c c c @@ -10670,9 +10648,9 @@ c c c c -d +I r -d +I c c c @@ -10865,9 +10843,9 @@ c c c c -d -d -d +I +I +I c c c @@ -11060,8 +11038,8 @@ c c c c -d -d +I +I c c c @@ -11254,9 +11232,9 @@ c c c c -d -d -d +I +I +I c c c @@ -11449,8 +11427,8 @@ c c c c -d -d +I +I c c c @@ -11643,9 +11621,9 @@ c c c c -d -d -d +I +I +I c c c @@ -11838,8 +11816,8 @@ c c c c -d -d +I +I c c c @@ -12032,8 +12010,8 @@ c c c c -d -d +I +I c c c @@ -12226,9 +12204,9 @@ c c c c -d -d -d +I +I +I c c c @@ -12421,8 +12399,8 @@ c c c c -d -d +I +I c c c @@ -12615,9 +12593,9 @@ c c c c -d -d -d +I +I +I c c c @@ -12809,9 +12787,9 @@ c c c c -d -d -d +I +I +I c c c @@ -13003,10 +12981,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -13197,10 +13175,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -13391,11 +13369,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -13585,11 +13563,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -13779,12 +13757,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -13975,10 +13953,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -14169,10 +14147,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -14361,13 +14339,13 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -14556,12 +14534,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -14748,14 +14726,14 @@ c c c c -d -d -d -d -d +I +I +I +I +I r -d -d +I +I c c c @@ -14944,12 +14922,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -15139,16 +15117,16 @@ c c c c -d -d +I +I c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -15333,17 +15311,17 @@ c c c c -d -d +I +I c c c c -d -d -d +I +I +I r -d +I c c c @@ -15527,17 +15505,17 @@ c c c c -d -d +I +I c c c c c c -d -d -d +I +I +I c c c @@ -15721,21 +15699,21 @@ c c c c -d -d -c -c -c +I +I c c c c -d -d -d -d -d -d +c +c +c +I +I +I +I +I +I c c c @@ -15915,8 +15893,8 @@ c c c c -d -d +I +I c c c @@ -15925,13 +15903,13 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -16109,8 +16087,8 @@ c c c c -d -d +I +I c c c @@ -16123,11 +16101,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -16302,9 +16280,9 @@ c c c c -d -d -d +I +I +I c c c @@ -16318,10 +16296,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -16496,9 +16474,9 @@ c c c c -d -d -d +I +I +I c c c @@ -16513,12 +16491,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c e e @@ -16687,12 +16665,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -16711,16 +16689,16 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I e e -d -d +I +I e e e @@ -16881,12 +16859,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -16908,13 +16886,13 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I e e e @@ -17072,15 +17050,15 @@ c c c c -d -d -d -d +I +I +I +I c c c -d -d +I +I c c c @@ -17104,11 +17082,11 @@ c c e e -d -d -d -d -d +I +I +I +I +I e e e @@ -17265,11 +17243,11 @@ c c c c -d -d +I +I r -d -d +I +I c c c @@ -17299,9 +17277,9 @@ e e e e -d -d -d +I +I +I e e e @@ -17415,8 +17393,8 @@ c c c c -d -d +I +I c c c @@ -17456,11 +17434,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -17494,8 +17472,8 @@ e e e e -d -d +I +I e e e @@ -17606,12 +17584,12 @@ c c c c -d +I c c c -d -d +I +I c c c @@ -17650,10 +17628,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -17688,8 +17666,8 @@ e e e e -d -d +I +I e e e @@ -17800,15 +17778,15 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c -d +I c c c @@ -17843,10 +17821,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -17882,8 +17860,8 @@ e e e e -d -d +I +I e e e @@ -17994,16 +17972,16 @@ c c c c -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I r -d +I c c c @@ -18035,12 +18013,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -18076,8 +18054,8 @@ e e e e -d -d +I +I e e e @@ -18192,13 +18170,13 @@ c c c c -d -d +I +I c -d -d -d -d +I +I +I +I c c c @@ -18228,14 +18206,14 @@ c c c c -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I c c c @@ -18270,8 +18248,8 @@ e e e e -d -d +I +I e e e @@ -18384,17 +18362,17 @@ c c c c -d -d +I +I c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -18422,15 +18400,15 @@ c c c c -d -d +I +I r -d -d +I +I c c -d -d +I +I c c c @@ -18461,11 +18439,11 @@ c e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -18578,7 +18556,7 @@ c c c c -d +I c c c @@ -18586,10 +18564,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -18613,11 +18591,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -18655,11 +18633,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e i e @@ -18771,8 +18749,8 @@ c c c c -d -d +I +I c c c @@ -18782,13 +18760,13 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -18806,11 +18784,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -18849,11 +18827,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -18965,7 +18943,7 @@ c c c c -d +I c c c @@ -18982,9 +18960,9 @@ c c c c -d -d -d +I +I +I c c c @@ -18997,14 +18975,14 @@ c c c c -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I c c c @@ -19043,11 +19021,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -19158,7 +19136,7 @@ c c c c -d +I c c c @@ -19173,15 +19151,15 @@ c c c c -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I c c c @@ -19189,12 +19167,12 @@ c c c c -d +I r -d -d -d -d +I +I +I +I c c c @@ -19237,11 +19215,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -19351,8 +19329,8 @@ c c c c -d -d +I +I c c c @@ -19374,20 +19352,20 @@ c c c c -d -d -d +I +I +I c c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -19432,11 +19410,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -19444,8 +19422,8 @@ e e e e -d -d +I +I e e j @@ -19545,7 +19523,7 @@ c c c c -d +I c c c @@ -19570,14 +19548,14 @@ c c c c -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I c c c @@ -19627,19 +19605,19 @@ e e e e -d -d -d -d +I +I +I +I e e -d +I e e -d -d -d -d +I +I +I +I e e j @@ -19738,8 +19716,8 @@ c c c c -d -d +I +I c c c @@ -19821,20 +19799,20 @@ e e e e -d -d -d -d +I +I +I +I e e e e -d -d -d -d -d -d +I +I +I +I +I +I e j M @@ -19932,7 +19910,7 @@ c c c c -d +I c c c @@ -20015,23 +19993,23 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -a -M "} (104,1,1) = {" M @@ -20126,7 +20104,7 @@ c c c c -d +I c c c @@ -20210,22 +20188,22 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -d -d -d -b -M "} (105,1,1) = {" M @@ -20318,8 +20296,8 @@ c c c c -d -d +I +I c c c @@ -20405,21 +20383,21 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -d -d -b -M "} (106,1,1) = {" M @@ -20511,8 +20489,8 @@ c c c c -d -d +I +I c c c @@ -20600,20 +20578,20 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -d -b -M "} (107,1,1) = {" M @@ -20703,10 +20681,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -20795,19 +20773,19 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -b -M "} (108,1,1) = {" M @@ -20896,10 +20874,10 @@ c c c c -d +I r -d -d +I +I c c c @@ -20990,18 +20968,18 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -b -M "} (109,1,1) = {" M @@ -21089,9 +21067,9 @@ c c c c -d -d -d +I +I +I c c c @@ -21189,9 +21167,9 @@ e e e e -d -d -d +I +I +I e e j @@ -21283,7 +21261,7 @@ c c c c -d +I c c c diff --git a/maps/sectors/miaphus_192/levels/miaphus_192_desert.dmm b/maps/sectors/miaphus_192/levels/miaphus_192_desert.dmm index 6194b8456f7..e18af8cd889 100644 --- a/maps/sectors/miaphus_192/levels/miaphus_192_desert.dmm +++ b/maps/sectors/miaphus_192/levels/miaphus_192_desert.dmm @@ -12,7 +12,7 @@ /turf/simulated/floor/water, /area/tether_away/beach/desert/explored) "gz" = ( -/turf/unsimulated/mineral, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/desert/explored) "hw" = ( /turf/simulated/floor/water/shoreline/corner, @@ -30,27 +30,9 @@ dir = 6 }, /area/tether_away/beach/desert/explored) -"kK" = ( -/turf/simulated/floor/outdoors/beach/sand/lowdesert, -/area/tether_away/beach/desert/explored) "lf" = ( /turf/simulated/mineral/ignore_mapgen, /area/tether_away/beach/desert/explored) -"lX" = ( -/turf/simulated/mineral/floor/cave{ - name = "dirt"; - outdoors = 1 - }, -/area/tether_away/beach/desert/explored) -"mV" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 8 - }, -/turf/simulated/mineral/floor/cave{ - name = "dirt"; - outdoors = 1 - }, -/area/tether_away/beach/desert/explored) "no" = ( /turf/simulated/floor/water/shoreline{ dir = 4 @@ -120,7 +102,7 @@ }, /area/tether_away/beach/desert/explored) "wg" = ( -/turf/unsimulated/wall/planetary/desert/standard_temp, +/turf/unsimulated/mineral/outdoors, /area/tether_away/beach/desert/explored) "wH" = ( /obj/item/pickaxe, @@ -165,11 +147,6 @@ }, /area/tether_away/beach/desert/explored) "zQ" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 8; - name = "desert to caves"; - portal_id = "V4_cave_desert_step" - }, /turf/simulated/mineral/floor/cave{ name = "dirt"; outdoors = 1 @@ -302,25 +279,11 @@ }, /turf/simulated/floor/plating/external, /area/tether_away/beach/desert/explored) -"ST" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 1; - name = "V4_desert_to_beach"; - portal_id = "V4_desert_step" - }, -/turf/simulated/floor/outdoors/beach/sand/lowdesert, -/area/tether_away/beach/desert/explored) "UP" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, /turf/simulated/floor/outdoors/beach/sand/lowdesert, /area/tether_away/beach/desert/explored) "WT" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, -/turf/simulated/floor/outdoors/beach/sand/desert, +/turf/level_border, /area/tether_away/beach/desert/explored) "XZ" = ( /turf/simulated/mineral/ignore_mapgen/classh, @@ -522,182 +485,182 @@ gz "} (2,1,1) = {" wg -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP XZ XZ XZ @@ -716,7 +679,7 @@ gz "} (3,1,1) = {" wg -kK +UP JW JW JW @@ -910,7 +873,7 @@ gz "} (4,1,1) = {" wg -kK +UP JW JW JW @@ -1104,7 +1067,7 @@ gz "} (5,1,1) = {" wg -kK +UP JW JW JW @@ -1298,7 +1261,7 @@ gz "} (6,1,1) = {" wg -kK +UP JW JW JW @@ -1492,7 +1455,7 @@ gz "} (7,1,1) = {" wg -kK +UP JW JW JW @@ -1686,7 +1649,7 @@ gz "} (8,1,1) = {" wg -kK +UP JW JW JW @@ -1880,7 +1843,7 @@ gz "} (9,1,1) = {" wg -kK +UP JW JW JW @@ -2074,7 +2037,7 @@ gz "} (10,1,1) = {" wg -kK +UP JW JW JW @@ -2268,7 +2231,7 @@ gz "} (11,1,1) = {" wg -kK +UP JW JW JW @@ -2462,7 +2425,7 @@ gz "} (12,1,1) = {" wg -kK +UP JW JW JW @@ -2656,7 +2619,7 @@ gz "} (13,1,1) = {" wg -kK +UP JW JW JW @@ -2850,7 +2813,7 @@ gz "} (14,1,1) = {" wg -kK +UP JW JW JW @@ -3044,7 +3007,7 @@ gz "} (15,1,1) = {" wg -kK +UP JW JW JW @@ -3238,7 +3201,7 @@ gz "} (16,1,1) = {" wg -kK +UP JW JW JW @@ -3432,7 +3395,7 @@ gz "} (17,1,1) = {" wg -kK +UP JW JW JW @@ -3626,7 +3589,7 @@ gz "} (18,1,1) = {" wg -kK +UP JW JW JW @@ -3820,7 +3783,7 @@ gz "} (19,1,1) = {" wg -kK +UP JW JW JW @@ -4014,7 +3977,7 @@ gz "} (20,1,1) = {" wg -kK +UP JW JW JW @@ -4208,7 +4171,7 @@ gz "} (21,1,1) = {" wg -kK +UP JW JW JW @@ -4402,7 +4365,7 @@ gz "} (22,1,1) = {" wg -kK +UP JW JW JW @@ -4596,7 +4559,7 @@ gz "} (23,1,1) = {" wg -kK +UP JW JW JW @@ -4790,7 +4753,7 @@ gz "} (24,1,1) = {" wg -kK +UP JW JW JW @@ -4984,7 +4947,7 @@ gz "} (25,1,1) = {" wg -kK +UP JW JW JW @@ -5178,7 +5141,7 @@ gz "} (26,1,1) = {" wg -kK +UP JW JW JW @@ -5372,7 +5335,7 @@ gz "} (27,1,1) = {" wg -kK +UP JW JW JW @@ -5566,7 +5529,7 @@ gz "} (28,1,1) = {" wg -kK +UP JW JW JW @@ -5760,7 +5723,7 @@ gz "} (29,1,1) = {" wg -kK +UP JW JW JW @@ -5954,7 +5917,7 @@ gz "} (30,1,1) = {" wg -kK +UP JW JW JW @@ -6148,7 +6111,7 @@ gz "} (31,1,1) = {" wg -kK +UP JW JW JW @@ -6342,7 +6305,7 @@ gz "} (32,1,1) = {" wg -kK +UP JW JW JW @@ -6536,7 +6499,7 @@ gz "} (33,1,1) = {" wg -kK +UP JW JW JW @@ -6730,7 +6693,7 @@ gz "} (34,1,1) = {" wg -kK +UP JW JW JW @@ -6924,7 +6887,7 @@ gz "} (35,1,1) = {" wg -kK +UP JW JW JW @@ -7118,7 +7081,7 @@ gz "} (36,1,1) = {" wg -kK +UP JW JW JW @@ -7312,7 +7275,7 @@ gz "} (37,1,1) = {" wg -kK +UP JW JW JW @@ -7506,7 +7469,7 @@ gz "} (38,1,1) = {" wg -kK +UP JW JW JW @@ -7700,7 +7663,7 @@ gz "} (39,1,1) = {" wg -kK +UP JW JW JW @@ -7894,7 +7857,7 @@ gz "} (40,1,1) = {" wg -kK +UP JW JW JW @@ -8088,7 +8051,7 @@ gz "} (41,1,1) = {" wg -kK +UP JW JW JW @@ -8282,7 +8245,7 @@ gz "} (42,1,1) = {" wg -kK +UP JW JW JW @@ -8476,7 +8439,7 @@ gz "} (43,1,1) = {" wg -kK +UP JW JW JW @@ -8670,7 +8633,7 @@ gz "} (44,1,1) = {" wg -kK +UP JW JW JW @@ -8864,7 +8827,7 @@ gz "} (45,1,1) = {" wg -kK +UP JW JW JW @@ -9058,7 +9021,7 @@ gz "} (46,1,1) = {" wg -kK +UP JW JW JW @@ -9252,7 +9215,7 @@ gz "} (47,1,1) = {" wg -kK +UP JW JW JW @@ -9446,7 +9409,7 @@ gz "} (48,1,1) = {" wg -kK +UP JW JW JW @@ -9640,7 +9603,7 @@ gz "} (49,1,1) = {" wg -kK +UP JW JW JW @@ -9834,7 +9797,7 @@ gz "} (50,1,1) = {" wg -kK +UP JW JW JW @@ -10028,7 +9991,7 @@ gz "} (51,1,1) = {" wg -kK +UP JW JW JW @@ -10222,7 +10185,7 @@ gz "} (52,1,1) = {" wg -kK +UP JW JW JW @@ -10416,7 +10379,7 @@ gz "} (53,1,1) = {" wg -kK +UP JW JW JW @@ -10610,7 +10573,7 @@ gz "} (54,1,1) = {" wg -kK +UP JW JW JW @@ -10804,7 +10767,7 @@ gz "} (55,1,1) = {" wg -kK +UP JW JW JW @@ -10998,7 +10961,7 @@ gz "} (56,1,1) = {" wg -kK +UP JW JW JW @@ -11192,7 +11155,7 @@ gz "} (57,1,1) = {" wg -kK +UP JW JW JW @@ -11386,7 +11349,7 @@ gz "} (58,1,1) = {" wg -kK +UP JW JW JW @@ -11580,7 +11543,7 @@ gz "} (59,1,1) = {" wg -kK +UP JW JW JW @@ -11774,7 +11737,7 @@ gz "} (60,1,1) = {" wg -kK +UP JW JW JW @@ -11968,7 +11931,7 @@ gz "} (61,1,1) = {" wg -kK +UP JW JW JW @@ -12162,7 +12125,7 @@ gz "} (62,1,1) = {" wg -kK +UP JW JW JW @@ -12356,7 +12319,7 @@ gz "} (63,1,1) = {" wg -kK +UP JW JW JW @@ -12550,7 +12513,7 @@ gz "} (64,1,1) = {" wg -kK +UP JW JW JW @@ -12744,7 +12707,7 @@ gz "} (65,1,1) = {" wg -kK +UP JW JW JW @@ -12938,7 +12901,7 @@ gz "} (66,1,1) = {" wg -kK +UP JW JW JW @@ -13132,7 +13095,7 @@ gz "} (67,1,1) = {" wg -kK +UP JW JW JW @@ -13326,7 +13289,7 @@ gz "} (68,1,1) = {" wg -kK +UP JW JW JW @@ -13520,7 +13483,7 @@ gz "} (69,1,1) = {" wg -kK +UP JW JW JW @@ -13714,7 +13677,7 @@ gz "} (70,1,1) = {" wg -kK +UP JW JW JW @@ -13908,7 +13871,7 @@ gz "} (71,1,1) = {" wg -kK +UP JW JW JW @@ -14102,7 +14065,7 @@ gz "} (72,1,1) = {" wg -kK +UP JW JW JW @@ -14296,7 +14259,7 @@ gz "} (73,1,1) = {" wg -kK +UP JW JW JW @@ -14490,7 +14453,7 @@ gz "} (74,1,1) = {" wg -kK +UP JW JW JW @@ -14684,7 +14647,7 @@ gz "} (75,1,1) = {" wg -kK +UP JW JW JW @@ -14878,7 +14841,7 @@ gz "} (76,1,1) = {" wg -kK +UP JW JW JW @@ -15072,7 +15035,7 @@ gz "} (77,1,1) = {" wg -kK +UP JW JW JW @@ -15266,7 +15229,7 @@ gz "} (78,1,1) = {" wg -kK +UP JW JW JW @@ -15460,7 +15423,7 @@ gz "} (79,1,1) = {" wg -kK +UP JW JW JW @@ -15654,7 +15617,7 @@ gz "} (80,1,1) = {" wg -kK +UP JW JW JW @@ -15848,7 +15811,7 @@ gz "} (81,1,1) = {" wg -kK +UP JW JW JW @@ -16042,7 +16005,7 @@ gz "} (82,1,1) = {" wg -kK +UP JW JW JW @@ -16236,7 +16199,7 @@ gz "} (83,1,1) = {" wg -kK +UP JW JW JW @@ -16430,7 +16393,7 @@ gz "} (84,1,1) = {" wg -kK +UP JW JW JW @@ -16624,7 +16587,7 @@ gz "} (85,1,1) = {" wg -kK +UP JW JW JW @@ -16818,7 +16781,7 @@ gz "} (86,1,1) = {" wg -kK +UP JW JW JW @@ -17012,7 +16975,7 @@ gz "} (87,1,1) = {" wg -kK +UP JW JW JW @@ -17206,7 +17169,7 @@ gz "} (88,1,1) = {" wg -kK +UP JW JW JW @@ -17400,7 +17363,7 @@ gz "} (89,1,1) = {" wg -kK +UP JW JW JW @@ -17594,7 +17557,7 @@ gz "} (90,1,1) = {" wg -kK +UP JW JW JW @@ -17788,7 +17751,7 @@ gz "} (91,1,1) = {" wg -kK +UP JW JW JW @@ -17982,7 +17945,7 @@ gz "} (92,1,1) = {" wg -kK +UP JW JW JW @@ -18176,7 +18139,7 @@ gz "} (93,1,1) = {" wg -kK +UP JW JW JW @@ -18370,7 +18333,7 @@ gz "} (94,1,1) = {" wg -kK +UP JW JW JW @@ -18564,7 +18527,7 @@ gz "} (95,1,1) = {" wg -kK +UP JW JW JW @@ -18758,7 +18721,7 @@ gz "} (96,1,1) = {" wg -kK +UP JW JW JW @@ -18952,7 +18915,7 @@ gz "} (97,1,1) = {" wg -kK +UP JW JW JW @@ -19146,7 +19109,7 @@ gz "} (98,1,1) = {" wg -kK +UP JW JW JW @@ -19340,7 +19303,7 @@ gz "} (99,1,1) = {" wg -kK +UP JW JW JW @@ -19534,7 +19497,7 @@ gz "} (100,1,1) = {" wg -kK +UP JW JW JW @@ -19728,7 +19691,7 @@ gz "} (101,1,1) = {" wg -kK +UP JW JW JW @@ -19922,7 +19885,7 @@ gz "} (102,1,1) = {" wg -kK +UP JW JW JW @@ -20116,7 +20079,7 @@ gz "} (103,1,1) = {" wg -kK +UP JW JW JW @@ -20310,7 +20273,7 @@ gz "} (104,1,1) = {" wg -kK +UP JW JW JW @@ -20504,7 +20467,7 @@ gz "} (105,1,1) = {" wg -kK +UP JW JW JW @@ -20698,7 +20661,7 @@ gz "} (106,1,1) = {" wg -kK +UP JW JW JW @@ -20892,7 +20855,7 @@ gz "} (107,1,1) = {" wg -kK +UP JW JW JW @@ -21086,7 +21049,7 @@ gz "} (108,1,1) = {" wg -kK +UP JW JW JW @@ -21280,7 +21243,7 @@ gz "} (109,1,1) = {" wg -kK +UP JW JW JW @@ -21474,7 +21437,7 @@ gz "} (110,1,1) = {" wg -kK +UP JW JW JW @@ -21668,7 +21631,7 @@ gz "} (111,1,1) = {" wg -kK +UP JW JW JW @@ -21862,7 +21825,7 @@ gz "} (112,1,1) = {" wg -kK +UP JW JW JW @@ -22056,7 +22019,7 @@ gz "} (113,1,1) = {" wg -kK +UP JW JW JW @@ -22250,7 +22213,7 @@ gz "} (114,1,1) = {" wg -kK +UP JW JW JW @@ -22444,7 +22407,7 @@ gz "} (115,1,1) = {" wg -kK +UP JW JW JW @@ -22638,7 +22601,7 @@ gz "} (116,1,1) = {" wg -kK +UP JW JW JW @@ -22832,7 +22795,7 @@ gz "} (117,1,1) = {" wg -kK +UP JW JW JW @@ -23026,7 +22989,7 @@ gz "} (118,1,1) = {" wg -kK +UP JW JW JW @@ -23220,7 +23183,7 @@ gz "} (119,1,1) = {" wg -kK +UP JW JW JW @@ -23414,7 +23377,7 @@ gz "} (120,1,1) = {" wg -kK +UP JW JW JW @@ -23608,7 +23571,7 @@ gz "} (121,1,1) = {" wg -kK +UP JW JW JW @@ -23802,7 +23765,7 @@ gz "} (122,1,1) = {" wg -kK +UP JW JW JW @@ -23996,7 +23959,7 @@ gz "} (123,1,1) = {" wg -kK +UP JW JW JW @@ -24190,7 +24153,7 @@ gz "} (124,1,1) = {" wg -kK +UP JW JW JW @@ -24384,7 +24347,7 @@ gz "} (125,1,1) = {" wg -kK +UP JW JW JW @@ -24578,7 +24541,7 @@ gz "} (126,1,1) = {" wg -kK +UP JW JW JW @@ -24772,7 +24735,7 @@ gz "} (127,1,1) = {" wg -kK +UP JW JW JW @@ -24966,7 +24929,7 @@ gz "} (128,1,1) = {" wg -kK +UP JW JW JW @@ -25160,7 +25123,7 @@ gz "} (129,1,1) = {" wg -kK +UP JW JW JW @@ -25354,7 +25317,7 @@ gz "} (130,1,1) = {" wg -kK +UP JW JW JW @@ -25548,7 +25511,7 @@ gz "} (131,1,1) = {" wg -kK +UP JW JW JW @@ -25742,7 +25705,7 @@ gz "} (132,1,1) = {" wg -kK +UP JW JW JW @@ -25936,7 +25899,7 @@ gz "} (133,1,1) = {" wg -kK +UP JW JW JW @@ -26130,7 +26093,7 @@ gz "} (134,1,1) = {" wg -kK +UP JW JW JW @@ -26324,7 +26287,7 @@ gz "} (135,1,1) = {" wg -kK +UP JW JW JW @@ -26518,7 +26481,7 @@ gz "} (136,1,1) = {" wg -kK +UP JW JW JW @@ -26712,7 +26675,7 @@ gz "} (137,1,1) = {" wg -kK +UP JW JW JW @@ -26906,7 +26869,7 @@ gz "} (138,1,1) = {" wg -kK +UP JW JW JW @@ -27100,7 +27063,7 @@ gz "} (139,1,1) = {" wg -kK +UP JW JW JW @@ -27294,7 +27257,7 @@ gz "} (140,1,1) = {" wg -kK +UP JW JW JW @@ -27488,7 +27451,7 @@ gz "} (141,1,1) = {" wg -kK +UP JW JW JW @@ -27682,7 +27645,7 @@ gz "} (142,1,1) = {" wg -kK +UP JW JW JW @@ -27876,7 +27839,7 @@ gz "} (143,1,1) = {" wg -kK +UP JW JW JW @@ -28070,7 +28033,7 @@ gz "} (144,1,1) = {" wg -kK +UP JW JW JW @@ -28264,7 +28227,7 @@ gz "} (145,1,1) = {" wg -kK +UP JW JW JW @@ -28458,7 +28421,7 @@ gz "} (146,1,1) = {" wg -kK +UP JW JW JW @@ -28652,7 +28615,7 @@ gz "} (147,1,1) = {" wg -kK +UP JW JW JW @@ -28846,7 +28809,7 @@ gz "} (148,1,1) = {" wg -kK +UP JW JW JW @@ -29040,7 +29003,7 @@ gz "} (149,1,1) = {" wg -kK +UP JW JW JW @@ -29234,7 +29197,7 @@ gz "} (150,1,1) = {" wg -kK +UP JW JW JW @@ -29428,7 +29391,7 @@ gz "} (151,1,1) = {" wg -kK +UP JW JW JW @@ -29622,7 +29585,7 @@ gz "} (152,1,1) = {" wg -kK +UP JW JW JW @@ -29816,7 +29779,7 @@ gz "} (153,1,1) = {" wg -kK +UP JW JW JW @@ -30010,7 +29973,7 @@ gz "} (154,1,1) = {" wg -kK +UP JW JW JW @@ -30204,7 +30167,7 @@ gz "} (155,1,1) = {" wg -kK +UP JW JW JW @@ -30398,7 +30361,7 @@ gz "} (156,1,1) = {" wg -kK +UP JW JW JW @@ -30592,7 +30555,7 @@ gz "} (157,1,1) = {" wg -kK +UP JW JW JW @@ -30786,7 +30749,7 @@ gz "} (158,1,1) = {" wg -kK +UP JW JW JW @@ -30980,7 +30943,7 @@ gz "} (159,1,1) = {" wg -kK +UP JW JW JW @@ -31150,12 +31113,12 @@ JW JW JW JW -kK +UP XZ -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ XZ @@ -31174,7 +31137,7 @@ gz "} (160,1,1) = {" wg -kK +UP JW JW JW @@ -31344,13 +31307,13 @@ JW JW JW JW -kK +UP XZ XZ -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ XZ @@ -31368,7 +31331,7 @@ gz "} (161,1,1) = {" wg -kK +UP JW JW JW @@ -31538,13 +31501,13 @@ JW JW JW JW -kK +UP XZ XZ -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ XZ @@ -31562,7 +31525,7 @@ gz "} (162,1,1) = {" wg -kK +UP JW JW JW @@ -31732,14 +31695,14 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP XZ XZ XZ @@ -31756,7 +31719,7 @@ gz "} (163,1,1) = {" wg -kK +UP JW JW JW @@ -31926,14 +31889,14 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP XZ XZ XZ @@ -31950,7 +31913,7 @@ gz "} (164,1,1) = {" wg -kK +UP JW JW JW @@ -32120,13 +32083,13 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP XZ XZ XZ @@ -32144,7 +32107,7 @@ gz "} (165,1,1) = {" wg -kK +UP JW JW JW @@ -32314,13 +32277,13 @@ JW JW JW JW -kK -kK +UP +UP XZ -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ XZ @@ -32338,7 +32301,7 @@ gz "} (166,1,1) = {" gz -kK +UP JW JW JW @@ -32508,13 +32471,13 @@ JW JW JW JW -kK -kK +UP +UP XZ XZ -kK -kK -kK +UP +UP +UP XZ XZ XZ @@ -32702,13 +32665,13 @@ JW JW JW JW -kK -kK +UP +UP XZ XZ -kK -kK -kK +UP +UP +UP XZ XZ XZ @@ -32896,13 +32859,13 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP XZ XZ XZ @@ -33090,13 +33053,13 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP XZ XZ XZ @@ -33166,17 +33129,17 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP JW JW JW @@ -33284,13 +33247,13 @@ JW JW JW JW -kK +UP CM CM -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ XZ @@ -33360,17 +33323,17 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP JW JW JW @@ -33478,13 +33441,13 @@ JW JW JW JW -kK -kK +UP +UP CM CM -kK -kK -kK +UP +UP +UP XZ XZ XZ @@ -33553,18 +33516,18 @@ JW JW JW JW -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP bm -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP JW JW JW @@ -33672,14 +33635,14 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP XZ XZ XZ @@ -33747,18 +33710,18 @@ JW JW JW JW -kK -kK -kK -kK +UP +UP +UP +UP hw eI pc -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP JW JW JW @@ -33868,12 +33831,12 @@ JW JW XZ XZ -kK -kK +UP +UP CM CM -kK -kK +UP +UP XZ XZ XZ @@ -33941,19 +33904,19 @@ JW JW JW JW -kK -kK -kK +UP +UP +UP bm iL eN qu pc bm -kK -kK -kK -kK +UP +UP +UP +UP JW JW JW @@ -34062,13 +34025,13 @@ JW JW XZ XZ -kK -kK -kK +UP +UP +UP CM -kK -kK -kK +UP +UP +UP XZ XZ XZ @@ -34122,7 +34085,7 @@ XZ XZ XZ XZ -kK +UP JW JW JW @@ -34135,19 +34098,19 @@ JW JW JW JW -kK -kK +UP +UP bm hw jD eN eN uY -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP JW JW JW @@ -34255,15 +34218,15 @@ JW JW JW XZ -kK -kK -kK -kK +UP +UP +UP +UP CM -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ XZ @@ -34337,11 +34300,11 @@ eN eN se vd -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP JW JW JW @@ -34448,17 +34411,17 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP +UP Js -kK +UP XZ XZ XZ @@ -34531,11 +34494,11 @@ eN eN uY bm -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP JW JW JW @@ -34641,19 +34604,19 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP +UP CM CM -kK -kK +UP +UP XZ XZ XZ @@ -34724,12 +34687,12 @@ eN eN eN uY -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP JW JW JW @@ -34834,17 +34797,17 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP +UP CM CM NW @@ -34919,11 +34882,11 @@ eN no vd bm -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP JW JW JW @@ -35027,24 +34990,24 @@ JW JW JW JW -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ -kK -kK -kK -kK +UP +UP +UP +UP XZ -kK -kK +UP +UP CM CM -kK -kK -kK +UP +UP +UP lf XZ XZ @@ -35111,13 +35074,13 @@ XZ XZ XZ bm -kK -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP +UP JW JW JW @@ -35221,25 +35184,25 @@ JW JW JW JW -kK -kK -kK -kK +UP +UP +UP +UP XZ XZ XZ -kK -kK -kK +UP +UP +UP XZ XZ JR CM CM CM -kK -kK -kK +UP +UP +UP lf XZ XZ @@ -35307,11 +35270,11 @@ XZ XZ bm wH -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP JW JW JW @@ -35414,11 +35377,11 @@ JW JW JW JW -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP XZ XZ Dc @@ -35428,16 +35391,16 @@ Dc XZ XZ Dc -kK -kK +UP +UP CM CM -kK +UP Js -kK +UP lf lf -gz +XZ gz "} (182,1,1) = {" @@ -35501,11 +35464,11 @@ XZ XZ vn xw -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP JW JW JW @@ -35607,32 +35570,32 @@ JW XZ XZ XZ -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP Dc Dc Dc EJ Eh Dc -kK -kK -kK +UP +UP +UP Ms Ov Rb Rm CM CM -kK -kK -kK -ST -wg +UP +UP +UP +XZ +gz "} (183,1,1) = {" gz @@ -35695,12 +35658,12 @@ XZ XZ XZ yc -kK -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP +UP JW JW JW @@ -35802,31 +35765,31 @@ XZ XZ XZ XZ -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP Dc Eh Ev FM Ev Df -kK -kK +UP +UP Kt -kK +UP LF -kK -kK -kK -kK -kK -kK -kK UP -wg +UP +UP +UP +UP +UP +UP +XZ +gz "} (184,1,1) = {" gz @@ -35891,10 +35854,10 @@ od of yo BS -kK -kK +UP +UP bm -kK +UP JW JW JW @@ -35996,31 +35959,31 @@ XZ XZ XZ XZ -kK -kK -kK -kK -kK +UP +UP +UP +UP +UP Df Ev Ev Ev Ev Dc -kK -kK +UP +UP LF Mv OI LF -kK -kK -kK -kK +UP +UP +UP +UP CM -kK UP -wg +XZ +gz "} (185,1,1) = {" gz @@ -36082,13 +36045,13 @@ XZ XZ XZ vr -lX -lX +zQ +zQ yc vn XZ -kK -kK +UP +UP JW JW JW @@ -36191,30 +36154,30 @@ XZ XZ XZ XZ -kK -kK -kK -kK +UP +UP +UP +UP Dc EJ FM Iw II Dc -kK -kK +UP +UP Mc Nx OO Nx SE Mv -kK -kK +UP +UP CM CM -UP -wg +XZ +gz "} (186,1,1) = {" gz @@ -36276,12 +36239,12 @@ XZ XZ XZ wb -lX +zQ zN od XZ XZ -kK +UP bm JW JW @@ -36388,27 +36351,27 @@ XZ XZ XZ XZ -kK +UP Dc Dc Dc Dc Dc Dc -XZ -XZ +UP +UP Dc Dc Dc Dc Dc -kK -kK -kK -kK -kK UP -wg +UP +UP +UP +UP +XZ +gz "} (187,1,1) = {" gz @@ -36469,9 +36432,9 @@ XZ XZ XZ XZ -lX -lX -lX +zQ +zQ +zQ XZ XZ XZ @@ -36588,21 +36551,21 @@ XZ XZ XZ XZ +UP +UP +UP +UP XZ XZ XZ XZ XZ +UP +UP +UP +UP XZ -XZ -XZ -XZ -kK -kK -kK -kK -WT -wg +gz "} (188,1,1) = {" XZ @@ -36663,7 +36626,7 @@ XZ XZ XZ od -lX +zQ yj of XZ @@ -36781,22 +36744,22 @@ XZ XZ XZ XZ +UP +UP +UP +UP +UP XZ XZ XZ XZ XZ XZ -XZ -XZ -XZ -XZ -XZ -kK -kK -kK UP -wg +UP +UP +XZ +gz "} (189,1,1) = {" gz @@ -36855,9 +36818,9 @@ gz XZ XZ XZ -lX -lX -lX +XZ +zQ +zQ vr od XZ @@ -36975,6 +36938,11 @@ XZ XZ XZ XZ +UP +UP +UP +UP +UP XZ XZ XZ @@ -36985,11 +36953,6 @@ XZ XZ XZ XZ -XZ -XZ -XZ -XZ -gz gz "} (190,1,1) = {" @@ -37049,11 +37012,12 @@ gz XZ XZ XZ -lX +XZ of -lX -lX +zQ +zQ wb +zQ XZ XZ XZ @@ -37168,12 +37132,11 @@ XZ XZ XZ XZ -XZ -XZ -XZ -XZ -XZ -XZ +UP +UP +UP +UP +UP XZ XZ XZ @@ -37243,18 +37206,13 @@ gz XZ XZ gz -mV -mV -mV -mV -zQ -gz -XZ -XZ -XZ -XZ XZ XZ +zQ +zQ +zQ +zQ +zQ XZ XZ XZ @@ -37368,6 +37326,11 @@ XZ XZ XZ XZ +UP +UP +UP +UP +UP XZ XZ XZ @@ -37439,6 +37402,11 @@ gz gz gz gz +WT +WT +WT +WT +WT gz gz gz @@ -37552,16 +37520,11 @@ gz gz gz gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz +WT +WT +WT +WT +WT gz gz gz diff --git a/maps/sectors/miaphus_192/miaphus_192.dm b/maps/sectors/miaphus_192/miaphus_192.dm index 64104a569ff..35ce55bd03a 100644 --- a/maps/sectors/miaphus_192/miaphus_192.dm +++ b/maps/sectors/miaphus_192/miaphus_192.dm @@ -15,6 +15,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/miaphus + air_outdoors = /datum/atmosphere/planet/classh /datum/map_level/sector/miaphus_192/beach id = "MiaphusBeach192" diff --git a/maps/sectors/mining_140/mining_140.dm b/maps/sectors/mining_140/mining_140.dm index 3c60e190430..f117bb1f5c2 100644 --- a/maps/sectors/mining_140/mining_140.dm +++ b/maps/sectors/mining_140/mining_140.dm @@ -16,6 +16,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classg + air_outdoors = /datum/atmosphere/planet/classg /datum/map_level/sector/mining_140/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() diff --git a/maps/sectors/mining_192/mining_192.dm b/maps/sectors/mining_192/mining_192.dm index ae7e60b98b1..37ecebb5066 100644 --- a/maps/sectors/mining_192/mining_192.dm +++ b/maps/sectors/mining_192/mining_192.dm @@ -16,6 +16,7 @@ ZTRAIT_GRAVITY, ) planet_path = /datum/planet/classg + air_outdoors = /datum/atmosphere/planet/classg /datum/map_level/sector/mining_192/on_loaded_immediate(z_index, list/datum/callback/additional_generation) . = ..() diff --git a/maps/sectors/virgo4_140/levels/virgo4_140_beach.dmm b/maps/sectors/virgo4_140/levels/virgo4_140_beach.dmm index 82e50fff624..b57aca74517 100644 --- a/maps/sectors/virgo4_140/levels/virgo4_140_beach.dmm +++ b/maps/sectors/virgo4_140/levels/virgo4_140_beach.dmm @@ -1,7 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/simulated/floor/outdoors/beach/sand/desert, -/area/tether_away/beach/jungle) "ab" = ( /obj/effect/overlay/palmtree_r, /turf/simulated/floor/outdoors/beach/sand/desert, @@ -49,11 +46,6 @@ "am" = ( /turf/simulated/floor/water/deep, /area/tether_away/beach/water) -"an" = ( -/turf/simulated/mineral/floor/cave{ - name = "dirt" - }, -/area/tether_away/beach/jungle) "ao" = ( /obj/structure/simple_door/wood, /turf/simulated/floor/wood, @@ -293,10 +285,6 @@ /turf/simulated/floor/water/deep, /area/tether_away/beach/water) "bo" = ( -/obj/effect/map_effect/portal/master/side_a{ - name = "V4_Cave_Entrance"; - portal_id = "V4_cave_step" - }, /turf/simulated/mineral/floor/cave{ name = "dirt" }, @@ -307,18 +295,11 @@ "bq" = ( /turf/simulated/mineral/ignore_mapgen, /area/tether_away/beach/jungle) -"br" = ( -/obj/effect/map_effect/portal/line/side_a, -/turf/simulated/mineral/floor/cave{ - name = "dirt" - }, -/area/tether_away/beach/jungle) "bs" = ( /obj/effect/overlay/coconut, /turf/simulated/floor/outdoors/grass, /area/tether_away/beach/jungle) "bR" = ( -/obj/effect/map_effect/portal/line/side_a, /turf/simulated/floor/outdoors/beach/sand/lowdesert, /area/tether_away/beach/jungle) "bT" = ( @@ -338,7 +319,8 @@ }, /area/tether_away/beach/resort) "ce" = ( -/turf/simulated/floor/outdoors/beach/sand/lowdesert, +/obj/effect/overlay/palmtree_r, +/turf/simulated/floor/outdoors/beach/sand, /area/tether_away/beach/jungle) "cf" = ( /turf/simulated/floor/tiled/asteroid_steel, @@ -456,7 +438,6 @@ /turf/simulated/floor/tiled/kafel_full/white, /area/tether_away/beach/resort/lockermed) "eX" = ( -/obj/effect/map_effect/portal/line/side_a, /turf/simulated/floor/outdoors/beach/sand/desert, /area/tether_away/beach/jungle) "fl" = ( @@ -907,11 +888,7 @@ /turf/simulated/floor/water, /area/tether_away/beach/cavebase) "px" = ( -/obj/effect/map_effect/portal/master/side_a{ - name = "V4_Desert_Entrance"; - portal_id = "V4_desert_step" - }, -/turf/simulated/floor/outdoors/beach/sand/lowdesert, +/turf/level_border, /area/tether_away/beach/jungle) "py" = ( /obj/structure/cable{ @@ -1928,9 +1905,6 @@ }, /turf/simulated/floor/tiled/kafel_full/white, /area/tether_away/beach/resort/lockermed) -"TK" = ( -/turf/unsimulated/wall/planetary/desert/standard_temp, -/area/tether_away/beach/jungle) "TU" = ( /obj/tether_away_spawner/beach_outside, /turf/simulated/floor/outdoors/beach/sand/desert, @@ -3122,7 +3096,7 @@ bj bj Sv Ee -aa +eX VS CP bj @@ -3135,11 +3109,11 @@ bi (8,1,1) = {" MA bq -bq -bq -bq -bq -bq +bp +bp +bp +eX +eX bq bq bq @@ -3263,8 +3237,8 @@ am bj Sv Ee -aa -aa +eX +eX ab Yv bj @@ -3277,11 +3251,11 @@ bi (9,1,1) = {" MA bq -bq -bq -bq -bq -bq +bp +eX +bp +bp +eX bq bq bq @@ -3404,10 +3378,10 @@ am bj bj pS -aa -aa -aa -aa +eX +eX +eX +eX VS CP bj @@ -3419,11 +3393,11 @@ bi (10,1,1) = {" MA bq -bq -bq -bq -bq -bq +eX +eX +bp +bp +eX bq bq bq @@ -3547,10 +3521,10 @@ bj Sv Ee ab -aa -aa -aa -aa +eX +eX +eX +eX Yv bj bj @@ -3561,13 +3535,13 @@ bi (11,1,1) = {" MA bq -bq -bq -bq -bq -bq -bq -bq +bR +eX +eX +bp +eX +bp +bp bq bq bq @@ -3687,12 +3661,12 @@ am bj Sv Ee -aa -aa -aa +eX +eX +eX ab -aa -aa +eX +eX VS CP bj @@ -3701,17 +3675,17 @@ am bi "} (12,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +px +bp +bp +eX +eX +eX +eX +eX +eX +bp +bp bq bq bq @@ -3835,7 +3809,7 @@ tr tr tr tr -aa +eX Yv bj bn @@ -3843,19 +3817,19 @@ am bi "} (13,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +px +bp +bp +bp +bp +eX +eX +eX +eX +bp +bp +bp +bp bq bq bq @@ -3977,7 +3951,7 @@ aq aq Wu tr -aa +eX Yv bj am @@ -3985,20 +3959,20 @@ am bi "} (14,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +px +bp +eX +bp +eX +bp +bp +bp +bp +bp +bp +bp +bp +bp bq bq bq @@ -4119,7 +4093,7 @@ aw aB Wu tr -aa +eX Yv bj am @@ -4127,21 +4101,21 @@ am bi "} (15,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +px +bp +eX +eX +eX +bp +bp +bp +bp +bp +bp +bp +eX +bp +bp bq ae ae @@ -4253,7 +4227,7 @@ am am bj pS -aa +eX tr aq vU @@ -4261,7 +4235,7 @@ aw aq Wu tr -aa +eX Yv bj am @@ -4269,21 +4243,21 @@ am bi "} (16,1,1) = {" -MA -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +px +bp +eX +eX +eX +bp +bp +bp +bp +bp +bp +bp +eX +eX +bp bq ae ae @@ -4356,13 +4330,13 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX ae ae ae @@ -4403,7 +4377,7 @@ aq aq Wu tr -aa +eX Yv bj am @@ -4413,19 +4387,19 @@ bi (17,1,1) = {" MA bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +eX +eX +eX +eX +bp +bp +bp +bp +eX +eX +eX +eX +eX ae ae ae @@ -4496,20 +4470,20 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -ae -ae -ae +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +ae +ae +ae +ae ae ae bq @@ -4520,7 +4494,7 @@ bq bq bq bq -aa +eX tr aj ak @@ -4555,19 +4529,19 @@ bi (18,1,1) = {" MA bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -ae -ae +eX +eX +bp +bp +eX +eX +bp +bp +eX +eX +eX +eX +eX ae au ae @@ -4636,21 +4610,21 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX aC ae ae @@ -4661,8 +4635,8 @@ bq bq bq bq -aa -aa +eX +eX tr aj ak @@ -4683,9 +4657,9 @@ bj le oC BG -aa -aa -aa +eX +eX +eX ab Yv bj @@ -4697,19 +4671,19 @@ bi (19,1,1) = {" MA bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -ae -ae -ae +eX +eX +bp +bp +eX +eX +eX +eX +eX +eX +bp +bp +eX au ae ae @@ -4776,35 +4750,35 @@ bq ae ae ae -aa -aa -aa +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -bq -bq -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +bq +bq +eX +eX tr aj ak @@ -4827,7 +4801,7 @@ bj le oC BG -aa +eX pq Ey bj @@ -4839,20 +4813,20 @@ bi (20,1,1) = {" MA bq -bq -bq -bq -ae -bq -bq -bq -bq -bq -ae -ae -au -au -au +eX +eX +eX +bp +eX +eX +eX +eX +eX +bR +bp +bp +eX +eX ae ae ae @@ -4909,44 +4883,44 @@ bq bq bq bq -aa +eX bq bq bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq -aa -aa +eX +eX tr aj ak @@ -4981,20 +4955,20 @@ bi (21,1,1) = {" MA bq -bq -bq -bq -ae -ae -bq -bq -bq -ae -ae -au -au +bR ae ae +eX +eX +eX +bp +eX +eX +eX +bp +bp +bp +eX ae ae ae @@ -5006,9 +4980,9 @@ bp bp bp bp -aa +eX ac -aa +eX bp bp bp @@ -5050,45 +5024,45 @@ bq bq bq bq -aa -aa -aa -bq -bq -bq -ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +bq +bq +bq +ae +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -5123,34 +5097,34 @@ bi (22,1,1) = {" MA bq -bq -bq -bq -ae -ae -ae -ae -ai -ae -ae -ae -ae +bR ae ae -aa -aa -bp -bp +eX +eX +eX bp -aa -aa +ce +eX +eX +eX +bp +bp +eX +eX +eX +bp +bp +bp +eX +eX ac -aa +eX bp -aa -aa -aa -aa +eX +eX +eX +eX bp bp bp @@ -5191,46 +5165,46 @@ bq bq bq bq -aa -aa -aa -aa -aa -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -5265,36 +5239,36 @@ bi (23,1,1) = {" MA bq -bq -bq -bq -ae -ae -ae -ae +bR +bR ae +bR +bR ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +bp +eX +eX +eX +bp +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp @@ -5333,46 +5307,46 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -5413,31 +5387,31 @@ bq ae ae ae -ae -ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp @@ -5475,46 +5449,46 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -5551,40 +5525,40 @@ MA bq bq bq +bR bq -bq -ae ae ae -ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp -aa -aa +eX +eX bp bp bp @@ -5618,68 +5592,68 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tr -aj -ak -bf -am -am -am -am -am -am -am -am -am -am -am -am -am -am -am -bj -bj -bj -Sv +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +ab +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +tr +aj +ak +bf +am +am +am +am +am +am +am +am +am +am +am +am +am +am +am +bj +bj +bj +Sv Kw CP bj @@ -5697,36 +5671,36 @@ bq bq ae ae -ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp @@ -5760,45 +5734,45 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX xW -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -5822,7 +5796,7 @@ am bj Sv Ee -aa +eX Yv bj am @@ -5839,37 +5813,37 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX bp bp bp @@ -5902,45 +5876,45 @@ bq bq bq xW -aa -aa -aa -aa +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX tr aj ak @@ -5981,38 +5955,38 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab bh -aa -aa -aa -aa +eX +eX +eX +eX xW -aa -aa -aa -aa +eX +eX +eX +eX bp bp bp @@ -6037,55 +6011,55 @@ bq bq bq bq -aa -aa +eX +eX bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX ac bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tr -aj -ak +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +tr +aj +ak bf bf am @@ -6123,38 +6097,38 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp @@ -6179,52 +6153,52 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -6265,38 +6239,38 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp @@ -6322,51 +6296,51 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX xW -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -6407,40 +6381,40 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX GS bp bq @@ -6462,53 +6436,53 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -6549,41 +6523,41 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -aa -aa -aa -aa -aa -aa -aa -aa -bp -bp -aa -ab +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +ab +eX +eX +eX +eX +eX +eX +eX +eX +bp +bp +eX +ab bp bq bq @@ -6604,53 +6578,53 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bb aj ak @@ -6691,42 +6665,42 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa +eX bp -aa -aa -aa -aa +eX +eX +eX +eX bq bq bq @@ -6746,53 +6720,53 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bc aj ak @@ -6832,43 +6806,43 @@ bq bq bq ae -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -6885,56 +6859,56 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -6974,46 +6948,44 @@ bq bq ae ae -aa -aa -aa -ce -aa +eX +eX +eX +bR +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +bq bq bq bq @@ -7027,50 +6999,52 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -7114,49 +7088,49 @@ bq bq bq ae -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq -aa +eX bq bq bq @@ -7168,49 +7142,49 @@ bq bq bq bq -aa -aa -aa -aa +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa +eX +eX +eX lI lI lI @@ -7256,103 +7230,103 @@ bq bq bq ae -ce -aa -aa -aa -aa +bR +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -aa -aa -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +eX +eX +bq +bq +bq +bq +bq +bq +bq +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -7399,100 +7373,100 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -bp -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -bq -bq -bq -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +bp +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +bq +bq +bq +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -7541,99 +7515,99 @@ bq ae ae ae -aa -aa -ce -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -bq -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +bq +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -7683,98 +7657,98 @@ bq ae ae ae -aa -aa -aa -ce -aa -aa +eX +eX +eX +eX +eX +eX bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -bq -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +bq +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -7825,52 +7799,52 @@ ae ae ae ai -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX ab -aa -aa -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX bq bq bq @@ -7878,44 +7852,44 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -7962,57 +7936,57 @@ bi "} (42,1,1) = {" MA -MA -ce -ae +eX +eX +eX ae -aa -ce -ce -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -8020,42 +7994,42 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX xW -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -8103,100 +8077,100 @@ am bi "} (43,1,1) = {" -TK -px -ce -ce -aa -ce -ce -ce -ce -ce -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +MA +eX +eX +eX +eX +bR +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -8245,99 +8219,99 @@ am bi "} (44,1,1) = {" -TK +MA +eX +eX +eX bR -ce -ce -ce -aa -ce -ce -ce -ce -ce -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +bR +eX +eX +eX +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX pP lI lI @@ -8387,98 +8361,98 @@ am bi "} (45,1,1) = {" -TK +MA +eX bR -ce -ce -bp +eX +eX bp -ce -ce -aa -aa -aa -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +eX +eX +eX +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX xW -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX xW -aa -aa -aa +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -8529,96 +8503,96 @@ am bi "} (46,1,1) = {" -TK -bR -bp -ce -ce +MA +eX bp +bR +bR +eX +eX +eX +bR +bR +eX +eX +eX +eX +bR +eX +eX +eX +eX +eX bp -aa -ce -ce -aa -aa -aa -aa -ce -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -8671,95 +8645,95 @@ am bi "} (47,1,1) = {" -TK -bR +MA +eX bp bp -ce -ce -aa -aa -aa -ce -aa -aa -aa -aa -aa -ce -aa -aa +bR +eX +eX +eX +eX +bR +eX +eX +eX +eX +eX +bR +eX +eX bp bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -8813,92 +8787,92 @@ am bi "} (48,1,1) = {" -TK +MA +eX +bR +bR +bR +eX eX -ce -ce -ce -ce -ce bp -aa +eX bp -aa -aa +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -8955,90 +8929,90 @@ am bi "} (49,1,1) = {" -TK +MA +eX bR -ce -ce -ce -ce -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa +eX +eX +eX +eX lI lI lI @@ -9098,88 +9072,88 @@ bi "} (50,1,1) = {" MA -MA +eX ae -ce -ce -ce -ce -aa -aa -aa -bp -bp -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +bR +bR +bR +eX +eX +eX +bp +bp +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -9243,84 +9217,84 @@ MA bq ae ae -ce -ce -aa -aa -aa -aa -aa -bp -bp -bp -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +eX +eX +eX +eX +eX +eX +bp +bp +bp +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -9385,83 +9359,83 @@ MA bq bq ae -ce -ce -aa -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +bR +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX YO -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -9528,81 +9502,81 @@ bq bq ae ae -ce -aa -aa -aa -aa -aa -aa -aa -aa -bp -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +eX +eX +eX +eX +eX +eX +eX +eX +bp +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -9671,79 +9645,79 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -ce -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +bR +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -9811,80 +9785,80 @@ MA bq bq ae -ce +bR ae -aa -aa -aa -ce -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -9953,79 +9927,79 @@ MA bq bq bq -ce +bR ae -aa -ce -aa -aa -aa +eX +bR +eX +eX +eX ac bh -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -10097,76 +10071,76 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -10240,75 +10214,75 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -10383,74 +10357,74 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -10526,73 +10500,73 @@ ae ae ae ae -aa -aa -aa -aa -aa -ce -aa -aa -aa +eX +eX +eX +eX +eX +bR +eX +eX +eX bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -10668,73 +10642,73 @@ bq bq ae ae -aa -aa -ce -ce -aa -ce -aa -aa -aa +eX +eX +bR +bR +eX +bR +eX +eX +eX ac -aa -aa -aa -bp -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +bp +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -10810,73 +10784,73 @@ bq bq bq ae -aa -aa -aa -ce -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +bR +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -10953,72 +10927,72 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -11096,71 +11070,71 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp -aa -aa +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -11239,70 +11213,70 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -11387,64 +11361,64 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -11530,63 +11504,63 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -11672,63 +11646,63 @@ ae ae ae ae -aa -aa -aa -aa +eX +eX +eX +eX ab -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bm -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX lI lI lI @@ -11814,63 +11788,63 @@ ae bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -11956,62 +11930,62 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -12098,62 +12072,62 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -12241,61 +12215,61 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -12383,60 +12357,60 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -12526,59 +12500,59 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -12668,59 +12642,59 @@ bq bq ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -12812,56 +12786,56 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp lI lI @@ -12955,56 +12929,56 @@ ae aC bs ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -bp -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +bp +eX lI lI lI @@ -13099,53 +13073,53 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa +eX bp bp -aa -aa +eX +eX bp -aa -aa -aa +eX +eX +eX lI lI lI @@ -13242,52 +13216,52 @@ ae ae ae ae -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bh -aa +eX bp bp bp -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX lI lI lI @@ -13384,51 +13358,51 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab lI lI @@ -13527,50 +13501,50 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -13668,51 +13642,51 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -13810,51 +13784,51 @@ au ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp bp bp -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -13952,50 +13926,50 @@ au ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa +eX +eX +eX bp bp bp bp -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -14094,49 +14068,49 @@ au ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX xW -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX lI lI lI @@ -14237,46 +14211,46 @@ ae ae ae ae -aa -aa -aa -aa +eX +eX +eX +eX ac -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -14379,45 +14353,45 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa +eX +eX +eX +eX ac -aa -aa -aa -aa +eX +eX +eX +eX lI lI lI @@ -14521,43 +14495,43 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -14663,42 +14637,42 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa +eX +eX +eX ab bh -aa -aa -aa -aa -aa -aa -bp -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +bp +eX +eX +eX +eX +eX +eX ac -aa +eX lI lI -aa +eX lI lI lI @@ -14805,23 +14779,23 @@ au ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa +eX +eX +eX +eX lI lI Nv @@ -14836,7 +14810,7 @@ lI lI lI lI -aa +eX lI lI lI @@ -14947,22 +14921,22 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa +eX lI lI lI @@ -15089,21 +15063,21 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -15230,22 +15204,22 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI Nv lI @@ -15370,22 +15344,22 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bp lI lI @@ -15512,23 +15486,23 @@ ae ae ae ae -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX bp bp -aa -aa -aa -aa +eX +eX +eX +eX lI lI lI @@ -15653,24 +15627,24 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX bp -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX ac -aa +eX lI lI lI @@ -15780,10 +15754,10 @@ bq bq bq bq -an +bo bq bq -an +bo bq bq bq @@ -15795,24 +15769,24 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -15922,10 +15896,10 @@ bq bq bq bq -an +bo bq -an -an +bo +bo bq bq bq @@ -15937,23 +15911,23 @@ ae ae ae ai -aa -aa -aa +eX +eX +eX bp bp -aa +eX bp bp -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16063,11 +16037,11 @@ bq bq bq bq -an -an -an -an -an +bo +bo +bo +bo +bo bq bq bq @@ -16080,22 +16054,22 @@ ae ae bs ae -aa -aa +eX +eX bp bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16205,11 +16179,11 @@ bq bq bq bq -an -an -an -an -an +bo +bo +bo +bo +bo bq bq bq @@ -16222,22 +16196,22 @@ ax ax ae ae -aa +eX bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16342,15 +16316,15 @@ bi MA bq bq -an +bo bq bq -an +bo bq -an -an -an -an +bo +bo +bo +bo av bq bq @@ -16364,22 +16338,22 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16483,16 +16457,16 @@ bi (102,1,1) = {" MA MA -an -an -an -an -an -an -an -an -an -an +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo av av rm @@ -16506,22 +16480,22 @@ ae ae bp bp -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16623,21 +16597,21 @@ am bi "} (103,1,1) = {" -MA +px +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo bo -an -an -an -an -an -an -an -an -an -an -an -an -an ae ae ae @@ -16647,23 +16621,23 @@ ax ax ax ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16689,9 +16663,9 @@ lI lI lI lI -aa -aa -aa +eX +eX +eX lI lI lI @@ -16732,7 +16706,7 @@ hg lI lI lI -aa +eX tr aj ak @@ -16765,20 +16739,20 @@ am bi "} (104,1,1) = {" -MA -br -an -an -an -an -an -an -an -an -an -an -an -an +px +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo av ae ax @@ -16789,24 +16763,24 @@ ax ae ax ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16830,11 +16804,11 @@ lI lI lI lI -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX lI lI lI @@ -16871,10 +16845,10 @@ lI lI lI lI -aa -aa -aa -aa +eX +eX +eX +eX tr aj ak @@ -16907,18 +16881,18 @@ am bi "} (105,1,1) = {" -MA -br -an -an -an -an -an -an -an -an -an -an +px +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo av av rm @@ -16931,24 +16905,24 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -16971,14 +16945,14 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17012,11 +16986,11 @@ lI lI lI lI -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX tr aj ak @@ -17049,18 +17023,18 @@ am bi "} (106,1,1) = {" -MA -br -an -an -an -an -an -an -an -an -an -an +px +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo av av bq @@ -17073,25 +17047,25 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17113,14 +17087,14 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17152,13 +17126,13 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -17191,19 +17165,19 @@ am bi "} (107,1,1) = {" -MA -br -an -an -an -an -an -an -an -an -an -an -an +px +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo av bq bq @@ -17215,26 +17189,26 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17254,15 +17228,15 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17293,12 +17267,12 @@ xT lI lI lI -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX ab bh tr @@ -17333,19 +17307,19 @@ am bi "} (108,1,1) = {" -MA -br -an -an -an -an -an -an -an -an -an -an -an +px +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo +bo bq bq bq @@ -17357,27 +17331,27 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17394,18 +17368,18 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -17435,14 +17409,14 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -17477,15 +17451,15 @@ bi (109,1,1) = {" MA MA -an -an -an -an -an -an -an -an -an +bo +bo +bo +bo +bo +bo +bo +bo +bo bq bq bq @@ -17500,27 +17474,27 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17536,18 +17510,18 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa +eX +eX lI lI Nv @@ -17576,15 +17550,15 @@ Nv lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -17619,15 +17593,15 @@ bi (110,1,1) = {" MA bq -an -an -an -an -an -an -an -an -an +bo +bo +bo +bo +bo +bo +bo +bo +bo bq bq bq @@ -17643,28 +17617,28 @@ ae ae ae ae -aa +eX ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI @@ -17677,19 +17651,19 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX ab bh -aa -aa -aa -aa +eX +eX +eX +eX lI lI Nv @@ -17718,15 +17692,15 @@ OK lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -17762,14 +17736,14 @@ bi MA bq bq -an -an -an +bo +bo +bo bq bq bq bq -an +bo bq bq bq @@ -17789,50 +17763,50 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -17860,15 +17834,15 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -17905,7 +17879,7 @@ MA bq bq bq -an +bo bq bq bq @@ -17931,50 +17905,50 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX hg us Nv @@ -18001,16 +17975,16 @@ Nv lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -18074,50 +18048,50 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI Nv Nv @@ -18143,16 +18117,16 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX ab -aa -aa -aa +eX +eX +eX tr aj ak @@ -18215,52 +18189,52 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI Nv Nv @@ -18284,17 +18258,17 @@ Nv Nv lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -18357,52 +18331,52 @@ au ae ae ae -aa -aa -aa +eX +eX +eX xW -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -18425,18 +18399,18 @@ Nv Nv Nv lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -18498,54 +18472,54 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI Nv @@ -18566,19 +18540,19 @@ Nv Nv Nv lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -18640,54 +18614,54 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX xW -aa -aa -aa +eX +eX +eX lI lI lI @@ -18708,19 +18682,19 @@ Nv Nv lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -18781,60 +18755,60 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX pP lI -aa +eX lI lI lI @@ -18849,20 +18823,20 @@ lI lI lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -18924,87 +18898,87 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX lI lI lI hg lI lI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -19066,87 +19040,87 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX tr aj ak @@ -19209,86 +19183,86 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ac -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -19352,85 +19326,85 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab bh -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -19495,84 +19469,84 @@ ae ae ae ae -aa -ae -ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +ae +ae +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -19641,80 +19615,80 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -19784,79 +19758,79 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -19926,79 +19900,79 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -20070,77 +20044,77 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -bq -bq -bq -bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +bq +bq +bq +bq +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -20214,53 +20188,53 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -20272,17 +20246,17 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -20357,52 +20331,52 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -20415,16 +20389,16 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX tr aj ak @@ -20501,49 +20475,49 @@ bq ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX Dr -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX ab -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -20558,14 +20532,14 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX bq ba aj @@ -20644,46 +20618,46 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -20701,12 +20675,12 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX bq bq ba @@ -20788,43 +20762,43 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -20844,11 +20818,11 @@ bq bq bq bq -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX bq bq ba @@ -20931,38 +20905,38 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -20988,8 +20962,8 @@ bq bq bq bq -aa -aa +eX +eX bq bq bq @@ -21077,32 +21051,32 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -21220,30 +21194,30 @@ ae ae ae ae -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -21365,26 +21339,26 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -21508,24 +21482,24 @@ bq bq bq bq -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX bq bq bq @@ -21652,19 +21626,19 @@ bq bq bq bq -aa -aa -aa -aa -aa +eX +eX +eX +eX +eX bq bq bq bq bq -aa -aa -aa +eX +eX +eX bq bq bq diff --git a/maps/sectors/virgo4_140/levels/virgo4_140_cave.dmm b/maps/sectors/virgo4_140/levels/virgo4_140_cave.dmm index a456a5525ef..e918fce8cb9 100644 --- a/maps/sectors/virgo4_140/levels/virgo4_140_cave.dmm +++ b/maps/sectors/virgo4_140/levels/virgo4_140_cave.dmm @@ -1,33 +1,16 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 1; - name = "V4_to_beach"; - portal_id = "V4_cave_step" - }, -/turf/simulated/mineral/floor/ignore_mapgen/cave, -/area/tether_away/cave/explored/normal) "b" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, /turf/simulated/mineral/floor/ignore_mapgen/cave, -/area/tether_away/cave/explored/normal) +/area/tether_away/cave/unexplored/normal) "c" = ( /turf/simulated/mineral/cave, /area/tether_away/cave/unexplored/normal) "d" = ( -/turf/simulated/mineral/floor/ignore_mapgen/cave, +/turf/level_border, /area/tether_away/cave/explored/normal) "e" = ( /turf/simulated/mineral/cave, /area/tether_away/cave/explored/normal) -"h" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 4 - }, -/turf/simulated/mineral/floor/ignore_mapgen/cave, -/area/tether_away/cave/explored/normal) "i" = ( /obj/away_mission_init/beachcave, /turf/simulated/mineral/cave, @@ -40,11 +23,6 @@ /turf/simulated/mineral/floor/ignore_mapgen/cave, /area/tether_away/cave/explored/normal) "I" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 4; - name = "desert to caves"; - portal_id = "V4_cave_desert_step" - }, /turf/simulated/mineral/floor/ignore_mapgen/cave, /area/tether_away/cave/explored/normal) "M" = ( @@ -58,6 +36,11 @@ M M M M +d +d +d +d +d M M M @@ -171,16 +154,11 @@ M M M M -M -M -M -M -M -M -M -M -M -M +d +d +d +d +d M M M @@ -195,165 +173,19 @@ M "} (2,1,1) = {" M -j -j -j -j -j -h -h -h -h -I -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -M -"} -(3,1,1) = {" -M -j -e -e -e -d -d -d -d -d -d -e -e e e e e e +I +I +I +I +I +j +j +j e e e @@ -464,6 +296,11 @@ e e e e +I +I +I +I +I e e e @@ -474,25 +311,20 @@ e e e e -j M "} -(4,1,1) = {" +(3,1,1) = {" M -j e e -d -d -d -d -d -d -d -d -e e e +I +I +I +I +I +I e e e @@ -606,6 +438,11 @@ e e e e +I +I +I +I +I e e e @@ -616,26 +453,21 @@ e e e e -j M "} -(5,1,1) = {" +(4,1,1) = {" M -j -e -d -d -d -e -d -d -d -d -d -e e e e +I +I +I +I +I +I +I +I e e e @@ -748,6 +580,11 @@ e e e e +I +I +I +I +I e e e @@ -758,23 +595,164 @@ e e e e -j M "} -(6,1,1) = {" +(5,1,1) = {" M -j e -d -d e +I +I +I e +I +I +I +I +I e -d -d -d -d -d +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +I +I +I +e +e +e +e +e +e +e +e +e +e +M +"} +(6,1,1) = {" +M +e +e +I +I +e +e +e +I +I +I +I +I e e e @@ -888,10 +866,10 @@ c c c c -c -c -c -c +b +b +b +b c c c @@ -900,25 +878,25 @@ c e e e -j +e M "} (7,1,1) = {" M -j e -d -d e +I +I e e -d -d -d -d -d -d -d +e +I +I +I +I +I +I +I e e e @@ -1030,38 +1008,38 @@ c c c c -c -c -c -c -c -c +b +b +b +b +b +b c c c e e e -j +e M "} (8,1,1) = {" M -j -d -d e +I +I e e e -d -d -d -d -d -d -d -d +e +I +I +I +I +I +I +I +I e e e @@ -1173,53 +1151,46 @@ c c c c -c -c -c -c -c -c -c -c +b +b +b +b +b +b +b +b +I e e e -j M "} (9,1,1) = {" M -j -d -d e +I +I e e e -d -d e +I +I e -d -d -d -d -d -d -d -d -d -d -d -d -d -c -c -c -c -c -c -c +e +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -1323,46 +1294,46 @@ c c c c +b +b +b +b +b +b +b +I e e e -j M "} (10,1,1) = {" M -j -d -d e +I +I e e -d -d -d e +I +I +I e -d -d -d -d -d -d -d -d -d -d -d -d -d -d -c -c -c -c -c -c -c +e +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -1465,46 +1436,46 @@ c c c c +b +b +b +b +b +b +b +I +I +I e -e -e -j M "} (11,1,1) = {" M -j -d -d e +I +I e e -d -d e +I +I e e e -d -d -d -d -d -d -d -d e +I +I +I +I +I +I +I +I e -d -d -d -c -c -c -c -c -c -c +e +I +I +I c c c @@ -1607,43 +1578,47 @@ c c c c +b +b +b +b +b +b +b +I +I +I e -e -e -j M "} (12,1,1) = {" M -j -d -d +e +I +I e e e -d -d -d +I +I +I e e e e e -d -d -d -d -d +I +I +I +I +I e e e c -d -d -d -c -c -c +I +I +I c c c @@ -1749,44 +1724,44 @@ c c c c -e -e -e -j -M +b +b +b +I +I +I +I +d "} (13,1,1) = {" M -j -d -d -d e +I +I +I e -d -d -d -d e +I +I +I +I e e -d -d -d -d -d +e +I +I +I +I +I e e e e c -d -d +I +I r -d -c -c -c +I c c c @@ -1891,31 +1866,34 @@ c c c c -e -e -e -j -M +b +b +b +I +I +I +I +d "} (14,1,1) = {" M -j e -d -d e +I +I e -d -d -d -d -d -d -d -d -d -d -d +e +I +I +I +I +I +I +I +I +I +I +I e e e @@ -1924,12 +1902,11 @@ e c c c -d -d -d -d -d -c +I +I +I +I +I c c c @@ -2033,30 +2010,31 @@ c c c c -e -e -e -j -M +b +I +I +I +I +d "} (15,1,1) = {" M -j e e -d -d -d -d +e +I +I +I +I e e e -d -d -d -d -d -d +I +I +I +I +I +I e e e @@ -2067,22 +2045,21 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -c +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -2175,29 +2152,30 @@ c c c c +b +I +I +I e -e -e -j -M +d "} (16,1,1) = {" M -j e e -d -d -d -d +e +I +I +I +I e e e e -d -d -d -d +I +I +I +I e e e @@ -2210,21 +2188,21 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -2320,25 +2298,25 @@ c e e e -j -M +e +d "} (17,1,1) = {" M -j e e e -d -d -d -e +e +I +I +I e e -d -d -d -d +e +I +I +I +I e e e @@ -2354,20 +2332,20 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -2462,24 +2440,24 @@ c e e e -j +e M "} (18,1,1) = {" M -j e e e e -d -d -d e -d -d -d -d +I +I +I +e +I +I +I +I e e e @@ -2507,10 +2485,10 @@ c c c c -d -d +I +I r -d +I c c c @@ -2604,23 +2582,23 @@ c e e e -j +e M "} (19,1,1) = {" M -j e e e e -d -d -d -d -d -d -d +e +I +I +I +I +I +I +I e e e @@ -2650,9 +2628,9 @@ c c c c -d -d -d +I +I +I c c c @@ -2746,22 +2724,22 @@ c e e e -j +e M "} (20,1,1) = {" M -j e e e e e -d -d -d -d -d +e +I +I +I +I +I e e e @@ -2888,21 +2866,21 @@ c e e e -j +e M "} (21,1,1) = {" M -j e e e e e e -d -d -d +e +I +I +I e e e @@ -3030,12 +3008,12 @@ c e e e -j +e M "} (22,1,1) = {" M -j +e e e e @@ -3043,9 +3021,9 @@ e c c c -d +I r -d +I e e e @@ -3097,8 +3075,8 @@ c c c c -d -d +I +I c c c @@ -3172,12 +3150,12 @@ c e e e -j +e M "} (23,1,1) = {" M -j +e e e e @@ -3185,10 +3163,10 @@ e c c c -d -d -d -d +I +I +I +I c c c @@ -3239,9 +3217,9 @@ c c c c -d -d -d +I +I +I c c c @@ -3314,12 +3292,12 @@ c e e e -j +e M "} (24,1,1) = {" M -j +e e e e @@ -3328,10 +3306,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -3381,10 +3359,10 @@ c c c c -d +I r -d -d +I +I c c c @@ -3456,12 +3434,12 @@ c e e e -j +e M "} (25,1,1) = {" M -j +e e e e @@ -3471,9 +3449,9 @@ c c c c -d -d -d +I +I +I c c c @@ -3523,11 +3501,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -3598,12 +3576,12 @@ c e e e -j +e M "} (26,1,1) = {" M -j +e e e e @@ -3614,9 +3592,9 @@ c c c c -d -d -d +I +I +I c c c @@ -3667,10 +3645,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -3740,12 +3718,12 @@ c e e e -j +e M "} (27,1,1) = {" M -j +e e e e @@ -3757,9 +3735,9 @@ c c c c -d -d -d +I +I +I c c c @@ -3809,11 +3787,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -3835,8 +3813,8 @@ c c c c -d -d +I +I c c c @@ -3882,12 +3860,12 @@ c e e e -j +e M "} (28,1,1) = {" M -j +e e e e @@ -3899,9 +3877,9 @@ c c c c -d -d -d +I +I +I c c c @@ -3952,12 +3930,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -3977,8 +3955,8 @@ c c c c -d -d +I +I c c c @@ -4024,12 +4002,12 @@ c e e e -j +e M "} (29,1,1) = {" M -j +e e e e @@ -4042,9 +4020,9 @@ c c c c -d -d -d +I +I +I c c c @@ -4095,12 +4073,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -4119,7 +4097,7 @@ c c c c -d +I c c c @@ -4166,12 +4144,12 @@ c e e e -j +e M "} (30,1,1) = {" M -j +e e e e @@ -4185,8 +4163,8 @@ c c c c -d -d +I +I c c c @@ -4237,12 +4215,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -4261,7 +4239,7 @@ c c c c -d +I c c c @@ -4308,12 +4286,12 @@ c e e e -j +e M "} (31,1,1) = {" M -j +e e e e @@ -4327,8 +4305,8 @@ c c c c -d -d +I +I c c c @@ -4381,11 +4359,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -4403,7 +4381,7 @@ c c c c -d +I c c c @@ -4450,12 +4428,12 @@ c e e e -j +e M "} (32,1,1) = {" M -j +e e e e @@ -4469,8 +4447,8 @@ c c c c -d -d +I +I c c c @@ -4524,11 +4502,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -4544,8 +4522,8 @@ c c c c -d -d +I +I c c c @@ -4592,12 +4570,12 @@ c e e e -j +e M "} (33,1,1) = {" M -j +e e e e @@ -4611,8 +4589,8 @@ c c c c -d -d +I +I c c c @@ -4668,14 +4646,14 @@ c c c c -d -d -d +I +I +I c c c -d -d +I +I c c c @@ -4686,8 +4664,8 @@ c c c c -d -d +I +I c c c @@ -4734,12 +4712,12 @@ c e e e -j +e M "} (34,1,1) = {" M -j +e e e e @@ -4752,8 +4730,8 @@ c c c c -d -d +I +I c c c @@ -4811,12 +4789,12 @@ c c c c -d -d -d -d +I +I +I +I c -d +I c c c @@ -4825,10 +4803,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -4876,12 +4854,12 @@ c e e e -j +e M "} (35,1,1) = {" M -j +e e e e @@ -4893,9 +4871,9 @@ c c c c -d -d -d +I +I +I c c c @@ -4953,13 +4931,13 @@ c c c c -d -d +I +I r -d -d -d -d +I +I +I +I c c c @@ -4967,10 +4945,10 @@ c c c c -d +I c -d -d +I +I c c c @@ -5018,12 +4996,12 @@ c e e e -j +e M "} (36,1,1) = {" M -j +e e e e @@ -5035,7 +5013,7 @@ c c c c -d +I r c c @@ -5096,22 +5074,22 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c c c c -d -d -d -d +I +I +I +I c c c @@ -5160,12 +5138,12 @@ c e e e -j +e M "} (37,1,1) = {" M -j +e e e e @@ -5177,8 +5155,8 @@ c c c c -d -d +I +I c c c @@ -5239,20 +5217,20 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c c -d -d +I +I r -d +I c c c @@ -5302,12 +5280,12 @@ c e e e -j +e M "} (38,1,1) = {" M -j +e e e e @@ -5382,18 +5360,18 @@ c c c c -d -d -d -d -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I +I +I +I +I c c c @@ -5444,12 +5422,12 @@ c e e e -j +e M "} (39,1,1) = {" M -j +e e e e @@ -5525,16 +5503,16 @@ c c c c -d -d -d -d -d +I +I +I +I +I c -d -d -d -d +I +I +I +I c c c @@ -5586,12 +5564,12 @@ c e e e -j +e M "} (40,1,1) = {" M -j +e e e e @@ -5669,10 +5647,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -5728,12 +5706,12 @@ c e e e -j +e M "} (41,1,1) = {" M -j +e e e e @@ -5813,9 +5791,9 @@ c c c c -d -d -d +I +I +I c c c @@ -5870,12 +5848,12 @@ c e e e -j +e M "} (42,1,1) = {" M -j +e e e e @@ -5956,9 +5934,9 @@ c c c c -d -d -d +I +I +I c c c @@ -6012,12 +5990,12 @@ c e e e -j +e M "} (43,1,1) = {" M -j +e e e e @@ -6098,10 +6076,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -6154,12 +6132,12 @@ c e e e -j +e M "} (44,1,1) = {" M -j +e e e e @@ -6242,9 +6220,9 @@ c c c c -d -d -d +I +I +I c c c @@ -6296,12 +6274,12 @@ c e e e -j +e M "} (45,1,1) = {" M -j +e e e e @@ -6386,8 +6364,8 @@ c c c c -d -d +I +I c c c @@ -6438,12 +6416,12 @@ c e e e -j +e M "} (46,1,1) = {" M -j +e e e e @@ -6529,8 +6507,8 @@ c c c c -d -d +I +I c c c @@ -6580,12 +6558,12 @@ c e e e -j +e M "} (47,1,1) = {" M -j +e e e e @@ -6671,8 +6649,8 @@ c c c c -d -d +I +I c c c @@ -6722,12 +6700,12 @@ c e e e -j +e M "} (48,1,1) = {" M -j +e e e e @@ -6814,8 +6792,8 @@ c c c c -d -d +I +I c c c @@ -6864,12 +6842,12 @@ c e e e -j +e M "} (49,1,1) = {" M -j +e e e e @@ -6956,8 +6934,8 @@ c c c c -d -d +I +I c c c @@ -7006,12 +6984,12 @@ c e e e -j +e M "} (50,1,1) = {" M -j +e e e e @@ -7098,9 +7076,9 @@ c c c c -d -d -d +I +I +I c c c @@ -7148,12 +7126,12 @@ c e e e -j +e M "} (51,1,1) = {" M -j +e e e e @@ -7240,10 +7218,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -7290,12 +7268,12 @@ c e e e -j +e M "} (52,1,1) = {" M -j +e e e e @@ -7383,9 +7361,9 @@ c c c c -d -d -d +I +I +I c c c @@ -7432,12 +7410,12 @@ c e e e -j +e M "} (53,1,1) = {" M -j +e e e e @@ -7525,10 +7503,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -7574,12 +7552,12 @@ c e e e -j +e M "} (54,1,1) = {" M -j +e e e e @@ -7668,9 +7646,9 @@ c c c c -d -d -d +I +I +I c c c @@ -7716,12 +7694,12 @@ c e e e -j +e M "} (55,1,1) = {" M -j +e e e e @@ -7810,9 +7788,9 @@ c c c c -d +I r -d +I c c c @@ -7858,12 +7836,12 @@ c e e e -j +e M "} (56,1,1) = {" M -j +e e e e @@ -7953,9 +7931,9 @@ c c c c -d -d -d +I +I +I c c c @@ -8000,12 +7978,12 @@ c e e e -j +e M "} (57,1,1) = {" M -j +e e e e @@ -8096,8 +8074,8 @@ c c c c -d -d +I +I c c c @@ -8142,12 +8120,12 @@ c e e e -j +e M "} (58,1,1) = {" M -j +e e e e @@ -8238,9 +8216,9 @@ c c c c -d -d -d +I +I +I c c c @@ -8284,12 +8262,12 @@ c e e e -j +e M "} (59,1,1) = {" M -j +e e e e @@ -8381,8 +8359,8 @@ c c c c -d -d +I +I c c c @@ -8426,12 +8404,12 @@ c e e e -j +e M "} (60,1,1) = {" M -j +e e e e @@ -8523,9 +8501,9 @@ c c c c -d -d -d +I +I +I c c c @@ -8568,12 +8546,12 @@ c e e e -j +e M "} (61,1,1) = {" M -j +e e e e @@ -8666,8 +8644,8 @@ c c c c -d -d +I +I c c c @@ -8710,12 +8688,12 @@ c e e e -j +e M "} (62,1,1) = {" M -j +e e e e @@ -8808,8 +8786,8 @@ c c c c -d -d +I +I c c c @@ -8852,12 +8830,12 @@ c e e e -j +e M "} (63,1,1) = {" M -j +e e e e @@ -8950,9 +8928,9 @@ c c c c -d -d -d +I +I +I c c c @@ -8994,12 +8972,12 @@ c e e e -j +e M "} (64,1,1) = {" M -j +e e e e @@ -9093,8 +9071,8 @@ c c c c -d -d +I +I c c c @@ -9136,12 +9114,12 @@ c e e e -j +e M "} (65,1,1) = {" M -j +e e e e @@ -9235,9 +9213,9 @@ c c c c -d -d -d +I +I +I c c c @@ -9278,12 +9256,12 @@ c e e e -j +e M "} (66,1,1) = {" M -j +e e e e @@ -9377,9 +9355,9 @@ c c c c -d -d -d +I +I +I c c c @@ -9420,12 +9398,12 @@ c e e e -j +e M "} (67,1,1) = {" M -j +e e e e @@ -9519,10 +9497,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -9562,12 +9540,12 @@ c e e e -j +e M "} (68,1,1) = {" M -j +e e e e @@ -9661,10 +9639,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -9704,12 +9682,12 @@ c e e e -j +e M "} (69,1,1) = {" M -j +e e e e @@ -9803,11 +9781,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -9846,12 +9824,12 @@ c e e e -j +e M "} (70,1,1) = {" M -j +e e e e @@ -9945,11 +9923,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -9988,12 +9966,12 @@ c e e e -j +e M "} (71,1,1) = {" M -j +e e e e @@ -10087,12 +10065,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -10130,12 +10108,12 @@ c e e e -j +e M "} (72,1,1) = {" M -j +e e e e @@ -10231,10 +10209,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -10272,12 +10250,12 @@ c e e e -j +e M "} (73,1,1) = {" M -j +e e e e @@ -10373,10 +10351,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -10414,12 +10392,12 @@ c e e e -j +e M "} (74,1,1) = {" M -j +e e e e @@ -10513,13 +10491,13 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -10556,12 +10534,12 @@ c e e e -j +e M "} (75,1,1) = {" M -j +e e e e @@ -10656,12 +10634,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -10698,12 +10676,12 @@ c e e e -j +e M "} (76,1,1) = {" M -j +e e e e @@ -10796,14 +10774,14 @@ c c c c -d -d -d -d -d +I +I +I +I +I r -d -d +I +I c c c @@ -10840,12 +10818,12 @@ e e e e -j +e M "} (77,1,1) = {" M -j +e e e e @@ -10940,12 +10918,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -10982,12 +10960,12 @@ e e e e -j +e M "} (78,1,1) = {" M -j +e e e e @@ -11083,16 +11061,16 @@ c c c c -d -d +I +I c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -11124,12 +11102,12 @@ e e e e -j +e M "} (79,1,1) = {" M -j +e e e e @@ -11225,17 +11203,17 @@ c c c c -d -d +I +I c c c c -d -d -d +I +I +I r -d +I c c c @@ -11266,12 +11244,12 @@ e e e e -j +e M "} (80,1,1) = {" M -j +e e e e @@ -11367,17 +11345,17 @@ c c c c -d -d +I +I c c c c c c -d -d -d +I +I +I c c c @@ -11408,12 +11386,12 @@ e e e e -j +e M "} (81,1,1) = {" M -j +e e e e @@ -11509,8 +11487,8 @@ c c c c -d -d +I +I c c c @@ -11518,12 +11496,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -11550,12 +11528,12 @@ e e e e -j +e M "} (82,1,1) = {" M -j +e e e e @@ -11651,8 +11629,8 @@ c c c c -d -d +I +I c c c @@ -11661,13 +11639,13 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -11692,12 +11670,12 @@ e e e e -j +e M "} (83,1,1) = {" M -j +e e e e @@ -11793,8 +11771,8 @@ c c c c -d -d +I +I c c c @@ -11807,11 +11785,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -11834,12 +11812,12 @@ e e e e -j +e M "} (84,1,1) = {" M -j +e e e e @@ -11934,9 +11912,9 @@ c c c c -d -d -d +I +I +I c c c @@ -11950,10 +11928,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -11976,12 +11954,12 @@ e e e e -j +e M "} (85,1,1) = {" M -j +e e e e @@ -12076,9 +12054,9 @@ c c c c -d -d -d +I +I +I c c c @@ -12093,12 +12071,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c e e @@ -12118,12 +12096,12 @@ e e e e -j +e M "} (86,1,1) = {" M -j +e e e e @@ -12215,12 +12193,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -12239,16 +12217,17 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I e e -d -d +I +I +e e e e @@ -12260,12 +12239,11 @@ e e e e -j M "} (87,1,1) = {" M -j +e e e e @@ -12357,12 +12335,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -12384,13 +12362,14 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I +e e e e @@ -12402,12 +12381,11 @@ e e e e -j M "} (88,1,1) = {" M -j +e e e e @@ -12496,15 +12474,15 @@ c c c c -d -d -d -d +I +I +I +I c c c -d -d +I +I c c c @@ -12528,11 +12506,12 @@ c c e e -d -d -d -d -d +I +I +I +I +I +e e e e @@ -12544,12 +12523,11 @@ e e e e -j M "} (89,1,1) = {" M -j +e e e e @@ -12637,11 +12615,11 @@ c c c c -d -d +I +I r -d -d +I +I c c c @@ -12671,9 +12649,10 @@ e e e e -d -d -d +I +I +I +e e e e @@ -12686,12 +12665,11 @@ e e e e -j M "} (90,1,1) = {" M -j +e e e e @@ -12735,8 +12713,8 @@ c c c c -d -d +I +I c c c @@ -12776,11 +12754,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -12814,8 +12792,9 @@ e e e e -d -d +I +I +e e e e @@ -12828,12 +12807,11 @@ e e e e -j M "} (91,1,1) = {" M -j +e e e e @@ -12874,12 +12852,12 @@ c c c c -d +I c c c -d -d +I +I c c c @@ -12918,10 +12896,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -12956,8 +12934,9 @@ e e e e -d -d +I +I +e e e e @@ -12970,12 +12949,11 @@ e e e e -j M "} (92,1,1) = {" M -j +e e e e @@ -13016,15 +12994,15 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c -d +I c c c @@ -13059,10 +13037,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -13098,8 +13076,9 @@ e e e e -d -d +I +I +e e e e @@ -13112,12 +13091,11 @@ e e e e -j M "} (93,1,1) = {" M -j +e e e e @@ -13153,21 +13131,21 @@ c c c c -c -c -c -c -c -d -d -d -d -d -d -d -d +c +c +c +c +c +I +I +I +I +I +I +I +I r -d +I c c c @@ -13199,12 +13177,12 @@ c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -13240,8 +13218,9 @@ e e e e -d -d +I +I +e e e e @@ -13254,12 +13233,11 @@ e e e e -j M "} (94,1,1) = {" M -j +e e e e @@ -13304,13 +13282,13 @@ c c c c -d -d +I +I c -d -d -d -d +I +I +I +I c c c @@ -13340,14 +13318,14 @@ c c c c -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I c c c @@ -13382,8 +13360,9 @@ e e e e -d -d +I +I +e e e e @@ -13396,12 +13375,11 @@ e e e e -j M "} (95,1,1) = {" M -j +e e e e @@ -13444,17 +13422,17 @@ c c c c -d -d +I +I c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -13482,15 +13460,15 @@ c c c c -d -d +I +I r -d -d +I +I c c -d -d +I +I c c c @@ -13521,11 +13499,12 @@ c e e e -d -d -d -d -d +I +I +I +I +I +e e e e @@ -13538,12 +13517,11 @@ e e e e -j M "} (96,1,1) = {" M -j +e e e e @@ -13586,7 +13564,7 @@ c c c c -d +I c c c @@ -13594,10 +13572,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -13621,11 +13599,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -13663,11 +13641,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e i e @@ -13680,12 +13658,12 @@ e e e e -j +e M "} (97,1,1) = {" M -j +e e e e @@ -13727,8 +13705,8 @@ c c c c -d -d +I +I c c c @@ -13738,13 +13716,13 @@ c c c c -d -d -d -d -d -d -d +I +I +I +I +I +I +I c c c @@ -13762,11 +13740,11 @@ c c c c -d -d -d -d -d +I +I +I +I +I c c c @@ -13805,11 +13783,12 @@ e e e e -d -d -d -d -d +I +I +I +I +I +e e e e @@ -13822,12 +13801,11 @@ e e e e -j M "} (98,1,1) = {" M -j +e e e e @@ -13869,7 +13847,7 @@ c c c c -d +I c c c @@ -13886,9 +13864,9 @@ c c c c -d -d -d +I +I +I c c c @@ -13901,14 +13879,14 @@ c c c c -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I c c c @@ -13947,11 +13925,12 @@ e e e e -d -d -d -d -d +I +I +I +I +I +e e e e @@ -13964,12 +13943,11 @@ e e e e -j M "} (99,1,1) = {" M -j +e e e e @@ -14010,8 +13988,7 @@ c c c c -d -c +I c c c @@ -14025,28 +14002,29 @@ c c c c -d -d -d -d -d -d -d -d -d c +I +I +I +I +I +I +I +I +I c c c c c c -d -r -d -d -d -d +c +I +r +I +I +I +I c c c @@ -14089,11 +14067,12 @@ e e e e -d -d -d -d -d +I +I +I +I +I +e e e e @@ -14106,12 +14085,11 @@ e e e e -j M "} (100,1,1) = {" M -j +e e e e @@ -14151,8 +14129,8 @@ c c c c -d -d +I +I c c c @@ -14174,20 +14152,20 @@ c c c c -d -d -d +I +I +I c c c c c -d -d -d -d -d -d +I +I +I +I +I +I c c c @@ -14232,11 +14210,11 @@ e e e e -d -d -d -d -d +I +I +I +I +I e e e @@ -14244,16 +14222,16 @@ e e e e -d -d +I +I +e e e -j M "} (101,1,1) = {" M -j +e e e e @@ -14293,7 +14271,7 @@ c c c c -d +I c c c @@ -14318,14 +14296,14 @@ c c c c -d -d -d -d -d -d -d -d +I +I +I +I +I +I +I +I c c c @@ -14375,27 +14353,27 @@ e e e e -d -d -d -d +I +I +I +I e e -d +I e e -d -d -d -d +I +I +I +I +e e e -j M "} (102,1,1) = {" M -j +e e e e @@ -14434,8 +14412,8 @@ c c c c -d -d +I +I c c c @@ -14517,27 +14495,27 @@ e e e e -d -d -d -d +I +I +I +I e e e e -d -d -d -d -d -d +I +I +I +I +I +I +e e -j M "} (103,1,1) = {" M -j +e e e e @@ -14576,7 +14554,7 @@ c c c c -d +I c c c @@ -14659,27 +14637,27 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -d -d -d -d -a -M "} (104,1,1) = {" M -j +e e e e @@ -14718,7 +14696,7 @@ c c c c -d +I c c c @@ -14802,26 +14780,26 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -d -d -d -b -M "} (105,1,1) = {" M -j +e e e e @@ -14858,8 +14836,8 @@ c c c c -d -d +I +I c c c @@ -14945,25 +14923,25 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -d -d -b -M "} (106,1,1) = {" M -j +e e e e @@ -14999,10 +14977,8 @@ c c c c -d -d -c -c +I +I c c c @@ -15081,31 +15057,33 @@ c c c c -e -e -e -e -e -e -e -d -d -d -d -d -d -d -d -d -d -d +c +c +e +e +e +e +e +e +e +I +I +I +I +I +I +I +I +I +I +I +I +I d -b -M "} (107,1,1) = {" M -j +e e e e @@ -15139,10 +15117,10 @@ c c c c -d -d -d -d +I +I +I +I c c c @@ -15231,23 +15209,23 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -d -b -M "} (108,1,1) = {" M -j +e e e e @@ -15280,10 +15258,10 @@ c c c c -d +I r -d -d +I +I c c c @@ -15374,22 +15352,22 @@ e e e e +I +I +I +I +I +I +I +I +I +I +I d -d -d -d -d -d -d -d -d -d -b -M "} (109,1,1) = {" M -j +e e e e @@ -15421,9 +15399,9 @@ c c c c -d -d -d +I +I +I c c c @@ -15521,17 +15499,17 @@ e e e e -d -d -d +I +I +I +e e e -j M "} (110,1,1) = {" M -j +e e e e @@ -15563,7 +15541,7 @@ c c c c -d +I c c c @@ -15668,12 +15646,12 @@ e e e e -j +e M "} (111,1,1) = {" M -j +e e e e @@ -15810,12 +15788,12 @@ e e e e -j +e M "} (112,1,1) = {" M -j +e e e e @@ -15952,12 +15930,12 @@ e e e e -j +e M "} (113,1,1) = {" M -j +e e e e @@ -16094,12 +16072,12 @@ e e e e -j +e M "} (114,1,1) = {" M -j +e e e e @@ -16236,12 +16214,12 @@ e e e e -j +e M "} (115,1,1) = {" M -j +e e e e @@ -16378,12 +16356,12 @@ e e e e -j +e M "} (116,1,1) = {" M -j +e e e e @@ -16520,12 +16498,12 @@ e e e e -j +e M "} (117,1,1) = {" M -j +e e e e @@ -16662,12 +16640,12 @@ e e e e -j +e M "} (118,1,1) = {" M -j +e e e e @@ -16804,12 +16782,12 @@ e e e e -j +e M "} (119,1,1) = {" M -j +e e e e @@ -16946,12 +16924,12 @@ e e e e -j +e M "} (120,1,1) = {" M -j +e e e e @@ -17088,12 +17066,12 @@ e e e e -j +e M "} (121,1,1) = {" M -j +e e e e @@ -17230,12 +17208,12 @@ e e e e -j +e M "} (122,1,1) = {" M -j +e e e e @@ -17372,12 +17350,12 @@ c e e e -j +e M "} (123,1,1) = {" M -j +e e e e @@ -17514,12 +17492,12 @@ c e e e -j +e M "} (124,1,1) = {" M -j +e e e e @@ -17656,12 +17634,12 @@ c e e e -j +e M "} (125,1,1) = {" M -j +e e e e @@ -17798,12 +17776,12 @@ c e e e -j +e M "} (126,1,1) = {" M -j +e e e e @@ -17940,12 +17918,12 @@ c e e e -j +e M "} (127,1,1) = {" M -j +e e e e @@ -18082,12 +18060,12 @@ c e e e -j +e M "} (128,1,1) = {" M -j +e e e e @@ -18224,12 +18202,12 @@ c e e e -j +e M "} (129,1,1) = {" M -j +e e e e @@ -18366,12 +18344,12 @@ c e e e -j +e M "} (130,1,1) = {" M -j +e e e e @@ -18508,12 +18486,12 @@ c e e e -j +e M "} (131,1,1) = {" M -j +e e e e @@ -18650,12 +18628,12 @@ c e e e -j +e M "} (132,1,1) = {" M -j +e e e e @@ -18792,12 +18770,12 @@ c e e e -j +e M "} (133,1,1) = {" M -j +e e e e @@ -18934,12 +18912,12 @@ c e e e -j +e M "} (134,1,1) = {" M -j +e e e e @@ -19076,12 +19054,12 @@ c e e e -j +e M "} (135,1,1) = {" M -j +e e e e @@ -19218,12 +19196,153 @@ c e e e -j +e +M +"} +(136,1,1) = {" +M +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e M "} -(136,1,1) = {" +(137,1,1) = {" M -j e e e @@ -19360,12 +19479,12 @@ e e e e -j +e +e M "} -(137,1,1) = {" +(138,1,1) = {" M -j e e e @@ -19502,12 +19621,12 @@ e e e e -j +e +e M "} -(138,1,1) = {" +(139,1,1) = {" M -j e e e @@ -19644,149 +19763,8 @@ e e e e -j -M -"} -(139,1,1) = {" -M -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j -j +e +e M "} (140,1,1) = {" diff --git a/maps/sectors/virgo4_140/levels/virgo4_140_desert.dmm b/maps/sectors/virgo4_140/levels/virgo4_140_desert.dmm index 9d0f5cf3bf2..8d7525b4671 100644 --- a/maps/sectors/virgo4_140/levels/virgo4_140_desert.dmm +++ b/maps/sectors/virgo4_140/levels/virgo4_140_desert.dmm @@ -3,6 +3,9 @@ /obj/structure/sign/graffiti/pisoff, /turf/simulated/wall/sandstone/classh, /area/tether_away/beach/desert/explored) +"dN" = ( +/turf/unsimulated/mineral/outdoors, +/area/tether_away/beach/desert/explored) "eI" = ( /obj/machinery/light/small{ dir = 4 @@ -34,9 +37,6 @@ /obj/random/trash, /turf/simulated/floor/wood/classh, /area/tether_away/beach/desert/explored) -"kK" = ( -/turf/simulated/floor/outdoors/beach/sand/lowdesert, -/area/tether_away/beach/desert/explored) "lX" = ( /obj/structure/barricade, /turf/simulated/mineral/floor/cave{ @@ -88,11 +88,6 @@ /turf/simulated/wall/sandstone/classh, /area/tether_away/beach/desert/explored) "vn" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 1; - name = "V4_desert_to_beach"; - portal_id = "V4_desert_step" - }, /turf/simulated/floor/outdoors/beach/sand/lowdesert, /area/tether_away/beach/desert/explored) "vr" = ( @@ -114,31 +109,14 @@ /turf/simulated/floor/outdoors/beach/sand/lowdesert, /area/tether_away/beach/desert/explored) "xw" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 8; - name = "desert to caves"; - portal_id = "V4_cave_desert_step" - }, -/turf/simulated/mineral/floor/cave{ - name = "dirt"; - outdoors = 1 - }, +/turf/level_border, /area/tether_away/beach/desert/explored) "yc" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 8 - }, /turf/simulated/mineral/floor/cave{ name = "dirt"; outdoors = 1 }, /area/tether_away/beach/desert/explored) -"yj" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, -/turf/simulated/floor/outdoors/beach/sand/lowdesert, -/area/tether_away/beach/desert/explored) "yo" = ( /obj/random/humanoidremains, /turf/simulated/mineral/floor/cave{ @@ -169,12 +147,6 @@ outdoors = 1 }, /area/tether_away/beach/desert/explored) -"Df" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, -/turf/simulated/floor/outdoors/beach/sand/desert, -/area/tether_away/beach/desert/explored) "Eh" = ( /obj/structure/simple_door/wood, /turf/simulated/floor/wood/classh, @@ -210,12 +182,6 @@ }, /turf/simulated/floor/outdoors/beach/sand/lowdesert, /area/tether_away/beach/desert/explored) -"Js" = ( -/turf/simulated/mineral/floor/cave{ - name = "dirt"; - outdoors = 1 - }, -/area/tether_away/beach/desert/explored) "JR" = ( /obj/item/ammo_casing/spent{ pixel_x = -2; @@ -467,134 +433,134 @@ gz "} (2,1,1) = {" wg -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn XZ XZ XZ @@ -609,7 +575,7 @@ gz "} (3,1,1) = {" wg -kK +vn JW JW JW @@ -751,7 +717,7 @@ gz "} (4,1,1) = {" wg -kK +vn JW JW JW @@ -893,7 +859,7 @@ gz "} (5,1,1) = {" wg -kK +vn JW JW JW @@ -1035,7 +1001,7 @@ gz "} (6,1,1) = {" wg -kK +vn JW JW JW @@ -1177,7 +1143,7 @@ gz "} (7,1,1) = {" wg -kK +vn JW JW JW @@ -1319,7 +1285,7 @@ gz "} (8,1,1) = {" wg -kK +vn JW JW JW @@ -1461,7 +1427,7 @@ gz "} (9,1,1) = {" wg -kK +vn JW JW JW @@ -1603,7 +1569,7 @@ gz "} (10,1,1) = {" wg -kK +vn JW JW JW @@ -1745,7 +1711,7 @@ gz "} (11,1,1) = {" wg -kK +vn JW JW JW @@ -1887,7 +1853,7 @@ gz "} (12,1,1) = {" wg -kK +vn JW JW JW @@ -2029,7 +1995,7 @@ gz "} (13,1,1) = {" wg -kK +vn JW JW JW @@ -2171,7 +2137,7 @@ gz "} (14,1,1) = {" wg -kK +vn JW JW JW @@ -2313,7 +2279,7 @@ gz "} (15,1,1) = {" wg -kK +vn JW JW JW @@ -2455,7 +2421,7 @@ gz "} (16,1,1) = {" wg -kK +vn JW JW JW @@ -2597,7 +2563,7 @@ gz "} (17,1,1) = {" wg -kK +vn JW JW JW @@ -2739,7 +2705,7 @@ gz "} (18,1,1) = {" wg -kK +vn JW JW JW @@ -2881,7 +2847,7 @@ gz "} (19,1,1) = {" wg -kK +vn JW JW JW @@ -3023,7 +2989,7 @@ gz "} (20,1,1) = {" wg -kK +vn JW JW JW @@ -3165,7 +3131,7 @@ gz "} (21,1,1) = {" wg -kK +vn JW JW JW @@ -3307,7 +3273,7 @@ gz "} (22,1,1) = {" wg -kK +vn JW JW JW @@ -3449,7 +3415,7 @@ gz "} (23,1,1) = {" wg -kK +vn JW JW JW @@ -3591,7 +3557,7 @@ gz "} (24,1,1) = {" wg -kK +vn JW JW JW @@ -3733,7 +3699,7 @@ gz "} (25,1,1) = {" wg -kK +vn JW JW JW @@ -3875,7 +3841,7 @@ gz "} (26,1,1) = {" wg -kK +vn JW JW JW @@ -4017,7 +3983,7 @@ gz "} (27,1,1) = {" wg -kK +vn JW JW JW @@ -4159,7 +4125,7 @@ gz "} (28,1,1) = {" wg -kK +vn JW JW JW @@ -4301,7 +4267,7 @@ gz "} (29,1,1) = {" wg -kK +vn JW JW JW @@ -4443,7 +4409,7 @@ gz "} (30,1,1) = {" wg -kK +vn JW JW JW @@ -4585,7 +4551,7 @@ gz "} (31,1,1) = {" wg -kK +vn JW JW JW @@ -4727,7 +4693,7 @@ gz "} (32,1,1) = {" wg -kK +vn JW JW JW @@ -4869,7 +4835,7 @@ gz "} (33,1,1) = {" wg -kK +vn JW JW JW @@ -5011,7 +4977,7 @@ gz "} (34,1,1) = {" wg -kK +vn JW JW JW @@ -5153,7 +5119,7 @@ gz "} (35,1,1) = {" wg -kK +vn JW JW JW @@ -5295,7 +5261,7 @@ gz "} (36,1,1) = {" wg -kK +vn JW JW JW @@ -5437,7 +5403,7 @@ gz "} (37,1,1) = {" wg -kK +vn JW JW JW @@ -5579,7 +5545,7 @@ gz "} (38,1,1) = {" wg -kK +vn JW JW JW @@ -5721,7 +5687,7 @@ gz "} (39,1,1) = {" wg -kK +vn JW JW JW @@ -5863,7 +5829,7 @@ gz "} (40,1,1) = {" wg -kK +vn JW JW JW @@ -6005,7 +5971,7 @@ gz "} (41,1,1) = {" wg -kK +vn JW JW JW @@ -6147,7 +6113,7 @@ gz "} (42,1,1) = {" wg -kK +vn JW JW JW @@ -6289,7 +6255,7 @@ gz "} (43,1,1) = {" wg -kK +vn JW JW JW @@ -6431,7 +6397,7 @@ gz "} (44,1,1) = {" wg -kK +vn JW JW JW @@ -6573,7 +6539,7 @@ gz "} (45,1,1) = {" wg -kK +vn JW JW JW @@ -6715,7 +6681,7 @@ gz "} (46,1,1) = {" wg -kK +vn JW JW JW @@ -6857,7 +6823,7 @@ gz "} (47,1,1) = {" wg -kK +vn JW JW JW @@ -6999,7 +6965,7 @@ gz "} (48,1,1) = {" wg -kK +vn JW JW JW @@ -7141,7 +7107,7 @@ gz "} (49,1,1) = {" wg -kK +vn JW JW JW @@ -7283,7 +7249,7 @@ gz "} (50,1,1) = {" wg -kK +vn JW JW JW @@ -7425,7 +7391,7 @@ gz "} (51,1,1) = {" wg -kK +vn JW JW JW @@ -7567,7 +7533,7 @@ gz "} (52,1,1) = {" wg -kK +vn JW JW JW @@ -7709,7 +7675,7 @@ gz "} (53,1,1) = {" wg -kK +vn JW JW JW @@ -7851,7 +7817,7 @@ gz "} (54,1,1) = {" wg -kK +vn JW JW JW @@ -7993,7 +7959,7 @@ gz "} (55,1,1) = {" wg -kK +vn JW JW JW @@ -8135,7 +8101,7 @@ gz "} (56,1,1) = {" wg -kK +vn JW JW JW @@ -8277,7 +8243,7 @@ gz "} (57,1,1) = {" wg -kK +vn JW JW JW @@ -8419,7 +8385,7 @@ gz "} (58,1,1) = {" wg -kK +vn JW JW JW @@ -8561,7 +8527,7 @@ gz "} (59,1,1) = {" wg -kK +vn JW JW JW @@ -8703,7 +8669,7 @@ gz "} (60,1,1) = {" wg -kK +vn JW JW JW @@ -8845,7 +8811,7 @@ gz "} (61,1,1) = {" wg -kK +vn JW JW JW @@ -8987,7 +8953,7 @@ gz "} (62,1,1) = {" wg -kK +vn JW JW JW @@ -9129,7 +9095,7 @@ gz "} (63,1,1) = {" wg -kK +vn JW JW JW @@ -9271,7 +9237,7 @@ gz "} (64,1,1) = {" wg -kK +vn JW JW JW @@ -9413,7 +9379,7 @@ gz "} (65,1,1) = {" wg -kK +vn JW JW JW @@ -9555,7 +9521,7 @@ gz "} (66,1,1) = {" wg -kK +vn JW JW JW @@ -9697,7 +9663,7 @@ gz "} (67,1,1) = {" wg -kK +vn JW JW JW @@ -9839,7 +9805,7 @@ gz "} (68,1,1) = {" wg -kK +vn JW JW JW @@ -9981,7 +9947,7 @@ gz "} (69,1,1) = {" wg -kK +vn JW JW JW @@ -10123,7 +10089,7 @@ gz "} (70,1,1) = {" wg -kK +vn JW JW JW @@ -10265,7 +10231,7 @@ gz "} (71,1,1) = {" wg -kK +vn JW JW JW @@ -10407,7 +10373,7 @@ gz "} (72,1,1) = {" wg -kK +vn JW JW JW @@ -10549,7 +10515,7 @@ gz "} (73,1,1) = {" wg -kK +vn JW JW JW @@ -10691,7 +10657,7 @@ gz "} (74,1,1) = {" wg -kK +vn JW JW JW @@ -10833,7 +10799,7 @@ gz "} (75,1,1) = {" wg -kK +vn JW JW JW @@ -10975,7 +10941,7 @@ gz "} (76,1,1) = {" wg -kK +vn JW JW JW @@ -11117,7 +11083,7 @@ gz "} (77,1,1) = {" wg -kK +vn JW JW JW @@ -11259,7 +11225,7 @@ gz "} (78,1,1) = {" wg -kK +vn JW JW JW @@ -11401,7 +11367,7 @@ gz "} (79,1,1) = {" wg -kK +vn JW JW JW @@ -11543,7 +11509,7 @@ gz "} (80,1,1) = {" wg -kK +vn JW JW JW @@ -11685,7 +11651,7 @@ gz "} (81,1,1) = {" wg -kK +vn JW JW JW @@ -11827,7 +11793,7 @@ gz "} (82,1,1) = {" wg -kK +vn JW JW JW @@ -11969,7 +11935,7 @@ gz "} (83,1,1) = {" wg -kK +vn JW JW JW @@ -12111,7 +12077,7 @@ gz "} (84,1,1) = {" wg -kK +vn JW JW JW @@ -12253,7 +12219,7 @@ gz "} (85,1,1) = {" wg -kK +vn JW JW JW @@ -12395,7 +12361,7 @@ gz "} (86,1,1) = {" wg -kK +vn JW JW JW @@ -12537,7 +12503,7 @@ gz "} (87,1,1) = {" wg -kK +vn JW JW JW @@ -12679,7 +12645,7 @@ gz "} (88,1,1) = {" wg -kK +vn JW JW JW @@ -12821,7 +12787,7 @@ gz "} (89,1,1) = {" wg -kK +vn JW JW JW @@ -12963,7 +12929,7 @@ gz "} (90,1,1) = {" wg -kK +vn JW JW JW @@ -13105,7 +13071,7 @@ gz "} (91,1,1) = {" wg -kK +vn JW JW JW @@ -13247,7 +13213,7 @@ gz "} (92,1,1) = {" wg -kK +vn JW JW JW @@ -13389,7 +13355,7 @@ gz "} (93,1,1) = {" wg -kK +vn JW JW JW @@ -13531,7 +13497,7 @@ gz "} (94,1,1) = {" wg -kK +vn JW JW JW @@ -13673,7 +13639,7 @@ gz "} (95,1,1) = {" wg -kK +vn JW JW JW @@ -13815,7 +13781,7 @@ gz "} (96,1,1) = {" wg -kK +vn JW JW JW @@ -13957,7 +13923,7 @@ gz "} (97,1,1) = {" wg -kK +vn JW JW JW @@ -14099,7 +14065,7 @@ gz "} (98,1,1) = {" wg -kK +vn JW JW JW @@ -14241,7 +14207,7 @@ gz "} (99,1,1) = {" wg -kK +vn JW JW JW @@ -14383,7 +14349,7 @@ gz "} (100,1,1) = {" wg -kK +vn JW JW JW @@ -14525,7 +14491,7 @@ gz "} (101,1,1) = {" wg -kK +vn JW JW JW @@ -14667,7 +14633,7 @@ gz "} (102,1,1) = {" wg -kK +vn JW JW JW @@ -14809,7 +14775,7 @@ gz "} (103,1,1) = {" wg -kK +vn JW JW JW @@ -14951,7 +14917,7 @@ gz "} (104,1,1) = {" wg -kK +vn JW JW JW @@ -15093,7 +15059,7 @@ gz "} (105,1,1) = {" wg -kK +vn JW JW JW @@ -15235,7 +15201,7 @@ gz "} (106,1,1) = {" wg -kK +vn JW JW JW @@ -15377,7 +15343,7 @@ gz "} (107,1,1) = {" wg -kK +vn JW JW JW @@ -15495,12 +15461,12 @@ JW JW JW JW -kK +vn XZ -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ @@ -15519,7 +15485,7 @@ gz "} (108,1,1) = {" wg -kK +vn JW JW JW @@ -15637,13 +15603,13 @@ JW JW JW JW -kK +vn XZ XZ -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ @@ -15661,7 +15627,7 @@ gz "} (109,1,1) = {" wg -kK +vn JW JW JW @@ -15779,13 +15745,13 @@ JW JW JW JW -kK +vn XZ XZ -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ @@ -15803,7 +15769,7 @@ gz "} (110,1,1) = {" wg -kK +vn JW JW JW @@ -15921,14 +15887,14 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn XZ XZ XZ @@ -15945,7 +15911,7 @@ gz "} (111,1,1) = {" wg -kK +vn JW JW JW @@ -16063,14 +16029,14 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn XZ XZ XZ @@ -16087,7 +16053,7 @@ gz "} (112,1,1) = {" wg -kK +vn JW JW JW @@ -16205,13 +16171,13 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn XZ XZ XZ @@ -16229,7 +16195,7 @@ gz "} (113,1,1) = {" wg -kK +vn JW JW JW @@ -16347,13 +16313,13 @@ JW JW JW JW -kK -kK +vn +vn XZ -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ @@ -16371,7 +16337,7 @@ gz "} (114,1,1) = {" wg -kK +vn JW JW JW @@ -16489,13 +16455,13 @@ JW JW JW JW -kK -kK +vn +vn XZ XZ -kK -kK -kK +vn +vn +vn XZ XZ XZ @@ -16513,7 +16479,7 @@ gz "} (115,1,1) = {" wg -kK +vn JW JW JW @@ -16631,13 +16597,13 @@ JW JW JW JW -kK -kK +vn +vn XZ XZ -kK -kK -kK +vn +vn +vn XZ XZ XZ @@ -16655,7 +16621,7 @@ gz "} (116,1,1) = {" wg -kK +vn JW JW JW @@ -16773,13 +16739,13 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn XZ XZ XZ @@ -16797,7 +16763,7 @@ gz "} (117,1,1) = {" wg -kK +vn JW JW JW @@ -16915,13 +16881,13 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn XZ XZ XZ @@ -16939,17 +16905,17 @@ gz "} (118,1,1) = {" wg -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn JW JW JW @@ -17057,13 +17023,13 @@ JW JW JW JW -kK +vn FM FM -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ @@ -17081,17 +17047,17 @@ gz "} (119,1,1) = {" wg -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn JW JW JW @@ -17199,13 +17165,13 @@ JW JW JW JW -kK -kK +vn +vn FM FM -kK -kK -kK +vn +vn +vn XZ XZ XZ @@ -17223,17 +17189,17 @@ gz "} (120,1,1) = {" wg -kK -kK -kK -kK +vn +vn +vn +vn hw -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn JW JW JW @@ -17341,14 +17307,14 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn XZ XZ XZ @@ -17365,17 +17331,17 @@ gz "} (121,1,1) = {" wg -kK -kK -kK +vn +vn +vn uY EJ se -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn JW JW JW @@ -17485,12 +17451,12 @@ JW JW XZ XZ -kK -kK +vn +vn FM FM -kK -kK +vn +vn XZ XZ XZ @@ -17507,18 +17473,18 @@ gz "} (122,1,1) = {" wg -kK -kK +vn +vn hw BS of LF se hw -kK -kK -kK -kK +vn +vn +vn +vn JW JW JW @@ -17627,13 +17593,13 @@ JW JW XZ XZ -kK -kK -kK +vn +vn +vn FM -kK -kK -kK +vn +vn +vn XZ XZ XZ @@ -17649,18 +17615,18 @@ gz "} (123,1,1) = {" wg -kK +vn hw uY iL of of UP -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn JW JW JW @@ -17768,15 +17734,15 @@ JW JW JW XZ -kK -kK -kK -kK +vn +vn +vn +vn FM -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ @@ -17790,7 +17756,7 @@ XZ gz "} (124,1,1) = {" -gz +dN XZ EJ zN @@ -17798,11 +17764,11 @@ of of od WT -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn JW JW JW @@ -17909,17 +17875,17 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn +vn eN -kK +vn XZ XZ XZ @@ -17932,7 +17898,7 @@ XZ gz "} (125,1,1) = {" -gz +dN XZ of of @@ -17940,11 +17906,11 @@ of of UP hw -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn JW JW JW @@ -18050,19 +18016,19 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn +vn FM FM -kK -kK +vn +vn XZ XZ XZ @@ -18074,19 +18040,19 @@ XZ gz "} (126,1,1) = {" -gz +dN XZ XZ of of of UP -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn JW JW JW @@ -18191,17 +18157,17 @@ JW JW JW JW -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn +vn FM FM iq @@ -18216,7 +18182,7 @@ XZ gz "} (127,1,1) = {" -gz +dN XZ XZ XZ @@ -18224,11 +18190,11 @@ of Mv WT hw -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn JW JW JW @@ -18332,25 +18298,25 @@ JW JW JW JW -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ -kK -kK -kK -kK +vn +vn +vn +vn XZ -kK -kK +vn +vn FM FM -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ @@ -18358,19 +18324,19 @@ XZ gz "} (128,1,1) = {" -gz +dN XZ XZ XZ XZ hw -kK -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn +vn JW JW JW @@ -18474,33 +18440,33 @@ JW JW JW JW -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ -kK -kK -kK +vn +vn +vn XZ XZ eI FM FM FM -kK -kK -kK -kK +vn +vn +vn +vn XZ XZ XZ gz "} (129,1,1) = {" -gz +dN XZ XZ XZ @@ -18508,11 +18474,11 @@ XZ XZ hw wb -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn JW JW JW @@ -18615,11 +18581,11 @@ JW JW JW JW -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn XZ XZ vd @@ -18629,20 +18595,20 @@ vd XZ XZ vd -kK -kK +vn +vn FM FM -kK +vn eN -kK -kK -kK +vn +vn +vn gz gz "} (130,1,1) = {" -gz +dN XZ XZ XZ @@ -18650,11 +18616,11 @@ XZ XZ OO Ev -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn JW JW JW @@ -18756,35 +18722,35 @@ JW XZ XZ XZ -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn vd vd vd Rb no vd -kK -kK -kK +vn +vn +vn Iw NW II bm FM FM -kK -kK -kK vn -wg +vn +vn +vn +gz "} (131,1,1) = {" -gz +dN XZ XZ XZ @@ -18792,12 +18758,12 @@ XZ XZ XZ lX -kK -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn +vn JW JW JW @@ -18899,34 +18865,34 @@ XZ XZ XZ XZ -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn vd no CM Nx CM Eh -kK -kK +vn +vn zQ -kK +vn Ms -kK -kK -kK -kK -kK -kK -kK -yj -wg +vn +vn +vn +vn +vn +vn +vn +vn +gz "} (132,1,1) = {" -gz +dN XZ XZ XZ @@ -18936,10 +18902,10 @@ Mc yo Dc ST -kK -kK +vn +vn hw -kK +vn JW JW JW @@ -19041,47 +19007,47 @@ XZ XZ XZ XZ -kK -kK -kK -kK -kK +vn +vn +vn +vn +vn Eh CM CM CM CM vd -kK -kK +vn +vn Ms Ov qu Ms -kK -kK -kK -kK +vn +vn +vn +vn FM -kK -yj -wg +vn +vn +gz "} (133,1,1) = {" -gz +dN XZ XZ XZ XZ XZ JR -Js -Js +yc +yc lX OO XZ -kK -kK +vn +vn JW JW JW @@ -19184,45 +19150,45 @@ XZ XZ XZ XZ -kK -kK -kK -kK +vn +vn +vn +vn vd Rb Nx SE jD vd -kK -kK +vn +vn wH vr OI vr Kt Ov -kK -kK +vn +vn FM FM -yj -wg +vn +gz "} (134,1,1) = {" -gz +dN XZ XZ XZ XZ XZ pc -Js +yc mV Mc XZ XZ -kK +vn hw JW JW @@ -19329,38 +19295,38 @@ XZ XZ XZ XZ -kK +vn vd vd vd vd vd vd -XZ -XZ +vn +vn vd vd vd vd vd -kK -kK -kK -kK -kK -yj -wg +vn +vn +vn +vn +vn +vn +gz "} (135,1,1) = {" -gz +dN XZ XZ XZ XZ XZ -Js -Js -Js +yc +yc +yc XZ XZ XZ @@ -19476,31 +19442,31 @@ XZ XZ XZ XZ +vn +vn +vn +vn +vn XZ XZ XZ XZ XZ -XZ -XZ -XZ -XZ -XZ -kK -kK -kK -kK -Df -wg +vn +vn +vn +vn +FM +gz "} (136,1,1) = {" -gz +dN XZ XZ XZ XZ Mc -Js +yc Rm yo XZ @@ -19618,6 +19584,11 @@ XZ XZ XZ XZ +vn +vn +vn +vn +vn XZ XZ XZ @@ -19626,23 +19597,18 @@ XZ XZ XZ XZ -XZ -XZ -XZ -XZ -XZ -kK -yj -wg +vn +vn +gz "} (137,1,1) = {" -gz +dN XZ XZ XZ -Js -Js -Js +yc +yc +yc JR Mc XZ @@ -19760,11 +19726,11 @@ XZ XZ XZ XZ -XZ -XZ -XZ -XZ -XZ +vn +vn +vn +vn +vn XZ XZ XZ @@ -19778,15 +19744,16 @@ gz gz "} (138,1,1) = {" -gz +dN XZ XZ XZ -Js +yc yo -Js -Js +yc +yc pc +yc XZ XZ XZ @@ -19901,12 +19868,11 @@ XZ XZ XZ XZ -XZ -XZ -XZ -XZ -XZ -XZ +vn +vn +vn +vn +vn XZ XZ XZ @@ -19920,22 +19886,17 @@ XZ gz "} (139,1,1) = {" -gz +dN XZ XZ -gz +dN +yc +yc +yc yc yc yc yc -xw -gz -XZ -XZ -XZ -XZ -XZ -XZ XZ XZ XZ @@ -20049,6 +20010,11 @@ XZ XZ XZ XZ +vn +vn +vn +vn +vn XZ XZ XZ @@ -20062,6 +20028,17 @@ XZ gz "} (140,1,1) = {" +dN +dN +dN +dN +dN +dN +xw +xw +xw +xw +xw gz gz gz @@ -20175,22 +20152,11 @@ gz gz gz gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz -gz +xw +xw +xw +xw +xw gz gz gz diff --git a/maps/templates/admin/ert.dmm b/maps/templates/admin/ert.dmm index 063a7364125..c1a4cd57fd3 100644 --- a/maps/templates/admin/ert.dmm +++ b/maps/templates/admin/ert.dmm @@ -1943,7 +1943,6 @@ /turf/simulated/floor/tiled/techfloor, /area/ship/ert/barracks) "pf" = ( -/obj/landmark/map_data/ert_ship, /turf/space, /area/space) "pg" = ( diff --git a/maps/templates/admin/kk_mercship.dmm b/maps/templates/admin/kk_mercship.dmm index f73043dafbe..3b4fa404eaf 100644 --- a/maps/templates/admin/kk_mercship.dmm +++ b/maps/templates/admin/kk_mercship.dmm @@ -3129,7 +3129,6 @@ /turf/simulated/floor/tiled/techfloor, /area/ship/manta/hangar) "pf" = ( -/obj/landmark/map_data/manta_ship, /turf/space, /area/space) "pn" = ( diff --git a/maps/tether/levels/mining.dmm b/maps/tether/levels/mining.dmm index 90114f5a3dc..1e84a5724b7 100644 --- a/maps/tether/levels/mining.dmm +++ b/maps/tether/levels/mining.dmm @@ -828,9 +828,6 @@ /turf/simulated/wall/prepainted/cargo, /area/outpost/mining_main/dorms) "us" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/outpost/mining_main/passage) "ut" = ( @@ -2040,10 +2037,6 @@ /turf/simulated/floor/plating, /area/outpost/mining_main/secondary_gear_storage) "ZF" = ( -/obj/effect/map_effect/portal/master/side_b{ - dir = 1; - portal_id = "surfacemine" - }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/outpost/mining_main/passage) "ZO" = ( diff --git a/maps/tether/levels/plains.dmm b/maps/tether/levels/plains.dmm index b4561dc0042..3996faa553d 100644 --- a/maps/tether/levels/plains.dmm +++ b/maps/tether/levels/plains.dmm @@ -93,7 +93,6 @@ /area/tether/outpost/exploration_shed) "B" = ( /obj/effect/floor_decal/rust, -/obj/effect/map_effect/portal/line/side_b, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/outpost/exploration_shed) "D" = ( @@ -140,10 +139,6 @@ /area/tether/outpost/exploration_shed) "O" = ( /obj/effect/floor_decal/rust, -/obj/effect/map_effect/portal/master/side_b{ - name = "from_tether_to_wild"; - portal_id = "wilderness_step" - }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/outpost/exploration_shed) "P" = ( diff --git a/maps/tether/levels/station2.dmm b/maps/tether/levels/station2.dmm index 5f5f425981a..103d823c66d 100644 --- a/maps/tether/levels/station2.dmm +++ b/maps/tether/levels/station2.dmm @@ -7091,7 +7091,6 @@ /turf/simulated/floor/tiled/dark, /area/tether/exploration) "ov" = ( -/obj/landmark/map_data/virgo3b, /turf/space, /area/space) "ow" = ( diff --git a/maps/tether/levels/surface1.dmm b/maps/tether/levels/surface1.dmm index 1530043c7a9..f0d2852cacd 100644 --- a/maps/tether/levels/surface1.dmm +++ b/maps/tether/levels/surface1.dmm @@ -2927,9 +2927,6 @@ /turf/simulated/floor/tiled/steel_ridged, /area/rnd/outpost/mixing) "bAS" = ( -/obj/effect/map_effect/portal/master/side_a{ - portal_id = "surfacemine" - }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/surfacebase/lowernortheva/external) "bAT" = ( @@ -16975,11 +16972,6 @@ /turf/simulated/floor/tiled, /area/rnd/outpost) "iQX" = ( -/obj/effect/map_effect/portal/master/side_a{ - dir = 1; - name = "to_wilderness"; - portal_id = "wilderness_step" - }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/surfacebase/outside/outside1) "iRw" = ( @@ -39177,9 +39169,6 @@ /turf/simulated/floor/plating, /area/tether/surfacebase/funny/clownoffice) "uXC" = ( -/obj/effect/map_effect/portal/line/side_a{ - dir = 1 - }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/surfacebase/outside/outside1) "uXS" = ( @@ -40287,7 +40276,6 @@ /turf/simulated/floor/tiled, /area/crew_quarters/visitor_laundry) "vAn" = ( -/obj/effect/map_effect/portal/line/side_a, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/surfacebase/lowernortheva/external) "vAp" = ( diff --git a/maps/triumph/levels/deck4.dmm b/maps/triumph/levels/deck4.dmm index 69fe42fcc76..3ffbae079ec 100644 --- a/maps/triumph/levels/deck4.dmm +++ b/maps/triumph/levels/deck4.dmm @@ -18596,7 +18596,6 @@ /turf/simulated/floor/tiled/dark, /area/hallway/primary/aft) "mIv" = ( -/obj/landmark/map_data/triumph, /turf/space, /area/space) "mID" = (