From 89d99971a81d2913796bd8e0798a35e894d5ba78 Mon Sep 17 00:00:00 2001 From: mistakenot4892 Date: Fri, 10 Oct 2025 12:21:29 +1100 Subject: [PATCH 1/4] Adding modular map generator. --- code/controllers/subsystems/mapping.dm | 4 +- code/game/objects/structures/wall_sconce.dm | 7 +- code/game/turfs/turf_changing.dm | 3 +- .../game/turfs/walls/wall_natural_subtypes.dm | 6 + code/modules/admin/admin_verbs.dm | 4 +- .../admin/verbs/map_template_loadverb.dm | 4 +- code/modules/lighting/lighting_turf.dm | 3 +- code/modules/maps/helper_landmarks.dm | 2 +- code/modules/modular_map/__map_setup.dm | 16 + code/modules/modular_map/_map_generator.dm | 149 + code/modules/modular_map/map_cell.dm | 55 + code/modules/modular_map/map_connection.dm | 62 + code/modules/modular_map/map_debug_holder.dm | 13 + code/modules/modular_map/map_encounter.dm | 15 + .../modular_map/map_encounter_template.dm | 9 + code/modules/modular_map/map_node.dm | 16 + code/modules/modular_map/map_path.dm | 11 + code/modules/modular_map/map_run.dm | 601 + code/modules/modular_map/map_template.dm | 64 + code/modules/modular_map/map_verbs.dm | 28 + code/modules/multiz/level_data.dm | 6 + maps/modular_maps/aqueduct/_aqueduct.dm | 586 + maps/modular_maps/aqueduct/aqueduct_end_e.dmm | 122 + maps/modular_maps/aqueduct/aqueduct_end_n.dmm | 120 + maps/modular_maps/aqueduct/aqueduct_end_s.dmm | 122 + maps/modular_maps/aqueduct/aqueduct_end_w.dmm | 122 + maps/modular_maps/aqueduct/aqueduct_esw.dmm | 120 + .../aqueduct/aqueduct_horizontal.dmm | 126 + .../aqueduct/aqueduct_junction.dmm | 123 + maps/modular_maps/aqueduct/aqueduct_ne.dmm | 128 + maps/modular_maps/aqueduct/aqueduct_nes.dmm | 122 + maps/modular_maps/aqueduct/aqueduct_nw.dmm | 128 + maps/modular_maps/aqueduct/aqueduct_se.dmm | 126 + maps/modular_maps/aqueduct/aqueduct_sw.dmm | 126 + maps/modular_maps/aqueduct/aqueduct_swn.dmm | 122 + .../aqueduct/aqueduct_vertical.dmm | 128 + maps/modular_maps/aqueduct/aqueduct_wne.dmm | 122 + .../aqueduct/bridge_horizontal_full.dmm | 126 + .../aqueduct/bridge_horizontal_n.dmm | 123 + .../aqueduct/bridge_horizontal_s.dmm | 123 + .../aqueduct/bridge_vertical_e.dmm | 125 + .../aqueduct/bridge_vertical_full.dmm | 128 + .../aqueduct/bridge_vertical_w.dmm | 125 + .../aqueduct/chamber_horizontal.dmm | 237 + maps/modular_maps/aqueduct/chamber_large.dmm | 832 + .../modular_maps/aqueduct/chamber_small_e.dmm | 120 + .../modular_maps/aqueduct/chamber_small_n.dmm | 120 + .../modular_maps/aqueduct/chamber_small_s.dmm | 120 + .../modular_maps/aqueduct/chamber_small_w.dmm | 120 + .../aqueduct/chamber_vertical.dmm | 216 + maps/modular_maps/aqueduct/passage_end_e.dmm | 132 + maps/modular_maps/aqueduct/passage_end_n.dmm | 132 + maps/modular_maps/aqueduct/passage_end_s.dmm | 132 + maps/modular_maps/aqueduct/passage_end_w.dmm | 132 + maps/modular_maps/aqueduct/passage_esw.dmm | 120 + .../aqueduct/passage_horizontal.dmm | 127 + .../aqueduct/passage_junction.dmm | 113 + maps/modular_maps/aqueduct/passage_ne.dmm | 113 + maps/modular_maps/aqueduct/passage_nes.dmm | 122 + maps/modular_maps/aqueduct/passage_nw.dmm | 113 + maps/modular_maps/aqueduct/passage_se.dmm | 113 + maps/modular_maps/aqueduct/passage_sw.dmm | 113 + maps/modular_maps/aqueduct/passage_swn.dmm | 122 + .../aqueduct/passage_vertical.dmm | 131 + maps/modular_maps/aqueduct/passage_wne.dmm | 120 + maps/modular_maps/debug/_debug.dm | 223 + .../debug/debug_hall_corner_ne.dmm | 43 + .../debug/debug_hall_corner_nw.dmm | 43 + .../debug/debug_hall_corner_se.dmm | 43 + .../debug/debug_hall_corner_sw.dmm | 43 + maps/modular_maps/debug/debug_hall_end_e.dmm | 43 + maps/modular_maps/debug/debug_hall_end_n.dmm | 43 + maps/modular_maps/debug/debug_hall_end_s.dmm | 43 + maps/modular_maps/debug/debug_hall_end_w.dmm | 43 + maps/modular_maps/debug/debug_hall_esw.dmm | 43 + maps/modular_maps/debug/debug_hall_hori.dmm | 43 + .../debug/debug_hall_junction.dmm | 47 + maps/modular_maps/debug/debug_hall_nes.dmm | 43 + maps/modular_maps/debug/debug_hall_swn.dmm | 43 + maps/modular_maps/debug/debug_hall_vert.dmm | 43 + maps/modular_maps/debug/debug_hall_wne.dmm | 43 + maps/modular_maps/debug/debug_room_10_10.dmm | 132 + maps/shaded_hills/dungeon_gen/cellar.dmm | 1945 + maps/shaded_hills/dungeon_gen/gravesite.dmm | 399 + maps/shaded_hills/levels/_levels.dm | 6 + maps/shaded_hills/levels/random_map.dm | 41 +- maps/shaded_hills/shaded_hills-dungeon.dmm | 34104 ++++++++-------- maps/shaded_hills/shaded_hills-inn.dmm | 19 +- mods/content/fantasy/_fantasy.dme | 1 + mods/content/fantasy/dungeon/_dungeon.dm | 293 + .../fantasy/dungeon/dungeon_barracks.dmm | 522 + .../fantasy/dungeon/dungeon_butchery.dmm | 141 + .../fantasy/dungeon/dungeon_feasting_hall.dmm | 386 + .../fantasy/dungeon/dungeon_foundry.dmm | 254 + .../dungeon/dungeon_horizontal_aqueduct.dmm | 63 + .../dungeon/dungeon_horizontal_hallway.dmm | 62 + .../fantasy/dungeon/dungeon_kitchen.dmm | 176 + .../fantasy/dungeon/dungeon_library.dmm | 333 + mods/content/fantasy/dungeon/dungeon_pool.dmm | 190 + .../fantasy/dungeon/dungeon_pool_small.dmm | 110 + .../fantasy/dungeon/dungeon_smithy.dmm | 174 + .../fantasy/dungeon/dungeon_spider_nest.dmm | 196 + .../fantasy/dungeon/dungeon_surgery.dmm | 198 + .../fantasy/dungeon/dungeon_term_e.dmm | 32 + .../fantasy/dungeon/dungeon_term_n.dmm | 32 + .../fantasy/dungeon/dungeon_term_s.dmm | 32 + .../fantasy/dungeon/dungeon_term_w.dmm | 32 + .../dungeon/dungeon_vertical_aqueduct.dmm | 55 + .../dungeon/dungeon_vertical_hallway.dmm | 54 + .../fantasy/dungeon/dungeon_workshop.dmm | 197 + nebula.dme | 16 +- 111 files changed, 31538 insertions(+), 17400 deletions(-) create mode 100644 code/modules/modular_map/__map_setup.dm create mode 100644 code/modules/modular_map/_map_generator.dm create mode 100644 code/modules/modular_map/map_cell.dm create mode 100644 code/modules/modular_map/map_connection.dm create mode 100644 code/modules/modular_map/map_debug_holder.dm create mode 100644 code/modules/modular_map/map_encounter.dm create mode 100644 code/modules/modular_map/map_encounter_template.dm create mode 100644 code/modules/modular_map/map_node.dm create mode 100644 code/modules/modular_map/map_path.dm create mode 100644 code/modules/modular_map/map_run.dm create mode 100644 code/modules/modular_map/map_template.dm create mode 100644 code/modules/modular_map/map_verbs.dm create mode 100644 maps/modular_maps/aqueduct/_aqueduct.dm create mode 100644 maps/modular_maps/aqueduct/aqueduct_end_e.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_end_n.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_end_s.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_end_w.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_esw.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_horizontal.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_junction.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_ne.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_nes.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_nw.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_se.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_sw.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_swn.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_vertical.dmm create mode 100644 maps/modular_maps/aqueduct/aqueduct_wne.dmm create mode 100644 maps/modular_maps/aqueduct/bridge_horizontal_full.dmm create mode 100644 maps/modular_maps/aqueduct/bridge_horizontal_n.dmm create mode 100644 maps/modular_maps/aqueduct/bridge_horizontal_s.dmm create mode 100644 maps/modular_maps/aqueduct/bridge_vertical_e.dmm create mode 100644 maps/modular_maps/aqueduct/bridge_vertical_full.dmm create mode 100644 maps/modular_maps/aqueduct/bridge_vertical_w.dmm create mode 100644 maps/modular_maps/aqueduct/chamber_horizontal.dmm create mode 100644 maps/modular_maps/aqueduct/chamber_large.dmm create mode 100644 maps/modular_maps/aqueduct/chamber_small_e.dmm create mode 100644 maps/modular_maps/aqueduct/chamber_small_n.dmm create mode 100644 maps/modular_maps/aqueduct/chamber_small_s.dmm create mode 100644 maps/modular_maps/aqueduct/chamber_small_w.dmm create mode 100644 maps/modular_maps/aqueduct/chamber_vertical.dmm create mode 100644 maps/modular_maps/aqueduct/passage_end_e.dmm create mode 100644 maps/modular_maps/aqueduct/passage_end_n.dmm create mode 100644 maps/modular_maps/aqueduct/passage_end_s.dmm create mode 100644 maps/modular_maps/aqueduct/passage_end_w.dmm create mode 100644 maps/modular_maps/aqueduct/passage_esw.dmm create mode 100644 maps/modular_maps/aqueduct/passage_horizontal.dmm create mode 100644 maps/modular_maps/aqueduct/passage_junction.dmm create mode 100644 maps/modular_maps/aqueduct/passage_ne.dmm create mode 100644 maps/modular_maps/aqueduct/passage_nes.dmm create mode 100644 maps/modular_maps/aqueduct/passage_nw.dmm create mode 100644 maps/modular_maps/aqueduct/passage_se.dmm create mode 100644 maps/modular_maps/aqueduct/passage_sw.dmm create mode 100644 maps/modular_maps/aqueduct/passage_swn.dmm create mode 100644 maps/modular_maps/aqueduct/passage_vertical.dmm create mode 100644 maps/modular_maps/aqueduct/passage_wne.dmm create mode 100644 maps/modular_maps/debug/_debug.dm create mode 100644 maps/modular_maps/debug/debug_hall_corner_ne.dmm create mode 100644 maps/modular_maps/debug/debug_hall_corner_nw.dmm create mode 100644 maps/modular_maps/debug/debug_hall_corner_se.dmm create mode 100644 maps/modular_maps/debug/debug_hall_corner_sw.dmm create mode 100644 maps/modular_maps/debug/debug_hall_end_e.dmm create mode 100644 maps/modular_maps/debug/debug_hall_end_n.dmm create mode 100644 maps/modular_maps/debug/debug_hall_end_s.dmm create mode 100644 maps/modular_maps/debug/debug_hall_end_w.dmm create mode 100644 maps/modular_maps/debug/debug_hall_esw.dmm create mode 100644 maps/modular_maps/debug/debug_hall_hori.dmm create mode 100644 maps/modular_maps/debug/debug_hall_junction.dmm create mode 100644 maps/modular_maps/debug/debug_hall_nes.dmm create mode 100644 maps/modular_maps/debug/debug_hall_swn.dmm create mode 100644 maps/modular_maps/debug/debug_hall_vert.dmm create mode 100644 maps/modular_maps/debug/debug_hall_wne.dmm create mode 100644 maps/modular_maps/debug/debug_room_10_10.dmm create mode 100644 maps/shaded_hills/dungeon_gen/cellar.dmm create mode 100644 maps/shaded_hills/dungeon_gen/gravesite.dmm create mode 100644 mods/content/fantasy/dungeon/_dungeon.dm create mode 100644 mods/content/fantasy/dungeon/dungeon_barracks.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_butchery.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_feasting_hall.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_foundry.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_horizontal_aqueduct.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_horizontal_hallway.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_kitchen.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_library.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_pool.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_pool_small.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_smithy.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_spider_nest.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_surgery.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_term_e.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_term_n.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_term_s.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_term_w.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_vertical_aqueduct.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_vertical_hallway.dmm create mode 100644 mods/content/fantasy/dungeon/dungeon_workshop.dmm diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm index 1eb7ecbbf52..4fdf8d35599 100644 --- a/code/controllers/subsystems/mapping.dm +++ b/code/controllers/subsystems/mapping.dm @@ -229,8 +229,8 @@ SUBSYSTEM_DEF(mapping) if(!TYPE_IS_ABSTRACT(template)) . += new template_type(type) // send name as a param to catch people doing illegal ad hoc creation -/datum/controller/subsystem/mapping/proc/get_template(var/template_name) - return map_templates[template_name] +/datum/controller/subsystem/mapping/proc/get_template(var/template) + return istype(template, /datum/map_template) ? template : map_templates[template] /datum/controller/subsystem/mapping/proc/get_templates_by_category(var/temple_cat) // :33 return map_templates_by_category[temple_cat] diff --git a/code/game/objects/structures/wall_sconce.dm b/code/game/objects/structures/wall_sconce.dm index c8795109458..4fbc228b10f 100644 --- a/code/game/objects/structures/wall_sconce.dm +++ b/code/game/objects/structures/wall_sconce.dm @@ -33,14 +33,14 @@ anchored = TRUE /// Reference to the currently attached item. var/obj/item/flame/light_source - /// Whether or not the light source, if present, is automatically lit on Initialize. + /// Whether or not the light source, if present, is automatically lit on Initialize. If a number above 1, is a random prob. var/start_lit = FALSE /obj/structure/wall_sconce/Initialize(var/ml, var/_mat, var/_reinf_mat, var/supplied_dir) if(ispath(light_source)) light_source = new light_source(src) - if(start_lit && istype(light_source)) + if(istype(light_source) && (start_lit == TRUE || prob(start_lit))) light_source.light(null, no_message = TRUE) . = ..() @@ -132,6 +132,9 @@ /obj/structure/wall_sconce/lantern light_source = /obj/item/flame/fuelled/lantern/filled +/obj/structure/wall_sconce/lantern/lit + start_lit = 30 + /obj/structure/wall_sconce/candle light_source = /obj/item/flame/candle diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index 0dfa901cf98..95612700f6e 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -75,7 +75,7 @@ var/old_alpha_mask_state = get_movable_alpha_mask_state(null) var/old_event_listeners = event_listeners var/old_listening_to = _listening_to - + var/old_maptext = maptext var/old_ambience = ambient_light var/old_ambience_mult = ambient_light_multiplier var/old_ambient_light_old_r = ambient_light_old_r @@ -185,6 +185,7 @@ if(changed_turf.zone_membership_candidate != old_zone_membership_candidate) update_external_atmos_participation() + changed_turf.maptext = old_maptext changed_turf.update_weather(force_update_below = changed_turf.is_open() != old_is_open) if(keep_height) diff --git a/code/game/turfs/walls/wall_natural_subtypes.dm b/code/game/turfs/walls/wall_natural_subtypes.dm index dc072ac2519..edd488af90c 100644 --- a/code/game/turfs/walls/wall_natural_subtypes.dm +++ b/code/game/turfs/walls/wall_natural_subtypes.dm @@ -66,6 +66,11 @@ color = "#41311b" floor_type = /turf/floor/dirt +/turf/wall/natural/clay + material = /decl/material/solid/clay + color = "#807f7a" + floor_type = /turf/floor/clay + #define MATERIAL_NATURAL_TURFS(ID, MAT) \ /turf/floor/rock/##ID { \ color = /decl/material/##MAT::color; \ @@ -103,4 +108,5 @@ MATERIAL_NATURAL_TURFS(sandstone, solid/stone/sandstone) MATERIAL_NATURAL_TURFS(basalt, solid/stone/basalt) MATERIAL_NATURAL_TURFS(granite, solid/stone/granite) MATERIAL_NATURAL_TURFS(marble, solid/stone/marble) +MATERIAL_NATURAL_TURFS(marble, solid/clay) #undef MATERIAL_NATURAL_TURFS \ No newline at end of file diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index d4d3e91d6e5..0c610f7ed13 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -131,7 +131,9 @@ var/global/list/admin_verbs_spawn = list( /client/proc/respawn_character, /client/proc/respawn_as_self, /client/proc/spawn_chemdisp_cartridge, - /datum/admins/proc/mass_debug_closet_icons + /datum/admins/proc/mass_debug_closet_icons, + /client/proc/place_modular_map_new_z, + /client/proc/place_modular_map_current_z ) var/global/list/admin_verbs_server = list( /datum/admins/proc/capture_map_part, diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm index 606ac3bedc7..d5e7e8a2b65 100644 --- a/code/modules/admin/verbs/map_template_loadverb.dm +++ b/code/modules/admin/verbs/map_template_loadverb.dm @@ -5,8 +5,8 @@ if (!check_rights(R_FUN)) return - var/datum/map_template/template = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in SSmapping.spawnable_map_templates - if(!istype(template)) + var/datum/map_template/map = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in SSmapping.spawnable_map_templates + if(!istype(map)) return var/turf/T = get_turf(usr) diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index 5543d1166c1..e6bebf57184 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -40,7 +40,8 @@ // Builds a lighting overlay for us, but only if our area is dynamic. /turf/proc/lighting_build_overlay(now = FALSE) if (lighting_overlay) - CRASH("Attempted to create lighting_overlay on tile that already had one.") + //error("Attempted to create lighting_overlay on tile that already had one ([x],[y],[z]).") + return if (TURF_IS_DYNAMICALLY_LIT_UNSAFE(src)) if (!lighting_corners_initialised || !corners) diff --git a/code/modules/maps/helper_landmarks.dm b/code/modules/maps/helper_landmarks.dm index 990300442c8..6458d8199e4 100644 --- a/code/modules/maps/helper_landmarks.dm +++ b/code/modules/maps/helper_landmarks.dm @@ -39,7 +39,7 @@ INITIALIZE_IMMEDIATE(/obj/abstract/landmark/map_load_mark) var/turf/spawn_loc = get_turf(src) if(istype(spawn_loc)) - if(istext(template)) + if(istext(template) || ispath(template)) template = SSmapping.get_template(template) if(istype(template)) template.load(spawn_loc, centered = centered) diff --git a/code/modules/modular_map/__map_setup.dm b/code/modules/modular_map/__map_setup.dm new file mode 100644 index 00000000000..4cc6f5ca718 --- /dev/null +++ b/code/modules/modular_map/__map_setup.dm @@ -0,0 +1,16 @@ +#define MCF_BLOCKER BITFLAG(0) +#define MCF_HALL BITFLAG(1) +#define MCF_ROOM BITFLAG(2) +#define MCF_AQUEDUCT BITFLAG(3) +#define MCF_HALL_BEND BITFLAG(4) +#define MCF_BRIDGE BITFLAG(5) + +#define TRANSLATE_MODMAP_COORD(X, Y, WIDTH) (((Y * WIDTH) + (X))+1) + +var/global/list/_mcf_flags = list( + (MCF_HALL), + (MCF_ROOM), + (MCF_AQUEDUCT), + (MCF_HALL_BEND), + (MCF_BRIDGE) +) diff --git a/code/modules/modular_map/_map_generator.dm b/code/modules/modular_map/_map_generator.dm new file mode 100644 index 00000000000..6b71479bc4b --- /dev/null +++ b/code/modules/modular_map/_map_generator.dm @@ -0,0 +1,149 @@ +// This decl is used for general structure for generating mazes/dungeons from a set of premapped templates. +// The actual meat of the generator logic is in map_run.dm. +// Example implementation in maps/modular_maps/debug/_debug.dm or maps/modular_maps/aqueduct/_aqueduct.dm + +/decl/modular_map_generator + abstract_type = /decl/modular_map_generator + /// Human-readable identifier. + var/name + /// A level data type to pass to the new-z proc if needed. + var/level_data_type = /datum/level_data/empty + /// Datum type to use for run behavior/data tracking. + var/map_run_type = /datum/mm_run + /// Turfs per cell - functionally the grid size of the modular map. + var/grid_cell_size + /// Flag to avoid regenerating the template list unnecessarily. + var/templates_are_setup = FALSE + /// A list of template types that are available to this map generator. + var/list/cell_templates + /// A cache of template instances by their connection category for use in template selection. + var/list/templates_by_category = list() + /// A maximum number of templates forming a given path. <= 0 indicates no max. + var/max_generation = 0 //8 + /// A minimum number of templates forming a given path. <= 0 indicates no max. + var/min_generation = 0 //5 + /// Bool for placing map markers on each placed cell. + var/place_debug_markers = TRUE + /// List of random map datum types to run on the level after generating and applying. + var/list/post_run_generators + /// Horizontal gutter for placement on the actual map. + var/border_x = 8 + /// Vertical gutter for placement on the actual map. + var/border_y = 8 + // Whether or not the final grid can have trailing connections. + var/do_trim_trailing_connections = FALSE + // Number of cells with trailing connections after which to apply the trim multiplier. + var/trailing_connection_trim_threshold = 1 // 50 + // Amount of cells with trailing connections to prune each run. + var/trailing_connection_trim_multiplier = 1 // 0.65 + + /// Maps without at least one path of this length or more will fail to validate. + var/min_path_length = 0 //50 + /// Assoc list of template type to cell coordinate to place instead of a random initial template + var/list/mandatory_templates + +/decl/modular_map_generator/proc/validate_template(template_type, datum/map_template/modular/template) + if(!istype(template)) + PRINT_STACK_TRACE("Map generator [type] has template type [template_type] with no instance on SSmapping.") + return FALSE + . = TRUE + if(!template.connection_flag) + PRINT_STACK_TRACE("Map generator [type] has template [template.type] with unset connection_flag.") + . = FALSE + if(!length(template.cell_connections)) + PRINT_STACK_TRACE("Map generator [type] has template [template.type] with empty cell_connections.") + . = FALSE + +// Separate to Initialize() due to SSmapping dependency. +/decl/modular_map_generator/proc/setup_templates() + if(templates_are_setup || !SSmapping.initialized) + return + + // Build our full template list + var/list/template_instances = list() + for(var/template_type in cell_templates) + var/datum/map_template/modular/template = SSmapping.map_templates_by_type[template_type] + if(validate_template(template_type, template)) + template_instances |= template + LAZYDISTINCTADD(templates_by_category[num2text(template.connection_flag)], template) + cell_templates = template_instances + + // Build our mandatory template list. + for(var/template_type in mandatory_templates) + if(!ispath(template_type)) + continue + var/datum/map_template/modular/template = SSmapping.map_templates_by_type[template_type] + if(validate_template(template_type,template)) + mandatory_templates[template] = mandatory_templates[template_type] + mandatory_templates -= template_type + + templates_are_setup = TRUE + +/decl/modular_map_generator/validate() + . = ..() + setup_templates() + + if(!name) + . += "no name set" + if(!length(cell_templates)) + . += "no templates to place" + if(!templates_by_category[num2text(MCF_ROOM)]) + . += "no rooms to place" + if(!templates_by_category[num2text(MCF_HALL)]) + . += "no hallways to place" + if(!isnum(grid_cell_size) || grid_cell_size < 0) + . += "invalid grid cell size ([grid_cell_size || "NULL"])" + if(!level_data_type) + . += "no level data type set" + + if(length(mandatory_templates)) + for(var/index in mandatory_templates) + if(!istype(index, /datum/map_template/modular)) + . += "non-instance or non-typed key in mandatory template list: [index]" + var/list/coord = mandatory_templates[index] + if(!islist(coord) || length(coord) < 2 || !isnum(coord[1]) || !isnum(coord[2])) + . += "invalid or malformed coordinates for [index] in mandatory template list" + + var/list/initial_templates = get_initial_templates() + if(!length(initial_templates)) + . += "no initial templates returned to get_initial_templates()" + +/decl/modular_map_generator/proc/get_initial_template() + return pick(templates_by_category[num2text(MCF_ROOM)]) + +/decl/modular_map_generator/proc/get_initial_templates(datum/mm_run/run) + if(islist(mandatory_templates)) + return mandatory_templates + var/mx = run?.g_mx || 0 + var/my = run?.g_my || 0 + // Place a random room template at a random central-ish coordinate. + var/initial_template = get_initial_template() + var/x = round(rand(mx * 0.3, mx * 0.6)) + var/y = round(rand(my * 0.3, my * 0.6)) + log_debug("Placing random initial template [initial_template] at [x],[y] (map template: [istype(initial_template, /datum/map_template)], modular template: [istype(initial_template, /datum/map_template/modular)])") + return list((initial_template) = list(x, y)) + +/decl/modular_map_generator/proc/generate(target_z) + + set waitfor = FALSE + + if(!SSmapping.initialized) + to_chat(usr, SPAN_WARNING("Please wait until SSmapping initialization so template setup can complete.")) + return TRUE + + setup_templates() + + var/datum/mm_run/run = new map_run_type( + src, + floor((world.maxx - (border_x*2)) / grid_cell_size), + floor((world.maxy - (border_y*2)) / grid_cell_size), + target_z || world.maxz+1 + ) + if(!run.generate_initial_map()) + return FALSE + if(!run.perform_map_cleanup()) + return FALSE + if(!run.finalize_run()) + return FALSE + return TRUE + diff --git a/code/modules/modular_map/map_cell.dm b/code/modules/modular_map/map_cell.dm new file mode 100644 index 00000000000..58cda0e6baa --- /dev/null +++ b/code/modules/modular_map/map_cell.dm @@ -0,0 +1,55 @@ +// A single square on the dungeon map grid. Some map templates cover multiple cells. +/datum/mm_cell + var/cell_x + var/cell_y + var/datum/mm_cell/owner + var/datum/map_template/modular/template + var/generation + var/marked_for_cleanup + var/marked_for_refresh + + VAR_PRIVATE/list/_open_connections + +/datum/mm_cell/Destroy() + LAZYCLEARLIST(_open_connections) + template = null + return ..() + +/datum/mm_cell/New(datum/mm_run/_run, _x, _y, _template, datum/mm_cell/_owner, _generation, _ox, _oy) + cell_x = _x + cell_y = _y + template = _template + generation = _generation + owner = _owner + // Initially assume all non-internal connections are freed; cell placement logic will close connections that are blocked by our placement. + // Note for future self that dummy connections do need to be considered open/closed in order to avoid unterminated rooms being + // placed such that they 'connect' to blank walls. + // Realising after writing this that it might be totally unnecessary as templates already don't generate internal connections. Ough. + var/ox = _x - _ox + var/oy = _y - _oy + var/mx = ox + (template.cell_width-1) + var/my = oy + (template.cell_height-1) + for(var/datum/mm_connection/connection in template.cell_connections) + if(connection.offset_x != _ox || connection.offset_y != _oy) + continue + var/tx = _x + connection.target_x + var/ty = _y + connection.target_y + if(tx < 0 || tx > _run.g_mx || ty < 0 || ty > _run.g_my) + continue + if((tx >= ox && tx < mx && ty >= oy && ty < my)) + continue + open_connection(connection) + +/datum/mm_cell/proc/get_open_connections(exclude_flags) + if(isnull(exclude_flags)) + return _open_connections + for(var/datum/mm_connection/connection as anything in _open_connections) + if(connection.connection_flags & exclude_flags) + continue + LAZYADD(., connection) + +/datum/mm_cell/proc/close_connection(connection) + LAZYREMOVE(_open_connections, connection) + +/datum/mm_cell/proc/open_connection(connection) + LAZYDISTINCTADD(_open_connections, connection) diff --git a/code/modules/modular_map/map_connection.dm b/code/modules/modular_map/map_connection.dm new file mode 100644 index 00000000000..7a4ce75cc8a --- /dev/null +++ b/code/modules/modular_map/map_connection.dm @@ -0,0 +1,62 @@ +// Connection data for use by the modular map generator and templates +/datum/mm_connection + /// Outgoing/facing direction of this connection. + var/direction_string + // Incoming/reverse facing direction of this connection. + var/reverse_direction_string + /// x-offset within the overall map structure (0 is hard left) + var/offset_x + /// y-offset within the overall map structure (0 is hard bottom). + var/offset_y + /// x-offset for the cell this connection would connect to. + var/target_x = 0 + /// y-offset for the cell this connection would connect to. + var/target_y = 0 + /// A list of valid connection constants for sections joining with this connection. + var/connection_flags + /// Reference to our owning template to simplify connection compatibility checking. + var/datum/map_template/modular/template + +/datum/mm_connection/proc/can_connect_to(datum/mm_connection/other) + + // Connections are not aligned; no dice. + if(direction_string != other.reverse_direction_string) + return FALSE + + // Null connections just need to be facing another null connection, they don't care about template compat. + var/self_dummy = !!(connection_flags & MCF_BLOCKER) + var/other_dummy = !!(other.connection_flags & MCF_BLOCKER) + if(self_dummy || other_dummy) + return self_dummy == other_dummy + + // Connection type is not permitted from this template; still no dice. + if(!(other.connection_flags & template.connection_flag)) + return FALSE + + // Connection type is not permitted to that template; still no dice. + if(!(connection_flags & other.template.connection_flag)) + return FALSE + + return TRUE + +/datum/mm_connection/New(_dir, _x, _y, _connect) + + offset_x = _x + offset_y = _y + + direction_string = _dir + switch(direction_string) + if("NORTH") + reverse_direction_string = "SOUTH" + target_y = 1 + if("SOUTH") + reverse_direction_string = "NORTH" + target_y = -1 + if("EAST") + reverse_direction_string = "WEST" + target_x = 1 + if("WEST") + reverse_direction_string = "EAST" + target_x = -1 + + connection_flags = _connect diff --git a/code/modules/modular_map/map_debug_holder.dm b/code/modules/modular_map/map_debug_holder.dm new file mode 100644 index 00000000000..e21c7beb0b0 --- /dev/null +++ b/code/modules/modular_map/map_debug_holder.dm @@ -0,0 +1,13 @@ +/obj/map_debug_holder + icon = 'icons/effects/landmarks.dmi' + icon_state = "x" + simulated = FALSE + var/datum/mm_cell/cell + +/obj/map_debug_holder/Initialize(mapload, datum/mm_cell/_cell) + . = ..() + cell = _cell + +/obj/map_debug_holder/Destroy() + . = ..() + cell = null diff --git a/code/modules/modular_map/map_encounter.dm b/code/modules/modular_map/map_encounter.dm new file mode 100644 index 00000000000..f4d3050d1e1 --- /dev/null +++ b/code/modules/modular_map/map_encounter.dm @@ -0,0 +1,15 @@ +/decl/modular_map_generator/proc/generate_encounter_sequence() + //var/list/encounters = decls_repository.get_decls_of_subtype_unassociated(/decl/mm_encounter_template) + +/datum/mm_encounter + + var/datum/mm_encounter/previous_encounter + var/list/subsequent_encounters + + var/decl/mm_encounter_template/encounter_data + var/list/cells = list() + +/datum/mm_encounter/Destroy(force) + cells = null + return ..() + diff --git a/code/modules/modular_map/map_encounter_template.dm b/code/modules/modular_map/map_encounter_template.dm new file mode 100644 index 00000000000..97f6bf4d2d5 --- /dev/null +++ b/code/modules/modular_map/map_encounter_template.dm @@ -0,0 +1,9 @@ +/decl/mm_encounter_template + var/name = "Empty Room" + abstract_type = /decl/mm_encounter_template + +/decl/mm_encounter_template/proc/can_be_placed(datum/mm_encounter/previous_encounter, list/cells) + return FALSE + +/decl/mm_encounter_template/monster_closet + name = "Monster Closet" diff --git a/code/modules/modular_map/map_node.dm b/code/modules/modular_map/map_node.dm new file mode 100644 index 00000000000..65ce85cc7ee --- /dev/null +++ b/code/modules/modular_map/map_node.dm @@ -0,0 +1,16 @@ +// A node represents an outgoing connection from a cell. +// The cell is the 'source' cell, whose position the connection will offset to reach the target cell. +/datum/mm_node + var/generation + var/datum/mm_cell/cell + var/datum/mm_connection/connection + +/datum/mm_node/New(_cell, _conn, _gen) + cell = _cell + connection = _conn + generation = _gen + +/datum/mm_node/Destroy(force) + cell = null + connection = null + return ..() diff --git a/code/modules/modular_map/map_path.dm b/code/modules/modular_map/map_path.dm new file mode 100644 index 00000000000..86e1023f44b --- /dev/null +++ b/code/modules/modular_map/map_path.dm @@ -0,0 +1,11 @@ +// A connected sequence of cells (a route through the dungeon) +/datum/mm_path + var/list/cells + +/datum/mm_path/New(list/_cells) + cells = _cells + ..() + +/datum/mm_path/Destroy(force) + cells = null + return ..() diff --git a/code/modules/modular_map/map_run.dm b/code/modules/modular_map/map_run.dm new file mode 100644 index 00000000000..32a88bee009 --- /dev/null +++ b/code/modules/modular_map/map_run.dm @@ -0,0 +1,601 @@ +/datum/mm_run + + var/decl/modular_map_generator/generator + /// Pseudo-linear/2D list of cell coord to cell. + var/list/_grid + /// Pending connections from cells used in building the next iteration. + var/list/_nodes + /// What is our maximum cell X-dimension (not turf)? + var/g_mx = 0 + /// What is our maximum cell Y-dimension (not turf)? + var/g_my = 0 + /// What level are we placing on? + var/g_pz = 0 + /// Assoc list of target turf to map template for final loading. + var/list/load_operations = list() + /// Counter for progress reporting. + var/gen_started = 0 + /// Data type to use for individual cells. + var/cell_type = /datum/mm_cell + /// Upper bound for loop iteration to avoid infinite loops. + var/const/LOOP_SANITY = 100000 + /// How many trailing connection passes to do before giving up. + var/const/MAX_TRAILING_PASS = 100 + +/datum/mm_run/New(_gen, _x, _y, _z) + // Keep track of our source generator. + generator = _gen + g_mx = _x + g_my = _y + g_pz = _z + // Declare a list for tracking our occupied space and pre-build our graph. + _grid = new /list(TRANSLATE_MODMAP_COORD(g_mx, g_my, g_mx)) + +/datum/mm_run/proc/generate_initial_map() + gen_started = world.time + // Placing our initial templates (either hardcoded or a single random template) + _nodes = place_mandatory_templates(generator.get_initial_templates(src)) + if(!length(_nodes)) + log_debug("No initial nodes from template placement, generation failed.") + return FALSE + log_debug("Starting with [length(_nodes)] node\s and bounds [g_mx],[g_my] on z[g_pz].") + // Main meat of the generator is in this proc. + try + build_from_nodes(permit_cycles = TRUE) // TODO: FALSE + log_debug("Initial run finished with [length(_nodes)] pending node\s, [get_dangling_connection_count(ignore_origin_cells = FALSE)] dangling connection\s, and [get_grid_count()] occupied cells.") + catch(var/exception/E) + log_error("Exception during modular map run: [EXCEPTION_TEXT(E)]") + return FALSE + return TRUE + +/datum/mm_run/proc/perform_map_cleanup() + // Clean up any dangling connections (gaps in the generated grid) + if(generator.do_trim_trailing_connections) + var/sanity = 0 + while(get_dangling_connection_count(TRUE) && sanity <= MAX_TRAILING_PASS) + trim_dangling_connections(++sanity) + if(sanity > MAX_TRAILING_PASS) + log_debug("Failed to generate [generator.name] in [(world.time - gen_started)/10] second\s: exceeded trailing connection pruning max pass.") + return FALSE + + var/list/paths = resolve_isolated_paths() + var/failure_reason = validate_run(paths) + if(failure_reason) + log_debug("Failed to generate [generator.name] in [(world.time - gen_started)/10] second\s: [failure_reason]") + return FALSE + + log_debug("Cleanup finished with [length(_nodes)] pending nodes, [get_dangling_connection_count()] dangling connection\s, [length(paths)] discrete paths, and [get_grid_count()] occupied cells.") + return TRUE + +/datum/mm_run/proc/build_from_nodes(permit_dangling_connections = TRUE, permit_cycles = TRUE) + + var/sanity = LOOP_SANITY + while(length(_nodes) && sanity) + + // TODO: consider iterating all nodes of the highest gen as a group before moving on to the next highest. + // Pick one of our remaining connections. + var/datum/mm_node/node = _nodes[1] + var/datum/mm_connection/connection = node.connection + var/datum/mm_cell/cell = node.cell + _nodes.Cut(1, 2) + + + // We do not apply terminators on the first run. + var/list/terminators = list() + + // Try to find a template that we can connect to this spot. + for(var/connection_flag in shuffle(global._mcf_flags)) + // Flag not present in this connection's flags. + if(!(connection.connection_flags & connection_flag)) + continue + // Determine the bottom-left corner of the space needed to fit this template from this connection. + var/list/templates = generator.templates_by_category[num2text(connection_flag)] + if(!islist(templates)) + continue + // Randomise template order to avoid always placing a northeast corner or whatever. + templates = templates.Copy() + for(var/datum/map_template/modular/template in templates) + if(template.is_terminator) + terminators += template + templates -= terminators + connection = attempt_place_templates(shuffle(templates), connection, cell, node, permit_dangling_connections, permit_cycles) + if(!connection) + break + CHECK_TICK + + // Connection is not null and we have terminators, so try to place one of those. + if(connection && length(terminators)) + connection = attempt_place_templates(shuffle(terminators), connection, cell, node, permit_dangling_connections, permit_cycles) + sanity-- + + if(!QDELETED(node)) + qdel(node) + CHECK_TICK + +/datum/mm_run/proc/attempt_place_templates(list/templates, datum/mm_connection/connection, datum/mm_cell/cell, datum/mm_node/node, permit_dangling_connections, permit_cycles) + + var/sanity = LOOP_SANITY + while(length(templates) && sanity) + + sanity-- + var/datum/map_template/modular/template = templates[1] + templates.Cut(1, 2) + CHECK_TICK + + // Coarse parse; find all connections in this template that are facing the right way + // and have the right connection type to match up with our outgoing connection. + var/list/possible_connections = list() + for(var/datum/mm_connection/possible_connection in template.cell_connections) + if(connection.can_connect_to(possible_connection)) + // Nominally compatible; it will fail placement if it overlaps with an existing cell. + possible_connections += possible_connection + CHECK_TICK + + // Not even remotely possible. + if(!length(possible_connections)) + continue + + possible_connections = shuffle(possible_connections) + var/connection_x = (cell.cell_x + connection.target_x) + var/connection_y = (cell.cell_y + connection.target_y) + for(var/datum/mm_connection/possible_connection in possible_connections) + // Get base template origin coords, then adjust for template size. + var/place_x = connection_x + var/place_y = connection_y + // Note to future self: cell width/height are absolute, not an offset, hence -1. + switch(connection.direction_string) + if("NORTH") + place_x -= possible_connection.offset_x + if("SOUTH") + place_x -= possible_connection.offset_x + place_y -= (template.cell_height-1) + if("EAST") + place_y -= possible_connection.offset_y + if("WEST") + place_x -= (template.cell_width-1) + place_y -= possible_connection.offset_y + + // Immediately out of bounds, no thank you. + if(place_x < 1 || place_y < 1) + continue + + CHECK_TICK + + // Actually try to place this template from our connection. + var/list/placement_results = place_on_grid(cell, template, place_x, place_y, node.generation, permit_dangling_connections, permit_cycles) + if(length(placement_results)) + _nodes.Insert(1, shuffle(placement_results)) + connection = null + sanity = LOOP_SANITY // reset our failure counter + break + // Connection is null, we're done. + if(!connection) + break + CHECK_TICK + return connection + +/datum/mm_run/proc/place_on_grid(datum/mm_cell/origin, datum/map_template/modular/placing, place_x, place_y, generation, permit_dangling_connections = TRUE, permit_cycles = FALSE) + + // TODO: move this into initial template selection for this placement + if(generator.max_generation > 0 && generation >= generator.max_generation && !placing.is_terminator) + return null + if(generator.min_generation > 0 && generation < generator.min_generation && placing.is_terminator) + return null + + // We will be returning a list of connections resulting from this placement. + // An empty/null return means a failed placement. + // Cell width/height are absolute, not an offset. + var/place_x_m = place_x + (placing.cell_width-1) + var/place_y_m = place_y + (placing.cell_height-1) + + // We always go bottom left to top right, and will never be given a negative origin, so only check the top right bound. + if(place_x_m > g_mx || place_y_m > g_my) + return null + + // Quick check to make sure there's actually room for us to be placed here. + for(var/x = place_x to place_x_m) + for(var/y = place_y to place_y_m) + if(!isnull(_grid[TRANSLATE_MODMAP_COORD(x, y, g_mx)])) + return null + + // Check what connections will be free after this tile is placed. + // Connection targets with no corresponding cell are valid. + // Connection targets which match the type and orientation of the corresponding cell are valid. + var/list/template_connections + for(var/datum/mm_connection/connection in placing.cell_connections) + + // Work out the coords for the cell we're trying to connect to. + var/target_x = place_x + connection.offset_x + connection.target_x + var/target_y = place_y + connection.offset_y + connection.target_y + + var/dummy_connection = !!(connection.connection_flags & MCF_BLOCKER) + // Can't leave a dangling connection facing the void. + if(!dummy_connection && (target_x < 0 || target_y < 0 || target_x >= g_mx || target_y >= g_my)) + return null + + // Connection target is outside of map bounds - this room cannot be placed here if we want our map to be complete. + var/target_coord = TRANSLATE_MODMAP_COORD(target_x, target_y, g_mx) + if(target_coord <= 0 || target_coord > length(_grid)) + return null + + // What is in the cell we're targeting? + var/datum/mm_cell/target_cell = _grid[target_coord] + + // DEBUG: banning cells that cause cycles. + if(!permit_cycles && !dummy_connection && !isnull(target_cell) && target_cell != origin) + return null + + // Connection target is free, we don't need to check existing connections... + if(isnull(target_cell)) + if(permit_dangling_connections || (connection.connection_flags & (MCF_BLOCKER))) + // It's unoccupied and we aren't blocking a connection, we can use this spot. + LAZYADD(template_connections, connection) + continue + // We're trying to backfill the graph or something, do not permit a placement that would leave an open connection + return null + + // Connection target has no connections (all connections used) + var/list/target_conns = target_cell.get_open_connections() + if(!length(target_conns)) + return null + + // We need to find a potential match for all our connections in the target connections. + var/found_cell = FALSE + for(var/datum/mm_connection/target_connection in target_conns) + if(!connection.can_connect_to(target_connection)) + continue + // This one is possible! Mark it down for later and continue evaluation. + found_cell = TRUE + LAZYSET(template_connections, connection, target_connection) + break + + // No partner/space for this connection, so this template is unplacable. + if(!found_cell) + return null + + // We have not been able to find a partner or empty cell for all of our outgoing connections. + if(length(template_connections) != length(placing.cell_connections)) + return null + + // This room is placable - populate the cells in the grid with it. + var/datum/mm_cell/root_cell = new cell_type(src, place_x, place_y, placing, null, generation+1, 0, 0) + var/list/placed_cells = list(root_cell) + if(place_x < place_x_m || place_y < place_y_m) + for(var/x = place_x to place_x_m) + for(var/y = place_y to place_y_m) + if(x == place_x && y == place_y) + continue + placed_cells += new cell_type(src, x, y, placing, root_cell, generation+1, x-place_x, y-place_y) + + for(var/datum/mm_cell/placed_cell as anything in placed_cells) + _grid[TRANSLATE_MODMAP_COORD(placed_cell.cell_x, placed_cell.cell_y, g_mx)] = placed_cell + + for(var/datum/mm_connection/connection in template_connections) + var/datum/mm_connection/target_connection = template_connections[connection] + var/dangling_x = place_x + connection.offset_x + var/dangling_y = place_y + connection.offset_y + if(istype(target_connection)) + // Retrieve our target cell and remove the now-linked connection from the list. + var/target_x = dangling_x + connection.target_x + var/target_y = dangling_y + connection.target_y + var/datum/mm_cell/target_cell = _grid[TRANSLATE_MODMAP_COORD(target_x, target_y, g_mx)] + target_cell.close_connection(target_connection) + for(var/datum/mm_cell/placed_cell as anything in placed_cells) + placed_cell.close_connection(connection) + else if(!(connection.connection_flags & (MCF_BLOCKER))) + var/datum/mm_node/node = new(_grid[TRANSLATE_MODMAP_COORD(dangling_x, dangling_y, g_mx)], connection, generation+1) + LAZYADD(., node) + +/datum/mm_run/proc/place_mandatory_templates(list/initial_templates) + for(var/template in initial_templates) + var/list/coords = initial_templates[template] + log_debug("Got initial template: [template], [json_encode(coords)] (map template: [istype(template, /datum/map_template)], modular template: [istype(template, /datum/map_template/modular)])") + + for(var/datum/map_template/modular/template in initial_templates) + var/list/coords = initial_templates[template] + log_debug("Trying to place [template] at [coords[1]], [coords[2]]") + var/list/new_nodes = place_on_grid(null, template, coords[1], coords[2], permit_dangling_connections = TRUE, permit_cycles = TRUE) + if(length(new_nodes)) + LAZYDISTINCTADD(., new_nodes) + else + log_debug("Failed to place mandatory template [template] from [coords[1]],[coords[2]] to [coords[1]+template.cell_width-1],[coords[1]+template.cell_height-1].") + +/datum/mm_run/proc/get_dangling_connection_count(bool_return, ignore_origin_cells = TRUE) + . = 0 + for(var/datum/mm_cell/cell in _grid) + if(ignore_origin_cells && cell.generation <= 1) + continue + for(var/datum/mm_connection/connection in cell.get_open_connections(exclude_flags = MCF_BLOCKER)) + .++ + if(bool_return) + break + +/datum/mm_run/proc/has_dangling_connections(ignore_origin_cells = TRUE) + for(var/datum/mm_cell/cell in _grid) + // Origin cells typically don't count. + if(ignore_origin_cells && cell.generation <= 1) + continue + // Find unlinked connections on this cell that indicate it needs to be cleaned up. + for(var/datum/mm_connection/connection in cell.get_open_connections(exclude_flags = MCF_BLOCKER)) + return TRUE + return FALSE + +/datum/mm_run/proc/trim_dangling_connections(iteration) + + var/list/actual_cells = list() + for(var/datum/mm_cell/cell in _grid) + actual_cells += cell + + log_debug("Trimming dangling connections from [length(actual_cells)] cell\s - run #[iteration]") + + // Try to clean up dangling connections. + _nodes = list() + var/list/clear_cells = list() + for(var/datum/mm_cell/cell as anything in actual_cells) + // Find unlinked connections on this cell that indicate it needs to be cleaned up. + for(var/datum/mm_connection/connection in cell.get_open_connections(exclude_flags = MCF_BLOCKER)) + cell = cell.owner || cell + if(cell.generation <= 1) // Do not remove our origins even if we can't connect them to anything. Leave that for validation failure. + continue + clear_cells |= cell + break + + if(!length(clear_cells)) + log_debug("No cells to clear.") + return + + // Try to avoid clearing too many cells in one pass (resulting in tons of tiny truncated paths), + // we mostly just want to shake things up so non-terminating connections might be placable. + var/total_clear_cells = length(clear_cells) + if(total_clear_cells > generator.trailing_connection_trim_threshold && generator.trailing_connection_trim_multiplier < 1) + clear_cells = shuffle(clear_cells) + clear_cells.Cut(1, 1+max(ceil(length(clear_cells) * generator.trailing_connection_trim_multiplier),1)) + + log_debug("Clearing [length(clear_cells)]/[total_clear_cells] cell\s...") + + // Do the actual cleanup. + for(var/datum/mm_cell/cell in clear_cells) + var/list/freed_nodes = clear_cell(cell) + if(length(freed_nodes)) + _nodes |= freed_nodes + + // If we generated new nodes, build out from them. + if(length(_nodes) <= 0) + return + + log_debug("Rebuilding [length(_nodes)] node\s...") + build_from_nodes(permit_dangling_connections = TRUE) + +/datum/mm_run/proc/clear_cell(datum/mm_cell/cell) + + // If this is a filler cell, remove the entire chunk. + if(cell.owner) + return clear_cell(cell.owner) + + // Clear our indicated cells off the grid. + var/list/cleared_cells = list() + for(var/x = cell.cell_x to (cell.cell_x+cell.template.cell_width-1)) + for(var/y = cell.cell_y to (cell.cell_y+cell.template.cell_height-1)) + var/ci = TRANSLATE_MODMAP_COORD(x, y, g_mx) + if(ci > 0 && ci <= length(_grid)) + var/datum/mm_cell/clear = _grid[ci] + _grid[ci] = null // IMPORTANT: not Remove() or -=, grid index is position. + if(!isnull(clear) && clear.generation > 1) // Don't remove our origin cells please. + cleared_cells |= clear + + // Get a list of all cells bordering a removed cell. + var/list/neighbors = list() + for(var/datum/mm_cell/cleared_cell in cleared_cells) + cleared_cell.marked_for_cleanup = TRUE + cleared_cell.marked_for_refresh = FALSE + for(var/datum/mm_connection/connection in cleared_cell.template.cell_connections) + var/nx = cleared_cell.cell_x + connection.offset_x + connection.target_x + var/ny = cleared_cell.cell_y + connection.offset_y + connection.target_y + var/ni = TRANSLATE_MODMAP_COORD(nx, ny, g_mx) + if(ni <= 0 || ni > length(_grid)) + continue + var/datum/mm_cell/neighbor = _grid[ni] + if(!istype(neighbor) || (neighbor in cleared_cells)) + continue + neighbors |= neighbor + + // Rebuild connections for all neighboring cells. + for(var/datum/mm_cell/neighbor in neighbors) + var/mark_cells = FALSE + var/list/neighbor_conns = neighbor.get_open_connections() + for(var/datum/mm_connection/connection in neighbor.template.cell_connections) + if(connection in neighbor_conns) + continue + var/cx = neighbor.cell_x + connection.offset_x + connection.target_x + var/cy = neighbor.cell_y + connection.offset_y + connection.target_y + var/ci = TRANSLATE_MODMAP_COORD(cx, cy, g_mx) + if(ci <= 0 || ci > length(_grid)) + continue + var/datum/mm_cell/conn_target = _grid[ci] + if(!istype(conn_target) || conn_target.marked_for_cleanup) + neighbor.open_connection(connection) + mark_cells = TRUE + if(!(connection.connection_flags & (MCF_BLOCKER))) + LAZYADD(., new /datum/mm_node(neighbor, connection, neighbor.generation+1)) + + if(mark_cells) + // Mark all cells related to this one as marked for refresh. + var/datum/mm_cell/mark_from_cell = neighbor.owner || neighbor + for(var/nx in mark_from_cell.cell_x to mark_from_cell.cell_x+mark_from_cell.template.cell_width-1) + for(var/ny in mark_from_cell.cell_y to mark_from_cell.cell_y+mark_from_cell.template.cell_height-1) + var/ni = TRANSLATE_MODMAP_COORD(nx, ny, g_mx) + if(ni > 0 && ni <= length(_grid)) + var/datum/mm_cell/subneighbor = _grid[ni] + if(istype(subneighbor) && !subneighbor.marked_for_cleanup) + subneighbor.marked_for_refresh = TRUE + + // Clean up the removed cells. + QDEL_NULL_LIST(cleared_cells) + +/datum/mm_run/proc/resolve_isolated_paths() + + // Get our existing cells (discard nulls) + var/list/ungrouped_cells = list() + for(var/datum/mm_cell/cell in _grid) + ungrouped_cells += cell + + // Identify connected paths. + var/list/grouped_cells = list() + while(length(ungrouped_cells)) + + var/list/connected_cells = list() + var/current_cell = ungrouped_cells[1] + ungrouped_cells -= current_cell + + var/list/potential_cells = list(current_cell) + while(length(potential_cells)) + + // Update tracking lists. + var/datum/mm_cell/check_cell = potential_cells[1] + potential_cells -= check_cell + ungrouped_cells -= check_cell + connected_cells |= check_cell + grouped_cells |= check_cell + + // Multicell templates behave oddly in terms of connections, treat them as a block. + if(check_cell.owner && (check_cell.owner.template.cell_width > 1 || check_cell.owner.template.cell_height > 1)) + for(var/cx = check_cell.owner.cell_x to check_cell.owner.cell_x + check_cell.owner.template.cell_width-1) + for(var/cy = check_cell.owner.cell_y to check_cell.owner.cell_y + check_cell.owner.template.cell_height-1) + var/ci = TRANSLATE_MODMAP_COORD(cx, cy, g_mx) + var/datum/mm_cell/block_cell = _grid[ci] + if(istype(block_cell) && !(block_cell in grouped_cells)) + potential_cells |= block_cell + + // Check our non-dummy connections for accessible cells. + for(var/datum/mm_connection/connection in check_cell.template.cell_connections) + // Ignore dummy connections. + if(connection.connection_flags & MCF_BLOCKER) + continue + var/nx = check_cell.cell_x + connection.offset_x + connection.target_x + var/ny = check_cell.cell_y + connection.offset_y + connection.target_y + var/ni = TRANSLATE_MODMAP_COORD(nx, ny, g_mx) + if(nx >= 0 && ny >= 0 && nx <= g_mx && ny <= g_my && ni > 0 && ni <= length(_grid)) + var/datum/mm_cell/neighbor = _grid[ni] + if(istype(neighbor) && !(neighbor in grouped_cells)) + potential_cells |= neighbor + + LAZYADD(., new /datum/mm_path(connected_cells)) + +// Returns a string indicating the reason for failing validation. +/datum/mm_run/proc/validate_run(list/paths) + if(generator.do_trim_trailing_connections && get_dangling_connection_count(TRUE)) + return "Map has dangling connections after cleanup passes." + if(generator.min_path_length > 0) + var/has_long_path = FALSE + for(var/datum/mm_path/path in paths) + if(length(path.cells) >= generator.min_path_length) + has_long_path = TRUE + break + if(!has_long_path) + return "Map has no path of sufficient length ([generator.min_path_length] cell\s)" + return null + +/datum/mm_run/proc/finalize_run() + + log_debug("Built [generator.name] in [(world.time - gen_started)/10] second\s.") + gen_started = world.time + + if(!apply_to_game_world()) + log_debug("Failed to place and finalize [generator.name] in [(world.time - gen_started)/10] second\s.") + return FALSE + + log_debug("Placed [generator.name] in [(world.time - gen_started)/10] second\s.") + gen_started = world.time + post_run() + log_debug("Finalized [generator.name] in [(world.time - gen_started)/10] second\s.") + return TRUE + +// Returns the z-level the map was applied to. +/datum/mm_run/proc/apply_to_game_world() + + + // Increase the world height if needed. + while(world.maxz < g_pz) + SSmapping.increment_world_z_size(generator.level_data_type) + + // Keep track of load operations to run after we finalize our map. + load_operations = list() + var/g_cs = generator.grid_cell_size + var/list/debug_targets = list() + for(var/datum/mm_cell/cell in _grid) + if(!cell.template) + continue + + var/turf/cell_origin = locate( + generator.border_x + (cell.cell_x * g_cs), + generator.border_y + (cell.cell_y * g_cs), + g_pz + ) + + if(istype(cell_origin)) + if(!cell.owner) // Don't try to load filler cells. + load_operations[cell_origin] = cell.template + if(generator.place_debug_markers) + var/turf/debug_turf = locate( + cell_origin.x + (g_cs / 2), + cell_origin.y + (g_cs / 2), + g_pz + ) + if(istype(debug_turf) && !(debug_turf in debug_targets)) + var/obj/map_debug_holder/marker = new(null, cell) + marker.maptext = "
[cell.cell_x],[cell.cell_y] - #[cell.generation]
" + if(cell.marked_for_refresh) + marker.icon_state = "x2" + else if(cell.marked_for_cleanup) + marker.icon_state = "x3" + debug_targets[debug_turf] = marker + + CHECK_TICK + + if(!length(load_operations)) + log_debug("No load operations (grid count is [get_grid_count()]).") + return FALSE + + global._gag_report_progress++ // disable template load subsystem spam. + try + var/announced = FALSE + for(var/turf/load_turf in load_operations) + var/datum/map_template/template = load_operations[load_turf] + template.load(load_turf) + if(!announced) + announced = TRUE + admin_notice("Placed modular generated map (JMP)", R_DEBUG) + log_debug("Placed modular generated map at [load_turf.x],[load_turf.y],[load_turf.z]") + catch(var/exception/E) + log_error("Exception during final DMMS load of [type]: [EXCEPTION_TEXT(E)]") + global._gag_report_progress-- // enable subsystem spam. + + if(length(debug_targets)) + for(var/turf/mark_turf in debug_targets) + var/obj/marker = debug_targets[mark_turf] + marker.forceMove(mark_turf) + debug_targets.Cut() + + return g_pz + +/datum/mm_run/proc/post_run() + //QDEL_NULL_LIST(grid) + + // Apply 'dumb' random maps. + for(var/gen_type in generator.post_run_generators) + new gen_type(1, 1, g_pz, world.maxx, world.maxy, FALSE, TRUE) + + // DMMS and mapload alters wall connection behavior, give it a poke to ensure they blend correctly. + for(var/turf/turf as anything in block(locate(generator.border_x, generator.border_y, g_pz), locate(world.maxx-generator.border_x, world.maxy-generator.border_y, g_pz))) + if(!turf.simulated) + continue + if(istype(turf, /turf/wall)) + var/turf/wall/wall = turf + wall.update_material(FALSE) + else + turf.update_icon() + +/datum/mm_run/proc/get_grid_count() + . = 0 + for(var/datum/mm_cell/cell in _grid) + .++ diff --git a/code/modules/modular_map/map_template.dm b/code/modules/modular_map/map_template.dm new file mode 100644 index 00000000000..034c44ea06b --- /dev/null +++ b/code/modules/modular_map/map_template.dm @@ -0,0 +1,64 @@ +/datum/map_template/modular + abstract_type = /datum/map_template/modular + is_spawnable = FALSE // Do not bloat out the map placement list. + + /// A list of cell coordinates linking to directions linking to connection types from that point. + /// ex. "1_1" = list("NORTH" = (MCF_ROOM)) + var/list/cell_connections + /// A bitflag indicating the type of connections that can be formed to this room. + var/connection_flag = MCF_ROOM + /// How many cells wide is this room? + var/cell_width = 1 + /// How many cells long is this room? + var/cell_height = 1 + /// Whether or not this template caps off a path (has one or less non-dummy connections) + var/is_terminator = FALSE + +/datum/map_template/modular/New() + + ..() + + var/conn_count = 0 + for(var/datum/mm_connection/connection in cell_connections) + if(!(connection.connection_flags & (MCF_BLOCKER))) + conn_count++ + is_terminator = conn_count <= 1 + + var/list/existing_coords = list() + for(var/datum/mm_connection/connection in cell_connections) + connection.template = src + var/coord = "[connection.offset_x]_[connection.offset_y]" + LAZYINITLIST(existing_coords[coord]) + LAZYDISTINCTADD(existing_coords[coord], connection.direction_string) + + // Fill in any outward-facing cell faces with dummy + // connections to enable connection logic later. + var/w = cell_width-1 + var/z = cell_height-1 + for(var/x = 0 to w) + + if(x != 0 && x != w) + continue + + for(var/y = 0 to z) + + if(y != 0 && y != z) + continue + + var/list/connection_dirs = list() + if(x == 0) + connection_dirs += "WEST" + if(x == w) + connection_dirs += "EAST" + if(y == 0) + connection_dirs += "SOUTH" + if(y == z) + connection_dirs += "NORTH" + + var/coord = "[x]_[y]" + for(var/connection_dir in connection_dirs) + if(connection_dir in existing_coords[coord]) + continue + var/datum/mm_connection/new_conn = new(connection_dir, x, y, (MCF_BLOCKER)) + new_conn.template = src + cell_connections += new_conn diff --git a/code/modules/modular_map/map_verbs.dm b/code/modules/modular_map/map_verbs.dm new file mode 100644 index 00000000000..3d82c9f2b7e --- /dev/null +++ b/code/modules/modular_map/map_verbs.dm @@ -0,0 +1,28 @@ +/client/proc/place_modular_map_current_z() + set name = "Place Modular Map On Current Z" + set category = "Admin" + set src = usr + + if(!holder) + to_chat(usr, SPAN_WARNING("Only administrators may use this command.")) + return + + var/turf/my_turf = get_turf(mob) + if(!my_turf?.z) + to_chat(usr, SPAN_WARNING("You must be on a turf to use this verb.")) + return + + var/decl/modular_map_generator/mapgen = input("Select a generator.") as null|anything in decls_repository.get_decls_of_subtype_unassociated(/decl/modular_map_generator) + mapgen?.generate(my_turf.z) + +/client/proc/place_modular_map_new_z() + set name = "Place Modular Map On New Z" + set category = "Admin" + set src = usr + + if(!holder) + to_chat(usr, SPAN_WARNING("Only administrators may use this command.")) + return + + var/decl/modular_map_generator/mapgen = input("Select a generator.") as null|anything in decls_repository.get_decls_of_subtype_unassociated(/decl/modular_map_generator) + mapgen?.generate() diff --git a/code/modules/multiz/level_data.dm b/code/modules/multiz/level_data.dm index c88b80a285e..c3b81bd76eb 100644 --- a/code/modules/multiz/level_data.dm +++ b/code/modules/multiz/level_data.dm @@ -771,6 +771,12 @@ INITIALIZE_IMMEDIATE(/obj/abstract/level_data_spawner) //////////////////////////////////////////// /datum/level_data/space +/datum/level_data/empty + base_turf = /turf/unsimulated/dark_filler + +/datum/level_data/masked + base_turf = /turf/unsimulated/mask + /datum/level_data/debug name = "Debug Level" diff --git a/maps/modular_maps/aqueduct/_aqueduct.dm b/maps/modular_maps/aqueduct/_aqueduct.dm new file mode 100644 index 00000000000..b68202f20ee --- /dev/null +++ b/maps/modular_maps/aqueduct/_aqueduct.dm @@ -0,0 +1,586 @@ +/decl/modular_map_generator/aqueduct + name = "Aqueducts" + grid_cell_size = 9 + cell_templates = list( + /datum/map_template/modular/aqueduct/chamber/large, + /datum/map_template/modular/aqueduct/chamber/small_n, + /datum/map_template/modular/aqueduct/chamber/small_s, + /datum/map_template/modular/aqueduct/chamber/small_e, + /datum/map_template/modular/aqueduct/chamber/small_w, + /datum/map_template/modular/aqueduct/chamber/vertical, + /datum/map_template/modular/aqueduct/chamber/horizontal, + /datum/map_template/modular/aqueduct/junction, + /datum/map_template/modular/aqueduct/ne, + /datum/map_template/modular/aqueduct/nw, + /datum/map_template/modular/aqueduct/se, + /datum/map_template/modular/aqueduct/sw, + /datum/map_template/modular/aqueduct/vertical, + /datum/map_template/modular/aqueduct/horizontal, + /datum/map_template/modular/aqueduct/esw, + /datum/map_template/modular/aqueduct/swn, + /datum/map_template/modular/aqueduct/wne, + /datum/map_template/modular/aqueduct/nes, + /datum/map_template/modular/aqueduct/end/n, + /datum/map_template/modular/aqueduct/end/s, + /datum/map_template/modular/aqueduct/end/w, + /datum/map_template/modular/aqueduct/end/e, + /datum/map_template/modular/aqueduct/water/junction, + /datum/map_template/modular/aqueduct/water/ne, + /datum/map_template/modular/aqueduct/water/nw, + /datum/map_template/modular/aqueduct/water/se, + /datum/map_template/modular/aqueduct/water/sw, + /datum/map_template/modular/aqueduct/water/horizontal, + /datum/map_template/modular/aqueduct/water/vertical, + /datum/map_template/modular/aqueduct/water/esw, + /datum/map_template/modular/aqueduct/water/swn, + /datum/map_template/modular/aqueduct/water/wne, + /datum/map_template/modular/aqueduct/water/nes, + /datum/map_template/modular/aqueduct/water/end/n, + /datum/map_template/modular/aqueduct/water/end/s, + /datum/map_template/modular/aqueduct/water/end/e, + /datum/map_template/modular/aqueduct/water/end/w, + /datum/map_template/modular/aqueduct/bridge/vertical, + /datum/map_template/modular/aqueduct/bridge/vertical_w, + /datum/map_template/modular/aqueduct/bridge/vertical_e, + /datum/map_template/modular/aqueduct/bridge/horizontal, + /datum/map_template/modular/aqueduct/bridge/horizontal_n, + /datum/map_template/modular/aqueduct/bridge/horizontal_s + ) + post_run_generators = list( + /datum/random_map/noise/aqueducts + ) + +/datum/random_map/noise/aqueducts + descriptor = "aqueducts (modular map)" + smoothing_iterations = 3 + target_turf_type = /turf/unsimulated/mask + +/datum/random_map/noise/aqueducts/get_appropriate_path(var/value) + var/val = min(9,max(0,round((value/cell_range)*10))) + switch(val) + if(6) + return /turf/wall/natural/clay + if(7 to 9) + return /turf/wall/natural/dirt + return /turf/wall/natural/basalt + +/datum/map_template/modular/aqueduct + abstract_type = /datum/map_template/modular/aqueduct + template_flags = TEMPLATE_FLAG_CLEAR_CONTENTS | TEMPLATE_FLAG_NO_RUINS + connection_flag = MCF_HALL + cell_width = 1 + cell_height = 1 + +/datum/map_template/modular/aqueduct/junction + name = "Aqueduct - Passage Junction" + mappaths = list("maps/modular_maps/aqueduct/passage_junction.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/junction/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/ne + name = "Aqueduct - Passage NE" + mappaths = list("maps/modular_maps/aqueduct/passage_ne.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/ne/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/nw + name = "Aqueduct - Passage NW" + mappaths = list("maps/modular_maps/aqueduct/passage_nw.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/nw/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/se + name = "Aqueduct - Passage SE" + mappaths = list("maps/modular_maps/aqueduct/passage_se.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/se/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/sw + name = "Aqueduct - Passage SW" + mappaths = list("maps/modular_maps/aqueduct/passage_sw.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/sw/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/vertical + name = "Aqueduct - Passage Vertical" + mappaths = list("maps/modular_maps/aqueduct/passage_vertical.dmm") + +/datum/map_template/modular/aqueduct/vertical/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/horizontal + name = "Aqueduct - Passage Horizontal" + mappaths = list("maps/modular_maps/aqueduct/passage_horizontal.dmm") + +/datum/map_template/modular/aqueduct/horizontal/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/esw + name = "Aqueduct - Passage ESW" + mappaths = list("maps/modular_maps/aqueduct/passage_esw.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/esw/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/swn + name = "Aqueduct - Passage SWN" + mappaths = list("maps/modular_maps/aqueduct/passage_swn.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/swn/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/wne + name = "Aqueduct - Passage WNE" + mappaths = list("maps/modular_maps/aqueduct/passage_wne.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/wne/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/nes + name = "Aqueduct - Passage NES" + mappaths = list("maps/modular_maps/aqueduct/passage_nes.dmm") + connection_flag = MCF_HALL_BEND + +/datum/map_template/modular/aqueduct/nes/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/end + abstract_type = /datum/map_template/modular/aqueduct/end + +/datum/map_template/modular/aqueduct/end/n + name = "Aqueduct - Passage End N" + mappaths = list("maps/modular_maps/aqueduct/passage_end_n.dmm") + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + +/datum/map_template/modular/aqueduct/end/n/New() + ..() + +/datum/map_template/modular/aqueduct/end/s + name = "Aqueduct - Passage End S" + mappaths = list("maps/modular_maps/aqueduct/passage_end_s.dmm") + +/datum/map_template/modular/aqueduct/end/s/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/end/w + name = "Aqueduct - Passage End W" + mappaths = list("maps/modular_maps/aqueduct/passage_end_w.dmm") + +/datum/map_template/modular/aqueduct/end/w/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/end/e + name = "Aqueduct - Passage End E" + mappaths = list("maps/modular_maps/aqueduct/passage_end_e.dmm") + +/datum/map_template/modular/aqueduct/end/e/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/aqueduct/chamber + abstract_type = /datum/map_template/modular/aqueduct/chamber + connection_flag = MCF_ROOM + +/datum/map_template/modular/aqueduct/chamber/large + name = "Aqueduct - Large Chamber" + mappaths = list("maps/modular_maps/aqueduct/chamber_large.dmm") + cell_width = 3 + cell_height = 3 + +/datum/map_template/modular/aqueduct/chamber/large/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 1, 2, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 1, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 2, 1, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 1, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/chamber/horizontal + name = "Aqueduct - Horizontal Chamber" + mappaths = list("maps/modular_maps/aqueduct/chamber_horizontal.dmm") + cell_width = 2 + +/datum/map_template/modular/aqueduct/chamber/horizontal/New() + cell_connections = list( + new /datum/mm_connection("EAST", 1, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/chamber/vertical + name = "Aqueduct - Vertical Chamber" + mappaths = list("maps/modular_maps/aqueduct/chamber_vertical.dmm") + cell_height = 2 + +/datum/map_template/modular/aqueduct/chamber/vertical/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 1, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/chamber/small_n + name = "Aqueduct - Small Chamber N" + mappaths = list("maps/modular_maps/aqueduct/chamber_small_n.dmm") + +/datum/map_template/modular/aqueduct/chamber/small_n/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/chamber/small_s + name = "Aqueduct - Small Chamber S" + mappaths = list("maps/modular_maps/aqueduct/chamber_small_s.dmm") + +/datum/map_template/modular/aqueduct/chamber/small_s/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/chamber/small_e + name = "Aqueduct - Small Chamber E" + mappaths = list("maps/modular_maps/aqueduct/chamber_small_e.dmm") + +/datum/map_template/modular/aqueduct/chamber/small_e/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/chamber/small_w + name = "Aqueduct - Small Chamber W" + mappaths = list("maps/modular_maps/aqueduct/chamber_small_w.dmm") + +/datum/map_template/modular/aqueduct/chamber/small_w/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/bridge + abstract_type = /datum/map_template/modular/aqueduct/bridge + connection_flag = MCF_BRIDGE + +/datum/map_template/modular/aqueduct/bridge/vertical + name = "Aqueduct - Bridge Vertical" + mappaths = list("maps/modular_maps/aqueduct/bridge_vertical_full.dmm") + +/datum/map_template/modular/aqueduct/bridge/vertical/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT)), + ) + ..() + +/datum/map_template/modular/aqueduct/bridge/vertical_e + name = "Aqueduct - Bridge Vertical E" + mappaths = list("maps/modular_maps/aqueduct/bridge_vertical_e.dmm") + +/datum/map_template/modular/aqueduct/bridge/vertical_e/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT)), + ) + ..() + +/datum/map_template/modular/aqueduct/bridge/vertical_w + name = "Aqueduct - Bridge Vertical W" + mappaths = list("maps/modular_maps/aqueduct/bridge_vertical_w.dmm") + +/datum/map_template/modular/aqueduct/bridge/vertical_w/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT)), + ) + ..() + +/datum/map_template/modular/aqueduct/bridge/horizontal + name = "Aqueduct - Bridge Horizontal" + mappaths = list("maps/modular_maps/aqueduct/bridge_horizontal_full.dmm") + +/datum/map_template/modular/aqueduct/bridge/horizontal/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/bridge/horizontal_n + name = "Aqueduct - Bridge Horizontal N" + mappaths = list("maps/modular_maps/aqueduct/bridge_horizontal_n.dmm") + +/datum/map_template/modular/aqueduct/bridge/horizontal_n/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/bridge/horizontal_s + name = "Aqueduct - Bridge Horizontal S" + mappaths = list("maps/modular_maps/aqueduct/bridge_horizontal_s.dmm") + +/datum/map_template/modular/aqueduct/bridge/horizontal_s/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_HALL_BEND | MCF_ROOM | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water + abstract_type = /datum/map_template/modular/aqueduct/water + connection_flag = MCF_AQUEDUCT + +/datum/map_template/modular/aqueduct/water/junction + name = "Aqueduct - Water Junction" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_junction.dmm") + +/datum/map_template/modular/aqueduct/water/junction/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/ne + name = "Aqueduct - Water NE" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_ne.dmm") + +/datum/map_template/modular/aqueduct/water/ne/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/nw + name = "Aqueduct - Water NW" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_nw.dmm") + +/datum/map_template/modular/aqueduct/water/nw/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/se + name = "Aqueduct - Water SE" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_se.dmm") + +/datum/map_template/modular/aqueduct/water/se/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/sw + name = "Aqueduct - Water SW" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_sw.dmm") + +/datum/map_template/modular/aqueduct/water/sw/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/horizontal + name = "Aqueduct - Water Horizontal" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_horizontal.dmm") + +/datum/map_template/modular/aqueduct/water/horizontal/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/vertical + name = "Aqueduct - Water Vertical" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_vertical.dmm") + +/datum/map_template/modular/aqueduct/water/vertical/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/esw + name = "Aqueduct - Water ESW" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_esw.dmm") + +/datum/map_template/modular/aqueduct/water/esw/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/swn + name = "Aqueduct - Water SWN" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_swn.dmm") + +/datum/map_template/modular/aqueduct/water/swn/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/wne + name = "Aqueduct - Water WNE" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_wne.dmm") + +/datum/map_template/modular/aqueduct/water/wne/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/nes + name = "Aqueduct - Water NES" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_nes.dmm") + +/datum/map_template/modular/aqueduct/water/nes/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/end + abstract_type = /datum/map_template/modular/aqueduct/water/end + +/datum/map_template/modular/aqueduct/water/end/n + name = "Aqueduct - Water End N" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_end_n.dmm") + +/datum/map_template/modular/aqueduct/water/end/n/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/end/s + name = "Aqueduct - Water End S" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_end_s.dmm") + +/datum/map_template/modular/aqueduct/water/end/s/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/end/e + name = "Aqueduct - Water End E" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_end_e.dmm") + +/datum/map_template/modular/aqueduct/water/end/e/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() + +/datum/map_template/modular/aqueduct/water/end/w + name = "Aqueduct - Water End W" + mappaths = list("maps/modular_maps/aqueduct/aqueduct_end_w.dmm") + +/datum/map_template/modular/aqueduct/water/end/w/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), + ) + ..() diff --git a/maps/modular_maps/aqueduct/aqueduct_end_e.dmm b/maps/modular_maps/aqueduct/aqueduct_end_e.dmm new file mode 100644 index 00000000000..5ee1f5ef75e --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_end_e.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +e +a +l +c +l +a +e +w +"} +(2,1,1) = {" +e +e +a +l +c +l +a +e +e +"} +(3,1,1) = {" +e +a +a +l +c +l +a +a +e +"} +(4,1,1) = {" +e +a +l +l +c +l +l +a +e +"} +(5,1,1) = {" +e +a +l +c +c +c +l +a +e +"} +(6,1,1) = {" +e +a +l +c +c +c +l +a +e +"} +(7,1,1) = {" +e +a +l +c +c +c +l +a +e +"} +(8,1,1) = {" +e +e +L +l +l +l +L +e +e +"} +(9,1,1) = {" +w +e +e +e +e +e +e +e +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_end_n.dmm b/maps/modular_maps/aqueduct/aqueduct_end_n.dmm new file mode 100644 index 00000000000..1196d9cd491 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_end_n.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"h" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +Q +Q +Q +Q +Q +Q +Q +a +"} +(2,1,1) = {" +Q +Q +q +q +q +q +q +Q +Q +"} +(3,1,1) = {" +Q +n +h +h +h +h +q +q +q +"} +(4,1,1) = {" +Q +h +d +d +d +h +h +h +h +"} +(5,1,1) = {" +Q +h +d +d +d +d +d +d +d +"} +(6,1,1) = {" +Q +h +d +d +d +h +h +h +h +"} +(7,1,1) = {" +Q +n +h +h +h +h +q +q +q +"} +(8,1,1) = {" +Q +Q +q +q +q +q +q +Q +Q +"} +(9,1,1) = {" +a +Q +Q +Q +Q +Q +Q +Q +a +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_end_s.dmm b/maps/modular_maps/aqueduct/aqueduct_end_s.dmm new file mode 100644 index 00000000000..b831ea30035 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_end_s.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"h" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"J" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +Q +Q +Q +Q +Q +Q +Q +a +"} +(2,1,1) = {" +Q +Q +q +q +q +q +q +Q +Q +"} +(3,1,1) = {" +q +q +q +h +h +h +h +J +Q +"} +(4,1,1) = {" +h +h +h +h +d +d +d +h +Q +"} +(5,1,1) = {" +d +d +d +d +d +d +d +h +Q +"} +(6,1,1) = {" +h +h +h +h +d +d +d +h +Q +"} +(7,1,1) = {" +q +q +q +h +h +h +h +J +Q +"} +(8,1,1) = {" +Q +Q +q +q +q +q +q +Q +Q +"} +(9,1,1) = {" +a +Q +Q +Q +Q +Q +Q +Q +a +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_end_w.dmm b/maps/modular_maps/aqueduct/aqueduct_end_w.dmm new file mode 100644 index 00000000000..91e932563c9 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_end_w.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +w +e +e +e +e +e +e +e +w +"} +(2,1,1) = {" +e +e +p +l +l +l +p +e +e +"} +(3,1,1) = {" +e +a +l +c +c +c +l +a +e +"} +(4,1,1) = {" +e +a +l +c +c +c +l +a +e +"} +(5,1,1) = {" +e +a +l +c +c +c +l +a +e +"} +(6,1,1) = {" +e +a +l +l +c +l +l +a +e +"} +(7,1,1) = {" +e +a +a +l +c +l +a +a +e +"} +(8,1,1) = {" +e +e +a +l +c +l +a +e +e +"} +(9,1,1) = {" +w +e +a +l +c +l +a +e +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_esw.dmm b/maps/modular_maps/aqueduct/aqueduct_esw.dmm new file mode 100644 index 00000000000..93bbc30c4f0 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_esw.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +w +e +a +l +c +l +a +e +w +"} +(2,1,1) = {" +w +e +a +l +c +l +a +e +e +"} +(3,1,1) = {" +e +e +a +l +c +l +a +a +a +"} +(4,1,1) = {" +e +p +a +l +c +l +l +l +l +"} +(5,1,1) = {" +e +e +a +l +c +c +c +c +c +"} +(6,1,1) = {" +e +p +a +l +c +l +l +l +l +"} +(7,1,1) = {" +e +e +a +l +c +l +a +a +a +"} +(8,1,1) = {" +w +e +a +l +c +l +a +e +e +"} +(9,1,1) = {" +w +e +a +l +c +l +a +e +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_horizontal.dmm b/maps/modular_maps/aqueduct/aqueduct_horizontal.dmm new file mode 100644 index 00000000000..762362fc6f9 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_horizontal.dmm @@ -0,0 +1,126 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"h" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"J" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +Q +q +h +d +h +q +Q +a +"} +(2,1,1) = {" +a +Q +q +h +d +h +q +Q +a +"} +(3,1,1) = {" +Q +Q +q +h +d +h +q +Q +Q +"} +(4,1,1) = {" +Q +n +q +h +d +h +q +J +Q +"} +(5,1,1) = {" +Q +Q +q +h +d +h +q +Q +Q +"} +(6,1,1) = {" +Q +n +q +h +d +h +q +J +Q +"} +(7,1,1) = {" +Q +Q +q +h +d +h +q +Q +Q +"} +(8,1,1) = {" +a +Q +q +h +d +h +q +Q +a +"} +(9,1,1) = {" +a +Q +q +h +d +h +q +Q +a +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_junction.dmm b/maps/modular_maps/aqueduct/aqueduct_junction.dmm new file mode 100644 index 00000000000..7392b53fe84 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_junction.dmm @@ -0,0 +1,123 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"i" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"k" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"B" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +w +a +k +i +k +a +w +w +"} +(2,1,1) = {" +w +a +a +a +a +a +a +a +w +"} +(3,1,1) = {" +a +a +B +k +i +k +n +a +a +"} +(4,1,1) = {" +k +a +k +i +i +i +k +a +k +"} +(5,1,1) = {" +i +a +i +i +i +i +i +a +i +"} +(6,1,1) = {" +k +a +k +i +i +i +k +a +k +"} +(7,1,1) = {" +a +a +B +k +i +k +n +a +a +"} +(8,1,1) = {" +w +a +a +a +a +a +a +a +w +"} +(9,1,1) = {" +w +w +a +k +i +k +a +w +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_ne.dmm b/maps/modular_maps/aqueduct/aqueduct_ne.dmm new file mode 100644 index 00000000000..1987c335e4d --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_ne.dmm @@ -0,0 +1,128 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +w +e +e +e +e +e +w +w +"} +(2,1,1) = {" +e +e +e +p +e +p +e +e +w +"} +(3,1,1) = {" +a +a +a +a +a +a +a +e +e +"} +(4,1,1) = {" +l +l +l +l +l +l +a +L +e +"} +(5,1,1) = {" +c +c +c +c +c +l +a +e +e +"} +(6,1,1) = {" +l +l +l +l +c +l +a +L +e +"} +(7,1,1) = {" +a +a +a +l +c +l +a +e +e +"} +(8,1,1) = {" +e +e +a +l +c +l +a +e +w +"} +(9,1,1) = {" +w +e +a +l +c +l +a +e +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_nes.dmm b/maps/modular_maps/aqueduct/aqueduct_nes.dmm new file mode 100644 index 00000000000..759c399d118 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_nes.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +w +w +e +e +e +e +e +w +w +"} +(2,1,1) = {" +e +e +e +p +e +p +e +e +e +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +l +l +l +l +l +l +l +l +l +"} +(5,1,1) = {" +c +c +c +c +c +c +c +c +c +"} +(6,1,1) = {" +l +l +l +l +c +l +l +l +l +"} +(7,1,1) = {" +a +a +a +l +c +l +a +a +a +"} +(8,1,1) = {" +e +e +a +l +c +l +a +e +e +"} +(9,1,1) = {" +w +e +a +l +c +l +a +e +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_nw.dmm b/maps/modular_maps/aqueduct/aqueduct_nw.dmm new file mode 100644 index 00000000000..91d8bd12ebc --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_nw.dmm @@ -0,0 +1,128 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +e +a +l +c +l +a +e +w +"} +(2,1,1) = {" +e +e +a +l +c +l +a +e +w +"} +(3,1,1) = {" +a +a +a +l +c +l +a +e +e +"} +(4,1,1) = {" +l +l +l +l +c +l +a +p +e +"} +(5,1,1) = {" +c +c +c +c +c +l +a +e +e +"} +(6,1,1) = {" +l +l +l +l +l +l +a +p +e +"} +(7,1,1) = {" +a +a +a +a +a +a +a +e +e +"} +(8,1,1) = {" +e +e +e +L +e +L +e +e +e +"} +(9,1,1) = {" +w +w +e +e +e +e +e +w +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_se.dmm b/maps/modular_maps/aqueduct/aqueduct_se.dmm new file mode 100644 index 00000000000..4080dd992e4 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_se.dmm @@ -0,0 +1,126 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"d" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +w +w +e +e +e +e +e +w +w +"} +(2,1,1) = {" +w +e +e +p +e +p +e +e +e +"} +(3,1,1) = {" +e +e +a +a +a +a +a +a +a +"} +(4,1,1) = {" +e +d +a +l +l +l +l +l +l +"} +(5,1,1) = {" +e +e +a +l +c +c +c +c +c +"} +(6,1,1) = {" +e +d +a +l +c +l +l +l +l +"} +(7,1,1) = {" +e +e +a +l +c +l +a +a +a +"} +(8,1,1) = {" +w +e +a +l +c +l +a +e +e +"} +(9,1,1) = {" +w +e +a +l +c +l +a +e +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_sw.dmm b/maps/modular_maps/aqueduct/aqueduct_sw.dmm new file mode 100644 index 00000000000..bfc0a906978 --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_sw.dmm @@ -0,0 +1,126 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"d" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +e +a +l +c +l +a +e +w +"} +(2,1,1) = {" +w +e +a +l +c +l +a +e +e +"} +(3,1,1) = {" +e +e +a +l +c +l +a +a +a +"} +(4,1,1) = {" +e +d +a +l +c +l +l +l +l +"} +(5,1,1) = {" +e +e +a +l +c +c +c +c +c +"} +(6,1,1) = {" +e +d +a +l +l +l +l +l +l +"} +(7,1,1) = {" +e +e +a +a +a +a +a +a +a +"} +(8,1,1) = {" +w +e +e +L +e +L +e +e +e +"} +(9,1,1) = {" +w +w +e +e +e +e +e +w +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_swn.dmm b/maps/modular_maps/aqueduct/aqueduct_swn.dmm new file mode 100644 index 00000000000..4b135006bbd --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_swn.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +e +a +l +c +l +a +e +w +"} +(2,1,1) = {" +e +e +a +l +c +l +a +e +e +"} +(3,1,1) = {" +a +a +a +l +c +l +a +a +a +"} +(4,1,1) = {" +l +l +l +l +c +l +l +l +l +"} +(5,1,1) = {" +c +c +c +c +c +c +c +c +c +"} +(6,1,1) = {" +l +l +l +l +l +l +l +l +l +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +e +e +e +L +e +L +e +e +e +"} +(9,1,1) = {" +w +w +e +e +e +e +e +w +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_vertical.dmm b/maps/modular_maps/aqueduct/aqueduct_vertical.dmm new file mode 100644 index 00000000000..7349ecb9b9a --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_vertical.dmm @@ -0,0 +1,128 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +w +e +e +e +e +e +w +w +"} +(2,1,1) = {" +e +e +e +p +e +p +e +e +e +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +l +l +l +l +l +l +l +l +l +"} +(5,1,1) = {" +c +c +c +c +c +c +c +c +c +"} +(6,1,1) = {" +l +l +l +l +l +l +l +l +l +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +e +e +e +L +e +L +e +e +e +"} +(9,1,1) = {" +w +w +e +e +e +e +e +w +w +"} diff --git a/maps/modular_maps/aqueduct/aqueduct_wne.dmm b/maps/modular_maps/aqueduct/aqueduct_wne.dmm new file mode 100644 index 00000000000..70057d996bf --- /dev/null +++ b/maps/modular_maps/aqueduct/aqueduct_wne.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"p" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +w +e +a +l +c +l +a +e +w +"} +(2,1,1) = {" +e +e +a +l +c +l +a +e +w +"} +(3,1,1) = {" +a +a +a +l +c +l +a +e +e +"} +(4,1,1) = {" +l +l +l +l +c +l +a +p +e +"} +(5,1,1) = {" +c +c +c +c +c +l +a +e +e +"} +(6,1,1) = {" +l +l +l +l +c +l +a +p +e +"} +(7,1,1) = {" +a +a +a +l +c +l +a +e +e +"} +(8,1,1) = {" +e +e +a +l +c +l +a +e +w +"} +(9,1,1) = {" +w +e +a +l +c +l +a +e +w +"} diff --git a/maps/modular_maps/aqueduct/bridge_horizontal_full.dmm b/maps/modular_maps/aqueduct/bridge_horizontal_full.dmm new file mode 100644 index 00000000000..4c5c389d9fc --- /dev/null +++ b/maps/modular_maps/aqueduct/bridge_horizontal_full.dmm @@ -0,0 +1,126 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"m" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"t" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"v" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"L" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"M" = ( +/turf/floor/wood/ebony, +/area/template_noop) +"T" = ( +/obj/structure/door/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"W" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +t +W +m +W +t +a +a +"} +(2,1,1) = {" +t +t +t +W +m +W +t +t +t +"} +(3,1,1) = {" +W +W +T +W +M +W +T +W +W +"} +(4,1,1) = {" +L +L +t +L +M +L +t +L +L +"} +(5,1,1) = {" +v +v +t +v +M +v +t +v +v +"} +(6,1,1) = {" +L +L +t +L +M +L +t +L +L +"} +(7,1,1) = {" +W +W +T +W +M +W +T +W +W +"} +(8,1,1) = {" +t +t +t +W +m +W +t +t +t +"} +(9,1,1) = {" +a +a +t +W +m +W +t +a +a +"} diff --git a/maps/modular_maps/aqueduct/bridge_horizontal_n.dmm b/maps/modular_maps/aqueduct/bridge_horizontal_n.dmm new file mode 100644 index 00000000000..ab1b6c74991 --- /dev/null +++ b/maps/modular_maps/aqueduct/bridge_horizontal_n.dmm @@ -0,0 +1,123 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"m" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"t" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"v" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"L" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"T" = ( +/obj/structure/door/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"W" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +t +W +m +W +t +a +a +"} +(2,1,1) = {" +t +t +t +W +m +W +t +a +a +"} +(3,1,1) = {" +W +W +T +W +m +W +t +a +a +"} +(4,1,1) = {" +L +L +t +W +m +W +t +a +a +"} +(5,1,1) = {" +v +v +t +W +m +W +t +a +a +"} +(6,1,1) = {" +L +L +t +W +m +W +t +a +a +"} +(7,1,1) = {" +W +W +T +W +m +W +t +a +a +"} +(8,1,1) = {" +t +t +t +W +m +W +t +a +a +"} +(9,1,1) = {" +a +a +t +W +m +W +t +a +a +"} diff --git a/maps/modular_maps/aqueduct/bridge_horizontal_s.dmm b/maps/modular_maps/aqueduct/bridge_horizontal_s.dmm new file mode 100644 index 00000000000..8093819888c --- /dev/null +++ b/maps/modular_maps/aqueduct/bridge_horizontal_s.dmm @@ -0,0 +1,123 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"m" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"t" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"v" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"L" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"T" = ( +/obj/structure/door/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"W" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +t +W +m +W +t +a +a +"} +(2,1,1) = {" +a +a +t +W +m +W +t +t +t +"} +(3,1,1) = {" +a +a +t +W +m +W +T +W +W +"} +(4,1,1) = {" +a +a +t +W +m +W +t +L +L +"} +(5,1,1) = {" +a +a +t +W +m +W +t +v +v +"} +(6,1,1) = {" +a +a +t +W +m +W +t +L +L +"} +(7,1,1) = {" +a +a +t +W +m +W +T +W +W +"} +(8,1,1) = {" +a +a +t +W +m +W +t +t +t +"} +(9,1,1) = {" +a +a +t +W +m +W +t +a +a +"} diff --git a/maps/modular_maps/aqueduct/bridge_vertical_e.dmm b/maps/modular_maps/aqueduct/bridge_vertical_e.dmm new file mode 100644 index 00000000000..b32f5619677 --- /dev/null +++ b/maps/modular_maps/aqueduct/bridge_vertical_e.dmm @@ -0,0 +1,125 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"g" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"k" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"t" = ( +/obj/structure/door/ebony{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"S" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +S +S +S +S +S +S +S +S +S +"} +(4,1,1) = {" +g +g +g +g +g +g +g +g +g +"} +(5,1,1) = {" +y +y +y +y +y +y +y +y +y +"} +(6,1,1) = {" +g +g +g +g +g +g +g +g +g +"} +(7,1,1) = {" +S +S +t +S +S +S +t +S +S +"} +(8,1,1) = {" +a +S +g +h +k +h +g +S +a +"} +(9,1,1) = {" +a +S +g +h +k +h +g +S +a +"} diff --git a/maps/modular_maps/aqueduct/bridge_vertical_full.dmm b/maps/modular_maps/aqueduct/bridge_vertical_full.dmm new file mode 100644 index 00000000000..aa5f80cf278 --- /dev/null +++ b/maps/modular_maps/aqueduct/bridge_vertical_full.dmm @@ -0,0 +1,128 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"g" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"k" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"t" = ( +/obj/structure/door/ebony{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"L" = ( +/turf/floor/wood/ebony, +/area/template_noop) +"S" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +S +g +h +k +h +g +S +a +"} +(2,1,1) = {" +a +S +g +h +k +h +g +S +a +"} +(3,1,1) = {" +S +S +t +S +S +S +t +S +S +"} +(4,1,1) = {" +g +g +g +h +k +h +g +g +g +"} +(5,1,1) = {" +y +y +L +L +L +L +L +y +y +"} +(6,1,1) = {" +g +g +g +h +k +h +g +g +g +"} +(7,1,1) = {" +S +S +t +S +S +S +t +S +S +"} +(8,1,1) = {" +a +S +g +h +k +h +g +S +a +"} +(9,1,1) = {" +a +S +g +h +k +h +g +S +a +"} diff --git a/maps/modular_maps/aqueduct/bridge_vertical_w.dmm b/maps/modular_maps/aqueduct/bridge_vertical_w.dmm new file mode 100644 index 00000000000..2d27f97efb1 --- /dev/null +++ b/maps/modular_maps/aqueduct/bridge_vertical_w.dmm @@ -0,0 +1,125 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"g" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"k" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"t" = ( +/obj/structure/door/ebony{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"S" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +S +g +h +k +h +g +S +a +"} +(2,1,1) = {" +a +S +g +h +k +h +g +S +a +"} +(3,1,1) = {" +S +S +t +S +S +S +t +S +S +"} +(4,1,1) = {" +g +g +g +g +g +g +g +g +g +"} +(5,1,1) = {" +y +y +y +y +y +y +y +y +y +"} +(6,1,1) = {" +g +g +g +g +g +g +g +g +g +"} +(7,1,1) = {" +S +S +S +S +S +S +S +S +S +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/chamber_horizontal.dmm b/maps/modular_maps/aqueduct/chamber_horizontal.dmm new file mode 100644 index 00000000000..3bd89086aec --- /dev/null +++ b/maps/modular_maps/aqueduct/chamber_horizontal.dmm @@ -0,0 +1,237 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/turf/wall/brick/basalt/shutter, +/area/template_noop) +"i" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"m" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"w" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"C" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"G" = ( +/turf/template_noop, +/area/template_noop) +"M" = ( +/obj/structure/door/ebony{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"N" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"T" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +G +m +m +h +M +h +m +m +G +"} +(2,1,1) = {" +m +m +a +a +T +a +a +m +m +"} +(3,1,1) = {" +m +w +T +T +T +T +T +i +m +"} +(4,1,1) = {" +m +m +T +a +a +a +T +m +m +"} +(5,1,1) = {" +m +w +T +a +m +a +T +i +m +"} +(6,1,1) = {" +m +m +T +a +a +a +T +m +m +"} +(7,1,1) = {" +m +a +T +T +T +T +T +a +m +"} +(8,1,1) = {" +m +a +T +C +C +C +T +a +m +"} +(9,1,1) = {" +m +a +T +C +N +C +T +a +m +"} +(10,1,1) = {" +m +a +T +C +N +C +T +a +m +"} +(11,1,1) = {" +m +a +T +C +C +C +T +a +m +"} +(12,1,1) = {" +m +a +T +T +T +T +T +a +m +"} +(13,1,1) = {" +m +m +T +a +a +a +T +m +m +"} +(14,1,1) = {" +m +w +T +a +m +a +T +i +m +"} +(15,1,1) = {" +m +m +T +a +a +a +T +m +m +"} +(16,1,1) = {" +m +w +T +T +T +T +T +i +m +"} +(17,1,1) = {" +m +m +a +a +T +a +a +m +m +"} +(18,1,1) = {" +G +m +m +h +M +h +m +m +G +"} diff --git a/maps/modular_maps/aqueduct/chamber_large.dmm b/maps/modular_maps/aqueduct/chamber_large.dmm new file mode 100644 index 00000000000..6b02890ee89 --- /dev/null +++ b/maps/modular_maps/aqueduct/chamber_large.dmm @@ -0,0 +1,832 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"c" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"m" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"D" = ( +/obj/structure/door/ebony{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"E" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"L" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"R" = ( +/turf/wall/brick/basalt/shutter, +/area/template_noop) +"U" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"X" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +E +L +X +L +E +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +E +L +X +L +E +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +E +E +L +X +L +E +E +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +E +h +L +X +L +b +E +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +E +E +L +X +L +E +E +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +E +L +X +L +E +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +E +E +E +E +R +D +R +E +E +E +E +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +E +E +m +E +L +L +X +L +L +E +m +E +E +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +E +E +L +L +L +L +L +X +L +L +L +L +L +E +E +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +E +h +L +X +X +X +X +X +X +X +X +X +L +b +E +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +E +E +E +a +E +E +L +X +E +L +L +X +L +L +E +X +L +E +E +a +E +E +E +a +a +"} +(12,1,1) = {" +E +E +E +m +E +E +E +L +L +X +L +X +X +X +X +X +L +X +L +L +E +E +E +m +E +E +E +"} +(13,1,1) = {" +L +L +L +L +L +L +R +L +L +X +L +X +X +X +X +X +L +X +L +L +R +L +L +L +L +L +L +"} +(14,1,1) = {" +X +X +X +X +X +X +c +X +X +X +X +X +X +X +X +X +X +X +X +X +c +X +X +X +X +X +X +"} +(15,1,1) = {" +L +L +L +L +L +L +R +L +L +X +L +X +X +X +X +X +L +X +L +L +R +L +L +L +L +L +L +"} +(16,1,1) = {" +E +E +E +U +E +E +E +L +L +X +L +X +X +X +X +X +L +X +L +L +E +E +E +U +E +E +E +"} +(17,1,1) = {" +a +a +E +E +E +a +E +E +L +X +E +L +L +X +L +L +E +X +L +E +E +a +E +E +E +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +E +h +L +X +X +X +X +X +X +X +X +X +L +b +E +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +E +E +L +L +L +L +L +X +L +L +L +L +L +E +E +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +E +E +U +E +L +L +X +L +L +E +U +E +E +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +E +E +E +E +R +D +R +E +E +E +E +a +a +a +a +a +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +E +L +X +L +E +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +E +E +L +X +L +E +E +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +E +h +L +X +L +b +E +a +a +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +E +E +L +X +L +E +E +a +a +a +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +E +L +X +L +E +a +a +a +a +a +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +E +L +X +L +E +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/chamber_small_e.dmm b/maps/modular_maps/aqueduct/chamber_small_e.dmm new file mode 100644 index 00000000000..18dde04e42d --- /dev/null +++ b/maps/modular_maps/aqueduct/chamber_small_e.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"s" = ( +/turf/template_noop, +/area/template_noop) +"F" = ( +/turf/wall/brick/basalt/shutter, +/area/template_noop) +"W" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +s +h +h +F +W +F +h +h +s +"} +(2,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(3,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(4,1,1) = {" +h +q +a +q +q +q +a +q +h +"} +(5,1,1) = {" +h +a +a +q +q +q +a +a +h +"} +(6,1,1) = {" +h +q +a +q +q +q +a +q +h +"} +(7,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(8,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(9,1,1) = {" +s +h +h +h +h +h +h +h +s +"} diff --git a/maps/modular_maps/aqueduct/chamber_small_n.dmm b/maps/modular_maps/aqueduct/chamber_small_n.dmm new file mode 100644 index 00000000000..b5bad5f7ab8 --- /dev/null +++ b/maps/modular_maps/aqueduct/chamber_small_n.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"s" = ( +/turf/template_noop, +/area/template_noop) +"F" = ( +/turf/wall/brick/basalt/shutter, +/area/template_noop) +"W" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +s +h +h +h +h +h +h +h +s +"} +(2,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(3,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(4,1,1) = {" +h +q +a +q +q +q +a +q +F +"} +(5,1,1) = {" +h +a +a +q +q +q +a +a +W +"} +(6,1,1) = {" +h +q +a +q +q +q +a +q +F +"} +(7,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(8,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(9,1,1) = {" +s +h +h +h +h +h +h +h +s +"} diff --git a/maps/modular_maps/aqueduct/chamber_small_s.dmm b/maps/modular_maps/aqueduct/chamber_small_s.dmm new file mode 100644 index 00000000000..ffdfcb5821f --- /dev/null +++ b/maps/modular_maps/aqueduct/chamber_small_s.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"s" = ( +/turf/template_noop, +/area/template_noop) +"F" = ( +/turf/wall/brick/basalt/shutter, +/area/template_noop) +"W" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +s +h +h +h +h +h +h +h +s +"} +(2,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(3,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(4,1,1) = {" +F +q +a +q +q +q +a +q +h +"} +(5,1,1) = {" +W +a +a +q +q +q +a +a +h +"} +(6,1,1) = {" +F +q +a +q +q +q +a +q +h +"} +(7,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(8,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(9,1,1) = {" +s +h +h +h +h +h +h +h +s +"} diff --git a/maps/modular_maps/aqueduct/chamber_small_w.dmm b/maps/modular_maps/aqueduct/chamber_small_w.dmm new file mode 100644 index 00000000000..2e7fe0cd4e6 --- /dev/null +++ b/maps/modular_maps/aqueduct/chamber_small_w.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"s" = ( +/turf/template_noop, +/area/template_noop) +"F" = ( +/turf/wall/brick/basalt/shutter, +/area/template_noop) +"W" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +s +h +h +h +h +h +h +h +s +"} +(2,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(3,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(4,1,1) = {" +h +q +a +q +q +q +a +q +h +"} +(5,1,1) = {" +h +a +a +q +q +q +a +a +h +"} +(6,1,1) = {" +h +q +a +q +q +q +a +q +h +"} +(7,1,1) = {" +h +a +a +a +a +a +a +a +h +"} +(8,1,1) = {" +h +h +a +q +a +q +a +h +h +"} +(9,1,1) = {" +s +h +h +F +W +F +h +h +s +"} diff --git a/maps/modular_maps/aqueduct/chamber_vertical.dmm b/maps/modular_maps/aqueduct/chamber_vertical.dmm new file mode 100644 index 00000000000..6d1960d1648 --- /dev/null +++ b/maps/modular_maps/aqueduct/chamber_vertical.dmm @@ -0,0 +1,216 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"c" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"d" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"w" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"y" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"J" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"R" = ( +/turf/floor/path/basalt/water, +/area/template_noop) + +(1,1,1) = {" +J +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +J +"} +(2,1,1) = {" +e +e +c +e +c +e +d +d +d +d +d +d +e +c +e +c +e +e +"} +(3,1,1) = {" +e +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +e +"} +(4,1,1) = {" +e +d +a +d +d +d +a +R +R +R +R +a +d +d +d +a +d +e +"} +(5,1,1) = {" +w +a +a +d +e +d +a +R +L +L +R +a +d +e +d +a +a +w +"} +(6,1,1) = {" +e +d +a +d +d +d +a +R +R +R +R +a +d +d +d +a +d +e +"} +(7,1,1) = {" +e +d +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +e +"} +(8,1,1) = {" +e +e +y +e +y +e +d +d +d +d +d +d +e +y +e +y +e +e +"} +(9,1,1) = {" +J +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +J +"} diff --git a/maps/modular_maps/aqueduct/passage_end_e.dmm b/maps/modular_maps/aqueduct/passage_end_e.dmm new file mode 100644 index 00000000000..1baab0e428f --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_end_e.dmm @@ -0,0 +1,132 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"f" = ( +/obj/structure/wall_sconce/lantern/lit{ + dir = 4 + }, +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(2,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(3,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(4,1,1) = {" +a +Q +Q +q +d +q +Q +Q +a +"} +(5,1,1) = {" +a +Q +h +q +d +q +n +Q +a +"} +(6,1,1) = {" +a +Q +Q +q +q +q +Q +Q +a +"} +(7,1,1) = {" +a +a +Q +Q +f +Q +Q +a +a +"} +(8,1,1) = {" +a +a +a +Q +Q +Q +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/passage_end_n.dmm b/maps/modular_maps/aqueduct/passage_end_n.dmm new file mode 100644 index 00000000000..528df693692 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_end_n.dmm @@ -0,0 +1,132 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/obj/structure/decoration/gargoyle/plinth, +/obj/structure/wall_sconce/lantern/lit{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"B" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +Q +Q +Q +a +a +a +"} +(3,1,1) = {" +a +a +Q +Q +n +Q +Q +Q +Q +"} +(4,1,1) = {" +a +Q +Q +q +q +q +q +q +q +"} +(5,1,1) = {" +a +Q +h +q +d +d +d +d +d +"} +(6,1,1) = {" +a +Q +Q +q +q +q +q +q +q +"} +(7,1,1) = {" +a +a +Q +Q +B +Q +Q +Q +Q +"} +(8,1,1) = {" +a +a +a +Q +Q +Q +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/passage_end_s.dmm b/maps/modular_maps/aqueduct/passage_end_s.dmm new file mode 100644 index 00000000000..8f53c88fba9 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_end_s.dmm @@ -0,0 +1,132 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/obj/structure/wall_sconce/lantern/lit, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"D" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +Q +Q +Q +a +a +a +"} +(3,1,1) = {" +Q +Q +Q +Q +h +Q +Q +a +a +"} +(4,1,1) = {" +q +q +q +q +q +q +Q +Q +a +"} +(5,1,1) = {" +d +d +d +d +d +q +n +Q +a +"} +(6,1,1) = {" +q +q +q +q +q +q +Q +Q +a +"} +(7,1,1) = {" +Q +Q +Q +Q +D +Q +Q +a +a +"} +(8,1,1) = {" +a +a +a +Q +Q +Q +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/passage_end_w.dmm b/maps/modular_maps/aqueduct/passage_end_w.dmm new file mode 100644 index 00000000000..7de77596d8a --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_end_w.dmm @@ -0,0 +1,132 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/obj/structure/decoration/gargoyle/plinth, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"C" = ( +/obj/structure/wall_sconce/lantern/lit{ + dir = 8 + }, +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +Q +Q +Q +a +a +a +"} +(3,1,1) = {" +a +a +Q +Q +C +Q +Q +a +a +"} +(4,1,1) = {" +a +Q +Q +q +q +q +Q +Q +a +"} +(5,1,1) = {" +a +Q +h +q +d +q +n +Q +a +"} +(6,1,1) = {" +a +Q +Q +q +d +q +Q +Q +a +"} +(7,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(8,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(9,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} diff --git a/maps/modular_maps/aqueduct/passage_esw.dmm b/maps/modular_maps/aqueduct/passage_esw.dmm new file mode 100644 index 00000000000..45b157b5591 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_esw.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/obj/structure/decoration/gargoyle/plinth, +/obj/structure/wall_sconce/lantern/lit{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(2,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(3,1,1) = {" +a +a +Q +q +d +q +Q +Q +Q +"} +(4,1,1) = {" +a +Q +Q +q +d +q +q +q +q +"} +(5,1,1) = {" +a +Q +h +q +d +d +d +d +d +"} +(6,1,1) = {" +a +Q +Q +q +d +q +q +q +q +"} +(7,1,1) = {" +a +a +Q +q +d +q +Q +Q +Q +"} +(8,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(9,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} diff --git a/maps/modular_maps/aqueduct/passage_horizontal.dmm b/maps/modular_maps/aqueduct/passage_horizontal.dmm new file mode 100644 index 00000000000..5602ecd9de6 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_horizontal.dmm @@ -0,0 +1,127 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"h" = ( +/obj/structure/decoration/gargoyle/plinth, +/obj/structure/wall_sconce/lantern/lit{ + dir = 1 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/obj/structure/wall_sconce/lantern/lit, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(2,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(3,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(4,1,1) = {" +a +Q +Q +q +d +q +Q +Q +a +"} +(5,1,1) = {" +a +Q +h +q +d +q +n +Q +a +"} +(6,1,1) = {" +a +Q +Q +q +d +q +Q +Q +a +"} +(7,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(8,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(9,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} diff --git a/maps/modular_maps/aqueduct/passage_junction.dmm b/maps/modular_maps/aqueduct/passage_junction.dmm new file mode 100644 index 00000000000..d7a433276c5 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_junction.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"x" = ( +/turf/template_noop, +/area/template_noop) +"R" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(2,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(3,1,1) = {" +a +a +a +R +Y +R +a +a +a +"} +(4,1,1) = {" +R +R +R +R +Y +R +R +R +R +"} +(5,1,1) = {" +Y +Y +Y +Y +Y +Y +Y +Y +Y +"} +(6,1,1) = {" +R +R +R +R +Y +R +R +R +R +"} +(7,1,1) = {" +a +a +a +R +Y +R +a +a +a +"} +(8,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(9,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} diff --git a/maps/modular_maps/aqueduct/passage_ne.dmm b/maps/modular_maps/aqueduct/passage_ne.dmm new file mode 100644 index 00000000000..373aa60d272 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_ne.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/turf/template_noop, +/area/template_noop) +"G" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"H" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +l +l +l +l +l +l +l +l +l +"} +(2,1,1) = {" +l +l +l +l +l +l +l +l +l +"} +(3,1,1) = {" +a +a +a +a +a +a +a +l +l +"} +(4,1,1) = {" +H +H +H +H +H +H +a +l +l +"} +(5,1,1) = {" +G +G +G +G +G +H +a +l +l +"} +(6,1,1) = {" +H +H +H +H +G +H +a +l +l +"} +(7,1,1) = {" +a +a +a +H +G +H +a +l +l +"} +(8,1,1) = {" +l +l +a +H +G +H +a +l +l +"} +(9,1,1) = {" +l +l +a +H +G +H +a +l +l +"} diff --git a/maps/modular_maps/aqueduct/passage_nes.dmm b/maps/modular_maps/aqueduct/passage_nes.dmm new file mode 100644 index 00000000000..37dae6c422f --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_nes.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/obj/structure/wall_sconce/lantern/lit{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +w +w +w +w +w +w +w +w +"} +(2,1,1) = {" +w +w +w +e +e +e +w +w +w +"} +(3,1,1) = {" +e +e +e +e +L +e +e +e +e +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +c +c +c +c +c +c +c +c +c +"} +(6,1,1) = {" +a +a +a +a +c +a +a +a +a +"} +(7,1,1) = {" +e +e +e +a +c +a +e +e +e +"} +(8,1,1) = {" +w +w +e +a +c +a +e +w +w +"} +(9,1,1) = {" +w +w +e +a +c +a +e +w +w +"} diff --git a/maps/modular_maps/aqueduct/passage_nw.dmm b/maps/modular_maps/aqueduct/passage_nw.dmm new file mode 100644 index 00000000000..7229b11234f --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_nw.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"x" = ( +/turf/template_noop, +/area/template_noop) +"R" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(2,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(3,1,1) = {" +a +a +a +R +Y +R +a +x +x +"} +(4,1,1) = {" +R +R +R +R +Y +R +a +x +x +"} +(5,1,1) = {" +Y +Y +Y +Y +Y +R +a +x +x +"} +(6,1,1) = {" +R +R +R +R +R +R +a +x +x +"} +(7,1,1) = {" +a +a +a +a +a +a +a +x +x +"} +(8,1,1) = {" +x +x +x +x +x +x +x +x +x +"} +(9,1,1) = {" +x +x +x +x +x +x +x +x +x +"} diff --git a/maps/modular_maps/aqueduct/passage_se.dmm b/maps/modular_maps/aqueduct/passage_se.dmm new file mode 100644 index 00000000000..4fe367cb961 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_se.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"x" = ( +/turf/template_noop, +/area/template_noop) +"R" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +x +x +x +x +x +x +x +x +x +"} +(2,1,1) = {" +x +x +x +x +x +x +x +x +x +"} +(3,1,1) = {" +x +x +a +a +a +a +a +a +a +"} +(4,1,1) = {" +x +x +a +R +R +R +R +R +R +"} +(5,1,1) = {" +x +x +a +R +Y +Y +Y +Y +Y +"} +(6,1,1) = {" +x +x +a +R +Y +R +R +R +R +"} +(7,1,1) = {" +x +x +a +R +Y +R +a +a +a +"} +(8,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(9,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} diff --git a/maps/modular_maps/aqueduct/passage_sw.dmm b/maps/modular_maps/aqueduct/passage_sw.dmm new file mode 100644 index 00000000000..46101b632d3 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_sw.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"x" = ( +/turf/template_noop, +/area/template_noop) +"R" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(2,1,1) = {" +x +x +a +R +Y +R +a +x +x +"} +(3,1,1) = {" +x +x +a +R +Y +R +a +a +a +"} +(4,1,1) = {" +x +x +a +R +Y +R +R +R +R +"} +(5,1,1) = {" +x +x +a +R +Y +Y +Y +Y +Y +"} +(6,1,1) = {" +x +x +a +R +R +R +R +R +R +"} +(7,1,1) = {" +x +x +a +a +a +a +a +a +a +"} +(8,1,1) = {" +x +x +x +x +x +x +x +x +x +"} +(9,1,1) = {" +x +x +x +x +x +x +x +x +x +"} diff --git a/maps/modular_maps/aqueduct/passage_swn.dmm b/maps/modular_maps/aqueduct/passage_swn.dmm new file mode 100644 index 00000000000..9cf367f6681 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_swn.dmm @@ -0,0 +1,122 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/obj/structure/wall_sconce/lantern/lit{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +w +w +e +a +c +a +e +w +w +"} +(2,1,1) = {" +w +w +e +a +c +a +e +w +w +"} +(3,1,1) = {" +e +e +e +a +c +a +e +e +e +"} +(4,1,1) = {" +a +a +a +a +c +a +a +a +a +"} +(5,1,1) = {" +c +c +c +c +c +c +c +c +c +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +e +e +e +e +l +e +e +e +e +"} +(8,1,1) = {" +w +w +w +e +e +e +w +w +w +"} +(9,1,1) = {" +w +w +w +w +w +w +w +w +w +"} diff --git a/maps/modular_maps/aqueduct/passage_vertical.dmm b/maps/modular_maps/aqueduct/passage_vertical.dmm new file mode 100644 index 00000000000..dfd5ce913a2 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_vertical.dmm @@ -0,0 +1,131 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"e" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"l" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 8 + }, +/obj/structure/wall_sconce/lantern/lit{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/obj/structure/wall_sconce/lantern/lit{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +w +w +w +w +w +w +w +w +w +"} +(2,1,1) = {" +w +w +w +e +e +e +w +w +w +"} +(3,1,1) = {" +e +e +e +e +L +e +e +e +e +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +c +c +c +c +c +c +c +c +c +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +e +e +e +e +l +e +e +e +e +"} +(8,1,1) = {" +w +w +w +e +e +e +w +w +w +"} +(9,1,1) = {" +w +w +w +w +w +w +w +w +w +"} diff --git a/maps/modular_maps/aqueduct/passage_wne.dmm b/maps/modular_maps/aqueduct/passage_wne.dmm new file mode 100644 index 00000000000..091a8b2dd01 --- /dev/null +++ b/maps/modular_maps/aqueduct/passage_wne.dmm @@ -0,0 +1,120 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"n" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/obj/structure/wall_sconce/lantern/lit, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"q" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Q" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(2,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(3,1,1) = {" +Q +Q +Q +q +d +q +Q +a +a +"} +(4,1,1) = {" +q +q +q +q +d +q +Q +Q +a +"} +(5,1,1) = {" +d +d +d +d +d +q +n +Q +a +"} +(6,1,1) = {" +q +q +q +q +d +q +Q +Q +a +"} +(7,1,1) = {" +Q +Q +Q +q +d +q +Q +a +a +"} +(8,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} +(9,1,1) = {" +a +a +Q +q +d +q +Q +a +a +"} diff --git a/maps/modular_maps/debug/_debug.dm b/maps/modular_maps/debug/_debug.dm new file mode 100644 index 00000000000..804bf7fc781 --- /dev/null +++ b/maps/modular_maps/debug/_debug.dm @@ -0,0 +1,223 @@ +/decl/modular_map_generator/debug + name = "Debug Maze" + grid_cell_size = 5 + level_data_type = /datum/level_data/space + cell_templates = list( + /datum/map_template/modular/debug/hall_vert, + /datum/map_template/modular/debug/hall_hori, + /datum/map_template/modular/debug/junction, + /datum/map_template/modular/debug/room_10_10, + /datum/map_template/modular/debug/corner_sw, + /datum/map_template/modular/debug/corner_se, + /datum/map_template/modular/debug/corner_nw, + /datum/map_template/modular/debug/corner_ne, + /datum/map_template/modular/debug/hall_end_n, + /datum/map_template/modular/debug/hall_end_s, + /datum/map_template/modular/debug/hall_end_e, + /datum/map_template/modular/debug/hall_end_w, + /datum/map_template/modular/debug/hall_nes, + /datum/map_template/modular/debug/hall_esw, + /datum/map_template/modular/debug/hall_swn, + /datum/map_template/modular/debug/hall_wne + ) + +/datum/map_template/modular/debug + abstract_type = /datum/map_template/modular/debug + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/corner_sw + name = "Debug Modular Map South-to-West Hall" + mappaths = list("maps/modular_maps/debug/debug_hall_corner_sw.dmm") + +/datum/map_template/modular/debug/corner_sw/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/hall_nes + name = "Debug Modular Map North-East-South Junction" + mappaths = list("maps/modular_maps/debug/debug_hall_nes.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/hall_nes/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("EAST", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/hall_esw + name = "Debug Modular Map East-South-West Junction" + mappaths = list("maps/modular_maps/debug/debug_hall_esw.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/hall_esw/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/hall_swn + name = "Debug Modular Map South-West-North Junction" + mappaths = list("maps/modular_maps/debug/debug_hall_swn.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/hall_swn/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/hall_wne + name = "Debug Modular Map West-North-East Junction" + mappaths = list("maps/modular_maps/debug/debug_hall_wne.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/hall_wne/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("EAST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/corner_se + name = "Debug Modular Map South-to-East Hall" + mappaths = list("maps/modular_maps/debug/debug_hall_corner_se.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/corner_se/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("EAST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/corner_nw + name = "Debug Modular Map North-to-West Hall" + mappaths = list("maps/modular_maps/debug/debug_hall_corner_nw.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/corner_nw/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/corner_ne + name = "Debug Modular Map North-to-East Hall" + mappaths = list("maps/modular_maps/debug/debug_hall_corner_ne.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/corner_ne/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("EAST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/hall_vert + name = "Debug Modular Map Vertical Hallway" + mappaths = list("maps/modular_maps/debug/debug_hall_vert.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/hall_vert/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/hall_hori + name = "Debug Modular Map Horizontal Hallway" + mappaths = list("maps/modular_maps/debug/debug_hall_hori.dmm") + connection_flag = MCF_HALL + +/datum/map_template/modular/debug/hall_hori/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("EAST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/junction + name = "Debug Modular Map Junction" + mappaths = list("maps/modular_maps/debug/debug_hall_junction.dmm") + connection_flag = MCF_ROOM + +/datum/map_template/modular/debug/junction/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_ROOM)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_ROOM)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_ROOM)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() + +/datum/map_template/modular/debug/room_10_10 + name = "Debug Modular Map 10x10 Room" + mappaths = list("maps/modular_maps/debug/debug_room_10_10.dmm") + connection_flag = MCF_ROOM + cell_width = 2 + cell_height = 2 + +/datum/map_template/modular/debug/room_10_10/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL)), + new /datum/mm_connection("NORTH", 0, 1, (MCF_HALL)), + new /datum/mm_connection("WEST", 0, 1, (MCF_HALL)), + new /datum/mm_connection("SOUTH", 1, 0, (MCF_HALL)), + new /datum/mm_connection("EAST", 1, 0, (MCF_HALL)), + new /datum/mm_connection("NORTH", 1, 1, (MCF_HALL)), + new /datum/mm_connection("EAST", 1, 1, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/debug/hall_end_n + name = "Debug Modular Map North Hall End" + mappaths = list("maps/modular_maps/debug/debug_hall_end_n.dmm") + +/datum/map_template/modular/debug/hall_end_n/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() + +/datum/map_template/modular/debug/hall_end_s + name = "Debug Modular Map South Hall End" + mappaths = list("maps/modular_maps/debug/debug_hall_end_s.dmm") + +/datum/map_template/modular/debug/hall_end_s/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() + +/datum/map_template/modular/debug/hall_end_e + name = "Debug Modular Map East Hall End" + mappaths = list("maps/modular_maps/debug/debug_hall_end_e.dmm") + +/datum/map_template/modular/debug/hall_end_e/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() + +/datum/map_template/modular/debug/hall_end_w + name = "Debug Modular Map West Hall End" + mappaths = list("maps/modular_maps/debug/debug_hall_end_w.dmm") + +/datum/map_template/modular/debug/hall_end_w/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() diff --git a/maps/modular_maps/debug/debug_hall_corner_ne.dmm b/maps/modular_maps/debug/debug_hall_corner_ne.dmm new file mode 100644 index 00000000000..3c017384ee9 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_corner_ne.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +K +K +K +K +"} +(2,1,1) = {" +a +a +a +a +K +"} +(3,1,1) = {" +a +a +a +a +K +"} +(4,1,1) = {" +a +a +a +a +K +"} +(5,1,1) = {" +K +a +a +a +K +"} diff --git a/maps/modular_maps/debug/debug_hall_corner_nw.dmm b/maps/modular_maps/debug/debug_hall_corner_nw.dmm new file mode 100644 index 00000000000..20360aaf1a0 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_corner_nw.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +a +a +a +K +"} +(2,1,1) = {" +a +a +a +a +K +"} +(3,1,1) = {" +a +a +a +a +K +"} +(4,1,1) = {" +a +a +a +a +K +"} +(5,1,1) = {" +K +K +K +K +K +"} diff --git a/maps/modular_maps/debug/debug_hall_corner_se.dmm b/maps/modular_maps/debug/debug_hall_corner_se.dmm new file mode 100644 index 00000000000..3d35b36cc20 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_corner_se.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +K +K +K +K +"} +(2,1,1) = {" +K +a +a +a +a +"} +(3,1,1) = {" +K +a +a +a +a +"} +(4,1,1) = {" +K +a +a +a +a +"} +(5,1,1) = {" +K +a +a +a +K +"} diff --git a/maps/modular_maps/debug/debug_hall_corner_sw.dmm b/maps/modular_maps/debug/debug_hall_corner_sw.dmm new file mode 100644 index 00000000000..7d7f13ed5e6 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_corner_sw.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +a +a +a +K +"} +(2,1,1) = {" +K +a +a +a +a +"} +(3,1,1) = {" +K +a +a +a +a +"} +(4,1,1) = {" +K +a +a +a +a +"} +(5,1,1) = {" +K +K +K +K +K +"} diff --git a/maps/modular_maps/debug/debug_hall_end_e.dmm b/maps/modular_maps/debug/debug_hall_end_e.dmm new file mode 100644 index 00000000000..4ecd148da2e --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_end_e.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +a +a +a +K +"} +(2,1,1) = {" +K +a +a +a +K +"} +(3,1,1) = {" +K +a +a +a +K +"} +(4,1,1) = {" +K +a +a +a +K +"} +(5,1,1) = {" +K +K +K +K +K +"} diff --git a/maps/modular_maps/debug/debug_hall_end_n.dmm b/maps/modular_maps/debug/debug_hall_end_n.dmm new file mode 100644 index 00000000000..9ace11b4ae4 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_end_n.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +K +K +K +K +"} +(2,1,1) = {" +K +a +a +a +a +"} +(3,1,1) = {" +K +a +a +a +a +"} +(4,1,1) = {" +K +a +a +a +a +"} +(5,1,1) = {" +K +K +K +K +K +"} diff --git a/maps/modular_maps/debug/debug_hall_end_s.dmm b/maps/modular_maps/debug/debug_hall_end_s.dmm new file mode 100644 index 00000000000..c27517994ed --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_end_s.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +K +K +K +K +"} +(2,1,1) = {" +a +a +a +a +K +"} +(3,1,1) = {" +a +a +a +a +K +"} +(4,1,1) = {" +a +a +a +a +K +"} +(5,1,1) = {" +K +K +K +K +K +"} diff --git a/maps/modular_maps/debug/debug_hall_end_w.dmm b/maps/modular_maps/debug/debug_hall_end_w.dmm new file mode 100644 index 00000000000..482b9d64cd8 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_end_w.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +K +K +K +K +"} +(2,1,1) = {" +K +a +a +a +K +"} +(3,1,1) = {" +K +a +a +a +K +"} +(4,1,1) = {" +K +a +a +a +K +"} +(5,1,1) = {" +K +a +a +a +K +"} diff --git a/maps/modular_maps/debug/debug_hall_esw.dmm b/maps/modular_maps/debug/debug_hall_esw.dmm new file mode 100644 index 00000000000..5d71741eecb --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_esw.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +a +a +a +K +"} +(2,1,1) = {" +K +a +a +a +a +"} +(3,1,1) = {" +K +a +a +a +a +"} +(4,1,1) = {" +K +a +a +a +a +"} +(5,1,1) = {" +K +a +a +a +K +"} diff --git a/maps/modular_maps/debug/debug_hall_hori.dmm b/maps/modular_maps/debug/debug_hall_hori.dmm new file mode 100644 index 00000000000..1c7f7f2c467 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_hori.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"N" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +N +a +a +a +N +"} +(2,1,1) = {" +N +a +a +a +N +"} +(3,1,1) = {" +N +a +a +a +N +"} +(4,1,1) = {" +N +a +a +a +N +"} +(5,1,1) = {" +N +a +a +a +N +"} diff --git a/maps/modular_maps/debug/debug_hall_junction.dmm b/maps/modular_maps/debug/debug_hall_junction.dmm new file mode 100644 index 00000000000..899ed4cdea1 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_junction.dmm @@ -0,0 +1,47 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"o" = ( +/obj/machinery/door/airlock, +/turf/floor/tiled, +/area/template_noop) +"N" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +N +N +o +N +N +"} +(2,1,1) = {" +N +a +a +a +N +"} +(3,1,1) = {" +o +a +a +a +o +"} +(4,1,1) = {" +N +a +a +a +N +"} +(5,1,1) = {" +N +N +o +N +N +"} diff --git a/maps/modular_maps/debug/debug_hall_nes.dmm b/maps/modular_maps/debug/debug_hall_nes.dmm new file mode 100644 index 00000000000..83c9ff9dd59 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_nes.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +K +K +K +K +"} +(2,1,1) = {" +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +"} +(5,1,1) = {" +K +a +a +a +K +"} diff --git a/maps/modular_maps/debug/debug_hall_swn.dmm b/maps/modular_maps/debug/debug_hall_swn.dmm new file mode 100644 index 00000000000..4421a07bf23 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_swn.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +a +a +a +K +"} +(2,1,1) = {" +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +"} +(5,1,1) = {" +K +K +K +K +K +"} diff --git a/maps/modular_maps/debug/debug_hall_vert.dmm b/maps/modular_maps/debug/debug_hall_vert.dmm new file mode 100644 index 00000000000..a248ff584a4 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_vert.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"N" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +N +N +N +N +N +"} +(2,1,1) = {" +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +"} +(5,1,1) = {" +N +N +N +N +N +"} diff --git a/maps/modular_maps/debug/debug_hall_wne.dmm b/maps/modular_maps/debug/debug_hall_wne.dmm new file mode 100644 index 00000000000..f5ee05e87d9 --- /dev/null +++ b/maps/modular_maps/debug/debug_hall_wne.dmm @@ -0,0 +1,43 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/tiled, +/area/template_noop) +"K" = ( +/turf/wall, +/area/template_noop) + +(1,1,1) = {" +K +a +a +a +K +"} +(2,1,1) = {" +a +a +a +a +K +"} +(3,1,1) = {" +a +a +a +a +K +"} +(4,1,1) = {" +a +a +a +a +K +"} +(5,1,1) = {" +K +a +a +a +K +"} diff --git a/maps/modular_maps/debug/debug_room_10_10.dmm b/maps/modular_maps/debug/debug_room_10_10.dmm new file mode 100644 index 00000000000..08a40afb5f6 --- /dev/null +++ b/maps/modular_maps/debug/debug_room_10_10.dmm @@ -0,0 +1,132 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall, +/area/template_noop) +"v" = ( +/obj/machinery/door/airlock, +/turf/floor/tiled, +/area/template_noop) +"X" = ( +/turf/floor/tiled, +/area/template_noop) + +(1,1,1) = {" +a +a +v +a +a +a +a +v +a +a +"} +(2,1,1) = {" +a +X +X +X +X +X +X +X +X +a +"} +(3,1,1) = {" +v +X +X +X +X +X +X +X +X +v +"} +(4,1,1) = {" +a +X +X +X +X +X +X +X +X +a +"} +(5,1,1) = {" +a +X +X +X +X +X +X +X +X +a +"} +(6,1,1) = {" +a +X +X +X +X +X +X +X +X +a +"} +(7,1,1) = {" +a +X +X +X +X +X +X +X +X +a +"} +(8,1,1) = {" +v +X +X +X +X +X +X +X +X +v +"} +(9,1,1) = {" +a +X +X +X +X +X +X +X +X +a +"} +(10,1,1) = {" +a +a +v +a +a +a +a +v +a +a +"} diff --git a/maps/shaded_hills/dungeon_gen/cellar.dmm b/maps/shaded_hills/dungeon_gen/cellar.dmm new file mode 100644 index 00000000000..3a66a9b2209 --- /dev/null +++ b/maps/shaded_hills/dungeon_gen/cellar.dmm @@ -0,0 +1,1945 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/natural/dirt, +/area/template_noop) +"e" = ( +/turf/wall/log/walnut, +/area/shaded_hills/caves/dungeon/inn) +"f" = ( +/turf/floor/mud/water/deep, +/area/template_noop) +"g" = ( +/turf/wall/brick/basalt, +/area/shaded_hills/caves/dungeon/inn) +"j" = ( +/turf/floor/path/basalt, +/area/shaded_hills/caves/dungeon/inn) +"k" = ( +/obj/structure/table/wood/reinforced/ebony, +/obj/item/knife/kitchen/cleaver/bronze, +/turf/floor/path/basalt, +/area/template_noop) +"n" = ( +/obj/structure/door/ebony, +/turf/floor/dirt, +/area/template_noop) +"o" = ( +/obj/structure/reagent_dispensers/barrel/ebony/oil, +/turf/floor/path/basalt, +/area/template_noop) +"r" = ( +/turf/floor/rock/basalt, +/area/shaded_hills/caves/dungeon) +"s" = ( +/obj/item/remains/human, +/turf/floor/mud, +/area/template_noop) +"t" = ( +/turf/floor/path/basalt, +/area/template_noop) +"u" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"w" = ( +/obj/structure/reagent_dispensers/barrel/ebony/water, +/turf/floor/path/basalt, +/area/template_noop) +"x" = ( +/turf/floor/dirt, +/area/shaded_hills/caves/dungeon) +"y" = ( +/turf/floor/rock/basalt, +/area/template_noop) +"A" = ( +/obj/structure/stairs/north, +/turf/floor/path/running_bond/basalt, +/area/shaded_hills/caves/dungeon/inn) +"B" = ( +/turf/floor/mud/water, +/area/template_noop) +"C" = ( +/turf/floor/dirt, +/area/template_noop) +"G" = ( +/obj/structure/reagent_dispensers/barrel/ebony, +/turf/floor/path/basalt, +/area/template_noop) +"H" = ( +/obj/item/stack/material/plank/mapped/ebony/five, +/turf/floor/path/basalt, +/area/template_noop) +"M" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"N" = ( +/turf/template_noop, +/area/template_noop) +"O" = ( +/obj/structure/wall_sconce, +/turf/floor/path/basalt, +/area/template_noop) +"Q" = ( +/turf/floor/mud, +/area/template_noop) +"R" = ( +/turf/floor/path/running_bond/basalt, +/area/shaded_hills/caves/dungeon/inn) +"S" = ( +/obj/structure/wall_sconce{ + dir = 1; + pixel_y = 10 + }, +/turf/floor/path/basalt, +/area/template_noop) +"T" = ( +/obj/structure/door/ebony, +/obj/abstract/landmark/lock_preset/shaded_hills/inn_exterior, +/turf/floor/path/basalt, +/area/shaded_hills/caves/dungeon/inn) +"V" = ( +/obj/structure/fire_source/stove, +/obj/effect/decal/cleanable/ash, +/turf/floor/path/basalt, +/area/template_noop) +"W" = ( +/obj/structure/table/wood/reinforced/ebony, +/turf/floor/path/basalt, +/area/template_noop) +"X" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Y" = ( +/turf/wall/natural/basalt/shaded_hills, +/area/template_noop) +"Z" = ( +/turf/wall/natural/dirt, +/area/shaded_hills/caves/dungeon/inn) + +(1,1,1) = {" +N +N +N +N +N +N +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +N +N +"} +(2,1,1) = {" +N +N +N +N +N +N +N +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +N +N +"} +(3,1,1) = {" +N +N +N +N +N +N +N +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +N +"} +(4,1,1) = {" +N +N +N +N +N +N +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +N +"} +(5,1,1) = {" +N +N +N +N +N +N +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +N +"} +(6,1,1) = {" +N +N +N +N +N +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +N +"} +(7,1,1) = {" +N +N +N +N +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +N +"} +(8,1,1) = {" +N +N +N +N +r +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +"} +(9,1,1) = {" +N +N +N +N +r +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +"} +(10,1,1) = {" +N +N +N +N +N +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +N +"} +(11,1,1) = {" +N +N +N +N +N +r +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +"} +(12,1,1) = {" +N +N +N +N +N +N +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +"} +(13,1,1) = {" +N +N +N +N +N +N +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +N +"} +(14,1,1) = {" +N +N +N +N +Y +r +r +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +"} +(15,1,1) = {" +N +N +N +N +Y +r +r +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +"} +(16,1,1) = {" +N +N +N +N +Y +r +r +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +"} +(17,1,1) = {" +N +N +N +N +Y +r +r +r +r +r +r +r +r +r +r +r +r +N +N +N +N +N +N +N +N +N +N +"} +(18,1,1) = {" +N +N +N +N +Y +r +r +r +r +r +r +r +r +r +r +r +x +N +N +N +N +N +N +N +N +N +N +"} +(19,1,1) = {" +N +N +N +N +Y +Y +r +r +r +r +r +r +r +r +x +x +x +N +N +N +N +N +N +N +N +N +N +"} +(20,1,1) = {" +N +N +N +N +N +Y +Y +r +x +r +r +r +x +x +x +Y +N +N +N +N +N +N +N +N +N +N +N +"} +(21,1,1) = {" +N +N +N +N +N +Y +Y +Y +C +C +y +C +y +C +Y +N +N +Y +N +N +N +N +N +N +N +N +N +"} +(22,1,1) = {" +N +N +N +N +N +N +Y +Y +Y +y +C +y +C +C +a +Y +N +Y +Y +N +N +N +N +N +N +N +N +"} +(23,1,1) = {" +N +N +N +N +N +N +N +Y +Y +Y +y +C +C +C +a +a +Y +N +Y +N +N +N +N +N +N +N +N +"} +(24,1,1) = {" +N +N +N +N +N +N +N +N +Y +Y +a +C +C +C +a +a +Y +Y +N +N +N +N +N +N +N +N +N +"} +(25,1,1) = {" +N +N +N +N +N +N +N +N +Y +Y +a +C +C +C +a +a +a +Y +N +N +N +N +N +N +N +N +N +"} +(26,1,1) = {" +N +N +N +N +N +N +N +N +Y +a +a +C +C +C +C +a +N +N +N +N +N +N +N +N +N +N +N +"} +(27,1,1) = {" +N +N +N +N +N +N +N +N +Y +a +a +C +C +C +a +a +N +N +N +N +N +N +N +N +N +N +N +"} +(28,1,1) = {" +N +N +N +N +N +N +N +N +a +a +a +C +C +C +a +a +a +N +N +N +N +N +N +N +N +N +N +"} +(29,1,1) = {" +N +N +N +N +N +N +N +Y +a +a +a +C +C +C +C +a +a +N +N +N +N +N +N +N +N +N +N +"} +(30,1,1) = {" +N +N +N +N +N +N +N +N +N +a +a +a +C +C +C +C +a +a +N +N +N +N +N +N +N +N +N +"} +(31,1,1) = {" +N +N +N +N +N +N +N +N +N +a +a +a +C +Q +Q +Q +a +a +N +N +N +N +N +N +N +N +N +"} +(32,1,1) = {" +N +N +N +N +N +N +N +N +N +a +a +C +Q +Q +s +Q +Q +a +N +N +N +N +N +N +N +N +N +"} +(33,1,1) = {" +N +N +N +N +N +N +N +N +N +a +a +C +Q +B +B +Q +Q +a +u +N +N +N +N +N +N +N +N +"} +(34,1,1) = {" +N +N +N +N +N +N +N +N +a +a +a +Q +B +B +B +B +Q +C +u +N +N +N +N +N +N +N +N +"} +(35,1,1) = {" +N +N +N +N +N +N +Y +Y +a +a +a +Q +B +f +B +B +Q +C +u +N +N +N +N +N +N +N +N +"} +(36,1,1) = {" +N +N +N +N +N +N +N +Y +Y +a +a +Q +B +B +B +B +B +Q +u +N +N +N +N +N +N +N +N +"} +(37,1,1) = {" +N +N +N +N +N +N +N +Y +Y +a +a +Q +Q +B +B +B +B +Q +u +N +N +N +N +N +N +N +N +"} +(38,1,1) = {" +N +N +N +N +N +N +N +N +Y +Y +a +a +C +C +Q +B +Q +Q +C +N +N +N +N +N +N +N +N +"} +(39,1,1) = {" +N +N +N +N +N +N +N +N +N +Y +a +a +a +a +C +Q +Q +C +n +N +N +N +N +N +N +N +N +"} +(40,1,1) = {" +N +N +N +N +N +N +N +N +N +Y +a +a +a +a +C +C +C +u +u +N +N +N +N +N +N +N +N +"} +(41,1,1) = {" +N +N +N +N +N +N +N +N +N +N +a +a +a +u +a +a +C +C +u +N +N +N +N +N +N +N +N +"} +(42,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +a +a +a +a +a +a +C +u +N +N +N +N +N +N +N +N +"} +(43,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +a +a +u +a +G +a +a +u +N +N +N +N +N +N +N +N +"} +(44,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +a +a +u +o +t +a +a +u +N +N +N +N +N +N +N +N +"} +(45,1,1) = {" +N +N +N +N +N +N +N +N +N +N +a +a +a +u +w +H +t +a +u +N +N +N +N +N +N +N +N +"} +(46,1,1) = {" +N +N +N +N +N +N +N +N +a +a +a +a +a +u +t +t +t +k +u +N +N +N +N +N +N +N +N +"} +(47,1,1) = {" +N +N +N +N +N +N +N +a +a +a +a +a +a +u +t +t +t +W +u +N +N +N +N +N +N +N +N +"} +(48,1,1) = {" +N +N +a +a +N +a +a +a +a +a +a +a +a +u +V +t +t +w +u +N +N +N +N +N +N +N +N +"} +(49,1,1) = {" +N +N +g +g +e +Z +e +e +e +e +e +a +a +u +S +t +t +O +u +N +N +N +N +N +N +N +N +"} +(50,1,1) = {" +N +N +g +A +R +j +j +j +j +j +e +a +a +u +W +t +t +W +u +N +N +N +N +N +N +N +N +"} +(51,1,1) = {" +N +N +g +R +R +j +j +j +j +j +Z +a +a +u +W +t +t +W +u +N +N +N +N +N +N +N +N +"} +(52,1,1) = {" +N +N +g +R +R +j +j +j +j +g +g +u +u +u +u +X +X +u +u +u +u +u +u +N +a +N +N +"} +(53,1,1) = {" +N +N +Z +Z +R +R +j +j +R +R +e +t +t +M +M +M +M +M +X +M +M +M +u +N +a +N +N +"} +(54,1,1) = {" +N +N +a +Z +Z +Z +Z +R +j +j +T +M +M +M +M +M +M +M +u +M +M +M +u +a +a +a +N +"} +(55,1,1) = {" +N +N +a +u +u +a +Z +Z +Z +g +g +u +u +u +u +u +u +u +u +M +M +a +a +a +a +a +N +"} +(56,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +u +M +M +M +M +u +a +a +N +"} +(57,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +u +M +M +M +M +u +u +u +u +"} +(58,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +u +M +M +M +M +M +M +M +u +"} +(59,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +u +u +a +a +M +M +M +M +X +"} +(60,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +u +u +u +M +M +M +M +M +u +"} +(61,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +a +a +M +M +M +u +u +u +"} +(62,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +a +u +M +M +M +u +N +N +"} +(63,1,1) = {" +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +N +u +u +X +u +u +N +N +"} diff --git a/maps/shaded_hills/dungeon_gen/gravesite.dmm b/maps/shaded_hills/dungeon_gen/gravesite.dmm new file mode 100644 index 00000000000..ef1a53a3c27 --- /dev/null +++ b/maps/shaded_hills/dungeon_gen/gravesite.dmm @@ -0,0 +1,399 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/shaded_hills/caves/dungeon) +"o" = ( +/turf/floor/rock/basalt, +/area/shaded_hills/caves/dungeon) +"q" = ( +/obj/abstract/ramp_sculptor/east, +/turf/wall/natural/dirt, +/area/shaded_hills/caves/dungeon) +"s" = ( +/turf/wall/natural/basalt/shaded_hills, +/area/shaded_hills/caves/dungeon) +"x" = ( +/obj/item/remains/human, +/turf/floor/mud, +/area/shaded_hills/caves/dungeon) +"y" = ( +/turf/floor/mud, +/area/shaded_hills/caves/dungeon) +"D" = ( +/turf/wall/log/walnut, +/area/shaded_hills/caves/dungeon) +"G" = ( +/turf/template_noop, +/area/template_noop) +"O" = ( +/turf/floor/dirt, +/area/shaded_hills/caves/dungeon) +"P" = ( +/turf/wall/natural/dirt, +/area/shaded_hills/caves/dungeon) +"U" = ( +/obj/structure/door/ebony, +/obj/abstract/landmark/lock_preset/shaded_hills/shrine, +/turf/floor/mud, +/area/shaded_hills/caves/dungeon) + +(1,1,1) = {" +G +G +G +G +G +G +G +G +G +G +P +a +a +o +a +P +P +P +"} +(2,1,1) = {" +G +G +G +G +G +G +G +G +G +P +P +a +o +o +o +a +P +G +"} +(3,1,1) = {" +G +G +G +G +G +G +G +G +G +P +a +P +o +o +a +P +P +G +"} +(4,1,1) = {" +G +G +G +G +G +G +G +G +P +P +P +o +o +o +P +P +P +G +"} +(5,1,1) = {" +G +G +G +G +G +G +G +G +P +P +a +o +o +o +P +P +P +G +"} +(6,1,1) = {" +G +G +G +G +G +G +G +P +P +P +o +o +o +P +P +P +G +G +"} +(7,1,1) = {" +G +G +G +G +G +G +P +P +P +o +o +o +a +P +P +P +G +G +"} +(8,1,1) = {" +G +G +G +G +P +P +P +s +s +o +o +s +s +s +P +G +G +G +"} +(9,1,1) = {" +G +G +G +P +P +P +P +P +o +o +o +s +s +s +s +G +G +G +"} +(10,1,1) = {" +G +P +P +P +P +P +P +a +o +o +s +s +s +s +G +G +G +G +"} +(11,1,1) = {" +D +q +D +P +P +P +P +o +o +s +s +s +s +G +G +G +G +G +"} +(12,1,1) = {" +P +y +P +P +P +o +O +o +s +s +s +s +G +G +G +G +G +G +"} +(13,1,1) = {" +P +y +y +D +O +o +s +s +s +s +s +s +G +G +G +G +G +G +"} +(14,1,1) = {" +P +P +x +U +O +O +O +a +s +s +s +s +G +G +G +G +G +G +"} +(15,1,1) = {" +P +P +P +D +P +P +O +a +a +s +s +s +G +G +G +G +G +G +"} +(16,1,1) = {" +G +P +P +P +P +P +O +o +o +o +s +s +G +G +G +G +G +G +"} +(17,1,1) = {" +G +G +G +P +P +P +s +s +O +o +s +G +G +G +G +G +G +G +"} +(18,1,1) = {" +G +G +G +G +G +P +s +s +s +o +s +G +G +G +G +G +G +G +"} diff --git a/maps/shaded_hills/levels/_levels.dm b/maps/shaded_hills/levels/_levels.dm index cf7081b88e5..e0bea33269f 100644 --- a/maps/shaded_hills/levels/_levels.dm +++ b/maps/shaded_hills/levels/_levels.dm @@ -178,6 +178,12 @@ subtemplate_area = /area/shaded_hills/caves/dungeon/poi base_turf = /turf/floor/rock/basalt +/datum/level_data/main_level/shaded_hills/dungeon/generate_level() + . = ..() + to_world_log("Applying Shaded Hills mapgen.") + var/decl/modular_map_generator/generator = GET_DECL(/decl/modular_map_generator/aqueduct/shaded_hills) + generator.generate(level_z) + /obj/abstract/level_data_spawner/shaded_hills_grassland level_data_type = /datum/level_data/main_level/shaded_hills/grassland diff --git a/maps/shaded_hills/levels/random_map.dm b/maps/shaded_hills/levels/random_map.dm index 5c3098b3c2c..620b07cd13f 100644 --- a/maps/shaded_hills/levels/random_map.dm +++ b/maps/shaded_hills/levels/random_map.dm @@ -127,4 +127,43 @@ spawn_type = pickweight(spawn_type) if(spawn_type) new spawn_type(loc) - return INITIALIZE_HINT_QDEL \ No newline at end of file + return INITIALIZE_HINT_QDEL + +/datum/map_template/modular/shaded_hills_cellar + name = "Shaded Hills Cellar" + cell_height = 3 + cell_width = 7 + mappaths = list("maps/shaded_hills/dungeon_gen/cellar.dmm") + connection_flag = MCF_ROOM + is_spawnable = TRUE + +/datum/map_template/modular/shaded_hills_cellar/New() + cell_connections = list( + new /datum/mm_connection("EAST", 6, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("SOUTH", 6, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + ) + ..() + +/datum/map_template/modular/shaded_hills_gravesite + name = "Shaded Hills Gravesite" + cell_height = 2 + cell_width = 2 + mappaths = list("maps/shaded_hills/dungeon_gen/gravesite.dmm") + connection_flag = MCF_ROOM + is_spawnable = TRUE + +/datum/map_template/modular/shaded_hills_gravesite/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)) + ) + ..() + +/decl/modular_map_generator/aqueduct/shaded_hills + name = "Shaded Hills Culvert" + level_data_type = /datum/level_data/masked + mandatory_templates = list( + // 8, 71 + /datum/map_template/modular/shaded_hills_cellar = list(0,7), + // 116, 116 + /datum/map_template/modular/shaded_hills_gravesite = list(12, 12) + ) diff --git a/maps/shaded_hills/shaded_hills-dungeon.dmm b/maps/shaded_hills/shaded_hills-dungeon.dmm index b50e7b8b038..e40c04bbddd 100644 --- a/maps/shaded_hills/shaded_hills-dungeon.dmm +++ b/maps/shaded_hills/shaded_hills-dungeon.dmm @@ -1,687 +1,27 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ae" = ( -/obj/item/stack/material/bolt/mapped/cloth/fifty, -/obj/structure/closet/crate/chest/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"aK" = ( -/turf/floor/mud/water/deep, -/area/shaded_hills/caves/dungeon/poi) -"aS" = ( -/obj/item/stack/material/bolt/mapped/cloth/five, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"bD" = ( -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"bG" = ( -/obj/structure/closet/cabinet/wooden/ebony, -/obj/item/clothing/suit/armor/crafted/copper, -/obj/item/clothing/pants/trousers/braies, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"ce" = ( -/obj/structure/table/wood/reinforced/ebony/walnut, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"cp" = ( -/obj/structure/table/wood/ebony, -/obj/item/bladed/knife/iron, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"cM" = ( -/obj/item/stool/rustic, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"dA" = ( -/obj/structure/chair/bench/ebony{ - dir = 4 - }, -/obj/item/remains/human, -/obj/item/clothing/pants/trousers/braies, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"dP" = ( -/obj/structure/table/wood/ebony, -/obj/item/flame/torch, -/obj/item/flame/torch, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"dT" = ( -/obj/structure/table/wood/reinforced/ebony, -/obj/item/knife/kitchen/cleaver/bronze, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"fh" = ( -/mob/living/simple_animal/aquatic/fish/grump, -/turf/floor/path/basalt/water/deep, -/area/shaded_hills/caves/dungeon/poi) -"fD" = ( -/obj/structure/table/wood/reinforced/ebony/walnut, -/obj/item/ancient_surgery/bonesaw, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"fF" = ( -/obj/random/dungeon_bookcase, -/turf/floor/rock/basalt, -/area/shaded_hills/caves/dungeon/poi) -"fW" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/obj/item/stack/medical/bandage/crafted/five, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"gy" = ( -/obj/structure/table/wood/reinforced/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"hd" = ( -/obj/structure/table/wood/ebony, -/obj/item/stack/material/brick/mapped/graphite/fifteen, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"hr" = ( -/obj/structure/closet/crate/chest/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"hz" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) "hU" = ( -/turf/wall/natural/basalt/shaded_hills, +/obj/abstract/exterior_marker/outside, +/turf/floor/rock/basalt, /area/shaded_hills/caves/dungeon/poi) "it" = ( -/turf/wall/brick/basalt, -/area/shaded_hills/caves/dungeon/poi) -"iI" = ( -/obj/structure/wall_sconce{ - dir = 8 - }, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"jf" = ( -/obj/item/remains/human, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"jh" = ( -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"jv" = ( -/obj/item/remains/human, -/turf/floor/mud, +/turf/unsimulated/mask, /area/shaded_hills/caves/dungeon) -"jU" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/obj/item/food/grown/dried_tobacco/bad, -/obj/item/rock/flint/striker, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"jV" = ( -/obj/item/stack/material/plank/mapped/ebony/five, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"ko" = ( -/obj/item/stack/material/bone/mapped/bone/twentyfive, -/obj/structure/closet/crate/chest/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"kE" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/material/ingot/mapped/silver/ten, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"kI" = ( -/obj/structure/table/wood/reinforced/ebony, -/obj/item/flame/candle, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"kL" = ( -/obj/structure/table/wood/reinforced/ebony, -/obj/item/bladed/folding, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"kN" = ( -/obj/structure/chair/bench/ebony{ - dir = 4 - }, -/obj/item/stack/material/bolt/mapped/cloth/five, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"lj" = ( -/obj/structure/drying_rack/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"lo" = ( -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) "lC" = ( /turf/unsimulated/dark_filler, /area/shaded_hills/caves/dungeon) "lE" = ( /obj/abstract/level_data_spawner/shaded_hills_dungeon, -/turf/wall/natural/basalt/shaded_hills, +/turf/unsimulated/mask, /area/shaded_hills/caves/dungeon) -"mM" = ( -/turf/floor/dirt, -/area/shaded_hills/caves/dungeon) -"ni" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/material/ingot/mapped/iron/twentyfive, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"nD" = ( -/obj/structure/chair/bench/ebony{ - dir = 4 - }, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"nE" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/obj/item/bladed/folding, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"nH" = ( -/obj/structure/closet/cabinet/wooden/ebony, -/obj/item/clothing/suit/armor/forged/banded, -/obj/item/clothing/pants/trousers/braies, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"nJ" = ( -/obj/structure/table/wood/reinforced/ebony, -/obj/item/food/grown/dried_tobacco/fine, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"nT" = ( -/obj/structure/table/wood/ebony, -/obj/item/stack/material/ore/diamond, -/obj/item/stack/material/ore/diamond, -/obj/item/stack/material/ore/diamond, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"nV" = ( -/obj/structure/table/wood/ebony, -/obj/item/bladed/folding, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"ob" = ( -/obj/structure/table/wood/ebony, -/obj/item/bladed/knife/iron, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"ok" = ( -/obj/random/hostile/dungeon, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"oq" = ( -/obj/item/stack/material/skin/mapped/leather/twentyfive, -/obj/structure/closet/crate/chest/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"ou" = ( -/obj/random/hostile/dungeon, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"oD" = ( -/obj/structure/wall_sconce{ - dir = 1; - pixel_y = 10 - }, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) "oF" = ( -/turf/wall/natural/dirt, -/area/shaded_hills/caves/dungeon/poi) -"oP" = ( -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/inn) -"oW" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"pl" = ( -/obj/item/cash/imperial/crown, -/turf/floor/path/basalt/water, -/area/shaded_hills/caves/dungeon/poi) -"pZ" = ( -/obj/structure/reagent_dispensers/barrel/ebony/oil, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"qh" = ( -/obj/structure/wall_sconce{ - dir = 1; - pixel_y = 10 - }, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"rz" = ( -/turf/floor/path/basalt/water/deep, -/area/shaded_hills/caves/dungeon/poi) -"rA" = ( -/turf/wall/log/walnut, -/area/shaded_hills/caves/dungeon/inn) -"rI" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/material/ingot/mapped/tin/twenty, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"rM" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/cash/imperial/regalis, -/obj/item/cash/imperial/regalis, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/bladed/longsword, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"rP" = ( -/obj/structure/table/wood/reinforced/ebony/walnut, -/obj/item/ancient_surgery/forceps, -/obj/item/ancient_surgery/retractor, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"sU" = ( -/turf/floor/dirt, -/area/shaded_hills/caves/dungeon/poi) -"tQ" = ( -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/turf/floor/path/basalt/water, -/area/shaded_hills/caves/dungeon/poi) -"ud" = ( -/obj/structure/wall_sconce{ - dir = 4 - }, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"uU" = ( -/obj/item/remains/human, -/turf/floor/mud, -/area/shaded_hills/caves/dungeon/poi) -"vu" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/bladed/longsword, -/obj/item/bladed/poignard, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"vN" = ( -/obj/structure/table/wood/reinforced/ebony/walnut, -/obj/item/remains/human, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"vO" = ( -/obj/structure/working/loom/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"wa" = ( -/obj/structure/chair/bench/ebony{ - dir = 4 - }, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"wg" = ( -/obj/structure/chair/bench/ebony{ - dir = 4 - }, -/obj/random/hostile/dungeon, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"wP" = ( -/obj/structure/table/wood/ebony, -/obj/item/tool/hammer, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"xo" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/medical/ointment/crafted/five, -/obj/item/stack/medical/ointment/crafted/five, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"xL" = ( -/obj/abstract/ramp_sculptor/east, -/turf/wall/natural/dirt, -/area/shaded_hills/caves/dungeon) -"yh" = ( -/obj/structure/reagent_dispensers/barrel/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"yM" = ( -/obj/structure/table/wood/ebony, -/obj/item/tool/pickaxe/iron, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"zm" = ( -/obj/structure/wall_sconce{ - dir = 8 - }, -/obj/structure/table/wood/reinforced/ebony/walnut, -/obj/item/ancient_surgery/bonesetter, -/obj/item/ancient_surgery/sutures, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"zA" = ( -/obj/structure/door/ebony, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Ad" = ( -/obj/structure/wall_sconce{ - dir = 8 - }, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"AK" = ( -/obj/structure/fire_source/stove, -/obj/effect/decal/cleanable/ash, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Bk" = ( -/obj/structure/chair/bench/ebony{ - dir = 4 - }, -/obj/item/food/grown/dried_tobacco/bad, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"BG" = ( -/obj/structure/table/wood/ebony, -/obj/item/stack/material/thread/mapped/cotton/thirty, -/obj/item/bladed/knife/iron, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Cu" = ( -/turf/wall/brick/basalt, -/area/shaded_hills/caves/dungeon/inn) -"CA" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/material/ingot/mapped/bronze/twenty, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"CP" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/material/ingot/mapped/gold/ten, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"CZ" = ( -/obj/structure/door/ebony, -/obj/abstract/landmark/lock_preset/shaded_hills/inn_exterior, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/inn) -"Dr" = ( -/obj/structure/wall_sconce{ - dir = 4 - }, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"DW" = ( -/obj/structure/table/wood/ebony, -/obj/item/bladed/folding, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Ef" = ( -/obj/structure/reagent_dispensers/barrel/ebony, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Eq" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/obj/item/stack/material/bolt/mapped/cloth/five, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Fx" = ( -/turf/wall/natural/dirt, -/area/shaded_hills/caves/dungeon/inn) -"FT" = ( -/obj/random/hostile/dungeon, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Gr" = ( -/obj/structure/working/spinning_wheel/twisting_bench/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Gu" = ( -/obj/structure/table/wood/reinforced/ebony, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"GA" = ( -/obj/structure/door/ebony, -/obj/abstract/landmark/lock_preset{ - lock_preset_id = "sunken keep"; - name = "sunken keep locked door" - }, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"GV" = ( -/turf/floor/path/basalt/water, -/area/shaded_hills/caves/dungeon/poi) -"Hj" = ( -/obj/item/cash/imperial/quin, -/turf/floor/path/basalt/water, -/area/shaded_hills/caves/dungeon/poi) -"Hs" = ( -/obj/structure/table/wood/ebony, -/obj/item/flame/candle, -/turf/floor/path/running_bond/basalt, +/turf/unsimulated/mask, /area/shaded_hills/caves/dungeon/poi) "HI" = ( /turf/floor/rock/basalt, /area/shaded_hills/caves/dungeon) -"HO" = ( -/obj/structure/table/wood/reinforced/ebony/walnut, -/obj/item/ancient_surgery/cautery, -/obj/item/ancient_surgery/scalpel, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Ie" = ( -/obj/structure/table/wood/ebony, -/obj/item/chems/glass/mortar, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Im" = ( -/obj/structure/reagent_dispensers/barrel/ebony/water, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Ip" = ( -/turf/floor/mud, -/area/shaded_hills/caves/dungeon/poi) -"IF" = ( -/obj/structure/wall_sconce{ - dir = 1; - pixel_y = 10 - }, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Kq" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/cash/imperial/regalis, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/quin, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/obj/item/bladed/broadsword, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Ky" = ( -/obj/random/dungeon_bookcase, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Kz" = ( -/obj/structure/fire_source/kiln/high_temperature, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"KB" = ( -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/inn) -"Ln" = ( -/obj/structure/table/wood/ebony, -/obj/item/tool/hammer/sledge, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"LB" = ( -/obj/structure/table/wood/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"ME" = ( -/obj/structure/chair/bench/ebony{ - dir = 4 - }, -/obj/item/stack/medical/bandage/crafted/five, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"MW" = ( -/obj/structure/table/wood/ebony, -/obj/item/rock/flint/striker, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"NN" = ( -/obj/structure/table/desk/ebony/right, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Og" = ( -/turf/floor/mud/water, -/area/shaded_hills/caves/dungeon/poi) -"Oq" = ( -/obj/structure/table/wood/ebony, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Pb" = ( -/turf/wall/natural/dirt, -/area/shaded_hills/caves/dungeon) -"Pq" = ( -/obj/structure/wall_sconce, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Ql" = ( -/obj/structure/door/ebony, -/turf/floor/dirt, -/area/shaded_hills/caves/dungeon/poi) -"QI" = ( -/obj/item/cash/imperial/crown, -/obj/item/cash/imperial/crown, -/turf/floor/path/basalt/water, -/area/shaded_hills/caves/dungeon/poi) -"QT" = ( -/obj/structure/stairs/north, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/inn) -"Ri" = ( -/obj/item/stack/material/plank/mapped/ebony/five, -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/medical/bandage/crafted/five, -/obj/item/stack/medical/bandage/crafted/five, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Rm" = ( -/obj/structure/table/wood/ebony, -/obj/item/stack/material/ore/diamond, -/turf/floor/path/herringbone/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Rt" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/obj/random/hostile/dungeon, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"RA" = ( -/turf/floor/mud, -/area/shaded_hills/caves/dungeon) -"Ss" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/material/bolt/mapped/cloth/fifty, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"SN" = ( -/obj/structure/chair/bench/ebony{ - dir = 8 - }, -/obj/item/remains/human, -/obj/item/clothing/suit/armor/forged/banded, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"SX" = ( -/obj/structure/door/ebony, -/obj/abstract/landmark/lock_preset/shaded_hills/shrine, -/turf/floor/mud, -/area/shaded_hills/caves/dungeon) -"TA" = ( -/obj/structure/closet/crate/chest/ebony, -/obj/item/stack/material/ingot/mapped/copper/twenty, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) "TR" = ( /turf/wall/natural/basalt/shaded_hills, /area/shaded_hills/caves/dungeon) -"Ua" = ( -/turf/floor/rock/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Ve" = ( -/obj/structure/bed/simple/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Vk" = ( -/obj/structure/table/wood/reinforced/ebony, -/obj/item/food/grown/dried_tobacco/bad, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Xx" = ( -/turf/wall/log/walnut, -/area/shaded_hills/caves/dungeon) -"XD" = ( -/obj/item/flame/candle, -/obj/structure/table/desk/ebony/right, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"XX" = ( -/obj/structure/wall_sconce, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Yi" = ( -/obj/structure/table/wood/ebony, -/obj/item/stack/material/thread/mapped/dried_gut/thirty, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"YE" = ( -/obj/item/stack/material/plank/mapped/ebony/five, -/turf/floor/path/basalt, -/area/shaded_hills/caves/dungeon/poi) -"YN" = ( -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon) -"Zg" = ( -/obj/structure/working/spinning_wheel/ebony, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) -"Zp" = ( -/obj/structure/closet/cabinet/wooden/ebony, -/obj/item/clothing/suit/armor/crafted/leather, -/obj/item/clothing/pants/trousers/braies, -/turf/floor/path/running_bond/basalt, -/area/shaded_hills/caves/dungeon/poi) (1,1,1) = {" lC @@ -1755,57 +1095,57 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it TR HI HI @@ -1815,82 +1155,82 @@ HI HI HI TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC @@ -1907,57 +1247,57 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it TR TR HI @@ -1968,81 +1308,81 @@ HI HI TR TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lE -TR +it lC lC lC @@ -2059,57 +1399,57 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it TR TR HI @@ -2120,81 +1460,81 @@ HI HI HI TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC @@ -2211,57 +1551,57 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it TR HI HI @@ -2272,81 +1612,81 @@ HI HI HI TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC @@ -2363,57 +1703,57 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it TR HI HI @@ -2424,81 +1764,81 @@ HI HI HI TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC @@ -2515,294 +1855,294 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(14,1,1) = {" -lC -lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +lC +lC +"} +(14,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -2819,142 +2159,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -2971,142 +2311,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -3123,142 +2463,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -3275,142 +2615,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -3427,142 +2767,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -3579,142 +2919,5158 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(21,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(22,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(23,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(24,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(25,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(26,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(27,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(28,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(29,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(30,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(31,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(32,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(33,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(34,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(35,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(36,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(37,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(38,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(39,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(40,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(41,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(42,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(43,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(44,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(45,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(46,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(47,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(48,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(49,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(50,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(51,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(52,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(53,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -3723,7 +8079,7 @@ lC lC lC "} -(21,1,1) = {" +(54,1,1) = {" lC lC lC @@ -3731,142 +8087,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -3875,7 +8231,159 @@ lC lC lC "} -(22,1,1) = {" +(55,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(56,1,1) = {" lC lC lC @@ -3883,142 +8391,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -4027,7 +8535,7 @@ lC lC lC "} -(23,1,1) = {" +(57,1,1) = {" lC lC lC @@ -4035,142 +8543,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -4179,7 +8687,7 @@ lC lC lC "} -(24,1,1) = {" +(58,1,1) = {" lC lC lC @@ -4187,142 +8695,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -4331,7 +8839,7 @@ lC lC lC "} -(25,1,1) = {" +(59,1,1) = {" lC lC lC @@ -4339,142 +8847,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -HI -mM -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -4483,7 +8991,7 @@ lC lC lC "} -(26,1,1) = {" +(60,1,1) = {" lC lC lC @@ -4491,142 +8999,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -HI -HI -HI -HI -HI -HI -HI -mM -mM -mM -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -4635,7 +9143,7 @@ lC lC lC "} -(27,1,1) = {" +(61,1,1) = {" lC lC lC @@ -4643,142 +9151,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -HI -mM -HI -HI -HI -mM -mM -mM -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -4787,7 +9295,7 @@ lC lC lC "} -(28,1,1) = {" +(62,1,1) = {" lC lC lC @@ -4795,142 +9303,294 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -sU -sU -Ua -sU -Ua -sU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(63,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -4939,7 +9599,7 @@ lC lC lC "} -(29,1,1) = {" +(64,1,1) = {" lC lC lC @@ -4947,142 +9607,294 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -Ua -sU -Ua -sU -sU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(65,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -5091,7 +9903,7 @@ lC lC lC "} -(30,1,1) = {" +(66,1,1) = {" lC lC lC @@ -5099,142 +9911,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -Ua -sU -sU -sU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -5243,7 +10055,7 @@ lC lC lC "} -(31,1,1) = {" +(67,1,1) = {" lC lC lC @@ -5251,142 +10063,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF -sU -sU -sU oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -5395,7 +10207,7 @@ lC lC lC "} -(32,1,1) = {" +(68,1,1) = {" lC lC lC @@ -5403,142 +10215,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF oF -sU -sU -sU oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -5547,7 +10359,7 @@ lC lC lC "} -(33,1,1) = {" +(69,1,1) = {" lC lC lC @@ -5555,142 +10367,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it oF oF -sU -sU -sU -sU oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -5699,7 +10511,7 @@ lC lC lC "} -(34,1,1) = {" +(70,1,1) = {" lC lC lC @@ -5707,142 +10519,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it oF oF oF -sU -sU -sU oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -5851,75 +10663,23 @@ lC lC lC "} -(35,1,1) = {" -lC -lC +(71,1,1) = {" lC lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +lC +lC +it +it +it +it +it oF oF oF oF -sU -sU -sU oF oF oF @@ -5927,74 +10687,126 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -6003,7 +10815,7 @@ lC lC lC "} -(36,1,1) = {" +(72,1,1) = {" lC lC lC @@ -6011,68 +10823,15 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it oF oF oF oF -sU -sU -sU -sU oF oF oF @@ -6080,73 +10839,126 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -6155,7 +10967,7 @@ lC lC lC "} -(37,1,1) = {" +(73,1,1) = {" lC lC lC @@ -6163,142 +10975,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF oF oF -sU -sU -sU -sU oF oF oF -it oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -6307,7 +11119,7 @@ lC lC lC "} -(38,1,1) = {" +(74,1,1) = {" lC lC lC @@ -6315,142 +11127,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF oF oF -sU -Ip -Ip -Ip oF oF oF -it oF -GV oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -6459,7 +11271,7 @@ lC lC lC "} -(39,1,1) = {" +(75,1,1) = {" lC lC lC @@ -6467,142 +11279,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF oF oF -sU -Ip -Ip -uU -Ip -Ip oF oF oF oF -GV oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -6611,7 +11423,7 @@ lC lC lC "} -(40,1,1) = {" +(76,1,1) = {" lC lC lC @@ -6619,142 +11431,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF oF -sU -sU -Ip -Og -Og -Ip -Ip oF oF -it oF -GV -rz oF oF -it oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -6763,7 +11575,7 @@ lC lC lC "} -(41,1,1) = {" +(77,1,1) = {" lC lC lC @@ -6771,142 +11583,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF -sU -Ip -Og -Og -Og -Og -Ip -sU oF -it oF -GV -rz oF oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -6915,7 +11727,7 @@ lC lC lC "} -(42,1,1) = {" +(78,1,1) = {" lC lC lC @@ -6923,79 +11735,86 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF -sU -Ip -Og -aK -Og -Og -Ip -sU oF -it oF -GV -rz -GV oF -it oF oF oF @@ -7003,62 +11822,55 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -7067,7 +11879,7 @@ lC lC lC "} -(43,1,1) = {" +(79,1,1) = {" lC lC lC @@ -7075,79 +11887,102 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF -sU -Ip -Og -Og -Og -Og -Og -Ip -sU -it oF -GV -rz -GV oF -it oF oF oF @@ -7156,61 +11991,38 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -7219,7 +12031,7 @@ lC lC lC "} -(44,1,1) = {" +(80,1,1) = {" lC lC lC @@ -7227,79 +12039,121 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF -Ip -Ip -Og -Og -Og -Og -Ip -sU -it oF -GV -rz -GV oF -it oF oF oF @@ -7310,59 +12164,17 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -7371,7 +12183,7 @@ lC lC lC "} -(45,1,1) = {" +(81,1,1) = {" lC lC lC @@ -7379,78 +12191,10 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -oF -oF -oF -sU -sU -Ip -Og -Ip -Ip -sU -sU -bD -GV -fh -GV -oF +it +it +it +it it oF oF @@ -7463,147 +12207,11 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(46,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF oF oF -sU -Ip -Ip -sU -sU -Ql -bD -GV -rz -GV -bD -it oF oF oF @@ -7616,57 +12224,109 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -7675,7 +12335,7 @@ lC lC lC "} -(47,1,1) = {" +(82,1,1) = {" lC lC lC @@ -7683,79 +12343,63 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF oF oF oF -sU -sU -sU -it -it -bD -GV -rz -GV -bD -it oF oF oF @@ -7768,146 +12412,14 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(48,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF oF oF oF -it oF oF -sU -sU -it -bD -GV -rz -GV -bD -it oF oF oF @@ -7921,126 +12433,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(49,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -8052,14 +12444,6 @@ oF oF oF oF -sU -it -bD -GV -rz -GV -bD -it oF oF oF @@ -8073,56 +12457,28 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -8131,7 +12487,7 @@ lC lC lC "} -(50,1,1) = {" +(83,1,1) = {" lC lC lC @@ -8139,59 +12495,56 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -8200,18 +12553,9 @@ oF oF oF oF -it oF -Ef oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -8226,123 +12570,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(51,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -8352,18 +12579,8 @@ oF oF oF oF -it -pZ -lo oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -8378,122 +12595,12 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(52,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF oF oF oF -hU -hU -hU -hU oF oF oF @@ -8504,18 +12611,7 @@ oF oF oF oF -it -Im -YE -lo oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -8530,55 +12626,11 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it lC lC lC @@ -8587,7 +12639,7 @@ lC lC lC "} -(53,1,1) = {" +(84,1,1) = {" lC lC lC @@ -8595,46 +12647,67 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -8656,18 +12729,6 @@ oF oF oF oF -it -lo -lo -lo -dT -it -bD -GV -rz -GV -bD -it oF oF oF @@ -8682,110 +12743,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(54,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -8808,18 +12765,6 @@ oF oF oF oF -it -lo -lo -lo -Gu -it -bD -GV -rz -GV -bD -it oF oF oF @@ -8833,56 +12778,11 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it lC lC lC @@ -8891,7 +12791,7 @@ lC lC lC "} -(55,1,1) = {" +(85,1,1) = {" lC lC lC @@ -8899,44 +12799,61 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -8960,18 +12877,6 @@ oF oF oF oF -it -AK -lo -lo -Im -it -bD -GV -fh -GV -bD -it oF oF oF @@ -8985,145 +12890,15 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(56,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF oF -it -it -it -it -it -it -it -it -it -it -it -it -it -it -it -it oF -Cu -Cu -rA -Fx -rA -rA -rA -rA -rA oF oF oF oF -it -oD -lo -lo -Pq -it -bD -GV -rz -GV -bD -it oF oF oF @@ -9136,146 +12911,13 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(57,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -it oF -Cu -QT -KB -oP -oP -oP -oP -oP -rA oF oF oF oF -it -Gu -lo -lo -Gu -it -bD -GV -rz -GV -bD -it oF oF oF @@ -9288,57 +12930,11 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it lC lC lC @@ -9347,7 +12943,7 @@ lC lC lC "} -(58,1,1) = {" +(86,1,1) = {" lC lC lC @@ -9355,79 +12951,16 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD it -IF -bD -bD -ok -XX it -bD -bD it -IF -bD -bD -bD -XX -it -bD it oF -Cu -KB -KB -oP -oP -oP -oP -oP -Fx oF oF oF oF -it -Gu -lo -lo -Gu -it -bD -GV -rz -GV -bD -it oF oF oF @@ -9439,147 +12972,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(59,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -bD -wa -dA -wa -bD -jh -jh -jh -jh -bD -wa -wa -wg -bD -bD -bD -it -it -Cu -KB -KB -oP -oP -oP -oP -Cu -Cu -it -it -it -it -it -it -zA -zA -it -it -bD -GV -rz -GV -bD -it oF oF oF @@ -9591,146 +12983,7 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(60,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -bD -gy -gy -gy -bD -jh -QI -pl -jh -bD -kL -Vk -Vk -bD -bD -bD -GA oF -Fx -Fx -KB -KB -oP -oP -KB -KB -rA -lo -lo -bD -bD -bD -bD -bD -bD -bD -zA -bD -GV -rz -GV -bD oF oF oF @@ -9744,57 +12997,96 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -9803,7 +13095,7 @@ lC lC lC "} -(61,1,1) = {" +(87,1,1) = {" lC lC lC @@ -9811,78 +13103,120 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD -bD -gy -gy -nJ -bD -jh -tQ -Hj -jh -bD -gy -kI -gy -bD -bD -bD -GA +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF -Fx -Fx -Fx -Fx -KB -oP -oP -CZ -bD -bD -bD -bD -bD -bD -bD -bD -bD -zA -bD -GV -rz -GV -bD oF oF oF @@ -9896,57 +13230,15 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF oF -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it lC lC lC @@ -9955,7 +13247,7 @@ lC lC lC "} -(62,1,1) = {" +(88,1,1) = {" lC lC lC @@ -9963,79 +13255,11 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -bD -Eq -hz -Rt -bD -jh -jh -jh -jh -bD -hz -hz -SN -bD -bD -bD -it -GA -oF -it -it -oF -Fx -Fx -Fx -Cu -Cu -it -it -it it it it it it -it -it -bD -GV -rz -GV -bD -it oF oF oF @@ -10048,57 +13272,125 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF oF oF oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -10107,7 +13399,7 @@ lC lC lC "} -(63,1,1) = {" +(89,1,1) = {" lC lC lC @@ -10115,55 +13407,10 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD it -IF -bD -bD -bD -XX it -bD -bD it -IF -bD -bD -bD -XX -it -bD -it -bD -bD it oF oF @@ -10176,18 +13423,6 @@ oF oF oF oF -it -GV -GV -GV -GV -GV -GV -GV -rz -GV -bD -it oF oF oF @@ -10201,14 +13436,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -10216,107 +13443,7 @@ oF oF oF oF -it -bD -bD -it oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(64,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -it -bD -bD -it oF oF oF @@ -10328,18 +13455,6 @@ oF oF oF oF -it -GV -it -it -it -it -bD -GV -rz -GV -bD -it oF oF oF @@ -10353,14 +13468,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -10368,41 +13475,74 @@ oF oF oF oF -it -bD -bD -it oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -10411,7 +13551,7 @@ lC lC lC "} -(65,1,1) = {" +(90,1,1) = {" lC lC lC @@ -10419,79 +13559,13 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -it -it -it -it -GA -GA -it -it -it -it -it -it -it it it it it it -it -bD -bD -it -it -it -it -it -it -it -it -it -it -it -it -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -10505,13 +13579,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -10521,91 +13588,7 @@ oF oF oF oF -bD -bD -it oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(66,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it oF oF oF @@ -10617,33 +13600,8 @@ oF oF oF oF -it -bD -bD -it -bD -jV -Ve -it -Kq -bD -Ve -it -vu -bD -Ve -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -10658,11 +13616,6 @@ oF oF oF oF -hU -hU -hU -hU -hU oF oF oF @@ -10674,90 +13627,8 @@ oF oF oF oF -bD -it oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(67,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it oF oF oF @@ -10769,33 +13640,8 @@ oF oF oF oF -it -bD -bD -it -IF -bD -bD -it -IF -bD -bD -it -IF -bD -bD -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -10812,7 +13658,6 @@ oF oF oF oF -hU oF oF oF @@ -10826,39 +13671,30 @@ oF oF oF oF -bD -it oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -10867,7 +13703,7 @@ lC lC lC "} -(68,1,1) = {" +(91,1,1) = {" lC lC lC @@ -10875,40 +13711,10 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD +it +it +it it oF oF @@ -10921,33 +13727,8 @@ oF oF oF oF -it -bD -bD -it -bD -bD -nH -it -bD -bD -Zp -it -bD -bD -bG -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -10979,89 +13760,8 @@ oF oF oF oF -it oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(69,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -IF -bD -it oF oF oF @@ -11073,32 +13773,100 @@ oF oF oF oF -it -IF -bD -it -it -zA -it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF it it -zA it it it -zA +lC +lC +lC +lC +lC +lC +lC +"} +(92,1,1) = {" +lC +lC +lC +lC +lC +lC +lC it it -GV it -oF -oF it -bD -GV -rz -GV -bD it oF oF @@ -11131,89 +13899,9 @@ oF oF oF oF -it oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(70,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it oF oF oF @@ -11225,33 +13913,8 @@ oF oF oF oF -it -bD -bD -it -jh -jh -jh -Ad -jh -jh -jh -Ad -jh -jh -jh -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -11283,89 +13946,10 @@ oF oF oF oF -it oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(71,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF -it -bD -bD -it oF oF oF @@ -11377,33 +13961,8 @@ oF oF oF oF -it -bD -bD -GA -jh -bD -bD -ok -bD -bD -bD -ok -bD -bD -jh -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -11436,37 +13995,10 @@ oF oF oF it -oF -oF -oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it lC lC lC @@ -11475,7 +14007,7 @@ lC lC lC "} -(72,1,1) = {" +(93,1,1) = {" lC lC lC @@ -11483,41 +14015,24 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -oF -oF it -bD -bD it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -11529,33 +14044,8 @@ oF oF oF oF -it -bD -bD -GA -jh -bD -bD -bD -bD -bD -bD -bD -bD -bD -jh -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -11587,89 +14077,12 @@ oF oF oF oF -it oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(73,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF -it -bD -bD -it oF oF oF @@ -11681,33 +14094,8 @@ oF oF oF oF -it -bD -bD -it -jh -oW -nE -jh -jh -jU -fW -jh -jh -oW -oW -it -GV -it oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -11743,85 +14131,10 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(74,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF oF -it -IF -bD -it oF oF oF @@ -11833,32 +14146,31 @@ oF oF oF oF -it -IF -bD -it -it -it -it -it it it it it it +lC +lC +lC +lC +lC +lC +lC +"} +(94,1,1) = {" +lC +lC +lC +lC +lC +lC +lC it it it -GV -oF -oF -oF it -bD -GV -rz -GV -bD it oF oF @@ -11895,85 +14207,10 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(75,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -oF oF oF oF oF -it -bD -bD -it oF oF oF @@ -11985,33 +14222,9 @@ oF oF oF oF -it -bD -bD -it -jh -nD -nD -jh -jh -kN -nD -jh -jh -Bk -ME -it -GV oF oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -12047,34 +14260,49 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -12083,7 +14311,7 @@ lC lC lC "} -(76,1,1) = {" +(95,1,1) = {" lC lC lC @@ -12091,40 +14319,17 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it oF oF oF oF oF oF -it -bD -bD oF oF oF @@ -12137,33 +14342,10 @@ oF oF oF oF -it -bD -bD -GA -jh -bD -bD -bD -bD -bD -bD -bD -ok -bD -jh -it oF oF oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -12199,74 +14381,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(77,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -12274,9 +14388,6 @@ oF oF oF oF -it -bD -bD oF oF oF @@ -12289,33 +14400,11 @@ oF oF oF oF -it -bD -bD -GA -jh -bD -bD -bD -ok -bD -bD -bD -bD -bD -jh oF oF oF oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -12351,34 +14440,21 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -12387,37 +14463,19 @@ lC lC lC "} -(78,1,1) = {" -lC +(96,1,1) = {" lC lC lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +lC +it +it +it +it +it oF oF oF @@ -12426,8 +14484,6 @@ oF oF oF oF -it -IF oF oF oF @@ -12441,33 +14497,13 @@ oF oF oF oF -it -IF -bD -it -jh -jh -jh -ud -jh -jh -jh -ud oF -jh oF oF oF oF oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -12496,80 +14532,12 @@ oF oF oF oF -it oF oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(79,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -12578,8 +14546,6 @@ oF oF oF oF -it -bD oF oF oF @@ -12593,19 +14559,6 @@ oF oF oF oF -it -bD -bD -it -it -zA -it -it -it -zA -it -it -it oF oF oF @@ -12613,13 +14566,6 @@ oF oF oF oF -it -bD -GV -rz -GV -bD -it oF oF oF @@ -12648,41 +14594,19 @@ oF oF oF oF -it -bD oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +it +it +it +it +it lC lC lC @@ -12691,7 +14615,7 @@ lC lC lC "} -(80,1,1) = {" +(97,1,1) = {" lC lC lC @@ -12699,83 +14623,11 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -oF -oF -oF -oF -oF -oF -oF -oF -oF -it -bD -oF -oF -oF -oF -oF -oF -oF -oF -it -it -it -it -oF -it -bD -bD -it -jV -bD -Zp -it -bD -bD -Zp -it -oF -oF -oF -oF -oF it it it it -bD -bD -bD -bD -bD it -it -it -it -oF oF oF oF @@ -12800,79 +14652,11 @@ oF oF oF oF -it -bD -oF oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(81,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -12882,30 +14666,11 @@ oF oF oF oF -it -bD -bD oF oF -bD -bD -bD -bD -bD -bD -bD -bD -it oF -it -bD -bD -it -IF -bD oF oF -IF oF oF oF @@ -12913,20 +14678,6 @@ oF oF oF oF -GV -it -bD -bD -bD -bD -bD -bD -jf -bD -bD -bD -bD -it oF oF oF @@ -12952,79 +14703,11 @@ oF oF oF oF -it -bD -bD oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(82,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -13034,51 +14717,13 @@ oF oF oF oF -it -bD -bD -GV -GV -GV -GV -GV -GV -GV -GV -GV -bD -it oF -it -bD -bD -it -rM -bD -Ve oF oF oF oF oF oF -bD -Ve -it -GV -it -bD -GV -GV -GV -GV -rz -GV -GV -GV -GV -bD -it oF oF oF @@ -13104,41 +14749,16 @@ oF oF oF oF -it -bD -bD oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it lC lC lC @@ -13147,7 +14767,7 @@ lC lC lC "} -(83,1,1) = {" +(98,1,1) = {" lC lC lC @@ -13155,55 +14775,7 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -hU -it -it -it -it -it -it -it -it -it -it -it -it -it it -bD -bD -GV -rz -rz -rz -rz -rz -rz -rz -GV -bD -it -it -it -zA -zA it it it @@ -13213,24 +14785,6 @@ oF oF oF oF -it -it -it -it -GV -it -bD -GV -rz -rz -rz -rz -rz -rz -rz -GV -bD -it oF oF oF @@ -13256,133 +14810,14 @@ oF oF oF oF -it -bD -bD -it oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(84,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -GV -rz -rz -rz -rz -rz -fh -rz -GV -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD oF oF oF -bD -bD -bD -bD -GV -bD -bD -GV -rz -rz -rz -rz -rz -fh -rz -GV -bD -it oF oF oF @@ -13408,41 +14843,74 @@ oF oF oF oF -it -bD -bD -it oF oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -13451,7 +14919,7 @@ lC lC lC "} -(85,1,1) = {" +(99,1,1) = {" lC lC lC @@ -13459,81 +14927,10 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -bD -bD -GV -rz -fh -rz -rz -rz -rz -rz -GV -bD -bD -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -bD -bD -GV -rz -rz -rz -rz -rz -rz -rz -GV -bD +it +it +it +it it oF oF @@ -13560,143 +14957,14 @@ oF oF oF oF -it -bD -bD -it oF oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(86,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -rz -rz -rz -rz -rz -rz -rz -rz -rz -rz -fh -rz -rz -rz -rz -rz -bD -bD -rz -rz -rz -rz -rz -rz -rz -rz -rz -bD -bD -rz -rz -rz -fh -rz -rz -rz -rz -rz -rz -rz -rz -rz -fh -rz -rz -rz -rz -bD -bD -rz -rz -rz -rz -rz -rz -rz -rz -GV -bD -it -it -it -it -it -it oF oF -it -it -it oF oF oF @@ -13706,351 +14974,95 @@ oF oF oF oF -it -it -it -it -it -it -it -bD -bD -it oF oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(87,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -bD -bD -GV -rz -rz -rz -rz -rz -rz -rz -GV -bD -bD -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -GV -bD -bD -GV -rz -rz -rz -rz -rz -rz -rz -GV -bD -jh -bD -bD -bD -bD -bD -bD -bD -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -bD -bD -bD -bD -bD -bD -bD -it oF oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(88,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -GV -rz -rz -rz -fh -rz -rz -rz -GV -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -GV -rz -rz -fh -rz -rz -rz -rz -GV -bD -jh -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -bD -bD -bD -bD -it oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -14059,7 +15071,7 @@ lC lC lC "} -(89,1,1) = {" +(100,1,1) = {" lC lC lC @@ -14067,89 +15079,6 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -it -it -it -it -it -it -it -it -it -it -it -it -it -bD -GV -rz -rz -rz -rz -rz -rz -rz -GV -bD -it -it -it -it -it -it -it -it -it -it -it -it -zA -zA -it -it -it -it -it -it -bD -GV -rz -rz -rz -rz -rz -rz -rz -GV -bD -it -it -it -it -it -it -it -it it it it @@ -14158,7 +15087,6 @@ it oF oF oF -it oF oF oF @@ -14169,77 +15097,11 @@ oF oF oF oF -it -it -it oF oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(90,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -14251,50 +15113,7 @@ oF oF oF oF -it -bD -GV -GV -GV -GV -GV -GV -GV -GV -GV -bD -it oF -it -ob -Oq -hd -jh -Ad -jh -jh -Oq -it -bD -bD -it -fD -zm -HO -rP -it -bD -GV -GV -GV -GV -GV -GV -GV -GV -GV -bD -it oF oF oF @@ -14329,69 +15148,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(91,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -14403,50 +15159,7 @@ oF oF oF oF -it -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -it oF -it -jh -bD -bD -bD -bD -bD -bD -yM -it -bD -bD -it -bD -bD -bD -bD -it -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -it oF oF oF @@ -14481,32 +15194,27 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -14515,7 +15223,7 @@ lC lC lC "} -(92,1,1) = {" +(101,1,1) = {" lC lC lC @@ -14523,27 +15231,30 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -14555,50 +15266,7 @@ oF oF oF oF -it -it -it -it -it -it -zA -zA -it -it -it -it -it oF -it -qh -bD -FT -jh -jh -Kz -bD -Ln -it -bD -bD -it -IF -ce -bD -xo -it -it -it -it -it -it -zA -zA -it -it -it -it -it oF oF oF @@ -14632,70 +15300,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(93,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -14712,51 +15316,22 @@ oF oF oF oF -it -bD -bD -it oF oF oF oF oF -it -jh -bD -jh -lo -lo -jh -bD -jh -GA -bD -bD -zA -bD -vN -bD -Ri -it oF oF oF oF oF oF -bD -it oF oF oF oF oF -hU -hU -hU -hU -hU oF oF oF @@ -14783,34 +15358,15 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -14819,7 +15375,7 @@ lC lC lC "} -(94,1,1) = {" +(102,1,1) = {" lC lC lC @@ -14827,90 +15383,28 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF -oF +it +it +it +it +it oF oF oF oF oF -it -bD -bD -it oF oF oF oF oF -it -jh -bD -jh -lo -lo -jh -bD -jh -GA -bD -bD -zA -bD -bD -bD -aS -it oF oF oF oF oF -bD -bD -it oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -14929,77 +15423,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(95,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -15016,55 +15439,16 @@ oF oF oF oF -it -IF -bD -it oF oF oF oF oF -it -qh -bD -jh -jh -jh -Kz -bD -DW -it -bD -bD -it -bD -bD -bD -jV oF oF oF oF oF -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -15079,79 +15463,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(96,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -15168,29 +15479,12 @@ oF oF oF oF -it -bD -bD oF oF oF oF oF oF -it -jh -bD -bD -bD -bD -bD -bD -Oq -it -bD -bD -it -bD oF oF oF @@ -15198,29 +15492,6 @@ oF oF oF oF -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -15230,43 +15501,24 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -15275,7 +15527,7 @@ lC lC lC "} -(97,1,1) = {" +(103,1,1) = {" lC lC lC @@ -15283,26 +15535,60 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -15320,141 +15606,17 @@ oF oF oF oF -it -bD -bD oF oF oF oF oF oF -it -Rm -nT -hd -jh -ud -jh -jh -yM -it -bD -bD -it oF oF oF oF oF -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(98,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -15472,8 +15634,6 @@ oF oF oF oF -it -bD oF oF oF @@ -15481,132 +15641,6 @@ oF oF oF oF -it -it -it -it -it -it -it -it -it -it -GA -GA -it -it -it -it -it -it -it -it -it -it -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(99,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -15624,7 +15658,6 @@ oF oF oF oF -it oF oF oF @@ -15634,95 +15667,10 @@ oF oF oF it -Ss -bD -bD -bD -bD -BG it -ni -bD -bD -bD -bD -wP it -lj -iI -Ie -nV -MW -iI -hr it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -15731,7 +15679,7 @@ lC lC lC "} -(100,1,1) = {" +(104,1,1) = {" lC lC lC @@ -15739,26 +15687,86 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -15776,7 +15784,6 @@ oF oF oF oF -it oF oF oF @@ -15785,131 +15792,6 @@ oF oF oF oF -it -ae -jh -jh -jh -jh -vO -it -kE -jh -jh -FT -jh -LB -it -lj -jh -jh -jh -jh -jh -hr -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(101,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -15936,97 +15818,11 @@ oF oF oF oF -hU it -ko -jh -lo -ou -jh -hz -it -CP -jh -lo -lo -jh -hz -it -Gr -jh -lo -lo -lo -jh -yh -it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it lC lC lC @@ -16035,7 +15831,7 @@ lC lC lC "} -(102,1,1) = {" +(105,1,1) = {" lC lC lC @@ -16043,25 +15839,74 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -16082,137 +15927,9 @@ oF oF oF oF -bD oF oF oF -hU -hU -hU -it -ko -jh -lo -lo -jh -wa -it -TA -jh -ou -lo -jh -wa -it -hr -jh -lo -ou -lo -jh -yh -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(103,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -16233,137 +15950,6 @@ oF oF oF oF -bD -bD -it -it -it -it -it -it -it -oq -jh -jh -jh -jh -Zg -it -CA -jh -jh -jh -jh -wP -it -lj -jh -jh -jh -jh -jh -hr -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(104,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -16385,104 +15971,10 @@ oF oF oF it -bD -bD -it -bD -bD -iI -bD -bD -it -oq -Dr -bD -bD -Dr -Yi it -rI -Dr -bD -bD -Dr -cp it -lj -bD -Dr -bD -bD -bD -hr it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -16491,7 +15983,7 @@ lC lC lC "} -(105,1,1) = {" +(106,1,1) = {" lC lC lC @@ -16499,23 +15991,102 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -16534,139 +16105,6 @@ oF oF oF oF -hU -hU -it -bD -bD -it -bD -jh -jh -jh -bD -it -it -it -GA -GA -it -it -it -it -it -GA -GA -it -it -it -it -it -it -it -GA -GA -it -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(106,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -16684,109 +16122,11 @@ oF oF oF oF -hU -hU -hU -hU it -IF -bD -zA -bD -jh -rz -jh -bD -zA -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -zA -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it lC lC lC @@ -16803,22 +16143,101 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -16836,138 +16255,6 @@ oF oF oF oF -hU -hU -hU -hU -it -bD -bD -zA -bD -jh -rz -jh -bD -zA -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -zA -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(108,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU oF oF oF @@ -16987,110 +16274,11 @@ oF oF oF oF -hU -hU -hU -hU -hU -it -bD -bD -it -bD -jh -jh -jh -bD -it -it -it -it -it -it -it -it -it -zA -zA -it -it -it -it -it -it -it -it it it it it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -17099,7 +16287,7 @@ lC lC lC "} -(109,1,1) = {" +(108,1,1) = {" lC lC lC @@ -17107,17 +16295,98 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -17138,137 +16407,6 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -it -bD -bD -it -bD -bD -Dr -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR -lC -lC -lC -lC -lC -lC -lC -"} -(110,1,1) = {" -lC -lC -lC -lC -lC -lC -lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU oF oF oF @@ -17288,113 +16426,11 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -it -it -it -it -it it -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -17403,7 +16439,7 @@ lC lC lC "} -(111,1,1) = {" +(109,1,1) = {" lC lC lC @@ -17411,15 +16447,119 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF @@ -17438,115 +16578,11 @@ oF oF oF oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -17555,7 +16591,7 @@ lC lC lC "} -(112,1,1) = {" +(110,1,1) = {" lC lC lC @@ -17563,15 +16599,135 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF it @@ -17579,126 +16735,6 @@ it it it it -it -it -it -it -it -it -it -it -it -it -it -it -it -it -it -it -it -hU -hU -hU -hU -it -IF -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -17707,7 +16743,7 @@ lC lC lC "} -(113,1,1) = {" +(111,1,1) = {" lC lC lC @@ -17715,142 +16751,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF it -XD -cM -iI -bD -LB -LB -bD -iI -LB -Hs -bD -bD -LB -LB -iI -bD -bD -iI -bD -LB -it -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -17859,7 +16895,7 @@ lC lC lC "} -(114,1,1) = {" +(112,1,1) = {" lC lC lC @@ -17867,142 +16903,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF it -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -bD -Hs -it -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -18011,7 +17047,7 @@ lC lC lC "} -(115,1,1) = {" +(113,1,1) = {" lC lC lC @@ -18019,142 +17055,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF it -bD -bD -Ky -Ky -bD -bD -Ky -Ky -bD -bD -Ky -Ky -bD -bD -fF -Ky -bD -bD -bD -dP -it -it -it -it -it -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -18163,7 +17199,7 @@ lC lC lC "} -(116,1,1) = {" +(114,1,1) = {" lC lC lC @@ -18171,142 +17207,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF oF oF oF it -NN -cM -Ky -Ky -bD -ok -Ky -Ky -bD -Ua -Ky -Ky -bD -bD -fF -fF -bD -ok -bD -bD -GA -bD -bD -bD -bD -zA -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR lC lC lC @@ -18315,7 +17351,7 @@ lC lC lC "} -(117,1,1) = {" +(115,1,1) = {" lC lC lC @@ -18323,142 +17359,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -oF -oF -oF -oF it -bD -bD -Ky -Ky -bD -bD -Ky -Ky -bD -Ua -fF -Ky -bD -Ua -hU -fF -bD -bD -bD -bD -GA -bD -bD -bD -bD -zA -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -18467,7 +17503,7 @@ lC lC lC "} -(118,1,1) = {" +(116,1,1) = {" lC lC lC @@ -18475,142 +17511,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -oF -oF -oF -oF -it -bD -bD -Ky -Ky -bD -bD -Ky -Ky -Ua -bD -Ky -hU -Ua -bD -hU -fF -Ua -bD -bD -MW -it -it -it it it it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -18619,7 +17655,7 @@ lC lC lC "} -(119,1,1) = {" +(117,1,1) = {" lC lC lC @@ -18627,142 +17663,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -hU -oF -oF -oF -oF it -NN -cM -bD -bD -bD -bD -bD -bD -bD -hU -HI -HI -YN -hU -hU -hU -Ua -Ua -bD -bD it -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -18771,7 +17807,7 @@ lC lC lC "} -(120,1,1) = {" +(118,1,1) = {" lC lC lC @@ -18779,142 +17815,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -hU -oF -oF -oF -oF it -bD -bD -bD -bD -LB -Hs -bD -Ua -oF -HI -HI -HI -HI -hU -hU -hU -hU -Ua -Ua -Ua it -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -18923,7 +17959,7 @@ lC lC lC "} -(121,1,1) = {" +(119,1,1) = {" lC lC lC @@ -18931,142 +17967,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -oF -oF -oF -oF -it -it -it -it -it -it -it -it -hU -hU -HI -HI -HI -hU -hU -hU -hU -hU -hU it it it -hU -hU -hU -hU it -IF -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -19075,7 +18111,7 @@ lC lC lC "} -(122,1,1) = {" +(120,1,1) = {" lC lC lC @@ -19083,13 +18119,11 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it oF oF oF @@ -19099,126 +18133,128 @@ oF oF oF oF -hU oF -hU -hU -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -19227,7 +18263,7 @@ lC lC lC "} -(123,1,1) = {" +(121,1,1) = {" lC lC lC @@ -19235,14 +18271,11 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -Pb +it +it +it +it +it oF oF oF @@ -19252,125 +18285,128 @@ oF oF oF oF -hU -hU -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -19379,7 +18415,7 @@ lC lC lC "} -(124,1,1) = {" +(122,1,1) = {" lC lC lC @@ -19387,15 +18423,11 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -Pb -Pb +it +it +it +it +it oF oF oF @@ -19405,124 +18437,128 @@ oF oF oF oF -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -19531,7 +18567,7 @@ lC lC lC "} -(125,1,1) = {" +(123,1,1) = {" lC lC lC @@ -19539,16 +18575,11 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -Pb -Pb +it +it +it +it +it oF oF oF @@ -19557,124 +18588,129 @@ oF oF oF oF -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -19683,7 +18719,7 @@ lC lC lC "} -(126,1,1) = {" +(124,1,1) = {" lC lC lC @@ -19691,142 +18727,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Xx -xL -Xx +it +it +it +it +it oF oF oF oF -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -it -bD -bD -it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -19835,7 +18871,7 @@ lC lC lC "} -(127,1,1) = {" +(125,1,1) = {" lC lC lC @@ -19843,142 +18879,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -RA -Pb -Pb -Pb -HI -mM -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -19987,7 +19023,7 @@ lC lC lC "} -(128,1,1) = {" +(126,1,1) = {" lC lC lC @@ -19995,142 +19031,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -RA -RA -Xx -mM -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it +it +it +it +oF +oF +oF +oF +oF hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -20139,7 +19175,7 @@ lC lC lC "} -(129,1,1) = {" +(127,1,1) = {" lC lC lC @@ -20147,142 +19183,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -Pb -jv -SX -mM -mM -mM -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -IF -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -20291,7 +19327,7 @@ lC lC lC "} -(130,1,1) = {" +(128,1,1) = {" lC lC lC @@ -20299,142 +19335,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -Pb -Pb -Xx -Pb -Pb -mM -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -20443,7 +19479,7 @@ lC lC lC "} -(131,1,1) = {" +(129,1,1) = {" lC lC lC @@ -20451,142 +19487,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -Pb -Pb -Pb -Pb -Pb -mM -HI -HI -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -20595,7 +19631,7 @@ lC lC lC "} -(132,1,1) = {" +(130,1,1) = {" lC lC lC @@ -20603,142 +19639,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -Pb -Pb -Pb -Pb -hU -hU -mM -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -20747,7 +19783,7 @@ lC lC lC "} -(133,1,1) = {" +(131,1,1) = {" lC lC lC @@ -20755,142 +19791,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -Pb -Pb -Pb -oF -hU -hU -hU -HI -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -20899,7 +19935,7 @@ lC lC lC "} -(134,1,1) = {" +(132,1,1) = {" lC lC lC @@ -20907,142 +19943,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -Pb -Pb -Pb -Pb -Pb -oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -21051,7 +20087,7 @@ lC lC lC "} -(135,1,1) = {" +(133,1,1) = {" lC lC lC @@ -21059,142 +20095,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -TR -TR -TR -TR -TR -oF -oF -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -21203,7 +20239,7 @@ lC lC lC "} -(136,1,1) = {" +(134,1,1) = {" lC lC lC @@ -21211,142 +20247,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -21355,7 +20391,7 @@ lC lC lC "} -(137,1,1) = {" +(135,1,1) = {" lC lC lC @@ -21363,142 +20399,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU it -bD -bD it -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -21507,7 +20543,7 @@ lC lC lC "} -(138,1,1) = {" +(136,1,1) = {" lC lC lC @@ -21515,142 +20551,294 @@ lC lC lC lC -TR -TR -TR -TR -TR -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -hU -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(137,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -21659,7 +20847,7 @@ lC lC lC "} -(139,1,1) = {" +(138,1,1) = {" lC lC lC @@ -21667,142 +20855,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +oF +it +it +it +it +it lC lC lC @@ -21811,7 +20999,7 @@ lC lC lC "} -(140,1,1) = {" +(139,1,1) = {" lC lC lC @@ -21819,142 +21007,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC @@ -21963,7 +21151,7 @@ lC lC lC "} -(141,1,1) = {" +(140,1,1) = {" lC lC lC @@ -21971,142 +21159,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC @@ -22115,7 +21303,7 @@ lC lC lC "} -(142,1,1) = {" +(141,1,1) = {" lC lC lC @@ -22123,142 +21311,142 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC @@ -22267,7 +21455,7 @@ lC lC lC "} -(143,1,1) = {" +(142,1,1) = {" lC lC lC @@ -22275,142 +21463,294 @@ lC lC lC lC -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR -TR +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +lC +lC +lC +lC +lC +lC +lC +"} +(143,1,1) = {" +lC +lC +lC +lC +lC +lC +lC +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it lC lC lC diff --git a/maps/shaded_hills/shaded_hills-inn.dmm b/maps/shaded_hills/shaded_hills-inn.dmm index 59e1397ce1d..83e2c229f56 100644 --- a/maps/shaded_hills/shaded_hills-inn.dmm +++ b/maps/shaded_hills/shaded_hills-inn.dmm @@ -857,6 +857,13 @@ "wr" = ( /turf/wall/wattle/daubed/plastered/framed/mahogany, /area/shaded_hills/shrine) +"wA" = ( +/obj/structure/flora/tree/dead/ebony, +/obj/structure/railing/mapped/wooden/walnut{ + dir = 4 + }, +/turf/floor/dirt, +/area/shaded_hills/outside/shrine) "wF" = ( /obj/structure/banner_frame/sign/store, /turf/floor/dirt, @@ -20590,7 +20597,7 @@ kv iK iK kv -By +kv px ge VE @@ -20741,7 +20748,7 @@ kv kv iK kv -By +kv kv QB Dk @@ -21040,10 +21047,10 @@ EJ By By By -By -aP -Mo xk +Mo +aP +kv kv kv By @@ -21193,8 +21200,8 @@ xU xU xU xU +wA kv -aP kv kv By diff --git a/mods/content/fantasy/_fantasy.dme b/mods/content/fantasy/_fantasy.dme index a02e6b80683..b3ca9dd5fa7 100644 --- a/mods/content/fantasy/_fantasy.dme +++ b/mods/content/fantasy/_fantasy.dme @@ -29,6 +29,7 @@ #include "datum\kobaloi\markings.dm" #include "datum\kobaloi\organs.dm" #include "datum\kobaloi\species.dm" +#include "dungeon\_dungeon.dm" #include "items\material_overrides.dm" #include "items\clothing\_loadout.dm" #include "items\clothing\_overrides.dm" diff --git a/mods/content/fantasy/dungeon/_dungeon.dm b/mods/content/fantasy/dungeon/_dungeon.dm new file mode 100644 index 00000000000..25a65f618e0 --- /dev/null +++ b/mods/content/fantasy/dungeon/_dungeon.dm @@ -0,0 +1,293 @@ +/decl/modular_map_generator/dungeon + name = "Dungeon" + grid_cell_size = 4 + cell_templates = list( + /datum/map_template/modular/dungeon/barracks, + /datum/map_template/modular/dungeon/butchery, + /datum/map_template/modular/dungeon/hall, + /datum/map_template/modular/dungeon/foundry, + /datum/map_template/modular/dungeon/kitchen, + /datum/map_template/modular/dungeon/library, + /datum/map_template/modular/dungeon/pool_small, + /datum/map_template/modular/dungeon/pool, + /datum/map_template/modular/dungeon/smithy, + /datum/map_template/modular/dungeon/surgery, + /datum/map_template/modular/dungeon/workshop, + /datum/map_template/modular/dungeon/spider_nest, + /datum/map_template/modular/dungeon/hallway/vertical_aqueduct, + /datum/map_template/modular/dungeon/hallway/horizontal_aqueduct, + /datum/map_template/modular/dungeon/hallway/vertical_hallway, + /datum/map_template/modular/dungeon/hallway/horizontal_hallway, + /datum/map_template/modular/dungeon/hallway/end/north, + /datum/map_template/modular/dungeon/hallway/end/south, + /datum/map_template/modular/dungeon/hallway/end/east, + /datum/map_template/modular/dungeon/hallway/end/west + ) + +/decl/modular_map_generator/dungeon/get_initial_template() + return (locate(/datum/map_template/modular/dungeon/hall) in cell_templates) || ..() + +/datum/map_template/modular/dungeon + abstract_type = /datum/map_template/modular/dungeon + template_flags = TEMPLATE_FLAG_CLEAR_CONTENTS | TEMPLATE_FLAG_NO_RUINS + connection_flag = MCF_ROOM + +/datum/map_template/modular/dungeon/barracks + name = "dungeon barracks" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_barracks.dmm") + cell_width = 5 + cell_height = 4 + +/datum/map_template/modular/dungeon/barracks/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 3, (MCF_HALL)), + new /datum/mm_connection("EAST", 4, 3, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/butchery + name = "dungeon butchery" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_butchery.dmm") + cell_width = 2 + cell_height = 2 + +/datum/map_template/modular/dungeon/butchery/New() + cell_connections = list( + new /datum/mm_connection("EAST", 1, 0, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/hall + name = "dungeon feasting hall" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_feasting_hall.dmm") + cell_width = 3 + cell_height = 5 + +/datum/map_template/modular/dungeon/hall/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 1, 0, (MCF_HALL)), + new /datum/mm_connection("WEST", 0, 3, (MCF_HALL)), + new /datum/mm_connection("WEST", 0, 1, (MCF_HALL)), + new /datum/mm_connection("EAST", 2, 1, (MCF_HALL)), + new /datum/mm_connection("EAST", 2, 3, (MCF_HALL)), + new /datum/mm_connection("NORTH", 1, 4, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/foundry + name = "dungeon foundry" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_foundry.dmm") + cell_width = 3 + cell_height = 3 + +/datum/map_template/modular/dungeon/foundry/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 1, 0, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/kitchen + name = "dungeon kitchen" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_kitchen.dmm") + cell_width = 3 + cell_height = 2 + +/datum/map_template/modular/dungeon/kitchen/New() + cell_connections = list( + new /datum/mm_connection("EAST", 2, 1, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/library + name = "dungeon library" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_library.dmm") + cell_width = 3 + cell_height = 5 + +/datum/map_template/modular/dungeon/library/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL)), + new /datum/mm_connection("SOUTH", 1, 0, (MCF_HALL)), + new /datum/mm_connection("NORTH", 1, 4, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/pool_small + name = "dungeon small pool" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_pool_small.dmm") + cell_width = 2 + cell_height = 2 + +/datum/map_template/modular/dungeon/pool_small/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL)), + new /datum/mm_connection("NORTH", 1, 1, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/pool + name = "dungeon pool" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_pool.dmm") + cell_width = 3 + cell_height = 3 + +/datum/map_template/modular/dungeon/pool/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 1, (MCF_HALL)), + new /datum/mm_connection("SOUTH", 1, 0, (MCF_HALL)), + new /datum/mm_connection("NORTH", 1, 2, (MCF_HALL)), + new /datum/mm_connection("EAST", 2, 1, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/smithy + name = "dungeon smithy" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_smithy.dmm") + cell_width = 2 + cell_height = 2 + +/datum/map_template/modular/dungeon/smithy/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 1, (MCF_HALL)), + new /datum/mm_connection("EAST", 1, 0, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/surgery + name = "dungeon surgery" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_surgery.dmm") + cell_width = 3 + cell_height = 2 + +/datum/map_template/modular/dungeon/surgery/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 1, 1, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/workshop + name = "dungeon workshop" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_workshop.dmm") + cell_width = 2 + cell_height = 3 + +/datum/map_template/modular/dungeon/workshop/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 1, (MCF_HALL)), + new /datum/mm_connection("EAST", 2, 1, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/spider_nest + name = "dungeon spider nest" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_spider_nest.dmm") + cell_width = 3 + cell_height = 3 + +/datum/map_template/modular/dungeon/spider_nest/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 1, (MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway + abstract_type = /datum/map_template/modular/dungeon/hallway + template_flags = TEMPLATE_FLAG_CLEAR_CONTENTS | TEMPLATE_FLAG_NO_RUINS | TEMPLATE_FLAG_ALLOW_DUPLICATES | TEMPLATE_FLAG_GENERIC_REPEATABLE + connection_flag = MCF_HALL + +/datum/map_template/modular/dungeon/hallway/vertical_aqueduct + name = "dungeon vertical aqueduct" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_vertical_aqueduct.dmm") + cell_width = 1 + cell_height = 2 + +/datum/map_template/modular/dungeon/hallway/vertical_aqueduct/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 1, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway/horizontal_aqueduct + name = "dungeon horizontal aqueduct" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_horizontal_aqueduct.dmm") + cell_width = 2 + cell_height = 1 + +/datum/map_template/modular/dungeon/hallway/horizontal_aqueduct/New() + cell_connections = list( + new /datum/mm_connection("EAST", 1, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway/vertical_hallway + name = "dungeon vertical hallway" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_vertical_hallway.dmm") + cell_width = 1 + cell_height = 2 + +/datum/map_template/modular/dungeon/hallway/vertical_hallway/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 1, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway/horizontal_hallway + name = "dungeon horizontal hallway" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_horizontal_hallway.dmm") + cell_width = 2 + cell_height = 1 + +/datum/map_template/modular/dungeon/hallway/horizontal_hallway/New() + cell_connections = list( + new /datum/mm_connection("EAST", 1, 0, (MCF_ROOM | MCF_HALL)), + new /datum/mm_connection("WEST", 0, 0, (MCF_ROOM | MCF_HALL)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway/end + abstract_type = /datum/map_template/modular/dungeon/hallway/end + cell_width = 1 + cell_height = 1 + +/datum/map_template/modular/dungeon/hallway/end/north + name = "dungeon north hallway end" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_term_n.dmm") + +/datum/map_template/modular/dungeon/hallway/end/north/New() + cell_connections = list( + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway/end/south + name = "dungeon south hallway end" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_term_s.dmm") + +/datum/map_template/modular/dungeon/hallway/end/south/New() + cell_connections = list( + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway/end/east + name = "dungeon east hallway end" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_term_e.dmm") + +/datum/map_template/modular/dungeon/hallway/end/east/New() + cell_connections = list( + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() + +/datum/map_template/modular/dungeon/hallway/end/west + name = "dungeon west hallway end" + mappaths = list("maps/shaded_hills/dungeon_gen/submaps/dungeon/dungeon_term_w.dmm") + +/datum/map_template/modular/dungeon/hallway/end/west/New() + cell_connections = list( + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_ROOM)) + ) + ..() diff --git a/mods/content/fantasy/dungeon/dungeon_barracks.dmm b/mods/content/fantasy/dungeon/dungeon_barracks.dmm new file mode 100644 index 00000000000..34a3e5a6995 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_barracks.dmm @@ -0,0 +1,522 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/obj/item/stack/medical/bandage/crafted/five, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"b" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/obj/item/food/grown/dried_tobacco/bad, +/obj/item/rock/flint/striker, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"c" = ( +/turf/wall/natural/dirt, +/area/template_noop) +"e" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/cash/imperial/regalis, +/obj/item/cash/imperial/regalis, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/bladed/longsword, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"f" = ( +/obj/structure/closet/cabinet/wooden/ebony, +/obj/item/clothing/suit/armor/forged/banded, +/obj/item/clothing/pants/trousers/braies, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"i" = ( +/obj/structure/wall_sconce{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"j" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/cash/imperial/regalis, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/bladed/broadsword, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"k" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/quin, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/bladed/longsword, +/obj/item/bladed/poignard, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"n" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/obj/item/stack/material/bolt/mapped/cloth/five, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"p" = ( +/obj/structure/bed/simple/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"q" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/obj/item/stack/medical/bandage/crafted/five, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"s" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/obj/item/bladed/folding, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"w" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"A" = ( +/obj/structure/closet/cabinet/wooden/ebony, +/obj/item/clothing/suit/armor/crafted/leather, +/obj/item/clothing/pants/trousers/braies, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"B" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"I" = ( +/obj/structure/closet/cabinet/wooden/ebony, +/obj/item/clothing/suit/armor/crafted/copper, +/obj/item/clothing/pants/trousers/braies, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"K" = ( +/obj/item/stack/material/plank/mapped/ebony/five, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"L" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"O" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/obj/item/food/grown/dried_tobacco/bad, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"P" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Q" = ( +/obj/structure/wall_sconce{ + dir = 1; + pixel_y = 10 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"R" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"U" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"X" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"Z" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +L +P +P +L +L +L +L +L +L +L +L +L +L +L +L +L +"} +(2,1,1) = {" +L +Z +Z +L +Z +K +p +L +j +Z +p +L +k +Z +p +L +"} +(3,1,1) = {" +L +Z +Z +L +Q +Z +Z +L +Q +Z +Z +L +Q +Z +Z +L +"} +(4,1,1) = {" +L +Z +Z +L +Z +Z +f +L +Z +Z +A +L +Z +Z +I +L +"} +(5,1,1) = {" +L +Q +Z +L +L +P +L +L +L +P +L +L +L +P +L +L +"} +(6,1,1) = {" +L +Z +Z +L +w +w +w +X +w +w +w +X +w +w +w +L +"} +(7,1,1) = {" +L +Z +Z +P +w +Z +Z +U +Z +Z +Z +U +Z +Z +w +L +"} +(8,1,1) = {" +L +Z +Z +P +w +Z +Z +Z +Z +Z +Z +Z +Z +Z +w +L +"} +(9,1,1) = {" +L +Z +Z +L +w +B +s +w +w +b +q +w +w +B +B +L +"} +(10,1,1) = {" +L +Q +Z +L +L +L +L +L +L +L +L +L +L +L +L +L +"} +(11,1,1) = {" +L +Z +Z +L +w +R +R +w +w +n +R +w +w +O +a +L +"} +(12,1,1) = {" +L +Z +Z +P +w +Z +Z +Z +Z +Z +Z +Z +U +Z +w +L +"} +(13,1,1) = {" +L +Z +Z +P +w +Z +Z +Z +U +Z +Z +Z +Z +Z +w +c +"} +(14,1,1) = {" +L +Q +Z +L +w +w +w +i +w +w +w +i +c +w +c +c +"} +(15,1,1) = {" +L +Z +Z +L +L +P +L +L +L +P +L +L +L +c +c +c +"} +(16,1,1) = {" +L +Z +Z +L +K +Z +A +L +Z +Z +A +L +c +c +c +c +"} +(17,1,1) = {" +L +Z +Z +L +Q +Z +c +c +Q +c +c +c +c +c +c +c +"} +(18,1,1) = {" +L +Z +Z +L +e +Z +p +c +c +c +c +c +c +Z +p +L +"} +(19,1,1) = {" +L +Z +Z +L +c +c +c +c +c +c +c +c +c +Z +c +L +"} +(20,1,1) = {" +L +P +P +L +L +L +L +c +c +c +c +c +L +L +L +L +"} diff --git a/mods/content/fantasy/dungeon/dungeon_butchery.dmm b/mods/content/fantasy/dungeon/dungeon_butchery.dmm new file mode 100644 index 00000000000..577bbcabbc6 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_butchery.dmm @@ -0,0 +1,141 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/table/wood/ebony, +/obj/item/bladed/folding, +/obj/item/rock/flint/striker, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/obj/structure/drying_rack/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"k" = ( +/turf/floor/path/basalt, +/area/template_noop) +"o" = ( +/obj/structure/reagent_dispensers/barrel/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"r" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"t" = ( +/obj/structure/working/spinning_wheel/twisting_bench/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"y" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"C" = ( +/obj/structure/table/wood/ebony, +/obj/item/chems/glass/mortar, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"D" = ( +/obj/structure/wall_sconce{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"G" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"S" = ( +/obj/structure/closet/crate/chest/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"U" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"V" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"X" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/basalt, +/area/template_noop) + +(1,1,1) = {" +U +U +U +U +U +U +U +U +"} +(2,1,1) = {" +U +h +r +C +a +r +S +U +"} +(3,1,1) = {" +U +h +y +y +y +y +S +U +"} +(4,1,1) = {" +U +t +y +k +k +y +o +U +"} +(5,1,1) = {" +U +S +y +k +X +y +o +U +"} +(6,1,1) = {" +U +h +y +y +y +y +S +U +"} +(7,1,1) = {" +U +h +G +D +G +G +S +U +"} +(8,1,1) = {" +U +U +U +U +U +V +U +U +"} diff --git a/mods/content/fantasy/dungeon/dungeon_feasting_hall.dmm b/mods/content/fantasy/dungeon/dungeon_feasting_hall.dmm new file mode 100644 index 00000000000..4ec9f96e376 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_feasting_hall.dmm @@ -0,0 +1,386 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/wall_sconce{ + dir = 1; + pixel_y = 10 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"b" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/obj/item/stack/material/bolt/mapped/cloth/five, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"f" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"j" = ( +/obj/structure/table/wood/reinforced/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"l" = ( +/obj/structure/table/wood/reinforced/ebony, +/obj/item/flame/candle, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"m" = ( +/obj/item/cash/imperial/crown, +/turf/floor/path/basalt/water, +/area/template_noop) +"n" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"p" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/obj/random/hostile/dungeon, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"w" = ( +/obj/item/cash/imperial/quin, +/turf/floor/path/basalt/water, +/area/template_noop) +"x" = ( +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/turf/floor/path/basalt/water, +/area/template_noop) +"A" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"C" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"E" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/obj/random/hostile/dungeon, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"G" = ( +/obj/structure/wall_sconce, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"J" = ( +/obj/structure/table/wood/reinforced/ebony, +/obj/item/bladed/folding, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"L" = ( +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/obj/item/cash/imperial/crown, +/turf/floor/path/basalt/water, +/area/template_noop) +"P" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"R" = ( +/obj/structure/table/wood/reinforced/ebony, +/obj/item/food/grown/dried_tobacco/fine, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"S" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"U" = ( +/obj/structure/table/wood/reinforced/ebony, +/obj/item/food/grown/dried_tobacco/bad, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Y" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/obj/item/remains/human, +/obj/item/clothing/suit/armor/forged/banded, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Z" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/obj/item/remains/human, +/obj/item/clothing/pants/trousers/braies, +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +c +c +c +c +c +C +C +c +c +c +c +c +c +C +C +c +c +c +c +c +"} +(2,1,1) = {" +c +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +c +"} +(3,1,1) = {" +c +A +c +a +A +A +f +G +c +A +A +c +a +A +A +A +G +c +A +c +"} +(4,1,1) = {" +c +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +c +"} +(5,1,1) = {" +c +A +A +A +S +Z +S +A +P +P +P +P +A +S +S +E +A +A +A +c +"} +(6,1,1) = {" +C +A +A +A +j +j +j +A +P +x +m +P +A +J +U +U +A +A +A +C +"} +(7,1,1) = {" +C +A +A +A +j +j +R +A +P +L +w +P +A +j +l +j +A +A +A +C +"} +(8,1,1) = {" +c +A +A +A +b +n +p +A +P +P +P +P +A +n +n +Y +A +A +A +c +"} +(9,1,1) = {" +c +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +c +"} +(10,1,1) = {" +c +A +c +a +A +A +A +G +c +A +A +c +a +A +A +A +G +c +A +c +"} +(11,1,1) = {" +c +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +c +"} +(12,1,1) = {" +c +c +c +c +c +C +C +c +c +c +c +c +c +C +C +c +c +c +c +c +"} diff --git a/mods/content/fantasy/dungeon/dungeon_foundry.dmm b/mods/content/fantasy/dungeon/dungeon_foundry.dmm new file mode 100644 index 00000000000..0a1c3603cbe --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_foundry.dmm @@ -0,0 +1,254 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"h" = ( +/obj/structure/fire_source/kiln/high_temperature, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"m" = ( +/obj/structure/table/wood/ebony, +/obj/item/bladed/knife, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"o" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"p" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"s" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"t" = ( +/obj/structure/table/wood/ebony, +/obj/item/stack/material/ore/diamond, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"u" = ( +/obj/structure/table/wood/ebony, +/obj/item/tool/pickaxe/iron, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"x" = ( +/obj/structure/wall_sconce{ + dir = 1; + pixel_y = 10 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"y" = ( +/obj/structure/table/wood/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"D" = ( +/obj/structure/table/wood/ebony, +/obj/item/tool/hammer/sledge, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"E" = ( +/obj/structure/wall_sconce{ + dir = 4 + }, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"F" = ( +/turf/floor/path/basalt, +/area/template_noop) +"M" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"O" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"P" = ( +/obj/structure/table/wood/ebony, +/obj/item/bladed/folding, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"T" = ( +/obj/structure/table/wood/ebony, +/obj/item/stack/material/ore/diamond, +/obj/item/stack/material/ore/diamond, +/obj/item/stack/material/ore/diamond, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"X" = ( +/obj/structure/table/wood/ebony, +/obj/item/stack/material/brick/mapped/graphite/fifteen, +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +m +y +X +O +O +O +s +O +O +y +a +"} +(3,1,1) = {" +a +O +o +o +o +o +o +o +o +o +O +a +"} +(4,1,1) = {" +a +O +o +p +O +O +O +O +h +o +u +a +"} +(5,1,1) = {" +a +x +o +O +F +F +F +F +O +o +D +a +"} +(6,1,1) = {" +a +O +o +O +F +F +F +F +O +o +O +M +"} +(7,1,1) = {" +a +O +o +O +F +F +F +F +O +o +O +M +"} +(8,1,1) = {" +a +x +o +O +F +F +F +F +O +o +P +a +"} +(9,1,1) = {" +a +O +o +O +O +O +O +O +h +o +y +a +"} +(10,1,1) = {" +a +O +o +o +o +o +o +o +o +o +O +a +"} +(11,1,1) = {" +a +t +T +X +O +O +O +E +O +O +u +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/mods/content/fantasy/dungeon/dungeon_horizontal_aqueduct.dmm b/mods/content/fantasy/dungeon/dungeon_horizontal_aqueduct.dmm new file mode 100644 index 00000000000..2fa60e4f8f7 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_horizontal_aqueduct.dmm @@ -0,0 +1,63 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"G" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"H" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"S" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/basalt/water/deep, +/area/template_noop) + +(1,1,1) = {" +H +G +a +H +"} +(2,1,1) = {" +H +G +a +H +"} +(3,1,1) = {" +H +G +a +H +"} +(4,1,1) = {" +H +G +a +H +"} +(5,1,1) = {" +H +G +a +H +"} +(6,1,1) = {" +H +G +a +H +"} +(7,1,1) = {" +H +S +a +H +"} +(8,1,1) = {" +H +G +a +H +"} diff --git a/mods/content/fantasy/dungeon/dungeon_horizontal_hallway.dmm b/mods/content/fantasy/dungeon/dungeon_horizontal_hallway.dmm new file mode 100644 index 00000000000..8c7a7958cc1 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_horizontal_hallway.dmm @@ -0,0 +1,62 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"g" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 1 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"M" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +M +M +a +"} +(2,1,1) = {" +a +M +M +a +"} +(3,1,1) = {" +a +M +g +a +"} +(4,1,1) = {" +a +M +M +a +"} +(5,1,1) = {" +a +M +a +a +"} +(6,1,1) = {" +a +M +M +a +"} +(7,1,1) = {" +a +M +g +a +"} +(8,1,1) = {" +a +M +M +a +"} diff --git a/mods/content/fantasy/dungeon/dungeon_kitchen.dmm b/mods/content/fantasy/dungeon/dungeon_kitchen.dmm new file mode 100644 index 00000000000..e7d2143ed2b --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_kitchen.dmm @@ -0,0 +1,176 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"b" = ( +/obj/structure/fire_source/stove, +/obj/effect/decal/cleanable/ash, +/turf/floor/path/basalt, +/area/template_noop) +"j" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt, +/area/template_noop) +"o" = ( +/obj/structure/reagent_dispensers/barrel/ebony/water, +/turf/floor/path/basalt, +/area/template_noop) +"p" = ( +/obj/item/stack/material/plank/mapped/ebony/five, +/turf/floor/path/basalt, +/area/template_noop) +"s" = ( +/obj/structure/table/wood/reinforced/ebony, +/obj/item/knife/kitchen/cleaver/bronze, +/turf/floor/path/basalt, +/area/template_noop) +"w" = ( +/obj/structure/wall_sconce, +/turf/floor/path/basalt, +/area/template_noop) +"O" = ( +/obj/structure/reagent_dispensers/barrel/ebony/oil, +/turf/floor/path/basalt, +/area/template_noop) +"S" = ( +/obj/structure/table/wood/reinforced/ebony, +/turf/floor/path/basalt, +/area/template_noop) +"U" = ( +/turf/wall/natural/dirt, +/area/template_noop) +"X" = ( +/obj/structure/reagent_dispensers/barrel/ebony, +/turf/floor/path/basalt, +/area/template_noop) +"Y" = ( +/obj/structure/wall_sconce{ + dir = 1; + pixel_y = 10 + }, +/turf/floor/path/basalt, +/area/template_noop) + +(1,1,1) = {" +U +U +U +U +U +U +U +U +"} +(2,1,1) = {" +U +U +U +U +U +a +a +U +"} +(3,1,1) = {" +a +U +U +X +U +U +a +U +"} +(4,1,1) = {" +a +O +U +l +U +U +a +U +"} +(5,1,1) = {" +a +o +l +p +l +U +a +U +"} +(6,1,1) = {" +a +l +l +l +l +s +a +U +"} +(7,1,1) = {" +a +l +l +l +l +S +a +U +"} +(8,1,1) = {" +U +b +l +l +l +o +a +U +"} +(9,1,1) = {" +a +Y +l +l +l +w +a +U +"} +(10,1,1) = {" +a +S +l +l +l +S +a +U +"} +(11,1,1) = {" +a +l +l +l +l +S +a +U +"} +(12,1,1) = {" +a +j +j +a +a +a +a +U +"} diff --git a/mods/content/fantasy/dungeon/dungeon_library.dmm b/mods/content/fantasy/dungeon/dungeon_library.dmm new file mode 100644 index 00000000000..605607cd5a6 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_library.dmm @@ -0,0 +1,333 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/natural/dirt, +/area/template_noop) +"e" = ( +/obj/random/dungeon_bookcase, +/turf/floor/rock/basalt, +/area/template_noop) +"h" = ( +/obj/structure/table/desk/ebony/right, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"j" = ( +/obj/structure/table/wood/ebony, +/obj/item/flame/torch, +/obj/item/flame/torch, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"k" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"n" = ( +/obj/item/flame/candle, +/obj/structure/table/desk/ebony/right, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"o" = ( +/turf/floor/rock/basalt, +/area/template_noop) +"p" = ( +/obj/structure/table/wood/ebony, +/obj/item/rock/flint/striker, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"q" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"H" = ( +/obj/random/dungeon_bookcase, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"I" = ( +/obj/structure/table/wood/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"K" = ( +/obj/item/stool/rustic, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"M" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"S" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"U" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"W" = ( +/obj/structure/table/wood/ebony, +/obj/item/flame/candle, +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +M +M +k +k +k +"} +(2,1,1) = {" +k +n +K +S +I +I +S +U +I +W +S +S +I +I +U +S +S +U +I +k +"} +(3,1,1) = {" +k +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +W +k +"} +(4,1,1) = {" +k +S +S +H +H +S +S +H +H +S +S +H +H +S +o +H +H +S +j +k +"} +(5,1,1) = {" +k +h +K +H +H +q +S +H +H +o +S +H +H +S +o +o +H +q +S +k +"} +(6,1,1) = {" +k +S +S +H +H +S +S +H +H +o +o +S +H +o +a +o +H +S +S +M +"} +(7,1,1) = {" +M +S +S +H +H +S +S +H +o +S +S +a +o +S +a +e +o +S +p +M +"} +(8,1,1) = {" +k +h +K +S +S +S +S +S +S +a +o +o +S +a +a +a +o +o +S +k +"} +(9,1,1) = {" +k +S +S +S +I +W +S +o +a +o +o +o +o +a +a +a +a +o +o +k +"} +(10,1,1) = {" +k +k +k +k +k +k +k +a +a +a +o +o +a +a +a +a +a +a +k +k +"} +(11,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/mods/content/fantasy/dungeon/dungeon_pool.dmm b/mods/content/fantasy/dungeon/dungeon_pool.dmm new file mode 100644 index 00000000000..27327a45c1d --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_pool.dmm @@ -0,0 +1,190 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/basalt/water, +/area/template_noop) +"c" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"i" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"B" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"O" = ( +/mob/living/simple_animal/aquatic/fish/grump, +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"S" = ( +/obj/item/remains/human, +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +c +c +c +c +c +i +i +c +c +c +c +c +"} +(2,1,1) = {" +c +i +i +i +i +i +S +i +i +i +i +c +"} +(3,1,1) = {" +c +i +a +a +a +B +B +a +a +a +i +c +"} +(4,1,1) = {" +c +i +a +B +B +B +B +B +B +a +i +c +"} +(5,1,1) = {" +c +i +a +B +B +B +B +O +B +a +i +c +"} +(6,1,1) = {" +i +i +B +B +B +B +B +B +B +B +i +i +"} +(7,1,1) = {" +i +i +B +B +B +B +B +B +B +B +i +i +"} +(8,1,1) = {" +c +i +a +B +O +B +B +B +B +a +i +c +"} +(9,1,1) = {" +c +i +a +B +B +B +B +B +B +a +i +c +"} +(10,1,1) = {" +c +i +a +a +a +B +B +a +a +a +i +c +"} +(11,1,1) = {" +c +i +i +i +i +i +i +i +i +i +i +c +"} +(12,1,1) = {" +c +c +c +c +c +i +i +c +c +c +c +c +"} diff --git a/mods/content/fantasy/dungeon/dungeon_pool_small.dmm b/mods/content/fantasy/dungeon/dungeon_pool_small.dmm new file mode 100644 index 00000000000..df0f0188241 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_pool_small.dmm @@ -0,0 +1,110 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"y" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"H" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"M" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"P" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"T" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"V" = ( +/obj/structure/wall_sconce{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +T +T +T +T +T +T +T +T +"} +(2,1,1) = {" +T +a +a +a +M +a +a +y +"} +(3,1,1) = {" +T +a +P +P +P +P +a +y +"} +(4,1,1) = {" +T +a +P +H +H +P +a +T +"} +(5,1,1) = {" +T +a +P +H +H +P +a +T +"} +(6,1,1) = {" +y +a +P +P +P +P +a +T +"} +(7,1,1) = {" +y +a +a +a +V +a +a +T +"} +(8,1,1) = {" +T +T +T +T +T +T +T +T +"} diff --git a/mods/content/fantasy/dungeon/dungeon_smithy.dmm b/mods/content/fantasy/dungeon/dungeon_smithy.dmm new file mode 100644 index 00000000000..291a50bc5e4 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_smithy.dmm @@ -0,0 +1,174 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"d" = ( +/obj/structure/table/wood/ebony, +/obj/item/tool/hammer, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"f" = ( +/obj/structure/table/wood/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/ingot/mapped/tin/twenty, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"i" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"k" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/ingot/mapped/copper/twenty, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"l" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"n" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"p" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"s" = ( +/turf/floor/path/basalt, +/area/template_noop) +"v" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"z" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/ingot/mapped/silver/ten, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"F" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"G" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/ingot/mapped/iron/twentyfive, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"H" = ( +/obj/structure/wall_sconce{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"K" = ( +/obj/structure/table/wood/ebony, +/obj/item/bladed/knife, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"R" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"T" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/basalt, +/area/template_noop) +"U" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/ingot/mapped/gold/ten, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"X" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/ingot/mapped/bronze/twenty, +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +v +v +a +v +v +v +v +v +"} +(2,1,1) = {" +v +G +p +p +F +p +d +v +"} +(3,1,1) = {" +v +z +i +i +n +i +f +v +"} +(4,1,1) = {" +v +U +i +s +s +i +R +v +"} +(5,1,1) = {" +v +k +i +T +s +i +l +v +"} +(6,1,1) = {" +v +X +i +i +i +i +d +v +"} +(7,1,1) = {" +v +h +p +H +p +p +K +v +"} +(8,1,1) = {" +v +v +v +v +v +a +v +v +"} diff --git a/mods/content/fantasy/dungeon/dungeon_spider_nest.dmm b/mods/content/fantasy/dungeon/dungeon_spider_nest.dmm new file mode 100644 index 00000000000..6e008792fd3 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_spider_nest.dmm @@ -0,0 +1,196 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/natural/dirt, +/area/template_noop) +"d" = ( +/turf/floor/mud/water, +/area/template_noop) +"r" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"y" = ( +/turf/floor/mud/water/deep, +/area/template_noop) +"A" = ( +/obj/item/remains/human, +/turf/floor/mud, +/area/template_noop) +"E" = ( +/obj/random/hostile/cave, +/turf/floor/mud, +/area/template_noop) +"W" = ( +/turf/floor/mud, +/area/template_noop) +"Y" = ( +/turf/floor/dirt, +/area/template_noop) + +(1,1,1) = {" +r +r +r +a +a +a +Y +a +a +r +r +a +"} +(2,1,1) = {" +r +a +a +Y +a +a +a +a +a +W +a +a +"} +(3,1,1) = {" +a +a +Y +Y +Y +W +a +W +a +a +a +a +"} +(4,1,1) = {" +a +a +a +Y +E +W +A +W +W +a +a +a +"} +(5,1,1) = {" +a +a +Y +Y +W +d +d +W +W +a +a +a +"} +(6,1,1) = {" +a +a +Y +W +d +d +d +d +W +Y +a +a +"} +(7,1,1) = {" +a +a +Y +W +d +y +d +d +E +Y +a +a +"} +(8,1,1) = {" +a +a +Y +W +d +d +d +d +d +W +a +a +"} +(9,1,1) = {" +a +a +a +W +E +d +d +d +d +W +a +a +"} +(10,1,1) = {" +r +a +a +a +Y +Y +W +d +W +W +a +a +"} +(11,1,1) = {" +r +a +a +a +a +a +Y +W +W +a +a +r +"} +(12,1,1) = {" +r +r +r +a +a +a +a +r +r +r +r +r +"} diff --git a/mods/content/fantasy/dungeon/dungeon_surgery.dmm b/mods/content/fantasy/dungeon/dungeon_surgery.dmm new file mode 100644 index 00000000000..c16b7da45e5 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_surgery.dmm @@ -0,0 +1,198 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"b" = ( +/obj/item/stack/material/plank/mapped/ebony/five, +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/medical/bandage/crafted/five, +/obj/item/stack/medical/bandage/crafted/five, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"e" = ( +/obj/structure/table/wood/reinforced/ebony/walnut, +/obj/item/remains/human, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/obj/item/stack/material/plank/mapped/ebony/five, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"n" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"x" = ( +/obj/structure/table/wood/reinforced/ebony/walnut, +/obj/item/ancient_surgery/forceps, +/obj/item/ancient_surgery/retractor, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"A" = ( +/obj/structure/table/wood/reinforced/ebony/walnut, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"B" = ( +/obj/item/stack/material/bolt/mapped/cloth/five, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"G" = ( +/obj/structure/table/wood/reinforced/ebony/walnut, +/obj/item/ancient_surgery/bonesaw, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"J" = ( +/turf/wall/natural/dirt, +/area/template_noop) +"M" = ( +/obj/structure/table/wood/reinforced/ebony/walnut, +/obj/item/ancient_surgery/cautery, +/obj/item/ancient_surgery/scalpel, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"O" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Q" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/obj/structure/table/wood/reinforced/ebony/walnut, +/obj/item/ancient_surgery/bonesetter, +/obj/item/ancient_surgery/sutures, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"V" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/medical/ointment/crafted/five, +/obj/item/stack/medical/ointment/crafted/five, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Y" = ( +/obj/structure/wall_sconce{ + dir = 1; + pixel_y = 10 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +J +J +J +a +"} +(2,1,1) = {" +a +G +Q +M +x +J +J +J +"} +(3,1,1) = {" +a +O +O +O +O +O +J +a +"} +(4,1,1) = {" +a +Y +A +O +V +O +J +J +"} +(5,1,1) = {" +a +O +e +O +b +O +J +J +"} +(6,1,1) = {" +n +O +O +O +B +J +J +a +"} +(7,1,1) = {" +n +O +O +O +h +O +J +J +"} +(8,1,1) = {" +a +O +J +O +O +J +J +J +"} +(9,1,1) = {" +a +J +J +J +J +J +J +J +"} +(10,1,1) = {" +a +J +J +J +J +J +J +a +"} +(11,1,1) = {" +a +J +J +J +J +J +J +J +"} +(12,1,1) = {" +a +a +a +a +a +J +J +J +"} diff --git a/mods/content/fantasy/dungeon/dungeon_term_e.dmm b/mods/content/fantasy/dungeon/dungeon_term_e.dmm new file mode 100644 index 00000000000..b7c0d6e3bf6 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_term_e.dmm @@ -0,0 +1,32 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"Z" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +Z +Z +a +"} +(2,1,1) = {" +a +Z +Z +a +"} +(3,1,1) = {" +a +Z +Z +a +"} +(4,1,1) = {" +a +a +a +a +"} diff --git a/mods/content/fantasy/dungeon/dungeon_term_n.dmm b/mods/content/fantasy/dungeon/dungeon_term_n.dmm new file mode 100644 index 00000000000..b23843ebf3e --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_term_n.dmm @@ -0,0 +1,32 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"Z" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +"} +(2,1,1) = {" +a +Z +Z +Z +"} +(3,1,1) = {" +a +Z +Z +Z +"} +(4,1,1) = {" +a +a +a +a +"} diff --git a/mods/content/fantasy/dungeon/dungeon_term_s.dmm b/mods/content/fantasy/dungeon/dungeon_term_s.dmm new file mode 100644 index 00000000000..cea11c1fb71 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_term_s.dmm @@ -0,0 +1,32 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"Z" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +"} +(2,1,1) = {" +Z +Z +Z +a +"} +(3,1,1) = {" +Z +Z +Z +a +"} +(4,1,1) = {" +a +a +a +a +"} diff --git a/mods/content/fantasy/dungeon/dungeon_term_w.dmm b/mods/content/fantasy/dungeon/dungeon_term_w.dmm new file mode 100644 index 00000000000..900a5b443a2 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_term_w.dmm @@ -0,0 +1,32 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"W" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +"} +(2,1,1) = {" +a +W +W +a +"} +(3,1,1) = {" +a +W +W +a +"} +(4,1,1) = {" +a +W +W +a +"} diff --git a/mods/content/fantasy/dungeon/dungeon_vertical_aqueduct.dmm b/mods/content/fantasy/dungeon/dungeon_vertical_aqueduct.dmm new file mode 100644 index 00000000000..942f11ef75b --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_vertical_aqueduct.dmm @@ -0,0 +1,55 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/mob/living/simple_animal/aquatic/fish/grump, +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"l" = ( +/turf/floor/path/basalt/water/deep, +/area/template_noop) +"t" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"u" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +u +u +u +u +u +u +u +u +"} +(2,1,1) = {" +t +t +t +t +t +t +t +t +"} +(3,1,1) = {" +l +l +l +a +l +l +l +l +"} +(4,1,1) = {" +u +u +u +u +u +u +u +u +"} diff --git a/mods/content/fantasy/dungeon/dungeon_vertical_hallway.dmm b/mods/content/fantasy/dungeon/dungeon_vertical_hallway.dmm new file mode 100644 index 00000000000..656514d2332 --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_vertical_hallway.dmm @@ -0,0 +1,54 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/decoration/gargoyle/plinth{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"b" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"h" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +h +h +h +h +h +h +h +h +"} +(2,1,1) = {" +b +a +b +h +b +a +b +b +"} +(3,1,1) = {" +b +b +b +b +b +b +b +b +"} +(4,1,1) = {" +h +h +h +h +h +h +h +h +"} diff --git a/mods/content/fantasy/dungeon/dungeon_workshop.dmm b/mods/content/fantasy/dungeon/dungeon_workshop.dmm new file mode 100644 index 00000000000..6abade5f49e --- /dev/null +++ b/mods/content/fantasy/dungeon/dungeon_workshop.dmm @@ -0,0 +1,197 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/closet/crate/chest/ebony, +/obj/item/stack/material/bolt/mapped/cloth/fifty, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"c" = ( +/obj/random/hostile/dungeon, +/turf/floor/path/basalt, +/area/template_noop) +"l" = ( +/obj/structure/table/wood/ebony, +/obj/item/stack/material/thread/mapped/dried_gut/thirty, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"m" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"n" = ( +/obj/structure/chair/bench/ebony{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"p" = ( +/obj/structure/table/wood/ebony, +/obj/item/stack/material/thread/mapped/cotton/thirty, +/obj/item/bladed/knife, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"r" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"t" = ( +/obj/structure/door/ebony, +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"y" = ( +/obj/item/stack/material/bolt/mapped/cloth/fifty, +/obj/structure/closet/crate/chest/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"E" = ( +/turf/floor/path/basalt, +/area/template_noop) +"F" = ( +/obj/structure/chair/bench/ebony{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"J" = ( +/obj/structure/wall_sconce{ + dir = 4 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"K" = ( +/obj/item/stack/material/bone/mapped/bone/twentyfive, +/obj/structure/closet/crate/chest/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"R" = ( +/obj/item/stack/material/skin/mapped/leather/twentyfive, +/obj/structure/closet/crate/chest/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"T" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"W" = ( +/obj/structure/wall_sconce{ + dir = 8 + }, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Y" = ( +/obj/structure/working/spinning_wheel/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"Z" = ( +/obj/structure/working/loom/ebony, +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +T +T +T +T +T +t +t +T +T +T +T +T +"} +(2,1,1) = {" +T +a +r +r +r +r +r +r +W +r +p +T +"} +(3,1,1) = {" +T +y +m +m +m +m +m +m +m +m +Z +T +"} +(4,1,1) = {" +T +K +m +E +E +E +c +E +E +m +F +T +"} +(5,1,1) = {" +T +K +m +E +E +E +E +E +E +m +n +T +"} +(6,1,1) = {" +T +R +m +m +m +m +m +m +m +m +Y +T +"} +(7,1,1) = {" +T +R +r +r +J +r +r +r +r +J +l +T +"} +(8,1,1) = {" +T +T +T +T +T +t +t +T +T +T +T +T +"} diff --git a/nebula.dme b/nebula.dme index 68161da9a70..d05d099a4f9 100644 --- a/nebula.dme +++ b/nebula.dme @@ -3288,6 +3288,18 @@ #include "code\modules\modular_computers\terminal\terminal_commands.dm" #include "code\modules\modular_computers\terminal\terminal_remote.dm" #include "code\modules\modular_computers\terminal\terminal_skill_fail.dm" +#include "code\modules\modular_map\__map_setup.dm" +#include "code\modules\modular_map\_map_generator.dm" +#include "code\modules\modular_map\map_cell.dm" +#include "code\modules\modular_map\map_connection.dm" +#include "code\modules\modular_map\map_debug_holder.dm" +#include "code\modules\modular_map\map_encounter.dm" +#include "code\modules\modular_map\map_encounter_template.dm" +#include "code\modules\modular_map\map_node.dm" +#include "code\modules\modular_map\map_path.dm" +#include "code\modules\modular_map\map_run.dm" +#include "code\modules\modular_map\map_template.dm" +#include "code\modules\modular_map\map_verbs.dm" #include "code\modules\multiz\basic.dm" #include "code\modules\multiz\hoist.dm" #include "code\modules\multiz\ladder.dm" @@ -4112,6 +4124,8 @@ #include "maps\exodus\exodus_define.dm" #include "maps\ministation\ministation_define.dm" #include "maps\modpack_testing\modpack_testing_define.dm" +#include "maps\modular_maps\aqueduct\_aqueduct.dm" +#include "maps\modular_maps\debug\_debug.dm" #include "maps\planets_testing\planets_testing_define.dm" #include "maps\random_ruins\exoplanet_ruins\crashed_pod\crashed_pod.dm" #include "maps\random_ruins\exoplanet_ruins\datacapsule\datacapsule.dm" @@ -4128,8 +4142,8 @@ #include "maps\random_ruins\exoplanet_ruins\spider_nest\spider_nest.dm" #include "maps\random_ruins\exoplanet_ruins\tar_anomaly\tar_anomaly.dm" #include "maps\random_ruins\space_ruins\space_ruins.dm" +#include "maps\shaded_hills\shaded_hills.dm" #include "maps\shaded_hills\shaded_hills_define.dm" -#include "maps\tradeship\tradeship.dm" #include "maps\tradeship\tradeship_define.dm" #include "maps\~mapsystem\map_preferences.dm" #include "maps\~mapsystem\map_ranks.dm" From 915e02a2243da2fe3a87cbc043e28e04857298c6 Mon Sep 17 00:00:00 2001 From: mistakenot4892 Date: Mon, 3 Nov 2025 22:13:55 +1100 Subject: [PATCH 2/4] Working commit for cell placement logic. --- code/modules/modular_map/map_cell.dm | 27 ++++++++----------- code/modules/modular_map/map_connection.dm | 2 ++ code/modules/modular_map/map_run.dm | 18 +++++-------- code/modules/modular_map/map_template.dm | 2 +- maps/modular_maps/aqueduct/_aqueduct.dm | 30 +++++++++++----------- 5 files changed, 35 insertions(+), 44 deletions(-) diff --git a/code/modules/modular_map/map_cell.dm b/code/modules/modular_map/map_cell.dm index 58cda0e6baa..764e87dea99 100644 --- a/code/modules/modular_map/map_cell.dm +++ b/code/modules/modular_map/map_cell.dm @@ -2,6 +2,8 @@ /datum/mm_cell var/cell_x var/cell_y + var/offset_x + var/offset_y var/datum/mm_cell/owner var/datum/map_template/modular/template var/generation @@ -9,6 +11,7 @@ var/marked_for_refresh VAR_PRIVATE/list/_open_connections + VAR_PRIVATE/list/_all_connections /datum/mm_cell/Destroy() LAZYCLEARLIST(_open_connections) @@ -18,27 +21,16 @@ /datum/mm_cell/New(datum/mm_run/_run, _x, _y, _template, datum/mm_cell/_owner, _generation, _ox, _oy) cell_x = _x cell_y = _y + offset_x = _ox + offset_y = _oy template = _template generation = _generation owner = _owner // Initially assume all non-internal connections are freed; cell placement logic will close connections that are blocked by our placement. - // Note for future self that dummy connections do need to be considered open/closed in order to avoid unterminated rooms being - // placed such that they 'connect' to blank walls. - // Realising after writing this that it might be totally unnecessary as templates already don't generate internal connections. Ough. - var/ox = _x - _ox - var/oy = _y - _oy - var/mx = ox + (template.cell_width-1) - var/my = oy + (template.cell_height-1) for(var/datum/mm_connection/connection in template.cell_connections) - if(connection.offset_x != _ox || connection.offset_y != _oy) - continue - var/tx = _x + connection.target_x - var/ty = _y + connection.target_y - if(tx < 0 || tx > _run.g_mx || ty < 0 || ty > _run.g_my) - continue - if((tx >= ox && tx < mx && ty >= oy && ty < my)) - continue - open_connection(connection) + if(connection.offset_x == _ox && connection.offset_y == _oy) + LAZYDISTINCTADD(_all_connections, connection) + open_connection(connection) /datum/mm_cell/proc/get_open_connections(exclude_flags) if(isnull(exclude_flags)) @@ -52,4 +44,5 @@ LAZYREMOVE(_open_connections, connection) /datum/mm_cell/proc/open_connection(connection) - LAZYDISTINCTADD(_open_connections, connection) + if(connection in _all_connections) + LAZYDISTINCTADD(_open_connections, connection) diff --git a/code/modules/modular_map/map_connection.dm b/code/modules/modular_map/map_connection.dm index 7a4ce75cc8a..5ecab30c099 100644 --- a/code/modules/modular_map/map_connection.dm +++ b/code/modules/modular_map/map_connection.dm @@ -60,3 +60,5 @@ target_x = -1 connection_flags = _connect + +/datum/mm_connection/closed // just making a stub type for ease of debugging diff --git a/code/modules/modular_map/map_run.dm b/code/modules/modular_map/map_run.dm index 32a88bee009..ab4593073f8 100644 --- a/code/modules/modular_map/map_run.dm +++ b/code/modules/modular_map/map_run.dm @@ -93,12 +93,12 @@ if(!islist(templates)) continue // Randomise template order to avoid always placing a northeast corner or whatever. - templates = templates.Copy() + templates = shuffle(templates) for(var/datum/map_template/modular/template in templates) if(template.is_terminator) terminators += template templates -= terminators - connection = attempt_place_templates(shuffle(templates), connection, cell, node, permit_dangling_connections, permit_cycles) + connection = attempt_place_templates(templates, connection, cell, node, permit_dangling_connections, permit_cycles) if(!connection) break CHECK_TICK @@ -114,6 +114,10 @@ /datum/mm_run/proc/attempt_place_templates(list/templates, datum/mm_connection/connection, datum/mm_cell/cell, datum/mm_node/node, permit_dangling_connections, permit_cycles) + // The cell is the origin point of the cell, so don't add offset. + var/connection_x = (cell.cell_x + connection.target_x) + var/connection_y = (cell.cell_y + connection.target_y) + var/sanity = LOOP_SANITY while(length(templates) && sanity) @@ -136,27 +140,19 @@ continue possible_connections = shuffle(possible_connections) - var/connection_x = (cell.cell_x + connection.target_x) - var/connection_y = (cell.cell_y + connection.target_y) for(var/datum/mm_connection/possible_connection in possible_connections) // Get base template origin coords, then adjust for template size. var/place_x = connection_x var/place_y = connection_y // Note to future self: cell width/height are absolute, not an offset, hence -1. switch(connection.direction_string) - if("NORTH") - place_x -= possible_connection.offset_x if("SOUTH") - place_x -= possible_connection.offset_x place_y -= (template.cell_height-1) - if("EAST") - place_y -= possible_connection.offset_y if("WEST") place_x -= (template.cell_width-1) - place_y -= possible_connection.offset_y // Immediately out of bounds, no thank you. - if(place_x < 1 || place_y < 1) + if(place_x < 0 || place_y < 0) continue CHECK_TICK diff --git a/code/modules/modular_map/map_template.dm b/code/modules/modular_map/map_template.dm index 034c44ea06b..29387d3145d 100644 --- a/code/modules/modular_map/map_template.dm +++ b/code/modules/modular_map/map_template.dm @@ -59,6 +59,6 @@ for(var/connection_dir in connection_dirs) if(connection_dir in existing_coords[coord]) continue - var/datum/mm_connection/new_conn = new(connection_dir, x, y, (MCF_BLOCKER)) + var/datum/mm_connection/closed/new_conn = new(connection_dir, x, y, (MCF_BLOCKER)) new_conn.template = src cell_connections += new_conn diff --git a/maps/modular_maps/aqueduct/_aqueduct.dm b/maps/modular_maps/aqueduct/_aqueduct.dm index b68202f20ee..dca3a8e8bc2 100644 --- a/maps/modular_maps/aqueduct/_aqueduct.dm +++ b/maps/modular_maps/aqueduct/_aqueduct.dm @@ -46,9 +46,9 @@ /datum/map_template/modular/aqueduct/bridge/horizontal_n, /datum/map_template/modular/aqueduct/bridge/horizontal_s ) - post_run_generators = list( - /datum/random_map/noise/aqueducts - ) +// post_run_generators = list( +// /datum/random_map/noise/aqueducts +// ) /datum/random_map/noise/aqueducts descriptor = "aqueducts (modular map)" @@ -78,10 +78,10 @@ /datum/map_template/modular/aqueduct/junction/New() cell_connections = list( - new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), - new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), - new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), - new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), ) ..() @@ -92,8 +92,8 @@ /datum/map_template/modular/aqueduct/ne/New() cell_connections = list( - new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), - new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), ) ..() @@ -104,8 +104,8 @@ /datum/map_template/modular/aqueduct/nw/New() cell_connections = list( - new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), - new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("NORTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), ) ..() @@ -116,8 +116,8 @@ /datum/map_template/modular/aqueduct/se/New() cell_connections = list( - new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), - new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), + new /datum/mm_connection("EAST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), ) ..() @@ -128,8 +128,8 @@ /datum/map_template/modular/aqueduct/sw/New() cell_connections = list( - new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), - new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM)), + new /datum/mm_connection("SOUTH", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), + new /datum/mm_connection("WEST", 0, 0, (MCF_HALL | MCF_BRIDGE | MCF_ROOM | MCF_HALL_BEND)), ) ..() From b41b950812240ea9c8f19ce155ee73a83aed535a Mon Sep 17 00:00:00 2001 From: mistakenot4892 Date: Tue, 4 Nov 2025 14:09:43 +1100 Subject: [PATCH 3/4] Debug commit for mapgen. --- code/modules/modular_map/_map_generator.dm | 5 +- code/modules/modular_map/map_cell.dm | 2 + code/modules/modular_map/map_path.dm | 7 +- code/modules/modular_map/map_run.dm | 199 +++++++++++++-------- code/modules/modular_map/map_template.dm | 12 +- maps/modular_maps/aqueduct/_aqueduct.dm | 1 + 6 files changed, 141 insertions(+), 85 deletions(-) diff --git a/code/modules/modular_map/_map_generator.dm b/code/modules/modular_map/_map_generator.dm index 6b71479bc4b..435d08f8e2b 100644 --- a/code/modules/modular_map/_map_generator.dm +++ b/code/modules/modular_map/_map_generator.dm @@ -31,16 +31,17 @@ /// Vertical gutter for placement on the actual map. var/border_y = 8 // Whether or not the final grid can have trailing connections. - var/do_trim_trailing_connections = FALSE + var/do_trim_trailing_connections = TRUE // Number of cells with trailing connections after which to apply the trim multiplier. var/trailing_connection_trim_threshold = 1 // 50 // Amount of cells with trailing connections to prune each run. var/trailing_connection_trim_multiplier = 1 // 0.65 - /// Maps without at least one path of this length or more will fail to validate. var/min_path_length = 0 //50 /// Assoc list of template type to cell coordinate to place instead of a random initial template var/list/mandatory_templates + /// How many isolated paths can the final map have? + var/maximum_paths = 1 /decl/modular_map_generator/proc/validate_template(template_type, datum/map_template/modular/template) if(!istype(template)) diff --git a/code/modules/modular_map/map_cell.dm b/code/modules/modular_map/map_cell.dm index 764e87dea99..8f12392431f 100644 --- a/code/modules/modular_map/map_cell.dm +++ b/code/modules/modular_map/map_cell.dm @@ -4,6 +4,7 @@ var/cell_y var/offset_x var/offset_y + var/datum/mm_path/path var/datum/mm_cell/owner var/datum/map_template/modular/template var/generation @@ -16,6 +17,7 @@ /datum/mm_cell/Destroy() LAZYCLEARLIST(_open_connections) template = null + path = null return ..() /datum/mm_cell/New(datum/mm_run/_run, _x, _y, _template, datum/mm_cell/_owner, _generation, _ox, _oy) diff --git a/code/modules/modular_map/map_path.dm b/code/modules/modular_map/map_path.dm index 86e1023f44b..3f31f26aa70 100644 --- a/code/modules/modular_map/map_path.dm +++ b/code/modules/modular_map/map_path.dm @@ -1,9 +1,14 @@ // A connected sequence of cells (a route through the dungeon) /datum/mm_path var/list/cells + var/has_origin -/datum/mm_path/New(list/_cells) +/datum/mm_path/New(list/_cells, _origin_templates) cells = _cells + for(var/datum/mm_cell/cell in cells) + if(cell.template in _origin_templates) + has_origin = TRUE + cell.path = src ..() /datum/mm_path/Destroy(force) diff --git a/code/modules/modular_map/map_run.dm b/code/modules/modular_map/map_run.dm index ab4593073f8..7bace6e0522 100644 --- a/code/modules/modular_map/map_run.dm +++ b/code/modules/modular_map/map_run.dm @@ -41,7 +41,7 @@ log_debug("Starting with [length(_nodes)] node\s and bounds [g_mx],[g_my] on z[g_pz].") // Main meat of the generator is in this proc. try - build_from_nodes(permit_cycles = TRUE) // TODO: FALSE + build_from_nodes(permit_cycles = FALSE) log_debug("Initial run finished with [length(_nodes)] pending node\s, [get_dangling_connection_count(ignore_origin_cells = FALSE)] dangling connection\s, and [get_grid_count()] occupied cells.") catch(var/exception/E) log_error("Exception during modular map run: [EXCEPTION_TEXT(E)]") @@ -56,7 +56,7 @@ trim_dangling_connections(++sanity) if(sanity > MAX_TRAILING_PASS) log_debug("Failed to generate [generator.name] in [(world.time - gen_started)/10] second\s: exceeded trailing connection pruning max pass.") - return FALSE + //return FALSE var/list/paths = resolve_isolated_paths() var/failure_reason = validate_run(paths) @@ -70,47 +70,60 @@ /datum/mm_run/proc/build_from_nodes(permit_dangling_connections = TRUE, permit_cycles = TRUE) var/sanity = LOOP_SANITY - while(length(_nodes) && sanity) + while(length(_nodes)) + + var/list/nodes_to_iterate = list() + var/node_gen = null + var/node_index = 1 + + while(node_index <= length(_nodes)) + var/datum/mm_node/node = _nodes[node_index++] + if(isnull(node_gen) || node.generation == node_gen) + nodes_to_iterate += node + _nodes -= node + else + break - // TODO: consider iterating all nodes of the highest gen as a group before moving on to the next highest. - // Pick one of our remaining connections. - var/datum/mm_node/node = _nodes[1] - var/datum/mm_connection/connection = node.connection - var/datum/mm_cell/cell = node.cell - _nodes.Cut(1, 2) + while(length(nodes_to_iterate) && sanity) + // Pick one of our remaining connections. + var/datum/mm_node/node = nodes_to_iterate[1] + var/datum/mm_connection/connection = node.connection + var/datum/mm_cell/cell = node.cell + nodes_to_iterate.Cut(1, 2) - // We do not apply terminators on the first run. - var/list/terminators = list() - // Try to find a template that we can connect to this spot. - for(var/connection_flag in shuffle(global._mcf_flags)) - // Flag not present in this connection's flags. - if(!(connection.connection_flags & connection_flag)) - continue - // Determine the bottom-left corner of the space needed to fit this template from this connection. - var/list/templates = generator.templates_by_category[num2text(connection_flag)] - if(!islist(templates)) - continue - // Randomise template order to avoid always placing a northeast corner or whatever. - templates = shuffle(templates) - for(var/datum/map_template/modular/template in templates) - if(template.is_terminator) - terminators += template - templates -= terminators - connection = attempt_place_templates(templates, connection, cell, node, permit_dangling_connections, permit_cycles) - if(!connection) - break - CHECK_TICK - - // Connection is not null and we have terminators, so try to place one of those. - if(connection && length(terminators)) - connection = attempt_place_templates(shuffle(terminators), connection, cell, node, permit_dangling_connections, permit_cycles) - sanity-- + // We do not apply terminators on the first run. + var/list/terminators = list() - if(!QDELETED(node)) - qdel(node) - CHECK_TICK + // Try to find a template that we can connect to this spot. + for(var/connection_flag in shuffle(global._mcf_flags)) + // Flag not present in this connection's flags. + if(!(connection.connection_flags & connection_flag)) + continue + // Determine the bottom-left corner of the space needed to fit this template from this connection. + var/list/templates = generator.templates_by_category[num2text(connection_flag)] + if(!islist(templates)) + continue + // Randomise template order to avoid always placing a northeast corner or whatever. + templates = shuffle(templates) + for(var/datum/map_template/modular/template in templates) + if(template.is_terminator) + terminators += template + templates -= terminators + connection = attempt_place_templates(templates, connection, cell, node, permit_dangling_connections, permit_cycles) + if(!connection) + break + CHECK_TICK + + // Connection is not null and we have terminators, so try to place one of those. + if(connection && length(terminators)) + connection = attempt_place_templates(shuffle(terminators), connection, cell, node, permit_dangling_connections, permit_cycles) + sanity-- + + if(!QDELETED(node)) + qdel(node) + CHECK_TICK /datum/mm_run/proc/attempt_place_templates(list/templates, datum/mm_connection/connection, datum/mm_cell/cell, datum/mm_node/node, permit_dangling_connections, permit_cycles) @@ -206,16 +219,16 @@ var/dummy_connection = !!(connection.connection_flags & MCF_BLOCKER) // Can't leave a dangling connection facing the void. - if(!dummy_connection && (target_x < 0 || target_y < 0 || target_x >= g_mx || target_y >= g_my)) + if(!dummy_connection && (target_x < 0 || target_y < 0 || target_x > g_mx || target_y > g_my)) return null // Connection target is outside of map bounds - this room cannot be placed here if we want our map to be complete. - var/target_coord = TRANSLATE_MODMAP_COORD(target_x, target_y, g_mx) - if(target_coord <= 0 || target_coord > length(_grid)) + var/target_index = TRANSLATE_MODMAP_COORD(target_x, target_y, g_mx) + if(target_index <= 0 || target_index > length(_grid)) return null // What is in the cell we're targeting? - var/datum/mm_cell/target_cell = _grid[target_coord] + var/datum/mm_cell/target_cell = _grid[target_index] // DEBUG: banning cells that cause cycles. if(!permit_cycles && !dummy_connection && !isnull(target_cell) && target_cell != origin) @@ -360,10 +373,13 @@ return log_debug("Rebuilding [length(_nodes)] node\s...") - build_from_nodes(permit_dangling_connections = TRUE) + build_from_nodes(permit_dangling_connections = FALSE) /datum/mm_run/proc/clear_cell(datum/mm_cell/cell) + if(!istype(cell) || QDELETED(cell)) + return + // If this is a filler cell, remove the entire chunk. if(cell.owner) return clear_cell(cell.owner) @@ -435,6 +451,9 @@ for(var/datum/mm_cell/cell in _grid) ungrouped_cells += cell + var/last_longest_path = 0 + var/datum/mm_path/longest_path + // Identify connected paths. var/list/grouped_cells = list() while(length(ungrouped_cells)) @@ -475,20 +494,34 @@ if(istype(neighbor) && !(neighbor in grouped_cells)) potential_cells |= neighbor - LAZYADD(., new /datum/mm_path(connected_cells)) + var/datum/mm_path/path = new(connected_cells, generator.mandatory_templates) + LAZYADD(., path) + if(length(connected_cells) > last_longest_path) + longest_path = path + last_longest_path = length(connected_cells) + + for(var/datum/mm_path/path in .) + if(path.has_origin || path == longest_path) + continue + for(var/datum/mm_cell/cell in path.cells) + clear_cell(cell) + LAZYREMOVE(., path) + qdel(path) // Returns a string indicating the reason for failing validation. -/datum/mm_run/proc/validate_run(list/paths) - if(generator.do_trim_trailing_connections && get_dangling_connection_count(TRUE)) +/datum/mm_run/proc/validate_run(list/_paths) + if(generator.do_trim_trailing_connections && get_dangling_connection_count()) return "Map has dangling connections after cleanup passes." if(generator.min_path_length > 0) var/has_long_path = FALSE - for(var/datum/mm_path/path in paths) + for(var/datum/mm_path/path in _paths) if(length(path.cells) >= generator.min_path_length) has_long_path = TRUE break if(!has_long_path) return "Map has no path of sufficient length ([generator.min_path_length] cell\s)" + if(length(_paths) > generator.maximum_paths) + return "Map has [length(_paths)]/[generator.maximum_paths] path\s.)" return null /datum/mm_run/proc/finalize_run() @@ -518,33 +551,53 @@ load_operations = list() var/g_cs = generator.grid_cell_size var/list/debug_targets = list() - for(var/datum/mm_cell/cell in _grid) - if(!cell.template) - continue - var/turf/cell_origin = locate( - generator.border_x + (cell.cell_x * g_cs), - generator.border_y + (cell.cell_y * g_cs), - g_pz - ) - - if(istype(cell_origin)) - if(!cell.owner) // Don't try to load filler cells. - load_operations[cell_origin] = cell.template - if(generator.place_debug_markers) - var/turf/debug_turf = locate( - cell_origin.x + (g_cs / 2), - cell_origin.y + (g_cs / 2), - g_pz - ) - if(istype(debug_turf) && !(debug_turf in debug_targets)) - var/obj/map_debug_holder/marker = new(null, cell) - marker.maptext = "
[cell.cell_x],[cell.cell_y] - #[cell.generation]
" - if(cell.marked_for_refresh) - marker.icon_state = "x2" - else if(cell.marked_for_cleanup) - marker.icon_state = "x3" - debug_targets[debug_turf] = marker + for(var/gx = 0 to g_mx) + for(var/gy = 0 to g_my) + + var/index = TRANSLATE_MODMAP_COORD(gx, gy, g_mx) + if(index < 1 || index > length(_grid) || !istype(_grid[index], /datum/mm_cell)) + + if(generator.place_debug_markers) + var/turf/debug_turf = locate( + generator.border_x + (gx * g_cs) + (g_cs / 2), + generator.border_y + (gy * g_cs) + (g_cs / 2), + g_pz + ) + if(istype(debug_turf) && !(debug_turf in debug_targets)) + var/obj/map_debug_holder/marker = new + marker.maptext = "
[gx],[gy] - no cell
" + marker.color = COLOR_PURPLE + + continue + + var/datum/mm_cell/cell = _grid[index] + if(!istype(cell) || !cell.template) + continue + + var/turf/cell_origin = locate( + generator.border_x + (cell.cell_x * g_cs), + generator.border_y + (cell.cell_y * g_cs), + g_pz + ) + + if(istype(cell_origin)) + if(!cell.owner) // Don't try to load filler cells. + load_operations[cell_origin] = cell.template + if(generator.place_debug_markers) + var/turf/debug_turf = locate( + cell_origin.x + (g_cs / 2), + cell_origin.y + (g_cs / 2), + g_pz + ) + if(istype(debug_turf) && !(debug_turf in debug_targets)) + var/obj/map_debug_holder/marker = new(null, cell) + marker.maptext = "
[cell.cell_x],[cell.cell_y] - #[cell.generation]
" + if(cell.marked_for_refresh) + marker.icon_state = "x2" + else if(cell.marked_for_cleanup) + marker.icon_state = "x3" + debug_targets[debug_turf] = marker CHECK_TICK diff --git a/code/modules/modular_map/map_template.dm b/code/modules/modular_map/map_template.dm index 29387d3145d..19ad2e95bfe 100644 --- a/code/modules/modular_map/map_template.dm +++ b/code/modules/modular_map/map_template.dm @@ -18,11 +18,7 @@ ..() - var/conn_count = 0 - for(var/datum/mm_connection/connection in cell_connections) - if(!(connection.connection_flags & (MCF_BLOCKER))) - conn_count++ - is_terminator = conn_count <= 1 + is_terminator = length(cell_connections) <= 1 var/list/existing_coords = list() for(var/datum/mm_connection/connection in cell_connections) @@ -37,12 +33,9 @@ var/z = cell_height-1 for(var/x = 0 to w) - if(x != 0 && x != w) - continue - for(var/y = 0 to z) - if(y != 0 && y != z) + if(y != 0 && y != z && x != 0 && x != w) continue var/list/connection_dirs = list() @@ -59,6 +52,7 @@ for(var/connection_dir in connection_dirs) if(connection_dir in existing_coords[coord]) continue + LAZYDISTINCTADD(existing_coords[coord], connection_dir) var/datum/mm_connection/closed/new_conn = new(connection_dir, x, y, (MCF_BLOCKER)) new_conn.template = src cell_connections += new_conn diff --git a/maps/modular_maps/aqueduct/_aqueduct.dm b/maps/modular_maps/aqueduct/_aqueduct.dm index dca3a8e8bc2..e5f0543bc3a 100644 --- a/maps/modular_maps/aqueduct/_aqueduct.dm +++ b/maps/modular_maps/aqueduct/_aqueduct.dm @@ -1,6 +1,7 @@ /decl/modular_map_generator/aqueduct name = "Aqueducts" grid_cell_size = 9 + maximum_paths = 2 cell_templates = list( /datum/map_template/modular/aqueduct/chamber/large, /datum/map_template/modular/aqueduct/chamber/small_n, From 4010bfe860d6c49bd754d2dd5eec738c7439ddab Mon Sep 17 00:00:00 2001 From: mistakenot4892 Date: Tue, 4 Nov 2025 16:19:18 +1100 Subject: [PATCH 4/4] Adding joiner templates for path welding. --- .../admin/verbs/map_template_loadverb.dm | 4 +- code/modules/modular_map/map_cell.dm | 8 +- code/modules/modular_map/map_run.dm | 9 +- code/modules/modular_map/map_template.dm | 6 + maps/modular_maps/aqueduct/_aqueduct.dm | 31 ++++- maps/modular_maps/aqueduct/joiner_e.dmm | 113 ++++++++++++++++++ maps/modular_maps/aqueduct/joiner_n.dmm | 113 ++++++++++++++++++ maps/modular_maps/aqueduct/joiner_s.dmm | 113 ++++++++++++++++++ maps/modular_maps/aqueduct/joiner_w.dmm | 113 ++++++++++++++++++ 9 files changed, 498 insertions(+), 12 deletions(-) create mode 100644 maps/modular_maps/aqueduct/joiner_e.dmm create mode 100644 maps/modular_maps/aqueduct/joiner_n.dmm create mode 100644 maps/modular_maps/aqueduct/joiner_s.dmm create mode 100644 maps/modular_maps/aqueduct/joiner_w.dmm diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm index d5e7e8a2b65..606ac3bedc7 100644 --- a/code/modules/admin/verbs/map_template_loadverb.dm +++ b/code/modules/admin/verbs/map_template_loadverb.dm @@ -5,8 +5,8 @@ if (!check_rights(R_FUN)) return - var/datum/map_template/map = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in SSmapping.spawnable_map_templates - if(!istype(map)) + var/datum/map_template/template = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in SSmapping.spawnable_map_templates + if(!istype(template)) return var/turf/T = get_turf(usr) diff --git a/code/modules/modular_map/map_cell.dm b/code/modules/modular_map/map_cell.dm index 8f12392431f..f5e24866c4f 100644 --- a/code/modules/modular_map/map_cell.dm +++ b/code/modules/modular_map/map_cell.dm @@ -10,9 +10,9 @@ var/generation var/marked_for_cleanup var/marked_for_refresh - + var/list/finalized_connections + var/list/all_connections VAR_PRIVATE/list/_open_connections - VAR_PRIVATE/list/_all_connections /datum/mm_cell/Destroy() LAZYCLEARLIST(_open_connections) @@ -31,7 +31,7 @@ // Initially assume all non-internal connections are freed; cell placement logic will close connections that are blocked by our placement. for(var/datum/mm_connection/connection in template.cell_connections) if(connection.offset_x == _ox && connection.offset_y == _oy) - LAZYDISTINCTADD(_all_connections, connection) + LAZYDISTINCTADD(all_connections, connection) open_connection(connection) /datum/mm_cell/proc/get_open_connections(exclude_flags) @@ -46,5 +46,5 @@ LAZYREMOVE(_open_connections, connection) /datum/mm_cell/proc/open_connection(connection) - if(connection in _all_connections) + if(connection in all_connections) LAZYDISTINCTADD(_open_connections, connection) diff --git a/code/modules/modular_map/map_run.dm b/code/modules/modular_map/map_run.dm index 7bace6e0522..5a6b5d618f7 100644 --- a/code/modules/modular_map/map_run.dm +++ b/code/modules/modular_map/map_run.dm @@ -482,7 +482,7 @@ potential_cells |= block_cell // Check our non-dummy connections for accessible cells. - for(var/datum/mm_connection/connection in check_cell.template.cell_connections) + for(var/datum/mm_connection/connection in check_cell.all_connections) // Ignore dummy connections. if(connection.connection_flags & MCF_BLOCKER) continue @@ -491,8 +491,11 @@ var/ni = TRANSLATE_MODMAP_COORD(nx, ny, g_mx) if(nx >= 0 && ny >= 0 && nx <= g_mx && ny <= g_my && ni > 0 && ni <= length(_grid)) var/datum/mm_cell/neighbor = _grid[ni] - if(istype(neighbor) && !(neighbor in grouped_cells)) - potential_cells |= neighbor + if(istype(neighbor)) + LAZYSET(check_cell.finalized_connections, connection.direction_string, neighbor) + LAZYSET(neighbor.finalized_connections, connection.reverse_direction_string, check_cell) + if(!(neighbor in grouped_cells)) + potential_cells |= neighbor var/datum/mm_path/path = new(connected_cells, generator.mandatory_templates) LAZYADD(., path) diff --git a/code/modules/modular_map/map_template.dm b/code/modules/modular_map/map_template.dm index 19ad2e95bfe..9f7cadbe32c 100644 --- a/code/modules/modular_map/map_template.dm +++ b/code/modules/modular_map/map_template.dm @@ -13,6 +13,12 @@ var/cell_height = 1 /// Whether or not this template caps off a path (has one or less non-dummy connections) var/is_terminator = FALSE + /// An associative list of subtemplates applied to weld paths together. + var/list/cell_joiners + +/datum/map_template/mm_path_joiner + abstract_type = /datum/map_template/mm_path_joiner + is_spawnable = FALSE // Do not bloat out the map placement list. /datum/map_template/modular/New() diff --git a/maps/modular_maps/aqueduct/_aqueduct.dm b/maps/modular_maps/aqueduct/_aqueduct.dm index e5f0543bc3a..7e26c69a808 100644 --- a/maps/modular_maps/aqueduct/_aqueduct.dm +++ b/maps/modular_maps/aqueduct/_aqueduct.dm @@ -47,9 +47,9 @@ /datum/map_template/modular/aqueduct/bridge/horizontal_n, /datum/map_template/modular/aqueduct/bridge/horizontal_s ) -// post_run_generators = list( -// /datum/random_map/noise/aqueducts -// ) + post_run_generators = list( + /datum/random_map/noise/aqueducts + ) /datum/random_map/noise/aqueducts descriptor = "aqueducts (modular map)" @@ -71,6 +71,12 @@ connection_flag = MCF_HALL cell_width = 1 cell_height = 1 + cell_joiners = list( + "NORTH" = /datum/map_template/mm_path_joiner/aqueduct/north, + "SOUTH" = /datum/map_template/mm_path_joiner/aqueduct/south, + "EAST" = /datum/map_template/mm_path_joiner/aqueduct/east, + "WEST" = /datum/map_template/mm_path_joiner/aqueduct/west + ) /datum/map_template/modular/aqueduct/junction name = "Aqueduct - Passage Junction" @@ -585,3 +591,22 @@ new /datum/mm_connection("EAST", 0, 0, (MCF_AQUEDUCT | MCF_BRIDGE)), ) ..() + +/datum/map_template/mm_path_joiner/aqueduct + abstract_type = /datum/map_template/mm_path_joiner/aqueduct + +/datum/map_template/mm_path_joiner/aqueduct/north + name = "Aqueduct - Joiner North" + mappaths = list("maps/modular_maps/aqueduct/joiner_n.dmm") + +/datum/map_template/mm_path_joiner/aqueduct/south + name = "Aqueduct - Joiner South" + mappaths = list("maps/modular_maps/aqueduct/joiner_s.dmm") + +/datum/map_template/mm_path_joiner/aqueduct/east + name = "Aqueduct - Joiner East" + mappaths = list("maps/modular_maps/aqueduct/joiner_e.dmm") + +/datum/map_template/mm_path_joiner/aqueduct/west + name = "Aqueduct - Joiner West" + mappaths = list("maps/modular_maps/aqueduct/joiner_w.dmm") diff --git a/maps/modular_maps/aqueduct/joiner_e.dmm b/maps/modular_maps/aqueduct/joiner_e.dmm new file mode 100644 index 00000000000..6ca264bc41a --- /dev/null +++ b/maps/modular_maps/aqueduct/joiner_e.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"j" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"B" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"Q" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +B +j +Q +j +B +a +a +"} +(2,1,1) = {" +a +B +B +j +Q +j +B +B +a +"} +(3,1,1) = {" +a +a +Q +Q +Q +Q +Q +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/joiner_n.dmm b/maps/modular_maps/aqueduct/joiner_n.dmm new file mode 100644 index 00000000000..537ff8bd2ae --- /dev/null +++ b/maps/modular_maps/aqueduct/joiner_n.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"H" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"N" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +H +a +a +a +a +a +a +a +"} +(3,1,1) = {" +H +H +d +a +a +a +a +a +a +"} +(4,1,1) = {" +N +N +d +a +a +a +a +a +a +"} +(5,1,1) = {" +d +d +d +a +a +a +a +a +a +"} +(6,1,1) = {" +N +N +d +a +a +a +a +a +a +"} +(7,1,1) = {" +H +H +d +a +a +a +a +a +a +"} +(8,1,1) = {" +a +H +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/joiner_s.dmm b/maps/modular_maps/aqueduct/joiner_s.dmm new file mode 100644 index 00000000000..c8b1d774903 --- /dev/null +++ b/maps/modular_maps/aqueduct/joiner_s.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"m" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"K" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) +"M" = ( +/turf/wall/brick/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +M +a +"} +(3,1,1) = {" +a +a +a +a +a +a +K +M +M +"} +(4,1,1) = {" +a +a +a +a +a +a +K +m +m +"} +(5,1,1) = {" +a +a +a +a +a +a +K +K +K +"} +(6,1,1) = {" +a +a +a +a +a +a +K +m +m +"} +(7,1,1) = {" +a +a +a +a +a +a +K +M +M +"} +(8,1,1) = {" +a +a +a +a +a +a +a +M +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/modular_maps/aqueduct/joiner_w.dmm b/maps/modular_maps/aqueduct/joiner_w.dmm new file mode 100644 index 00000000000..17861667875 --- /dev/null +++ b/maps/modular_maps/aqueduct/joiner_w.dmm @@ -0,0 +1,113 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"h" = ( +/turf/wall/brick/basalt, +/area/template_noop) +"m" = ( +/turf/floor/path/running_bond/basalt, +/area/template_noop) +"A" = ( +/turf/floor/path/herringbone/basalt, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +A +A +A +A +A +a +a +"} +(8,1,1) = {" +a +h +h +m +A +m +h +h +a +"} +(9,1,1) = {" +a +a +h +m +A +m +h +a +a +"}