From 3e540790a34c819e0c433db9fdf5686e690e07a1 Mon Sep 17 00:00:00 2001 From: Agent X <44549182+AgentXLP@users.noreply.github.com> Date: Thu, 27 Mar 2025 16:36:02 -0400 Subject: [PATCH] Basic Vertex Point Lighting Engine (#716) * CONCEPT: Basic vertex lighting engine Set the geometry mode on your model to G_LIGHTING_ENGINE_EXT, spawn a `bhvAmbientLight`, spawn some `bhvPointLight`s, and then you got yourself a mighty interesting scene. * Fixes * How did I miss this * Make light set home pos --- autogen/convert_functions.py | 6 +- autogen/lua_definitions/constants.lua | 6 +- autogen/lua_definitions/functions.lua | 107 +- autogen/lua_definitions/structs.lua | 1 + data/behavior_data.c | 16 + data/behavior_table.c | 4 +- data/dynos_bin_behavior.cpp | 5 + data/dynos_bin_common.cpp | 2 + data/dynos_bin_gfx.cpp | 1 + data/dynos_mgr_builtin.cpp | 3 + docs/lua/constants.md | 4 +- .../lighting-engine-demo/a-constants.lua | 6 + .../examples/lighting-engine-demo/a-utils.lua | 6 + .../lighting-engine-demo/data/behavior_data.c | 11 + .../data/bhvFlashlight.bhv | Bin 0 -> 82 bytes .../levels/canals/area_1/collision.inc.c | 2198 +++++ .../levels/canals/area_1/geo.inc.c | 42 + .../levels/canals/area_1/macro.inc.c | 5 + .../levels/canals/area_1/spline.inc.c | 0 .../levels/canals/camera_trigger.inc.c | 5 + .../levels/canals/concrete.rgba16.png | Bin 0 -> 4875 bytes .../levels/canals/debris.rgba16.png | Bin 0 -> 2127 bytes .../levels/canals/dirt.rgba16.png | Bin 0 -> 2544 bytes .../levels/canals/geo.inc.c | 1 + .../levels/canals/header.inc.h | 60 + .../levels/canals/leveldata.inc.c | 5 + .../levels/canals/model.inc.c | 7096 ++++++++++++++++ .../levels/canals/oldwall.rgba16.png | Bin 0 -> 2558 bytes .../levels/canals/rock.rgba16.png | Bin 0 -> 2559 bytes .../levels/canals/script.c | 48 + .../levels/canals/texture_include.inc.c | 35 + .../levels/canals/water.ci8.png | Bin 0 -> 2228 bytes .../levels/hl/_0_fifties_lgt2.rgba16.png | Bin 0 -> 1237 bytes .../levels/hl/_0_fifties_lgt3.rgba16.png | Bin 0 -> 1237 bytes .../levels/hl/_0_generic85.rgba16.png | Bin 0 -> 568 bytes .../levels/hl/_0c2a4e_w1.rgba16.png | Bin 0 -> 38871 bytes .../levels/hl/_a_lab1_sw1.rgba16.png | Bin 0 -> 1919 bytes .../levels/hl/_gratestep2.rgba16.png | Bin 0 -> 13565 bytes .../levels/hl/_lab1_cmp2.rgba16.png | Bin 0 -> 19078 bytes .../levels/hl/_lab_crt2.rgba16.png | Bin 0 -> 1681 bytes .../levels/hl/_lab_crt8.rgba16.png | Bin 0 -> 2377 bytes .../levels/hl/_spotblue.rgba16.png | Bin 0 -> 569 bytes .../levels/hl/_spotyellow.rgba16.png | Bin 0 -> 594 bytes .../levels/hl/area_1/collision.inc.c | 3247 ++++++++ .../levels/hl/area_1/geo.inc.c | 35 + .../levels/hl/area_1/macro.inc.c | 4 + .../levels/hl/area_1/spline.inc.c | 0 .../levels/hl/babtech_ceil01.rgba16.png | Bin 0 -> 5367 bytes .../levels/hl/basetrim02.rgba16.png | Bin 0 -> 2371 bytes .../levels/hl/black.rgba16.png | Bin 0 -> 284 bytes .../levels/hl/c1a0_labglu.rgba16.png | Bin 0 -> 5299 bytes .../levels/hl/c1a0_labw4.rgba16.png | Bin 0 -> 35332 bytes .../levels/hl/c1a0_labw5.rgba16.png | Bin 0 -> 35393 bytes .../levels/hl/c1a0_labw7.rgba16.png | Bin 0 -> 19684 bytes .../levels/hl/c1a0_wx.rgba16.png | Bin 0 -> 38237 bytes .../levels/hl/c1a1_flr1.rgba16.png | Bin 0 -> 4353 bytes .../levels/hl/c1a1_flr2c.rgba16.png | Bin 0 -> 7726 bytes .../levels/hl/c1a1dooredge.rgba16.png | Bin 0 -> 1435 bytes .../levels/hl/c1a1sign2a.rgba16.png | Bin 0 -> 9742 bytes .../levels/hl/c1a1sign2b.rgba16.png | Bin 0 -> 9705 bytes .../levels/hl/c2a4e_w1b.rgba16.png | Bin 0 -> 41269 bytes .../levels/hl/c2a4x_c1.rgba16.png | Bin 0 -> 24123 bytes .../levels/hl/ca1x_monside.rgba16.png | Bin 0 -> 1332 bytes .../levels/hl/camera_trigger.inc.c | 5 + .../levels/hl/drkmtl_scrn.rgba16.png | Bin 0 -> 5472 bytes .../levels/hl/drkmtl_scrn3.rgba16.png | Bin 0 -> 5075 bytes .../levels/hl/drkmtlt_bord11.rgba16.png | Bin 0 -> 3865 bytes .../levels/hl/drkmtlt_ceil01b.rgba16.png | Bin 0 -> 22501 bytes .../levels/hl/duct_vnt.rgba16.png | Bin 0 -> 5369 bytes .../levels/hl/fifties_cmp3b.rgba16.png | Bin 0 -> 9584 bytes .../levels/hl/fifties_cmp3c.rgba16.png | Bin 0 -> 10655 bytes .../levels/hl/fifties_mon1b.rgba16.png | Bin 0 -> 2864 bytes .../levels/hl/flatbed_bumper.rgba16.png | Bin 0 -> 28267 bytes .../levels/hl/generic015v2.rgba16.png | Bin 0 -> 9199 bytes .../levels/hl/generic028.rgba16.png | Bin 0 -> 13539 bytes .../levels/hl/generic46.rgba16.png | Bin 0 -> 659 bytes .../lighting-engine-demo/levels/hl/geo.inc.c | 1 + .../levels/hl/header.inc.h | 271 + .../levels/hl/lab1_b4.rgba16.png | Bin 0 -> 1950 bytes .../levels/hl/lab1_comp3e.rgba16.png | Bin 0 -> 2933 bytes .../levels/hl/lab1_door2a.rgba16.png | Bin 0 -> 46589 bytes .../levels/hl/lab1_flr10.rgba16.png | Bin 0 -> 7894 bytes .../levels/hl/lab1_gear2.rgba16.png | Bin 0 -> 454 bytes .../levels/hl/lab1_gear3.rgba16.png | Bin 0 -> 2139 bytes .../levels/hl/lab1_map1.rgba16.png | Bin 0 -> 22430 bytes .../levels/hl/lab1_map2.rgba16.png | Bin 0 -> 21348 bytes .../levels/hl/leveldata.inc.c | 5 + .../levels/hl/model.inc.c | 7384 +++++++++++++++++ .../levels/hl/out_dmplid.rgba16.png | Bin 0 -> 4557 bytes .../levels/hl/paper1.rgba16.png | Bin 0 -> 3639 bytes .../levels/hl/pfab_bks1a.rgba16.png | Bin 0 -> 976 bytes .../levels/hl/pfab_bks1b.rgba16.png | Bin 0 -> 583 bytes .../lighting-engine-demo/levels/hl/script.c | 51 + .../levels/hl/signc1a1_1.rgba16.png | Bin 0 -> 54657 bytes .../levels/hl/stripes2.rgba16.png | Bin 0 -> 1887 bytes .../levels/hl/texture_include.inc.c | 265 + .../examples/lighting-engine-demo/main.lua | 111 + .../lighting-engine-demo/sound/flashlight.ogg | Bin 0 -> 4960 bytes docs/lua/functions-2.md | 63 + docs/lua/functions-3.md | 254 + docs/lua/functions-6.md | 27 +- docs/lua/functions.md | 18 + docs/lua/guides/object-lists.md | 2 + docs/lua/structs.md | 1 + include/PR/gbi_extension.h | 3 +- include/behavior_data.h | 2 + include/behavior_table.h | 2 + include/object_fields.h | 3 + src/engine/lighting_engine.c | 161 + src/engine/lighting_engine.h | 38 + src/game/area.c | 3 + src/game/behavior_actions.c | 2 + src/game/behavior_actions.h | 6 + src/game/behaviors/light.inc.c | 35 + src/pc/debug_context.h | 1 + src/pc/djui/djui_ctx_display.c | 1 + src/pc/gfx/gfx_pc.c | 31 +- src/pc/lua/smlua_cobject_autogen.c | 3 +- src/pc/lua/smlua_constants_autogen.c | 4 +- src/pc/lua/smlua_functions_autogen.c | 310 + src/pc/lua/utils/smlua_gfx_utils.c | 9 + src/pc/lua/utils/smlua_gfx_utils.h | 6 +- src/pc/network/network.c | 8 +- 123 files changed, 22022 insertions(+), 23 deletions(-) create mode 100644 docs/lua/examples/lighting-engine-demo/a-constants.lua create mode 100644 docs/lua/examples/lighting-engine-demo/a-utils.lua create mode 100644 docs/lua/examples/lighting-engine-demo/data/behavior_data.c create mode 100644 docs/lua/examples/lighting-engine-demo/data/bhvFlashlight.bhv create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/area_1/collision.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/area_1/geo.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/area_1/macro.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/area_1/spline.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/camera_trigger.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/concrete.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/debris.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/dirt.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/geo.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/header.inc.h create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/leveldata.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/model.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/oldwall.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/rock.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/script.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/texture_include.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/canals/water.ci8.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_0_fifties_lgt2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_0_fifties_lgt3.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_0_generic85.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_0c2a4e_w1.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_a_lab1_sw1.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_gratestep2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_lab1_cmp2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_lab_crt2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_lab_crt8.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_spotblue.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/_spotyellow.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/area_1/collision.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/area_1/geo.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/area_1/macro.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/area_1/spline.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/babtech_ceil01.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/basetrim02.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/black.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labglu.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labw4.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labw5.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labw7.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_wx.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a1_flr1.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a1_flr2c.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a1dooredge.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a1sign2a.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c1a1sign2b.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c2a4e_w1b.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/c2a4x_c1.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/ca1x_monside.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/camera_trigger.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/drkmtl_scrn.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/drkmtl_scrn3.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/drkmtlt_bord11.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/drkmtlt_ceil01b.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/duct_vnt.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/fifties_cmp3b.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/fifties_cmp3c.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/fifties_mon1b.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/flatbed_bumper.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/generic015v2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/generic028.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/generic46.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/geo.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/header.inc.h create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_b4.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_comp3e.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_door2a.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_flr10.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_gear2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_gear3.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_map1.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/lab1_map2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/leveldata.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/model.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/out_dmplid.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/paper1.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/pfab_bks1a.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/pfab_bks1b.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/script.c create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/signc1a1_1.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/stripes2.rgba16.png create mode 100644 docs/lua/examples/lighting-engine-demo/levels/hl/texture_include.inc.c create mode 100644 docs/lua/examples/lighting-engine-demo/main.lua create mode 100644 docs/lua/examples/lighting-engine-demo/sound/flashlight.ogg create mode 100644 src/engine/lighting_engine.c create mode 100644 src/engine/lighting_engine.h create mode 100644 src/game/behaviors/light.inc.c diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 8bbc48fa1..a78102893 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -70,7 +70,8 @@ in_files = [ "src/game/ingame_menu.h", "src/game/first_person_cam.h", "src/engine/behavior_script.h", - "src/audio/seqplayer.h" + "src/audio/seqplayer.h", + "src/engine/lighting_engine.h" ] override_allowed_functions = { @@ -126,7 +127,8 @@ override_disallowed_functions = { "src/game/first_person_cam.h": [ "first_person_update" ], "src/pc/lua/utils/smlua_collision_utils.h": [ "collision_find_surface_on_ray" ], "src/engine/behavior_script.h": [ "stub_behavior_script_2", "cur_obj_update" ], - "src/pc/utils/misc.h": [ "str_.*", "file_get_line", "delta_interpolate_(normal|rgba|mtx)", "detect_and_skip_mtx_interpolation" ] + "src/pc/utils/misc.h": [ "str_.*", "file_get_line", "delta_interpolate_(normal|rgba|mtx)", "detect_and_skip_mtx_interpolation" ], + "src/engine/lighting_engine.h": [ "le_calculate_vertex_lighting", "le_clear", "le_shutdown" ] } override_hide_functions = { diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 561aa4a1c..fae93f8cb 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -896,7 +896,9 @@ id_RM_Scroll_Texture = 535 --- @type BehaviorId id_editor_Scroll_Texture = 536 --- @type BehaviorId id_bhvBlueCoinNumber = 537 --- @type BehaviorId id_bhvStarNumber = 538 --- @type BehaviorId -id_bhv_max_count = 539 --- @type BehaviorId +id_bhvAmbientLight = 539 --- @type BehaviorId +id_bhvPointLight = 540 --- @type BehaviorId +id_bhv_max_count = 541 --- @type BehaviorId --- @alias BehaviorId --- | `id_bhv1Up` @@ -1438,6 +1440,8 @@ id_bhv_max_count = 539 --- @type BehaviorId --- | `id_editor_Scroll_Texture` --- | `id_bhvBlueCoinNumber` --- | `id_bhvStarNumber` +--- | `id_bhvAmbientLight` +--- | `id_bhvPointLight` --- | `id_bhv_max_count` --- @type integer diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index c0996e2fa..744aaa7ff 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -119,6 +119,11 @@ function bhv_alpha_boo_key_loop() -- ... end +--- Behavior loop function for the lighting engine ambient light. Takes the first 3 behavior parameter bytes for RGB color +function bhv_ambient_light_init() + -- ... +end + --- Behavior init function for ambient sounds function bhv_ambient_sounds_init() -- ... @@ -1764,6 +1769,16 @@ function bhv_play_music_track_when_touched_loop() -- ... end +--- Behavior init function for the lighting engine point light. Takes the first 3 behavior parameter bytes for RGB color and the last for radius +function bhv_point_light_init() + -- ... +end + +--- Behavior loop function for the lighting engine point light +function bhv_point_light_loop() + -- ... +end + --- Behavior loop function for Pokey body part function bhv_pokey_body_part_update() -- ... @@ -4821,6 +4836,87 @@ function warp_special(arg) -- ... end +--- @param x number +--- @param y number +--- @param z number +--- @param r integer +--- @param g integer +--- @param b integer +--- @param radius number +--- @param intensity number +--- @return integer +--- Adds a lighting engine point light at `x`, `y`, `z` with color `r`, `g`, `b` and `radius` with `intensity` +function le_add_light(x, y, z, r, g, b, radius, intensity) + -- ... +end + +--- @param pos Vec3f +--- @param out Color +--- @param lightIntensityScalar number +--- Calculates the lighting with `lightIntensityScalar` at a position and outputs the color in `out` +function le_calculate_lighting_color(pos, out, lightIntensityScalar) + -- ... +end + +--- @param pos Vec3f +--- @param out Vec3f +--- Calculates the lighting direction from a position and outputs the result in `out` +function le_calculate_lighting_dir(pos, out) + -- ... +end + +--- @return integer +--- Gets the total number of lights currently loaded in the lighting engine +function le_get_light_count() + -- ... +end + +--- @param id integer +--- Removes a lighting engine point light corresponding to `id` +function le_remove_light(id) + -- ... +end + +--- @param r integer +--- @param g integer +--- @param b integer +--- Sets the lighting engine ambient color +function le_set_ambient_color(r, g, b) + -- ... +end + +--- @param id integer +--- @param r integer +--- @param g integer +--- @param b integer +--- Sets a lighting engine point light's color to `r`, `g`, `b` +function le_set_light_color(id, r, g, b) + -- ... +end + +--- @param id integer +--- @param intensity number +--- Sets a lighting engine point light's `intensity` +function le_set_light_intensity(id, intensity) + -- ... +end + +--- @param id integer +--- @param x number +--- @param y number +--- @param z number +--- Sets a lighting engine point light's position to `x`, `y`, `z` +function le_set_light_pos(id, x, y, z) + -- ... +end + +--- @param id integer +--- @param radius number +--- Sets a lighting engine point light's `radius` +function le_set_light_radius(id, radius) + -- ... +end + --- @param m MarioState --- Adjusts the pitch/volume of Mario's movement-based sounds according to his forward velocity (`m.forwardVel`). Useful for adding dynamic audio feedback based on Mario's running or walking speed function adjust_sound_for_speed(m) @@ -9422,14 +9518,21 @@ end --- @param gfx Pointer_Gfx --- @param offset integer --- @return Pointer_Vtx ---- Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`. +--- Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse` function gfx_get_vtx(gfx, offset) -- ... end +--- @param cmd Pointer_Gfx +--- @return integer +--- Gets the number of vertices from a display list command if it has the correct op +function gfx_get_vtx_count(cmd) + -- ... +end + --- @param cmd Pointer_Gfx --- @param func function ---- Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`. +--- Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op` function gfx_parse(cmd, func) -- ... end diff --git a/autogen/lua_definitions/structs.lua b/autogen/lua_definitions/structs.lua index 574d02edd..143ff8670 100644 --- a/autogen/lua_definitions/structs.lua +++ b/autogen/lua_definitions/structs.lua @@ -1708,6 +1708,7 @@ --- @field public oKoopaTheQuickRaceIndex integer --- @field public oKoopaTurningAwayFromWall integer --- @field public oKoopaUnshelledTimeUntilTurn integer +--- @field public oLightID integer --- @field public oLllRotatingHexFlameUnkF4 number --- @field public oLllRotatingHexFlameUnkF8 number --- @field public oLllRotatingHexFlameUnkFC number diff --git a/data/behavior_data.c b/data/behavior_data.c index 53ec740c3..335b10187 100644 --- a/data/behavior_data.c +++ b/data/behavior_data.c @@ -6436,3 +6436,19 @@ const BehaviorScript editor_Scroll_Texture[] = { CALL_NATIVE(uv_update_scroll), END_LOOP(), }; + +const BehaviorScript bhvAmbientLight[] = { + BEGIN(OBJ_LIST_DEFAULT), + ID(id_bhvAmbientLight), + CALL_NATIVE(bhv_ambient_light_init), +}; + +const BehaviorScript bhvPointLight[] = { + BEGIN(OBJ_LIST_DEFAULT), + ID(id_bhvPointLight), + SET_HOME(), + CALL_NATIVE(bhv_point_light_init), + BEGIN_LOOP(), + CALL_NATIVE(bhv_point_light_loop), + END_LOOP(), +}; diff --git a/data/behavior_table.c b/data/behavior_table.c index 0ee6cd31e..46c03b76c 100644 --- a/data/behavior_table.c +++ b/data/behavior_table.c @@ -551,7 +551,9 @@ const struct BehaviorTableEntry gBehaviorTable[id_bhv_max_count] = { BHV_ENTRY(bhvYellowCoin), BHV_ENTRY(bhvYoshi), BHV_ENTRY(RM_Scroll_Texture), - BHV_ENTRY(editor_Scroll_Texture) + BHV_ENTRY(editor_Scroll_Texture), + BHV_ENTRY(bhvAmbientLight), + BHV_ENTRY(bhvPointLight) }; enum BehaviorId get_id_from_behavior(const BehaviorScript* behavior) { diff --git a/data/dynos_bin_behavior.cpp b/data/dynos_bin_behavior.cpp index 39f991cde..bc266c763 100644 --- a/data/dynos_bin_behavior.cpp +++ b/data/dynos_bin_behavior.cpp @@ -776,6 +776,8 @@ s64 DynOS_Bhv_ParseBehaviorScriptConstants(const String &_Arg, bool *found) { bhv_constant(id_bhvYoshi); bhv_constant(id_RM_Scroll_Texture); bhv_constant(id_editor_Scroll_Texture); + bhv_constant(id_bhvAmbientLight); + bhv_constant(id_bhvPointLight); // Define a special type for new ids that don't override. if (_Arg == "id_bhvNewId") { return (BehaviorScript) (0xFFFF); } @@ -1884,6 +1886,9 @@ s64 DynOS_Bhv_ParseBehaviorScriptConstants(const String &_Arg, bool *found) { /* BreakableWall */ bhv_constant(oBreakableWallForce); + /* PointLight */ + bhv_constant(oLightID); + *found = false; return 0; } diff --git a/data/dynos_bin_common.cpp b/data/dynos_bin_common.cpp index b8c138491..f6d6d2c83 100644 --- a/data/dynos_bin_common.cpp +++ b/data/dynos_bin_common.cpp @@ -550,6 +550,8 @@ s64 DynOS_Common_ParseBhvConstants(const String &_Arg, bool *found) { common_constant(bhvUnusedFakeStar); common_constant(RM_Scroll_Texture); common_constant(editor_Scroll_Texture); + common_constant(bhvAmbientLight); + common_constant(bhvPointLight); // Legacy behavior names common_legacy_constant(bhvFish2, bhvManyBlueFishSpawner); diff --git a/data/dynos_bin_gfx.cpp b/data/dynos_bin_gfx.cpp index 8557653c0..7b2e997d7 100644 --- a/data/dynos_bin_gfx.cpp +++ b/data/dynos_bin_gfx.cpp @@ -350,6 +350,7 @@ s64 DynOS_Gfx_ParseGfxConstants(const String& _Arg, bool* found) { // Extended gfx_constant(G_LIGHT_MAP_EXT); + gfx_constant(G_LIGHTING_ENGINE_EXT); // Common values gfx_constant(CALC_DXT(4,G_IM_SIZ_4b_BYTES)); diff --git a/data/dynos_mgr_builtin.cpp b/data/dynos_mgr_builtin.cpp index 9933226cd..de1ca0de5 100644 --- a/data/dynos_mgr_builtin.cpp +++ b/data/dynos_mgr_builtin.cpp @@ -2030,6 +2030,9 @@ static const void* sDynosBuiltinFuncs[] = { define_builtin(spawn_star_number), define_builtin(bhv_ferris_wheel_platform_init), define_builtin(geo_mario_cap_display_list), + define_builtin(bhv_ambient_light_init), + define_builtin(bhv_point_light_init), + define_builtin(bhv_point_light_loop), }; const void* DynOS_Builtin_Func_GetFromName(const char* aDataName) { diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 352dac083..21fc12b0c 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -650,7 +650,9 @@ | id_editor_Scroll_Texture | 536 | | id_bhvBlueCoinNumber | 537 | | id_bhvStarNumber | 538 | -| id_bhv_max_count | 539 | +| id_bhvAmbientLight | 539 | +| id_bhvPointLight | 540 | +| id_bhv_max_count | 541 | [:arrow_up_small:](#) diff --git a/docs/lua/examples/lighting-engine-demo/a-constants.lua b/docs/lua/examples/lighting-engine-demo/a-constants.lua new file mode 100644 index 000000000..adc58c788 --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/a-constants.lua @@ -0,0 +1,6 @@ +LEVEL_HL = level_register("level_hl_entry", COURSE_BOB, "Black Mesa", "hl", 28000, 0x28, 0x28, 0x28) +LEVEL_CANALS = level_register("level_canals_entry", COURSE_WF, "Sunset Canals", "canals", 28000, 0x20, 0x20, 0x20) + +SOUND_CUSTOM_FLASHLIGHT = audio_sample_load("flashlight.ogg") + +DEFAULT_LIGHTING_DIR = 0x28 / 127 \ No newline at end of file diff --git a/docs/lua/examples/lighting-engine-demo/a-utils.lua b/docs/lua/examples/lighting-engine-demo/a-utils.lua new file mode 100644 index 000000000..ff691d60e --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/a-utils.lua @@ -0,0 +1,6 @@ +--- @param cond boolean +--- Human readable ternary operator +function if_then_else(cond, ifTrue, ifFalse) + if cond then return ifTrue end + return ifFalse +end \ No newline at end of file diff --git a/docs/lua/examples/lighting-engine-demo/data/behavior_data.c b/docs/lua/examples/lighting-engine-demo/data/behavior_data.c new file mode 100644 index 000000000..b2a493c9e --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/data/behavior_data.c @@ -0,0 +1,11 @@ +/* ================ New Behaviors ================ */ + +const BehaviorScript bhvFlashlight[] = { + BEGIN(OBJ_LIST_DEFAULT), + ID(id_bhvNewId), // id_bhvNewId signifies a new behavior. + OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), + CALL_NATIVE(bhv_point_light_init), + BEGIN_LOOP(), + CALL_NATIVE(bhv_flashlight_loop), + END_LOOP(), +}; diff --git a/docs/lua/examples/lighting-engine-demo/data/bhvFlashlight.bhv b/docs/lua/examples/lighting-engine-demo/data/bhvFlashlight.bhv new file mode 100644 index 0000000000000000000000000000000000000000..d5291118855befa03f5a8791274b49947a0e5d2f GIT binary patch literal 82 zcmWgRP0A>9%SkNG$jMC4C}Ct^KG;r S)EJ)z*BPIapI-n}!3hBGxDwz1 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/collision.inc.c b/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/collision.inc.c new file mode 100644 index 000000000..adb77d770 --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/collision.inc.c @@ -0,0 +1,2198 @@ +const Collision canals_area_1_collision[] = { + COL_INIT(), + COL_VERTEX_INIT(857), + COL_VERTEX(-6120, 60, -4700), + COL_VERTEX(-5100, 60, -4700), + COL_VERTEX(-5100, 60, -5300), + COL_VERTEX(-6120, 60, -5300), + COL_VERTEX(-6300, 60, -5300), + COL_VERTEX(-6300, 60, -4700), + COL_VERTEX(-7020, 60, -5300), + COL_VERTEX(-7020, 60, -4700), + COL_VERTEX(-7680, 60, -5720), + COL_VERTEX(-7680, 60, -5120), + COL_VERTEX(-8280, 120, -5720), + COL_VERTEX(-8280, 60, -5120), + COL_VERTEX(-8280, 60, -4340), + COL_VERTEX(-7680, 60, -4340), + COL_VERTEX(-7680, 60, -3620), + COL_VERTEX(-7080, 60, -3620), + COL_VERTEX(-7680, 60, -2420), + COL_VERTEX(-7080, 60, -2420), + COL_VERTEX(-7680, 540, -2420), + COL_VERTEX(-7080, 540, -2420), + COL_VERTEX(-4800, 60, -4400), + COL_VERTEX(-4500, 60, -4100), + COL_VERTEX(-4800, 60, -5600), + COL_VERTEX(-4200, 60, -3800), + COL_VERTEX(-4500, 60, -5900), + COL_VERTEX(-3900, 60, -3500), + COL_VERTEX(-3600, 60, -3200), + COL_VERTEX(-3600, 60, -3600), + COL_VERTEX(-4200, 60, -6200), + COL_VERTEX(-3600, 60, -4000), + COL_VERTEX(-3600, 60, -4400), + COL_VERTEX(-3900, 60, -6500), + COL_VERTEX(-3600, 60, -6400), + COL_VERTEX(-3600, 60, -6800), + COL_VERTEX(-3600, 60, -6000), + COL_VERTEX(-3600, 60, -4800), + COL_VERTEX(-3600, 60, -5600), + COL_VERTEX(-3600, 60, -5200), + COL_VERTEX(-2520, -420, -6800), + COL_VERTEX(-2520, -420, -3200), + COL_VERTEX(-2100, -660, -3200), + COL_VERTEX(-2100, -660, -6800), + COL_VERTEX(-60, -660, -3200), + COL_VERTEX(-60, -660, -6800), + COL_VERTEX(-1100, 660, -7480), + COL_VERTEX(-1100, 540, -6800), + COL_VERTEX(-60, 540, -6800), + COL_VERTEX(-60, 660, -7480), + COL_VERTEX(4425, 780, -1800), + COL_VERTEX(4425, 900, -1100), + COL_VERTEX(5400, 900, -1100), + COL_VERTEX(5400, 780, -1800), + COL_VERTEX(4490, 660, -7480), + COL_VERTEX(4490, 540, -6800), + COL_VERTEX(5400, 540, -6800), + COL_VERTEX(5400, 660, -7480), + COL_VERTEX(5400, -660, -3200), + COL_VERTEX(5400, -660, -6800), + COL_VERTEX(8720, 900, -6680), + COL_VERTEX(5400, 900, -8840), + COL_VERTEX(5400, 780, -8160), + COL_VERTEX(8220, 555, -4640), + COL_VERTEX(8220, 840, 7540), + COL_VERTEX(5820, 840, 7540), + COL_VERTEX(5820, 840, 9760), + COL_VERTEX(8220, 840, 9760), + COL_VERTEX(9780, 840, 4780), + COL_VERTEX(7380, 840, 4780), + COL_VERTEX(8220, -660, -3200), + COL_VERTEX(8220, -660, -6800), + COL_VERTEX(5400, -660, 7540), + COL_VERTEX(8220, -660, 7540), + COL_VERTEX(-5100, -660, -3200), + COL_VERTEX(-5100, -660, 7540), + COL_VERTEX(-3480, -420, -6800), + COL_VERTEX(-3480, -120, -3200), + COL_VERTEX(-1425, 780, -1800), + COL_VERTEX(-1425, 900, -1100), + COL_VERTEX(-450, 900, -1100), + COL_VERTEX(-450, 780, -1800), + COL_VERTEX(10620, 840, -4640), + COL_VERTEX(8220, 840, 1840), + COL_VERTEX(10620, 840, 1840), + COL_VERTEX(-1425, 540, -3200), + COL_VERTEX(-1425, 660, -2500), + COL_VERTEX(-450, 660, -2500), + COL_VERTEX(-450, 540, -3200), + COL_VERTEX(-5325, 540, -3200), + COL_VERTEX(-5325, 660, -2500), + COL_VERTEX(-4350, 660, -2500), + COL_VERTEX(-4350, 540, -3200), + COL_VERTEX(-3375, 540, -3200), + COL_VERTEX(-3375, 660, -2500), + COL_VERTEX(-2400, 660, -2500), + COL_VERTEX(-2400, 540, -3200), + COL_VERTEX(-5325, 780, -1800), + COL_VERTEX(-4350, 780, -1800), + COL_VERTEX(-3375, 780, -1800), + COL_VERTEX(-2400, 780, -1800), + COL_VERTEX(-5325, 900, -1100), + COL_VERTEX(-4350, 900, -1100), + COL_VERTEX(-3375, 900, -1100), + COL_VERTEX(-2400, 900, -1100), + COL_VERTEX(4425, 540, -3200), + COL_VERTEX(4425, 660, -2500), + COL_VERTEX(5400, 660, -2500), + COL_VERTEX(5400, 540, -3200), + COL_VERTEX(525, 540, -3200), + COL_VERTEX(525, 660, -2500), + COL_VERTEX(1500, 660, -2500), + COL_VERTEX(1500, 540, -3200), + COL_VERTEX(2475, 540, -3200), + COL_VERTEX(2475, 660, -2500), + COL_VERTEX(3450, 660, -2500), + COL_VERTEX(3450, 540, -3200), + COL_VERTEX(525, 780, -1800), + COL_VERTEX(1500, 780, -1800), + COL_VERTEX(2475, 780, -1800), + COL_VERTEX(3450, 780, -1800), + COL_VERTEX(525, 900, -1100), + COL_VERTEX(1500, 900, -1100), + COL_VERTEX(2475, 900, -1100), + COL_VERTEX(3450, 900, -1100), + COL_VERTEX(-6300, 780, -1800), + COL_VERTEX(-6300, 900, -1100), + COL_VERTEX(-6300, 660, -2500), + COL_VERTEX(-6300, 540, -3200), + COL_VERTEX(4490, 900, -8840), + COL_VERTEX(4490, 780, -8160), + COL_VERTEX(850, 900, -8840), + COL_VERTEX(850, 780, -8160), + COL_VERTEX(1760, 780, -8160), + COL_VERTEX(1760, 900, -8840), + COL_VERTEX(2670, 900, -8840), + COL_VERTEX(2670, 780, -8160), + COL_VERTEX(3580, 780, -8160), + COL_VERTEX(3580, 900, -8840), + COL_VERTEX(850, 660, -7480), + COL_VERTEX(1760, 660, -7480), + COL_VERTEX(2670, 660, -7480), + COL_VERTEX(3580, 660, -7480), + COL_VERTEX(850, 540, -6800), + COL_VERTEX(1760, 540, -6800), + COL_VERTEX(2670, 540, -6800), + COL_VERTEX(3580, 540, -6800), + COL_VERTEX(-1100, 900, -8840), + COL_VERTEX(-1100, 780, -8160), + COL_VERTEX(-60, 780, -8160), + COL_VERTEX(-60, 900, -8840), + COL_VERTEX(-5260, 900, -8840), + COL_VERTEX(-5260, 780, -8160), + COL_VERTEX(-4220, 780, -8160), + COL_VERTEX(-4220, 900, -8840), + COL_VERTEX(-3180, 900, -8840), + COL_VERTEX(-3180, 780, -8160), + COL_VERTEX(-2140, 780, -8160), + COL_VERTEX(-2140, 900, -8840), + COL_VERTEX(-5260, 660, -7480), + COL_VERTEX(-4220, 660, -7480), + COL_VERTEX(-3180, 660, -7480), + COL_VERTEX(-2140, 660, -7480), + COL_VERTEX(-5260, 540, -6800), + COL_VERTEX(-4220, 540, -6800), + COL_VERTEX(-3180, 540, -6800), + COL_VERTEX(-2140, 540, -6800), + COL_VERTEX(-6300, 660, -7480), + COL_VERTEX(-6300, 540, -6800), + COL_VERTEX(-6300, 780, -8160), + COL_VERTEX(-6300, 900, -8840), + COL_VERTEX(-3694, -164, 5900), + COL_VERTEX(-3725, -164, 5825), + COL_VERTEX(-3800, -164, 5794), + COL_VERTEX(-3875, -164, 5825), + COL_VERTEX(-3906, -164, 5900), + COL_VERTEX(-3875, -164, 5975), + COL_VERTEX(-3800, -164, 6006), + COL_VERTEX(-3725, -164, 5975), + COL_VERTEX(-6300, 540, -4700), + COL_VERTEX(-5100, 540, -4700), + COL_VERTEX(-5100, 540, -5300), + COL_VERTEX(-6300, 540, -5300), + COL_VERTEX(-7680, 540, -3620), + COL_VERTEX(-7080, 540, -3620), + COL_VERTEX(-8280, 540, -4340), + COL_VERTEX(-7680, 540, -4340), + COL_VERTEX(-7680, 540, -5120), + COL_VERTEX(-8280, 540, -5120), + COL_VERTEX(-8280, 540, -5720), + COL_VERTEX(-7680, 540, -5720), + COL_VERTEX(-7020, 540, -5300), + COL_VERTEX(-7020, 540, -4700), + COL_VERTEX(-8280, 60, -5720), + COL_VERTEX(-3900, 540, -6500), + COL_VERTEX(-3600, 540, -6800), + COL_VERTEX(-3900, 540, -3500), + COL_VERTEX(-3600, 540, -3200), + COL_VERTEX(4971, -420, -3200), + COL_VERTEX(4971, 60, -3200), + COL_VERTEX(5400, 60, -3200), + COL_VERTEX(5400, -420, -3200), + COL_VERTEX(4971, 60, -6800), + COL_VERTEX(4971, -420, -6800), + COL_VERTEX(5400, -420, -6800), + COL_VERTEX(5400, 60, -6800), + COL_VERTEX(-3171, -420, -6800), + COL_VERTEX(-3600, -420, -6800), + COL_VERTEX(-3600, -900, -6800), + COL_VERTEX(-3171, -900, -6800), + COL_VERTEX(5400, -900, -3200), + COL_VERTEX(4971, -900, -3200), + COL_VERTEX(-3480, 60, -3600), + COL_VERTEX(-3480, 60, -3200), + COL_VERTEX(-3480, -420, -3200), + COL_VERTEX(-3480, -420, -3600), + COL_VERTEX(-3480, 60, -6400), + COL_VERTEX(-3480, 60, -6800), + COL_VERTEX(-3480, 120, -6800), + COL_VERTEX(-3480, 120, -6400), + COL_VERTEX(-3600, 120, -3600), + COL_VERTEX(-3600, 120, -3200), + COL_VERTEX(-3480, 120, -3200), + COL_VERTEX(-3480, 120, -3600), + COL_VERTEX(4971, 540, -6800), + COL_VERTEX(-3171, 60, -3200), + COL_VERTEX(-3171, 540, -3200), + COL_VERTEX(-6300, 1020, -5300), + COL_VERTEX(-6300, 1020, -4700), + COL_VERTEX(-5100, 1020, -5300), + COL_VERTEX(-5100, 1020, -4700), + COL_VERTEX(-4800, 540, -4400), + COL_VERTEX(-4800, 1020, -4400), + COL_VERTEX(-3600, 1020, -6800), + COL_VERTEX(-3900, 1020, -6500), + COL_VERTEX(-5100, 1020, -3200), + COL_VERTEX(-3600, 1020, -3200), + COL_VERTEX(-3900, 1020, -3500), + COL_VERTEX(-4200, 1020, -3800), + COL_VERTEX(-5100, 1020, -4200), + COL_VERTEX(-4500, 1020, -4100), + COL_VERTEX(-5900, 1020, -6300), + COL_VERTEX(-5900, 1020, -6800), + COL_VERTEX(-6300, 1020, -6800), + COL_VERTEX(-6300, 1020, -6300), + COL_VERTEX(-6300, 1020, -3200), + COL_VERTEX(-6300, 1020, -1100), + COL_VERTEX(-6300, 540, -1100), + COL_VERTEX(-6300, 540, -8840), + COL_VERTEX(-6300, 1020, -8840), + COL_VERTEX(-6300, 1980, -3200), + COL_VERTEX(-6300, 1020, -3700), + COL_VERTEX(-6300, 1020, -4200), + COL_VERTEX(-6300, 1980, -4700), + COL_VERTEX(-6300, 1980, -5300), + COL_VERTEX(-8460, 1980, -8330), + COL_VERTEX(-8460, 1980, -8840), + COL_VERTEX(-9180, 1980, -8840), + COL_VERTEX(-9180, 1980, -8330), + COL_VERTEX(-6300, 2460, -5300), + COL_VERTEX(-6300, 2460, -4700), + COL_VERTEX(-8460, 1980, -2675), + COL_VERTEX(-8460, 1980, -3200), + COL_VERTEX(-9180, 1980, -3200), + COL_VERTEX(-9180, 1980, -2675), + COL_VERTEX(-6300, 1980, -6800), + COL_VERTEX(-6300, 1980, -8840), + COL_VERTEX(-6300, 1980, -8330), + COL_VERTEX(-6300, 1980, -7820), + COL_VERTEX(-6300, 1980, -7310), + COL_VERTEX(-6300, 1020, -5800), + COL_VERTEX(-6300, 1980, -1100), + COL_VERTEX(-6300, 1980, -2675), + COL_VERTEX(-6300, 1980, -2150), + COL_VERTEX(-7020, 2460, -5500), + COL_VERTEX(-6300, 2460, -5500), + COL_VERTEX(-6300, 2460, -6000), + COL_VERTEX(-7020, 2460, -6000), + COL_VERTEX(-6300, 2460, -4000), + COL_VERTEX(7907, 554, -4880), + COL_VERTEX(7907, 60, -4880), + COL_VERTEX(8220, 60, -4640), + COL_VERTEX(7907, -420, -4880), + COL_VERTEX(8220, -420, -4640), + COL_VERTEX(7907, -900, -4880), + COL_VERTEX(8220, -900, -4640), + COL_VERTEX(8220, -420, 1840), + COL_VERTEX(8220, 60, 1840), + COL_VERTEX(8220, -900, 1840), + COL_VERTEX(7380, -900, 4780), + COL_VERTEX(7380, -420, 4780), + COL_VERTEX(7380, 60, 4780), + COL_VERTEX(5820, 60, 7540), + COL_VERTEX(5400, -900, -1100), + COL_VERTEX(5820, -420, 7540), + COL_VERTEX(5820, -900, 7540), + COL_VERTEX(-2916, 840, 9616), + COL_VERTEX(-2916, 840, 7396), + COL_VERTEX(-5100, 840, 7360), + COL_VERTEX(-5100, 840, 9580), + COL_VERTEX(-5100, 60, 7360), + COL_VERTEX(-5100, 60, 9580), + COL_VERTEX(-5100, -420, 7360), + COL_VERTEX(-5100, -420, 9580), + COL_VERTEX(-5100, -900, 7360), + COL_VERTEX(-5100, -900, 9580), + COL_VERTEX(3636, 840, 7504), + COL_VERTEX(-732, 840, 7432), + COL_VERTEX(4336, 1923, -1100), + COL_VERTEX(4336, 2945, -1100), + COL_VERTEX(5400, 2940, -1100), + COL_VERTEX(5400, 1920, -1100), + COL_VERTEX(-6300, 3000, -8840), + COL_VERTEX(-9180, 3000, -8840), + COL_VERTEX(-9180, 1980, -6800), + COL_VERTEX(-9180, 3000, -6800), + COL_VERTEX(-9180, 3000, -5300), + COL_VERTEX(-9180, 1980, -5300), + COL_VERTEX(-9180, 3000, -4700), + COL_VERTEX(-9180, 1980, -4700), + COL_VERTEX(-9180, 3000, -3200), + COL_VERTEX(-9180, 3000, -1100), + COL_VERTEX(-9180, 1980, -1100), + COL_VERTEX(-5100, 5707, -12695), + COL_VERTEX(-10860, 5767, -12695), + COL_VERTEX(-60, 3000, -8840), + COL_VERTEX(-60, 5647, -12695), + COL_VERTEX(-10860, 5767, -8615), + COL_VERTEX(-10860, 5767, -5615), + COL_VERTEX(-8604, 3000, -1100), + COL_VERTEX(-5100, 3908, 2785), + COL_VERTEX(-6300, 3000, -1100), + COL_VERTEX(-6876, 3000, -1100), + COL_VERTEX(-7452, 3000, -1100), + COL_VERTEX(-8028, 3000, -1100), + COL_VERTEX(5400, 3848, 2785), + COL_VERTEX(-10860, 5768, -1415), + COL_VERTEX(-10860, 5768, 2785), + COL_VERTEX(-10860, 5767, -4415), + COL_VERTEX(5400, 3000, -8840), + COL_VERTEX(5400, 5647, -12695), + COL_VERTEX(7515, 1927, -7220), + COL_VERTEX(7515, 815, -7220), + COL_VERTEX(8220, 815, -6680), + COL_VERTEX(8220, 1920, -6680), + COL_VERTEX(8220, 5647, -10535), + COL_VERTEX(6105, 2985, -8300), + COL_VERTEX(7515, 2955, -7220), + COL_VERTEX(8220, 2940, -6680), + COL_VERTEX(10620, 4740, -6680), + COL_VERTEX(10620, 5647, -10535), + COL_VERTEX(9300, 2940, -1700), + COL_VERTEX(9300, -960, -1700), + COL_VERTEX(8580, -960, 3820), + COL_VERTEX(8580, 2940, 3820), + COL_VERTEX(11700, 4740, -1700), + COL_VERTEX(10980, 4740, 3820), + COL_VERTEX(7620, 2940, 9760), + COL_VERTEX(10020, 4740, 9760), + COL_VERTEX(6620, -892, 2785), + COL_VERTEX(6620, -900, -1100), + COL_VERTEX(-10833, 5739, 9595), + COL_VERTEX(-5073, 3879, 9595), + COL_VERTEX(-5100, -892, 4885), + COL_VERTEX(6620, -892, 4885), + COL_VERTEX(-10833, -861, 9595), + COL_VERTEX(-5073, -921, 9595), + COL_VERTEX(-5073, -914, 9595), + COL_VERTEX(-5100, -886, 2785), + COL_VERTEX(7620, 4740, 12220), + COL_VERTEX(10020, 4740, 12220), + COL_VERTEX(7620, -1020, 9760), + COL_VERTEX(-10800, -900, 9100), + COL_VERTEX(-10800, 5700, 9100), + COL_VERTEX(-10800, 5700, 11560), + COL_VERTEX(3636, 840, 9724), + COL_VERTEX(1452, 840, 7468), + COL_VERTEX(1452, 840, 9688), + COL_VERTEX(-732, 840, 9652), + COL_VERTEX(-3171, 60, -6800), + COL_VERTEX(-3171, 540, -6800), + COL_VERTEX(-2743, 60, -6800), + COL_VERTEX(-2743, 540, -6800), + COL_VERTEX(-2314, 60, -6800), + COL_VERTEX(-2314, 540, -6800), + COL_VERTEX(-1886, 60, -6800), + COL_VERTEX(-1886, 540, -6800), + COL_VERTEX(-1457, 60, -6800), + COL_VERTEX(-1457, 540, -6800), + COL_VERTEX(-1029, 60, -6800), + COL_VERTEX(-1029, 540, -6800), + COL_VERTEX(-600, 60, -6800), + COL_VERTEX(-600, 540, -6800), + COL_VERTEX(-171, 60, -6800), + COL_VERTEX(-171, 540, -6800), + COL_VERTEX(257, 60, -6800), + COL_VERTEX(257, 540, -6800), + COL_VERTEX(686, 60, -6800), + COL_VERTEX(686, 540, -6800), + COL_VERTEX(1114, 60, -6800), + COL_VERTEX(1114, 540, -6800), + COL_VERTEX(1543, 60, -6800), + COL_VERTEX(1543, 540, -6800), + COL_VERTEX(1971, 60, -6800), + COL_VERTEX(1971, 540, -6800), + COL_VERTEX(2400, 60, -6800), + COL_VERTEX(2400, 540, -6800), + COL_VERTEX(2829, 60, -6800), + COL_VERTEX(2829, 540, -6800), + COL_VERTEX(3257, 60, -6800), + COL_VERTEX(3257, 540, -6800), + COL_VERTEX(3686, 60, -6800), + COL_VERTEX(3686, 540, -6800), + COL_VERTEX(4114, 60, -6800), + COL_VERTEX(4114, 540, -6800), + COL_VERTEX(4543, 60, -6800), + COL_VERTEX(4543, 540, -6800), + COL_VERTEX(4971, -900, -6800), + COL_VERTEX(5400, -900, -6800), + COL_VERTEX(4543, -420, -6800), + COL_VERTEX(4543, -900, -6800), + COL_VERTEX(4114, -420, -6800), + COL_VERTEX(4114, -900, -6800), + COL_VERTEX(3686, -420, -6800), + COL_VERTEX(3686, -900, -6800), + COL_VERTEX(3257, -420, -6800), + COL_VERTEX(3257, -900, -6800), + COL_VERTEX(2829, -420, -6800), + COL_VERTEX(2829, -900, -6800), + COL_VERTEX(2400, -420, -6800), + COL_VERTEX(2400, -900, -6800), + COL_VERTEX(1971, -420, -6800), + COL_VERTEX(1971, -900, -6800), + COL_VERTEX(1543, -420, -6800), + COL_VERTEX(1543, -900, -6800), + COL_VERTEX(1114, -420, -6800), + COL_VERTEX(1114, -900, -6800), + COL_VERTEX(686, -420, -6800), + COL_VERTEX(686, -900, -6800), + COL_VERTEX(257, -420, -6800), + COL_VERTEX(257, -900, -6800), + COL_VERTEX(-171, -420, -6800), + COL_VERTEX(-171, -900, -6800), + COL_VERTEX(-600, -420, -6800), + COL_VERTEX(-600, -900, -6800), + COL_VERTEX(-1029, -420, -6800), + COL_VERTEX(-1029, -900, -6800), + COL_VERTEX(-1457, -420, -6800), + COL_VERTEX(-1457, -900, -6800), + COL_VERTEX(-1886, -420, -6800), + COL_VERTEX(-1886, -900, -6800), + COL_VERTEX(-2314, -420, -6800), + COL_VERTEX(-2314, -900, -6800), + COL_VERTEX(-2743, -420, -6800), + COL_VERTEX(-2743, -900, -6800), + COL_VERTEX(4971, 540, -3200), + COL_VERTEX(4543, 60, -3200), + COL_VERTEX(4543, 540, -3200), + COL_VERTEX(4114, 60, -3200), + COL_VERTEX(4114, 540, -3200), + COL_VERTEX(3686, 60, -3200), + COL_VERTEX(3686, 540, -3200), + COL_VERTEX(3257, 60, -3200), + COL_VERTEX(3257, 540, -3200), + COL_VERTEX(2829, 60, -3200), + COL_VERTEX(2829, 540, -3200), + COL_VERTEX(2400, 60, -3200), + COL_VERTEX(2400, 540, -3200), + COL_VERTEX(1971, 60, -3200), + COL_VERTEX(1971, 540, -3200), + COL_VERTEX(1543, 60, -3200), + COL_VERTEX(1543, 540, -3200), + COL_VERTEX(1114, 60, -3200), + COL_VERTEX(1114, 540, -3200), + COL_VERTEX(686, 60, -3200), + COL_VERTEX(686, 540, -3200), + COL_VERTEX(257, 60, -3200), + COL_VERTEX(257, 540, -3200), + COL_VERTEX(-171, 60, -3200), + COL_VERTEX(-171, 540, -3200), + COL_VERTEX(-600, 60, -3200), + COL_VERTEX(-600, 540, -3200), + COL_VERTEX(-1029, 60, -3200), + COL_VERTEX(-1029, 540, -3200), + COL_VERTEX(-1457, 60, -3200), + COL_VERTEX(-1457, 540, -3200), + COL_VERTEX(-1886, 60, -3200), + COL_VERTEX(-1886, 540, -3200), + COL_VERTEX(-2314, 60, -3200), + COL_VERTEX(-2314, 540, -3200), + COL_VERTEX(-2743, 60, -3200), + COL_VERTEX(-2743, 540, -3200), + COL_VERTEX(-3600, -420, -3200), + COL_VERTEX(-3171, -420, -3200), + COL_VERTEX(-3171, -900, -3200), + COL_VERTEX(-3600, -900, -3200), + COL_VERTEX(-2743, -420, -3200), + COL_VERTEX(-2743, -900, -3200), + COL_VERTEX(-2314, -420, -3200), + COL_VERTEX(-2314, -900, -3200), + COL_VERTEX(-1886, -420, -3200), + COL_VERTEX(-1886, -900, -3200), + COL_VERTEX(-1457, -420, -3200), + COL_VERTEX(-1457, -900, -3200), + COL_VERTEX(-1029, -420, -3200), + COL_VERTEX(-1029, -900, -3200), + COL_VERTEX(-600, -420, -3200), + COL_VERTEX(-600, -900, -3200), + COL_VERTEX(-171, -420, -3200), + COL_VERTEX(-171, -900, -3200), + COL_VERTEX(257, -420, -3200), + COL_VERTEX(257, -900, -3200), + COL_VERTEX(686, -420, -3200), + COL_VERTEX(686, -900, -3200), + COL_VERTEX(1114, -420, -3200), + COL_VERTEX(1114, -900, -3200), + COL_VERTEX(1543, -420, -3200), + COL_VERTEX(1543, -900, -3200), + COL_VERTEX(1971, -420, -3200), + COL_VERTEX(1971, -900, -3200), + COL_VERTEX(2400, -420, -3200), + COL_VERTEX(2400, -900, -3200), + COL_VERTEX(2829, -420, -3200), + COL_VERTEX(2829, -900, -3200), + COL_VERTEX(3257, -420, -3200), + COL_VERTEX(3257, -900, -3200), + COL_VERTEX(3686, -420, -3200), + COL_VERTEX(3686, -900, -3200), + COL_VERTEX(4114, -420, -3200), + COL_VERTEX(4114, -900, -3200), + COL_VERTEX(4543, -420, -3200), + COL_VERTEX(4543, -900, -3200), + COL_VERTEX(5713, -900, -6560), + COL_VERTEX(5713, -420, -6560), + COL_VERTEX(6027, -900, -6320), + COL_VERTEX(6027, -420, -6320), + COL_VERTEX(6340, -900, -6080), + COL_VERTEX(6340, -420, -6080), + COL_VERTEX(6653, -900, -5840), + COL_VERTEX(6653, -420, -5840), + COL_VERTEX(6967, -900, -5600), + COL_VERTEX(6967, -420, -5600), + COL_VERTEX(7280, -900, -5360), + COL_VERTEX(7280, -420, -5360), + COL_VERTEX(7593, -900, -5120), + COL_VERTEX(7593, -420, -5120), + COL_VERTEX(5713, 60, -6560), + COL_VERTEX(6027, 60, -6320), + COL_VERTEX(6340, 60, -6080), + COL_VERTEX(6653, 60, -5840), + COL_VERTEX(6967, 60, -5600), + COL_VERTEX(7280, 60, -5360), + COL_VERTEX(7593, 60, -5120), + COL_VERTEX(5713, 542, -6560), + COL_VERTEX(6027, 543, -6320), + COL_VERTEX(6340, 545, -6080), + COL_VERTEX(6653, 547, -5840), + COL_VERTEX(6967, 549, -5600), + COL_VERTEX(7280, 550, -5360), + COL_VERTEX(7593, 552, -5120), + COL_VERTEX(-4200, 540, -3800), + COL_VERTEX(-4500, 540, -4100), + COL_VERTEX(-4800, 540, -5600), + COL_VERTEX(-4800, 1020, -5600), + COL_VERTEX(-4500, 540, -5900), + COL_VERTEX(-4500, 1020, -5900), + COL_VERTEX(-4200, 540, -6200), + COL_VERTEX(-4200, 1020, -6200), + COL_VERTEX(-5100, 1020, -6800), + COL_VERTEX(-5100, 1020, -6300), + COL_VERTEX(-5900, 1020, -4200), + COL_VERTEX(-5900, 1020, -4700), + COL_VERTEX(-5900, 1020, -3200), + COL_VERTEX(-5900, 1020, -3700), + COL_VERTEX(-5100, 1020, -3700), + COL_VERTEX(-5500, 1020, -3700), + COL_VERTEX(-5500, 1020, -3200), + COL_VERTEX(-5500, 1020, -4200), + COL_VERTEX(-5500, 1020, -4700), + COL_VERTEX(-5900, 1020, -5300), + COL_VERTEX(-5900, 1020, -5800), + COL_VERTEX(-5100, 1020, -5800), + COL_VERTEX(-5500, 1020, -5800), + COL_VERTEX(-5500, 1020, -5300), + COL_VERTEX(-5500, 1020, -6300), + COL_VERTEX(-5500, 1020, -6800), + COL_VERTEX(-8460, 1980, -1100), + COL_VERTEX(-8460, 1980, -1625), + COL_VERTEX(-9180, 1980, -1625), + COL_VERTEX(-8460, 1980, -2150), + COL_VERTEX(-9180, 1980, -2150), + COL_VERTEX(-6300, 1980, -1625), + COL_VERTEX(-7020, 1980, -1625), + COL_VERTEX(-7020, 1980, -1100), + COL_VERTEX(-7740, 1980, -1625), + COL_VERTEX(-7740, 1980, -1100), + COL_VERTEX(-7020, 1980, -2150), + COL_VERTEX(-7740, 1980, -2150), + COL_VERTEX(-7020, 1980, -2675), + COL_VERTEX(-7740, 1980, -2675), + COL_VERTEX(-7020, 1980, -3200), + COL_VERTEX(-7740, 1980, -3200), + COL_VERTEX(-8460, 1980, -6800), + COL_VERTEX(-8460, 1980, -7310), + COL_VERTEX(-9180, 1980, -7310), + COL_VERTEX(-8460, 1980, -7820), + COL_VERTEX(-9180, 1980, -7820), + COL_VERTEX(-7020, 1980, -7310), + COL_VERTEX(-7020, 1980, -6800), + COL_VERTEX(-7740, 1980, -7310), + COL_VERTEX(-7740, 1980, -6800), + COL_VERTEX(-7020, 1980, -7820), + COL_VERTEX(-7740, 1980, -7820), + COL_VERTEX(-7020, 1980, -8330), + COL_VERTEX(-7740, 1980, -8330), + COL_VERTEX(-7020, 1980, -8840), + COL_VERTEX(-7740, 1980, -8840), + COL_VERTEX(-9180, 2460, -5500), + COL_VERTEX(-8460, 2460, -5500), + COL_VERTEX(-8460, 2460, -6000), + COL_VERTEX(-9180, 2460, -6000), + COL_VERTEX(-7740, 2460, -5500), + COL_VERTEX(-7740, 2460, -6000), + COL_VERTEX(-9180, 2460, -4000), + COL_VERTEX(-8460, 2460, -4000), + COL_VERTEX(-8460, 2460, -4500), + COL_VERTEX(-9180, 2460, -4500), + COL_VERTEX(-8460, 2460, -5000), + COL_VERTEX(-9180, 2460, -5000), + COL_VERTEX(-7740, 2460, -4000), + COL_VERTEX(-7740, 2460, -4500), + COL_VERTEX(-7740, 2460, -5000), + COL_VERTEX(-7020, 2460, -4000), + COL_VERTEX(-7020, 2460, -4500), + COL_VERTEX(-7020, 2460, -5000), + COL_VERTEX(-6300, 2460, -4500), + COL_VERTEX(-6300, 2460, -5000), + COL_VERTEX(-3600, 120, -6400), + COL_VERTEX(-3600, 120, -6800), + COL_VERTEX(-3600, 120, -6000), + COL_VERTEX(-3600, 120, -5600), + COL_VERTEX(-3600, 120, -5200), + COL_VERTEX(-3600, 120, -4800), + COL_VERTEX(-3600, 120, -4400), + COL_VERTEX(-3600, 120, -4000), + COL_VERTEX(-3480, 120, -6000), + COL_VERTEX(-3480, 120, -5600), + COL_VERTEX(-3480, 120, -5200), + COL_VERTEX(-3480, 120, -4800), + COL_VERTEX(-3480, 120, -4400), + COL_VERTEX(-3480, 120, -4000), + COL_VERTEX(-3480, 60, -4000), + COL_VERTEX(-3480, 60, -4400), + COL_VERTEX(-3480, 60, -4800), + COL_VERTEX(-3480, 60, -5200), + COL_VERTEX(-3480, 60, -5600), + COL_VERTEX(-3480, 60, -6000), + COL_VERTEX(-3480, -420, -6400), + COL_VERTEX(-3480, -420, -6000), + COL_VERTEX(-3480, -420, -5600), + COL_VERTEX(-3480, -420, -5200), + COL_VERTEX(-3480, -420, -4800), + COL_VERTEX(-3480, -420, -4400), + COL_VERTEX(-3480, -420, -4000), + COL_VERTEX(-5236, 900, -1100), + COL_VERTEX(-6300, 1320, -1100), + COL_VERTEX(-6300, 1740, -1100), + COL_VERTEX(-6300, 1947, -1100), + COL_VERTEX(-5236, 1947, -1100), + COL_VERTEX(-5236, 2995, -1100), + COL_VERTEX(-4173, 2989, -1100), + COL_VERTEX(-4173, 1945, -1100), + COL_VERTEX(-3109, 2984, -1100), + COL_VERTEX(-3109, 1942, -1100), + COL_VERTEX(-2045, 2978, -1100), + COL_VERTEX(-2045, 1939, -1100), + COL_VERTEX(-982, 2973, -1100), + COL_VERTEX(-982, 1936, -1100), + COL_VERTEX(82, 2967, -1100), + COL_VERTEX(82, 1934, -1100), + COL_VERTEX(1145, 2962, -1100), + COL_VERTEX(1145, 1931, -1100), + COL_VERTEX(2209, 2956, -1100), + COL_VERTEX(2209, 1928, -1100), + COL_VERTEX(3273, 2951, -1100), + COL_VERTEX(3273, 1925, -1100), + COL_VERTEX(-8604, 2580, -1100), + COL_VERTEX(-9180, 2580, -1100), + COL_VERTEX(-8604, 2160, -1100), + COL_VERTEX(-9180, 2160, -1100), + COL_VERTEX(-8604, 1740, -1100), + COL_VERTEX(-9180, 1740, -1100), + COL_VERTEX(-6300, 2580, -1100), + COL_VERTEX(-6876, 2580, -1100), + COL_VERTEX(-7452, 2580, -1100), + COL_VERTEX(-8028, 2580, -1100), + COL_VERTEX(-6300, 2160, -1100), + COL_VERTEX(-6876, 2160, -1100), + COL_VERTEX(-7452, 2160, -1100), + COL_VERTEX(-8028, 2160, -1100), + COL_VERTEX(-6876, 1740, -1100), + COL_VERTEX(-7452, 1740, -1100), + COL_VERTEX(-8028, 1740, -1100), + COL_VERTEX(3273, 900, -1100), + COL_VERTEX(4336, 900, -1100), + COL_VERTEX(2209, 900, -1100), + COL_VERTEX(1145, 900, -1100), + COL_VERTEX(82, 900, -1100), + COL_VERTEX(-982, 900, -1100), + COL_VERTEX(-2045, 900, -1100), + COL_VERTEX(-3109, 900, -1100), + COL_VERTEX(-4173, 900, -1100), + COL_VERTEX(4336, 1950, -8840), + COL_VERTEX(4336, 900, -8840), + COL_VERTEX(5400, 1950, -8840), + COL_VERTEX(-6300, 1950, -8840), + COL_VERTEX(-5236, 900, -8840), + COL_VERTEX(-5236, 1950, -8840), + COL_VERTEX(-4173, 900, -8840), + COL_VERTEX(-4173, 1950, -8840), + COL_VERTEX(-3109, 900, -8840), + COL_VERTEX(-3109, 1950, -8840), + COL_VERTEX(-2045, 900, -8840), + COL_VERTEX(-2045, 1950, -8840), + COL_VERTEX(-982, 900, -8840), + COL_VERTEX(-982, 1950, -8840), + COL_VERTEX(82, 900, -8840), + COL_VERTEX(82, 1950, -8840), + COL_VERTEX(1145, 900, -8840), + COL_VERTEX(1145, 1950, -8840), + COL_VERTEX(2209, 900, -8840), + COL_VERTEX(2209, 1950, -8840), + COL_VERTEX(3273, 900, -8840), + COL_VERTEX(3273, 1950, -8840), + COL_VERTEX(3273, 3000, -8840), + COL_VERTEX(4336, 3000, -8840), + COL_VERTEX(2209, 3000, -8840), + COL_VERTEX(1145, 3000, -8840), + COL_VERTEX(82, 3000, -8840), + COL_VERTEX(-982, 3000, -8840), + COL_VERTEX(-2045, 3000, -8840), + COL_VERTEX(-3109, 3000, -8840), + COL_VERTEX(-4173, 3000, -8840), + COL_VERTEX(-5236, 3000, -8840), + COL_VERTEX(5400, 815, -8840), + COL_VERTEX(6105, 815, -8300), + COL_VERTEX(6105, 1942, -8300), + COL_VERTEX(6810, 815, -7760), + COL_VERTEX(6810, 1935, -7760), + COL_VERTEX(6810, 2970, -7760), + COL_VERTEX(-3800, 372, 5264), + COL_VERTEX(-3800, 936, 5264), + COL_VERTEX(-3350, 936, 5450), + COL_VERTEX(-3350, 512, 5450), + COL_VERTEX(-3164, 936, 5900), + COL_VERTEX(-3164, 512, 5900), + COL_VERTEX(-3350, 936, 6350), + COL_VERTEX(-3350, 512, 6350), + COL_VERTEX(-3800, 936, 6536), + COL_VERTEX(-3800, 372, 6536), + COL_VERTEX(-4250, 936, 6350), + COL_VERTEX(-4250, 372, 6350), + COL_VERTEX(-4436, 936, 5900), + COL_VERTEX(-4436, 372, 5900), + COL_VERTEX(-3875, 936, 5825), + COL_VERTEX(-3906, 936, 5900), + COL_VERTEX(-4250, 936, 5450), + COL_VERTEX(-4250, 372, 5450), + COL_VERTEX(-4250, -756, 5450), + COL_VERTEX(-4250, -192, 5450), + COL_VERTEX(-3800, -192, 5264), + COL_VERTEX(-3800, -756, 5264), + COL_VERTEX(-4436, -756, 5900), + COL_VERTEX(-4436, -192, 5900), + COL_VERTEX(-4250, -756, 6350), + COL_VERTEX(-4250, -192, 6350), + COL_VERTEX(-3800, -756, 6536), + COL_VERTEX(-3800, -192, 6536), + COL_VERTEX(-3350, -756, 6350), + COL_VERTEX(-3350, -192, 6350), + COL_VERTEX(-2860, 372, 6350), + COL_VERTEX(-2674, 372, 5900), + COL_VERTEX(-2860, -52, 6350), + COL_VERTEX(-2860, -756, 6350), + COL_VERTEX(-2860, -474, 6350), + COL_VERTEX(-2860, 372, 5450), + COL_VERTEX(-3350, -192, 5450), + COL_VERTEX(-3350, -756, 5450), + COL_VERTEX(-2860, -52, 5450), + COL_VERTEX(-2674, -52, 5900), + COL_VERTEX(-2184, -192, 5900), + COL_VERTEX(-2370, -192, 5450), + COL_VERTEX(-2860, -756, 5450), + COL_VERTEX(-2370, -756, 6350), + COL_VERTEX(-2184, -756, 5900), + COL_VERTEX(-2370, -192, 6350), + COL_VERTEX(-2370, -474, 6350), + COL_VERTEX(-2370, -756, 5450), + COL_VERTEX(-2370, -756, 6560), + COL_VERTEX(-2860, -756, 6560), + COL_VERTEX(-2860, -474, 6560), + COL_VERTEX(-2370, -474, 6560), + COL_VERTEX(-4185, 936, 6285), + COL_VERTEX(-4345, 936, 5900), + COL_VERTEX(-4345, 1636, 5900), + COL_VERTEX(-4185, 1636, 6285), + COL_VERTEX(-3415, 936, 5515), + COL_VERTEX(-3255, 936, 5900), + COL_VERTEX(-3415, 936, 6285), + COL_VERTEX(-3800, 1636, 6536), + COL_VERTEX(-4250, 1636, 6350), + COL_VERTEX(-3800, 936, 6445), + COL_VERTEX(-3800, 1636, 6445), + COL_VERTEX(-3415, 1636, 6285), + COL_VERTEX(-3350, 1636, 6350), + COL_VERTEX(-4436, 1636, 5900), + COL_VERTEX(-4250, 1636, 5450), + COL_VERTEX(-4250, 1706, 6350), + COL_VERTEX(-4436, 1706, 5900), + COL_VERTEX(-4185, 1636, 5515), + COL_VERTEX(-3800, 1706, 6536), + COL_VERTEX(-3350, 1706, 6350), + COL_VERTEX(-3350, 2506, 6350), + COL_VERTEX(-3800, 2506, 6536), + COL_VERTEX(-4185, 936, 5515), + COL_VERTEX(-3800, 1636, 5264), + COL_VERTEX(-3800, 936, 5355), + COL_VERTEX(-3800, 1636, 5355), + COL_VERTEX(-3415, 1636, 5515), + COL_VERTEX(-3350, 1636, 5450), + COL_VERTEX(-4250, 1706, 5450), + COL_VERTEX(-4436, 2506, 5900), + COL_VERTEX(-4250, 2506, 5450), + COL_VERTEX(-3415, 1706, 6285), + COL_VERTEX(-3415, 2506, 6285), + COL_VERTEX(-3350, 1706, 5450), + COL_VERTEX(-3800, 1706, 5264), + COL_VERTEX(-3800, 2506, 5264), + COL_VERTEX(-3350, 2506, 5450), + COL_VERTEX(-4250, 2506, 6350), + COL_VERTEX(-3415, 1706, 5515), + COL_VERTEX(-3415, 2506, 5515), + COL_VERTEX(-3800, 936, 5794), + COL_VERTEX(-3725, 936, 5825), + COL_VERTEX(-3694, 936, 5900), + COL_VERTEX(-3725, 936, 5975), + COL_VERTEX(-3800, 936, 6006), + COL_VERTEX(-3875, 936, 5975), + COL_VERTEX(-4185, 2506, 5515), + COL_VERTEX(-4345, 2506, 5900), + COL_VERTEX(-4185, 2506, 6285), + COL_VERTEX(-3800, 2506, 5355), + COL_VERTEX(-3800, 2506, 6445), + COL_VERTEX(-4380, 30, -5180), + COL_VERTEX(-3660, 450, -5180), + COL_VERTEX(-3660, 30, -5180), + COL_VERTEX(-3660, 450, -4820), + COL_VERTEX(-3660, 30, -4820), + COL_VERTEX(-4380, 30, -4820), + COL_TRI_INIT(SURFACE_DEFAULT, 213), + COL_TRI(0, 1, 2), + COL_TRI(0, 2, 3), + COL_TRI(0, 3, 4), + COL_TRI(0, 4, 5), + COL_TRI(5, 4, 6), + COL_TRI(5, 6, 7), + COL_TRI(7, 6, 8), + COL_TRI(7, 8, 9), + COL_TRI(9, 8, 10), + COL_TRI(9, 10, 11), + COL_TRI(9, 11, 12), + COL_TRI(9, 12, 13), + COL_TRI(13, 12, 14), + COL_TRI(13, 14, 15), + COL_TRI(15, 14, 16), + COL_TRI(15, 16, 17), + COL_TRI(16, 18, 19), + COL_TRI(16, 19, 17), + COL_TRI(2, 1, 20), + COL_TRI(2, 20, 21), + COL_TRI(22, 2, 21), + COL_TRI(22, 21, 23), + COL_TRI(24, 22, 23), + COL_TRI(25, 26, 27), + COL_TRI(24, 23, 25), + COL_TRI(28, 24, 25), + COL_TRI(25, 27, 29), + COL_TRI(25, 29, 30), + COL_TRI(31, 28, 25), + COL_TRI(32, 33, 31), + COL_TRI(34, 32, 31), + COL_TRI(31, 25, 30), + COL_TRI(31, 30, 35), + COL_TRI(36, 34, 31), + COL_TRI(31, 35, 37), + COL_TRI(37, 36, 31), + COL_TRI(38, 39, 40), + COL_TRI(38, 40, 41), + COL_TRI(41, 40, 42), + COL_TRI(41, 42, 43), + COL_TRI(44, 45, 46), + COL_TRI(44, 46, 47), + COL_TRI(48, 49, 50), + COL_TRI(48, 50, 51), + COL_TRI(52, 53, 54), + COL_TRI(52, 54, 55), + COL_TRI(43, 42, 56), + COL_TRI(43, 56, 57), + COL_TRI(58, 59, 60), + COL_TRI(55, 54, 61), + COL_TRI(58, 60, 55), + COL_TRI(55, 61, 58), + COL_TRI(62, 63, 64), + COL_TRI(62, 64, 65), + COL_TRI(66, 67, 63), + COL_TRI(66, 63, 62), + COL_TRI(57, 56, 68), + COL_TRI(57, 68, 69), + COL_TRI(68, 56, 70), + COL_TRI(68, 70, 71), + COL_TRI(70, 56, 72), + COL_TRI(70, 72, 73), + COL_TRI(74, 75, 39), + COL_TRI(74, 39, 38), + COL_TRI(76, 77, 78), + COL_TRI(76, 78, 79), + COL_TRI(61, 80, 58), + COL_TRI(80, 61, 81), + COL_TRI(80, 81, 82), + COL_TRI(82, 81, 67), + COL_TRI(82, 67, 66), + COL_TRI(83, 84, 85), + COL_TRI(83, 85, 86), + COL_TRI(84, 76, 79), + COL_TRI(84, 79, 85), + COL_TRI(87, 88, 89), + COL_TRI(87, 89, 90), + COL_TRI(91, 92, 93), + COL_TRI(91, 93, 94), + COL_TRI(88, 95, 96), + COL_TRI(88, 96, 89), + COL_TRI(92, 97, 98), + COL_TRI(92, 98, 93), + COL_TRI(95, 99, 100), + COL_TRI(95, 100, 96), + COL_TRI(97, 101, 102), + COL_TRI(97, 102, 98), + COL_TRI(103, 104, 105), + COL_TRI(103, 105, 106), + COL_TRI(104, 48, 51), + COL_TRI(104, 51, 105), + COL_TRI(107, 108, 109), + COL_TRI(107, 109, 110), + COL_TRI(111, 112, 113), + COL_TRI(111, 113, 114), + COL_TRI(108, 115, 116), + COL_TRI(108, 116, 109), + COL_TRI(112, 117, 118), + COL_TRI(112, 118, 113), + COL_TRI(115, 119, 120), + COL_TRI(115, 120, 116), + COL_TRI(117, 121, 122), + COL_TRI(117, 122, 118), + COL_TRI(123, 124, 99), + COL_TRI(123, 99, 95), + COL_TRI(125, 123, 95), + COL_TRI(125, 95, 88), + COL_TRI(126, 125, 88), + COL_TRI(126, 88, 87), + COL_TRI(96, 100, 101), + COL_TRI(96, 101, 97), + COL_TRI(89, 96, 97), + COL_TRI(89, 97, 92), + COL_TRI(90, 89, 92), + COL_TRI(90, 92, 91), + COL_TRI(93, 98, 76), + COL_TRI(93, 76, 84), + COL_TRI(94, 93, 84), + COL_TRI(94, 84, 83), + COL_TRI(98, 102, 77), + COL_TRI(98, 77, 76), + COL_TRI(79, 78, 119), + COL_TRI(79, 119, 115), + COL_TRI(85, 79, 115), + COL_TRI(85, 115, 108), + COL_TRI(86, 85, 108), + COL_TRI(86, 108, 107), + COL_TRI(116, 120, 121), + COL_TRI(116, 121, 117), + COL_TRI(109, 116, 117), + COL_TRI(109, 117, 112), + COL_TRI(110, 109, 112), + COL_TRI(110, 112, 111), + COL_TRI(113, 118, 48), + COL_TRI(113, 48, 104), + COL_TRI(114, 113, 104), + COL_TRI(114, 104, 103), + COL_TRI(118, 122, 49), + COL_TRI(118, 49, 48), + COL_TRI(127, 128, 60), + COL_TRI(127, 60, 59), + COL_TRI(128, 52, 55), + COL_TRI(128, 55, 60), + COL_TRI(129, 130, 131), + COL_TRI(129, 131, 132), + COL_TRI(133, 134, 135), + COL_TRI(133, 135, 136), + COL_TRI(130, 137, 138), + COL_TRI(130, 138, 131), + COL_TRI(134, 139, 140), + COL_TRI(134, 140, 135), + COL_TRI(137, 141, 142), + COL_TRI(137, 142, 138), + COL_TRI(139, 143, 144), + COL_TRI(139, 144, 140), + COL_TRI(145, 146, 147), + COL_TRI(145, 147, 148), + COL_TRI(146, 44, 47), + COL_TRI(146, 47, 147), + COL_TRI(149, 150, 151), + COL_TRI(149, 151, 152), + COL_TRI(153, 154, 155), + COL_TRI(153, 155, 156), + COL_TRI(150, 157, 158), + COL_TRI(150, 158, 151), + COL_TRI(154, 159, 160), + COL_TRI(154, 160, 155), + COL_TRI(157, 161, 162), + COL_TRI(157, 162, 158), + COL_TRI(159, 163, 164), + COL_TRI(159, 164, 160), + COL_TRI(135, 140, 52), + COL_TRI(135, 52, 128), + COL_TRI(136, 135, 128), + COL_TRI(136, 128, 127), + COL_TRI(140, 144, 53), + COL_TRI(140, 53, 52), + COL_TRI(138, 142, 143), + COL_TRI(138, 143, 139), + COL_TRI(131, 138, 139), + COL_TRI(131, 139, 134), + COL_TRI(132, 131, 134), + COL_TRI(132, 134, 133), + COL_TRI(47, 46, 141), + COL_TRI(47, 141, 137), + COL_TRI(147, 47, 137), + COL_TRI(147, 137, 130), + COL_TRI(148, 147, 130), + COL_TRI(148, 130, 129), + COL_TRI(155, 160, 44), + COL_TRI(155, 44, 146), + COL_TRI(156, 155, 146), + COL_TRI(156, 146, 145), + COL_TRI(160, 164, 45), + COL_TRI(160, 45, 44), + COL_TRI(158, 162, 163), + COL_TRI(158, 163, 159), + COL_TRI(151, 158, 159), + COL_TRI(151, 159, 154), + COL_TRI(152, 151, 154), + COL_TRI(152, 154, 153), + COL_TRI(165, 166, 161), + COL_TRI(165, 161, 157), + COL_TRI(167, 165, 157), + COL_TRI(167, 157, 150), + COL_TRI(168, 167, 150), + COL_TRI(168, 150, 149), + COL_TRI(169, 170, 171), + COL_TRI(171, 172, 173), + COL_TRI(173, 174, 175), + COL_TRI(175, 176, 169), + COL_TRI(169, 171, 173), + COL_TRI(173, 175, 169), + COL_TRI_INIT(SURFACE_HARD, 1117), + COL_TRI(1, 5, 177), + COL_TRI(1, 177, 178), + COL_TRI(4, 2, 179), + COL_TRI(4, 179, 180), + COL_TRI(14, 181, 18), + COL_TRI(14, 18, 16), + COL_TRI(182, 15, 17), + COL_TRI(182, 17, 19), + COL_TRI(182, 19, 18), + COL_TRI(182, 18, 181), + COL_TRI(183, 184, 182), + COL_TRI(183, 182, 181), + COL_TRI(185, 184, 183), + COL_TRI(185, 183, 186), + COL_TRI(185, 186, 187), + COL_TRI(185, 187, 188), + COL_TRI(189, 190, 185), + COL_TRI(189, 185, 188), + COL_TRI(189, 180, 177), + COL_TRI(189, 177, 190), + COL_TRI(177, 5, 7), + COL_TRI(177, 7, 190), + COL_TRI(4, 180, 189), + COL_TRI(4, 189, 6), + COL_TRI(190, 7, 9), + COL_TRI(190, 9, 185), + COL_TRI(6, 189, 188), + COL_TRI(6, 188, 8), + COL_TRI(191, 187, 186), + COL_TRI(191, 186, 11), + COL_TRI(8, 188, 187), + COL_TRI(8, 187, 191), + COL_TRI(183, 12, 11), + COL_TRI(183, 11, 186), + COL_TRI(185, 9, 13), + COL_TRI(185, 13, 184), + COL_TRI(184, 13, 15), + COL_TRI(184, 15, 182), + COL_TRI(12, 183, 181), + COL_TRI(12, 181, 14), + COL_TRI(192, 31, 33), + COL_TRI(192, 33, 193), + COL_TRI(25, 194, 195), + COL_TRI(25, 195, 26), + COL_TRI(196, 197, 198), + COL_TRI(196, 198, 199), + COL_TRI(200, 201, 202), + COL_TRI(200, 202, 203), + COL_TRI(204, 205, 206), + COL_TRI(204, 206, 207), + COL_TRI(196, 199, 208), + COL_TRI(196, 208, 209), + COL_TRI(210, 211, 212), + COL_TRI(210, 212, 213), + COL_TRI(214, 215, 216), + COL_TRI(214, 216, 217), + COL_TRI(218, 219, 220), + COL_TRI(218, 220, 221), + COL_TRI(27, 26, 219), + COL_TRI(27, 219, 218), + COL_TRI(200, 203, 54), + COL_TRI(200, 54, 222), + COL_TRI(223, 26, 195), + COL_TRI(223, 195, 224), + COL_TRI(177, 180, 225), + COL_TRI(177, 225, 226), + COL_TRI(180, 179, 227), + COL_TRI(180, 227, 225), + COL_TRI(178, 177, 226), + COL_TRI(178, 226, 228), + COL_TRI(229, 178, 228), + COL_TRI(229, 228, 230), + COL_TRI(192, 193, 231), + COL_TRI(192, 231, 232), + COL_TRI(233, 234, 235), + COL_TRI(233, 235, 236), + COL_TRI(230, 228, 237), + COL_TRI(233, 236, 238), + COL_TRI(238, 230, 237), + COL_TRI(238, 237, 233), + COL_TRI(239, 240, 241), + COL_TRI(239, 241, 242), + COL_TRI(195, 234, 243), + COL_TRI(195, 243, 126), + COL_TRI(231, 193, 166), + COL_TRI(231, 166, 241), + COL_TRI(126, 243, 244), + COL_TRI(126, 244, 245), + COL_TRI(241, 166, 246), + COL_TRI(241, 246, 247), + COL_TRI(248, 243, 249), + COL_TRI(250, 226, 251), + COL_TRI(248, 249, 250), + COL_TRI(250, 251, 248), + COL_TRI(226, 225, 252), + COL_TRI(226, 252, 251), + COL_TRI(253, 254, 255), + COL_TRI(253, 255, 256), + COL_TRI(251, 252, 257), + COL_TRI(251, 257, 258), + COL_TRI(259, 260, 261), + COL_TRI(259, 261, 262), + COL_TRI(263, 241, 247), + COL_TRI(247, 264, 265), + COL_TRI(247, 265, 266), + COL_TRI(267, 263, 247), + COL_TRI(247, 266, 267), + COL_TRI(252, 225, 268), + COL_TRI(241, 263, 252), + COL_TRI(268, 241, 252), + COL_TRI(269, 244, 243), + COL_TRI(243, 248, 270), + COL_TRI(243, 270, 271), + COL_TRI(243, 271, 269), + COL_TRI(272, 273, 274), + COL_TRI(272, 274, 275), + COL_TRI(248, 251, 258), + COL_TRI(248, 258, 276), + COL_TRI(252, 263, 274), + COL_TRI(252, 274, 257), + COL_TRI(277, 278, 279), + COL_TRI(277, 279, 61), + COL_TRI(278, 280, 281), + COL_TRI(278, 281, 279), + COL_TRI(280, 282, 283), + COL_TRI(280, 283, 281), + COL_TRI(279, 281, 284), + COL_TRI(279, 284, 285), + COL_TRI(284, 286, 287), + COL_TRI(284, 287, 288), + COL_TRI(281, 283, 286), + COL_TRI(281, 286, 284), + COL_TRI(61, 279, 285), + COL_TRI(61, 285, 81), + COL_TRI(67, 289, 290), + COL_TRI(67, 290, 63), + COL_TRI(81, 285, 289), + COL_TRI(81, 289, 67), + COL_TRI(285, 284, 288), + COL_TRI(285, 288, 289), + COL_TRI(208, 106, 105), + COL_TRI(51, 50, 291), + COL_TRI(208, 105, 51), + COL_TRI(51, 291, 208), + COL_TRI(289, 288, 292), + COL_TRI(289, 292, 290), + COL_TRI(288, 287, 293), + COL_TRI(288, 293, 292), + COL_TRI(294, 295, 296), + COL_TRI(294, 296, 297), + COL_TRI(296, 298, 299), + COL_TRI(296, 299, 297), + COL_TRI(298, 300, 301), + COL_TRI(298, 301, 299), + COL_TRI(300, 302, 303), + COL_TRI(300, 303, 301), + COL_TRI(304, 63, 290), + COL_TRI(290, 298, 296), + COL_TRI(290, 296, 305), + COL_TRI(290, 305, 304), + COL_TRI(290, 292, 300), + COL_TRI(290, 300, 298), + COL_TRI(292, 293, 302), + COL_TRI(292, 302, 300), + COL_TRI(306, 307, 308), + COL_TRI(306, 308, 309), + COL_TRI(264, 310, 311), + COL_TRI(264, 311, 255), + COL_TRI(312, 255, 311), + COL_TRI(312, 311, 313), + COL_TRI(312, 313, 314), + COL_TRI(312, 314, 315), + COL_TRI(315, 314, 316), + COL_TRI(315, 316, 317), + COL_TRI(261, 318, 319), + COL_TRI(261, 319, 320), + COL_TRI(317, 316, 318), + COL_TRI(317, 318, 261), + COL_TRI(311, 310, 321), + COL_TRI(311, 321, 322), + COL_TRI(310, 323, 324), + COL_TRI(310, 324, 321), + COL_TRI(314, 313, 325), + COL_TRI(314, 325, 326), + COL_TRI(327, 319, 328), + COL_TRI(328, 329, 330), + COL_TRI(328, 330, 331), + COL_TRI(332, 327, 328), + COL_TRI(328, 331, 332), + COL_TRI(308, 329, 328), + COL_TRI(308, 328, 333), + COL_TRI(319, 318, 334), + COL_TRI(319, 334, 335), + COL_TRI(316, 314, 326), + COL_TRI(316, 326, 336), + COL_TRI(313, 311, 322), + COL_TRI(313, 322, 325), + COL_TRI(318, 316, 336), + COL_TRI(318, 336, 334), + COL_TRI(324, 323, 337), + COL_TRI(324, 337, 338), + COL_TRI(339, 340, 341), + COL_TRI(339, 341, 342), + COL_TRI(343, 338, 337), + COL_TRI(343, 337, 344), + COL_TRI(345, 346, 343), + COL_TRI(344, 345, 343), + COL_TRI(343, 346, 347), + COL_TRI(343, 347, 348), + COL_TRI(349, 350, 351), + COL_TRI(349, 351, 352), + COL_TRI(349, 346, 342), + COL_TRI(342, 341, 350), + COL_TRI(342, 350, 349), + COL_TRI(347, 346, 349), + COL_TRI(347, 349, 353), + COL_TRI(354, 352, 355), + COL_TRI(354, 355, 356), + COL_TRI(353, 349, 352), + COL_TRI(353, 352, 354), + COL_TRI(308, 333, 357), + COL_TRI(308, 357, 358), + COL_TRI(328, 335, 359), + COL_TRI(328, 359, 360), + COL_TRI(333, 328, 361), + COL_TRI(333, 361, 362), + COL_TRI(333, 362, 357), + COL_TRI(360, 359, 363), + COL_TRI(360, 363, 364), + COL_TRI(328, 360, 365), + COL_TRI(328, 365, 366), + COL_TRI(356, 355, 367), + COL_TRI(356, 367, 368), + COL_TRI(352, 351, 369), + COL_TRI(352, 369, 355), + COL_TRI(355, 369, 370), + COL_TRI(355, 370, 371), + COL_TRI(367, 355, 371), + COL_TRI(367, 371, 372), + COL_TRI(291, 308, 358), + COL_TRI(64, 63, 304), + COL_TRI(64, 304, 373), + COL_TRI(373, 304, 374), + COL_TRI(373, 374, 375), + COL_TRI(375, 374, 305), + COL_TRI(375, 305, 376), + COL_TRI(376, 305, 295), + COL_TRI(376, 295, 294), + COL_TRI(33, 377, 378), + COL_TRI(33, 378, 193), + COL_TRI(377, 379, 380), + COL_TRI(377, 380, 378), + COL_TRI(379, 381, 382), + COL_TRI(379, 382, 380), + COL_TRI(381, 383, 384), + COL_TRI(381, 384, 382), + COL_TRI(383, 385, 386), + COL_TRI(383, 386, 384), + COL_TRI(385, 387, 388), + COL_TRI(385, 388, 386), + COL_TRI(387, 389, 390), + COL_TRI(387, 390, 388), + COL_TRI(389, 391, 392), + COL_TRI(389, 392, 390), + COL_TRI(391, 393, 394), + COL_TRI(391, 394, 392), + COL_TRI(393, 395, 396), + COL_TRI(393, 396, 394), + COL_TRI(395, 397, 398), + COL_TRI(395, 398, 396), + COL_TRI(397, 399, 400), + COL_TRI(397, 400, 398), + COL_TRI(399, 401, 402), + COL_TRI(399, 402, 400), + COL_TRI(401, 403, 404), + COL_TRI(401, 404, 402), + COL_TRI(403, 405, 406), + COL_TRI(403, 406, 404), + COL_TRI(405, 407, 408), + COL_TRI(405, 408, 406), + COL_TRI(407, 409, 410), + COL_TRI(407, 410, 408), + COL_TRI(409, 411, 412), + COL_TRI(409, 412, 410), + COL_TRI(411, 413, 414), + COL_TRI(411, 414, 412), + COL_TRI(413, 200, 222), + COL_TRI(413, 222, 414), + COL_TRI(202, 201, 415), + COL_TRI(202, 415, 416), + COL_TRI(201, 417, 418), + COL_TRI(201, 418, 415), + COL_TRI(417, 419, 420), + COL_TRI(417, 420, 418), + COL_TRI(419, 421, 422), + COL_TRI(419, 422, 420), + COL_TRI(421, 423, 424), + COL_TRI(421, 424, 422), + COL_TRI(423, 425, 426), + COL_TRI(423, 426, 424), + COL_TRI(425, 427, 428), + COL_TRI(425, 428, 426), + COL_TRI(427, 429, 430), + COL_TRI(427, 430, 428), + COL_TRI(429, 431, 432), + COL_TRI(429, 432, 430), + COL_TRI(431, 433, 434), + COL_TRI(431, 434, 432), + COL_TRI(433, 435, 436), + COL_TRI(433, 436, 434), + COL_TRI(435, 437, 438), + COL_TRI(435, 438, 436), + COL_TRI(437, 439, 440), + COL_TRI(437, 440, 438), + COL_TRI(439, 441, 442), + COL_TRI(439, 442, 440), + COL_TRI(441, 443, 444), + COL_TRI(441, 444, 442), + COL_TRI(443, 445, 446), + COL_TRI(443, 446, 444), + COL_TRI(445, 447, 448), + COL_TRI(445, 448, 446), + COL_TRI(447, 449, 450), + COL_TRI(447, 450, 448), + COL_TRI(449, 451, 452), + COL_TRI(449, 452, 450), + COL_TRI(451, 204, 207), + COL_TRI(451, 207, 452), + COL_TRI(33, 205, 204), + COL_TRI(33, 204, 377), + COL_TRI(377, 204, 451), + COL_TRI(377, 451, 379), + COL_TRI(379, 451, 449), + COL_TRI(379, 449, 381), + COL_TRI(381, 449, 447), + COL_TRI(381, 447, 383), + COL_TRI(383, 447, 445), + COL_TRI(383, 445, 385), + COL_TRI(385, 445, 443), + COL_TRI(385, 443, 387), + COL_TRI(387, 443, 441), + COL_TRI(387, 441, 389), + COL_TRI(389, 441, 439), + COL_TRI(389, 439, 391), + COL_TRI(391, 439, 437), + COL_TRI(391, 437, 393), + COL_TRI(393, 437, 435), + COL_TRI(393, 435, 395), + COL_TRI(395, 435, 433), + COL_TRI(395, 433, 397), + COL_TRI(397, 433, 431), + COL_TRI(397, 431, 399), + COL_TRI(399, 431, 429), + COL_TRI(399, 429, 401), + COL_TRI(401, 429, 427), + COL_TRI(401, 427, 403), + COL_TRI(403, 427, 425), + COL_TRI(403, 425, 405), + COL_TRI(405, 425, 423), + COL_TRI(405, 423, 407), + COL_TRI(407, 423, 421), + COL_TRI(407, 421, 409), + COL_TRI(409, 421, 419), + COL_TRI(409, 419, 411), + COL_TRI(411, 419, 417), + COL_TRI(411, 417, 413), + COL_TRI(413, 417, 201), + COL_TRI(413, 201, 200), + COL_TRI(198, 197, 453), + COL_TRI(198, 453, 106), + COL_TRI(197, 454, 455), + COL_TRI(197, 455, 453), + COL_TRI(454, 456, 457), + COL_TRI(454, 457, 455), + COL_TRI(456, 458, 459), + COL_TRI(456, 459, 457), + COL_TRI(458, 460, 461), + COL_TRI(458, 461, 459), + COL_TRI(460, 462, 463), + COL_TRI(460, 463, 461), + COL_TRI(462, 464, 465), + COL_TRI(462, 465, 463), + COL_TRI(464, 466, 467), + COL_TRI(464, 467, 465), + COL_TRI(466, 468, 469), + COL_TRI(466, 469, 467), + COL_TRI(468, 470, 471), + COL_TRI(468, 471, 469), + COL_TRI(470, 472, 473), + COL_TRI(470, 473, 471), + COL_TRI(472, 474, 475), + COL_TRI(472, 475, 473), + COL_TRI(474, 476, 477), + COL_TRI(474, 477, 475), + COL_TRI(476, 478, 479), + COL_TRI(476, 479, 477), + COL_TRI(478, 480, 481), + COL_TRI(478, 481, 479), + COL_TRI(480, 482, 483), + COL_TRI(480, 483, 481), + COL_TRI(482, 484, 485), + COL_TRI(482, 485, 483), + COL_TRI(484, 486, 487), + COL_TRI(484, 487, 485), + COL_TRI(486, 488, 489), + COL_TRI(486, 489, 487), + COL_TRI(488, 223, 224), + COL_TRI(488, 224, 489), + COL_TRI(490, 491, 492), + COL_TRI(490, 492, 493), + COL_TRI(491, 494, 495), + COL_TRI(491, 495, 492), + COL_TRI(494, 496, 497), + COL_TRI(494, 497, 495), + COL_TRI(496, 498, 499), + COL_TRI(496, 499, 497), + COL_TRI(498, 500, 501), + COL_TRI(498, 501, 499), + COL_TRI(500, 502, 503), + COL_TRI(500, 503, 501), + COL_TRI(502, 504, 505), + COL_TRI(502, 505, 503), + COL_TRI(504, 506, 507), + COL_TRI(504, 507, 505), + COL_TRI(506, 508, 509), + COL_TRI(506, 509, 507), + COL_TRI(508, 510, 511), + COL_TRI(508, 511, 509), + COL_TRI(510, 512, 513), + COL_TRI(510, 513, 511), + COL_TRI(512, 514, 515), + COL_TRI(512, 515, 513), + COL_TRI(514, 516, 517), + COL_TRI(514, 517, 515), + COL_TRI(516, 518, 519), + COL_TRI(516, 519, 517), + COL_TRI(518, 520, 521), + COL_TRI(518, 521, 519), + COL_TRI(520, 522, 523), + COL_TRI(520, 523, 521), + COL_TRI(522, 524, 525), + COL_TRI(522, 525, 523), + COL_TRI(524, 526, 527), + COL_TRI(524, 527, 525), + COL_TRI(526, 528, 529), + COL_TRI(526, 529, 527), + COL_TRI(528, 196, 209), + COL_TRI(528, 209, 529), + COL_TRI(490, 26, 223), + COL_TRI(490, 223, 491), + COL_TRI(491, 223, 488), + COL_TRI(491, 488, 494), + COL_TRI(494, 488, 486), + COL_TRI(494, 486, 496), + COL_TRI(496, 486, 484), + COL_TRI(496, 484, 498), + COL_TRI(498, 484, 482), + COL_TRI(498, 482, 500), + COL_TRI(500, 482, 480), + COL_TRI(500, 480, 502), + COL_TRI(502, 480, 478), + COL_TRI(502, 478, 504), + COL_TRI(504, 478, 476), + COL_TRI(504, 476, 506), + COL_TRI(506, 476, 474), + COL_TRI(506, 474, 508), + COL_TRI(508, 474, 472), + COL_TRI(508, 472, 510), + COL_TRI(510, 472, 470), + COL_TRI(510, 470, 512), + COL_TRI(512, 470, 468), + COL_TRI(512, 468, 514), + COL_TRI(514, 468, 466), + COL_TRI(514, 466, 516), + COL_TRI(516, 466, 464), + COL_TRI(516, 464, 518), + COL_TRI(518, 464, 462), + COL_TRI(518, 462, 520), + COL_TRI(520, 462, 460), + COL_TRI(520, 460, 522), + COL_TRI(522, 460, 458), + COL_TRI(522, 458, 524), + COL_TRI(524, 458, 456), + COL_TRI(524, 456, 526), + COL_TRI(526, 456, 454), + COL_TRI(526, 454, 528), + COL_TRI(528, 454, 197), + COL_TRI(528, 197, 196), + COL_TRI(202, 416, 530), + COL_TRI(202, 530, 531), + COL_TRI(531, 530, 532), + COL_TRI(531, 532, 533), + COL_TRI(533, 532, 534), + COL_TRI(533, 534, 535), + COL_TRI(535, 534, 536), + COL_TRI(535, 536, 537), + COL_TRI(537, 536, 538), + COL_TRI(537, 538, 539), + COL_TRI(539, 538, 540), + COL_TRI(539, 540, 541), + COL_TRI(541, 540, 542), + COL_TRI(541, 542, 543), + COL_TRI(543, 542, 282), + COL_TRI(543, 282, 280), + COL_TRI(203, 202, 531), + COL_TRI(203, 531, 544), + COL_TRI(544, 531, 533), + COL_TRI(544, 533, 545), + COL_TRI(545, 533, 535), + COL_TRI(545, 535, 546), + COL_TRI(546, 535, 537), + COL_TRI(546, 537, 547), + COL_TRI(547, 537, 539), + COL_TRI(547, 539, 548), + COL_TRI(548, 539, 541), + COL_TRI(548, 541, 549), + COL_TRI(549, 541, 543), + COL_TRI(549, 543, 550), + COL_TRI(550, 543, 280), + COL_TRI(550, 280, 278), + COL_TRI(54, 203, 544), + COL_TRI(54, 544, 551), + COL_TRI(551, 544, 545), + COL_TRI(551, 545, 552), + COL_TRI(552, 545, 546), + COL_TRI(552, 546, 553), + COL_TRI(553, 546, 547), + COL_TRI(553, 547, 554), + COL_TRI(554, 547, 548), + COL_TRI(554, 548, 555), + COL_TRI(555, 548, 549), + COL_TRI(555, 549, 556), + COL_TRI(556, 549, 550), + COL_TRI(556, 550, 557), + COL_TRI(557, 550, 278), + COL_TRI(557, 278, 277), + COL_TRI(195, 194, 235), + COL_TRI(195, 235, 234), + COL_TRI(194, 558, 236), + COL_TRI(194, 236, 235), + COL_TRI(558, 559, 238), + COL_TRI(558, 238, 236), + COL_TRI(559, 229, 230), + COL_TRI(559, 230, 238), + COL_TRI(1, 178, 229), + COL_TRI(1, 229, 20), + COL_TRI(20, 229, 559), + COL_TRI(20, 559, 21), + COL_TRI(21, 559, 558), + COL_TRI(21, 558, 23), + COL_TRI(23, 558, 194), + COL_TRI(23, 194, 25), + COL_TRI(179, 560, 561), + COL_TRI(179, 561, 227), + COL_TRI(560, 562, 563), + COL_TRI(560, 563, 561), + COL_TRI(562, 564, 565), + COL_TRI(562, 565, 563), + COL_TRI(564, 192, 232), + COL_TRI(564, 232, 565), + COL_TRI(179, 2, 22), + COL_TRI(179, 22, 560), + COL_TRI(560, 22, 24), + COL_TRI(560, 24, 562), + COL_TRI(562, 24, 28), + COL_TRI(562, 28, 564), + COL_TRI(564, 28, 31), + COL_TRI(564, 31, 192), + COL_TRI(231, 566, 567), + COL_TRI(567, 227, 561), + COL_TRI(232, 231, 567), + COL_TRI(565, 232, 567), + COL_TRI(567, 561, 563), + COL_TRI(567, 563, 565), + COL_TRI(568, 569, 226), + COL_TRI(568, 226, 250), + COL_TRI(570, 571, 249), + COL_TRI(570, 249, 243), + COL_TRI(571, 568, 250), + COL_TRI(571, 250, 249), + COL_TRI(233, 572, 573), + COL_TRI(233, 573, 574), + COL_TRI(574, 573, 571), + COL_TRI(574, 571, 570), + COL_TRI(572, 237, 575), + COL_TRI(572, 575, 573), + COL_TRI(573, 575, 568), + COL_TRI(573, 568, 571), + COL_TRI(237, 228, 576), + COL_TRI(237, 576, 575), + COL_TRI(575, 576, 569), + COL_TRI(575, 569, 568), + COL_TRI(577, 578, 268), + COL_TRI(577, 268, 225), + COL_TRI(578, 239, 242), + COL_TRI(578, 242, 268), + COL_TRI(227, 579, 580), + COL_TRI(227, 580, 581), + COL_TRI(581, 580, 578), + COL_TRI(581, 578, 577), + COL_TRI(579, 567, 582), + COL_TRI(579, 582, 580), + COL_TRI(580, 582, 239), + COL_TRI(580, 239, 578), + COL_TRI(567, 566, 583), + COL_TRI(567, 583, 582), + COL_TRI(582, 583, 240), + COL_TRI(582, 240, 239), + COL_TRI(584, 585, 586), + COL_TRI(584, 586, 320), + COL_TRI(585, 587, 588), + COL_TRI(585, 588, 586), + COL_TRI(587, 259, 262), + COL_TRI(587, 262, 588), + COL_TRI(269, 589, 590), + COL_TRI(269, 590, 591), + COL_TRI(591, 590, 592), + COL_TRI(591, 592, 593), + COL_TRI(593, 592, 585), + COL_TRI(593, 585, 584), + COL_TRI(589, 271, 594), + COL_TRI(589, 594, 590), + COL_TRI(590, 594, 595), + COL_TRI(590, 595, 592), + COL_TRI(592, 595, 587), + COL_TRI(592, 587, 585), + COL_TRI(271, 270, 596), + COL_TRI(271, 596, 594), + COL_TRI(594, 596, 597), + COL_TRI(594, 597, 595), + COL_TRI(595, 597, 259), + COL_TRI(595, 259, 587), + COL_TRI(270, 248, 598), + COL_TRI(270, 598, 596), + COL_TRI(596, 598, 599), + COL_TRI(596, 599, 597), + COL_TRI(597, 599, 260), + COL_TRI(597, 260, 259), + COL_TRI(600, 601, 602), + COL_TRI(600, 602, 312), + COL_TRI(601, 603, 604), + COL_TRI(601, 604, 602), + COL_TRI(603, 253, 256), + COL_TRI(603, 256, 604), + COL_TRI(263, 267, 605), + COL_TRI(263, 605, 606), + COL_TRI(606, 605, 607), + COL_TRI(606, 607, 608), + COL_TRI(608, 607, 601), + COL_TRI(608, 601, 600), + COL_TRI(267, 266, 609), + COL_TRI(267, 609, 605), + COL_TRI(605, 609, 610), + COL_TRI(605, 610, 607), + COL_TRI(607, 610, 603), + COL_TRI(607, 603, 601), + COL_TRI(266, 265, 611), + COL_TRI(266, 611, 609), + COL_TRI(609, 611, 612), + COL_TRI(609, 612, 610), + COL_TRI(610, 612, 253), + COL_TRI(610, 253, 603), + COL_TRI(265, 264, 613), + COL_TRI(265, 613, 611), + COL_TRI(611, 613, 614), + COL_TRI(611, 614, 612), + COL_TRI(612, 614, 254), + COL_TRI(612, 254, 253), + COL_TRI(615, 616, 617), + COL_TRI(615, 617, 618), + COL_TRI(616, 619, 620), + COL_TRI(616, 620, 617), + COL_TRI(619, 272, 275), + COL_TRI(619, 275, 620), + COL_TRI(621, 622, 623), + COL_TRI(621, 623, 624), + COL_TRI(624, 623, 625), + COL_TRI(624, 625, 626), + COL_TRI(626, 625, 616), + COL_TRI(626, 616, 615), + COL_TRI(622, 627, 628), + COL_TRI(622, 628, 623), + COL_TRI(623, 628, 629), + COL_TRI(623, 629, 625), + COL_TRI(625, 629, 619), + COL_TRI(625, 619, 616), + COL_TRI(627, 630, 631), + COL_TRI(627, 631, 628), + COL_TRI(628, 631, 632), + COL_TRI(628, 632, 629), + COL_TRI(629, 632, 272), + COL_TRI(629, 272, 619), + COL_TRI(630, 276, 633), + COL_TRI(630, 633, 631), + COL_TRI(631, 633, 634), + COL_TRI(631, 634, 632), + COL_TRI(632, 634, 273), + COL_TRI(632, 273, 272), + COL_TRI(621, 261, 248), + COL_TRI(248, 276, 630), + COL_TRI(248, 630, 627), + COL_TRI(622, 621, 248), + COL_TRI(248, 627, 622), + COL_TRI(263, 312, 618), + COL_TRI(263, 618, 274), + COL_TRI(33, 32, 635), + COL_TRI(33, 635, 636), + COL_TRI(32, 34, 637), + COL_TRI(32, 637, 635), + COL_TRI(34, 36, 638), + COL_TRI(34, 638, 637), + COL_TRI(36, 37, 639), + COL_TRI(36, 639, 638), + COL_TRI(37, 35, 640), + COL_TRI(37, 640, 639), + COL_TRI(35, 30, 641), + COL_TRI(35, 641, 640), + COL_TRI(30, 29, 642), + COL_TRI(30, 642, 641), + COL_TRI(29, 27, 218), + COL_TRI(29, 218, 642), + COL_TRI(636, 635, 217), + COL_TRI(636, 217, 216), + COL_TRI(635, 637, 643), + COL_TRI(635, 643, 217), + COL_TRI(637, 638, 644), + COL_TRI(637, 644, 643), + COL_TRI(638, 639, 645), + COL_TRI(638, 645, 644), + COL_TRI(639, 640, 646), + COL_TRI(639, 646, 645), + COL_TRI(640, 641, 647), + COL_TRI(640, 647, 646), + COL_TRI(641, 642, 648), + COL_TRI(641, 648, 647), + COL_TRI(642, 218, 221), + COL_TRI(642, 221, 648), + COL_TRI(211, 210, 221), + COL_TRI(211, 221, 220), + COL_TRI(210, 649, 648), + COL_TRI(210, 648, 221), + COL_TRI(649, 650, 647), + COL_TRI(649, 647, 648), + COL_TRI(650, 651, 646), + COL_TRI(650, 646, 647), + COL_TRI(651, 652, 645), + COL_TRI(651, 645, 646), + COL_TRI(652, 653, 644), + COL_TRI(652, 644, 645), + COL_TRI(653, 654, 643), + COL_TRI(653, 643, 644), + COL_TRI(654, 214, 217), + COL_TRI(654, 217, 643), + COL_TRI(215, 214, 655), + COL_TRI(215, 655, 74), + COL_TRI(214, 654, 656), + COL_TRI(214, 656, 655), + COL_TRI(654, 653, 657), + COL_TRI(654, 657, 656), + COL_TRI(653, 652, 658), + COL_TRI(653, 658, 657), + COL_TRI(652, 651, 659), + COL_TRI(652, 659, 658), + COL_TRI(651, 650, 660), + COL_TRI(651, 660, 659), + COL_TRI(650, 649, 661), + COL_TRI(650, 661, 660), + COL_TRI(649, 210, 213), + COL_TRI(649, 213, 661), + COL_TRI(319, 335, 328), + COL_TRI(662, 124, 663), + COL_TRI(664, 665, 666), + COL_TRI(662, 663, 664), + COL_TRI(664, 666, 662), + COL_TRI(666, 667, 668), + COL_TRI(666, 668, 669), + COL_TRI(669, 668, 670), + COL_TRI(669, 670, 671), + COL_TRI(671, 670, 672), + COL_TRI(671, 672, 673), + COL_TRI(673, 672, 674), + COL_TRI(673, 674, 675), + COL_TRI(675, 674, 676), + COL_TRI(675, 676, 677), + COL_TRI(677, 676, 678), + COL_TRI(677, 678, 679), + COL_TRI(679, 678, 680), + COL_TRI(679, 680, 681), + COL_TRI(681, 680, 682), + COL_TRI(681, 682, 683), + COL_TRI(683, 682, 307), + COL_TRI(683, 307, 306), + COL_TRI(327, 684, 685), + COL_TRI(327, 685, 319), + COL_TRI(684, 686, 687), + COL_TRI(684, 687, 685), + COL_TRI(686, 688, 689), + COL_TRI(686, 689, 687), + COL_TRI(329, 690, 691), + COL_TRI(329, 691, 330), + COL_TRI(330, 691, 692), + COL_TRI(330, 692, 331), + COL_TRI(331, 692, 693), + COL_TRI(331, 693, 332), + COL_TRI(332, 693, 684), + COL_TRI(332, 684, 327), + COL_TRI(690, 694, 695), + COL_TRI(690, 695, 691), + COL_TRI(691, 695, 696), + COL_TRI(691, 696, 692), + COL_TRI(692, 696, 697), + COL_TRI(692, 697, 693), + COL_TRI(693, 697, 686), + COL_TRI(693, 686, 684), + COL_TRI(695, 694, 665), + COL_TRI(665, 664, 698), + COL_TRI(665, 698, 695), + COL_TRI(695, 698, 699), + COL_TRI(695, 699, 696), + COL_TRI(696, 699, 700), + COL_TRI(696, 700, 697), + COL_TRI(697, 700, 688), + COL_TRI(697, 688, 686), + COL_TRI(701, 683, 306), + COL_TRI(701, 306, 702), + COL_TRI(703, 681, 683), + COL_TRI(703, 683, 701), + COL_TRI(704, 679, 681), + COL_TRI(704, 681, 703), + COL_TRI(705, 677, 679), + COL_TRI(705, 679, 704), + COL_TRI(706, 675, 677), + COL_TRI(706, 677, 705), + COL_TRI(707, 673, 675), + COL_TRI(707, 675, 706), + COL_TRI(708, 671, 673), + COL_TRI(708, 673, 707), + COL_TRI(709, 669, 671), + COL_TRI(709, 671, 708), + COL_TRI(662, 666, 669), + COL_TRI(662, 669, 709), + COL_TRI(702, 306, 309), + COL_TRI(702, 309, 50), + COL_TRI(667, 666, 665), + COL_TRI(667, 665, 694), + COL_TRI(690, 329, 667), + COL_TRI(694, 690, 667), + COL_TRI(710, 711, 59), + COL_TRI(710, 59, 712), + COL_TRI(713, 168, 714), + COL_TRI(713, 714, 715), + COL_TRI(715, 714, 716), + COL_TRI(715, 716, 717), + COL_TRI(717, 716, 718), + COL_TRI(717, 718, 719), + COL_TRI(719, 718, 720), + COL_TRI(719, 720, 721), + COL_TRI(721, 720, 722), + COL_TRI(721, 722, 723), + COL_TRI(723, 722, 724), + COL_TRI(723, 724, 725), + COL_TRI(725, 724, 726), + COL_TRI(725, 726, 727), + COL_TRI(727, 726, 728), + COL_TRI(727, 728, 729), + COL_TRI(729, 728, 730), + COL_TRI(729, 730, 731), + COL_TRI(731, 730, 711), + COL_TRI(731, 711, 710), + COL_TRI(732, 731, 710), + COL_TRI(732, 710, 733), + COL_TRI(734, 729, 731), + COL_TRI(734, 731, 732), + COL_TRI(735, 727, 729), + COL_TRI(735, 729, 734), + COL_TRI(736, 725, 727), + COL_TRI(736, 727, 735), + COL_TRI(737, 723, 725), + COL_TRI(737, 725, 736), + COL_TRI(738, 721, 723), + COL_TRI(738, 723, 737), + COL_TRI(739, 719, 721), + COL_TRI(739, 721, 738), + COL_TRI(740, 717, 719), + COL_TRI(740, 719, 739), + COL_TRI(741, 715, 717), + COL_TRI(741, 717, 740), + COL_TRI(310, 713, 715), + COL_TRI(310, 715, 741), + COL_TRI(733, 710, 712), + COL_TRI(733, 712, 337), + COL_TRI(712, 742, 743), + COL_TRI(712, 743, 744), + COL_TRI(744, 743, 745), + COL_TRI(744, 745, 746), + COL_TRI(746, 745, 340), + COL_TRI(746, 340, 339), + COL_TRI(747, 746, 339), + COL_TRI(747, 339, 345), + COL_TRI(344, 744, 746), + COL_TRI(344, 746, 747), + COL_TRI(337, 712, 744), + COL_TRI(337, 744, 344), + COL_TRI(345, 339, 342), + COL_TRI(345, 342, 346), + COL_TRI(748, 749, 750), + COL_TRI(748, 750, 751), + COL_TRI(751, 750, 752), + COL_TRI(751, 752, 753), + COL_TRI(753, 752, 754), + COL_TRI(753, 754, 755), + COL_TRI(755, 754, 756), + COL_TRI(755, 756, 757), + COL_TRI(757, 756, 758), + COL_TRI(757, 758, 759), + COL_TRI(759, 758, 760), + COL_TRI(759, 760, 761), + COL_TRI(762, 763, 173), + COL_TRI(762, 173, 172), + COL_TRI(761, 760, 764), + COL_TRI(761, 764, 765), + COL_TRI(765, 764, 749), + COL_TRI(765, 749, 748), + COL_TRI(766, 767, 768), + COL_TRI(766, 768, 769), + COL_TRI(767, 765, 748), + COL_TRI(767, 748, 768), + COL_TRI(770, 771, 767), + COL_TRI(770, 767, 766), + COL_TRI(771, 761, 765), + COL_TRI(771, 765, 767), + COL_TRI(772, 773, 771), + COL_TRI(772, 771, 770), + COL_TRI(773, 759, 761), + COL_TRI(773, 761, 771), + COL_TRI(774, 775, 773), + COL_TRI(774, 773, 772), + COL_TRI(775, 757, 759), + COL_TRI(775, 759, 773), + COL_TRI(776, 777, 775), + COL_TRI(776, 775, 774), + COL_TRI(777, 755, 757), + COL_TRI(777, 757, 775), + COL_TRI(753, 755, 778), + COL_TRI(753, 778, 779), + COL_TRI(780, 777, 776), + COL_TRI(776, 781, 782), + COL_TRI(776, 782, 780), + COL_TRI(755, 777, 780), + COL_TRI(755, 780, 778), + COL_TRI(751, 753, 779), + COL_TRI(751, 779, 783), + COL_TRI(769, 768, 784), + COL_TRI(769, 784, 785), + COL_TRI(768, 748, 751), + COL_TRI(768, 751, 784), + COL_TRI(786, 787, 788), + COL_TRI(786, 788, 789), + COL_TRI(787, 779, 778), + COL_TRI(787, 778, 780), + COL_TRI(786, 783, 779), + COL_TRI(786, 779, 787), + COL_TRI(784, 751, 783), + COL_TRI(784, 783, 786), + COL_TRI(785, 784, 786), + COL_TRI(785, 786, 790), + COL_TRI(791, 792, 788), + COL_TRI(788, 793, 794), + COL_TRI(788, 794, 791), + COL_TRI(795, 789, 788), + COL_TRI(795, 788, 792), + COL_TRI(787, 780, 793), + COL_TRI(787, 793, 788), + COL_TRI(781, 791, 796), + COL_TRI(781, 796, 797), + COL_TRI(790, 786, 789), + COL_TRI(790, 789, 795), + COL_TRI(780, 782, 794), + COL_TRI(780, 794, 793), + COL_TRI(798, 797, 796), + COL_TRI(798, 796, 799), + COL_TRI(791, 794, 799), + COL_TRI(791, 799, 796), + COL_TRI(794, 782, 798), + COL_TRI(794, 798, 799), + COL_TRI(782, 781, 797), + COL_TRI(782, 797, 798), + COL_TRI(800, 801, 802), + COL_TRI(800, 802, 803), + COL_TRI(804, 805, 752), + COL_TRI(804, 752, 750), + COL_TRI(805, 806, 754), + COL_TRI(805, 754, 752), + COL_TRI(758, 756, 807), + COL_TRI(758, 807, 808), + COL_TRI(809, 800, 803), + COL_TRI(809, 803, 810), + COL_TRI(754, 806, 811), + COL_TRI(754, 811, 812), + COL_TRI(806, 809, 810), + COL_TRI(806, 810, 811), + COL_TRI(764, 760, 813), + COL_TRI(764, 813, 814), + COL_TRI(813, 808, 815), + COL_TRI(813, 815, 816), + COL_TRI(802, 817, 803), + COL_TRI(808, 807, 818), + COL_TRI(808, 818, 815), + COL_TRI(818, 819, 820), + COL_TRI(818, 820, 821), + COL_TRI(807, 812, 819), + COL_TRI(807, 819, 818), + COL_TRI(801, 822, 817), + COL_TRI(801, 817, 802), + COL_TRI(749, 764, 814), + COL_TRI(749, 814, 823), + COL_TRI(822, 824, 825), + COL_TRI(822, 825, 817), + COL_TRI(760, 758, 808), + COL_TRI(760, 808, 813), + COL_TRI(824, 804, 826), + COL_TRI(824, 826, 825), + COL_TRI(750, 749, 823), + COL_TRI(750, 823, 827), + COL_TRI(756, 754, 812), + COL_TRI(756, 812, 807), + COL_TRI(804, 750, 827), + COL_TRI(804, 827, 826), + COL_TRI(828, 816, 829), + COL_TRI(828, 829, 830), + COL_TRI(819, 831, 832), + COL_TRI(819, 832, 820), + COL_TRI(833, 834, 835), + COL_TRI(833, 835, 836), + COL_TRI(816, 815, 837), + COL_TRI(816, 837, 829), + COL_TRI(838, 833, 836), + COL_TRI(838, 836, 839), + COL_TRI(814, 813, 816), + COL_TRI(814, 816, 828), + COL_TRI(823, 814, 828), + COL_TRI(823, 828, 834), + COL_TRI(826, 827, 833), + COL_TRI(826, 833, 838), + COL_TRI(815, 818, 821), + COL_TRI(815, 821, 837), + COL_TRI(812, 811, 831), + COL_TRI(812, 831, 819), + COL_TRI(827, 823, 834), + COL_TRI(827, 834, 833), + COL_TRI(834, 828, 830), + COL_TRI(834, 830, 835), + COL_TRI(833, 819, 812), + COL_TRI(833, 812, 827), + COL_TRI(811, 810, 825), + COL_TRI(811, 825, 826), + COL_TRI(817, 825, 810), + COL_TRI(817, 810, 803), + COL_TRI(840, 841, 804), + COL_TRI(840, 804, 824), + COL_TRI(841, 842, 805), + COL_TRI(841, 805, 804), + COL_TRI(842, 843, 806), + COL_TRI(842, 806, 805), + COL_TRI(843, 844, 809), + COL_TRI(843, 809, 806), + COL_TRI(844, 845, 800), + COL_TRI(844, 800, 809), + COL_TRI(845, 763, 801), + COL_TRI(845, 801, 800), + COL_TRI(763, 762, 822), + COL_TRI(763, 822, 801), + COL_TRI(762, 840, 824), + COL_TRI(762, 824, 822), + COL_TRI(846, 847, 848), + COL_TRI(849, 839, 836), + COL_TRI(849, 836, 835), + COL_TRI(832, 850, 821), + COL_TRI(832, 821, 820), + COL_TRI(850, 848, 837), + COL_TRI(850, 837, 821), + COL_TRI(848, 847, 829), + COL_TRI(848, 829, 837), + COL_TRI(847, 846, 830), + COL_TRI(847, 830, 829), + COL_TRI(846, 849, 835), + COL_TRI(846, 835, 830), + COL_TRI(850, 832, 839), + COL_TRI(850, 839, 849), + COL_TRI(849, 846, 848), + COL_TRI(849, 848, 850), + COL_TRI(833, 836, 820), + COL_TRI(833, 820, 819), + COL_TRI(820, 836, 839), + COL_TRI(820, 839, 832), + COL_TRI(827, 812, 811), + COL_TRI(827, 811, 826), + COL_TRI(845, 844, 175), + COL_TRI(845, 175, 174), + COL_TRI(843, 842, 169), + COL_TRI(843, 169, 176), + COL_TRI(841, 840, 171), + COL_TRI(841, 171, 170), + COL_TRI(840, 762, 172), + COL_TRI(840, 172, 171), + COL_TRI(763, 845, 174), + COL_TRI(763, 174, 173), + COL_TRI(844, 843, 176), + COL_TRI(844, 176, 175), + COL_TRI(842, 841, 170), + COL_TRI(842, 170, 169), + COL_TRI(851, 852, 853), + COL_TRI(853, 852, 854), + COL_TRI(853, 854, 855), + COL_TRI(855, 854, 856), + COL_TRI(852, 851, 856), + COL_TRI(852, 856, 854), + COL_TRI_STOP(), + COL_WATER_BOX_INIT(2), + COL_WATER_BOX(0x00, -9500, -8000, -3500, -2000, 100), + COL_WATER_BOX(0x00, -10000, -10000, 10000, 10000, -300), + COL_END() +}; diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/geo.inc.c b/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/geo.inc.c new file mode 100644 index 000000000..0b664296e --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/geo.inc.c @@ -0,0 +1,42 @@ +#include "src/game/envfx_snow.h" + +const GeoLayout canals_area_1_geo[] = { + GEO_NODE_START(), + GEO_OPEN_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, canals_dl_ground_mesh_layer_1), + GEO_DISPLAY_LIST(LAYER_OPAQUE, canals_dl_pillar_mesh_layer_1), + GEO_DISPLAY_LIST(LAYER_OPAQUE, canals_dl_ramp_mesh_layer_1), + GEO_ASM(0, geo_hide_if_dnc), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, canals_dl_skybox_mesh_layer_5), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, canals_dl_waterplane_mesh_layer_5), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, canals_dl_waterplane_001_mesh_layer_5), + GEO_CLOSE_NODE(), + GEO_RETURN(), +}; +const GeoLayout canals_area_1[] = { + GEO_NODE_SCREEN_AREA(10, SCREEN_WIDTH/2, SCREEN_HEIGHT/2, SCREEN_WIDTH/2, SCREEN_HEIGHT/2), + GEO_OPEN_NODE(), + GEO_ZBUFFER(0), + GEO_OPEN_NODE(), + GEO_NODE_ORTHO(100.0000), + GEO_OPEN_NODE(), + GEO_BACKGROUND(BACKGROUND_OCEAN_SKY, geo_skybox_main), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_ZBUFFER(1), + GEO_OPEN_NODE(), + GEO_CAMERA_FRUSTUM_WITH_FUNC(45.0000, 100, 100000, geo_camera_fov), + GEO_OPEN_NODE(), + GEO_CAMERA(CAMERA_MODE_FREE_ROAM, 0, 0, 0, 0, -100, 0, geo_camera_main), + GEO_OPEN_NODE(), + GEO_BRANCH(1, canals_area_1_geo), + GEO_RENDER_OBJ(), + GEO_ASM(ENVFX_MODE_NONE, geo_envfx_main), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_CLOSE_NODE(), + GEO_DISPLAY_LIST(LAYER_OPAQUE, canals_dl_material_revert_render_settings), + GEO_DISPLAY_LIST(LAYER_TRANSPARENT, canals_dl_material_revert_render_settings), + GEO_CLOSE_NODE(), + GEO_END(), +}; diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/macro.inc.c b/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/macro.inc.c new file mode 100644 index 000000000..dfa663b73 --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/macro.inc.c @@ -0,0 +1,5 @@ +const MacroObject canals_area_1_macro_objs[] = { + MACRO_OBJECT(macro_box_koopa_shell, 0, -8100, 2845, -4989), + MACRO_OBJECT_END(), +}; + diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/spline.inc.c b/docs/lua/examples/lighting-engine-demo/levels/canals/area_1/spline.inc.c new file mode 100644 index 000000000..e69de29bb diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/camera_trigger.inc.c b/docs/lua/examples/lighting-engine-demo/levels/canals/camera_trigger.inc.c new file mode 100644 index 000000000..e26292e9a --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/canals/camera_trigger.inc.c @@ -0,0 +1,5 @@ +// Replace the level specific camera volume struct in src/game/camera.c with this. +// Make sure to also add the struct name to the LEVEL_DEFINE in levels/level_defines.h. +struct CameraTrigger sCamCanals[] = { + NULL_TRIGGER +}; \ No newline at end of file diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/concrete.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/canals/concrete.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..cb11df88d55ac6c067077584d1084408c36a2657 GIT binary patch literal 4875 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 E0JNPBiU0rr literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/debris.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/canals/debris.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..84e118752a7c8a5ececcbc32227b76db10a5ccfc GIT binary patch literal 2127 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 Si}?TVcL2%s489!a9Puv-`MV1M literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/dirt.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/canals/dirt.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..d09c1139ad5e0383a6dfd96e36815e7d01d6d061 GIT binary patch literal 2544 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/script.c b/docs/lua/examples/lighting-engine-demo/levels/canals/script.c new file mode 100644 index 000000000..1ebc6222a --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/canals/script.c @@ -0,0 +1,48 @@ +#include +#include "sm64.h" +#include "behavior_data.h" +#include "model_ids.h" +#include "seq_ids.h" +#include "dialog_ids.h" +#include "segment_symbols.h" +#include "level_commands.h" + +#include "game/level_update.h" + +#include "levels/scripts.h" + +#include "make_const_nonconst.h" +#include "levels/canals/header.h" + +const LevelScript level_canals_entry[] = { + INIT_LEVEL(), + LOAD_MIO0(0x7, _canals_segment_7SegmentRomStart, _canals_segment_7SegmentRomEnd), + LOAD_MIO0(0xa, _water_skybox_mio0SegmentRomStart, _water_skybox_mio0SegmentRomEnd), + ALLOC_LEVEL_POOL(), + MARIO(MODEL_MARIO, 0x00000001, bhvMario), + + AREA(1, canals_area_1), + WARP_NODE(0x0A, 51, 0x01, 0x0A, WARP_NO_CHECKPOINT), + WARP_NODE(0xF0, 51, 0x01, 0x0A, WARP_NO_CHECKPOINT), + WARP_NODE(0xF1, 51, 0x01, 0x0A, WARP_NO_CHECKPOINT), + WARP_NODE(0xF2, LEVEL_CASTLE_GROUNDS, 0x01, 0x0A, WARP_NO_CHECKPOINT), + OBJECT(MODEL_NONE, -2378, 250, -457, 0, 0, 0, (0xEB << 24) | (0x9B << 16) | (0x47 << 8) | (0x00), bhvAmbientLight), + OBJECT(MODEL_NONE, -8000, 140, -4400, 0, 180, 0, 0x000A0000, bhvInstantActiveWarp), + MARIO_POS(0x01, 180, -8000, 140, -4400), + OBJECT(MODEL_NONE, -3800, -50, 5899, 0, 0, 0, (0x00 << 24) | (0xF2 << 16) | (0x00 << 8) | (0x00), bhvWarp), + TERRAIN(canals_area_1_collision), + MACRO_OBJECTS(canals_area_1_macro_objs), + SET_BACKGROUND_MUSIC(0x00, SEQ_SOUND_PLAYER), + TERRAIN_TYPE(TERRAIN_GRASS), + /* Fast64 begin persistent block [area commands] */ + /* Fast64 end persistent block [area commands] */ + END_AREA(), + + FREE_LEVEL_POOL(), + MARIO_POS(0x01, 180, -8000, 140, -4400), + CALL(0, lvl_init_or_update), + CALL_LOOP(1, lvl_init_or_update), + CLEAR_LEVEL(), + SLEEP_BEFORE_EXIT(1), + EXIT(), +}; diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/texture_include.inc.c b/docs/lua/examples/lighting-engine-demo/levels/canals/texture_include.inc.c new file mode 100644 index 000000000..36ed5e980 --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/canals/texture_include.inc.c @@ -0,0 +1,35 @@ +Gfx canals_dl_dirt_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 canals_dl_dirt_rgba16[] = { + #include "levels/canals/dirt.rgba16.inc.c" +}; + +Gfx canals_dl_concrete_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 canals_dl_concrete_rgba16[] = { + #include "levels/canals/concrete.rgba16.inc.c" +}; + +Gfx canals_dl_debris_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 canals_dl_debris_rgba16[] = { + #include "levels/canals/debris.rgba16.inc.c" +}; + +Gfx canals_dl_oldwall_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 canals_dl_oldwall_rgba16[] = { + #include "levels/canals/oldwall.rgba16.inc.c" +}; + +Gfx canals_dl_rock_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 canals_dl_rock_rgba16[] = { + #include "levels/canals/rock.rgba16.inc.c" +}; + +Gfx canals_dl_water_ci8_aligner[] = {gsSPEndDisplayList()}; +u8 canals_dl_water_ci8[] = { + #include "levels/canals/water.ci8.inc.c" +}; + +Gfx canals_dl_water_pal_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 canals_dl_water_pal_rgba16[] = { + #include "levels/canals/water.rgba16.pal" +}; + diff --git a/docs/lua/examples/lighting-engine-demo/levels/canals/water.ci8.png b/docs/lua/examples/lighting-engine-demo/levels/canals/water.ci8.png new file mode 100644 index 0000000000000000000000000000000000000000..57e78548db70ce8e4750331d11e3dab01de4c873 GIT binary patch literal 2228 zcmbuB`9BkmAIG=ccXBjxhO#j}<|i;O54tQ%e02`Ea&&YZhj*006c@xUqqaIgeZ(CRnV8Kf$+-<_$EyXl^3k z(Hh4$=Xy2%$pX_s-mwS80A9}S=H2|h#&_rTHbBKU+;)kw?^1bmcC1K0H+-Xlw5g$P4x83WR!8$&>M?e#DQLx zS*=&l9<&l-6GBphFLr}cN{ZCsfkc=4OsYhb2bEc1M60VZ4~tH!%`tbdM6a&aNr8=o z@!>&Sv$K-6zITc*blWF;eIo0PUxz{S?zVL~itk0wgb@sGHMLuKdA>5!wSjH7uG+HF zKMb!0jiTN?Ctlw@iy!S*IGm4ALW$D%WG;`Pk(~9IDF?jZ4g<^h<@|xB0bUy}B=pN? zCJdlr!oj0@#hB_Xs9!uD5ytO5*W25db z+L%>gBrRRFE>4cHPN37;ZB4*CZsfeuIxfL!a+-qS!_tf8Wkp{#Ha3zd4B@Oy_42Rl zgP0%qhJBf0Iu@#GMD$N3_uytb&^!jkpDR994U53G>4dD}qCi9%!D1w*9$;e8KlM z7S2ZrPPxNX?HDku3nC;NP;GhlMPD4BHHEpIZL=n)daTNeS#E7$Kk{G&gDkD9${*1M zF&J;PzzZZ^M6b-zK`2IKhJNl%Ry+cEf~*(Wlp6T` zF7dqV`JaAL4oA2ehku69QAcNC&dk!?mdEDKcQ7ZvaVKF9o}NTS;-h$zBYRuaK+JoF zNcERTTXrAd6~!O0Q?ZiLVF~iD1*Iy--b62JOta!=_n7o5Vz0oR0CF$y{IIWq=Buwu zZE&aEZtD;_K#inaFA$Ql?R8zHO7uF!umm)=7|r2jsZnAq4QbzEHuDnssE_x%US+Lp$%T`XSEeIW98Nr*XT1gb!oQ0iSUe@_wpMuK5ay%%0s3{3&ccJAQCHajoQ% z8&C{ATi|?QQzRLkJhcz9;Jh9^k`$-K{FS(be8Pq_Xc)T}Vwh-E-s=B2{oy>?Xh{M% z%|m`UsJc)9n_q4qU8YV4mZZf|yPnny{?7k+%tJwUTNq_Cg~#yuvaA3UciYAfvd+8n zvxICPp)hU<*WCDGnceKR)&JR##duhiUUM3L&S+-cWczF+t1{keqgu%qR3YUAUZV&_ z;^(6^pVuGIPO#e%AB#18eHp!UOp48zR5(fIS(Ol8rN42s0D~zMfI!zKM|F-1k zy4?1buC%xCJn>ZguYS43L(T|tt*|U!-|4@FlvDu8M1|Db+RnyXUTt|{f^ipjs0!Y`gAZ3>AhRNxBR z80%VIpEAXc!;cv1tP&_ZE$@^X=BODm$6<2c=Q|wvb6*{FZ8Y=-n?HWWBHLT4?Vs1|Nj#KfSXtu JzczG>{V%-t8oB@g literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/_0_fifties_lgt2.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/_0_fifties_lgt2.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..58073db266a43acfc26075e82b56d817f502bd54 GIT binary patch literal 1237 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!3HFSYrjteQf8?Uo@u_m3|c_81Oua_Cj$fX z3pmZhD8;}Elwky74n}D>8)OVa%9kS`InI1Hw_*?<3~p&{I|pQN7I;Jg1-XSmn2}-D z90{Pg?>t=`Ln1iuhR5eiy9)fj`JDT@N*KS=V&&@`(>Y9oqAfI46cknDD$h8}S3Ee# zUt?g$Am1Ra5;viXXX-*1kBD z8>Xp8*cRM=`{2h#tFTqu>L%FVUa8#0v_<|;+t$;eOMln#FZ;44WznXf%ln^|pMCTp zrndLsx!;}w<>lpx`;r!3{gvsn<6_2>E^m6jWC!gY}UOqv5+XALvvb-~Crgot8j)}eM{U(c)IZQl@7#{_$ z`F3W@f^$5jax+#w@H})qKjyr>{p6;YS#yme=UGO6b2=H2v))L)N9C;g?*o-(1e*tI44(`Bz9ZfFz4P_e)V>Nak%)~g&yVgdU=+J>{M^NjzqIZxTkcS8 z=+xVJVe?GmHHDSa_U{zQ+4IonjN$Yq&P*Y-?*~oRG5LOKbU5=_sX9rI`&R!h)=%;MqI z_;XG+3DsV?XPCa5)G(etp}BnSuE=Rqj@}p8qpbMR^F6ovq|YC5yYIx5&XDg~$2s9(MC{-Rf8XH?&Ds(r=8nkm!Q*mQ8)OVa%9kS`InI1Hw_*?<3~p&{I|pQN7I;Jg1-XSmn2}-D z90{Pg?>t=`Ln1iuhR5eiy9)fj`JDT@N*KS=V&&@`(>Y9oqAfI46cknDD$h8}S3Ee# zUt?g$Am1Ra5;viXXX-*1kBD z8>Xp8*cRM=`{2h#tFTqu>L%FVUa8#0v_<|;+t$;eOMln#FZ;44WznXf%ln^|pMCTp zrndLsx!;}w<>lpx`;r!3{gvsn<6_2>E^m6jWC!gY}UOqv5+XALvvb-~Crgot8j)}eM{U(c)IZQl@7#{_$ z`F3W@f^$5jax+#w@H})qKjyr>{p6;YS#yme=UGO6b2=H2v))L)N9C;g?*o-(1e*tI44(`Bz9ZfFz4P_e)V>Nak%)~g&yVgdU=+J>{M^NjzqIZxTkcS8 z=+xVJVe?GmHHDSa_U{zQ+4IonjN$Yq&P*Y-?*~oRG5LOKbU5=_sX9rI`&R!h)=%;MqI z_;XG+3DsV?XPCa5)G(etp}BnSuE=Rqj@}p8qpbMR^F6ovq|YC5yYIx5&XDg~$2s9(MC{-Rf8XH?&Ds(r=8nkm!Q*mQTw%3{^)wfl`hr$^4Ez8W_7x@p4pO(qjgm8}zry5(A8 zkhJ{Vtg;1(Ckx-C@4vN9h-0VKf%+7cJ#Pf7FCXn%S2(HQ#H|D6v+t_2e!6aYQ@~$u z*@>CQzm$2-T*v%n+IRj5UY-rsdw3YWPCEGO<;C{H-qzD+oM$-GlXU0Tv15V`vDsQH z%A{K6I98P2aqhn_Xgz6(syhqkFDL64Y#(3W?`K z9xv~jnBj1smBUX>vxIx6@R5j)1uL~bg-&y{nttKQx7U@~mXd4F&2x-dzQ9cSLUn_K z&bt?eOU);JdQ|vcwtS?Qya+Tkrfr~hG)n3T?< WTGZAJ3~|aMlEKr}&t;ucLK6UbO~^<9 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/_0c2a4e_w1.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/_0c2a4e_w1.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..ab07f3bd0e27d14543f75d7414f1d267ba2ac920 GIT binary patch literal 38871 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 KRD)eW^8Wzoo>SWZ literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/_gratestep2.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/_gratestep2.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..86f0ac80da7c55beefa3724865cd1eef1d3f95ec GIT binary patch literal 13565 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/_lab1_cmp2.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/_lab1_cmp2.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..96eaf912d77c919a0f6883e80f28ddd4fed593ba GIT binary patch literal 19078 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 AvH$=8 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/_spotblue.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/_spotblue.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..05724ac900942af04bf52bb2598bba6926dff9d5 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`W~mXLX}-P;T0pi01EZuT0|WC5 zIL*W;#lQ-bVFY3hMrk-3WDG;fmm?rK&U`nwVh|q;ZfR{h2V`&-ctipPxrITPkzv*x z37{cCo-U3d7J_qw&w3qp5SS;@?LGTcQkTv=CbbtAr+-jsdjE1`#V12Ag&@|zmIUFm z3tPXkm!z8smruUd%sl(%%=~>P&%DWF2&z3Cuhi0CmwEnP;o28JSX?w>#Tz85wyldl zxh~K660_UHKk}R#Sk;z`PhT)8*xrA6v(ouQ!`+J{)-**)vcxP{p4HnH4c)xM(tuv24$2w10(r~9&ROf!yvn{_?u6cM-XPVah z%iGMGKTwHBx>-r~GQ+I{Lxcc+Z!hb1Np=0!iaaW6Zi;p?mKDi^*oSNzVK XUGMa12{6bhk4XkkS3j3^P61cNli~c`*{(sW_^O~y!jw)$L z@vObrB+rs_ab~Rf&0gN7;uGi2?fIToRvuKGQ{!knpQ$bK7~jd@G?uiUyY^;n4x0m4 z*|{3T%r{?D+3a)ge&K`ltuOLeEl->ibSRN}{I#~@@Z!}r`9JrqnbpgfZ>g}!{bbJ{ zfpDPo=JvWWhNZ+E4&z_9TPrMd+ihJd6BdaDlSL0k zM+mNq3Y~L3o~bJ6`^+?Ew5v|~&F#{gjN$XuQaEB_mc4ju)wDwER`F565S^~1r;FU0mHh53 za2!%Pm)O{ vO4<%$lt&wN+cIf)FECjS97DkJPG7OH1uhidHC9 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 bihP1l-ar0l82muDoM literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/basetrim02.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/basetrim02.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..0d37cfe8a4f234922ef3f3c0a26aedb32fcb9ad7 GIT binary patch literal 2371 zcmbtW`9IT-AAc_!+t8LHN4bhfGNBwfbIujzQz#ZWhUAWBB(y1alpHgpQZx(Y-l=TetP}zy6x&>Ck~f~0{|e7wzobb z;A8=iP+>uy^oUCr(1`#KbfB{{pefL@07woE07A3>@h*@&01-GK0id9L|7oP42K-lh z{`Fwtwzkp#*8ht!%~$UP0v2KKDQJpH{tFOLTq-MAa1m{7>5hdgdQOCopFo;lxJ&bh ze5Ud?_Z2Gfv(--FQUzjj$L$g{L^~LwfN7M5VnTAs@TgP2qmPneC9kR@2dDRbUxc5A#jM{x# zkF7pfJKxVUasSB;(YtDR^6L7*Uvt0bXY?1DO$|@89lQ;mP2il#CBeA9grhl?)gSQ( zhED%j<;~#Q%MPXS3`crftL7;X_@^k#u74X_XTp4+w6o z91gBD5b^AxhCXeJ^w>@%`l06W?L4F5p_|;^R5SCVji=7k&23Kl9G2iEBz9Dc?z-yo zGFc=QBL}HyF2l$}NQoQ#)ODa1kiRD8iFrQYmD`tC`NvN)J1@{y`=0bY*u>i9)(fe1 zg+K1g8Hl`^J!i?$`s||f;|0xsRy`xUZ;{K{2xTvF+vG;S`u$wkCR~~U>0FCUvYn^f zC`4TkY)^GwHk6T(5sADR!Hrd5Pj)6MY}f4ND+MzxzO+3Z2v7LkBxIBw2N{}U_2;e_;*Pc_9Y&UTB=CgXRaiSG-{q0f(x9aaal zyVMGQnUcxF{bJDR)_Ai*5{lV?5F&~B?np7f7%f~c9wK(wf3W#^udwR&c_lr5>CQ&a zXz+Gom1G;}v|42urj+=UHZ@g**`pp4@$P1OPs7Y=>$G!?a_E<)v=K;gL-9HFJofwd z0SgpAu?v4fEJ4(A9VzHrV|ZZe8Xigs(vEAsSf6{|SD_$mA7orV7HQ_te+r~n@O{ff zF=PNvZExPaGIj#K%K^}cN9auIbpUCdPOA>!TkHxj7NrtTCjgC*H8m`dX2Vfmg*P5OS$`%TyGKzTN!S`8Bzdc=gr9+ZOBDes z#ADxdJ-O_+9}ZOKXS&`gzb66K;v>4_UZ=ygx%4Zm$>`2+AofE^(>*CS#M5te2+J5E zw;ib_Mx=r+=50vj)Kr$`hHJ{=+O>KdbjJvwbiEl(SB{4&DJp{=+`_z;lPCZ>E$QLi zXxr|ve!>VF(=-8oJz&hDu6Qui%V3L43bdOj(FFx7<2CM9<+1@;P7(&@??M4P|8CQF zEHhS_5k{!xt_5U0Z3_%M0FDX!?!&-RRVg${`@6yjWte=rbXM736IZS$-cwuV5U;1j zf2;XS8v*LwmfTC61}R`LZZb3Zy8Rrw5L>KG$RfFUO>`-G5T^<}K!JPuxY*W<)V`dXLwqJG#?<8{X_E2a4kjmLb`pv|OxutlS# zw~2=2(TTOjS-WEM%qwUsts+A9oWhqVE4riE?xp=TXs5K3w`{(Rfl(=60by+xOQ&9B zj1ght8r#!+S~kdFXV}2U0Ea}h7s!cspIy3P=%qQNH^DGd1K9!RNt0$bX4lgSLhA4s^V?L z#eIe1lh$3cK@=R7;yc2@RvfJ@!4h7HTCk~3s}*MVk2xj_PL{&lu1a3g@I0yh2ePB9 z>&KF$(*7etSn1qo^zEbt^@QCQ?c$|6_Ll0Wpol=@>-<6E6jU>@F$^Zx*cZB~Js5N* zEwi(s<*CwU0a#_Sbv5DunAHV9%|E==NJfJc&yLXz{~|5b%B~b+N@k^dnE8WfS-HiN z7C0j*HK1WyVvl5MD5)Di4T^aXDl&>-esCGO@ zW{tIY>v6#AwamO1!nHT*w{p1|Ta|7F>x!?a z(2G*9MN8D(s1~Vaf~w{Wctgsa1h|WjSKy7%&KX)`)Uua4>1DfM+HXJ(eB+ne2>ans z+2paHdz2&6$_8GVADD&Os)3l#74! z$2s3>$^z9BbW%ADLss*iIhQee5n1z%VL_~C0Vrv}} z5A{EI94sV;X6W}x@1rg2a`i5~*a?NRQL4$4Mqi|Bdj-$O|NqkfXd4%6%Bf2!{{Za6 BKdk@& literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/black.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/black.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..b38baa266f6870211434459381ae005b627a9f0f GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$o^Eg)Nhfl<nu#uO+frH86&)@Q}?)wLyd8|+j_pGX(R=({|yR3pk0|O%y3x@!d c!KNt0Xn*$mZ#AF+lslHe)78&qol`;+0Mp|%p#T5? literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labglu.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labglu.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..7a3e7b0811843a08892e12f2abf79b8be9602ac4 GIT binary patch literal 5299 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 KRxFV>5Bwj!1Lslz literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labw4.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labw4.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9db7267a604259b45b8442e4e0d7bdbdc4ba5c GIT binary patch literal 35332 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labw5.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_labw5.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..72b582006c213325773ecce4040fb7b73ce0b0de GIT binary patch literal 35393 zcmV)dK&QWnP)bjam_Dzb-S>d&&#qU8@A_l&Y^E9Zx8JT_eEMlmwEyvx zpTMi}_0O+*T0Gn5lgHI&J8jSXv#ZtnZ%^+y?5E{#pKm4wJUmS6w|cgl#P7fVHlAJQ z&FVObKm0g-KK?i@f3qISUu{?4eto<8^tU%r&UU+7-MxF)%ev9Re~;(u&s5LS z`RD3T>kQHjH_AVPk$>~~Jg%k%`M(xiYQwX?`=9>vL~h3A`KqLkuuWshw{PFBZeG1wt$rx%Qwe6R{c&31 z-SkoEha6-2frIRSJP}OPXUN{`eay( zt$c6(%TS*94`omm@Z0}zdN=R;i@$ii`tqOuHR4|X`R`Y6zWg%${`0x=ewleGf2H!= z4${0XZQ=RNfB91H`#s)(fBlzJdA}#^{gem)*MDgBin5hsJ5}OUx399K=DhxkFQP5I zP03%~f9v&$1N^1l_fOd$F67ngKT~`D(T}UwfB3WTyNx{}J)2?HvKnR`WB(j~m`($p z{jdM$|1lK-r~1V!MwvWTV0@l--xxcW@uN(hao~Za?mn4TaQ42D1x}NX8i6V_BpBW| z)@Kw+qmD7x0j7Ph8{apLUfs?bGz*yI*bO?xYOMbxwH}5BJ>P3ew!OaAd^zVcKTLD% z52}FUh&q&cD_M9f@%x_+tDRbLxX$v#0q%c%SY64!z#RKs;RqDBK1_$yp(0PYI~RUT(`Q@tgVvY^}-_CivDx^cQ>kcX4`6F*Zl3}?w|IymN!eN4^QwH zX@2SKvregFz1{-lRxEwz?9$X;W68$#hUm&7Y zay3RjuoM3S`sk0R_Q!qaphM!x?YB$(QT=RA;Pk}Pj}rn2L=5$GhHxjupb*lUXo#~v zGaW~bDZ}l+#*BQ2jV_44|8c!K$b@>gmq<{Vre3F|fq-57W13F1C5|+^k4_Elez#NY zG2)L>t`Gw&MzF1i1&N32Lx=#_|DDo-eEb3K8~Vq2aj7?>AH)yBf0w8^W?c{i=ePmL z->PgA0qybt;r$km_|5$+N}r>IJv`j6HqW!NQrl;`$*)MAWG|k*@wZJUghB6fYen+*2$)y_u>+5s6}YP`hv&HcmC)v-ux0U8tyPW8!v=G@<_HCAp!;a0rdxum*Zw-z5Z8iD#5 z=x|SgcAuyN)N`TNI8 z^L=A+hr5T>){2u{(rj=wox(-lh8%@+?j-v)@ehSeZ^BA<6e640)M!?G^yOWXTpC77 zB>zWpSksZP`I-0#ZgqM9vB&_58R0%?&9^l(ef)*+i1Rz zyZ?mV5~vLHls(P#@KZgu=q{??<|B=A{EldxlHXo-;$Nd7>e$T1uvG<(2wY&aet zf&jK3H-v2%@YI1#Kyqc=6>F8b{N+u!>s{L&gcUK~Ytb0})5>sP-Myuiht=KNCXgWl zDBJNtB%%X|0GUqgULwJR=UUslXuk=c_DBD!oy>6H28W^yKnN|5;?&nc3_rdL5zzbO z6TjmT z!k`Sz-}T!_2J?H^zZZpRJCx+rM#9p+?N8c{hJ2NK|LwaK_UoMp(JnK;S1(`beabHR z$riP1z5k&1^V_N{;&E5|ht*3F?X^aN+jOmGI1?_vXrnfb+(>ihhsAyKvFaz6-_14i zWNnE{cOzFRR=8X3(z(_k;CJ)8UAV`MZ2zxb%0ANE>uV95>ScE&yT#$X+K&A~Kk9y? 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

fbl(+hwovY^0Q&)xg5B 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_wx.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c1a0_wx.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..6370b28b028a2889d25ef2df6a7d1acb90d9b20c GIT binary patch literal 38237 zcmV)lK%c*fP)U4!@K-$Jmpm2MX+Ro$%@i%orGzf@f0 z9{=3k@AaO$i0FUO1DhPHMYrg_%-`5AdbLe||FGCxua#PAe7Nt`PMgL1pKce&pYImC z|MY)Eots6k_wN_mTF3EJzHe2(VR2RJKB~_067M5;Q2VW~my6Yx-i63o07xusCQajpY*O{`lcIO;P_E#r;>K__08g+{@;IEsEJDFyAr|&9`*w0 ze^%q9hxK~l79JlShA8goc&>*O?+mApzANGV{rrp2@di5IknbIr!+SMQ>GTx4)`)oq z=zPE-_eXUygMiLAa8Kt0guZ`JhaEqh%Ed%;=PMr_&jmQ-p3cv|iJO4xn}ggRIi1d* zgDcPc?n{k*UB_QEC%!CM83;7bW9|?d&FDy}GoAaB?oWYl^no?L z(}>R(-RoZ|-U^smL zUEJP%JPxzJqzOaS&JQf`I8F%C>1e<+-@h+*ewzJJu>N88&q40^hmY!?SJPb4eRTX% z=nW7Cjsd_x$Ux_NAP^s&&tTYPbeT(x_jG*sg$9_elZvd>c!YIZ9bUdBTwG|1a;~@oH!0^5%!%cmWDgD`~+(vcoZ$-9ZaH-yn z>Q(167`j!r0R01mSC67mhfm#NTWQr_{nXQhx;vFLo_oL4Gft~`?x|D9>VBZBO3w&OU$cO?Fy~kL2gTpK(i^H57<;t6 zx=N`d9QD4v-f6QcgQVjfDyVDqOFWgn(r|jEC#aron2EHVyO}zCUrW?{ho1`Bd-L!9 z7zyg$N$7T1yxJ~$B^}-$7C-#A9~ReNZx*|6#V;w6R#`GrDyanvU(x8kj!O9FfBfh2 zx}|E=Qtrc)mLHy6V#4hYanpV z!GvV2$9HV=G6?8=4?0K#@Wgmk+K5faOQ*LTPdxDE-@l2DFTcv)%vduB&U=S~n)zq5 zzt+O+2TqlFsnJ86Ib}qrr-04}K>sb|&TrFlr?+Wyzn_}@&M#^&genHJVgq-C(+Okt z=ZN3vK4Y6)WjhGAUvC$0|KV-U^6dRL|KXd(ABFx~$b&#qfI2}r7~LDuv;Xpc{g*)T zMAFG4H7(V2m8QGW)2q_ajOOKax48RBO{uHXEV=7LKmL{ z2E+eqfGf8sc7Sn8u=%nyvZFR%Zbk3w<&Jlv!c`p$DJpKE|1Bmp_RD>+x+?tvH~$n^ zgd~qK^;7vH-=oMT*Rsw`UdY#^@H3si){NjXSkbejZl0m~8xc6Nww=xIPI`zo9<-d9 zrGf@tR=Ri9MT((bI%iSBz{K^-gr?9TVuW_nW(KO$6ICSUp zyX`=Wan74V4^-l)!}a7r6!{ZX-rW>YaOg1)gj_*Xlo>ndelt7W=?_BFTq|+I03?7x z(02SBZ$M|GW5}J(AjmM+XbgfmSTo`hSY{`x<;tB6GQtH|26wn^RE+&ELd}&dG4t~v zC^ek_b?1}9K<3)M*$&v24);YK+CC2gWcWir_8{n=D}$9u#CZ_pbnbT|4P1t+mdZ=2 zuW8iIee)Di%9CVc!=XDaM3x5V9!sa3mZD(XOAgO)s`XpJ1Dyl>q@`$i_o;N?Nuy`A zoOW`zk>VviZ}myL_@K>S|(PFjD_ zPekJYcom^wbR&kF-FmU#OWgfg>kIx&$>AB$1uR~n&?@TG%tLh>v<4I$+nBWm_>5lJ z`KG=Tzwt>E>s5K@(8tsVAf22vC_F3}z^BR!`5jL1Ko! zTnWW9%l)p-w?K!HFD0zi4_tE~wzCp{hsu=)!CWE7p(-^Nwlc|Sm%>NM(OfM&>Vubx zhB305w9O;6-dR+RXfXAV#HSrUl%Ff1>=v?$+i4~T{tXHaUAiNl3439`$sj-%q3fuZ z^dQJpco6iB3Z6Vq$@&b^r{Ge@ztO5M@N|nlRdY?F<2?w@vR~-1Q(~OX%G3yBflKL6 z#V;RT{#i#!ZY|`_&xaOX8@%LM&hs$S9|I2n zsthFXLClE>s!D22A%0sMCh8;_TnJ%k+;qP|2Ci|r@d{b2d8t!6f%h77k0PW;$;W8u z))g6mO@z>-d#^+mde%QkoqRXp{-NpzEka#?#RwL?Onu#bp(yDW4x)-{txxbhC@?^N%8CrVqs_UQLl zI_n^tS5gPVM^wd_C7D=L(K~gb$tQJmWfAnQwY^k#!G!t%qi=Pf?GeaN-fiW_LUNM` zzj>TuxUOnN8OTS;{-?Sq1K$Eb%4X@LJ3MkVf2?Y4qR)PsQ$9=hj0iW_r6SPFIe2)S zr+MV1<1Gf#>ArG3jUW-7J;#%{%zke!&@p2OmV6c%1cEcnN9TLydLWdn@wdeW$0`P= zEW<5)%1(qr_0g zy_wEh(VY0V{c7ZF+vgqXgKUY@rdtfOXo#rCGOWRR3x0bL%)JBY=2do2EQwo+Fpty= z^Kk)aEhl1i>KoS`8S@|KA@sd&&t(2wrrysfl9n(>ZRgYRh*~r2I8hZOfQ1&50wOmO z`v9v*+xtkYf7->FoEG=)keHpNbKD7ZJ|w_{z)TYyv${_^%pG$I-8*`pb#vO=`8n1kG@jY^V>=a`Oe8RnEjsl#sp32tUp*?P&-abd=^6lxd@(f)Os~+{9 z^u4s{QDNto8A_BiED-|g_Z6voxaIvj`dRhN~s^UF0uPoMly%6psI3J z+&_v&TQo=4P&kNEl)ugk|07cly)`Qh=m%zgpupT?~e5wV72-+c_c;Y_!hK1rVYQHE{25 za~xO)4CKr4!2~Pb8c{;GN5(3_EP^d6##kn-kngFtuLI$!ei;S;w4Up&(Qkb-I)AMp zPv-;f^gIx1)**nTaLp-U5E*?@pjG(}mDHO|X4LF0C3)|X7VMlfrZnb8U)Vsw}uZ-FqY5NZC(Cz z`Tmylmvnxv-%MzZ^Sv2jez%?PJWqv>3Hv;iFQ;8$W7lDjU+vYyb}X$SchG3j+2bQN za+*2Fos2xtwnZ>T<}cD$EAH5jv`b>V;;RZy%nhq!q%!I{4EP0uDS0IW2W7|BAG+I% z6s&_-38P5uiEcjl4AL-s6I4^ixaZGW^8874gib)edkyHWk~O{nD?REqbn%ijczK`h z(^R!){sSXX)Zojc=s1Z}#zwHbN%@N%p#cVx?~9l^TOasNbRPBhMtXk$#t#NiUlhOj zvyzhP=r$Ir-)b3JxrTIZjKf%M2vFm~Nf>1H5PjvC1GwO`pTF%0HEZb7nHZ8^KHX159aVFvi!983!{(A4>I@e` z&wi5K`3~D6p81aN??)!rafEphjNeZ&R-^+V%ey0E=9hT?&1k;Ney5c1qz-L6-#IP~ z0;fCNXpx2M5-e?5+lvF;-|l10Ij=iY&~mfGp)!A5GYE$Ce3Lrg(V)n;LPNk-9QAeO z8s|Em*$)|r6-d2jhDs%h_?IRJqyTtSSuOxcz;=uL#yFHgKnUbne`zorr60Ej4t<1m z5>bKvFt{fJoc4EHInxs%v!6c8{l-AxqT`qMg$!_y{fTW;4_0HVFJA)tA8)amD>JSr zR7CH4U80-EPeu-s>qS$bb%cXddRx-HuI~pvR2xD6?j*}Uh~BRi0+K15ltRZz?iasN zvqm~}9|+8(SB-Uh^|<#K#)_NBcB}~~-01n(8}_nr(N4K|XW1%69Wq&o7=Dy*fu|5h zfDHos3=r5~T}i2RrSb(6IA2ttKc=Pr4aFTV(rKykJZvlAIe0$LF7MISaQ++PRCYN4 z$NK#%>GA=-DEJubFGhqJ>F@;T6HN4$m6n+Aq2>U6-bRLs%RD2vw`Q#5s((Fu9Xe55 zr!{3B^_G#z5(^E^s}LoG>A1r~-Qz}hj|x&?2FW5K7|BbqEa&DW-S!zaHr>d^ZMTxq zWAn~=vBz8B)Hekb=FYFNX90GT2DFk~EwDoe;Q4I2&EW4N4pRYNIgiCzI^LasthRyV zW4qZU$e3d;&-?df^ABn9me{fHWS(Suc6ZKP;ep|6M2?n*xnt;bX0JPtI;nqdpk0gR zXSzsUI)8noxuYxdCvyYA&)mpLi7SIqJaH_|1H)ioQuvA#Awq9d;kTK{AVHp6!XmEhZ}bFjmmCPSSl)B!*ieP!mcq>?_r z4}$bE05tQN{ak+ww1ePt>e?pe&*i*}#=qynjB)1D+qhxYw+Z$4q~kB-X`?*|+Ias) z`}k6D=g;M55L}x1Et5J|o;YUz>ueK9WM=x-&_rQ0i&MwC2akNf>X+%qU?6EeBGNZT zO$vqHjv8XyYB9n-y3;{&xwu>FsE-=WE4Y1y+y_ZxSYo9r=vGiwfzmco^6!5s4B%!_ ztXlW7wj};WYXH5J0*`uM)*F`Ek%RTssjj@SXMu$;D75xV1x5iovA59{%<(+Q`w?o* zgXs~gipc&(0^x1gCs2RE4ERbwt$yFXmsvQR1eQ)GsQ?Po zYfOhdWo(VmyU{-5DrLb4i!b8q7e}qnAj#~IOrvS^4r;96H?FBOtRZDv&@cr`2@^2| zp;GSd7w@&F;zqs}-~egr0WyjmBGZk{~w(10|JjRgJ@H#{MGdIHkfW~HEIdl%( z`Gme7_yP(%BknN!J^JVBpN(^G)Wp0!jM)$Dvo@&aYXjRpC`GoFx$eZt38C^581p{AFehzvJep-}Ww4Gn`dZznl4!xlC`m5^&mmzwc z27yWQQX%NyB)}O7X=AXVubejAk9CI%@EGBdk_zSH?u2+i;bo3u5( zPgX$Qfa*mlV*-DpnN!}2y$oC)1gwhM5XKCYF+pBH%8VuT0M||D%rUzqXZedoH58Jt zwH$(989LpCSgYZB3aU;+VpT!=HE%W$^-kfdg=i-q?9H0w?ez8Dvb3su0qu0bd(X(n zKZbAW3Xw|SjPX>W)(x8r=X6s~iPommJK@XLJxa=yd>Suimo;ki?-r z>;c9Gu^)n3P-6#aykIw^aqQ}O%u3ccu{*ii0!Dr@EL~k(h#L8%QdI9*zHhplPUJyr zBb&O8LLIUKTzt#&@EU!Dp7UuZ-G($0>{X1dU8SDYo1%QeWUtpgi0)KSZue%?ir9U`c zvh$^g7Oex=P&x-&EQYExX0T*B)2@OrTNMq9R<2LqPg{APeJ*FlZDBhDC1%G{<|!O9QwLjqDynVEEllXXE_?+; z$~c)J&o&)jA`;rnPN8SLL+U)!1N1X?`eb|wcwl&N(CJ(U*$=G5ZM*Z~VB_A#0)*24 zTR$+zfWpZKw1XkPnDaQ!olmIC&MD>$OfoM)aR!0GwuM=qZwG<%UJPYmk~_Y*ovHND zh0MHJRHXAwM(RM=R_;3wNEiP#VHN|m7BJOPQK8ZQuc`d0GLr?Fkn&R_wEr^E0NrjRKljq5cdv>rT?_g`=aTU&IoPR!y*e8NzY#5eloG$g z22pjr|9}?k82$!%z)C)Sl#AO1F5Xz|*vrr0pLTB}ZvT_~^QoqZ6Qo2rLg^!0_=u{0 z3g8KjdVZ|c3$<$4MP2-1^{tu*h+NCkUu90(;)R^PuCm#x+Wm(WuD*Bw^AGWSSAv74 z!RSLsF5C7MWev`!oV)A+47ITaB1Wy7jeH;47o({2T__1)p0yYx`rTzyU{wRX52*5g z7{=af#bp>&mFLj60Y}*Zyx&U?AU}&hWpU#E@A}8i9(l;75jpdNX~3s|PH!Re4y2{6 zcx~1ve_Q^3GSf`rVMYwh*|Mcij(_gH$MM7*RML=n1!o&OzQnjK5HGpt{0wIUAkY3u zMm=NTk#zZC_B$elg$Eer|CAKB{&qT^Yk#b}cZS)VN_Y^Y zDBpSzcuAU9_vJiybs#KPLi_BJA#4FFQ+N7A9_8UMDrQzxa88E~DKK~-_%~t31YUrG z=`!O5)0I2_k~MJ4J9uG*XBQ z>qn%(x-@e9s*-c)ctOy}A%&amUXA&wF)Qs>5@Cw47|$wy63ajY9{dbgycNsCq6LU} z<&U+4&^0Iqkq8^ckChvd0>=P-9&7VEj+{OEjutxYT>xUx(FS(sL8Mx=tBNLn3G4Aw zkSO?7cBe;uOr}!rsp>UuRCmw2iqDx+Ug&y(2$w}H-`0?74${?Zs(&MRigm4Y^P1TEp)h5fQ2SwO_I5TQ-X;+^z*1eK1R z;If2lg_a6IJw~d0+2<-+Z%(QBPQKj>N zf;&xymqK5C034*3c&mQ~wwhVLFszL!5vI4NIgGybJY&8CyKn=FaVRsH_giV>$+j*a z9pvDNg*7nNMSewf22@NzYv;Ck|HEhtK)%SGJ3eP71ELVunG9-mBbfvb)l7+dIv!|k z>xbV>$46%Uv8h)34lh|ha6`^@zU%L*iI{&o1pS)+vJV1N^wtF4d2_gt4}k3xB54*c zk$kuYa7PUhL_&UZMboZZoYnZ})E_>2fU!E%w@(2jdDe8KzX@@?mv`Hej8v|K><9>hfF_oMSO zT%7$m6VG_TK)C9JR_}!7K~DfQ@gya7-3Bk6dENPoJgu3rvka>YYy`!Aj~TR*X*hO; zpqzEpT%k>aIMk(mt<9fNq|mX$aKo%^c_&{% z08Mk0O+a`As|`Cb{r1K@<)bX`xel4RN*2;9luf0=0x=y#w8R;43GW2~1LXoid#gjF zyd^$&pnaJRqn8EoXZk%>nT0Hm~SRw;AQHd&l1^8_Ql6Wly;sNZ^4{Y`P>O}AzQ$i^}d`Z zY~X~hTd)qB_>6*WyGMLpd(R>pX&HtOR%G7ZOrF*s;3d;G^B|WxKWrQtDTVqo%4OCA zXf$5}=sqk0&yiV6CSHDaot;ELuBRZAiKp^Cm9{kMZwG-@q7?Ste=mtXRUyox8AdOt z|Ls5hhsD(~TD?4UgI1u5efxLs7M#oTW;@PoY}OX9rcwqPaQeFo;l@}x$VP8;x9JS*)z==J{g zg^xI?m5tzOuz3KAKOsLGA3TcGI=^Ri7ZB$s z)MrImt%eq=%rAjHr4@@$)!t&XYbh1l7h`SBQodAC@9Trb*U-+T2lYD0_!ah|@j8TQ z@fE+TBI;206R;WtqQa z1~p($VNLYpXX|%(lBge^`NjlJKi0!4{Cg5MgJ6=DeoWdZ#b@iD6g_*p5s9DccxTq) zy%rrb@%z4@GU(Vw+z(-YN1U0FLUX!TAGBEVi?CQ}&{OpdOogY7P6Lvz045OaAxvN= zn%JXXM+F?p6w%zO80f_vV!g($IRKlz4K{q5lvpKW3p#9gwEp34Jz0SZoF(+%nej?A zSmaNKNU5M#aP*9Fa*jC=(c}jmeWOrJ+R@%Q1wd>m-?%%6@UP~h?DV?=>k;USDhC+7L001BWNklAPBO6l>K2Gu9ev8i{c1LRcMkIKp zGZP||TKQg^Lqcz%yyw#*s#Uk^)DW&qFrlx?Wb^Dx`RC$$ZR9jc^QdmEkzb7VGw;zp z4F3h$he2yb*5=o5&H&2LqUxNM@9F&C5;C&LB*znwXVLkm=KFWw?sQm`C-3Dqf^QZL z5f-S80#}|pe|15Bez{5*r!vX|6TrnY^Q$T~&;GU!v~+m-9A{(6!65L`DGM*xKVLto zgQt|2lySHE9JJ4)^Ebj+eSPQWHiNYFGy8$nm-1|WuQldpV3_?E@_F`?%*4xT<_kq4 zdZVrDU6rUVS0C6jKY%a84Jky~QZFyv}P$m^wnPPZs* zioZNk*I=bM??=z5HihgI>|QCqeB1%}`b~m5kCsR*)Vqe7 zzJGron`LR4qjnmzDzL%tK(!yhh63nxaAdD{(U*#E+NqPKimJ}Of+M#EbG0{!Zy-*S zV56$`T8n{I!GbY2(P%ADDkzr8XcNl1iR~vAxAMX)%(EK&I@AY7Fp{&!v^MgfZ^+Mz ztjD929lGYgvvo)lYMz5lH6m~re(p6=htbN+O0x@Vqlv{)t(46ho)Ku#&NON1;Vn;+ zk|wuwJQr*0T$g~QX*7v_wL~Ti*RB@|SUugk$g!)~xt%|*3e&R0r#d=9w0#rRHEqr{ zL)sqUKeCCx?v1G@mDV43Kkdr^*knAT#FZQ?%z@E#%>Mck)~}P_>ejikLtN^3;%ss@ zr0eEb8{MJP7z{z56N8qSA?KS5O-e{(c{Lka4E#b>KYKONq3iQt;5YmM*Lz`#40Fz! zp%M&)N-ZM$gUrUcY-5<~c=n#o_duA-oCX1;qP4HcMb0olPP}+O{pPc5{bTT!XYuxT z9|@JgI?I$I9z?563mu*5vf~KzNdNwaLLQu+B?+&sV`al2cquUZ?c|v<78P^(yL!B9 zj{D8;XJ-DzXV`hrg$y@e?-p0R{Pl+EmXrZ#`?l9Ko+w|P;lmj;BC{R#P3*<<>W<`j za|p5Uqs^Jfnk=q(Aw?`xJid6Y7^PSNfC4Xm1N_(O3Ataj9RC42hP$p;3Uhw`q;}C{)^$xbfCk{ z*OK7}U&DpwFRMqYh}L($(LVdTy~xSFTVSOO)8%Kzcgcsq=2hiURDU1m6pZsu96;Dq zY{df{v?41TqhPzdYngY8lT+0nFqB?4f%&41d+R;4#Sec;r%%%nvaTJml>G*xESeX9 zcE$hD_$F?V-zdDa!q!$l=jI&SK)b7P{=9_jxJ%*ot1`14da%H;e~xF*_0{MDseP8E zf;OJczl3&Ml0v?F?aKZ&;0g9rS?_kf^sbbR0l>`Xny5xSkQlsNO!c_0qgg*K+jGm> zKc{qL$b(?wxabM=&#VVFS|I1jz;&LHsYC*6<-f#W7&8Vp;>W-A@2lfm4$2f%LBIvD zFy}!q&R`ajrh}5nl_yvfZvMC)qIqXlOW#)p@ur?|dKK&E*q~RZ%xcD{rv4O)D0CZH z8$Y$3<;Xg8c!VDlOrib3&iXY_;8^>y7ar2F4$Wrvb`YDd;@}IzT((9u= zi@{JZ&_Ruj^U6Ev`FB-Uy;1{h#M$@a33l3SvDyk{>b?^O>tq&Qx>IdaDvGD9zDy%b zDewsFod6!IUBF();_d3PZdp!F7?+IRn`jN6^%A5B@aeqC`t<780N+WWGdW4Ly_21y z2Ea!8iz|Dbvg@(@ils^>yE@-)KCF4thzh98SllCW)Iy#C*(|Ik4FP%j35CT@sHcXG5-Ca#Udb+V2h>1GXyziZ&^8d#7R7fpjY6&PGqvqLe?J6 zWvDGXCecW~h^6y$7(e*qfiOf6SE}>JnY$+oWTGV%rrVKT*ZsM_2(|u8Hh*X3s_NIe ze!?Ix9=vA-6yd?ZXO~Ye9j;Dqfk6S#`5p*uo?&1rA!dBlHROC}1371P;#g4zmRMG*)-9Xe{k(G5XP@T(#kzcfbJI z|L)mGy&$4R@3}}`$IkJ;)&0=CGjZMC*m9}hCG_9scPF>;{PuD;_j6d3 z_!tOr^V|KI=xk#UsS zO3&}%TXjE~{VC0B71|XZFc}1%{Uzz*U&K75uzi7%;%Fj7g^_2-L6N zkL^H!nMs4en@A~oN%qYgz8ezMWc1`PJ$|^wppxq#Gc_*5rP=RvLeRgxh=l4FWm456 z_)LMEKkjWipdZok>U?8@+@S;a-&C-dD%!{C+UK#qIcFu!>8{s`qRd1`8Sg#NkK^q~ zevt94n;7b@3u^pEk8T2w0U0XEUWNay#$2=P7JoK>vwhcUdQFI3+ zsj2lBdhW4RM(-3nvCOF|B*qyfniyyJmYUFMhp~RG7{7&sEqMsoK zU5$iQZq)|TXUJC}JYM0isHv189h*SbfZ}UCGCdN>K%7S;zt7g6QO*eB5Tv*(e`04( z#SC_<<`JE;P3u-dURK`7DZqH?ld?rgu0;1f@uZ1X{RNkXExr;RT8apLLJ|k9t#myT z6zs?vf@;rZTup1wPegm@9Z1~M@$USMXPWCbgYDl6ZK_8UE0WeeW>T`&$st@BRyQ8H zkl^!l=UrlVPe;462|XYplYUP?bodf*5_l`W()oyLG^iWZ&zL-?RvH~IFIj`9tQzlg ziMPAT?K{49^xQkO&Y9roXT`u&nD;g6<$di6COgEW6X*a2f!*vmOjS*8*^-v`H}*(O z#saYdTe34q$m=a^#4-r-K$ukg%nuxRv~cDqGH1wGAje<2_wnzS(tnG1cmC(p<<5`I z7)`-E2)sVwu*o|7%oaO&_6-^84TCH{Gk0X0H-5YG9nNMNBlGU3G4}ipp6!fpJI^K; zG4aBpVcJ{?or>ewne`floI`6}su{aY?AIS_DktGodML6nQmm3E#CsxzIO0fm`PI!c zfAme{I2X)dK^bb`MqmP28i(Gpm`+LA3O} zM_~<|I`7^{H=uJ7O)eNTa3GMb4SW8jhVCohv(e0?O`z!mDE~?6yWiF4>sejhtcng| ztBnbJ`7?q_hta68ZU3YAEbTGqv^34!+=Q?HTBF*pKj>?uu-ag(BL4ur5FTY?1(dZ0 z*%Jil{Q=H90K@W)@q4k4_q6-j6M7M~p8=b}-D{bPOO4Flk5Y?M3H6b`22AI2S*s~8 ziHSMyqMNne=0w_93R|$*oq`g8w;tztZ= zcK%Bq%GN$#bNQt!89RK~UhP3pL+h0%t4!#|bv=jTuo1A5$omC&5zjjA?QDtr2{7v_ z%=Kx@078=oYhRV~y?GC+qT{nm_xv99Q4wI`{t`2HGV>mO7n_+8+WainYbGwo&E5Ca zYT4%ILmqd2o$$$K;Opy&LGhpkp>Mz#uf;~#8gdy6fiY+sUzE)f#9(Nv_}?F&adA@ z{4mJVqzN)G6w-vyKs6ky!td%NoA)om+G=_WUb^uPE9Da*Z!U-CzRj=z&wUAGk{NJV-s{wn(6nulO0P z?+qIcj1AgQUMES(bR+`HEz3LIzegjmZf4?cFyHhy41^b#ipbik}@u zpm#v>$b*A&qXFzti!ej!a$}ugwkr!hGeaW_R?zb-fjHF1j1|?pFq5m;H-_p{V$E6U z6v4(1I^9=F3Qjuzp1n6JYZB@FPUcvI0eVIbvweO|sp%T+no)Sd%9~X!qjMle2BYuT z7AMtdHv6{AQ}!mXLn(GC)xsgo)O#~nbZ$nm`8nK^&H%w9c?(O~TyS;LsLrWunUEd? zE^E4P*Dw)Z+tW%f=gnbDHVdxGIcDykn*BMuF+q;welq*p#Pqv;xs)_}`_xVy3gkgB zTfwEsYUtrX&}Pf)9&K8fuboBywh``phm%3@f=A_czQU{t;MA%(-_CaCLQ#cQLt#eP zyc&hdSnSZxK{)}r5Pf0M$18w?9eb?;xp@HDytlhoKdLMajet+AXqg6Mn4q7SW$j*% zG$4E$fd*MK*N!1k=*6QJKX?kv9Z3UdfoF#UL}AN7n|!M<2C_7a+evl<@CjxfVI;Sm zxQHs2#rCwHq%RSweUQ&X)V|ChHe?clC8!|->k^&5lhEx1uL0u#ek-lvZQS~Jl{bnH z##MYr&@tLgdV$kd3X^Ia&8yY#gzfA{e=|sGBJZ6IJhT>YQriXw@cy;@;%E1XE}o?+ zB6GH9>3Yeh;F6j1Q)T{VrD0RR?j)``H*c9VJo`>*h4IF>1nBYXXX#+y~)~6 zG|zsrc^zhC0Kvo~Q{Pk-KbP6A%!d~S=MBGcXJ%l0|TMO0yo-DHk^0|EkZy#>kP@fTOkVc z>x6l&o(B{@fxAM_M)v@v@mG>zAGKK%{r5?YJ+WB_z8sf7Y>R051+X?v8 z=w-$Zh-ALLcu5g2fDl^8;EmP+j%wc}OjH-foNu0NqSa)dN!5#h8|YYDc3pdijuVs zpWS@=8G80Y*-!^{LLM}eSF#M^>NrBrP8yZ$ju^_!+?+n3z?n%SC0d!NU8 zhFrTHbB!L@V_Y8IHP(%r8hK81hSdBk6PEA9dKw z+Vv5l3Pz>|9a^c9)6c}Irh&iQL$V|T($wbTWE=5|oo&pbor3XkuYZSI8Xp{MgJLHSumLqlj{ZJq?^?Jg8&& zhGvQ|h|b*EnAcR@M`UYAXa&w>)G?}y6N5@pLD2AQzU4I(B}>ZF3>MD>!&$LH>8;WD+MURZt6KPbc(AkW1jT6LUeFw3ZVW>w_u^C(>)+vqv&QrObSOZkWg zHP4~vr^-B)h7{ADy8TrCoYtO{76vBC{Y=jL|L1#?PJhEh6X?j7gxJ=5c8qrBWi~Ph z7{OS`&cT4jHM7x)!=wSW4|JKVPL9*Ulz`h+{O*PyUW) zZ{;V_?9Y7EB)@)yQRsmFQ)=tHkk03PUqiOxr{lRYz#y7QbmzmxyW`30#gp9Wxenjc z`2)DqISW9SoiCxo$U2SIo?$4j8)p6yldM7Wl~dIysFf@5zU?Ys>)2{jd#-O9!Gpnd zg>*6ec>V@bFab>*uhbGhVPw-g=haMRe~SUis%xqFY9$(v>}~M=j}Tc9F)J;1IzIe? z6FX+Ohwe_G%!cpl;xm&AE@5C zi#qEC;Al*9?GKrC2LK~eJcJ!Tsl0ibNEu&@c)rQ4M{>oRs#pAvz7L+lZt2& z0DJ+Xxm>QTuf7H++DM*TVg1eP1s7n{S(7G##iAV9a?kB=e>bReMo}jQwV+vtt~<=h z8OdU*1NA$hhWJ^unR$~m(X)8Qwt5e19pi`|kst57XzLn&>s`E#F~sTSy&P!)ck*oz z!;L}UfsjAmFEE&DMX~ummT$9pbr?NVT0dXva_nZ#)!dA3z3u#LD_~oC27w)5WZ%Ik zQ-(_-6$63q=eslAe9pfQ2Lbw$$pq%P zeh1y6zV;%PRoSkCaKtw`_PKjH!dM{XHO)^^ahvV!+BE;Z*vK=T?lQkc*v|f3rzb;> zd(nNPojoQ6*Ne*kPs((ot!%LtaQb4sxc^zhMvEUS+@KT;x9DW=-c?#_6Ypc#Ac=m6 z=0fMaG~LN`YNgrE?p7_K5Aaw#sAy(k2&yz_wPqM2Juu8bYoUj#Fwob^*?vfy z9*KWsy+CY(U8jUU0#U~P;UH5meT(e=0o(#%VEOL9--dr2JY~T&ZtDSwOQEos{cvvb zMSR3{jb4WxeFoMN_Q|l4`2A0E$0}61{o<{jstW75f;J|BMsM&Dp!m~++Nic?RI5j^ zRsq0x2G1a(&%)+fdmz^TUTu{0ENBC=OP#>FvO!?2gtmp54oYt-^<-dUU>`0!ZTm9F|{af9K4b&N96qB8yfp$Q~d1l6*N&wu2+yUb1qY=k5=o zWO^>w=ci|>U zNfz`E%>JhU9wzfKXL%{_I!5F*$!2qSA`AY>$I=V%wLZ0~ z?mQ{#*}*q*at!2c!x5oBtrZFJtHF#!Kct;%!RVb?l{Jd2FMQO9q()m0DexdRV{A|tBiUgtrPX>o%u3*O) zr;5>-K)tXXR||QvnA{E|0WGDkrrsOfmaCc8sBfn8{hXJC#c-ygke3uld9L=i`|u4wT(}_7C<~u@ zEc{519Jb@@g7RWk;k~2Ih=bPlx5)<&bu3SX8^*;iF!%!2nnD+Q1E((-~4xKg|(ufUM6l|jZrk`hY` z*{yqggP>Kg+Xuz34<^Y@?fB|GwOF)G~-D-?&yml=L-N1k7KEE9V zkw<^fi(G|;j2ci!;>8~M2OV~Z7;5h-7ytku07*naREDIu(#P6v-i4s!3-s9$%E!*W zjQrJ2q5Ygo-^(^_|6_?~-yC!kF7==z&AZp=x^1y~k`si|tGlgi{q;f|(g4$Yb+ui5 zkPTlLRqFi?ASTVM@Bj67!NG@JwLRQuJ>7sOFMRR=_C2)HhvDrAc#z*fRKi}92mc-Q zEjOzFC>;UMSc>;y07rfeVrwWl0~x@M5Pu22XEg;r>RWGDtnXEFD8J4@)ZX4<)$jBR zlvnSk_JAkBFQ?Z_h+hroBUV>*X%LZqdUXiD3s^Xp-_mJl5WtACuW=*$4!gpOWoemc zd8L;8*hC%}H25$2c|ZCGAQ9U7sLg|xDT%X4#yv0H-;OM6Hit%&g;opEDyv?tq@X-N z=VQB$$@1Y2-~XipX+%JuvUvN)w{buDQ&IEbr@I&cPRp|>)WqSH3d~gAXUcMxQp|pM z0Is7t+}=dk33QZN+ylUv%+De`p%|h8F~8C?thMC*cVY@7PyHq^i#y7pMMImtXY>sX z&u!0rR(tuqsLK}4D2gW1N>wCz5LiNq7t^1IW-;w5t8s(D!W%_}-1$V6mn*~Hn<0<_ zvO4pq)hlM1Wo*i18PyvXygu(|c_0j`O1VXS_uae2?%$P0b-ry?TKPAjX{qB{wW{L@ zt-LW4*zW(!d<*v@eyO!QgP)HY2qz5yIv?@^pFlkxObp1jO{m!@oC!mFx$Ws}zf)Kw zOKVB!cz3=#`c$pBJpi0u-+pobOA(*9Ulo+K#NI6r0zcd@;DUtK&@uCU5pP4$?A*Yb zHtJ(rSme`v3oTP}{rXy%VPtkP9fmOj{pUg8&d-ZPevft_SZUL~1HVCsfM;3!nER6z z^h#&o`Wv{X^9}jlaZiOF1kRHu4sm(rJI|#sV`m13uQvbHNsZmt(=V5j_gAb9Xi#_t zQ^2!RU9CL?`^83Rlb2&8KiuoQ95GIZ+dG9SE2i*JH%uZn4$hQo=WlerPKKk_{~0X( zVK36L*Y>GGBk$x8db<@-MkX%gE{b*XJ+zSBfKe~fEDKU-=mUhoIz8Cuhk zx^__IJx-#L2a&CJ@Aiv7{pnlrJmbS46{ouN2gajOZNanEd4T{V35ZFAZ2smZ-VLuL z`(M;n`nSCTXKY8)IUzL{AyavF3z9pV{$W)!Lg9iYV!#w4u; zEe4=3fz4K&v@SJKWWSM1cm_cWxOo{nzoh18=2_!+w1$p>kR=aP)T06!p)cWi(T#f_B;4}5Y}P9Z*+p^9I%7O`hW9PoF7ETFW$hD zZN;-;wT!8~IzIs`seTtG_$Kx7U;gs_;_cgSBlp!-+&d`OVc5wdQ&li}^Y30gsminmw?~zC3%_s zz*gVPeb#Koa&+bRIcy3H;F(XEmXC?SAPnM$-@SPoc*z))wmnE{*-9Hp=No#pli?t# z1wVe?zU8u{!)OXuMpgy_1Hk-&c?>29@67=2f6;xdxE%!V-hCe_fdRN<5WsW+z5Lb| zw5;OQEZidyi3-#|aIyL*K75#ks&T6kP3OP+mp?DQ|Ni^M4;ld9{QeJ7_pu849tgWP z-$f%J0Y~JJMkD3|+OCNo8I~Q?a0I5b}=8H_gb>Hj# z4cs4vws)#xe_Ngrs9)$mPBTqBj15hBHqYfkiaNx1l(MBWMoEX~yxad-Zx3lKgJAbX z{r)-#`rj9900{^XMGEu}c@@yRtDc&{(kMC%-J|9u zZNox)RICtj?WXJqE@S}mrG~@{CwgUxeK*nrWQ?I27Ka!Vtoq|Uxu90O0r@_vSMl{u z3a@%l^+B`KvoW48+24Fa`Ca~QuWmH^h0&z%;GR|vs000^j)z%2NE+as@k_> z5d8dMDOm5yd!HH}E!mhit^9PN(C2E`U4U#l2?X-|l?> zMmaMKf+6x{H^I}Wv*`FTST2{d30q;nV8ZBX%{C1j%ixzwr;azOS7x8w=5h=Iz$A{) zi)#+Sd|vHzxi&2PKqVcNSq{&2&fOo=AaJ?|pgZ3aj0s?15L5yZQLK9ygE>#; z2^^QhE8MBBw2ywLtJBx+C5rR!zT~)z3OnWA$$#)s9%bI0M-Pc+Z*A(Q$=@d z;Q}3=WKYlCS~_*CnqZ)ePL&`gNWaC$#J$MXQJrj{@vzfB)YT{WpHsEt-)MCTQ-^j# z>Ei(!AztF^f;m}KiQ{R-m@o)7VyG>kZKO5jeFtn?$)lgoU>(|7k*tYqE4eaO!G%#* z<0!YfFEjg5SZk?o;jCut9IWwN!535##ev*3-|MeLe#QN*L<*)Xq~GLMgmbn6Lp9Lj zzX4D+b7ioMpW{B~ew}OzeV*`h0^@cH~e4_d@fvZ z{w>}@<1l2_UNcCe$E-rt>%|q4huN=tFA)Ip~iy%iYWj*T`X9R~8t-nK6aVi!o zjaKh6^9}i)IIw^l+hLylF6WRzfYq~Sm*Zo16!i&1g--(A>+(va^H`quZ-*u+r^ae{BnTyEEO4b|_?A3nO(!LmyQY4#L}RSy_YBOPZ&z*Q(e>|K=bHp*7Ta-=!w$5U&~Vg3TbK48s%8K(5a@uchZr)< z+^{bJwCV*B27}SRv%B-%VZl_F((1tOAD!L~P!xxxS>T-R#%$>whnbK+ueH@vv zUhCqUq&%^YJ?}wZysETLH61@lDWgFG9JEKSNCndulL41B4F$7s4@O~vLwg8MVngwV zAO7?d`Izk2l#E&8VkOaza!~GfKZ%A)6neYUFGYHQLN5#C=OYK}{ZMAf)}NI!EDC|) zd(yrI;>GdAdixFQ<%nEY(qY8YmG}uSe&U&6wKSOMgkl^b@w2ki@Ki?>E_!F%NOaPk zo=(c6nh?y7(p79WJJ}X!pxN%9hYOB+$A>!0*`x3X55j&1{p+PY>~$c)&WmgMl*h*9 z$(rveT>|=)?*cHU%4z~pAC}y`mi%ud9)JJ6>;bZ>G2Y<9A7)*Pa-B8w0vF_D=OKjL ztSVd0zV+C;Oye>V(u|*2(aL3uvCdu%>vMW7YW6?p4p&u)LE_$WzTbl-+FZZm9irg! zf)8QlvcVECRGxk4K6pM0HV)}{ldD2DOK;d}%BVar4p>AT%qb+y{tT90?8j)(vnUhT z08B$&H@k5i2lX&8F?ky%MkFoXO8$TMS54ds%U0Jg+xgB**t)Wz{3Vz>X1;Y>)0Taa6u|5U z9J&$)fgvk}9QRx}42J3WdahWcyYt`u_jlUzU9J}ud|@UWTIN9j{q-QoRd~5J$C)hU zxX-R*&8hIuj@;D z2f;`k`xdLKRaDknSub<#Pz#H$J^c7yjG9nBJj_;7gDMR2pbZ7=pXb6U50(RdB8w{M z1wiR{TErnl>cDGhgkhg2^{X0zvv%*qf1p=K58p}F##aGL4<~8pXh$x12ww~BTi~qV za^{jS79S}BeY#f-y71=%FCYc~cR!|LKPv9;4h*8-65f9McJYUA|1ea! zz8XGji2E&WjCEo*HF}B9t>1ja=ak!Oc|3z91jm^N@NXm;?<98In>SkOOfYFFA0?L3 z%PsUAU3b-Y6B(w^8kwtaHG&1Fh8c^<{72Yi(TFZN`O-bE>A3O{@NM4Q`QFgtki1K| zKH~zgsJZ8R64145~!bWudbz(Y+&PJ;I2Fum;rXeIAFt5UWe?M+@ z;~)nv+_@X*e9YlM`?=%WPPdK1oO3MKmBVNiW|OtWFdfvH=5w;38mJ z%>~f;6*#Am11b-3rl7>2b0u2j?9#Szccy1{)}k@{eNm9T4Bp)0a$TUq`T|b`9tda0J= zNQOZ`|G1AFdJw<_GV86w@L<@BRl~9kY|z3LOw65V*{L@8u&-Y^(S=LUi888IGx%|_ zmE9n^a+D>ZF$=mbv80|rnsxmY48Oe9sD%3>(F--nCJiPlEQ|)hRWGUdFxwKHLf#ht zUFcPy^)hpz!G5n;`O}9RSUX@Z!?J9s)A>Q7-MtzQTStL73H{Y93fZ$rpv2qnUpP7P zX{vH~)UjDm@b>LDT7G_~C#${oQo5)kfRi?(agZ~m?n9|3 zz9&-nqc0JS=gh*s>Jc_-TNuC{Za`F|eukL1o460tbus100>RDHeFU@=i$ic0NFw$< z)c*p94b~#JzFRy=F9X5|#baD~VM3_`WHjavB{9UoI;n@ux}ozqUe<$v^2{dJWBoy{ z%jIz{1q_QI*#8RD7j5OZ1M_$FH&2kSRut;o+YSMeH3()!by%EcN zk;lut+*?J>AfWRNj`u)ud>fL_%i^{VaGp6m#GGTvv-$kgp#-iR^#5DIF!O7Lx$*oA zIv?0clsTLA&O|82X%4^we=GD}T~b91=vF!QRQtd3&pw&$+@UEi2MZ(0BeZlL$fkC(a|*btf4g>s{8kHZEJuS%lEvd|3y89^m%h)E=ye>XKeBE^GsBABc_MNle!r zc6;^0wvn8hHH$~u698kaf2{g((XrlyvX#DqbqY-JgFlj@fQ2Ej1XtJxK)O#Z*Lac->YqLJsY+Snvi-f*Gm46@QJ`qV*2$~D}x7-HZG*NliKiJWQq_t!vGPR z{utGzsNvQ}oedFB+_WS5iL8~^ty-0&kr-U0GA$-#lEM^ z?Lhr==>Ms{XrCEMur_k$_m#yQLd2Ymf_Y($@hHaZ2Xd#M@F*sYl+#GZ;>8Oe{BFU% z1#&$4cTWAnUv8J=?3~BW5A5hTrw#Xz>MC&%H)t|z2J8Qc_vV*Dy<68i;uP_!?||_F z{Or7uv!s;2x1#<3d$k8xiSaV9)vIvr#bn&#U(9@GQW$$Fd8dl?Qc~QyeIYv?3r{j3 zv#D1OLmjW#Pv?68tVOP^&nWthGV}e6zyMZqI1==WrEeY#PRr-qb>fN*kP2QfcRu$m zy~C*l7Xx9BGh~T^biNm1sLw`>#sawm@Nn(R&(2|Vt|SN=m5WW9p#K&Nq|Td+9jHPeALNPRhB);Kh6q206?-tfd(3mtY_mB4-u_d+a}Md z+7=u-(KhX@RWn9WcmO`g$`|$kZZ!RRYy-4;!JURGoBe&v-nC?EXg2_la+IH6v~h-_ zT@On>M``Po=(zYCM0?!|LnuGrr2pvm$qfwaQTiP3uq8g6QdD8Qa3@j_?Y@zjqxMD! z1AeRJ*wgKI8pLnI&hDuFdEF<8#A?|C_m$Q@>Y4CN(RA=GoF!Djq>7*T`~gmq-#O>6 z!*N4}cj9F>D9&V)p)ZP9_FG^gUp`JjZSR!~eZX!v6`SE(sQV;cg7z0&!<%8gulhp$ z5L=?eT%loO5oH3Uze-fRoBkv{`0&EAC}MrT`bV5p!H*q_9tlRYR=jO_&pwAf(fRh; z0V8QJBggO8yHRZ7_emexg|@PED5D*e2N?sCW%`>{sj#tTx~PXwG>7kZ^!huRw}U!< zl`vm0qKkiC-286Tv1h4es)3L;QL}xanVuoGd=W3O_c7}Zh_mHY4E9*nBDMgXpLGFz zivjFweFRv24u+|GtwsVi*HtCu++{$fDWU|SwtyPuLkT9wySR=EAq||DFBt@LVA}1p z8(9PSa$M>B5#14Q+Q%}g$r+Zhz~+UbY%6xIXLJHlVftf*l|woLbWUiU3zLm|NLCAT zo!{nZ{VG`>VCFHC55C>s-_}!j05#BOL+X5&9oF|9@k|KcU>Uj1N~c4&^Fu$BDnqt|~Ubc??~;9cE0Y)o?c^l89i*uceB zE75vnd2}8!f)i)1MHT391!j#6Gw~U;s9sV|?6b#i541|W0A>~D6kP`4NOY6BHi6Gk7PS=lj3@Ig)pe zT7RhOVI~s$20M5oz88It02{)S{3Nq&4U%{#-%a>cjQxTN0|S_D7=1)Z{mFajBTfUM zow1pFcexz8^K;yT=pT|?d;V| zlv?gsXYxRH=y*a87S<%V0Q#ftlSoK^=y*J~nIxtp+p<#m$Ze8g()lB{%Vp!0V6cRFMMc*KH2;QF~Y8So}ZNPxi&V3O2*i4T?nFtok&z;wL9N3d8HcgMC9 z!1>$I2D9wF&%hvHb8A5Ad=H?^U%+tVlI9ve3@TzKEfjB+Jo>x*49|Z5z7(=eJ!6$t z_CGe0`3muDFWGP{S_gF11q}Ci{5nat?<8B|(+>4O==de>1t?e}&#TP|*_L;zGP6oY zmeY?3rAkY+_yWCpnbnb@(pGE_qfw#Lf^BS~){TAlSGpXD99C4F5wB&dkN9bqE!fa! zP!kV7k>ihY%EuNj`{hRyfB^}9{5eOj3pseKQxBL{n5xp*FC~Kgr-qVlbE5w+F{y=T76@l{TYDO1y zUa8gX#hmbX2NhzD-}I?g`3OvRA`mm$mg#9;tx%bEO*J2e89L%78aNXxSP zjvZ6Uw7q14bd>>MJ3Y*`fV=|7+I*h*#x}T)v!_vSL?t{XSE#h1+o{D)Zb!e1L&&y$ z6~gy$xi6fj4JQMj$fYuhxFC<`!ftrS@v&SPcz9+~=9m?CK4AvS+io-(AvXkmhqCXX zT$av93uZmPJD(8sGk~E)oGO+I+Jr1c4YzrJ1CgLv4+3ZMV89@wZHsmg+i3)4JqTP6 z9dBb3u!b+EyB#kL1m}bFc{SHcEvGqLS~1~>=Q^K`&z;|XsO$N)A+z4sr8?S<2P45; znZa^7Z28^!j=L1v-mpz)nfG(Roo}n0TsG?*a=d3gCU)+yNxBB}bATt2foDsZi?VG> zCQ`C?zM8QqimH{l(3*Xd;u*f%9MK9mMfygM{8$!T~l2Ve%*OHmqpHAbCGN&xSGW ztIZv}(ou^EU?i)T$+No`hZGi@1|bBkc!YvE5-suniSEdD+jffA#%hEnNsA z*>yd$kd9};28OM_RqKFVFfx^1=31_Gc&4|Hp;rm4sCVY{VmJqYPkzvQz$1j8K=Eyy zG055hhfM*jAN23a0AIj4j2|!flf_dknGLPT=J+-Ye?f}0%x_hDS)Uju zmBlj#gzuv+)(fgQ>dw#4$h?K)C*>7c$e`Il=bDC%;(wYr{6d~h1B2NQv|Fv6e@tb<0B}b$K&+T?#}Uq%Zs+<7 z1}f_c#9QQZUBtC}2Qpb_mr;hLwMv9LnKlEAu0S(6XT5jlpC!RKRvC7s(TfItG<5Ss}EKVe)ysoO?Qc0Jw3Ho0$Dc-gn2?3t1?}+pg-EqcNXgMAR^ApFZX749kRU) z5@4tp02{VKV>zn!D1x$nCF&4LG^hk*p-_vna|DwlNiOEeR`i)ihy*TSudwXyJHLc0R0A_-ox3&$lYSBydM96&td@{4jvFGE3d;& zz`fe(Ek1Z z+U3`pUCj6d7I43kVuCW9O8^{Y?+`8n)Gjx_<6YnpT$g^SZP<%oCZ+s$lFBR!j_8CCM#Y)3;kV2ngwApG-Iodps`hBwvyUAu&w^O!^s zmaBX}Z2)$`8(HfvE|>Sc^F;rt-wehqeh%>&BfNpPNHFjK?a?uCvBLmJ1>&~h35Z)) z^xrphv@JUK+h$WVz=L+p0?7PyR_=Uw20A~>&~x<>m*s9c|DaVvE(3M*40pQEKceF; z67u~WZb)AMZIRw5=l}p907*naROd4Y@Z@ol+b+9-!_6F~W$vWss>LZM8p`Zm=2S5z zbsfPlzZ*LgEFSN#iDj~Y7q$tEn(~OAPD@33UmdA~cC2=8lz8S(^};^Qm1e(DzcaY= z{X2(Q@k4x;9EN9d8nD{=;d6Aq`ZFeVe5wrCoJP(FD;27~<{M znt`<>^ALlHqh@5Ub@h#O@)%O!SMNb8->qmV``20bM|1U{G+=YDie#@ofOP%cvb^j` zYv&=BB?rg05p@3UlWgE)Kf8PfA`OI8P*5DjP8!j7Qk%Z{-M3MsFPrWMG>6_EKRaE0 zUo!Q_J2{!wY+>c4VoPildmRr0jb;y`b?U5TJk|lb)OQ@^)0Y!GSJl?7gCW!`dMDjK zzKXy|$ngi2Lld}4R>?fOgOBoY--MDT&^ch{1^w<-PIqJtII`FvU;{0ysz(;n^sYb= zX=P!|yNF>filylsK1vtxz)olyD^@=BeR@Zepy71%?vo)IU8P`Skk?lTP5 zGwNVQv{(Leo|aDLw0z&aV6ENx+u0e$B#Fy+KHe`by<4WeZQLa7E9L!4a0?pP&SgDA2C1^E;G4sHqcR*-OWVyIqk1 z>24zxhA{@MRLQ0YK?X#={C;F~yKwIbVvZlt(i>tK1i)5D*wCH;_2fgmZ{(C)6iy>j z?-(>eyJ&GMccqW~$fdMR-4}qJMlXI~6;5WTt^)RijFFm85~*mLUR3!AMdE^!jgD6~ z$W!>fQ^SKX;v7Q7pRkY9@Znt^*<-lHDqhdjSwz9dLOyh%q7A*g=salfD7$$UkI>jb z<+ggD*}_;H(kv*Wj+a!8B%Gz4{P`U{_{_=72p8MHN^l|hP|DBvX9Z<0@>`f zQH6#owds9pT@-~^0O00b-M*f)NNwdTg_4JfCj2N8t4C_E4@NX$U?AQLO{M_b3`6KN z#Ghr*bQ^w#B2LL0x#-8WK5%4xK>PzCSCD{>I=)YP=s#BUPl0f8qK`tpuf{q=3q_U@ zmh?ao&mY!jU@8qqG=q>AHJA@{BrPz8&@d-i7%&nA=-h${WFW!5e*v6to&ga_e6rHb zHUZqj{8+?8F&mkcnw^~-Ljnu}AUd2-*sv&L%07cg)SuUq0yx6}h_Iqu z)Yqu4sUMl0Z`l9qpUDkO_sJ zqg_YI`O#10wqpXd&~|*A-u@1RwbB0hO9LSvJDTs?irU{`ftLbj+GL<}xxfOu|M;g! z@+`{SFN1{H&ou`}olH6h*{XLg{kb^vP0r_z_wP3JIRkkx%<)_<=RFbpZuJtxJtuWB z2pC8vBl*}k$^+1UK<5UE76=X9yuJxXQD!1Y^hie{pedn&T)^@h9wN=SWqOTZ(%4-K z?FIeDAo!pNp(_KLEdW~qM4dobnt8!1DOBk|_2dEVhL0p0Wr$DcC6mXhq4vkeQn8f% zqr(bRxI*RZol}L_817_18jKe+T#V=bM^(&%hfqBhGx!s_(V9D!{daOWc@h~g#M*;q zrHOu4;-J50Q3!@E4tx}DEoTVQ3WXuvh+lyx0#A z_+bO5BNS#-l%nI7&TlP;BB7!zW^ta$xxAn4upPY_?ePv{=jU3~hE-qhSUReRU5**U z*IHh_1m>_Wr90jSNVejq)3ar=;~cif*E;^U3R(7!rSF*v&j!FH)HF8;hWgA9N(Y@g zJ{U4)zd9;xon#t}fdbM#m#=2`qoJ8unC& z*yhgm3RbVSgTbUAA7#sPtc0>CT2|i}lwyQMwtbOztyRPp1_nDN@DBO;w%*VBg_K?I zaL(J!4FWldlFvSI*LbWT z)^mXg`hVRo{`}{?-d*lyq%ZIwh&B48D{p7MJ3mN>9`Zif7v#q09<)!xkAq-bz4ZHe z_Ve3%cR~iVJA!BVc`nyUjm}0Dj>hA{b<9z+ya%51IV?sb{>20u?>*>4`p`fF%#8L` z^c-`KcUQ$;b^gh7(L^Enw7U#80(Jyout`7L0Jx`(l&8 zDk0&}SggC~*WriTf=#9G0C@7d`i zz#KW7B-4@ZaNiF!ETJvRX7tK$z>VZEI;qk$t6Ia+LdhO~jsE#)lQDlVoj(WJj69>~ zB9F7iAsiQyNh!@*J{|7?n(Jhj4Hq2`YPMT9-hsM*V%VmKmNqb7OkhCS~713EmPHFH>7G0zs8(PY|SR`h$aLc1He!7 zs0o~63et-S+LS~<>C5&4@jdeL=0Ualz1~II+YX-#*4l%8MD*W%_ub;{AOE=cR_!ui zfP;)9THr&y8@5eD+{-AmO@GO6i+$uBEC@&G?mQh*NHbEmkyojNQEW| zc=U zyg9z*J)9;-kwSkW0eKLFYEwDD0G9wR8b!~0ZDoS#f%z$%@2JRZTQ6Pd=)=YRr+1iMG#K~fC5q^Bg ziM~L9n%m$(aVP)y04C8$JiYjWM|~?=NzNbcbhZzGG>amJ!N=E>t5C_lx@R-JCO_}l zuT`JU5(@uAlwpxWa1<{TQiv)!R55w0wmHP|uNcYt{Y)_la8ZUo?Dv!PW&Gxz-Gu?l zAB)?ni}%9U5FsV8;sVHNv5?0bIGVC}Xf=2Zv*db0q#?jEc_Zr%kT)B4_$;R>M#q zTg)vkSxRGjEkddR4TK`Ph4@CRfPnyQ-?Fza4usrEr+)fUCR>_;l*cI37@!njP>dp< z5jjy zdPO?lOb+?7?w)(;T416BuwJ+PYY~T)}47@?`79uGv z*yNgc_WXeg^F@3XZ`~QhXYhJ|tJWqDoewbU{BD=(Az#dVg+}fE76#57WSRdgJ?SBG zS{?*e)yGOMh|_c?7tsCOqEp2$P0sprP6I}g`s_()XTLLB`{v&{r1OEN8aC(mJqsLp z5I8=Ep*2i8j=UBzbi4}W`&>TX)0uup>bd0g+k?Pm^F*?Bj?)|l`SFh@!l&ACC|3E- z;kRyD2U(#DZwWtb8dI7F^y!XuvM*Eyj@_L*#D0{O2 zakVfX7D@0h&e{ZP2BlFnnru^`0wU1?aeguMtJ3!H6Bz#RPjayIPUya9v!v@%Wh28A zze^PbiwMgw!)`d2K=i#A9n8?{tX5W---@m15;7$@j`DAa#N{+qi8S|eL#e+ z@dHVcPooF5#j$Q(gB^_bs8|zUeT536otG_vDDr-B2VoEiDl~n86Dj(oP7XT0wyKy> z&UKVFRvTl$sKldv?Bu5?dsAbd1tcv9yzX~(BHTy^5a%qGPoV+Nr*)+YktI$Rcjgox zp$P(J1^3W5?@}RbId~T}TJ&#+7;)s)yrb#^@DRrRr5We)PlZ;gk_T0()yBEZ$W3c7 zz(Z&N8Q4eoPRb=;_wW0~`yYOA@@Iz+8r)WC6Z$?^bV=7zI=>jXWS%OQb=yT;(yzSV zk4Mx^NPq_csF2ZwSjPyrJ$yR|zygYzJ%8+h1?r`UMiR45f43@?I;rWZYW;} zxp;?5?_rud$7t~!>&6)f89WFuN4HNQ(isfQ`t}g2yIY~k1lf%&(U{kpQ9G*Bxs2&j zv0<+PGe1K{`LV>Tb~M=F)xT#$IzKVqIZq4#I-c3#8RD7GAn;Krwx*>p9qE~kD|di! z`xXzDGSw2=;xc3zmN?U3cM$gMTmZU&VEPnhg%YDV4+6*l0C}-|n;k0!!z!*Dw9of> z5V*5J`=-+-0sKa>WShJ&t5(B#Z#~cR0aOeE&LVpK%{N2`Fc94Nb9Raz1kRt>l0mA8 zv@g|mbr6J6jUw|PAP-6)0|V3V=m|rb+spX~^X%t$P$K5Bs}nase1b}kYK$n1sFXN( zUC8A~p#aOFbOe5Lm$man>QTiHjZZ!!RL|N@tBN+oKFPlCMjcSNVy#h#D>MOSco2oXd?2#MZU&3>dG;OxufLJ* zTy?T10l491wcB>DbA(SSx7pmteT~XiJH~I7+^cge{m_Bi)tkltclB;@`0Jh48Q$nT zVaTD#6?+!NplX;!Tg3zPM_=LFXlYFsiJFSny8@l`6IwYK@;z9QLYkzI2Xr+6%izCb z{?_)d4QmOFEV#DeEFxg}NeU({+8l9wSb^tiXOO$Z(Io`^g8}xktThS9SYVo4c{SS@ z02?tRz@tb&r&)W-Z`2eD%z$@EL>=T@UH_xG^ZAV{Iqvv~qp>IAQW}Y?U1n){nN_%^ zcauOtvcMj4@F52ub4Y+3eatb3{Bb@8NCE_i0|;?8kgdq3El3`lOL%|x_ak9vf)mGSeaBFfMseBe?6(5O<7D`oZsgVa4Cat0&f&CWprM<*j=0?RdG<^ZY55Lpy`@U_i;95gXx0lCHyo?Ae-k&Q=kdLw~5-qT83#!8hI9L^}@w+wi{yu?l#w~5_ezAB%C1U}em zX}XlD#{{PE82$PAJby>d6LaEeAm{TuoWsIzB&ZRT2NFODvfi8hb7w&}zoxm7wC?mQ zzvnXY=*REn>zoEZoeu@bkn`qn`!f>c!Q%LOn{7OL^gHfS?nR23a|*kPjT?tfj5S{| zLC>`{%gkWplU^VFJ}}Z7AB*IegvQn_Z!=QokczYE^e@s+xU;X$S!{6|-%9 zKE-rzEYT5I)ARuBDNm8o^?gF3_#UqkA$HU%#5R9tX83;+u?pjupgqelMV<1FIq+!-n0zybpC!JL&1WAkDdJR6 zJKZ_KDjl=gCZbr9JV3c{(#|&UjeYSuMj89>_rFd)}4nTdb@NBpu|xw{4oh2J-rN z6V-dPO@RX;{U-krX7cX@)paL#!3hZ*79)<%Pv;J0{fN`~9gv_nCI;B6jcO(l1~D^< zr17Pg9{I}*+3brs~mn_8ZILu(^9NkQv^SEpwv?>($K4wi!FpS_g*q1sQj{m1A*-e4U?e23m2;}WPHZ{sgU5M`eN$GQ)X zRDQ%Q#M20l!ynw95JqbXwX_MS|`quM$=Y%wF{S6E(3q(_(nk{ z(p;|(g%2|<1}^OrQon-WfPXaBl}sN2MJykSXuSzDtXSL>cj=U83_mgOybJZ z>HieyAF+sRG!8%8?GsLC)wLpY6oCYU176H1PaxBBoj$8(Ac1x0q&I)yydX@EIi+K% zutIB-5bABkhk{FaI{+B~g7{TLuwKIMT-U_%%V0zx%pDFDzz-4_5s1&Sy-76TKt^cC zt;&=vMn4Jowgk3%vTbD8RCqVF(s|_DOq^-S9{oA&B7f?WE~y)} z3y_BohpaDyw)3GBxzU#8X~V49?7}k=bb-aQ?EQ$DJ=UtFZVrD@SJwK5s7)bX@X;1p zzilz7){A<*lwjLPp2P!ScV8MCJv4_3d6kR=$f7`JC@NYGg#Z!RTOaq}>9#M%8;Xw= z^aj#{7pWmNJ$qpvN<`GEZpFR*c}g^3`IXeRxfDW!eHB?7s2H~ZKx+nQqj3m~<@%3th0`N9^zXaG`bf7WjJ&lB| zD*wFl3Ztri9(+yp`TOKO($6=%#r?#3kCBdRS!3SS`_5-#RCSKTIk)Z;F56 zm1PUkDJC%*T((u27qNXHejxJ)Cmgm=0X1k`O6-6$T+jDsME8Ty5()tVAf+bL{ZwD+ zli&X=>fo0d${2+1MSMLE+<`fbwTSa-(3<1I4^kQtYGmxu%nWl4UuFvC@>UrAbUuLL zU>^NmI)wyvb5PCc5zZqW?-%A73X%B;pSj1VaO06K`+0VK`168LY^>0Hic6ytcdGG) zCq2lGgFnqby=!hDGyZ7-tH(>Iz!T+LQGR{~Gp_j^*=*qr7kp<6*jVsG;cBR+hJNh1 zxlOHdwusqF*gSZd7!^7{_pOt0UNWbq8-fDZRxGGMWqfjHnEX2vE<8e3gm@7oQ-??= zb*zCA!3d_~?K;l+=ZJxd=NApEYt&<@go7BKy;x zQo`s@U8NDJO&~0maL{27TwV>-oIii2c~)~8Hg`vLIWy#0*5*IwE@N$=kdgy^0`-At zW=epNPz^b{rl3Zl zaD6JyQ00|#_hjm=(@q!nAF-xzt?*EsfxzBI&C4U{6*w5e*E1e!JNHPWU=@1@b-;<1 z$B)IAacrMfI#h<1*y9`cQh@KlSH86Lnc5BeNyQD>9$pkKq2r*9)vN*Bd2o&8cfs&; z**u7%79PM1R7913kV4=XjTx%Qq&Yhg$sFn4dR$8bc8|1Cq7UUot>$D61Pt${4C-NC z=O_PY?yf4On4$#Z2_jUzl*OKYUFx>lvTV{^9Tn!*gaBOxjH_W8WpiBT(hSBCyIrKZ zLh5UP&d=b58p7N*;a3?T0LSWq`*c1XA0$Bum}+f}9j>OkQ=qnwX-g5uRo%X#>FYdz zT4h+P#{>2$V*0>Nw4(C?-0G)N|A@*mrd6|ciEjaNZ<61}@f?dn&DE?qon_xb3A(oH z&96DVX9S1A)OMP+MWB7l-G2MU6h^{sKV!{>s@CdSyR=Uh!u7XnM=LBc@sSt4I+dV6N4(~>P4#W=? zNB|<3^rzsSx1s0}$LL=M)MU?dqoPA3T+K}m0>6rM7+R>__pD6u6oh|d-?-#AXF#zaIy zhUtU@_V_(taKRcsWmLIQ>m0eF!T0; zd|hqxa!(Xk{T8Nibs&m)JYn0J`U~oIsD54jJ>{)?6+LB&1s4}Xy3&3N3J}fo+x_!A zZK+_cC01Z8X6DO=yvmrDo|n~Qve%2t$kvN^^#|0u=YglF^U}0&X+LcjWj?G6kcW;3 zIOhIUA@d+@p3WxFo!2I4pGoIm8^^Ode{N&Nl*r-oI?PM}pBO0J#%A`W0-wJ#I)mb@`PnCoI9H ze8jhqzssYpO~W%(z!0OqK9pNP%7aBx5P@)>Pmn1EE7f*?*trUD%D1`;p@1Tx4xskizkk_+?3D50^u&76ap0j46z|LX0s z^(z9Kf8KNw>D8Z>t9fp@-6m_%B~aHgN&rW_q*GVK>C^cJkR#3#P{0dKC+Go?0dToQ zV@2Nw@O^PzTt!Co8b=asA^#ZxBC-B)=vr1TIoycgXHx+`jlk z!28sP(ig|xz$)h!Nk58qIpNwqa1jXaKxNEsMc+QsJnVby#+LtThQNEND?OFQ9e0vj zD+f|;_*5f}G#3{`$@$=lM7QDRI@69m5DA2jSdlFOAH^L%AlD2fy!9P+n}W{x%I z9_zlm)isS))qcb}z4(EdE`H#!?KPQ!VUswj1mL7{>H{gXs9LKriY>s7BF+%vOa*KQ zrPdK=F9}R}PGrzAQXQ-H7BO;Q|A$Tn;8xcnA}0Py;abU1IVFs5ab1y#f0!59#0YB> zu*W~*!-$cOu3*w+CdJ{nE#^ATq|tLF)FZ2py%!)`1k?FGzP=;pD$rNF`L4sLmy4UV zp<|*Akjv&##3V*42B?5Vv|KLXdD)iEXXVr*DYpq}fz^6=1%8-O7K1!p*(DBeofvQO z2W?t!qTHQ3$7+l4U6`Nk<_>q*>u{GLLmVHM zDmx1aQj+k#tVh1^K;tZfc9qVjp)5)gjI7ZAE-k=Sb252i80%&#b3w*Q)yf{bCq2blR9GDqu-Jow|W=C1CRuv&gOGhdM+ zahUoXi&PIaIWnb=6hyf&f-{wSn{)p}6#$ELT(M$FVW742RWYpCA8^UjShDnq?#}H4 z_WKJS0GmPTVoyMPsdV#sbuiZaD-*{QwXV7SP?E!o$~4jjhPX@dhU9hG*&WL!BCfQ( zS*DdxU`f#~mQT!KX(JdjN&S(%ED=jrAe%m2?z=hn?g!4@&7ywHYp*Y zM~;<7E`poLfq4~K9DbI|0ZcxGsZG;z#d*29O?%#RJDSf+OI)6Rb6Pqbm{&uY9Cw!A z>fNRB7ISUzu{2Q$G*6Y6g_rRnxdKG@F>F2gL6|7)oTjERPGmXg>C0| zl_~95N(vBRuIV7pu1BI#ah0mEUGBtdmFcB?1~3Mu;}oAi&dKv7kNDfpXXL}pXO7-^ z?YiSb@l(k)b8tv0`T&!E(!0~gni`=7#|a7Iw8lfu zo@cI-JB<73HFsBgbZpE9n)ADkmQGrqqRbjOLWbBU&oiL;lye7HWp@W$6ZhWkjJ0@8 zJnIFVv*V9A=5%tE0nr+!hGs8+fYt|w)$cO^#9(NJObuHbyWE4k;1hg@5&1{@zIoki z80E>&xk#f#?loISRQ!{-D7!RT>)OO>y2o#*y$jq8%in^{j z{H4wyihGbWDf1;h1e2?d%Ywc3Gaf(JR&?nSj@LAgKhsahq4Nk1v}($!qcTm2S6aDJ z+|Dkceh;0G%7OC>12(h|^XhIX9?T5}Mlp6tG~)n<3gaZ>It;fxGXU8gIX+vaO)EEg!w+u3W;k?Vzy=quYRUm+XjjVCW zWU;`AuLiV&6?;yj!2t=N(4<6t#r0s%;a z8g=EGj(x3+5Ux+-ppGz$N`fl4bZLKX6wf__TsOzO#*=TLQk$}=JmV@`VVjg3ec z-=Z|RJi<)jEnbn>$`;n)C+g6HdMoEz(vfuKX>?CEZbu!nDT2@8;JMy8I$xn9ZXDO| zs9rz2mJC2R5Zi6<_78L3!L}$sK?3m0=MGcJP*l~YsfJtIhqeT6YvdbNb)(wVn767Z z7k+(^k)R~(H?TAFfnYddTpuJziV6U+pTF*Vw&e`kMb4_V9UYrNU#Q_d@3Rg-=TkOy z`1)1+aZQ`%=;(OaeC4ha@P;fw9{HSD;t z3dSCg_HdibPxf`RjE=JT_5R@Y-R;4Zzy03#dPIm1$dE@w31570JoopD1+NI*VeXm*^4?<9rH(@=ee!B=B9n4zlLX&#emgRC{#HPtDP5 zO@$?rPYQ1*|Kof220y%ifAHkfGBRuK-hILm*0yg`p7V9?1?esF?|k@SWQpSL|I@#8 z`NubIbbdVh`=9onHRk%yrzN3&d^L!0;ASOe*mAR@5G&8KfdAk??by?D8xY~AjQ=gRC zIk^m7-x&OfI^QsTysPiu^!|30+$ zwYYmvcB5Pn;Qqh=Tljg0vtZuz@ARkrl(9pnAJluwVigf+<^T}D01~_k-1&pMga6d1 z&CpV;cEn>*)B~~hJp@qag9K+mDSojZ5Z)0gkvQV0Al;Z+gkqIdj{28k|8@A!+_-{~&na)^%j^76;NKrnh;q6oj8 zKirBr2`uBcS-ISG-IC33`_85ggeW8tcPN#v)8g*Dt9X?I;PRvVjdwN&5B~eXV9agX z2*?#C>+9k3g%DfRuMqz>w8jmFv!TI1j%o96{l^$UNk3%dYD zCz?LzUyXbG#Dr=cgx{(1Zf``ntJ2;3=els$RbPIl{*mfeRQ$p(61=H)n|?ag^tz{W z5!F7BdHvRJN?PFibdNBxo9O6j_-2K*et~&hdRXn1M&7`B)`r6|ACpRV? z;*%-9|F@_=SH7(zIg>`#_-5);~Y<+7d%JRRNj#=H> z-X84z;_0R8x13Jr(s^zD`Gh7{d6~?j0Aiy%UuFK`+ux0K4@WCfa`Ztk$CAj1|2krf;G=K}bw{x$XpO~A# zp0OhR+xo^gJ3nDz^Iyv%{nooXz4*QTgP5<_H2wI|qq4`|mC2noN3Xw1{VDs>`g8o= zFZWcx_yhe`Z`>YCr&8Rc1T9DW(Vu?Q|9&ZE{O!1We}-k>pW~??I6Tm0Q=f`Q+1!>E zbRkymJ)P#{gZBIPzJ&HiY6{7T$zQ+TH&2p|xc4UYVPoT+UhwT^KU^uv?-)-1R?bFu3sW$Y;$G`do+yAbZZ;yWJ@5DeJ;KY&DkF}p2dv@kZ ztWw9->UJjC6*&3)L}%ejEOF> ze|NC2Icon0WuAhB?;jNZ{{8*I$M-%C!-V@)vxVYf_x`R*7q|S+ivNp`Pv_q&`R{Ho zM&fL5I^Z{vqGc)KEwq01cDIOJr!7xQDw1S#p}}-~Y6{ti#&; z4nNC%o%KTnE`rxte_JRV0~t=$-}FyTi=Ty_46oAuD=`;17jr{`wKv4Idk)9d{O-8}cSXhq*bj6+ z*6vgKTO#Q>{p8Kk!I4jCW38X`o|BrT&Zs}Vk2r*$93I%4>VyBt^>4t{yKK2Mklz)3 zIBNlO-SuPHc$}=6sFwPvv-`o@q<4@>Xs^ERd+IwatDo&?t7BPMX;lz+&RR%K-`YM< zzmj)9>>+!gjkkI2rOm(bcK`dw`hKrftZ(Y>CGl)j9gszkSd>sG?lW=u`%*vvc5PM! z=X}r@G?32g3b+TquZ53aJQ-}rJr5>H1k3gBEfI~@WDE&hpWML*PLXSM&qbE(gNUE1F+HVVKkNneMx zZ*qBAKSN*b>HFPhq{~uQAOMwH3Bkv2-z}mViK!&JS!5!d!qDJ#`PJ#HDHt{^PF8pO z+dG5zKiF|}xOBb|psgPfY4_2?C?BN>oxi!2#7cResebbpH2#NG)IxLSj<-vN?|gHi z!Q0Zp$gbq^t(vE;e_M?0zE<#z2z36Y!VG-tvuD3j{R^@9qWYZ|H`@MYYQLuaC$(I= zbiVt9{9CGjrurRE=YLp5ZLZd{cx#vb+DdBhDr~sPB$T!wuQIfF< zQSdy#7!)uCD96i44sxoOEv{K(AFo9KoG!ZQkdcrFeUUr4b-CmvLekC;L3OZ`mcHjzr46+rSY0sg}+Alv_G+J7GK?708GjNDgSJMcgMzq2UN zJn>JE`{`Q!J5td92OuCH#S8$@vg&E7nZbcyY%oZ+7P|7!i=)=&m@=MLBK_bS`36tp`PJ_r`EUWQ8)7UAjhNXi&f?VBIIvB+253j zefHJETsQj{SC`ijy!ewZS$9`9tYicaL&i=>ZmMbnsG&C<%~A9bCdxK9$8$<&myIR# zO@ZU@^v>d_jZ&yPVsdj1ZJl1--f1>)zke=(Yk5;lG_MwDN)fu=JigRO1V0!LxvLNL zTIuxvOzaC3C88I2m%qVb+iiD&R@2i6l`QILd228iC+Ek8g><-EARfj{jZ1={syKiem$OqeX=*66|ZtZrgB;H(J*l^kRYO=M~U*k26A>9=mB z5M)&7Zoa};J?!Z9$SlCuAr2grs@Z$GyZxgzTKmP_pm!d5GZx21d@X=6&KZx{O4Ni@Bs5Z3CSx;TBk`=?i8(xQm6 zi|1};F_uG7rjIK$-=XjSgFbDHIdM!tM~Sa-B)t zjC;U;4AS&XHC(%=IZjAB?N-i&-`B{X>aL|VTkS|S&R z^9inJ6^dR@C8NLqrXeeF9Cq(D^e%mQ04^@iL1t*Lsh(bRy`jb!?Dv;c5~KZe!GYrV zNY1hQ{IWGiWv8514y8G=XZ^9$B5@fXpfhi}cbsb=`qnbc*ylSNqmDR*DnOd?R@pi_ zD1W>B4%ldnQU8?#1+WqT5>~t5wC*vvE`HAd7pv|IiVP6jdc$0ZC^f2>G$W~83MFgB}zE5QMZc^NXivn!5$h5D68eZah z=h!X~QuxQgi#v0EjRN*QT7AP^py9^h%kzlxJTOplrR@yYN9c* zj-Eq88}(p=r&}el+M&^Hc>xit*)O{Mio}`X#&nR#u$<}RVZ2^tT+w;0#1i|x<@KGY81NYYJ4s_ zjI%26saHZXdPyp8L2*mB53(ZIJC&4MPr@HhXr(a`*TERZ6mctto?rX#3E@XM1Ud3M z+bv^<8?)pENduFG;=NQuv#Y7slt#v3*vc~6eW$2=w^`u}($pW#P@@Ctb!Da{{F<^h zB=tT4yesHd=)7K&5u)$t7rMlqGSwAm;A%FPk%JMPCc zQrsQ^^b@4XCUQ})Fk~e1p|UpIUlCcjfle+x{`+GS7MFbiMfnC3&9>6|@-ubZQCcdX z3^wvl#HbtOQHm#7ksHh@tH8`P*@+B_&`uz1_slUBY`v&vZV#Rzt0+txCbHSP{hR3H zJyCQOj?#FqghA;=~P;%9YesZsT*-1g~r{$^U&t`yG>8ek_Tdzc!Z+Nv9 zrie%u&`?VRUUe!h-8;!$uvNeYHT5X|u*}@Le(Novf<{bAng1Gk{j#&A>1yR6N>AC- zzac~c^(&M`y`t6hX+D)lWbSC`q4?KX2S9(?hL`5*iAcG+*$&weuZzAVWI`dP_)Vd6 zgk`5fPj$kJgQ!zwo<)7xP^p}j+)Qc~@^3bGqr}no6g;f&n`@mh%j8F{!| zH@;GhXWLafD_^mDWzfmt^rh6aSU8v4$cv=SvpV-lxYNVlLH6t_cyH!GO2&hF+P~h* z89vc$py4+y-@ocV`b7=-uE|@rV8L!MJ+=qpMq|wE7_pm=?R(7>%T>v17t9WZu|$_& zWg!V?@?(gt9-dY1kHN+r>X zB11i0!G&Xt+69uKW?H8_Qv@L1iYlUCLlB?cEWwPl(^;Y%I=F59a`)>IklQaOncH*#( z226L#-2LZ6vc`e4V{6`@M>uPBK>{&i&DWze*^KYoHU5xj=ZddtB+xWn;g@V|tXtc} zN8^#^#mpVlV76Z#3b#>6S&M1|Ix&1I5<5sQHcHpWmrP!M{MnHxG%v-*5K*ICj)vl{ubb-nhXdVX_M#qoYl48d4&njtdd$o`+;?h3S&<2oszPabJ zudLp`V*UNh>4(XI4)T*^`q&a*<}c1#8{&b7QCG8;2*on~9$s$sjbchNRAC^&b^DfqwT2OtorvFY#Fe`Tr%m4IGDpDG z4fNUH;dG3VgWierKzn*lk(Lt z#57~??Ct*k8t^zbIIN>_bg-bEOjM3qH-(-jeNGk93Y zX^*rjrcQL8;P{!oQsh~5-Gpq;4T9KAd(c5gZenw2hMit<1G{6WF!?*<@Z1^GZ?qS& zW8RiId~`*9zehy-3n9d!v^0R2W|vGrgHrm^Fd4giSK#$ujm?`?m6i@ObnlNfM(-jA zt#))ue=G6=!t~nnkA(#FbKap?PO7Ea(Etx~VO;$_mw5U9^KVg1bCAMfLVLR+JAcwd zq@}D6a2VD0)B8YMOkX^2K~(nZ$ZQ6(N$(Lm1@!WuZ@#Yd^G@&{I-o*YK*+bGpaNnk zJ1biXmtZIAeDIXl8TOkB&fTw{$r|FO6E1Wdq8pMkZavf8^Ezbv&Pf5 zJ6`^B?Pm^zL%LOSr2nZ1iu3`M7t8b$;K@p@@b3E#zG9`5bGi>beA}%$r#5qSD{~6r z3J9&-^y+1-4g19AEl0MFJ_D5hGuhguajdkmwDDuGa_^V8V)WaD@a#eVO~DWGZGgK5 z95kxGCZG3O6)J@zo&*g>00artgP9C*(KIf#CPuZ|e8;hUlA9F99U-SnmIC^~lIe0Ca#!ehFoQiR%vLpSoswlJX=Cz1qN4v zia8|Ek25o{)J8wK2!-s1+%1)RJRqtN+Bh$b8>e2cS>&rm}AoF0@`g+k3}DxsHmfehoc48nu?BdPr{ps&Q11=bjxpoJRU zw*Ee7M?tHEWR7(T&&0jL2vXR+qVfqkF5UNX^~y21=t6bV;@hPJ52(f5B-v$BCq*!r zw3|B`A1`xNrrPFxM~ecZ)$NfF!Wm-&a(GKOIJa?%x@-P*xwu&Lfm1wy8 zx74Fd`#(MT67cQjoDzLx$@zE-3|**#$++mzPcW2zb52Klw&@3n_fEDjidFkPRj2X0 zej6BamEE@ZC@2dq|z3W%5YWaL+b_O$g#Sr4Dqi;@jh%aPr%Q1lEb# zt}%vONF6*0gYBYL5&JXm*m}A1a5xi@@=|N+0Qaet|J}YBn$Ii|ZZAr=X6cw4wL5dw zm#O<{zh6AcPmtXpCB@;fL%Y?R@UsrlQ^=F=C}I%58i5AcS21+29iQ}-K%(D6pUW~U z-Y$;PF50CObSyBY9zx#0i zfji%K=A4=HG%xdV;(`$D&Hr1=98Ht|1eUw9 z;lCx$i~j%wWaqpD0KjkFD$42k0lncXux-(RP}|%J4t>0iOoxJq2?i=UIT|}RGE7KD zyvdF>lDZdlR0%^W!Ea%gW2x?I5JFSuozzlIPobhV$ulzS>Xi2RE+(X$t@&d9N+d{b8OZ=d#bzBy6Y$)9PWhV6C~hw9)X)=72Mk_x18z{ z3H3c|v+FdmdIBQ{Zd(vDGWvX7Rzajl5zg;vo1%Z!PZU9CI}K}+>RfY8RGKB5mnVXl z9bDH$8}km?)ZOWz4zL;0#6qdy8tmr=@rOdu++rNF?e>?~Tvd+>fn8G4;A(sc+?av__B+rOgBS$AAbZ{cR0GQ-XcFDBP`3DRprBf+VVg0GLfQG@sNzB9v1(8V1y7g$ zJ|!|eg!t55GL{XKzrLzfDtAbZDUC0rlq*y-gI%;K{RGT*ZCTkyfo{k~rqB+r_FR*} zr-EQVkQcyv}X-U zKHmj3x|9`zzL++bmv7G?zqKW{Uzp9|DAEjIXcK%>7G>d*HZd-r~HXSi8hr;-1fc1{Vg9i(1Q)W z5{*6FyR%MF4RzH#0G*nHQK*`e@WWY|1V7& zM8xWpNK5+Gd1^U|dLe7YJ4CzDLRnj1;0J`(soEho2x)lcrkE!~;qB<15HZqB#Wno5 zP8Lmfbyg=i-$pK_zZ0!HNuicw#22E%!=y3r3Bn>THPDDDOWoceScyPb7eJs)t|r0C z#%+A&?W3@%`a+Gkj_}8x#0+zG!z+@WXTS<#>M}mfmv^K^pDtzm>WR<^v!K17NXZx1 zifn_=g6op(h`W;Kb0QC&!f{X23g~^QI@d=C$H+@_6d-m`P|~e|)>hs&@`5r4z|SkB zUz&(%)8uKx(LeQWt?TXV_$;|!vW0hA+RuJgG5XMAh0f#$mkkgm-%wlf1tT>%HQTj> zSWnX@^1D8)N~dkPAVuzP6?3BHY?)uP6J?+@@TOMH+axKP#M}LCBo)pPui@iKKtyLB zfo!s6U7MxjP4BxJe6E0jw?7e+los=7bDS=X{V|x#5?4}tul8Dxgm6#XpD%aEQ~UMu zg3iWnmupzs?euRaB#$ZI>ogwFs4s)FT$OIV7k(4$kL-4T(M8DjP^RQ0hEd^1t~_Zn z*Y%R%9^+fuT)R=q6M9)AfM?Ho8Ymdr&Q?lfBxQ5_iv!zTHt6{C_1JEM2Q0KhTcnj6 z(Lm~Fd>zLXd-$&Geb^-8A~`t1+P#UgD}#*%m%&mpA@FJpJ#isspEv!Y>Umbe@K(_n zX_d4V8m zkU0%vLe4yvKw@;od%^y?ySJHm;T%v z5oI93#=@bA+Tk8WZP9(4kuM?qF?J+FN9qb-qP3Id``W$m#gEfuBg=O>2C%uQw(A}1uEqz`vV*$%+D^R5Vf4a5Iv?REtsU~~ zLPZh|!TODC^)!Z6rad)OHRIMo_c53)=XNm^C_yfekwf>SvM@~OjU6qvhD}BDL&Bhf z#VN6E5+4+03x}qnf9hNwdkBnjps0*S2 zII^(mRqj8m!g#jLS{pzeDpmcePIV>kf$pN>R*15up8<;897Zys)=$46S!3s+)=4;K zMozo)9^Zy^(<=5vTbRUqs!#4dSEM^h5H&CE8#z?WEmWK5C*bXnB!@nocd`S|Fww=u zUfj_wiqtQKUmDBF%PDixa2}PNO5YvUnV~e2FHN#)5#8h5=ZCvHz*811mG#00(BD{MT14#RBp z$rdVYVb$hxyS<7mw_f|`m9ac-5 z+O=d+P6Lme{9|$kXY+XWVc3N+Sz~2R^ZGA1WEA=-%+Eye`nPjqG1yWoI4v|I)8uu& zWF$me_$w+@j`kBKtKz#{gS@C2 zsR@4L4LwUHy>j5}%^KdSVpc?e z1Tk?o#KgtjC@0n)*Qro4107+$F{wA3=)M*wns~gqL6x}uXFqBu;tyDk*Wh>!leTb_ zOdI2lTt0`J!_MKnwkZSUE@9@VVR&ahCvq%MRGYW+Y?oLMfCZ*LcT&{P$WW!gC`=uG zKkzY%%6@ft#YyBU5$T7wL`pGv)-lN8j6flx%jwCmcUP=b8r!x4yOT8|G6DvwxaaDA z`RpV8Wrs$K_}KLIp#c}$BRP6_S-YkA^z*JX=Vi%mh)g2;6F(uLlP@71v~k?_xN+VA z+w3^m7QbLmn{jk+;S&}6Gm9(1Vo?79vx9$M^D>>3cY#Q_cz)K$a68dNc0?*w$?%~A4-60je0;W|9gJBN`cnsNi9GdEL^9GR z7%r}TrtLBL(cdmX?xce(&Gpx-s_h6GEN#x|d_?m`G_Cu1Kki3>sNm|NMQvN%1YnQD)3R@}--qy|)^jEmIt` zyw%h~6@j-m>16T;wb6@Z=YYRveSy_rr(RM5f4UdQs!eE8?Qh$WiI{n5(gZVecLh6v zMxW^yq?}WIi{d^pvXte6f z?%--UzgfxV+0k&rdns*qCs#y`cK_oB)^AG~RP5}l<6Biv^B&I?C<;Cs2FM$?00u_67Co)VIcL%2$H<~Q+b}M}c5tWO`5FdxIKLm!e2;1yFSjI^ zQa}-Xj;1WfD&pC9jpkk(J#N4SK>VN!4J0D|2s;Ak5yU&y%K{S$=?dHj_rQNvbp+cN zl$!k#G983#5f~!GNu&Ju%<`bgBSszFaii60&|D;H^y|3CY`FcJ==WxL!UYDkm2o_P}1P_`{fnr zlAOQEs)!*MGm@w7E*ZsvzV4Zswi}1` ze0+^c_`Efq?ZsCQ=jWoE^;G*SwA4k6za**2KulKnyjAuGoM|gRYVcoOS^8r6cF57T z?Cf4aeiIy74#RYV>=#Skp9;a~vDsI(b4ML;x3d)I=!a4sOr8l;2lSEM%Fq{S2GPU8 z47ki|V3QH3v+G_mr{D=^7EciHT>a}t)#R}z1>3nQj$d6e5O4n)1ZV+ zYQZwz1}mq05DI=4>iT==h4%2d2FBEpr^eAr%HmR?+}J ze$m;&-ShA2q|!v8IA7oAt6`a-i!Wx{Bx^Ixw>He9N3-3J1j#F>28t#TsOpr`1ZUgn z9T^@Nkmh@J%XG-y#nd*=@Sf_S#0%QY@4W9dZIj!rPFtQu8^PUMmK}=3^_dzQVN_-N zH;;k%tfoyKB+XKR7szgu^Cy`Q>65jmK2KIjS34i0TgQOor=hM-NB&^6LH{rZrho^@ zr+dv1y9es=+wILiC*9qRG0>49JbW!36|aL%aCS%KSGM=Y!s+r8s>o(0sb^K@@^J4k z&SbP;Z+r1Wy1EzK_gCYiHNw|?Dn}7IF6Bhb8sU5He@W;iEcCbU8+!+1Ee>(S(7PHt z_n(;H!hWSJ@EF9$?z@_giKwOGt58Ay5_UM_)G_Wg-TqJ}m6%2YUut;dI9dTAvw?PWlRR&4LckWNkJC`eH5X=80Cr6@2592y%7DI@NO$Y&RXLV@l4VVNJ@GA?tVWU-@?`GQ zx!o;PojdfIdqs4W|GS(Wi)UyA8=B!X*;vu^&RS!jpHFY{*RZYNB06U3BIhnrsu|Pb zTX{CwOeffnrZYmsYN|Qci zBCKWkWrCTu3$S%aE0 z!(XlFqrdLDtxZ#&3JNWT*(>_RL15!qtb|JIeBVZz#mE$0ULXEKFPF%>P8DktLg^Xn z3`RWV;NAS<5=#7qYBHVtEQZyhvg_4#9M{-Ch1s#m-82_jDA5y@V6PNrRP^F^vNNu- zfiqHYb7;?k-6!iX5i?ng{F55404so@gZr!(FQb?uZ`^maFMvwhNUVWNxyDphenv79 z)A=kuHrk-)rMv~2k#;ejDw$K+41Jja>hsvw8uU%ub%`PwMOj3)Q)*fmsyXOD>RMs| ztAm=3H3;)HwT3Xu371V|7hDel!Y@Dtxc6Z^PJ15jvH1vZC9U$FVveai;@2B*7w`== zRt={u#I}A70@5h@Jz<;nfuic_s+Ct&WWJ?docJ$ZPm(^nBjXU5$gD zuOP9r@0gR@b_jpC4sekosG+^_6+S3CIx(u>oDax6$FEyo6m+#cWG46z}FT32^o%zNjOZ#{Y2wGCw2*z_1*-9bQp8Mhb*;aG2N_aZO&!aa_K%Bnmh6Um!L~=T2T}h%$9; z_E7YFWT#zA#raA?67K;Cg?(aK!RLBuwB*#Oo-2;8uH;zR@{_N6Pt=&{G3jh|A0peA zfR;>jthciecOr0DAnFI8KlQZgL(B3lawGCPH4eQsFg64v>P-8OHi?M?AS)D)7G=s= z%)-6`=r#kb1N?6sViX{*8s=i0SrCdalOT}JJCCp2p*CE980OQqnd$Ch_JxvDnP&L$gnIE^iXE1=y^ zsFH!9v7eOFalZ4RySfc3#b<#lXKS>_QFXjrYied5hin@AZnJ1 zwsT5lw5od!O|8Uhc(XpyR=fU{)#tnVwqLoW16EyogwI9ZT2g>@_;X10aOIw@d*u1arA3f zUFssgKj)4j&*x7~>O^X0^#J)t8s#K`=F2-p{LQ$N3#=%{b2+HNLK=~fH1WdQtU(I8 zH0>G$(Kohp3L*qoLr`xgS{0+tIMmN7hw)AtKi2d^emtgc)UfWiyrn(Gz_1-r*B6C@ z0%14^8FSAcBp2y@3=CbZ%e@o;vy}VWPngHDs?8MY>uue3M z36B=j!S;Pt^EY`{4f%Xj3=Be==GWKb`srswcz(m+n|snR8Orx<{zKa8;dIiJ`@yLM zC&6F31OuU**^I-V4Xa_R(ABR|)jQ}7xG?i2uT7@>u-89DbgW3v!_&1h1G~cR`v!<~ zH_S6{F$_0jS$aAm{v7_LZN-Fg+)$BO;eKS*aep(V=tcW0Oi&~3gVig6Z?E>(SbSI) zS=Hq7cpguyLwx(H>D3pME~8UTu>5GvG|Xx7`;obVA}k+%DD%oCf4tP#i~Y%WgOZN4 z7HAu+W>e<7t{m29v*)ez&7EMVHTmy$Y>5}?&koP8zVY&#g#EO3;Tk$KIfECfF%7~A)wDe>! zgy|{*@54GKhxz0e0kVNox`GCWtiR7m8%$F9iWPu-46*7iWq@P89aRY@zIRH;=0hH8 z{C3STKPyoR3N_A@Z}|d_HTHSaO_WZ&BB;w>q~kJuaxgw}q&O&v(FRVq=u&Uvxzw7_ zAtx5K8`RrY9pgTeb< z)JwZmZuyvPp_-a}ic5_A@RhR89l11Tys53^8csbc9})uo(SkWA{PCK@;8;d> zJ}ewN4eGvgkl6PD0gX>7QY-+KC?$`4*ls^$umxV)Qtu=Gb(}&N>3B+y*HZ7 zHW#5Ji)=t^mwT$>fk!SP!)mV)qn^qZr}qH^i3}P)%|ia1xFKvps&O{V zMFrFV>Fg5jI#L>i^>12p^$=aUY(M|PhVLl@lLo7%4>T_&gIX(r1f@GW{Da8%FEbOc zmXzsqR?{eEI^jy>$}!K_@}Cf?Ef&vG+bCVuAu@^XIeL(YU!7ssclXGsC{pb<9;D0d z$+$lG%bqsxM4iY`l$FgY@2z4v4EH{v6Y{QnJyttQg1UN*9gO?VY45JQQ8WR=$a}`2 zqU3|fzd2%#qgame*nn)3-B}g$QtFsaFJ@!a5EADudpGON<>zCRb8DO;aKmLg`QBZ4 z!LPO%>wr~zdPG#?l3HWx*H`{Z1O`kezeQU%{m>jPbiBTXOx}Z=3%!iOZapSJ_X)~# zwS&Xb!@E7~Gnp|(bu{U!lc@d}(7il`AuIC@$+Fr*l%(@Xy8~ba5IYg6c%Oao8Qjp% zgAqnYf0TMg#&*3##BdLn)UnZ(O}M*b9$Uo{jm4Y~{|(pdJN=b+p9CGa?su&{(~;!r z%5@W@78V#-7XB*0qG+_C6wZU@E=t2Bm?F?iVQhQXODh_%-ek>_NUK@80h(cit_(jb%tQdb*Qt+w7Ik=K7J4cEf!-*y#*aX;1|0n| zsnFBP8}=s}$&>fC!;{TZv)!a>h}UDQB4}Y^-IrPUhDPUw62dN+Tp5HKdVlyE{s1+z zPQ56$q?NWFHr<}XMc&nDSe zb5^|lZhT`HyE!dAw==5QUVA5a@7=9Xa9g~gjEeJH-vO~$@c>ePl$73)<&f?Kn30{{ zgFz;wDgnV%D%%ulY{ZO`T(s}pxJZdJyAhCKq6 zS0QD89y&t;Eh};O_bek1gZ`A6xY!jrp$FghzUD})zjRh$NaG`3F_>uOymC9UFDH7` zYX5U}c*nBgL!uZPxibE6hOL&CE$^xJ)S8#!`fDnt>|%k{EdvAJAoB3aP%d0%i?iGM zYT5oGem3ZX)h*BS-(en~&ye7^lPawue;TRJSBflBIRUhlrxjyr8(b(WB_oCWho!Fk z>KKa`j3}M?cXWTK@&BUom~lQ|L6H@n0{||cuw@d&4 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c1a1dooredge.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c1a1dooredge.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe0db21c0bf10f44cb3097da8632f638628a1b0 GIT binary patch literal 1435 zcmbtU`9ISQ9RH4CnENOUGe>Kw#DnTZc)~XK6$@!mtW=YG=E+ZspjJqP0Bp{Lnw}d|t2j=Y9SDzUAhEmXT7I0sue;i?Q_(GJF>hap8}M zi~AxZvkN$Eu(LCO66(DGNDT`BqKm&+1f&j#2^)|Q5Rk?%Eid%I`7eL%c9KMU`-olt z-+e%}^b3V#80NGvlvdgW2q-Mt3jpA!SX&z}oaBlRi>QuPzD}RM+VOfU|1Lra`7E_p z$9&IYkGSqKi5&$?-oj?SZW=7S+RO1CLR-DZG}CTQ{)#hZe<*A^wQZww%1;jI@n`#1 z*%-Hv^(|<=Q_XlKn(qr$SyctH;+>TLn9TbWi9(~%z6&A0sbkyybCK!F8kyoRl#^dD zJOsnshS`+|trz{w@|;OV0UPd~-$VWw8y_FKgSAkQTEIZ`hL@r)jCnuyn%&yMNr{Eh z2}X(u6C+2i;~O_mW(;8l><2!G%oL1BzuiVhq`2OCWcr%}OGI49W0&GwbkvuTT?$VfvS%Q#RfrHT`kaK>%=qM>rV7G=pMnLx!%Rl}h+r&%{- z-8J@T<75zr3RMjLyw)`huY(~bP15?8gBo!|q*SumxG&%AX^9oN zenTN0jyf|+o1sNf;~9axoIa&G?#d6tlw_mC?59&ErFC_6kKXq;_cyJ(5HH;wY;JgPTW&6kcPuW`24(;XD3q6M1xY+Grio?#yuo;w2rmlu@afNn_?MotSgg0SSJS`=`RpGJ+ zCoES#!woXNvaZx^cvTp~Wc7dID^k<-u;r@m`7Xw#-ZlDcHv6-4H&yYdiCb=7X&i?) za)k6iiPxwrcu|XX+G@r9XDYMka0RHQTBH&r_Z?_VZ)7p8B*C;B1T4IaD|h;1El@ z%L~Yl&&NC_cpBA8OfADDIIBQ$Dce!jo)Zru$ui03o}^?OL`!$=%UN(0XO_+(<^Pmwu39w>`X~jC85MujzhkF7ayqKG-4j!Yal1R!HmA^0Jc{ zJe|oeGcXADt9`Y&9{qA6r?^;C^ES)(>wHgSczF4Wyq0Pv8;XdJHK32gEO|^G>7r&; zxHXIn>VX+E()`)vF!>xF5|&OA9Tij@Ad|@`+~ssPt!uY=B09^tDWOY!X>vI8gEi)T zo^n!Df)+K*DHZQF^WsKe1KTrY6M2)U3_0t3;`qQeT@*gv*0H`ekjP*A2rkrA6`ZB& tzNDiqd1AAb2%<{cCcRGLr>GtCg!c|aa9lWQ|9>k1teuN({qOjse*r<5fV2Pr literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c1a1sign2a.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c1a1sign2a.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..c3969e5b72a8b74baeb8ee05ca90135e0c3383ee GIT binary patch literal 9742 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 h#ivl$rFzdQ?|rmX$4M#(1pe*i0PlAQnm literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c1a1sign2b.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c1a1sign2b.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..6131acbb1990d33bab151698b3dd3edf18a2aacd GIT binary patch literal 9705 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c2a4e_w1b.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c2a4e_w1b.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf42ce968a7ba91f18df7fc46df5886584ef638 GIT binary patch literal 41269 zcmV)PK()V#P)ivhB9pZTDLB|L{Y3#xKMp!^c@U#`0AL;#1SkS+oM`B&F{x9m<46m?v`a`CP|TupHz`-f$BeSO{C-IZ_H z{a%ReW^>csZg0E(`ZRyvuTILZ^n3N9q!EI6;QCc1=5&AaB>|t`qlA$ z`)NE@BhcYd>!T2rm7e^2x%?Z*A1t(aZe(zuZufKNx z{Gb216pg=4eP2alLbN%;S{%RxK=u#nl_mmyx9$Ik<1`3wIk5ACd|D?ea5Pw%V(pK!A->bty1X$9p8g4=R^k>>&`&((ZesxNKx1UCJ zkk@J>_4b52zfT*gKZpWFg*!Dsw^XA%NG4S-wGuaf_r82gzmn`zmQft-z2x3X;r8>k zySgtguoCOtf8KTXwFe)RJbu>Ws?6K{KB|{pbr<_WU=QZ{7fYoty4{D;^C9RNv`*=g{(mz@?zO-cPh<`RiNEB zz3wf>?r?XA&NAqI1`)Yo?9|W;-TF<$PtR40?RFo!WtHjOUSdOakDtc~>F=w{Bb(n% z^sTbL&>Xyna`9Y=v#p*riJ--@TP)O$;-a(%ZTeR=davgnp~}!NDlZuCkMDX=yDbif z?)~kD?tVOU+lNBr)W2LWgVSwA!2NgS{WdpiK237*=E%nReXq7?VNj!UU5QXuRcXq3 zKz<9$D$mX0OzAlv$Ol$xL@p!Wc|dv#OA+I<0mQ1_7HX%9?MQS$_5Fx$)9KZ=4eZATLTp`53Ihf-BMVLdc|r03l>e$8XQb?Rg+q*LeN!H$eSxXNXx#8? zPCMR>A-?Ir`r|LrMAD|3U<-h9iy*yWJ&&(jdG6gWj2|g}HCdc_v*T z=?8PVO)hgT4)P7N1Tdtrt}{-d*3XTstEew zHQd)B93S9bzt`~QAT|UHmHoyK_j+F1FP`KSjqHYw{PhpL-8~*rkYW4l|I9z9_^$TQ z`-(`50Ww_s-GzKuKd@?yI+3V98Ts^l!0od{(X2pxU5Bmi{UHAl;zfAD2`XW^Jl~C? zY^9lWB+8&>-0HC*U3hOU<+Xx~2r$6|VzBBDmDef(}G+SIAfCD_0bW2US}c`LZ6)jmkK;pt219We5P>R22~o<%R+LzYC4yIja3 z8HOFbzn;;n+<AU=?vZ@|(Z zBn&R8@%>Tg1#`N=N;Z0~S*WZr*yypHWNSFGOv)MguA_Z7Bc4&qsv>{NTM3fi7E#3e zcC1OF0Oaq|NTE-}$bIxi>y9P@(gBFzIbi+8It*nzY$cv;1J5D=dj4GRr?NS~mJa)$ zgWR(o-AA@1HhU!e~xm8rDPnba5Qo1 zT__b*!qbC=z?WB2Dg=bl)0)YOwZ`9D*&5bTN+=(;e#%y`eF5`kz@QPgUi|PYL&Wj{ zXvkKS_9D)u!ot}3U8aDb)uw#|q%MOCp6#54G1jQ7to7qLQd`-G{`>IngA~|SGpOLt_Orlou zooNHi#)vc9OHBMLI*mbfT`C{y9NdcV@Ktt&Pnw}oJ8k}=`I72ifS$LM4I-6xEyu7= z8ZPtOE$pkYWlB$ooYH0@D?OYmpc2j$Px(FUBMI3|uLSuvDd(XQItN!CLF9O<_EGfF zccdJ<;Yd)-{XYe(7X@*Hi1xX_JLXZwbIawnnab4mx5#oj$Ug^X2_VaHkpF6Pbc&$C zP8uy!VSQ37XGwMsrl-w9QfTHr5F(g^{H}BNQQElD#Nu4Gl9qe_`CPKH9pB~Z`d;Jr z<8O*Fqu4rsOx1Z}X@(_}=j!rEKpq0p`zK@2RMGiJO9bT1gkTS%6P0Grj9!1GF)Hj| zEEr#bwG0Uv`BX&jod^KMEd%UNfTkVVwm7+aFX^!TiT%R`_^QM?%-UK4Sk^{c)<%Ps zngitd`%yzHLnw}7wJ24aBAH}D*83;U=I=OiB=K&|vRMqQ`%}bH_fSU;5W&p~lWh@A zh=CUF#fGoY+6BZdGOXX2^%Dli`c8ILFSjGNAOaBpvVQ1p?|u!}CXE!M7-&UtUZJt-rMfFMtmcVj?T-5hk0Pbj zx~bRfB+l1$Mr@}CAY;Yk!cRa}=x#YmPKwATn+q;hjK}!^8I;P%SRWZS0FC4Sv<{*f z^$rC|(mAeqJB{B}A9DeN>NKom%{v8+_MqV8pW_UoPOzbTSd8{#^E$w*s(?iZ@-Ywr5P@K!kZZ|3knbz*mOmi>{k!-2SUGjn9v6z2 zIYtcmR2~5NfbS`axLDO0xGRl?-9znTfU^m+gS|LZ3+M`2i#I}cV#~vwypVR7t_qlo z@QZk!o~~IUV2V5-5&LAx)QyKbIG);~!b+N3Obp$r&8|_9kA%7Q_tw0g0uKe$!@|_2 zt(|2h3m?~&HB&z{g&=v)krajyFf|I=UhwI7j4F|ZYh8oiIJ=bxq zjy@3po~>u0_WXR`L=b5-Mrsgxe}-8i$Qg(y zduT~o+h7y&bAc4ky+0)%qm>9?|CtDm8Q>zNcTQ=wO=0~8dVU5w(&V&NOz|I6&OL9f z4t_aG9`e{bO^Vz|R&3y6Vqd%OCHtflt}R_8w}I7*n^5YABM$f9NdlR|mA2Mg0waK> z{Nld}~ zI$5YfZhIua(A6Id5_`?|jhdSXV3t!N7EflZaT*!NOvCDh;&sAmiJQ2%#l39jh>k;b zD~Ewo-+?&`!GaNqzT*@f+~HX{RXUFpvzW_QsJX{ZZYyMzv#dmpWc*V0mx~ug34FLX ziV^Z$Ry)F_+E3_`0!rtykxhERu@47Vy@8{nj-!q0e9i4%Ce3`Ivo*ZAKj*!!z8_#zAwoKMB_Gt)8K986jP9u$4 z3BDTVU2U6&<&gSZM0$tm&foRK7%cnIqhs*Qhkwz#l@t46eqZ)PdWgVAOZqFz9=6>4a6Jy z8_(K3@|1Ou2?=**b&LfZIO$3CVz1-FH z6!d!R0uEhQ4k0cR80lV=Lj01oX@HTxl+3}kX|>)+Zi~`Gl0=sHBg^&i#}uQEGVCC> zlf2sNqW5&z-lNACN*){A_`}!od_soa7cvg*kWUKNvV$}3J%VJq z@Eo~P9=?83i9w-=Q0W@@srb>HGA^$rk7b#VqO_EGZIt}iP-l7szIgy|)o-K^h$DqD zK2r5Z)nTiUn%Uh;rarv5=q@Eo0iL18WIn#8Vh=PMe2}m)o4$@N4qHh;!v?uhdGg_U7Oq$`1B}C6K|Dr~IheG4 zIFUh=zTaulgkGF6uzRU*J9Lk+X0CM{r@#<2*L!+5e%X3v&!H*Hx^NBa81}}QbIWp> z$;#&hh1vd){R?g9aER3$Q-@JtZ#_5@@8GqNEFuXo7lJc$)#UW(h+1rxuW9er-`U+M zk{aK#sThdo((r3nwQ26f$TG|O9Iu7V>ayJ9)>AIvARZYF^s+ko3e#pIa**%V@a-Jh zB0nQznZ|o#H2^>anGlTpc!Bx{LNGBn{Z^K?rxZITweE#ku3h!h@k+HONkh;`B??FzL*SbOj6LHL`8@`C{_L8FknwlFW zzrU;XO~RU+q+!L=|BqTY`_oTvx?8Pw#wGw4uwsh!fd#fpy>i(rK{FamGmG;K(mz%z za&;+Ay4Sjg-KzVP<{o$qGYjj@6dD5pXl(h zSXF6@+uus#k>RE;q9Fc9V2}+RaCojP!=Qf{)cJ~At+M5MF67~3Tc#afXUkm6${FPx zM><8pZR>mX@5G7Pcc6~xIZsq*mOf>voNHAVuC%@kn>x?(h_5pC_E3yC(8_1h=>3>Z zC-Gq-NRtqQW~IWXy*?$+XHOFu6_ND*04t2GzTjS0a)}ctKi3S<^Cu-T-=~KP>>oh9 z^#>%a1(2WF_{shDy>#={tMU;yT77Gl{Up1lx4OsH%FmAXVe2S&K*QqA*2~TEm+5Tm z9RS3T-PPa%j|iX?JN~tj<`fWbI&y>Y}kT2LRz_=P>$mS? zX%M12+|?Ymi_rZi5?^?hTp=92c@* zKRn2`pfUpFTmZlIA(%0wc1(b;-N<@>#`>B@)+jjc;Zogt)h@*lM)@qtQ(x;H)cE=q z1mZq*3sp5itlz6P2TxCb9i>xx%BMu?IT|1DfeH67{J&G1E9@{-UZE(B<_G+hmueM*@gX1mL zIl_T7Qp8PE&O>dFAj7Yqdf|XfdNN_*Fty-Jz%X(zg2&p&1$VkA>eWncJzE?DC*5;! zkRb+RSmq+5@Rf)6i@wUMwvxQi(FGs^x2qqGewji?VpDf~>Z;p3sR! z4@58n5T{u-T*MG7p7a9*gXlRh^6`95`!CI9ozjeW60+Z2j&lz&!*}OzZ*2!Q@sb}R zKoRvt8o=BHwtzfGQSKc7f_y{U_PHZZ%+8#^h5nwiyi$$me$kBP^%cmoCyO zA>3_`AM16BCuQo7ObqS){Lb84it}(~9|4!K`P{z=GZ8r5)* zzedfyu%>b10Mi@%e-J^h_#-gan_NC`Pvf*d5}srIkLpM!?ML@gf^GIBO(PG*LH`A>r zY3}*1rRdS+7ap=eENY~8RpkyR&u;-URY3@r_q7+WLDgOgstIB3DePLI?GkPMle2_w z1ba6p(0iT0QJO?DORDqMIPPsOgSq;w-JxbGE2!!Z^~7(1^_M9h$Ol3JR%dFsM!8wO zi@1Bg({qU8XaXSq2oo5AibKY+WfoTjkyK=vXnR1e+;MGi>S!Q+(!izM#d0tydJw_X zBlw{DQ6Sw;m{TQYfoGJyDW4)XbTHOsFTT8BlWk@+yZSV^aj`(d(mf5QpL6T$=L}Bt zd|<1+7ed@gr1GsXbQC+D!0|M?;-38i!uZ6u`USj}D^Xj$gj_HpFMl31EWDHm zi1`G`POQ-nGJ><5y;t7xJB>!`ROTojM7aR+L=7j!rr;WyGcfFQNBfTI?h!@}wwazD zs^`!W0+y^C{>^NaRdvTYI@S&r4p=M6wULBAbR_<+T0^cY;C z58`X>wS1$I&F!sb1GV|Ys`?R@YGrV$Ls5JsmS06I^>Mu{cDwKuNbf7Z$?&P*1pwnE z*%Qi*@)uvfukuS+$u2?2eh4cOWDt|GT*$D2&xfV~V;yCnk1b(*Q4PH(hs;(n{xy*p z`H`vqnO*WOcHP3cQ31&J&}Ac}_m38MoYr(QQ zF}bq!3S2UaOLN9t9dXiqwfEQvYSXMd$~wiA-}(seXKvxJX2P<{b*_D59b#Y0aTBedY8nuQloWnE7&siMLrg5h^#5m+dtqy%}U^Xy8{;nyR_sjqS z)y_sdql;;NMfu#e6mjoIx5z_4?k(um?%5=`_Y=`@z6@P5|JzVlzMLvHtQ^~Rj8%+ zcPgQG*wao`AyrJ{ckOJZE#P-DEL~|l|GQ-RrP>{P!Y=k&lxU)@F~O5RbQ+nfC2rt6 zUbMp=5WQA*>9Y#tO_`k*p18dabhmO5OactS|Ng$&0N1HnkYkjLVmLf z_$ftodY&2)#BVA~9@q%7QR>KxJDgqOJc@7~uzfCIJMLr-_njgJ{0qY5LR48?#XUNX zFK2dG+hcWHabE6#d=qlbYeHa61DBmVjC?o&aT5Tc<5WTKw~oS`h$q`Fr*r-v6evx9V6@&`d+QLk2k<3!r0%ylR2^D zAeoL?WhZ^$O6&ZY2x2>k#X+>UVV%^d`|Pn~81OpsQnLKTLd6S< z^9OkUr@7$|N(UGA68Sfl{B`1dPlMJZ&?z zr+6WPY1rvP4r{wl-cM5Eo`S>Ew@-@VSHQFV9{J`Z0!TD5fP8OtYO`c6WW?t*vlr5k zH!V>>1ezq9;2zJ{I`wAuIo)g`mS0Ws>`$gg!%MajM`Qx=75Vn5Z;2qkGuB^A92=+d z!_1CBxR;0-`Q$U=iPP)d_}`oouJ1^>N6?7R_WlAJhakJbW3#b~nZsO;!P26C<{o>V zpvcI-N*2==;rT)G4iB*6lcEsv2uSNf@Ynal8-v5D^VkoMb7w|*wZz0m zo#K^cJKp_Hy`F7JVZRG0Rrsn&XOfJRtP#7y7mZ=!Sgm?Xt@Q_DoX%W87;vJJ)(V^1HeYt{0_OZEC9(@;{))RyQ%GLB$W`|yE!s?kep_v}A7 zO6Ia&Fk3@~0$yc;3)%Qlz$uSiW{{~hxT~57F@;HSOcC4%94E}XNf&54J(I;}Ib_f84n^zOOgxJ~hdTTWF#+xrs% z)JQD#NfD0hq z_u?cn2$Nyh8Q>j@ja=LfF7yqebnka{L)}1YNP8%GuLI}FVT<&<_$22eUXHyvzPt4- zdcQdU`5*$D?X#)e=5mm~t$Q|QF@#8nxqzr7%?a?J-1~q2*PlBshyZrRg=Z`BBPl&?U# zZ_I=sEF;amK934qEE9q4DD?hwx`8=MO9b?Oc31PB39g?G>6uu>0P#6{NIRMISMAnT zh@cL~R3XTZbqA|U#?=~2BQGQa?=|0EKnd~{WIvsE@7|RpiPQh|m%l`Otg9IA1>KvpE-bO+>5>-NmVtRm`4y@$Z}A6 zKOY>DtO!0vwCH*3qpRoh*8B6I2Y$*rf>}9ms{rXYFP&mcK*YEUHy|dOq0^qN| z6ana<%;90vt(Q!k(H;`^Xn(Y8qbfemF`Q;vj#N zV&iZc_fom6f`{aS#wHa3=fsBI)B74ZB)@mXjxEx$G=5`DT^@4gZ+79b2amGCg6V+( zh(8M`l|ao))K)m+IBRBr^Ku!X*<9`=dby3^3gjo`!p+=!6*#2+jSkx6GI&pdz>aqZ z@y#}T`ybzS5CP#Fm>s!6=JJrX=LFBEKrcVqzbWUl$RJHf52&{C@?-vQ9F*`!k#F}m z6Cy}&5TBp6myTi>HK*_-=sPmUVmCz;wTx7%q<9WuXmZ;^NoCmmrL1p2RXA7azIqyGnOy%Bo-aW zOEa7yD{;3Do2xo*XXoBHo_WAg+mlkg3|(pW|gh)UKW#t24w%1cjA(o@1Qua{4Awb?kK)UHiKQ4NHg;D{YP=L`bRhB6Smc1 zgu8hJgMs7^ff{uV81m*}Zy=w%yr)AI9DWype6(UWSJU}4>=t>L=@G~I5`X`lNke0< zy#>aW*%dnb$CGy&)+tW!KL^uXyE0_toBf{H)1`d6_q#r`K|*@|G}WvO+fU_acXI&B z&_k?Dg#(F*U~ax)(DCdHwd@ZuO^NdkT!MBDgB9br=|3~X3LzNsH^fd&pn3T?>I#`fDrIDY8ZCH7eGTxpGt++oqIk9 z7RK^rmBaA@Q9y&!AVxlQ=7|)ckE9bKFae+u<7~2$nG_;G583{!#D%~Fkda@knFW#N zW+2_L{rRum=Et{k11m%jgrItZ03m>X(`2|5wK(8HQ{b_{!~XB8#5$7e%VGZ~Es+xu ztdL)VIUtTBH*> zWNt-+baj&|s_J(|ReH}KboY*WDolq~)_g1c0qXa#?O1St8!1p9D=Y1o=zx9H36CLd z4cF_Ghg)$5A3+A&$1&58Emzl4uu!sgI9XJ{Dt0O3Qtr{QakTE!3&MnZW>hilnEhB% zb(_4z9R;>3u{gF~sqx(Vct3C7;&)1IH6;y4d|j3u1X6Lb=cc^0^1c zkq$b+K5Q$6Fm0ZmZW0NH*usRTpAan>VY0PV#v8X$fg zltt3X*FgwfU8UnSMq9Cs!TxlK6PWEsEl>QJn+VCq4T?_4uk}2naW@Ser)8+&CnDg3 zeAO}p+ux6-&XhbwO$bwhBC)q#O2C}!Yf7dQa7oh!ruUdKJRPxln(u7EMw~W%?sr~; z=(rVAO!HoYXyorufN3WXUpr2#)144NJak5RXkR8Hf38vK{TcRRjX<`Ew?x2wHx%(l zL@?8M-nZE@%ie?Txxifd~xoPzL()-Q+&y@V-w4Ki6ntH#v0LXVdmoYKqv~R^P z;ow_dxc2U)aJ56hx#@7_+8JlpDJ94CS3cR>Loi_$w+Qu?wVUdZq8x2LpT zUylkotZ#)CkCM^uW%x}n-@i~@ladzgg5t{(F|{KqdxbrE!jJkP|9-@m-vkDicU>zET0+=2+63tsT>-2B)-p0a^Z&r`#*=RW6;=F2t=%I3E58A^Y& z&ZqJ}B7mom4i^A?R4b>4l;063y@c&w*9kFz{6p>iaDvkz;IZVi`LUAhe_O7vVA zBfoGGeLD(nRd!h(mJMwdujT~tJaN!DctikX$_R^%jOz|!+=KmF1eg#=XHMYUyg>d? z@&X_qfVH6;Wc?s3X5Q;R#6Y#%8~Kz6=^Rkyqw1cT`P+VYPmutxH()6igb8;7(AKT7 zpD1l0xFXpKn28|@);}QKh{@^1Gh%6Dw=?%_gqlVJBnsR%ZAbAlKs*2uaDns_#B)=` zWv5tv0(={`hf93+ml|v1;SQ|QQRm!?v3u73*$Y@%F*@AH>2KwI{;Ehvnq8$82|LXI zf@kkT}%Ja^Xu4jtk2p@t`BesUaEnx9AIF<79g3+-v2y4_VkrJ zys|Tb(wH&eFT=Hv_*>aJ-o8;>sVd7owSX?TTbx9wkoOgc7%pCvRU6*5--a!21EYq< zhqSb8lud*$4nF`gEQ-D~GH0UhhOPzDmi4fTo$L@SuI!nk&>DhHehCKVUBZu_1byp4 zUbUkZC9ZFYnZ@Rjg|Vg)SZ!sQFDkUdqGvIcUoVR8!)0#J^NagQvOV$89Z4I3$QaWopI zgjh8A#1QJp^4oINz01d@lFvOWb0E?)cv`icX|qSqqL~S#>>y6bWw0*f9_#c78Lp{w z#C3Ax_`|w@SM{_zo=qOtjVPi9+ifu5VIu%IxrF#55n!Z8uKLG_&uPSMrv~v50lQ&= zcmO2N0rxZVL85!V^KTPz80o&3Lx>;_jfTYuh|d9t&oVReHb>h*2tf>tRJafcbw-l> zMm|W-*RrzU?5}87`$3~510n{N@0n5NM`Dg7#_H8*L%ag6+w7Em5TBiWoF=gDyhz&)JwIU<-#%XQ?qH?1Zu&mB0AIfj1| zK2qY+O>+PzanQtbz{t;e-TQOe-xaSt^ILV~#hv7Z^`F2QMf@aB`Vpdye$&5v)!k`{ zm7K(4m#NZ_l4fG_d(C-cEAQnSaHQ#4i!}O|)vf81I?c-;e++Hg&%lg;c1uqNiKFHi zuHyV$kvMWua|;?FNA|0wxPy|)zIqz}OGdNSu1v+NJTjk`eO+o_YF?i8_+i21{jlj{ zzEy7?tMMsp_h~e_(7gDq-iM`S>@9SUC05V8k~|Ady2{9oo<%yF7A0Vpv@m|@EJT3y zfo0z$WtaXT;iO_3ty8}w?yIWoMzwnXtx}_Im0jr_k;7qO)U%j@?A7bS@~IxpsiE58 zfX4(ZLJ2;7AI>?H1H9U;EdIn#(pFr3q~fx{Xl+DrH;IS+QhJ+wIagY9iH`Az16cFT zGSn{+VP&^jtISrrle{xOu4Y!}w%K|O^SGW1KBjicpIGUX_78~cstfpWxOPO2M-KTh zbL$oI{V6WQw{G#%y>CRU-+Uw6+1rl@fShKd5W^rcq33fE511i>azh=|lSuMNnLJPG z&1^R2v`!#ax~L~+*l3i{Yn<<6+T&hTZjhrMvXMRw|8fPM2vHhhD_?ohE4zvU$Ypvz zn?+z^l+48OR6FHyqbbpBe1op2NtiKQ{X^ zwB(xZ=l$XA6(o-6;Uwkv^%NI4!9)PT{#`qngnXzvreO7ZLVn8QX!dCX>2X!Vi+hXn z-fO>mE?|xuxaSux&qDHidWk!Z z^FRa(na{bN1husR_HSSc+_nRUAl}Gl0?3H>eV27;#CsG0(lbZ`YQF!I{OI(KAdVHn zUT?;JJWC1xy|m3ydjtXO!RN^xe)H-Vb+3GWOY@UqMe-WiBu>HZq9s}B>|bYViV{an zQNaO#IEh?gtObY^$w=vFd-*Gztb(b&2V^<0Uy#-j9Hcv#8L!oo(;^+cT&+w2L$Oue z{2onDXk#8?Th-2eb zw*e;{c}MtXgyJWvxeyrfW0zK55z9^3H`G@8=k*fD3cOR2QUdu>8tN!cQ=<9?)r+G; z3wg}!UI2SHiwE)c+?o9T^E~&N8AqsjZlvM$aJ&Z!jW3Ilmil7@E43vOE6mSAysdp+ zNt3;unD+9>!k+v%OT0_h?$dtj*>i3CJ2A_cB24vE`^4di=Ks^7!ms!nTjC?-1aBLMjT9xc#c zZeYfuW+#zJe~ftlh68x3m@v&6`GobvjnGh4fT0A0~0IEje#Pl)7Exi*2{L+iCPmno&0 z3#26V!aId*m_aoqK=eSbdAr|^)&aJ+@3jPJi2*>pXDEvf%PTN1tq%qmzegw^ zszG|j+g{#>7#s9L3(weT&zmdBu9%;%bJ|0dNS-_)zZkRLx%7%p8rXX==O^t9eW62y zur}i3za8bpS9OkfIDgCott-ezvC^}cB-$~aR~uYOvE1slx0<)-?N4m+$tN#7khPG= z`zljC`wT`~z*W_;_Szdc?DEnr0>p;bKUA)!{egPT4J-~=CD+~U?k?6*#2`s$4a7zn z=s+UmP!<&~G_Hp*ZtDAQncukA4}JSqD{@ya#8M_5S#5bQzls>mX}>{no?EuX>FbPHwfLRm0K$tdD?GlZSc9C zXT_72|E&B?ra$VA=DCihni$rTX8P~0H^=Q(Ta&2^2dkZC9fVBD%erx`PHhO3Yt6LG831L@q4vB;DSukT zBTF;E-B&a1Uf_^$;63!qZD>CC2S1&8=DDJKDPTtF{Yyg}Q z-1o)1XS@At)X_csMK3P-EFVGE@`E%sj9%!&V{bjg40Zyo?H@%f%j%1_*ZTAmkOO}Z z+!ysi$mfDC%^SRkqW2|CS%bIxF_)6>3xNd2XJ_XziO)Uf|WW#m(5*^jIYfQR9u z@O$~W!l7TVmu+H!MqSq~7NVESXAxR9 za}EMoQ8a4M^Yu@wAW%uV*FV+C3f&*;dwSxPZ?+)^ZT*V*1JyaLvZ}H?D%YQ5UzMB} zu^luQzt?w-)sOJuP&&|*Uw;4h)vCEZTxhQbHNnMqp%>99hRO}eKMEfw9N@!m+E}Ts z$=~mA8C0e^4#_Ke^U|!ybnXu`Eg+upn-*^X9H?aQ$)XI`xV{P19DFVxPNO)S04%=( z4m!+=%aFO5Mcu)taVnE7XXZfYD_quBLeW!i@+iSWREIq0=KIo_{LCvECa?u$djKxn z9@wltXdTH)PXs=DZBOJym|`CG9F=lQwnaC3*Y?@B=UqKOq2a81eUag#a?* zUC<%Mo`Bl>C!>!u5LUzo5hSObSc-eEX*J|aRPS0)uR%>?q=w2Oqnh5g!mJobz zj9tValt)b=`#~XABOgKtv4QBQMBt(6Id?da4-oF_WRm^&{SJi4@JWv68#8g6*BO3i zoxmt(`SF{d+GJL=jVK_0WRMoK1T$xSfplT0SOXV zzUk}(^uAl($R|$Y*2AInY>1%$UgriX<3fAUcJiXxi!rP=$PUSAynein4fC#KlTN9r z)t3O1!cb4I9yC_JS-p}Eomi;Gt87h&H&t@s6VH3CkwKBW8@ZFcldOAVyMU@(?j&i^ zmN&8>YOKy4KOOdRy$kF7!uFqxP%G^lNbhGSO+u#U@iAD+S8il!{0oI>`Qj|&XIau@ z^oU6+)ya83tZiIi5siTao<)kwYNuMIPw<{9L)z^^JC(^_;y396Up{ISP(rTDPN}hYa>!kMs zYkk{=wgAcPV;_F!?GG{~Ca~OgnJ{VA`_nt6{LBR)X54Y;{Q$immv!Abfgk|be+v^4 zVE&{a>_a`%+Hspd7M02efEV`562AN-*37i3#6YiY*fZk$m*O^J+e}AKU}O+hPT-HZ z)4~)V8aEN1r!T1hA`sgPZ>8$&!B%&G#QV;+(g;q65;K3a#EGE3dqNA;mC_3 z=Y)KI#UzfDyOkTcI?Uj8+!Dcc)rIo*_oc@2_mMAuzNxqgftA8}zJ#9d4oZ=+?#yy- zCJ<#5Vuf(`dS4mNHJp&#nn1|1QWX_yj4i>SE>I|GS(QSlUri=iD!CZ5SZuzi6v_5{ zX3mcN{-qY!(IamZ7BW$?OOi1j-)ow3RPWTvIQ?Umo0V|7Co-kSZysb1*FR|hlEHc> z=>m+2GkEhQCQVrr$7vtfn%HPT?(>rAWvreRLB0ckRJ6J<>gJu8KW81jeHJ5AjLgk3 zqzef7Uqtkw$SC04#EtYN{276ry4($O|D|w;UThe&XW@#M5-dk`F6kPB&Odq@sCTNZ zyH}4#)*H$m2KvVO9M&lS%s=$sRf#WKOQ(GmfJk|h#;ta<&OY{$Q-9jt&-5idaq5la zsRk0t95nW|Y+^_i!z$Q2y_<_(Cjjvgirt&NIwak5`H`vqaeZ-CKwa0s`i6ED68bE2 zOiuyCz=ahK^EO(y-L@!~Z3j6{8G5FB=ecKWrFmXq^wEXE$JW}(_|p`m7teVTvGa$A zrn!i{ng|Via{g>^W!=TIw}gv~{Hbs?wZ>{(CHkQbozKn;a|i*`58TrILsg+Hx#Qpo+kN}B5cE1b6b5Y)T{f>m+A_DTP zk^r_f8>fsGmg*3Px(?I#yzNW=e(r&Ew%_4081W9B?l2D@7k}o6^C!SPm@GM-i)19_ zbmB(V#69TwRkpWz{k!$8EAL znq9LtJLuU_hhAr6AxRHSVYB_Myv8G+UGIo#;XKjDpAB2GZ+!#ej>?UxetS$ZD@(!%`+&GzCsm@uC%$1!lx^jLnD~uicM* z{{Th^dwrKwulQ~DAKxN9#y*kZ!9*L$pMtiM6{fpaLrJSpIZjF-1q*~8ppj0mxdAWD zqqSqd0<{~tdksDwWMsi@AIIGRe=fL^fdmbJ- z-8z7OJ3QB(zE8-e9A2GG++e3x|Nd5Jk-OMEanwp|pkTz)a~js|7dCs(4LkP&CIaq3 z2&f6}{iNXnwh*<``{@zx72L}(h`{>h%#@6L6D~W0_?-y-p40_5u};&91bVc4^(3n+ zBRGeA=l_tlq2oEx^XnV{zfDZp_RkW$X&GK&d9bDcdcT3Vk?%BmKWhlNCL*BUroL;p zeTN{QE&PCE?eVkxd9-_m5pQBpw&{fxcSBk}AHavHgX8_%iqD_ljD#a@iT+vemgzU-SeHqxGV?ufL? z)E?sHp3aiJ6KnH$ohjci)M!tc%j);9*<{K5V&mRx@4ls`y_XkdOv-*hoZ2C&9QB!y z5r&L$fq`{tGUeY-4egSychQ9!l_yYFqv4)Rmz#lTmScOLU{=$Cs-`cUyb4c0G*r zPILN~(m&p6{J;JlX8S>%(rPODuf$UMYV17uW8~ zdbl%p9`1_zYAxMEHX7?GSxQ-NFGGBzjiUNPX;6N*S}r2xq;Is+eJ+<*NdM#vvSA&rgRX}2XsT@+qV7m*Vlgq#!4qm=b8gK*TfwL&gjuK#$ptpuE{bWOW&k;<#?ii5R<9d2Zj2 za^3zNA@x--^0Qd7QOkKAg_Vs@%!*H|pLe)N?*W0O=X*>~Xrwy~f=%D`=s7b95EU1& zucx*VXQ#D!ve3!esm}ZId@6=S_A<5h(#j3k=9jE)Wlmhm=J0<@Cc^7#mY6#rGm0e$MOGiHl|{n#3U5(F1(zZA(J)er5e+ttfy85 zm&eclon@mnt8D`=$s|bj4zoD%{l6zHs#vMP@#oay z#=7wY=?k$-b~w*Ky{?-^^j#)MaJJMzijjTV$52#Lr}A?(G1W|hH?8E5=-9YY?sC_g z(l9%1W4i{~$ueqr)LI9p%F~E|G_!u<3lXR}BZBISBSQkRC7L{zPX+LcXti(XM2CzdB3hQq_9P6gx*ds!2t3#f7bhxC+K>mPP{ zo}*q_)ob<$Bsb5;h{FJl=K=e=|F7*4qkQ)`Uk5188S+;Y9(q1jce^k1Ar!UFgQU-Jt@)ONritkk}Z<0)HBk652}bx~+kq(6(w>ipXw!%1&tLK^PRxQsE@1@Sf)JAV#6O!cS&bFQzP zFGQBja3?p8Kj?J;^4BsL#0T=Z!M8dTckwBvC9(Xqzl3!kJe=(1L=JOA!U@oT5es5J zTn6i8DCUN2o(B1BfR%w=Rsm1%pG*gHrh zPd@lIVM`1LvA-)Jn#&M=g8Jbw`x!WXou;&L(*jHc@uU9n3|#zlBQ?H>t!tK%?s`D{ zUY&w#XCFi%KHD6eH*XSUU;wB20v29@bog$+a*;ow6nFiGb%~{-8y$=$^0MfTQ zhStb;UPAPrBN?STu>TVyN4n?eRXwF+ugV_*TeNY}FnM|5*03XO95Z3-0K!b=vH3E6bvYVlB~tj2YyA&)B%T zk%FRKHf~sFAjJ$>MX2Tb0Zc&k7eat~BnqRyJ!}Wedkbl>GFYr#ws`(c|4QOXEb>-k zYlV5~85J+9U1POY9!+n@T!;Pc>(tGJk ztEwx=e-~MlZDQy;Ch9XzE5?o-RwFcg9jy0C|_*zB-OW)w5 zHL|cJmOTLX96BV}^L_&F2N*waMy(!2CW1v>S8!0MRxAFPq2m=%zSZ(SO(AtZRlCgz z2N-U3O#E*%Jz7umOc)PFi*5mD$Ne;>5Iu+pxG?;1ZQqL!QaM<)dnk1=3faDY-&T9_ z`y3??AEl92U~c27`3B%1kEuPzrd|^QaS)%8U+zm}Bw)yx zZ3xJ)IXPytD@C!sp#Z%Rb^qmmd3z)TRxJSvLH{2hIWV#ba~(XZJWb&`nhcZ>v~X^l7K? z?ax042gqCi&dwY*A%x%;=Rwnp)Sk~`U>*(y`X$JB4y>hf-(EaezXE60RSuqi&IFDxq8NS`!3Q)&1ra7PizDi^@Duo@SweRPC=YV-?^;zfIHPUFuzbg z>#f>v%~rQ=7YtF@3o7LE6$a@`YS4Jk-N!QCXDuSzz-)h$O+j-H8?_1hHSTqm<5GBN zbsUJsP}U+ym(nYbB2s)Mm*YkgI(kO63+(R8b7*VUFkJe)KteWMzN#y2-fOiGJ8;tY zq0Q^zOnI^}<0-If7T!7GsHsh$ye6H{+n%|{yRNx)2)=hN+-h^{jixj=FRyg)Rr#>t zmv@1D%7n{E~JJT(65 zaO&N?yc&rWJa^l2&;t7wy;E=IV90G%^!jRyiVF3|i03zikc}R2g5~1a01yEdO~%C; z%vNn$y-SBbFJ;x+{=U`oHCw9f-|Rc_s-9GOUrn#nM?Ix^#r>*Ig@Ov=H$SP-r?|M3 zo)JVKv-+lP#>rg2glupC>MM4AwO3Z2j64h>{?dsfq_b|~M#N`A*oZ@A z2>uq^tt&M`-N#mpoj7d9no^80eJW+-r=*Dp7eyHi0nqND$joU52*4iJ5P@sh{(Kza82P!}TpUs0*;?)wS1=7l^^WHNM1ydk#9vRy z&t>4aaDj_|`IrCl^`HOwKPyxDz-t*3vKP-vdk3SVMi}gj!X5+=sE4uK z@5SXjL&+J1sw!YBYkDueXZY=XN$}sg_Yyy211Y_)XJ0wQYN_}3_k@dE?V;YH*GKGa zD;I^pNb_V>))7~F=gs$J#Dk&6;2ri%7;$`P*Vv)IjnsWBADw*f%GIHKt9mRk3DuLd0hw+$1E{)TfCz1BYzyzZULFyCNPY0)PWR1gur#0{Qsz;o<7>e1xJ{R@m57jKPB5Z&zg= zX5@P*IKBUmg3sLn`FY)6tXQg*@v-;K-#kl8_NgdiLn90;Uue9-uXw?j(LWfW0cWQzT`EyPtyq-~yQl zT;EC0Cy{Zf3_&3V^m8v$u>pCF$N>-oCIa6lG;4I)?%zM?xrM-r7%2V*zE5c6gXERB zovU)x`og4yij&N3j5R4@wLJ9(2dGEKm;;aw^34T?N&ut-;s+6i>zCe}&9DvT03Z%= z!0%570)1Rrx4^%Hs- zmZDtzEq@02;loXaW%zXbz%^#&zm4_wu=4;$$zFq=q)V*uVU9 zH&h1|uWu+%n_flb3esMDchg;Jn)`tnP(2m`;ZD4=zHeW}Wcc=RzY^4On;Wf1sP=!J zF;43=XkXzAe~$`qZd44rqT!j8=&$5LhOeqgGyC%6T6EUE$kVs-)QN3l>a3Jc2*dJZ z6C@KVn1LPg)U0jScbx)|u-C5OTp2(<9|TzI_5Cc{bKLhM#L-k&)g4cEG|l*96D;s3|ETBH#(?o`n2v=Q`j5 zTv_3U2yDW22=Wn?zNWfU#E5rNZZr3OyQD2Pe>x7sw!dpE^9}GW6w@Abm90jx98dN9 zTn#Uo7$AfeAOwSDvVZ^4xp@5X&O#yr1`p7?uemZNg1LKB8XTY!!EI}7m@*wB%ySrw zeE&Wd!UaJ5KN2o)e)vIW^p+}h6tG;cE;Yq012fvM#M^3B_Q+wk9AM3yJsnurT6^J0 zwUA)aU@#^fSX;;rpJhx<%K=>F*gkAgv%;s)>_v3?%zsJ3WZE%nU6r* zCmdz?XTqbuXUHkNLbh@q38!K6szG|owvGgLIG^hIgM1e6v{xULfAvB>0-yBuQqki~ zVB6y@`PPD6;nnGNM5f6J8F~{&` zkOuD&n>XFd9`LK?UYOGOU61pEQ5+ZV^xpSF;T+40<0eQbj?9H**lSM0 zi)2Y3giPG*ZDGY90>{wcd$6o0L;uIVt9IkxmlN{J2d^{Ec{L&0fL8J!?wHH3_I)bqxI^1BU?u$U_R!z2~0u zIL!X&-aC(b+mELNX2e4TT<3t^Z|Kj=v!6rGT1E~gWNeb99-nAV?>`58D_|>I&WE82 zFX#+E|MjohIkga;72bS5;`9Oc1BFJs^TiaqIO4PfJ?RO~^R3Whdh+#b$5%&g#MxFZ zL-wB_ePP7sOvK&$8H)mpO=+N|*ce1$LdYjruP2V+}_GSf@vReD49RV4GaWR-7567h_zz(gsAk zPuuR5ym1a%2k%V{I2Mid@(iU3nPlp#N&1E}epQ}xZCD(@xrRK&Yb~#S(0E%z!=8D4 zbc%Qb<&nMs2f)=G0zxjckI+{70rrwnn@dm^K;Ol}#(IGA1sbVH=6l%1=9lvLQ-dq7 z8gHpRhc@*{@9n=!1K^wk)qxs)12@z4um4Ryj$&KW-+G?>1J>G`f2T3}TKBFsgyd*B zNbA0Cp1r)dQ`_h}tuyG*<}1nai)g`(a>i%MOu-g6MXW6~a~eK@7x*Q8%>tY%33hkIn8-3S zk&uy}RZd`LW%J@&oo(Wl?-3X)(`cEMNG07Df-wO2GqVJ`y!ovEkI(zqPE zgZftN&yW7`?%lh|-;g2gR^Nr*5Mu0=D#phWzy7Q5B}{?7`ldBAX$j zeETOMw-c2DAcQOT%(fW6F^u4Y-}>RR+2lDG-m0;qX$?QaPQ}S?*07k)fKt^R3z;>&r>3!Hqn`Z%Lt+`q&V}yf;Y07{IfUTOqr*BM!nN4)> zj0q)uH#QZJL3lL9r9wpOpYrLxp%)^13ci-_`N!AcV7+VJ%t3V48jChU%h?r%Jdum9{N)at@F5 zfIZ`XK`$A~D4hLo$;LbZu$1Nu#9Bpeh!Em%NqS&i6EKR)@Yb)H(5iaK8e{JwcH|ScJWZljq=<0NCb2oc)5! zJLre@7}(>ppm_=AOGbMKYtCfF83`irLHAy#Nw}r-wM&Lw_PHazsOlyk3B_bN96gc+ zotj`^bquRyKB!?iK91$#v7Su^pV&N!Hw@7Brg{l{@Bm(zl|9~(d(ll(roAZQKs|5BCt@6`z=%slFkk|!; zx&&scPfRsLzGZFjQB&Yt_d1M|)jJkTwDGBzlj|>eO1FrrPX4$&i6EGx?K$c`982|% zxSE$O1RA)P?}Pjn%K8E^gNna=ADkMmq?vS^xvx)&2VqVhPKPfw6{ zKs-mg#j5v1+5RYcrZ|m#5UZw*v4kfuvBW7FJ`NR+n%8o^jP;BtidA=@dbTY(&@&V+ zQJVD8P+RhRp2wHAtYYK>{}G?r=?ri4vJC>7b-n^lvu+zVCOj# ziN2VJmo9SnT!z%cC$$XA!1TQEEdG;L{Z!e;a(et7_p)Oc@RYid7{rsA&O~^Ct)m+# z?^^o`%OfDNn{Z5AoLvO4VFt?REu2Ss7IGhvhM0lleyF|A{iw}egFU<07*naRMTcyT$4S1p6u&C)4P3yO3S9(y6g^~(=*G<>5d12 z)HoRmapsisagP$t=MXJcBFK9vI6sKDo7_{Q9fqVCKQ2#b5ypswwj^xv6@-xH4=CsE zNBmh}6R^XRLh5a9Y#wF;iad=x$_?z7^>C`>FTE(&&rvF{Y7>F&1$o^7`CWH5<3Cwzf}r|z;pWCKXD8tVFtXPg1=)XOCU(D;VeHa%DZO~ zip7E)E_x~rY~=IY0QdenNx}(Q^nRbCl{Z0=3eRE|@G=zC|(Z=q>Dg+UL zd=o?TO!dxlh~hc+>j&vvuz!G_pTEU65AMMYASx3UM8>=G9g|2SqW~f@AsJ7k!;SsD z;KPXDseQS$A&y=`n*B;Lbtm7sKmYlaQa9_m|NejekM8|1nnAQHc1&uNchQsU+eOj%)5~tbcsu6Ol@j|B9dA#z zc9M9XLHif50y=)nz}2(&PE1QOs?b+S@#?isf^by5%mpkoKhoE8`C|VAtySoV>N1>sy@L?#k8+%(W|IXX@+WpR&ea=VR?M29N9w3Ae+Gjl?0FTF`RQi*NU=H#3 zGWuemEAD0ekXh*G~&OJ?c}!g zf}ChBkkjVkCx~x|!1?onP^UdNg#FLKoS#OB0nLMWc|7H`PoP*B+N^poTdr&e$z{o& zjVNxZH2}*OVj+?n-4BxLVuxjZIr*CFmPH0cy3lz#T&%8z!jR;^>PI~1BqO!F8#&pt ziL%E0p0Ac<)m@pB>pr`COwH04SPdHo9^Xm_(0;)G^!AMiM|%ipEg>=t>)aw8hq6+O zzfzB6lIy=|-6L}gVa?NieuPW~$NqbA(7)YE7RsRl*$wax%u7hv#P3jIYn)k1Mj(st zghk@AlR&ULiKUPCS`#2!{$9Or^YU%CmOf>>1nU~J=sHpIG}iC6Hjy?$6igmFO5bQ+ zAMV6iOokGz9R{UZa((Z`s`VRqpUg#99G)He6&lU5d-anxt?aVv|?>yTyEP$O3!ns`X$d{da%89QnkSjXl) z_DRdGU(S=mj~X`K;%QUC4w-rJh&Nm~Xj2QrD34lz9^&cO^7~W{d3czOPUn!Edw*1} zKX8F;-geKQ?x%Lh%52=vh$Vr(kop5{eS&-|wPy%fYXi$iN9FqC4Gh@6#6+-ACBCeT zS;oNrEdr=xuQ_&r-p>XLMtmlM*l9yAdIEg3SRZVkD}xs_l7%uGt}Phh;ip%TO`INY!U*=S_L!hW zyxULjI0qgGLzQ(e3@sQg1RAXB-PJKPoz2%?$(N7)6SsOF<_F02 zLG%6iO`>D;{hKJq96t9CdZ{IQDIFOd8d*28o}#{Mc?Y%a3!bDX*#l`*kU zCTgT-dwqTstbcq23O_kS0SLvXQnO!-^mcgS;pJY27bbtW47L^U8(jmgW1Yi!a)^xM zvU{7uoQL=z2N*7c=gm>@Sn%qe&wZ?rwz=EtMtZxlh((_u-@u9@Ult#}XMYENJI?X( z1~^m}Q{Fq!_gTT^Ra~UGO$pte&TCxans10JdfDq`p5P^rJ zART0bc!<5i3Uh4vOJG_qO!R=|plWQe!VVk`jl73E9<+YsTI|qJN zzRv=kM|J>uKgc&yg8!@3LJB7Pvy;@r^jR&;u?zg><27= z!W(Txo3#oE>OQ=ai8hfjOru&Yv?xKaE z&{VKa?s+C}I%ZYeCPoU37Id{h&tU(*;~sz|hesCt!jCbB#D}(5SL8zo26H%{gT%%b zK6Jr(o)el|ILu{Oifw($=^!5+=WhisOmTVFKPx_^2N(kR{*l7q4>UAAZu6$dt=Ptm zOi;F{DaOpIjG%ZBB`O<@9C9y<4Soj;O@xrArn&zdDEfZ! z3bF{IT=e|9o41c#nZ%uBB*Qz~JMx&m3;|28ZrQTe;IkCllQAI3NWv=_t~+@rS3QaK z5tr2%)_&7-x8RR*ZezZ$9{Al70A~&X3(FrXX?YL7i4Y>|@ef206Do)S^?WV^y*`=z zqt~A-_NemT=Lxkv-^kCL$s8c>k28&P>w|G@wR3BaW-l%<$c(IWOF{(bjUy*Wpw|#W z2=w~ck63ampT0$AkMrvzVloP4DqmI>O$0{1%MiMk5(n|tZ(@|=u|9}5At>JiW?-4J zX=i3F^8^<4zzK9J-2`y7ATWKG**_w{1Yj}1sbl%XvG4~7Tfe!I#;6D-=FL&su&6Q2 zvCkl5Nnp=D`LZ1#@X(I2D+8hBtAQbcUasI<`4A5BBZx)x8k4RxUY4<3jjI=xMlMT4 zci@@w>th|l)ZG;AZ(i$uv4yWR-#x}2{VHD}YygcR>$oqUb}{E2M36>4#Ux3Q<`G6U zlG*I%5Au7}73UJWe%T$C+MazB7qHJ`ykosjP+FrT1aFgC&He)njBb9^Ce>OCh{y`t zyAZNOFA=aA_kk%smXF7l@r5%kwQ=THeFRFa$WeM2p(_1O@1xj3d1BU8dnj>7nv2r0 zYVZpv1kdyQ&dZC3ZYMQh7w0ppB{UBaBA^r~e{GSn9Xfi9#^ZS}9aB9e@;EuPWD=WR z9;b2CVOj3EG218NB6OVMKn%qYK~nNIZ+?vDobQ_R(esY%(N?q<9YT=X)A31niX8KQ zCJye~DDhR1pEFbY)R3YBXtk_&pv(>8x`MUT9~t>1`NN%e3i+rci=qM5i1Y@_aLmK2 zH>F3LFv8$dU)*&;1YCxUe71})+s6BD3F$M2-pF@CVzo}13%xEd-!tN6aGQuABWRbj z_*{-}%>V}o5P?jfw#jvo-nMVnm8NoY5s4~q$D7U6d8S6mT+H#far)1qJ1$D4KA@vL<<%1JxU0)obtBSlS z<@!Q<8%4?EA9+ZGvgKhU^B>{6r!##*8OF56+`PU!4vxH+wuUB-UxmW=+C=h727P=c z_<$wyMzGVq%B+d_dR6V`k*ar-!wl_#6DlJv9%n895$xC(P#OTMw^_)$;+%yS8qJyG zs0rEsF*ujXhqsXe1P)JLa9mtIIZSB*wp{u5bHbsXIzE>d`&Yt8Owc-P;%Zs8ov=@K2~}Ell&e5kZ*XX!!~~B zxbL6s^~&I-{LV|rqF67C&FRExhet}Fw?cF1LiB!sUY~*8zUlo22qzN{vx6B{qWY_P zIh}^}Wp-!e=l8&@%6QnrP?ygky}3nbzTd`M+3eoWvF*e&(oLl9{nW+uxu?+Ex~Jb* z;3{HYRbq2E*ZQ1pkxO=_{;Zl3+wa}g}+7f~D zFJ(prTE#dooW*bAk3x(5b=}u*|6svYYP^JS1X(XI`!6}Z{dbh!!Ubebz&?ds#SVa+ z)%0brlRfs;w@h*&;^U!=Pm9l8KUx>JfqM93b+F2Xml;LtuLq`4HAIdM} zE6V>Gp{cX~-pOXsYhs>d0kK|Dc?YfM>%NEmiqNY2^j>Yzh5EitvS9;AtUI5ZOBpWr!cE=VZ>ufdxPZJ*pzF4^ zZm2Hm8##uY1Gt7c2YEONgv-amFxv5ybetU|+l9g3>}Op#Zcisa@V7{tEV4 zply$rs6=4XGhEpm+GPp-z5SKMmWc5Gt?g`^+qjWDPVqse&B)=d}3h99)w-K|iMb5HG*(TP9fSf`)p?lz|92b&_`uK!O;>N~=<-uaEfFce?Ai^L_oA z)E~sN0B%s{06xITc&-lG$#EC4f&}O4zmzX2?gUuG!gsAkr;5zAa$|^zF4{FxD(&x{ zmfimIA^(!E(UZ4P$Znk*sgw^=FcI^R*oQxBN3Cl`0SSTv`7iqg-@k3& zi0$CHM7Amvv^ivh&821m!i)$U|XQynXy!kJ>=); z2pZ9$?;D`^WS8})DAJ0b{mUpm8Oi>Eau=c=h+x?FbDj%IT4x_i1Eu)MDPe9+dru0D z#F=Ss-m*QN-vdj)S^hnmX!{D?b=7%Pv8t=~r!J?+pc}9jkH8&Mz|JRATi(>VwF@i> z&3DCpx>n}={@qV)JJ~Go7PDNABRO3NvPvZ39jwj=33>>I3Z^QLzMN}1-&@MWez;SW zCh|ryQ4qkLKT-W8%W(i$g>(*X-@8ca(%avoL?1+?YGv*P5~J z5WNa8`cd~fGUv!q>w~bxi2;6tX{>H6#ncKozW!C&SBQKwUSsD+W$1(;$pA_nMt>-I zq!9GpgsWS{6P9UuYFCoh!0|7g4;fhgAkk6q5)$}MI=uqR$B3wAh%hig`x|2!%jqPm zvR*LGHNDgEtS<;MaJ)7215)H_)^ck~aTjNn;CIEdR6c`qmaQ3>xt<`v?&9O@GWXCy z!i~6p&?n;b=|LAGBSj}`B(oJI>jX#zY)%+Hbt#$R2Po~i_yJH5y*2ji_Qc506&6Sw z1kD%BlXG4We^9WJA3{Xsz;Y>%ng#ZIR1@qYFKJ-JtyO;Uahl+Wac|zb3emV8xz5TAL`=vFR{mZeU3~8t?j6 zJ0YKE75orp;iDf-#2?m2;JCs{DD)GoB}93;;(Lp}KM({#fJYPhkl8<#eo#hEREv8J ze?>4m0$&$itnodI)JKfvmq#z>gTC$DJ9|1EE9Qw~+w}P-vM3y}kRy&})^3X%#E-GL z6HvEQA+8|csA3+)lfGF8X*Ftw=? z9d9J4o$qO!&NmW-NjQ<9pHBPV;+jscK&SWcoGqcR`{epo$PNp2X%=i;=>(Z=|18&L#5ZKpaPp8${kdfTegsk_X20bid>?+X*@I^#Zx&M2vsK_zQEt&3VY zX9lX$&d5yb4m*%KDAm|Vo>V00%ccfeUuWui$;iLbK6eLV*NTR1t;*HRxt0vybl1mG zG(0vM>$QEFkoz{s(su2xUyb$Xfz2Cx8-wGH5c8F^Zy9}fR z<~&v3IJ+*y;122WJcumfpTWLHz(UBl)^k3Qc`BWq8g+5E|L`%2iqzR~-3DUTR)|io z8Qr;QHrXDrRTAi`PhUd6lZH=Mn9g;)KkV?f#679`Oxqwrbb5EwpVP}*&$u|-BJAP_zk;S`5pX>LeT(5{}g!iyYr{& zc(i#YsC7L0Yu-!e=mN|GQP+$qV(=n&W2tTIG|JuiHQ(pVu0{aXHh8fM<>)sm5SfL8 z&Ig{%05*Ow`a}0ES`EOgRfa7x84V~LJPV}q!5wes3QH0&l5{>mx>2~73idpv^F8_< z*_-K~0|pf&FukPXIq;PsxXq#?qkXm^lrxj`bb=O}jN7eKPnfTG0t>Ar*eit1T0f1coAq!j*#g2cro4sx z5Qp5dL{fdQ73t_8nt%Kt7utt6Hdjdd1hkp8bNI&xMB5GFxxUo<;a#{84|9>ak(K=H zAM_38DkGK9sCT1dQv!m%M@P4Ih`ET*BxYgsBP+!a*x$(wFZC&VR?^7FVxeakgy4vT zi?olBMm)oOUe-JAZx8W)>x{GTn7#(sHL#1ISHlO;5UU9E%^m9ysoblAs58!s_6oky z%UpHZD@IHO#1BWlV1J$=J!f18kp!-vRAUImX-@-U_l)}Dh=WB&)ru#_2CVy>7PacRAT=B9A1A`=%Y z!n1h4gs4~;#JKMMtV_84Yt0PnPGVt}wU^X*YyJ+`dwtWjzAZtZS-iuV17;tSBE-BZ z>JenafHu`S1l}8%*FEH1(did;eC>QsnQp|oY1aoC=yXHdRXayUX0F7Aa@-{%SlNNr zYcFetKQz_pG+fnyDaX|lWmME^e{#=@F~`VM+cszJX%{3gOvM&(nb!q4b$(5W#cQx5 z2peqJGstB%jSV+&aT7^6A-7dZ&vTG~qX*s-1&?(Hl$(L>>v9e6a5_9oEoOoW?tJID z^ZU{7@|rUBa}Wv*=tn=D50KW88kuMQ*d9Jr+|z8+=c&5S<<;4MdRDTy^PSRp%mU|p z8R~EBlMf(oE9rn~-#|Oh=@eX#(QlagUSUkjS-cv4rjSAV1&D@=D>U#xcv>yqd<^~n znDRnpIem=C1%xo9OJPOwumLe-_}*j->E^#A(z-`cJ6Y1@cqUCTH# zRC5-#ZgHrCo=aO#i&v21Te3UeKKpO~l(Zmw_zx|zS1cOUOmg$-*JyJk)#=yY+XwX& zXU0{eu|aAzzO4b`Od^e?YC2nM%E!-cuc@B>c~|e+-SM6( z7cVy}yT#3x>AR>f%o5-5lEm4ywF%<~@30V`K;+Qv-~XXsYkCg?M2Eg4*Ail%32!TP z{tv-G$#+qDo3L%vA=TeiNT4##4 zaru;b{yw}@U8AM_Ouc8*YywvnD6Ncp4q`^qg^?eO+RNJ*1GWh9O zgp?mx$x?u5WdJjPfzH4F?NeMb0{|<+w}1L1&l~9!3+EfF3 zjSlN0XwPD)^&&B<3d4JX0Ai}*w^ADM^VD>ynd4CtD4lPf17tSrMoQ;lmOA5GA=vD*g-hza@iU?ycqIXjCyYt0#NV7Ye z-yd0ta8b%ASH$^eCo6zi0D45{Z$C8ozr`VJ-T_W1Rm|3L>nf z6=dWGxl{_k7NDC5B~_Z)-PQrsx}YEZAOd87z)y5ODS&F)9nWm=PK?d1xLo!y1eR;* zt68IWqfw?MfeQ2}x(hd|k+>JVe#~`s$lZ^u=NC;9HIADPij%*UoP983bAjKxuuWsp ziU0s007*naR9Dv!iN*mRzZNp_o+Ix8Vj!L0-{XUS+vqo*yC^9(vTtKI$J#GVwmezd z6hph)?MG?3L?iXAxAMCK*w63-Tz8I^J*EKp6!1GzgDKV#B;&YE+hfKzU{OollKuuk z40Rto&9X?n2fa7+dGQWpgwNr58VQ64fT~wmXdUB?ltJFm`CfuK9qG}$(%MUan26HJ zg&=kJUhiv@^`#s;!-+)WQA+~C#8rB;Yh~NKqF@($yHQ_Gtvue!53JY%3+H5g{5C za-yTKsBHeiW__pQ+zk={G5R$+?A#EU`r`(C{ajiV5zp1DWmZv==a)L97BYASjdF*s zrOurYmcwv@1j%JP7(`X{xPI+?^1L5#uS0Ns(m)20fF7nCI$Vd2_i}U2t>UJr?_R8ln}z*Xw#V@I9iIBQuH0{ zgzjaJ;+FRBb#L|SAv>M-VkPbvzjHKrJR)70N-&(Pk)gCOIe0^kA zkWZyP`SrCpuTcN0K(N*xNmyv{jRf|JWwic@ctp%B`pzP6;e2ZTENU?r+dfTkDSqd4 z=w_vpBQ-;*AY3(KErtk(m&{<+j^>0DkE zZu;HA<+(za#>eaOd}&j)ulv-U-{*5}EgoqcUmLBjtDLE~`S6kC1Y*Oh%z0v-KdIR+ zLOYpEv{ll5HHC<2;y_>EP$ZF$T9IkKo9Zd63JRt`t9wa}41L>E*S-(GI$#PBMkFX} z1F6dbl)4CoJOkXfIdJFoDI>pW(%R@@1aSZ!{rx>$GaI0aol?h+_0w!TUhAZF{!y7m z**dkGo~B8wjsOEt9C|MMPS!RtcjNU0RC6=eedmwbQMJV+8emy_rR`T(gAM|;4Ii@e zT~XCH29EWUvps9ukgXEicCH~Q^E(2O}b zL#hY*(QhQEuNGnZa#ppy07P(@T-OD0{p{80gz{^Nq-%-M6@g?6K;l-%z)|X@G0leT z3uV&(?N7+R!XnW(KG>TNNBXTt7oAGE78)oHb&y`b)~KE6QlOYjp3rz+VlIB;=BADE ztIY@PajPHE1K`&dK5J?|w1GmDK$28^;46ua|PoD(#QP30U;4Tg=xVhTKz+onBdl?=PYasT%-em-RBQzv<_W`^=9|Tjd z{T_&?BrA*hLOhVPe_xZop+5c;4I1A-2gk2fU42hmyss^t&pGPMb6~pP7`9f+G>&v5}y zz*Bh2TbN>$D%BQ1#{*lb*=<3LjPeH+3P*)XPVEjKslL6hsqY!bR?hkxbUYhZ00#%} zh^zLeYAq250|9I@bV}7aO>j-;d%Ye=&?ADme(JI!wju#}z?2QU+6AbC;>Jio>T}9C z|0o9tjvkBzj!zJtxw7~nD_7`0D5QnX_s1V{!AI@mQwmHGq>X$x(p!FmI{mu#t}lkDjnp3>533}R^f z{jk;{=CbbLO8yc%?UM{J!sB(4f0)hTe`KeLQvFGl@mz~u!>XX!F&t$fW#S!nn*O5= z@cVKtypHzQ-aKsYieR!ZG^u z27ff)U(<>J^_)7ZV#}``-q&;Ix7d2x8g60=X6o&yUy#A%tv(ay79IWW{(gNuI<9t} z{R2ryzKqe2y11x}EhhKv_17UeDAVNg1OfWWzP3W58icC<8zVoqo7J3Exna)jrFybw zfE!jC7Ph?RJYHCc02m4OGK$pE&qx6YrVycatk2t)E&SHvWQK4#zg3aIK^1FUJ?a3A zN;=+*m#ufL^eJCMKArE>N*YLj&ne?w)+funxliOzQ@g)I@MbynM}zv)GmjN{JcINj zpL;vYIzS(YE=AnHGQwrNRY9Xu(A5El1?dt7iCYILkrsnQ5X{R_zgw8lQq44kTJj1fu4cQj)Zv#-)q$r?IeH2Qle3wRetEgrC9nd(L^8mg8leJ zOYgOsAApZB2xZDu%U#Y}V_4WOC9_}P@Skvy9Ry&M_!F>>Z!JH5>r?V4c#N6+ z3-|laaqT}54>>RR4Yxy^(BOk|Z#x-rh;^0VI!SK%-I?r**|Cm=@TkAD@Ctb^e|F z133WJ()*licc{q$dDVNBYkUY?uaAgH=UY_6Z=PeE5_RuZ#u32Io*)5WDPo*ysve{9 zwNVcp{(c|Q@;+{Zw1$PVuEVKf1f5r{)}Rix!8q?^aqQCA?`^}UPCb8ezcNC( zWMflSI2R0=&NrQN$6Ke}w@n1lK~t)cpzp94G5O)V>eg-ao#1>@kil&^b>~+_jeRS) z$4F%xK6$SJ95(EFc{0%016{W!2cF%=hwD8`pIMT|0`f` ztf{ErQ|)2k^5~x`CvV9Xc|66g&8nJ49mLOzegCQcl3}BkzaopEQ}a*{mv_9vuYvN>|t( zgtRg_=~|`wewU9LX#BRwT9lN6`Am4G_Ulc>#a$ zD5K+RFgxGSrCxCPMbp2*2B4d=QB(CEqN6dvjlwaKI34-3a0va!!lZQP4--G~A6~2N(t-b-d*pCRc^-8gRt-fxRH3R7% z@TSPwTti}G(@f1E#8N)>iqo>|)M3bQt$mZk1BvI5Av`32KqlE5YCs9EiMWe*mmXgG z{z1<%Y=svyzKH_!9>h0b{~uueRXPJLeqk-bgKQv!2)*j%2 zKkqw9C5x_PE_JMV#EN+aDxjFr!DnYG^~ee)E5nh*rpe-G5dTKYqF%nzPR%(q)vRDr z>@ZGGbO8EbEDniHBh&H1Gr(1ee9nkRzJ9XBjW8%|Q~DX0PS@i%sn2GNJdf!u`90Xh zj0K#t@9kauJ_q&FzKCr7y$q&++-bzKgX`h*VCXHQ>9DDhaoAs5&FXf7iS z6KJYVxvuSVO~)JRx${WtwC`-9Bb=er%IdCeHL^T&R0=R5U1N|{(sz@wkc2up5^ zb(*!OoFd#%<*XU?%mNW3uLNSoNMzSBe`xNXvVVhE%r2yct!9ELFvC~Nj08?=+0;4D z!z=*JH8MHv>rWza8Kr&w@tQh+|HpXA3A4c{a%M^2@$=_qmy_1=;!HdtS6$+)saa3Z zXvJE4`G$-PZ5RFAKVHp#Ku!-vf;y)(Wsu$gjoel=l{iE8lOMERfPL(C7m9~-Ay+QR z-RRN7S3t|ee*XEF8Lm@TAGC+A+V;G_o;+q&e$(d38}<)YT;3Hy`hO68(+seBkHoDz zM6vLJyZZ4TdaeesbC59In0+sQ0-#0sl7GSmi-17S#+%%+yh`u6ki$zbv2vVjjuS8& z@G(4_d;&z8pveR4286tW0`{=p0DnJL{xB<`uV;;d>3{G5vL_ria6|ZB>UX5CXX)Aw z#em-BO8W*gY8kDhj#q?V9}&K8cAurg*EiAkMVCKly#+?Led;@es_~qcu?~X1P`jx^ z8E*BB#G6DcCq}={ciLk}igO*Rr+4#r(nSLT4p`jjvC(zxX5^H7`{B8cQ##&oTSPDC zk)kN6+%kE+#*aL}p>5k0Hh}4wz~xU;edO1|ln2epy@gcabT1>0qF9u5#7qg>AD ze1J9Wb%TrN5P|w2!~HE&I#I!Mc_23>z5e63 zc3=9xKWMbhB?I3hm#ZTThupW%*WmYz82X4rqET&cfL4k{f&W(aQ5PNo>a)(+H-T!J zF~YEg%{q7?Eo<0KiJSevD3VB->c0FgkT=iNr<(fPJL)LCkbosc)PqPebWhH-pId2~p9N&3)+0jd6`&uxO{I|H7rH8U<00}vqJBMB1|Ouh#|tAdRCl!g zcj`6rw>zJF&TAm+TKC*}k9e+E^$BC1o}bP?Ax-vo==cW5HgKoA4G_z1_ejQWBT8Rm4FufzoKGS^6lki31iaMg8LQxQ-x?YyFxB~`IMm1EcIR2(QE^f)FRF3H z<@>Trhx2O6^xuPH8u$4xT|4m7OZBG89ov91W`c9?2@)6)s2f|+b0VmNqUE%|SZ4c9 zujNzc%gsXj+=+gy@(YFDTa**1i$079i@m6j&}J`=Jm}9V>36n%g%U+0VNeX)m3lr# zU6!@5F^3s@5E6?prZDX%eB@fCdtjY`%1v^@by>19-f%MB>bJ#1NZwk=#<15Be)y@- zrjPFxcj(Pq6!S1~D$w&77AOud&Rl4J1hvL*EZ(+Q27cE!McD)scyoIr=>$*R#yr|( zFzf*`h7DRj@TlMX{`h^i{HuPCs9EFMK>6{jy|tbn3Vbc;AXYI`j>{TM-56V0)LHa? zp}Jr6TzsP|J?n#bjw^H_g3m0B)l70w)KN3ss~=lmEp}>8r&1+pR5wrNa6N+q(LHE7 zV-YNSE~1MNV0D@AwCTbWRQ-HZrc-nnY&7w8RY5xMTxvRduDs?W8ksvLACb&rnd|kd zYn^|RioPpw{+LDQvjn{^X`}Eg=Re-rPI|GiE1tZp9Q>siZ$jqwK&MXuYGkyICNC#^ zM!A7SEK_dmRI%?N=Z?>OmIP17zJD*jsUJ2`as-2#^z1A6W7?}QR%>N(-aQU6k9^13}CZ*^BYUh`t zIEB*&3GDaSclxyqYaGD#FH(;e#uh|iSqBjXk`|t z%h|Xe01+Z6w?tK^%k@usP{jb)efzc5icN%Nc#$Cl{MaEob4SBF$oh4Ig3>z+cAn~Y#`|);}`cU%^n}2&x(m8vpmj|_#qD8q~p)^ z0P#cp7?E8fw+@J6k^d2fN0cFIOaFMc&wqT5_(SX~WLT)9W5nxu@o9+n(O|+md8^rp zr^fDJV86r5+=q!3+BaYH#UvuL^!!?TEaQI&5UzKpn9BU_OhGJWZ`=ECQm?U--bLmP zVK>&^)CH*8_`Tl0e;xgsS)0+3+P;BCBZ{y$d>zFqlE|VB!QsRl^E`fe7&CP|^7< zEB<<|Ysoq}_4qi+v_C*K4V&g7f}JQ~==kh>H&UlEI^BoMomw7seE!kbz&wE}f`nm~ z&YO&2TslM>aSa>_-JQ=;ue#hTZy%F>D-{aH-`9C%m_{GL@$Pm~)yCu)2|oPgLyZ2e z`V&O8n>T~ZcfLnnZ5U(7xd&qA;c%yL zAET6!UjZ$kM}N(qJlBlC$oGsy9ojT-&KBrE4Q}zI^F5=0SOu(Wf5~?~Zn2|ix&Jk% zJfD&Cx%%)tmG1!oPmu7ro3m`}+?@W&uAT4Mz#=c@%Y__0zDS4rDT6Ns4WR_ky1#94 z1d)pz6kj?6P2tch_Oy|$8vr>jCDRZ3aaO||K!<&a?XL5SCYJ_DUgd|q>v$7c1gWu%dhB*hWusb}`mCHMo($i4qSxIndA zp8X4=n9J=ej%Lm*z1ZEulBUQX{9()4JzyU-)jvBLv z{5{sK40q~!q(F}Zo(Vt#4rT;*e7i$4Lw2rH^3N%yDk7{kwXm%{JAj-6&jc=iZetAI z{Ut`(qu)s3cE>b>Z+i5T!t+eQ9G9{ez>9pQs@aDi<{mnqS%9?PS)$$?inMA?RG~+` z{Y@OEXSGwM`bxirdg3zx5ViOQOlNn$qo+TV5l~#CHr}|O= z3D_wNJ_xYJBq_K~>B7}mhypUu>F@+~2JrMxyu)1lJn9RU3JGHfPpZ>LiXx_atF}Gr zo%&vdPm5FUw?OA}Zu73|4aKQ6&NbSZ?&)ln@)=A5?CfI45)Ud609fMjii73uvfb>B z1XglO3hc{JW9XQ}l$?I^#IQqGFv#KK`oBMoRxsA~RX_spD%AzbqvF+zkJ>@B^3#8{ zDf+K+P2WhK<#)`B+)OqkWHm7LXj=Ctwpt?u8h!+ri1$Gp~A zCRubmhqstY_ zftU7&8?++DNI>eT!!*PXVEuG)sA-BHVcB@UL_qP}v4x3A%}SVS_#oA31(1QggJKbb zY~g(;*SbDOOXkl1?Yc=Q?tI>fW#Dy-S?kG30|_*PS=42dXQUVq;Haxlu_S-6u14N{ z+RZ-y{%Q6fei%}Bex9S*0|{VKgI7`5(W*CTsFn8#3B1CI+nE9CN-H9xnXj-^vCxVi zJKSu9ltf4eEb4~Ww63ko8RZW;zg0Z-!DsVkLu|+-C(tPvnaE_yV6Xr>-$sx)SE$v< z$IV;Nx@b0I`mf-b06RDbN|UgOYszC5Sc_i?@KjiD&T|kUC;vd|$kr73PVQKQ!ta6E z0MQ7ClR8q2K(6nR&-H6oQTskpGpM8>0b%Ss!}PyX?}HDCV{tmu;j&qfmWu!Y01`<= zK~!G(iQ4(~{(4U5`~Ch098Wp3aj5b>0000sWmrjOO-%qQ0000O009|E000B%009|E z000B%00IFT00jU50096100;pa00jU50096101yBG003n4#03BV002ovPDHLkV1gF4 BnhyW~ literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/c2a4x_c1.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/c2a4x_c1.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad7a9211f899e82c7fc1e6590771da6b41674c6 GIT binary patch literal 24123 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/ca1x_monside.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/ca1x_monside.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8830ba7d5d04923e8b3602f90cc01aa8092a03 GIT binary patch literal 1332 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzv(yOBG+$o^Eg)Nhfl<Yim_*CLY#yB~k_kUOco^2Oid{rpQF{CYO4O+C3)^Xi<8 z%@LPhe4QcoKj!wvJ5{$`qUYP)xEt-ZKX%_|ksGZl{NLr4U4LEudT#lw?c4h5DvUO5 zNsSDemf9kyP}~z(7F3~QOUU}B(v|ZUcY~xrZ$`1+jHTTeWLc;+_tXOI2)w3f1@rbz3rk(g!E##0`sBwHp?ROL{cWBR79Unp zQj_xWY3>4t_0KQfzaLr>BC;h)FZRz1%6#znIKi@ZKM-eOzCGT+91 z!mn?^?Yoy%KGeD7`90~zzMsoqOnSL~b6Ni9_p?5UZ{>_uv6V})3b(rTZf4yiruMr)Rgyo_@OMsqxHt7xxyfl$5Uh=eTf2eZz~l^74NaYV=ObyV;+7Uq$U{ zdw9{MlS!+leKl@*U~}3qU{jn$ukN!<{u{Y-UpE@;voR{y^WS4-z1iuq(pImAIF|fV zy>rz+uhxFBU!IBEqR^B(cFqC^{nuL$xpK5{t86~~y=-6JuZFK@=lpIITzhl*wmEG~ zvnOfssLZ$^&rnoX#dNIT*59yn8_)eGT9^VDh#Ra+ydpM5B?6iM6zb)l}sHb!4pHivaIlOF(3mv!VXJj>W)>H-k z=~=nr*ZCW()UWc_GIEL31?Xwbd&zzyBFa8*CsSjhVUS++=iioZr!*enP0*P3u;@*C z>Eq?9UCQ=`DePOBUI;S$bzCsvXxaZxC5fGil}`i1-%X9!Q^qJT=e$l_6^n4%q611% zGi)XPy#3C6s%4s4g2bHnF@E}K+q|dQF&x=(zpvPH{mY)%meNhXHu{G6Hq?DrR9`QD z;91(^CO!F&!O6L=?GC0|^m}F)iV6id-20vEbtI>CZyiIN*p9zV$2ReG-M+di^hofD z{=nKf$1Y#K#(F5YzfE7fP_KT%o%QCoe-;}q&}p!93=dB^wA|rQ(ti1hS1!%>SAQ=* zxVh3L@u$YcHLi^;q3eZ}>c88qX#4x&@R7<5>z38TL=_hZ9TXBi`RBZLywi@VCvI|` wMUCyxkG|RT&q{2M@9|fMMNa+U7f#zDFmJKR31DeMc_GH&>FVdQ&MBb@08ivVh5!Hn literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/camera_trigger.inc.c b/docs/lua/examples/lighting-engine-demo/levels/hl/camera_trigger.inc.c new file mode 100644 index 000000000..19606a6a3 --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/hl/camera_trigger.inc.c @@ -0,0 +1,5 @@ +// Replace the level specific camera volume struct in src/game/camera.c with this. +// Make sure to also add the struct name to the LEVEL_DEFINE in levels/level_defines.h. +struct CameraTrigger sCamHl[] = { + NULL_TRIGGER +}; \ No newline at end of file diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/drkmtl_scrn.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/drkmtl_scrn.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3b8b65a94b92634c9aec13f0b1bf3f393c8f5e GIT binary patch literal 5472 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/drkmtlt_bord11.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/drkmtlt_bord11.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..401902152c3da7c30f557d76a3bda9410b53861b GIT binary patch literal 3865 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 YY5e5r-%0uZU#bAq4O0WWzGL+N05Bw4`2YX_ literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/drkmtlt_ceil01b.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/drkmtlt_ceil01b.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..3d48ef32e57db812385d9f0230d3012bbd8a6e71 GIT binary patch literal 22501 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/duct_vnt.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/duct_vnt.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1ba96058e6504c097cc28b8a048905419d257c GIT binary patch literal 5369 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/fifties_cmp3b.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/fifties_cmp3b.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f438c549cddaa322e5546f16e001fd783f90d9 GIT binary patch literal 9584 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 {8O*Q5$`C z)chy%qsl@${SN;LL`@1*#T+0FLFxsf1!*KTQSDzBHP@eD?H@qg#8x}v&>Rn=0eTor z0KA`jrFpO{8LvnpTfGrBqWmOJZd`0{ctW{fd|0mW0x>WNxZS{e`oA9yjn|7tr$EK@g>`DmErNB19)%zU zTr0gu*?PJpxG&fb?nP8|1|EcQ8hy>Nl^hpkbS;(uY3AP!A*bmTA8OE-2w-xeb*#)=oq7Pju#w;QKbeIe zj^bJeNOH>e-|P?t_Hbj`H$fhXCe4T13n|Aav+*4a5jd(v&l*WI5r5<^95ir3o9WP* zhx~a5g`e!(Ih-`ly-!3;)|xc{A>o&8F9^d z!ox!_T$IIJ4wgg-XtZ8T7(%p>=Uu&ITg|9}=>$Ajv+(1qXXkYEIuSZiWt>;FeiuoK ztc>RFeAo8;L==$yVo>!7RY*6X7=JMuR4lQ>x7#ZQ*vFJ&R;?Ps@62kx`m0=5#!poF zca_%L{=Mu=g;Dew+IxELsXMMCDu&eL@<5nB2&)T8N#@7*oEX-RLi)E`AZff!Hsdii zeBjr1WvjmQP98k`Z#;-_OWm(*a%%0dkJ4+5t^Df)BKqR1h8-UaluP#tvC0!d1o+N= zhWx$*B(buGM1i~F!X883Izv!Jg$aUU|8$FThhY!Pg6J|s4tbIbg*$?^B7Jc~NxX4* zexl__6B3GwQt8%`B2IqLoO{;t$frLWLIC-|-91H?zpB!ifsMaK#9j1HOiSeMg9WJ_ zIbs7WtmgC&W#Hv%AHGzvl-`NeHB?w=ce|1Qd+kT7ahGtqTaU_sQ-=%XQa zLF;>o_mGXWhu45MO#+!ocP3&Xs*d*9;lmc7+`s72UJ(Mk5O(eK+O{zxt@PSK+I29V zOFYgT#fOVKK{xMHgiZ=$#D?@5#UX_(e@8c+O;n!h6KZQ7U9cMJ?}Jwk#!IqZ?rzj_ zSBJU=+bR>tt%55ss*{!9QiA&feLZBTq0ZB`eAyTcRPfq0tPVAGQ`n+4 zm~}ZV455+Fyj$v}G^>-mvR4Xl4s-SrEFtleey5*k_9p1eLJ-Rbn`>JZzkaJ#>;aXv zYixwGmGkA;q}Al*c)jmg|5P@_y{W=UT^tN)yp`e~R6VDnMVE0&L(O${=0-|@Q4E@m z<8DBVgxH^IS;)dy*J#w zkBVFVa-Z@YYvpA^IHH$$Vm3nci#v?h6Kl2{Ey(9Rhtqn}t3dO#qAG*TD-uAfTN>`` zKq3fYB;RP&F3= zTLblkXA{Qz&OAkr3xN&!^=hi)r4ol(yI;t7Pez<4?;L#b)>mj&wBIz%eVx>HGGEFi zSn5|Lvi-frBl{=i28m`&%7@|8BwVylo>zt0g@*ess|w{GD;~68jkuzHuL#3=4e;)6 zyferfP`Pe}&b0}}?eZo7R{R^W$5%UR^Nqif2-sv+fVX~)&dBYc@7{k}SHt;OB{;qW zrG|ltpS^`5OTFPc#U~8BS<%>#oBkJapn$3$g%};bO-cwW;%2$$i@TK9cF>$lDO2@(!?(wOC~ zJV!T|Q>50g7A`=_{yOL-K>KE2I`b?L$oqKAjWSS{{a>*0|35DYkdsoDtPnR1{y!fk B>*W9d literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/fifties_mon1b.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/fifties_mon1b.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..39ebbeae88e21fb291f5570bb99170dd9a7303b1 GIT binary patch literal 2864 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/flatbed_bumper.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/flatbed_bumper.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..c749a9631d3b5a199ec6d350141388f313967d5a GIT binary patch literal 28267 zcmX_o1ymIM_xCO=v2?eDv~+{CASFmDAky6+UCYv-lz^m^gdi;!PaU9$9& z`{#Mjd4F@x%-oqdd(M6*?!BLwNzi+#PE5c+0001pH8oTX007`a2vEYueOR8GS9U(E zB<)Q!9dvX6Paa}A0FYi20Kne)-x>?Z0Kj=T^55_9fsFr)$sV==c4xi+9Rqu+srmf3 z{r{%LCqKs?0BCM!%Kv5{AonvJ0Kf{+R8=+#1WtF5x)~Yg3I%$#YWHov^Qb4L zPSnJ){o5NM?fu#Rw@$wp{k2H?pn~}Bfy1YS-Vpf-H5;>Md$g5h2O8Da&s}&uIZAU5 zK4c7<6@1r7+!?WrwT^Yp^$5Us4j}TC=q-)3HGtE7<0Ycbdq__ znb%*}3188Yn)lhv?3Nj{gjRH6=CX<}tezdR(OehAjPEbME+n22qH3$@d?tl|XJKdR zcctb2Z1mlBw=Jaa9TabQ zXz%B~Hf(?D+}NL&r!6AoOd%j}5&X1J>Z5A6wgt&QQ$W9u6DRfj+oa$Sk;1c-lccjNuaZTI;;fa68>=8ip}X{5Fd|;=6w0)byN0jT@-1C z_R#OCgVwjJPCawduPvBavU+bvC>5H?F^@1iVn3RG=DHf!W)H@!kup$**S@Q=3HRF^ z`m{xG^4x`eMpyr%Z&LO0d*oeN=bP7@IuF<2mq_sm&w%5^HXF8HY}dHXx@Yv%S%8E^ z9W7yy(CAm#?@)$jlN{N;g^-L$$qWFJodi3(Jy%MgD)*a*e(lE>o_z!%1_WT}w~-b- zlvu&G7@4%r<RF2g zwp^JLLlFm82ug^5^T^S=v72Qu>QC^SgH?}$>>faN76X72W}vg6jQ{u(P`JY@?7LQH zkPeSA5tu)&cwRI$+YX@B*9s_-ypwVQfSt$$KhatPJbn!W+(Ju#bv(glMGhKqDX=sy zyu}qZ&z1!1LYf8NG<)65R2kw#26XpwC zv>{B+ru-4_t7qvmj_Yw{{X3n77snkT8&R~VL?bb|#SnsQ*|o~dhstN5!rN2xBl%H0XE-7Q?|B{|W*+{gX3&@Vrb z7p5OoZ>&V!^U%QznAW1xt`?hk#dci_jEZg1_aZ;#olL*I;|}fLnsujI_YkqarYC7O_^C>1c2EzL;1wi&5;bIjeW20#BWJ!LiQ%rV84i6~YT}a~l@X z@K`E8t|5@Av?Sg0_YIovrSwiO9Eg%?xa$Y_B1T3sv>W0BPG9*ekPbJ7h>Ecvwv~Yo zna!c#jC{3)+1E}~0XT>G=UX!7XU@|%2h~=eoU0K7On*H_vQLt}BuMt^(69ZBUK7~Z zq(4MZ-cq;U%8k>)V${}V;U`=-$EntZWl+YiUHNjM@iua3=*ScZs{2&CsFwNC2~HXT z9=R5xz{c0Swa!9M_EmmoL+>*(x*Hf8VttaZMqFWmAA`i##n=i$m=z<1bH013RKOe6 z$t_zM#67;fJg+cXl~okHw7Ys;aR@pFLAGM{SDFcJ8&SGh!{rm)V|($CKWkZ zn3SQ)m8we1NlqR8cGz4@NAs*TYsRcT^Y*B01d81DQOkVJ+IoC|cE_qe5Hnj%U#lE+ z3?(E2xR0qUt%nWZ4*>A*)e3=5vK1d@PHA5G!CfKj59J217`Ewo`uY4t#52@y)LptO zYs@jCY}RNW%aB*4B)(5|G+7z#6xMQO+sT$>IBb8s)GX`U?F}mmZX|gQ_8Yfj^8**SHfmNLy zH8zu-V0fJoX@c$(2-xEvWklT@X#Z$r)Tc*EmOk0gtqHw|qlnXnZkj6bt)%qzr@dK4 zzDD3d4hRn?&e2BZ*kTBg|0Kr-o@+(&naz;{Tye(EnE1c5>U~LoB z2kLqJLxl+-6ZbIqg(@Sur3)dg@;r64o;SPNH)v zU)|ja0!klw+9uFd=f~wQl&jfFHI2HIrj z@zOo?UT_;N=5nQX=yf4Biw!bIecM5-8h5Gs=g+xyB=KH}WJdmS)kZ`G*5(<|GM!!u z69Ar1Lq>S^7D@ObMLy1B0&W83FMBK^@_HXrr@N_HGLC$`W1h_u`FgrDXG%+a)m1YZ z56cnjNO8SOUJMPI0;-txF$m<5y=<&iny}Yj7IU_-81k*=%_Vkq7-{`*UM?}=F?BT- zcKAG9;0wfhipQ>TNATHWS+zxuCG~2nUsCwOliLL4cYkIeL7{W4nkF3+tK-N~xm8;k z60}V3Km8h#!+)`7-X%Y@i_HxJn}ldpteEaj4d`JhfAjA{n#1HBVin0H+Afu+&BF3z zQWS1`Usd){{Hk9ye^+o-?Ubg#ez>10+WN}Ca%KN2n=}1>B>Q+cUAUBbBvhv`D$eGQ)J%INhz;Hk-32xd}5O0=mn!Hlb^mTJcUw=u3*Y!0?Rhaz@$6TJfnZq zx1doWpq)&@4v-mIq9>FM+%19OpoMfyxvbbxjvI}U_E>fx_e*>_ae;7okFi9WLwHLn z@q`0ADkv3wBS_p~MurO=$l(pW4QcY$tmUZn$=ZDME97rECCmNBZ)%^t^{z#^LpoS4 zL#`V}q&v2rQ7i66g;-^UlZVOg0hL zF8b5*FaexP&EiN{lmb&(ZOD{f}laC$%KT3-%^j<0y$oq#E9fS&A67vSY64@&p z`=yjqfBo<xPQ4(Yp?P6*s<=!Xtia3vB;-sK%ulZ+p@@^r9*n3vv=?PL%y*COmzG3_mtSxPg>3@sbJH zcfw5Q2J&wHqM7y6O*nV|t=+3X*&5V2js2s?i&C7yBkHJY~IPLtQfAvKI_%sqT0R zK>~jJI9ZP8W?V3-=KZR2qKEc7OM~5$wTn9Btt0A=*$XpuvOeuFGzMy*Nae`I=-Xf7 zBGkCL)_1&tiaA|2XD1)LhXL9C6o;<7PYejL1%v@w;S|6P7l0&1xEp5jPp1*4`AlG} zRpC1Dbyr=C3L7UzMOs7ma#)2~o>`)|d3d%= zgETVkt-qTCxYLlv#8$pW6svKn9N2nVO@lXyiJI~hw+PQ;z<8NrWTw3am(n|U;iKQe zj;aOulZD!>In~Ww-0ZCOLRvC}_jp}8!fu&Y%UlbJAbB`uY5dso`N&mhsPdg7Epot$ zwW0gcsY57+CkQs<>Kdv8NTf#U7Unfuo2am(GzUZEhe3~b;+~-K6w6b9zZ?fYNv7O< zeUv+t*-0ZdZv0Fh#0yePKsp*1@iw%a9W5Do(ko34FW$ln<8c(|p$3$n9V&28MV5GQ z3@AJK#jfsV0PkJam*k%`Q&OqowzgA}ggFt$eCN(>fS1ZMSWfH)DA(^U07bN`Ev_O- zc5%6w9W9c6T6bG5;T6hoFJyF%<_7?)a1UlsQ{Y4w!8-Y$&%=Jouu^+Q znEOruh0)hBAga*DiQv)d!3+TjU4H6hq+-^NP?CNYR`S?Z_AZ2uXiov~p;`6L&!08= z^=BE+5wq|Q+o~M~ZBEMO8?b?hhyhtvxZ6!wWnSQ0I-AXRRDOmc!e4UO+gP?TZb*Ja`pfi$)nAdfVzcFcu6)?8CAqYpJZDq} znzy~*eQV1yd~lr?PyYzp#JjLO#Kz%NiI_unD0Aacx@%f_U6osVu$;QvqTP3Ro1?x2 z9!U|iBBfIAar>h~+(bfiGuTnD;7k#b4*jy5&vNbVlXQ)YxI~FcS0T6&5kq zqbTC_ztP2qkr{4X0if5(Onli5La4j}v)rg8BKN1Q?f9eRV+Wzn3sVvWu_}ckH&J+o z6~>}z*}J6It=P=sq9$ zW#rfTQ8(rk5~$V^)N(+Vn72P$`=g5+n>C-F&kS{Xi%$4*h3ZYDXUY{eSK1lcqRu22 z*5M6-LxBS`wzC7E4V@)q!t&Se93}USi#9 z$u_?*CoL;Jygn*+))}{|ZB2GkKn>z+AeE8N6wp1B#y5B03Jf9-=AQ;JqQxpyBMYhe z(428^tLHu?Mf6cIRWU9n6;F-}y>Pgc#qm-~swBB#Nys*~#M*wtVGgh3{uG)cY(W{{U@*d%|XtBOny{T=L$^^ivlp-PBB@=g%fH;u>(6j16ip&cBN>k*E z#4m+mLqt6&VC+YeGvrN~PO%F@ZfURPg8bzKh^qv6VceB~bJ{Pz6z%Uh!umr-*93@ZA6L4ka;rEv%Mm|)InUO>64!2B(CfhQu5S7YaA~L#S$yTqIC|D-WJy>s|Li9Fk0>QTG2(~< zj)=h1UQWmZfXX{b1I-Mrg7)pA4-+XxBCMuo^!tv7%48&U`^%AaVzqu ze?RdvIZ{|C2QEp(mj+C&Aof-KeswJejE=QT@==K_Oe|@mRD1cuuZ-wGQtJR0#Q*Byb{c5h>u26PkkBxX z{fV*n1MyDh*h#Uqz#|GXSw+Up&h}TMj=ukDocwAvmt3)Xnk4=k!b`eaHncS$G_=JN zt26%zXCLel-*_1Q7fy!z@`gHhF@_=C<>6mFV)`OpuSTowFpUw}(6P}L`yhx{d8BNF z8yh8R8shvCcuNVmrA|zlqSVX(U_-1qh{V_zW^BMQtgoMvlCX$T(mwwt3X#Jbjg0*% zb7ihjN6VY@Q3OrLde>Lu?lAmX^5huf$We)0i7 z(dNV~4)R`bA_VXOBQl+u7uEY^<0yo~`dU)?DKcldcxLQ^i_Y!q=%01Ui~EMf$XyM% z`f454x1BqAk<-0lx&Vb7k@Y$GygEXnxDm__*>dX(@~LSMCM*#)MGH+CZ?!0JJ@v5} zXJk%yeaf5wixk-wq_$#etgq`fryzcw+2b* zN52ADJVl&ofl5junUJQwM9Y{m3~hIO_r92(m%m)scA=ClDx@X4c-wD(Pv_>&TkIle zqW$Kwge&4>1J!}^RDFqNRq^Y@Kk7f`{+&P{tdG5Ruz(E zihuv<-gj<7s2>|8CZg*3j}qB7akj(pksKe5bLPQZP>7Aqvyu@@^O7AK8Ii*wxjQM3 zdIb~o3&hoadqR;vUAD`qM4xnVe=082uTQ-KiUImj2wM|l=-KN$`VdcO<Z}&q%DWK%J3_N!CR#P42;=udX^a4t;=ug+G60?;c%tVabc#_x)(~QhuvzHpfaL zE|<|{O%aA4sYpm;)-^A9nvM?Dfaw}OMlbr0%+IUg{4B%XZS#>A*66m_}t%$1zz{q`alBrt)VR7 zDYw|bmnsptXmTv5Wdf3WVm)b}od-?d=||?iLjf9e33AYa;J^enFud1Ov9i@0Qs{fS z^DgpBV6MEPCq0ms$n^bdD9~4q3>keT_%c<1Lu%M3`IR7ESC`G;oeJTYAi23r&EDfC%!8n`pEp~tTXXyhPr+6Ch7sLXUBr1Car|fgoA5{6 z?`x|)CG%?VXY}izn~R9iV)0t(19X4m-y+x&Of}4;xJNGBckselQyN;$0I?G)KFHrw zga)cMoVrKs-lvD#^z5)axBlI?y>_Cg0|s8;?L*(rAH&RrJ>_2~Vum5(oC#RAG-eGG z0nZtZ7y}wz%%T>2^-Umu^lTqz^O4}vsuUL5+Y-|)wkO{#N8ySHxj1|$clpchb$H%! zp2nA_LxihiFmx0mx1W-?4IwV~!95~zmE)y}TlvdyZ71v|{A8PPMa$TSD@ZqeL2^7^ zLAo7NG?Dsu*cy(YJEaZJSGxm>U&2MU2=*8l)EIxH_TvWT{GrGDMd+~cAzCJ+c)|{* zojW#GDuX`t7W3PU%;}W#Sj-dV%x0mf68j|5OW6~kW94sQ``PfVj7LEuY;J|bE2&%J z@`Jxv8aRQS*&v5G__$zw%i>N0T1*ZMYB{Ej;G%50G5Nx7{6|E?Fr<;|4yyE*j+ zmx)sI8g59l`1QZGbe@mmR|ug$^?iqhKbj{t`oHRsoO1G;SSj+3UTGs=cZUXqEX(;S zUN>qchV(cmnD@UB^oC(NJZIJWiP!3~SG1D8*Z z$g-i$pq_ejG(v?Pt&^AyC4as5x|{Rvy>o(EeScJ(!qc0*`c1p5yFj`|wwQk_(u;Sh zGzj?ibArVe%>G;wX<}cS2`sYt8WezgRvZ*!=A`{2_;kk$M4<%ZnQz{dCkc8P`X{Eh zvzTvOy_~R@;EJ3n+*wYK9cK%oQ(l+ysXQ;p2&$%ZKP&I0@hBBOBhCYbJ|ZEt#$`|Z z{uXzX-_pJ3c-VPKr`#NRBo=$g7$c$>`LuB?6y;lEBrT)_QAaDn5zi&(sZo`^+R~xT zK*nMEu>4DFtZ`ap1uox!$fi>x}pF3_Qm;8+P4c15J$ljRuN zO-$9^lovnaqU}OxgC6?zN#C)FT-FFpn%nJp^-R}$cjx~1B9I9WBJjH%*LB>Wi$+?j zbW_IVfXlX%(KePi#Jv_;xae5uxozj!@^?-bHQ>ECQR1Mawm@vAgb4ZaDOkJQ0IY@L z%ZGbC^vKNtIp24_0guLMY<2|kolIkq+%;xN^br9~X2^6PPtC<4+glU%n4{C7LT>j- zI{tHzX7-Pps$4HKt;NYen)F7hTVtf#+5TfCYB9$Ni$TBue#x* zKmoLM8C23FF zTVV`xf8K!<5|9DTn4)c;)1~1m%P<##CZ@9~!D7PtMFD~BR^D=BF{yI0TfSUZBp4iv z4^E>@V!nH4l7JvYZ<3s3X)8$plDN@vFX!N9WR%6BTt&`*yadDnE`(Xn^RA z$WMt)T|^ld;KmC8$rD4X2q>vP|F4d})WCcc0^QnSP2r5-pdOHPo!6lZ8NG7$EL^gC zUG92ZJz0q_HxJ*jVXh;;UKUA5D)J(7Z4Bh6MUK`YfW+3pOrhyyu~s2C2X>&0YeBSW za$2EwQFHUK+?-Gs8(I@YxI513Fli6uVSN^H)Krd~F&1~tZ}1~x#is@dGf~9SRBQW1~pS@rZr$gA4FD zM+v+q7NLt1bAP*~jwbh9a={-va5ng|MK$_9*fmYk0SkNOCm~X3 zyg03ptx|$sL(QUU!?B`Q5Rd~%xx5wpQ0_d?_w+C_e^b+mKx{`6zkbI>l~}0>Fp3aX zSK<2+fK@mdE*)j95)_tq=ssd99s1?^YWZXdQ%%{^YvB1i_Qh*LWa{IH@Oy&}Vp*xK zF#jkb`R@l_*O47KZNO*G>2^1m_h7$?Q@hcN_@ZQ3^I=oaEb2P zuY8E_#HbI6ez~7w#rvCL9__+7vQ=@(;&$p+RTTN2)z$ zLmsafY_;q!s_0CscCfQ2Oz&SEW@BF+?QlANZK|#KFfPT}@<9hX4o|u2D(0T=CL(83 znhD*){fjZXO=VU;TG^g3%t={ck_znNgkQ?;ZR_WOhJ*Dg3GYQ`Yj`UQpXn#2Yg^)J zdVwfCeiij4q8YRa?m`W?nPh*$8&qEX>QFC(_p=B2)?jUAxWv?9m%48G&>y49H`jwv zUrt}o=GY`vNPb4ZP4mCTj^*-JYfqaP$8ENKDW~42XS(DTIk)v+OSdH4DEe(liPUDeXYE(UVB!|(|z?%@F$x*MFe_Ty|)%1xRRv!F!*-eoDT8(FGm)L zEigE)m9-V z?Jb!T6{0~|I^!e`?ss8<6+09j9NvF>Y?!)3mhFqP8Unh1>_x%eIy~gLo03E9u8-7Q z9Eqc&5zH0L^Q0=sj!RBjyv5eNTxx-r{1%xI0OzSNEt+%?Q~EfM5RSi&Ze@)VSv#?X zgXW~&B5A(~#y%^tqHZ77BOV|cIv{~&faeKsHEZ33%?iLz;*T3trz0`a9QTZ=xBm!a znTaHZ%p?^VBy{CpHv{h3Uv=y10FGMwN6^>o1=mnKu( z8pXv<%>+2uZ=OEqpAhIV04Y`qOS<$#qkthV)l!{)exDcF(D}9~a5M{^`sq!TRLz4fj+pBqm8;0(`1P0oBA|k#g$N`ic!Lz?eDxkbWI@F_ zF*%5u0sg(QWwZ~%QBTBM4und_zm{4%=QI8C?VbXi2f&?l2B`3csSO?6gd~~Dg}Oye zx0O?zfiU^;NaMw2${#RWZoVy)BJ(T<<4@ZSRX8F(%QAJtkj0kaxW{cuUrh8(gzIHH zG5EHh`iqG6Rfz<@GRiaT8!j&DyFK6??NwE>hR5fSTBM^iP(=)``_z}{Co$fw2Yn%jqpC5#g?NV_<)_aeqqmzVV!AR$kB*M)Ptkp z2st}|JY&@>8`4>C9N4OQPdBlKF;Un93aRU2>HbS4C$tfXTf0d|ar>D;_K(kz}>-ryQg-;GRVs*pe)tea)+MAXML6xuhkUk;n&J7;N5zYuZ&vGg$ z{G3>$#MBx3Xq?1|u>OIVhz$4Bf{Mt+Zx+2lrXzKC=v7$8qcfj>oknzN#vqS+Llb1l zf5&%3-zvn(%1+F^j4aMcva(X39G`IvVyQh;8q|G^77&Y96+jIF9=tdY+TVjQQE1tU zlzFadPfr5+(TAc?K|V^KyqY=2gOqoM!3o%2eztbcWY!}!?0~n^0Gg8NJ9o)kYvZhG(wN*Ao=1FEMmUcgkm+d;#H|aEkO4Xj!iP{a z0YVf4LO9zLRV#IIiyjup^uYTS+VxBz>N>kF^Z54V##n-*0*(Tr2RSD((aMX}1`zT9 zm$IC;{lEx!8So*rJ`L80N3Oa4erLL?d3IGVjhhW<16=VNPl9KqkZydDirST9f=f6W zHQq+aKoj%2p8W|&z?;}T%qiU<@}nDW7A`icNaA#e+6*S?()NO}v~!=SJ9Mcawqfit zpq|pGRwHN$2fC;$pmYbs4~{IHW=P2k$6$#|;@yJo@fr4OVLwfU!=%uw)3_Nw-4DCb z3Kxo~tbGMB8h{GCE{NWRRw)9}BA#d`(CI(u>JNO!7DBwP`Bo?XL6AVE&*QL?Kb++k zA0rh%LnsoFMnB&D95RgJ5Jd)&|L5(n%hulLoPeABXkLpC-CT-%?Oj?KH>Zp=Y(hhZx$ zn2sny#nn6#eVP|b2Q{?%&^>gFR(3QT+q40MFU7!A1Zytw~b`f>$agX z3B@961gXg;Y<6GVA5t6sdTJvloN?^zbxH8+RedktIsEirh|uwRX7N*O4$CNWto46U z>c^0AEa?zYu%F_eD24A#YuI@1;&mRE$lwQdVa9G_1X_p-j#&0)Zyl?601jmmaI%*U6+ zLnLHPWtEYBx@!4Fc#4^|UqtIGmm)~X;RK?TnmM%;Ys_*!zwr(GWmLSa`#tJFZWa-6 zuU;*g@nv6nmT<&B_ZVwANF>NrXv-y|Xo9mrMB}Ve@M=&u)@^5|5pN89z-A z&a*T+E{|Uc3Kyf1nijw1GE$BKoq$1yvOtQtj&Vu?m#Q4;MNpIw7f=^0g^Y(FontxV4Pa ziU)^X7PV6i`vnBd|CI@E`G8!5g6RbFqXSrZZ#bdZ)ZpFnw(Wc22DpLA$!q+-mmXYP6Wa`DzACu3ds0NVM?0OiOO0)&Te zQC1p`*0I5L7gPG%S+xI!ENx!494xFx1-@P*uSp!#e;(wU2isQGKyI@}SnD!86|ldS z>~4{BNTo$5A&B(|zTZTThp$AaL*2EGX zRzE^Scn-4fBFZ_@+*Z0p(6{fUL(a$X7Ru5@fIK!o?=&aNDQ~xhK`Wwa7( zcfaRZd?Kr@J16@CNlMK@sV63BJk?5Bb3W&3Rd6;)o+kkwgSi@0lqgSTvIO(Q>a&lG z0#KTD7-|4vSecl3nib`798uAnH@u8XuN`a|&HlhdKFHO)cg=Uo`7%)Y&!5-eeXbQa z@myqM0&^ftt#MJ#+vrCGNN#s%7l;0d(DOf=H{ehl#bJIYKrr?{E)@xQq$T^EuqD(7 zu|%>&T;}uS=)#@iYAG_D5sHZ2q-cUpcn5!kyHg~y337^b)@Vc7UUle)|BcB@L4Ktf z?_5p#bUNZFh7LTJ7XBdOG%WeiMKMBm7gJX(_0LK<9A|w#{QfJB%3xio*y!}yXQVMQ z9n6E0fB`HSc-jB~UpQt<_m2vcdMHpnE&h<&eiz^nX!+#xa(dJ+x%!5(_vAd3(q5%j zCu73=!*5V3=goVHwa@qP0uFn}bA~~Y8Axq7OE1XrvqXh9Yy2lMf9#(aGyab_ySjf% zE2INM*0{98W6#z)=6WjBSIKS^4YS&+!3z6Mq&LhZJx zLWhx0^!zLq8H~OG{)=aa2&z9uSO_82B~7mQ!w}H69xo{|aQwcSYlWnZ@zW}C@=Z7F zexL2I=3UBAW9Gm;c^F#(*!o#(|goU2)|P*XOQMrEXEu8GIja2)Z{3T!4wUwIYIY~7WE{34 z^WVy{y+!zPl!Eq$7{3sKTct6!q_&B<(iP2hJr494r^mD zp`%UGwH$3%*CK9y_Wr7-B7qYz3vEMaUfn0Tc@RR?xjqzXE_8F)+x*ae+6u;cP6#U5 zzXXVvy3RRRL3?>rx@1SkX#K)8^ZM>JEe~)tgnj*ejUE@nFKh%rlfqo86IHRfcrI#Ctn6*k}dkN)}Sa&R$`csi<>&-2!r*y*5lO&I^wh3x;1^kpo^ovlC8x3$evGa67^QiBfA7P9sK@ca)_5?)tvc{(coIH% zTSX&R6o~*65ige6=>#m7kf9_aIg zitEsUw^~*-;&*+~knOmj#)IG(SvbcVeuOOwvR}SJZ6{lj|L~ka0LD51y?MH)QWr^C;AgmRnVr2 zTLVIrK}ZS3)$7%M%vps4IAgym@^)e7FMEO?;Bpsov;nyXZV^VyyVKb79*i7 z+E_c5Tb5>%&|u%mP09_1B3bEly6q2y5w_O5#A`lecfhpo>buRG&W~VYEH(q%{Q5;Lrzfzdenm zQOi~TlRoU36Y%I!PN%!JDQ7r=ir}Ne2vwwfWYSaNsslwXHXKvzW=c3>eWg&7p$%BN z5^{%&3;@!p&lJ85z@JcaK#CqlBYB9@D!1?#NUH{=+#^NxH`{%=RC(V7crCV3uoA} zHfD`wGpC@Jm4KEUZS!N-f4paTU|%gY%M^QhPvm|?5Qu+^m#4voY26>L?O~(Eg7ach zyVllaGxhh7BC-mg0sN`>!7SNB7WcDLS4aRIu2rTStCfS7I2Sz2*wK~1 zcP7LsHe&HdFiwOm%MeBk($Uvm|LRFa2XV<3n&xfw_iec34Sy6j@*>!-TeO4!y^q!N zfVD995c*4mH4dFKlD*J&B$U7$%Fh&aVLLw}W#F#L@+M*ZFFBkmROV#I$8i*x*qo(B z(aPwb0JpUg4EU{MMku-5%ay)9zDKl$;hvZ;P_w-mdm)^m{4R}0)6i9GR(+kL{M)+( z&wrNLYS?=r?F+s(860L#^()XLrOl(Gp`4yw8nd4!vBd<8eFs-{?EdPkj0uYW-h%ss zM*Bl=bgx2C8zJh81>fJd#IaS`^S}i!1QPYS#(MouZL^W*^D3d-8@_G;a0iERpym zmmZ;H!^sOkcDJ2hSOvNJ)=@3`!Z-Icf&(mL53k&01PL6(#V}=?eVb}Wy8$mEh%UmE z?nuC=j+s$(K{9S(1}Ne;fS1cq?IJv^D{#s(tFb8bu_!djeA4&_DOAz*YeOz!_3*zl%UZzjO&a-w!=tX_pJCcFZRePn*V(l z0Pvx#%z$q+6XL9=o*ZS1EsdQbWdr7}77MT$itTFWbWyOw;t(YKN%s-_f2EyuUsPY; zg$HKnlJ1h0?shz0%!RiP2}~G zQBAnT<%5BfKVeAg9gIkiyKRYBjhKIB7ddr_MqGIj-5ETNceR_Lz_`gBl=01d;^|&b zCK7Crl;`|`tUb02pVm9Bv4h#5g>%?`FO5hilsM-TNKxV}zu2Ln2u5w#))1bS!)!D~ zkMPdAQbDURPAE769yWGDAsz?!)4ad2IQxE7J?|`EsB%q343TMsiu9t{-@dZP_cotB zn)C?-pSWk?_=WvcdsQKvp~789g#j3oNItV45tN}RkO~6gSa^sF6)3u5_z)gt`Z_yo z{0EQtd$Piq3fkjJeFz^XawaP6`;$sW2ZMhxn)i)s$SadC4CploL>eO3G9vVP*iGEL zElZuOGzN-30-BGyC9dw=OKeb*Z2$Sg3eM=8q9+X;HN4FW{XXf7#qP9dLHVBIR-1e3 zFtTVAn$kM)G$M>9F|)J>EdF@1w&S+3X|TS`hUl%7$d7_ehflphZJ3jfSFPNCD*?VI zoN!ZKGkxm4o8ATJou ztgVWx#Nht~uv&9MJBH+i#;$WijI(>LTo%jB|LQ_8qS zb|ZDX-l1s>aK02tktL+QytJOBuQ_ePVSwX@e!Zn;$+Ui^eX(D!2UuTZONziq1RyY5 z75fx3x}Dp-VxyG|w`AW7b0y>g_kyQLbb&9x1ffDidb;o~J3uU$I{Sti`6`pW7v}q} zYaS$XRKyS-$Ps!SMpkG&n$RcuF(Et`5K%keEk9WTsTDzfK2GK+WTJp5ms(D6L$g^ z*n;TUOIH~}fSnR31Uq_9gsl_|RzTIk1DSF}c36e7%~RHRb<%v0YU7h_^tmn*!GQS@NM@N=0n!Qr|OGM}J@#`eXZ%kq;hB*D$xoUGTGyQ9pE zcl&E=ru@`CVHHaXd&VyLRM@nA+;%#NZn)mrDmrUE)(!BE>Aq%b3?j)8^auUBy@`?1 z5>6XYlNfWk@Ypi)(Mk4Gb?Xp~0zLEHJe%_H8eNX$;~xWSacS9-<^rCdDKDZ75iv1e zvSmI25LoFkmy;w`-Lw7af+v3)(4ZRwf~pjObeY z+d-|19l!nB*Hzg8-twdmjZUE-0)QJUEHS%y(Kw7izUXTqp(@B{E#h9=CTpR(862}$ zGa0VgKewe(dx96&`aQ`uk3zBi&HULI$%qqO@Axlmp6S`*pp@XGIt(g|iEB8KXCc)e z^THMFmzFED7b0pXHLn-8Zh960ooN@cy+)P=hA$|izCN6Tc2jligkn266!vp45bGa+ zgJME4q=&2_Wg_?UW`2dT{K@Z+^H2jA&m`4&5c=Z~;Lj`a(p0dz9sIB^MYJpsB^-#{&6Jp8AVH zhAi(yqJ>QMxkG_Hv`}Wiq{f%iTCP1Gu}}6Q4!Gjj0Rz1tZ_z&Fdn7jUnS4B7XQXq* zr%cIt*8JO4WCp)?Z!_wXDbMJni2NOzmLg!G4-iWzN?NYC%p1But@yjHlY0M?C*``5Vxl> zTrVBxqelIms+j%#n{itHhQoO{qppgKhpZrl*?hpguva{Fy;ZXA(*EuaT9bjdSD(TE z3+bJrsvy#@D^_C6>f_y$U4i8UBYiWFnjl^B{nJYto!T8w_%NLc9&!W}2oOuP+My+m zBZj~|-$DYdLgN#9;%#!OsTPz0_+r^#a~@<|vz+yNM-9#1?keIx6l5n}Pk_(0K8Bp7 z6-D%7ppbg0we*N@j4p&Yen^#p z^ZuQPniznrFGc*h=5OMJPwcoO{>LAl2X0x3n1_e)9rT?Z?AGckwXV9I{5VuazKh+F z%^#0^N*$F0@8Ct|s7n9}WmTsZ?NSWH!ox_~;E3D@T{?Dy$KpTVxYuq!sBh8zcm!~L zO;SB~-COJF_6@$Mh{_&fwn`^&4e)U(g%*vbVA!j1tn#vVGsr8Z@D0iAo*q`h(+V7n zRLTpEF7d=1pR^;a&r?LNe292<+F}lV2Z7R(@{`Nq!y=$2LfEU4GPsh4YtSLv8AfI(^^?H7)9hMLo?urz>M`WCMvRJA`j@z1p!}M2EGogT6w1R0CWP!lgBh*HYI7bnJD!p zqMo|UnWBN;;mt(hUQi4iImwO_c17_O+!Rh+ing6giR=9t={e@+YzzW3BKKqzYl@>| zB(S<-phfJ%#8KagDmMmNOoY^e3|3<&lR#FQQBJjgh}_3tVNl1M~y!*l-9z;NNdd4tUkc*zmz5? zWsI|b=T`ZLDJ#-!3}?`2SvevGp-B%#yzZ|5*ydsoP&tAax)vg(JC%Ba``}HnP9fxp zy4vYNP55RLQ0hcYvckY&$%Is%&N3%>ZokSJQ~fNg^Uj+)Y=~1%Iu+pS4Dpp zp2`R>+Jqs4Op8~rROKZIRaP?HRpAKBh*=<_MkR4bL>oIAC>%Y=zL^(x`Vqi3|BH}> zVSRLR)V#4NeZs~vfPDS{_wn%Y}cQF;) zYIXb~#?!k`8@8epqKn}m?5#%?c>Tg{j6kPi=b$cvG{m8u9i1bI(u-(TmFulF^ToQ4 zJ|qo4<8RRZ;F-_Lx8<}t7W_1)t&E4n#bB9zar?3sDciqtd=xIcR>_XxlC7YkSmGD# zvh_@_u&&L1tPwS4luv&`17;HP-Xpn5$DvW;Hg>HansyR`DQiw1<@FoS6Udlub}|!t z7x*X_G&B0U-Q!9v$|Tjh!lpCbKGP~lw|juSfUso8DXvEE+KwpVIxy2Sbl9-xnKh5Zm@_^tES_d``3HJ&BZD{@RA=WBh1J+(E2R9TUrzqrfQRqs z;>vh$3H>=P?#ioS`!)YE(1l zgE^c-KsE%gY!I&2-X@K=PcCsP7y^O?7jtBP6S1IS6GJo7xhmdzIXiXw#`d!+SVs4F zW2528K+<2WS9f(s3$(rNWy{66*Q1P>6}Y+j2S)O*9e#4`wqv#z=Fvw^gDRM@Gd)Ka$70n+@3R8-u6Kc(y+AHpX?7!W~x)HJT9*)uk*Cd;(YC zh@;(d6*u1?z0($`Z0&2S7&Rf-V$u*IwcY7jku)|@Q|RDmNC5-eFK#oYyZt=(=*;*2 ztGX@*2qM32xMUPren}+Wbx}wEu@;*WX^+i?U-H!nk10ElwZaX&%H?M-Kz53EAT^39 zk-@mN-MSyDPML6&3LgT;qHFKDj_9e09_HIG#0e=d?lX|?*M#l1Mz6lwe;J+l=MRri zoXeaCn|l`$bUo9bQv=>fOF<(@qEt^iR8QR>b6kuCyQRh2dg5Y`_IK@7l(93B>7l00%i0Z95Ex?}!#A2#x`B7gA=2()ErZ7`KH^ft z!G!TOPoJFVp7LXkSLkO9xpReO8sFfK-|o*u4?}Pxk0;}a&c$1=U$Zx|#cDkq$p4~d zc3?ZC(H6segOkDW-XfDa(oGaL(rSMaDte)4M@RSsDGnmQ1Xm!;Tbp56YrD>HhM8md~}emsrCd`~UJ>Jd|{|-h{XgI+cBTy7nLo^xN;1OUv{8 zr-IMJPlFF%;C#1#E@Ef?C_%}L#FvO1#dJ1(!zTQcNLW=Qe6UQJwU?V;+fcf_%>6!U z4zG98c|2_v>)cKjV?NgqIZ?yE#EgKy29Dwz-^PS}h<7x?Y-vbq6%}SZJXU04fuTU~ z$9h|x)K*HvOWJ)h>iO$S#4aT!Bs0w)#?7i1QG0_QY6gURjMiC_caWEWx~amKkkP?d9FxHk3+KSAC(bN6+f(Gd zufQR`@X7AR0|6|R(#FD7_w~(w%TF)3-ibv_ zZs}bN`ITg1wO*=_Kpv%LV=$R4)S5MZU{>W^m^8b$-enQq#ZLpm%wLh)<+w^lBl@R) zJsJ1&Sg}0FHkv+e0S&K%?{q&aa1v}(tC%|kqA)9n^p2`Sv1Yq`8SEl|u}SgXs^fH@ z@7}YHLALP?LDKHv$8C)s{ijAfs!1_vOOHVOJFDu_mSgB{1$V)^F&F~oX-TJIm93Ma z)uf_0I8ac9#rv(W`&1o!`v*9=@DTWSo#^z=b$;WDZz<+@U|1cUo-WvED_~Msi&L!J zwdwbPe`d<;fueg=)Z24+iZy==?-2lTN>@Thk^A8ljN-uR>TyCEPfgEm_}Pu=8NWJ8RpIohZWwh9%-UyQLz^!dMX z7c;1s?KgLy^837g3&&rO1+k&J*OjCfIaSdCT;afXaVL6l(zfP*eQJ;|)&OmjP@_q1 z;vz)~kxSOkhTTY>_mL{BkO5q~Nm1+PZ*r9VNl6uwLP%lL1VG`&xFdSHdM6HE+ep1J zaTpdXmNg4Ae`>UXMfeehO&&|)HZUu890PiX+pw9d3`m!4Xk66>rW|?PzCWtokyd4) zDGpQFfXI~T)_~n> zdC|&2$Fbg734$;zV%EMbi6Cma8=D0tbodDgqQqn=pn{jUPLM!XCL>BI-8b+bqLa~I z5#>^28MTGWo7_Aa0^qJ)(RQ7MQ#cneXPb6K_#{%tPZusP^ptOhh|ng`6hvfFRY2a6 z(P24e&H59_1KS71z-*1e;Z_X9v63R0V?a7;Cfvku2@(?#>&zT| z_9@wz_h;n!>QUZ<(?`)~c+(Ke105TJ%I^bb3ZBWOg*TRcf6Wc{12iV`H+pVtFS2u= zN9k_#>?X)?zo+!*BjD7*&RCgWd-JcYvkjYc(qJRm5ApNaiXw84Zsuh|^d!~T`t^IM zk+r&+@w)@R`YC+6p0gtL@fcRzYw}aal#HV8+(LT%!W6##q5(l9{jQJ$tr*YeFRV{# z=4iPdv{#@)F%G2?Pl?O(3=S)gGn;zsBkL%R1BAfz|av8S5s zL5Ad(4SR!Y1qXg=O{Ib>M@5GPgc|~J4f=GrjIfOg)Q3F371Ln4UfelOdGeT>7yz}_ zXwvF?kznNgjQf>ljhUZz>ykC*(SX+K$zths;Wo7)wl#`VlO6>`4&S%Cr{F1{Nk&G7 z`UW=A<_6wF_~X>!o@?yI>ZU-Bq*t$;gfRDcW9e1CeN zTtFq_9|#u{>^s{$uf_+o0_47a_rv;YF&LfBa&9W}m?| zjnefluQfnHNlYSG*sWSY1iM+)yUJ0=y1J{A2o zz(2KAFN3pxGkd>HMguM3>ixB+Orw%}wO$$?3*7$)b zh>V`S!vo4FaPC)PJ-WbjF))%+qY}!O^+zT>7W>?BxzhDh$l;#j3s~*DxT$%V9th%P z-dZc}9#1B3;K-n?=s>KE12c_%C3X?}NHwzyuv91< z#qO^w=8eb{(d7b9YJ$QZ7CrpbI{pNdZfnbEO2v?l67=eSnR9n0Z3M(h?%B>MuY?Rl7^A-O;k-TbuBt;7=2lSh+DUKuX7{;_)xahyyh7z0n<2A0tcPw( zR08=)%a)D(H*1<;=gL^~aKr95SZpN1W(n^+1$NIWOZf?w#9{ghc|#+h^lz25FQvqa zK~%aZe7IA0(z>=s)}G})KQ4BW3;zAXgMvUl(*BgdeJk;8_dX*fH=*B{6R>mE4RYtO zge68R%F2}Xz7-r8OpT%!@qGooEK(HJx)_E(UnsQoycNYL?J%Dii#@wSSU5u2I$pIZ ztmc!1rbotHqz9o3%kzzNR&oo!th)HqxRg1!|VR!oVQf$Wh3!WP# z{&+B=i)D*ChoYWy>i1U(mai0Q^`L=o4Ek(>~;rF-+!*y*&pwpV0;_oB{M%$U&g z5_nrt5=!BCT?McOb15Dhq$0o~oU&KfIT%2kEtq~c24LnyY|k*2ru*F>+)xmdaY0xwjT@Z{XHy^fcaX*81=GQz^f6~hCvg!pq{7&-rA2>Lkl~~Q zPekmpeolInhhnPrv=cX!WhV|_E!3K9;`y6|N@Iwn)xz)J0owCeYqG{F#~dul4V(C$ zRTa7;Obdra!`p-bd*3!%vd^qI;-x9+D2MCtNR9TZTu9B36iE{FZAH4*i8>(kuMGb2 zxaeYKkuDJqk|dJoxpu8+9e=&i{p}_Cw^~?+SWk3&cTaap-vBzff!`z`C(>bxDq<1b z5)?)cVt)Zk_>gypS`9)`O`As9FSDz&EgE{yLp=zG)ad{`JUnL>t*PYz4Sh#+l!H7r*N~W2k zs2i=++IUP4m#XQx4r0>1w|yBq#o4w znlct)`rRDosaW2Myc>~=r6Y&Rax2;rPp&OG+R39^KvH#d4L70C{l3z`ux?n=xR)p4 zJ9mmNhlt3co6%?*C3dk0Y!DTOzNdtTCg6k(anXmjaUJ|fSIRr>sKY|G0eHCoNzAQ? zAc90GP^G_q^tkmO?lS?lP8#!dlb5fG3zO|Z%w(VwaGaT7xVxu$kd10QT|2)mLUx;H zbkAk<W0k^JC1Blt_?*^J;Wo+0tg~i zu1M*++XUi$aAXCva+(0(g_nFD+^ezlOO#>jnyMj$Udyc-@wf6D_trV zuK(qN=hR9|CgXVM@FqY;G7g=z( zVsF?sup;JEjT{t`&3mKiEa17;QL$XV^U+<9G;8ycP=Nm_iOL>6Co7qeBdrvZA}PNp zsS!nDc{xAi-=Nd4p_az84t)-5$>QvvBz)rYC z-;JAS<{*0Ts4SjYj`d;if38V%vpx39?4B3bpY>5uos8!;8Q-56oti!W^O&T?@eTHI z>i$L2Mcs@$JI|$3be~D6F$Tl2s>B9U;6G$?`?p}Dgve25H50Z2iIfFU1Q&8`@EsLW z;BYOnnVjO=vEm5+dva%f5STA6C+rOp6_bVI_zI-*y}2xd;1iHv+5wlM_rz#8gwE{Z zE2f*^+zE9;v3o8up-fbKTYEQg#&kTD`4glDCz~9X*N_X%jghqOokYrc__7cgue5sH z*1n^OF~QtZ0Qv8Z0L9Ok)*ezzs19Z-Szi0ZM>)f*i7~N!yQuebDSYv8urD7>I^Kvw z(jx}#vGb^ZpTKddse4Mr2`t7?FwG53*4boRk9(Cwh~u8mxk9$4#oRPblaof|{TlJc z3Y54x3?5U`!I+$0Fu;uI9I&-_ytatujOwz(T>ypi7sn`6I*L;aJBteCmS4z^45(%p z?30yf-iVf&t^a6a!v)>o!t|X%9^xo+BJfxXpbf6|WovwMv0A1;08+DE8UHIqg?gj!-`JkX)PZpXX&5M&l${^0yI=XqPZ zTzhd~nWa$P=;CQli@%)(M4UHKTKmff zQRoDp@V| z?207%5IlCE?>?g{GefYwDRbC&T({3%k;>L@2=F2u)}0eBUk{b_%W8X|Mh(vfW%he4%Cv zRPApTbsI@X^&sTGF`g+w6bJJ!Iv{Neq3FwftOlACAZVTis~VYRA!a6L5X+L zEw8Drlkcbeq~?8v@A95EG+V7Ib{m9Lg{@Xt@4@mqV*W%aY%Z0<4ZF`8e~-V@N4SlO zU%nAlWNgr?L7M9Pb?Bl!2oG$P1JAB@u$YGIy!J6V?ta1o4oP?y8e;PO@KwWl%iws% z9#@E4)41W~L%Ho?p7gTKO{qEm9mB#$dZ#@zyxbHuQU8~#?th(y2f9sFe?@y%`QZIy z+^c%~)e$Ws%P%Au)zsBt_I5=2%bv4&dXnVy+X>M3Cf1Ep@P&mYYrOAf>omYAk* zod5X}XL$UC-@xgpENx9GHX7E3*Vjudqg1B0u zIdY0c=lIu>%#x49eHBz^XeV8~O?=BKZ9RsXu1^3B``Sj7f5NbtC?=bXTPU3e&V$jU zvHaavWVZK6G_P2mq9ReMgn!S$__X!2G>IYTP4Y9Sa2$k@ihrr|78S+%SHT8(%t1=|Q{~8JB2VWTgEe<(Uq`&ZfEfGj?5qY# zB!ajmPk>L=tN$B46Rw(4KLSKfA#W`b;UC5zEwf>`rLeAkQ+p7AZ z`V_Kw%j!AAFcTL_%BQc>;m-=42QaBLu8D;3mZHkE2yxicGsNonh{b$&*2w1sk7@lE zVLSQ4y+^58^xujYZqTxVWL>xpe7aIRjD_rhF!RM1`vC>UcO!hqcHiZrBO%&|BhHRb zD@nfBZL3*Zjx!qX(`SmcokM*X3h%%LlcRs)EBeg*tP`BHv=j>&wAfPbw~zMX%NWH?|w zDhm1R9}n&)O7QQ@Tg5h~_ZrfDmRbvr9&0ijbCJj7By5h@6X@ls8Q8+<;GT=36?eFl zT7jRR)V~{tY?Q;H6bEeak)xb6Fcmfm`Wa1NPARgP_B6O-b!y@Ls*tq`>P5A_G$nok z*g5?(>lqI}gc~lfJcQSbM;95^LA)6qO%Q-y(Y~kKC*x?9DG+ER`6Zq!XVh{jv&^8x zCs>S96IV`dzwWw+_zxi!Zg#*#1jHNw?$-xp1?qwxxeh5mVY6L*fH7hX;DzV4>mow6 zf8GRN2Oy}Fllef(H_2GDME)_D<7Cq7wyRE-A@SLO^>O|S%?g!#sCPrLR;q1`sOs`= ztjrdbu}#%rr@%~JjA_S@iSi%bdrAW>|B_jV<3o+ATy74emx1fE^1Z)uv&n-xTU{q z7n%5;p|$4`eK#t4Y)uQ+68^5STZ=!`1r|m}oh-v<+@(J===8sLmbXoC*2~uXVVekj z!V{Dzw6i;7ZUUBgI@DqrIAZHs^IrG3lr>pJou|CE{#aSR87E3PIn}Da_G9f==4m1I z8PL_&qllZLe+^T=rs0dlQ;ej>Z`;`hnt<&*Hm8B+`Eh{6lEs+8_P;XETX`~+8C(Ls zUyBMf9S^8Um01AEzm5L}ZWM9F;UnJT z3uMq>b-085wMyR>@orM7>CtLxPO+i%>MTC(&<-zy5vJuT zD=F7AKn4U_K^fz%fBjcaUXrOM*MZE1yh0-!^MS_KV*~~)fnniAB$Df8))@V6jiMq9{sqK z{u_0aM*X9jCYrUxMrD||U!@DRz3rc3v}yU}Wt_NXHn1XZXMMJf>R`byHiR=qjtvpH zsYKjyu28;gNQVmLvN%eM?)I$}o< z7C}+Ouzk(~c=y)%%3Fq<#%kK>GKk3rY(%ADpzbY*fcMvU?Mt6!i*2SJi#mVmLMI0T z9oJpE>nkl^uFGM0dMJSf!FbojTLlhR0`6g0lq>N@;()+j(0dvAL}wkKS;@~2F2Cg~ zOHzo#bA9JNVO4)luahWC^Q3do54&&rHt+C#;@$1tU^mK<_yd0NM#Re>M;};&V*_@U zB+gcRG7H{~gPvJd9Tox^lxVNInrYy_qLC_0(6K4@mM@E*_J&?>zJimJxO}jx0711E zQ$C&6ulL6M}H}?H)C5}iyr`M=(Jma zeNzyxs-lxW-|C>Kpvat8;$?r{7Hg3?U2f2LL<2Nro+zB`z2Md671!q+3hL6~;zV}_ zR6;@#3_VJfxnDzm2JI4!kOA=xN`#cp;aE@?1 z)cC0>|KN#We{uzIKg4n>e8a8xie}v>+9&&@6J{@8*O{^bVgP`|X0a&EABPr*4}o9S z$;+MPdz$2EX|vQBQgJJR?PXk6)U(*8)&$e*@;Ubf<)zPd0RgWZyJ}(+fmr h@0Y>=Er_x&P2r9Pm`mFJ|98IuG@t9K);xni{|6%}MY8|^ literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/generic015v2.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/generic015v2.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..b8684b2d337eec1da312b559efc2325c5d960c31 GIT binary patch literal 9199 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/generic028.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/generic028.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..0be52ce7bedde5a7ab9bd513258307c0f6528467 GIT binary patch literal 13539 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 MvbIuu&eN6Ecs^}%N_ya% ze}7AM#hrV8H|+W8j<_|~J{8!!OY6wbbYPuOUvc==$ydv#|37?S>5l2E-WNR3dUJtS zrX{d*)xHD!gCB^j{(P)~OGCgi&Cg}e_uA>d@8$D+>A0lxHKwKXkl(+ZsuibCM0?FS z%c~+#?X|@6dB^u}iyK{<wRLnp24NHLJ8A6wp>5_yCr<)w;y>{Mep*`Yjh3S{S~ue)+oQZ04GFZQg>JALSB{Dyg$CKDW4W zUb4E+jVr-{XBRg<5%KP{NZdNTEQ8^`V=S{m5RZb|w)zvrdFwEN`bXh&!E=3`B{`UyyIhCTCeHJMSwiCG;R~$+>HrZhFf3+pA?_E04 zBXLBf$8Jk|9>atCR`q!abEuMoqn?^<_EA>Est;pMkeKH Ogu&C*&t;ucLK6VOulT6| literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/geo.inc.c b/docs/lua/examples/lighting-engine-demo/levels/hl/geo.inc.c new file mode 100644 index 000000000..a9bd3f9a1 --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/hl/geo.inc.c @@ -0,0 +1 @@ +#include "levels/hl/area_1/geo.inc.c" diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/header.inc.h b/docs/lua/examples/lighting-engine-demo/levels/hl/header.inc.h new file mode 100644 index 000000000..e5bd2981d --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/hl/header.inc.h @@ -0,0 +1,271 @@ +extern const GeoLayout hl_area_1_geo[]; +extern const GeoLayout hl_area_1[]; +extern const Collision hl_area_1_collision[]; +extern const MacroObject hl_area_1_macro_objs[]; +extern u8 hl_dl_fifties_cmp3b_rgba16[]; +extern u8 hl_dl_ca1x_monside_rgba16[]; +extern u8 hl_dl_drkmtlt_bord11_rgba16[]; +extern u8 hl_dl_c2a4e_w1b_rgba16[]; +extern u8 hl_dl_c1a0_labw4_rgba16[]; +extern u8 hl_dl_drkmtl_scrn3_rgba16[]; +extern u8 hl_dl_c1a0_labw5_rgba16[]; +extern u8 hl_dl_drkmtlt_ceil01b_rgba16[]; +extern u8 hl_dl_c1a0_labglu_rgba16[]; +extern u8 hl_dl__0c2a4e_w1_rgba16[]; +extern u8 hl_dl_fifties_cmp3c_rgba16[]; +extern u8 hl_dl_c1a1_flr1_rgba16[]; +extern u8 hl_dl_lab1_b4_rgba16[]; +extern u8 hl_dl__spotyellow_rgba16[]; +extern u8 hl_dl_c1a0_labw7_rgba16[]; +extern u8 hl_dl_lab1_comp3e_rgba16[]; +extern u8 hl_dl_basetrim02_rgba16[]; +extern u8 hl_dl_out_dmplid_rgba16[]; +extern u8 hl_dl__a_lab1_sw1_rgba16[]; +extern u8 hl_dl_generic028_rgba16[]; +extern u8 hl_dl_c1a1_flr2c_rgba16[]; +extern u8 hl_dl_generic46_rgba16[]; +extern u8 hl_dl_c2a4x_c1_rgba16[]; +extern u8 hl_dl__0_generic85_rgba16[]; +extern u8 hl_dl_fifties_mon1b_rgba16[]; +extern u8 hl_dl__0_fifties_lgt2_rgba16[]; +extern u8 hl_dl_generic015v2_rgba16[]; +extern u8 hl_dl_drkmtl_scrn_rgba16[]; +extern u8 hl_dl_babtech_ceil01_rgba16[]; +extern u8 hl_dl__0_fifties_lgt3_rgba16[]; +extern u8 hl_dl_c1a0_wx_rgba16[]; +extern u8 hl_dl_black_rgba16[]; +extern u8 hl_dl__lab_crt8_rgba16[]; +extern u8 hl_dl_lab1_map2_rgba16[]; +extern u8 hl_dl_flatbed_bumper_rgba16[]; +extern u8 hl_dl_pfab_bks1b_rgba16[]; +extern u8 hl_dl_paper1_rgba16[]; +extern u8 hl_dl__spotblue_rgba16[]; +extern u8 hl_dl_stripes2_rgba16[]; +extern u8 hl_dl_pfab_bks1a_rgba16[]; +extern u8 hl_dl__lab1_cmp2_rgba16[]; +extern u8 hl_dl_lab1_flr10_rgba16[]; +extern u8 hl_dl_duct_vnt_rgba16[]; +extern u8 hl_dl_signc1a1_1_rgba16[]; +extern u8 hl_dl_c1a1sign2a_rgba16[]; +extern u8 hl_dl_lab1_map1_rgba16[]; +extern u8 hl_dl_c1a1sign2b_rgba16[]; +extern u8 hl_dl__gratestep2_rgba16[]; +extern u8 hl_dl__lab_crt2_rgba16[]; +extern u8 hl_dl_lab1_door2a_rgba16[]; +extern u8 hl_dl_c1a1dooredge_rgba16[]; +extern u8 hl_dl_lab1_gear3_rgba16[]; +extern u8 hl_dl_lab1_gear2_rgba16[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_0[259]; +extern Gfx hl_dl_map_mesh_layer_1_tri_0[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_1[67]; +extern Gfx hl_dl_map_mesh_layer_1_tri_1[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_2[335]; +extern Gfx hl_dl_map_mesh_layer_1_tri_2[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_3[379]; +extern Gfx hl_dl_map_mesh_layer_1_tri_3[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_4[129]; +extern Gfx hl_dl_map_mesh_layer_1_tri_4[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_5[24]; +extern Gfx hl_dl_map_mesh_layer_1_tri_5[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_6[83]; +extern Gfx hl_dl_map_mesh_layer_1_tri_6[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_7[90]; +extern Gfx hl_dl_map_mesh_layer_1_tri_7[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_8[113]; +extern Gfx hl_dl_map_mesh_layer_1_tri_8[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_9[111]; +extern Gfx hl_dl_map_mesh_layer_1_tri_9[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_10[195]; +extern Gfx hl_dl_map_mesh_layer_1_tri_10[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_11[60]; +extern Gfx hl_dl_map_mesh_layer_1_tri_11[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_12[262]; +extern Gfx hl_dl_map_mesh_layer_1_tri_12[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_13[24]; +extern Gfx hl_dl_map_mesh_layer_1_tri_13[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_14[84]; +extern Gfx hl_dl_map_mesh_layer_1_tri_14[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_15[9]; +extern Gfx hl_dl_map_mesh_layer_1_tri_15[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_16[32]; +extern Gfx hl_dl_map_mesh_layer_1_tri_16[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_17[12]; +extern Gfx hl_dl_map_mesh_layer_1_tri_17[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_18[20]; +extern Gfx hl_dl_map_mesh_layer_1_tri_18[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_19[124]; +extern Gfx hl_dl_map_mesh_layer_1_tri_19[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_20[172]; +extern Gfx hl_dl_map_mesh_layer_1_tri_20[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_21[20]; +extern Gfx hl_dl_map_mesh_layer_1_tri_21[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_22[4]; +extern Gfx hl_dl_map_mesh_layer_1_tri_22[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_23[13]; +extern Gfx hl_dl_map_mesh_layer_1_tri_23[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_24[14]; +extern Gfx hl_dl_map_mesh_layer_1_tri_24[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_25[16]; +extern Gfx hl_dl_map_mesh_layer_1_tri_25[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_26[22]; +extern Gfx hl_dl_map_mesh_layer_1_tri_26[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_27[16]; +extern Gfx hl_dl_map_mesh_layer_1_tri_27[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_28[52]; +extern Gfx hl_dl_map_mesh_layer_1_tri_28[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_29[13]; +extern Gfx hl_dl_map_mesh_layer_1_tri_29[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_30[29]; +extern Gfx hl_dl_map_mesh_layer_1_tri_30[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_31[8]; +extern Gfx hl_dl_map_mesh_layer_1_tri_31[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_32[12]; +extern Gfx hl_dl_map_mesh_layer_1_tri_32[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_33[7]; +extern Gfx hl_dl_map_mesh_layer_1_tri_33[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_34[4]; +extern Gfx hl_dl_map_mesh_layer_1_tri_34[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_35[16]; +extern Gfx hl_dl_map_mesh_layer_1_tri_35[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_36[8]; +extern Gfx hl_dl_map_mesh_layer_1_tri_36[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_37[8]; +extern Gfx hl_dl_map_mesh_layer_1_tri_37[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_38[14]; +extern Gfx hl_dl_map_mesh_layer_1_tri_38[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_39[8]; +extern Gfx hl_dl_map_mesh_layer_1_tri_39[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_40[4]; +extern Gfx hl_dl_map_mesh_layer_1_tri_40[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_41[11]; +extern Gfx hl_dl_map_mesh_layer_1_tri_41[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_42[4]; +extern Gfx hl_dl_map_mesh_layer_1_tri_42[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_43[4]; +extern Gfx hl_dl_map_mesh_layer_1_tri_43[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_44[8]; +extern Gfx hl_dl_map_mesh_layer_1_tri_44[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_45[7]; +extern Gfx hl_dl_map_mesh_layer_1_tri_45[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_46[8]; +extern Gfx hl_dl_map_mesh_layer_1_tri_46[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_47[72]; +extern Gfx hl_dl_map_mesh_layer_1_tri_47[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_48[4]; +extern Gfx hl_dl_map_mesh_layer_1_tri_48[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_49[22]; +extern Gfx hl_dl_map_mesh_layer_1_tri_49[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_50[52]; +extern Gfx hl_dl_map_mesh_layer_1_tri_50[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_51[112]; +extern Gfx hl_dl_map_mesh_layer_1_tri_51[]; +extern Vtx hl_dl_map_mesh_layer_1_vtx_52[158]; +extern Gfx hl_dl_map_mesh_layer_1_tri_52[]; +extern Gfx mat_hl_dl_HALFLIFE_FIFTIES_CMP3B_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_FIFTIES_CMP3B_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_CA1X_MONSIDE_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_CA1X_MONSIDE_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_DRKMTLT_BORD11_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_DRKMTLT_BORD11_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C2A4E_W1B_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C2A4E_W1B_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A0_LABW4_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABW4_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_DRKMTL_SCRN3_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_DRKMTL_SCRN3_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A0_LABW5_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABW5_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_DRKMTLT_CEIL01B_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_DRKMTLT_CEIL01B_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A0_LABGLU_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABGLU_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__0C2A4E_W1_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__0C2A4E_W1_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_FIFTIES_CMP3C_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_FIFTIES_CMP3C_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A1_FLR1_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A1_FLR1_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_B4_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_B4_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__SPOTYELLOW_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__SPOTYELLOW_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A0_LABW7_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABW7_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_COMP3E_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_COMP3E_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_BASETRIM02_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_BASETRIM02_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_OUT_DMPLID_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_OUT_DMPLID_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__A_LAB1_SW1_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__A_LAB1_SW1_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_GENERIC028_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_GENERIC028_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A1_FLR2C_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A1_FLR2C_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_GENERIC46_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_GENERIC46_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C2A4X_C1_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C2A4X_C1_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__0_GENERIC85_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__0_GENERIC85_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_FIFTIES_MON1B_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_FIFTIES_MON1B_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__0_FIFTIES_LGT2_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__0_FIFTIES_LGT2_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_GENERIC015V2_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_GENERIC015V2_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_DRKMTL_SCRN000_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_DRKMTL_SCRN000_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_BABTECH_CEIL01_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_BABTECH_CEIL01_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__0_FIFTIES_LGT3_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__0_FIFTIES_LGT3_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A0_WX_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A0_WX_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_BLACK_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_BLACK_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__LAB_CRT8000_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__LAB_CRT8000_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_MAP2_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_MAP2_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_FLATBED_BUMPER_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_FLATBED_BUMPER_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_PFAB_BKS1B_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_PFAB_BKS1B_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_PAPER1_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_PAPER1_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__SPOTBLUE_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__SPOTBLUE_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_STRIPES2_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_STRIPES2_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_PFAB_BKS1A_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_PFAB_BKS1A_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__LAB1_CMP2000_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__LAB1_CMP2000_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_FLR10_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_FLR10_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_DUCT_VNT_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_DUCT_VNT_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_SIGNC1A1_1_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_SIGNC1A1_1_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A1SIGN2A_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A1SIGN2A_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_MAP1_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_MAP1_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A1SIGN2B_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A1SIGN2B_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__GRATESTEP2_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__GRATESTEP2_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE__LAB_CRT2000_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE__LAB_CRT2000_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_DOOR2A_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_DOOR2A_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_C1A1DOOREDGE_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_C1A1DOOREDGE_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_GEAR3_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_GEAR3_f3d[]; +extern Gfx mat_hl_dl_HALFLIFE_LAB1_GEAR2_f3d[]; +extern Gfx mat_revert_hl_dl_HALFLIFE_LAB1_GEAR2_f3d[]; +extern Gfx hl_dl_map_mesh_layer_1[]; +extern Gfx hl_dl_material_revert_render_settings[]; diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_b4.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_b4.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..87f209485c3628b4e990263affa090321d6ce48f GIT binary patch literal 1950 zcmbtV`#Td18{QP#oO6gtEP7w3uu#Grn?We%C85G5jWE<_@| z$??lsc(Y*+qnzc?r|*aNANZc@x}W=gp8LA)U+*Lv^d%vF8GZl&AY^HQv^!+cLzsa1 z4!8K7t%rwn9_MU{x3&hT9%^X-5NZhk9O3-SJU|%$@1X-c1Q>YYU;R4<;Jx1d+k*t5 zP+`CC|IL_cUC*I_1Y2A`dMfC`4$hE(?1{i}l<3`rD|UEf2`nEh z+2_W#-UYl>>67X*7m&6|fzwLL%0(9jnEYn6K4yD2a3uwi*E^TTLyFiT>sckP(BTM?gXD!i zxA*Ci_;c}u<|gl#i$iGl+n@J6X3Fb|Ss4M1<<=D$=d8W<>nAr`mdhvV4qX3Q^*0uC z8cSQtPxVXP$sF|L7nI6T%EKJc)IYl_x3-(ultUMGM{U7zeCB+!w*BPFn1%h@)q!2- zq@~p933HQIrPiz)`RN51EY3RzN@aGI{s;Al&7Eo|RXyjD?Cmqn*ZM|ux_LUy8t!d( zaIUUqP>IsRkKA)db<6PDr26R2s+z@(g^DjaJF*yABRM>fi+|}HQ_o_xG?VX=XoYT7 zo{E>AIe6ztQMQLTu%nJ}GXk&x6GmhBzh=86jduqU#AH0o2(-tXGD-dP(`vOJ zog7V7C9nBDJ*Dn1J5xT+E_5sTla1eMtz0R01VgDW?S=l?PXwr%u#JhWup;D)n?M|z z?CfFUFCE_s{j{48R{50W@ippkMFFH36k<1C=cbc;UsPwQr7NlE&5LWv21k$E49$J9 zthIGfD%i%}gqDp*M(*kR_^dqzE8pnbW(27)V{_7l-*K{N*-kqbyKX*)QuNfmO~3iM zKJW3-YsLB9CG=g4xwnmaitbEHD216W?;Ti8MX2$X*2{eV8Zc{xOruI9@2gKQSN3K^ zT)qtsINh5G+j$PYwanUZtX=)mXdNY)DA9f*6p`k8y)e6N5rYlikdyK0K%+ZE1P!Gw zWFRTzoG9T_`YBY5p#SOA%99`sqwg}Y^M(rA_BW-hVOx8s;=jpSSlh{^;0v!Ia9)}? zq?Xz5%jXC9eNpPlw+=vP_n3)_HCGO3A3f-gj4pl zT0o*ME#vVS$Bk(VTndSKz>Ewyn~Gu?nP_dE4azplk$k8t-nUnh=%^YPaf`1kN-wb9A>g&UcCkGDO~AAX;iorQ2lYDZB)3@xnjjxcptEl+_#CT2B3C@) z?FxSuM+|q9A|M;bsBd?)qMqS4QR0T*etc%R3QP*Hu?RAI0_#I`NNwr_U1r$%k8?2? zNNTKM!8uUL$SlGc4%`hSGRC3Zce}BeM&w-dXnM!qGv)^&JA+~zNPB8J5E(8?DM4zy z2!&sleSe8QRoE9>ySO+A>h(>3Eaq2Oy1h2nOUh7LWqPJC7sG2E{xrB_k0Y2!ad9t* z81s1A(-5Z{MV{BtaLUtmVxE`6Keo|=aWM5|6j%XQkgG|l&?~!%0Go<-Mf~+MSje;O zw)RPV{gARYMCWW>*2Omtg9|%;XvRR!3@kZ*^rG@(pm2D_6>k65kA%)VzbAXyuLJn3 ze(cHdw(Ftz)sEPl9Kr&U09QD_qFD9t9{m+U`x2dFwUWEH8Q6vAQ;HiBHEXI3Sxau+ zFCI1|HV#hE8*B>tpK+4fh^-JTCAM|H<_qq0!L5<|nw(>4ZB1I4dR18rpt!WCB*SAm z4;&=D`k^TwUup!!eO~(oIpslh;zc9DjNr@pXz;zL8b7(cNzUrcNN1&HZ|K2nuU8l#8%WrKeYYZ5D2k&;7x@IslnJ*zPUVJSTtLg5`}W@~bJY z=iwOx)fxzMB16j#=IOuOoyWo@l8d?Tx$i?Y9Lja+g(H*v!$P>sBaU;Oqk4;pXR8g^f7T=ZEhq%;~}w!7c z;sB5P>r1{8Yzv1V{;#0Y`3E{sEo}le5=BoE>&N23S&mUMaM0w(mbwsrrG$JB;iFOV tHg#0tri95Gq71kq)lS50B*x*uHm*T#Vdb#b{{OlJSem1eugp9s{{@sBdaD2c literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_comp3e.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_comp3e.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..42d23c5769b27001c98b33894cac435b99e04557 GIT binary patch literal 2933 zcmbtW_ct4k7ZoE2u}f;js*<9p+G@rgwMUFnn^2=w)UH)q6ph_dt0=V^n_AVNMpK(g zQEKm*ug~Xv&-WkrzVq(8_uU`gIq#es|4?583}OWl5fOp4G}Vl*S?L;F6u|5GHZSz$ zHAy;IXgTZY5y7rC%^jM?6KTY01)FwtMK=MMEI`UV)ubp9eb#U&aMi^rdez1n zdcM!Y&>^L!a1?=2`kXtIMa6)eq$;>cybzGFc>DK2BQq-Mivgr&U(}{%yQj|mZKchO zM+NTi36Xo|9Ikq^_P$0;eQWN}I5eI;S_LUZ-Tn@vRMp5E2(My;XjDX^V_)g}Xy4SM zsdz>bd&VyTOq%$@y=ab{H_0Ng3F=&!UvQUwyh_Au6;OvVeJIQZYI^<7;L5a^U|A98 z6vq2Pe`3D+;o2u9uJ9-lxpSKinWU{xE@CHJqK%Teq_Ue_DgCAN)X$a?-;eD*S>wVK zlLt;Ic(&p8o_IQFff9aB0N70;YKMljh{r5N*pp%m-dTw>`5!Jr_2?JQ)q)=(v*-z3 z{c+S9a53FvYH-Dc%ra?O+!TUGDnV&=VT;#c|+=P3IZTHU9d*# zz3z?iu>pIzcu}4Hv>t&wM{Rebc<;Lf4o1z6PT&LY2ZEnU%SM8apFBTiO0PDY)9x8I zoH_eIbgTcXT3O-=i2iZM4)4Uw{71H|8H(sAhFi2{<(!?M?8JTq^d9SRGYJPgseokPL6h=2{8@HBT!a6{k;v=z2m#qxTt#WyX?L(?*2{1Jn zZgmWcTBG=0*wSi`eo0H&o_EFx1OlzZ&8`|FE6r;_K~7F&%gf8e3)9mK4TOw5IQ2aP zap01ICr{3Ox+HbAum^TZd=AUAJB|u^F|Ol*+FqBfG}nLZu6e3Z*I!OM&29Wsi2azT z(h;FXLv>C{Rby&lc_@tc zXGUlerO%)vX!iv2!GlKTVbS#QSofdiXq=p|sXtwrrl zPZ*HJPEsGwH&Vmi^qZccQb!m!UjmxMgd=PSih$Ti+>B(nvY6d@);jlA?OyATa6W#$7dO_* zh%z1+W6iv}pxFQPX_55JJ8>}?tshcWwqID9Nds*Oi(DYbxW^!YQ4M0UgY0pK6N_&f zvSu$5`Jkv$SfQ=?D(;3!DV-n5-Pjvk+&X5-vRbIuqQ4-CuR8}No=m6QW=b~#eBF~? z`W7a8*C|c?(;E1Y=P*0Daktsk?!^=6y<&UdgRA$NJ)R*k4Ttx2Z92H+7ngcsn}d%< z4y%lU_1OcvN!EDyl2un-UmV0agm?j`R{4EDgRNQfnCeb$H{^DM)BD+$mQ#dt_^B}5 zr=@V^x2gZ)ukc%oadl*0vq<@CJ-9=nnVKQ<{dhJ{E%x zqF6x3LZw83koS@M&ycopSV=eYaNb65Rl%Gx?d0cKzoIhEpkMoF@7Y!@yIPe+tRD}U z_TaHXo;vQ$y`OVahN|HU#FzvQxs}=VbMGhE-$l@140Z4Aa$`B>!`+L_I3xYERBURc zT_VMpg_LNJo5|wTswJjbZVZG~Upap~uP@AEGE_y72YxoqLqz{hE%v|AT@ z<}VqcT^w1h2lvu<<{?=> z(qN*J$=v%iO*?-2d6#uoHovXq^WC?3=Vc!hF6F-BkF3T2n1V4pAWF1-Edfni--=?_t(`eO6%6zEi}3Z$<$q4f&*#MF z8*7fABw6d%>yQbQcH$IBR|Z>>u=NbY+FyJqUY?Oh$KVZ&mkP}`-8T-OYW_fZYzEGF zx{qwUdoMezDu$0Ve$bIXe3S$0z-_=c!8VHmgJPs*5WEe8SwWR{Ms>S-@Z~TjW3!g{ z#F#}@{IgnsOHh>zyWrdYxJ*#0e|Y=J3qe=Vcun0|TR18=1M6#kh5lmdqNiJGl(NlKek1SYW??`_w3j=9>R=D97J_HW90x#%CUmI5ZAfU|)I{7BvOVT7E=zi26 ku`tgzw8j;ier1}_uN)e;>$v*=r(hy2xV~Do%A?5t06jWR)&Kwi literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_door2a.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_door2a.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..4079e38f38d686c1e61d49d35749d7caeef81385 GIT binary patch literal 46589 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

aOP@n20*sV`DTi`=evEC40PfFaZ2G=TD_)-O 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±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 ZOSO48JB8y?{_kB6SeV$LtBkzv{0{;i)~5gf literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_map1.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_map1.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6d6cff849fbd1beccd2c4ffc97dc542186ec1b GIT binary patch literal 22430 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 R|F6phXsYT$YgJ&;{{sL^;I04w literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_map2.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/lab1_map2.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..892882cb3e04c8e52d18bbaeed87162a8bb84353 GIT binary patch literal 21348 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/leveldata.inc.c b/docs/lua/examples/lighting-engine-demo/levels/hl/leveldata.inc.c new file mode 100644 index 000000000..b6617282a --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/hl/leveldata.inc.c @@ -0,0 +1,5 @@ +#include "levels/hl/texture_include.inc.c" +#include "levels/hl/area_1/collision.inc.c" +#include "levels/hl/area_1/macro.inc.c" +#include "levels/hl/area_1/spline.inc.c" +#include "levels/hl/model.inc.c" diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/model.inc.c b/docs/lua/examples/lighting-engine-demo/levels/hl/model.inc.c new file mode 100644 index 000000000..fb84a5b2b --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/hl/model.inc.c @@ -0,0 +1,7384 @@ +Vtx hl_dl_map_mesh_layer_1_vtx_0[259] = { + {{{941, -516, -355}, 0, {11632, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -355}, 0, {11120, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -355}, 0, {11120, 1008}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -355}, 0, {11632, 1008}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -573, -355}, 0, {12272, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -276, -355}, 0, {12272, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -355}, 0, {11632, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -355}, 0, {12272, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -355}, 0, {11216, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -355}, 0, {11120, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {11120, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -573, -355}, 0, {11824, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -355}, 0, {12272, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -607, -355}, 0, {11824, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -607, -355}, 0, {12272, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -355}, 0, {11632, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -812}, 0, {12272, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -242, -812}, 0, {11824, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -276, -812}, 0, {11824, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -276, -812}, 0, {12272, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -812}, 0, {11632, 1008}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -812}, 0, {11632, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -812}, 0, {11632, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -573, -812}, 0, {12272, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -812}, 0, {11632, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -812}, 0, {12272, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{918, -607, -812}, 0, {11376, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -812}, 0, {11216, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -812}, 0, {11120, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -812}, 0, {11120, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -607, -812}, 0, {12272, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {8816, 3984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -82, -355}, 0, {8816, 2192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -82, -812}, 0, {15643, 2192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {15643, 3984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -355}, 0, {8144, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -355}, 0, {8144, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -550, -298}, 0, {7504, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -298}, 0, {7504, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -806}, 0, {10736, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -806}, 0, {10736, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -806}, 0, {10224, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -806}, 0, {10224, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -361}, 0, {10416, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -361}, 0, {10928, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -355}, 0, {10928, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -355}, 0, {10416, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -355}, 0, {10416, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -355}, 0, {10928, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -361}, 0, {10928, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -361}, 0, {10416, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -298}, 0, {7325, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -355}, 0, {8106, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -298}, 0, {7325, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -355}, 0, {8106, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -446}, 0, {9355, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -778}, 0, {13881, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -721}, 0, {13101, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -812}, 0, {14350, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -812}, 0, {14350, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -869}, 0, {15130, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -869}, 0, {15130, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -812}, 0, {12656, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -812}, 0, {12656, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -806}, 0, {12592, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -806}, 0, {12592, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -573, -389}, 0, {10608, -8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -389}, 0, {10256, -8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -361}, 0, {10256, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -381}, 0, {10672, -7952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -361}, 0, {10672, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -573, -355}, 0, {10864, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -355}, 0, {10672, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -82, -812}, 0, {-2115, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {-4982, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {-4982, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -82, -812}, 0, {-2115, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -815}, 0, {10800, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -815}, 0, {11824, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {11824, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {10800, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -806}, 0, {12688, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -806}, 0, {12688, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -812}, 0, {12752, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -812}, 0, {12752, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -812}, 0, {12752, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -806}, 0, {12688, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -806}, 0, {12688, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -812}, 0, {12752, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -355}, 0, {7536, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -361}, 0, {7600, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -361}, 0, {7600, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -355}, 0, {7536, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -355}, 0, {24624, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -573, -355}, 0, {26928, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -607, -355}, 0, {26928, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -355}, 0, {24624, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -355}, 0, {24624, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -276, -355}, 0, {26928, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -242, -355}, 0, {26928, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -361}, 0, {10736, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -361}, 0, {10224, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -355}, 0, {10224, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -355}, 0, {10736, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -812}, 0, {10320, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -812}, 0, {10224, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -806}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -806}, 0, {10320, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -361}, 0, {7696, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -355}, 0, {7632, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -355}, 0, {7632, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -361}, 0, {7696, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {12304, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -815}, 0, {12336, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -812}, 0, {12304, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -812}, 0, {12304, 1008}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -815}, 0, {12336, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -812}, 0, {12304, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -812}, 0, {12304, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -812}, 0, {12304, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -355}, 0, {7536, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -361}, 0, {7600, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -361}, 0, {7600, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -355}, 0, {7536, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -812}, 0, {10224, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -812}, 0, {10736, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -806}, 0, {10736, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -806}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -355}, 0, {7632, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -355}, 0, {7632, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -361}, 0, {7696, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -361}, 0, {7696, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -806}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -812}, 0, {10224, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -812}, 0, {10736, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -806}, 0, {10736, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -381}, 0, {7920, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -573, -355}, 0, {7632, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -607, -355}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -607, -389}, 0, {8016, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -607, -389}, 0, {8016, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -573, -389}, 0, {8016, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -381}, 0, {7920, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -812}, 0, {11120, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -812}, 0, {11632, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -812}, 0, {11632, 1008}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -812}, 0, {11120, 1008}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -806}, 0, {10736, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -806}, 0, {10736, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -806}, 0, {10320, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -806}, 0, {10224, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -806}, 0, {10224, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -778}, 0, {10256, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -276, -778}, 0, {10608, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -242, -778}, 0, {10608, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -778}, 0, {10256, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{918, -607, -389}, 0, {10416, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -389}, 0, {10256, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -389}, 0, {10256, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -573, -389}, 0, {10608, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -607, -389}, 0, {10608, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -812}, 0, {14320, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -869}, 0, {15120, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -550, -869}, 0, {15120, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -812}, 0, {14320, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -276, -812}, 0, {24816, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -242, -812}, 0, {24816, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -812}, 0, {22512, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -573, -812}, 0, {24816, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -812}, 0, {22512, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -607, -812}, 0, {24816, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -812}, 0, {22512, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -869}, 0, {15120, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -812}, 0, {14320, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -276, -812}, 0, {14320, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -573, -812}, 0, {14320, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -550, -869}, 0, {15120, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -812}, 0, {14320, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {14350, 11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -812}, 0, {14350, 11909}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -778}, 0, {13881, 11909}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {8106, 11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -355}, 0, {8106, 11909}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -242, -778}, 0, {13881, 12338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -355}, 0, {8106, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -778}, 0, {13881, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -242, -812}, 0, {14350, 12651}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -812}, 0, {14350, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -806}, 0, {10672, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -812}, 0, {10672, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -276, -812}, 0, {10864, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -786}, 0, {10672, -12496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -806}, 0, {10256, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -276, -778}, 0, {10608, -12400}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -778}, 0, {10256, -12400}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -812}, 0, {12752, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -812}, 0, {12752, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -806}, 0, {12688, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -778}, 0, {12368, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -778}, 0, {12368, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -242, -778}, 0, {12368, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -276, -778}, 0, {12368, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -786}, 0, {12464, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -242, -812}, 0, {12752, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -786}, 0, {12464, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -276, -812}, 0, {12752, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -242, -812}, 0, {12752, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -361}, 0, {10320, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -361}, 0, {10224, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -361}, 0, {10224, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -361}, 0, {10736, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -573, -361}, 0, {10736, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -355}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -355}, 0, {7632, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -361}, 0, {7696, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -389}, 0, {8016, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -389}, 0, {8016, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -550, -298}, 0, {7504, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -355}, 0, {8144, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -573, -355}, 0, {8144, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -550, -298}, 0, {7504, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -573, -355}, 0, {8144, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -276, -355}, 0, {8144, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -298}, 0, {7504, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -355}, 0, {8144, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -82, -355}, 0, {-2115, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {-4982, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -355}, 0, {-4982, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -82, -355}, 0, {-2115, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {11120, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -812}, 0, {11120, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -276, -812}, 0, {11216, 368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -242, -812}, 0, {11216, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -812}, 0, {10224, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -806}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -806}, 0, {10736, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -812}, 0, {10224, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -806}, 0, {10736, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -516, -812}, 0, {10736, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -361}, 0, {10416, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -276, -361}, 0, {10928, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{941, -333, -361}, 0, {10928, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -361}, 0, {10416, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -82, -446}, 0, {9355, 1177}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -173, -446}, 0, {9355, 2426}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -173, -721}, 0, {13101, 2426}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -82, -721}, 0, {13101, 1177}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -355}, 0, {11216, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -355}, 0, {11216, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -355}, 0, {11120, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -355}, 0, {11120, 3696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -812}, 0, {12656, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -806}, 0, {12592, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -806}, 0, {12592, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -812}, 0, {12656, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -355}, 0, {10224, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -361}, 0, {10224, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -361}, 0, {10320, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -573, -355}, 0, {10320, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_0[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(4, 11, 0, 0), + gsSP1Triangle(11, 4, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(11, 15, 0, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(6, 3, 4, 0), + gsSP1Triangle(7, 3, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(8, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(10, 14, 9, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 31, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 47, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 62, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 77, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 93, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(1, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 108, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 124, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 140, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 156, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 172, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(14, 13, 11, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 188, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 204, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 7, 3, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 220, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 236, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_0 + 251, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_1[67] = { + {{{-231, -447, -732}, 0, {-5424, -28901}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -447, -732}, 0, {-4144, -28901}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -447, -763}, 0, {-4144, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -447, -763}, 0, {-5424, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -453, -775}, 0, {-5264, -30501}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -453, -775}, 0, {-4304, -30501}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -755}, 0, {-5104, -29755}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -741}, 0, {-5104, -29221}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -741}, 0, {-5424, -29221}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -763}, 0, {-5424, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -763}, 0, {-5104, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -487, -775}, 0, {-5264, -30501}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -487, -775}, 0, {-4304, -30501}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -763}, 0, {-4464, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -763}, 0, {-4144, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -755}, 0, {-4464, -29755}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -741}, 0, {-4144, -29221}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -755}, 0, {-4464, -29755}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -763}, 0, {-4144, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -741}, 0, {-4464, -29221}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -763}, 0, {-4464, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -755}, 0, {-5104, -29755}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -763}, 0, {-5104, -30075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -732}, 0, {28656, -5221}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-188, -490, -729}, 0, {28576, -5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-228, -490, -729}, 0, {28576, -6821}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -732}, 0, {28656, -6928}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -741}, 0, {-4464, -30245}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -741}, 0, {-4144, -30245}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -732}, 0, {-4144, -29925}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -741}, 0, {-5104, -30245}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -732}, 0, {-5424, -29925}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -732}, 0, {-5424, -29925}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -741}, 0, {-5424, -30245}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -741}, 0, {-5104, -30245}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -453, -775}, 0, {-4304, 19952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -487, -775}, 0, {-4304, 21232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -487, -775}, 0, {-5264, 21232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -453, -775}, 0, {-5264, 19952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -447, -732}, 0, {28656, 19739}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -732}, 0, {28656, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-228, -490, -729}, 0, {28576, 21339}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-228, -450, -729}, 0, {28576, 19845}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -447, -732}, 0, {28656, -5221}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -447, -732}, 0, {28656, -6928}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-228, -450, -729}, 0, {28576, -6821}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-188, -450, -729}, 0, {28576, -5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-188, -450, -729}, 0, {28576, 19845}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-188, -490, -729}, 0, {28576, 21339}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -732}, 0, {28656, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -447, -732}, 0, {28656, 19739}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -453, -775}, 0, {30592, 19952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -763}, 0, {30272, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -487, -775}, 0, {30592, 21232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -447, -763}, 0, {30272, 19739}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -741}, 0, {29632, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -447, -732}, 0, {29392, 19739}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-185, -493, -732}, 0, {29392, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -741}, 0, {29632, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -732}, 0, {29392, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -447, -732}, 0, {29392, 19739}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -447, -763}, 0, {30272, 19739}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -763}, 0, {30272, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -453, -775}, 0, {30592, 19952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -493, -763}, 0, {30272, 21445}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-231, -447, -763}, 0, {30272, 19739}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -487, -775}, 0, {30592, 21232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_1[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_1 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(9, 10, 6, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_1 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_1 + 32, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_1 + 47, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 5, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(14, 15, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_1 + 63, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_2[335] = { + {{{-191, 210, -698}, 0, {-2224, -10832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -698}, 0, {-2256, -10832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -695}, 0, {-2256, -10800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -695}, 0, {-2224, -10800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -492}, 0, {8528, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -492}, 0, {8528, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -495}, 0, {8560, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -495}, 0, {8560, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -503}, 0, {8784, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -503}, 0, {8784, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -483}, 0, {8560, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -483}, 0, {8560, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -695}, 0, {10768, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -695}, 0, {10768, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -698}, 0, {10800, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -698}, 0, {10800, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -695}, 0, {10768, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -695}, 0, {10768, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -698}, 0, {10800, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -698}, 0, {10800, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -495}, 0, {-2256, -9136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -492}, 0, {-2256, -9104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -492}, 0, {-2224, -9104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -495}, 0, {-2224, -9136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -698}, 0, {-2224, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -698}, 0, {-2256, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -698}, 0, {-2256, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -698}, 0, {-2224, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -495}, 0, {-2224, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -495}, 0, {-2256, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -495}, 0, {-2256, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -495}, 0, {-2224, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 185}, 0, {17161, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 137}, 0, {17161, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{589, -470, 137}, 0, {16948, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -470, 177}, 0, {16734, -3216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -470, 162}, 0, {16308, -3536}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{575, -470, 137}, 0, {16592, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 205}, 0, {14885, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -470, 194}, 0, {15525, -2832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 219}, 0, {14885, -2256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 217}, 0, {16094, -2320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 228}, 0, {14885, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -470, 228}, 0, {16379, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{591, -470, 185}, 0, {16990, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -470, 185}, 0, {16876, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -470, 185}, 0, {16805, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{572, -470, 185}, 0, {16521, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -470, 185}, 0, {16805, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{572, -470, 185}, 0, {16521, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 202}, 0, {16094, -2640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 214}, 0, {16094, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -470, 208}, 0, {15952, -2512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{591, -470, 185}, 0, {16990, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -470, 185}, 0, {16876, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -470, 228}, 0, {16379, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{556, -470, 216}, 0, {16116, -2340}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 228}, 0, {17161, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 185}, 0, {17161, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -661}, 0, {-2779, -21712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -658}, 0, {-2779, -21648}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -658}, 0, {-2850, -21648}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -661}, 0, {-2850, -21712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -519, -658}, 0, {-3916, -21648}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -669}, 0, {-2850, -21904}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -661}, 0, {-2850, -21712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -519, -658}, 0, {-3916, -21648}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -519, -683}, 0, {-3916, -22224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -683}, 0, {-2850, -22224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -683}, 0, {-2779, -22224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -669}, 0, {-2779, -21904}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -686}, 0, {10608, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -686}, 0, {10608, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -695}, 0, {10704, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -706}, 0, {10832, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -706}, 0, {10832, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -686}, 0, {-2064, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -686}, 0, {-2064, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -686}, 0, {-2160, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -686}, 0, {-2288, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -686}, 0, {-2160, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -686}, 0, {-2288, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -686}, 0, {-2288, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -706}, 0, {-2288, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -706}, 0, {-2288, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -706}, 0, {-2192, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -706}, 0, {-2160, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -706}, 0, {-2064, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -706}, 0, {-2064, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -483}, 0, {-2064, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -483}, 0, {-2064, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -483}, 0, {-2160, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -483}, 0, {-2192, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -483}, 0, {-2288, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -483}, 0, {-2288, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -503}, 0, {-2288, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -503}, 0, {-2288, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -503}, 0, {-2192, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -503}, 0, {-2160, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -503}, 0, {-2064, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -503}, 0, {-2064, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -492}, 0, {-2256, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -492}, 0, {-2224, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -492}, 0, {-2224, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -492}, 0, {-2256, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -695}, 0, {-2224, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, 210, -695}, 0, {-2224, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -695}, 0, {-2256, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -695}, 0, {-2256, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -492}, 0, {8528, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -492}, 0, {8528, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, 210, -495}, 0, {8560, -1488}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -495}, 0, {8560, 4208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -706}, 0, {10832, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -706}, 0, {10832, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -686}, 0, {10608, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -686}, 0, {10608, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -503}, 0, {8784, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -503}, 0, {8784, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -483}, 0, {8560, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -483}, 0, {8560, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -569}, 0, {11952, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -598}, 0, {12272, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -569}, 0, {11952, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -598}, 0, {12272, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -603}, 0, {12336, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -638}, 0, {12720, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -603}, 0, {12336, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -643}, 0, {12784, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -490, -569}, 0, {11504, 4848}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -577}, 0, {11593, 5136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -569}, 0, {11504, 5136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -566}, 0, {11465, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -569}, 0, {11504, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -533, -569}, 0, {11504, 5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -527, -581}, 0, {11632, 5264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -579}, 0, {11612, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -459, -546}, 0, {11248, 4496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -453, -558}, 0, {11376, 4432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -603}, 0, {12080, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -626}, 0, {12336, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -626}, 0, {12336, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -577}, 0, {11785, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -598}, 0, {12016, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -579}, 0, {11804, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -598}, 0, {12272, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -569}, 0, {11952, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -598}, 0, {12272, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -569}, 0, {11952, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -603}, 0, {12336, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -638}, 0, {12720, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -643}, 0, {12784, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -603}, 0, {12336, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -490, -569}, 0, {11504, 4848}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -569}, 0, {11504, 5136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -577}, 0, {11593, 5136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -566}, 0, {11465, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -459, -546}, 0, {11248, 4496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -453, -558}, 0, {11376, 4432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -569}, 0, {11504, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -533, -569}, 0, {11504, 5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -527, -581}, 0, {11632, 5264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -579}, 0, {11612, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -516, -569}, 0, {11696, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -522, -621}, 0, {12272, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -516, -621}, 0, {12272, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -522, -569}, 0, {11696, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -569}, 0, {-848, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -522, -569}, 0, {-784, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -516, -569}, 0, {-784, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -569}, 0, {-912, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -569}, 0, {-912, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -577}, 0, {-1168, -12073}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -569}, 0, {-1168, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -516, -569}, 0, {-1040, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -516, -621}, 0, {-1040, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -626}, 0, {-1168, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -527, -581}, 0, {-1744, 5264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -527, -581}, 0, {-2064, 5264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -579}, 0, {-2064, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -577}, 0, {-2064, 5136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -490, -569}, 0, {-2064, 4848}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -490, -569}, 0, {-1168, 4848}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -453, -558}, 0, {-2064, 4432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -490, -569}, 0, {-1168, 4848}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -490, -569}, 0, {-2064, 4848}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -453, -558}, 0, {-1168, 4432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -527, -581}, 0, {-1744, 5264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -527, -581}, 0, {-1488, 5264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -577}, 0, {-1168, 5136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -579}, 0, {-1168, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -527, -581}, 0, {-1168, 5264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -453, -558}, 0, {-2320, -10064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -459, -546}, 0, {-1424, -9936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -453, -558}, 0, {-1424, -10064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -459, -546}, 0, {-2320, -9936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -569}, 0, {-1744, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -569}, 0, {-2064, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -569}, 0, {-2064, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -569}, 0, {-1488, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -569}, 0, {-1744, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -569}, 0, {-2064, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -569}, 0, {-1168, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -569}, 0, {-1168, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -603}, 0, {-3088, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -623}, 0, {-3152, -12592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -626}, 0, {-3088, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -603}, 0, {-3152, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -522, -621}, 0, {-3216, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -598}, 0, {-3152, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -522, -569}, 0, {-3216, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -569}, 0, {-3152, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -579}, 0, {-3088, -12092}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -598}, 0, {-3088, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -569}, 0, {-3088, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -522, -569}, 0, {11696, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -516, -621}, 0, {12272, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -522, -621}, 0, {12272, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -516, -569}, 0, {11696, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -569}, 0, {-2896, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -569}, 0, {-2832, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -569}, 0, {-2832, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -516, -569}, 0, {-2960, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -522, -569}, 0, {-2960, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -626}, 0, {12336, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -626}, 0, {12336, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -603}, 0, {12080, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -577}, 0, {11785, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -598}, 0, {12016, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -579}, 0, {11804, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -569}, 0, {-1104, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -569}, 0, {-1168, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -579}, 0, {-1168, -12092}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -598}, 0, {-1104, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -598}, 0, {-1168, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -522, -569}, 0, {-1040, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -522, -621}, 0, {-1040, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -603}, 0, {-1104, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -623}, 0, {-1104, -12592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -603}, 0, {-1168, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -626}, 0, {-1168, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -516, -621}, 0, {-784, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -522, -621}, 0, {-784, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -623}, 0, {-848, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -626}, 0, {-912, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -626}, 0, {-912, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -643}, 0, {-2000, -11024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -643}, 0, {-2320, -11024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -603}, 0, {-2320, -10576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -578}, 0, {-2000, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -598}, 0, {-2320, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -569}, 0, {-2320, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -572}, 0, {-2000, -10224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -569}, 0, {-2000, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -572}, 0, {-1744, -10224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -569}, 0, {-1744, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -569}, 0, {-1424, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -578}, 0, {-1744, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -598}, 0, {-1424, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -603}, 0, {-1424, -10576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -643}, 0, {-1744, -11024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -643}, 0, {-1424, -11024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -530, -575}, 0, {-2000, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -533, -569}, 0, {-2000, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -533, -569}, 0, {-2320, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -527, -581}, 0, {-2320, -10320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -527, -581}, 0, {-2000, -10320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -530, -575}, 0, {-1744, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -527, -581}, 0, {-1744, -10320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -527, -581}, 0, {-1424, -10320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -533, -569}, 0, {-1424, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -533, -569}, 0, {-1744, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -566}, 0, {-2064, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -533, -569}, 0, {-2064, 5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -533, -569}, 0, {-1744, 5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -459, -546}, 0, {-2064, 4496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -533, -569}, 0, {-1488, 5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -459, -546}, 0, {-1168, 4496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -566}, 0, {-1168, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -459, -546}, 0, {-1168, 4496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -533, -569}, 0, {-1488, 5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -533, -569}, 0, {-1168, 5328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -638}, 0, {-1424, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -603}, 0, {-1424, -10576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -638}, 0, {-2320, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -603}, 0, {-2320, -10576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -598}, 0, {-1424, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -598}, 0, {-2320, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -569}, 0, {-2320, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -569}, 0, {-1424, -10192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -638}, 0, {-2064, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -643}, 0, {-2064, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -643}, 0, {-1744, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -643}, 0, {-1488, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -643}, 0, {-1488, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -638}, 0, {-1168, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -638}, 0, {-2064, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -643}, 0, {-1168, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -516, -569}, 0, {-3216, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -569}, 0, {-3088, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -577}, 0, {-3088, -12073}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -516, -621}, 0, {-3216, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -626}, 0, {-3088, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -516, -626}, 0, {-2832, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -626}, 0, {-2832, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -623}, 0, {-2896, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -516, -621}, 0, {-2960, 5808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -522, -621}, 0, {-2960, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -695}, 0, {-2192, -10736}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -695}, 0, {-2288, -10736}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -686}, 0, {-2288, -10640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -698}, 0, {-2192, -10768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -706}, 0, {-2288, -10864}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -706}, 0, {-2192, -10864}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -706}, 0, {-2160, -10864}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -698}, 0, {-2160, -10768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -706}, 0, {-2064, -10864}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -695}, 0, {-2160, -10736}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -686}, 0, {-2064, -10640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -686}, 0, {-2160, -10640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -495}, 0, {-2192, -8720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -503}, 0, {-2288, -8816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -483}, 0, {-2288, -8592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -503}, 0, {-2192, -8816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -495}, 0, {-2192, -8720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -503}, 0, {-2160, -8816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -503}, 0, {-2192, -8816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -495}, 0, {-2160, -8720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -503}, 0, {-2064, -8816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -492}, 0, {-2160, -8688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -299, -483}, 0, {-2064, -8592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-191, -299, -483}, 0, {-2160, -8592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -483}, 0, {-2192, -8592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-194, -299, -492}, 0, {-2192, -8688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -299, -483}, 0, {-2288, -8592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_2[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(3, 12, 0, 0), + gsSP1Triangle(13, 12, 3, 0), + gsSP1Triangle(14, 13, 3, 0), + gsSP1Triangle(3, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(5, 7, 9, 0), + gsSP1Triangle(9, 10, 5, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(0, 4, 5, 0), + gsSP1Triangle(0, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 80, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(6, 7, 3, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(12, 13, 9, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 95, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 109, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 125, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(12, 4, 7, 0), + gsSP1Triangle(12, 13, 4, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 139, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 153, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(3, 6, 1, 0), + gsSP1Triangle(6, 3, 7, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 167, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(8, 9, 5, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(14, 15, 10, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 183, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 5, 0), + gsSP1Triangle(1, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 12, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 199, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(13, 15, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 215, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(7, 8, 4, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 230, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 0, 3, 0), + gsSP1Triangle(5, 3, 6, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 246, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSP1Triangle(3, 11, 14, 0), + gsSP1Triangle(3, 14, 0, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 262, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(4, 5, 0, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 9, 5, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 278, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 294, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 308, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 9, 0, 0), + gsSP1Triangle(0, 2, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_2 + 324, 11, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 0, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_3[379] = { + {{{598, -607, -355}, 0, {7152, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -355}, 0, {6128, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -573, -355}, 0, {6128, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -573, -355}, 0, {8752, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -355}, 0, {6128, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -355}, 0, {8944, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -276, -355}, 0, {7152, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -276, -355}, 0, {6128, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -355}, 0, {7152, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -355}, 0, {6128, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -355}, 0, {7152, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -355}, 0, {6128, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -355}, 0, {-16, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -355}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -355}, 0, {-8208, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -355}, 0, {-8208, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -355}, 0, {7152, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -355}, 0, {7664, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -276, -355}, 0, {7152, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -355}, 0, {8944, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -355}, 0, {9360, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -355}, 0, {9456, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -355}, 0, {9456, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -355}, 0, {8944, 7357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -355}, 0, {8944, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -355}, 0, {9456, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -355}, 0, {9456, 7357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -573, -355}, 0, {8752, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -607, -355}, 0, {8752, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -355}, 0, {7152, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -355}, 0, {8944, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -949}, 0, {6128, -14557}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -812}, 0, {6128, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -812}, 0, {-16, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -949}, 0, {-16, -14557}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -812}, 0, {-8208, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -949}, 0, {-8208, -14557}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -550, -869}, 0, {21488, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -550, -869}, 0, {24048, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -869}, 0, {24048, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -550, -869}, 0, {20848, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -869}, 0, {24048, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -550, -869}, 0, {14960, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -869}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -869}, 0, {11632, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -550, -869}, 0, {14320, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -550, -869}, 0, {11632, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -721}, 0, {19312, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -446}, 0, {19312, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -219, -446}, 0, {18800, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -219, -721}, 0, {18800, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -812}, 0, {24048, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -812}, 0, {11632, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -219, -721}, 0, {15728, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -219, -721}, 0, {15216, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -219, -446}, 0, {15216, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -219, -446}, 0, {15728, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -219, -721}, 0, {12144, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -721}, 0, {11632, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -219, -446}, 0, {12144, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -446}, 0, {11632, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -561}, 0, {22896, -7594}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -173, -446}, 0, {24048, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -173, -721}, 0, {24048, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -606}, 0, {22896, -8413}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -721}, 0, {22896, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -721}, 0, {22384, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -606}, 0, {22384, -8413}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -173, -721}, 0, {12144, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -173, -721}, 0, {11632, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -173, -446}, 0, {11632, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -173, -446}, 0, {12144, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -446}, 0, {8560, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -721}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -173, -721}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -173, -446}, 0, {8560, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -219, -721}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -219, -446}, 0, {8560, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -173, -446}, 0, {8560, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -173, -721}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -606}, 0, {15728, -8413}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -721}, 0, {15728, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -721}, 0, {15216, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -606}, 0, {15216, -8413}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -606}, 0, {10352, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -721}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -219, -721}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -561}, 0, {9840, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -219, -446}, 0, {8560, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -446}, 0, {8560, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -355}, 0, {7536, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -355}, 0, {7536, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -458}, 0, {8688, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -503}, 0, {9200, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -812}, 0, {12656, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -663}, 0, {10992, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -709}, 0, {11504, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -812}, 0, {12656, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -550, -298}, 0, {14320, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -550, -298}, 0, {11632, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -242, -298}, 0, {11632, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -550, -298}, 0, {14960, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -298}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -298}, 0, {24048, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -550, -298}, 0, {20848, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -298}, 0, {24048, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -298}, 0, {24048, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -550, -298}, 0, {21488, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -550, -298}, 0, {20848, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -550, -298}, 0, {24048, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -869}, 0, {11632, -13123}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -869}, 0, {24048, -13123}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -812}, 0, {24048, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -812}, 0, {11632, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -949}, 0, {-8208, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -949}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -949}, 0, {-8208, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -949}, 0, {-16, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -949}, 0, {6128, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -949}, 0, {6128, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 216, -949}, 0, {7024, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -949}, 0, {7152, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -949}, 0, {7152, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -949}, 0, {7152, 1315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -949}, 0, {6128, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -949}, 0, {7152, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -949}, 0, {7152, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -949}, 0, {6128, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -949}, 0, {7152, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -266}, 0, {6128, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -266}, 0, {6320, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -266}, 0, {6320, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -266}, 0, {6128, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -312}, 0, {6128, -11331}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -266}, 0, {6128, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -266}, 0, {6320, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -312}, 0, {6320, -11331}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -315}, 0, {7088, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -338}, 0, {7344, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -338}, 0, {7344, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -315}, 0, {7088, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -812}, 0, {8944, 7357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -812}, 0, {8944, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -276, -812}, 0, {8752, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -276, -812}, 0, {7152, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -812}, 0, {7664, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -242, -812}, 0, {8752, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -812}, 0, {7152, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -812}, 0, {6128, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -812}, 0, {6128, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -812}, 0, {7152, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -812}, 0, {6128, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -812}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -812}, 0, {6128, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -812}, 0, {-16, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -812}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -812}, 0, {-8208, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -812}, 0, {-8208, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -812}, 0, {6128, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -573, -812}, 0, {7152, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -276, -812}, 0, {7152, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -812}, 0, {7152, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -812}, 0, {8944, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{781, -607, -812}, 0, {9200, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -812}, 0, {9360, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -812}, 0, {9456, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -812}, 0, {9456, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -812}, 0, {8944, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -812}, 0, {8944, 7357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -812}, 0, {9456, 7357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -812}, 0, {8944, 7357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -812}, 0, {8944, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -812}, 0, {9456, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -573, -812}, 0, {7152, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -276, -812}, 0, {7152, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -815}, 0, {12688, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {12656, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -812}, 0, {12656, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -812}, 0, {12656, 7357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -815}, 0, {12688, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -812}, 0, {12656, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -812}, 0, {12656, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -812}, 0, {12656, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -812}, 0, {7152, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -812}, 0, {7664, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -778}, 0, {7664, -11485}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -709}, 0, {7152, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -709}, 0, {7664, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -355}, 0, {11632, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -446}, 0, {11632, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -219, -446}, 0, {12144, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -219, -446}, 0, {15216, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -219, -446}, 0, {15728, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -219, -446}, 0, {18800, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -355}, 0, {24048, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -446}, 0, {19312, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -219, -446}, 0, {22384, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -446}, 0, {24048, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -298}, 0, {11632, -11075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -219, -298}, 0, {11632, -11075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -355}, 0, {24048, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -298}, 0, {24048, -11075}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -812}, 0, {24048, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -219, -721}, 0, {22384, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -721}, 0, {19312, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -721}, 0, {24048, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -446}, 0, {24048, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -219, -446}, 0, {22384, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -561}, 0, {22896, -15786}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -446}, 0, {22896, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -173, -446}, 0, {24048, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -446}, 0, {22384, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -561}, 0, {22384, -15786}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -82, -721}, 0, {11632, 2851}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -173, -721}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -173, -721}, 0, {12144, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -36, -721}, 0, {11632, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -721}, 0, {15216, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -219, -721}, 0, {15216, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -219, -721}, 0, {12144, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -721}, 0, {15728, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -173, -721}, 0, {18800, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -219, -721}, 0, {18800, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -219, -721}, 0, {15728, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -36, -721}, 0, {24048, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -173, -721}, 0, {19312, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -721}, 0, {22384, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -219, -721}, 0, {22384, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -721}, 0, {19312, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -721}, 0, {22896, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -36, -721}, 0, {24048, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -721}, 0, {22384, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -173, -721}, 0, {24048, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -36, -446}, 0, {24048, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -173, -446}, 0, {24048, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -446}, 0, {22896, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -446}, 0, {22384, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -173, -446}, 0, {19312, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -219, -446}, 0, {19312, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -219, -446}, 0, {22384, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -173, -446}, 0, {18800, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -36, -446}, 0, {11632, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -446}, 0, {15728, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -219, -446}, 0, {15728, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -219, -446}, 0, {18800, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -446}, 0, {15728, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -446}, 0, {15216, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -36, -446}, 0, {11632, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -173, -446}, 0, {12144, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -219, -446}, 0, {12144, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -219, -446}, 0, {15216, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -82, -446}, 0, {11632, 2851}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -173, -446}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -219, -446}, 0, {8560, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -446}, 0, {8560, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -561}, 0, {9840, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -606}, 0, {10352, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -219, -721}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -721}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -219, -721}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -721}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -606}, 0, {10352, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -561}, 0, {9840, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -219, -446}, 0, {8560, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -446}, 0, {8560, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -218}, 0, {6000, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -355}, 0, {7536, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -276, -355}, 0, {7536, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -218}, 0, {6000, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -266}, 0, {6544, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -312}, 0, {7056, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -315}, 0, {7088, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -338}, 0, {7344, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -355}, 0, {7536, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {7344, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -476, -338}, 0, {7344, 9917}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {7344, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -355}, 0, {7536, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -502, -338}, 0, {7344, 10378}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -573, -355}, 0, {7536, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -338}, 0, {7344, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -355}, 0, {7536, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -502, -315}, 0, {7088, 10378}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -312}, 0, {7056, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -502, -312}, 0, {7056, 10378}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -266}, 0, {6544, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -266}, 0, {6544, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -218}, 0, {6000, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -218}, 0, {6000, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -266}, 0, {6544, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -312}, 0, {7056, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -476, -315}, 0, {7088, 9917}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -502, -315}, 0, {7088, 10378}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -312}, 0, {7056, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -315}, 0, {7088, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -312}, 0, {7056, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -315}, 0, {7088, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -476, -338}, 0, {7344, 9917}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {7344, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -312}, 0, {6128, -11331}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -312}, 0, {6320, -11331}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -266}, 0, {6320, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -266}, 0, {6128, -10512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -355}, 0, {7152, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -458}, 0, {7152, -13942}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -458}, 0, {7664, -13942}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -355}, 0, {7664, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -355}, 0, {6128, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -218}, 0, {6128, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -218}, 0, {-16, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -355}, 0, {-16, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -218}, 0, {-8208, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -355}, 0, {-8208, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -218}, 0, {6128, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -218}, 0, {7152, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, -218}, 0, {7152, 9814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -218}, 0, {6128, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -218}, 0, {7152, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -218}, 0, {6128, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -218}, 0, {7152, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -218}, 0, {6128, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -218}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -218}, 0, {-16, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -218}, 0, {-16, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -218}, 0, {-8208, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 170, -218}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -218}, 0, {-8208, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {9456, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -812}, 0, {9360, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -812}, 0, {9360, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -812}, 0, {9456, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -312}, 0, {6320, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -312}, 0, {6128, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -312}, 0, {6128, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -312}, 0, {6320, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -315}, 0, {6128, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -315}, 0, {6320, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -315}, 0, {6320, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -315}, 0, {6128, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {6128, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -315}, 0, {6128, -11382}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -315}, 0, {6320, -11382}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -338}, 0, {6320, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -219, -446}, 0, {8560, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -219, -721}, 0, {11632, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -173, -721}, 0, {11632, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -173, -446}, 0, {8560, 4490}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -173, -446}, 0, {19312, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -173, -721}, 0, {19312, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -173, -721}, 0, {18800, -10461}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -173, -446}, 0, {18800, -5546}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -446}, 0, {15216, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -446}, 0, {15728, -13738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -561}, 0, {15728, -15786}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -561}, 0, {15216, -15786}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -338}, 0, {6128, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -338}, 0, {6320, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -315}, 0, {6320, -11382}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -315}, 0, {6128, -11382}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -355}, 0, {9456, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -355}, 0, {9456, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -355}, 0, {9360, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -355}, 0, {9360, 11658}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -338}, 0, {6320, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -338}, 0, {6128, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {6128, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -338}, 0, {6320, 9661}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -266}, 0, {6544, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -312}, 0, {7056, 9149}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -312}, 0, {7056, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -266}, 0, {6544, 9968}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -812}, 0, {12656, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 170, -949}, 0, {14192, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -949}, 0, {14192, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -812}, 0, {12656, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -663}, 0, {7152, -9437}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -663}, 0, {7664, -9437}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -503}, 0, {7664, -6570}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -503}, 0, {7152, -6570}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_3[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(9, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(3, 7, 2, 0), + gsSP1Triangle(2, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(8, 14, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 31, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 47, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 5, 7, 0), + gsSP1Triangle(11, 5, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 61, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 76, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 90, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 106, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 122, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 137, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(8, 10, 7, 0), + gsSP1Triangle(7, 10, 11, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 153, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(9, 14, 6, 0), + gsSP1Triangle(6, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 169, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 1, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(10, 6, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 183, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 9, 5, 0), + gsSP1Triangle(9, 10, 5, 0), + gsSP1Triangle(11, 5, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(15, 5, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 199, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(7, 8, 4, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 10, 9, 0), + gsSP1Triangle(12, 9, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 213, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 4, 2, 0), + gsSP1Triangle(5, 2, 6, 0), + gsSP1Triangle(4, 7, 3, 0), + gsSP1Triangle(7, 8, 3, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(11, 3, 8, 0), + gsSP1Triangle(11, 8, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 229, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 8, 4, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(7, 10, 9, 0), + gsSP1Triangle(8, 11, 4, 0), + gsSP1Triangle(12, 4, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(11, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 245, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(6, 2, 3, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(11, 12, 8, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 259, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(12, 11, 8, 0), + gsSP1Triangle(8, 13, 12, 0), + gsSP1Triangle(8, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 275, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 3, 5, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(11, 15, 9, 0), + gsSP1Triangle(7, 9, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 291, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(3, 6, 0, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 307, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 323, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 339, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 355, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_3 + 371, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_4[129] = { + {{{-305, -607, -849}, 0, {13072, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -849}, 0, {13072, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -872}, 0, {13328, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -872}, 0, {13328, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -505, -829}, 0, {-2064, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -792}, 0, {-1584, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -792}, 0, {-1584, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -516, -829}, 0, {-2064, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -849}, 0, {-2960, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -849}, 0, {-2960, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -607, -829}, 0, {-2064, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -607, -772}, 0, {-1328, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -516, -772}, 0, {-1328, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -381}, 0, {-1584, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -516, -401}, 0, {-1328, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -607, -401}, 0, {-1328, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -381}, 0, {-1584, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -381}, 0, {-1584, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -516, -401}, 0, {-1328, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -607, -343}, 0, {-2064, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -505, -343}, 0, {-2064, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -381}, 0, {-1584, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -516, -486}, 0, {9008, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -607, -401}, 0, {8048, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -516, -401}, 0, {8048, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -607, -486}, 0, {9008, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-100, -516, -586}, 0, {10128, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-100, -607, -586}, 0, {10128, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-110, -607, -658}, 0, {10928, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-110, -516, -658}, 0, {10928, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-113, -516, -683}, 0, {11216, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -607, -686}, 0, {11248, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-113, -516, -683}, 0, {11216, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -516, -686}, 0, {11248, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -607, -686}, 0, {11248, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -607, -772}, 0, {12208, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -516, -772}, 0, {12208, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -607, -789}, 0, {-1136, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-189, -505, -827}, 0, {-1653, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -505, -789}, 0, {-1136, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-189, -607, -827}, 0, {-1653, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -505, -849}, 0, {-1968, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -607, -849}, 0, {-1968, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -872}, 0, {-2960, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -872}, 0, {-2960, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -301}, 0, {6928, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -301}, 0, {6928, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -323}, 0, {7184, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -301}, 0, {6928, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -323}, 0, {7184, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -323}, 0, {7184, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -505, -949}, 0, {15472, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -949}, 0, {15472, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -801}, 0, {13808, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -505, -755}, 0, {13296, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -499, -755}, 0, {13296, 6230}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -755}, 0, {13296, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -606}, 0, {11632, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -499, -561}, 0, {11120, 6230}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -561}, 0, {11120, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -412}, 0, {9456, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -499, -218}, 0, {7280, 6230}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -366}, 0, {8944, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -218}, 0, {7280, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -505, -561}, 0, {11120, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -499, -561}, 0, {11120, 6230}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -499, -218}, 0, {7280, 6230}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -499, -755}, 0, {13296, 6230}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -505, -755}, 0, {13296, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -561}, 0, {11120, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -218}, 0, {7280, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -949}, 0, {15472, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -505, -949}, 0, {15472, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -792}, 0, {12431, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -792}, 0, {12431, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -755}, 0, {12016, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -749}, 0, {11952, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -746}, 0, {11920, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -741}, 0, {11856, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -683}, 0, {11216, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -658}, 0, {10928, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -741}, 0, {11856, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -683}, 0, {11216, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -672}, 0, {11088, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -658}, 0, {10928, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -615}, 0, {10448, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -381}, 0, {7825, 8995}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -381}, 0, {7825, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -949}, 0, {-7184, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -949}, 0, {-6928, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -505, -949}, 0, {-6928, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -949}, 0, {-7440, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -949}, 0, {-7440, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -949}, 0, {-6928, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -499, -218}, 0, {-6928, 6230}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -218}, 0, {-6928, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -218}, 0, {-7184, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -218}, 0, {-7440, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -218}, 0, {-7440, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -218}, 0, {-6928, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -301}, 0, {-2960, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-262, -505, -312}, 0, {-2471, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -301}, 0, {-2960, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-262, -607, -312}, 0, {-2471, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -607, -323}, 0, {-1968, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -505, -323}, 0, {-1968, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -351}, 0, {-1584, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -351}, 0, {-1584, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -505, -383}, 0, {-1136, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -607, -383}, 0, {-1136, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -505, -695}, 0, {11344, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -607, -789}, 0, {12400, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -505, -789}, 0, {12400, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -607, -695}, 0, {11344, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-87, -607, -658}, 0, {10928, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-87, -505, -658}, 0, {10928, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -601}, 0, {10288, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -505, -601}, 0, {10288, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -572}, 0, {9968, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -505, -572}, 0, {9968, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-81, -505, -548}, 0, {9695, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -607, -478}, 0, {8912, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -505, -478}, 0, {8912, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-123, -607, -421}, 0, {8273, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-123, -505, -421}, 0, {8273, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -607, -383}, 0, {7856, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -607, -383}, 0, {7856, 10634}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-123, -505, -421}, 0, {8273, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -505, -383}, 0, {7856, 8790}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_4[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(10, 5, 7, 0), + gsSP1Triangle(10, 11, 5, 0), + gsSP1Triangle(11, 12, 5, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(6, 5, 0, 0), + gsSP1Triangle(6, 0, 2, 0), + gsSP1Triangle(5, 7, 4, 0), + gsSP1Triangle(7, 8, 4, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(10, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 80, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 0, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 94, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 5, 0, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(7, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 110, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_4 + 126, 3, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_5[24] = { + {{{95, -242, 228}, 0, {-2064, 6056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -242, 228}, 0, {-4112, 6056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -333, 228}, 0, {-4112, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -333, 228}, 0, {-2064, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-188, -490, -729}, 0, {-4313, 24371}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-188, -450, -729}, 0, {-4313, 22664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-228, -450, -729}, 0, {-6020, 22664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-228, -490, -729}, 0, {-6020, 24371}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -333, 228}, 0, {4080, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -425, 228}, 0, {4080, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -425, 228}, 0, {6128, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -333, 228}, 0, {6128, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -333, 228}, 0, {8176, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -242, 228}, 0, {8176, 6056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -242, 228}, 0, {6128, 6056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -516, 228}, 0, {8176, 12357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -425, 228}, 0, {6128, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -516, 228}, 0, {6128, 12357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -425, 228}, 0, {8176, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -333, 228}, 0, {2032, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -333, 228}, 0, {-16, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -425, 228}, 0, {-16, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -516, 228}, 0, {2032, 12357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -516, 228}, 0, {-16, 12357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_5[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_5 + 0, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_5 + 15, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_6[83] = { + {{{-820, -470, -218}, 0, {6000, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, 228}, 0, {1008, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -218}, 0, {6000, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, 228}, 0, {1008, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, 205}, 0, {1264, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -221}, 0, {6032, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -221}, 0, {6032, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, 228}, 0, {1008, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -150, 228}, 0, {-16, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -242, 228}, 0, {1520, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -242, 228}, 0, {-16, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{49, -150, 228}, 0, {1008, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -150, 228}, 0, {3056, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -242, 228}, 0, {3056, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -150, 228}, 0, {7152, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 228}, 0, {6128, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -150, 228}, 0, {7152, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -470, 228}, 0, {6800, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 228}, 0, {6128, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 228}, 0, {7152, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -333, 228}, 0, {3056, 3261}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -242, 228}, 0, {3056, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -425, 228}, 0, {3056, 4899}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -470, 228}, 0, {3056, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -516, 228}, 0, {3056, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 228}, 0, {6128, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -607, 228}, 0, {3056, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -516, 228}, 0, {1520, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, 228}, 0, {-16, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -516, 228}, 0, {-16, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, 228}, 0, {-400, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, 228}, 0, {-1584, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -516, 228}, 0, {-16, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, 228}, 0, {-1584, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -516, 228}, 0, {-1552, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -516, 228}, 0, {-3088, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, 228}, 0, {-2960, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -516, 228}, 0, {-4624, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -607, 228}, 0, {-6160, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -516, 228}, 0, {-6160, 6538}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, 228}, 0, {-8208, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -425, 228}, 0, {-6160, 4899}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -242, 228}, 0, {-8208, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, 228}, 0, {-8720, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, 228}, 0, {-8720, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, 228}, 0, {-8720, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -150, 228}, 0, {-8208, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -242, 228}, 0, {-6160, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -242, 228}, 0, {-6160, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -150, 228}, 0, {-8208, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -150, 228}, 0, {-6160, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -242, 228}, 0, {-4624, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-408, -150, 228}, 0, {-4112, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -242, 228}, 0, {-3088, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -150, 228}, 0, {-16, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -242, 228}, 0, {-8208, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -333, 228}, 0, {-6160, 3261}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -425, 228}, 0, {-6160, 4899}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1418}, 0, {19440, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1464}, 0, {19952, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -1464}, 0, {19952, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -1246}, 0, {17520, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1395}, 0, {19184, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1418}, 0, {19440, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -1464}, 0, {19952, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1464}, 0, {19952, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1418}, 0, {19440, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -1064}, 0, {15472, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -1246}, 0, {17520, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1395}, 0, {19184, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -946}, 0, {14160, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -949}, 0, {14192, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -946}, 0, {14160, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1064}, 0, {15472, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -949}, 0, {14192, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1246}, 0, {17520, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1418}, 0, {19440, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -242, 228}, 0, {3056, 1615}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -242, 228}, 0, {1520, 1615}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -242, 228}, 0, {-16, 1615}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -242, 228}, 0, {3056, 1615}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -242, 228}, 0, {-16, 1615}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -150, 228}, 0, {3056, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_6[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_6 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 0, 5, 0), + gsSP1Triangle(0, 6, 5, 0), + gsSP1Triangle(4, 7, 3, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 13, 9, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_6 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(2, 6, 4, 0), + gsSP1Triangle(2, 7, 6, 0), + gsSP1Triangle(8, 7, 2, 0), + gsSP1Triangle(9, 8, 2, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_6 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 8, 11, 0), + gsSP1Triangle(12, 11, 8, 0), + gsSP1Triangle(11, 13, 10, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(15, 10, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_6 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 0, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_6 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 3, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(9, 3, 7, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(4, 11, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_6 + 80, 3, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_7[90] = { + {{{-182, -505, -746}, 0, {21949, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -741}, 0, {21846, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -746}, 0, {21949, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -741}, 0, {21846, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -658}, 0, {20362, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -658}, 0, {20362, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -615}, 0, {19594, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -615}, 0, {19594, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -598}, 0, {19286, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -581}, 0, {18979, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -381}, 0, {15397, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -363}, 0, {15082, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -358}, 0, {14986, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -505, -343}, 0, {14730, -3395}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -351}, 0, {14867, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -505, -323}, 0, {14371, -3242}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-262, -505, -312}, 0, {14164, -4046}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -505, -323}, 0, {14371, -3242}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -505, -343}, 0, {14730, -3395}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -323}, 0, {14371, -4829}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -301}, 0, {13962, -4829}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -351}, 0, {14867, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -363}, 0, {15082, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -358}, 0, {14986, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -505, -383}, 0, {15446, -1910}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -417}, 0, {16042, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-123, -505, -421}, 0, {16114, -1566}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -505, -478}, 0, {17136, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-81, -505, -548}, 0, {18389, -812}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -581}, 0, {18979, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -505, -572}, 0, {18826, -733}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -598}, 0, {19286, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -505, -572}, 0, {18826, -733}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -505, -601}, 0, {19338, -733}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -598}, 0, {19286, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -615}, 0, {19594, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-99, -505, -658}, 0, {20362, -1125}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-87, -505, -658}, 0, {20362, -919}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -505, -695}, 0, {21027, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -755}, 0, {22102, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -756}, 0, {22122, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -505, -789}, 0, {22717, -1910}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -815}, 0, {23178, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-189, -505, -827}, 0, {23385, -2738}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -505, -829}, 0, {23434, -3395}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -505, -849}, 0, {23792, -3242}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -849}, 0, {23792, -4829}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -872}, 0, {24202, -4829}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -505, -829}, 0, {23434, -3395}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -792}, 0, {22766, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -815}, 0, {23178, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -756}, 0, {22122, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -755}, 0, {22102, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -755}, 0, {22102, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -749}, 0, {22000, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -749}, 0, {22000, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -755}, 0, {22102, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -658}, 0, {20362, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -615}, 0, {19594, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -615}, 0, {19594, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-99, -505, -658}, 0, {20362, -1125}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -741}, 0, {21846, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -741}, 0, {21846, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -417}, 0, {16042, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -581}, 0, {18979, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -363}, 0, {15082, -2576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -581}, 0, {18979, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -792}, 0, {22766, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -516, -772}, 0, {22410, -2218}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -683}, 0, {20822, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -683}, 0, {20822, -2115}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -516, -686}, 0, {20874, -1398}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -672}, 0, {20618, -2115}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-113, -516, -683}, 0, {20822, -1391}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-110, -516, -658}, 0, {20362, -1325}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -658}, 0, {20362, -2115}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-100, -516, -586}, 0, {19082, -1142}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -658}, 0, {20362, -2525}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -658}, 0, {20362, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -516, -486}, 0, {17290, -1398}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -658}, 0, {20362, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-100, -516, -586}, 0, {19082, -1142}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -516, -401}, 0, {15754, -2218}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -381}, 0, {15397, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -672}, 0, {20618, -2525}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -658}, 0, {20362, -2525}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -672}, 0, {20618, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -683}, 0, {20822, -2627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -683}, 0, {20822, -2115}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -672}, 0, {20618, -2115}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_7[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_7 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(1, 3, 4, 0), + gsSP1Triangle(1, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_7 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 8, 6, 0), + gsSP1Triangle(9, 6, 8, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(13, 9, 12, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_7 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_7 + 48, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(4, 8, 3, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(13, 9, 12, 0), + gsSP1Triangle(12, 8, 13, 0), + gsSP1Triangle(14, 9, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_7 + 63, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(14, 12, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_7 + 79, 11, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 0, 3, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(1, 5, 6, 0), + gsSP1Triangle(1, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(9, 10, 5, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_8[113] = { + {{{-42, -93, 228}, 0, {-16, -1552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 228}, 0, {7152, -1552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 205}, 0, {7152, -1808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -93, 205}, 0, {-16, -1808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, 228}, 0, {-8208, -1552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, 205}, 0, {-8208, -1808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, 205}, 0, {-8720, -1808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, 228}, 0, {-8720, -1552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -949}, 0, {-8464, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -949}, 0, {-8208, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -812}, 0, {-8208, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -801}, 0, {-8464, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -801}, 0, {-8208, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -949}, 0, {-8464, 1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -949}, 0, {-8464, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -949}, 0, {-8720, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -949}, 0, {-8464, 1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -949}, 0, {-8720, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -949}, 0, {-8720, 1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -355}, 0, {-8208, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -218}, 0, {-8208, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -218}, 0, {-8464, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -366}, 0, {-8464, -7696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -366}, 0, {-8208, -7696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -366}, 0, {-8208, -7696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -366}, 0, {-8464, -7696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -221}, 0, {-8464, -6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -218}, 0, {-8208, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -218}, 0, {-8464, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -218}, 0, {-8720, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -221}, 0, {-8720, -6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -116, 205}, 0, {-8720, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -150, 228}, 0, {-8208, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, 228}, 0, {-8720, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -116, 205}, 0, {-8208, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, 205}, 0, {-8720, 112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -105, 205}, 0, {-8208, 112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, 205}, 0, {-8720, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, 205}, 0, {-8208, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -116, 205}, 0, {-6160, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-408, -116, 205}, 0, {-4112, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -93, 205}, 0, {-16, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -116, 205}, 0, {-16, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{49, -116, 205}, 0, {1008, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -116, 205}, 0, {3056, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 205}, 0, {7152, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -116, 205}, 0, {7152, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -150, 228}, 0, {3056, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -116, 205}, 0, {3056, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -116, 205}, 0, {7152, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -150, 228}, 0, {7152, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -116, 205}, 0, {-16, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{49, -116, 205}, 0, {1008, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{49, -150, 228}, 0, {1008, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -150, 228}, 0, {-16, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-408, -150, 228}, 0, {-4112, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-408, -116, 205}, 0, {-4112, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -606}, 0, {-8464, -10384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -606}, 0, {-8208, -10384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -755}, 0, {-8208, -12048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -755}, 0, {-8464, -12048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -946}, 0, {-8464, -14192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -801}, 0, {-8464, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -801}, 0, {-8208, -12560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -949}, 0, {-8208, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -949}, 0, {-8464, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -946}, 0, {-8720, -14192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -949}, 0, {-8720, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -412}, 0, {-8208, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -412}, 0, {-8464, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -561}, 0, {-8464, -9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -561}, 0, {-8208, -9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -116, 205}, 0, {-6160, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -116, 205}, 0, {-8208, 240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -105, 205}, 0, {-8208, 112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -150, 228}, 0, {-6160, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -150, 228}, 0, {-8208, 624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -505, -343}, 0, {-2064, 6288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -607, -343}, 0, {-2064, 7440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -338}, 0, {-2320, 7440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -335}, 0, {-2448, 7440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -505, -323}, 0, {-2960, 6288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -323}, 0, {-2960, 7440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -946}, 0, {-8464, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -946}, 0, {-8720, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -946}, 0, {-8720, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -946}, 0, {-8464, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -946}, 0, {-8720, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -221}, 0, {-8464, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -221}, 0, {-8720, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -221}, 0, {-8720, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -221}, 0, {-8464, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -221}, 0, {-8720, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -412}, 0, {-8464, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -412}, 0, {-8208, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -561}, 0, {-8208, -9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -561}, 0, {-8464, -9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -606}, 0, {-8208, -10384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -606}, 0, {-8464, -10384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -755}, 0, {-8464, -12048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -755}, 0, {-8208, -12048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -949}, 0, {-8720, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -949}, 0, {-8464, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -946}, 0, {-8464, -14192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -946}, 0, {-8720, -14192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -218}, 0, {-8464, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -218}, 0, {-8464, 1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -218}, 0, {-8720, 1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -218}, 0, {-8720, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -221}, 0, {-8720, -6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -221}, 0, {-8464, -6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -218}, 0, {-8464, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -218}, 0, {-8720, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_8[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 16, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(6, 7, 3, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(10, 13, 12, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 31, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(10, 9, 7, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 47, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 4, 7, 0), + gsSP1Triangle(8, 9, 4, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 61, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(4, 5, 0, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 12, 11, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 77, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 93, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_8 + 109, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_9[111] = { + {{{-820, -93, -1418}, 0, {-8720, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, -1395}, 0, {-8720, -14352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, -1395}, 0, {-8208, -14352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, -1418}, 0, {-8208, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -93, -1395}, 0, {-16, -14352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -93, -1418}, 0, {-16, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -1395}, 0, {7152, -14352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -1418}, 0, {7152, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 205}, 0, {1264, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 228}, 0, {1008, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, 228}, 0, {1008, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 190}, 0, {1435, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -218}, 0, {6000, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -218}, 0, {6000, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -116, 205}, 0, {1264, 3465}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 137}, 0, {2032, 9814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 137}, 0, {2032, 9814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -218}, 0, {6000, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, -218}, 0, {6000, 9814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -218}, 0, {6000, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, 137}, 0, {2032, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -116, 205}, 0, {1264, 3465}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -150, 228}, 0, {1008, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 185}, 0, {1488, 9814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 228}, 0, {1008, 9814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 205}, 0, {1264, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 190}, 0, {1435, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -218}, 0, {6128, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -218}, 0, {7152, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, 228}, 0, {7152, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, 205}, 0, {-16, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, 228}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, 228}, 0, {-8208, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, 205}, 0, {-16, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, 228}, 0, {-16, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, 205}, 0, {-8208, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, 228}, 0, {-8720, -1654}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -218}, 0, {-8720, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -218}, 0, {-8208, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -218}, 0, {-16, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -218}, 0, {6128, -9642}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -949}, 0, {-8208, -6365}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -949}, 0, {-8720, -6365}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -1418}, 0, {-8720, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -1418}, 0, {-8208, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -1418}, 0, {-16, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -949}, 0, {-16, -6365}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -949}, 0, {6128, -6365}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -949}, 0, {6128, -6365}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -1418}, 0, {-16, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 216, -1418}, 0, {7024, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 216, -949}, 0, {7024, -6365}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -949}, 0, {7152, -6365}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -1418}, 0, {7152, -14762}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -1395}, 0, {-8720, 3261}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, -1395}, 0, {-8208, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, -1395}, 0, {-8720, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -105, -1395}, 0, {-8208, 3261}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -116, -1395}, 0, {-8720, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -116, -1395}, 0, {-8208, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1418}, 0, {-8720, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -150, -1418}, 0, {-8208, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -150, -1418}, 0, {-528, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -116, -1395}, 0, {-16, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -150, -1418}, 0, {-528, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -150, -1418}, 0, {-16, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -116, -1395}, 0, {-16, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -150, -1418}, 0, {7152, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -116, -1395}, 0, {7152, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -1395}, 0, {7152, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -93, -1395}, 0, {-16, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -105, -1395}, 0, {-8208, 3261}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, -1395}, 0, {-8208, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -116, -1395}, 0, {-8208, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -812}, 0, {6128, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -812}, 0, {7152, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -355}, 0, {7152, -3907}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, 216, -355}, 0, {6128, -3907}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -812}, 0, {-16, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -355}, 0, {-16, -3907}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -355}, 0, {-16, -3907}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -812}, 0, {-8208, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -812}, 0, {-16, -12099}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -355}, 0, {-8208, -3907}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1212}, 0, {17136, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -1395}, 0, {19184, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -116, -1395}, 0, {19184, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1395}, 0, {19184, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1212}, 0, {17136, 1315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1418}, 0, {19440, 1315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -1418}, 0, {19440, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -949}, 0, {14192, -2474}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1144}, 0, {16368, 1315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -949}, 0, {14192, 1315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -949}, 0, {14192, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1144}, 0, {16368, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -949}, 0, {14192, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -949}, 0, {14192, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1144}, 0, {16368, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -1395}, 0, {19184, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1212}, 0, {17136, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -116, -1395}, 0, {19184, 3466}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -150, -1418}, 0, {19440, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -1418}, 0, {19440, 5718}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -1418}, 0, {19440, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -949}, 0, {14192, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1418}, 0, {19440, 1315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1418}, 0, {19440, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1395}, 0, {19184, 1930}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -1418}, 0, {19440, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -1395}, 0, {19184, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_9[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_9 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_9 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 0, 6, 0), + gsSP1Triangle(0, 7, 6, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(9, 10, 5, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(14, 11, 13, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_9 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(3, 6, 7, 0), + gsSP1Triangle(3, 7, 1, 0), + gsSP1Triangle(1, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(9, 12, 13, 0), + gsSP1Triangle(9, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_9 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(14, 15, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_9 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 6, 2, 0), + gsSP1Triangle(7, 2, 6, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(7, 9, 2, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_9 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 5, 4, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(8, 12, 11, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(14, 12, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_9 + 96, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 7, 3, 0), + gsSP1Triangle(3, 7, 8, 0), + gsSP1Triangle(9, 3, 8, 0), + gsSP1Triangle(9, 0, 3, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_10[195] = { + {{{758, -573, -806}, 0, {10288, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -806}, 0, {10800, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -806}, 0, {10800, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -806}, 0, {10288, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -778}, 0, {10640, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -778}, 0, {10640, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -242, -778}, 0, {10288, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -276, -778}, 0, {10288, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -361}, 0, {7600, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -355}, 0, {7536, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -355}, 0, {7536, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -361}, 0, {7600, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -361}, 0, {10288, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -361}, 0, {10800, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -355}, 0, {10800, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -355}, 0, {10288, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -806}, 0, {12688, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -812}, 0, {12752, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -812}, 0, {12752, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -806}, 0, {12688, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -355}, 0, {10288, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -355}, 0, {10800, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -361}, 0, {10800, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -361}, 0, {10288, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -806}, 0, {10800, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -812}, 0, {10800, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -812}, 0, {10704, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -806}, 0, {10704, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -355}, 0, {10800, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -355}, 0, {10704, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -361}, 0, {10704, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -361}, 0, {10800, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -778}, 0, {12368, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -778}, 0, {12368, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -806}, 0, {12688, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -812}, 0, {12752, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -812}, 0, {12752, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -389}, 0, {8016, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -389}, 0, {8016, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -361}, 0, {7696, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -355}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -355}, 0, {7632, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{781, -607, -389}, 0, {10480, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -607, -389}, 0, {10288, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -573, -389}, 0, {10288, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -389}, 0, {10640, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -389}, 0, {10640, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -361}, 0, {10800, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -361}, 0, {10288, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -355}, 0, {10288, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -355}, 0, {10800, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -812}, 0, {12656, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -812}, 0, {12656, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -806}, 0, {12592, 3952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -806}, 0, {12592, 4592}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -778}, 0, {10192, -11312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -812}, 0, {10192, -11696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -242, -812}, 0, {11552, -11696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -242, -778}, 0, {11872, -11312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -709}, 0, {10192, -10544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -663}, 0, {10192, -10032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -778}, 0, {12312, -11312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -503}, 0, {10192, -8240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -503}, 0, {10192, -8240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -778}, 0, {12312, -11312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -355}, 0, {12312, -6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -355}, 0, {12432, -6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {12432, -11696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -242, -812}, 0, {12312, -11696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -458}, 0, {10192, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -355}, 0, {10192, -6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -806}, 0, {12688, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -806}, 0, {12688, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -812}, 0, {12752, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -812}, 0, {12752, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -806}, 0, {12592, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -812}, 0, {12656, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -812}, 0, {12656, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -806}, 0, {12592, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -607, -355}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -573, -355}, 0, {7632, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -381}, 0, {7920, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -607, -389}, 0, {8016, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -573, -389}, 0, {8016, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -242, -812}, 0, {12752, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -276, -812}, 0, {12752, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -786}, 0, {12464, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -242, -778}, 0, {12368, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -276, -778}, 0, {12368, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -573, -389}, 0, {10288, -8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -361}, 0, {10640, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -389}, 0, {10640, -8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -381}, 0, {10224, -7952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -361}, 0, {10224, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -573, -355}, 0, {10032, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -361}, 0, {10224, -7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -573, -355}, 0, {10032, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -355}, 0, {10224, -7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -361}, 0, {10288, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -573, -361}, 0, {10704, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -361}, 0, {10288, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -361}, 0, {10800, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -361}, 0, {10800, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -361}, 0, {7600, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -355}, 0, {7536, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -355}, 0, {7536, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -361}, 0, {7600, 7280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -806}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -276, -812}, 0, {10032, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -812}, 0, {10224, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -786}, 0, {10224, -12496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -806}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -806}, 0, {10640, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -786}, 0, {10224, -12496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -276, -778}, 0, {10288, -12400}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -778}, 0, {10640, -12400}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -355}, 0, {7632, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -361}, 0, {7696, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -361}, 0, {7696, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -355}, 0, {7632, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -355}, 0, {7632, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -355}, 0, {7632, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -361}, 0, {7696, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -361}, 0, {7696, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -361}, 0, {10800, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -361}, 0, {10288, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -361}, 0, {10288, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -361}, 0, {10800, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -361}, 0, {10288, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -361}, 0, {10800, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -806}, 0, {10800, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -806}, 0, {10800, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -276, -806}, 0, {10704, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -806}, 0, {10288, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -276, -806}, 0, {10288, 3440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -812}, 0, {10288, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -516, -806}, 0, {10288, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -806}, 0, {10800, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -812}, 0, {10800, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -812}, 0, {10800, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -812}, 0, {11824, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -815}, 0, {11824, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -815}, 0, {10800, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -806}, 0, {10288, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -333, -812}, 0, {10288, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -812}, 0, {10800, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -806}, 0, {10800, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -812}, 0, {10288, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -812}, 0, {10800, -12784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -806}, 0, {10800, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{758, -573, -806}, 0, {10288, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -36, -721}, 0, {11280, 272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -36, -446}, 0, {8208, 272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -82, -446}, 0, {8208, 784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -82, -721}, 0, {11280, 784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -312}, 0, {6640, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -266}, 0, {6128, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -312}, 0, {6640, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -266}, 0, {6128, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -266}, 0, {6896, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -266}, 0, {7088, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -266}, 0, {6896, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -266}, 0, {7088, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -312}, 0, {7088, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -312}, 0, {6896, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -312}, 0, {7088, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -312}, 0, {6896, 2544}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -266}, 0, {6896, -6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -312}, 0, {7088, -6672}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -479, -266}, 0, {7088, -6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -312}, 0, {6896, -6672}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -312}, 0, {5712, -10768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -266}, 0, {5904, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -312}, 0, {5904, -10768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -266}, 0, {5712, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -242, -355}, 0, {7120, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -425, -812}, 0, {12240, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -242, -812}, 0, {12240, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -425, -355}, 0, {7120, 5872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -425, -812}, 0, {12240, 6000}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -607, -355}, 0, {7120, 8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -607, -812}, 0, {12240, 8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -425, -355}, 0, {7120, 6000}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -315}, 0, {6896, 2448}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -315}, 0, {7088, 2128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -315}, 0, {6896, 2128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -315}, 0, {7088, 2448}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -338}, 0, {7088, 2448}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -338}, 0, {6896, 2128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -338}, 0, {7088, 2128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {6896, 2448}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -338}, 0, {6896, -6928}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -315}, 0, {7088, -6672}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -338}, 0, {7088, -6928}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -315}, 0, {6896, -6672}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_10[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 32, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 47, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 8, 11, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 63, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(1, 5, 4, 0), + gsSP1Triangle(2, 6, 0, 0), + gsSP1Triangle(2, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 79, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 95, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 6, 4, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 111, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 127, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 143, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 159, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 175, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_10 + 191, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_11[60] = { + {{{2106, -242, -355}, 0, {8106, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -298}, 0, {7325, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -298}, 0, {7325, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -355}, 0, {8106, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -446}, 0, {9355, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -812}, 0, {14350, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -721}, 0, {13101, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -812}, 0, {14350, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -219, -869}, 0, {15130, 3051}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -869}, 0, {15130, 3363}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -173, -446}, 0, {9355, 2426}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -36, -446}, 0, {9355, 553}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -36, -721}, 0, {13101, 553}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -173, -721}, 0, {13101, 2426}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -355}, 0, {8074, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -550, -298}, 0, {7293, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -550, -298}, 0, {7293, 16475}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -596, -355}, 0, {8074, 16475}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -596, -355}, 0, {8074, 17255}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -550, -298}, 0, {7293, 17255}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -550, -298}, 0, {7293, 24436}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -596, -355}, 0, {8074, 24436}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -355}, 0, {8074, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -596, -355}, 0, {8074, 25216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -550, -298}, 0, {7293, 25216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -550, -298}, 0, {7293, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -812}, 0, {14318, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -550, -869}, 0, {15098, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -550, -869}, 0, {15098, 25216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -596, -812}, 0, {14318, 25216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -355}, 0, {8106, 26290}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -242, -812}, 0, {14350, 26290}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -242, -812}, 0, {14350, 29100}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -242, -355}, 0, {8106, 29100}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -355}, 0, {-10346, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -355}, 0, {-10502, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -596, -355}, 0, {-10346, 25216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -596, -355}, 0, {-10346, 24436}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -596, -355}, 0, {-10346, 17255}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -607, -355}, 0, {-10502, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -596, -355}, 0, {-10346, 16475}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -355}, 0, {-10346, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -812}, 0, {-10346, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -607, -812}, 0, {-10502, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -596, -812}, 0, {-10346, 16475}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -596, -812}, 0, {-10346, 17255}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -812}, 0, {-10502, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -596, -812}, 0, {-10346, 17255}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -607, -812}, 0, {-10502, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -596, -812}, 0, {-10346, 24436}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -596, -812}, 0, {-10346, 25216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -596, -812}, 0, {-10346, 28338}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -550, -869}, 0, {15098, 16475}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -550, -869}, 0, {15098, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -596, -812}, 0, {14318, 13197}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -596, -812}, 0, {14318, 16475}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -596, -812}, 0, {14318, 24436}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -550, -869}, 0, {15098, 24436}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -550, -869}, 0, {15098, 17255}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -596, -812}, 0, {14318, 17255}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_11[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_11 + 0, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(0, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(5, 8, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_11 + 14, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_11 + 30, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(8, 7, 5, 0), + gsSP1Triangle(8, 5, 9, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_11 + 46, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 12, 13, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_12[262] = { + {{{555, -470, 217}, 0, {6672, -1168}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 215}, 0, {6672, -1189}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{556, -470, 216}, 0, {6682, -1178}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -607, 177}, 0, {6800, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -607, 208}, 0, {6448, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -476, 208}, 0, {6448, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -476, 177}, 0, {6800, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -522, -666}, 0, {22224, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -666}, 0, {22224, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -663}, 0, {22160, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -522, -663}, 0, {22160, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -666}, 0, {22288, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -669}, 0, {22352, -3664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -669}, 0, {22352, -2800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -522, -666}, 0, {22288, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -669}, 0, {22352, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -467, 185}, 0, {7024, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -470, 185}, 0, {7024, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -470, 185}, 0, {6992, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -467, 185}, 0, {6992, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{548, -473, 209}, 0, {6688, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{548, -476, 209}, 0, {6688, 6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -476, 208}, 0, {6704, 6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -473, 208}, 0, {6704, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -519, -683}, 0, {-14558, 22512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -519, -658}, 0, {-14558, 21936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -516, -658}, 0, {-14487, 21936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -516, -683}, 0, {-14487, 22512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -743}, 0, {-1936, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -746}, 0, {-2096, -11824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -746}, 0, {-1936, -11824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -743}, 0, {-2096, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -746}, 0, {-2096, -11824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -743}, 0, {-2096, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -499, -743}, 0, {-2128, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -749}, 0, {-2096, -11856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -499, -752}, 0, {-2128, -11888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -752}, 0, {-2096, -11888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -749}, 0, {-1936, -11856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -752}, 0, {-1936, -11888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -666}, 0, {22288, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -669}, 0, {22352, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-157, -522, -669}, 0, {22352, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-157, -522, -661}, 0, {22160, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -663}, 0, {22224, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -661}, 0, {22160, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -473, 208}, 0, {3945, -4686}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -473, 177}, 0, {3945, -5184}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -473, 162}, 0, {3697, -5162}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -473, 194}, 0, {3697, -4664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{548, -473, 209}, 0, {3945, -4664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -672}, 0, {-13552, 24176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -658}, 0, {-13552, 23856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-155, -519, -659}, 0, {-13616, 23888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-155, -519, -671}, 0, {-13616, 24144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-157, -522, -669}, 0, {-13680, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-157, -522, -661}, 0, {-13680, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{556, -470, 216}, 0, {1146, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -470, 185}, 0, {1488, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -467, 185}, 0, {1488, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -467, 217}, 0, {1136, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 217}, 0, {1136, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 215}, 0, {1157, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 217}, 0, {1136, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -467, 217}, 0, {1136, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -467, 214}, 0, {1168, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 214}, 0, {1168, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -470, 185}, 0, {1488, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -467, 185}, 0, {1488, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -476, 177}, 0, {1200, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -607, 162}, 0, {1360, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -607, 177}, 0, {1200, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -476, 162}, 0, {1360, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{535, -607, 191}, 0, {1038, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -476, 194}, 0, {1008, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -607, 194}, 0, {1008, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{548, -476, 209}, 0, {832, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -607, 228}, 0, {624, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -607, 228}, 0, {624, 8496}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{548, -476, 209}, 0, {832, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -476, 228}, 0, {624, 7024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -473, 228}, 0, {624, 6992}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{548, -473, 209}, 0, {832, 6992}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 217}, 0, {752, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -470, 194}, 0, {1008, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -473, 194}, 0, {1008, 6992}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -470, 162}, 0, {1360, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -473, 162}, 0, {1360, 6992}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -473, 177}, 0, {1200, 6992}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -470, 177}, 0, {1200, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -470, 228}, 0, {624, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -755}, 0, {-13168, 24176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -499, -752}, 0, {-13040, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -499, -743}, 0, {-13040, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -755}, 0, {-13168, 24176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -499, -743}, 0, {-13040, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -741}, 0, {-13168, 23856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -669}, 0, {22352, -2864}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -669}, 0, {22352, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -661}, 0, {22160, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -661}, 0, {22160, -2864}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -749}, 0, {23824, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -499, -752}, 0, {23888, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -752}, 0, {23888, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -499, -743}, 0, {23696, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -746}, 0, {23760, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -743}, 0, {23696, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -467, 185}, 0, {6992, -1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -467, 217}, 0, {6672, -1168}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -467, 185}, 0, {7024, -1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{583, -467, 185}, 0, {6992, -1520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -467, 214}, 0, {6672, -1200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -467, 217}, 0, {6672, -1168}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -672}, 0, {-13552, -2832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -672}, 0, {-13552, -2320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-155, -519, -671}, 0, {-13616, -2352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -671}, 0, {-13616, -2800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -669}, 0, {-13680, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-157, -522, -669}, 0, {-13680, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -752}, 0, {-2096, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -499, -752}, 0, {-2128, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -755}, 0, {-2160, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -755}, 0, {-1904, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -752}, 0, {-1936, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -499, -752}, 0, {11824, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -499, -743}, 0, {11728, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -741}, 0, {11696, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -755}, 0, {11856, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -746}, 0, {23696, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -746}, 0, {23696, -2832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -502, -743}, 0, {23632, -2800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -502, -743}, 0, {23632, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -746}, 0, {23696, -3408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -746}, 0, {23696, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -749}, 0, {23760, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -749}, 0, {23760, -3408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -502, -752}, 0, {23824, -2800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -502, -752}, 0, {23824, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -749}, 0, {23760, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -749}, 0, {23760, -2832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -749}, 0, {23760, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -505, -749}, 0, {23760, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -502, -752}, 0, {23824, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -505, -746}, 0, {23696, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -505, -746}, 0, {23696, -3024}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -502, -743}, 0, {23632, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -749}, 0, {23760, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -749}, 0, {23760, -3408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -746}, 0, {23696, -3408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -746}, 0, {23696, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -502, -752}, 0, {-13104, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -755}, 0, {-13168, 24176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -749}, 0, {-13168, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -501, -753}, 0, {-13083, 24133}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -752}, 0, {-13040, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -749}, 0, {-13040, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -502, -743}, 0, {-13104, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -743}, 0, {-13040, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -746}, 0, {-13040, 23984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -501, -743}, 0, {-13082, 23898}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -741}, 0, {-13168, 23856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -746}, 0, {-13168, 23984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -683}, 0, {-14558, -3920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -519, -683}, 0, {-14558, -4880}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -516, -683}, 0, {-14487, -4880}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -683}, 0, {-14487, -3856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -683}, 0, {-14558, -3856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -522, -663}, 0, {-13232, 23984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -669}, 0, {-13168, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -522, -666}, 0, {-13232, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -661}, 0, {-13168, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -658}, 0, {-13552, -2832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-155, -519, -659}, 0, {-13616, -2352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -516, -658}, 0, {-13552, -2320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -659}, 0, {-13616, -2800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -661}, 0, {-13680, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-157, -522, -661}, 0, {-13680, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -669}, 0, {-14558, 22192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -683}, 0, {-14558, 22512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -683}, 0, {-14487, 22512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -658}, 0, {-14487, 21936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -661}, 0, {-14558, 22000}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -658}, 0, {-14558, 21936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -499, -752}, 0, {-13040, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -501, -753}, 0, {-13083, -2789}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -752}, 0, {-13040, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -755}, 0, {-13168, -2320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -755}, 0, {-13168, -2320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -755}, 0, {-13168, -2832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -501, -753}, 0, {-13083, -2789}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-172, -501, -743}, 0, {-13082, -2789}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -505, -741}, 0, {-13168, -2832}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -741}, 0, {-13168, -2320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-154, -499, -743}, 0, {-13040, -2384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-171, -499, -743}, 0, {-13040, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -669}, 0, {-13616, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -669}, 0, {-13680, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -666}, 0, {-13680, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -671}, 0, {-13616, 24144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -672}, 0, {-13552, 24176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -661}, 0, {-13616, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -658}, 0, {-13552, 23856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -659}, 0, {-13616, 23888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -661}, 0, {-13616, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -661}, 0, {-13680, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -659}, 0, {-13616, 23888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -663}, 0, {-13680, 23984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-174, -522, -663}, 0, {21584, -2768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-175, -519, -661}, 0, {21520, -2800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -661}, 0, {21520, -3664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -522, -663}, 0, {21584, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -661}, 0, {21520, -3728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -473, 208}, 0, {6448, 6992}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -470, 208}, 0, {6448, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 202}, 0, {6512, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{572, -470, 185}, 0, {6704, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -473, 177}, 0, {6800, 6992}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -470, 177}, 0, {6800, 6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-220, -493, -741}, 0, {-2160, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -499, -743}, 0, {-2128, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -743}, 0, {-2096, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -741}, 0, {-1904, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -743}, 0, {-1936, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -741}, 0, {11696, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -743}, 0, {11728, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -746}, 0, {11760, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -749}, 0, {11792, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-197, -493, -755}, 0, {11856, 6512}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-200, -499, -752}, 0, {11824, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -502, -743}, 0, {-13168, 23920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -746}, 0, {-13104, 23984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -505, -746}, 0, {-13232, 23984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -505, -749}, 0, {-13232, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -749}, 0, {-13104, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -499, -749}, 0, {-13104, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -502, -752}, 0, {-13168, 24112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -505, -749}, 0, {-13232, 24048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -516, -658}, 0, {-14487, -4880}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -519, -658}, 0, {-14558, -4880}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -519, -658}, 0, {-14558, -3920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -658}, 0, {-14487, -3856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -519, -658}, 0, {-14558, -3856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -692}, 0, {22512, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -527, -675}, 0, {22128, 12528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -527, -692}, 0, {22512, 12528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -675}, 0, {22128, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -527, -675}, 0, {-3024, 12528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -675}, 0, {-2896, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -675}, 0, {-3024, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -527, -675}, 0, {-2896, 12528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -527, -692}, 0, {-2896, 12528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -692}, 0, {-3024, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -692}, 0, {-2896, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -527, -692}, 0, {-3024, 12528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -527, -675}, 0, {-3024, -20560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -527, -692}, 0, {-2896, -20944}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -527, -675}, 0, {-2896, -20560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -527, -692}, 0, {-3024, -20944}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -692}, 0, {-3024, -20944}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -675}, 0, {-2896, -20560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-177, -516, -692}, 0, {-2896, -20944}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -675}, 0, {-3024, -20560}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_12[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 14, 12, 0), + gsSP1Triangle(14, 15, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 32, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 3, 5, 0), + gsSP1Triangle(6, 5, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(11, 12, 8, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 46, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 8, 7, 0), + gsSP1Triangle(9, 7, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(14, 15, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 62, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 10, 8, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(15, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 78, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(3, 1, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(5, 12, 3, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 94, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 10, 8, 0), + gsSP1Triangle(7, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 110, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(7, 5, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(12, 13, 9, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 124, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(8, 7, 6, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 140, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 1, 0, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(2, 6, 7, 0), + gsSP1Triangle(8, 9, 5, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(14, 10, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 156, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(0, 4, 3, 0), + gsSP1Triangle(0, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(9, 10, 6, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 14, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 171, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(4, 5, 1, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(10, 6, 9, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 187, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(6, 7, 3, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 11, 8, 0), + gsSP1Triangle(12, 8, 13, 0), + gsSP1Triangle(13, 14, 12, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 203, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(12, 13, 9, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 218, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(8, 9, 5, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 234, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_12 + 250, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_13[24] = { + {{{1821, -596, -355}, 0, {13861, -5083}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -550, -298}, 0, {13861, -4656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -550, -298}, 0, {14288, -4656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -596, -355}, 0, {14288, -5083}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -596, -812}, 0, {14800, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1878, -550, -869}, 0, {14800, -9211}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -550, -869}, 0, {14373, -9211}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1821, -596, -812}, 0, {14373, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -596, -812}, 0, {10192, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -550, -869}, 0, {10192, -9211}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -550, -869}, 0, {9765, -9211}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -596, -812}, 0, {9765, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -596, -355}, 0, {9765, -5083}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1238, -550, -298}, 0, {9765, -4656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -550, -298}, 0, {10192, -4656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1295, -596, -355}, 0, {10192, -5083}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -709}, 0, {7152, -11280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -709}, 0, {7664, -11280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -663}, 0, {7664, -10768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -663}, 0, {7152, -10768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -503}, 0, {7152, -9232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -503}, 0, {7664, -9232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{643, -242, -458}, 0, {7664, -8720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -458}, 0, {7152, -8720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_13[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_13 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_13 + 16, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_14[84] = { + {{{-774, 170, -355}, 0, {7536, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -218}, 0, {6000, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -218}, 0, {6000, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -355}, 0, {7536, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -366}, 0, {7664, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -412}, 0, {8176, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -561}, 0, {9840, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -812}, 0, {12656, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -606}, 0, {10352, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -755}, 0, {12016, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -801}, 0, {12528, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -812}, 0, {12656, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -949}, 0, {14192, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -949}, 0, {14192, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -355}, 0, {7536, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -812}, 0, {12656, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, 228}, 0, {-16, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, 228}, 0, {7152, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, 228}, 0, {7152, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -93, 228}, 0, {-16, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, 228}, 0, {-8208, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, 228}, 0, {-8208, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, 228}, 0, {-8720, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, 228}, 0, {-8720, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, 228}, 0, {-8720, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, 228}, 0, {1008, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, 205}, 0, {1264, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -116, 205}, 0, {1264, -400}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -221}, 0, {6032, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -218}, 0, {6000, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -221}, 0, {6032, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, 205}, 0, {1264, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, 205}, 0, {1264, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, 205}, 0, {1264, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -218}, 0, {6000, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -218}, 0, {6000, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, 205}, 0, {1264, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -218}, 0, {6000, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, 228}, 0, {1008, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, 228}, 0, {1008, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, 228}, 0, {1008, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -949}, 0, {14192, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -946}, 0, {14160, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -946}, 0, {14160, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1395}, 0, {19184, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -116, -1395}, 0, {19184, -400}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1418}, 0, {19440, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -1395}, 0, {19184, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -949}, 0, {14192, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -105, -1395}, 0, {19184, -528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, -1395}, 0, {19184, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -949}, 0, {14192, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -1395}, 0, {19184, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, -1418}, 0, {19440, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -1418}, 0, {19440, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -1418}, 0, {19440, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -949}, 0, {14192, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -218}, 0, {-8208, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -218}, 0, {-8208, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -218}, 0, {-8720, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -218}, 0, {-8720, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -218}, 0, {-8464, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -218}, 0, {-8208, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -93, -1418}, 0, {-16, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -93, -1418}, 0, {7152, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1418}, 0, {7152, -1360}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1418}, 0, {7152, -1744}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 216, -1418}, 0, {7024, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 216, -1418}, 0, {7152, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, 216, -1418}, 0, {-16, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -1418}, 0, {-8208, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -1418}, 0, {-8208, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -1418}, 0, {-8720, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -1418}, 0, {-8720, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -93, -1418}, 0, {-8720, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -93, -1418}, 0, {-8208, -656}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -949}, 0, {-8720, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 216, -949}, 0, {-8208, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -949}, 0, {-8208, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -59, -949}, 0, {-8720, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, 216, -949}, 0, {-8720, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, 170, -949}, 0, {-8208, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -949}, 0, {-8464, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -949}, 0, {-8208, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_14[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_14 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(0, 4, 5, 0), + gsSP1Triangle(5, 6, 0, 0), + gsSP1Triangle(6, 7, 0, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(10, 11, 7, 0), + gsSP1Triangle(12, 7, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(7, 14, 0, 0), + gsSP1Triangle(7, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_14 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(0, 4, 5, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(5, 6, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(13, 15, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_14 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(4, 7, 8, 0), + gsSP1Triangle(4, 8, 0, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 13, 9, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(13, 15, 9, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_14 + 48, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 4, 2, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 4, 7, 0), + gsSP1Triangle(8, 3, 4, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(12, 13, 9, 0), + gsSP1Triangle(13, 14, 9, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_14 + 63, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(4, 6, 0, 0), + gsSP1Triangle(6, 7, 0, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(7, 10, 11, 0), + gsSP1Triangle(7, 11, 12, 0), + gsSP1Triangle(7, 12, 0, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_14 + 79, 5, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_15[9] = { + {{{-214, -516, -683}, 0, {-6160, -29744}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -516, -683}, 0, {-8208, -29744}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -516, -658}, 0, {-8208, -28636}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -516, -658}, 0, {-6160, -28636}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -476, 208}, 0, {6544, -1296}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{548, -476, 209}, 0, {6528, -1280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -476, 194}, 0, {6352, -1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -476, 162}, 0, {6704, -1808}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -476, 177}, 0, {6896, -1648}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_15[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_15 + 0, 9, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(7, 8, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_16[32] = { + {{{895, -767, -812}, 0, {-14403, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -812}, 0, {-11536, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -812}, 0, {-11536, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -767, -812}, 0, {-14403, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -815}, 0, {-4982, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -815}, 0, {-4982, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -815}, 0, {-11536, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -815}, 0, {-11536, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -82, -812}, 0, {21027, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -82, -812}, 0, {21027, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -82, -355}, 0, {12835, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -82, -355}, 0, {12835, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -355}, 0, {-11536, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -767, -355}, 0, {-14403, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -767, -355}, 0, {-14403, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -355}, 0, {-11536, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -573, -355}, 0, {-10922, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -355}, 0, {-11536, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -355}, 0, {-11536, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -573, -355}, 0, {-10922, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -516, -355}, 0, {-9898, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -516, -355}, 0, {-9898, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -333, -355}, 0, {-6621, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -333, -355}, 0, {-6621, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -276, -355}, 0, {-5597, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -276, -355}, 0, {-5597, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {-4982, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -355}, 0, {-4982, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -767, -355}, 0, {12835, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -767, -812}, 0, {21027, 10704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -767, -812}, 0, {21027, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -767, -355}, 0, {12835, 9680}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_16[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_16 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_16 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 5, 4, 0), + gsSP1Triangle(6, 4, 7, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_17[12] = { + {{{506, -470, 219}, 0, {1673, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 205}, 0, {2028, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 205}, 0, {2028, 20464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 219}, 0, {1673, 20464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 228}, 0, {1460, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 228}, 0, {1460, 20464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{589, -470, 137}, 0, {16948, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{575, -607, 137}, 0, {16592, 20464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{575, -470, 137}, 0, {16592, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{589, -607, 137}, 0, {16948, 20464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -470, 137}, 0, {17161, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, 137}, 0, {17161, 20464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_17[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_17 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(9, 6, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_18[20] = { + {{{506, -476, -315}, 0, {13840, 12752}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -476, -338}, 0, {14352, 12752}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -502, -338}, 0, {14352, 13328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -502, -315}, 0, {13840, 13328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -675}, 0, {22128, 13296}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -527, -692}, 0, {22512, 13552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -527, -675}, 0, {22128, 13552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -516, -692}, 0, {22512, 13296}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -315}, 0, {13872, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {14384, 12912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -315}, 0, {13872, 12912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -338}, 0, {14384, 12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -338}, 0, {6928, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -315}, 0, {6672, 5520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -338}, 0, {6928, 5520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -433, -315}, 0, {6672, 5200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -315}, 0, {5872, -6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -338}, 0, {6064, -6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{523, -462, -315}, 0, {6064, -6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -462, -338}, 0, {5872, -6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_18[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_18 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_18 + 16, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_19[124] = { + {{{-294, -607, -598}, 0, {-16, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -598}, 0, {368, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -598}, 0, {368, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -598}, 0, {496, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -607, -598}, 0, {880, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -598}, 0, {496, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -643}, 0, {12464, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -609}, 0, {12080, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -609}, 0, {12080, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -609}, 0, {496, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -607, -609}, 0, {880, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -609}, 0, {496, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -609}, 0, {12080, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -609}, 0, {12080, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -643}, 0, {12464, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -609}, 0, {368, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -609}, 0, {368, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -607, -609}, 0, {-16, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -563}, 0, {11568, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -598}, 0, {11952, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -598}, 0, {11952, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -598}, 0, {11952, 6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -598}, 0, {11952, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -563}, 0, {11568, 6768}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -609}, 0, {368, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -609}, 0, {496, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -643}, 0, {496, -12752}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -643}, 0, {368, -12752}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -556, -609}, 0, {496, -12432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -556, -609}, 0, {368, -12432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -556, -598}, 0, {368, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -556, -609}, 0, {496, -12432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -556, -598}, 0, {368, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -556, -598}, 0, {496, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -609}, 0, {752, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -609}, 0, {624, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -556, -609}, 0, {624, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -556, -609}, 0, {752, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -598}, 0, {368, -12240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -609}, 0, {368, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -607, -609}, 0, {-16, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -607, -598}, 0, {-16, -12240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -609}, 0, {496, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -598}, 0, {496, -12240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -607, -598}, 0, {880, -12240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -607, -609}, 0, {880, -12368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -598}, 0, {12016, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -609}, 0, {12144, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -556, -609}, 0, {12144, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -556, -598}, 0, {12016, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -556, -598}, 0, {752, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -556, -598}, 0, {624, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -598}, 0, {624, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -598}, 0, {752, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -556, -598}, 0, {12016, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -556, -609}, 0, {12144, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -609}, 0, {12144, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -598}, 0, {12016, 6704}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -590, -598}, 0, {496, -12240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -590, -598}, 0, {368, -12240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -563}, 0, {368, -11856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -563}, 0, {496, -11856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -598}, 0, {12016, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -603}, 0, {12080, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -603}, 0, {12080, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -598}, 0, {12016, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -598}, 0, {12016, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -603}, 0, {12080, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -598}, 0, {12016, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -603}, 0, {12080, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -550, -603}, 0, {12080, 6256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -598}, 0, {12016, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -550, -598}, 0, {12016, 6256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -603}, 0, {12080, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -598}, 0, {1936, -13552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -550, -603}, 0, {2000, -13616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -550, -598}, 0, {2000, -13552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -603}, 0, {1936, -13616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -578}, 0, {11344, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -533, -569}, 0, {11248, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -530, -575}, 0, {11312, 6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -572}, 0, {11280, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -533, -569}, 0, {11248, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -578}, 0, {11344, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -530, -575}, 0, {11312, 6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -572}, 0, {11280, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -572}, 0, {-2032, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -533, -569}, 0, {-1776, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -533, -569}, 0, {-2032, 6064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -572}, 0, {-1776, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -545, -578}, 0, {-1776, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -530, -575}, 0, {-2032, 6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-242, -530, -575}, 0, {-1776, 6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-265, -545, -578}, 0, {-2032, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -598}, 0, {12016, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -545, -603}, 0, {12080, 6193}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -545, -598}, 0, {12016, 6193}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -603}, 0, {12080, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -603}, 0, {14192, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -545, -598}, 0, {14128, 3697}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -545, -603}, 0, {14192, 3697}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -598}, 0, {14128, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -598}, 0, {1200, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -598}, 0, {1136, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -598}, 0, {1136, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -550, -598}, 0, {1200, 6256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -598}, 0, {1136, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -550, -603}, 0, {1200, 6256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -556, -603}, 0, {1136, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -603}, 0, {1136, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -545, -603}, 0, {1136, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -522, -603}, 0, {1200, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-208, -550, -603}, 0, {1200, 6256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -522, -603}, 0, {1136, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -545, -598}, 0, {-848, 6193}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -598}, 0, {-784, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -598}, 0, {-784, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -598}, 0, {-848, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -598}, 0, {-784, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -522, -603}, 0, {-848, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -522, -603}, 0, {-784, 5936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -545, -603}, 0, {-784, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-300, -545, -603}, 0, {-848, 6193}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -556, -603}, 0, {-784, 6320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_19[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 0, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 15, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 31, 15, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(3, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 9, 10, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 46, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 62, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 78, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 94, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_19 + 110, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(6, 8, 7, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_20[172] = { + {{{-294, -607, -609}, 0, {-2832, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -609}, 0, {-2448, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -643}, 0, {-2448, -10800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -658}, 0, {-2960, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -658}, 0, {-2448, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -643}, 0, {-2320, -10800}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -658}, 0, {-2320, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -658}, 0, {-1584, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -607, -609}, 0, {-1936, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -609}, 0, {-2320, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -609}, 0, {-1584, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-214, -607, -598}, 0, {-1936, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -598}, 0, {-1584, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -563}, 0, {-2320, -9904}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -598}, 0, {-2320, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -381}, 0, {-1584, -7857}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -381}, 0, {-1584, -7857}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -607, -401}, 0, {-1328, -8080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -598}, 0, {-1584, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -607, -486}, 0, {-816, -9040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-100, -607, -586}, 0, {-656, -10160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -609}, 0, {-1584, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-110, -607, -658}, 0, {-770, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -658}, 0, {-1584, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-114, -607, -686}, 0, {-816, -11280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-160, -607, -772}, 0, {-1328, -12240}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -658}, 0, {-2320, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -658}, 0, {-2448, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -607, -829}, 0, {-2064, -12880}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -658}, 0, {-2960, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -849}, 0, {-2960, -13104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -949}, 0, {-8208, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -849}, 0, {-2960, -13104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -872}, 0, {-2960, -13360}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -949}, 0, {-8208, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -921}, 0, {-2960, -13905}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -607, -849}, 0, {-1968, -13104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -607, -1418}, 0, {-528, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -1418}, 0, {-400, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-189, -607, -827}, 0, {-1653, -12850}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -607, -789}, 0, {-1136, -12432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -736}, 0, {-400, -11838}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -607, -695}, 0, {-592, -11376}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -662}, 0, {-400, -11003}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-87, -607, -658}, 0, {-516, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -601}, 0, {-400, -10320}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -812}, 0, {-16, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -572}, 0, {-400, -10000}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -355}, 0, {-16, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -812}, 0, {-16, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -572}, 0, {-400, -10000}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -511}, 0, {-400, -9317}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-94, -607, -478}, 0, {-592, -8944}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -1}, 0, {-400, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-127, -607, -396}, 0, {-960, -8030}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-123, -607, -421}, 0, {-921, -8305}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-142, -607, -383}, 0, {-1136, -7888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -332}, 0, {-1584, -7315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -351}, 0, {-1584, -7526}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-217, -607, -323}, 0, {-1968, -7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -6}, 0, {-1584, -3664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-262, -607, -312}, 0, {-2471, -7086}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -301}, 0, {-2960, -6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -1}, 0, {-2960, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -1}, 0, {-2960, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -301}, 0, {-2960, -6960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -218}, 0, {-8208, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -323}, 0, {-2960, -7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -561}, 0, {-8208, -9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -598}, 0, {-2960, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -563}, 0, {-2448, -9904}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -335}, 0, {-2448, -7344}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -338}, 0, {-2320, -7376}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-248, -607, -563}, 0, {-2320, -9904}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -381}, 0, {-1584, -7857}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-225, -607, -343}, 0, {-2064, -7440}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -607, -598}, 0, {-2832, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -607, -609}, 0, {-2832, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -609}, 0, {-2960, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -658}, 0, {-2960, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -658}, 0, {-2960, -10960}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -949}, 0, {-8208, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -561}, 0, {-8208, -9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -598}, 0, {-2960, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -609}, 0, {-2960, -10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -563}, 0, {-2448, -9904}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-260, -607, -598}, 0, {-2448, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-294, -607, -598}, 0, {-2832, -10288}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -607, 208}, 0, {6608, -1264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{532, -607, 194}, 0, {6416, -1424}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -607, 228}, 0, {6800, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{535, -607, 191}, 0, {6446, -1454}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{563, -607, 162}, 0, {6768, -1776}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -607, 177}, 0, {6960, -1616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{589, -607, 137}, 0, {7056, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, 137}, 0, {7152, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -218}, 0, {7152, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{575, -607, 137}, 0, {6896, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -218}, 0, {6128, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 137}, 0, {6128, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -607, 228}, 0, {3056, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -1}, 0, {-16, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -266}, 0, {6128, -6576}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -355}, 0, {-16, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -312}, 0, {6128, -7088}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -338}, 0, {6128, -7376}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -355}, 0, {6128, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -812}, 0, {6128, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -389}, 0, {7152, -7952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -355}, 0, {7152, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{741, -607, -355}, 0, {8752, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -389}, 0, {7152, -7952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -355}, 0, {7152, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{763, -607, -389}, 0, {9008, -7952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -812}, 0, {7152, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{781, -607, -812}, 0, {9200, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{781, -607, -389}, 0, {9200, -7952}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -812}, 0, {6128, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -812}, 0, {-16, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -355}, 0, {-16, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, -949}, 0, {6128, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -949}, 0, {-16, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -607, -1418}, 0, {4464, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -1418}, 0, {7152, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -949}, 0, {7152, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -607, -1418}, 0, {1136, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -607, -1418}, 0, {1136, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -1418}, 0, {-16, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -949}, 0, {-16, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -1418}, 0, {-400, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -736}, 0, {-400, -11838}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -812}, 0, {-16, -12688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -662}, 0, {-400, -11003}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{575, -607, 137}, 0, {6896, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 137}, 0, {6128, -2064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 205}, 0, {6128, -1296}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -607, 228}, 0, {3056, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 219}, 0, {6128, -1136}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 228}, 0, {6128, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -1}, 0, {-16, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, 228}, 0, {-16, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -1}, 0, {-400, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -1}, 0, {-400, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -1}, 0, {-16, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -355}, 0, {-16, -7568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -511}, 0, {-400, -9317}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, 228}, 0, {-400, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, 228}, 0, {-16, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -6}, 0, {-1584, -3664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-127, -607, -396}, 0, {-960, -8030}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, -332}, 0, {-1584, -7315}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -607, 228}, 0, {-1584, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -1}, 0, {-2960, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, 228}, 0, {-2960, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -607, 228}, 0, {-6160, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -1}, 0, {-8208, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -218}, 0, {-8208, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -218}, 0, {-8720, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -1}, 0, {-8208, -3600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -218}, 0, {-8720, -6032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, 228}, 0, {-8720, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, 228}, 0, {-8208, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -607, 228}, 0, {-6160, -1040}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -1418}, 0, {-8208, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1418}, 0, {-8720, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1246}, 0, {-8720, -17552}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -607, -949}, 0, {-8208, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1064}, 0, {-8720, -15504}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -949}, 0, {-8720, -14224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -1418}, 0, {-2960, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-305, -607, -921}, 0, {-2960, -13905}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -607, -1418}, 0, {-528, -19472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_20[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(5, 4, 2, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(7, 6, 5, 0), + gsSP1Triangle(5, 8, 7, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(8, 10, 7, 0), + gsSP1Triangle(11, 10, 8, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(15, 12, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 9, 12, 0), + gsSP1Triangle(13, 11, 12, 0), + gsSP1Triangle(13, 12, 14, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 3, 1, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 6, 4, 0), + gsSP1Triangle(7, 8, 6, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSP1Triangle(11, 13, 14, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(8, 6, 7, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(12, 11, 13, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 2, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(3, 7, 6, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 8, 9, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSP1Triangle(8, 11, 10, 0), + gsSP1Triangle(12, 5, 6, 0), + gsSP1Triangle(13, 5, 12, 0), + gsSP1Triangle(13, 14, 5, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSP1Triangle(14, 15, 4, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 80, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 11, 8, 0), + gsSP1Triangle(12, 8, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 94, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(3, 4, 5, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(4, 7, 6, 0), + gsSP1Triangle(7, 4, 8, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(8, 10, 9, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 9, 11, 0), + gsSP1Triangle(13, 9, 12, 0), + gsSP1Triangle(14, 13, 12, 0), + gsSP1Triangle(12, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 110, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 1, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(1, 4, 7, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 8, 7, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 12, 10, 0), + gsSP1Triangle(13, 10, 14, 0), + gsSP1Triangle(12, 15, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 126, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 1, 3, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 2, 4, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 9, 8, 0), + gsSP1Triangle(11, 9, 10, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 142, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(0, 4, 5, 0), + gsSP1Triangle(6, 4, 0, 0), + gsSP1Triangle(7, 6, 0, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 4, 0), + gsSP1Triangle(9, 6, 10, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(12, 11, 10, 0), + gsSP1Triangle(12, 10, 13, 0), + gsSP1Triangle(10, 14, 13, 0), + gsSP1Triangle(13, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_20 + 158, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(9, 10, 8, 0), + gsSP1Triangle(11, 5, 8, 0), + gsSP1Triangle(11, 8, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_21[20] = { + {{{580, -7, -1166}, 0, {17200, 336}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -19, -1166}, 0, {17200, 464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1161}, 0, {17136, 528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1161}, 0, {17136, 272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -7, -1189}, 0, {16912, 336}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -19, -1189}, 0, {16912, 464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -19, -1166}, 0, {16656, 464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -7, -1166}, 0, {16656, 336}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1195}, 0, {7056, -17328}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -7, -1189}, 0, {6992, -17264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -7, -1166}, 0, {6992, -17008}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1161}, 0, {7056, -16944}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -19, -1189}, 0, {17744, 464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -7, -1189}, 0, {17744, 336}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1195}, 0, {17808, 272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1195}, 0, {17808, 528}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -19, -1189}, 0, {6992, -17520}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1195}, 0, {7056, -17584}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1161}, 0, {7056, -17200}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{580, -19, -1166}, 0, {6992, -17264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_21[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_21 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_21 + 16, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_22[4] = { + {{{998, -36, -446}, 0, {12240, -8912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -36, -721}, 0, {12240, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -36, -721}, 0, {24656, -11984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -36, -446}, 0, {24656, -8912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_22[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_22 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_23[13] = { + {{{-797, -470, -755}, 0, {-16912, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -755}, 0, {-16400, -11792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -801}, 0, {-16400, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -801}, 0, {-16912, -12304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -366}, 0, {-16912, -7696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -366}, 0, {-16400, -7696}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -412}, 0, {-16400, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -412}, 0, {-16912, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -606}, 0, {-16400, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -606}, 0, {-16912, -10256}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -583}, 0, {-16912, -10000}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -470, -561}, 0, {-16400, -9744}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -561}, 0, {-16912, -9744}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_23[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_23 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_24[14] = { + {{{-454, -516, 228}, 0, {6128, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -425, 228}, 0, {6128, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -425, 228}, 0, {4080, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -516, 228}, 0, {4080, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -470, 228}, 0, {-4112, 5616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -516, 228}, 0, {-4112, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -516, 228}, 0, {-2064, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -425, 228}, 0, {-2064, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -425, 228}, 0, {-4112, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -242, 228}, 0, {-16, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -242, 228}, 0, {-2064, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -333, 228}, 0, {-2064, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -333, 228}, 0, {-16, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -425, 228}, 0, {-16, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_24[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_24 + 0, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(7, 8, 4, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(13, 11, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_25[16] = { + {{{232, -116, 205}, 0, {-2128, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -150, 228}, 0, {-2512, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{49, -150, 228}, 0, {-2512, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{49, -116, 205}, 0, {-2128, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -503}, 0, {-374, -1859}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -503}, 0, {-330, -1859}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -483}, 0, {-330, -1814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -483}, 0, {-374, -1814}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -150, 228}, 0, {-2512, -6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -116, 205}, 0, {-2128, -6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-408, -116, 205}, 0, {-2128, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-408, -150, 228}, 0, {-2512, -4112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -706}, 0, {-374, -2314}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -706}, 0, {-330, -2314}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-182, -305, -686}, 0, {-330, -2269}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-202, -305, -686}, 0, {-374, -2269}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_25[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_25 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_26[22] = { + {{{2106, -607, -389}, 0, {8574, 28498}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -812}, 0, {14350, 28498}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -607, -812}, 0, {14350, 13357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{935, -607, -389}, 0, {8574, 12498}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{918, -607, -389}, 0, {8574, 12264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{918, -607, -812}, 0, {14350, 12264}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{998, -607, -355}, 0, {8106, 13357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -355}, 0, {8106, 28498}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{958, -607, -355}, 0, {8106, 12811}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -607, -812}, 0, {14318, 29100}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -812}, 0, {14318, 26290}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -389}, 0, {8542, 26290}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -607, -355}, 0, {8074, 29100}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2106, -607, -355}, 0, {8074, 26290}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -767, -812}, 0, {-12655, 14446}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -767, -355}, 0, {-12655, 8202}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -355}, 0, {-10470, 8202}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -812}, 0, {-10470, 14446}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -767, -355}, 0, {-12655, 8202}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -767, -812}, 0, {-12655, 14446}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -812}, 0, {-10470, 14446}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -355}, 0, {-10470, 8202}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_26[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_26 + 0, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(6, 0, 3, 0), + gsSP1Triangle(6, 7, 0, 0), + gsSP1Triangle(3, 8, 6, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(9, 11, 12, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_26 + 14, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_27[16] = { + {{{-454, -333, 228}, 0, {6128, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -425, 228}, 0, {6128, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -425, 228}, 0, {8176, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-591, -333, 228}, 0, {8176, 8156}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -516, 228}, 0, {-16, 12357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -425, 228}, 0, {-16, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -425, 228}, 0, {-2064, 10257}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -516, 228}, 0, {-2064, 12357}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -333, 228}, 0, {2032, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -242, 228}, 0, {-16, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -242, 228}, 0, {-16, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -333, 228}, 0, {2032, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -333, 228}, 0, {2032, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -333, 228}, 0, {2032, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -242, 228}, 0, {-16, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -242, 228}, 0, {-16, 2032}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_27[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_27 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 12, 14, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_28[52] = { + {{{358, -242, -1406}, 0, {9424, -26896}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -242, -1418}, 0, {9424, -27152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -242, -1418}, 0, {2768, -27152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -242, -1406}, 0, {2768, -26896}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -242, -1418}, 0, {29136, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -447, -1418}, 0, {29136, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -447, -1406}, 0, {28880, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -242, -1406}, 0, {28880, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -447, -1406}, 0, {2768, -26896}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -447, -1418}, 0, {2768, -27152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -447, -1418}, 0, {9424, -27152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -447, -1406}, 0, {9424, -26896}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -447, -1418}, 0, {29136, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -242, -1418}, 0, {29136, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -242, -1406}, 0, {28880, 6640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -447, -1406}, 0, {28880, 11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1144}, 0, {8912, -15664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -30, -1201}, 0, {8784, -16304}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1212}, 0, {8912, -16432}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -30, -1155}, 0, {8784, -15792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1144}, 0, {8912, -15152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 4, -1201}, 0, {8784, -15792}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 4, -1155}, 0, {8784, -15280}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1212}, 0, {8912, -15920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1155}, 0, {15600, 1712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -30, -1155}, 0, {15600, 1776}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1144}, 0, {15472, 1776}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1155}, 0, {15600, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1144}, 0, {15472, 1392}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 4, -1155}, 0, {15600, 1392}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1201}, 0, {18960, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 4, -1201}, 0, {18960, 1392}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, 4, -1212}, 0, {19088, 1392}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1201}, 0, {18960, 1712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -30, -1212}, 0, {19088, 1776}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -30, -1201}, 0, {18960, 1776}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1201}, 0, {18160, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1201}, 0, {18160, 1712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1195}, 0, {18096, 1712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -30, -1201}, 0, {18160, 1776}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1161}, 0, {17712, 1712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -30, -1155}, 0, {17648, 1776}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1155}, 0, {17648, 1712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1155}, 0, {17648, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1161}, 0, {17712, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 4, -1155}, 0, {17648, 1392}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1161}, 0, {17712, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 4, -1155}, 0, {17648, 1392}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, 4, -1201}, 0, {18160, 1392}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1195}, 0, {18096, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -2, -1201}, 0, {18160, 1456}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{586, -24, -1195}, 0, {18096, 1712}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_28[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_28 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_28 + 16, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_28 + 30, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(11, 10, 9, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(13, 10, 12, 0), + gsSP1Triangle(13, 14, 10, 0), + gsSP1Triangle(14, 13, 15, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_28 + 46, 6, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_29[13] = { + {{{-774, -59, -366}, 0, {-8208, -26640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -366}, 0, {-8464, -26640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -412}, 0, {-8464, -28688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -412}, 0, {-8208, -28688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -755}, 0, {-8208, -26640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -755}, 0, {-8464, -26640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -801}, 0, {-8464, -28688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -801}, 0, {-8208, -28688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -561}, 0, {-8208, -26640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -561}, 0, {-8464, -26640}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -583}, 0, {-8464, -27664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-774, -59, -606}, 0, {-8208, -28688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -606}, 0, {-8464, -28688}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_29[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_29 + 0, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(10, 12, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_30[29] = { + {{{-88, -505, -1418}, 0, {-48, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -607, -1418}, 0, {-48, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-77, -607, -1418}, 0, {80, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -505, -1418}, 0, {464, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -607, -1418}, 0, {464, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -447, -1418}, 0, {1616, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -607, -1418}, 0, {1616, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -607, -1418}, 0, {4944, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -447, -1418}, 0, {4944, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -607, -1418}, 0, {7632, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -242, -1418}, 0, {7632, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -242, -1418}, 0, {4944, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{598, -150, -1418}, 0, {7632, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -150, -1418}, 0, {464, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -242, -1418}, 0, {1616, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -242, -1418}, 0, {464, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -242, -1418}, 0, {464, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -150, -1418}, 0, {464, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -150, -1418}, 0, {-48, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -505, -1418}, 0, {-48, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-42, -505, -1418}, 0, {464, 6333}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -447, -1418}, 0, {1616, 5309}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -242, -1418}, 0, {1616, 1622}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -607, -1418}, 0, {-2072, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -505, -1418}, 0, {6441, 6384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1418}, 0, {6441, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -505, -1418}, 0, {-2072, 6384}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-88, -150, -1418}, 0, {-2072, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -150, -1418}, 0, {6441, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_30[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_30 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(5, 3, 4, 0), + gsSP1Triangle(5, 4, 6, 0), + gsSP1Triangle(7, 5, 6, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(8, 7, 9, 0), + gsSP1Triangle(10, 8, 9, 0), + gsSP1Triangle(10, 11, 8, 0), + gsSP1Triangle(11, 10, 12, 0), + gsSP1Triangle(11, 12, 13, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_30 + 16, 13, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(0, 4, 5, 0), + gsSP1Triangle(0, 5, 6, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 10, 8, 0), + gsSP1Triangle(11, 8, 10, 0), + gsSP1Triangle(11, 12, 8, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_31[8] = { + {{{2312, -242, -355}, 0, {7184, 3376}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -242, -812}, 0, {12304, 3376}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -276, -812}, 0, {12304, 3760}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -276, -355}, 0, {7184, 3760}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -573, -355}, 0, {7184, 7088}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -573, -812}, 0, {12304, 7088}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -607, -812}, 0, {12304, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2312, -607, -355}, 0, {7184, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_31[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_31 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(4, 2, 5, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_32[12] = { + {{{-317, -425, 228}, 0, {4080, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -333, 228}, 0, {4080, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -333, 228}, 0, {2032, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -516, 228}, 0, {2032, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -516, 228}, 0, {4080, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -333, 228}, 0, {6128, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-454, -242, 228}, 0, {6128, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-317, -242, 228}, 0, {4080, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -333, 228}, 0, {-2064, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -333, 228}, 0, {-4112, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{232, -425, 228}, 0, {-4112, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{95, -425, 228}, 0, {-2064, 5104}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_32[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_32 + 0, 12, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(5, 6, 7, 0), + gsSP1Triangle(5, 7, 1, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_33[7] = { + {{{-797, -105, -583}, 0, {8208, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -583}, 0, {8208, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -606}, 0, {8464, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -755}, 0, {10128, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -946}, 0, {12272, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -801}, 0, {10640, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -946}, 0, {12272, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_33[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_33 + 0, 7, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_34[4] = { + {{{803, -242, -355}, 0, {4720, 3984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {11547, 3984}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -82, -812}, 0, {11547, 2192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -82, -355}, 0, {4720, 2192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_34[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_34 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_35[16] = { + {{{-151, -505, -598}, 0, {-6288, 9936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -615}, 0, {-6288, 10128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -502, -615}, 0, {-6256, 10128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -499, -598}, 0, {-6224, 9936}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -598}, 0, {-6256, 10352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -581}, 0, {-6256, 10160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -502, -581}, 0, {-6224, 10160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -499, -598}, 0, {-6192, 10352}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -502, -581}, 0, {-6256, 9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -581}, 0, {-6288, 9872}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -598}, 0, {-6288, 10064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -499, -598}, 0, {-6224, 10064}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -502, -615}, 0, {-6224, 10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -615}, 0, {-6256, 10416}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -598}, 0, {-6256, 10224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -499, -598}, 0, {-6192, 10224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_35[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_35 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 10, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 14, 15, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_36[8] = { + {{{-180, -499, -598}, 0, {-30512, -6117}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -502, -581}, 0, {-29872, -6117}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -502, -581}, 0, {-29872, -4695}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -499, -598}, 0, {-30512, -4695}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -502, -615}, 0, {-30576, 6626}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -502, -615}, 0, {-30576, 8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -499, -598}, 0, {-29936, 8048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -499, -598}, 0, {-29936, 6626}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_36[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_36 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_37[8] = { + {{{1958, -173, -561}, 0, {22384, -9616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -561}, 0, {22896, -9616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2004, -173, -606}, 0, {22896, -10128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -173, -606}, 0, {22384, -10128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -561}, 0, {15216, -9616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -561}, 0, {15728, -9616}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -173, -606}, 0, {15728, -10128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -173, -606}, 0, {15216, -10128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_37[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_37 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_38[14] = { + {{{918, -607, -389}, 0, {7632, -5627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{918, -607, -812}, 0, {7632, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -812}, 0, {7525, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -389}, 0, {7525, -5627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -812}, 0, {7461, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -607, -355}, 0, {7461, -5371}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{903, -607, -355}, 0, {7525, -5371}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -389}, 0, {6715, -5627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{781, -607, -812}, 0, {6608, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{781, -607, -389}, 0, {6608, -5627}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -812}, 0, {6715, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -812}, 0, {6779, -8784}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -607, -355}, 0, {6779, -5371}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{795, -607, -355}, 0, {6715, -5371}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_38[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_38 + 0, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 2, 4, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(7, 10, 8, 0), + gsSP1Triangle(11, 10, 7, 0), + gsSP1Triangle(7, 12, 11, 0), + gsSP1Triangle(7, 13, 12, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_39[8] = { + {{{-180, -505, -581}, 0, {-6288, -1232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -581}, 0, {-6288, -912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -502, -581}, 0, {-6256, -912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -502, -581}, 0, {-6256, -1232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -502, -615}, 0, {-6256, -1232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -502, -615}, 0, {-6256, -912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-151, -505, -615}, 0, {-6288, -912}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-180, -505, -615}, 0, {-6288, -1232}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_39[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_39 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_40[4] = { + {{{575, -607, 137}, 0, {6351, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -607, 205}, 0, {4075, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -470, 205}, 0, {4075, 13296}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{575, -470, 137}, 0, {6351, 13296}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_40[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_40 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_41[11] = { + {{{566, -473, 228}, 0, {1008, 6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -470, 228}, 0, {1008, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{556, -470, 216}, 0, {1146, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -473, 208}, 0, {1232, 6160}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 215}, 0, {1157, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{555, -470, 214}, 0, {1168, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -470, 208}, 0, {1232, 6128}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -476, 228}, 0, {1008, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -476, 208}, 0, {1232, 6192}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{566, -607, 228}, 0, {1008, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{549, -607, 208}, 0, {1232, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_41[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_41 + 0, 11, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(2, 4, 3, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(5, 6, 3, 0), + gsSP1Triangle(3, 7, 0, 0), + gsSP1Triangle(3, 8, 7, 0), + gsSP1Triangle(9, 7, 8, 0), + gsSP1Triangle(9, 8, 10, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_42[4] = { + {{{-820, -607, -1246}, 0, {16336, 10224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -1246}, 0, {16336, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -470, -1064}, 0, {14288, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-820, -607, -1064}, 0, {14288, 10224}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_42[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_42 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_43[4] = { + {{{60, -447, -1406}, 0, {-55, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -447, -1406}, 0, {8137, 16368}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{358, -242, -1406}, 0, {8137, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{60, -242, -1406}, 0, {-55, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_43[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_43 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_44[8] = { + {{{-797, -59, -218}, 0, {8176, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -218}, 0, {8176, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -221}, 0, {8240, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -366}, 0, {11504, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -412}, 0, {12528, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -583}, 0, {16368, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -561}, 0, {15856, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -583}, 0, {16368, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_44[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_44 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 0, 2, 0), + gsSP1Triangle(4, 3, 2, 0), + gsSP1Triangle(2, 5, 4, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSP1Triangle(5, 7, 6, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_45[7] = { + {{{-797, -105, -221}, 0, {4080, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -221}, 0, {4080, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -366}, 0, {5712, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -412}, 0, {6224, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -583}, 0, {8144, -16}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -561}, 0, {7888, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -470, -583}, 0, {8144, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_45[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_45 + 0, 7, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(4, 0, 3, 0), + gsSP1Triangle(4, 3, 5, 0), + gsSP1Triangle(5, 6, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_46[8] = { + {{{-797, -105, -949}, 0, {24560, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -949}, 0, {24560, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -946}, 0, {24496, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -801}, 0, {21232, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -755}, 0, {20208, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -105, -583}, 0, {16368, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -606}, 0, {16880, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{-797, -59, -583}, 0, {16368, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_46[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_46 + 0, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(4, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_47[72] = { + {{{1683, -196, -446}, 0, {14277, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -207, -721}, 0, {18373, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -207, -446}, 0, {14277, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -196, -721}, 0, {18373, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -196, -721}, 0, {18373, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -207, -446}, 0, {14277, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -207, -721}, 0, {18373, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -196, -446}, 0, {14277, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -207, -446}, 0, {24517, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -196, -446}, 0, {28613, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -196, -446}, 0, {24517, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -207, -446}, 0, {28613, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -207, -721}, 0, {28613, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -196, -721}, 0, {24517, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -196, -721}, 0, {28613, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -207, -721}, 0, {24517, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -207, -446}, 0, {24517, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -207, -721}, 0, {28613, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -207, -446}, 0, {28613, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -207, -721}, 0, {24517, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -196, -721}, 0, {24517, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -196, -446}, 0, {28613, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1958, -196, -721}, 0, {28613, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1683, -196, -446}, 0, {24517, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -196, -446}, 0, {11589, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -207, -721}, 0, {15685, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -207, -446}, 0, {11589, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -196, -721}, 0, {15685, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -196, -721}, 0, {15685, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -207, -446}, 0, {11589, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -207, -721}, 0, {15685, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -196, -446}, 0, {11589, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -207, -446}, 0, {16368, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -196, -446}, 0, {20464, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -196, -446}, 0, {16368, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -207, -446}, 0, {20464, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -207, -721}, 0, {20464, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -196, -721}, 0, {16368, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -196, -721}, 0, {20464, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -207, -721}, 0, {16368, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -207, -446}, 0, {16368, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -207, -721}, 0, {20464, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -207, -446}, 0, {20464, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -207, -721}, 0, {16368, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -196, -721}, 0, {16368, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -196, -446}, 0, {20464, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1318, -196, -721}, 0, {20464, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1043, -196, -446}, 0, {16368, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -196, -446}, 0, {15003, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -207, -721}, 0, {19099, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -207, -446}, 0, {15003, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -196, -721}, 0, {19099, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -196, -721}, 0, {19099, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -207, -446}, 0, {15003, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -207, -721}, 0, {19099, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -196, -446}, 0, {15003, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -207, -446}, 0, {24560, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -196, -446}, 0, {28656, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -196, -446}, 0, {24560, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -207, -446}, 0, {28656, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -207, -721}, 0, {28656, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -196, -721}, 0, {24560, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -196, -721}, 0, {28656, 7237}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -207, -721}, 0, {24560, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -207, -446}, 0, {24560, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -207, -721}, 0, {28656, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -207, -446}, 0, {28656, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -207, -721}, 0, {24560, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -196, -721}, 0, {24560, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -196, -446}, 0, {28656, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1638, -196, -721}, 0, {28656, -12389}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{1363, -196, -446}, 0, {24560, -8293}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_47[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_47 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_47 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_47 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_47 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_47 + 64, 8, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_48[4] = { + {{{506, -433, -266}, 0, {-13328, -11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -312}, 0, {-14352, -12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -479, -266}, 0, {-13328, -12272}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{506, -433, -312}, 0, {-14352, -11248}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_48[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_48 + 0, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_49[22] = { + {{{803, -59, -355}, 0, {8125, 4048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {16317, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -355}, 0, {8125, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -59, -812}, 0, {16317, 4048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -59, -812}, 0, {16317, 4048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {8125, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {16317, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -59, -355}, 0, {8125, 4048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -608, -355}, 0, {8125, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -791, -812}, 0, {16317, 8144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -791, -355}, 0, {8125, 8144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -608, -812}, 0, {16317, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -608, -812}, 0, {16317, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -791, -355}, 0, {8125, 8144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -791, -812}, 0, {16317, 8144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -608, -355}, 0, {8125, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -425, -355}, 0, {8125, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -242, -355}, 0, {8125, 4048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -242, -812}, 0, {16317, 4048}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -425, -812}, 0, {16317, 6096}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -607, -355}, 0, {8125, 8144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -607, -812}, 0, {16317, 8144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_49[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_49 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_49 + 16, 6, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 2, 3, 0), + gsSP1Triangle(3, 4, 0, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_50[52] = { + {{{803, -242, -355}, 0, {5584, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -59, -355}, 0, {3536, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -59, -355}, 0, {3536, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {5584, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {5584, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -59, -812}, 0, {3536, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -59, -812}, 0, {3536, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {5584, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -355}, 0, {-7600, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -812}, 0, {-12720, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -242, -355}, 0, {-7600, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -242, -812}, 0, {-12720, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -59, -812}, 0, {-12720, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -59, -355}, 0, {-7600, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -59, -812}, 0, {-12720, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -59, -355}, 0, {-7600, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -791, -355}, 0, {7632, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -608, -355}, 0, {5584, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -608, -355}, 0, {5584, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -791, -355}, 0, {7632, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -791, -812}, 0, {7632, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -608, -812}, 0, {5584, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -608, -812}, 0, {5584, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -791, -812}, 0, {7632, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -791, -355}, 0, {-7600, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -791, -812}, 0, {-12720, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -791, -355}, 0, {-7600, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -791, -812}, 0, {-12720, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -608, -812}, 0, {-12720, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -608, -355}, 0, {-7600, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{895, -608, -812}, 0, {-12720, 7865}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{803, -608, -355}, 0, {-7600, 7134}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -425, -355}, 0, {5648, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -242, -355}, 0, {3600, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -242, -355}, 0, {3600, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -425, -355}, 0, {5648, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -607, -355}, 0, {7696, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -607, -355}, 0, {7696, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -425, -812}, 0, {5648, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -242, -812}, 0, {3600, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -242, -812}, 0, {3600, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -425, -812}, 0, {5648, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -607, -812}, 0, {7696, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -607, -812}, 0, {7696, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -242, -812}, 0, {-12240, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -242, -355}, 0, {-7120, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -242, -812}, 0, {-12240, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -242, -355}, 0, {-7120, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -607, -355}, 0, {-7120, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -607, -812}, 0, {-12240, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2295, -607, -355}, 0, {-7120, 19161}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{2204, -607, -812}, 0, {-12240, 18430}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_50[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_50 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_50 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_50 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 3, 0, 0), + gsSP1Triangle(4, 5, 3, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(10, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_50 + 48, 4, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_51[112] = { + {{{901, -590, -326}, 0, {7120, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -567, -332}, 0, {7184, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -550, -349}, 0, {7376, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -545, -372}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -636, -372}, 0, {7632, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -590, -418}, 0, {8144, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -550, -395}, 0, {7888, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -567, -412}, 0, {8080, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -630, -395}, 0, {7888, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -613, -412}, 0, {8080, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -630, -349}, 0, {7376, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -613, -332}, 0, {7184, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -567, -332}, 0, {7184, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -590, -326}, 0, {7120, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -550, -349}, 0, {7376, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -545, -372}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -590, -326}, 0, {7120, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -636, -372}, 0, {7632, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -545, -372}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -613, -332}, 0, {7184, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -630, -349}, 0, {7376, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -590, -418}, 0, {8144, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -613, -412}, 0, {8080, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -630, -395}, 0, {7888, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -567, -412}, 0, {8080, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -550, -395}, 0, {7888, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -590, -326}, 0, {7120, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -567, -332}, 0, {7184, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -550, -349}, 0, {7376, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -545, -372}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -636, -372}, 0, {7632, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -590, -418}, 0, {8144, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -545, -372}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -550, -395}, 0, {7888, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -590, -418}, 0, {8144, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -567, -412}, 0, {8080, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -630, -395}, 0, {7888, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -636, -372}, 0, {7632, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -613, -412}, 0, {8080, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -630, -349}, 0, {7376, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -613, -332}, 0, {7184, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -590, -326}, 0, {7120, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -567, -332}, 0, {7184, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -590, -326}, 0, {7120, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -550, -349}, 0, {7376, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -545, -372}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -636, -372}, 0, {7632, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -613, -332}, 0, {7184, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -613, -332}, 0, {7184, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -630, -349}, 0, {7376, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -636, -372}, 0, {7632, 8176}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -590, -418}, 0, {8144, 7664}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -545, -372}, 0, {7632, 7152}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -613, -412}, 0, {8080, 7920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -630, -395}, 0, {7888, 8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -567, -412}, 0, {8080, 7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -550, -395}, 0, {7888, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -259, -749}, 0, {11216, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -236, -755}, 0, {11280, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -219, -772}, 0, {11472, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -213, -795}, 0, {11728, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -259, -841}, 0, {12240, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -219, -818}, 0, {11984, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -236, -835}, 0, {12176, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -259, -749}, 0, {11216, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -259, -841}, 0, {12240, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -305, -795}, 0, {11728, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -299, -818}, 0, {11984, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -282, -835}, 0, {12176, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -299, -772}, 0, {11472, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -282, -755}, 0, {11280, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -282, -755}, 0, {11280, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -299, -772}, 0, {11472, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -305, -795}, 0, {11728, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -259, -749}, 0, {11216, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -213, -795}, 0, {11728, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -259, -841}, 0, {12240, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -282, -835}, 0, {12176, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -299, -818}, 0, {11984, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -236, -835}, 0, {12176, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -236, -835}, 0, {12176, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -219, -818}, 0, {11984, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -213, -795}, 0, {11728, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -236, -755}, 0, {11280, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -259, -749}, 0, {11216, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -219, -772}, 0, {11472, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -259, -749}, 0, {11216, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -236, -755}, 0, {11280, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -219, -772}, 0, {11472, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -213, -795}, 0, {11728, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -259, -841}, 0, {12240, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -219, -818}, 0, {11984, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -236, -835}, 0, {12176, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -305, -795}, 0, {11728, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -299, -818}, 0, {11984, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -282, -835}, 0, {12176, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -305, -795}, 0, {11728, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -299, -772}, 0, {11472, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -259, -749}, 0, {11216, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -282, -755}, 0, {11280, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -282, -755}, 0, {11280, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -299, -772}, 0, {11472, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -305, -795}, 0, {11728, 4080}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -259, -749}, 0, {11216, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -213, -795}, 0, {11728, 3056}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -259, -841}, 0, {12240, 3568}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -282, -835}, 0, {12176, 3824}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -299, -818}, 0, {11984, 4016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -236, -835}, 0, {12176, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -219, -818}, 0, {11984, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -236, -755}, 0, {11280, 3312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -219, -772}, 0, {11472, 3120}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_51[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_51 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 0, 0), + gsSP1Triangle(0, 3, 4, 0), + gsSP1Triangle(5, 4, 3, 0), + gsSP1Triangle(3, 6, 5, 0), + gsSP1Triangle(6, 7, 5, 0), + gsSP1Triangle(8, 4, 5, 0), + gsSP1Triangle(5, 9, 8, 0), + gsSP1Triangle(4, 10, 11, 0), + gsSP1Triangle(0, 4, 11, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_51 + 16, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(1, 5, 2, 0), + gsSP1Triangle(6, 5, 1, 0), + gsSP1Triangle(1, 7, 6, 0), + gsSP1Triangle(5, 8, 2, 0), + gsSP1Triangle(8, 9, 2, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSP1Triangle(10, 13, 14, 0), + gsSP1Triangle(15, 14, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_51 + 32, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 5, 2, 0), + gsSP1Triangle(2, 6, 4, 0), + gsSP1Triangle(5, 7, 8, 0), + gsSP1Triangle(9, 5, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(13, 12, 11, 0), + gsSP1Triangle(11, 14, 13, 0), + gsSP1Triangle(11, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_51 + 48, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(2, 3, 4, 0), + gsSP1Triangle(5, 3, 2, 0), + gsSP1Triangle(2, 6, 5, 0), + gsSP1Triangle(3, 7, 4, 0), + gsSP1Triangle(7, 8, 4, 0), + gsSP1Triangle(9, 10, 11, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(9, 12, 13, 0), + gsSP1Triangle(12, 14, 13, 0), + gsSP1Triangle(14, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_51 + 64, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 2, 1, 0), + gsSP1Triangle(1, 4, 3, 0), + gsSP1Triangle(2, 5, 0, 0), + gsSP1Triangle(5, 6, 0, 0), + gsSP1Triangle(7, 8, 9, 0), + gsSP1Triangle(10, 7, 9, 0), + gsSP1Triangle(10, 9, 11, 0), + gsSP1Triangle(9, 12, 11, 0), + gsSP1Triangle(13, 12, 9, 0), + gsSP1Triangle(9, 14, 13, 0), + gsSP1Triangle(12, 15, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_51 + 80, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(3, 4, 2, 0), + gsSP1Triangle(2, 5, 3, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(8, 9, 6, 0), + gsSP1Triangle(6, 9, 10, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(11, 12, 10, 0), + gsSP1Triangle(6, 10, 13, 0), + gsSP1Triangle(14, 13, 10, 0), + gsSP1Triangle(10, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_51 + 96, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(1, 3, 2, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(7, 4, 6, 0), + gsSP1Triangle(7, 6, 8, 0), + gsSP1Triangle(6, 9, 8, 0), + gsSP1Triangle(10, 9, 6, 0), + gsSP1Triangle(6, 11, 10, 0), + gsSP1Triangle(9, 12, 8, 0), + gsSP1Triangle(12, 13, 8, 0), + gsSP1Triangle(14, 7, 8, 0), + gsSP1Triangle(8, 15, 14, 0), + gsSPEndDisplayList(), +}; + +Vtx hl_dl_map_mesh_layer_1_vtx_52[158] = { + {{{901, -550, -395}, 0, {10224, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -545, -372}, 0, {10480, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -550, -395}, 0, {10480, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -545, -372}, 0, {10224, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -550, -349}, 0, {10480, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -550, -349}, 0, {10224, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -567, -332}, 0, {10224, -7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -567, -332}, 0, {10480, -7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -550, -395}, 0, {10224, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -567, -412}, 0, {10480, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -567, -412}, 0, {10224, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -550, -395}, 0, {10480, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -590, -418}, 0, {10224, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -613, -412}, 0, {10480, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -613, -412}, 0, {10224, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -590, -418}, 0, {10480, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -567, -412}, 0, {10224, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -590, -418}, 0, {10480, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -590, -418}, 0, {10224, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -567, -412}, 0, {10480, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -613, -412}, 0, {10224, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -630, -395}, 0, {10480, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -630, -395}, 0, {10224, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -613, -412}, 0, {10480, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -630, -349}, 0, {10224, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -636, -372}, 0, {10480, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -630, -349}, 0, {10480, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -636, -372}, 0, {10224, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -630, -395}, 0, {10480, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -630, -395}, 0, {10224, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -613, -332}, 0, {10224, -7312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -630, -349}, 0, {10480, -7504}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -613, -332}, 0, {10480, -7312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -630, -349}, 0, {10224, -7504}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -567, -332}, 0, {10224, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -590, -326}, 0, {10480, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -567, -332}, 0, {10480, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -590, -326}, 0, {10224, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -613, -332}, 0, {10480, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -613, -332}, 0, {10224, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -550, -395}, 0, {9392, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -545, -372}, 0, {9648, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -550, -395}, 0, {9648, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -545, -372}, 0, {9392, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -550, -349}, 0, {9648, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -550, -349}, 0, {9392, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -567, -332}, 0, {9392, -7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -550, -349}, 0, {9648, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -550, -349}, 0, {9392, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -567, -332}, 0, {9648, -7408}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -550, -395}, 0, {9392, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -567, -412}, 0, {9648, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -567, -412}, 0, {9392, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -550, -395}, 0, {9648, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -590, -418}, 0, {9392, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -613, -412}, 0, {9648, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -613, -412}, 0, {9392, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -590, -418}, 0, {9648, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -567, -412}, 0, {9392, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -567, -412}, 0, {9648, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -613, -412}, 0, {9392, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -630, -395}, 0, {9648, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -630, -395}, 0, {9392, -8016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -613, -412}, 0, {9648, -8208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -630, -349}, 0, {9392, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -636, -372}, 0, {9648, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -630, -349}, 0, {9648, -7600}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -636, -372}, 0, {9392, -7856}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -630, -395}, 0, {9648, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -630, -395}, 0, {9392, -8112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -613, -332}, 0, {9392, -7312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -630, -349}, 0, {9648, -7504}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -613, -332}, 0, {9648, -7312}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -630, -349}, 0, {9392, -7504}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -567, -332}, 0, {9392, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -590, -326}, 0, {9648, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -567, -332}, 0, {9648, 7216}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -590, -326}, 0, {9392, 7472}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -613, -332}, 0, {9648, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -613, -332}, 0, {9392, 7728}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -219, -818}, 0, {9392, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -213, -795}, 0, {9648, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -219, -818}, 0, {9648, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -213, -795}, 0, {9392, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -219, -772}, 0, {9648, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -219, -772}, 0, {9392, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -236, -755}, 0, {9392, -12016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -236, -755}, 0, {9648, -12016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -219, -818}, 0, {9392, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -236, -835}, 0, {9648, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -236, -835}, 0, {9392, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -219, -818}, 0, {9648, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -259, -841}, 0, {9392, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -282, -835}, 0, {9648, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -282, -835}, 0, {9392, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -259, -841}, 0, {9648, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -236, -835}, 0, {9392, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -236, -835}, 0, {9648, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -282, -835}, 0, {9392, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -299, -818}, 0, {9648, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -299, -818}, 0, {9392, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -282, -835}, 0, {9648, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -299, -772}, 0, {9392, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -305, -795}, 0, {9648, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -299, -772}, 0, {9648, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -305, -795}, 0, {9392, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -299, -818}, 0, {9648, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -299, -818}, 0, {9392, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -282, -755}, 0, {9392, -11920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -299, -772}, 0, {9648, -12112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -282, -755}, 0, {9648, -11920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -299, -772}, 0, {9392, -12112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -236, -755}, 0, {9392, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -259, -749}, 0, {9648, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -236, -755}, 0, {9648, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -259, -749}, 0, {9392, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{798, -282, -755}, 0, {9648, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{775, -282, -755}, 0, {9392, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -219, -818}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -213, -795}, 0, {10480, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -219, -818}, 0, {10480, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -213, -795}, 0, {10224, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -219, -772}, 0, {10480, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -219, -772}, 0, {10224, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -236, -755}, 0, {10224, -12016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -236, -755}, 0, {10480, -12016}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -219, -818}, 0, {10224, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -236, -835}, 0, {10480, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -236, -835}, 0, {10224, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -219, -818}, 0, {10480, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -259, -841}, 0, {10224, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -282, -835}, 0, {10480, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -282, -835}, 0, {10224, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -259, -841}, 0, {10480, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -236, -835}, 0, {10224, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -259, -841}, 0, {10480, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -259, -841}, 0, {10224, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -236, -835}, 0, {10480, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -282, -835}, 0, {10224, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -299, -818}, 0, {10480, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -299, -818}, 0, {10224, -12624}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -282, -835}, 0, {10480, -12816}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -299, -772}, 0, {10224, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -305, -795}, 0, {10480, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -299, -772}, 0, {10480, -12208}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -305, -795}, 0, {10224, -12464}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -299, -818}, 0, {10480, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -299, -818}, 0, {10224, -12720}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -282, -755}, 0, {10224, -11920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -299, -772}, 0, {10480, -12112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -282, -755}, 0, {10480, -11920}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -299, -772}, 0, {10224, -12112}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -236, -755}, 0, {10224, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -259, -749}, 0, {10480, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -236, -755}, 0, {10480, 3632}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -259, -749}, 0, {10224, 3888}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{923, -282, -755}, 0, {10480, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, + {{{901, -282, -755}, 0, {10224, 4144}, {0xFF, 0xFF, 0xFF, 0xFF}}}, +}; + +Gfx hl_dl_map_mesh_layer_1_tri_52[] = { + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 0, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 16, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 30, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 46, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 11, 8, 0), + gsSP1Triangle(12, 13, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 60, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 74, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(9, 10, 7, 0), + gsSP1Triangle(9, 11, 10, 0), + gsSP1Triangle(12, 10, 11, 0), + gsSP1Triangle(12, 13, 10, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 88, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 7, 4, 0), + gsSP1Triangle(8, 9, 7, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 102, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 7, 8, 0), + gsSP1Triangle(6, 9, 7, 0), + gsSP1Triangle(10, 11, 12, 0), + gsSP1Triangle(10, 13, 11, 0), + gsSP1Triangle(13, 14, 11, 0), + gsSP1Triangle(13, 15, 14, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 118, 16, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(3, 4, 1, 0), + gsSP1Triangle(3, 5, 4, 0), + gsSP1Triangle(6, 4, 5, 0), + gsSP1Triangle(6, 7, 4, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(12, 13, 14, 0), + gsSP1Triangle(12, 15, 13, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 134, 14, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(8, 9, 10, 0), + gsSP1Triangle(8, 11, 9, 0), + gsSP1Triangle(11, 12, 9, 0), + gsSP1Triangle(11, 13, 12, 0), + gsSPVertex(hl_dl_map_mesh_layer_1_vtx_52 + 148, 10, 0), + gsSP1Triangle(0, 1, 2, 0), + gsSP1Triangle(0, 3, 1, 0), + gsSP1Triangle(4, 5, 6, 0), + gsSP1Triangle(4, 7, 5, 0), + gsSP1Triangle(7, 8, 5, 0), + gsSP1Triangle(7, 9, 8, 0), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_FIFTIES_CMP3B_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_fifties_cmp3b_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 8191, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_FIFTIES_CMP3B_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_CA1X_MONSIDE_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_ca1x_monside_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_CA1X_MONSIDE_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_DRKMTLT_BORD11_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_drkmtlt_bord11_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_DRKMTLT_BORD11_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C2A4E_W1B_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c2a4e_w1b_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 32767, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 1020), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C2A4E_W1B_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A0_LABW4_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a0_labw4_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 32767, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 1020), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABW4_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_DRKMTL_SCRN3_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_drkmtl_scrn3_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_DRKMTL_SCRN3_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A0_LABW5_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a0_labw5_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 32767, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 1020), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABW5_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_DRKMTLT_CEIL01B_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_drkmtlt_ceil01b_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_DRKMTLT_CEIL01B_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A0_LABGLU_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a0_labglu_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABGLU_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__0C2A4E_W1_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__0c2a4e_w1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 32767, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 1020), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__0C2A4E_W1_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_FIFTIES_CMP3C_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_fifties_cmp3c_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 8191, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_FIFTIES_CMP3C_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A1_FLR1_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a1_flr1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A1_FLR1_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_B4_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_b4_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 512), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), + gsDPSetTileSize(0, 0, 0, 60, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_B4_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__SPOTYELLOW_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__spotyellow_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 255, 512), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), + gsDPSetTileSize(0, 0, 0, 60, 60), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__SPOTYELLOW_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A0_LABW7_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a0_labw7_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A0_LABW7_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_COMP3E_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_comp3e_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_COMP3E_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_BASETRIM02_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_basetrim02_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 2047, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 60), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_BASETRIM02_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_OUT_DMPLID_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_out_dmplid_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_OUT_DMPLID_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__A_LAB1_SW1_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__a_lab1_sw1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__A_LAB1_SW1_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_GENERIC028_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_generic028_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_GENERIC028_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A1_FLR2C_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a1_flr2c_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A1_FLR2C_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_GENERIC46_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_generic46_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_GENERIC46_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C2A4X_C1_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c2a4x_c1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C2A4X_C1_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__0_GENERIC85_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__0_generic85_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 255, 512), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), + gsDPSetTileSize(0, 0, 0, 60, 60), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__0_GENERIC85_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_FIFTIES_MON1B_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_fifties_mon1b_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_FIFTIES_MON1B_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__0_FIFTIES_LGT2_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__0_fifties_lgt2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 512), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), + gsDPSetTileSize(0, 0, 0, 60, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__0_FIFTIES_LGT2_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_GENERIC015V2_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_generic015v2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_GENERIC015V2_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_DRKMTL_SCRN000_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_drkmtl_scrn_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_DRKMTL_SCRN000_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_BABTECH_CEIL01_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_babtech_ceil01_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_BABTECH_CEIL01_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__0_FIFTIES_LGT3_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__0_fifties_lgt3_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 512), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), + gsDPSetTileSize(0, 0, 0, 60, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__0_FIFTIES_LGT3_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A0_WX_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a0_wx_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 32767, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 1020), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A0_WX_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_BLACK_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_black_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_BLACK_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__LAB_CRT8000_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__lab_crt8_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 2047, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__LAB_CRT8000_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_MAP2_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_map2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_MAP2_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_FLATBED_BUMPER_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_flatbed_bumper_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 32), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0), + gsDPSetTileSize(0, 0, 0, 1020, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_FLATBED_BUMPER_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_PFAB_BKS1B_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_pfab_bks1b_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 511, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 60), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_PFAB_BKS1B_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_PAPER1_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_paper1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 2047, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_PAPER1_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__SPOTBLUE_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__spotblue_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 255, 512), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), + gsDPSetTileSize(0, 0, 0, 60, 60), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__SPOTBLUE_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_STRIPES2_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_stripes2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_STRIPES2_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_PFAB_BKS1A_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_pfab_bks1a_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 511, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 60), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_PFAB_BKS1A_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__LAB1_CMP2000_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__lab1_cmp2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__LAB1_CMP2000_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_FLR10_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_flr10_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 8191, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_FLR10_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_DUCT_VNT_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_duct_vnt_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 4095, 128), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0), + gsDPSetTileSize(0, 0, 0, 252, 252), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_DUCT_VNT_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_SIGNC1A1_1_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_signc1a1_1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 65535, 32), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0), + gsDPSetTileSize(0, 0, 0, 1020, 1020), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_SIGNC1A1_1_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A1SIGN2A_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a1sign2a_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 8191, 32), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0), + gsDPSetTileSize(0, 0, 0, 1020, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A1SIGN2A_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_MAP1_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_map1_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_MAP1_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A1SIGN2B_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a1sign2b_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 8191, 32), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0), + gsDPSetTileSize(0, 0, 0, 1020, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A1SIGN2B_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__GRATESTEP2_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__gratestep2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 16383, 64), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0), + gsDPSetTileSize(0, 0, 0, 508, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__GRATESTEP2_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE__LAB_CRT2000_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl__lab_crt2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE__LAB_CRT2000_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_DOOR2A_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_door2a_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 32767, 32), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 8, 0), + gsDPSetTileSize(0, 0, 0, 1020, 508), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_DOOR2A_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_C1A1DOOREDGE_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_c1a1dooredge_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_C1A1DOOREDGE_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_GEAR3_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_gear3_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 1023, 256), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 0), + gsDPSetTileSize(0, 0, 0, 124, 124), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_GEAR3_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx mat_hl_dl_HALFLIFE_LAB1_GEAR2_f3d[] = { + gsDPPipeSync(), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, ENVIRONMENT, 0, SHADE, 0), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPTexture(65535, 65535, 0, 0, 1), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, hl_dl_lab1_gear2_rgba16), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0), + gsDPLoadBlock(7, 0, 0, 255, 512), + gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0, G_TX_WRAP | G_TX_NOMIRROR, 4, 0), + gsDPSetTileSize(0, 0, 0, 60, 60), + gsSPEndDisplayList(), +}; + +Gfx mat_revert_hl_dl_HALFLIFE_LAB1_GEAR2_f3d[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPEndDisplayList(), +}; + +Gfx hl_dl_map_mesh_layer_1[] = { + gsSPDisplayList(mat_hl_dl_HALFLIFE_FIFTIES_CMP3B_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_0), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_FIFTIES_CMP3B_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_CA1X_MONSIDE_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_1), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_CA1X_MONSIDE_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_DRKMTLT_BORD11_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_2), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_DRKMTLT_BORD11_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C2A4E_W1B_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_3), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C2A4E_W1B_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A0_LABW4_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_4), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A0_LABW4_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_DRKMTL_SCRN3_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_5), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_DRKMTL_SCRN3_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A0_LABW5_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_6), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A0_LABW5_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_DRKMTLT_CEIL01B_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_7), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_DRKMTLT_CEIL01B_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A0_LABGLU_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_8), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A0_LABGLU_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__0C2A4E_W1_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_9), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__0C2A4E_W1_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_FIFTIES_CMP3C_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_10), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_FIFTIES_CMP3C_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A1_FLR1_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_11), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A1_FLR1_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_B4_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_12), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_B4_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__SPOTYELLOW_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_13), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__SPOTYELLOW_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A0_LABW7_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_14), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A0_LABW7_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_COMP3E_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_15), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_COMP3E_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_BASETRIM02_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_16), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_BASETRIM02_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_OUT_DMPLID_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_17), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_OUT_DMPLID_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__A_LAB1_SW1_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_18), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__A_LAB1_SW1_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_GENERIC028_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_19), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_GENERIC028_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A1_FLR2C_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_20), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A1_FLR2C_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_GENERIC46_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_21), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_GENERIC46_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C2A4X_C1_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_22), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C2A4X_C1_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__0_GENERIC85_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_23), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__0_GENERIC85_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_FIFTIES_MON1B_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_24), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_FIFTIES_MON1B_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__0_FIFTIES_LGT2_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_25), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__0_FIFTIES_LGT2_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_GENERIC015V2_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_26), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_GENERIC015V2_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_DRKMTL_SCRN000_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_27), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_DRKMTL_SCRN000_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_BABTECH_CEIL01_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_28), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_BABTECH_CEIL01_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__0_FIFTIES_LGT3_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_29), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__0_FIFTIES_LGT3_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A0_WX_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_30), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A0_WX_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_BLACK_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_31), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_BLACK_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__LAB_CRT8000_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_32), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__LAB_CRT8000_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_MAP2_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_33), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_MAP2_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_FLATBED_BUMPER_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_34), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_FLATBED_BUMPER_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_PFAB_BKS1B_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_35), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_PFAB_BKS1B_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_PAPER1_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_36), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_PAPER1_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__SPOTBLUE_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_37), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__SPOTBLUE_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_STRIPES2_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_38), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_STRIPES2_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_PFAB_BKS1A_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_39), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_PFAB_BKS1A_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__LAB1_CMP2000_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_40), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__LAB1_CMP2000_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_FLR10_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_41), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_FLR10_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_DUCT_VNT_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_42), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_DUCT_VNT_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_SIGNC1A1_1_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_43), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_SIGNC1A1_1_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A1SIGN2A_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_44), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A1SIGN2A_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_MAP1_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_45), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_MAP1_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A1SIGN2B_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_46), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A1SIGN2B_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__GRATESTEP2_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_47), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__GRATESTEP2_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE__LAB_CRT2000_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_48), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE__LAB_CRT2000_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_DOOR2A_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_49), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_DOOR2A_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_C1A1DOOREDGE_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_50), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_C1A1DOOREDGE_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_GEAR3_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_51), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_GEAR3_f3d), + gsSPDisplayList(mat_hl_dl_HALFLIFE_LAB1_GEAR2_f3d), + gsSPDisplayList(hl_dl_map_mesh_layer_1_tri_52), + gsSPDisplayList(mat_revert_hl_dl_HALFLIFE_LAB1_GEAR2_f3d), + gsSPEndDisplayList(), +}; + +Gfx hl_dl_material_revert_render_settings[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_LIGHTING_ENGINE_EXT), + gsSPSetGeometryMode(G_LIGHTING), + gsSPClearGeometryMode(G_TEXTURE_GEN), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + gsSPTexture(65535, 65535, 0, 0, 0), + gsDPSetEnvColor(255, 255, 255, 255), + gsDPSetAlphaCompare(G_AC_NONE), + gsSPEndDisplayList(), +}; + diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/out_dmplid.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/out_dmplid.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..b4a733e97766a683fc30ce292fc9892500e66e6b GIT binary patch literal 4557 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 S{r`U)Kub+u^`o+V%zpr4q@U6N literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/pfab_bks1a.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/pfab_bks1a.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..c71a5bd8477d24d89a6d5d98806543548f1bf3c4 GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYelv!$oXPU1sgBFl2!N4f#$-uz; z0!}kAN-?kkWf*~&gHamJ769@YQobAk$#LepxfO%>U~o%o+c_YEv%n(~D99}g!i)^F z=14FwFunA2aSZX`Z4EKZzw99LPs;kJO5vkbrG~4bB3EgJHZ62!Ki0>?Bl}ab=MRfp z9g{K;a0jVcxg@PTArvS&bJs$(b-}Csg75AAZ28<EF4{JXXat>=)m*BXAYt{$NsWm@@5-TG8-Hv~~{8?)9`S1lUDg}8v zBktdvw$G-Wd1ctd!?h_7?=6#iSaDhA+GDdg8~(x~z1$ltYa%)}GaXX9b>P#6t-IB~ zML(Dv-mfl{@a*YR`Hc?$O?G|N(s*zgi4iI=bc*R|@U(Y`Kqp$~t*cIAA1 z=9vDNC3Bm^lOF~wudm(Ob8!{#i5qoNFMl$t^yCk*9Pv!1D zi9g%CW3vQKXU^51s};BSX5qvbRe{GMC*Co(SG8=NA?6W2t3b|Z;UAmX{N-1aTc&f( zuIaT_*1lUMp8vMja^sW3g-`E3d)!$dyT;txBkuU~x~2ocb_b4JwafbB@hA7u=Dwba zZ8HV+FZrMU{BMOriFf&8&j)Ljyi%M_7xZeKk$qGzo5n3Fu>Qc}`Da$;o;3Y(&6PDR z~d8Cs&_5m3|}dboNc|SN`XZT$MXG`RC;@JGrwJ-&prD%;7EN`?O#4 z)5nM(76$AyeNybNbeKf8ec#V7@KU~o%o+c_YEv%n(~D99}g!i)^F z=12eyN$_-W4DsN78*1o%*g>RDS2pj(gpCW13JbDK=iy@%w6ge7{41C%h{IylgBLgK z6;cXLESTVEpx|_jN0v`#-uu1T3g4eJmA$+q-dFQ}-}`;lJIe(;lu}P`+QM(XQdOo` zX!i4&b7PnHgc@y34ZQK?+dZLqaaptXKl%1C?_9(uPnPWcmcI__@4d60zi~#)5yoS_ zuYc^BJUzujUdKV|#GW(rpM<2#UCNJfc%JuPft`VE)pn*Y3y-C;$+Ipq%Q-0VdDSWf zx%YBdtb2HWAB~(*XkRz7x>%eG;KH(z3?kX*LVM8XCBI2cu?@2 z`GK_Y5#H@}-uBl%SS_FaXB}&_J>$DIk!H1}v23T#imO*>FL=ngTC}K?_1A+L8>6;X z91-cAx8aI+9nj1|M)~!UwP)rlFL{6T2Y24?DTkNLZMxaNr^f0`Ld`3a6szc8za}R= ne7XLdlK=jSb+-T5=k46$aL4`HWMBkP9 +#include "sm64.h" +#include "behavior_data.h" +#include "model_ids.h" +#include "seq_ids.h" +#include "dialog_ids.h" +#include "segment_symbols.h" +#include "level_commands.h" + +#include "game/level_update.h" + +#include "levels/scripts.h" + +#include "make_const_nonconst.h" +#include "levels/hl/header.h" + +const LevelScript level_hl_entry[] = { + INIT_LEVEL(), + LOAD_MIO0(0x7, _hl_segment_7SegmentRomStart, _hl_segment_7SegmentRomEnd), + ALLOC_LEVEL_POOL(), + MARIO(MODEL_MARIO, 0x00000001, bhvMario), + + AREA(1, hl_area_1), + WARP_NODE(0x0A, 50, 0x01, 0x0A, WARP_NO_CHECKPOINT), + WARP_NODE(0xF0, 51, 0x01, 0x0A, WARP_NO_CHECKPOINT), + WARP_NODE(0xF1, 50, 0x01, 0x0A, WARP_NO_CHECKPOINT), + WARP_NODE(0x01, 50, 0x01, 0x0A, WARP_NO_CHECKPOINT), + WARP_NODE(0x02, 50, 0x01, 0x0A, WARP_NO_CHECKPOINT), + OBJECT(MODEL_NONE, 0, 0, 0, 0, 0, 0, (0x64 << 24) | (0x64 << 16) | (0x78 << 8) | (0x00), bhvAmbientLight), + OBJECT(MODEL_NONE, 1296, -527, -592, 0, 0, 0, 0x000A0000, bhvInstantActiveWarp), + MARIO_POS(0x01, 0, 1296, -527, -592), + OBJECT(MODEL_NONE, -111, -287, -1006, 0, 0, 0, (0x32 << 24) | (0x32 << 16) | (0x46 << 8) | (0x64), bhvPointLight), + OBJECT(MODEL_NONE, -111, -287, -183, 0, 0, 0, (0x32 << 24) | (0x32 << 16) | (0x46 << 8) | (0x64), bhvPointLight), + OBJECT(MODEL_NONE, -111, -287, -618, 0, 0, 0, (0x32 << 24) | (0x32 << 16) | (0x46 << 8) | (0x64), bhvPointLight), + OBJECT(MODEL_NONE, -111, -287, -618, 0, 0, 0, (0x46 << 24) | (0x50 << 16) | (0x64 << 8) | (0x64), bhvPointLight), + TERRAIN(hl_area_1_collision), + MACRO_OBJECTS(hl_area_1_macro_objs), + SET_BACKGROUND_MUSIC(0x00, SEQ_SOUND_PLAYER), + TERRAIN_TYPE(TERRAIN_STONE), + /* Fast64 begin persistent block [area commands] */ + /* Fast64 end persistent block [area commands] */ + END_AREA(), + + FREE_LEVEL_POOL(), + MARIO_POS(0x01, 0, 1296, -527, -592), + CALL(0, lvl_init_or_update), + CALL_LOOP(1, lvl_init_or_update), + CLEAR_LEVEL(), + SLEEP_BEFORE_EXIT(1), + EXIT(), +}; diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/signc1a1_1.rgba16.png b/docs/lua/examples/lighting-engine-demo/levels/hl/signc1a1_1.rgba16.png new file mode 100644 index 0000000000000000000000000000000000000000..0d57428e0cfad97f540f5525617187c9eb0ded8c GIT binary patch literal 54657 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 literal 0 HcmV?d00001 diff --git a/docs/lua/examples/lighting-engine-demo/levels/hl/texture_include.inc.c b/docs/lua/examples/lighting-engine-demo/levels/hl/texture_include.inc.c new file mode 100644 index 000000000..2b188106b --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/levels/hl/texture_include.inc.c @@ -0,0 +1,265 @@ +Gfx hl_dl_fifties_cmp3b_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_fifties_cmp3b_rgba16[] = { + #include "levels/hl/fifties_cmp3b.rgba16.inc.c" +}; + +Gfx hl_dl_ca1x_monside_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_ca1x_monside_rgba16[] = { + #include "levels/hl/ca1x_monside.rgba16.inc.c" +}; + +Gfx hl_dl_drkmtlt_bord11_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_drkmtlt_bord11_rgba16[] = { + #include "levels/hl/drkmtlt_bord11.rgba16.inc.c" +}; + +Gfx hl_dl_c2a4e_w1b_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c2a4e_w1b_rgba16[] = { + #include "levels/hl/c2a4e_w1b.rgba16.inc.c" +}; + +Gfx hl_dl_c1a0_labw4_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a0_labw4_rgba16[] = { + #include "levels/hl/c1a0_labw4.rgba16.inc.c" +}; + +Gfx hl_dl_drkmtl_scrn3_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_drkmtl_scrn3_rgba16[] = { + #include "levels/hl/drkmtl_scrn3.rgba16.inc.c" +}; + +Gfx hl_dl_c1a0_labw5_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a0_labw5_rgba16[] = { + #include "levels/hl/c1a0_labw5.rgba16.inc.c" +}; + +Gfx hl_dl_drkmtlt_ceil01b_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_drkmtlt_ceil01b_rgba16[] = { + #include "levels/hl/drkmtlt_ceil01b.rgba16.inc.c" +}; + +Gfx hl_dl_c1a0_labglu_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a0_labglu_rgba16[] = { + #include "levels/hl/c1a0_labglu.rgba16.inc.c" +}; + +Gfx hl_dl__0c2a4e_w1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__0c2a4e_w1_rgba16[] = { + #include "levels/hl/_0c2a4e_w1.rgba16.inc.c" +}; + +Gfx hl_dl_fifties_cmp3c_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_fifties_cmp3c_rgba16[] = { + #include "levels/hl/fifties_cmp3c.rgba16.inc.c" +}; + +Gfx hl_dl_c1a1_flr1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a1_flr1_rgba16[] = { + #include "levels/hl/c1a1_flr1.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_b4_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_b4_rgba16[] = { + #include "levels/hl/lab1_b4.rgba16.inc.c" +}; + +Gfx hl_dl__spotyellow_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__spotyellow_rgba16[] = { + #include "levels/hl/_spotyellow.rgba16.inc.c" +}; + +Gfx hl_dl_c1a0_labw7_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a0_labw7_rgba16[] = { + #include "levels/hl/c1a0_labw7.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_comp3e_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_comp3e_rgba16[] = { + #include "levels/hl/lab1_comp3e.rgba16.inc.c" +}; + +Gfx hl_dl_basetrim02_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_basetrim02_rgba16[] = { + #include "levels/hl/basetrim02.rgba16.inc.c" +}; + +Gfx hl_dl_out_dmplid_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_out_dmplid_rgba16[] = { + #include "levels/hl/out_dmplid.rgba16.inc.c" +}; + +Gfx hl_dl__a_lab1_sw1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__a_lab1_sw1_rgba16[] = { + #include "levels/hl/_a_lab1_sw1.rgba16.inc.c" +}; + +Gfx hl_dl_generic028_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_generic028_rgba16[] = { + #include "levels/hl/generic028.rgba16.inc.c" +}; + +Gfx hl_dl_c1a1_flr2c_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a1_flr2c_rgba16[] = { + #include "levels/hl/c1a1_flr2c.rgba16.inc.c" +}; + +Gfx hl_dl_generic46_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_generic46_rgba16[] = { + #include "levels/hl/generic46.rgba16.inc.c" +}; + +Gfx hl_dl_c2a4x_c1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c2a4x_c1_rgba16[] = { + #include "levels/hl/c2a4x_c1.rgba16.inc.c" +}; + +Gfx hl_dl__0_generic85_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__0_generic85_rgba16[] = { + #include "levels/hl/_0_generic85.rgba16.inc.c" +}; + +Gfx hl_dl_fifties_mon1b_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_fifties_mon1b_rgba16[] = { + #include "levels/hl/fifties_mon1b.rgba16.inc.c" +}; + +Gfx hl_dl__0_fifties_lgt2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__0_fifties_lgt2_rgba16[] = { + #include "levels/hl/_0_fifties_lgt2.rgba16.inc.c" +}; + +Gfx hl_dl_generic015v2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_generic015v2_rgba16[] = { + #include "levels/hl/generic015v2.rgba16.inc.c" +}; + +Gfx hl_dl_drkmtl_scrn_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_drkmtl_scrn_rgba16[] = { + #include "levels/hl/drkmtl_scrn.rgba16.inc.c" +}; + +Gfx hl_dl_babtech_ceil01_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_babtech_ceil01_rgba16[] = { + #include "levels/hl/babtech_ceil01.rgba16.inc.c" +}; + +Gfx hl_dl__0_fifties_lgt3_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__0_fifties_lgt3_rgba16[] = { + #include "levels/hl/_0_fifties_lgt3.rgba16.inc.c" +}; + +Gfx hl_dl_c1a0_wx_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a0_wx_rgba16[] = { + #include "levels/hl/c1a0_wx.rgba16.inc.c" +}; + +Gfx hl_dl_black_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_black_rgba16[] = { + #include "levels/hl/black.rgba16.inc.c" +}; + +Gfx hl_dl__lab_crt8_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__lab_crt8_rgba16[] = { + #include "levels/hl/_lab_crt8.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_map2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_map2_rgba16[] = { + #include "levels/hl/lab1_map2.rgba16.inc.c" +}; + +Gfx hl_dl_flatbed_bumper_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_flatbed_bumper_rgba16[] = { + #include "levels/hl/flatbed_bumper.rgba16.inc.c" +}; + +Gfx hl_dl_pfab_bks1b_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_pfab_bks1b_rgba16[] = { + #include "levels/hl/pfab_bks1b.rgba16.inc.c" +}; + +Gfx hl_dl_paper1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_paper1_rgba16[] = { + #include "levels/hl/paper1.rgba16.inc.c" +}; + +Gfx hl_dl__spotblue_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__spotblue_rgba16[] = { + #include "levels/hl/_spotblue.rgba16.inc.c" +}; + +Gfx hl_dl_stripes2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_stripes2_rgba16[] = { + #include "levels/hl/stripes2.rgba16.inc.c" +}; + +Gfx hl_dl_pfab_bks1a_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_pfab_bks1a_rgba16[] = { + #include "levels/hl/pfab_bks1a.rgba16.inc.c" +}; + +Gfx hl_dl__lab1_cmp2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__lab1_cmp2_rgba16[] = { + #include "levels/hl/_lab1_cmp2.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_flr10_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_flr10_rgba16[] = { + #include "levels/hl/lab1_flr10.rgba16.inc.c" +}; + +Gfx hl_dl_duct_vnt_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_duct_vnt_rgba16[] = { + #include "levels/hl/duct_vnt.rgba16.inc.c" +}; + +Gfx hl_dl_signc1a1_1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_signc1a1_1_rgba16[] = { + #include "levels/hl/signc1a1_1.rgba16.inc.c" +}; + +Gfx hl_dl_c1a1sign2a_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a1sign2a_rgba16[] = { + #include "levels/hl/c1a1sign2a.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_map1_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_map1_rgba16[] = { + #include "levels/hl/lab1_map1.rgba16.inc.c" +}; + +Gfx hl_dl_c1a1sign2b_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a1sign2b_rgba16[] = { + #include "levels/hl/c1a1sign2b.rgba16.inc.c" +}; + +Gfx hl_dl__gratestep2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__gratestep2_rgba16[] = { + #include "levels/hl/_gratestep2.rgba16.inc.c" +}; + +Gfx hl_dl__lab_crt2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl__lab_crt2_rgba16[] = { + #include "levels/hl/_lab_crt2.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_door2a_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_door2a_rgba16[] = { + #include "levels/hl/lab1_door2a.rgba16.inc.c" +}; + +Gfx hl_dl_c1a1dooredge_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_c1a1dooredge_rgba16[] = { + #include "levels/hl/c1a1dooredge.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_gear3_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_gear3_rgba16[] = { + #include "levels/hl/lab1_gear3.rgba16.inc.c" +}; + +Gfx hl_dl_lab1_gear2_rgba16_aligner[] = {gsSPEndDisplayList()}; +u8 hl_dl_lab1_gear2_rgba16[] = { + #include "levels/hl/lab1_gear2.rgba16.inc.c" +}; + diff --git a/docs/lua/examples/lighting-engine-demo/main.lua b/docs/lua/examples/lighting-engine-demo/main.lua new file mode 100644 index 000000000..6df460431 --- /dev/null +++ b/docs/lua/examples/lighting-engine-demo/main.lua @@ -0,0 +1,111 @@ +-- name: Lighting Engine Demo +-- description: Lighting Engine Demo\nBy \\#ec7731\\Agent X\n\n\\#dcdcdc\\Open the panel in the pause menu to see what you can do. + +local flashlightColor = { 255, 255, 200 } + +--- @param node GraphNode +function geo_hide_if_dnc(node) + local dl = cast_graph_node(node.next) + gfx_parse(dl.displayList, function(cmd, op) + if op == G_SETENVCOLOR then + gfx_set_command(cmd, "gsDPSetEnvColor", 255, 255, 255, if_then_else(_G.dayNightCycleApi ~= nil and _G.dayNightCycleApi.is_dnc_enabled(), 0, 255)) + end + end) +end + +--- @param o Object +local function bhv_spawn_point_light(o) + local light = spawn_non_sync_object( + id_bhvPointLight, + E_MODEL_NONE, + o.oPosX, o.oPosY, o.oPosZ, + nil + ) + if get_id_from_behavior(o.behavior) == id_bhvKoopaShell then + light.oBehParams = 0x00FF0032 + else + light.oBehParams = 0xFFFFFF32 + end + light.parentObj = o +end + +--- @param o Object +function bhv_flashlight_loop(o) + local pos = gMarioStates[0].pos + local yaw = gFirstPersonCamera.yaw + 0x8000 + o.oPosX = pos.x + sins(yaw) * 300 + o.oPosY = pos.y + -gFirstPersonCamera.pitch * 0.06 + o.oPosZ = pos.z + coss(yaw) * 300 + le_set_light_pos(o.oLightID, o.oPosX, o.oPosY, o.oPosZ) + le_set_light_color(o.oLightID, flashlightColor[1], flashlightColor[2], flashlightColor[3]) +end + +local function spawn_flashlight() + local flashlight = spawn_non_sync_object( + bhvFlashlight, + E_MODEL_NONE, + 0, 0, 0, + nil + ) + flashlight.oBehParams = (flashlightColor[1] << 24) | (flashlightColor[2] << 16) | (flashlightColor[3] << 8) | (90) + return flashlight +end + +--- @param flashlight Object +local function delete_flashlight(flashlight) + le_remove_light(flashlight.oLightID) + obj_mark_for_deletion(flashlight) + return nil +end + +--- @param m MarioState +local function calculate_mario_lighting(m) + local color = { r = 0, g = 0, b = 0 } + local dir = { x = 0, y = 0, z = 0 } + + le_calculate_lighting_color(m.pos, color, 0.25) + le_calculate_lighting_dir(m.pos, dir) + + m.marioBodyState.lightR = color.r + m.marioBodyState.lightG = color.g + m.marioBodyState.lightB = color.b + m.marioBodyState.shadeR = m.marioBodyState.lightR * 0.5 + m.marioBodyState.shadeG = m.marioBodyState.lightG * 0.5 + m.marioBodyState.shadeB = m.marioBodyState.lightB * 0.5 + + m.marioBodyState.lightingDirX = -DEFAULT_LIGHTING_DIR + dir.x + m.marioBodyState.lightingDirY = -DEFAULT_LIGHTING_DIR + dir.y + m.marioBodyState.lightingDirZ = -DEFAULT_LIGHTING_DIR + dir.z +end + +--- @param m MarioState +local function mario_update(m) + if m.playerIndex ~= 0 then return end + + calculate_mario_lighting(m) + + if (m.controller.buttonPressed & L_JPAD) ~= 0 then + audio_sample_play(SOUND_CUSTOM_FLASHLIGHT, m.pos, 1.0) + local flashlight = obj_get_first_with_behavior_id(bhvFlashlight) + if flashlight ~= nil then + delete_flashlight(flashlight) + else + spawn_flashlight() + end + end +end + + +local function on_set_flashlight_color(index, value) + flashlightColor[index + 1] = value +end + +id_bhvKoopaShell = hook_behavior(id_bhvKoopaShell, OBJ_LIST_LEVEL, false, bhv_spawn_point_light, nil, "bhvKoopaShell") + +hook_event(HOOK_MARIO_UPDATE, mario_update) + +hook_mod_menu_slider("Flashlight Red", flashlightColor[1], 0, 255, on_set_flashlight_color) +hook_mod_menu_slider("Flashlight Green", flashlightColor[2], 0, 255, on_set_flashlight_color) +hook_mod_menu_slider("Flashlight Blue", flashlightColor[3], 0, 255, on_set_flashlight_color) +hook_mod_menu_button("Warp to Black Mesa", function() warp_to_level(LEVEL_HL, 1, 0) end) +hook_mod_menu_button("Warp to Sunset Canals", function() warp_to_level(LEVEL_CANALS, 1, 0) end) \ No newline at end of file diff --git a/docs/lua/examples/lighting-engine-demo/sound/flashlight.ogg b/docs/lua/examples/lighting-engine-demo/sound/flashlight.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fa070319bf40f3b94deb413faac4eef626a4b4ea GIT binary patch literal 4960 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 literal 0 HcmV?d00001 diff --git a/docs/lua/functions-2.md b/docs/lua/functions-2.md index 9c6ad3bd7..4381b0942 100644 --- a/docs/lua/functions-2.md +++ b/docs/lua/functions-2.md @@ -436,6 +436,27 @@ Behavior loop function for alpha boo key
+## [bhv_ambient_light_init](#bhv_ambient_light_init) + +### Description +Behavior loop function for the lighting engine ambient light. Takes the first 3 behavior parameter bytes for RGB color + +### Lua Example +`bhv_ambient_light_init()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void bhv_ambient_light_init(void);` + +[:arrow_up_small:](#) + +
+ ## [bhv_ambient_sounds_init](#bhv_ambient_sounds_init) ### Description @@ -7345,6 +7366,48 @@ Behavior loop function for playing a jingle when in a 200 unit radius
+## [bhv_point_light_init](#bhv_point_light_init) + +### Description +Behavior init function for the lighting engine point light. Takes the first 3 behavior parameter bytes for RGB color and the last for radius + +### Lua Example +`bhv_point_light_init()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void bhv_point_light_init(void);` + +[:arrow_up_small:](#) + +
+ +## [bhv_point_light_loop](#bhv_point_light_loop) + +### Description +Behavior loop function for the lighting engine point light + +### Lua Example +`bhv_point_light_loop()` + +### Parameters +- None + +### Returns +- None + +### C Prototype +`void bhv_point_light_loop(void);` + +[:arrow_up_small:](#) + +
+ ## [bhv_pokey_body_part_update](#bhv_pokey_body_part_update) ### Description diff --git a/docs/lua/functions-3.md b/docs/lua/functions-3.md index 260c58bbe..4c5b339f6 100644 --- a/docs/lua/functions-3.md +++ b/docs/lua/functions-3.md @@ -6241,6 +6241,260 @@ Special warps to arg (`SPECIAL_WARP_*`) [:arrow_up_small:](#) +
+ +--- +# functions from lighting_engine.h + +
+ + +## [le_add_light](#le_add_light) + +### Description +Adds a lighting engine point light at `x`, `y`, `z` with color `r`, `g`, `b` and `radius` with `intensity` + +### Lua Example +`local integerValue = le_add_light(x, y, z, r, g, b, radius, intensity)` + +### Parameters +| Field | Type | +| ----- | ---- | +| x | `number` | +| y | `number` | +| z | `number` | +| r | `integer` | +| g | `integer` | +| b | `integer` | +| radius | `number` | +| intensity | `number` | + +### Returns +- `integer` + +### C Prototype +`s16 le_add_light(f32 x, f32 y, f32 z, u8 r, u8 g, u8 b, f32 radius, f32 intensity);` + +[:arrow_up_small:](#) + +
+ +## [le_calculate_lighting_color](#le_calculate_lighting_color) + +### Description +Calculates the lighting with `lightIntensityScalar` at a position and outputs the color in `out` + +### Lua Example +`le_calculate_lighting_color(pos, out, lightIntensityScalar)` + +### Parameters +| Field | Type | +| ----- | ---- | +| pos | [Vec3f](structs.md#Vec3f) | +| out | `Color` | +| lightIntensityScalar | `number` | + +### Returns +- None + +### C Prototype +`void le_calculate_lighting_color(Vec3f pos, Color out, f32 lightIntensityScalar);` + +[:arrow_up_small:](#) + +
+ +## [le_calculate_lighting_dir](#le_calculate_lighting_dir) + +### Description +Calculates the lighting direction from a position and outputs the result in `out` + +### Lua Example +`le_calculate_lighting_dir(pos, out)` + +### Parameters +| Field | Type | +| ----- | ---- | +| pos | [Vec3f](structs.md#Vec3f) | +| out | [Vec3f](structs.md#Vec3f) | + +### Returns +- None + +### C Prototype +`void le_calculate_lighting_dir(Vec3f pos, Vec3f out);` + +[:arrow_up_small:](#) + +
+ +## [le_get_light_count](#le_get_light_count) + +### Description +Gets the total number of lights currently loaded in the lighting engine + +### Lua Example +`local integerValue = le_get_light_count()` + +### Parameters +- None + +### Returns +- `integer` + +### C Prototype +`s16 le_get_light_count(void);` + +[:arrow_up_small:](#) + +
+ +## [le_remove_light](#le_remove_light) + +### Description +Removes a lighting engine point light corresponding to `id` + +### Lua Example +`le_remove_light(id)` + +### Parameters +| Field | Type | +| ----- | ---- | +| id | `integer` | + +### Returns +- None + +### C Prototype +`void le_remove_light(s16 id);` + +[:arrow_up_small:](#) + +
+ +## [le_set_ambient_color](#le_set_ambient_color) + +### Description +Sets the lighting engine ambient color + +### Lua Example +`le_set_ambient_color(r, g, b)` + +### Parameters +| Field | Type | +| ----- | ---- | +| r | `integer` | +| g | `integer` | +| b | `integer` | + +### Returns +- None + +### C Prototype +`void le_set_ambient_color(u8 r, u8 g, u8 b);` + +[:arrow_up_small:](#) + +
+ +## [le_set_light_color](#le_set_light_color) + +### Description +Sets a lighting engine point light's color to `r`, `g`, `b` + +### Lua Example +`le_set_light_color(id, r, g, b)` + +### Parameters +| Field | Type | +| ----- | ---- | +| id | `integer` | +| r | `integer` | +| g | `integer` | +| b | `integer` | + +### Returns +- None + +### C Prototype +`void le_set_light_color(s16 id, u8 r, u8 g, u8 b);` + +[:arrow_up_small:](#) + +
+ +## [le_set_light_intensity](#le_set_light_intensity) + +### Description +Sets a lighting engine point light's `intensity` + +### Lua Example +`le_set_light_intensity(id, intensity)` + +### Parameters +| Field | Type | +| ----- | ---- | +| id | `integer` | +| intensity | `number` | + +### Returns +- None + +### C Prototype +`void le_set_light_intensity(s16 id, f32 intensity);` + +[:arrow_up_small:](#) + +
+ +## [le_set_light_pos](#le_set_light_pos) + +### Description +Sets a lighting engine point light's position to `x`, `y`, `z` + +### Lua Example +`le_set_light_pos(id, x, y, z)` + +### Parameters +| Field | Type | +| ----- | ---- | +| id | `integer` | +| x | `number` | +| y | `number` | +| z | `number` | + +### Returns +- None + +### C Prototype +`void le_set_light_pos(s16 id, f32 x, f32 y, f32 z);` + +[:arrow_up_small:](#) + +
+ +## [le_set_light_radius](#le_set_light_radius) + +### Description +Sets a lighting engine point light's `radius` + +### Lua Example +`le_set_light_radius(id, radius)` + +### Parameters +| Field | Type | +| ----- | ---- | +| id | `integer` | +| radius | `number` | + +### Returns +- None + +### C Prototype +`void le_set_light_radius(s16 id, f32 radius);` + +[:arrow_up_small:](#) +
--- diff --git a/docs/lua/functions-6.md b/docs/lua/functions-6.md index 115f41abd..3fbfea7ea 100644 --- a/docs/lua/functions-6.md +++ b/docs/lua/functions-6.md @@ -194,7 +194,7 @@ Gets a value of the global vertex shading color ## [gfx_get_vtx](#gfx_get_vtx) ### Description -Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`. +Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse` ### Lua Example `local PointerValue = gfx_get_vtx(gfx, offset)` @@ -215,10 +215,33 @@ Gets a vertex from a display list command if it has the correct op. Intended to
+## [gfx_get_vtx_count](#gfx_get_vtx_count) + +### Description +Gets the number of vertices from a display list command if it has the correct op + +### Lua Example +`local integerValue = gfx_get_vtx_count(cmd)` + +### Parameters +| Field | Type | +| ----- | ---- | +| cmd | `Pointer` <`Gfx`> | + +### Returns +- `integer` + +### C Prototype +`u16 gfx_get_vtx_count(Gfx* cmd);` + +[:arrow_up_small:](#) + +
+ ## [gfx_parse](#gfx_parse) ### Description -Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`. +Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op` ### Lua Example `gfx_parse(cmd, func)` diff --git a/docs/lua/functions.md b/docs/lua/functions.md index b116b2445..b80ee43c1 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -59,6 +59,7 @@ - [bhv_activated_back_and_forth_platform_init](functions-2.md#bhv_activated_back_and_forth_platform_init) - [bhv_activated_back_and_forth_platform_update](functions-2.md#bhv_activated_back_and_forth_platform_update) - [bhv_alpha_boo_key_loop](functions-2.md#bhv_alpha_boo_key_loop) + - [bhv_ambient_light_init](functions-2.md#bhv_ambient_light_init) - [bhv_ambient_sounds_init](functions-2.md#bhv_ambient_sounds_init) - [bhv_animated_texture_loop](functions-2.md#bhv_animated_texture_loop) - [bhv_animates_on_floor_switch_press_init](functions-2.md#bhv_animates_on_floor_switch_press_init) @@ -388,6 +389,8 @@ - [bhv_platform_on_track_init](functions-2.md#bhv_platform_on_track_init) - [bhv_platform_on_track_update](functions-2.md#bhv_platform_on_track_update) - [bhv_play_music_track_when_touched_loop](functions-2.md#bhv_play_music_track_when_touched_loop) + - [bhv_point_light_init](functions-2.md#bhv_point_light_init) + - [bhv_point_light_loop](functions-2.md#bhv_point_light_loop) - [bhv_pokey_body_part_update](functions-2.md#bhv_pokey_body_part_update) - [bhv_pokey_update](functions-2.md#bhv_pokey_update) - [bhv_pole_base_loop](functions-2.md#bhv_pole_base_loop) @@ -946,6 +949,20 @@
+- lighting_engine.h + - [le_add_light](functions-3.md#le_add_light) + - [le_calculate_lighting_color](functions-3.md#le_calculate_lighting_color) + - [le_calculate_lighting_dir](functions-3.md#le_calculate_lighting_dir) + - [le_get_light_count](functions-3.md#le_get_light_count) + - [le_remove_light](functions-3.md#le_remove_light) + - [le_set_ambient_color](functions-3.md#le_set_ambient_color) + - [le_set_light_color](functions-3.md#le_set_light_color) + - [le_set_light_intensity](functions-3.md#le_set_light_intensity) + - [le_set_light_pos](functions-3.md#le_set_light_pos) + - [le_set_light_radius](functions-3.md#le_set_light_radius) + +
+ - mario.h - [adjust_sound_for_speed](functions-4.md#adjust_sound_for_speed) - [check_common_action_exits](functions-4.md#check_common_action_exits) @@ -1739,6 +1756,7 @@ - [get_skybox_color](functions-6.md#get_skybox_color) - [get_vertex_color](functions-6.md#get_vertex_color) - [gfx_get_vtx](functions-6.md#gfx_get_vtx) + - [gfx_get_vtx_count](functions-6.md#gfx_get_vtx_count) - [gfx_parse](functions-6.md#gfx_parse) - [gfx_set_combine_lerp](functions-6.md#gfx_set_combine_lerp) - [gfx_set_texture_image](functions-6.md#gfx_set_texture_image) diff --git a/docs/lua/guides/object-lists.md b/docs/lua/guides/object-lists.md index a17c500b5..3a9ab5fbe 100644 --- a/docs/lua/guides/object-lists.md +++ b/docs/lua/guides/object-lists.md @@ -520,3 +520,5 @@ |`bhvIntroScene`|`OBJ_LIST_DEFAULT`| |`RM_Scroll_Texture`|`OBJ_LIST_GENACTOR`| |`editor_Scroll_Texture`|`OBJ_LIST_GENACTOR`| +|`bhvAmbientLight`|`OBJ_LIST_DEFAULT`| +|`bhvPointLight`|`OBJ_LIST_DEFAULT`| \ No newline at end of file diff --git a/docs/lua/structs.md b/docs/lua/structs.md index a85b3feff..9af8a2141 100644 --- a/docs/lua/structs.md +++ b/docs/lua/structs.md @@ -2761,6 +2761,7 @@ | oYoshiChosenHome | `integer` | | | oYoshiTargetYaw | `integer` | | | oBreakableWallForce | `integer` | | +| oLightID | `integer` | | [:arrow_up_small:](#) diff --git a/include/PR/gbi_extension.h b/include/PR/gbi_extension.h index 49e68f3b6..5fd0ad7c1 100644 --- a/include/PR/gbi_extension.h +++ b/include/PR/gbi_extension.h @@ -4,7 +4,8 @@ // G_SETGEOMETRYMODE // /////////////////////// -#define G_LIGHT_MAP_EXT 0x00000800 +#define G_LIGHT_MAP_EXT 0x00000800 +#define G_LIGHTING_ENGINE_EXT 0x00004000 ////////// // DJUI // diff --git a/include/behavior_data.h b/include/behavior_data.h index 63f9262c3..15e0adc5e 100644 --- a/include/behavior_data.h +++ b/include/behavior_data.h @@ -543,5 +543,7 @@ extern const BehaviorScript bhvIntroScene[]; extern const BehaviorScript bhvUnusedFakeStar[]; extern const BehaviorScript RM_Scroll_Texture[]; extern const BehaviorScript editor_Scroll_Texture[]; +extern const BehaviorScript bhvAmbientLight[]; +extern const BehaviorScript bhvPointLight[]; #endif // BEHAVIOR_DATA_H diff --git a/include/behavior_table.h b/include/behavior_table.h index 6807d2ddf..f4cf7146b 100644 --- a/include/behavior_table.h +++ b/include/behavior_table.h @@ -543,6 +543,8 @@ enum BehaviorId { id_editor_Scroll_Texture, id_bhvBlueCoinNumber, id_bhvStarNumber, + id_bhvAmbientLight, + id_bhvPointLight, id_bhv_max_count // must be the last in the list }; diff --git a/include/object_fields.h b/include/object_fields.h index 166129097..d96906ea3 100644 --- a/include/object_fields.h +++ b/include/object_fields.h @@ -1166,4 +1166,7 @@ /* Breakable Wall */ #define /*0x104*/ oBreakableWallForce OBJECT_FIELD_S32(0x1F) +/* Point Light */ +#define /*0x104*/ oLightID OBJECT_FIELD_S32(0x1F) + #endif // OBJECT_FIELDS_H diff --git a/src/engine/lighting_engine.c b/src/engine/lighting_engine.c new file mode 100644 index 000000000..a8b6b3c60 --- /dev/null +++ b/src/engine/lighting_engine.c @@ -0,0 +1,161 @@ +#include "lighting_engine.h" +#include "math_util.h" +#include "surface_collision.h" +#include "pc/lua/utils/smlua_math_utils.h" +#include "data/dynos_cmap.cpp.h" + +static Color sAmbientColor; +static void* sLights = NULL; +static s16 sLightID = -1; + +static inline void color_set(Color color, u8 r, u8 g, u8 b) { + color[0] = r; + color[1] = g; + color[2] = b; +} + +void le_calculate_vertex_lighting(Vtx_t* v, Color out) { + if (sLights == NULL) { return; } + + f32 r = 0; + f32 g = 0; + f32 b = 0; + for (struct LELight* light = hmap_begin(sLights); light != NULL; light = hmap_next(sLights)) { + f32 dist = vec3f_dist(light->pos, v->ob); + if (dist > light->radius) { continue; } + dist = 1 - minf(dist / light->radius, 1); + + r += light->color[0] * dist * light->intensity; + g += light->color[1] * dist * light->intensity; + b += light->color[2] * dist * light->intensity; + } + + out[0] = min((v->cn[0] * (sAmbientColor[0] / 255.0f)) + r, 255); + out[1] = min((v->cn[1] * (sAmbientColor[1] / 255.0f)) + g, 255); + out[2] = min((v->cn[2] * (sAmbientColor[2] / 255.0f)) + b, 255); +} + +void le_calculate_lighting_color(Vec3f pos, Color out, f32 lightIntensityScalar) { + if (sLights == NULL) { return; } + + f32 r = 0; + f32 g = 0; + f32 b = 0; + for (struct LELight* light = hmap_begin(sLights); light != NULL; light = hmap_next(sLights)) { + f32 dist = vec3f_dist(light->pos, pos); + if (dist > light->radius) { continue; } + dist = 1 - minf(dist / light->radius, 1); + + r += light->color[0] * dist * light->intensity * lightIntensityScalar; + g += light->color[1] * dist * light->intensity * lightIntensityScalar; + b += light->color[2] * dist * light->intensity * lightIntensityScalar; + } + + out[0] = min(sAmbientColor[0] + r, 255); + out[1] = min(sAmbientColor[1] + g, 255); + out[2] = min(sAmbientColor[2] + b, 255); +} + +void le_calculate_lighting_dir(Vec3f pos, Vec3f out) { + if (sLights == NULL) { return; } + + Vec3f lightingDir = { 0, 0, 0 }; + s16 count = 0; + for (struct LELight* light = hmap_begin(sLights); light != NULL; light = hmap_next(sLights)) { + f32 dist = vec3f_dist(light->pos, pos); + if (dist > light->radius) { continue; } + dist = 1 - minf(dist / light->radius, 1); + + Vec3f dir = { + pos[0] - light->pos[0], + pos[1] - light->pos[1], + pos[2] - light->pos[2], + }; + vec3f_normalize(dir); + + lightingDir[0] += dir[0] * dist * light->intensity; + lightingDir[1] += dir[1] * dist * light->intensity; + lightingDir[2] += dir[2] * dist * light->intensity; + + count++; + } + + count++; // additional increment + out[0] = lightingDir[0] / (f32)(count); + out[1] = lightingDir[1] / (f32)(count); + out[2] = lightingDir[2] / (f32)(count); + vec3f_normalize(out); +} + +s16 le_add_light(f32 x, f32 y, f32 z, u8 r, u8 g, u8 b, f32 radius, f32 intensity) { + if (sLights == NULL) { + sLights = hmap_create(true); + } + + struct LELight* light = calloc(1, sizeof(struct LELight)); + vec3f_set(light->pos, x, y, z); + color_set(light->color, r, g, b); + light->radius = radius; + light->intensity = intensity; + hmap_put(sLights, ++sLightID, light); + return sLightID; +} + +void le_remove_light(s16 id) { + free(hmap_get(sLights, id)); + hmap_del(sLights, id); +} + +s16 le_get_light_count(void) { + if (sLights == NULL) { return 0; } + return hmap_len(sLights); +} + +void le_set_ambient_color(u8 r, u8 g, u8 b) { + color_set(sAmbientColor, r, g, b); +} + +void le_set_light_pos(s16 id, f32 x, f32 y, f32 z) { + struct LELight* light = hmap_get(sLights, id); + if (light == NULL) { return; } + vec3f_set(light->pos, x, y, z); +} + +void le_set_light_color(s16 id, u8 r, u8 g, u8 b) { + struct LELight* light = hmap_get(sLights, id); + if (light == NULL) { return; } + color_set(light->color, r, g, b); +} + +void le_set_light_radius(s16 id, f32 radius) { + struct LELight* light = hmap_get(sLights, id); + if (light == NULL) { return; } + light->radius = radius; +} + +void le_set_light_intensity(s16 id, f32 intensity) { + struct LELight* light = hmap_get(sLights, id); + if (light == NULL) { return; } + light->intensity = intensity; +} + +void le_clear(void) { + if (sLights == NULL) { return; } + + for (struct LELight* light = hmap_begin(sLights); light != NULL; light = hmap_next(sLights)) { + free(light); + } + hmap_clear(sLights); + sLightID = -1; + sAmbientColor[0] = 0; + sAmbientColor[1] = 0; + sAmbientColor[2] = 0; +} + +void le_shutdown(void) { + if (sLights == NULL) { return; } + + le_clear(); + hmap_destroy(sLights); + sLights = NULL; +} diff --git a/src/engine/lighting_engine.h b/src/engine/lighting_engine.h new file mode 100644 index 000000000..3feb3cf33 --- /dev/null +++ b/src/engine/lighting_engine.h @@ -0,0 +1,38 @@ +#ifndef LIGHTING_ENGINE_H +#define LIGHTING_ENGINE_H + +#include "types.h" + +struct LELight +{ + Vec3f pos; + Color color; + f32 radius; + f32 intensity; +}; + +void le_calculate_vertex_lighting(Vtx_t* v, Color out); +/* |description|Calculates the lighting with `lightIntensityScalar` at a position and outputs the color in `out`|descriptionEnd|*/ +void le_calculate_lighting_color(Vec3f pos, Color out, f32 lightIntensityScalar); +/* |description|Calculates the lighting direction from a position and outputs the result in `out`|descriptionEnd| */ +void le_calculate_lighting_dir(Vec3f pos, Vec3f out); +/* |description|Adds a lighting engine point light at `x`, `y`, `z` with color `r`, `g`, `b` and `radius` with `intensity`|descriptionEnd| */ +s16 le_add_light(f32 x, f32 y, f32 z, u8 r, u8 g, u8 b, f32 radius, f32 intensity); +/* |description|Removes a lighting engine point light corresponding to `id`|descriptionEnd| */ +void le_remove_light(s16 id); +/* |description|Gets the total number of lights currently loaded in the lighting engine|descriptionEnd| */ +s16 le_get_light_count(void); +/* |description|Sets the lighting engine ambient color|descriptionEnd| */ +void le_set_ambient_color(u8 r, u8 g, u8 b); +/* |description|Sets a lighting engine point light's position to `x`, `y`, `z`|descriptionEnd| */ +void le_set_light_pos(s16 id, f32 x, f32 y, f32 z); +/* |description|Sets a lighting engine point light's color to `r`, `g`, `b`|descriptionEnd| */ +void le_set_light_color(s16 id, u8 r, u8 g, u8 b); +/* |description|Sets a lighting engine point light's `radius`|descriptionEnd| */ +void le_set_light_radius(s16 id, f32 radius); +/* |description|Sets a lighting engine point light's `intensity`|descriptionEnd| */ +void le_set_light_intensity(s16 id, f32 intensity); +void le_clear(void); +void le_shutdown(void); + +#endif // LIGHTING_ENGINE_H diff --git a/src/game/area.c b/src/game/area.c index 0e37980c3..99afab064 100644 --- a/src/game/area.c +++ b/src/game/area.c @@ -28,6 +28,7 @@ #include "pc/djui/djui.h" #include "pc/djui/djui_panel_pause.h" #include "pc/nametags.h" +#include "engine/lighting_engine.h" struct SpawnInfo gPlayerSpawnInfos[MAX_PLAYERS]; struct Area gAreaData[MAX_AREAS]; @@ -248,6 +249,8 @@ void clear_areas(void) { gAreaData[i].musicParam = 0; gAreaData[i].musicParam2 = 0; } + + le_clear(); } void clear_area_graph_nodes(void) { diff --git a/src/game/behavior_actions.c b/src/game/behavior_actions.c index 1a9d34b4b..e4e6c987f 100644 --- a/src/game/behavior_actions.c +++ b/src/game/behavior_actions.c @@ -48,6 +48,7 @@ #include "pc/lua/utils/smlua_model_utils.h" #include "pc/lua/smlua_hooks.h" #include "hardcoded.h" +#include "engine/lighting_engine.h" #define o gCurrentObject @@ -277,3 +278,4 @@ s32 set_obj_anim_with_accel_and_sound(s16 a0, s16 a1, s32 a2) { #include "behaviors/sl_snowman_wind.inc.c" #include "behaviors/sl_walking_penguin.inc.c" #include "behaviors/texscroll.inc.c" +#include "behaviors/light.inc.c" diff --git a/src/game/behavior_actions.h b/src/game/behavior_actions.h index 939479362..a19889ae1 100644 --- a/src/game/behavior_actions.h +++ b/src/game/behavior_actions.h @@ -1147,6 +1147,12 @@ void bhv_yoshi_loop(void); void bhv_volcano_trap_loop(void); /* |description|Behavior loop function for UV texture scrolling|descriptionEnd| */ void uv_update_scroll(void); +/* |description|Behavior loop function for the lighting engine ambient light. Takes the first 3 behavior parameter bytes for RGB color|descriptionEnd| */ +void bhv_ambient_light_init(void); +/* |description|Behavior init function for the lighting engine point light. Takes the first 3 behavior parameter bytes for RGB color and the last for radius|descriptionEnd| */ +void bhv_point_light_init(void); +/* |description|Behavior loop function for the lighting engine point light|descriptionEnd| */ +void bhv_point_light_loop(void); Gfx *geo_move_mario_part_from_parent(s32 run, UNUSED struct GraphNode *node, Mat4 mtx); diff --git a/src/game/behaviors/light.inc.c b/src/game/behaviors/light.inc.c new file mode 100644 index 000000000..7d5ebbe30 --- /dev/null +++ b/src/game/behaviors/light.inc.c @@ -0,0 +1,35 @@ +void bhv_ambient_light_init(void) { + le_set_ambient_color( + (o->oBehParams >> 24) & 0xFF, + (o->oBehParams >> 16) & 0xFF, + (o->oBehParams >> 8) & 0xFF + ); +} + + +void bhv_point_light_init(void) { + o->oLightID = le_add_light( + // position + o->oPosX, o->oPosY, o->oPosZ, + // color + (o->oBehParams >> 24) & 0xFF, (o->oBehParams >> 16) & 0xFF, (o->oBehParams >> 8) & 0xFF, + // radius + (o->oBehParams & 0xFF) * 10.0f, + // intensity (2 by default) + 2.0f + ); +} + +void bhv_point_light_loop(void) { + if (o->parentObj != NULL) { + if (o->parentObj->activeFlags == ACTIVE_FLAG_DEACTIVATED) { + le_remove_light(o->oLightID); + obj_mark_for_deletion(o); + return; + } + + obj_copy_pos(o, o->parentObj); + } + + le_set_light_pos(o->oLightID, o->oPosX, o->oPosY, o->oPosZ); +} diff --git a/src/pc/debug_context.h b/src/pc/debug_context.h index 27048a91f..013f1e469 100644 --- a/src/pc/debug_context.h +++ b/src/pc/debug_context.h @@ -20,6 +20,7 @@ enum DebugContext { CTX_RENDER, CTX_LEVEL_SCRIPT, CTX_HOOK, + CTX_LIGHTING, CTX_MAX, // MUST BE KEPT IN SYNC WITH sDebugContextNames }; diff --git a/src/pc/djui/djui_ctx_display.c b/src/pc/djui/djui_ctx_display.c index 2477625f1..7eb21aa1c 100644 --- a/src/pc/djui/djui_ctx_display.c +++ b/src/pc/djui/djui_ctx_display.c @@ -17,6 +17,7 @@ static char* sDebugContextNames[] = { "RENDER", "LEVEL", "HOOK", + "LIGHTING", "OTHER", "MAX", }; diff --git a/src/pc/gfx/gfx_pc.c b/src/pc/gfx/gfx_pc.c index 53eafcc3c..b2ecf41ae 100644 --- a/src/pc/gfx/gfx_pc.c +++ b/src/pc/gfx/gfx_pc.c @@ -34,6 +34,8 @@ #include "macros.h" #include "game/rendering_graph_node.h" +#include "engine/lighting_engine.h" +#include "pc/debug_context.h" #define SUPPORT_CHECK(x) assert(x) @@ -769,11 +771,16 @@ static float gfx_adjust_x_for_aspect_ratio(float x) { static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, const Vtx *vertices, bool luaVertexColor) { float globalLightCached[2][3]; + float vertexColorCached[3]; if (rsp.geometry_mode & G_LIGHTING) { for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) globalLightCached[i][j] = gLightingColor[i][j] / 255.0f; } + } else if (luaVertexColor) { + for (int i = 0; i < 3; i ++) { + vertexColorCached[i] = gVertexColor[i] / 255.0f; + } } #ifdef __SSE__ @@ -856,14 +863,26 @@ static void OPTIMIZE_O3 gfx_sp_vertex(size_t n_vertices, size_t dest_index, cons U = (int32_t)((dotx / 127.0f + 1.0f) / 4.0f * rsp.texture_scaling_factor.s); V = (int32_t)((doty / 127.0f + 1.0f) / 4.0f * rsp.texture_scaling_factor.t); } + } else if (rsp.geometry_mode & G_LIGHTING_ENGINE_EXT) { + Color color; + CTX_BEGIN(CTX_LIGHTING); + le_calculate_vertex_lighting((Vtx_t*)v, color); + CTX_END(CTX_LIGHTING); + if (luaVertexColor) { + d->color.r = color[0] * vertexColorCached[0]; + d->color.g = color[1] * vertexColorCached[1]; + d->color.b = color[2] * vertexColorCached[2]; + } else { + d->color.r = color[0]; + d->color.g = color[1]; + d->color.b = color[2]; + } + } else { if (!(rsp.geometry_mode & G_LIGHT_MAP_EXT) && luaVertexColor) { - f32 r = gVertexColor[0] / 255.0f; - f32 g = gVertexColor[1] / 255.0f; - f32 b = gVertexColor[2] / 255.0f; - d->color.r = v->cn[0] * r; - d->color.g = v->cn[1] * g; - d->color.b = v->cn[2] * b; + d->color.r = v->cn[0] * vertexColorCached[0]; + d->color.g = v->cn[1] * vertexColorCached[1]; + d->color.b = v->cn[2] * vertexColorCached[2]; } else { d->color.r = v->cn[0]; d->color.g = v->cn[1]; diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c index 664a56108..9e55d95b6 100644 --- a/src/pc/lua/smlua_cobject_autogen.c +++ b/src/pc/lua/smlua_cobject_autogen.c @@ -1616,7 +1616,7 @@ static struct LuaObjectField sNetworkPlayerFields[LUA_NETWORK_PLAYER_FIELD_COUNT { "type", LVT_U8, offsetof(struct NetworkPlayer, type), true, LOT_NONE, 1, sizeof(u8) }, }; -#define LUA_OBJECT_FIELD_COUNT 760 +#define LUA_OBJECT_FIELD_COUNT 761 static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = { { "activeFlags", LVT_S16, offsetof(struct Object, activeFlags), false, LOT_NONE, 1, sizeof(s16) }, { "allowRemoteInteractions", LVT_U8, offsetof(struct Object, allowRemoteInteractions), false, LOT_NONE, 1, sizeof(u8) }, @@ -2021,6 +2021,7 @@ static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = { { "oKoopaTheQuickRaceIndex", LVT_S16, offsetof(struct Object, oKoopaTheQuickRaceIndex), false, LOT_NONE, 1, sizeof(s16) }, { "oKoopaTurningAwayFromWall", LVT_S32, offsetof(struct Object, oKoopaTurningAwayFromWall), false, LOT_NONE, 1, sizeof(s32) }, { "oKoopaUnshelledTimeUntilTurn", LVT_S32, offsetof(struct Object, oKoopaUnshelledTimeUntilTurn), false, LOT_NONE, 1, sizeof(s32) }, + { "oLightID", LVT_S32, offsetof(struct Object, oLightID), false, LOT_NONE, 1, sizeof(s32) }, { "oLllRotatingHexFlameUnkF4", LVT_F32, offsetof(struct Object, oLllRotatingHexFlameUnkF4), false, LOT_NONE, 1, sizeof(f32) }, { "oLllRotatingHexFlameUnkF8", LVT_F32, offsetof(struct Object, oLllRotatingHexFlameUnkF8), false, LOT_NONE, 1, sizeof(f32) }, { "oLllRotatingHexFlameUnkFC", LVT_F32, offsetof(struct Object, oLllRotatingHexFlameUnkFC), false, LOT_NONE, 1, sizeof(f32) }, diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index a988dcb19..396531a9e 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -833,7 +833,9 @@ char gSmluaConstants[] = "" "id_editor_Scroll_Texture=536\n" "id_bhvBlueCoinNumber=537\n" "id_bhvStarNumber=538\n" -"id_bhv_max_count=539\n" +"id_bhvAmbientLight=539\n" +"id_bhvPointLight=540\n" +"id_bhv_max_count=541\n" "RCO_ALL=0\n" "RCO_ALL_EXCEPT_BOWSER=1\n" "RCO_NONE=2\n" diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 3cdb76c42..5db342f22 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -51,6 +51,7 @@ #include "src/game/first_person_cam.h" #include "src/engine/behavior_script.h" #include "src/audio/seqplayer.h" +#include "src/engine/lighting_engine.h" /////////////// @@ -564,6 +565,22 @@ int smlua_func_bhv_alpha_boo_key_loop(UNUSED lua_State* L) { return 1; } +int smlua_func_bhv_ambient_light_init(UNUSED lua_State* L) { + if (!gCurrentObject) { return 0; } + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "bhv_ambient_light_init", 0, top); + return 0; + } + + + bhv_ambient_light_init(); + + return 1; +} + int smlua_func_bhv_ambient_sounds_init(UNUSED lua_State* L) { if (!gCurrentObject) { return 0; } if (L == NULL) { return 0; } @@ -5830,6 +5847,38 @@ int smlua_func_bhv_play_music_track_when_touched_loop(UNUSED lua_State* L) { } #endif +int smlua_func_bhv_point_light_init(UNUSED lua_State* L) { + if (!gCurrentObject) { return 0; } + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "bhv_point_light_init", 0, top); + return 0; + } + + + bhv_point_light_init(); + + return 1; +} + +int smlua_func_bhv_point_light_loop(UNUSED lua_State* L) { + if (!gCurrentObject) { return 0; } + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "bhv_point_light_loop", 0, top); + return 0; + } + + + bhv_point_light_loop(); + + return 1; +} + int smlua_func_bhv_pokey_body_part_update(UNUSED lua_State* L) { if (!gCurrentObject) { return 0; } if (L == NULL) { return 0; } @@ -14901,6 +14950,234 @@ int smlua_func_warp_special(lua_State* L) { return 1; } + /////////////////////// + // lighting_engine.h // +/////////////////////// + +int smlua_func_le_add_light(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 8) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_add_light", 8, top); + return 0; + } + + f32 x = smlua_to_number(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_add_light"); return 0; } + f32 y = smlua_to_number(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_add_light"); return 0; } + f32 z = smlua_to_number(L, 3); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "le_add_light"); return 0; } + u8 r = smlua_to_integer(L, 4); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 4, "le_add_light"); return 0; } + u8 g = smlua_to_integer(L, 5); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 5, "le_add_light"); return 0; } + u8 b = smlua_to_integer(L, 6); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 6, "le_add_light"); return 0; } + f32 radius = smlua_to_number(L, 7); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 7, "le_add_light"); return 0; } + f32 intensity = smlua_to_number(L, 8); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 8, "le_add_light"); return 0; } + + lua_pushinteger(L, le_add_light(x, y, z, r, g, b, radius, intensity)); + + return 1; +} + +int smlua_func_le_calculate_lighting_color(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 3) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_calculate_lighting_color", 3, top); + return 0; + } + + + Vec3f pos; + smlua_get_vec3f(pos, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_calculate_lighting_color"); return 0; } + + Color out; + smlua_get_color(out, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_calculate_lighting_color"); return 0; } + f32 lightIntensityScalar = smlua_to_number(L, 3); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "le_calculate_lighting_color"); return 0; } + + le_calculate_lighting_color(pos, out, lightIntensityScalar); + + smlua_push_vec3f(pos, 1); + + smlua_push_color(out, 2); + + return 1; +} + +int smlua_func_le_calculate_lighting_dir(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_calculate_lighting_dir", 2, top); + return 0; + } + + + Vec3f pos; + smlua_get_vec3f(pos, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_calculate_lighting_dir"); return 0; } + + Vec3f out; + smlua_get_vec3f(out, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_calculate_lighting_dir"); return 0; } + + le_calculate_lighting_dir(pos, out); + + smlua_push_vec3f(pos, 1); + + smlua_push_vec3f(out, 2); + + return 1; +} + +int smlua_func_le_get_light_count(UNUSED lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_get_light_count", 0, top); + return 0; + } + + + lua_pushinteger(L, le_get_light_count()); + + return 1; +} + +int smlua_func_le_remove_light(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_remove_light", 1, top); + return 0; + } + + s16 id = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_remove_light"); return 0; } + + le_remove_light(id); + + return 1; +} + +int smlua_func_le_set_ambient_color(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 3) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_set_ambient_color", 3, top); + return 0; + } + + u8 r = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_set_ambient_color"); return 0; } + u8 g = smlua_to_integer(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_set_ambient_color"); return 0; } + u8 b = smlua_to_integer(L, 3); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "le_set_ambient_color"); return 0; } + + le_set_ambient_color(r, g, b); + + return 1; +} + +int smlua_func_le_set_light_color(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 4) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_set_light_color", 4, top); + return 0; + } + + s16 id = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_set_light_color"); return 0; } + u8 r = smlua_to_integer(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_set_light_color"); return 0; } + u8 g = smlua_to_integer(L, 3); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "le_set_light_color"); return 0; } + u8 b = smlua_to_integer(L, 4); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 4, "le_set_light_color"); return 0; } + + le_set_light_color(id, r, g, b); + + return 1; +} + +int smlua_func_le_set_light_intensity(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_set_light_intensity", 2, top); + return 0; + } + + s16 id = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_set_light_intensity"); return 0; } + f32 intensity = smlua_to_number(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_set_light_intensity"); return 0; } + + le_set_light_intensity(id, intensity); + + return 1; +} + +int smlua_func_le_set_light_pos(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 4) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_set_light_pos", 4, top); + return 0; + } + + s16 id = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_set_light_pos"); return 0; } + f32 x = smlua_to_number(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_set_light_pos"); return 0; } + f32 y = smlua_to_number(L, 3); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 3, "le_set_light_pos"); return 0; } + f32 z = smlua_to_number(L, 4); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 4, "le_set_light_pos"); return 0; } + + le_set_light_pos(id, x, y, z); + + return 1; +} + +int smlua_func_le_set_light_radius(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 2) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "le_set_light_radius", 2, top); + return 0; + } + + s16 id = smlua_to_integer(L, 1); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "le_set_light_radius"); return 0; } + f32 radius = smlua_to_number(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "le_set_light_radius"); return 0; } + + le_set_light_radius(id, radius); + + return 1; +} + ///////////// // mario.h // ///////////// @@ -28921,6 +29198,23 @@ int smlua_func_gfx_get_vtx(lua_State* L) { return 1; } +int smlua_func_gfx_get_vtx_count(lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 1) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "gfx_get_vtx_count", 1, top); + return 0; + } + + Gfx* cmd = (Gfx*)smlua_to_cobject(L, 1, LOT_GFX); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "gfx_get_vtx_count"); return 0; } + + lua_pushinteger(L, gfx_get_vtx_count(cmd)); + + return 1; +} + int smlua_func_gfx_parse(lua_State* L) { if (L == NULL) { return 0; } @@ -32861,6 +33155,7 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "bhv_activated_back_and_forth_platform_init", smlua_func_bhv_activated_back_and_forth_platform_init); smlua_bind_function(L, "bhv_activated_back_and_forth_platform_update", smlua_func_bhv_activated_back_and_forth_platform_update); smlua_bind_function(L, "bhv_alpha_boo_key_loop", smlua_func_bhv_alpha_boo_key_loop); + smlua_bind_function(L, "bhv_ambient_light_init", smlua_func_bhv_ambient_light_init); smlua_bind_function(L, "bhv_ambient_sounds_init", smlua_func_bhv_ambient_sounds_init); smlua_bind_function(L, "bhv_animated_texture_loop", smlua_func_bhv_animated_texture_loop); smlua_bind_function(L, "bhv_animates_on_floor_switch_press_init", smlua_func_bhv_animates_on_floor_switch_press_init); @@ -33192,6 +33487,8 @@ void smlua_bind_functions_autogen(void) { #ifndef VERSION_JP smlua_bind_function(L, "bhv_play_music_track_when_touched_loop", smlua_func_bhv_play_music_track_when_touched_loop); #endif + smlua_bind_function(L, "bhv_point_light_init", smlua_func_bhv_point_light_init); + smlua_bind_function(L, "bhv_point_light_loop", smlua_func_bhv_point_light_loop); smlua_bind_function(L, "bhv_pokey_body_part_update", smlua_func_bhv_pokey_body_part_update); smlua_bind_function(L, "bhv_pokey_update", smlua_func_bhv_pokey_update); smlua_bind_function(L, "bhv_pole_base_loop", smlua_func_bhv_pole_base_loop); @@ -33724,6 +34021,18 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "lvl_set_current_level", smlua_func_lvl_set_current_level); smlua_bind_function(L, "warp_special", smlua_func_warp_special); + // lighting_engine.h + smlua_bind_function(L, "le_add_light", smlua_func_le_add_light); + smlua_bind_function(L, "le_calculate_lighting_color", smlua_func_le_calculate_lighting_color); + smlua_bind_function(L, "le_calculate_lighting_dir", smlua_func_le_calculate_lighting_dir); + smlua_bind_function(L, "le_get_light_count", smlua_func_le_get_light_count); + smlua_bind_function(L, "le_remove_light", smlua_func_le_remove_light); + smlua_bind_function(L, "le_set_ambient_color", smlua_func_le_set_ambient_color); + smlua_bind_function(L, "le_set_light_color", smlua_func_le_set_light_color); + smlua_bind_function(L, "le_set_light_intensity", smlua_func_le_set_light_intensity); + smlua_bind_function(L, "le_set_light_pos", smlua_func_le_set_light_pos); + smlua_bind_function(L, "le_set_light_radius", smlua_func_le_set_light_radius); + // mario.h smlua_bind_function(L, "adjust_sound_for_speed", smlua_func_adjust_sound_for_speed); smlua_bind_function(L, "check_common_action_exits", smlua_func_check_common_action_exits); @@ -34489,6 +34798,7 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "get_skybox_color", smlua_func_get_skybox_color); smlua_bind_function(L, "get_vertex_color", smlua_func_get_vertex_color); smlua_bind_function(L, "gfx_get_vtx", smlua_func_gfx_get_vtx); + smlua_bind_function(L, "gfx_get_vtx_count", smlua_func_gfx_get_vtx_count); smlua_bind_function(L, "gfx_parse", smlua_func_gfx_parse); smlua_bind_function(L, "gfx_set_combine_lerp", smlua_func_gfx_set_combine_lerp); smlua_bind_function(L, "gfx_set_texture_image", smlua_func_gfx_set_texture_image); diff --git a/src/pc/lua/utils/smlua_gfx_utils.c b/src/pc/lua/utils/smlua_gfx_utils.c index 3d2bfe968..f944f4393 100644 --- a/src/pc/lua/utils/smlua_gfx_utils.c +++ b/src/pc/lua/utils/smlua_gfx_utils.c @@ -166,6 +166,15 @@ Vtx *gfx_get_vtx(Gfx* cmd, u16 offset) { return &((Vtx *) cmd->words.w1)[offset]; } +u16 gfx_get_vtx_count(Gfx* cmd) { + if (!cmd) { return 0; } + u32 op = cmd->words.w0 >> 24; + if (op != G_VTX) { return 0; } + if (cmd->words.w1 == 0) { return 0; } + + return C0(12, 8); +} + void gfx_set_combine_lerp(Gfx* gfx, u32 a0, u32 b0, u32 c0, u32 d0, u32 Aa0, u32 Ab0, u32 Ac0, u32 Ad0, u32 a1, u32 b1, u32 c1, u32 d1, u32 Aa1, u32 Ab1, u32 Ac1, u32 Ad1) { if (!gfx) { return; } gDPSetCombineLERPNoString(gfx, a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1); diff --git a/src/pc/lua/utils/smlua_gfx_utils.h b/src/pc/lua/utils/smlua_gfx_utils.h index ce6ccd115..cbac3271e 100644 --- a/src/pc/lua/utils/smlua_gfx_utils.h +++ b/src/pc/lua/utils/smlua_gfx_utils.h @@ -48,10 +48,12 @@ u8 get_skybox_color(u8 index); /* |description|Sets a value of the global skybox color|descriptionEnd| */ void set_skybox_color(u8 index, u8 value); -/* |description|Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`.|descriptionEnd| */ +/* |description|Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`|descriptionEnd| */ void gfx_parse(Gfx* cmd, LuaFunction func); -/* |description|Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`.|descriptionEnd| */ +/* |description|Gets a vertex from a display list command if it has the correct op. Intended to be used with `gfx_parse`|descriptionEnd| */ Vtx *gfx_get_vtx(Gfx* gfx, u16 offset); +/* |description|Gets the number of vertices from a display list command if it has the correct op|descriptionEnd| */ +u16 gfx_get_vtx_count(Gfx* cmd); /* |description|Sets the display list combine mode. you can fill this function with G_CCMUX_* and G_ACMUX_* constants|descriptionEnd| */ void gfx_set_combine_lerp(Gfx* gfx, u32 a0, u32 b0, u32 c0, u32 d0, u32 Aa0, u32 Ab0, u32 Ac0, u32 Ad0, u32 a1, u32 b1, u32 c1, u32 d1, u32 Aa1, u32 Ab1, u32 Ac1, u32 Ad1); /* |description|Sets the display list texture image. Pass in textureInfo.texture as `texture`|descriptionEnd| */ diff --git a/src/pc/network/network.c b/src/pc/network/network.c index b27297c8e..5c78ff57b 100644 --- a/src/pc/network/network.c +++ b/src/pc/network/network.c @@ -6,8 +6,6 @@ #include "game/level_update.h" #include "object_constants.h" #include "behavior_table.h" -#include "game/hardcoded.h" -#include "game/scroll_targets.h" #include "pc/configfile.h" #include "pc/djui/djui.h" #include "pc/djui/djui_panel.h" @@ -24,6 +22,8 @@ #include "pc/pc_main.h" #include "pc/gfx/gfx_pc.h" #include "pc/fs/fmem.h" +#include "game/hardcoded.h" +#include "game/scroll_targets.h" #include "game/camera.h" #include "game/skybox.h" #include "game/object_list_processor.h" @@ -34,7 +34,7 @@ #include "game/first_person_cam.h" #include "game/envfx_snow.h" #include "engine/math_util.h" -#include "game/mario.h" +#include "engine/lighting_engine.h" #ifdef DISCORD_SDK #include "pc/discord/discord.h" @@ -737,6 +737,8 @@ void network_shutdown(bool sendLeaving, bool exiting, bool popup, bool reconnect vec3f_set(gFirstPersonCamera.offset, 0, 0, 0); first_person_reset(); + le_shutdown(); + extern void save_file_load_all(UNUSED u8 reload); save_file_load_all(TRUE); extern void save_file_set_using_backup_slot(bool usingBackupSlot);