Compare commits

..

667 Commits

Author SHA1 Message Date
Garrett Cox 7b7c2e064e Fix BGS issue & send room update if enabling AP (#6010) 2025-12-07 14:47:34 -07:00
Malkierian be7cd12dda Change version. 2025-12-07 10:46:24 -07:00
Garrett Cox 2b9acd888b More last minute fixes (#37)
* More last minute fixes

* tweaks to RogueLike

* Add random GBK requirement
2025-12-07 09:55:52 -07:00
Patrick12115 53162fde4a Make Extra Traps fully random when in Archi save file (#36)
Since extra traps are based off GI model ID and Scene ID and the GI model is always a gold rupee in Multiworld Archi, it would always be the same trap per scene.
2025-12-07 09:48:28 -07:00
Garrett Cox 1aa04eeee1 Fix infinite search for pos (#35) 2025-12-06 15:34:10 -07:00
Garrett Cox edbef01749 Fix bunnyhood (#34) 2025-12-06 13:24:19 -07:00
Garrett Cox f5af415098 Reindeer games additions (#33)
* Remove hat from darunia

* Update some stuffs

* Remove custom collectible (in favor of CustomItem)

* Roguelike

Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>

* Fix a bunch of stuff

* Persist roguelike data

* Experimental anchor tweaks

* Stop freeze from scrubs & fix pablo cvar

---------

Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>
2025-12-06 09:45:43 -07:00
Malkierian e3029a834b Merge branch 'develop' of github.com:Malkierian/Shipwright into reindeer-games 2025-12-03 09:14:56 -07:00
Garrett Cox 9401d4fd71 Stop hiding key counts with skeleton key, and grant all keys (#5932) 2025-12-03 09:00:18 -07:00
Christopher Leggett 280455db42 Improvements to Custom Kaleido Menu (#5997)
* Use game over textures instead of save textures

* Improves custom kaleido menu.

Specifically:

1. Changes textures to the Game Over screen textures, which look
the same but doesn't have "SAVE" at the top.

2. Adds a cursor on the left, doesn't currently do anything
other than make it slightly clearer that you can move up and down
and scroll, but opens the door for more menu-ing/toggling capabilities
later.

* Add fishing rod to kaleido menu

* Adds skeleton key to kaleido menu with placeholder icon

* More condensing of kaleido menu + add overworld keys

* clang-format
2025-12-03 08:58:52 -07:00
Jordan Longstaff b649f5ed52 Apply ImGui scaling when using presets (#5991)
* Apply ImGui scaling when using presets

* Make ImGuiScale function do nothing if scale setting is unchanged
2025-12-03 08:58:43 -07:00
nclok1405 17f7c3e8f5 Add Expand All/Collapse All buttons to Hook Debugger (#6002) 2025-12-03 08:58:32 -07:00
nclok1405 42282c804e Better Debug Warp: Remember Link's Age and Day/Night Settings (#5981) 2025-12-03 08:58:24 -07:00
Philip Dubé c24b2d74d5 hookify cosmetics (#5900)
also make goron neck searchable
2025-12-03 08:58:16 -07:00
Jordan Longstaff 8aa7b2fc71 Modularize Hyper Enemies hook (#5968)
* Modularize Hyper Enemies hook

* Use extern "C"

* Make mod file self-contained
2025-12-03 08:58:06 -07:00
Garrett Cox a2e4e4d417 Check tracker improvements (#6000) 2025-12-03 08:57:15 -07:00
TheLynk 4366da631b Fix logic gf (#6003)
* Create AutoSyncFork.yml

* Off

* Delete .github/workflows/AutoSyncFork.yml

* Fix Logic In GF
2025-12-03 08:56:58 -07:00
Garrett Cox 9cd31099e2 Additional Anchor functionality: (#5999)
- Returned support for custom tunic colors
- Ocarina playback now audible
- Fixed movement translation issue when climbing or going through crawlspaces
- Fixed issue preventing some items from being visible in Dummy hands (namely ocarina)
- Fixed stick length not correctly syncing
2025-11-30 18:17:00 -07:00
Patrick12115 42c995700a Seems to fix the cvar registrations (#32) 2025-11-30 14:38:39 -07:00
Patrick12115 7b1820298d Block Syncing Items and Flags when playing Archi (#31) 2025-11-30 14:38:29 -07:00
Jordan Longstaff bc48fa84fd A bit of cleanup on multiple hooks (#5879)
* A bit of cleanup on BGS hook

* Cleanup on a few more hooks, fix itemId ref

* Use direct pointer to params

* Revert item receive ID hook setup

* Remove callbacks from menu GUI

* Add comments explaining conditions of permanent loss methods

* Move custom skeletons hook to subfolder

* Clang format

* Shorten comment

* Remove unnecessary re-register function call
2025-11-25 17:00:09 +00:00
Jordan Longstaff da6cf439d6 Modularize equipment hand patch hooks (#5876)
* Modularize equipment hand hooks

* Remove unnecessary include

* More efficient hammer hand hook

* More efficient equipment visible hook

* Add declarations of patching/resetting functions up front

* Remove forward declarations

* Make mod file self-contained
2025-11-24 18:48:56 +00:00
Jordan Longstaff 0f41ecb145 Modularize Hurt Container mode hook (#5874)
* Modularize Hurt Container mode hook

* Hook condition was wrong - fixed it

* Change type of hurtEnabled for clarity

* Change type back to bool

* Add VB hook

* Don't duplicate health capacity modifier calculation

* Add constants, replace magic numbers

* Clang format

* Publicize more health unit macros

* Make mod file self-contained
2025-11-24 17:30:34 +00:00
Pierre-Alain BESSERO 3e6b590db4 Added new trick (#5972)
* Added new trick

Skip Dodongo Cavern by using Bombchus to light the eyes

* Update soh/soh/Enhancements/randomizer/location_access/dungeons/dodongos_cavern.cpp

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/dungeons/dodongos_cavern.cpp

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

---------

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-11-24 13:50:56 +00:00
Malkierian aa119ce8f9 Convert all menu code to new menu, convert Holiday structure to ShipInit and MenuInit, and disable custom rainbows. 2025-11-23 09:34:17 -07:00
Malkierian 08fd5ff5cd Clean up rebase errors. 2025-11-21 12:08:22 -07:00
lilacLunatic d48461f965 [Holiday] Custom rainbows (#4698)
* [Holiday] Custom rainbows

* Update soh/soh/Enhancements/Holiday/LL.h

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2025-11-21 11:27:08 -07:00
Garrett Cox d37a68c7cc Various cleanup 2025-11-21 11:26:11 -07:00
Archez 06aefb30f7 let-it-snow: Snow Golems (Skeleton override) (#4695)
* Add Snow Golems (Skeleton override)

* update snowball to use new snowball DL
2025-11-21 11:16:42 -07:00
Garrett Cox 045de62c95 Add custom collectible thing 2025-11-21 11:02:43 -07:00
Caladius 8bb5d1f1b7 Ornament Exchange (#4582) 2025-11-21 11:01:05 -07:00
Malkierian ffa470f0ec Restore VB from rebase. 2025-11-21 11:00:50 -07:00
aMannus bccf43fc93 Rocs Feather - LetItSnow Edition - No Save Edition - Limited Edition (#4577)
* Rocs Feather Take 2

* Tooltip
2025-11-21 11:00:26 -07:00
lilDavid e01889e36e Holiday Modding Event - Bomb Arrows (#4573)
* Bomb Arrows: Turn arrows into bomb arrows

* Bomb Arrows: Drain bombs when fired

* Bomb Arrows: Equip Over Bow

* Bomb Arrows: Item icons and ammo counts

* Bomb Arrows: Save files

* Bomb Arrows: Fix equip and ammo display bugs

* Bomb Arrows: Interactions with multi-arrows

* Bomb Arrows: Fix fuse graphics
2025-11-21 10:58:00 -07:00
Pepe20129 6c19413f45 Shiny enemies (#4570) 2025-11-21 10:57:33 -07:00
Caladius ea163f12b9 Boulder Shuffle - Shuffles all Boulders randomly (#4554) 2025-11-21 10:56:47 -07:00
Caladius 99585ff270 Holiday Fever (#4551)
* Holiday Fever

* Swap to Int32 for safety net
2025-11-21 10:56:47 -07:00
Garrett Cox 2ff9fcc8fa Fix christmas tree messages 2025-11-21 10:54:32 -07:00
Malkierian 2e8fc8873d Restore VB from merge 2025-11-21 10:52:00 -07:00
Garrett Cox 10f8768bca Add ganon dating sim PoC (#4510) 2025-11-21 10:50:52 -07:00
Garrett Cox 0488f359ed Fix build issue (#4504) 2025-11-21 10:44:52 -07:00
Garrett Cox 1607ad82c0 Add holiday menu and various examples 2025-11-21 10:44:52 -07:00
Malkierian bb497e3125 Initial re-application of let-it-snow. 2025-11-21 10:07:19 -07:00
Philip Dubé 4aebdab43d refactor gtg (#5662) 2025-11-19 08:56:21 -07:00
Garrett 3050d9484f Merge branch 'develop' of github.com:HarbourMasters/Shipwright into aManchipelago 2025-11-16 08:12:13 -06:00
Garrett Cox eca9eac0cf Use OE for storing client ID, remove remaining game state touch point in network thread (#5969) 2025-11-16 08:10:07 -06:00
Malkierian 05233487f8 Don't try to register the Anchor widgets when not built with networking enabled. (#5964) 2025-11-14 14:28:49 -07:00
Malkierian 16909c47cd Merge pull request #5963 from HarbourMasters/develop-copper
Copper -> Dev fix (#5962)
2025-11-14 12:46:51 -07:00
Malkierian daeb3a84c7 Can't use CVars before the CVar system is initialized. (#5962) 2025-11-14 12:45:48 -07:00
Malkierian 623a7e4f7b Merge pull request #5961 from Malkierian/develop-copper
Copper -> Develop 11/14
2025-11-14 12:29:38 -07:00
Garrett Cox 060878fb2e Anchor (#4910)
This is far and away the proudest thing I have been apart of in the Zelda community. Thank you to everyone who either directly or indirectly contributed to this effort. If I forgot to co-author you and you were involved, know that I simply forgot but still appreciated your help! Also thank you to the literal tens of thousands of people who have played Anchor, providing feedback and bug reports. Super thrilled to finally have this merged into the main Ship of Harkinian experience.

Co-authored-by: mattman107 <65982675+mattman107@users.noreply.github.com>
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: MelonSpeedruns <melonspeedruns@outlook.com>
Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com>
Co-authored-by: PurpleHato <47987542+PurpleHato@users.noreply.github.com>
Co-authored-by: balloondude2 <55861555+balloondude2@users.noreply.github.com>
Co-authored-by: lilacLunatic <8488221+lilacLunatic@users.noreply.github.com>
Co-authored-by: Felix Lee <flee135@users.noreply.github.com>
Co-authored-by: Sirius902 <10891979+Sirius902@users.noreply.github.com>
2025-11-14 11:04:09 -07:00
Jordan Longstaff cd1d619c9f Modularize permanent loss mod hooks (#5948)
* Modularize permanent loss mod hooks

* Make RegisterBonkDamage static

* Remove a couple of errant includes

* Fix more errant includes
2025-11-14 09:30:04 -07:00
Philip Dubé 6ccdfc6051 Fix: ground jump for haunted wasteland GS is hard (#5843)
* Fix: ground jump for haunted wasteland GS is hard, & can't be done with hammer

Pulled this logic from zootr where sword is assumed, was not able to execute myself

* Pepper0ni took a stab at this, wasn't able to do it, but didn't feel it wasn't doable

* AGreenSpoon figured it out with BGS/hammer
2025-11-13 19:24:40 -07:00
Malkierian 1e1a47c263 Load metadata without LoadFile() on startup (#5817)
* Load metadata without `LoadFile` on startup.
Implement file type entry.

* Fix non-Windows?

* clang
2025-11-13 19:05:51 -07:00
Jordan Longstaff 14fb9e60d8 Autosave no longer works after save file is deleted (#5959) 2025-11-13 15:31:57 -07:00
Jordan Longstaff dadc2e5218 "Assignable Tunic and Boots" setting now allows shields also (#5953) 2025-11-13 14:29:48 -07:00
Pepper0ni c005248129 Refactor zoras river logic (#5907)
* refactor zoras river

* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2025-11-13 13:03:55 -07:00
Pepper0ni 75c9c579a4 fix invisible blades (#5957) 2025-11-12 08:11:00 -07:00
Philip Dubé a31b7d9ae7 refactor shadow logic (#5650)
* refactor shadow logic

* ground jump / hookshot extension

* with groundjump invisible spikes room can be cleared, collecting silver rupees with backwalked backflips with hover boots

* nb
2025-11-11 19:32:36 -07:00
Pepper0ni 25be804841 Refactor BotW logic (#5649)
* Update well logic for doorsanity

Co-authored-by: Demur Rumed <junkmute@hotmail.com>

* clang

* Apply suggestions from code review

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

* Add adult + irons + hook to getting to west ledge

* Update soh/soh/Enhancements/randomizer/location_access/dungeons/bottom_of_the_well.cpp

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

* post merge fixes

* post merge fixes

* renames and ground jumps

* MQ updates

* address reviews

* Update soh/soh/Enhancements/randomizer/location_access/dungeons/bottom_of_the_well.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/dungeons/bottom_of_the_well.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/location_access/dungeons/bottom_of_the_well.cpp

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>

---------

Co-authored-by: Demur Rumed <junkmute@hotmail.com>
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2025-11-11 19:32:25 -07:00
Malkierian 5629d033c2 Forgot to get CVar value with the default specified in OTRGlobals to feed into InitLogging. (#5952) 2025-11-11 10:03:14 -07:00
Garrett Cox 36cd3a27e2 Fix menu path reassignment (#5949) 2025-11-10 13:18:26 -06:00
Garrett Cox 754d79a86e Tweaks to ENABLE_REMOTE_CONTROL usage & sail hooks (#5928) 2025-11-10 10:33:28 -07:00
Jordan Longstaff 33929534f5 Modularize boss defeat timestamp hook (#5886)
* Modularize boss defeat timestamp hook

* Remove unneeded includes

* Move hook into GameplayStats folder

* Delete duplicated hook file
2025-11-10 10:29:53 -07:00
Philip Dubé 3eade8133e Fix GF entrance tracker & generation issues with cratesanity (#5934) 2025-11-09 19:16:33 -07:00
Jordan Longstaff c0848ccba8 Modularize custom skeleton hooks (#5931) 2025-11-09 18:27:52 -07:00
Jordan Longstaff a3e540ebfe Modularize Mirrored World mode hook (#5930)
* Modularize Mirrored World mode hook

* Remove IS_RANDO from registration conditions

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

---------

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-11-09 18:27:45 -07:00
Malkierian 6b83070343 Logging bump (#5938)
* Bump LUS, call `InitLogging` with both values at `trace`.
Set up proper conditional default log level in Dev Tools.

* Update LUS ref.
2025-11-09 18:27:19 -07:00
Jordan Longstaff 7ff93a3960 Dampe's Hut open all night when Dampe is out (#5937) 2025-11-09 18:27:09 -07:00
Pepper0ni 3d525d7eb1 Fix excluded locations getting bombchus when bombchu bag is off (#5943)
* Fix bombchus being consistently added to excluded locations

* change to be a random junk item
2025-11-09 08:58:18 -07:00
Garrett Cox 5249cd89df Stop creating timesplits file on init, and gitignore it (#5933) 2025-11-08 15:51:24 -06:00
Garrett Cox 8073f96856 Various hooks to support anchor (#5929) 2025-11-08 15:51:09 -06:00
Garrett Cox 66a9c7a218 Add merge strategy for preset sections (#5935) 2025-11-08 15:50:41 -06:00
Garrett Cox 0e162cbb7c Fix skybox being manipulated outside of appropriate scenes, other tweaks to disable 2d backgrounds impl (#5925) 2025-11-08 15:49:35 -06:00
Jordan Longstaff 3793e821c8 Autosave disabled when Ocarina of Time obtained but not Song of Time (#5936)
* Autosave disabled when Ocarina of Time obtained but not Song of Time

* Add explanation comment

Added a condition to prevent autosaving between obtaining the Ocarina of Time and the Song of Time.
2025-11-08 13:06:01 -07:00
Malkierian 43118146e4 Merge pull request #5927 from Malkierian/copper-dev-2
Copper -> Develop 11/6
2025-11-06 18:29:25 -07:00
Malkierian be70bb3296 Merge branch 'develop-copper' of github.com:Malkierian/Shipwright into develop 2025-11-06 17:01:44 -07:00
Malkierian 4aaad850bd Bump to Bravo 9.1.1. (#5922) 2025-11-04 17:40:02 -07:00
Malkierian cf275b1a6c Implement logger changes (#5914)
* Implement logger changes, and make default log level dynamic based on debug/release.

* Bump LUS.

* typo

Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>

---------

Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>
2025-11-03 18:54:01 -07:00
Philip Dubé 0014f40676 rando BOTWMQ: only turn the water level crystal switch into toggle (#5902) 2025-11-03 18:49:11 -07:00
Malkierian f015a1b339 Apply expected lexicographical sort to initial and new mod addition list. (#5904) 2025-11-03 18:48:48 -07:00
Malkierian b2090dcf83 Add "CuccosToReturn": 1 to Main Randomizer preset. (#5915) 2025-11-03 18:00:31 -07:00
Malkierian ebf8a3b47f Fix Song Shuffle Off (#5918)
* Temporarily fixes Song Shuffle Off causing songs to not be given on seeds created solely from spoilers.

* Remove instead of comment.
2025-11-03 17:40:54 -07:00
aMannus 8ce808fb53 Fix gold skull locations when not shuffled 2025-11-02 10:44:30 +01:00
aMannus 2683698465 clang format 2025-11-01 22:22:31 +01:00
aMannus 31e2b2a152 Update version to 1.0.0 2025-11-01 21:41:18 +01:00
aMannus 0850661022 German and french GI message fix 2025-11-01 12:15:54 +01:00
aMannus 67a8816348 Merge branch 'develop' into aManchipelago 2025-11-01 11:49:05 +01:00
aMannus 3b80558195 Merge pull request #85 from HarbourMasters/develop-copper
quick fix ZR grass logic (#5906)
2025-11-01 11:48:11 +01:00
Pepper0ni f3b0d8e230 quick fix ZR grass logic (#5906) 2025-11-01 11:45:23 +01:00
Philip Dubé 156a1a7816 refactor ice cavern (#5661)
* refactor ice cavern

fixes blue rupee logic at beginning
makes structure usable for doorsanity & silver shuffle

* feedback

* feedback2

* feedback
2025-11-01 11:43:47 +01:00
aMannus 338ed1ab04 Oops 2025-10-30 13:55:37 +01:00
aMannus cd1869421a Fix unique handling of OoT and iron boots and add bow chest 2025-10-30 13:54:17 +01:00
aMannus 22b7c342a8 Add preset info modal to archi save creation 2025-10-30 12:51:50 +01:00
aMannus 841caab026 Add modal to teach player about presets 2025-10-30 12:33:24 +01:00
aMannus a03ba65465 Update version to 0.0.5 2025-10-30 10:48:40 +01:00
aMannus f99f03aac9 Merge branch 'develop' into aManchipelago 2025-10-30 10:46:04 +01:00
aMannus a5892590c1 Don't draw overhead items during GI animation 2025-10-30 10:45:19 +01:00
aMannus c1f0f2a9b7 Create static hints for AP saves 2025-10-29 22:49:46 +01:00
Malkierian 4e913cc094 Merge pull request #5901 from Malkierian/copper-to-dev
Copper -> Dev 10/29
2025-10-29 14:41:56 -07:00
aMannus d82934343c Handle receiving iron boots chest location externally 2025-10-29 22:30:32 +01:00
Malkierian 9f089aa6f8 Merge branch 'develop-copper' of github.com:Malkierian/Shipwright into develop 2025-10-29 13:54:22 -07:00
Jordan Longstaff 1ba6cf643d Modularize coloured ToT Medallions hook (#5877)
* Modularize colourized ToT Medallions hook

* Add overlooked reset of Forest Medallion colour

* Move asset variables to hook file

* Fix includes

* Remove forward declarations

* Use data structures to reduceboilerplate code

* Simplify data structures, reduce boilerplate even more

* Correct patchName2 checks

* Clang format

* Add brackets on if statements
2025-10-29 13:36:29 -07:00
Malkierian b30191f369 Set cutsceneIndex to 0 to bypass cutscene shenanigans when spawning in ToT as adult. (#5899)
Unify savedSceneNum at -1 regardless of starting age.
2025-10-29 09:05:14 -07:00
aMannus 7ffd01f133 Let shuffled fairies spawn on link's location instead (#5890) 2025-10-28 20:54:00 -07:00
Jordan Longstaff a419b431a7 Modularize Pause Warp hook (#5869)
* Modularize Pause Warp hook

* Make RegisterPauseMenuHooks static

* Merge pausewarp.c into hook module

* Use brackets with if statements

* Fix timer bug with spoiling items
2025-10-28 20:52:18 -07:00
Malkierian 48f4f56bac Change disabling rules for Skip Feeding Jabu-Jabu to reflect the fact that it only works in rando based on the rando setting. (#5889) 2025-10-28 17:01:59 -07:00
Pepper0ni 1b29c0cad3 fix logic error with detu tree torch room (#5898) 2025-10-28 16:57:16 -07:00
Malkierian 74312442d5 Fix wrong CVar on Hookshot Identifier. (#5883) 2025-10-25 19:52:22 -07:00
Jordan Longstaff 248fe8cb13 Modularize Reset Navi Timer hook (#5872)
* Modularize Reset Navi Timer hook

* Remove unnecessary sceneNum param name
2025-10-25 13:25:50 -07:00
Jordan Longstaff c4f9712eff Modularize scene-specific Dirt Path fix (#5871)
* Modularize scene-specific Dirt Path fix

* Use macro in fix function

* Condition hook on fix being enabled

* Rename update function
2025-10-25 13:25:33 -07:00
Jordan Longstaff cadae90c81 Modularize Floor Switches fix hook (#5870)
* Modularizes Floor Switches fix hook

* Remove unused include for z_obj_switch.h

* Convert to ID hook
2025-10-25 09:40:46 -07:00
Malkierian ad2807ce32 Fix adding Enable Mods twice as search widget. (#5880)
Fix a couple typos in search widget extra terms.
2025-10-23 18:32:00 -07:00
aMannus 243acd2d4f Version to 0.0.4 2025-10-22 11:57:46 +02:00
Malkierian ae1cee9b13 Bump to version Copper Alfa 9.1.0. (#5866) 2025-10-21 19:01:39 -07:00
Malkierian 56a05c392e Update to latest LUS commit with clip adjustments. (#5865) 2025-10-21 18:27:24 -07:00
aMannus 956188e7a5 Fix excluded location seed bleed 2025-10-21 20:29:35 +02:00
aMannus a8379cc758 Reset tricks on AP parse 2025-10-21 19:10:28 +02:00
aMannus de5972d67b Update version to 0.0.3 2025-10-21 14:22:16 +02:00
xxAtrain223 955ee9b9ba Fix doorType calculation for shutter doors (#5862) 2025-10-20 21:59:50 -07:00
aMannus 5e016d6864 Push version change 2025-10-21 00:43:38 +02:00
aMannus bae8deb473 Fix bad merge conflict resolution 2025-10-21 00:25:39 +02:00
aMannus 37409ca2b4 Make linux happy, hopefully 2025-10-20 21:21:50 +02:00
aMannus a85856e3a3 clang format 2025-10-20 20:55:36 +02:00
aMannus a18cc8f067 Merge branch 'develop' into aManchipelago 2025-10-20 20:48:41 +02:00
aMannus 9228f4b35f Fix starting age 2025-10-20 20:33:29 +02:00
aMannus 433f4b7086 Fix triforce hunt count 2025-10-20 20:07:58 +02:00
Malkierian dc5e9686c0 Mod Menu Tweaks (#5844)
* Fix mod order retention.
Remove mods in the CVar that no longer exist.

* Rework mod list init for enabled-by-default with extension changing to disable.

* Rework entire system for default enabled.
Disabled mods are renamed for sake of saving a CVar.
Menu now has an edit mode, cancel button, and apply & close.
Move Enable Alternate Assets to be Enable Mods in the mod menu.
Couple small fixes in the item tracker.

* Try to fix Mac.

* Remove disabling for Enable Mods while editing.
Add info about load order in relation to the list.

* Fix archives being added multiple times across multiple init passes.

* Add full-row drag and drop.
Swap columns.
Add information about dragging to header.

* Remove enable/disable flow, and setup the menu to only handle load order.
Change AltAssets to default on.
Move menu to Settings tab.
Move tab hotkey widget to mod menu.
Fix alt assets migrator value.

* Reverse list order for priority on top.

* Remove ExtensionType.
2025-10-20 10:51:56 -07:00
Philip Dubé 8d441f3ae5 fix rando hints for bridge requirements (#5857) 2025-10-20 10:51:43 -07:00
Malkierian 7004c1fc4f Fix GS not being marked as collected when not shuffled. (#5861) 2025-10-20 10:51:33 -07:00
aMannus fbd21bb342 Add apworld version check on connecting 2025-10-18 22:37:22 +02:00
aMannus 49c74c75b0 clang format 2025-10-18 21:04:50 +02:00
aMannus cbf847c1b9 Add new RSK's coming from develop 2025-10-18 20:53:24 +02:00
aMannus 5c0517af6f Merge branch 'develop' into aManchipelago 2025-10-18 20:52:01 +02:00
aMannus e4c9bbfdf9 Add item and player names on AP shop items 2025-10-18 20:38:02 +02:00
aMannus 9a3b2f8da4 Update triforce hunt option parsing 2025-10-18 20:20:14 +02:00
Jordan Longstaff c806f23494 Potion Shop back door open at night (#5849)
* Potion Shop back door open at night

* Rerun clang-format

* Standard initFunc naming
2025-10-17 08:18:12 -07:00
Philip Dubé 1cd2f60e24 sign hints: add gtg, display destination not source (#5850) 2025-10-17 08:17:53 -07:00
aMannus 71f09723cd Specify required AP version number 2025-10-17 14:32:25 +02:00
aMannus 6d624a1811 Implement random scrub prices 2025-10-17 13:17:41 +02:00
aMannus c09ea6b76f AP ice trap models and tricknames 2025-10-17 11:19:35 +02:00
aMannus 786f0fec4c Add shop item and price parsing 2025-10-17 00:12:32 +02:00
aMannus ab00eb9a8c Parsing fixes and more options 2025-10-16 23:14:28 +02:00
Malkierian 6ef8be58d7 LUS ref bump for cursor visibility tweaks. (#5848) 2025-10-16 08:43:38 -07:00
Philip Dubé a73d80c82b shuffle thieves' hideout entrances (#5619)
* shuffle gerudo fortress entrances

* tracker names

* typo

* don't jail from TH in mixed gerudo entrance shuffle

* split RR_TH_KITCHEN_TOP

* fix incorrect logic re near gs to long roof

* whitespace

* Shuffle Thieves' Hideout

* increase ENTRANCE_OVERRIDES_MAX_COUNT
2025-10-15 19:10:10 -07:00
Malkierian c0aa3deb93 Fix Notes Conditions (#5847)
* Fix conditions for personal notes being displayed and the notes display type option being disabled.

* clang
2025-10-15 16:43:57 -07:00
aMannus b9f4819e58 Fix build 2025-10-15 13:49:14 +02:00
aMannus a5277f7bd7 Update option parsing 2025-10-15 10:41:14 +02:00
aMannus 5492cdc207 Merge branch 'develop' into aManchipelago 2025-10-15 09:37:51 +02:00
Cameron 56ab4c51fd Rando: Split fairysanity into distinct options (#5726)
* Split Fairysanity into groups

* Split fairy registration per type

* fix song fairy shuffle locations

* Change "Song Fairies" to "Fairy Spots"

* Update preset settings

* clang format

* simplify `shouldRegister` logic
2025-10-13 15:11:55 -07:00
Philip Dubé 73f3427ced rando: remove vanilla (#5805) 2025-10-13 15:10:51 -07:00
Philip Dubé e254c1f908 botw: water level toggle (#5710)
amazingly the code already handles the flag being cleared to raise the water level,
so only need to setup hooks for ocarina spot to toggle

In MQ it's a diamond switch, so only need to turn it into a toggleable diamond switch
2025-10-13 15:10:24 -07:00
Malkierian 94b07aaa73 Pull in LUS audio API selection fix. (#5840) 2025-10-13 08:47:46 -07:00
Malkierian 8302c2322f Standardizes naming conventions for ShipInit and MenuInit registrations. (#5837)
Fixes missing `static` keywords for two `ShipInit` registrations.
2025-10-10 13:26:06 -07:00
Philip Dubé f253d24cdc Cheat: Disable Sandstorm (#5800)
* Cheat: Disable Sandstorm

Can also be considered an A11y feature,
tho it'll always be hard with the muted colors,
even if we added option to reduce fog

* extern C?
2025-10-10 10:25:41 -07:00
aMannus 95555a4360 Merge pull request #83 from Tzuf23/aManchipelago
Made logic setting glitchless and added Tressanity reading from slot data
2025-10-10 02:13:32 +02:00
Malkierian 52a8f6c281 Program Execution Argument Extraction (#5807)
* Add function to be able to feed specific path into to process programmatically, and setup drag and drop functionality.

* Encapsulate dropped file functionality from Switch and Wii U.

* Fix dropped file detection, and fix ShowYesNowBox return checking.
2025-10-09 16:51:04 -07:00
briaguya 57c368aa2c update lus includes for new LUS file structure (#5820)
* Bump LUS to include FileDropMgr's new registration system and initial cursor visibility changes.

* New LUS ref.

* Remove default on for cursor always visible.
Add option to camera controls next to enable mouse input for autocapture.
Set autocapture on startup.

* next LUS

* clang again

* Add "EnableMouse" CVar check to startup SetAutoCaptureMouse.

* Back to LUS main.

* lus version with fixes we need

* very wip

* get it building

* soh otr

* bump lus before fixing soh side stuff

* build

* still builds

* mac error

* bump otrexporter

* bump to lus main

* upstream otrexporter

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2025-10-09 16:50:51 -07:00
Tzuf fb84317078 Made logic setting glitchless and added tressanity reading from slot data 2025-10-09 17:40:40 +03:00
briaguya 7700b34646 bump otrexporter (#5835) 2025-10-09 01:49:33 -04:00
Philip Dubé 82e2fbb43f null audio engine (#5834)
depends on https://github.com/Kenix3/libultraship/pull/909
2025-10-08 17:26:03 -07:00
Philip Dubé 0973a4211e Fix grass graphic in Shuffle Grass (#5831)
Previously rendering grass as wrong kind in MQ Dodongo room above stairs

Updated code to match decomp logic
2025-10-07 09:23:18 -07:00
Philip Dubé 474d944cfa RT_GROUND_JUMP (#5745)
* RT_GROUND_JUMP, RT_GROUND_JUMP_HARD

based on zootr logic

* 2 groundjumps in Gerudo Fortress
2025-10-06 21:33:59 -07:00
Malkierian 04780de5ec Pulls in the Mac Prism fix. (#5832) 2025-10-06 17:03:38 -07:00
Philip Dubé 5e199ffea8 RT_HOOKSHOT_EXTENSION (#5704)
* 2 hookshot extension tricks

* consolidation

* not a glitch

* cleanup spirit logic

* clang
2025-10-05 18:24:32 -07:00
aMannus f4336cdec7 Add fairy event to outside deku tree (#5830) 2025-10-05 18:02:13 -07:00
Philip Dubé b337f38737 Add a RT_GF_JUMP case (#5828)
Adult can make jump without hover boots by jumping beside the wall (oddly, to the higher part of slope)

Only matters with Shuffle Climb
2025-10-05 11:04:38 -07:00
briaguya dd2628f737 sequence notifs (updated #5265) (#5824)
* Adds ability for Notifiations to not make a noise

This is probably the only feature that will use it, the noise makes sense for most things we want to use notifications for, but it playing on every scene transition was a bit distracting.

* Adds a hook for OnSeqPlayerInit

* Uses new hook and displays notification instead of overlay text

* Changes names to prevent collisions

Will be registering other types of hooks that will need different ShipInitFuncs in this same file later.

* Change Icon

* Change CVarName and remove now-unused duration slider

* Update ConfigMigrator for CVar changes.

* clang-format

* fix

* bring back duration control

* config v4

* fix v4 migration

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2025-10-04 18:57:01 -07:00
Philip Dubé 6c724382f5 rando: fix reentry of jabu blue warp (#5829)
* rando: fix reentry of jabu blue warp

entrance randomizer uses VB_PLAY_BLUE_WARP_CS to set a flag,
which was not called when entering jabu blue warp without ruto

* alternative
2025-10-04 18:54:53 -07:00
PurpleHato 004890f2f8 French Translation - Treesanity (#5827)
* French Translation

* French Translation
2025-10-02 17:06:58 -07:00
Nivomi c22fbc08d7 Fix "SpawnActor::CanBeApplied" check which would also actually spawn the actor, thus causing two actors two be spawned (also fix for WithOffset) (#5822) 2025-10-02 15:47:48 -07:00
Pepe20129 5cac826f97 Add a warning for disabled network (#5629)
* Update SohMenu.cpp

* clang

* Prevent warning from appearing in release builds
2025-10-02 15:45:58 -07:00
Philip Dubé 545cc396b4 Treesanity (#5541)
* treesanity

co-authored-by: turbofist

* market tree at night

* NL Trees

* remove LUSLOG

* feedback

* format

* golden skulltula tree qol

* post-rebase

* trust -129

* remove tree graphic, crate csmc

* format

* feedback

* ObjectExtension
2025-10-02 11:24:18 -07:00
PurpleHato e10b882c08 [ADD] - 3D Scenes for pre-render areas (#5804)
* Hard removal 2D ones for now

* override some scene values for prerender tests (#46)

* Adult Link Cloudy

* Fix: Child Link Night ToT Exterior

* Fix for real now

* Tweak: Skybox castle courtyard

* WIP - adjusting for patterns

* Hooked all code, needs testing

* Hookified

* Clean up

* Update Fog Control

* clang

* Fix skybox override to only affect 3D pre-rendered scenes

Prevent the 3D scene renderer from overriding skyboxes on all scenes

Previously, the function was applying skybox changes to every scene, overriding the intended skyboxes throughout the game (Example: Kokiri Forest with a blue sky instead of it's original "greyish" one)
Now it only applies custom skybox settings to scenes in the skyboxControlList, preserving original skyboxes for other scenes

* Remove commentary and forgot to add Zelda's courtyard skybox

* Move code to shipInit.

* Early return for VB_SHOULD.

* clang

* Fix missing !

* Feedback fixes.

* clang

* Fix CVAR

* Modify Skybox for scenes with multiple viewpoints.

* setting position change to blend in the "modder stuff can do"

* Adressed review

* tooltip space missing, oops

* InitFunc

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
Co-authored-by: Caladius <clatini88@gmail.com>
2025-09-30 19:03:55 -07:00
Eblo 5ed3db0a7e Allow non-ASCII characters on Windows (#5741) 2025-09-30 19:00:30 -07:00
Malkierian 004ad3aea3 LUS Bump, Mouse Capture/Cursor Visibility Improvements (#5797)
* Bump LUS to include FileDropMgr's new registration system and initial cursor visibility changes.

* New LUS ref.

* Remove default on for cursor always visible.
Add option to camera controls next to enable mouse input for autocapture.
Set autocapture on startup.

* next LUS

* clang again

* Add "EnableMouse" CVar check to startup SetAutoCaptureMouse.

* Back to LUS main.

* Final LUS ref bump.
2025-09-30 19:00:05 -07:00
Patrick12115 11a73f88ae [Enhancement] Allow Slingshot and Bow to break randomized beehives (#5793)
* Add slingshot and bow damage checks

* Move to Rando and add Logic, hopefully

* Missing spacing
2025-09-30 12:16:26 -07:00
Philip Dubé dbbbe0f727 RT_SHADOW_UMBRELLA_CLIP (#5668)
* RT_SHADOW_UMBRELLA_CLIP

This is technically a glitch, but offers a novice trick & less requirements

Particularly important in doorsanity for child access

* feedback, move location to upper since it has multiple paths of access
2025-09-30 12:11:31 -07:00
Pepe20129 3cf1d65466 Mod menu V1 (#4962)
* Proof of Concept

* Fixed saving/loading

* Switch sides & add arrow buttons

* Update mod_menu.cpp

* Remove old mod loading code

* Small cleanup

* Post-merge fixes

* Update mod_menu.cpp

* Lots of changes

* clang format

* Address review

* Update SohMenuEnhancements.cpp
2025-09-30 08:35:37 -07:00
Philip Dubé b7de53bf8d Move logic bools to LogicVal enum (#5727)
* Move logic bools to LogicVal enum

Tired of seeing logic reset bugs
This opens up moving bools to bitset
This opens up tracking logic dependencies so events doesn't reevaluate everything
This opens up various events reusing logic vals (already done for LOGIC_BLUE_FIRE_ACCESS)

* ammo comments, fix magic regression
2025-09-29 18:51:07 -07:00
aMannus 8507431303 Merge pull request #81 from briaguya-ai/archi-remove-checked-in-deps
use cmake/package managers to get dependencies
2025-09-29 10:00:36 +02:00
Sirius902 582bdbff14 Follow app directory for uuid (#79) 2025-09-29 09:31:03 +02:00
briaguya 7c8fc85c50 update macports (#5819) 2025-09-28 21:08:14 -07:00
briaguya 59dc48724e fetchcontent apclientpp 2025-09-28 08:39:09 -04:00
briaguya eec2ae51ca fetchcontent wswrap 2025-09-28 08:11:23 -04:00
briaguya 83d809be71 websocketpp from package managers 2025-09-28 06:58:38 -04:00
briaguya b678de69b0 fetchcontent asio 2025-09-28 04:39:58 -04:00
briaguya 2a84d0a032 valijson from package managers 2025-09-28 03:37:36 -04:00
Pepper0ni 207de8f408 Remove HasAccessTo and non-self-referncing Here (#5700)
* Remove HasEccessTo and non-sel-referncing Here

* fix here related logic errors
2025-09-27 18:53:20 +02:00
briaguya 9090e80507 temporarily force BUILD_REMOTE_CONTROL on 2025-09-27 12:51:44 -04:00
Spodi 14d269d99e Fix Multi-Window not checked by default (#5806)
* Fix Multi-Window not checked by default

Last time i tested with a new config file this was actually on, despite it showing off. So now it shows ON by default :)

* clang
2025-09-26 07:50:24 -07:00
Pepe20129 4b9c949428 Fix dark link ice floors (#5808) 2025-09-26 07:50:16 -07:00
Pepper0ni c7975898a5 Apply price logic to bean salesman (#5811)
* apply price logic to bean salesman

* clang
2025-09-25 23:24:51 -07:00
Malkierian b30c4ab7da Fix issues arising from the Search Widgets PR. (#5813) 2025-09-25 08:28:23 -07:00
Extloga a576bffe3a Additions for the German translation in hint_list.cpp (#5803) 2025-09-19 17:31:20 -07:00
Philip Dubé eeb5a809ae Rando: option for Mido to hint location of Kokiri Sword (#5724)
* Rando: option for Mido to hint location of Kokiri Sword

also fix bug where Mido blocks path to Deku Tree when Closed Forest off but Zelda's Letter not skipped

* french

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>

---------

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
2025-09-18 19:58:30 -07:00
William Casarin 8e15cefe2b dev-tools: add bit label on flags table (#5658)
* build: add -Wformat-security

On some distros format-security is turned on to detect possible issues
with non-string literals as format strings

Let's explicitly turn it on and fix the ImgUi text formatting to avoid
compile issues on those platforms

Signed-off-by: William Casarin <jb55@jb55.com>

* save-editor: add flag table bit index labels

Signed-off-by: William Casarin <jb55@jb55.com>

---------

Signed-off-by: William Casarin <jb55@jb55.com>
2025-09-18 13:34:41 -07:00
enzu.ru 577c5639df Improve Nix support (#5777)
* Fix FindOpusFile NixOS bug

* better documentation
2025-09-18 13:29:35 -07:00
Philip Dubé b944d01b12 atomic saving (#5792)
prefer rename to copy/delete, this avoids issues with partial writes
2025-09-18 13:29:21 -07:00
Philip Dubé 7cce840472 rando: fix bug where Mido blocks path to Deku Tree when Closed Forest off but Zelda's Letter not skipped (#5785) 2025-09-17 17:40:06 -07:00
Patrick12115 4bc2bb5592 Wiggle (#5794) 2025-09-17 17:39:30 -07:00
Philip Dubé 911c107b6e saves: use single white space when formatting (#5791)
this halves size of rando saves
2025-09-17 17:24:52 -07:00
Malkierian a88cac300e Restores IS_RANDO default for the "Always Win Dampe Digging Game" enhancement and changes the tooltip to reflect the default status rather than the forced on status. (#5788) 2025-09-17 13:13:19 -07:00
Malkierian ba693ecac4 Search Exclusion and Search Widgets (#5656)
* Implement widget search exclusion.
Exclude all external windows from the search.

* Add second column to search results for non-widget results.

* Implement extra search index.
Add various controls, audio editor, and tracker options to the extra search index.
Fix capitalization on a few options.
Add click-to-view functionality to extra search column.

* Add extraSearchWidgets for searching through non-menu widgets.
Convert Controls extraSearches to widgets. Used to display in-window, as well as provide reference to extraSearchWidgets.

* Swap Audio search to menu widget search system.

* Fix missing static on a ShipInit instance.

* Implement SearchWidgets in popout windows.
Remove remaining vestiges of custom search.

* Add SearchWidget for randomizing audio on seed gen.

* Remove comments on color picker entries in WidgetType.

* Put all search results in middle column for width management.
Change combobox alignment and label position in search results to unify them all to left and above for better organization.
Add "Search Results" text to header of results page for clarification.

* clang
2025-09-16 18:57:33 -07:00
Philip Dubé e6663a1c49 entrance shuffle: sign hints (#5335)
* entrance shuffle: sign hints

* update entrance tracker with hint

* show sign hints when any entrances shuffled

* only hint when entrance shuffled

* avoid crash when loading rando file

* fix kf exit

* correct hint from sign outside kokiri forest

* 3 signs on DMT

* improve naming
2025-09-16 17:52:47 -07:00
Malkierian 524ba26034 Merge pull request #5776 from A-Green-Spoon/tweak/gerudo-jail-swap
Prevent hideout guards from asking to throw Link in jail
2025-09-11 08:43:00 -07:00
Malkierian f7ab811c20 Merge pull request #5770 from Extloga/develop
Fixes for the German translation in several files
2025-09-11 08:42:45 -07:00
Malkierian 640a7d24b4 Merge pull request #5766 from A-Green-Spoon/standardize-entrance-names
Standardize deku scrub grotto entrance names
2025-09-11 08:42:37 -07:00
Malkierian 7ff2355c7e Merge pull request #5787 from Malkierian/blair-dev-9-8
Actual Blair->Develop 9/8
2025-09-10 10:27:07 -07:00
Malkierian e5d0f7befa Fix conflict resolution for SkipBlueWarp's VB_GIVE_ITEM_FROM_BLUE_WARP. 2025-09-10 09:10:51 -07:00
Malkierian 64280146fe Merge branch 'develop-blair' of github.com:Malkierian/Shipwright into blair-dev-9-8 2025-09-08 20:56:12 -07:00
Eric Hoey ac93d7cc15 Add additional glitch-aiding cutscenes for MQ (#5769)
* add mq jabu chest + mq spirit switch cs

* update tooltip
2025-09-08 20:44:45 -07:00
Pepper0ni 27f2292f9d Fix gerudo card generation failures (#5774)
* quick fix gerudo card

* submodules pls
2025-09-08 20:44:36 -07:00
Malkierian 837f497ea6 Encapsulate BeginTable for item and check tracker settings windows. (#5778) 2025-09-08 20:44:27 -07:00
Extloga 405fc7a31d Fixes for the German translation in util.cpp (#5768)
* Fixes for the German translation in util.cpp

* Fixes for the German translation in item_list.cpp

* Fixes for the German translation in item_list.cpp

* Fixes for the German translation in util.cpp

* Revert the fixes for the German translation in item_list.cpp

* Fixes for the German translation in util.cpp

* Fixes for the German translation in util.cpp

* Fixes for the German translation in util.cpp

* Fixes for the German translation in util.cpp

* Fixes for the German translation in util.cpp

* Fixes for the German translation in kaleidoscope_ger.json

* Revert the fixes for the German translation in kaleidoscope_ger.json

* Fixes for the German translation in util.cpp
2025-09-08 20:44:19 -07:00
Eric Hoey e9f1296781 add scene check to hook and custom message 2025-09-03 14:48:46 -04:00
Extloga aacb4ad2f7 Fixes for the German translation in shops.cpp 2025-08-29 19:43:32 +02:00
Extloga bd4e146599 Fixes for the German translation in item_list.cpp 2025-08-29 19:33:02 +02:00
Extloga 52d452307e Fixes for the German translation in scenes_ger.json 2025-08-29 13:41:31 +02:00
Extloga a76c1ca9db Fixes for the German translation in filechoose_ger.json 2025-08-29 13:39:11 +02:00
Extloga beea799081 Fixes for the German translation in kaleidoscope_ger.json 2025-08-29 13:38:40 +02:00
Extloga fc866e695e Fixes for the German translation in randomizer.cpp 2025-08-29 13:09:45 +02:00
Extloga 9a59af2a5e Fixes for the German translation in hint_list_item.cpp 2025-08-29 12:57:20 +02:00
Extloga e0e3cb21a3 Fixes for the German translation in item_list.cpp 2025-08-29 12:41:52 +02:00
Extloga 113e899f09 Fixes for the German translation in shops.cpp 2025-08-29 12:38:55 +02:00
Extloga 3c084ef2a1 Fixes for the German translation in item_list.cpp 2025-08-29 12:17:35 +02:00
Extloga 263afb9c09 Fixes for the German translation in item_list.cpp 2025-08-29 02:21:23 +02:00
Malkierian cbd376afa9 Search Tweaks (#5767)
* Increase vibrancy of search field color.
Set autofocus to only happen on fresh menu load.

* Revert tooltip addition.
2025-08-28 08:59:45 -07:00
Eric Hoey 93c163a99c standardize scrub entrances and matching check 2025-08-27 12:53:56 -04:00
PurpleHato 7b38093665 [TWEAK] Localization support for the Notification System (#5751)
* Localization support

* stick/nuts updrage french  wording

* forgot german questItem and function adaptation for these

* names

* clang

* name + clang

* should be the last one :derp:

* German typo
2025-08-26 12:34:29 -07:00
Eblo 4c269cab30 Add restoration for NTSC 1.0 shutter door range (#5757) 2025-08-25 12:51:50 -07:00
Eric Hoey d8453b2b68 Prevent MQ Spirit softlock with increased crawl speed (#5667)
* disable crawl speed increase if MQ Spirit boulder exists

* bring max speed back to 5
2025-08-25 12:03:23 -07:00
William Casarin 6e6f8dcc9d build: add -Wformat-security (#5646)
On some distros format-security is turned on to detect possible issues
with non-string literals as format strings

Let's explicitly turn it on and fix the ImgUi text formatting to avoid
compile issues on those platforms

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-25 12:03:13 -07:00
Philip Dubé 7ee7084746 logic: remove commented glitched key logic (#5651)
this code is obsolete with glitch logic being implemented as tricks
2025-08-25 12:03:05 -07:00
Glought bdaf352440 Adds "Randomize on Randomizer Generation" options to Audio and Cosmetics Editors (#5387)
* Add "Randomize on Randomizer Generation" options to Audio and Cosmetics Editors

 * Added "Randomize All Music and Sound Effects on Randomizer Generation" to the Audio Editor.

 * Added "Randomize All on Randomizer Generation" to the Cosmetics Editor.

When enabled, these options randomize audio and/or cosmetics during a new randomizer generation.

* Added "OnRandomizerGeneration" Hook.
 * It is executed on Randomizer Generation.

* Changed AudioEditor and CosmeticsEditor "Randomize all on Randomizer Generation" options to use the "OnRandomizerGeneration" Hook.

* Renamed "OnRandomizerGeneration" to "OnGenerationCompletion.
Renamed "GameInteractor_ExecuteOnRandomizerGeneration" to "GameInteractor_ExecuteOnGenerationCompletion"
Moved "GameInteractor_ExecuteOnGenerationCompletion" from "GenerateRandomizer" to the end of "GenerateRandomizerImgui".

* Removed "GameInteractor_ExecuteOnGenerationCompletion()" from "GameInteractor_Hooks.h" and "GameInteractor_Hooks.cpp"
The "OnGenerationCompletion" hook is now called directly at the end of "GenerateRandomizerImgui" in "randomizer.cpp"

---------

Co-authored-by: Glought <663343+Glought@users.noreply.github.com>
2025-08-25 12:02:30 -07:00
Eblo cc477fbef2 [Enhancement] Toggle grave hole geometry (#5754)
* Add enhancement to toggle grave hole geometry

* Replace malloc and vector with fixed-size arrays

* Make newSurfaceTypes static
2025-08-25 12:01:50 -07:00
Philip Dubé 860bc57a2a fix incorrect description (#5752) 2025-08-25 12:01:33 -07:00
Mike 4a9a98d93c SDL_GameControllerDB repo owner gabomdq -> mdqinc (#5740)
* SDL_GameControllerDB repo owner gabomdq -> mdqinc

gabomdq redirects to mdqinc

* Docs SDL_GameControllerDB repo owner gabomdq -> mdqinc
2025-08-25 12:01:25 -07:00
Philip Dubé 3128fb0112 Fix crash on selling big poe (#5733)
* Fix crash on selling big poe

Easiest steps to reproduce: set poe's to 0, put big poe in inventory, trigger text using big poe bottle

I overlooked selling poes with using bottle instead of talking to collector

* disable hint when count zero
2025-08-25 12:01:17 -07:00
Pepe20129 9eafa852b5 Fix Dampe Going Backwards (#5731)
* Add FixDampeGoingBackwards

* Update SohMenuEnhancements.cpp
2025-08-25 12:00:59 -07:00
balloondude2 21e37d9ac2 Fix the Show Horizontal Resolution Field option v2 (#5744)
* move showHorizontalResField initialization

* remove redundant assignment

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

---------

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-08-25 12:00:28 -07:00
Eric Hoey 820d097c84 Fix King Dodongo door switch cutscene (#5729)
* fix parathenses to properly OR

* clang clang clang
2025-08-25 12:00:04 -07:00
Pepper0ni 224efe2946 Fix TOT_MASTER_SWORD when the master sword is stated with but not shuffled. (#5705)
* Fix TOT_MASTER_SWORD when the master sword is stated with but not shuffled.

* remove RC_MASTER_SWORD_PEDESTAL
2025-08-25 11:59:47 -07:00
Malkierian b6166f41c8 Restore previous state of z_door_warp1.c, and reimplement boss rush blue warp bypass. This also fixes the issue with shadow and spirit medallions not being given in vanilla without cutscene skips on. (#5763)
Ensure shadow and spirit medallions get queued when skipping story cutscenes in vanilla.
2025-08-25 11:59:38 -07:00
Jordan Longstaff 9ff9bebaa2 Fix faulty Nocturne trigger when receiving Fire Medallion (#5761) 2025-08-25 11:59:28 -07:00
Pepe20129 7b4df9bdb2 Boss Rush cleanup (#5652)
* Reduce stuff in the `.h`s & use `COND_HOOK` + variants

* Move some boss rush stuff from `z_file_choose.c`

* clang

* Update BossRush.cpp
2025-08-13 12:08:32 -07:00
Philip Dubé fadae49977 shipinit bonk damage (#5653)
* shipinit bonk damage

* no initFunc
2025-08-13 09:46:36 -07:00
Pepe20129 ee20f7f762 Fix max count for TH keys (#5670) 2025-08-12 20:39:31 -07:00
nclok1405 ce38e03562 Allow console commands in debug save (#5675) 2025-08-12 20:38:44 -07:00
Eric Hoey 568639dfc0 skip ItemGet for small keys after skeleton key (#5730) 2025-08-12 20:37:08 -07:00
Philip Dubé 9cdffc080b small typo fixes (#5680)
incorrect RR was tripping up my code generator
2025-08-12 20:36:51 -07:00
PurpleHato c597e1c4ce TWEAK: SoT Time Travel - Allow Swordless (#5716)
* Magic number + more modular

* tweak + switch

* forgot basic oot

* linebreak

* c-lang
2025-08-12 19:57:19 -07:00
Pepe20129 526d221c56 Add timestamps for remaining custom rando items (#5713) 2025-08-12 19:57:02 -07:00
Pepe20129 3e39a94083 Turn song text into a notification (#5712) 2025-08-12 19:56:52 -07:00
Eric Hoey e104870e6a remove !IS_RANDO check (#5728) 2025-08-12 19:56:07 -07:00
xxAtrain223 353ad944be Removed SHUTTER_BACK_LOCKED and SHUTTER_BOSS from GetDungeonSmallKeyDoors. (#5738) 2025-08-12 19:55:38 -07:00
Malkierian 89c1c97522 Add missing CVar check for tab key processing for alt asset toggle. (#5736) 2025-08-09 11:17:33 -07:00
aMannus 58a564077e Clang format 2025-08-06 23:01:14 +02:00
aMannus fc80fb5413 Merge pull request #78 from jeromkiller/Harkipellago
Harkipellago
2025-08-06 22:56:13 +02:00
aMannus f1a074d6ea Fix jabu jabu option 2025-08-06 22:42:20 +02:00
Jerom Venneker 9774826ad2 Attempting to load cert from package 2025-08-06 19:50:23 +02:00
Jerom Venneker bd90e56a6a Adding cert to packages 2025-08-06 17:04:03 +02:00
Jerom Venneker 48e869b61f Downloading cert store at build time 2025-08-06 14:32:44 +02:00
Pepe20129 6d4c6f8ea6 Rando: Remove ice trap effect from vanilla ice trap chests (#5711) 2025-08-05 20:43:41 -07:00
Pepper0ni b87f1432fd properly clear location subcatagories when generating a seed (#5707) 2025-08-05 20:43:19 -07:00
Malkierian 429021d434 Add THRescuedAllCarpenters to reset list to prevent seed bleed of bridge. (#5725) 2025-08-05 18:28:19 -07:00
Jerom Venneker a72660959c Added queueing up song of time check when getting the ocarina of time check when its already been checked remotely 2025-08-04 21:27:17 +02:00
Jerom Venneker 799e2c2d5a Cleared up error messages around failed connections 2025-08-04 18:15:55 +02:00
Jerom Venneker e204400dbb Changed connection flags to support starting items 2025-08-04 17:59:35 +02:00
aMannus 9b710c7a6b clang format 2025-08-02 10:49:00 +02:00
aMannus 138f2ecd97 Merge branch 'aManchipelago' of https://github.com/aMannus/Shipwright into aManchipelago 2025-08-02 10:47:41 +02:00
aMannus e12da0f68f Merge pull request #77 from jeromkiller/Harkipellago
Fixed miscolored Archi logo
2025-08-02 10:47:21 +02:00
aMannus d55a9f4675 Remove leftover doc 2025-08-02 10:45:28 +02:00
Jerom Venneker 0d5ce9caca Fixed miscolored Archi logo 2025-08-01 14:22:13 +02:00
aMannus 00a70eae87 clang format 2025-07-31 10:44:47 +02:00
aMannus e53d29e12d Revert readme 2025-07-30 23:25:07 +02:00
aMannus f1ba0fe156 Fix excluded locs, ap icon in notifs, death link while connecting 2025-07-30 20:17:27 +02:00
aMannus c64c8f6c0f Move connected icon to corner, fix cutoff logo 2025-07-30 19:44:40 +02:00
aMannus a2e96ac4d1 Merge pull request #75 from jeromkiller/AddArchipelagoClientLib
Fixed item queue issue caused by soft resetting the game
2025-07-30 19:21:22 +02:00
Jerom Venneker e93dc762b9 Fixed item queue issue caused by soft resetting the game 2025-07-30 18:02:33 +02:00
Malkierian be77a9be71 Fix Dpad Navigation and Dpad equips on Inventory (#5708)
* Encapsulates ship-specific stuff inside the first state checks in menu draw functions to prevent function bleed.

* clang
2025-07-29 18:47:43 -07:00
aMannus 075bce439b Misc bug fixes 2025-07-29 10:46:22 +02:00
aMannus 761f85037b Fix memory bug 2025-07-28 23:01:56 +02:00
aMannus 72966c46e5 Fix ap parse error 2025-07-28 21:08:05 +02:00
Malkierian 1d20000411 MPQ Support LUS Bump (#5570)
* Adapt to changes to LUS regarding including MPQ support.

* CMake compile definitions are stupid.

* Don't manually close O2RArchive.

* Finish LUS bump, including SoH-side fix for font free crash.
2025-07-28 08:54:31 -07:00
aMannus 9f11e1fcde Add support for a ton more ap options 2025-07-28 12:03:04 +02:00
aMannus 54a3a4704b Merge pull request #74 from jeromkiller/AddArchipelagoClientLib
Merge in jerom's progress
2025-07-25 11:59:56 +02:00
aMannus a4d0f10444 Merge branch 'develop' into aManchipelago 2025-07-25 11:58:09 +02:00
aMannus 73209fcf2c Merge pull request #5697 from Malkierian/blair-foxtrot-dev
Blair Foxtrot -> Develop
2025-07-25 11:56:33 +02:00
Malkierian 27d88c80b1 Merge branch 'develop-blair' of github.com:Malkierian/Shipwright into blair-foxtrot-dev 2025-07-24 10:04:06 -07:00
Malkierian 7d7072f717 Bump version to 9.0.5 (#5694) 2025-07-23 21:31:13 -07:00
Jordan Longstaff ccf3d4b6a0 Add playing icon to improve Audio Editor indicator (#5686) 2025-07-23 20:48:01 -07:00
AltoXorg d06cf6bf10 timesplitdata.json obey app directory (#5693) 2025-07-23 20:45:46 -07:00
Malkierian d51e88b972 Rando Versioning (Again) (#5691)
* Adds Sulu/Spock rando block check (data not empty, but all sub-entries null), and put that and data being empty to the old file flow.
Also moves the `SaveFile` call to after everything else is loaded to preserve sohStats block.

* Add check for blank buildVersion in sohStats block for determining old saves.

* clang
2025-07-23 20:45:22 -07:00
Jerom Venneker 7859b548be Added Archipelago connection status in game, todo refactor and clean up 2025-07-22 21:54:59 +02:00
Malkierian c588d48672 Bump version to Blair Echo. (#5690) 2025-07-21 22:21:59 -07:00
Malkierian 35ad68578e Prevent empty randomizer blocks from triggering the rando version flow. (#5689)
Clear SpoilerLog CVar when unsupported spoiler log is discovered on load.
2025-07-21 22:19:04 -07:00
Malkierian 5066fbf82c Fix old file deletion. (#5688) 2025-07-21 17:57:40 -07:00
Malkierian 47c5a7f308 Bump version to Blair Delta 9.0.3, and fix a typo. (#5687) 2025-07-21 14:31:48 -07:00
Pepper0ni 37fb25d2b3 Fix logic for items given at run start due to settings (#5665)
* initial changes

* submodules

* fix master sword, skip zelda and skip epona logic

* I for one welcome our new clang overlords...
2025-07-21 11:00:39 -07:00
Shishu the Dragon 681e8dda26 Ivan: collect deku seeds (#5654) 2025-07-21 10:47:03 -07:00
Malkierian a93b484cf3 Add Clear Devices button that will erase the controllers block. (#5683) 2025-07-21 10:44:53 -07:00
Jerom Venneker 4f1ebbc3d5 Automatically open the connection settings when failing to autoconnect 2025-07-18 13:13:39 +02:00
jerom 0101a4d842 Another attempted buildfix for windows runner 2025-07-17 21:21:12 +02:00
Jerom Venneker 70241aba0c Attempt at buildfix for windows runner 2025-07-16 19:04:34 +02:00
Jerom Venneker 79dd481116 Added autoconnect on file load 2025-07-16 18:50:32 +02:00
Jerom Venneker 9fbf67fc94 Added connection status to archi file select 2025-07-15 19:07:19 +02:00
Jerom Venneker e272300245 Fixed crash when recieving a bounce without any tags 2025-07-10 20:23:49 +02:00
Jerom Venneker 6df2fd9b8a Fixed crash on game completion without being connected 2025-07-09 19:21:40 +02:00
Jerom Venneker d53afb534d Changed AP console text colors to enums 2025-07-07 19:22:17 +02:00
aMannus b700e0cc5f Fix market death crash & no logic parse, limit archi console lines 2025-07-06 23:25:07 +02:00
aMannus 80b0d036d7 Fix death link crash 2025-07-05 14:45:59 +02:00
aMannus 33bdd06bfc typo fix 2025-07-04 15:06:14 +02:00
aMannus 5ebc20c0a6 linxu pls? 2025-07-04 15:05:13 +02:00
aMannus 524a26f759 Hopefully fix linux + clang_format 2025-07-04 14:24:33 +02:00
aMannus 59993c75be Force on skip child zelda 2025-07-04 14:17:13 +02:00
aMannus 1b9e03b92f Merge branch 'develop' into aManchipelago 2025-07-04 13:22:17 +02:00
aMannus 4aacc1bc0c Temporarily disable skull token flag setting 2025-07-04 11:49:45 +02:00
aMannus 50af166a84 Daeth link done 2025-07-04 10:28:21 +02:00
OtherBlue dfa10383e4 Split Skip Pickup Messages (#5648)
* Split Skip Pickup Messages

following ZFG's comment https://youtube.com/clip/UgkxF-LDaR-zyTkqSkqtP3dkLrCca_KGScIw?si=RJY9SIG8QKSiWgVl

splits the Skip Pickup Messages time saver for consumables and bottle pickups

* CVar updates I missed

* another cvar I missed
2025-07-02 21:35:49 -07:00
aMannus 427b5aa25c Fix archi connection cvar & stop normal rando gen with archi 2025-07-02 15:40:16 +02:00
aMannus c06f7bda75 Implement archi and hide rando hash in archi save 2025-07-02 15:11:07 +02:00
aMannus 500481f75f Rewrite notifications to eliminate flicker with many in the queue 2025-07-02 14:34:51 +02:00
Malkierian 237dcfec74 Move all maps from Menu.h to the source files that use them. (#5644) 2025-07-01 17:40:42 -07:00
aMannus 53118cc9e3 Improvements in connection UI + random cleanup 2025-07-01 23:00:58 +02:00
aMannus 53a1aa3d3f Remove archi debug mode 2025-07-01 22:01:41 +02:00
aMannus d1070397c1 Merge branch 'aManchipelago-QuestSelect' into aManchipelago 2025-07-01 21:07:09 +02:00
aMannus 7887d888c4 Quest select changes 2025-07-01 21:07:01 +02:00
Philip Dubé ec54d02c0c Spirit Flags (#5631)
1. skip cutscene delay for sun on floor & sun on block
2. persist sun on floor temp flag
3. persist big mirror being solved before platform lowered

2 removes need for weird bomb key logic
3 needed for shuffle doors
2025-07-01 12:04:26 -07:00
Philip Dubé cddc7353af tts: replace rupee count with key count in dungeons (except first 3 child dungeons) (#5642) 2025-07-01 10:54:39 -07:00
aMannus 48d2193fec CrowdControl additions & improvements (#5104)
* CrowdControl additions & improvements

* Update after dev merge

* clang format

* Revert "clang format"

This reverts commit 1be5ad18f5.

* clang format
2025-07-01 10:54:26 -07:00
Philip Dubé 05a7f728e7 dev tools save editor: change dungeon drop down to current dungeon (#5635) 2025-07-01 10:30:02 -07:00
aMannus 0e9a382232 More specific checks for skipping GIs for special cases 2025-07-01 14:20:32 +02:00
aMannus cd90410489 Merge branch 'pr/73' into aManchipelago-QuestSelect 2025-07-01 09:49:21 +02:00
aMannus db58c3a029 Fix clang-format ps1 script (#5637)
* Fix clang-format ps1 script

* use path variable
2025-06-30 16:56:55 -07:00
Philip Dubé f80836d8b7 Enemy Randomizer: all the invis (#5621)
Fire Keese, Floormaster, Ice Keese, Keese, Redead, Stalfos
2025-06-30 14:52:45 -07:00
Philip Dubé 928bb7767b reduce logical implications of closed forest (#5626)
* reduce logical implications of closed forest

closed forest should only be about kokiri blocking the way,
no need to try plug alternate forest escapes out

* revert adult deku being unlocked in forest without showing mido sword/shield
2025-06-30 14:52:02 -07:00
Malkierian 96d3b480b1 Merge pull request #5638 from Malkierian/blair-dev-6-30
Blair->Dev 6/30
2025-06-30 14:31:30 -07:00
aMannus 3e06696441 Fix spoiler loading, setting more defaults, archi console crash fix + styling 2025-06-30 23:30:32 +02:00
Malkierian 7f3d2adc63 Fix whitespacing in presets. 2025-06-30 13:04:51 -07:00
Malkierian 015dcf2af1 Fix typo. 2025-06-30 10:58:49 -07:00
Jerom Venneker 786b7481c4 Added Disconnecting from the server when selecting new game and backing out of name select 2025-06-30 19:34:45 +02:00
Malkierian 30d1932354 Re-add new preset items to new preset files. 2025-06-30 09:37:02 -07:00
Malkierian 002e8e9f09 Merge branch 'develop-blair' of github.com:Malkierian/Shipwright into develop 2025-06-30 09:28:11 -07:00
aMannus abe682e0f2 clang-format 2025-06-30 11:40:20 +02:00
Malkierian 32683e2a74 Change early return in CheckTrackerLoadGame to check specifically for Boss Rush instead of Not Rando. (#5634) 2025-06-29 19:12:04 -07:00
Philip Dubé 063fb2577f cleanup, trying to speed up build (#5627) 2025-06-29 18:21:47 -07:00
Malkierian 16c3cb1adf Tracker circle (#5632)
* Fix item tracker circle display.

* Add .o2r to .gitignore.

* clang
2025-06-29 18:06:21 -07:00
aMannus ae17e572a0 Hard code custom prices for scrubs/shops for now 2025-06-30 00:13:03 +02:00
aMannus 2e496d1666 Merge pull request #72 from jeromkiller/AddArchipelagoClientLib
Add archipelago client lib
2025-06-29 23:53:46 +02:00
aMannus dc76883a56 Implement get item messages 2025-06-29 23:49:38 +02:00
Philip Dubé 112fbc5a4b trick: ledge clip into gtg (#5618)
* trick: ledge clip into gtg

* fix
2025-06-29 13:57:57 -07:00
aMannus c2788bd0ba Fix build after develop merge 2025-06-29 21:08:35 +02:00
aMannus 456a736beb Merge branch 'develop' into aManchipelago 2025-06-29 20:44:49 +02:00
Malkierian a9b857469e Fix Boss Rush scene/cutscene setup after Bongo/Twinrova. (#5623)
Also prevent check tracker crash loading Boss Rush.
2025-06-28 17:48:21 -07:00
Eblo 9924ebbd05 Enhancement to double pause menu animation speed (#5615)
* Add enhancement to speed up pause menu animation

* Rename CVar to FasterPauseMenu

* Rename kaleido to pause menu

* Rename register func to InitFasterPauseMenu
2025-06-28 07:50:28 -07:00
Malkierian 1161ce3546 Expand tooltip for Free Look to explain camera locks and scene reload. (#5624) 2025-06-28 07:50:06 -07:00
louist103 e15f8d395b Backport 2ship streamed audio (#5457)
* Bring over changes from 2ship

# Conflicts:
#	.github/workflows/apt-deps.txt
#	soh/CMakeLists.txt
#	soh/soh/resource/importer/AudioSampleFactory.h
#	soh/soh/resource/importer/AudioSequenceFactory.cpp
#	soh/soh/resource/importer/AudioSequenceFactory.h
#	soh/soh/resource/importer/AudioSoundFontFactory.h

* Update xml format

* Format and fix mixer for Windows

* Fixes for new LUS

* Good ole clang-format
2025-06-27 17:15:02 -07:00
Philip Dubé 9e686ae6f6 Shuffles: use ObjectExtension system for rando object identity (#5603) 2025-06-25 22:00:53 -07:00
Eric Hoey 8b616c8709 first person to first-person (#5616) 2025-06-25 21:54:57 -07:00
Pepper0ni 1d24edaa92 Split Gerudo Fortress and fix break room logic errors (#5338)
* Separate HBA range

* Separate 4 rooftop regions

* Rest of rooftops

* Small cleanup

* Whoops

* Create `thieves_hideout.cpp` & move `gerudo_fortress.cpp`

* Ground and some inside

* More outside cleanup and more inside

* Kitchen

* Final tweaks

* Use `TH_` prefix for Thieves' Hideout locations

* Add clarifying images (+ `.xcf` source)

* Thieves' Hideout is overworld

* Fix `RC_GF_GS_TOP_FLOOR` & blue -> violet entrance

* Address review

* Update gerudo_fortress.cpp

* Address review

* Split "CarpenterRescue"

* Rename events

* Update logic.cpp

* Move from function to event

* Rename most of the regions

* Address review

* Add new conections

* update logic, get it working

* apply clang format

* undo clang format in logic files

* final reordering

* remove additions to .gitIgnore

* Fix some jump trick logic

* clean up ShufflePots

* fix submodules

* update for review and talk to jail and always gate PRs

* change thieves hideout to scene handling

* final fixes and update enum names and hint text

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2025-06-25 21:54:48 -07:00
Eric Hoey 63bd4ed565 cast to signed 16-bit to stop truncation (#5617) 2025-06-25 21:42:27 -07:00
Philip Dubé c2e7adf915 more tricks (#4866)
* more tricks

1. big poe without epona
2. king dodongo with chu
3. morpha without hookshot
4. open underwater chests (ignore water temple usage for now because water logic is weird)
5. DC MQ stairs without stick, also bring over vanilla alternatives for stairs

rename RT_DC_STAIRCASE to RT_DC_STAIRS_WITH_BOW

* consistency
2025-06-25 09:33:47 -07:00
Jordan Longstaff 3b82b8eeff Ruto no longer targetable with sitting down skip (#5611) 2025-06-25 09:27:45 -07:00
Eric Hoey 74560a360d fix pot param (#5610) 2025-06-23 18:32:35 -07:00
louist103 040e0e1921 Tools update (#5454)
* Bump ZAPDTR & OTRExporter.
Changes to use o2r by default
Changes to the new player animation format

# Conflicts:
#	OTRExporter
#	ZAPDTR
#	soh/soh/OTRGlobals.cpp
#	soh/src/code/z_skelanime.c

* Fix actions

* Format

* Cherry pick ZAPDTR

* Update exporter

* Move configs to port

* Remove copy

* Remove more XML copies

* Remove extractor directory from actions builds.

* Fix OTRExporter for linux

* FIx ZAPD volatile

* Format

* Fix extractor?

* Fix linux

* Fix

* Remove appimage stuff

* Screnity now

* Remove ZAPD from install paths

* Remove soh.sh.in

* Fix linux

* Cleanups and use a thread for message box
2025-06-23 21:29:40 -04:00
Malkierian 4676242086 Fix dpad navigation on Quest Status pause screen. (#5607) 2025-06-23 16:02:04 -07:00
xxAtrain223 afde504a0f Updated SpoilerFileExists to cache the results. (#5606) 2025-06-23 16:01:49 -07:00
xxAtrain223 17613d1f50 Fix Available Checks On Load (#5599)
* Setup call to RecalculateAvailableChecks instead of direct call.

* Remove RecalculateAvailableChecks from CheckTrackerSettingsWindow::DrawElement.
2025-06-23 15:52:17 -07:00
Philip Dubé 64f9e433da Tag navi dive tricks as glitches (#5598) 2025-06-22 21:35:17 -07:00
Malkierian e0ebc115ce Initialize OTRGlobals' Context early to prevent non-portable crash during asset archive lookup. (#5605) 2025-06-22 16:32:37 -07:00
Malkierian cf0ea3033e Fix warning for euro symbol in CustomMessageManager.h. (#5604) 2025-06-22 12:41:13 -07:00
Malkierian 2d59721b7a Small fixes to allow running and seed generation. (#5600) 2025-06-19 22:10:06 -07:00
nclok1405 7ecefa8f90 Converted "Passage of Time on File Select" to ShipInit Hook (#5595) 2025-06-19 18:59:46 -07:00
nclok1405 7514bdc08b Convert enemy-specific cheats "No ReDead/Gibdo Freeze" and "Keese/Guay don't Target You" to hooks (#5597) 2025-06-19 15:06:10 -07:00
Sirius902 3943242cb2 Dynamically construct weird frame data (#5195) 2025-06-19 15:05:57 -07:00
Schicksal88 517b52176c German translation cleanup (#5471)
* German translation cleanup

- German ice trap names and code for it to show up. Changed the order of translations to english/french/german to make it consistent with item_list.cpp.
- German shops as those are now complete.
- German translation for ingame fileselect rando menu.
- Added function to mark an item as plural. This is necessary to have proper grammar in most german sentences. If an item has a € at the end of it and the sentence it get's inserted into has |singular|plural| forms defined, the singular part get's removed.
- Added the plural markers & |singular|plural| parts to the entire german script where it was necessary.
- Fixed grammar, typos, inconsistencies and now everything uses official Zelda-game names.
- Fixed vanilla/master quest map text

* ice trap fix

accidentally commented out french twice instead of spanish. fixed.

* German Randomizer

Some fix for Schicksal

* Fix number 2

Fix number 2 for Schicksal

* Update soh/soh/Enhancements/custom-message/CustomMessageManager.cpp

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

* clang format

---------

Co-authored-by: amafresh <arminamayeh@gmail.com>
Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-06-19 14:53:50 -07:00
Philip Dubé 7f3aac36b2 ShuffleFreestanding: ShipInit (#5583) 2025-06-19 14:53:15 -07:00
Philip Dubé 1e60c48e3a a11y: linux tts with espeak-ng (#5428)
* a11y: linux tts with espeak-ng

* dlopen

* Show setting on Linux
2025-06-19 14:27:56 -07:00
Philip Dubé 4c31f2bc88 Extend RT_BLUE_FIRE_MUD_WALLS (#5215)
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
2025-06-19 13:43:39 -07:00
Philip Dubé 180d6a1b90 FasterShadowShip.cpp (#5114)
Makes boat 25x faster
2025-06-19 13:42:53 -07:00
Philip Dubé 561f151615 a11y: tts integration with randomizer start menu (#5414) 2025-06-19 13:42:00 -07:00
nclok1405 565d57112e Japanese translation for Better Debug Warp Screen (#5491)
* Japanese translation for Better Debug Warp Screen

* Incorporate fixes by balloondude2 (except Shield/Treasure Chest Grave inconsistencies which I'm unsure how to handle that)

* Localize "Scene Selection" header for each language

* Added/Restored the ability to render Hiragana characters using GFXP_HIRAGANA macro
2025-06-19 13:41:41 -07:00
Philip Dubé 7f4c570a47 ShuffleFairies: ShipInit (#5582)
* ShuffleFairies: ShipInit

* fix big fairy items
2025-06-19 13:40:37 -07:00
Philip Dubé 073205c862 ShufflePots: ShipInit (#5584) 2025-06-19 13:40:24 -07:00
nclok1405 4f95ab3f46 Add/Restore the option to automatically boot into Debug Warp Screen (#5485)
* Added/Restored the option to automatically boot into Debug Warp Screen

* clang-formated

* Added a new hook and moved Boot To Debug Warp Screen to it

* clang

* Added DebugEnabled to initFunc's CVar list. This should prevent Debug Warp from being triggered when Boot to Debug Warp option is enabled but Debug Mode option is disabled.

* No longer hijacks CustomLogoTitle

* Disable "Boot Sequence" dropdown when Boot to Debug Warp Screen is enabled
2025-06-19 13:39:03 -07:00
Philip Dubé c0ea595fa5 rando: always spawn gerudo guard behind gate (also fix gaurd typos) (#5399)
* rando: always spawn guard behind gate (also fix gaurd typos)

someone had seed where they had card so couldn't be caught to pass gate in reverse wasteland

* move guard spawn logic to hook
2025-06-19 13:38:11 -07:00
Philip Dubé a9ede7d46e SwitchTimerMultiplier: fix crash due to missing actor param (#5593) 2025-06-19 13:37:48 -07:00
Malkierian be22c02d00 Reapply "Set Sample Rate to 32000 hz (#4780)" (#5234) (#5508)
This reverts commit feea299291.

Also applies rupee screech fix LL provided to 2ship.
2025-06-19 13:34:47 -07:00
Philip Dubé 81b3123586 timesavers: shipinit (#5416)
* timesavers: shipinit

* feedback

* intro skip not unconditional
2025-06-19 13:34:11 -07:00
Pepe20129 87c971372d Change Region's scene string with a SceneId (#5398)
* Change region scene from string to sceneid

* Deduce `timePass` from scene

* Deduce `areas` from scene where possible

No possible for `RR_CASTLE_GROUNDS` & "link's pocket" areas

* Update zoras_fountain.cpp

* Applied clang format

* Address review

* Address review

* Clang format

* Fix pseudo regions

* Format

* Address review

* Address review
2025-06-19 13:32:39 -07:00
Philip Dubé 4c547416cc replace MT RNG with PCG (#4973)
replace boost hashing with FNV-1a
removes boost as a dependency
2025-06-19 13:31:35 -07:00
Pepper0ni b564148380 Add wallet to mask logic, clean up mask logic (#5567) 2025-06-19 13:28:50 -07:00
Malkierian a9a49ccbe6 Adds saving and loading for location exclusion, and hooks the check tracker up to return false from IsVisibleInCheckTracker if a location was excluded. (#5594) 2025-06-19 13:26:43 -07:00
Pepper0ni 2daf343755 Change excluded checks to have junk instead of non-advancment. (#5592)
* Change excluded checks to have junk instead of non-advancment

* loud frying pan noises
2025-06-19 13:26:30 -07:00
Malkierian 081338b9f9 Merge pull request #5577 from Malkierian/dev-blair-6-12
Blair -> Develop 6/12
2025-06-18 13:01:13 -07:00
Pepper0ni b932b8f6c9 Clarify hint text for pots in interiors (#5591)
* Clarify hint text for pots in interors

* Make dampe's pots text less like a naming error
2025-06-18 08:39:09 -07:00
Pepper0ni 19e9f39a9a Hardcode spirit hands to be dungeon checks (#5590)
* Hardcode spirit hands to be dungeon checks

* CLANG CLANG CLANG!
2025-06-16 15:29:46 -07:00
Pepper0ni aa7693a103 fix various oversights with altar hint off (#5589) 2025-06-16 15:29:22 -07:00
Pepper0ni f2bc7cd1dc Fix rare crash in randomiser generation (#5585) 2025-06-15 10:22:36 -07:00
xxAtrain223 620d08002c RecalculateAvailableChecks Fix - IsSaveLoaded Guard (#5587)
* Added IsSaveLoaded guard clause to RecalculateAvailableChecks.

* Combined RecalculateAvailableChecks guard clauses.
2025-06-15 10:22:03 -07:00
Malkierian 35361c9e8d Create macro to make All and None buttons for cutscene skips trigger ShipInit for each CVar changed. (#5576) 2025-06-15 10:20:09 -07:00
Philip Dubé 330e64180c Difficulty: SwitchTimerMultiplier (#5555)
* Difficulty: FireTimerMultiplier

Introduces slider to adjust timer on fire walls resetting switches

* rename, add more timers

* also shadow trial, dampe race, deku water

* avoid decrementing timer to 0, which with BgMizu can cause timer to go below 0 & break

* gtg eye statue

* also scale torches

* tooltip

* Limit difficulty: torches stop at -3 & shadow temple torch puzzle stops at -4

* put timer condition as should when convenient
2025-06-15 10:19:58 -07:00
Jordan Longstaff b600836e4f New options that affect feeding Jabu-Jabu (#5397)
* New options that affect feeding Jabu-Jabu

* Add hints for what Jabu-Jabu wants

* Roll back "key" settings to just closed/open, finish rando logic

* Revert "Add hints for what Jabu-Jabu wants"

This reverts commit 2a1974a669.

* Fix vanilla enhancement disabler
2025-06-15 10:19:52 -07:00
Pepper0ni eefe7729ab CanUse instead of HasItem for Hover Boots to reach jabu switch ledge (#5581)
* CanUse instead of HasItem for Hover Boots to reach jabu switch

* also fix a similar issue in fountain
2025-06-14 07:51:33 -07:00
Jordan Longstaff ab9af742fa Finish hint translations for fish by waterfall (#5466)
* Finish hint translations for fish by waterfall

* Revise
2025-06-13 22:43:31 -07:00
Philip Dubé 213ea742eb Gerudo Guards: offer to throw you in jail (#5390)
* Gerudo Guards: offer to throw you in jail

Necessary for logic to use being captured in routing

* don't intercept Ge3

* TODO_TRANSLATE

* cleanup
2025-06-13 22:43:25 -07:00
Malkierian cd32181415 Fix incorrect merge conflict resolution. 2025-06-12 22:41:19 -07:00
Malkierian c2b6942282 clang 2025-06-12 17:57:29 -07:00
Malkierian 2b1322d723 Merge branch 'develop-blair' of github.com:Malkierian/Shipwright into develop 2025-06-12 17:46:47 -07:00
Jason 62c03abfd4 Updates docs/MODDING.md example to reflect current codebase (#5558)
* Update docs/MODDING.md change example to reflect current codebase

* Changes to MODDING.md (#5558): fixes slight typo

* Changes to MODDING.md (#5558): fix typo and remove uneeded explanation that minimum and maximum are floats
2025-06-12 13:39:21 -07:00
Malkierian bf3add7a72 Re-add ShipInit::InitAll() to the end of applyPreset(). (#5574) 2025-06-12 13:24:19 -07:00
Philip Dubé 9432b3420b tts: only announce timer at 10s intervals (#5559)
* tts: only announce timer at 30s

1. reading out every second doesn't have enough time to even say more than a number
2. tts is hard to hear the rest of the game over while it's counting non stop

* under a minute announce every 10s
2025-06-12 13:23:47 -07:00
Pepper0ni c7e3e08f8d Fix club moblins moving out of bounds and remove them from the no-clear-room list (#5569) 2025-06-12 13:23:42 -07:00
Jerom Venneker 1fe3871f6c Added automatic move to name entry after connecting and scouting 2025-06-12 21:52:47 +02:00
Philip Dubé 52debea44b Difficulty: CuccosToReturn (#5552)
* Difficulty: CuccosToReturn

Mirrors rando option

* remove RSK_CUCCO_COUNT

* revert forcing rando to at least 1
2025-06-11 14:41:54 -07:00
Malkierian 69792e9717 Save and Randomizer Version Control (#5557)
* Add version control for Rachael saves and old rando saves.

* Change spoiler drop success sound to puzzle success chime.
Add spoiler drop fail sound (sys_error).
Improve path sanitizer operation.
Add check for a spoiler having a version and it equaling running version. Deletes spoiler CVar if spoiler becomes unusuable while running, and prevents loading dropped spoilers that don't match.

* clang

* Remove backslash escaping from Sanitize.
Remove duplicate Sanitize from Context and make it use SohUtils.
Fix typo.
2025-06-11 14:39:15 -07:00
Philip Dubé 07328a0ecb remove leftover No Dampe Fire checkbox (#5561)
got moved to difficulty dropdown
2025-06-11 14:38:34 -07:00
Philip Dubé af99ef8e07 Hookify TreesDropSticks (#5566)
* Hookify TreesDropSticks

* fix off by one
2025-06-11 14:38:12 -07:00
Rozelette dbc2ff09b5 Convert actor health bars to use ObjectExtension (#5565) 2025-06-11 14:37:34 -07:00
Malkierian 0b9fe2d9b9 Fix Search Crash from Scrolling (#5571)
* Fix search crashing when section child scrolled too far.

* clang
2025-06-11 14:35:57 -07:00
Eric Hoey ad850e50b1 prevent OOB write for BGM fix in grotto mixed pools (#5572) 2025-06-11 14:35:49 -07:00
Jerom Venneker 0fe29b4a20 Added menus for creating an archipelago file 2025-06-11 21:35:03 +02:00
Jerom Venneker 29a661994a Merge branch 'aManchipelago' into AddArchipelagoClientLib 2025-06-08 13:32:36 +02:00
Jerom Venneker c1ac635bea Added PostLoadGame hook, so item synching hooks can get fired after they've been subscribed to in hook handlers 2025-06-06 14:42:42 +02:00
aMannus 102585c434 Merge pull request #71 from jeromkiller/AddArchipelagoClientLib
Add archipelago client lib
2025-06-06 08:50:36 +02:00
aMannus a6503386a5 Merge branch 'develop' into aManchipelago 2025-06-06 08:48:40 +02:00
Pepe20129 abb0a93945 Add Anubis, Flare Dancer, Skull Kid & Spear Moblin to enemy randomizer (#5483)
* Add Anubis, Flare Dancer, Skull Kid & Spear Moblin

* Include spear moblins and exclude flare dancer in clear rooms

* Exclude anubis from clear rooms

* Fix skull kill issues

* Clang format

* Address review

* Use hook

* Update z_en_mb.c
2025-06-04 18:07:57 -07:00
Philip Dubé 5b2c30edb0 Faster water temple gate (#5556)
* rando: faster water temple gate

* move to time saver
2025-06-04 17:09:06 -07:00
nclok1405 3377dc636a Default to Hiragana keyboard when playing in Japanese (#5543)
* Default to Hiragana keyboard in Name Entry screen when playing in Japanese (NTSC behavior)

* clang-formated
2025-06-04 17:08:50 -07:00
Philip Dubé 3a60c3f651 SkipAmyPuzzle (#5550) 2025-06-04 17:08:36 -07:00
Philip Dubé 56a53e9fac consolidate RAND_GET_OPTION (#5553) 2025-06-04 17:08:27 -07:00
Jerom Venneker fb0bf1be45 Added setting of flags when externaly checking 2025-06-04 21:03:34 +02:00
Jerom Venneker 5e821ca641 Fixed items from other games not scouting and recieving right 2025-06-02 20:21:17 +02:00
Jerom Venneker 53d6374c6c Fixed issue where client crashes when collecting item while offline 2025-06-02 19:19:13 +02:00
Jerom Venneker b6990d92bf Added Rounded corners to text entry field 2025-06-02 19:17:13 +02:00
Jerom Venneker bf85a85aba Merge remote-tracking branch 'fork/aManchipelago' into AddArchipelagoClientLib 2025-05-31 01:03:29 +02:00
aMannus df525c2f1e Merge branch 'develop' into aManchipelago 2025-05-30 23:49:18 +02:00
Pepe20129 f5d8f1eece Add ShuffleSongs.cpp & RO_SONG_SHUFFLE_OFF (#5534)
* ShuffleSongs.cpp

* Address review and fix build

* Update soh/soh/Enhancements/randomizer/settings.cpp

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

* Change back to "Off"

---------

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-05-30 12:51:21 -07:00
Jerom Venneker a2e7b21155 Fixed quote typo 2025-05-30 20:18:07 +02:00
aMannus 11d055c3f1 Fix windows build 2025-05-30 19:14:01 +02:00
aMannus bbfcf8789c Merge pull request #70 from jeromkiller/AddArchipelagoClientLib
Add archipelago client lib
2025-05-30 18:59:33 +02:00
Jerom Venneker 03c93484fd Added Error messages when attempting to send messages while disconnected and when attempting to use local commands 2025-05-30 11:36:34 +02:00
Malkierian 40fa3c8d64 Convert RandomizerInf to the dynamic #define model to allow for automatic string names. (#5537) 2025-05-29 19:14:32 -07:00
Jerom Venneker 497700fe6a Added textbox to console window for chatting and server commands 2025-05-29 19:38:38 +02:00
Pepe20129 40da9997c5 Fix some dark link issues (#5532) 2025-05-29 07:51:35 -07:00
Philip Dubé 2b360d4bbe Rebottle Blue Fire (#5375)
* Rebottle Blue Fire

* hookify
2025-05-29 07:06:53 -07:00
Jerom Venneker 7d49cb1281 Refactor so apclientpp.h doesn't have to be included a second time 2025-05-29 00:00:13 +02:00
Jerom Venneker 422b7d1950 Added proper archipelago textclient colors to the console 2025-05-28 22:52:14 +02:00
Jerom Venneker cc40d3ca86 Moved hooks to Registration function and improved item queue filtering 2025-05-28 15:15:46 +02:00
Jerom Venneker 747da8d6b7 Added auto disconnect if loading a save accosiated with the wrong slot 2025-05-28 14:53:59 +02:00
Jerom Venneker d9d453501e Corrected spelling on receive 2025-05-28 10:30:58 +02:00
Jerom Venneker 7a8a5a19a0 Don't Send or queue Unknown checks. Todo, figure out what triggers sending one 2025-05-28 10:21:24 +02:00
Hunter Marshall fc10e36cdb Fix minor mistakes in region table (#5545)
* Fix minor mistakes in region table

* Update soh/soh/Enhancements/randomizer/location_access/dungeons/ice_cavern.cpp

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>

---------

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-05-27 14:34:36 -07:00
aMannus d8a9355846 Merge pull request #69 from jeromkiller/AddArchipelagoClientLib
Add archipelago client lib
2025-05-27 23:18:17 +02:00
aMannus 9d3ea502bb Implement rewards gcbk settings & fix shopsanity 2025-05-27 23:12:01 +02:00
Pepper0ni f0e36c2694 Fix failure to assign areas to regions on initial spoiler load (#5540) 2025-05-27 13:19:30 -07:00
Malkierian fa6f45bde5 Fix Preset List with no customs available (#5535)
* Surround preset file processing with the fs::exists check rather than returning early.

* clang
2025-05-27 13:19:14 -07:00
Jerom Venneker 6662818d95 Filtering out already locally checked locations from recieving location sync 2025-05-27 22:03:12 +02:00
Jerom Venneker 36cf22c196 Added some pretty (arbitrary) collors to the archipelago log 2025-05-27 21:28:19 +02:00
aMannus 44be44b513 Merge pull request #68 from jeromkiller/AddArchipelagoClientLib
Add archipelago client lib
2025-05-26 22:49:11 +02:00
Jerom Venneker dbf8503369 Added text recieved from AP to the log 2025-05-26 22:07:58 +02:00
Jerom Venneker 5be1a2d419 Merge remote-tracking branch 'fork/aManchipelago' into AddArchipelagoClientLib 2025-05-26 20:54:49 +02:00
Jerom Venneker f6359f1008 Added opening of local checks when synchinc locations 2025-05-26 20:51:49 +02:00
aMannus 66937c8423 Add icons to ap item notifications 2025-05-26 13:17:09 +02:00
aMannus ba1af32ba4 Switch to outline-less ap item models 2025-05-26 11:05:05 +02:00
aMannus d5f395493b Show item name and player in ap item pickup notification 2025-05-26 10:49:44 +02:00
aMannus e6fec935d6 Load in new shuffle options data 2025-05-26 00:30:49 +02:00
Jerom Venneker 603c163167 Rework Item Queue, Repeated connections should no longer give multiple copies of the same item 2025-05-25 21:17:44 +02:00
aMannus ab307fa3e9 Beginning of retrieving slot data (deathlink), various fixes 2025-05-25 11:29:13 +02:00
xxAtrain223 de96f3cd0a Typo Fixes (#5533)
* Fixed a couple typos.

* Ran clang format.
2025-05-24 10:39:53 -07:00
aMannus 2b6f81351c Hard code archipelago options 2025-05-24 12:12:18 +02:00
aMannus ad0a73a32f Merge pull request #66 from jeromkiller/AddArchipelagoClientLib
Add archipelago client lib
2025-05-24 10:44:47 +02:00
Jordan Longstaff 4e8e6d2313 Move Rupee Dash Mode hook to its own file (#5178)
* Move Rupee Dash Mode hook to its own file

* Rename initFunc
2025-05-23 20:29:43 -07:00
Rozelette 8b4cad1710 Rework ActorViewer to use hooks (#5474)
* Rework ActorViewer to use hooks

* Rework ActorViewer to use hooks

* Remove ResetData
2025-05-23 18:47:08 -07:00
xxAtrain223 d330f22071 Available Checks Entrance Shuffle (#5363)
* EntranceShuffler ApplyEntranceOverrides.

* Updated ApplyEntranceOverrides.

* Updated ApplyEntranceOverrides.

* Initial Entrance Discovery.

* Added Randomizer_EntranceDiscovered.

* Updated Randomizer_DiscoverRegion to discover unshuffled connected regions.

* Removed extra semi-colon.

* Update to latest entranceShuffleTable.

* Format fixes.

* Updated EntranceDiscovered to account for entrances not in the entranceShuffleTable.

* Rediscover regions when loading a game.

* Rediscover entrances when enabling Available Checks.

* Added Rando::Context::ParseTricksJson.

* Updated ApplyEntranceOverrides to skip default (unset) overrides.

* Fix clang-format failed check.

* Set mLACSCondition when loading a Randomizer game.

* Updated rediscover loop to use MAX_ENTRANCE_RANDO_USED_INDEX.

* Move entrance discovered into ProcessExits.

* Discover spawns when pulling/placing the master sword.

* Discover adult/child spawn when using Song of Time to switch age.

* Reset logic and ApplyOrStoreItems without applying the item effects to the save when calculating available checks.

* Removed !itemLoc->IsAddedToPool() from the check tracker.

* Remove region discovery as its not needed anymore.

* Cleanup changed files for PR.

* Added Available Checks - Process Undiscovered Exits DebugConsole command.

* Added initial Available Checks - Recalculate DebugConsole command.

* ACPUE, recalculate only if save loaded. ACR, set age and times for the starting region.
2025-05-23 17:49:01 -07:00
TheLynk f2298c6a8e Add Two New Tricks "Navi dive" (#5477)
* add navi dive bottom of the well

* add kokiri sword logic for botw

* Optimisation Logic

* Add Navi Dive Lost Wood

* Update Logic

* Move IsChild in logic trick

* Add brackets

* Clang-Format

* Tweak Text

Tweak Text

* Final Push ?

* It's really the last push
2025-05-23 15:37:30 -07:00
Malkierian 99c3fa6006 Preset Manager (#5459)
* Add presets sidebar, proof of concept row-based listing.

* Complete and unify section check/x drawing.

* Add error state to InputString, and corresponding members and builders to InputOptions.
Implement saving and loading of preset files.

* Implement `Config::SetBlock()`.
Implement Apply.
Implement Delete.
Some json structure changes.

* Apply `CVarClear()` calls in CVar-prefixed widget functions.

* Comment out satellite preset pickers for now.

* clang

* Fix ButtonOptions initializer list.

* I hate clang...

* Loop new preset checkbox creation.
Restore auto-resizing to new preset popup.
Remove errant BeginDisabled in randomizer (merge artifact?).

* Add BlockInfo struct to make array with all info for each block.
Setup loops for all other same-ish situations (applying presets, setting up columns, etc) based on blockInfo.

* Save tracker windows info for later restoration.
Lay the groundwork for said restoration.

* Complete tracker window restoration on preset application.

* Fix RadioButtonsOptions builder parameter type.
Add race lockout to new and apply buttons.

* Revert application of CVarClear on UIWidgets widgets (need to preserve manually-set default states).

* Remove enhancements satellite picker.
Swap randomizer satellite picker to use the manager presets, only displays presets with randomizer section included.
Move built-in presets to the asset archive, and remove delete button on them.
Remove PresetEntries.cpp.

* Fix locations and tricks tabs not updating live when applying preset with new system.

* Apply RandoGenerating lockout to rando preset Apply button.

* Fix new presets not being properly filtered in satellite selectors.

* Fix currently selected presets getting deleted still being selected in satellite selectors.

* Change BigPoeTargetCount in preset files to 1.
2025-05-23 14:57:49 -07:00
Philip Dubé 3a069e621e Fix warnings (#5516)
* use size_t instead of uint8_t for hint ids

* va_arg int instead of s16

warning: second argument to 'va_arg' is of promotable type 's16' (aka 'short'); this va_arg has undefined behavior because arguments will be promoted to 'int' [-Wvarargs]

* more issues like #5443
2025-05-23 14:21:25 -07:00
Malkierian d69a45674f Adds a check for "OneDrive" in the execution path to the startup errors that prevent running. (#5522) 2025-05-23 14:06:25 -07:00
Rozelette a2541fded8 Exclude build dependencies from clang format (#5490) 2025-05-23 14:06:19 -07:00
nclok1405 150029fa49 Set default player name to "リンク" ("Link" in Katakana) when playing in Japanese (#5487) 2025-05-23 14:05:59 -07:00
Rozelette e4448f491e Add ObjectExtension system (#5429) 2025-05-23 14:05:33 -07:00
Jordan Longstaff db8440e744 Move Shadow Tag Mode hook to its own file (#5179)
* Move Shadow Tag Mode hook to its own file

* Rename initFunc
2025-05-23 14:04:43 -07:00
Jordan Longstaff d8acc32876 Move Daytime Gold Skulltulas mod hook to its own file (#5174)
* Move Daytime Gold Skulltulas mod hook to its own file

* Fix externs?

* Rename initFunc
2025-05-23 14:04:20 -07:00
Malkierian ae480e107e Implement Log Level selector setting (#5263)
* Implement Log Level selector setting.

* run clang

* Enum for default value.

* PR feedback: use CVAR_DEVELOPER_TOOLS in CVar builder.

* Slight change to try to force a PR update.

* screw you clang
2025-05-23 14:03:30 -07:00
Philip Dubé ca32dfd246 Dampe Fire (#5521)
* No Dampe Fire

* spicy

* bikeshed
2025-05-23 14:03:20 -07:00
Philip Dubé 24013e2e5c skip bottling big poes (#5247)
* setting to skip bottling big poes

empty bottle still required to collect

avoids logic needing to work around player soft locking by filling bottles without poe collector access

* No option, zero option

* TEXT_BIG_POE_COLLECTED_RANDO

* update preset

* fix talking to poe collector after receiving item
2025-05-23 14:00:35 -07:00
Jerom Venneker ea95ca0a9a Enabled Connecting and check synching when already in game 2025-05-23 19:28:42 +02:00
Jerom Venneker a9e99e400c Removed IS_ARCHIPELAGO defines 2025-05-23 18:22:50 +02:00
Jerom Venneker b2c2be034e Added Item Synch on game load 2025-05-23 18:04:08 +02:00
aMannus c15abdc411 Init archipelago data, place different AP item types 2025-05-23 13:50:20 +02:00
aMannus 0a1a1088e1 Fix cmake for non-linux 2025-05-23 10:44:40 +02:00
aMannus 9533de7ef6 Merge branch 'pr/64' into aManchipelago 2025-05-23 10:39:04 +02:00
aMannus 9709ec461b All AP save data initialized 2025-05-23 10:35:12 +02:00
aMannus aed7dd3e42 Update models to lower poly version 2025-05-23 09:15:38 +02:00
aMannus a52ae24422 Implement initial AP item models 2025-05-23 03:11:36 +02:00
aMannus cc9d15e1b7 Initial AP save data 2025-05-23 01:21:29 +02:00
Jerom Venneker 108cc3b24d Cleaned up Item recieve code and removed old AP mappings 2025-05-23 00:34:27 +02:00
Pepper0ni a9fc317a5a Fix crash when no valid enemies are selected (#5519)
* fix crash when no valid enemies are selected

* Clanged
2025-05-22 15:23:14 -07:00
Philip Dubé 1d716a5975 ShuffleBeehives.cpp (#5511) 2025-05-22 15:18:03 -07:00
Jerom Venneker b24abb4ae4 Merge remote-tracking branch 'fork/aManchipelago' into AddArchipelagoClientLib 2025-05-22 23:00:04 +02:00
Jerom Venneker 0fa178ee40 made openssl use dynamic libraries on fedora 2025-05-22 22:58:28 +02:00
Pepper0ni 2511275b8b Fix getting heart containers on pocket and skipped impas song (#5518)
* fix getting heart containers on pocket and skipped impas song

* curse you clang! CURSE YOU!
2025-05-21 15:01:54 -07:00
aMannus 1510c23684 Remove duplicate location sending 2025-05-21 23:14:30 +02:00
aMannus a8a8c30543 Implement hook for archipelago 2025-05-21 22:59:59 +02:00
Malkierian 79b6719db3 Change soh.otr loading to use LocateFileAcrossAppDirs() instead of just the app bundle path. (#5525) 2025-05-21 11:30:16 -07:00
Pepper0ni 01ce1eeac8 Fix oversight in lab boots trick, you need to be able to swim back up (#5524) 2025-05-21 08:51:43 -07:00
Pepper0ni 5bf3761a18 Fix Boss and Tower entryways skipping requirements in decoupled (#5484)
* Fix boss and tower entryways in decoupled

* Add patches to child boss room entryways

* Apply fixes

* remember to set ALL the new exits
2025-05-21 08:51:34 -07:00
aMannus 513684d9a2 Merge pull request #63 from briaguya-ai/document-no-pem-decision
Document no pem decision
2025-05-21 11:40:31 +02:00
briaguya 99c16e3f0e Merge branch 'aManchipelago' into document-no-pem-decision 2025-05-21 05:38:24 -04:00
briaguya d7a1d6b24e document no pem decision 2025-05-21 05:38:02 -04:00
aMannus 3b603e0cb5 Merge pull request #62 from briaguya-ai/archi-ssl-linux-maybe-mac
SSL for linux (and maybe mac)
2025-05-21 11:19:18 +02:00
briaguya 2ba5a68e3d SSL for linux (and maybe mac) 2025-05-21 05:14:09 -04:00
aMannus abc819626b SSL support for windows 2025-05-21 10:54:02 +02:00
aMannus dcfbcf8602 Log debug mode & location scouting progress 2025-05-20 15:27:38 +02:00
Philip Dubé 4216776cd6 Fix entrance optimization (#5520)
I'm an idiot
2025-05-19 22:47:04 -07:00
aMannus 815b248b87 Change input fields to cvars 2025-05-19 21:52:44 +02:00
Malkierian e1f6297807 Merge pull request #5517 from HarbourMasters/develop-blair
Develop blair
2025-05-19 09:19:44 -07:00
aMannus 9e3e11692f Update archipelago menu styling 2025-05-19 12:31:12 +02:00
aMannus 959b7dd433 Function renames 2025-05-19 11:16:13 +02:00
aMannus 1bf399658c Replace archi SPD instances with built in console 2025-05-19 09:55:01 +02:00
briaguya 081f82875a fix link voice missing when hanging off ledges (#5506)
* fix link voice missing when hanging off ledges

* remove unused bitrate var

* hardcoded but justified

* format
2025-05-18 21:24:57 -07:00
Pepper0ni 4334a132e3 fix the wrong codepath being used in CanBuy when generating seeds (#5514) 2025-05-18 14:28:55 -07:00
briaguya f0e40fd1dc fix incorrect token count in messages when tokensanity is off (#5503)
* fix incorrect token count in messages when tokensanity is off

* Update OTRGlobals.cpp
2025-05-18 14:26:10 -07:00
Pepper0ni f16e34e8b8 fix and rename IsKeysanity to IsFireLoopLocked (#5515)
* c

* fix and rename IsKeysanity

* add comment
2025-05-18 14:25:18 -07:00
aMannus 21c53aff93 Crude archipelago log window 2025-05-18 22:56:27 +02:00
briaguya 53566c9a73 fix incorrect __VA_ARGS__ use in lusprintf version of osSyncPrintf (#5510) 2025-05-18 16:25:24 -04:00
briaguya 50f42b93fe fix "is valid for C/ObjC but not for C++" warnings (#5512) 2025-05-18 16:25:00 -04:00
aMannus 68f73d86f5 Move menu to Network tab, clean up switch 2025-05-18 20:42:55 +02:00
aMannus e7ab37c6cc Make it build baby! 2025-05-18 20:31:19 +02:00
aMannus 95cc7ae8e2 File directory cleanup and options window separation 2025-05-18 14:36:37 +02:00
aMannus 3dd7ef6a59 Merge pull request #61 from jeromkiller/AddArchipelagoClientLib
Add archipelago client lib
2025-05-18 13:31:04 +02:00
Malkierian ecad59e31f Add tooltip to Generate Seed button when disabled indicating the need to be on File Select. (#5509) 2025-05-17 18:52:45 -07:00
Pepper0ni 8e34942924 Toggle the vanilla flags instead of the rando flags when removing one time scrubs (#5504) 2025-05-17 18:06:24 -07:00
xxAtrain223 e0d5fbec42 Available Checks Prices (#5446)
* Improved the item location price availability.

* Moved the available checks price logic into location_access.cpp.

* Fixed typo and clarified check status identified.
2025-05-17 18:05:20 -07:00
Eric Hoey b30fff5d57 Skip Forest Temple Basement Pillars Cutscene (#5473)
* vb forest pillar cs skip

* change to one point cutscene skip

* rm whitespace
2025-05-17 17:56:57 -07:00
xxAtrain223 66351fa4e4 Remove freestanding key from Bottom of the Well Perimeter. (#5496) 2025-05-17 17:30:01 -07:00
xxAtrain223 9cb6530858 Fix Enable Available Checks from title screen. (#5502) 2025-05-17 17:29:53 -07:00
briaguya 3c0e7bcf72 bump lus (to bump imgui) (#5501) 2025-05-17 17:12:05 -04:00
briaguya b418db7792 bump lus (#5500) 2025-05-17 15:35:51 -04:00
Jerom Venneker 82ef6c55ef Disabled (but not removed) mapping of old OoT ap items and locations. Not tested because I can't get the world to host yet :( 2025-05-17 20:05:37 +02:00
briaguya 4f0ed2949e fix seed gen underflow (#5499) 2025-05-17 07:55:21 -07:00
briaguya 026c7619da set soh c standard to 23 (#5498) 2025-05-17 02:16:59 -04:00
Christopher Leggett 6acabae38f Prevent another use of gSaveContext during Seed Generation (#5458)
* Prevent BeanPlanted using gSaveContext for seed gen

* address malk's comment about extern

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2025-05-16 23:11:04 -07:00
Archez 9010b8c540 port over nametag improvements from 2ship (#5160) 2025-05-17 01:09:23 -04:00
Malkierian e673eaefb6 Warnings Round 2 (mostly Rando) (#5486)
* Handle virtually all warnings in `soh/Enhancements/randomizer`.
Handle order of operations warning in FasterHeavyBlockLift.

* Missed a few.

* Add float-specific versions of some M_PI and M_SQRT defines, and swap them in for the static casts in draw.cpp.

* Swap a static cast for M_PIf in check tracker code.
2025-05-16 21:54:36 -07:00
Malkierian 23a5198986 Merge pull request #5497 from HarbourMasters/develop-blair
blair -> dev
2025-05-16 21:46:00 -07:00
Pepper0ni 5b6844ccd8 reapply changes needed for C23 build on develop (#5467) 2025-05-17 00:41:14 -04:00
Malkierian b900f8599a Bump LUS to latest, and handle tinyxml and gfx_pc changes. (#5470) 2025-05-16 21:14:55 -07:00
briaguya 4fd0bf402e set c standard to 17 (#5492) 2025-05-16 15:07:52 -07:00
Pepper0ni e8c2db8151 remove all refernces to Doge (#5488) 2025-05-15 19:51:14 -07:00
Jerom Venneker c5fdcb4064 Merge remote-tracking branch 'fork/aManchipelago' into AddArchipelagoClientLib 2025-05-14 12:37:46 +02:00
Malkierian 45d9fe54d2 Warnings Squashing Round 1 (#5469)
* Fix truncation warning in `entrance.h`.

* Fix type warning in fishsanity.cpp

* Fix implicit conversion warnings in BossRush, Mouse, and UIWidgets.hpp.

* Add Random_Float and use it in GameInteractor_RawAction.cpp.
Make non-specified seed init a separate function.

* clang after type change

* Fix truncation and conversion warnings in ExtraTraps.cpp.

* Resolve type conversion warnings in InputViewer.cpp.

* Resolve some type conversion warnings in hook_handlers.cpp.

* Remove `Random_Float`, and apply `RandomDouble` where it was being used instead.
Add proper range notation to `RandomDouble` to denote the lack of inclusivity for the max part of the range.

* Convert c-style casts to static_cast.
2025-05-13 19:30:04 -07:00
Jerom Venneker ea13bc635f Fixed recieving items from chests 2025-05-13 22:02:59 +02:00
Philip Dubé afc52f07d2 location_access: don't short circuit event access logic (#5216)
event logic is only run while event isn't set
2025-05-13 12:30:22 -07:00
Philip Dubé eb95f9060f Faster empty bottle, faster bean skulltula (#5355)
* Faster empty bottle, faster bean skulltula

* shipinit
2025-05-13 12:30:04 -07:00
Philip Dubé f9cde383b7 ignore out of bounds entrance overrides in json (#5253)
was causing segfault when using settings from door shuffle on develop
2025-05-12 20:33:21 -07:00
Pepper0ni f72085b6ca fix oversight in dragon room of MQ water (#5482) 2025-05-12 20:31:40 -07:00
Jerom Venneker e2d0d8f511 Added found locations to scouts as well 2025-05-12 21:39:05 +02:00
Jerom Venneker ae736e6f2c Bump apclientpp to version 0.6.0 2025-05-12 21:22:37 +02:00
Jerom Venneker ead3d2f515 Fixed menu and added poll call to apcpp to help connecting 2025-05-12 21:12:44 +02:00
Jerom Venneker a0696518b1 Replaced APCpp library with APClientpp, project builds but doesn't work yet 2025-05-11 21:47:29 +02:00
Jerom Venneker f8ecb68404 Merged aMannuses changes to swap out APCpp for apclientpp 2025-05-08 22:35:19 +02:00
aMannus c109e5c2da Update ASIO to 1.30.2 2025-05-08 19:48:40 +02:00
aMannus 85e9ce7ed1 Potential Mac fix 2025-05-08 19:26:03 +02:00
Jerom Venneker 3053d92015 Made some notes on differences between SoH and the existing OoT APworld 2025-05-08 19:20:24 +02:00
aMannus be50419a42 Merge pull request #60 from briaguya-ai/depsandstuff
fix linux ci
2025-05-08 06:51:37 +02:00
briaguya ee7cb4ee22 back to 12 2025-05-07 20:24:07 -04:00
briaguya 345247c95a Merge branch 'aManchipelago' into depsandstuff 2025-05-07 20:23:43 -04:00
briaguya b299de0bd7 cpp20 fix for valijson
i couldn't tell what version of valijson was in here, so i just fixed the error (it was the same as one of the errors websocketspp had)
2025-05-07 18:34:31 -04:00
briaguya 00ac813735 manually apply cpp20 fixes from https://github.com/zaphoyd/websocketpp/pull/1060
the patch link from  https://github.com/zaphoyd/websocketpp/issues/1068#issuecomment-1364647094 didn't work for some reason, so i looked at the 1060 PR

the PR had 10 commits https://github.com/zaphoyd/websocketpp/pull/1060/commits, all but 2 of which seemed entirely unrelated to the cpp20 fix

so i manually pulled the changes from the 2 cpp 20 related commits:
* https://github.com/zaphoyd/websocketpp/pull/1060/commits/9b7fdd5b988b3b443fda60a5852173d0268d309e
* https://github.com/zaphoyd/websocketpp/pull/1060/commits/0823cfea38acb9827b9d5a742b0f394ed5b30d68

Co-authored-by: Andre Azevedo <andre.azevedo@gmail.com>
2025-05-07 18:10:30 -04:00
Eric Hoey 804a24861b add option description to LACS reward options (#5472) 2025-05-07 14:45:42 -07:00
briaguya 5040201a03 update wspp version from 0.8.1 to 0.8.2 2025-05-07 17:33:40 -04:00
aMannus 1389da5641 Update github runner to use GCC 14 2025-05-07 23:05:01 +02:00
aMannus 05e9696ca0 Merge branch 'develop' into aManchipelago 2025-05-07 21:04:16 +02:00
aMannus 59ce387614 Remove boost hash (#59)
* replace MT RNG with PCG

* replace boost hashing with FNV-1a

removes boost as a dependency

* remove boost dependency references

* format

* post rebase fix

---------

Co-authored-by: Demur Rumed <junkmute@hotmail.com>
2025-05-07 20:51:57 +02:00
Jordan Longstaff 6cbb298f76 Skip Kakariko and Hyrule Castle gate cutscenes (#5314)
* Skip Kakariko gate cutscenes

* Simplify a bit

* Revert "Simplify a bit"

This reverts commit ffa68c130fede6962bb4488b85c9ec61ccc60170.

* Add Hyrule Castle gate skip

* Add missing backtick

* Redo simplifications

* Run clang-format

* Proper casting of clearCamera argument

Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>

---------

Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
2025-05-06 17:01:36 -07:00
Eric Hoey 6a93625f5c VBify Crawl Speed Enhancement and Add Exlcude Glitch-Aiding Crawlspace Option (#5465)
* add menu option

* VBify + add conditions

* oops wrong func

* clean up includes + casting

* move z_player externed functions

* better name

* correct menu text

* one last name final final

* maintain glitch-aiding selection
2025-05-06 17:00:33 -07:00
aMannus c94139e0fa Fix __cplusplus macro for visual studio 2025-05-06 14:19:02 +02:00
aMannus ca3c508a02 apclientpp first attempt at dependencies 2025-05-06 13:17:14 +02:00
Jordan Longstaff 19eb4f39ab Skip trial barrier dispel cutscenes (#5464) 2025-05-01 20:27:20 -07:00
Philip Dubé a0e49f9960 a11y: read out changes in action button (#5421)
* a11y: read out changes in action button

* remove drop & throw & putaway

* down when on horse

* typos
2025-05-01 20:26:15 -07:00
Philip Dubé 626511ffb1 CheckBeatable: move clearing ctx->playthroughBeatable into function (#5408) 2025-05-01 20:11:55 -07:00
Philip Dubé 1a322c3eb5 OTRGlobals: use SohUtils::CopyStringToCharBuffer (#5328)
* OTRGlobals: use SohUtils::CopyStringToCharBuffer

* size_t

* fix issues when max buffer size is 0
2025-05-01 20:11:01 -07:00
Philip Dubé 3c33185d1a optimize GetEntrance (#5257) 2025-05-01 19:36:03 -07:00
Philip Dubé d790ea4bce use LOGIC_BUY_STICKS / LOGIC_BUY_NUTS in logic (#5251) 2025-05-01 19:34:56 -07:00
Jordan Longstaff bc3b17f4ab Add coloured text as current BGM indicator in Audio Editor (#5392) 2025-05-01 19:00:43 -07:00
Pepper0ni 4c9063caa7 Remove redundent entrance logic check when adding a region to the pool. (#5413)
* remove redundent entrance logic check when adding a region to the pool.

* how did this trigger clang...
2025-05-01 19:00:31 -07:00
Pepper0ni baa91cbadb Format map GI text (#5417)
* Format map GI text

* dum
2025-05-01 19:00:22 -07:00
Philip Dubé 4debe6829a Apply final specifier to classes inheriting from Ship::GuiWindow (#5443)
Was getting infamous c++ style warnings:
```
In file included from /home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:8:
In file included from /home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.hpp:12:
In file included from /home/erpre/s/ShipWright/soh/soh/SohGui/SohMenuBar.h:3:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/include/libultraship/libultraship.h:5:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/include/libultraship/bridge.h:4:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/public/bridge/resourcebridge.h:9:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/resource/type/Texture.h:3:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/resource/Resource.h:3:
In file included from /home/erpre/s/ShipWright/soh/../libultraship/src/resource/File.h:3:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/string:42:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/char_traits.h:57:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohGui::SohMenu' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohGui::SohMenu>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohGui::SohMenu>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohGui::SohMenu>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohGui::SohMenu, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohGui::SohMenu, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[18], const char (&)[10]>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohGui::SohMenu, std::allocator<void>, const char (&)[18], const char (&)[10]>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohGui::SohMenu>::__shared_ptr<std::allocator<void>, const char (&)[18], const char (&)[10]>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohGui::SohMenu>::shared_ptr<std::allocator<void>, const char (&)[18], const char (&)[10]>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:121:21: note: in instantiation of function template specialization 'std::make_shared<SohGui::SohMenu, const char (&)[18], const char (&)[10]>' requested here
  121 |     mSohMenu = std::make_shared<SohMenu>(CVAR_WINDOW("Menu"), "Port Menu");
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohConsoleWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohConsoleWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohConsoleWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohConsoleWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohConsoleWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohConsoleWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[24], const char (&)[13], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohConsoleWindow, std::allocator<void>, const char (&)[24], const char (&)[13], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohConsoleWindow>::__shared_ptr<std::allocator<void>, const char (&)[24], const char (&)[13], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohConsoleWindow>::shared_ptr<std::allocator<void>, const char (&)[24], const char (&)[13], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:124:27: note: in instantiation of function template specialization 'std::make_shared<SohConsoleWindow, const char (&)[24], const char (&)[13], ImVec2>' requested here
  124 |     mConsoleWindow = std::make_shared<SohConsoleWindow>(CVAR_WINDOW("SohConsole"), "Console##SoH", ImVec2(820, 630));
      |                           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohGfxDebuggerWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohGfxDebuggerWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohGfxDebuggerWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohGfxDebuggerWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohGfxDebuggerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohGfxDebuggerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[28], const char (&)[17], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohGfxDebuggerWindow, std::allocator<void>, const char (&)[28], const char (&)[17], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohGfxDebuggerWindow>::__shared_ptr<std::allocator<void>, const char (&)[28], const char (&)[17], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohGfxDebuggerWindow>::shared_ptr<std::allocator<void>, const char (&)[28], const char (&)[17], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:128:14: note: in instantiation of function template specialization 'std::make_shared<SohGfxDebuggerWindow, const char (&)[28], const char (&)[17], ImVec2>' requested here
  128 |         std::make_shared<SohGfxDebuggerWindow>(CVAR_WINDOW("SohGfxDebugger"), "GfxDebugger##SoH", ImVec2(820, 630));
      |              ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SohStatsWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SohStatsWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SohStatsWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SohStatsWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<SohStatsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<SohStatsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[22], const char (&)[11], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<SohStatsWindow, std::allocator<void>, const char (&)[22], const char (&)[11], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<SohStatsWindow>::__shared_ptr<std::allocator<void>, const char (&)[22], const char (&)[11], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<SohStatsWindow>::shared_ptr<std::allocator<void>, const char (&)[22], const char (&)[11], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:131:25: note: in instantiation of function template specialization 'std::make_shared<SohStatsWindow, const char (&)[22], const char (&)[11], ImVec2>' requested here
  131 |     mStatsWindow = std::make_shared<SohStatsWindow>(CVAR_WINDOW("SohStats"), "Stats##Soh", ImVec2(400, 100));
      |                         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'AudioEditor' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<AudioEditor>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<AudioEditor>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<AudioEditor>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<AudioEditor, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<AudioEditor, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[25], const char (&)[13], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<AudioEditor, std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<AudioEditor>::__shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<AudioEditor>::shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:139:31: note: in instantiation of function template specialization 'std::make_shared<AudioEditor, const char (&)[25], const char (&)[13], ImVec2>' requested here
  139 |     mAudioEditorWindow = std::make_shared<AudioEditor>(CVAR_WINDOW("AudioEditor"), "Audio Editor", ImVec2(820, 630));
      |                               ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'InputViewer' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<InputViewer>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<InputViewer>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<InputViewer>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<InputViewer, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<InputViewer, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[25], const char (&)[13]>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<InputViewer, std::allocator<void>, const char (&)[25], const char (&)[13]>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<InputViewer>::__shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13]>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<InputViewer>::shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13]>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:141:25: note: in instantiation of function template specialization 'std::make_shared<InputViewer, const char (&)[25], const char (&)[13]>' requested here
  141 |     mInputViewer = std::make_shared<InputViewer>(CVAR_WINDOW("InputViewer"), "Input Viewer");
      |                         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'InputViewerSettingsWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<InputViewerSettingsWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<InputViewerSettingsWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<InputViewerSettingsWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<InputViewerSettingsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<InputViewerSettingsWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[33], const char (&)[22], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<InputViewerSettingsWindow, std::allocator<void>, const char (&)[33], const char (&)[22], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<InputViewerSettingsWindow>::__shared_ptr<std::allocator<void>, const char (&)[33], const char (&)[22], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<InputViewerSettingsWindow>::shared_ptr<std::allocator<void>, const char (&)[33], const char (&)[22], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:143:33: note: in instantiation of function template specialization 'std::make_shared<InputViewerSettingsWindow, const char (&)[33], const char (&)[22], ImVec2>' requested here
  143 |     mInputViewerSettings = std::make_shared<InputViewerSettingsWindow>(CVAR_WINDOW("InputViewerSettings"),
      |                                 ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'CosmeticsEditorWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<CosmeticsEditorWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<CosmeticsEditorWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<CosmeticsEditorWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<CosmeticsEditorWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<CosmeticsEditorWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[29], const char (&)[17], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<CosmeticsEditorWindow, std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<CosmeticsEditorWindow>::__shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<CosmeticsEditorWindow>::shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:147:14: note: in instantiation of function template specialization 'std::make_shared<CosmeticsEditorWindow, const char (&)[29], const char (&)[17], ImVec2>' requested here
  147 |         std::make_shared<CosmeticsEditorWindow>(CVAR_WINDOW("CosmeticsEditor"), "Cosmetics Editor", ImVec2(550, 520));
      |              ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'ActorViewerWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<ActorViewerWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<ActorViewerWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<ActorViewerWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<ActorViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<ActorViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[25], const char (&)[13], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<ActorViewerWindow, std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<ActorViewerWindow>::__shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<ActorViewerWindow>::shared_ptr<std::allocator<void>, const char (&)[25], const char (&)[13], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:150:14: note: in instantiation of function template specialization 'std::make_shared<ActorViewerWindow, const char (&)[25], const char (&)[13], ImVec2>' requested here
  150 |         std::make_shared<ActorViewerWindow>(CVAR_WINDOW("ActorViewer"), "Actor Viewer", ImVec2(520, 600));
      |              ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'ColViewerWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<ColViewerWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<ColViewerWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<ColViewerWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:602:2: note: in instantiation of member function 'std::_Sp_counted_ptr_inplace<ColViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_M_dispose' requested here
  602 |         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:970:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace<ColViewerWindow, std::allocator<void>, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace<const char (&)[29], const char (&)[17], ImVec2>' requested here
  970 |             _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
      |             ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:1713:14: note: in instantiation of function template specialization 'std::__shared_count<>::__shared_count<ColViewerWindow, std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
 1713 |         : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
      |                     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:463:4: note: in instantiation of function template specialization 'std::__shared_ptr<ColViewerWindow>::__shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
  463 |         : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
      |           ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr.h:1007:14: note: in instantiation of function template specialization 'std::shared_ptr<ColViewerWindow>::shared_ptr<std::allocator<void>, const char (&)[29], const char (&)[17], ImVec2>' requested here
 1007 |       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
      |              ^
/home/erpre/s/ShipWright/soh/soh/SohGui/SohGui.cpp:153:14: note: in instantiation of function template specialization 'std::make_shared<ColViewerWindow, const char (&)[29], const char (&)[17], ImVec2>' requested here
  153 |         std::make_shared<ColViewerWindow>(CVAR_WINDOW("CollisionViewer"), "Collision Viewer", ImVec2(520, 600));
      |              ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:15: note: qualify call to silence this warning
   88 |         __location->~_Tp();
      |                      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:88:2: warning: destructor called on non-final 'SaveEditorWindow' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
   88 |         __location->~_Tp();
      |         ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_construct.h:149:12: note: in instantiation of function template specialization 'std::destroy_at<SaveEditorWindow>' requested here
  149 |       std::destroy_at(__pointer);
      |            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/alloc_traits.h:720:9: note: in instantiation of function template specialization 'std::_Destroy<SaveEditorWindow>' requested here
  720 |         { std::_Destroy(__p); }
      |                ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/shared_ptr_base.h:616:28: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<void>>::destroy<SaveEditorWindow>' requested here
  616 |         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
      |                                   ^

...
```
2025-05-01 19:00:10 -07:00
Eric Hoey 6c14311b66 add dragon room CS (#5461) 2025-05-01 18:59:47 -07:00
Jordan Longstaff a016453042 Ganon's Tower barrier dispelled if cutscene is skipped (#5462)
* Ganon's Tower barrier dispelled if cutscene is skipped

* More format-compliant comment
2025-05-01 18:59:37 -07:00
Eric Hoey 7cbb0d4d61 Add Missing MQ Jabu Small Crates (#5452)
* also change grass to match

* add crates back
2025-04-29 17:40:01 -04:00
xxAtrain223 e13714e88d Added missing comma. (#5450) 2025-04-29 14:23:40 -07:00
Eric Hoey 17ed54dbc5 add DC boss switch exception + tooltip (#5447) 2025-04-29 17:20:04 -04:00
Eric Hoey fec676bbf8 Fix C-Down Position with Anchor Left (#5423) 2025-04-23 17:29:44 -04:00
briaguya 3d3d9c5226 add some imgui ids in input editor (#5439)
* add some imgui ids in input editor

* clang format
2025-04-22 20:39:10 -07:00
Malkierian 8a8ea676ba Prevents hidden button combo setting from hiding the personal notes window when window type is Window. (#5441) 2025-04-22 20:38:45 -07:00
Pepper0ni 103a36e5fe fix MQGTG right side resetting (#5442) 2025-04-22 20:38:14 -07:00
Pepper0ni 3c4f38e2f0 make sure adult is spawned for big poe check (#5431) 2025-04-22 17:16:16 -07:00
Pepper0ni fbbfc07ff1 port over autoFunc punctuation changes and translations (#5426)
---

Co-authored-by: PurpleHato <47987542+PurpleHato@users.noreply.github.com>
Co-authored-by: amafresh <arminamayeh@gmail.com>
2025-04-21 14:21:42 -07:00
Pepper0ni 29af294b0c fix TODO_TRANSLATE language replacement in cases where the text is already formatted (#5415)
* fix TODO_TRANSLATE language replacement in cases where the text is already formatted

* oops
2025-04-17 10:22:12 -04:00
Malkierian 52a3058926 Merge pull request #5409 from Malkierian/blair-charlie-dev-merge
Blair Charlie to Develop
2025-04-15 16:15:51 -07:00
Malkierian 14907a24b0 Merge branch 'develop-blair' of github.com:HarbourMasters/Shipwright into develop 2025-04-15 15:44:16 -07:00
Christopher Leggett 1b6dc13491 Blair Charlie version bump (#5407) 2025-04-15 14:27:55 -04:00
Malkierian 02ef33393a Implements a rand inf for Ruto's letter to apply to logic to track it separate from the underwater item check. (#5405) 2025-04-15 13:13:30 -04:00
Archez 5ae8ce4eac Fix Entrance Rando weather override behavior (#5403)
* Add AfterSceneCommands hook

* move ER weather override to AfterSceneCommands
2025-04-14 19:11:36 -04:00
Malkierian 5e399fe7a2 Race Lockout (#5364)
* Implement race lockout on the new menu, with option for opt-out.

* Cal's requests.
2025-04-13 19:29:29 -04:00
Jordan Longstaff 46b40b0220 Fix misspelling of Broken Giant's Knife fix CVar (#5395) 2025-04-12 12:12:48 -04:00
Malkierian 1416b2490a Change the Reset All callback back to CosmeticsEditor_ResetAll, because it's already set up to not reset HUD position stuff. (#5385) 2025-04-12 09:14:13 -04:00
Pepper0ni f304de2eb1 fix oversight in forest trial first room (#5381) 2025-04-11 22:56:47 -04:00
Malkierian fc0cbbe9e7 Improve tracker dock bgs (#5383)
* Modify the flow for applying opacity to docked tracker windows only when they are docked to the "Main - Deck" dockspace.

* Add opacity clamping for check tracker.
2025-04-11 22:54:52 -04:00
Archez 824c203b97 Merge pull request #5374 from Malkierian/blair-bravo-dev-merge
Blair Bravo -> develop 4-9
2025-04-11 17:20:08 -04:00
Malkierian f0f2157a4c Move processing for RAND_INF_WEIRD_EGG to trade item processing so it happens whenever you get the egg. (#5382)
Remove RSK check for garden entrance because access is still handled by `CanUse(RG_WEIRD_EGG)`.
2025-04-11 15:49:34 -04:00
Proloe 698fca8862 Fixed right stick aiming being significantly less precise than left stick aiming. (#5388) 2025-04-11 15:44:40 -04:00
Archez 86e1e8e3aa Fix boss key kaleido text for NTSC (#5389) 2025-04-11 13:42:08 -04:00
Christopher Leggett 05e96f310d Fix Fishing-related checks location pool (again) (#5378) 2025-04-11 10:15:31 -04:00
Eric Hoey a93917bb4a Fix Adult Fishing as Child Softlock (#5377)
* pass a pointer not a pointer to a pointer

* update GIVanillaBehavior comment

* also drop this
2025-04-10 17:14:25 -04:00
Malkierian 9783f918d2 Add ImGuiWindowFlags_NoSavedSettings to notification windows to prevent cluttering the imgui.ini (#5380) 2025-04-10 09:50:35 -04:00
Malkierian 1791a0c52c Fix input viewer's first-open position calculation. (#5376) 2025-04-10 09:49:21 -04:00
Malkierian 7e78694aee Merge branch 'develop-blair' of github.com:HarbourMasters/Shipwright into develop 2025-04-09 16:12:46 -07:00
Christopher Leggett 85bc67ef24 Blair Bravo version bump (#5372) 2025-04-09 19:04:28 -04:00
Malkierian a99e8836fb Allow seeded enemy rando to use the values of the enemy list selection. (#5371) 2025-04-09 18:18:44 -04:00
Malkierian c12349a7a3 Add check for bean inventory slot having bean on it to allow availability to succeed with ammo count 0. (#5370) 2025-04-09 16:58:06 -04:00
Pepper0ni 73400f5856 IC ledge to fountain child logic fixed (#5368)
* IC ledge to fountain child logic fixed

* fully unblob ZF
2025-04-09 16:46:43 -04:00
Malkierian e98a6c3748 Fix migrators for tracker colors to match new menu formats. (#5369)
Add temporary additional clearing to CVarColorPicker's reset functionality to resolve already migrated issues.
2025-04-09 16:38:27 -04:00
Malkierian c3322c85ae Swap call to RecalculateAvailableChecks() in SaveFile() to a variable that triggers a recalculation in DrawElement(). (#5366) 2025-04-09 15:26:20 -04:00
Extloga c21c632c09 Additions for the currencies in randomizer.cpp (#5344)
* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp
2025-04-09 15:24:05 -04:00
Pepper0ni 93d49d5c41 Fix ZD beehives and some small cleanup. (#5353)
* clean up zora domain logic

* revert useless short circuits
2025-04-09 15:17:25 -04:00
Christopher Leggett cf75520394 Fix crash in Message Viewer when playing with an NTSC OTR. (#5367) 2025-04-09 15:16:25 -04:00
Eric Hoey 9250af0216 add check for agony option (#5365) 2025-04-09 13:01:26 -04:00
Christopher Leggett 2576f75b1a Fix non-loach fish making it into the pool when Loach Only is selected. (#5360) 2025-04-09 12:20:37 -04:00
PurpleHato 30520a7565 Rando: Last missing french + tiny tweak (#5359)
* Update hint_list_exclude_overworld.cpp

* missing ones

* Oops forgot a '
2025-04-09 11:35:39 -04:00
Pepper0ni f2161297a8 Fix break room access and crates underneath crates logic (#5347)
* fix break room acces and crates underneath crates logic

* apply GF_JUMP to the jump from NEAR_GS to LONG_ROOF to reach BREAK_ROOM
2025-04-09 11:21:22 -04:00
Extloga c1885991fa Additions for the German translation in two files (#5351)
* Additions for the German translation in hint_list_exclude_dungeon.cpp

* Additions for the German translation in hint_list_exclude_overworld.cpp

* Additions for the German translation in hint_list_exclude_overworld.cpp
2025-04-08 16:31:52 -04:00
Malkierian f5e0179e2b Fix a couple typos in enhancement descriptions. (#5358) 2025-04-08 11:44:24 -07:00
Malkierian f0f6259d2f Fix Docked Tracker Ghosting (#5354)
* Dynamically changes a tracker's chosen color's opacity to full when it registers as docked to fix the framebuffer ghosting.

* remove debugging
2025-04-08 10:22:25 -07:00
Archez 1b17fea3d0 Add temporary patch for invisible boulder fragments (#5352) 2025-04-08 12:53:39 -04:00
Archez 88669742a2 Fix copyright tex for GC JP (#5324)
* Fix copyright tex for GC JP

* add 2004 texture for jp ce
2025-04-08 08:38:28 -07:00
Eric Hoey 4a3d60d061 Fix Rando Give for Adult Fishing as Child Glitch (#5349)
* VBVBVB

* Update soh/soh/Enhancements/randomizer/hook_handlers.cpp

* Update soh/soh/Enhancements/randomizer/hook_handlers.cpp

* first try
2025-04-08 11:27:08 -04:00
Pepper0ni d40fa00b9e Mixed pools now properly disables itself when hidden. (#5341)
* mixed pools now sets itself off when hidden

* the clanging never ends
2025-04-08 08:26:18 -07:00
Pepper0ni 88154d78c8 Fix Market Grass and Crate logic (#5340)
* fix market grass and crate logic

* apply clang
2025-04-08 08:26:04 -07:00
Malkierian ae7654cb0e Change check total array types to s16 to handle more check totals (thanks storage temple). (#5348)
Fix typos regarding `overridden` in various parts of the codebase.
2025-04-08 10:13:08 -04:00
Malkierian 71bd48cba9 Move the white iron knuckle entry in randomizedEnemySpawnTable to match the order of enemyCvarList. (#5350) 2025-04-08 07:45:35 -04:00
Christopher Leggett b71a0c5803 Fix checking gSaveContext for used small keys (#5346) 2025-04-07 19:07:07 -04:00
PurpleHato 4acbf799cc French Rando : Add missing text + some tweaks (#5327)
* Should cover everything, I hope

* One last

* final tweaks for real this time

* Update soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_item.cpp

Co-authored-by: Extloga <141232749+Extloga@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/3drando/shops.cpp

Co-authored-by: Extloga <141232749+Extloga@users.noreply.github.com>

* Update soh/soh/Enhancements/randomizer/3drando/shops.cpp

Co-authored-by: Extloga <141232749+Extloga@users.noreply.github.com>

* TODO_TRANSLATE is a macro no a string Hato

---------

Co-authored-by: Extloga <141232749+Extloga@users.noreply.github.com>
2025-04-07 18:34:56 -04:00
briaguya 98146c29f9 fix blank names in spoiler (#5329)
* fix blank names in spoiler

* replace a couple more `.english`/`.french` with `.GetEnglish()`/`.GetFrench()`
2025-04-07 17:24:24 -04:00
Pepper0ni c351a2cf75 Fix shop translations and unify untranslated message alerts. (#5312)
* try to fix messages, crashing on vanilla text

* oops

* adjust shop flavor translations to better fit on 2 lines

* run clang format
2025-04-07 17:22:23 -04:00
Eric Hoey 497f90a392 Set Savewarp in Ganondorf to Ganon's Tower in Entrance Rando (#5339) 2025-04-07 13:27:47 -04:00
Eric Hoey a247c06be8 Various menu fixes (#5321)
* input viewer + rang + draw + circledisp

* clang
2025-04-04 18:49:03 -04:00
Christopher Leggett ee23d02921 move AltAssets to gSettings from gEnhancements (#5323) 2025-04-04 15:25:30 -04:00
Archez 2589448057 Fix boss title card extraction for NTSC; Fix Morpha water (#5320) 2025-04-04 11:57:37 -04:00
Malkierian cb7d9279e4 Fix the GS Map combobox in the Flags tab of the save editor not remembering the selected index, and also rework it to remove the label. (#5317) 2025-04-04 11:00:05 -04:00
Christopher Leggett 38574bbb9e Fix excluded locations on subsequent seed generations (#5302) 2025-04-04 10:15:04 -04:00
Christopher Leggett e2bb2edb8a Fix the start with Master Sword option (#5304) 2025-04-04 10:14:23 -04:00
Archez f37c3aa228 clang-format .hpp files (#5307)
* Add hpp files to clang-format script

* clang-format hpp files
2025-04-03 23:33:35 -04:00
PBillodeau 9a78b04e68 ESC now toggles menubar (#5293)
* ESC now toggles menubar

* Update "menubar" to "menu" in README

* Add mouse capture toggle to README
2025-04-03 17:33:02 -07:00
Pepper0ni 4f783d5945 fix oversight causing big poes check not to run (#5303) 2025-04-03 16:47:56 -04:00
Archez 2deea6e105 Better verbose output for clang-format (#5306) 2025-04-03 15:23:47 -04:00
Philip Dubé ef8fa17e7c simplify clang-format script (#5274)
checked that -print0 & -0 also exist in apple's manpages
2025-04-03 00:36:10 -04:00
Philip Dubé 1e51f1e162 Cleanup whitespace (#5281) 2025-04-03 00:16:52 -04:00
inspectredc fd96bf6b14 Fix Disable Bomb Billboarding (#5290) 2025-04-03 00:06:16 -04:00
Jerom Venneker 61563fadba Added some of the settings, loaded from the server, implemented game win condition (pretty untested) 2025-03-03 21:24:59 +01:00
Jerom Venneker ea2e718c06 Added some basic Item recieving from server, not thoroughly tested yet 2025-02-10 20:58:38 +01:00
Jerom Venneker 51be461254 added APCpp submodule 2025-02-05 21:22:43 +01:00
Jerom Venneker e86f75bfc8 Added the ability to connect to the server and download the item locations 2025-02-05 21:14:17 +01:00
1456 changed files with 89039 additions and 40290 deletions
+1 -1
View File
@@ -1 +1 @@
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build libogg-dev libopus-dev opus-tools libopusfile-dev libvorbis-dev libespeak-ng-dev libwebsocketpp-dev
+34 -12
View File
@@ -62,16 +62,16 @@ jobs:
cmake ..
make
sudo make install
- name: Generate soh.otr
- name: Generate soh.o2r
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release
cmake --build build-cmake --config Release --target GenerateSohOtr -j3
- name: Upload soh.otr
- name: Upload soh.o2r
uses: actions/upload-artifact@v4
with:
name: soh.otr
path: soh.otr
name: soh.o2r
path: soh.o2r
retention-days: 3
build-macos:
@@ -113,8 +113,8 @@ jobs:
echo "MacPorts already installed"
else
echo "Installing MacPorts"
wget https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-14-Sonoma.pkg
sudo installer -pkg ./MacPorts-2.9.3-14-Sonoma.pkg -target /
wget https://github.com/macports/macports-base/releases/download/v2.11.5/MacPorts-2.11.5-14-Sonoma.pkg
sudo installer -pkg ./MacPorts-2.11.5-14-Sonoma.pkg -target /
fi
echo "/opt/local/bin:/opt/local/sbin" >> "$GITHUB_PATH"
- name: Install dependencies
@@ -122,10 +122,10 @@ jobs:
brew uninstall --ignore-dependencies libpng
sudo port install $(cat .github/workflows/macports-deps.txt)
brew install ninja
- name: Download soh.otr
- name: Download soh.o2r
uses: actions/download-artifact@v4
with:
name: soh.otr
name: soh.o2r
path: build-cmake/soh
- name: Build SoH
run: |
@@ -233,10 +233,32 @@ jobs:
make
sudo make install
sudo cp -av /usr/local/lib/libzip* /lib/x86_64-linux-gnu/
- name: Download soh.otr
# this is available in 24.04 but not in 22.04, manually install it
- name: Install valijson
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "deps/valijson-1.0.6" ]; then
wget https://github.com/tristanpenman/valijson/archive/refs/tags/v1.0.6.tar.gz
tar -xzf v1.0.6.tar.gz -C deps
fi
cd deps/valijson-1.0.6
mkdir -p build
cd build
cmake ..
sudo cmake --install .
# websocketpp has a known issue when using older versions of gcc and cpp 20
# https://github.com/zaphoyd/websocketpp/issues/991
# we can patch it here to work with the old version until we update the runner
# to a version of ubuntu that has newer versions of gcc
- name: Patch websocketpp
run: |
sudo sed -i 's/endpoint<connection,config>(/endpoint(/g' /usr/include/websocketpp/endpoint.hpp
sudo sed -i 's/basic<concurrency,names>(/basic(/g' /usr/include/websocketpp/logger/basic.hpp
sudo sed -i 's/server<config>(/server(/g' /usr/include/websocketpp/roles/server_endpoint.hpp
- name: Download soh.o2r
uses: actions/download-artifact@v4
with:
name: soh.otr
name: soh.o2r
path: build-cmake/soh
- name: Build SoH
run: |
@@ -298,10 +320,10 @@ jobs:
path: vcpkg
- name: Configure Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Download soh.otr
- name: Download soh.o2r
uses: actions/download-artifact@v4
with:
name: soh.otr
name: soh.o2r
path: build-windows/soh
- name: Build SoH
env:
+1 -1
View File
@@ -1 +1 @@
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal libzip +universal nlohmann-json +universal tinyxml2 +universal
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal libzip +universal nlohmann-json +universal tinyxml2 +universal libogg +universal libopus +universal opusfile +universal libvorbis +universal openssl +universal websocketpp +universal
+1 -1
View File
@@ -48,7 +48,7 @@ jobs:
});
return allArtifacts.data.artifacts.reduce((acc, item) => {
if (item.name === "soh.otr") return acc;
if (item.name === "soh.o2r") return acc;
acc += `
- [${item.name}.zip](https://nightly.link/${context.repo.owner}/${context.repo.repo}/actions/artifacts/${item.id}.zip)`;
return acc;
+6 -6
View File
@@ -23,24 +23,24 @@ jobs:
if: ${{ matrix.image == 'archlinux:base' }}
run: |
echo arch
echo pacman -S ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
echo pacman -S ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
pacman -Syu --noconfirm
pacman -S --noconfirm ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
pacman -S --noconfirm ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
- name: Install dependencies (dnf)
if: ${{ matrix.image == 'fedora:39' }}
run: |
echo fedora
echo dnf install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel boost-devel
echo dnf install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel
dnf -y upgrade
dnf -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel boost-devel
dnf -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel
- name: Install dependencies (apt)
if: ${{ matrix.image == 'ubuntu:mantic' || matrix.image == 'debian:bookworm' }}
run: |
echo debian based
echo apt-get install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
echo apt-get install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
apt-get update
apt-get -y full-upgrade
apt-get -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
apt-get -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
- name: Install dependencies (zypper)
if: ${{ matrix.image == 'opensuse/tumbleweed:latest' }}
run: |
+3
View File
@@ -412,10 +412,12 @@ ReleaseObj/*
.tags
tags
*.otr
*.o2r
*.sav
shipofharkinian.ini
shipofharkinian.json
imgui.ini
timesplitdata.json
# Switch Stuff
@@ -456,3 +458,4 @@ soh/properties.h
# Tools
/clang-format
/clang-format.exe
*.o2r
+6
View File
@@ -7,3 +7,9 @@
[submodule "OTRExporter"]
path = OTRExporter
url = https://github.com/harbourmasters/OTRExporter
[submodule "subprojects/wswrap"]
path = subprojects/wswrap
url = https://github.com/black-sliver/wswrap.git
[submodule "subprojects/apclientpp"]
path = subprojects/apclientpp
url = https://github.com/black-sliver/apclientpp.git
+61
View File
@@ -0,0 +1,61 @@
# - Find ogg
# Find the native ogg includes and libraries
#
# OGG_INCLUDE_DIRS - where to find ogg.h, etc.
# OGG_LIBRARIES - List of libraries when using ogg.
# OGG_FOUND - True if ogg found.
if (OGG_INCLUDE_DIR)
# Already in cache, be silent
set(OGG_FIND_QUIETLY TRUE)
endif ()
find_package (PkgConfig QUIET)
pkg_check_modules (PC_OGG QUIET ogg>=1.3.0)
set (OGG_VERSION ${PC_OGG_VERSION})
find_path (OGG_INCLUDE_DIR ogg/ogg.h
HINTS
${PC_OGG_INCLUDEDIR}
${PC_OGG_INCLUDE_DIRS}
${OGG_ROOT}
)
# MSVC built ogg may be named ogg_static.
# The provided project files name the library with the lib prefix.
find_library (OGG_LIBRARY
NAMES
ogg
ogg_static
libogg
libogg_static
HINTS
${PC_OGG_LIBDIR}
${PC_OGG_LIBRARY_DIRS}
${OGG_ROOT}
)
# Handle the QUIETLY and REQUIRED arguments and set OGG_FOUND
# to TRUE if all listed variables are TRUE.
include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (Ogg
REQUIRED_VARS
OGG_LIBRARY
OGG_INCLUDE_DIR
VERSION_VAR
OGG_VERSION
)
if (OGG_FOUND)
set (OGG_LIBRARIES ${OGG_LIBRARY})
set (OGG_INCLUDE_DIRS ${OGG_INCLUDE_DIR})
if(NOT TARGET Ogg::ogg)
add_library(Ogg::ogg UNKNOWN IMPORTED)
set_target_properties(Ogg::ogg PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OGG_INCLUDE_DIRS}"
IMPORTED_LOCATION "${OGG_LIBRARIES}"
)
endif ()
endif ()
mark_as_advanced (OGG_INCLUDE_DIR OGG_LIBRARY)
+44
View File
@@ -0,0 +1,44 @@
# - FindOpus.cmake
# Find the native opus includes and libraries
#
# OPUS_INCLUDE_DIRS - where to find opus/opus.h, etc.
# OPUS_LIBRARIES - List of libraries when using libopus(file).
# OPUS_FOUND - True if libopus found.
if(OPUS_INCLUDE_DIR AND OPUS_LIBRARY AND OPUSFILE_LIBRARY)
# Already in cache, be silent
set(OPUS_FIND_QUIETLY TRUE)
endif(OPUS_INCLUDE_DIR AND OPUS_LIBRARY AND OPUSFILE_LIBRARY)
find_path(OPUS_INCLUDE_DIR
NAMES opusfile.h
PATH_SUFFIXES opus
)
# MSVC built opus may be named opus_static
# The provided project files name the library with the lib prefix.
find_library(OPUS_LIBRARY
NAMES opus opus_static libopus libopus_static
)
#find_library(OPUSFILE_LIBRARY
# NAMES opusfile opusfile_static libopusfile libopusfile_static
#)
# Handle the QUIETLY and REQUIRED arguments and set OPUS_FOUND
# to TRUE if all listed variables are TRUE.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Opus DEFAULT_MSG
OPUS_LIBRARY OPUS_INCLUDE_DIR
)
if(OPUS_FOUND)
set(OPUS_LIBRARIES ${OPUS_LIBRARY})
set(OPUS_INCLUDE_DIRS ${OPUS_INCLUDE_DIR})
if(NOT TARGET Opus::opus)
add_library(Opus::opus UNKNOWN IMPORTED)
set_target_properties(Opus::opus PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OPUS_INCLUDE_DIRS}"
IMPORTED_LOCATION "${OPUS_LIBRARIES}"
)
endif()
endif(OPUS_FOUND)
+63
View File
@@ -0,0 +1,63 @@
# FindOpusFile.cmake
# Locate the libopusfile library and its dependencies (libopus and libogg).
# Defines the following variables on success:
# OPUSFILE_FOUND - Indicates if opusfile was found
# OPUSFILE_INCLUDE_DIR - Directory containing opusfile.h
# OPUSFILE_LIBRARY - Path to the opusfile library
# OPUSFILE_LIBRARIES - Full list of libraries to link (opusfile, opus, ogg)
# Use pkg-config to find opusfile if available
find_package(PkgConf)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_OPUSFILE QUIET opusfile)
endif()
# Search for the OpusFile header
find_path(OPUSFILE_INCLUDE_DIR
NAMES opusfile.h
HINTS ${PC_OPUSFILE_INCLUDE_DIRS}
PATHS /usr/include/opus /usr/local/include/opus /opt/local/include/opus /opt/homebrew/include/opus
DOC "Directory where opusfile.h is located"
)
# Search for the OpusFile library
find_library(OPUSFILE_LIBRARY
NAMES opusfile
HINTS ${PC_OPUSFILE_LIBRARY_DIRS}
DOC "Path to the libopusfile library"
)
# Search for the Opus library (dependency of OpusFile)
find_library(OPUS_LIBRARY
NAMES opus
DOC "Path to the libopus library (dependency of libopusfile)"
)
# Search for the Ogg library (dependency of OpusFile)
find_library(OGG_LIBRARY
NAMES ogg
DOC "Path to the libogg library (dependency of libopusfile)"
)
# Check if all required components are found
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OpusFile
REQUIRED_VARS OPUSFILE_LIBRARY OPUSFILE_INCLUDE_DIR OPUS_LIBRARY OGG_LIBRARY
VERSION_VAR OPUSFILE_VERSION
)
# Define an imported target if everything is found
if (OPUSFILE_FOUND)
add_library(Opusfile::Opusfile INTERFACE IMPORTED)
set_target_properties(Opusfile::Opusfile PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OPUSFILE_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "${OPUSFILE_LIBRARY};${OPUS_LIBRARY};${OGG_LIBRARY}"
)
# Optionally expose the include and libraries separately
set(OPUSFILE_LIBRARIES ${OPUSFILE_LIBRARY} ${OPUS_LIBRARY} ${OGG_LIBRARY})
set(OPUSFILE_INCLUDE_DIRS ${OPUSFILE_INCLUDE_DIR})
else()
set(OPUSFILE_FOUND FALSE)
endif()
+210
View File
@@ -0,0 +1,210 @@
#[=======================================================================[.rst:
FindVorbis
----------
Finds the native vorbis, vorbisenc amd vorbisfile includes and libraries.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``Vorbis::vorbis``
The Vorbis library
``Vorbis::vorbisenc``
The VorbisEnc library
``Vorbis::vorbisfile``
The VorbisFile library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``Vorbis_Vorbis_INCLUDE_DIRS``
List of include directories when using vorbis.
``Vorbis_Enc_INCLUDE_DIRS``
List of include directories when using vorbisenc.
``Vorbis_File_INCLUDE_DIRS``
List of include directories when using vorbisfile.
``Vorbis_Vorbis_LIBRARIES``
List of libraries when using vorbis.
``Vorbis_Enc_LIBRARIES``
List of libraries when using vorbisenc.
``Vorbis_File_LIBRARIES``
List of libraries when using vorbisfile.
``Vorbis_FOUND``
True if vorbis and requested components found.
``Vorbis_Vorbis_FOUND``
True if vorbis found.
``Vorbis_Enc_FOUND``
True if vorbisenc found.
``Vorbis_Enc_FOUND``
True if vorbisfile found.
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``Vorbis_Vorbis_INCLUDE_DIR``
The directory containing ``vorbis/vorbis.h``.
``Vorbis_Enc_INCLUDE_DIR``
The directory containing ``vorbis/vorbisenc.h``.
``Vorbis_File_INCLUDE_DIR``
The directory containing ``vorbis/vorbisenc.h``.
``Vorbis_Vorbis_LIBRARY``
The path to the vorbis library.
``Vorbis_Enc_LIBRARY``
The path to the vorbisenc library.
``Vorbis_File_LIBRARY``
The path to the vorbisfile library.
Hints
^^^^^
A user may set ``Vorbis_ROOT`` to a vorbis installation root to tell this module where to look.
#]=======================================================================]
if (Vorbis_Vorbis_INCLUDE_DIR)
# Already in cache, be silent
set (Vorbis_FIND_QUIETLY TRUE)
endif ()
set (Vorbis_Vorbis_FIND_QUIETLY TRUE)
set (Vorbis_Enc_FIND_QUIETLY TRUE)
set (Vorbis_File_FIND_QUIETLY TRUE)
find_package (Ogg QUIET)
find_package (PkgConfig QUIET)
pkg_check_modules (PC_Vorbis_Vorbis QUIET vorbis)
pkg_check_modules (PC_Vorbis_Enc QUIET vorbisenc)
pkg_check_modules (PC_Vorbis_File QUIET vorbisfile)
set (Vorbis_VERSION ${PC_Vorbis_Vorbis_VERSION})
find_path (Vorbis_Vorbis_INCLUDE_DIR vorbis/codec.h
HINTS
${PC_Vorbis_Vorbis_INCLUDEDIR}
${PC_Vorbis_Vorbis_INCLUDE_DIRS}
${Vorbis_ROOT}
)
find_path (Vorbis_Enc_INCLUDE_DIR vorbis/vorbisenc.h
HINTS
${PC_Vorbis_Enc_INCLUDEDIR}
${PC_Vorbis_Enc_INCLUDE_DIRS}
${Vorbis_ROOT}
)
find_path (Vorbis_File_INCLUDE_DIR vorbis/vorbisfile.h
HINTS
${PC_Vorbis_File_INCLUDEDIR}
${PC_Vorbis_File_INCLUDE_DIRS}
${Vorbis_ROOT}
)
find_library (Vorbis_Vorbis_LIBRARY
NAMES
vorbis
vorbis_static
libvorbis
libvorbis_static
HINTS
${PC_Vorbis_Vorbis_LIBDIR}
${PC_Vorbis_Vorbis_LIBRARY_DIRS}
${Vorbis_ROOT}
)
find_library (Vorbis_Enc_LIBRARY
NAMES
vorbisenc
vorbisenc_static
libvorbisenc
libvorbisenc_static
HINTS
${PC_Vorbis_Enc_LIBDIR}
${PC_Vorbis_Enc_LIBRARY_DIRS}
${Vorbis_ROOT}
)
find_library (Vorbis_File_LIBRARY
NAMES
vorbisfile
vorbisfile_static
libvorbisfile
libvorbisfile_static
HINTS
${PC_Vorbis_File_LIBDIR}
${PC_Vorbis_File_LIBRARY_DIRS}
${Vorbis_ROOT}
)
include (FindPackageHandleStandardArgs)
if (Vorbis_Vorbis_LIBRARY AND Vorbis_Vorbis_INCLUDE_DIR AND Ogg_FOUND)
set (Vorbis_Vorbis_FOUND TRUE)
endif ()
if (Vorbis_Enc_LIBRARY AND Vorbis_Enc_INCLUDE_DIR AND Vorbis_Vorbis_FOUND)
set (Vorbis_Enc_FOUND TRUE)
endif ()
if (Vorbis_Vorbis_FOUND AND Vorbis_File_LIBRARY AND Vorbis_File_INCLUDE_DIR)
set (Vorbis_File_FOUND TRUE)
endif ()
find_package_handle_standard_args (Vorbis
REQUIRED_VARS
Vorbis_Vorbis_LIBRARY
Vorbis_Vorbis_INCLUDE_DIR
Ogg_FOUND
HANDLE_COMPONENTS
VERSION_VAR Vorbis_VERSION)
if (Vorbis_Vorbis_FOUND)
set (Vorbis_Vorbis_INCLUDE_DIRS ${VORBIS_INCLUDE_DIR})
set (Vorbis_Vorbis_LIBRARIES ${VORBIS_LIBRARY} ${OGG_LIBRARIES})
if (NOT TARGET Vorbis::vorbis)
add_library (Vorbis::vorbis UNKNOWN IMPORTED)
set_target_properties (Vorbis::vorbis PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Vorbis_INCLUDE_DIR}"
IMPORTED_LOCATION "${Vorbis_Vorbis_LIBRARY}"
INTERFACE_LINK_LIBRARIES Ogg::ogg
)
endif ()
if (Vorbis_Enc_FOUND)
set (Vorbis_Enc_INCLUDE_DIRS ${Vorbis_Enc_INCLUDE_DIR})
set (Vorbis_Enc_LIBRARIES ${Vorbis_Enc_LIBRARY} ${Vorbis_Enc_LIBRARIES})
if (NOT TARGET Vorbis::vorbisenc)
add_library (Vorbis::vorbisenc UNKNOWN IMPORTED)
set_target_properties (Vorbis::vorbisenc PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Enc_INCLUDE_DIR}"
IMPORTED_LOCATION "${Vorbis_Enc_LIBRARY}"
INTERFACE_LINK_LIBRARIES Vorbis::vorbis
)
endif ()
endif ()
if (Vorbis_File_FOUND)
set (Vorbis_File_INCLUDE_DIRS ${Vorbis_File_INCLUDE_DIR})
set (Vorbis_File_LIBRARIES ${Vorbis_File_LIBRARY} ${Vorbis_File_LIBRARIES})
if (NOT TARGET Vorbis::vorbisfile)
add_library (Vorbis::vorbisfile UNKNOWN IMPORTED)
set_target_properties (Vorbis::vorbisfile PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_File_INCLUDE_DIR}"
IMPORTED_LOCATION "${Vorbis_File_LIBRARY}"
INTERFACE_LINK_LIBRARIES Vorbis::vorbis
)
endif ()
endif ()
endif ()
mark_as_advanced (Vorbis_Vorbis_INCLUDE_DIR Vorbis_Vorbis_LIBRARY)
mark_as_advanced (Vorbis_Enc_INCLUDE_DIR Vorbis_Enc_LIBRARY)
mark_as_advanced (Vorbis_File_INCLUDE_DIR Vorbis_File_LIBRARY)
-2
View File
@@ -1,7 +1,5 @@
set(CVAR_VSYNC_ENABLED "${CVAR_PREFIX_SETTING}.VsyncEnabled" CACHE STRING "")
set(CVAR_Z_FIGHTING_MODE "${CVAR_PREFIX_SETTING}.ZFightingMode" CACHE STRING "")
set(CVAR_NEW_FILE_DROPPED "${CVAR_PREFIX_GENERAL}.NewFileDropped" CACHE STRING "")
set(CVAR_DROPPED_FILE "${CVAR_PREFIX_GENERAL}.DroppedFile" CACHE STRING "")
set(CVAR_INTERNAL_RESOLUTION "${CVAR_PREFIX_SETTING}.InternalResolution" CACHE STRING "")
set(CVAR_MSAA_VALUE "${CVAR_PREFIX_SETTING}.MSAAValue" CACHE STRING "")
set(CVAR_SDL_WINDOWED_FULLSCREEN "${CVAR_PREFIX_SETTING}.SdlWindowedFullscreen" CACHE STRING "")
+33 -44
View File
@@ -2,12 +2,16 @@ cmake_minimum_required(VERSION 3.26.0 FATAL_ERROR)
set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
set(CMAKE_C_STANDARD 23 CACHE STRING "The C standard to use")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
project(Ship VERSION 9.0.0 LANGUAGES C CXX)
project(Ship VERSION 9.1.1 LANGUAGES C CXX)
include(CMake/soh-cvars.cmake)
include(CMake/lus-cvars.cmake)
set(SPDLOG_LEVEL_TRACE 0)
set(SPDLOG_LEVEL_OFF 6)
set(SPDLOG_MIN_CUTOFF SPDLOG_LEVEL_TRACE CACHE STRING "cutoff at trace")
option(SUPPRESS_WARNINGS "Suppress warnings in LUS and src (decomp)" ON)
if(SUPPRESS_WARNINGS)
@@ -34,7 +38,7 @@ math(EXPR PATCH_INDEX "${PROJECT_VERSION_PATCH}")
# Use the patch number to select the correct word
list(GET NATO_PHONETIC_ALPHABET ${PATCH_INDEX} PROJECT_PATCH_WORD)
set(PROJECT_BUILD_NAME "Blair ${PROJECT_PATCH_WORD}" CACHE STRING "" FORCE)
set(PROJECT_BUILD_NAME "Reindeer Games 2025" CACHE STRING "" FORCE)
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE)
execute_process(
@@ -82,8 +86,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(VCPKG_TARGET_TRIPLET x64-windows-static)
vcpkg_bootstrap()
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2 spdlog)
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2 spdlog libogg libvorbis opus opusfile openssl valijson)
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
endif()
@@ -153,6 +156,10 @@ set(GFX_DEBUG_DISASSEMBLER ON)
# Tell LUS we're using F3DEX_GBI_2 (in a way that doesn't break libgfxd)
set(GBI_UCODE F3DEX_GBI_2)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
# Enable MPQ and OTR support
set(INCLUDE_MPQ_SUPPORT ON)
################################################################################
# Set CONTROLLERBUTTONS_T
@@ -164,6 +171,7 @@ add_compile_definitions(CONTROLLERBUTTONS_T=uint32_t)
################################################################################
add_subdirectory(libultraship ${CMAKE_BINARY_DIR}/libultraship)
target_compile_options(libultraship PRIVATE "${WARNING_OVERRIDE}")
target_compile_definitions(libultraship PUBLIC INCLUDE_MPQ_SUPPORT)
add_subdirectory(ZAPDTR/ZAPD ${CMAKE_BINARY_DIR}/ZAPD)
add_subdirectory(OTRExporter)
add_subdirectory(soh)
@@ -173,24 +181,15 @@ set_property(TARGET soh PROPERTY APPIMAGE_DESKTOP_FILE "${CMAKE_SOURCE_DIR}/scri
set_property(TARGET soh PROPERTY APPIMAGE_ICON_FILE "${CMAKE_BINARY_DIR}/sohIcon.png")
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
install(PROGRAMS "${CMAKE_BINARY_DIR}/linux/soh.sh" DESTINATION . COMPONENT appimage)
install(FILES "${CMAKE_BINARY_DIR}/soh/soh.otr" DESTINATION . COMPONENT ship)
install(FILES "${CMAKE_BINARY_DIR}/soh/soh.o2r" DESTINATION . COMPONENT ship)
install(TARGETS ZAPD DESTINATION ./assets/extractor COMPONENT extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/extractor COMPONENT extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/extractor/xmls COMPONENT extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists/" DESTINATION ./assets/extractor/filelists COMPONENT extractor)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT extractor)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT extractor)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets COMPONENT extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/xml COMPONENT extractor)
endif()
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/extractor COMPONENT ship)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/extractor/xmls COMPONENT ship)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists/" DESTINATION ./assets/extractor/filelists COMPONENT ship)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT ship)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT ship)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT ship)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/ COMPONENT ship)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/xml COMPONENT ship)
endif()
find_package(Python3 COMPONENTS Interpreter)
@@ -198,42 +197,42 @@ find_package(Python3 COMPONENTS Interpreter)
# Target to generate OTRs
add_custom_target(
ExtractAssets
COMMAND ${CMAKE_COMMAND} -E rm -f oot.otr oot-mq.otr soh.otr
COMMAND ${CMAKE_COMMAND} -E rm -f oot.o2r oot-mq.o2r soh.o2r
# copy LUS default shaders into assets/custom
COMMAND ${CMAKE_COMMAND} -E rm -r -f ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic/Fast3D/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/fast/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root ../soh/assets/xml --custom-otr-file soh.otr "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root assets/xml --custom-otr-file soh.o2r "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
COMMAND ${CMAKE_COMMAND} -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DTARGET_DIR="$<TARGET_FILE_DIR:ZAPD>" -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/soh
COMMENT "Running asset extraction..."
DEPENDS ZAPD
BYPRODUCTS oot.otr ${CMAKE_SOURCE_DIR}/oot.otr oot-mq.otr ${CMAKE_SOURCE_DIR}/oot-mq.otr ${CMAKE_SOURCE_DIR}/soh.otr
BYPRODUCTS oot.o2r ${CMAKE_SOURCE_DIR}/oot.o2r oot-mq.o2r ${CMAKE_SOURCE_DIR}/oot-mq.o2r ${CMAKE_SOURCE_DIR}/soh.o2r
)
# Target to generate headers
add_custom_target(
ExtractAssetHeaders
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root ../soh/assets/xml --gen-headers
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root assets/xml --gen-headers
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/soh
COMMENT "Generating asset headers..."
DEPENDS ZAPD
)
# Target to generate only soh.otr
# Target to generate only soh.o2r
add_custom_target(
GenerateSohOtr
COMMAND ${CMAKE_COMMAND} -E rm -f soh.otr
COMMAND ${CMAKE_COMMAND} -E rm -f soh.o2r
# copy LUS default shaders into assets/custom
COMMAND ${CMAKE_COMMAND} -E rm -r -f ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic/Fast3D/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/fast/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --norom --custom-otr-file soh.otr "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --norom --custom-otr-file soh.o2r "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
COMMAND ${CMAKE_COMMAND} -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DTARGET_DIR="$<TARGET_FILE_DIR:ZAPD>" -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -DONLYSOHOTR=On -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
COMMENT "Generating soh.otr..."
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/soh
COMMENT "Generating soh.o2r..."
DEPENDS ZAPD
)
@@ -266,22 +265,12 @@ add_custom_target(CreateOSXIcons
)
add_dependencies(soh CreateOSXIcons)
install(TARGETS ZAPD DESTINATION ${CMAKE_BINARY_DIR}/assets/extractor)
install(TARGETS ZAPD DESTINATION ${CMAKE_BINARY_DIR}/assets)
set(PROGRAM_PERMISSIONS_EXECUTE OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/extractor/xmls)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists/" DESTINATION ./assets/extractor/filelists)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols)
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols)
install(DIRECTORY ${CMAKE_BINARY_DIR}/assets
DESTINATION .
PATTERN ZAPD.out
PERMISSIONS ${PROGRAM_PERMISSIONS_EXECUTE}
)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/xml)
# Rename the installed soh binary to drop the macos suffix
INSTALL(CODE "FILE(RENAME \${CMAKE_INSTALL_PREFIX}/../MacOS/soh-macos \${CMAKE_INSTALL_PREFIX}/../MacOS/soh)")
+2 -1
View File
@@ -61,7 +61,8 @@ Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
### Other shortcuts
| Keys | Action |
| - | - |
| F1 | Toggle menubar |
| ESC | Toggle menu |
| F2 | Toggle capture mouse input |
| F5 | Save state |
| F6 | Change state |
| F7 | Load state |
+38
View File
@@ -0,0 +1,38 @@
# Game Design Document
The gist of this idea is you play through the game similar to a randomizer, fulfilling the objectives to reach and beat Ganon, but instead of getting items from checks, they are granted with a leveling/reward system. Among other things like buffs and debuffs.
## Starting out UX
When beginning a game, you will have multiple randomly rolled selections to make, including a starting location, starting item, starting song
## Gameplay
As you progress through the game, you will be rewarded XP for doing various actions throughout the world. When you have enough XP you will level up and you will be presented with a selection of buffs, items, or other rewards to choose from to enhance your character for the rest of the run. Actions include interacting with things, breaking things, killing enemies, talking with NPCs and completing their quests, etc.
TODO:
- Health upgrades not implemented
- Defense doesn't do anything yet (maybe damage mitigation?)
- Speed doesn't do anything yet (will effect movement speed of bunny hood)
- Quests system in early stages, only two quests currently
- Don't have a global enemy spawning mechanism yet, just relying on existing enemy spawn points
- Not all checks have been replaced with XP rewards yet
- Not sure what to do about ammo yet
- Not sure what to do about shops yet
- Weighted list of XP amounts to grant for every check and enemy. For instance you shouldn't get that much XP for opening chests in Mido's house, but doing frog song minigame is huge etc
## Difficulty Scaling
The main thing that will scale is enemy health & damage to link. Difficulty increases in levels, it will increase each time you kill a major boss, and there will also be a timer that eventually increases your difficulty based on time spent not gaining any experience.
TODO:
- Damage to link scaling not implemented yet
- Defeating bosses to increase difficulty not implemented yet
- Hyper enemies / enemy size scaling could play into this?
## Permanent progression
As you continue playing, the idea is you would very slowly gain a currency to grant you very small bonuses that will benefit you in every following run. Starting health is an example of a potential purchase-able thing, or starting with ocarina or bunny hood. It's likely that this currency would be earned from killing bosses and completing quests
TODO:
- Permanent progression system not implemented yet
## Ideas:
- Lock the player in certain areas to spawn specified waves of enemies before the player can proceed? i.e Hyrule Field or places without a Clear Room
- Utilize the trick from MM to hide/unhide Inventory Items based on what is earned?
- Ammo could have a timed regen based on upgrades? For instance you can only hold 1 stick, and if you break it, it regens after 5 minutes, unless you get an upgrade to hold 2 sticks, then it regens after 4 minutes, etc
+1 -1
Submodule ZAPDTR updated: 2aeababbfb...684f21a475
+20 -20
View File
@@ -1,37 +1,37 @@
message(STATUS "Copying otr files...")
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot.otr)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${SOURCE_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${BINARY_DIR}/soh/)
message(STATUS "Copied oot.otr")
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot.o2r)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.o2r ${SOURCE_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.o2r ${BINARY_DIR}/soh/)
message(STATUS "Copied oot.o2r")
endif()
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot-mq.otr)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${SOURCE_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${BINARY_DIR}/soh/)
message(STATUS "Copied oot-mq.otr")
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot-mq.o2r)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.o2r ${SOURCE_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.o2r ${BINARY_DIR}/soh/)
message(STATUS "Copied oot-mq.o2r")
endif()
if(EXISTS ${SOURCE_DIR}/OTRExporter/soh.otr)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${SOURCE_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${BINARY_DIR}/soh/)
message(STATUS "Copied soh.otr")
if(EXISTS ${SOURCE_DIR}/soh/soh.o2r)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.o2r ${SOURCE_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.o2r ${BINARY_DIR}/soh/)
message(STATUS "Copied soh.o2r")
endif()
# Additionally for Windows, copy the otrs to the target dir, side by side with soh.exe
if(SYSTEM_NAME MATCHES "Windows")
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot.otr)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${TARGET_DIR})
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot.o2r)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.o2r ${TARGET_DIR})
endif()
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot-mq.otr)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${TARGET_DIR})
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot-mq.o2r)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.o2r ${TARGET_DIR})
endif()
if(EXISTS ${SOURCE_DIR}/OTRExporter/soh.otr)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${TARGET_DIR})
if(EXISTS ${SOURCE_DIR}/soh/soh.o2r)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.o2r ${TARGET_DIR})
endif()
endif()
if(NOT ONLYSOHOTR AND (NOT EXISTS ${SOURCE_DIR}/oot.otr AND NOT EXISTS ${SOURCE_DIR}/oot-mq.otr))
if(NOT ONLYSOHOTR AND (NOT EXISTS ${SOURCE_DIR}/oot.o2r AND NOT EXISTS ${SOURCE_DIR}/oot-mq.o2r))
message(FATAL_ERROR "Failed to copy. No OTR files found.")
endif()
if(NOT EXISTS ${SOURCE_DIR}/soh.otr)
if(NOT EXISTS ${SOURCE_DIR}/soh.o2r)
message(FATAL_ERROR "Failed to copy. No soh OTR found.")
endif()
+75 -9
View File
@@ -90,26 +90,26 @@ C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target ExtractAssetHe
#### Debian/Ubuntu
```sh
# using gcc
apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
# or using clang
apt-get install clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
apt-get install clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
```
#### Arch
```sh
# using gcc
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
# or using clang
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
```
#### Fedora
```sh
# using gcc
dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel
dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel
# or using clang
dnf install clang git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel
dnf install clang git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel
```
#### openSUSE
```sh
@@ -119,6 +119,72 @@ zypper in gcc gcc-c++ git cmake ninja SDL2-devel libpng16-devel libzip-devel lib
# or using clang
zypper in clang libstdc++-devel git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
```
#### Nix
You can use a `flake.nix` file to instantly setup a development environment using [Nix](https://nixos.org/). Write this `flake.nix` file in the root directory:
```nix
{
description = "Shipwright development environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
# Build tools
clang
git
cmake
ninja
lsb-release
pkg-config
# SDL2 libraries
SDL2
SDL2.dev
SDL2_net
# Other libraries
libpng
libzip
nlohmann_json
tinyxml-2
spdlog
libGL
libGL.dev
bzip2
# X11 libraries
xorg.libX11
# Audio libraries
libogg
libogg.dev
libvorbis
libvorbis.dev
libopus
libopus.dev
opusfile
opusfile.dev
];
shellHook = ''
echo "Shipwright development environment loaded"
echo "Available tools: clang, git, cmake, ninja"
'';
};
});
}
```
Now type `nix develop` and you will be dropped into a shell with all dependencies, ensuring that all build commands work.
### Build
@@ -231,7 +297,7 @@ cmake --build build-cmake --target ExtractAssetHeaders
## Switch
1. Requires that your build machine is setup with the tools necessary for your platform above
2. Requires that you have the switch build tools installed
2. Requires that you have the switch build tools installed
3. Clone the Ship of Harkinian repository
4. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
@@ -252,7 +318,7 @@ cmake --build build-switch --target soh_nro
## Wii U
1. Requires that your build machine is setup with the tools necessary for your platform above
2. Requires that you have the Wii U build tools installed
2. Requires that you have the Wii U build tools installed
3. Clone the Ship of Harkinian repository
4. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
@@ -265,7 +331,7 @@ cmake --build build-cmake --target ExtractAssets
# Setup cmake project for building for Wii U
cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging)
# Build project and generate rpx
cmake --build build-wiiu --target soh # --target soh_wuhb (for building .wuhb)
cmake --build build-wiiu --target soh # --target soh_wuhb (for building .wuhb)
# Now you can run the executable in ./build-wiiu/soh/soh.rpx or the Wii U Homebrew Bundle in ./build-wiiu/soh/soh.wuhb
# To develop the project open the repository in VSCode (or your preferred editor)
+30 -30
View File
@@ -1,38 +1,38 @@
# SDL GameControllerDB
The Ship of Harkinian utilizes a text file with SDL controller mappings for extended controller hardware support.
This file is pulled from https://github.com/gabomdq/SDL_GameControllerDB during the build process as [a part of CMakeLists.txt](https://github.com/HarbourMasters/Shipwright/blob/bb643661f62865dfc757c185d0daaebb32f2d53d/soh/CMakeLists.txt#L760).
This file is pulled from https://github.com/mdqinc/SDL_GameControllerDB during the build process as [a part of CMakeLists.txt](https://github.com/HarbourMasters/Shipwright/blob/bb643661f62865dfc757c185d0daaebb32f2d53d/soh/CMakeLists.txt#L760).
## Released versions
| Release | sha | diff |
| - | - | - |
| Zhora Alfa 4.0.0 | [967daa8](https://github.com/gabomdq/SDL_GameControllerDB/tree/967daa8f89c48b01ed0f9c6a86ac849930442fc6) | |
| Zhora Bravo 4.0.1 | [ccac7cd](https://github.com/gabomdq/SDL_GameControllerDB/tree/ccac7cd97f445955d4437e21c5f82123d9b4349b) | [+1](https://github.com/gabomdq/SDL_GameControllerDB/compare/967daa8...ccac7cd) |
| Zhora Charlie 4.0.2 | [ff26eb0](https://github.com/gabomdq/SDL_GameControllerDB/tree/ff26eb04d0fe18356985d968119429d6012e7d75) | [+8/-3](https://github.com/gabomdq/SDL_GameControllerDB/compare/ccac7cd...ff26eb0) |
| Zhora Delta 4.0.3 | [ad02da5](https://github.com/gabomdq/SDL_GameControllerDB/tree/ad02da5a95ca8005f2c1facc11a5a52f8522f0ee) | [+4/-5](https://github.com/gabomdq/SDL_GameControllerDB/compare/ff26eb0...ad02da5) |
| Zohra Echo 4.0.4 | [c203690](https://github.com/gabomdq/SDL_GameControllerDB/tree/c203690b1e13980699802918d362cd9dadf89bd0) | [+8/-4](https://github.com/gabomdq/SDL_GameControllerDB/compare/ad02da5...c203690) |
| Zhora Foxtrot 4.0.5 | [9db8101](https://github.com/gabomdq/SDL_GameControllerDB/tree/9db8101a5780d1b0721bf6de385e6ffe0d07dfc7) | [+6](https://github.com/gabomdq/SDL_GameControllerDB/compare/c203690...9db8101) |
| Flynn Alfa 5.0.0 | [163cc5d](https://github.com/gabomdq/SDL_GameControllerDB/tree/163cc5d45e9fc2f1bb2b95ea7eee4bbc9a57955c) | [+29/-8](https://github.com/gabomdq/SDL_GameControllerDB/compare/9db8101...163cc5d) |
| Flynn Bravo 5.0.1 | [7efce7d](https://github.com/gabomdq/SDL_GameControllerDB/tree/7efce7d3f309ec1fa409b1af09153f9eb77fbedf) | [-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/163cc5d...7efce7d) |
| Flynn Charlie 5.0.2 | [e607703](https://github.com/gabomdq/SDL_GameControllerDB/tree/e607703392145343e8aca42be052121c0b7bd1c9) | [+40/-17](https://github.com/gabomdq/SDL_GameControllerDB/compare/7efce7d...e607703) |
| Bradley Alfa 5.1.0 | [2ba9676](https://github.com/gabomdq/SDL_GameControllerDB/tree/2ba96761af795c15e916cc97790b51e09dc0cd54) | [+1/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/e607703...2ba9676) |
| Bradley Charlie 5.1.2 | [4f5d1d4](https://github.com/gabomdq/SDL_GameControllerDB/tree/4f5d1d497985b75f4a83a5de46f596dc4d7f002e) | [+5/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/2ba9676...4f5d1d4) |
| Bradley Delta 5.1.3 | [9b73049](https://github.com/gabomdq/SDL_GameControllerDB/tree/9b73049ee62a2cc862d6ad94c2c777f2e8363a48) | [+4/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/4f5d1d4...9b73049) |
| Bradley Echo 5.1.4 | [6d3801f](https://github.com/gabomdq/SDL_GameControllerDB/tree/6d3801fcfe74b1989de96403b7b560eba72a175c) | [+56/-21](https://github.com/gabomdq/SDL_GameControllerDB/compare/9b73049...6d3801f) |
| Gibbs Alfa 6.0.0 | [0562b00](https://github.com/gabomdq/SDL_GameControllerDB/tree/0562b00eaf5c0308c49d329b79263d2dae1c3a85) | [+8/-2](https://github.com/gabomdq/SDL_GameControllerDB/compare/6d3801f...0562b00) |
| Khan Alfa 6.1.0 | [436c7e3](https://github.com/gabomdq/SDL_GameControllerDB/tree/436c7e3d54a57189ea0ab44d05f36b7cc7ea496c) | [+31/-16](https://github.com/gabomdq/SDL_GameControllerDB/compare/0562b00...436c7e3) |
| Khan Bravo 6.1.1 | [01cca2e](https://github.com/gabomdq/SDL_GameControllerDB/tree/01cca2e77f9bf9f1432be04f876f287eb78297fe) | [+23/-6](https://github.com/gabomdq/SDL_GameControllerDB/compare/436c7e3...01cca2e) |
| Khan Charlie 6.1.2 | [6852946](https://github.com/gabomdq/SDL_GameControllerDB/tree/6852946487534c69b7d228fd4eb8c87cf6966475) | [+25/-15](https://github.com/gabomdq/SDL_GameControllerDB/compare/01cca2e...6852946) |
| Spock Alfa 7.0.0 | [38bda81](https://github.com/gabomdq/SDL_GameControllerDB/tree/38bda816dc786f18493876f7bc30bc12dfd2636a) | [+15/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/6852946...38bda81) |
| Spock Bravo 7.0.1 | [228d980](https://github.com/gabomdq/SDL_GameControllerDB/tree/228d980d3d791e9df3b096472f6b97459f8709fe) | [+7/-3](https://github.com/gabomdq/SDL_GameControllerDB/compare/38bda81...228d980) |
| Spock Charlie 7.0.2 | [c5b4df0](https://github.com/gabomdq/SDL_GameControllerDB/tree/c5b4df0e1061175cb11e3ebbf8045178339864a5) | [+3](https://github.com/gabomdq/SDL_GameControllerDB/compare/228d980...c5b4df0) |
| Sulu Alfa 7.1.0 | [a2cf171](https://github.com/gabomdq/SDL_GameControllerDB/tree/a2cf1711b4ebc646a3814705d2fb6aac5707bcae) | [+4/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/c5b4df0...a2cf171) |
| Sulu Bravo 7.1.1 | [cc9f777](https://github.com/gabomdq/SDL_GameControllerDB/tree/cc9f777721f0cb30058d9eef52a295130b734a4a) | [+29/-9](https://github.com/gabomdq/SDL_GameControllerDB/compare/a2cf171...cc9f777) |
| MacReady Alfa 8.0.0 | [c56329f](https://github.com/gabomdq/SDL_GameControllerDB/tree/c56329f4df93fc7a780bdbeae47a9c91447b629c) | [+67/-23](https://github.com/gabomdq/SDL_GameControllerDB/compare/cc9f777...c56329f) |
| MacReady Bravo 8.0.1 | [721b575](https://github.com/gabomdq/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+5/-5](https://github.com/gabomdq/SDL_GameControllerDB/compare/c56329f...721b575) |
| MacReady Charlie 8.0.2 | [721b575](https://github.com/gabomdq/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+0/-0](https://github.com/gabomdq/SDL_GameControllerDB/compare/721b575...721b575) |
| MacReady Delta 8.0.3 | [d4ab609](https://github.com/gabomdq/SDL_GameControllerDB/tree/d4ab609121ee6e687bc3d3a7e80244b3b26d1164) | [+5/-3](https://github.com/gabomdq/SDL_GameControllerDB/compare/721b575...d4ab609) |
| MacReady Echo 8.0.4 | [6555d47](https://github.com/gabomdq/SDL_GameControllerDB/tree/6555d47ecb5d9eebac0e3d8cd19a545e9d946c40) | [+2/-0](https://github.com/gabomdq/SDL_GameControllerDB/compare/d4ab609...6555d47) |
| MacReady Foxtrot 8.0.5 | [037d6a1](https://github.com/gabomdq/SDL_GameControllerDB/tree/037d6a1533ed94fbc6a8c71e6f1f9aff1e46208a) | [+47/-14](https://github.com/gabomdq/SDL_GameControllerDB/compare/6555d47...037d6a1) |
| MacReady Golf 8.0.6 | [075c154](https://github.com/gabomdq/SDL_GameControllerDB/tree/075c1549075ef89a397fd7e0663d21e53a2485fd) | [+340/-301](https://github.com/gabomdq/SDL_GameControllerDB/compare/037d6a1...075c154) |
| Zhora Alfa 4.0.0 | [967daa8](https://github.com/mdqinc/SDL_GameControllerDB/tree/967daa8f89c48b01ed0f9c6a86ac849930442fc6) | |
| Zhora Bravo 4.0.1 | [ccac7cd](https://github.com/mdqinc/SDL_GameControllerDB/tree/ccac7cd97f445955d4437e21c5f82123d9b4349b) | [+1](https://github.com/mdqinc/SDL_GameControllerDB/compare/967daa8...ccac7cd) |
| Zhora Charlie 4.0.2 | [ff26eb0](https://github.com/mdqinc/SDL_GameControllerDB/tree/ff26eb04d0fe18356985d968119429d6012e7d75) | [+8/-3](https://github.com/mdqinc/SDL_GameControllerDB/compare/ccac7cd...ff26eb0) |
| Zhora Delta 4.0.3 | [ad02da5](https://github.com/mdqinc/SDL_GameControllerDB/tree/ad02da5a95ca8005f2c1facc11a5a52f8522f0ee) | [+4/-5](https://github.com/mdqinc/SDL_GameControllerDB/compare/ff26eb0...ad02da5) |
| Zohra Echo 4.0.4 | [c203690](https://github.com/mdqinc/SDL_GameControllerDB/tree/c203690b1e13980699802918d362cd9dadf89bd0) | [+8/-4](https://github.com/mdqinc/SDL_GameControllerDB/compare/ad02da5...c203690) |
| Zhora Foxtrot 4.0.5 | [9db8101](https://github.com/mdqinc/SDL_GameControllerDB/tree/9db8101a5780d1b0721bf6de385e6ffe0d07dfc7) | [+6](https://github.com/mdqinc/SDL_GameControllerDB/compare/c203690...9db8101) |
| Flynn Alfa 5.0.0 | [163cc5d](https://github.com/mdqinc/SDL_GameControllerDB/tree/163cc5d45e9fc2f1bb2b95ea7eee4bbc9a57955c) | [+29/-8](https://github.com/mdqinc/SDL_GameControllerDB/compare/9db8101...163cc5d) |
| Flynn Bravo 5.0.1 | [7efce7d](https://github.com/mdqinc/SDL_GameControllerDB/tree/7efce7d3f309ec1fa409b1af09153f9eb77fbedf) | [-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/163cc5d...7efce7d) |
| Flynn Charlie 5.0.2 | [e607703](https://github.com/mdqinc/SDL_GameControllerDB/tree/e607703392145343e8aca42be052121c0b7bd1c9) | [+40/-17](https://github.com/mdqinc/SDL_GameControllerDB/compare/7efce7d...e607703) |
| Bradley Alfa 5.1.0 | [2ba9676](https://github.com/mdqinc/SDL_GameControllerDB/tree/2ba96761af795c15e916cc97790b51e09dc0cd54) | [+1/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/e607703...2ba9676) |
| Bradley Charlie 5.1.2 | [4f5d1d4](https://github.com/mdqinc/SDL_GameControllerDB/tree/4f5d1d497985b75f4a83a5de46f596dc4d7f002e) | [+5/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/2ba9676...4f5d1d4) |
| Bradley Delta 5.1.3 | [9b73049](https://github.com/mdqinc/SDL_GameControllerDB/tree/9b73049ee62a2cc862d6ad94c2c777f2e8363a48) | [+4/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/4f5d1d4...9b73049) |
| Bradley Echo 5.1.4 | [6d3801f](https://github.com/mdqinc/SDL_GameControllerDB/tree/6d3801fcfe74b1989de96403b7b560eba72a175c) | [+56/-21](https://github.com/mdqinc/SDL_GameControllerDB/compare/9b73049...6d3801f) |
| Gibbs Alfa 6.0.0 | [0562b00](https://github.com/mdqinc/SDL_GameControllerDB/tree/0562b00eaf5c0308c49d329b79263d2dae1c3a85) | [+8/-2](https://github.com/mdqinc/SDL_GameControllerDB/compare/6d3801f...0562b00) |
| Khan Alfa 6.1.0 | [436c7e3](https://github.com/mdqinc/SDL_GameControllerDB/tree/436c7e3d54a57189ea0ab44d05f36b7cc7ea496c) | [+31/-16](https://github.com/mdqinc/SDL_GameControllerDB/compare/0562b00...436c7e3) |
| Khan Bravo 6.1.1 | [01cca2e](https://github.com/mdqinc/SDL_GameControllerDB/tree/01cca2e77f9bf9f1432be04f876f287eb78297fe) | [+23/-6](https://github.com/mdqinc/SDL_GameControllerDB/compare/436c7e3...01cca2e) |
| Khan Charlie 6.1.2 | [6852946](https://github.com/mdqinc/SDL_GameControllerDB/tree/6852946487534c69b7d228fd4eb8c87cf6966475) | [+25/-15](https://github.com/mdqinc/SDL_GameControllerDB/compare/01cca2e...6852946) |
| Spock Alfa 7.0.0 | [38bda81](https://github.com/mdqinc/SDL_GameControllerDB/tree/38bda816dc786f18493876f7bc30bc12dfd2636a) | [+15/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/6852946...38bda81) |
| Spock Bravo 7.0.1 | [228d980](https://github.com/mdqinc/SDL_GameControllerDB/tree/228d980d3d791e9df3b096472f6b97459f8709fe) | [+7/-3](https://github.com/mdqinc/SDL_GameControllerDB/compare/38bda81...228d980) |
| Spock Charlie 7.0.2 | [c5b4df0](https://github.com/mdqinc/SDL_GameControllerDB/tree/c5b4df0e1061175cb11e3ebbf8045178339864a5) | [+3](https://github.com/mdqinc/SDL_GameControllerDB/compare/228d980...c5b4df0) |
| Sulu Alfa 7.1.0 | [a2cf171](https://github.com/mdqinc/SDL_GameControllerDB/tree/a2cf1711b4ebc646a3814705d2fb6aac5707bcae) | [+4/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/c5b4df0...a2cf171) |
| Sulu Bravo 7.1.1 | [cc9f777](https://github.com/mdqinc/SDL_GameControllerDB/tree/cc9f777721f0cb30058d9eef52a295130b734a4a) | [+29/-9](https://github.com/mdqinc/SDL_GameControllerDB/compare/a2cf171...cc9f777) |
| MacReady Alfa 8.0.0 | [c56329f](https://github.com/mdqinc/SDL_GameControllerDB/tree/c56329f4df93fc7a780bdbeae47a9c91447b629c) | [+67/-23](https://github.com/mdqinc/SDL_GameControllerDB/compare/cc9f777...c56329f) |
| MacReady Bravo 8.0.1 | [721b575](https://github.com/mdqinc/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+5/-5](https://github.com/mdqinc/SDL_GameControllerDB/compare/c56329f...721b575) |
| MacReady Charlie 8.0.2 | [721b575](https://github.com/mdqinc/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+0/-0](https://github.com/mdqinc/SDL_GameControllerDB/compare/721b575...721b575) |
| MacReady Delta 8.0.3 | [d4ab609](https://github.com/mdqinc/SDL_GameControllerDB/tree/d4ab609121ee6e687bc3d3a7e80244b3b26d1164) | [+5/-3](https://github.com/mdqinc/SDL_GameControllerDB/compare/721b575...d4ab609) |
| MacReady Echo 8.0.4 | [6555d47](https://github.com/mdqinc/SDL_GameControllerDB/tree/6555d47ecb5d9eebac0e3d8cd19a545e9d946c40) | [+2/-0](https://github.com/mdqinc/SDL_GameControllerDB/compare/d4ab609...6555d47) |
| MacReady Foxtrot 8.0.5 | [037d6a1](https://github.com/mdqinc/SDL_GameControllerDB/tree/037d6a1533ed94fbc6a8c71e6f1f9aff1e46208a) | [+47/-14](https://github.com/mdqinc/SDL_GameControllerDB/compare/6555d47...037d6a1) |
| MacReady Golf 8.0.6 | [075c154](https://github.com/mdqinc/SDL_GameControllerDB/tree/075c1549075ef89a397fd7e0663d21e53a2485fd) | [+340/-301](https://github.com/mdqinc/SDL_GameControllerDB/compare/037d6a1...075c154) |
+28 -12
View File
@@ -41,15 +41,28 @@ You can name your branch whatever you want, but it's recommended to name it some
The limit is your imagination. You can add new features, fix bugs, add new mods, or even change the way the game works. We will demonstrate this by creating a mod that changes the speed of the day/night cycle.
Let's being by finding where the time is updated. Thankfully in the save editor we have a slider already hooked up to the time of day so we can check there for reference. The save editor file is at `soh/soh/Enhancements/debugger/debugSaveEditor.cpp`, if we do a quick search within that file for time we will find the following at line 400:
Let's begin by finding where the time is updated. Thankfully in the save editor we have a slider already hooked up to the time of day so we can check there for reference. The save editor file is at `soh/soh/Enhancements/debugger/debugSaveEditor.cpp`, if we do a quick search within that file for time we will find the following at around line 217:
```cpp
const uint16_t dayTimeMin = 0;
const uint16_t dayTimeMax = 0xFFFF;
ImGui::SliderScalar("Time", ImGuiDataType_U16, &gSaveContext.dayTime, &dayTimeMin, &dayTimeMax);
SliderInt("Time", (int32_t*)&gSaveContext.dayTime, intSliderOptionsBase.Min(0).Max(0xFFFF).Tooltip("Time of day"));
if (Button("Dawn", buttonOptionsBase)) {
gSaveContext.dayTime = 0x4000;
}
ImGui::SameLine();
if (Button("Noon", buttonOptionsBase)) {
gSaveContext.dayTime = 0x8000;
}
ImGui::SameLine();
if (Button("Sunset", buttonOptionsBase)) {
gSaveContext.dayTime = 0xC001;
}
ImGui::SameLine();
if (Button("Midnight", buttonOptionsBase)) {
gSaveContext.dayTime = 0;
}
```
So this tells us that `gSaveContext.dayTime` is what we're looking for. Let's now do a global search for this to see if we can find where it is updated. We find the following in `soh/src/code/z_kankyo.c` line 925:
So this tells us that `gSaveContext.dayTime` is what we're looking for. Let's now do a global search for this to see if we can find where it is updated. We find the following in `soh/src/code/z_kankyo.c` around line 925:
```cpp
if (IS_DAY || gTimeIncrement >= 0x190) {
@@ -71,16 +84,19 @@ if (IS_DAY || gTimeIncrement >= 0x190) {
}
```
Rebuild the game and launch it, then load a save file. You should see that the time of day is now moving much faster. Terrific! While we could wrap this up and call it a day, we could make this user configurable by making a few more changes. I think a slider would be good for this, there's a slider in the cheat menu that we can use as a reference. Let's find it in `soh/soh/SohMenuBar.cpp` around line 1120:
Rebuild the game and launch it, then load a save file. You should see that the time of day is now moving much faster. Terrific! While we could wrap this up and call it a day, we could make this user configurable by making a few more changes. I think a slider would be good for this, there's a slider in the cheat menu that we can use as a reference. Let's find it in `soh/soh/SohGui/SohMenuEnhancements.cpp` around line 1565:
```cpp
UIWidgets::EnhancementSliderFloat("Hookshot Reach Multiplier: %.1fx", "##gCheatHookshotReachMultiplier", "gCheatHookshotReachMultiplier", 1.0f, 5.0f, "", 1.0f, false);
AddWidget(path, "Hookshot Reach Multiplier: %.2fx", WIDGET_CVAR_SLIDER_FLOAT)
.CVar(CVAR_CHEAT("HookshotReachMultiplier"))
.Options(FloatSliderOptions().Format("%.2f").Min(1.0f).Max(5.0f));
```
The float values being passed in here are `minimum`, `maximum`, and `default` respectively. We'll make our minimum 0.2 to allow it to move slower, and our maximum 5.0 to allow it to move up to 5x faster. We'll also set the default to 1.0 so that it doesn't change the behavior by default. Copy this line and paste it below, then make the relevant changes:
This adds a `Widget` which sets a CVar, which then sets the options of the slider. We'll make our minimum 0.2 to allow it to move slower, and our maximum 5.0 to allow it to move up to 5x faster. We'll also set the default to 1.0 so that it doesn't change the behavior by default. Copy this line and paste it below, then make the relevant changes:
```cpp
UIWidgets::EnhancementSliderFloat("Time Multiplier: %.1fx", "##gCheatTimeMultiplier", "gCheatTimeMultiplier", 0.2f, 5.0f, "", 1.0f, false);
AddWidget(path, "Time Multiplier: %.2fx", WIDGET_CVAR_SLIDER_FLOAT)
.CVar(CVAR_CHEAT("TimeOfDayMultiplier"))
.Options(FloatSliderOptions().Format("%.2f").Min(0.2f).Max(5.0f).DefaultValue(1.0f));
```
Now we need to replace our hard coded values with the new variable. We can do this by replacing the `10` with a cvar call
@@ -88,10 +104,10 @@ Now we need to replace our hard coded values with the new variable. We can do th
```diff
if (IS_DAY || gTimeIncrement >= 0x190) {
- gSaveContext.dayTime += gTimeIncrement * 10;
+ gSaveContext.dayTime += gTimeIncrement * CVarGetFloat("gCheatTimeMultiplier", 1.0f);
+ gSaveContext.dayTime += gTimeIncrement * CVarGetFloat(CVAR_CHEAT("TimeOfDayMultiplier"),1.0f);
} else {
- gSaveContext.dayTime += gTimeIncrement * 2 * 10;
+ gSaveContext.dayTime += gTimeIncrement * 2 * CVarGetFloat("gCheatTimeMultiplier", 1.0f);
+ gSaveContext.dayTime += gTimeIncrement * 2 * CVarGetFloat(CVAR_CHEAT("TimeOfDayMultiplier"),1.0f);
}
```
+6 -5
View File
@@ -25,7 +25,7 @@ if (-not (Test-Path $clangFormatFilePath) -or ($currentVersion -ne $requiredVers
}
$wc = New-Object net.webclient
$wc.Downloadfile($url, $llvmInstallerPath)
$wc.Downloadfile($url, $PSScriptRoot + $llvmInstallerPath)
$sevenZipPath = "C:\Program Files\7-Zip\7z.exe"
$specificFileInArchive = "bin\clang-format.exe"
@@ -37,12 +37,13 @@ if (-not (Test-Path $clangFormatFilePath) -or ($currentVersion -ne $requiredVers
$basePath = (Resolve-Path .).Path
$files = Get-ChildItem -Path $basePath\soh -Recurse -File `
| Where-Object { ($_.Extension -eq '.c' -or $_.Extension -eq '.cpp' -or `
($_.Extension -eq '.h' -and `
(($_.Extension -eq '.h' -or $_.Extension -eq '.hpp') -and `
(-not ($_.FullName -like "*\soh\src\*" -or $_.FullName -like "*\soh\include\*")))) -and `
(-not ($_.FullName -like "*\soh\assets\*")) }
(-not ($_.FullName -like "*\soh\assets\*" -or $_.FullName -like "*\soh\build\*")) }
foreach ($file in $files) {
for ($i = 0; $i -lt $files.Length; $i++) {
$file = $files[$i]
$relativePath = $file.FullName.Substring($basePath.Length + 1)
Write-Host "Formatting $relativePath"
Write-Host "Formatting [$($i+1)/$($files.Length)] $relativePath"
.\clang-format.exe -i $file.FullName
}
+7 -7
View File
@@ -10,20 +10,20 @@
# -name "*.c" -o -name "*.cpp"
# find all .c and .cpp files
#
# -name "*.h" ! -path "soh/src/**.h" ! -path "soh/include/**.h"
# find all .h files that aren't in soh/src or soh/include
# ( -name "*.h" -o -name "*.hpp" ) ! -path "soh/src/**.h" ! -path "soh/include/**.h"
# find all .h and .hpp files that aren't in soh/src or soh/include
# this is because zret decomp only runs clang-format on c files
# https://github.com/zeldaret/mm/blob/b7e5468ca16315a7e322055eff3d97fe980bbc25/format.py#L182
#
# ! -path "soh/assets/*"
# asset headers are autogenerated, don't fight them
#
# | sed 's| |\\ |g'
# pipe the result of find into sed to
# ensure all the paths returned by find have spaces escaped
# -print0
# separate paths with NUL bytes, avoiding issues with spaces in paths
#
# | xargs clang-format-14 -i
# | xargs -0 clang-format-14 -i -verbose
# use xargs to take each path we've found
# and pass it as an argument to clang-format
# verbose to print files being formatted and X out of Y status
find soh -type f \( -name "*.c" -o -name "*.cpp" -o \( -name "*.h" ! -path "soh/src/**.h" ! -path "soh/include/**.h" \) \) ! -path "soh/assets/*" | sed 's| |\\ |g' | xargs clang-format-14 -i
find soh -type f \( -name "*.c" -o -name "*.cpp" -o \( \( -name "*.h" -o -name "*.hpp" \) ! -path "soh/src/*" ! -path "soh/include/*" \) \) ! -path "soh/assets/*" -print0 | xargs -0 clang-format-14 -i --verbose
+1 -1
View File
@@ -1,7 +1,7 @@
[Desktop Entry]
Version=1.0
Name=SOH
Exec=soh.sh
Exec=soh.elf
Terminal=false
Icon=sohIcon
Type=Application
-338
View File
@@ -1,338 +0,0 @@
#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"/../..
export PATH="$HERE"/bin:"$HERE"/usr/bin:"$PATH"
export LD_LIBRARY_PATH="$HERE"/usr/lib:"$LD_LIBRARY_PATH"
export ZENITY=$(command -v zenity)
if [ -z ${SHIP_HOME+x} ]; then
export SHIP_HOME=$PWD
fi
if [ -z ${SHIP_BIN_DIR+x} ]; then
export SHIP_BIN_DIR="$HERE/usr/bin"
fi
if [[ ! -e "$SHIP_HOME"/mods ]]; then
mkdir -p "$SHIP_HOME"/mods
touch "$SHIP_HOME"/mods/custom_otr_files_go_here.txt
fi
while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
for romfile in "$SHIP_HOME"/*.*64
do
if [[ -e "$romfile" ]] || [[ -L "$romfile" ]]; then
export ASSETDIR="$(mktemp -d /tmp/assets-XXXXX)"
ln -s "$SHIP_BIN_DIR"/{assets,soh.elf,ZAPD} "$ASSETDIR"
export OLDPWD="$PWD"
mkdir -p "$ASSETDIR"/tmp
if [[ -e "$romfile" ]]; then
ln -s "$romfile" "$ASSETDIR"/tmp/rom.z64
else
ORIG_ROM_PATH=$(readlink "$romfile")
ln -s "$ORIG_ROM_PATH" "$ASSETDIR"/tmp/rom.z64
fi
cd "$ASSETDIR"
ROMHASH=$(sha1sum -b "$ASSETDIR"/tmp/rom.z64 | awk '{ print $1 }')
# Remap v64 and n64 hashes to their z64 hash equivalent
# ZAPD will handle converting the data into z64 format
case "$ROMHASH" in
a9059b56e761c9034fbe02fe4c24985aaa835dac) # v64
ROMHASH=cee6bc3c2a634b41728f2af8da54d9bf8cc14099
;;
24708102dc504d3f375a37f4ae4e149c167dc515) # n64
ROMHASH=cee6bc3c2a634b41728f2af8da54d9bf8cc14099
;;
580dd0bd1b6d2c51cc20a764eece84dba558964c) # v64
ROMHASH=0227d7c0074f2d0ac935631990da8ec5914597b4
;;
d6342c59007e57c1194661ec6880b2f078403f4e) # n64
ROMHASH=0227d7c0074f2d0ac935631990da8ec5914597b4
;;
d0bdc2eb320668b4ba6893b9aefe4040a73123ff) # v64
ROMHASH=328a1f1beba30ce5e178f031662019eb32c5f3b5
;;
4946ab250f6ac9b32d76b21f309ebb8ebc8103d2) # n64
ROMHASH=328a1f1beba30ce5e178f031662019eb32c5f3b5
;;
663c34f1b2c05a09e5beffe4d0dcd440f7d49dc7) # v64
ROMHASH=cfbb98d392e4a9d39da8285d10cbef3974c2f012
;;
24c73d378b0620a380ce5ef9f2b186c6c157a68b) # n64
ROMHASH=cfbb98d392e4a9d39da8285d10cbef3974c2f012
;;
8ebf2e29313f44f2d49e5b4191971d09919e8e48) # v64
ROMHASH=f46239439f59a2a594ef83cf68ef65043b1bffe2
;;
4264bf7b875737b8fae77d52322a5099d051fc11) # n64
ROMHASH=f46239439f59a2a594ef83cf68ef65043b1bffe2
;;
973bc6fe56010a8d646166a1182a81b4f13b8cf9) # v64
ROMHASH=50bebedad9e0f10746a52b07239e47fa6c284d03
;;
d327752c46edc70ff3668b9514083dbbee08927c) # v64
ROMHASH=50bebedad9e0f10746a52b07239e47fa6c284d03
;;
ecdeb1747560834e079c22243febea7f6f26ba3b) # v64
ROMHASH=079b855b943d6ad8bd1eb026c0ed169ecbdac7da
;;
f19f8662ec7abee29484a272a6fda53e39efe0f1) # n64
ROMHASH=079b855b943d6ad8bd1eb026c0ed169ecbdac7da
;;
ab519ce04a33818ce2c39b3c514a751d807a494a) # v64
ROMHASH=cfecfdc58d650e71a200c81f033de4e6d617a9f6
;;
c19a34f7646305e1755249fca2071e178bd7cd00) # n64
ROMHASH=cfecfdc58d650e71a200c81f033de4e6d617a9f6
;;
25e8ae79ea0839ca5c984473f7460d8040c36f9c) # v64
ROMHASH=517bd9714c73cb96c21e7c2ef640d7b55186102f
;;
166c02770d67fcc3954c443eb400a6a3573d3fc0) # n64
ROMHASH=517bd9714c73cb96c21e7c2ef640d7b55186102f
;;
79a4f053d34018e59279e6d4b83c7daccd985c87) # v64
ROMHASH=ad69c91157f6705e8ab06c79fe08aad47bb57ba7
;;
82fafee9c6ac7946739282958364ce606077ac65) # n64
ROMHASH=ad69c91157f6705e8ab06c79fe08aad47bb57ba7
;;
18cd0eb65914a21d8fa08dfe71c29d865e9d728a) # v64
ROMHASH=d3ecb253776cd847a5aa63d859d8c89a2f37b364
;;
07940d5609e04b7caac63570731e01189129212e) # n64
ROMHASH=d3ecb253776cd847a5aa63d859d8c89a2f37b364
;;
3ac86253e0c0d55486d212e647350c1527b9c92d) # v64
ROMHASH=41b3bdc48d98c48529219919015a1af22f5057c2
;;
70bf30a9980026e615a1ae8d2735a773cf9fcc94) # n64
ROMHASH=41b3bdc48d98c48529219919015a1af22f5057c2
;;
f9e2b6840b9103e9707ea390089a7b6943592a98) # v64
ROMHASH=c892bbda3993e66bd0d56a10ecd30b1ee612210f
;;
2fae1601aa7ae8d3e03ba3f4dcdfca3a36002ac5) # n64
ROMHASH=c892bbda3993e66bd0d56a10ecd30b1ee612210f
;;
1181034d5f9533f53ebe8e1c781badbee115f5aa) # v64
ROMHASH=dbfc81f655187dc6fefd93fa6798face770d579d
;;
07477067943abe8d0c50285eb4a6cb9ece99e79b) # n64
ROMHASH=dbfc81f655187dc6fefd93fa6798face770d579d
;;
2d8fb7140a9c5d11ce614561e5a36ffef0c17540) # v64
ROMHASH=fa5f5942b27480d60243c2d52c0e93e26b9e6b86
;;
d90bbe422ac728ac54ac6a2c9fec942f7ff04df9) # n64
ROMHASH=fa5f5942b27480d60243c2d52c0e93e26b9e6b86
;;
44c75962911e13bdfdc31b35e0b8e3be6a6a49ab) # v64
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b
;;
5d47025581060af5ba19e6719c25fea7398e87cf) # n64
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b
;;
e1d070ad7b017de9f992b362164dcd9d7f820f7e) # v64
8b5d13aac69bfbf989861cfdc50b1d840945fc1d
;;
a8c04cd5aa94a6a32198f36ff2069d43342d18a8) # n64
8b5d13aac69bfbf989861cfdc50b1d840945fc1d
;;
245410280d152f28d5b1c0c0fc37f384db0020cd) # v64
0769c84615422d60f16925cd859593cdfa597f84
;;
fbdc9e444807f9b881e3432cedf66f38746b81d8) # n64
0769c84615422d60f16925cd859593cdfa597f84
;;
b6d33d6bf5d6700c64b6a873ab8b06ff039619bc) # v64
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73
;;
2c7113d20044f93c82ec888c19aa09ea7797396d) # n64
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73
;;
06c3c098f0e14ed61811dfaf0e8e4519d7d7a826) # v64
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f
;;
bb3f85bfaad9ae7a20afbf618fc9fe126c8c1b4f) # n64
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f
;;
esac
case "$ROMHASH" in
cee6bc3c2a634b41728f2af8da54d9bf8cc14099)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_D
OTRNAME="oot.otr"
fi
;;
0227d7c0074f2d0ac935631990da8ec5914597b4)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_PAL_F
OTRNAME="oot.otr"
else
continue
fi
;;
328a1f1beba30ce5e178f031662019eb32c5f3b5)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_PAL_10
OTRNAME="oot.otr"
else
continue
fi
;;
cfbb98d392e4a9d39da8285d10cbef3974c2f012)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_PAL_11
OTRNAME="oot.otr"
else
continue
fi
;;
ad69c91157f6705e8ab06c79fe08aad47bb57ba7|c892bbda3993e66bd0d56a10ecd30b1ee612210f)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_NTSC_10
OTRNAME="oot.otr"
else
continue
fi
;;
d3ecb253776cd847a5aa63d859d8c89a2f37b364|dbfc81f655187dc6fefd93fa6798face770d579d)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_NTSC_11
OTRNAME="oot.otr"
else
continue
fi
;;
41b3bdc48d98c48529219919015a1af22f5057c2|fa5f5942b27480d60243c2d52c0e93e26b9e6b86)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_NTSC_12
OTRNAME="oot.otr"
else
continue
fi
;;
f46239439f59a2a594ef83cf68ef65043b1bffe2)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_PAL_F
OTRNAME="oot-mq.otr"
else
continue
fi
;;
50bebedad9e0f10746a52b07239e47fa6c284d03)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_D
OTRNAME="oot-mq.otr"
else
continue
fi
;;
079b855b943d6ad8bd1eb026c0ed169ecbdac7da)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_D
OTRNAME="oot-mq.otr"
else
continue
fi
;;
cfecfdc58d650e71a200c81f033de4e6d617a9f6)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_D
OTRNAME="oot-mq.otr"
else
continue
fi
;;
517bd9714c73cb96c21e7c2ef640d7b55186102f)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_D
OTRNAME="oot-mq.otr"
else
continue
fi
;;
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_NTSC_U
OTRNAME="oot.otr"
else
continue
fi
;;
8b5d13aac69bfbf989861cfdc50b1d840945fc1d)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_NTSC_U
OTRNAME="oot-mq.otr"
else
continue
fi
;;
0769c84615422d60f16925cd859593cdfa597f84)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_NTSC_J
OTRNAME="oot.otr"
else
continue
fi
;;
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_NTSC_J_CE
OTRNAME="oot.otr"
else
continue
fi
;;
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_NTSC_J
OTRNAME="oot-mq.otr"
else
continue
fi
;;
*)
echo -e "\n$romfile - $ROMHASH rom hash does not match\n"
continue;;
esac
if [[ ! -e "$SHIP_HOME"/"$OTRNAME" ]]; then
if [ -n "$ZENITY" ]; then
(echo "# 25%"; echo "25"; sleep 2; echo "# 50%"; echo "50"; sleep 3; echo "# 75%"; echo "75"; sleep 2; echo "# 100%"; echo "100"; sleep 3) |
zenity --progress --title="OTR Generating..." --timeout=10 --percentage=0 --icon-name=soh --window-icon=soh.png --height=80 --width=400 &
else
echo "Processing..."
fi
assets/extractor/ZAPD.out ed -eh -i assets/extractor/xmls/"${ROM}" -b tmp/rom.z64 -fl assets/extractor/filelists -o placeholder -osf placeholder -gsf 1 -rconf assets/extractor/Config_"${ROM}".xml -se OTR --otrfile "${OTRNAME}" --portVer "@CMAKE_PROJECT_VERSION@" > /dev/null 2>&1
cp "$ASSETDIR"/"$OTRNAME" "$SHIP_HOME"
fi
else
if [[ (! -e "$SHIP_HOME"/oot.otr) && (! -e "$SHIP_HOME"/oot-mq.otr) ]]; then
if [ -n "$ZENITY" ]; then
zenity --error --timeout=5 --text="Place ROM in $SHIP_HOME" --title="Missing ROM file" --width=500 --width=200
else
echo -e "\nPlace ROM in this folder\n"
fi
exit
fi
fi
done
if [[ (! -e "$SHIP_HOME"/oot.otr) && (! -e "$SHIP_HOME"/oot-mq.otr) ]]; then
if [ -n "$ZENITY" ]; then
zenity --error --timeout=10 --text="No valid ROMs were provided, No OTR was generated." --title="Incorrect ROM file" --width=500 --width=200
else
echo "No valid roms provided, no OTR was generated."
fi
rm -r "$ASSETDIR"
exit
else
(cd "$SHIP_BIN_DIR"; ./soh.elf)
exit
fi
rm -r "$ASSETDIR"
done
(cd "$SHIP_BIN_DIR"; ./soh.elf)
exit
+197 -90
View File
@@ -1,9 +1,11 @@
cmake_minimum_required(VERSION 3.26.0 FATAL_ERROR)
include(FetchContent)
set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
project(soh LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
set(CMAKE_C_STANDARD 23 CACHE STRING "The C standard to use")
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
enable_language(OBJCXX)
@@ -137,20 +139,27 @@ endforeach()
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set_source_files_properties(soh/OTRGlobals.cpp PROPERTIES COMPILE_FLAGS "/utf-8")
set_source_files_properties(soh/Enhancements/tts/tts.cpp PROPERTIES COMPILE_FLAGS "/utf-8")
set_source_files_properties(soh/Enhancements/custom-message/CustomMessageManager.cpp PROPERTIES COMPILE_FLAGS "/utf-8")
set_source_files_properties(soh/Enhancements/custom-message/CustomMessageManager.h PROPERTIES COMPILE_FLAGS "/utf-8")
endif()
# handle Network removals
if (!BUILD_REMOTE_CONTROL)
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/crowd-control/*")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/crowd-control/")
endif()
# handle speechsynthesizer removals
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/Darwin*")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/Darwin")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/SAPI*")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/SAPI")
else()
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/(Darwin|SAPI).*")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/(Darwin|SAPI)")
endif()
find_library(ESPEAK espeak-ng)
if (NOT ESPEAK)
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/ESpeak")
endif()
# soh/Extractor {{{
@@ -176,12 +185,12 @@ file(GLOB_RECURSE src__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/*.c" "src/*.h"
set_source_files_properties(${src__} PROPERTIES COMPILE_OPTIONS "${WARNING_OVERRIDE}")
list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc)
list(FILTER src__ EXCLUDE REGEX "src/dmadata/*")
list(FILTER src__ EXCLUDE REGEX "src/elf_message/*")
list(FILTER src__ EXCLUDE REGEX "src/libultra/io/*")
list(FILTER src__ EXCLUDE REGEX "src/libultra/libc/*")
list(FILTER src__ EXCLUDE REGEX "src/libultra/os/*")
list(FILTER src__ EXCLUDE REGEX "src/libultra/rmon/*")
list(FILTER src__ EXCLUDE REGEX "src/dmadata/")
list(FILTER src__ EXCLUDE REGEX "src/elf_message/")
list(FILTER src__ EXCLUDE REGEX "src/libultra/io/")
list(FILTER src__ EXCLUDE REGEX "src/libultra/libc/")
list(FILTER src__ EXCLUDE REGEX "src/libultra/os/")
list(FILTER src__ EXCLUDE REGEX "src/libultra/rmon/")
list(APPEND src__ "src/libultra/libc/sprintf.c")
list(REMOVE_ITEM src__ "src/libultra/gu/cosf.c")
list(REMOVE_ITEM src__ "src/libultra/gu/lookat.c")
@@ -274,32 +283,75 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
endif()
set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR})
endif()
################################################################################
# Find/download Boost
################################################################################
include(FetchContent)
FetchContent_Declare(
Boost
URL https://archives.boost.io/release/1.81.0/source/boost_1_81_0.tar.gz
URL_HASH SHA256=205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6
SOURCE_SUBDIR "null" # Set to a nonexistent directory so boost is not built (we don't need to build it)
DOWNLOAD_EXTRACT_TIMESTAMP false # supress timestamp warning, not needed since the url wont change
)
set(Boost_NO_BOOST_CMAKE false)
set(BOOST_INCLUDEDIR ${FETCHCONTENT_BASE_DIR}/boost-src) # Location where FetchContent stores the source
message("Searching for Boost installation")
find_package(Boost)
################################################################################
# apclientpp + dependencies
################################################################################
add_compile_definitions(ASIO_STANDALONE)
if (NOT ${Boost_FOUND})
message("Boost not found. Downloading now...")
FetchContent_MakeAvailable(Boost)
message("Boost downloaded to " ${FETCHCONTENT_BASE_DIR}/boost-src)
set(BOOST-INCLUDE ${FETCHCONTENT_BASE_DIR}/boost-src)
else()
message("Boost found in " ${Boost_INCLUDE_DIRS})
set(BOOST-INCLUDE ${Boost_INCLUDE_DIRS})
if(BUILD_REMOTE_CONTROL)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
FetchContent_Declare(
valijson
GIT_REPOSITORY https://github.com/tristanpenman/valijson.git
GIT_TAG v1.0.6
)
FetchContent_MakeAvailable(valijson)
target_include_directories(${PROJECT_NAME} PRIVATE ${valijson_SOURCE_DIR}/include)
else()
find_package(valijson REQUIRED)
endif()
FetchContent_Declare(
asio
GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
GIT_TAG asio-1-30-2
)
FetchContent_MakeAvailable(asio)
target_include_directories(${PROJECT_NAME} PRIVATE ${asio_SOURCE_DIR}/asio/include)
# websocketpp has been temporarily removed from vcpkg, see
# https://github.com/microsoft/vcpkg/pull/42678#issuecomment-2914451436
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
FetchContent_Declare(
websocketpp
GIT_REPOSITORY https://github.com/zaphoyd/websocketpp.git
GIT_TAG 0.8.2
)
FetchContent_Populate(websocketpp)
target_include_directories(${PROJECT_NAME} PRIVATE ${websocketpp_SOURCE_DIR})
else()
find_package(websocketpp REQUIRED)
endif()
FetchContent_Declare(
wswrap
GIT_REPOSITORY https://github.com/black-sliver/wswrap.git
GIT_TAG 47438193ec50427ee28aadf294ba57baefd9f3f1
)
FetchContent_MakeAvailable(wswrap)
target_include_directories(${PROJECT_NAME} PRIVATE ${wswrap_SOURCE_DIR}/include)
FetchContent_Declare(
apclientpp
GIT_REPOSITORY https://github.com/black-sliver/apclientpp.git
GIT_TAG 65638b7479f6894eda172e603cffa79762c0ddc1
)
FetchContent_MakeAvailable(apclientpp)
target_include_directories(${PROJECT_NAME} PRIVATE ${apclientpp_SOURCE_DIR})
endif()
# Find/download Dr Libs (For custom audio)
################################################################################
FetchContent_Declare(
dr_libs
GIT_REPOSITORY https://github.com/mackron/dr_libs.git
GIT_TAG da35f9d6c7374a95353fd1df1d394d44ab66cf01
)
FetchContent_MakeAvailable(dr_libs)
################################################################################
# Compile definitions
################################################################################
@@ -310,46 +362,63 @@ if (BUILD_REMOTE_CONTROL)
find_package(SDL2_net)
if(NOT SDL2_net_FOUND)
message(STATUS "SDL2_net not found (it's possible the version installed is too old). Disabling BUILD_REMOTE_CONTROL.")
# todo: make archi optional so this can build with BUILD_REMOTE_CONTROL off
message(FATAL_ERROR "SDL2_net not found (it's possible the version installed is too old).")
set(BUILD_REMOTE_CONTROL 0)
else()
set(SDL2-NET-INCLUDE ${SDL_NET_INCLUDE_DIRS})
endif()
set(OPENSSL_USE_STATIC_LIBS ON)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
file(STRINGS /etc/os-release distro REGEX "^NAME=")
string(REGEX REPLACE "NAME=\"(.*)\"" "\\1" distro "${distro}")
if(${distro} MATCHES "Fedora Linux")
set(OPENSSL_USE_STATIC_LIBS OFF)
endif()
endif()
find_package(OpenSSL)
if(NOT OPENSSL_FOUND)
# todo: make archi optional so this can build with BUILD_REMOTE_CONTROL off
message(FATAL_ERROR "OpenSSL not found (it's possible the version installed is too old).")
set(BUILD_REMOTE_CONTROL 0)
endif()
FetchContent_Declare(
sslCertStore
URL https://curl.se/ca/cacert.pem
DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/networking
DOWNLOAD_NO_EXTRACT TRUE
)
FetchContent_MakeAvailable(
sslCertStore
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/networking/cacert.pem DESTINATION ./networking COMPONENT ship)
endif()
if (ESPEAK)
add_compile_definitions(ESPEAK=1)
endif()
################################################################################
# Compile definitions
################################################################################
target_include_directories(${PROJECT_NAME} PRIVATE assets
${CMAKE_CURRENT_SOURCE_DIR}/include/
${CMAKE_CURRENT_SOURCE_DIR}/src/
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/include
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/log
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/debug
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/menu
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/utils
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/utils/binarytools
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/config
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/resource
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/resource/type
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/resource/factory
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/audio
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/window
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/window/gui
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/config
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/public
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/public/libultra
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/public/bridge
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/extern
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/extern/tinyxml2
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/libjpeg/include/
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic/Fast3D/U64/PR
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic
${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD/resource/type
${SDL2-INCLUDE}
${SDL2-NET-INCLUDE}
${BOOST-INCLUDE}
${CMAKE_CURRENT_SOURCE_DIR}/assets/
${dr_libs_SOURCE_DIR}
.
)
@@ -362,13 +431,15 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
"ENABLE_DX11;"
">"
"$<$<CONFIG:Release>:"
"NDEBUG"
"NDEBUG;"
">"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
"INCLUDE_GAME_PRINTF;"
"F3DEX_GBI_2"
"UNICODE;"
"_UNICODE"
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
STORMLIB_NO_AUTO_LINK
"_CRT_SECURE_NO_WARNINGS;"
NOMINMAX
@@ -379,7 +450,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
"NOINCLUDE_GAME_PRINTF;"
"_DEBUG;"
"_CRT_SECURE_NO_WARNINGS;"
"ENABLE_OPENGL"
"ENABLE_OPENGL;"
">"
"$<$<CONFIG:Release>:"
"NDEBUG;"
@@ -388,7 +459,9 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
"F3DEX_GBI_2"
"WIN32;"
"UNICODE;"
"_UNICODE"
"_UNICODE;"
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
STORMLIB_NO_AUTO_LINK
NOMINMAX
)
@@ -396,39 +469,42 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
target_compile_definitions(${PROJECT_NAME} PRIVATE
"$<$<CONFIG:Debug>:"
"_DEBUG"
"_DEBUG;"
">"
"$<$<CONFIG:Release>:"
"NDEBUG"
"NDEBUG;"
">"
"F3DEX_GBI_2"
"SPDLOG_ACTIVE_LEVEL=3;"
"F3DEX_GBI_2;"
"SPDLOG_NO_THREAD_ID;"
"SPDLOG_NO_TLS;"
"STBI_NO_THREAD_LOCALS;"
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
)
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
target_compile_definitions(${PROJECT_NAME} PRIVATE
"$<$<CONFIG:Debug>:"
"_DEBUG"
"_DEBUG;"
">"
"$<$<CONFIG:Release>:"
"NDEBUG"
"NDEBUG;"
">"
"F3DEX_GBI_2"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
"SPDLOG_ACTIVE_LEVEL=0;"
"F3DEX_GBI_2;"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>;"
"_CONSOLE;"
"_CRT_SECURE_NO_WARNINGS;"
"ENABLE_OPENGL;"
"UNICODE;"
"_UNICODE"
"_UNICODE;"
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
)
endif()
################################################################################
# Compile and link options
################################################################################
if(MSVC)
target_compile_options(${PROJECT_NAME} PUBLIC "/Zc:__cplusplus")
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_compile_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:Debug>:
@@ -503,6 +579,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
target_compile_options(${PROJECT_NAME} PRIVATE
-Wall -Wextra -Wno-error
-Wformat-security
-Wno-return-type
-Wno-unused-parameter
-Wno-unused-function
@@ -511,10 +588,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
-Wno-parentheses
-Wno-narrowing
-Wno-missing-braces
-Wno-int-conversion
$<$<COMPILE_LANGUAGE:C>:
-Werror-implicit-function-declaration
-Wno-incompatible-pointer-types
-Wno-int-conversion
>
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
$<$<COMPILE_LANGUAGE:CXX>:
@@ -530,6 +607,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
target_compile_options(${PROJECT_NAME} PRIVATE
-Wall -Wextra -Wno-error
-Wformat-security
-Wno-return-type
-Wno-unused-parameter
-Wno-unused-function
@@ -580,6 +658,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
target_compile_options(${PROJECT_NAME} PRIVATE
-Wall -Wextra -Wno-error
-Wformat-security
-Wno-unused-parameter
-Wno-unused-function
-Wno-unused-variable
@@ -587,11 +666,11 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
-Wno-parentheses
-Wno-narrowing
-Wno-missing-braces
-Wno-int-conversion
-Wno-implicit-int
$<$<COMPILE_LANGUAGE:C>:
-Werror-implicit-function-declaration
-Wno-implicit-int
-Wno-incompatible-pointer-types
-Wno-int-conversion
>
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-enum-enum-conversion>
@@ -601,6 +680,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
target_link_options(${PROJECT_NAME} PRIVATE
-pthread
#-fsanitize=address
-Wl,-export-dynamic
)
endif()
@@ -609,21 +689,22 @@ endif()
# Pre build events
################################################################################
if (CMAKE_GENERATOR MATCHES "Visual Studio")
set(VS_COPY_ASSETS_CMD ${CMAKE_COMMAND} -E copy_directory_if_different $<TARGET_FILE_DIR:soh>/assets ${CMAKE_BINARY_DIR}/soh/assets)
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/extractor ${CMAKE_BINARY_DIR}/soh/assets
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/xml ${CMAKE_BINARY_DIR}/soh/assets/xml
)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMENT "Copying asset xmls..."
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/extractor $<TARGET_FILE_DIR:soh>/assets/extractor
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/xml $<TARGET_FILE_DIR:soh>/assets/extractor/xmls
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists $<TARGET_FILE_DIR:soh>/assets/extractor/filelists
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${VS_COPY_ASSETS_CMD}
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/extractor $<TARGET_FILE_DIR:soh>/assets
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/xml $<TARGET_FILE_DIR:soh>/assets/xml
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:soh>/assets/symbols
# COMMAND ${VS_COPY_ASSETS_CMD}
)
endif()
################################################################################
@@ -640,6 +721,15 @@ endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
find_package(glfw3 REQUIRED)
find_package(Ogg CONFIG REQUIRED)
link_libraries(Ogg::ogg)
find_package(Vorbis CONFIG REQUIRED)
link_libraries(Vorbis::vorbisfile)
find_package(Opus CONFIG REQUIRED)
link_libraries(Opus::opus)
find_package(OpusFile CONFIG REQUIRED)
link_libraries(OpusFile::opusfile CONFIG REQUIRED)
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"libultraship;"
@@ -648,11 +738,19 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
"SDL2::SDL2;"
"SDL2::SDL2main;"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net-static>"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:OpenSSL::SSL>"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:OpenSSL::Crypto>"
"glfw;"
"winmm;"
"imm32;"
"version;"
"setupapi"
"Ogg::ogg"
"Opus::opus"
"Vorbis::vorbis"
"Vorbis::vorbisenc"
"Vorbis::vorbisfile"
"OpusFile::opusfile"
)
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
set(ADDITIONAL_LIBRARY_DEPENDENCIES
@@ -693,11 +791,24 @@ else()
find_package(SDL2)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
find_package(Threads REQUIRED)
find_package(Ogg REQUIRED)
find_package(Vorbis REQUIRED)
find_package(Opus REQUIRED)
find_package(OpusFile REQUIRED)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"libultraship;"
"ZAPDLib;"
SDL2::SDL2
"Ogg::ogg"
"Vorbis::vorbis"
"Vorbis::vorbisenc"
"Vorbis::vorbisfile"
"Opus::opus"
"Opusfile::Opusfile"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net>"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:OpenSSL::SSL>"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:OpenSSL::Crypto>"
${CMAKE_DL_LIBS}
Threads::Threads
)
@@ -709,21 +820,17 @@ endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
INSTALL(FILES $<TARGET_PDB_FILE:soh> DESTINATION ./debug COMPONENT ship)
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.otr DESTINATION . COMPONENT ship)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/appimage/soh.sh.in ${CMAKE_BINARY_DIR}/linux/soh.sh @ONLY)
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.o2r DESTINATION . COMPONENT ship)
endif()
find_program(CURL NAMES curl DOC "Path to the curl program. Used to download files.")
execute_process(COMMAND ${CURL} -sSfL https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt -o ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt OUTPUT_VARIABLE RESULT)
execute_process(COMMAND ${CURL} -sSfL https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt -o ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt OUTPUT_VARIABLE RESULT)
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/macosx/Info.plist.in ${CMAKE_BINARY_DIR}/macosx/Info.plist @ONLY)
INSTALL(TARGETS soh DESTINATION ../MacOS COMPONENT ship)
INSTALL(FILES ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt DESTINATION ../MacOS COMPONENT ship)
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.otr DESTINATION ../Resources COMPONENT ship)
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.o2r DESTINATION ../Resources COMPONENT ship)
elseif(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "NintendoSwitch|CafeOS")
INSTALL(FILES ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt DESTINATION . COMPONENT ship)
endif()
+1 -1
View File
@@ -1,6 +1,6 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#include <ship/resource/Resource.h>
#include "properties.h"
#define APSTUDIO_READONLY_SYMBOLS
@@ -25,5 +25,5 @@
"quest_sel_vanilla": "Quest - Original",
"quest_sel_mq": "Quest - Master Quest",
"quest_sel_randomizer": "Quest - Randomizer",
"quest_sel_boss_rush": "Quest - Bosse Rush"
}
"quest_sel_boss_rush": "Quest - Boss Rush"
}
@@ -2,6 +2,7 @@
"health": "Health - $0 Hearts",
"magic": "Magic - $0",
"rupees": "Rupees - $0",
"keys": "Keys - $0",
"floor": "Floor $0",
"basement": "Basement $0",
"item_menu": "Select Item",
@@ -2,6 +2,7 @@
"health": "Vie - $0 Coeurs",
"magic": "Magie - $0",
"rupees": "Rubis - $0",
"keys": "Clés - $0",
"floor": "Étage $0",
"basement": "Sous-sol $0",
"item_menu": "Inventaire",
@@ -2,6 +2,7 @@
"health": "Energie - $0 Herzen",
"magic": "Magie - $0",
"rupees": "Rubine - $0",
"keys": "Schlüssel - $0",
"floor": "Etage $0",
"basement": "Keller $0",
"item_menu": "Gegenstände",
@@ -46,7 +47,7 @@
"28": "Blaues Feuer",
"29": "Käfer",
"30": "Nachtschwärmer",
"31": "Milch (1/2)",
"31": "Milch (Halbe Füllung)",
"32": "Irrlicht",
"33": "Seltsames Ei",
"34": "Huhn",
@@ -66,7 +67,7 @@
"48": "Schimmelpilz",
"49": "Modertrank",
"50": "Säge",
"51": "Goronen-Schwert (zerbrochen)",
"51": "Zerbr. Goronen-Schwert",
"52": "Rezept",
"53": "Glotzfrosch",
"54": "Augentropfen",
@@ -77,7 +78,7 @@
"59": "Kokiri-Schwert",
"60": "Master-Schwert",
"61": "Langschwert",
"62": "Deku-schild",
"62": "Deku-Schild",
"63": "Hylia-Schild",
"64": "Spiegel-Schild",
"65": "Kokiri-Rüstung",
@@ -98,13 +99,13 @@
"80": "Goronen-Armband",
"81": "Krafthandschuh",
"82": "Titanhandschuh",
"83": "Silberschuppe",
"84": "Goldschuppe",
"85": "Langschwert (gebrochen)",
"83": "Silberne Schuppe",
"84": "Goldene Schuppe",
"85": "Zerbr. Langschwert",
"86": "Große Börse",
"87": "Riesenbörse",
"88": "Deku-Kerne",
"89": "Angel",
"89": "Angelrute",
"90": "Menuett des Waldes",
"91": "Bolero des Feuers",
"92": "Serenade des Wassers",
@@ -116,7 +117,7 @@
"98": "Salias Lied",
"99": "Hymne der Sonne",
"100": "Hymne der Zeit",
"101": "Song of Storms",
"101": "Hymne des Sturms",
"102": "Amulett des Waldes",
"103": "Amulett des Feuers",
"104": "Amulett des Wassers",
@@ -124,7 +125,7 @@
"106": "Amulett des Schattens",
"107": "Amulett des Lichts",
"108": "Kokiri-Smaragd",
"109": "Goronen-Opal",
"109": "Goronen-Rubin",
"110": "Zora-Saphir",
"111": "Stein des Wissens",
"112": "Gerudo-Paß",
@@ -135,8 +136,8 @@
"117": "Kompaß",
"118": "Labyrinth-Karte",
"119": "Kleiner Schlüssel",
"120": "MAGIE KLEIN",
"121": "MAGIE GROß",
"120": "Kleine Magieflasche",
"121": "Große Magieflasche",
"122": "Biggoron-Schwert",
"123": "UNGÜLTIG 1",
"124": "UNGÜLTIG 2",
@@ -153,24 +154,24 @@
"135": "50 Rubine",
"136": "200 Rubine",
"137": "UNGÜLTIG 8",
"138": "STÄBE 5",
"139": "STÄBE 10",
"140": "NÜSSE 5",
"141": "NÜSSE 10",
"138": "DEKU-STÄBE 5",
"139": "DEKU-STÄBE 10",
"140": "DEKU-NÜSSE 5",
"141": "DEKU-NÜSSE 10",
"142": "BOMBEN 5",
"143": "BOMBEN 10",
"144": "BOMBEN 20",
"145": "BOMBEN 30",
"146": "PFEILE KLEIN",
"147": "PFEILE MITTEL",
"148": "PFEILE GROß",
"149": "KERNE 30",
"146": "PFEILE 5",
"147": "PFEILE 10",
"148": "PFEILE 30",
"149": "DEKU-KERNE 30",
"150": "KRABBELMINEN 5",
"151": "KRABBELMINEN 20",
"152": "STAB UPGRADE 20",
"153": "STAB UPGRADE 30",
"154": "NUß UPGRADE 30",
"155": "NUß UPGRADE 40",
"152": "DEKU-STAB-KAPAZITÄT 20",
"153": "DEKU-STAB-KAPAZITÄT 30",
"154": "DEKU-NUẞ-KAPAZITÄT 30",
"155": "DEKU-NUẞ-KAPAZITÄT 40",
"255": "",
"256": "Gespensterwüste",
"257": "Gerudo-Festung",
@@ -9,7 +9,7 @@
"7": "Schattentempel",
"8": "Grund des Brunnens",
"9": "Eishöhle",
"10": "", // Treppe zu Ganondorfs Verließ (Keine Title-Card)
"10": "", // Treppe zu Ganondorfs Verlies (Keine Title-Card)
"11": "Gerudo-Arena",
"12": "Diebesversteck",
"13": "Ganons Schloß",
@@ -22,7 +22,7 @@
"20": "Reitendes Unheil - Phantom-Ganon",
"21": "Subterraner Lavadrachoid - Volvagia",
"22": "Aquamöbes Wassertentakel - Morpha",
"23": "Höllische Hexenarmada - Killa Ohmaz",
"23": "Höllische Hexenarmada - Twinrova",
"24": "Bestialische Schattenmonstrosität - Bongo Bongo",
"25": "Großmeister des Bösen - Ganondorf",
"26": "",
@@ -109,4 +109,4 @@
"107": "",
"108": "", // Debug: SRD Raum (Keine Title-Card)
"109": "" // Debug: Schatzkisten Teleport (Keine Title-Card)
}
}
@@ -0,0 +1,16 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="255" G="255" B="255" A="255"/>
<SetTextureImage Path="objects/custom_snowball/LightNoise.rgba32" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_32b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_32b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="0" ShiftS="0" MaskT="0" ShiftT="0"/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="128"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_32b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="-951" Y="-1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-951" Y="-1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-951" Y="1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-951" Y="1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="-1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="-1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
</Vertex>
@@ -0,0 +1,10 @@
<DisplayList Version="0">
<ClearGeometryMode G_LIGHTING="1" />
<LoadVertices Path="objects/custom_snowball/snowball_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<SetGeometryMode G_LIGHTING="1" />
<CullDisplayList Start="0" End="7"/>
<CallDisplayList Path="objects/custom_snowball/mat_snowball_snow"/>
<CallDisplayList Path="objects/custom_snowball/snowball_tri_0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,47 @@
<DisplayList Version="0">
<LoadVertices Path="objects/custom_snowball/snowball_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="1" V01="4" V02="3" Flag0="0" V10="3" V11="4" V12="5" Flag1="0"/>
<Triangles2 V00="4" V01="6" V02="5" Flag0="0" V10="4" V11="7" V12="6" Flag1="0"/>
<Triangles2 V00="4" V01="8" V02="7" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
<Triangles2 V00="8" V01="10" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="7" V01="11" V02="12" Flag0="0" V10="11" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="11" V01="14" V02="13" Flag0="0" V10="15" V11="14" V12="11" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="14" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="18" V02="14" Flag0="0" V10="14" V11="18" V12="19" Flag1="0"/>
<Triangles2 V00="18" V01="20" V02="19" Flag0="0" V10="18" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="18" Flag0="0" V10="22" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="23" V02="22" Flag0="0" V10="23" V11="25" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="25" V02="26" Flag0="0" V10="25" V11="27" V12="26" Flag1="0"/>
<Triangles2 V00="25" V01="28" V02="27" Flag0="0" V10="29" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="30" V02="28" Flag0="0" V10="31" V11="30" V12="29" Flag1="0"/>
<LoadVertices Path="objects/custom_snowball/snowball_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="2" V02="3" Flag0="0" V10="4" V11="3" V12="5" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
<Triangles2 V00="8" V01="6" V02="7" Flag0="0" V10="8" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="6" V02="8" Flag0="0" V10="11" V11="6" V12="10" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="10" Flag0="0" V10="12" V11="10" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="10" V02="14" Flag0="0" V10="15" V11="13" V12="14" Flag1="0"/>
<Triangles2 V00="15" V01="14" V02="16" Flag0="0" V10="17" V11="13" V12="15" Flag1="0"/>
<Triangles2 V00="18" V01="13" V02="17" Flag0="0" V10="19" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="20" Flag0="0" V10="20" V11="17" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="20" V02="21" Flag0="0" V10="22" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="20" V02="22" Flag0="0" V10="25" V11="20" V12="24" Flag1="0"/>
<Triangles2 V00="26" V01="25" V02="24" Flag0="0" V10="26" V11="24" V12="27" Flag1="0"/>
<Triangles2 V00="27" V01="24" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/custom_snowball/snowball_vtx_0" VertexBufferIndex="0" VertexOffset="64" Count="26"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="2" V02="4" Flag0="0" V10="4" V11="2" V12="5" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="5" V12="7" Flag1="0"/>
<Triangles2 V00="8" V01="4" V02="6" Flag0="0" V10="9" V11="4" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="3" V02="4" Flag0="0" V10="10" V11="3" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="11" V02="3" Flag0="0" V10="12" V11="11" V12="10" Flag1="0"/>
<Triangles2 V00="3" V01="11" V02="0" Flag0="0" V10="13" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="0" V01="22" V02="1" Flag0="0" V10="14" V11="23" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="24" V02="19" Flag0="0" V10="22" V11="25" V12="13" Flag1="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,92 @@
<Vertex Version="0">
<Vtx X="0" Y="-1000" Z="0" S="-933" T="1827" R="0" G="129" B="0" A="255"/>
<Vtx X="425" Y="-851" Z="309" S="-729" T="1473" R="54" G="148" B="39" A="255"/>
<Vtx X="-162" Y="-851" Z="500" S="-1137" T="1473" R="235" G="148" B="64" A="255"/>
<Vtx X="263" Y="-526" Z="809" S="-933" T="1120" R="33" G="189" B="103" A="255"/>
<Vtx X="724" Y="-447" Z="526" S="-525" T="1120" R="92" G="199" B="67" A="255"/>
<Vtx X="588" Y="0" Z="809" S="-729" T="766" R="75" G="0" B="103" A="255"/>
<Vtx X="951" Y="0" Z="309" S="-321" T="766" R="121" G="0" B="39" A="255"/>
<Vtx X="851" Y="-526" Z="0" S="-117" T="1120" R="108" G="189" B="0" A="255"/>
<Vtx X="425" Y="-851" Z="309" S="-321" T="1473" R="54" G="148" B="39" A="255"/>
<Vtx X="425" Y="-851" Z="-309" S="88" T="1473" R="54" G="148" B="217" A="255"/>
<Vtx X="0" Y="-1000" Z="0" S="-117" T="1827" R="0" G="129" B="0" A="255"/>
<Vtx X="724" Y="-447" Z="-526" S="292" T="1120" R="92" G="199" B="189" A="255"/>
<Vtx X="951" Y="0" Z="-309" S="88" T="766" R="121" G="0" B="217" A="255"/>
<Vtx X="588" Y="0" Z="-809" S="496" T="766" R="75" G="0" B="153" A="255"/>
<Vtx X="263" Y="-526" Z="-809" S="700" T="1120" R="33" G="189" B="153" A="255"/>
<Vtx X="425" Y="-851" Z="-309" S="496" T="1473" R="54" G="148" B="217" A="255"/>
<Vtx X="-162" Y="-851" Z="-500" S="904" T="1473" R="235" G="148" B="192" A="255"/>
<Vtx X="0" Y="-1000" Z="0" S="700" T="1827" R="0" G="129" B="0" A="255"/>
<Vtx X="-276" Y="-447" Z="-851" S="1109" T="1120" R="221" G="199" B="148" A="255"/>
<Vtx X="0" Y="0" Z="-1000" S="904" T="766" R="0" G="0" B="129" A="255"/>
<Vtx X="-588" Y="0" Z="-809" S="1313" T="766" R="181" G="0" B="153" A="255"/>
<Vtx X="-688" Y="-526" Z="-500" S="1517" T="1120" R="169" G="189" B="193" A="255"/>
<Vtx X="-162" Y="-851" Z="-500" S="1313" T="1473" R="235" G="148" B="192" A="255"/>
<Vtx X="-526" Y="-851" Z="0" S="1721" T="1473" R="189" G="148" B="0" A="255"/>
<Vtx X="0" Y="-1000" Z="0" S="1517" T="1827" R="0" G="129" B="0" A="255"/>
<Vtx X="-894" Y="-447" Z="0" S="1925" T="1120" R="142" G="199" B="0" A="255"/>
<Vtx X="-951" Y="0" Z="-309" S="1721" T="766" R="135" G="0" B="217" A="255"/>
<Vtx X="-951" Y="0" Z="309" S="2130" T="766" R="135" G="0" B="39" A="255"/>
<Vtx X="-688" Y="-526" Z="500" S="2334" T="1120" R="169" G="189" B="63" A="255"/>
<Vtx X="-526" Y="-851" Z="0" S="2130" T="1473" R="189" G="148" B="0" A="255"/>
<Vtx X="-162" Y="-851" Z="500" S="2538" T="1473" R="235" G="148" B="64" A="255"/>
<Vtx X="0" Y="-1000" Z="0" S="2334" T="1827" R="0" G="129" B="0" A="255"/>
<Vtx X="-162" Y="-851" Z="500" S="2538" T="1473" R="235" G="148" B="64" A="255"/>
<Vtx X="-276" Y="-447" Z="851" S="2742" T="1120" R="221" G="199" B="108" A="255"/>
<Vtx X="-688" Y="-526" Z="500" S="2334" T="1120" R="169" G="189" B="63" A="255"/>
<Vtx X="-588" Y="0" Z="809" S="2538" T="766" R="181" G="0" B="103" A="255"/>
<Vtx X="-951" Y="0" Z="309" S="2130" T="766" R="135" G="0" B="39" A="255"/>
<Vtx X="-724" Y="447" Z="526" S="2334" T="412" R="164" G="57" B="67" A="255"/>
<Vtx X="-851" Y="526" Z="0" S="1925" T="412" R="148" G="67" B="0" A="255"/>
<Vtx X="-425" Y="851" Z="309" S="2130" T="59" R="202" G="108" B="39" A="255"/>
<Vtx X="-425" Y="851" Z="-309" S="1721" T="59" R="202" G="108" B="217" A="255"/>
<Vtx X="0" Y="1000" Z="0" S="1925" T="-295" R="0" G="127" B="0" A="255"/>
<Vtx X="-724" Y="447" Z="-526" S="1517" T="412" R="164" G="57" B="189" A="255"/>
<Vtx X="-951" Y="0" Z="-309" S="1721" T="766" R="135" G="0" B="217" A="255"/>
<Vtx X="-588" Y="0" Z="-809" S="1313" T="766" R="181" G="0" B="153" A="255"/>
<Vtx X="-263" Y="526" Z="-809" S="1109" T="412" R="223" G="67" B="153" A="255"/>
<Vtx X="-425" Y="851" Z="-309" S="1313" T="59" R="202" G="108" B="217" A="255"/>
<Vtx X="162" Y="851" Z="-500" S="904" T="59" R="21" G="108" B="192" A="255"/>
<Vtx X="0" Y="1000" Z="0" S="1109" T="-295" R="0" G="127" B="0" A="255"/>
<Vtx X="276" Y="447" Z="-851" S="700" T="412" R="35" G="57" B="148" A="255"/>
<Vtx X="0" Y="0" Z="-1000" S="904" T="766" R="0" G="0" B="129" A="255"/>
<Vtx X="588" Y="0" Z="-809" S="496" T="766" R="75" G="0" B="153" A="255"/>
<Vtx X="688" Y="526" Z="-500" S="292" T="412" R="87" G="67" B="193" A="255"/>
<Vtx X="162" Y="851" Z="-500" S="496" T="59" R="21" G="108" B="192" A="255"/>
<Vtx X="526" Y="851" Z="0" S="88" T="59" R="67" G="108" B="0" A="255"/>
<Vtx X="0" Y="1000" Z="0" S="292" T="-295" R="0" G="127" B="0" A="255"/>
<Vtx X="894" Y="447" Z="0" S="-117" T="412" R="114" G="57" B="0" A="255"/>
<Vtx X="951" Y="0" Z="-309" S="88" T="766" R="121" G="0" B="217" A="255"/>
<Vtx X="951" Y="0" Z="309" S="-321" T="766" R="121" G="0" B="39" A="255"/>
<Vtx X="688" Y="526" Z="500" S="-525" T="412" R="87" G="67" B="63" A="255"/>
<Vtx X="526" Y="851" Z="0" S="-321" T="59" R="67" G="108" B="0" A="255"/>
<Vtx X="162" Y="851" Z="500" S="-729" T="59" R="21" G="108" B="64" A="255"/>
<Vtx X="0" Y="1000" Z="0" S="-525" T="-295" R="0" G="127" B="0" A="255"/>
<Vtx X="276" Y="447" Z="851" S="-933" T="412" R="35" G="57" B="108" A="255"/>
<Vtx X="588" Y="0" Z="809" S="-729" T="766" R="75" G="0" B="103" A="255"/>
<Vtx X="688" Y="526" Z="500" S="-525" T="412" R="87" G="67" B="63" A="255"/>
<Vtx X="276" Y="447" Z="851" S="-933" T="412" R="35" G="57" B="108" A="255"/>
<Vtx X="0" Y="0" Z="1000" S="-1137" T="766" R="0" G="0" B="127" A="255"/>
<Vtx X="-263" Y="526" Z="809" S="-1342" T="412" R="223" G="67" B="103" A="255"/>
<Vtx X="162" Y="851" Z="500" S="-1137" T="59" R="21" G="108" B="64" A="255"/>
<Vtx X="-425" Y="851" Z="309" S="-1546" T="59" R="202" G="108" B="39" A="255"/>
<Vtx X="0" Y="1000" Z="0" S="-1342" T="-295" R="0" G="127" B="0" A="255"/>
<Vtx X="-724" Y="447" Z="526" S="-1750" T="412" R="164" G="57" B="67" A="255"/>
<Vtx X="-588" Y="0" Z="809" S="-1546" T="766" R="181" G="0" B="103" A="255"/>
<Vtx X="-276" Y="-447" Z="851" S="-1342" T="1120" R="221" G="199" B="108" A="255"/>
<Vtx X="263" Y="-526" Z="809" S="-933" T="1120" R="33" G="189" B="103" A="255"/>
<Vtx X="-162" Y="-851" Z="500" S="-1137" T="1473" R="235" G="148" B="64" A="255"/>
<Vtx X="951" Y="0" Z="-309" S="88" T="766" R="121" G="0" B="217" A="255"/>
<Vtx X="588" Y="0" Z="-809" S="496" T="766" R="75" G="0" B="153" A="255"/>
<Vtx X="688" Y="526" Z="-500" S="292" T="412" R="87" G="67" B="193" A="255"/>
<Vtx X="0" Y="0" Z="-1000" S="904" T="766" R="0" G="0" B="129" A="255"/>
<Vtx X="-588" Y="0" Z="-809" S="1313" T="766" R="181" G="0" B="153" A="255"/>
<Vtx X="-263" Y="526" Z="-809" S="1109" T="412" R="223" G="67" B="153" A="255"/>
<Vtx X="-951" Y="0" Z="-309" S="1721" T="766" R="135" G="0" B="217" A="255"/>
<Vtx X="-951" Y="0" Z="309" S="2130" T="766" R="135" G="0" B="39" A="255"/>
<Vtx X="-851" Y="526" Z="0" S="1925" T="412" R="148" G="67" B="0" A="255"/>
<Vtx X="951" Y="0" Z="309" S="-321" T="766" R="121" G="0" B="39" A="255"/>
<Vtx X="263" Y="-526" Z="-809" S="700" T="1120" R="33" G="189" B="153" A="255"/>
<Vtx X="-688" Y="-526" Z="-500" S="1517" T="1120" R="169" G="189" B="193" A="255"/>
<Vtx X="851" Y="-526" Z="0" S="-117" T="1120" R="108" G="189" B="0" A="255"/>
</Vertex>
@@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="-951" Y="-1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-951" Y="-1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-951" Y="1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-951" Y="1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="-1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="-1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="1000" Z="1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="951" Y="1000" Z="-1000" S="0" T="0" R="0" G="0" B="0" A="0"/>
</Vertex>
@@ -0,0 +1,16 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoItemDL_red"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoItemDL_tri_0"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoItemDL_yellow"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoItemDL_tri_1"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoItemDL_blue"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoItemDL_tri_2"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoItemDL_orange"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoItemDL_tri_3"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoItemDL_purple"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoItemDL_tri_4"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoItemDL_green"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoItemDL_tri_5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<Triangle1 V00="14" V01="13" V02="10"/>
<Triangle1 V00="14" V01="10" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="2" V02="1"/>
<Triangle1 V00="4" V01="1" V02="5"/>
<Triangle1 V00="6" V01="5" V02="1"/>
<Triangle1 V00="6" V01="1" V02="7"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="15" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="8" V01="11" V02="12"/>
<Triangle1 V00="8" V01="12" V02="3"/>
<Triangle1 V00="13" V01="14" V02="5"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="6" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="4"/>
<Triangle1 V00="8" V01="3" V02="4"/>
<Triangle1 V00="8" V01="1" V02="3"/>
<Triangle1 V00="8" V01="9" V02="1"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="8" V01="11" V02="10"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="8" V01="13" V02="12"/>
<Triangle1 V00="8" V01="4" V02="13"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="7" V02="5"/>
<Triangle1 V00="4" V01="8" V02="7"/>
<Triangle1 V00="4" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="13"/>
<Triangle1 V00="10" V01="13" V02="14"/>
<Triangle1 V00="10" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="12" V01="3" V02="13"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="31" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="3" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="14" V02="12"/>
<Triangle1 V00="15" V01="12" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="47" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="0" V01="2" V02="5"/>
<Triangle1 V00="6" V01="5" V02="2"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="0" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_1" VertexBufferIndex="0" VertexOffset="63" Count="12"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="0" V01="6" V02="1"/>
<Triangle1 V00="0" V01="7" V02="6"/>
<Triangle1 V00="8" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="6"/>
<Triangle1 V00="10" V01="1" V02="6"/>
<Triangle1 V00="10" V01="6" V02="11"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="5" V02="4"/>
<Triangle1 V00="6" V01="4" V02="7"/>
<Triangle1 V00="8" V01="7" V02="4"/>
<Triangle1 V00="8" V01="4" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="8" V01="11" V02="12"/>
<Triangle1 V00="8" V01="12" V02="13"/>
<Triangle1 V00="0" V01="5" V02="14"/>
<Triangle1 V00="15" V01="14" V02="5"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_2" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="4"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_2" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="6" V02="12"/>
<Triangle1 V00="11" V01="14" V02="6"/>
<Triangle1 V00="11" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_2" VertexBufferIndex="0" VertexOffset="48" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="1" V02="3"/>
<Triangle1 V00="4" V01="3" V02="5"/>
<Triangle1 V00="6" V01="5" V02="3"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="4" V01="5" V02="8"/>
<Triangle1 V00="9" V01="8" V02="5"/>
<Triangle1 V00="9" V01="5" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="13" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_2" VertexBufferIndex="0" VertexOffset="63" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_3" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<Triangle1 V00="0" V01="13" V02="10"/>
<Triangle1 V00="0" V01="10" V02="14"/>
<Triangle1 V00="12" V01="15" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_3" VertexBufferIndex="0" VertexOffset="16" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="5" V01="6" V02="2"/>
<Triangle1 V00="5" V01="2" V02="7"/>
<Triangle1 V00="8" V01="7" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="13" V02="4"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_3" VertexBufferIndex="0" VertexOffset="30" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="0" V01="7" V02="6"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="8" V01="11" V02="10"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="12"/>
<Triangle1 V00="13" V01="14" V02="11"/>
<Triangle1 V00="15" V01="11" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_3" VertexBufferIndex="0" VertexOffset="46" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="3" V01="5" V02="6"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="7" V01="10" V02="11"/>
<Triangle1 V00="7" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<Triangle1 V00="15" V01="11" V02="4"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_3" VertexBufferIndex="0" VertexOffset="62" Count="4"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_4" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="0" V01="11" V02="8"/>
<Triangle1 V00="0" V01="8" V02="12"/>
<Triangle1 V00="10" V01="11" V02="13"/>
<Triangle1 V00="14" V01="13" V02="11"/>
<Triangle1 V00="14" V01="15" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_4" VertexBufferIndex="0" VertexOffset="16" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="1" V02="4"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="3" V01="5" V02="6"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="7" V01="10" V02="2"/>
<Triangle1 V00="0" V01="2" V02="10"/>
<Triangle1 V00="0" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_4" VertexBufferIndex="0" VertexOffset="30" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_4" VertexBufferIndex="0" VertexOffset="46" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="6" V01="5" V02="2"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="11" V02="9"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="13" V01="14" V02="12"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_4" VertexBufferIndex="0" VertexOffset="62" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_5" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="12" V01="11" V02="8"/>
<Triangle1 V00="12" V01="8" V02="13"/>
<Triangle1 V00="10" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_5" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="5" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="5" V01="8" V02="9"/>
<Triangle1 V00="5" V01="9" V02="10"/>
<Triangle1 V00="5" V01="10" V02="11"/>
<Triangle1 V00="5" V01="11" V02="4"/>
<Triangle1 V00="3" V01="4" V02="11"/>
<Triangle1 V00="3" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_5" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="4" V02="7"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="10" V01="7" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_5" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="4" V01="9" V02="10"/>
<Triangle1 V00="4" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="12" V01="13" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_6" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="12" V01="11" V02="8"/>
<Triangle1 V00="12" V01="8" V02="13"/>
<Triangle1 V00="10" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_6" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="5" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="5" V01="8" V02="9"/>
<Triangle1 V00="5" V01="9" V02="10"/>
<Triangle1 V00="5" V01="10" V02="11"/>
<Triangle1 V00="5" V01="11" V02="4"/>
<Triangle1 V00="3" V01="4" V02="11"/>
<Triangle1 V00="3" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_6" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="4" V02="7"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="10" V01="7" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoItemDL_vtx_6" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="4" V01="9" V02="10"/>
<Triangle1 V00="4" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="12" V01="13" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="240" T="240" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="166" T="240" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="112" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="112" T="442" R="183" G="27" B="156" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="240" T="496" R="0" G="33" B="133" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="-16" R="166" G="178" B="45" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="422" T="-16" R="183" G="156" B="229" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="368" T="112" R="0" G="133" B="223" A="255"/>
<Vtx X="144" Y="256" Z="-315" S="386" T="240" R="73" G="156" B="229" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="365" Z="-415" S="368" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="240" T="240" R="0" G="133" B="223" A="255"/>
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="144" Y="506" Z="-459" S="368" T="478" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="365" Z="-415" S="368" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="240" T="496" R="0" G="33" B="133" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="607" Z="-350" S="496" T="496" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="670" Z="-387" S="496" T="624" R="0" G="110" B="193" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="368" T="624" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="368" T="698" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="607" Z="-350" S="496" T="752" R="166" G="78" B="211" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="570" T="752" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="624" T="624" R="0" G="123" B="33" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="368" T="954" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="1008" R="166" G="178" B="45" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="368" T="880" R="166" G="211" B="178" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="422" T="752" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="368" T="880" R="166" G="211" B="178" A="255"/>
<Vtx X="-177" Y="607" Z="-350" S="496" T="752" R="166" G="78" B="211" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="0" Y="389" Z="-20" S="624" T="112" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="624" T="38" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="-16" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="1008" R="166" G="178" B="45" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="570" T="1008" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="542" Z="-109" S="624" T="880" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="624" T="806" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="144" Y="401" Z="-65" S="624" T="258" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="144" Y="401" Z="-65" S="624" T="258" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="177" Y="542" Z="-109" S="624" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="651" Z="-209" S="606" T="496" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="607" Z="-350" S="496" T="496" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="670" Z="-387" S="496" T="624" R="0" G="110" B="193" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="624" T="624" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="578" Z="-45" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="389" Z="-20" S="752" T="240" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="880" T="294" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="542" Z="-109" S="880" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="826" T="496" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="752" T="496" R="0" G="123" B="33" A="255"/>
</Vertex>
@@ -0,0 +1,77 @@
<Vertex Version="0">
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="240" T="240" R="78" G="172" B="201" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="166" T="240" R="27" G="133" B="243" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="112" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="422" T="-16" R="27" G="133" B="243" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="368" T="112" R="78" G="172" B="201" A="255"/>
<Vtx X="-389" Y="18" Z="-10" S="496" T="-16" R="33" G="150" B="61" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="624" T="38" R="27" G="206" B="114" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="624" T="112" R="78" G="6" B="100" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="368" T="880" R="211" G="144" B="217" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="368" T="954" R="27" G="133" B="243" A="255"/>
<Vtx X="-389" Y="18" Z="-10" S="496" T="1008" R="33" G="150" B="61" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="570" T="1008" R="27" G="206" B="114" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="624" T="880" R="211" G="234" B="117" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="624" T="880" R="211" G="234" B="117" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="624" T="806" R="156" G="13" B="77" A="255"/>
<Vtx X="-695" Y="171" Z="-99" S="496" T="752" R="133" G="228" B="16" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="880" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="880" T="294" R="27" G="206" B="114" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="752" T="240" R="78" G="6" B="100" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="112" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="112" T="442" R="156" G="196" B="206" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="240" T="496" R="178" G="250" B="156" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="422" T="752" R="156" G="196" B="206" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="368" T="880" R="211" G="144" B="217" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="368" T="624" R="178" G="250" B="156" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="368" T="698" R="156" G="196" B="206" A="255"/>
<Vtx X="-695" Y="171" Z="-99" S="496" T="752" R="133" G="228" B="16" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="752" T="496" R="178" G="84" B="55" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="826" T="496" R="156" G="13" B="77" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="880" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="570" T="752" R="156" G="13" B="77" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="624" T="624" R="178" G="84" B="55" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-256" Y="200" Z="-282" S="386" T="240" R="100" G="243" B="179" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="240" T="240" R="78" G="172" B="201" A="255"/>
<Vtx X="-365" Y="271" Z="-361" S="368" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-365" Y="271" Z="-361" S="368" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="-506" Y="325" Z="-354" S="368" T="478" R="229" G="50" B="142" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="240" T="496" R="178" G="250" B="156" A="255"/>
<Vtx X="-518" Y="436" Z="-252" S="496" T="496" R="223" G="106" B="195" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="368" T="624" R="178" G="250" B="156" A="255"/>
<Vtx X="-212" Y="283" Z="-163" S="496" T="240" R="123" G="28" B="240" A="255"/>
<Vtx X="-256" Y="200" Z="-282" S="386" T="240" R="100" G="243" B="179" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="368" T="112" R="78" G="172" B="201" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="752" T="240" R="78" G="6" B="100" A="255"/>
<Vtx X="-256" Y="345" Z="-32" S="624" T="258" R="100" G="60" B="50" A="255"/>
<Vtx X="-365" Y="448" Z="-54" S="624" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-365" Y="448" Z="-54" S="624" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="-256" Y="345" Z="-32" S="624" T="258" R="100" G="60" B="50" A="255"/>
<Vtx X="-212" Y="283" Z="-163" S="496" T="240" R="123" G="28" B="240" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="624" T="112" R="78" G="6" B="100" A="255"/>
<Vtx X="-506" Y="470" Z="-104" S="606" T="496" R="229" G="123" B="13" A="255"/>
<Vtx X="-518" Y="436" Z="-252" S="496" T="496" R="223" G="106" B="195" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="624" T="624" R="178" G="84" B="55" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="752" T="496" R="178" G="84" B="55" A="255"/>
</Vertex>
@@ -0,0 +1,70 @@
<Vertex Version="0">
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="-16" R="123" G="228" B="16" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="422" T="-16" R="100" G="196" B="206" A="255"/>
<Vtx X="-300" Y="-239" Z="-66" S="368" T="112" R="78" G="250" B="156" A="255"/>
<Vtx X="-401" Y="-128" Z="-93" S="386" T="240" R="27" G="50" B="142" A="255"/>
<Vtx X="-389" Y="-18" Z="10" S="496" T="240" R="33" G="106" B="195" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-542" Y="-183" Z="-99" S="368" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="-453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-300" Y="-239" Z="-66" S="240" T="240" R="78" G="250" B="156" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="166" T="240" R="100" G="196" B="206" A="255"/>
<Vtx X="-365" Y="-448" Z="54" S="112" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="112" T="442" R="229" G="133" B="243" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="240" T="496" R="178" G="172" B="201" A="255"/>
<Vtx X="-401" Y="16" Z="157" S="624" T="258" R="27" G="123" B="13" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-542" Y="-6" Z="207" S="624" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="-401" Y="16" Z="157" S="624" T="258" R="27" G="123" B="13" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-300" Y="-62" Z="240" S="752" T="240" R="78" G="84" B="55" A="255"/>
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-300" Y="-62" Z="240" S="624" T="112" R="78" G="84" B="55" A="255"/>
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="624" T="38" R="100" G="13" B="77" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="-16" R="123" G="228" B="16" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="880" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="880" T="294" R="100" G="13" B="77" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="570" T="1008" R="100" G="13" B="77" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="624" T="880" R="45" G="234" B="117" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="1008" R="123" G="228" B="16" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="570" T="1008" R="100" G="13" B="77" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="368" T="954" R="100" G="196" B="206" A="255"/>
<Vtx X="-365" Y="-448" Z="54" S="368" T="880" R="45" G="144" B="217" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="422" T="752" R="229" G="133" B="243" A="255"/>
<Vtx X="-518" Y="-436" Z="252" S="496" T="752" R="223" G="150" B="61" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="752" T="496" R="178" G="6" B="100" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="826" T="496" R="229" G="206" B="114" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="880" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="570" T="752" R="229" G="206" B="114" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="624" T="624" R="178" G="6" B="100" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="368" T="698" R="229" G="133" B="243" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="368" T="624" R="178" G="172" B="201" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-651" Y="-253" Z="-21" S="368" T="478" R="156" G="243" B="179" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="368" T="624" R="178" G="172" B="201" A="255"/>
<Vtx X="-695" Y="-171" Z="99" S="496" T="496" R="133" G="28" B="240" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-651" Y="-109" Z="229" S="606" T="496" R="156" G="60" B="50" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="624" T="624" R="178" G="6" B="100" A="255"/>
<Vtx X="-542" Y="-6" Z="207" S="624" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="752" T="496" R="178" G="6" B="100" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="624" T="880" R="45" G="234" B="117" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="624" T="806" R="229" G="206" B="114" A="255"/>
<Vtx X="-518" Y="-436" Z="252" S="496" T="752" R="223" G="150" B="61" A="255"/>
<Vtx X="-453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="240" T="496" R="178" G="172" B="201" A="255"/>
<Vtx X="-651" Y="-253" Z="-21" S="368" T="478" R="156" G="243" B="179" A="255"/>
<Vtx X="-542" Y="-183" Z="-99" S="368" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
</Vertex>
@@ -0,0 +1,68 @@
<Vertex Version="0">
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="240" T="240" R="0" G="33" B="133" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="166" T="240" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="-542" Z="109" S="112" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="112" T="442" R="73" G="156" B="229" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="240" T="496" R="0" G="133" B="223" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="-16" R="90" G="78" B="211" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="422" T="-16" R="73" G="27" B="156" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="368" T="112" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="-401" Z="65" S="386" T="240" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="-300" Z="173" S="496" T="240" R="166" G="78" B="211" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-542" Z="109" S="368" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="240" T="240" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="-256" Z="315" S="624" T="258" R="183" G="100" B="27" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-365" Z="415" S="624" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="-256" Z="315" S="624" T="258" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="-212" Z="327" S="752" T="240" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="-177" Y="-300" Z="173" S="496" T="240" R="166" G="78" B="211" A="255"/>
<Vtx X="0" Y="-212" Z="327" S="624" T="112" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="624" T="38" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="-16" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="880" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="880" T="294" R="73" G="100" B="27" A="255"/>
<Vtx X="250" Y="-453" Z="262" S="496" T="880" R="127" G="0" B="0" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="570" T="1008" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="624" T="880" R="90" G="45" B="78" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="1008" R="90" G="78" B="211" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="368" T="954" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="-542" Z="109" S="368" T="880" R="90" G="211" B="178" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="422" T="752" R="73" G="156" B="229" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
<Vtx X="0" Y="-670" Z="387" S="496" T="624" R="0" G="146" B="63" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="368" T="698" R="73" G="156" B="229" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="368" T="624" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="-651" Z="209" S="368" T="478" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="-607" Z="350" S="496" T="496" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-542" Z="109" S="368" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="240" T="496" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="-651" Z="209" S="368" T="478" R="183" G="156" B="229" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="-518" Z="503" S="752" T="496" R="0" G="223" B="123" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="826" T="496" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="880" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="0" Y="-670" Z="387" S="496" T="624" R="0" G="146" B="63" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="570" T="752" R="73" G="229" B="100" A="255"/>
<Vtx X="0" Y="-518" Z="503" S="624" T="624" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="-506" Z="459" S="606" T="496" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="-607" Z="350" S="496" T="496" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-365" Z="415" S="624" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="250" Y="-453" Z="262" S="496" T="880" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="624" T="880" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="624" T="806" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
</Vertex>
@@ -0,0 +1,69 @@
<Vertex Version="0">
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="240" T="240" R="178" G="250" B="156" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="166" T="240" R="229" G="50" B="142" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="112" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="-16" R="223" G="106" B="195" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="422" T="-16" R="229" G="50" B="142" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="368" T="112" R="178" G="250" B="156" A="255"/>
<Vtx X="256" Y="-345" Z="32" S="386" T="240" R="156" G="196" B="206" A="255"/>
<Vtx X="212" Y="-283" Z="163" S="496" T="240" R="133" G="228" B="16" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="365" Y="-448" Z="54" S="368" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="240" T="240" R="178" G="250" B="156" A="255"/>
<Vtx X="506" Y="-470" Z="104" S="368" T="478" R="27" G="133" B="243" A="255"/>
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="240" T="496" R="78" G="172" B="201" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="506" Y="-470" Z="104" S="368" T="478" R="27" G="133" B="243" A="255"/>
<Vtx X="518" Y="-436" Z="252" S="496" T="496" R="33" G="150" B="61" A="255"/>
<Vtx X="670" Y="-335" Z="193" S="496" T="624" R="110" G="201" B="32" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="368" T="624" R="78" G="172" B="201" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="368" T="698" R="100" G="243" B="179" A="255"/>
<Vtx X="695" Y="-171" Z="99" S="496" T="752" R="123" G="28" B="240" A="255"/>
<Vtx X="670" Y="-335" Z="193" S="496" T="624" R="110" G="201" B="32" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="570" T="752" R="100" G="60" B="50" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="624" T="624" R="78" G="6" B="100" A="255"/>
<Vtx X="506" Y="-325" Z="354" S="606" T="496" R="27" G="206" B="114" A="255"/>
<Vtx X="365" Y="-271" Z="361" S="624" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="752" T="496" R="78" G="6" B="100" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="624" T="112" R="178" G="84" B="55" A="255"/>
<Vtx X="401" Y="16" Z="157" S="624" T="38" R="229" G="123" B="13" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="-16" R="223" G="106" B="195" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="880" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="401" Y="16" Z="157" S="880" T="294" R="229" G="123" B="13" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="752" T="240" R="178" G="84" B="55" A="255"/>
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="112" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="112" T="442" R="100" G="243" B="179" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="240" T="496" R="78" G="172" B="201" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="752" T="496" R="78" G="6" B="100" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="826" T="496" R="100" G="60" B="50" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="880" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="752" T="240" R="178" G="84" B="55" A="255"/>
<Vtx X="256" Y="-200" Z="282" S="624" T="258" R="156" G="13" B="77" A="255"/>
<Vtx X="365" Y="-271" Z="361" S="624" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="212" Y="-283" Z="163" S="496" T="240" R="133" G="228" B="16" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="624" T="112" R="178" G="84" B="55" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="368" T="880" R="45" G="22" B="139" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="368" T="954" R="229" G="50" B="142" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="422" T="752" R="100" G="243" B="179" A="255"/>
<Vtx X="695" Y="-171" Z="99" S="496" T="752" R="123" G="28" B="240" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="624" T="806" R="100" G="60" B="50" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="624" T="880" R="45" G="112" B="39" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="401" Y="16" Z="157" S="570" T="1008" R="229" G="123" B="13" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="624" T="880" R="45" G="112" B="39" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="1008" R="223" G="106" B="195" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="368" T="954" R="229" G="50" B="142" A="255"/>
</Vertex>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="166" T="240" R="156" G="243" B="179" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="422" T="-16" R="156" G="243" B="179" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="368" T="112" R="178" G="172" B="201" A="255"/>
<Vtx X="401" Y="-16" Z="-157" S="386" T="240" R="229" G="133" B="243" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="6" Z="-207" S="368" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="695" Y="171" Z="-99" S="496" T="496" R="123" G="228" B="16" A="255"/>
<Vtx X="670" Y="335" Z="-193" S="496" T="624" R="110" G="55" B="224" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="368" T="624" R="78" G="250" B="156" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="368" T="698" R="27" G="50" B="142" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="570" T="752" R="27" G="123" B="13" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="624" T="624" R="78" G="84" B="55" A="255"/>
<Vtx X="651" Y="253" Z="21" S="606" T="496" R="100" G="13" B="77" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="752" T="496" R="78" G="84" B="55" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="880" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="880" T="294" R="156" G="60" B="50" A="255"/>
<Vtx X="300" Y="239" Z="66" S="752" T="240" R="178" G="6" B="100" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="401" Y="128" Z="93" S="624" T="258" R="229" G="206" B="114" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="624" T="38" R="156" G="60" B="50" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="112" T="442" R="27" G="50" B="142" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="422" T="752" R="27" G="50" B="142" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="368" T="880" R="211" G="22" B="139" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="368" T="954" R="156" G="243" B="179" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="1008" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="570" T="1008" R="156" G="60" B="50" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="624" T="880" R="211" G="112" B="39" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="624" T="806" R="27" G="123" B="13" A="255"/>
</Vertex>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="166" T="240" R="156" G="243" B="179" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="422" T="-16" R="156" G="243" B="179" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="368" T="112" R="178" G="172" B="201" A="255"/>
<Vtx X="401" Y="-16" Z="-157" S="386" T="240" R="229" G="133" B="243" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="6" Z="-207" S="368" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="695" Y="171" Z="-99" S="496" T="496" R="123" G="228" B="16" A="255"/>
<Vtx X="670" Y="335" Z="-193" S="496" T="624" R="110" G="55" B="224" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="368" T="624" R="78" G="250" B="156" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="368" T="698" R="27" G="50" B="142" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="570" T="752" R="27" G="123" B="13" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="624" T="624" R="78" G="84" B="55" A="255"/>
<Vtx X="651" Y="253" Z="21" S="606" T="496" R="100" G="13" B="77" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="752" T="496" R="78" G="84" B="55" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="880" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="880" T="294" R="156" G="60" B="50" A="255"/>
<Vtx X="300" Y="239" Z="66" S="752" T="240" R="178" G="6" B="100" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="401" Y="128" Z="93" S="624" T="258" R="229" G="206" B="114" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="624" T="38" R="156" G="60" B="50" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="112" T="442" R="27" G="50" B="142" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="422" T="752" R="27" G="50" B="142" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="368" T="880" R="211" G="22" B="139" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="368" T="954" R="156" G="243" B="179" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="1008" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="570" T="1008" R="156" G="60" B="50" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="624" T="880" R="211" G="112" B="39" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="624" T="806" R="27" G="123" B="13" A="255"/>
</Vertex>
@@ -0,0 +1,16 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoJunkDL_red_junk"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoJunkDL_tri_0"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoJunkDL_yellow_junk"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoJunkDL_tri_1"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoJunkDL_blue_junk"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoJunkDL_tri_2"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoJunkDL_orange_junk"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoJunkDL_tri_3"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoJunkDL_purple_junk"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoJunkDL_tri_4"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoJunkDL_green_junk"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoJunkDL_tri_5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<Triangle1 V00="14" V01="13" V02="10"/>
<Triangle1 V00="14" V01="10" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="2" V02="1"/>
<Triangle1 V00="4" V01="1" V02="5"/>
<Triangle1 V00="6" V01="5" V02="1"/>
<Triangle1 V00="6" V01="1" V02="7"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="15" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="8" V01="11" V02="12"/>
<Triangle1 V00="8" V01="12" V02="3"/>
<Triangle1 V00="13" V01="14" V02="5"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="6" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="4"/>
<Triangle1 V00="8" V01="3" V02="4"/>
<Triangle1 V00="8" V01="1" V02="3"/>
<Triangle1 V00="8" V01="9" V02="1"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="8" V01="11" V02="10"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="8" V01="13" V02="12"/>
<Triangle1 V00="8" V01="4" V02="13"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="7" V02="5"/>
<Triangle1 V00="4" V01="8" V02="7"/>
<Triangle1 V00="4" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="13"/>
<Triangle1 V00="10" V01="13" V02="14"/>
<Triangle1 V00="10" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="12" V01="3" V02="13"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1" VertexBufferIndex="0" VertexOffset="31" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="3" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="14" V02="12"/>
<Triangle1 V00="15" V01="12" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1" VertexBufferIndex="0" VertexOffset="47" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="0" V01="2" V02="5"/>
<Triangle1 V00="6" V01="5" V02="2"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="0" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1" VertexBufferIndex="0" VertexOffset="63" Count="12"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="0" V01="6" V02="1"/>
<Triangle1 V00="0" V01="7" V02="6"/>
<Triangle1 V00="8" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="6"/>
<Triangle1 V00="10" V01="1" V02="6"/>
<Triangle1 V00="10" V01="6" V02="11"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="5" V02="4"/>
<Triangle1 V00="6" V01="4" V02="7"/>
<Triangle1 V00="8" V01="7" V02="4"/>
<Triangle1 V00="8" V01="4" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="8" V01="11" V02="12"/>
<Triangle1 V00="8" V01="12" V02="13"/>
<Triangle1 V00="0" V01="5" V02="14"/>
<Triangle1 V00="15" V01="14" V02="5"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="4"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="6" V02="12"/>
<Triangle1 V00="11" V01="14" V02="6"/>
<Triangle1 V00="11" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2" VertexBufferIndex="0" VertexOffset="48" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="1" V02="3"/>
<Triangle1 V00="4" V01="3" V02="5"/>
<Triangle1 V00="6" V01="5" V02="3"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="4" V01="5" V02="8"/>
<Triangle1 V00="9" V01="8" V02="5"/>
<Triangle1 V00="9" V01="5" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="13" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2" VertexBufferIndex="0" VertexOffset="63" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<Triangle1 V00="0" V01="13" V02="10"/>
<Triangle1 V00="0" V01="10" V02="14"/>
<Triangle1 V00="12" V01="15" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3" VertexBufferIndex="0" VertexOffset="16" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="5" V01="6" V02="2"/>
<Triangle1 V00="5" V01="2" V02="7"/>
<Triangle1 V00="8" V01="7" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="13" V02="4"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3" VertexBufferIndex="0" VertexOffset="30" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="0" V01="7" V02="6"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="8" V01="11" V02="10"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="12"/>
<Triangle1 V00="13" V01="14" V02="11"/>
<Triangle1 V00="15" V01="11" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3" VertexBufferIndex="0" VertexOffset="46" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="3" V01="5" V02="6"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="7" V01="10" V02="11"/>
<Triangle1 V00="7" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<Triangle1 V00="15" V01="11" V02="4"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3" VertexBufferIndex="0" VertexOffset="62" Count="4"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="0" V01="11" V02="8"/>
<Triangle1 V00="0" V01="8" V02="12"/>
<Triangle1 V00="10" V01="11" V02="13"/>
<Triangle1 V00="14" V01="13" V02="11"/>
<Triangle1 V00="14" V01="15" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4" VertexBufferIndex="0" VertexOffset="16" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="1" V02="4"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="3" V01="5" V02="6"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="7" V01="10" V02="2"/>
<Triangle1 V00="0" V01="2" V02="10"/>
<Triangle1 V00="0" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4" VertexBufferIndex="0" VertexOffset="30" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4" VertexBufferIndex="0" VertexOffset="46" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="6" V01="5" V02="2"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="11" V02="9"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="13" V01="14" V02="12"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4" VertexBufferIndex="0" VertexOffset="62" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_5" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="12" V01="11" V02="8"/>
<Triangle1 V00="12" V01="8" V02="13"/>
<Triangle1 V00="10" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_5" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="5" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="5" V01="8" V02="9"/>
<Triangle1 V00="5" V01="9" V02="10"/>
<Triangle1 V00="5" V01="10" V02="11"/>
<Triangle1 V00="5" V01="11" V02="4"/>
<Triangle1 V00="3" V01="4" V02="11"/>
<Triangle1 V00="3" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_5" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="4" V02="7"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="10" V01="7" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_5" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="4" V01="9" V02="10"/>
<Triangle1 V00="4" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="12" V01="13" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_6" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="12" V01="11" V02="8"/>
<Triangle1 V00="12" V01="8" V02="13"/>
<Triangle1 V00="10" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_6" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="5" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="5" V01="8" V02="9"/>
<Triangle1 V00="5" V01="9" V02="10"/>
<Triangle1 V00="5" V01="10" V02="11"/>
<Triangle1 V00="5" V01="11" V02="4"/>
<Triangle1 V00="3" V01="4" V02="11"/>
<Triangle1 V00="3" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_6" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="4" V02="7"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="10" V01="7" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoJunkDL_vtx_6" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="4" V01="9" V02="10"/>
<Triangle1 V00="4" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="12" V01="13" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="240" T="240" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="166" T="240" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="112" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="112" T="442" R="183" G="27" B="156" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="240" T="496" R="0" G="33" B="133" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="-16" R="166" G="178" B="45" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="422" T="-16" R="183" G="156" B="229" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="368" T="112" R="0" G="133" B="223" A="255"/>
<Vtx X="144" Y="256" Z="-315" S="386" T="240" R="73" G="156" B="229" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="365" Z="-415" S="368" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="240" T="240" R="0" G="133" B="223" A="255"/>
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="144" Y="506" Z="-459" S="368" T="478" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="365" Z="-415" S="368" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="240" T="496" R="0" G="33" B="133" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="607" Z="-350" S="496" T="496" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="670" Z="-387" S="496" T="624" R="0" G="110" B="193" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="368" T="624" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="368" T="698" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="607" Z="-350" S="496" T="752" R="166" G="78" B="211" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="570" T="752" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="624" T="624" R="0" G="123" B="33" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="368" T="954" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="1008" R="166" G="178" B="45" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="368" T="880" R="166" G="211" B="178" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="422" T="752" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="368" T="880" R="166" G="211" B="178" A="255"/>
<Vtx X="-177" Y="607" Z="-350" S="496" T="752" R="166" G="78" B="211" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="0" Y="389" Z="-20" S="624" T="112" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="624" T="38" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="-16" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="1008" R="166" G="178" B="45" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="570" T="1008" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="542" Z="-109" S="624" T="880" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="624" T="806" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="144" Y="401" Z="-65" S="624" T="258" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="144" Y="401" Z="-65" S="624" T="258" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="177" Y="542" Z="-109" S="624" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="651" Z="-209" S="606" T="496" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="607" Z="-350" S="496" T="496" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="670" Z="-387" S="496" T="624" R="0" G="110" B="193" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="624" T="624" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="578" Z="-45" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="389" Z="-20" S="752" T="240" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="880" T="294" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="542" Z="-109" S="880" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="826" T="496" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="752" T="496" R="0" G="123" B="33" A="255"/>
</Vertex>
@@ -0,0 +1,77 @@
<Vertex Version="0">
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="240" T="240" R="78" G="172" B="201" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="166" T="240" R="27" G="133" B="243" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="112" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="422" T="-16" R="27" G="133" B="243" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="368" T="112" R="78" G="172" B="201" A="255"/>
<Vtx X="-389" Y="18" Z="-10" S="496" T="-16" R="33" G="150" B="61" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="624" T="38" R="27" G="206" B="114" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="624" T="112" R="78" G="6" B="100" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="368" T="880" R="211" G="144" B="217" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="368" T="954" R="27" G="133" B="243" A="255"/>
<Vtx X="-389" Y="18" Z="-10" S="496" T="1008" R="33" G="150" B="61" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="570" T="1008" R="27" G="206" B="114" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="624" T="880" R="211" G="234" B="117" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="624" T="880" R="211" G="234" B="117" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="624" T="806" R="156" G="13" B="77" A="255"/>
<Vtx X="-695" Y="171" Z="-99" S="496" T="752" R="133" G="228" B="16" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="880" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="880" T="294" R="27" G="206" B="114" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="752" T="240" R="78" G="6" B="100" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="112" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="112" T="442" R="156" G="196" B="206" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="240" T="496" R="178" G="250" B="156" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="422" T="752" R="156" G="196" B="206" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="368" T="880" R="211" G="144" B="217" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="368" T="624" R="178" G="250" B="156" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="368" T="698" R="156" G="196" B="206" A="255"/>
<Vtx X="-695" Y="171" Z="-99" S="496" T="752" R="133" G="228" B="16" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="752" T="496" R="178" G="84" B="55" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="826" T="496" R="156" G="13" B="77" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="880" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="570" T="752" R="156" G="13" B="77" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="624" T="624" R="178" G="84" B="55" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-256" Y="200" Z="-282" S="386" T="240" R="100" G="243" B="179" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="240" T="240" R="78" G="172" B="201" A="255"/>
<Vtx X="-365" Y="271" Z="-361" S="368" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-365" Y="271" Z="-361" S="368" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="-506" Y="325" Z="-354" S="368" T="478" R="229" G="50" B="142" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="240" T="496" R="178" G="250" B="156" A="255"/>
<Vtx X="-518" Y="436" Z="-252" S="496" T="496" R="223" G="106" B="195" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="368" T="624" R="178" G="250" B="156" A="255"/>
<Vtx X="-212" Y="283" Z="-163" S="496" T="240" R="123" G="28" B="240" A="255"/>
<Vtx X="-256" Y="200" Z="-282" S="386" T="240" R="100" G="243" B="179" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="368" T="112" R="78" G="172" B="201" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="752" T="240" R="78" G="6" B="100" A="255"/>
<Vtx X="-256" Y="345" Z="-32" S="624" T="258" R="100" G="60" B="50" A="255"/>
<Vtx X="-365" Y="448" Z="-54" S="624" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-365" Y="448" Z="-54" S="624" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="-256" Y="345" Z="-32" S="624" T="258" R="100" G="60" B="50" A="255"/>
<Vtx X="-212" Y="283" Z="-163" S="496" T="240" R="123" G="28" B="240" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="624" T="112" R="78" G="6" B="100" A="255"/>
<Vtx X="-506" Y="470" Z="-104" S="606" T="496" R="229" G="123" B="13" A="255"/>
<Vtx X="-518" Y="436" Z="-252" S="496" T="496" R="223" G="106" B="195" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="624" T="624" R="178" G="84" B="55" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="752" T="496" R="178" G="84" B="55" A="255"/>
</Vertex>
@@ -0,0 +1,70 @@
<Vertex Version="0">
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="-16" R="123" G="228" B="16" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="422" T="-16" R="100" G="196" B="206" A="255"/>
<Vtx X="-300" Y="-239" Z="-66" S="368" T="112" R="78" G="250" B="156" A="255"/>
<Vtx X="-401" Y="-128" Z="-93" S="386" T="240" R="27" G="50" B="142" A="255"/>
<Vtx X="-389" Y="-18" Z="10" S="496" T="240" R="33" G="106" B="195" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-542" Y="-183" Z="-99" S="368" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="-453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-300" Y="-239" Z="-66" S="240" T="240" R="78" G="250" B="156" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="166" T="240" R="100" G="196" B="206" A="255"/>
<Vtx X="-365" Y="-448" Z="54" S="112" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="112" T="442" R="229" G="133" B="243" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="240" T="496" R="178" G="172" B="201" A="255"/>
<Vtx X="-401" Y="16" Z="157" S="624" T="258" R="27" G="123" B="13" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-542" Y="-6" Z="207" S="624" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="-401" Y="16" Z="157" S="624" T="258" R="27" G="123" B="13" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-300" Y="-62" Z="240" S="752" T="240" R="78" G="84" B="55" A="255"/>
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-300" Y="-62" Z="240" S="624" T="112" R="78" G="84" B="55" A="255"/>
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="624" T="38" R="100" G="13" B="77" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="-16" R="123" G="228" B="16" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="880" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="880" T="294" R="100" G="13" B="77" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="570" T="1008" R="100" G="13" B="77" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="624" T="880" R="45" G="234" B="117" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="1008" R="123" G="228" B="16" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="570" T="1008" R="100" G="13" B="77" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="368" T="954" R="100" G="196" B="206" A="255"/>
<Vtx X="-365" Y="-448" Z="54" S="368" T="880" R="45" G="144" B="217" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="422" T="752" R="229" G="133" B="243" A="255"/>
<Vtx X="-518" Y="-436" Z="252" S="496" T="752" R="223" G="150" B="61" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="752" T="496" R="178" G="6" B="100" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="826" T="496" R="229" G="206" B="114" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="880" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="570" T="752" R="229" G="206" B="114" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="624" T="624" R="178" G="6" B="100" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="368" T="698" R="229" G="133" B="243" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="368" T="624" R="178" G="172" B="201" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-651" Y="-253" Z="-21" S="368" T="478" R="156" G="243" B="179" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="368" T="624" R="178" G="172" B="201" A="255"/>
<Vtx X="-695" Y="-171" Z="99" S="496" T="496" R="133" G="28" B="240" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-651" Y="-109" Z="229" S="606" T="496" R="156" G="60" B="50" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="624" T="624" R="178" G="6" B="100" A="255"/>
<Vtx X="-542" Y="-6" Z="207" S="624" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="752" T="496" R="178" G="6" B="100" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="624" T="880" R="45" G="234" B="117" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="624" T="806" R="229" G="206" B="114" A="255"/>
<Vtx X="-518" Y="-436" Z="252" S="496" T="752" R="223" G="150" B="61" A="255"/>
<Vtx X="-453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="240" T="496" R="178" G="172" B="201" A="255"/>
<Vtx X="-651" Y="-253" Z="-21" S="368" T="478" R="156" G="243" B="179" A="255"/>
<Vtx X="-542" Y="-183" Z="-99" S="368" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
</Vertex>
@@ -0,0 +1,68 @@
<Vertex Version="0">
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="240" T="240" R="0" G="33" B="133" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="166" T="240" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="-542" Z="109" S="112" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="112" T="442" R="73" G="156" B="229" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="240" T="496" R="0" G="133" B="223" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="-16" R="90" G="78" B="211" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="422" T="-16" R="73" G="27" B="156" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="368" T="112" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="-401" Z="65" S="386" T="240" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="-300" Z="173" S="496" T="240" R="166" G="78" B="211" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-542" Z="109" S="368" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="240" T="240" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="-256" Z="315" S="624" T="258" R="183" G="100" B="27" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-365" Z="415" S="624" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="-256" Z="315" S="624" T="258" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="-212" Z="327" S="752" T="240" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="-177" Y="-300" Z="173" S="496" T="240" R="166" G="78" B="211" A="255"/>
<Vtx X="0" Y="-212" Z="327" S="624" T="112" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="624" T="38" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="-16" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="880" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="880" T="294" R="73" G="100" B="27" A="255"/>
<Vtx X="250" Y="-453" Z="262" S="496" T="880" R="127" G="0" B="0" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="570" T="1008" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="624" T="880" R="90" G="45" B="78" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="1008" R="90" G="78" B="211" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="368" T="954" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="-542" Z="109" S="368" T="880" R="90" G="211" B="178" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="422" T="752" R="73" G="156" B="229" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
<Vtx X="0" Y="-670" Z="387" S="496" T="624" R="0" G="146" B="63" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="368" T="698" R="73" G="156" B="229" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="368" T="624" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="-651" Z="209" S="368" T="478" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="-607" Z="350" S="496" T="496" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-542" Z="109" S="368" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="240" T="496" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="-651" Z="209" S="368" T="478" R="183" G="156" B="229" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="-518" Z="503" S="752" T="496" R="0" G="223" B="123" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="826" T="496" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="880" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="0" Y="-670" Z="387" S="496" T="624" R="0" G="146" B="63" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="570" T="752" R="73" G="229" B="100" A="255"/>
<Vtx X="0" Y="-518" Z="503" S="624" T="624" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="-506" Z="459" S="606" T="496" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="-607" Z="350" S="496" T="496" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-365" Z="415" S="624" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="250" Y="-453" Z="262" S="496" T="880" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="624" T="880" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="624" T="806" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
</Vertex>
@@ -0,0 +1,69 @@
<Vertex Version="0">
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="240" T="240" R="178" G="250" B="156" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="166" T="240" R="229" G="50" B="142" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="112" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="-16" R="223" G="106" B="195" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="422" T="-16" R="229" G="50" B="142" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="368" T="112" R="178" G="250" B="156" A="255"/>
<Vtx X="256" Y="-345" Z="32" S="386" T="240" R="156" G="196" B="206" A="255"/>
<Vtx X="212" Y="-283" Z="163" S="496" T="240" R="133" G="228" B="16" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="365" Y="-448" Z="54" S="368" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="240" T="240" R="178" G="250" B="156" A="255"/>
<Vtx X="506" Y="-470" Z="104" S="368" T="478" R="27" G="133" B="243" A="255"/>
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="240" T="496" R="78" G="172" B="201" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="506" Y="-470" Z="104" S="368" T="478" R="27" G="133" B="243" A="255"/>
<Vtx X="518" Y="-436" Z="252" S="496" T="496" R="33" G="150" B="61" A="255"/>
<Vtx X="670" Y="-335" Z="193" S="496" T="624" R="110" G="201" B="32" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="368" T="624" R="78" G="172" B="201" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="368" T="698" R="100" G="243" B="179" A="255"/>
<Vtx X="695" Y="-171" Z="99" S="496" T="752" R="123" G="28" B="240" A="255"/>
<Vtx X="670" Y="-335" Z="193" S="496" T="624" R="110" G="201" B="32" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="570" T="752" R="100" G="60" B="50" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="624" T="624" R="78" G="6" B="100" A="255"/>
<Vtx X="506" Y="-325" Z="354" S="606" T="496" R="27" G="206" B="114" A="255"/>
<Vtx X="365" Y="-271" Z="361" S="624" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="752" T="496" R="78" G="6" B="100" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="624" T="112" R="178" G="84" B="55" A="255"/>
<Vtx X="401" Y="16" Z="157" S="624" T="38" R="229" G="123" B="13" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="-16" R="223" G="106" B="195" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="880" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="401" Y="16" Z="157" S="880" T="294" R="229" G="123" B="13" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="752" T="240" R="178" G="84" B="55" A="255"/>
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="112" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="112" T="442" R="100" G="243" B="179" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="240" T="496" R="78" G="172" B="201" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="752" T="496" R="78" G="6" B="100" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="826" T="496" R="100" G="60" B="50" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="880" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="752" T="240" R="178" G="84" B="55" A="255"/>
<Vtx X="256" Y="-200" Z="282" S="624" T="258" R="156" G="13" B="77" A="255"/>
<Vtx X="365" Y="-271" Z="361" S="624" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="212" Y="-283" Z="163" S="496" T="240" R="133" G="228" B="16" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="624" T="112" R="178" G="84" B="55" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="368" T="880" R="45" G="22" B="139" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="368" T="954" R="229" G="50" B="142" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="422" T="752" R="100" G="243" B="179" A="255"/>
<Vtx X="695" Y="-171" Z="99" S="496" T="752" R="123" G="28" B="240" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="624" T="806" R="100" G="60" B="50" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="624" T="880" R="45" G="112" B="39" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="401" Y="16" Z="157" S="570" T="1008" R="229" G="123" B="13" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="624" T="880" R="45" G="112" B="39" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="1008" R="223" G="106" B="195" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="368" T="954" R="229" G="50" B="142" A="255"/>
</Vertex>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="166" T="240" R="156" G="243" B="179" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="422" T="-16" R="156" G="243" B="179" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="368" T="112" R="178" G="172" B="201" A="255"/>
<Vtx X="401" Y="-16" Z="-157" S="386" T="240" R="229" G="133" B="243" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="6" Z="-207" S="368" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="695" Y="171" Z="-99" S="496" T="496" R="123" G="228" B="16" A="255"/>
<Vtx X="670" Y="335" Z="-193" S="496" T="624" R="110" G="55" B="224" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="368" T="624" R="78" G="250" B="156" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="368" T="698" R="27" G="50" B="142" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="570" T="752" R="27" G="123" B="13" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="624" T="624" R="78" G="84" B="55" A="255"/>
<Vtx X="651" Y="253" Z="21" S="606" T="496" R="100" G="13" B="77" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="752" T="496" R="78" G="84" B="55" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="880" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="880" T="294" R="156" G="60" B="50" A="255"/>
<Vtx X="300" Y="239" Z="66" S="752" T="240" R="178" G="6" B="100" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="401" Y="128" Z="93" S="624" T="258" R="229" G="206" B="114" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="624" T="38" R="156" G="60" B="50" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="112" T="442" R="27" G="50" B="142" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="422" T="752" R="27" G="50" B="142" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="368" T="880" R="211" G="22" B="139" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="368" T="954" R="156" G="243" B="179" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="1008" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="570" T="1008" R="156" G="60" B="50" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="624" T="880" R="211" G="112" B="39" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="624" T="806" R="27" G="123" B="13" A="255"/>
</Vertex>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="166" T="240" R="156" G="243" B="179" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="422" T="-16" R="156" G="243" B="179" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="368" T="112" R="178" G="172" B="201" A="255"/>
<Vtx X="401" Y="-16" Z="-157" S="386" T="240" R="229" G="133" B="243" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="6" Z="-207" S="368" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="695" Y="171" Z="-99" S="496" T="496" R="123" G="228" B="16" A="255"/>
<Vtx X="670" Y="335" Z="-193" S="496" T="624" R="110" G="55" B="224" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="368" T="624" R="78" G="250" B="156" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="368" T="698" R="27" G="50" B="142" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="570" T="752" R="27" G="123" B="13" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="624" T="624" R="78" G="84" B="55" A="255"/>
<Vtx X="651" Y="253" Z="21" S="606" T="496" R="100" G="13" B="77" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="752" T="496" R="78" G="84" B="55" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="880" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="880" T="294" R="156" G="60" B="50" A="255"/>
<Vtx X="300" Y="239" Z="66" S="752" T="240" R="178" G="6" B="100" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="401" Y="128" Z="93" S="624" T="258" R="229" G="206" B="114" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="624" T="38" R="156" G="60" B="50" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="112" T="442" R="27" G="50" B="142" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="422" T="752" R="27" G="50" B="142" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="368" T="880" R="211" G="22" B="139" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="368" T="954" R="156" G="243" B="179" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="1008" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="570" T="1008" R="156" G="60" B="50" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="624" T="880" R="211" G="112" B="39" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="624" T="806" R="27" G="123" B="13" A="255"/>
</Vertex>
@@ -0,0 +1,18 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_red_progressive"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_0"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_yellow_progressive"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_1"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_blue_progressive"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_2"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_orange_progressive"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_3"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_purple_progressive"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_4"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_green_progressive"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_5"/>
<CallDisplayList Path="objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_arrow_gold_progressive"/>
<CallDisplayList Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_6"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<Triangle1 V00="14" V01="13" V02="10"/>
<Triangle1 V00="14" V01="10" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="2" V02="1"/>
<Triangle1 V00="4" V01="1" V02="5"/>
<Triangle1 V00="6" V01="5" V02="1"/>
<Triangle1 V00="6" V01="1" V02="7"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="15" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="8" V01="11" V02="12"/>
<Triangle1 V00="8" V01="12" V02="3"/>
<Triangle1 V00="13" V01="14" V02="5"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="6" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="4"/>
<Triangle1 V00="8" V01="3" V02="4"/>
<Triangle1 V00="8" V01="1" V02="3"/>
<Triangle1 V00="8" V01="9" V02="1"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="8" V01="11" V02="10"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="8" V01="13" V02="12"/>
<Triangle1 V00="8" V01="4" V02="13"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="7" V02="5"/>
<Triangle1 V00="4" V01="8" V02="7"/>
<Triangle1 V00="4" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="13"/>
<Triangle1 V00="10" V01="13" V02="14"/>
<Triangle1 V00="10" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="12" V01="3" V02="13"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1" VertexBufferIndex="0" VertexOffset="31" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="3" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="14" V02="12"/>
<Triangle1 V00="15" V01="12" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1" VertexBufferIndex="0" VertexOffset="47" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="0" V01="2" V02="5"/>
<Triangle1 V00="6" V01="5" V02="2"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="0" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1" VertexBufferIndex="0" VertexOffset="63" Count="12"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="0" V01="6" V02="1"/>
<Triangle1 V00="0" V01="7" V02="6"/>
<Triangle1 V00="8" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="6"/>
<Triangle1 V00="10" V01="1" V02="6"/>
<Triangle1 V00="10" V01="6" V02="11"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="5" V02="4"/>
<Triangle1 V00="6" V01="4" V02="7"/>
<Triangle1 V00="8" V01="7" V02="4"/>
<Triangle1 V00="8" V01="4" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="8" V01="11" V02="12"/>
<Triangle1 V00="8" V01="12" V02="13"/>
<Triangle1 V00="0" V01="5" V02="14"/>
<Triangle1 V00="15" V01="14" V02="5"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="4"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="6" V02="12"/>
<Triangle1 V00="11" V01="14" V02="6"/>
<Triangle1 V00="11" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2" VertexBufferIndex="0" VertexOffset="48" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="1" V02="3"/>
<Triangle1 V00="4" V01="3" V02="5"/>
<Triangle1 V00="6" V01="5" V02="3"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="4" V01="5" V02="8"/>
<Triangle1 V00="9" V01="8" V02="5"/>
<Triangle1 V00="9" V01="5" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="13" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2" VertexBufferIndex="0" VertexOffset="63" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="6" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<Triangle1 V00="0" V01="13" V02="10"/>
<Triangle1 V00="0" V01="10" V02="14"/>
<Triangle1 V00="12" V01="15" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3" VertexBufferIndex="0" VertexOffset="16" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="4" V02="2"/>
<Triangle1 V00="5" V01="6" V02="2"/>
<Triangle1 V00="5" V01="2" V02="7"/>
<Triangle1 V00="8" V01="7" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="13" V02="4"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3" VertexBufferIndex="0" VertexOffset="30" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="0" V01="7" V02="6"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="8" V01="11" V02="10"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="12"/>
<Triangle1 V00="13" V01="14" V02="11"/>
<Triangle1 V00="15" V01="11" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3" VertexBufferIndex="0" VertexOffset="46" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="3" V01="5" V02="6"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="7" V01="10" V02="11"/>
<Triangle1 V00="7" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<Triangle1 V00="15" V01="11" V02="4"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3" VertexBufferIndex="0" VertexOffset="62" Count="4"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,57 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="0" V01="11" V02="8"/>
<Triangle1 V00="0" V01="8" V02="12"/>
<Triangle1 V00="10" V01="11" V02="13"/>
<Triangle1 V00="14" V01="13" V02="11"/>
<Triangle1 V00="14" V01="15" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4" VertexBufferIndex="0" VertexOffset="16" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="1" V02="4"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="3" V01="5" V02="6"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="7" V01="10" V02="2"/>
<Triangle1 V00="0" V01="2" V02="10"/>
<Triangle1 V00="0" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="10" V02="13"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4" VertexBufferIndex="0" VertexOffset="30" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4" VertexBufferIndex="0" VertexOffset="46" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="6" V01="5" V02="2"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="11" V02="9"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="13" V01="14" V02="12"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4" VertexBufferIndex="0" VertexOffset="62" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,56 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_5" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="12" V01="11" V02="8"/>
<Triangle1 V00="12" V01="8" V02="13"/>
<Triangle1 V00="10" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_5" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="5" V01="4" V02="2"/>
<Triangle1 V00="5" V01="2" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="5" V01="8" V02="9"/>
<Triangle1 V00="5" V01="9" V02="10"/>
<Triangle1 V00="5" V01="10" V02="11"/>
<Triangle1 V00="5" V01="11" V02="4"/>
<Triangle1 V00="3" V01="4" V02="11"/>
<Triangle1 V00="3" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_5" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="4" V02="7"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="10" V01="7" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_5" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="4" V01="8" V02="9"/>
<Triangle1 V00="4" V01="9" V02="10"/>
<Triangle1 V00="4" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="12" V01="13" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,41 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_6" VertexBufferIndex="0" VertexOffset="0" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="5" V01="4" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="9" V01="8" V02="10"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="11" V01="10" V02="12"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="9" V01="11" V02="13"/>
<Triangle1 V00="5" V01="9" V02="13"/>
<Triangle1 V00="13" V01="3" V02="5"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_6" VertexBufferIndex="0" VertexOffset="14" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="5" V01="0" V02="3"/>
<Triangle1 V00="5" V01="3" V02="6"/>
<Triangle1 V00="6" V01="3" V02="7"/>
<Triangle1 V00="8" V01="5" V02="6"/>
<Triangle1 V00="8" V01="6" V02="9"/>
<Triangle1 V00="9" V01="6" V02="10"/>
<Triangle1 V00="11" V01="8" V02="9"/>
<Triangle1 V00="11" V01="9" V02="12"/>
<Triangle1 V00="12" V01="9" V02="13"/>
<Triangle1 V00="14" V01="11" V02="12"/>
<Triangle1 V00="14" V01="12" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_6" VertexBufferIndex="0" VertexOffset="30" Count="7"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="0"/>
<Triangle1 V00="3" V01="0" V02="5"/>
<Triangle1 V00="5" V01="0" V02="6"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,41 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_7" VertexBufferIndex="0" VertexOffset="0" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="5" V01="4" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="9" V01="8" V02="10"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="11" V01="10" V02="12"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="9" V01="11" V02="13"/>
<Triangle1 V00="5" V01="9" V02="13"/>
<Triangle1 V00="13" V01="3" V02="5"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_7" VertexBufferIndex="0" VertexOffset="14" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="5" V01="0" V02="3"/>
<Triangle1 V00="5" V01="3" V02="6"/>
<Triangle1 V00="6" V01="3" V02="7"/>
<Triangle1 V00="8" V01="5" V02="6"/>
<Triangle1 V00="8" V01="6" V02="9"/>
<Triangle1 V00="9" V01="6" V02="10"/>
<Triangle1 V00="11" V01="8" V02="9"/>
<Triangle1 V00="11" V01="9" V02="12"/>
<Triangle1 V00="12" V01="9" V02="13"/>
<Triangle1 V00="14" V01="11" V02="12"/>
<Triangle1 V00="14" V01="12" V02="15"/>
<LoadVertices Path="objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_7" VertexBufferIndex="0" VertexOffset="30" Count="7"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="0"/>
<Triangle1 V00="3" V01="0" V02="5"/>
<Triangle1 V00="5" V01="0" V02="6"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="240" T="240" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="166" T="240" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="112" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="112" T="442" R="183" G="27" B="156" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="240" T="496" R="0" G="33" B="133" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="-16" R="166" G="178" B="45" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="422" T="-16" R="183" G="156" B="229" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="368" T="112" R="0" G="133" B="223" A="255"/>
<Vtx X="144" Y="256" Z="-315" S="386" T="240" R="73" G="156" B="229" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="365" Z="-415" S="368" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="212" Z="-327" S="240" T="240" R="0" G="133" B="223" A="255"/>
<Vtx X="0" Y="328" Z="-478" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="144" Y="506" Z="-459" S="368" T="478" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="365" Z="-415" S="368" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="240" T="496" R="0" G="33" B="133" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="607" Z="-350" S="496" T="496" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="670" Z="-387" S="496" T="624" R="0" G="110" B="193" A="255"/>
<Vtx X="0" Y="518" Z="-503" S="368" T="624" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="368" T="698" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="607" Z="-350" S="496" T="752" R="166" G="78" B="211" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="570" T="752" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="624" T="624" R="0" G="123" B="33" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-144" Y="256" Z="-315" S="368" T="954" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="1008" R="166" G="178" B="45" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="368" T="880" R="166" G="211" B="178" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-144" Y="506" Z="-459" S="422" T="752" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="365" Z="-415" S="368" T="880" R="166" G="211" B="178" A="255"/>
<Vtx X="-177" Y="607" Z="-350" S="496" T="752" R="166" G="78" B="211" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="0" Y="389" Z="-20" S="624" T="112" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="624" T="38" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="-16" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="453" Z="-262" S="496" T="880" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="300" Z="-173" S="496" T="1008" R="166" G="178" B="45" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="570" T="1008" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="542" Z="-109" S="624" T="880" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="624" T="806" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="237" Z="-137" S="496" T="112" R="0" G="146" B="63" A="255"/>
<Vtx X="144" Y="401" Z="-65" S="624" T="258" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="250" Y="453" Z="-262" S="496" T="368" R="127" G="0" B="0" A="255"/>
<Vtx X="144" Y="401" Z="-65" S="624" T="258" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="300" Z="-173" S="496" T="240" R="90" G="178" B="45" A="255"/>
<Vtx X="177" Y="542" Z="-109" S="624" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="651" Z="-209" S="606" T="496" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="607" Z="-350" S="496" T="496" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="670" Z="-387" S="496" T="624" R="0" G="110" B="193" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="624" T="624" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="578" Z="-45" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="389" Z="-20" S="752" T="240" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="401" Z="-65" S="880" T="294" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="542" Z="-109" S="880" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="651" Z="-209" S="826" T="496" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="695" Z="-197" S="752" T="496" R="0" G="123" B="33" A="255"/>
</Vertex>
@@ -0,0 +1,77 @@
<Vertex Version="0">
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="240" T="240" R="78" G="172" B="201" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="166" T="240" R="27" G="133" B="243" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="112" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="422" T="-16" R="27" G="133" B="243" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="368" T="112" R="78" G="172" B="201" A="255"/>
<Vtx X="-389" Y="18" Z="-10" S="496" T="-16" R="33" G="150" B="61" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="624" T="38" R="27" G="206" B="114" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="624" T="112" R="78" G="6" B="100" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="368" T="880" R="211" G="144" B="217" A="255"/>
<Vtx X="-401" Y="-16" Z="-157" S="368" T="954" R="27" G="133" B="243" A="255"/>
<Vtx X="-389" Y="18" Z="-10" S="496" T="1008" R="33" G="150" B="61" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="570" T="1008" R="27" G="206" B="114" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="624" T="880" R="211" G="234" B="117" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="624" T="880" R="211" G="234" B="117" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="624" T="806" R="156" G="13" B="77" A="255"/>
<Vtx X="-695" Y="171" Z="-99" S="496" T="752" R="133" G="228" B="16" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="880" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="-401" Y="128" Z="93" S="880" T="294" R="27" G="206" B="114" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="752" T="240" R="78" G="6" B="100" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="112" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="112" T="442" R="156" G="196" B="206" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="240" T="496" R="178" G="250" B="156" A="255"/>
<Vtx X="-578" Y="39" Z="-23" S="496" T="880" R="193" G="161" B="55" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="422" T="752" R="156" G="196" B="206" A="255"/>
<Vtx X="-542" Y="6" Z="-207" S="368" T="880" R="211" G="144" B="217" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="368" T="624" R="178" G="250" B="156" A="255"/>
<Vtx X="-651" Y="109" Z="-229" S="368" T="698" R="156" G="196" B="206" A="255"/>
<Vtx X="-695" Y="171" Z="-99" S="496" T="752" R="133" G="228" B="16" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="752" T="496" R="178" G="84" B="55" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="826" T="496" R="156" G="13" B="77" A="255"/>
<Vtx X="-542" Y="183" Z="99" S="880" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-651" Y="253" Z="21" S="570" T="752" R="156" G="13" B="77" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="624" T="624" R="178" G="84" B="55" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-256" Y="200" Z="-282" S="386" T="240" R="100" G="243" B="179" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="240" T="240" R="78" G="172" B="201" A="255"/>
<Vtx X="-365" Y="271" Z="-361" S="368" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-365" Y="271" Z="-361" S="368" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="-506" Y="325" Z="-354" S="368" T="478" R="229" G="50" B="142" A="255"/>
<Vtx X="-453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="240" T="496" R="178" G="250" B="156" A="255"/>
<Vtx X="-518" Y="436" Z="-252" S="496" T="496" R="223" G="106" B="195" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="215" Z="-328" S="368" T="624" R="178" G="250" B="156" A="255"/>
<Vtx X="-212" Y="283" Z="-163" S="496" T="240" R="123" G="28" B="240" A="255"/>
<Vtx X="-256" Y="200" Z="-282" S="386" T="240" R="100" G="243" B="179" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-300" Y="62" Z="-240" S="368" T="112" R="78" G="172" B="201" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="752" T="240" R="78" G="6" B="100" A="255"/>
<Vtx X="-256" Y="345" Z="-32" S="624" T="258" R="100" G="60" B="50" A="255"/>
<Vtx X="-365" Y="448" Z="-54" S="624" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="-328" Y="414" Z="-239" S="496" T="368" R="63" G="95" B="201" A="255"/>
<Vtx X="-365" Y="448" Z="-54" S="624" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="-256" Y="345" Z="-32" S="624" T="258" R="100" G="60" B="50" A="255"/>
<Vtx X="-212" Y="283" Z="-163" S="496" T="240" R="123" G="28" B="240" A="255"/>
<Vtx X="-237" Y="118" Z="-68" S="496" T="112" R="110" G="201" B="32" A="255"/>
<Vtx X="-300" Y="239" Z="66" S="624" T="112" R="78" G="6" B="100" A="255"/>
<Vtx X="-506" Y="470" Z="-104" S="606" T="496" R="229" G="123" B="13" A="255"/>
<Vtx X="-518" Y="436" Z="-252" S="496" T="496" R="223" G="106" B="195" A="255"/>
<Vtx X="-670" Y="335" Z="-193" S="496" T="624" R="146" G="55" B="224" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="624" T="624" R="178" G="84" B="55" A="255"/>
<Vtx X="-453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="392" Z="-22" S="752" T="496" R="178" G="84" B="55" A="255"/>
</Vertex>
@@ -0,0 +1,70 @@
<Vertex Version="0">
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="-16" R="123" G="228" B="16" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="422" T="-16" R="100" G="196" B="206" A="255"/>
<Vtx X="-300" Y="-239" Z="-66" S="368" T="112" R="78" G="250" B="156" A="255"/>
<Vtx X="-401" Y="-128" Z="-93" S="386" T="240" R="27" G="50" B="142" A="255"/>
<Vtx X="-389" Y="-18" Z="10" S="496" T="240" R="33" G="106" B="195" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-542" Y="-183" Z="-99" S="368" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="-453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-300" Y="-239" Z="-66" S="240" T="240" R="78" G="250" B="156" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="166" T="240" R="100" G="196" B="206" A="255"/>
<Vtx X="-365" Y="-448" Z="54" S="112" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="112" T="442" R="229" G="133" B="243" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="240" T="496" R="178" G="172" B="201" A="255"/>
<Vtx X="-401" Y="16" Z="157" S="624" T="258" R="27" G="123" B="13" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-542" Y="-6" Z="207" S="624" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="-401" Y="16" Z="157" S="624" T="258" R="27" G="123" B="13" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-300" Y="-62" Z="240" S="752" T="240" R="78" G="84" B="55" A="255"/>
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-300" Y="-62" Z="240" S="624" T="112" R="78" G="84" B="55" A="255"/>
<Vtx X="-237" Y="-118" Z="68" S="496" T="112" R="110" G="55" B="224" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="624" T="38" R="100" G="13" B="77" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="-16" R="123" G="228" B="16" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="880" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="880" T="294" R="100" G="13" B="77" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="570" T="1008" R="100" G="13" B="77" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="624" T="880" R="45" G="234" B="117" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-212" Y="-283" Z="163" S="496" T="1008" R="123" G="228" B="16" A="255"/>
<Vtx X="-256" Y="-200" Z="282" S="570" T="1008" R="100" G="13" B="77" A="255"/>
<Vtx X="-256" Y="-345" Z="32" S="368" T="954" R="100" G="196" B="206" A="255"/>
<Vtx X="-365" Y="-448" Z="54" S="368" T="880" R="45" G="144" B="217" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="422" T="752" R="229" G="133" B="243" A="255"/>
<Vtx X="-518" Y="-436" Z="252" S="496" T="752" R="223" G="150" B="61" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="752" T="496" R="178" G="6" B="100" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="826" T="496" R="229" G="206" B="114" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="880" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="570" T="752" R="229" G="206" B="114" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="624" T="624" R="178" G="6" B="100" A="255"/>
<Vtx X="-506" Y="-470" Z="104" S="368" T="698" R="229" G="133" B="243" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="368" T="624" R="178" G="172" B="201" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-651" Y="-253" Z="-21" S="368" T="478" R="156" G="243" B="179" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="368" T="624" R="178" G="172" B="201" A="255"/>
<Vtx X="-695" Y="-171" Z="99" S="496" T="496" R="133" G="28" B="240" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
<Vtx X="-651" Y="-109" Z="229" S="606" T="496" R="156" G="60" B="50" A="255"/>
<Vtx X="-670" Y="-335" Z="193" S="496" T="624" R="146" G="201" B="32" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="624" T="624" R="178" G="6" B="100" A="255"/>
<Vtx X="-542" Y="-6" Z="207" S="624" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="-453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="-607" Y="-215" Z="328" S="752" T="496" R="178" G="6" B="100" A="255"/>
<Vtx X="-328" Y="-414" Z="239" S="496" T="880" R="63" G="161" B="55" A="255"/>
<Vtx X="-365" Y="-271" Z="361" S="624" T="880" R="45" G="234" B="117" A="255"/>
<Vtx X="-506" Y="-325" Z="354" S="624" T="806" R="229" G="206" B="114" A="255"/>
<Vtx X="-518" Y="-436" Z="252" S="496" T="752" R="223" G="150" B="61" A="255"/>
<Vtx X="-453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="-607" Y="-392" Z="22" S="240" T="496" R="178" G="172" B="201" A="255"/>
<Vtx X="-651" Y="-253" Z="-21" S="368" T="478" R="156" G="243" B="179" A="255"/>
<Vtx X="-542" Y="-183" Z="-99" S="368" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="-578" Y="-39" Z="23" S="496" T="368" R="193" G="95" B="201" A="255"/>
</Vertex>
@@ -0,0 +1,68 @@
<Vertex Version="0">
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="240" T="240" R="0" G="33" B="133" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="166" T="240" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="-542" Z="109" S="112" T="368" R="90" G="211" B="178" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="112" T="442" R="73" G="156" B="229" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="240" T="496" R="0" G="133" B="223" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="-16" R="90" G="78" B="211" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="422" T="-16" R="73" G="27" B="156" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="368" T="112" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="-401" Z="65" S="386" T="240" R="183" G="27" B="156" A="255"/>
<Vtx X="-177" Y="-300" Z="173" S="496" T="240" R="166" G="78" B="211" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-542" Z="109" S="368" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="0" Y="-389" Z="20" S="240" T="240" R="0" G="33" B="133" A="255"/>
<Vtx X="-144" Y="-256" Z="315" S="624" T="258" R="183" G="100" B="27" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-365" Z="415" S="624" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="-144" Y="-256" Z="315" S="624" T="258" R="183" G="100" B="27" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="-212" Z="327" S="752" T="240" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="-177" Y="-300" Z="173" S="496" T="240" R="166" G="78" B="211" A="255"/>
<Vtx X="0" Y="-212" Z="327" S="624" T="112" R="0" G="123" B="33" A="255"/>
<Vtx X="0" Y="-237" Z="137" S="496" T="112" R="0" G="110" B="193" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="624" T="38" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="-16" R="90" G="78" B="211" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="880" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="880" T="294" R="73" G="100" B="27" A="255"/>
<Vtx X="250" Y="-453" Z="262" S="496" T="880" R="127" G="0" B="0" A="255"/>
<Vtx X="144" Y="-256" Z="315" S="570" T="1008" R="73" G="100" B="27" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="624" T="880" R="90" G="45" B="78" A="255"/>
<Vtx X="177" Y="-300" Z="173" S="496" T="1008" R="90" G="78" B="211" A="255"/>
<Vtx X="144" Y="-401" Z="65" S="368" T="954" R="73" G="27" B="156" A="255"/>
<Vtx X="177" Y="-542" Z="109" S="368" T="880" R="90" G="211" B="178" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="422" T="752" R="73" G="156" B="229" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
<Vtx X="0" Y="-670" Z="387" S="496" T="624" R="0" G="146" B="63" A="255"/>
<Vtx X="144" Y="-651" Z="209" S="368" T="698" R="73" G="156" B="229" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="368" T="624" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="-651" Z="209" S="368" T="478" R="183" G="156" B="229" A="255"/>
<Vtx X="-177" Y="-607" Z="350" S="496" T="496" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-542" Z="109" S="368" T="368" R="166" G="211" B="178" A="255"/>
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-578" Z="45" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="0" Y="-695" Z="197" S="240" T="496" R="0" G="133" B="223" A="255"/>
<Vtx X="-144" Y="-651" Z="209" S="368" T="478" R="183" G="156" B="229" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="0" Y="-518" Z="503" S="752" T="496" R="0" G="223" B="123" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="826" T="496" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="880" T="368" R="90" G="45" B="78" A="255"/>
<Vtx X="0" Y="-670" Z="387" S="496" T="624" R="0" G="146" B="63" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="570" T="752" R="73" G="229" B="100" A="255"/>
<Vtx X="0" Y="-518" Z="503" S="624" T="624" R="0" G="223" B="123" A="255"/>
<Vtx X="-144" Y="-506" Z="459" S="606" T="496" R="183" G="229" B="100" A="255"/>
<Vtx X="-177" Y="-607" Z="350" S="496" T="496" R="166" G="178" B="45" A="255"/>
<Vtx X="-250" Y="-453" Z="262" S="496" T="368" R="129" G="0" B="0" A="255"/>
<Vtx X="-177" Y="-365" Z="415" S="624" T="368" R="166" G="45" B="78" A="255"/>
<Vtx X="0" Y="-328" Z="478" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="250" Y="-453" Z="262" S="496" T="880" R="127" G="0" B="0" A="255"/>
<Vtx X="177" Y="-365" Z="415" S="624" T="880" R="90" G="45" B="78" A="255"/>
<Vtx X="144" Y="-506" Z="459" S="624" T="806" R="73" G="229" B="100" A="255"/>
<Vtx X="177" Y="-607" Z="350" S="496" T="752" R="90" G="178" B="45" A="255"/>
</Vertex>
@@ -0,0 +1,69 @@
<Vertex Version="0">
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="240" T="240" R="178" G="250" B="156" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="166" T="240" R="229" G="50" B="142" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="112" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="-16" R="223" G="106" B="195" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="422" T="-16" R="229" G="50" B="142" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="368" T="112" R="178" G="250" B="156" A="255"/>
<Vtx X="256" Y="-345" Z="32" S="386" T="240" R="156" G="196" B="206" A="255"/>
<Vtx X="212" Y="-283" Z="163" S="496" T="240" R="133" G="228" B="16" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="365" Y="-448" Z="54" S="368" T="368" R="211" G="144" B="217" A="255"/>
<Vtx X="300" Y="-239" Z="-66" S="240" T="240" R="178" G="250" B="156" A="255"/>
<Vtx X="506" Y="-470" Z="104" S="368" T="478" R="27" G="133" B="243" A="255"/>
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="240" T="496" R="78" G="172" B="201" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="506" Y="-470" Z="104" S="368" T="478" R="27" G="133" B="243" A="255"/>
<Vtx X="518" Y="-436" Z="252" S="496" T="496" R="33" G="150" B="61" A="255"/>
<Vtx X="670" Y="-335" Z="193" S="496" T="624" R="110" G="201" B="32" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="368" T="624" R="78" G="172" B="201" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="368" T="698" R="100" G="243" B="179" A="255"/>
<Vtx X="695" Y="-171" Z="99" S="496" T="752" R="123" G="28" B="240" A="255"/>
<Vtx X="670" Y="-335" Z="193" S="496" T="624" R="110" G="201" B="32" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="570" T="752" R="100" G="60" B="50" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="624" T="624" R="78" G="6" B="100" A="255"/>
<Vtx X="506" Y="-325" Z="354" S="606" T="496" R="27" G="206" B="114" A="255"/>
<Vtx X="365" Y="-271" Z="361" S="624" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="752" T="496" R="78" G="6" B="100" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="624" T="112" R="178" G="84" B="55" A="255"/>
<Vtx X="401" Y="16" Z="157" S="624" T="38" R="229" G="123" B="13" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="-16" R="223" G="106" B="195" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="880" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="401" Y="16" Z="157" S="880" T="294" R="229" G="123" B="13" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="752" T="240" R="178" G="84" B="55" A="255"/>
<Vtx X="453" Y="-352" Z="-86" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="112" T="368" R="45" G="22" B="139" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="112" T="442" R="100" G="243" B="179" A="255"/>
<Vtx X="607" Y="-392" Z="22" S="240" T="496" R="78" G="172" B="201" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="-215" Z="328" S="752" T="496" R="78" G="6" B="100" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="826" T="496" R="100" G="60" B="50" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="880" T="368" R="45" G="112" B="39" A="255"/>
<Vtx X="453" Y="-102" Z="347" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="752" T="240" R="178" G="84" B="55" A="255"/>
<Vtx X="256" Y="-200" Z="282" S="624" T="258" R="156" G="13" B="77" A="255"/>
<Vtx X="365" Y="-271" Z="361" S="624" T="368" R="211" G="234" B="117" A="255"/>
<Vtx X="328" Y="-414" Z="239" S="496" T="368" R="193" G="161" B="55" A="255"/>
<Vtx X="212" Y="-283" Z="163" S="496" T="240" R="133" G="228" B="16" A="255"/>
<Vtx X="237" Y="-118" Z="68" S="496" T="112" R="146" G="55" B="224" A="255"/>
<Vtx X="300" Y="-62" Z="240" S="624" T="112" R="178" G="84" B="55" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="542" Y="-183" Z="-99" S="368" T="880" R="45" G="22" B="139" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="368" T="954" R="229" G="50" B="142" A="255"/>
<Vtx X="651" Y="-253" Z="-21" S="422" T="752" R="100" G="243" B="179" A="255"/>
<Vtx X="695" Y="-171" Z="99" S="496" T="752" R="123" G="28" B="240" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="651" Y="-109" Z="229" S="624" T="806" R="100" G="60" B="50" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="624" T="880" R="45" G="112" B="39" A="255"/>
<Vtx X="578" Y="-39" Z="23" S="496" T="880" R="63" G="95" B="201" A="255"/>
<Vtx X="401" Y="16" Z="157" S="570" T="1008" R="229" G="123" B="13" A="255"/>
<Vtx X="542" Y="-6" Z="207" S="624" T="880" R="45" G="112" B="39" A="255"/>
<Vtx X="389" Y="-18" Z="10" S="496" T="1008" R="223" G="106" B="195" A="255"/>
<Vtx X="401" Y="-128" Z="-93" S="368" T="954" R="229" G="50" B="142" A="255"/>
</Vertex>
@@ -0,0 +1,64 @@
<Vertex Version="0">
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="166" T="240" R="156" G="243" B="179" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="422" T="-16" R="156" G="243" B="179" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="368" T="112" R="178" G="172" B="201" A="255"/>
<Vtx X="401" Y="-16" Z="-157" S="386" T="240" R="229" G="133" B="243" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="6" Z="-207" S="368" T="368" R="45" G="144" B="217" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="300" Y="62" Z="-240" S="240" T="240" R="178" G="172" B="201" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="651" Y="109" Z="-229" S="368" T="478" R="100" G="196" B="206" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="695" Y="171" Z="-99" S="496" T="496" R="123" G="228" B="16" A="255"/>
<Vtx X="670" Y="335" Z="-193" S="496" T="624" R="110" G="55" B="224" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="368" T="624" R="78" G="250" B="156" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="368" T="698" R="27" G="50" B="142" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="570" T="752" R="27" G="123" B="13" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="624" T="624" R="78" G="84" B="55" A="255"/>
<Vtx X="651" Y="253" Z="21" S="606" T="496" R="100" G="13" B="77" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="607" Y="392" Z="-22" S="752" T="496" R="78" G="84" B="55" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="826" T="496" R="27" G="123" B="13" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="880" T="368" R="211" G="112" B="39" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="880" T="294" R="156" G="60" B="50" A="255"/>
<Vtx X="300" Y="239" Z="66" S="752" T="240" R="178" G="6" B="100" A="255"/>
<Vtx X="578" Y="39" Z="-23" S="496" T="368" R="63" G="161" B="55" A="255"/>
<Vtx X="542" Y="183" Z="99" S="624" T="368" R="45" G="234" B="117" A="255"/>
<Vtx X="401" Y="128" Z="93" S="624" T="258" R="229" G="206" B="114" A="255"/>
<Vtx X="453" Y="352" Z="86" S="752" T="368" R="0" G="63" B="110" A="255"/>
<Vtx X="389" Y="18" Z="-10" S="496" T="240" R="223" G="150" B="61" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="237" Y="118" Z="-68" S="496" T="112" R="146" G="201" B="32" A="255"/>
<Vtx X="300" Y="239" Z="66" S="624" T="112" R="178" G="6" B="100" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="624" T="38" R="156" G="60" B="50" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="-16" R="133" G="28" B="240" A="255"/>
<Vtx X="453" Y="102" Z="-347" S="240" T="368" R="0" G="193" B="146" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="112" T="368" R="211" G="22" B="139" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="112" T="442" R="27" G="50" B="142" A="255"/>
<Vtx X="607" Y="215" Z="-328" S="240" T="496" R="78" G="250" B="156" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="518" Y="436" Z="-252" S="496" T="752" R="33" G="106" B="195" A="255"/>
<Vtx X="506" Y="325" Z="-354" S="422" T="752" R="27" G="50" B="142" A="255"/>
<Vtx X="365" Y="271" Z="-361" S="368" T="880" R="211" G="22" B="139" A="255"/>
<Vtx X="256" Y="200" Z="-282" S="368" T="954" R="156" G="243" B="179" A="255"/>
<Vtx X="212" Y="283" Z="-163" S="496" T="1008" R="133" G="28" B="240" A="255"/>
<Vtx X="256" Y="345" Z="-32" S="570" T="1008" R="156" G="60" B="50" A="255"/>
<Vtx X="365" Y="448" Z="-54" S="624" T="880" R="211" G="112" B="39" A="255"/>
<Vtx X="328" Y="414" Z="-239" S="496" T="880" R="193" G="95" B="201" A="255"/>
<Vtx X="506" Y="470" Z="-104" S="624" T="806" R="27" G="123" B="13" A="255"/>
</Vertex>
@@ -0,0 +1,39 @@
<Vertex Version="0">
<Vtx X="559" Y="96" Z="222" S="1008" T="1008" R="71" G="179" B="185" A="255"/>
<Vtx X="559" Y="471" Z="222" S="1008" T="-16" R="90" G="0" B="166" A="255"/>
<Vtx X="592" Y="471" Z="346" S="837" T="-16" R="123" G="0" B="33" A="255"/>
<Vtx X="592" Y="96" Z="346" S="837" T="1008" R="97" G="179" B="26" A="255"/>
<Vtx X="501" Y="471" Z="437" S="667" T="-16" R="33" G="0" B="123" A="255"/>
<Vtx X="501" Y="96" Z="437" S="667" T="1008" R="26" G="179" B="97" A="255"/>
<Vtx X="378" Y="471" Z="403" S="496" T="-16" R="166" G="0" B="90" A="255"/>
<Vtx X="378" Y="96" Z="403" S="496" T="1008" R="185" G="179" B="71" A="255"/>
<Vtx X="345" Y="471" Z="280" S="325" T="-16" R="133" G="0" B="223" A="255"/>
<Vtx X="345" Y="96" Z="280" S="325" T="1008" R="159" G="179" B="230" A="255"/>
<Vtx X="435" Y="471" Z="189" S="155" T="-16" R="223" G="0" B="133" A="255"/>
<Vtx X="435" Y="96" Z="189" S="155" T="1008" R="230" G="179" B="159" A="255"/>
<Vtx X="559" Y="471" Z="222" S="-16" T="-16" R="90" G="0" B="166" A="255"/>
<Vtx X="559" Y="96" Z="222" S="-16" T="1008" R="71" G="179" B="185" A="255"/>
<Vtx X="592" Y="471" Z="346" S="837" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="559" Y="471" Z="222" S="1008" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="641" Y="471" Z="140" S="1008" T="-16" R="84" G="211" B="172" A="255"/>
<Vtx X="704" Y="471" Z="376" S="837" T="-16" R="115" G="211" B="31" A="255"/>
<Vtx X="468" Y="782" Z="313" S="837" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="501" Y="471" Z="437" S="667" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="531" Y="471" Z="548" S="667" T="-16" R="31" G="211" B="115" A="255"/>
<Vtx X="468" Y="782" Z="313" S="667" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="378" Y="471" Z="403" S="496" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="296" Y="471" Z="485" S="496" T="-16" R="172" G="211" B="84" A="255"/>
<Vtx X="468" Y="782" Z="313" S="496" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="345" Y="471" Z="280" S="325" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="233" Y="471" Z="250" S="325" T="-16" R="141" G="211" B="225" A="255"/>
<Vtx X="468" Y="782" Z="313" S="325" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="435" Y="471" Z="189" S="155" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="405" Y="471" Z="77" S="155" T="-16" R="225" G="211" B="141" A="255"/>
<Vtx X="405" Y="471" Z="77" S="155" T="-16" R="225" G="211" B="141" A="255"/>
<Vtx X="233" Y="471" Z="250" S="325" T="-16" R="141" G="211" B="225" A="255"/>
<Vtx X="468" Y="782" Z="313" S="155" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="559" Y="471" Z="222" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="435" Y="471" Z="189" S="155" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="641" Y="471" Z="140" S="-16" T="-16" R="84" G="211" B="172" A="255"/>
<Vtx X="468" Y="782" Z="313" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
</Vertex>
@@ -0,0 +1,39 @@
<Vertex Version="0">
<Vtx X="559" Y="96" Z="222" S="1008" T="1008" R="71" G="179" B="185" A="255"/>
<Vtx X="559" Y="471" Z="222" S="1008" T="-16" R="90" G="0" B="166" A="255"/>
<Vtx X="592" Y="471" Z="346" S="837" T="-16" R="123" G="0" B="33" A="255"/>
<Vtx X="592" Y="96" Z="346" S="837" T="1008" R="97" G="179" B="26" A="255"/>
<Vtx X="501" Y="471" Z="437" S="667" T="-16" R="33" G="0" B="123" A="255"/>
<Vtx X="501" Y="96" Z="437" S="667" T="1008" R="26" G="179" B="97" A="255"/>
<Vtx X="378" Y="471" Z="403" S="496" T="-16" R="166" G="0" B="90" A="255"/>
<Vtx X="378" Y="96" Z="403" S="496" T="1008" R="185" G="179" B="71" A="255"/>
<Vtx X="345" Y="471" Z="280" S="325" T="-16" R="133" G="0" B="223" A="255"/>
<Vtx X="345" Y="96" Z="280" S="325" T="1008" R="159" G="179" B="230" A="255"/>
<Vtx X="435" Y="471" Z="189" S="155" T="-16" R="223" G="0" B="133" A="255"/>
<Vtx X="435" Y="96" Z="189" S="155" T="1008" R="230" G="179" B="159" A="255"/>
<Vtx X="559" Y="471" Z="222" S="-16" T="-16" R="90" G="0" B="166" A="255"/>
<Vtx X="559" Y="96" Z="222" S="-16" T="1008" R="71" G="179" B="185" A="255"/>
<Vtx X="592" Y="471" Z="346" S="837" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="559" Y="471" Z="222" S="1008" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="641" Y="471" Z="140" S="1008" T="-16" R="84" G="211" B="172" A="255"/>
<Vtx X="704" Y="471" Z="376" S="837" T="-16" R="115" G="211" B="31" A="255"/>
<Vtx X="468" Y="782" Z="313" S="837" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="501" Y="471" Z="437" S="667" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="531" Y="471" Z="548" S="667" T="-16" R="31" G="211" B="115" A="255"/>
<Vtx X="468" Y="782" Z="313" S="667" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="378" Y="471" Z="403" S="496" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="296" Y="471" Z="485" S="496" T="-16" R="172" G="211" B="84" A="255"/>
<Vtx X="468" Y="782" Z="313" S="496" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="345" Y="471" Z="280" S="325" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="233" Y="471" Z="250" S="325" T="-16" R="141" G="211" B="225" A="255"/>
<Vtx X="468" Y="782" Z="313" S="325" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="435" Y="471" Z="189" S="155" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="405" Y="471" Z="77" S="155" T="-16" R="225" G="211" B="141" A="255"/>
<Vtx X="405" Y="471" Z="77" S="155" T="-16" R="225" G="211" B="141" A="255"/>
<Vtx X="233" Y="471" Z="250" S="325" T="-16" R="141" G="211" B="225" A="255"/>
<Vtx X="468" Y="782" Z="313" S="155" T="-16" R="0" G="127" B="0" A="255"/>
<Vtx X="559" Y="471" Z="222" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="435" Y="471" Z="189" S="155" T="-16" R="0" G="129" B="0" A="255"/>
<Vtx X="641" Y="471" Z="140" S="-16" T="-16" R="84" G="211" B="172" A="255"/>
<Vtx X="468" Y="782" Z="313" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
</Vertex>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="0" G="0" B="0" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="117" G="125" B="187" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="117" G="192" B="117" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="217" G="159" B="125" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="0" G="0" B="0" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="201" G="148" B="194" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="201" G="147" B="193" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="200" G="118" B="129" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="237" G="226" B="143" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="0" G="0" B="0" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="129" G="129" B="132" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" G_LOD="1" />
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="19" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TT_NONE="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="31" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="175" G="177" B="175" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,12 @@
<DisplayList Version="0">
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
<SetGeometryMode G_ZBUFFER="1" G_SHADE="1" G_CULL_BACK="1" G_FOG="1" G_LIGHTING="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="1" G_TEXTURE_GEN="1" G_TEXTURE_GEN_LINEAR="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_H" Sft="4" Length="20" G_AD_NOISE="1" G_CD_MAGICSQ="1" G_CK_NONE="1" G_TC_FILT="1" G_TF_BILERP="1" G_TL_TILE="1" G_TD_CLAMP="1" G_TP_PERSP="1" G_CYC_2CYCLE="1" G_PM_NPRIMITIVE="1" />
<SetOtherMode Cmd="G_SETOTHERMODE_L" Sft="0" Length="32" G_AC_NONE="1" G_ZS_PIXEL="1" G_RM_FOG_SHADE_A="1" G_RM_AA_ZB_OPA_SURF2="1" />
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
<SetPrimColor M="0" L="0" R="129" G="129" B="132" A="255"/>
<EndDisplayList/>
</DisplayList>

Some files were not shown because too many files have changed in this diff Show More