Compare commits

...

805 Commits

Author SHA1 Message Date
Garrett Cox 69d6631bbc Some tweaks to WIP (#4706) 2024-12-17 11:03:54 -06:00
lilacLunatic d725125f9b [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>

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-12-17 04:35:54 -06:00
Garrett Cox a10b4d0662 Merge pull request #4697 from garrettjoecox/let-it-snow
`develop` -> `let-it-snow`
2024-12-17 04:35:39 -06:00
Garrett Cox 39609bdac9 Various cleanup 2024-12-17 04:12:28 -06:00
Garrett Cox 70f353f6ec Merge branch 'anchor-next' of garrettjoecox.github.com:garrettjoecox/OOT into let-it-snow 2024-12-16 12:41:08 -06:00
Garrett Cox 31ee15dcc8 WIP 2024-12-16 09:18:29 -06:00
Garrett Cox e69883338b Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into let-it-snow 2024-12-15 23:15:21 -06:00
Archez a8f3840475 let-it-snow: Snow Golems (Skeleton override) (#4695)
* Add Snow Golems (Skeleton override)

* update snowball to use new snowball DL
2024-12-15 23:01:00 -05:00
Malkierian add5347126 Properly check for pre-existing gInjectItemCounts before setting the new separate CVars. (#4692) 2024-12-15 15:20:51 -07:00
Jordan Longstaff 0f167d119b Skip Biggoron's waking up cutscene (#4689)
* Skip Biggoron's waking up cutscene

* Allow fast speaking and trading
2024-12-15 14:00:43 -07:00
Jordan Longstaff 1cf3319936 Skip fire arrow spawn cutscene after shooting sun (#4635)
* Skip fire arrow spawn cutscene after shooting sun

* Fix

* Reorganize VB flags in enum

* A bit of VB cleanup
2024-12-14 14:43:26 -07:00
Archez c6eb165cf1 Fix GfxPrint shadow for HD fonts and some cleanup (#4681) 2024-12-14 14:39:40 -07:00
Jordan Longstaff bb41931a55 Rename a lot of actor movement-related functions from decomp (#4680) 2024-12-14 22:38:24 +01:00
aMannus 3a8ba03ce8 CrowdControl random buttons fix (#4679)
* CC random buttons fix

* Archez's fix
2024-12-14 22:31:29 +01:00
Malkierian 4b07a6f59a Re-implement old toggles for Dpad and Right Stick Ocarina Playback. (#4660) 2024-12-14 22:31:10 +01:00
Rozelette e0f25905c2 Add pulsate boss icon enhancement (#4651) 2024-12-14 12:00:28 -07:00
Jordan Longstaff 5d8e7740ef Rename two Actor functions from decomp (#4674) 2024-12-13 15:56:42 -07:00
aMannus 1a5632e3b5 [RANDO] Shuffle Pots (#4592)
* Potsanity proof of concept

* Hide pot item cutscenes for very frequent items

* Add 1 new pot to the item pool

* V1 custom pot model

* V2 pot model

* Pushing for help. lol

* Format clean up on added hint_list entries.
Removal of WriteIngameSpoilerLog call that was unneeded.

* THREE_ACTOR_PARAMS -> TWO_ACTOR_PARAMS and hints in a loop

* Lost woods pots logic

* Realign Pot Checklist in Location_list.cpp

* Correcting some values and adding Master Quest pots.

* Remove vanilla placements

* Re-order enums + start hints per region

* Fix build

* Break up shuffle pot options to dungeon/overworld/all

* Fixes

* Prepare default pot contents, fix/add dungeons

* Fix dungeon/overworld only settings

* Updates to Parameters and RHT information

* Remove unused hints

* Add proper check tracker entry exclusion

* Tweak items to skip cutscenes for

* Vanilla Drop List

* Update magic to blue rupees

* After merge fixes

* Fix Ganondorf's Lair pots

* Fix check tracker + minor stuff

* Unlock early GBK door

* Minor fixes

* More minor stuff and start of logic entries

* Fix TWO_ACTOR_PARAMS overlap between pots

* De-dupe defines

* Add missing water trial pot

* Update to develop-rando

* VBify pots progress

* Cleanup and fixes

* Overworld logic done

* Cleanup and fix item00 queues

* Implement skipping cutscenes for common items

* Revert "Implement skipping cutscenes for common items"

This reverts commit fe44916588.

* Ganons tower pot not spawning item fix + cleanup

* Fix ganon's tower, barinade, water temple pots

* VBify ganons key door

* Lizalfos Pot addition (example)

* Separate MQ pots in randomizerTypes.h

* Fix build

* Fix linux build (?)

* DC/Jabu/Botw/ start of Forest Pots (NMQ)

* Remaining Dungeon Non MQ Pot Location Logic

* After merge fixes round 1

* Post merge fixes round 2

* Apply MQ pot logic

* Re-align some stuff

* Cleanup, more work on locationlist

* Start of handling dungeon pots in item pool

* Finish dungeon pots in item pool

* GTG MQ Pots

* Review comments round 1 & code cleanup

* Fix ganon's lair pots being behind GBK in logic

* Update soh/include/z64actor.h

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

* Update soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c

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

* Address review comment

* Fix logic for pots in Fire Temple

* Fix GtG MQ pots, fix water temple pot logic

* Review Comments

* Logic review part 1

* Logic comments part 2

---------

Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2024-12-13 21:15:40 +01:00
Pepper0ni ab863653ce Do some renames for the new settings arrangment (#4668)
* Automate settings text to enum conversion

* rename fortress setting into carpenters

* More renames for the new spoiler log layout
2024-12-13 12:30:13 -07:00
Pepper0ni 278f2e6f15 Spinner skip but no chime (#4678) 2024-12-13 12:29:57 -07:00
Pepper0ni f66b234ce2 Consistently name Gift from Rauru (#4677) 2024-12-13 12:29:32 -07:00
Kenix3 c7341ec544 Bump LUS (#4670)
* Bump LUS

* bump LUS

* bump lus (again)

* bump LUS again
2024-12-13 01:05:13 -07:00
Jordan Longstaff 2e71a826b2 Skip walking away cutscene when freeing Gorons (#4639)
* Skip walking away cutscene when freeing Gorons

* Revert a change too far

* Restore Goron walking out animation
2024-12-12 08:25:07 -07:00
lemonslut 16d69e4a28 Update macOS development dependency list (#4648)
- Adds a few extras I had to install to build
- Adds link to [homebrew](https://brew.sh/)
- Adds `brew install ...` command to setup script
2024-12-09 23:27:35 -05:00
Garrett Cox 0c7ce16986 Merge pull request #4659 from garrettjoecox/let-it-snow
`develop`->`let-it-snow`
2024-12-09 21:45:51 -06:00
Garrett Cox c47f1d6d92 Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into let-it-snow 2024-12-09 21:01:45 -06:00
Pepper0ni 7d80d1c85d Fix boss hints and gift from sages hint. (#4634) 2024-12-09 19:24:51 -07:00
Jordan Longstaff f852d70767 Properly replicate NaviTalk kill check (#4647)
* Restrict disabled Navi workaround to Dodongo's Cavern

* Properly replicate NaviTalk kill check

* Move `*should = false` out of condition
2024-12-09 19:24:37 -07:00
Jordan Longstaff 35dcf93c51 Adult Ruto function and property names pulled in from decomp (#4654)
* Adult Ruto function and property names pulled in from decomp

* Align name changes more with decomp

* Nope, missed a couple more
2024-12-09 19:23:57 -07:00
Jordan Longstaff 6823b6990b Name alpha-distance update function from decomp (#4658) 2024-12-09 19:23:14 -07:00
Pepper0ni ad23298500 Automate settings text to enum conversion and remove OptionGroups from the process (#4636)
* Automate settings text to enum conversion

* rename fortress setting into carpenters
2024-12-09 19:18:00 -07:00
Archez 6470522a02 Fix temp flags transfering in dungeon chains and various issues with voidouts in mixed entrances (#4637) 2024-12-09 19:17:26 -07:00
Garrett Cox 4162a818b1 Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into let-it-snow 2024-12-09 19:52:14 -06:00
Jordan Longstaff de6f5d8b65 Skip Water Temple portcullis opening cutscene (#4641) 2024-12-09 09:14:47 -07:00
Jordan Longstaff 23dc4257a7 Skip one-point cutscene of Amy's blocks falling (#4645) 2024-12-09 09:14:01 -07:00
Jordan Longstaff d0bfa6860b Skip the Mweep cutscene (#4646)
* Skip the Mweep cutscene

* Fix bug: Ruto's letter was not removed from bottle
2024-12-09 09:13:45 -07:00
Jordan Longstaff 4010229de5 Rename bomb flower fuse setting field (decomp) (#4653) 2024-12-09 09:13:28 -07:00
Jordan Longstaff 2d37098379 Rename Sleeping Waterfall state machine function (decomp) (#4655) 2024-12-09 09:13:18 -07:00
Jordan Longstaff d8d9119de9 Rename Kakariko Well water level function (decomp) (#4656) 2024-12-09 09:13:08 -07:00
briaguya 732b8c10f7 bump LUS (#4638)
* bump LUS

* bump OTRExporter
2024-12-08 11:46:31 -07:00
Archez bccd96966f Fix crash when toggling alt assets while paused (#4621) 2024-12-06 10:36:38 -05:00
Malkierian 09f297392f Fix GetItemObtainabilityFromRandomizerGet check for sticks and nuts not accounting for not shuffling stick or nut bags and also not starting with related ammo. (#4633) 2024-12-05 21:35:27 -07:00
Archez 276db580e8 Fix display list offset values and unhandled opcodes (#4618)
* Fix display list offset values and unhandled opcodes

* fix unknown opcodes on custom chest textures
2024-12-05 11:00:39 -05:00
Garrett Cox 2808279f00 Merge pull request #4615 from garrettjoecox/let-it-snow
develop -> let-it-now
2024-12-04 21:35:44 -06:00
Garrett Cox 05539fee03 Add custom collectible thing 2024-12-04 20:26:11 -06:00
Garrett Cox 796576717f Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into let-it-snow 2024-12-04 12:29:01 -06:00
Pepper0ni c3e4579cba Change GetSelectedOptionText to contextSelection and clean up some junk (#4613)
* Change GetSelectedOptionText to contextSelection and clean up some junk

* more cleanup

* readd a fail alert as an assert
2024-12-04 11:01:25 -07:00
Archez 9b169af3f5 Fix find newline looping to have additional break early cases (#4614) 2024-12-04 11:01:08 -07:00
Pepper0ni b442c15322 Skip Shadow Statue Cutscene (#4612)
* Skip Shadow Statue Cutscene

* cleanup
2024-12-03 12:30:14 -07:00
Pepper0ni b1d1852655 Rewrite vanilla jabu logic (#4603)
* rewrite vanilla jabu logic

* cleanup

* more cleanup
2024-12-03 09:44:36 -07:00
Garrett Cox 291561667b Update hook debugger to pull from GameInteractor ptrs rather than cloning the data every frame (#4609) 2024-12-03 09:44:18 -07:00
Caladius 82d70a2029 Add Timer Display Window (#4553)
* Add new timer window and display options

* Fix overflow spacing

* Icons for Timers

* Swap Labels for Icons.

* Additional Timers

* Navi Timer Icon

* Clean up unused Defines.

* Code clean up and double check. Ready for Review

* Update from Suggestions

* Update magic numbers, correct indentations hopefully

* One moooooore thing

* Undo z_param change

* Updates
2024-12-03 09:44:10 -07:00
Malkierian 8b60cea1f9 Split "Starting Consumables" to Sticks and Nuts. (#4583)
* Split "Starting Consumables" to Sticks and Nuts.
Setup disabling for them based on status of bag shuffles.

* Updated to split index options format.
2024-12-03 09:18:22 -07:00
Extloga f2cc278f8c Fixes for the English text in several files (#4605)
* Fixes for the English text in option_descriptions.cpp

* Fixes for the English text in static_data.cpp

* Fixes for the English text in option_descriptions.cpp

* Fixes for the English text in option_descriptions.cpp

* Fixes for the English text in settings.cpp

* Fixes for the German translation in hint_list.cpp
2024-12-03 09:18:07 -07:00
Pepper0ni e704c5592b fix text Poeverflow on Poes hint (#4598) 2024-12-03 09:11:01 -07:00
Garrett Cox bbe3bb72b6 VBify Ruto (#4602) 2024-12-02 17:56:32 -07:00
Malkierian 4edb83e2f3 Fix errors introduced by actor check reveal PR from references to GetSelectedOptionIndex. (#4607) 2024-12-02 13:46:16 -07:00
Garrett Cox fe9bf7d956 Adjust Actor_GetProjectileActor to behave more like hardware, fixing an issue with Dark Link (#4606) 2024-12-02 12:40:29 -07:00
Philip Dubé caf0dc40c7 update check tracker when actor tells what they reward (#4568)
* update check tracker when actor tells you what they reward

do not render price when 0

* feedback
2024-12-02 09:04:21 -07:00
Eric Hoey 19d1fd5545 Boomerang Reticle and First-Person Aiming (#3374)
* First-person, reticle, sway, menu, and presets

* Put sway back behind reticle, adjust aim height for age

* block vanilla + comments

* new documentation method

* second try formatting

* Correct boomerang distance

* Update for CVAR changes

* Fix alignment?

* Condition cleanup

* Change reticle range to match bow behavior

* remove magic values
2024-12-02 09:03:47 -07:00
Caladius 60a70bc795 Ornament Exchange (#4582) 2024-12-02 09:44:35 -06:00
Jordan Longstaff 9b74a09955 Zora's River waterfall always open, take two (#4459)
* Zora's River waterfall always open, take two

* Remove improper, redundant checks in hook

* Move all checks into update hook

* Add Randomizer setting for keeping Sleeping Waterfall open

* Change header exports to extern exports

* Remove "closed as child" option for rando setting

* Oops, missed a spot

* A bit more cleanup: simplify a redundant condition

* Unify hook handlers

* Oopsie, fix build error

* Add "play only once" option

* Force Sleeping Waterfall enhancement in rando mode

* Force enhancement only if waterfall is Open in rando

* Restore forced-open waterfall in rando

* Fix rando condition in hook

* Fix? rando entrance logic for OI

* Fix build errors
2024-11-30 18:59:38 -07:00
Pepper0ni ee628059d8 Fix Lab Man actor breaking and the invisible UI glitch (#4599)
* fix Lab Man actor breaking and the invisible UI glitch

* address review
2024-11-30 18:59:13 -07:00
Malkierian 573d846cd7 Add saved status setting to StartingItemGive (#4600) 2024-11-29 20:35:38 -07:00
Malkierian 55960da402 Separate option values into context and menu indexes. (#4581)
* Separate option values into context and menu indexes.

* Fix option index reference in `CleanCheckConditionString`.

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

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

* Restore `const` classification to functions returning `string&`.

* Restore `const` classification to getter functions.

* Restore a couple more `const`s; cleanup header.

* Final consts; rename `SetCVar` to `SaveCVar`.
2024-11-29 17:58:30 -07:00
Malkierian f7378a9f76 Cosmetics cleanup (#4587)
* Convert defaultColor from ImVec4 to Color_RGBA8.
Convert defaultColor's ints to floats when being applied to currentColor in the macro.

* Address previous cleanup comments.
Surround `Message` tab in an advanced check.

* Resolve warnings and cleanup whitespace/formatting.

* Make Color_RGBA8 constructing function because... platform differences...

* Function name clarification.

* Remove default color conversion, reference default colors directly in CosmeticOption initialization.
2024-11-29 11:38:40 -07:00
Pepe20129 a92c08dea1 Fix some situations where trade items spoiled (#4569)
* Fix some situations where trade items reverted

* Update z_game_over.c

* Hopefully fix mac
2024-11-27 10:33:50 -07:00
Pepper0ni 5b7b38f198 Add some +/- buttons and clean up timesavers menu (#4571)
* Add some +/- buttons and clean up timesavers menu

* Better implement Image Button Style
2024-11-26 18:29:27 -07:00
Malkierian c960433832 Setup AdvancePond to run in OnItemReceive. (#4585) 2024-11-26 18:28:50 -07:00
Malkierian 13789a1dfb Prevent void and teleport traps from being added to the shuffle pool while fishing in the pond. (#4586) 2024-11-26 18:28:24 -07:00
Pepe20129 7ccb3ac7c3 Cosmetics Changes (#4275)
* Clean CosmeticsEditor.h

* Add CosmeticsEditor_GetDefaultValue

* Add message text cosmetics

* Format cleanup

* Remove dependency on 3drando random functions

* Fix rainbow for every cosmetic

* Add "Rainbow All" & "Un-Rainbow All"

* Add HookshotChain cosmetic

* Add Nayru's cosmetics

* Add Farore's cosmetics

* Add Din's cosmetics

* Add Title card cosmetics

* Update CosmeticsEditor.cpp

* Add Copyright text cosmetic
2024-11-26 15:48:58 -07:00
Pepper0ni d0f7d30c16 Fix OnePoint cutscenes, make Skip Glitch cutscenes into Exclude Glitch Cutscenes (#4575)
* Fix OnePoint chutscenes, make skip glitch cutscenes into exclude cutscenes

* address comments
2024-11-26 12:43:20 -07:00
Malkierian 31120b7188 Add master sword to ItemIDtoRandomizerGetMap to prevent assert crash in Return_Item after custom GIE was removed for MS. (#4584) 2024-11-25 20:36:35 -07:00
briaguya 7662fa4c3c fix readme link formatting (#4576)
* fix readme link formatting

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2024-11-25 11:21:45 -07:00
Garrett Cox 6042328133 Merge pull request #4578 from garrettjoecox/let-it-snow
develop -> let-it-snow
2024-11-24 10:13:19 -06:00
Garrett Cox e6db2e5d37 Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into let-it-snow 2024-11-24 09:50:40 -06:00
aMannus 7d3b9e8211 Rocs Feather - LetItSnow Edition - No Save Edition - Limited Edition (#4577)
* Rocs Feather Take 2

* Tooltip
2024-11-24 08:18:01 -06:00
lilDavid f1dc432589 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
2024-11-22 21:03:37 -06:00
Archez 8926d8f784 Fix array out of bounds in entrance init (#4566) 2024-11-22 16:23:15 -07:00
Pepper0ni 5520c185bf Limit retries of the randomiser quest menu seed generation (#4564) 2024-11-22 16:22:39 -07:00
Pepper0ni 9c99a1e515 Fix the "Greg as Reward" option in logic (#4565) 2024-11-22 16:22:27 -07:00
Pepper0ni eda97653d6 Save timesplits colour to cvar and reload it on init. (#4572)
* save timesplits colour to cvar and reload it

* fix mac and match cosmetics with the color conversion

* more stupid other platform fixes
2024-11-22 10:28:10 -07:00
Pepe20129 0f48970576 Shiny enemies (#4570) 2024-11-21 16:08:49 -06:00
Pepper0ni f0e5b9c22b learning how to VB (#4563) 2024-11-19 18:46:44 -07:00
Philip Dubé 01719283b3 typo: incorrect variable assignment (#4560) 2024-11-19 16:29:15 -07:00
Pepper0ni 3e313bd063 Enhacment presets no longer reimport randomiser settings (#4561)
* Enhacment presets no longer reimport randomiser settings

* make the change only apply to the Randomiser button instead
2024-11-19 16:22:54 -07:00
Caladius d459043644 Boulder Shuffle - Shuffles all Boulders randomly (#4554) 2024-11-19 17:22:07 -06:00
Archez 53b72a2507 Update PR artifacts actions and exclude soh.otr (#4558)
* update pr artifacts actions and exclude soh.otr

* remove deprecated save-always for windows cache
2024-11-19 18:18:18 -05:00
Malkierian 3f2d8ddc01 Fix infinite freeze in rando on GS pickup. (#4555) 2024-11-19 15:40:23 -07:00
Malkierian 4850041943 Fix Gift from Sages not showing in tracker (it's a valid shuffle now!). (#4556)
Bit of tracker code cleanup.
2024-11-19 15:39:42 -07:00
Malkierian 5dd3b39a83 Fix Plando Window Crash on new installs (#4557)
* Add check for Randomizer folder existing, and creating it if not, to plando window.

* Changed seed list population to just bail if the Randomizer folder doesn't exist.
Added button disabling to prevent crashes loading or saving empty structures.
2024-11-19 15:39:30 -07:00
Pepe20129 9bed5af33b OTRGlobals cleanup (#4251)
* Remove unused headers

* Move all "ResourceMgr_" functions to a new file

* Don't transitively include SaveManager

* Move cvar prefixes to a new header

* Add missing includes

* Update OTRGlobals.cpp

* Fix build

* Address review

* Fix some of the errors

* Update gameplaystats.h

* Update z_en_in.c

* Hopefully fix the linux issues

* Fix Linux issues for real this time, I checked

* Update ResourceManagerHelpers.cpp

* Update z_obj_mure2.c

* Post-merge fixes

* Fix build (hopefully)

* Post-merge fixes

* Update z_file_nameset_PAL.c

* cleanup some unnecessary headers (#7)

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2024-11-19 09:44:44 -07:00
Caladius 70f3dfa8c5 Built-in Plandomizer Editor (#4532)
* Add Plandomizer Editor Window

* UI, Ice Trap Editor, Hint Editor

* Drop down for previous seeds, wip hash display.

* Clean Up, Hash Icon Editor

* Updates based on suggestions

* Replace Tint with Color

* Add Boss Soul Icon

* Corrected App Folder Directory and updated from suggesstions.

* Add Hints to Junk Pool

* Utilize RandomElement for hints

* Hint update for pep

* apply patch

* Fix Sorting issue on Linux

* Skeleton Key, Shop Items, Milk, Fishing Pole, Ocarina Buttons, Loser Rupee fixed

* Fix stretched note icons.

* Remove Triforce, add Triforce Pieces. Centered Song Notes.

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

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

* Update hint_list.cpp

One spelling, removed 1 hint.

* Update Plandomizer.cpp

---------

Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
Co-authored-by: Malkierian <malkierian@live.com>
2024-11-17 12:44:54 -07:00
Caladius d9d831f241 Holiday Fever (#4551)
* Holiday Fever

* Swap to Int32 for safety net
2024-11-15 21:12:58 -06:00
Garrett Cox 79ede37262 Merge pull request #4546 from garrettjoecox/let-it-snow
Fix christmas tree messages
2024-11-13 21:43:43 -06:00
Garrett Cox bfd54abada Fix christmas tree messages 2024-11-13 14:19:11 -06:00
Malkierian 53e2fe4974 Refine mixed pool options to be more dynamic. (#4545) 2024-11-13 08:49:10 -07:00
Malkierian 6230901f29 Fix duplicate use of CVar for invert shield aiming. (#4544) 2024-11-12 22:02:22 -07:00
Jordan Longstaff 1eff613aa6 Fix skipping twisted hallway cutscenes (#4536) 2024-11-12 13:09:08 -07:00
aMannus c8e460cebe Heal goron necks (#4540) 2024-11-12 12:58:41 -07:00
Garrett Cox ed9692c84f Merge pull request #4539 from garrettjoecox/let-it-snow
Update let-it-snow with develop and fix ornament messages
2024-11-12 10:19:56 -06:00
Garrett Cox a6fbadc04e Fix issues with vanilla item queue when skipping things, resolves #4537 (#4538) 2024-11-12 10:18:57 -06:00
Garrett Cox 2ee5e5c428 Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into let-it-snow 2024-11-12 09:38:41 -06:00
Garrett Cox ee186f6c22 Fix issue with ornament get item messages 2024-11-12 09:33:25 -06:00
Pepe20129 ffc132a01b Clean __osMalloc.c (#4351)
* Remove #ifs

* Add `NODE_IS_VALID`

* Fix current macros

* `NODE_GET_NEXT` & `NODE_GET_PREV`

* Add macros

* Use macros and general cleanup

* Fix build (hopefully)

* Address review
2024-11-11 17:46:25 -07:00
Archez f12a2bbbb7 Port over decomp updates for vis* and reimplement vismono fb (#4533)
* Port over decomp updates for vis*

* move vismono framebuffer handling to file
2024-11-09 12:51:31 -05:00
Pepper0ni 2603b97366 Rewrite MQ spirit logic (#4534)
* rewrite MQ spirit logic

* fix oversights
2024-11-09 09:40:00 -07:00
Pepe20129 c8815a26f7 Improve ganon tower logic (#4526)
* Improve ganon tower logic

* Fix build and address review

* Update locacc_ganons_castle.cpp

* Update locacc_ganons_castle.cpp

* Update locacc_ganons_castle.cpp

* Update logic.cpp

* Update randomizerTypes.h

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: Malkierian <malkierian@live.com>
2024-11-09 09:34:05 -07:00
Jordan Longstaff 068cceff36 Update SFX symbols from decomp (#4531) 2024-11-08 20:36:57 -07:00
Archez 4eeb01905d pull in decomp updates for z_play (#4522) 2024-11-07 09:52:21 -07:00
Pepper0ni 1d9d273a57 Rewrite MQ Water Temple Logic (#4520)
* Rewrite Storage Temple Logic

* fix a boss room oversight

* Fix some random errors

* cleanups
2024-11-07 09:51:29 -07:00
Garrett Cox d07cbe8395 Adjustments to change age cheat and time travel enhancement (#4512) 2024-11-06 19:38:57 -07:00
Jordan Longstaff a919b6a5a0 Fix skipping Adult Ruto one-point cutscene (#4519)
* Fix skipping Adult Ruto one-point cutscene

* Kill Ruto's actor instead of leaving her to swim up

* Change to Story cutscene

* Change to extern function
2024-11-06 19:38:44 -07:00
Archez dabd0c25bd Move collision viewer draw to hook and fix empty nametags (#4523) 2024-11-05 21:50:59 -05:00
Malkierian 894d3c00d3 Change ENTR_BOMBCHU_SHOP_0 to ENTR_BOMBCHU_SHOP_1 in entrance.cpp to fix interior shuffle crash. (#4521) 2024-11-04 20:16:27 -07:00
Archez d8f8b6e6b9 Fix Bluewarp handling with entrance rando (#4517)
* force bluewarp skips on when entrance rando is enabled

* Fix second visits and other issues with lingering bluewarp state
2024-11-04 20:07:21 -07:00
Garrett Cox 20ac33d380 Fix #4506, Mido crash in intro cutscene with Open Forest (#4511) 2024-11-02 10:50:48 -07:00
Garrett Cox 5c98cdacde Add ganon dating sim PoC (#4510) 2024-11-02 11:38:17 -05:00
Garrett Cox 8d4adb0f50 Fix build issue (#4504) 2024-11-01 10:46:28 -05:00
Pepper0ni 0d17e72dca Rewrite MQ Shadow Temple logic (#4502) 2024-11-01 08:15:27 -07:00
Garrett Cox 563061beda Add holiday menu and various examples 2024-11-01 09:35:41 -05:00
Garrett Cox 0425539fee Let it snow 2024-11-01 09:35:41 -05:00
Archez ec1f03e8a2 Pass for some warning fixes (#4501) 2024-10-31 07:42:27 -07:00
Archez 98fa5663b4 Hookify more Entrance Rando handling (#4500)
* Hookify more entrance rando handling

* fix bad enums
2024-10-31 00:27:20 -04:00
Malkierian 6e024ed15d Entrance Enum and Name Refactor (#4484)
* Rename entrance enums for clearer location by name.
Change entrance name strings to be clearer for single-entrance tracking.

* Rename grotto macros to remove "RANDO", and move them to `randomizerTypes.h` for use elsewhere.

* Add entrance enums to rando's entrance.cpp.
Rename a couple RandomizerRegions for consistency.

* Swap entrance ids to enum values in rando's entrance.cpp.
Few more renames for clarity and consistency.

* Adapt entrance tracker to utilize new names and only display original source and substituted destination.
Few more renames for consistency.

* Missed a space in the tracker output.

* Restore pre-digit names of some enums, name great fairies more consistently.
2024-10-30 19:44:34 -07:00
Jordan Longstaff 705bbea144 "Skip forced dialog" no longer skips optional Navi hints (#4450) 2024-10-30 19:14:22 -07:00
Archez c232e13fff Fix getItemEntry macros (#4499) 2024-10-30 16:15:39 -07:00
Pepper0ni 71e9e616b6 Rewrite MQ Jabu Logic (#4493)
* rewrite MQ Jabu Logic

* Add swim requirement to the rang jump trick as link hints the water first
2024-10-29 14:05:09 -07:00
Pepe20129 6bd3b1d160 Move & refactor Randomizer_Item_Give (#4492) 2024-10-29 09:24:56 -07:00
Pepper0ni b706532754 Attempt to find area problems (#4494)
* Better insulate the code against no areas and fix misc issues

* remove a stray reminder comment
2024-10-28 17:35:36 -07:00
Malkierian 108d5061d4 Small Warnings Refactor (#4477)
* Disable all warnings, even in release, on the `src` directory.
Resolve math macro duplication warnings.

* Suppress LUS warnings.

* Modify it to utilize a variable that defaults on but can be specified in command line to disable it.
Prevet total compile option overwrite for LUS.

* Remove unnecessary unset and cache parameters.

* Document warnings flag in BUILDING.md
2024-10-28 17:30:11 -07:00
Malkierian fd8e98ed12 Fix rando presets (#4491)
* Fix application of preset values to sliders.

* Add new rando CVars to preset list, and alphabetize.
2024-10-28 08:25:26 -07:00
Garrett Cox 2c08fca46c Add faster rupee accumulator (#4490) 2024-10-28 08:25:15 -07:00
Malkierian 1df91890fe Windows Build Assets Tweak (#4486)
* Change CMake process to copy assets necessary for OTR creation to VS run directory.
Remove reference to ExtractAssets target from Windows build instructions.

* Unify build instructions where appropriate across PC platforms.
Clarify commented parts of some commands.

* PR feedback.
2024-10-28 00:02:04 -07:00
Pepper0ni d6ebed59dc Fix oversight in Static Hints, add some asserts (#4488) 2024-10-27 22:24:14 -07:00
Malkierian e5f4c091f8 Add condition to disabling Generate Randomizer button if file is loaded to prevent rando context confusion. (#4487) 2024-10-27 14:40:30 -07:00
Pepper0ni 438a8bff79 Rewrite MQ GTG and Ice Cavern logic (#4483)
* rewrite GTG logic

* Rewrite MQ Ice Cavern Logic
2024-10-27 14:16:51 -07:00
Malkierian 169e39ebad Adds item names to filtered parameters. (#4485) 2024-10-27 09:02:51 -07:00
Garrett Cox 804584e79d Fix rainbow bridge sound spam 2024-10-26 00:12:27 -05:00
Garrett Cox 20ddc7a536 Redo frog VB 2024-10-25 22:40:35 -05:00
Pepper0ni 7f4bd3e98c Fix any dungeon location pool and fire boss door logic (#4480)
* fix any dungeon location pool and fire boss door logic

* Make GetDungeonLocations consistent

* add All to name
2024-10-25 17:51:50 -07:00
Pepper0ni 6ca55aadbd Rewrite MQ Ganon's castle logic (#4469)
* rewrite ganon MQ logic

* typo fix

* remove excess brackets to avoid compiler errors
2024-10-25 17:51:07 -07:00
Pepe20129 a91243ec01 Fix msvc internal compiler errors on mq logic (#4478) 2024-10-25 20:19:01 +09:00
Malkierian 89fe9c1ccb Fix Phantom Ganon fast death time saver crash. (#4476) 2024-10-24 21:55:17 -07:00
Pepper0ni 8638810b9d Fix bean buy and warp song text crashes (#4470) 2024-10-23 17:34:44 -07:00
Malkierian 2ffd62a5b1 Fix scrubs behaving as if shuffled despite not being. (#4468)
Convert shop tracking to checking for shuffled.
Change "Hide right-side shop item checks" to "Hide unshuffled shop item checks" on the check tracker.
2024-10-23 08:35:25 -07:00
Caladius 75a0979bc7 Built-in Time Splits [v2.1] (#4455)
* Adds 2 new Hooks, OnTimeStamp and OnPlayerHealthChange.

* Re-add Timesplit code

* Committing custom Assets

* Commit Asset definitions

* Adding Windows

* Fix Modal Window and others

* Time Splits v2 new Hooks etc.

* Fixing Time Displays

* Adding Big Poe split

* Update Options Tab

* List Preview and Removing Split Entries

* Allow Split Table to resize

* Fix Window Color and Adding Non Items to Split List

* Correct Song Image Skew
2024-10-22 10:17:30 -07:00
Malkierian 8c304d54b2 Fix wallet display for More Info with non-rando saves. (#4467) 2024-10-22 10:10:50 -07:00
Malkierian dee885622e Add InjectItemCounts to the migrator. (#4466) 2024-10-22 09:46:50 -07:00
Pepper0ni a005075bd2 Fix Settings Loading Issues (#4465) 2024-10-22 08:50:05 -07:00
Pepper0ni dd9253808b Rewrite forest MQ logic, add swim to lake logic (#4464)
* rewrite forest logic, add swim to lake logic

* fix small oops

* oops
2024-10-21 19:18:50 -07:00
Jordan Longstaff 3a4bd1164a Add freeze timer hook for Gold Skulltula collection (#4445)
* Add freeze timer hook for Gold Skulltula collection

* Remove unused player references

* Replace magic number text IDs

* Separate hook for freezing player on token collection

* Revert one unintended change
2024-10-21 19:18:34 -07:00
Malkierian 17d8487730 Modify all (4) instances of Flags_GetRandomizerInf() returns that were u8 to s32 to avoid value overflow. (#4463) 2024-10-21 14:55:46 -07:00
Garrett Cox 92c791b7c0 Add simple notifications system 2024-10-21 13:20:33 +00:00
Malkierian 4663bd152a VBify poe collector giving for rando. (#4458)
* VBify poe collector giving for rando.

* Forgot an include.

* Further refinement so all the action happens in the handler. Virtual full restoration of vanilla code flow.

* Restored 1000 point messages before rando item give.

* Cleanup redundant GI Should call.
2024-10-20 23:49:32 -07:00
Jordan Longstaff b2e99b8ff5 Zora's River waterfall opens instantly (#4454)
* Zora's River waterfall opens instantly

* VB cleanup

* Move it all to VB hook

* Fix build errors

* Null safety
2024-10-20 23:36:47 -07:00
Garrett Cox df6763257b Refactor network usage and adapt Sail/CC to changes 2024-10-21 01:30:32 +00:00
Garrett Cox 29d7c54250 Move CrowdControl/Sail files 2024-10-21 01:30:32 +00:00
Malkierian 6d1d57d19a Restores check color functionality. (#4451) 2024-10-20 01:03:47 -07:00
Pepper0ni 323c67b47c Change CanUse to include an assert, fix some bad uses of CanUse (#4444) 2024-10-20 01:03:09 -07:00
Pepper0ni 81db6e3996 refix loach check (#4448) 2024-10-20 01:00:54 -07:00
Jordan Longstaff c644f9f4be Restore plus/minus buttons on King Zora slider (#4449) 2024-10-20 01:00:46 -07:00
Pepper0ni ba38d985b3 Rewrite MQ fire logic and fix MQ deku logic (#4443)
* commit to merge

* rewrite fire and fix deku
2024-10-20 01:00:39 -07:00
Garrett Cox cbd35d0ef5 Tweaks to cmake globbing/source_grouping (#4439) 2024-10-18 09:35:07 -07:00
Malkierian a7cb7da9fc Change SoH Input Editor CVar to CVAR_WINDOW and remove definition for LUS's input editor CVar from the cmake. (#4438) 2024-10-17 22:06:43 -07:00
Malkierian 7e78abf01c Restore tooltip to skip text, add tooltips to slow text speed and match text speed. (#4437) 2024-10-17 22:03:13 -07:00
Archez f1841a20f3 add gfx debugger support (#4345)
Co-authored-by: Malkierian <malkierian@gmail.com>
2024-10-17 19:05:31 -07:00
Patrick12115 ed32a2820c Ageless Item Fixes (#3908)
* Fixes Mirror Shield and MS sheath

* Added Hookshot Tip&Chain and more edge cases

* Update presets.h

* Revert "Update presets.h"

This reverts commit 95d952ba23.

* More fixes

Bow showing up for slingshot gallery minigame is now fixed, as well as a rouge instance shrinking links hand when I didn't mean for it to

* CVar stuffs

* Fixes

* Fix more sheath stuff and bgs hand

* Add the P
2024-10-17 18:42:14 -07:00
Malkierian 5a23da4ce0 Make ConfigUpdaterV2 use CVarClearBlock instead of manually scanning. (#4435) 2024-10-17 18:41:38 -07:00
Malkierian dba74f8805 Disable Lens Effect On Unequip (#4432)
* Add logic to turn off lens effect when replacing it on a button with another item, but not swapping.

* Swap to real fix for dpad equips bug, c/o Rozelette.
2024-10-17 14:36:53 -07:00
Pepe20129 b5c6545d6f z_player documentation 2024-10-11 (#4407)
* Add names to start of typedefs

* Idle stuff

* 2 functions

* Player state flags

* Name functions + misc

* ActionChange => ActionHandler

* Some player unks

* More player unks

* Header misc

* Misc

* More misc

* Player Actions

* Missed comments

* Move ship specific stuff

* Fix build

* CsCmdActorAction to CsCmdActorCue

* Fix build
2024-10-17 11:55:31 -07:00
Malkierian 3c5d9faba3 Blair Config Migrator V3 (#4148)
* Config migrator to handle CVar macros/sections, as well as a few other changes since MacReady.

* One more round of cleanup.

* Move config migrators above SetupGuiElements to allow for migrated window variables to register before windows use them to determine visibility.

* One more.

* Adapt DpadEquips, NavOnL, and PauseAnyCursor CVars to accommodate Pablo moving them to enhancements.
2024-10-16 21:58:31 -07:00
Malkierian b7bbb1bb8a Make starting_inventory.cpp add the Master Sword based on RSK_STARTING_MASTER_SWORD. (#4431) 2024-10-16 21:54:55 -07:00
Malkierian 469797478e Force global rando context's Logic child to release its parent Context reference. (#4429) 2024-10-16 20:52:36 -07:00
Jordan Longstaff 52d1a98f41 Add "All" button for item count messages (#4430) 2024-10-16 20:52:23 -07:00
Jordan Longstaff c1295f33fe Unify "No forced dialog" settings in combo box (#4425)
* Unify "No forced dialog" settings in combo box

* Rename options
2024-10-16 19:45:51 -07:00
Malkierian e178df3e0c Change SkipIntro to check any entrance shuffle rather than just overworld spawns. (#4428) 2024-10-16 16:39:35 -07:00
Malkierian 262ec4817b Re-sync deku stick cheat CVar name. (#4427) 2024-10-16 15:54:55 -07:00
Jordan Longstaff b3ce27efed Add separate speed option for slower text (#4424) 2024-10-16 15:32:56 -07:00
Jordan Longstaff dcd26b2de8 Segregate count-injected item get messages by type (#4422)
* Segregate count-injected item get messages by type

* Move item count messages submenu up next to Items submenu

* Rectify presets

* Oops - deleted a comma by mistake
2024-10-16 14:18:24 -07:00
Pepper0ni 43b04a32cd rewrite MQ deku tree logic (#4418) 2024-10-16 14:16:58 -07:00
Jordan Longstaff da79e5e015 Fix fast speed skipping quick text markers (#4416) 2024-10-15 20:50:10 -07:00
Malkierian 45af1028af Fix options and sliders to prevent index out of range issues. (#4421) 2024-10-15 17:59:20 -07:00
Jordan Longstaff 960c9c4fd1 Fix heart piece injection messages to cover all counts (#4417) 2024-10-15 17:03:36 -07:00
MegaMech 90c07bb3ec Update BUILDING.md (#4415) 2024-10-15 10:05:31 -07:00
Malkierian eb7f12560b MVP to get shops hooked up to the queue. (#4412) 2024-10-15 08:31:16 -07:00
Garrett Cox eafe15ddf2 Fix bean salesman bug (#4410) 2024-10-14 19:11:33 -07:00
Pepper0ni 4dbb86e980 fix some bean salesman oversights (#4405) 2024-10-14 16:02:46 -07:00
Pepper0ni a9df9cbce4 Rewrite Bottom of the Well Logic (#4398)
* rewrite MQ botw and add some helper functions

* small fixes

* got bored, rewrote vanilla botw
2024-10-14 16:01:37 -07:00
Yomitht 86ad99f3c8 More Mweep (#4192)
* More Mweep

Adjusted the "King Zora Speed" timesaver enhancement to allow for slowing the animation down.

* [Fixed] Crashing when applying preset settings

Adjusted presets.h to expect a float instead of an integer for the "MweepSpeed" timesaver enhancement setting.

* Cleaning some things up

Deleted an unnecessary line, and switched the "King Zora Speed" option back to multiplier display instead of a percentage.

* Update SohMenuBar.cpp

Switched back to multiplier display

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
2024-10-14 16:01:18 -07:00
aMannus 3daf7a2ee5 Merge pull request #4387 from KatDevsGames/patch-5
automated QA
2024-10-14 14:36:34 +02:00
Jordan Longstaff 68fcc5921b Fix text speed enhancement with slowed down text (#4072)
* Correct behaviour of text speed enhancement

The text speed enhancement increases the size of the text crawl in the number of characters displayed in each step. This messes up certain parts of dialogue that were meant to be displayed in a certain way (like Ganondorf's "Heh heh heh..."), and in places where the text crawl is meant to be slower than normal, it just looks clunky. The text crawl speed enhancement is a wonderful feature, but smoothing out should be easily doable, and is a more correct implementation.

* Fix text speed for normal text

* Flatten if statements
2024-10-13 22:41:30 -07:00
Malkierian 65fbf2cc41 Restore Vanilla Tracking (#4394)
* Re-enabled vanilla tracking in the check tracker. Utilized Rando::Context for check status.

* Restore check tracker window custom background functionality.
2024-10-13 22:22:49 -07:00
Pepper0ni d0905f365a fix thieve hideout overworld status (#4403) 2024-10-13 17:50:57 -07:00
Patrick12115 d935028a54 [Fixes] Fix left hand when holding Hammer (#3992)
* Fixin it

* PreFIX

* Added Prefix to wrong Cvar

Oops
2024-10-13 17:33:34 -07:00
Pepe20129 914e838630 ImGuiUtils (#4222) 2024-10-13 17:29:22 -07:00
Pepe20129 1ffa23b5a9 Clean controller menu (#4223)
* Improved Ocarina Controls

* Move speed modifiers to modifier section

* Move DpadEquips, PauseAnyCursor & NaviOnL

* Add DpadHoldChange to menu

* Change DpadHoldChange checkbox to match default

* Change cvars from CVAR_SETTING to CVAR_ENHANCEMENT

* Update z_parameter.c
2024-10-13 17:28:39 -07:00
Pepper0ni e62f26d3bf add 2 missing settings to ParseJson (#4404) 2024-10-13 12:10:31 -07:00
Malkierian 05962baf45 Tracker Debug Performance, Vanilla Save Fix (#4397)
* Improve check tracker performance.

* Fix vanilla saves getting randomizer quest assignment.
Fix trying to load blank data blocks from save file.
Prevent writing randomizer block, even if empty, when save type isn't rando.
2024-10-12 23:38:07 -07:00
Pepper0ni 64ee12c11f Attempt to fix improperly set areas (#4396)
* Fix obvious issues

* Fix another stupid oversight

* remove test vars
2024-10-11 08:34:23 -07:00
Archez 6e025588a5 Fix how the gMtxClear is extracted and used by the Jabu scene DLs (#4375)
* fix how the clear mtx is extracted and used by the jabu scene DLs

* bump OTRExporter
2024-10-10 16:59:44 -07:00
Archez bd7155179e Port pause menu framebuffer handling from 2Ship (#4346)
* bring over framebuffer effects methods

* Implement framebuffer capture and drawing for pause menu

* revert hookshot and title cards to draw using original buffers

* remove old game over crash fix

* Adjust mirror mode handling for kaleido

* Avoid flashing the hud when pausing
2024-10-10 16:45:11 -07:00
Archez 7192783451 Fix interpolation for Kaleido (#4391) 2024-10-10 19:38:38 -04:00
Pepe20129 70a2141351 Mask improvements (#3431)
* Add gKeepMasks

* Add gSaveMasksToFile

* Add gKeepMasksOnDeath & gKeepBunnyHoodThroughTime

* Fix mask bleedthrough

* Update cvar names

* Change bunny hood enhancements to all mask ones

* Consolidate multiple enhancements into PersistentMasks

* Move keeping masks thru loading zones to PersistentMasks

* I forgot

* Update z_player.c

* Update z64save.h

Merge commit excluded this removal for some reason.

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: Malkierian <malkierian@live.com>
2024-10-10 16:16:41 -07:00
Yomitht 62713bb551 Added Project Overview to README (#4235)
* Added Project Overview to README

This is a couple additional lines of text clarifying the high-level structure of the project, mostly for the benefit of anyone new joining the project.

* Added "Further Reading" section

Points out and lists the contents of the "docs" directory for ease of access to the documentation therein.
2024-10-10 16:16:29 -07:00
Pepe20129 6d71eb3867 Use path xml parser & fix empty dl references (#4217) 2024-10-10 16:11:43 -07:00
Caladius 6d8480c16a Allow for User Selected Enemies for Enemizer (#4236)
* Allow for User Selected Enemies for Enemizer

* Updated CVar Entry List

* ImGui Cvar Updates

* GetSelectedEnemies Cvar Update

* Populate List if empty and if menu selection changes for Enemy Randomizer/Enemy List

* for loop for Menu Bar cvars, added enemyNameList table to get actor names

* Update variable for macOS/Linux

* Alphabetical Order you say?
2024-10-10 16:11:35 -07:00
Malkierian a6110dbc51 Update SoH's input editor window for the gui rework, and set it as what's opened by the Controller Configuration button. (#4352) 2024-10-10 16:11:19 -07:00
Pepe20129 7891ac2d6a Get patch word automatically (#4372) 2024-10-10 16:11:10 -07:00
Pepper0ni 4ba5384810 fix rupee messages (#4392) 2024-10-10 16:10:58 -07:00
aMannus cd8d40466a Merge pull request #4389 from HarbourMasters/develop-rando
[NO SQUASH] develop-rando upstream
2024-10-10 22:47:20 +02:00
Patrick12115 21cf978255 Add back lod = 0 code (#4354) 2024-10-09 20:16:43 -04:00
Archez 5d311fac9f Convert GameInteractor_Should hook to use variadic arguments (#4383)
* Convert _Should to use variadic args

* Convert everything to use va_arg properly

* Update shop hooks to va_args

* Wrong Function

* Update hook_handlers.cpp

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: Malkierian <malkierian@live.com>
2024-10-08 20:20:09 -07:00
Pepper0ni 9df3c41d8a Add support for multiple areas in regions and locations and remove Impa's house shuffle limits (#4385)
* Add support for multiple areas in regions and locations and remove impa's house shuffle limits

* Spelling corrections

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: Malkierian <malkierian@live.com>
2024-10-08 20:20:00 -07:00
Malkierian 4ac800f716 Upgrade GitHub actions using deprecated Node version (#4371) (#4388)
* Upgrade Ccache action to v1.2.14

* Upgrade Ccache action to v1.2.14

* Upgrade GitHub checkout action to v4

* Upgrade another cache action

Co-authored-by: Jordan Longstaff <JordanLongstaff@users.noreply.github.com>
2024-10-08 15:19:49 -07:00
Pepper0ni 10921b2ade Unify Shops, Scrubs and Merchants price and hinting code (#4321)
* commiting to branch switch

* shop,scrubs and merchant code unified

* last cleanups

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

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

* attempt to fix reviews DOES NOT BUILD

* TIL include order matters

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

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

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

Note to self, Don't code tired. *proceeds to ignore note*

Co-authored-by: Angelo Bulfone <boomshroom@users.noreply.github.com>

* fix typos

* post merge

* commiting to check something

* probably cleaned up, needs a doublecheck

* fix presets

* address reviews

* fix small shopsanity count oversights

* undo rename

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
Co-authored-by: Angelo Bulfone <boomshroom@users.noreply.github.com>
Co-authored-by: Malkierian <malkierian@gmail.com>
2024-10-08 14:33:58 -07:00
Pepper0ni a9fbd8243f Mitigate playthrough sphere jank and remove sphere enforcement in logic when not needed. (#4361)
* preparatory clean ups

* structure done, but failes to generate

* fix the bugs, but triple seed gen time on the benchmark

* fix massive generation time increases

* Remove sphereing when not needed as an optimisation

* post merge fixes

* reset the current sphere when toggling an event to cover another cause of jank

* address reviews
2024-10-08 13:22:19 -07:00
Lexi Rose 961ef572a4 automated QA 2024-10-08 15:11:01 -05:00
Pepe20129 2822dfc3f3 VBify (#4255)
* Convert ocarina buttons & skip scarecrow song to VB

* Move most of boss rush & rupee/key counters to VB

* Move BossRush_HandleCompleteBoss to VB

* Convert boss timestamps to VB

* Move being able to open doors to VB

* Convert Entrance_OverrideWeatherState to VB

* Move boss souls to hook_handlers.cpp

* Update hook_handlers.cpp

* Move infinite upgrades to hook_handlers.cpp

* Move skeleton key to hook_handlers.cpp

* Move swim and child wallet to hook_handlers.cpp

* Move ganons boss key to hook_handlers.cpp

* Move triforce hunt to hook_handlers.cpp

* Move randomizer sheik spawn to hook_handlers.cpp

* Update BossRush.h

* Convert spoiling items to VB

* Move load game stuff to hook_handlers.cpp

* Move warp song handling to hook_handlers.cpp

* Convert being able to play bowling to VB

* Move shooting gallery man handling to hook_handlers.cpp

* Move spirit temple silver block removal to hook_handlers.cpp

* Fix build

* Move last beehive stuff to hook_handlers.cpp

* Fix build

* Add VB_CLOSE_PAUSE_MENU

* Add VB_BE_ABLE_TO_SAVE

* Add VB_RENDER_YES_ON_CONTINUE_PROMPT

* Add VB_SPAWN_BLUE_WARP

* Add VB_BLUE_WARP_ADULT_WARP_OUT

* Add VB_BG_BREAKWALL_BREAK

* Convert Saria stuff to VB

* Remove now unused check

* Add VB_GANON_HEAL_BEFORE_FIGHT

* Update hook_handlers.cpp

* Fix blue warp offsets

* Fixes from review

* Improve documentation

* Update BossRush.cpp

* Fix my stupidity

* Fix #4327

* Update hook_handlers.cpp

* Fix blue warps

* Use ultralib types & clean header

* Replace options amount macro with BR_OPTIONS_MAX

* Remove unused includes

* Remove accidental line doubling

* Tweaks to boss rush (#6)

* Update GameInteractor_HookTable.h

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-10-07 14:36:21 -07:00
Pepper0ni 7450cee0b2 Fix Seed generation when adult trade is off and some shield logic (#4384) 2024-10-06 17:59:01 -07:00
Christopher Leggett bcf9f392f0 Kaleido Menu for Miscellaneous Collectibles (#3852)
* Adds in-game display of certain rando collectibles.

Before, these were only available through the Item Tracker ImGui Window. With this commit, they can be accessed via holding C-Up on the Map Screen. Currently I've added Greg and Triforce Pieces (when applicable) to this menu. Boss Souls, Ocarina Buttons, and eventually Silver Rupees will be added later.

* Adds ocarina buttons to in-game display

* Initial pass on rendering the text on a black background.

* Starting to render boss soul icons

* Better alignment and rendering of Boss Soul icons.

* Adds icons prefixing the list entries.

* Switches boss souls to 32x32 icon.

* Partially working Matrix/Vtx implementation

Currently hardcoded Greg text, replacing map screen completely.

* Now rendering properly thanks to Archez!

* Better implementation of accessing the new page.

- now attached to Quest status instead of Map
- now triggered by a toggle instead of holding a button
- now has its own background (temporarily save screen but will be replaced with something custom later)

* Make KaleidoEntry's reactive to game state

Adds Greg proper and Triforce Hunt to the Misc. Collectibles Page.

* Conditionally render Triforce Hunt

* Documentation/Cleanup

* WIP Ocarina Buttons rendering

* Working ocarina buttons display

* Renders buttons as Gray instead of using Grayscale

This may seem inconsistent, but with Grayscale they technically render as different shades of gray, especially with custom cosmetics. With this they now render as the same shade of gray.

* Makes Ocarina Icon gray when no buttons have been collected.

* Adds Boss Souls.

Currently they run off the menu, need to implement scrolling.

* Implement Scrolling for the menu.

Need to figure out how to throttle the stick inputs still.

* Moves input handling to draw function.

I hate it but that's how Kaleido does it and there's some input throttling logic in there, so in order to make this feel like a kaleido menu I have to also handle input in the draw function.

* Removes custom cosmetic handling of Ocarina Buttons.

I've chosen not to respect the cosmetics for the sake of accessibility
and color contrast, but the code is still present and commented out in
case we want to reverse that decision.

* Hopefully fixes mac build errors.

* Implements update function via Hook.

* Another mac fix hopefully

* Cleans up unused code from the rectangle based attempt.

* Clean up more unused code

* Commit Boss Soul icon

* Fix typo

* Remove commented code

* Improve toggle functionality

* Re-introduce cosmetic matching for ocarina buttons

* Revert some unnecessary formatting changes

* Fix cursor/page turning issue

More improvements to come here (drawing arrows, custom text at the bottom, etc.)

* Fix some more formatting changes

* One last batch of formatting reverts
2024-10-06 17:58:45 -07:00
Pepper0ni bd142a0eed Fix duplicate fishing checks and a crash with fishing rod hint (#4288)
* actor breaking

* should be VB fishing

* attempt to VB fisherman

* commit fishing hell for review of VB viability, untested

* fix rando, vanilla still broken. close enough

* wait i forgot to remove that

* small fix
2024-10-05 13:32:06 -07:00
Extloga 63eaae8774 Additions for the German translation in hint_list.cpp (#4381)
* Additions for the German translation in hint_list.cpp

* Additions for the German translation in hint_list.cpp
2024-10-05 13:29:46 -07:00
Pepper0ni 0a3eeb8339 Rewrite DC MQ Logic (#4355)
* Doodongs Cavern

* rewrite MQ DC Logic

* forgot some cleanup

* remove an unused region

* post-merge cleanups

* change CanUse for HasITem on gorons braclet

* git ate half the rewrite

* more small error fixes

---------

Co-authored-by: aMannus <mannusmenting@gmail.com>
2024-10-05 13:29:38 -07:00
Malkierian c4d211bc3a [V3] Fishsanity Cleanup (#4380)
* Fix crash in fishsanity's flag set handler.
Code format cleanup.
Fix typedef warnings in fishsanity.h.

* Actually fix the crash now.

* Relocate RCTYPE check for broader application.
2024-10-05 09:58:41 -07:00
Pepper0ni 33c74a10b7 Fix items being placed on hint locations (#4379) 2024-10-02 17:27:43 -07:00
Pepe20129 84130b8046 Add 5, 6 & 7 item shopsanity. (#4280)
* Format shops.cpp

* Add 5, 6 & 7 item shopsanity

* Guarantee a bombchu refill

* Fish first shop item index

* Clean up NonShopItems

* Split count options

* Improve item ordering

Ensure potions, blue fire and fairy on shopsanity 6 and less.
There are no hearts in the first 28 items (the ones from n64 rando).

* Post-merge fixes
2024-10-02 16:31:11 -07:00
Pepper0ni 7110e40374 Remove UpdateHelpers, massivly speeding up Seed generation time (#4366)
* Update helpers removed

* clean up some unused vars

* remove now-misleading comment

* remove redundent timer

* address reviews

* Address commits
2024-10-02 16:02:13 -07:00
briaguya b575aaaf99 simply all loaches logic (#4325)
the previous all loaches logic required modifying every `isLoach` check
throughout the file. this had the benefit of allowing live-toggling all fish
to be loaches or not, but added a lot of complexity.

this changes the logic to just set `isLoach` on each fish instead, and updates the tooltip to note an area reload is required
2024-10-02 09:37:22 -07:00
Angelo Bulfone 89ca2149b9 Refactor Fishsanity (#4268)
* Move Fishsanity hooks out of mods.cpp

* Assign fish check flags.

* Clean up location_list for fish

* Prevent fishing from giving double items.

* Remove no-longer-used mPendingFish

* Override draw function for fishing

This allows the draw functions in the source
overlay to match the decomp.

* Override draw function for EnFish

* Overwrite grotto fish params based on respawn data

This allows the randomizer to identify them
automatically without any special logic.

The catch (pun not intended) is that grotto fish don't respawn,
and they were previously identified for such by a params value of 1,
so the logic to take care of that needed to be duplicated.
Thankfully it wasn't very much.

* Add a VB for catching actors in bottles.

* Clean up remaining code after conversion to VB

This breaks fast FastDrops for bottle pickups, though
readding it shouldn't be too hard with the VB hook.

* Remove fishsanityParams from Fishing

It was previously used to track exactly which fish would be
released after a catch, but since both candidate fish
would've been caught, they both wouldn't give checks
anyways.

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

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

* Re-add FastDrops for bottle pickups.

While this does diverge from the vanilla decomp, I'm uncertain of
the order that hooks are run, so I put it back into z_player.c
just to be safe. A future commit can do a more proper implementation
using VB hooks.

* Move initialisation of fishsanity hooks into hook_handlers

* Change location constructor to take RandomizerInf instead of uint8_t

This shouldn't have an effect as-is, but other changes can add
additional randomizer flags that can end up pushing fishsanity check
flags out of the range of a uint8_t, causing the cast to overflow
and not be stored correctly. With this change, it could still overflow
when writing to the flag field of Location, but said field is unused
and the parameter is really only for setting the flag for the
SpoilerCollectionCheck.

* Render uncaught overworld fish as randomized item

* Fix windows build by zeroing unused field

* Fix scene parameter type

This resolves a build error on Mac and Windows, but Linux
instead buries it in the sea of warnings, meaning I can't
see it until it fails CI.

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2024-10-02 09:37:15 -07:00
Pepper0ni e36dcefe54 Fix seed generation issues caused by Location Table changes (#4378) 2024-10-02 09:36:58 -07:00
Pepe20129 0cfd535fe6 Clean up location table (#4258)
* Remove categories

* Remove SpoilerCollectionCheckGroup

* Remove unused Location constructors

* Remove LocationType

* Remove unused SpoilerCollectionCheckTypes

* Remove hints' isVanillaCompletion, it's always false

* Remove SpoilerCollectionCheck::None

Same effect as default constructor

* Fix mistake

* Update location.h

* Deduce RC Area by scene when possible

* Remove useless constructors

* Remove flag in most situations

* Format improvements

* Replace overworldLocations with a function

* Replace shopLocationLists with a function

* Replace gossipStoneLocations with a function

Also add a new RCType for static hints

* Replace scrubLocations with a function

* Replace staticHintLocations with a function

* Replace overworldFishLocations with a function

* Replace pondFishLocations with a function

* Remove RC_TRIFORCE_COMPLETED from GetOverworldLocations

* Update fill.cpp

Re-add filter for dungeonLocations for song shuffle dungeon rewards (and fix erroneous check for song locations there).
Modify songLocations filter for dungeon rewards to check for RCTYPE_BOSS_HEART_OR_OTHER_REWARD and then the two song locations added for it.

* Update fill.cpp

Fix bracketing.

* Apply Pepper0ni's patch

---------

Co-authored-by: Malkierian <malkierian@live.com>
2024-10-01 09:50:47 -07:00
Jordan Longstaff 30029ba6e9 Upgrade GitHub actions using deprecated Node version (#4371)
* Upgrade Ccache action to v1.2.14

* Upgrade Ccache action to v1.2.14

* Upgrade GitHub checkout action to v4

* Upgrade another cache action
2024-09-29 17:44:08 -04:00
Malkierian 668f0fe4c6 Rando V3 - Small UI Cleanup (#4367)
* Change tristate off graphic to none instead of X to avoid confusion.
Modify Combobox and Slider Options to clamp directly to options.size() - 1 instead of just decrementing if current value is higher than max.

* Restore RenderCross line, but commented out.
2024-09-27 22:47:35 -07:00
Pepper0ni 0f47e6394e fix small hint issues (#4358) 2024-09-26 17:35:20 -07:00
Pepper0ni 159d0872d7 remove unused functions (#4313) 2024-09-26 16:26:33 -07:00
Pepe20129 da5cf11449 Hook Debugger (#4323)
* Initial implementation

* Add call number & relax source_location requirement

* Update hookDebugger.cpp
2024-09-26 16:26:12 -07:00
Garrett Cox b3b9216b5c Show interface after item get (when skipping GI) (#4363) 2024-09-25 12:01:59 -07:00
skrawpie 7810f7505a Update settings.cpp (#4362)
100 GS Reward was missing from RSK_GANONS_BOSS_KEY causing indexing issues. Notably, Triforce Hunt was setting Ganon's Boss Key to "Vanilla" rather than "Triforce Hunt."
2024-09-24 10:57:16 -07:00
Garrett Cox 4e4c1c4f8a Handle ignoring 0x3F for navi talk skips (#4364) 2024-09-24 10:56:56 -07:00
Malkierian 0f02201108 SCL Consolidation, Area -> Region (#4356)
* Move all `SaveContext` operations to `Logic` to prepare for encapsulation.

* Rename `Area` to `Region`, `areaTable` to `regionTable`, and all local variables named variants of area to region that were of the `RandomizerRegion` or `Region` types.

* Fix mistaken renames.

* Rename PT_AREA_RESET to PT_REGION_RESET after rebasing on performance timer commit.
Change include path for the timer to absolute rather than relative.
2024-09-23 17:10:29 -07:00
Pepper0ni 0a84d15d9d Implement some basic benchmarking for seed generation (#4353)
* messy first implementation, pushing for verification

* push to test other platforms, add benchmark preset

* more other compiler fixes

* Finish implementing benchmarks

* forgot to reset the timers each run

* do it better

* move timers to thier own file

* forgot to add files
2024-09-21 17:03:48 -07:00
Pepper0ni fca8081a20 Fix crash when preset amount is too high (#4359) 2024-09-20 22:56:32 -07:00
Garrett Cox 5d8841777a Fix missing despawn branch for heart containers (#4350) 2024-09-20 15:37:34 -07:00
Garrett Cox 74c93b0182 Stop disabling dampe checkbox, as it's no longer forced to on for rando (#4349) 2024-09-19 09:17:01 -07:00
Garrett Cox 2434eb82bf Fix for LACS awarding everywhere (#4348)
* Fix for LACS awarding everywhere

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

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

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2024-09-19 09:16:31 -07:00
Garrett Cox ee02e503fc Fix issues with faster heavy block lift (#4335) 2024-09-19 09:15:31 -07:00
Garrett Cox da6e4cac91 Remove erroneous Entrance_OverrideBlueWarp (#4340) 2024-09-17 12:30:33 -07:00
Extloga fab63877f0 Rearrangement of the currencies in randomizer.cpp (#4338) 2024-09-17 11:41:09 -07:00
Malkierian 4148d59c48 Check Tracker Re-update (#4322)
* Update check status in the check tracker to the new system. Status and Skipped are now stored in ItemLocation, though still saved separately in the trackerData section.

* Fix shop checks not showing prices when identified.

* Patch fix for check status bleed.
Some cleanup of unused code.

* Small tracker optimizations.

* Fix check hiding.

* Bit more cleanup.

* Unhide the filter and make it work again...

* Fix area totals tracking.
Fix skipped status saving.

* Merge conflict cleanup.
2024-09-17 11:32:52 -07:00
Pepe20129 9c11718341 Add 146 ice trap messages (#4281)
* Add ice trap message suggestions

* Split messages by language

* Re-run build

* Apply Pepper0ni's patch with fixes
2024-09-17 10:43:06 -07:00
Pepper0ni cd92e70b84 Refactor GetAccessibleLocations (#3871)
* saving for branch change

* V0 doesn't work

* crashing in random places halp

* push to rebase

* commit for branch change

* more branch switching

* First apparent working

* fix entrence validation

* comment cleanups

* post merge fixes

* Fix entrences not validating when spawns/owl drops are on but other entrences are not

* remove bombchusFound from the struct too

* Fix issue causing improper bombchu filtering on the playthrough

* text fixes

* submodules pls

* submodules pls pt 2
2024-09-17 10:06:30 -07:00
Malkierian 6cd387ddf3 Fix Deku Mouth for Entrance Rando and Mido Rando Functionality (#4342)
* Restore Deku Tree open as adult with dungeon shuffle.

* Add Mido spawn VB to allow for preventing Mido moving in rando when starting with Zelda's letter and closed deku or forest.

* Use RAND_GET_OPTION instead of OTRGlobals rando context, get rid of IS_RANDO in deku mouth VB handler.
2024-09-17 08:40:38 -07:00
Pepper0ni 1b51750ec0 remove a return 0 (#4347) 2024-09-17 08:26:10 -07:00
Archez e75400a646 Merge pull request #4343 from Archez/merge-develop-rando-sep14
Merge develop -> develop-rando
2024-09-15 00:16:08 -04:00
Archez 8359d2a8f0 Update entrance tracker settings window for modern menu changes 2024-09-14 23:45:10 -04:00
Archez 8bd2f38d22 Merge remote-tracking branch 'origin/develop' into merge-develop-rando-sep14 2024-09-14 23:42:02 -04:00
Archez 19dc4dc0fa Bump LUS (#4341) 2024-09-14 23:13:46 -04:00
Malkierian 7f503c33d2 Concurrency Fix (#4318)
* Removed all CVarLoad uses from code to prevent thread concurrency issues.

* Add mutext locks to save and load functions to prevent concurrent operations between those two.
2024-09-14 22:38:22 -04:00
inspectredc c507d4d9a0 Early Eyeball Frog (#4120)
* early eyeball is real :D

* make cvar

* update cvars

* fix additional cvar check bug
2024-09-12 16:01:57 -07:00
Malkierian b5037a0856 Gui window rework (#4307)
* Converted all GuiWindows to the new separate Begin/End format in current LUS except InputViewer, CheckTracker, ItemTracker and Modals.

* Setup Check, Entrance, Item trackers and Input Viewer to override `Draw()` to bypass the ImGui Begin and End, as they're not intended to go in the modern menu.

* Cleanup.
2024-09-10 15:42:57 -04:00
Extloga 1f85420625 Additions for the German translation in two files (#4304)
* Additions for the German translation in hint_list_exclude_dungeon.cpp

* Additions for the German translation in hint_list_exclude_overworld.cpp
2024-09-02 07:32:38 -07:00
Malkierian 48663d74ac Change Recommended VS build tools from 142 to 143 (#4315)
* Changed references for VS build tools 142 to 143 to reflect current state of development.

* Remove VS 2019.
2024-08-30 11:28:09 -04:00
Pepper0ni 15395defa4 Add jabu box skip door and frog hint exceptions to cutscene skipping (#4300)
* Add jaby box skip door one point to glitchAiding and frog hint exception to NoForcedDialouge

* address review
2024-08-23 10:20:11 -04:00
Pepe20129 e07fc59e55 Add git info to title screen & gameplay stats (#4053)
* Add git info to title screen & gameplay stats

* Change the branch criteria to starting with `develop`

* Update z_title.c

* Change the branch criteria to not having a tag

* Always show both when not a release build

* Only show build version in tagged releases
2024-08-23 10:17:45 -04:00
Archez 01245ae81c Bump LUS (#4301)
* bump lus

* remove undeclared methods
2024-08-18 15:25:21 -04:00
Pepe20129 b6554a8409 Fix skeleton key (#4296) 2024-08-17 20:45:10 -07:00
Pepper0ni 07babaa17b fix link name enhancment (#4295) 2024-08-17 20:44:50 -07:00
Extloga 9d7d4bffa2 Additions for the German currencies in randomizer.cpp (#4289)
* Additions for the German currencies in randomizer.cpp

* Additions for the German translation in hint_list_exclude_dungeon.cpp

* Fixes for the German translation in z_select.c

* Fixes for the German translation in z_select.c

* Additions for the German translation in hint_list_exclude_overworld.cpp
2024-08-17 20:25:38 -07:00
Pepper0ni 9c2e773ce4 Bombchu logic fixes, Add BetterBombchShopping enhancment and some adjacent cleanups (#3733)
* Initial Bombchu rework implementation

* Finish bombchus in logic overhaul

* address reviews

* Post resolution fixes

* fix git being dumb

* Readd Child Wallet To Bombchu Bowling Logic

* post merge fixes

* fix some oversights in bombchu shopping logic

* doesn't work, linker errors

* cleanup old reviews

* Make it build, likely broken by VB

* attempt to fix carpet man second purchse text

* commit to change branch

* mostly have carpet guy working

* badly fix carpet salesman

* fix better bombchu shopping

* fix bombchu drops

* remember you need bombchus in inventory to get drops

* Address reviews

* post-SCL clean up and redo the bombchu ammo logic to apply better to the spirit edge case

* fix oversight which could have allowed for bombchus to logical exist when they shouldn't

* Remove special bombchu playthrough checks which are causing bugs and no longer needed

* fix Slingshot logic reset

* Convert helpers I touched into CanUse and HasItem

* last cleanups
2024-08-17 16:10:11 -07:00
Extloga d3edbcd042 Additions and fixes for the German translation in three files (#4293)
* Additions for the German translation in hint_list_exclude_dungeon.cpp

* Fixes for the German translation in z_select.c

* Fixes for the German translation in z_select.c

* Additions for the German translation in hint_list_exclude_overworld.cpp

* Additions for the German translation in hint_list_exclude_dungeon.cpp

* Additions for the German translation in hint_list_exclude_overworld.cpp
2024-08-16 09:58:12 -07:00
aMannus 6ea8823de1 Add Total Checks to Check/Item Trackers - devrando edition (#4292)
* Fix fmt in savestates

* Check Tracker Totals
2024-08-15 15:39:50 -07:00
Malkierian bfba2a180a Fix tricks menu (#4278)
* Fix tricks not getting disabled by button click.

* Fix area trees not collapsing on enabled side of tricks list.

* Fix difficulty tag button order for Linux.

* Fix Collapse All, Open All, and Disable All.
Prevent Disable All from disabling all despite areas being collapsed.
2024-08-14 22:27:32 -07:00
Archez 9ceb5579b8 Merge pull request #4294 from Archez/dev-develop-rando-merge
Merge develop -> develop-rando
2024-08-14 14:58:44 -04:00
Archez 35b4da74cb Merge remote-tracking branch 'origin/develop' into develop->develop-rando 2024-08-14 11:38:56 -04:00
Archez 86580fc79f Merge pull request #4290 from Archez/macready-golf-merge
merge Macready Golf -> develop
2024-08-13 20:18:41 -04:00
Archez 651348d2a9 Merge remote-tracking branch 'origin/develop' into macready-golf-merge 2024-08-13 01:09:49 -04:00
Archez 0bc6ca08e0 Bump MacReady Golf (#4279) 2024-08-12 23:26:30 -04:00
Archez 16aaf2f939 Tweak: Implement better extended culling options (#4285)
* implement better culling

* change draw distance to a slider

* remove testing code

* tweak
2024-08-12 19:39:44 -04:00
Extloga f4d951aab8 Additions and fixes for the German translation in several files (#4195)
* Fixes for the German translation in randomizer.cpp

* Fixes for the German translation in hint_list.cpp

* Fixes for the German translation in item_list.cpp

* Fixes for the German translation in z_message_OTR.cpp

* Fixes for the German translation in randomizer.cpp

* Fixes for the German translation in randomizer.cpp

* Additions for the German translation in hint_list_item.cpp

* Fixes for the German translation in item_list.cpp

* Additions for the German translation in hint_list_item.cpp

* Additions for the German translation in hint_list_item.cpp

* Fixes for the German translation in item_list.cpp

* Additions for the German translation in hint_list_item.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 item_list.cpp

* Fixes for the German translation in hint_list_item.cpp

* Fixes for the German translation in hint_list_item.cpp

* Fixes for the German translation in hint_list_item.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 hint_list_item.cpp

* Fixes for the German translation in item_list.cpp

* Fixes for the German translation in randomizer.cpp

* Fixes for the German translation in item_list.cpp

* Fixes for the German translation in hint_list_item.cpp

* Fixes for the German translation in item_list.cpp

* Fixes for the German translation in z_message_OTR.cpp

* Fixes for the German translation in z_message_OTR.cpp

* Additions for the German translation in item_list.cpp

* Fixes for the German translation in item_list.cpp

* Fixes for the German translation in hint_list.cpp

* Fixes for the German translation in hint_list.cpp

* Fixes for the German translation in randomizer.cpp

* Fixes for the German translation in hint_list_item.cpp

* Fixes for the German translation in hint_list_item.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 randomizer.cpp

* Fixes for the German translation in randomizer.cpp

* Fixes for the German translation in randomizer.cpp
2024-08-11 13:08:42 -07:00
Christopher Leggett 91d1e5970d Fix an issue with a stray Rando::Context shared_ptr hanging around. (#4259)
* Fix an issue with a stray Rando::Context shared_ptr hanging around.

* Fixes accidental leftover from when I found this bug on another branch

* Properly reset randoContext on every save load, not just after save creation
2024-08-10 14:07:03 -07:00
Spodi 3971e3696e Use manifest for windows DPI awareness (#3270) (#4256)
* Use manifest for windows DPI awareness (#3270)

* Update libultraship

* Update libultraship
2024-08-05 19:31:20 -04:00
Nicholas Estelami f11f97e84e Custom Skeleton Fixes for various bosses and enemies (#3436)
* Skeleton Fixes for various bosses and enemies

* cleanup

* revert breakpart changes

---------

Co-authored-by: Adam Bird <archez39@me.com>
2024-08-05 15:20:40 -04:00
Malkierian 483dbea330 Fix RSK for mixing boss entrances. (#4277) 2024-08-04 17:05:29 -07:00
Malkierian c6b05b2087 Change RSK_SHUFFLE instance in mixed pool code to RSK_MIX. (#4276) 2024-08-04 15:32:11 -07:00
Malkierian 03e3258792 It's not master sword. (#4273) 2024-08-02 08:54:25 -07:00
Pepe20129 5e6cd71031 Update item_list.cpp (#4272) 2024-08-02 07:54:33 -07:00
Malkierian aeb85c81aa Item SaveContext Logic (#4237)
* Port initial framework up to latest dev-rando. Includes about 15 items using the SCL structure for tracking.

* Most other item variables ported to SaveContext in UpdateHelpers.

* Removed individual Context retrievals in favor of single local variable in Logic to reference.

* start of some diagnostics.
caught some reverse logic with ApplyItemEffect.

* more diagnostics

* Resolve major logic issue with SetInventory flow in ApplyItemEffect.
Other small logic issues in ApplyItemEffect.

* Added a bit of logging.
Add Double Defense to item effects.

* revert hint gen bypass

* item_list *actually* divorced from logicVar pointers.
Several missed options for ApplyItemEffect, HasItem, and UpdateHelpers added in.
Changed HasItem to a switch block for more performance.
Seeds generate within 10-20 seconds in release mode. Further optimization is assumed possible.

* Some formatting

* Bit more formatting.

* Couple review changes.

* Incorporate progressive upgrades and skeleton key into SCL.
Bit of cleanup.

* Change `inLogic` to static array.

* Fix bug in `BottleCount()` preventing Jabu Jabu from ever being in logic.

* Fix bomb bag HasItem check.

* Fix Gerudo Fortress and Ganon's Castle SmallKeys checks.

* Change all logic use of `bool remove` to be `bool state` and work on the affirmative assumption.

* Forgot the `Set(x)` uses in `Logic::Reset()`.

* Fix fishing pole effect application.

* fishing pole tweak

* Add `RG_BOMB_BAG`, `RG_NUTS` and `RG_STICKS` to `HasItem()`.
Fix silver and gold gauntlet checks in `HasItem()`.
Change Nuts and Sticks helpers to use non-progressive RGs in `UpdateHelpers()`.

* Change mSaveContext to simple pointer.
Set `mSaveContext` to `&gSaveContext` when loading a save file.
Modify `Item::GetGIEntry()` to use rando context's SaveContext pointer instead of the gSaveContext macros.
Utilize `Item::GetGIEntry()` to get real RG of infinite upgrades and set rando infs accordingly, skipping upgrade level incrementing (which was causing overflow of wallets for some reason).

* Rename all remaining references of LogicVar to variants of LogicVal.

* Change final references to song LogicVars to CanUse calls, and remove them.

* Separate equip and rand inf flag maps.
Add Zelda's Letter and Weird Egg rand infs to map.
Consolidate `HasItem` rand inf  lookups using rand inf map and equips using equip flag map.
Maps are static, so can be referenced with `Context::` instead of ctx pointer.
2024-08-01 21:24:24 -07:00
Christopher Leggett cab0871fe7 Fix Zora's Sapphire crash (#4254) 2024-07-29 18:48:49 -07:00
Nick Michael 06b20a05dd Fix Lake Hylia Water Level for Vanilla with Cutscene Skips (#4257)
* Fix Lake Hylia Water Level

* Move logic to SkipBlueWarp handlers
2024-07-29 12:22:57 -04:00
Archez b81a3dd099 Another round of fixes for skip intro and grotto rando (#4253) 2024-07-25 21:09:45 -04:00
Archez e66dada09d Fix grotto handling with the skip intro timesaver (#4252) 2024-07-23 21:31:01 -04:00
Pepe20129 c68cecec71 Rando: Shuffle Hyrule Loach (Rando V3) (#3805)
* Shuffle Hyrule Loach

* Remove rando specific loach text override

* Remove duplicated enhancement from fishsanity

* Re-run Build

* Re-run Build

* Changed to be an option within fishsanity

* Rename cvar and fix check tracker

* Fix build

* Re-run build

* Re-re-run build

* Update z_fishing.c

* Fix AllHyruleLoaches

* Fix static data

* Fix hint spacing

* Restrict loach hint to "Shuffle only Hyrule Loach"

* Update settings.cpp

* Address review
2024-07-23 08:56:44 -07:00
Pepe20129 3bcd93428e Rando: Infinite upgrades (Rando V3) (#3942)
* Infinite Upgrades

* Add "Condensed Progressive"

* VB & fix build

* Update settings.cpp
2024-07-22 09:54:14 -07:00
Archez 7a00658be9 Fix disable lod breaking certain effects (#4245) 2024-07-21 15:30:18 -04:00
Malkierian 7bc2259c82 LUS bump and implement alt assets performance changes. (#4240)
* LUS bump and implement alt assets performance changes.

* LUS ref update.
2024-07-21 15:29:45 -04:00
Angelo Bulfone 081a55ab29 Fix accidental assignment expression (#4248)
A typo from https://github.com/HarbourMasters/Shipwright/commit/a5c0cede12d3a53cb0f1069a5d4a5c4febe991fa resulted in various bugs due to giving every actor the same id.
2024-07-19 23:49:26 -04:00
Pepper0ni 4df4e61eb3 Fix return of Item_Give for stricter compilers (#4244)
* fix return of Item_Give for stricter compilers

* change to just item
2024-07-18 14:42:48 -07:00
Malkierian 3d73faa9a0 Port Graphics Menu lag fix from 2ship. (#4238)
* Port Graphics Menu lag fix from 2ship.

* tweak

---------

Co-authored-by: Adam Bird <archez39@me.com>
2024-07-17 15:57:11 -04:00
Kenix3 134aba4aa0 Fixes crashes on asan related to audio. (#4049)
Found in MM
2024-07-17 14:35:13 -04:00
Pepe20129 8b6c183776 Rando: Skeleton key (#3997)
* Initial Implementation

* Add temporary model to the skeleton key
2024-07-17 09:55:05 -07:00
Pepper0ni 7595a5a65e fix selection only and make MQ dungeon settings set themselves more smartley (#4232) 2024-07-17 09:45:29 -07:00
Pepe20129 a5c0cede12 Rando: Shuffle consumable bags (#3959)
* Main implementation

* Fix sticks & nuts from shops & checks

* Change the models to normal stick & nut

Worth noting that before you have the bags, the refills are blue rupees so there will not be model collision

* Update hook_handlers.cpp
2024-07-17 09:42:56 -07:00
Pepe20129 f2958aea1c Improved rando settings (#3980)
* Initial implementation

* center icons (#5)

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-07-16 20:25:28 -07:00
Pepe20129 8eb6304999 Rando: Keyring tristate (#3960)
* Initial implementation

* Fix build

* Update UIWidgets.cpp

* Update option.cpp

* Update settings.cpp

* Update settings.cpp

* Apply Pepper0ni's patch

Co-Authored-By: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>

* Update option_descriptions.cpp

---------

Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
2024-07-16 20:25:06 -07:00
Angelo Bulfone 2ff795e227 Fix MQ Checks (#4234) 2024-07-16 16:39:18 -04:00
Archez 73be4e5559 Bump LUS for 2cyc color combiner fix (#4221) 2024-07-15 22:24:38 -04:00
Christopher Leggett ba82bfbba6 Fix spawn shuffle when starting age is adult/random. (#4230)
* Fix spawn shuffle when starting age is adult.

* Handle adult start without spawn shuffle

* Handle correct entrance for adult start + spawn shuffle and add comments.

* Fix grotto spawn cutscene skips.

* Fix an issue with randomized starting age.
2024-07-13 16:51:54 -04:00
Pepper0ni a0fda39a75 Force Warp Song Hints off when Warp Songs are not shuffled (#4229) 2024-07-11 10:38:52 -04:00
Pepper0ni 77770ba3b2 fix hint crash on windows (#4227) 2024-07-09 18:57:28 -04:00
Christopher Leggett 7a17fe221f Don't play the intro cutscene on child spawn even if location is shuffled (#4226)
* Don't play the intro cutscene on child spawn even if location is shuffled.

* Fix condition to not always skip cutscene when IS_RANDO is true.

* Fix typo
2024-07-07 21:22:23 -04:00
Pepe20129 8b001da317 Check tracker show logic (#3972)
* Initial Implementation

* Fix missing locations

* Update locacc_castle_town.cpp

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
2024-07-05 21:13:49 -04:00
Pepper0ni f88883044e Add OoT Static Hint, Fix Sheik Crashes, Add multiple text boxes to AutoFormat (#4149)
* add OoT hint, sheik is crashing without hint due to an unrelated bug

* Fix Sheik crashes, add new textbox to autoFormat, trim OoTHint text

* save pls

* fix receive typos

* git pls

* nice conflict fix
2024-07-05 20:16:56 -04:00
Pepper0ni 1ca8d0ab73 Implement Mask Hints (#4152)
* Implement Mask Hints

* fix typo
2024-07-05 17:52:59 -04:00
Pepper0ni 5c155a625a Quick fix Chest Minigame Setting (#4189) 2024-07-05 17:50:58 -04:00
Pepper0ni db5e9cbc11 Fix Multiple Foolish hints from an area being generated. (#4190)
* Fix Multiple Foolish hints for the same location

* remove debug comment
2024-07-05 17:49:56 -04:00
Pepper0ni 510b655e5e Fix Link's Pocket Appearing in Hints. (#4191)
* Fix issues with areas not being applied to the region itself, and Link's Pocket Propogating through randomised warps

* Address reviews

* address reviews again

* fix mac issues

* git pls
2024-07-05 17:35:47 -04:00
Pepe20129 839fcffe17 Add Alternate Headers XML logger (#4207) 2024-06-15 23:47:35 -04:00
inspectredc 79a29a62ef Use correct default value (#4194) 2024-06-15 23:43:09 -04:00
GaryOderNichts f99993af85 Reduce stack usage during static initialization (#4184)
* Reduce stack usage during static initialization

* Implement `ABS` macro for `TWO_ACTOR_PARAMS`
2024-06-15 23:28:42 -04:00
Archez cd7c5ab316 Clear the framebuffer for the pause menu link texture (#4213)
* clear pause menu link framebuffer

* cache bust

* Add enums for pause menu link width/height and rename the framebuffer

* revert cache bust
2024-06-15 23:13:13 -04:00
briaguya 4441304dfd support LUS not providing an array resource type/factory (#4204)
* support LUS not providing an array resource type/factory

* bump to latest upstream
2024-06-14 13:40:39 -04:00
briaguya 736dccb00b update to latest LUS main (#4202)
Includes supporting changes from:
* https://github.com/HarbourMasters/Shipwright/pull/4197 (alt assets variable changes)
* https://github.com/HarbourMasters/Shipwright/pull/4199 (WindowBackend enum changes)
* https://github.com/HarbourMasters/Shipwright/pull/4200 (Extract gMtxClear)

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: inspectredc <inspectredc@gmail.com>
2024-06-02 15:34:53 -04:00
briaguya b8c7c71578 allow setting device visibility in controller mapping window (#4165) 2024-06-02 12:13:03 -04:00
Lywx 53efc22a23 Framebuffer clear and bump LUS (#4187) 2024-05-27 18:33:02 -04:00
briaguya ad0e17383e update nightly links in readme (#4147) 2024-05-16 14:55:04 -04:00
Garrett Cox baf7691fbd Fix weirdness with item gets from chests (#4146) 2024-05-13 12:29:34 -05:00
Pepe20129 08ad16e750 Add path XML parser (#4115)
* Add path XML parser

* Update SetPathwaysFactory.cpp
2024-05-10 00:17:50 -05:00
Ted Newman 844413b391 Add Modifier buttons to input viewer and support individual button outline modes (#3966)
* Add Modifier buttons to input viewer and support individual button outline modes

* Clearer naming

* Remove hardcoded indent values

* clean up diff

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-05-09 23:57:31 -04:00
Garrett Cox 6f7173a5c4 Split a few VB changes out into their own files (#4123) 2024-05-09 22:22:08 -05:00
Eric Hoey 65b18d61cf Fix modifiers crash when obtaining underwater item (#4110)
* NULL check

* Update soh/src/overlays/actors/ovl_player_actor/z_player.c

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>

* Update soh/src/overlays/actors/ovl_player_actor/z_player.c

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-05-09 22:02:50 -05:00
Pepe20129 118cd044b5 Rando: Starting hearts (#3974)
* Initial implementation

* Re-run build

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-05-09 21:39:22 -05:00
Eric Hoey 63bc2aff59 Frogs Ocarina Game Difficulty Options (#3373)
* Frog actor edits, menu, presets

* Block off vanilla code + comments

* fix logic + formatting

* new documentation format

* Update for CVAR changes

* Fix alignment

* Conditions cleanup

* Update soh/soh/SohMenuBar.cpp

Oops, added

Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>

---------

Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
2024-05-09 20:55:53 -05:00
briaguya 23f9654940 update BUILDING.md (#4128) 2024-05-09 20:49:32 -05:00
briaguya 5530ce2e61 simplify ci (#4129) 2024-05-09 20:45:21 -05:00
Archez 3f67fed073 Fix some memory leaks with WrappedText and LoadArrayByNameAsVec3s (#4144)
* avoid memory leaks with WrappedText

* avoid memory leak with LoadArrayByNameAsVec3s
2024-05-09 20:39:13 -05:00
Garrett Cox 24e1d45e95 Merge pull request #4130 from Malkierian/dev-to-rando-5-6
develop->dev-rando 5-7
2024-05-09 20:13:34 -05:00
Malkierian 1d5a54901b Add MSI to EnEx hook handler.
Resolve other review suggestions.
2024-05-09 09:45:13 -07:00
Pepper0ni ca803099cf Fix DistributeHints (#4145)
* fix stupid crash in DistributeHints

* replace some uint8s in loops with size
2024-05-09 07:22:39 -05:00
Malkierian baf41161d3 Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-to-rando-5-6 2024-05-08 22:28:29 -07:00
Archez 47b690fb1e Bump LUS and restore guMtx in collision viewer (#4137) 2024-05-09 01:26:58 -04:00
Malkierian f550bf1381 Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-to-rando-5-6 2024-05-08 21:36:25 -07:00
Archez cbeec006ec Fix syotes scene path to use shared (#4136) 2024-05-09 00:32:29 -04:00
Malkierian 3bcf178fcc Fix LUS ref. 2024-05-08 20:24:44 -07:00
Lywx 1231b8f9fa Fixed macos/ios errors (#4138) 2024-05-08 19:30:22 -04:00
briaguya 22c9d53985 bump lus (gfx debugger fix, stormlib optimizations) (#4135) 2024-05-08 11:23:43 -04:00
Kenix3 3c87c1ec98 Lus window bump (#4131) 2024-05-08 02:25:50 -04:00
briaguya 0976198f2c get soh working with latest lus (#4132) 2024-05-08 00:13:47 -04:00
Malkierian ee1f15523c Merge branch 'develop-rando' of github.com:Malkierian/Shipwright into dev-to-rando-5-6 2024-05-07 14:37:00 -07:00
Malkierian cfd93f160d Fix check tracker performance changes.
Move Mysterious Shuffle functionality to `hook_handlers.cpp` when applicable.
2024-05-07 13:07:33 -07:00
Pepper0ni 980b1f1a6e Fix an infinite loop in hints and better comment hint distribution (#4080) 2024-05-07 12:48:00 -05:00
Pepe20129 8e520e490c Spoiler name removal (#3814)
* Initial pass

* Rename "MK" to "Market"

* Remove more spoiler names

* Update location_list.cpp

* Replace vector with array

* Update location_list.cpp

* Re-run build

* Fix spacing
2024-05-07 08:29:17 -05:00
briaguya 52fad95a2c support lus thread_pool changes (#4127) 2024-05-06 22:08:11 -04:00
Malkierian d10b68516c Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-to-rando-5-6 2024-05-06 18:37:56 -07:00
Malkierian 8d3902a256 Remove unnecessary and redundant checks and references. (#4111)
Stop passing checksByArea to functions in the same namespace.
Only get value of `HideFilteredAreas` once per frame.
Gate area and check evaluations behind checks being visible and search filter size greater than 0.
Proper function capitalization.
2024-05-06 19:27:35 -05:00
Malkierian b3d51441eb Rando Enhancement: Mysterious Shuffled Items (#3227)
* Add rando enhancement "Mysterious Shuffled Items", which obfuscates shuffled freestanding/drawn-in-world items (PoH, tokens, shop items) with a custom question mark model (thanks Hato), and uses the "mysterious item" functionality of `GetMerchantMessage` for everything that supports it, regardless of hint status on generation.

* Reverted back to rando enhancement, but added condition for Mysterious Shuffle not being on for the gem rotation fix to apply.

* First attempt at changing to fake GetItemEntry instead of directly calling the mystery draw function. Needs more work.

* Updated CVar to reflect CVar rework values.

Added `IsCheckShuffled` as preliminary function for checking *only* if a check is shuffled, not necessarily if it is just visible on the tracker. This accounts for the difference between tokensanity and "Always Show GS On Tracker", where you don't want to obfuscate the latter.

* Bit of cleanup.

* Cross-platform building edits. If anyone has a better idea of how to handle this fake GIE, I'm all ears.

* Update to CVar macros.

* Fix freestanding item gives.
Fix mysterious item model colors.

* Fix bombchu bowling mystery.

* Remove bowling bomchus check obfuscation (unused, removed in v3).
2024-05-06 19:17:08 -05:00
Lywx f3b948226b Bump lus and fixed PatchGfx (#4125)
* Bump lus and fixed PatchGfx

* Bump libultraship to main
2024-05-06 19:19:15 -04:00
Malkierian 438dede792 Change "AnubixFix" back to "AnubisFix". (#4124) 2024-05-06 17:10:06 -05:00
Eric Hoey 27dd303a57 Limit crawl speed to modifier to 4 (#4113) 2024-05-06 19:10:22 +00:00
Pepper0ni d0627dc737 fix a V2 compatibility crash (#4119)
* Attempt to fix ambiguity issues and a V2 compatibility crash

* oops

* remove explicit call as it is fixed elsewhere
2024-05-06 19:10:00 +00:00
Garrett Cox a96fe678f8 Merge pull request #4118 from Malkierian/dev-to-rando-5-5
develop -> develop-rando 5-5
2024-05-06 14:09:41 -05:00
Archez a860a7ea39 Merge pull request #4122 from Archez/merge-macready-may6
Merge macready -> develop
2024-05-06 14:51:24 -04:00
Malkierian 89f119c566 Fix ambiguity. 2024-05-06 11:13:30 -07:00
Adam Bird 439574d0d9 Merge remote-tracking branch 'origin/develop' into merge-macready-may6 2024-05-06 12:22:48 -04:00
Malkierian f354460d04 Make it build. 2024-05-05 22:43:11 -07:00
Malkierian 69eebf0984 CVar cleanup. 2024-05-05 22:27:33 -07:00
Malkierian e2b0ea5692 Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-to-rando-5-5 2024-05-05 22:05:10 -07:00
Garrett Cox 4bd0f2d2c1 Port new hook filtering patterns from 2ship (#4117) 2024-05-05 16:55:56 -05:00
Garrett Cox b4a30f708f Change GI_VB_ to VB_ (#4116) 2024-05-05 16:29:02 -05:00
Garrett Cox 04f9ec1b78 Merge pull request #3755 from garrettjoecox/develop-rando-changes
Vanilla Behavior Overhaul
2024-05-05 15:12:43 -05:00
Garrett Cox 0c69ff17c2 Fix two minor issues from merge 2024-05-05 14:46:23 -05:00
Garrett Cox 0aad8d4491 Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-05-05 14:38:39 -05:00
Malkierian 6443a986d9 Final Step of CVar macro/sectionalizing (#4107)
* p

* Missed the prefix renames.

* More missed ones.

* Mostly finished cleanup.
Removed a few CVars and some related functionality.

* Bit more (prepping non-existent title card color editing).

* Resolve gCrowdControl.

* Final cleanup.

* Universal constant, not acceleration...

* Preset CVars.
2024-05-05 14:14:55 -05:00
Christopher Leggett e71839ed8f Conversion of Nabooru Quick Death to VB hook (#120)
* Nabooru quick death conversion

* Fix brackets, not sure exactly how this was working before.
2024-05-04 16:50:19 -05:00
Archez de715da184 explicitly include unordered_map header (#122) 2024-05-04 16:49:36 -05:00
briaguya b6fc54ad8b support lus dr_libs removal (#4108) 2024-05-03 12:55:38 -04:00
briaguya e02e4ead02 support lus fetching stb (#4105) 2024-05-03 11:07:07 -04:00
briaguya 725670d998 support lus strhash64 change (#4102) 2024-05-02 14:43:52 -04:00
briaguya bcf5a0c307 support lus factories no longer being registered in RegisterGlobalResourceFactories (#4099) 2024-05-02 00:14:36 -04:00
briaguya 345cef9b78 detangle zapdutils (#4096) 2024-05-01 22:47:40 -04:00
Archez fd9cd9c5eb Fix: add workaround for boost versions >=1.84.0 (#4098) 2024-05-01 16:41:17 -04:00
Malkierian 715bf39d43 Incorporate LUS CMake CVar system (#4093)
* Incorporate LUS CMake CVar system.
Customize all LUS CMake CVars to align with plans for preset system.
Swap "gOverlayFont" usage back to LUS CVar macro.

* Change CMake sets to use the cache to allow for including LUS's file for the add_compile_defines and remove the duplication on SoH's side.

* Move SoH CMake CVars to `soh-cvars.cmake` for clarity.
2024-05-01 14:48:51 -04:00
briaguya 56fe449689 fetchcontent stormlib (#4095) 2024-05-01 12:53:33 -04:00
briaguya 7da6a5b604 vb deku stick cheat (#115)
* vb deku stick cheat

* it's the 21st now

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-04-30 22:36:26 -05:00
Christopher Leggett baaa00569d Adds Quick Boss Death checkbox and implements Phantom Ganon's quick death (#119)
* Adds Quick Boss Death checkbox and implements Phantom Ganon's quick death.

* Clarifies relocation comment.
2024-04-30 22:31:08 -05:00
briaguya 8480f37f77 fetch imgui (#4094) 2024-04-30 22:49:54 -04:00
briaguya c70e6d280a spdlog from package managers (#4088) 2024-04-30 18:50:06 -04:00
briaguya 4ecb76b117 tinyxml from package manager (#4073) 2024-04-30 01:19:02 -04:00
briaguya 8b3f1f1868 bump LUS, remove switch and wii u from CI (#4087) 2024-04-29 20:26:03 -04:00
Pepper0ni d69814ed95 Real time Hint Assembly, Hint object refactor, and expansion of CustomMessage (#4078)
* Hint text refactor WIP DOES NOT BUILD

* Update to show people DOES NOT BUILD

* stuck on wierd errors

* forgot to add

* expression error does not name a type

* commit in case anyone looks

* static assertion failed: T must be an integral type or an enum.

* fail without error, complaining about unrefernced things

* fix some issues, still linker bs

* restructure some trials, conditionalAlwaysHints and hint_list stuff

* builds and does not crash, but there's text issues

* fix text issues

* commit to push, halfway through trimming down log

* finish trimming spoiler logging

* post merge clean up

* plando mode seems to work, looking into song text wierdness

* push for debugging crash on HBA sign

* fix num and anju issues

* fix the damn sign

* Fix Windows build

Renames GetMessage to GetHintMessage (a different name could be chosen, but GetMessage conflicts with a macro in winuser.h)
Changes uint to size_t, uint does not seem to exist on Windows.

* fix biggoron

* remove some manual formatting that autoformat doesn't like

* fix some altar text

* fix more altar text

* last cleanup

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
2024-04-29 09:41:33 -05:00
briaguya 552bb2886f support lus renamespacing (#4075) 2024-04-28 21:36:44 -04:00
Pepe20129 92467b87b5 Add scene command XML parsers (#4054)
* Add scene command parsers

* Move logging & add logging cvar

* Use new CVAR_DEVELOPER_TOOLS macro

* Update soh/soh/resource/logging/SceneCommandLoggers.h

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-04-28 20:58:12 -04:00
Malkierian 303fe7d906 Swap all cosmetics CVars to macros. (#4065)
Lots of renames.

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-04-26 02:41:55 +00:00
Malkierian 56d8dd6d8b All MenuBar enhancement CVars done. (#4064) 2024-04-26 00:31:28 +00:00
briaguya a4fb67745a nlohmann from package managers (#4071) 2024-04-25 13:55:16 -04:00
Garrett Cox 7e7445ebcc Merge pull request #118 from briaguya-ai/chu-bowling-dont-skip
don't skip item give animation in chu bowling
2024-04-24 20:53:23 -05:00
briaguya 1fff8fd6d5 don't skip item give animation in chu bowling 2024-04-24 21:48:31 -04:00
Garrett Cox ae3b21f45b Merge pull request #117 from briaguya-ai/latest-lus-main
latest lus main
2024-04-24 20:28:38 -05:00
briaguya b2041df311 latest lus main 2024-04-24 21:21:22 -04:00
briaguya d22dbd6933 move RawJson to LUS (#4063) 2024-04-24 21:21:01 -04:00
Christopher Leggett 65c5806333 Better fix for blank hint issue. (#4070) 2024-04-24 17:09:49 -04:00
Garrett Cox 7bde0f5289 Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-04-23 11:31:39 -05:00
Garrett Cox c67d8f4baa Add missing RHT entries 2024-04-23 11:31:34 -05:00
Christopher Leggett 99fbecd951 Fix issue with item name replacement at runtime. (#4068) 2024-04-23 11:30:30 -05:00
Garrett Cox ee6e941681 Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-04-23 09:53:08 -05:00
Christopher Leggett 39e6269731 Fixes bugs with spoiler file parsing (#4066)
* Fix bugs with spoiler file parsing

* Hopefully fix mac build issue

* fix typo
2024-04-23 10:26:59 -04:00
Garrett Cox 854e20680a Fix forest temple entrance cs skip 2024-04-23 09:17:57 -05:00
briaguya 3070fb4746 support lus gameoverlay changes (and bump LUS) (#4067) 2024-04-22 22:57:33 -04:00
Garrett Cox 5174a48be1 Point LUS to fork temporarily for dl fix 2024-04-22 19:16:58 -05:00
Garrett Cox 7e5854756e Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-04-22 12:53:43 -05:00
Pepe20129 6b831f9256 Fix swim softlock (#3965)
* Update mods.cpp

* Update mods.cpp
2024-04-22 12:44:59 -05:00
Pepe20129 b65a15028b Update z_horse.c (#4014) 2024-04-22 12:44:12 -05:00
Christopher Leggett 4c75fd14a7 Fix hint generation bugs on develop-rando (#4001)
* Fix hint generation bugs on develop-rando

1. Fixed Ganon Non-hint text from loading as Saria's Magic Hint.
2. Fixed Ganon Non-hint text from not getting saved correctly.
3. Fixed gossip stone hint generation from not generating any non-always hints on No Logic.

For #3, the hint distribution and placement algorithm was bailing out too early when it wasn't able
to place a hint. For No Logic, what it was doing was failing to place WOTH hints (since No Logic seeds
don't calculate WOTH candidacy), returning the amount of hints it failed to place, and then it called
the function to redistribute the hints, but did not call the function to attempt to place the remaining hints.

Additionally, it was not accounting for the fact that we shouldn't redistribute the hints into the categories we failed to
place a hint in, so it would redistribute hints right back into those categories. I changed it so that when DistributeHints
gets called after PlaceHints fails to place the hint, it checks if the distribution settings copies attribute was set to 0.
In this case, it breaks while looping for the type distribution settings, and moves on to the next category. Also, it now repeatedly
attempts to distribute and place hints until PlaceHints returns 0 (meaning it placed all of its hints successfully).

* Fixes some further seed-bleed type issues with hint generation.
2024-04-22 13:29:05 -04:00
Garrett Cox 3c6c46d95d Fix for some chests not appearing 2024-04-21 21:09:52 -05:00
briaguya 49f891f2e5 move RawJson to LUS (#4063) 2024-04-21 21:16:59 -04:00
Garrett Cox a554c1550d Fix shadow & spirit rewards, remove remaning usage of duplicate dungeon done flags 2024-04-21 18:53:15 -05:00
Malkierian 33aef87907 CVar Macro Cleanup (#4062)
* Standardized CVar macros to have `CVAR_` at the front instead of the end.
Removed excluded and replaced sequence macros.

* Missed a few developer CVars outside of `SohMenuBar.cpp`

* 1 more.
2024-04-21 10:25:06 -05:00
Garrett Cox 5813b37415 Migrate child stealth 2024-04-21 09:38:53 -05:00
Garrett Cox 14c7f0c3e1 More time cutscene skip fixes 2024-04-21 09:14:46 -05:00
Malkierian e2622af004 Step 3 of CVar macro/sectionalizing: Dev Tools, Cheats, Audio Editor, Remote (#4030)
* Swapped Audio Editor CVars.

* Swapped Cheat CVars.

* Swapped Developer Tools CVars. Also a couple General CVars.

* Added REMOTE_CVAR.
Swapped Remote CVars.

* Missed an include.
2024-04-20 18:56:32 +00:00
Malkierian 694a876a70 Step 2 of CVar macro/sectionalizing: Trackers/Windows (#3238)
* Add all macros.

Replace all randomizer seed setting CVars with appropriate macro.

Cleaned up non-gameplay-critical things that are part of Spock Race rando presets (like RTA timing, displaying timer, displaying the glitch lineup tick, or Fast File Select).

* Wrong slash...

* Fix DEVELOPER_CVAR macro.
Add GENERAL_CVAR macro.

* Change Item Tracker CVars, including open window CVar.

* Swapped open window CVars.

* Swapped Entrance Tracker CVars.

* Swapped Check Tracker CVars.
Changed Item Tracker "HudEditMode" to "Draggable".

* Renamed `RANDOMIZER_CVAR` to `RANDO_ENHANCEMENT_CVAR`.
Swapped rando enhancement CVars.

* Mirroring last commit from part 1 in randomizer.cpp

* Another mirror from pt 1
2024-04-20 18:34:02 +00:00
Ted Newman 16bf03a9bd Add console commands for randomizing sfx and cosmetic groups (#3962)
* Add console commands for randomizing sfx and cosmetic groups

* Update naming and use constexpr

* Update soh/soh/Enhancements/debugconsole.cpp

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2024-04-20 12:33:59 -04:00
briaguya 2accfc3c9b ci: bump macports version (#4039) 2024-04-20 11:31:05 -04:00
Archez e6798d9861 bump lus and create fb call (#4060) 2024-04-20 11:04:11 -04:00
Archez 067782fa91 clean up cmake configure files (#4002) 2024-04-20 11:03:41 -04:00
inspectredc d08d5a54c9 Fix Pause Warp Enhancement (#4036) 2024-04-20 11:01:16 -04:00
inspectredc 4a576f45ee Fix and Clean Up Swap Age Logic (#4061)
* Split and clean up swap age logic

* reorganise conditions into one statement
2024-04-20 10:43:35 -04:00
Malkierian b045689df1 Step 1 of CVar macro/sectionalizing: Randomizer Settings (#3206)
* Add all macros.

Replace all randomizer seed setting CVars with appropriate macro.

Cleaned up non-gameplay-critical things that are part of Spock Race rando presets (like RTA timing, displaying timer, displaying the glitch lineup tick, or Fast File Select).

* Wrong slash...

* Forgot "gManualSeedEntry".

* Renamed CVars from "Mq..." to "MQ...".
2024-04-20 09:29:19 -05:00
Jamie Klassen 2aa2092c27 filter randomizer checks in tracker (#4021)
* filter randomizer checks in tracker

Co-authored-by: Michael Stergianis <michael.stergianis@gmail.com>

* Adds an option to hide empty areas

Co-authored-by: Jamie Klassen <jamie@tenkeylabs.com>
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>

* Removes extra whitespace

Co-authored-by: Jamie Klassen <jamie@tenkeylabs.com>
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>

* Changes gCheckTrackerHideFilteredAreas to default to true

Refactors the for loop in shouldHideArea

Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>

* Addresses PR feedback

* https://github.com/HarbourMasters/Shipwright/pull/4021#discussion_r1538377614
* https://github.com/HarbourMasters/Shipwright/pull/4021#discussion_r1538381310

Co-authored-by: Jamie Klassen <jamie@tenkeylabs.com>
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>

* Updates config variable to gTrackers.CheckTracker.HideFilteredAreas

Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>

* Adds check visibility guard to shouldHideArea

Refactors rcObject to check in passesTextFilter

Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>

---------

Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
Co-authored-by: Michael Stergianis <michael.stergianis@gmail.com>
2024-04-20 10:27:13 -04:00
Garrett Cox 28a2cc925e Merge pull request #114 from briaguya-ai/vb-tower-escape-no-new-should
vb tower escape
2024-04-20 09:23:14 -05:00
briaguya 3b0548f585 vb tower escape 2024-04-19 18:05:38 -04:00
Garrett Cox ab9932d1de Merge pull request #113 from briaguya-ai/treasure-chest-game-location-access
fix: add location access for treasure chest game items and gift from sages
2024-04-19 15:31:54 -05:00
briaguya d3beac7337 fix: gift from sages location access 2024-04-19 16:29:37 -04:00
briaguya ed0ef62c0c fix: add location access for treasure chest game items
vb treasure chest game added new RCs for the treasure chest game (now there are RCs for each of the 5 keys and each of the 5 non key chests), but the location area table only had the keys, this adds the items
2024-04-19 16:15:15 -04:00
Garrett Cox 0bde9f1fca Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-04-19 12:29:10 -05:00
Garrett Cox 43e8eec6bd Replace some printfs with spdlogs (#4058) 2024-04-19 12:28:38 -05:00
Garrett Cox 565a62a518 Merge pull request #4059 from Malkierian/dev-to-dev-rando-4-19
Dev to dev rando 4 19
2024-04-19 12:27:50 -05:00
Malkierian f4fc3662b6 dev -> dev-rando 2024-04-19 09:51:00 -07:00
briaguya 3e32d05173 macready -> dev 2024-04-19 11:27:05 -04:00
briaguya 2216b68111 fix: add include missed in merge conflict resolution 2024-04-19 11:06:52 -04:00
briaguya 9696f74b5c Merge branch 'develop-macready' into macready-to-dev 2024-04-19 09:57:29 -04:00
briaguya 32bf8cc53c fix wii u ci (#4056) 2024-04-19 09:42:41 -04:00
Malkierian 02f7310c16 Add keyring to check for placing Gerudo Fortess Keys in Any Dungeon or Overworld. (#4055) 2024-04-19 09:42:26 -04:00
inspectredc bfe13906e9 Make equip swap work on pause any cursor (#4052) 2024-04-19 09:42:12 -04:00
Amaro Martínez 32288be744 Save in-game language setting (#4026) 2024-04-19 09:41:55 -04:00
Malkierian 19be6e9b99 Trackers MQ Cleanup (#4009)
* Clean up grayed out items in file select.
Tie personal notes saving to `OnExitGame()` to account for save scum resets.
Hide text input box (but not window) for personal notes when a save isn't loaded to prevent saving over a save's notes while in file select.

* Allow check tracker window to be visible and show the "Waiting for file load..." text in file select (ease of positioning).

* Fix key label text placement.

* Persist `areasSpoiled`, change trigger to `OnSceneTransition`.
Add `IsAreaSpoiled` for tie-in to Item Tracker.
Add `SetAreaSpoiled` to unify bitmagic.

* Add proper spoiling evaluation based on specific entrance IDs, or first check collection.
Add light yellow color for vanilla dungeon abbreviations to match the purple for MQ.

* Initialize `areasSpoiled` to 0, so 0 gets saved on file create.

* All new conditional statements around `GameInteractor::IsSaveLoaded()` were inverted. Fixed that.

* Change some c-style casts to `static_cast`.

* Few more cleanups, plus clarifying comment.
2024-04-19 09:41:46 -04:00
Archez 0b8cc71d0d fix actor init flow with object loading (#3987) 2024-04-19 09:41:04 -04:00
Garrett Cox 6c384c3cb6 Finish glitch aiding cutscenes toggle 2024-04-18 21:52:38 -05:00
Garrett Cox abdbe25c8a Migrate purple poe faster fight 2024-04-18 21:36:10 -05:00
Garrett Cox 1683617210 Migrate rainbow bridge 2024-04-18 21:13:40 -05:00
Garrett Cox edf6d9334a Migrate ganon trials 2024-04-18 20:42:25 -05:00
briaguya 54b1505137 vb gerudo (#111)
* vb gerudo

* clean up
2024-04-17 20:17:00 -05:00
briaguya f6a583446b vb bombchu bowling (#110)
* vb bombchu bowling

* don't need it

* it's drawing the right thing but it's tiny

* scale

* no need to should, don't rescale every draw

* slightly safer
2024-04-17 19:49:29 -05:00
briaguya 84db4c8ab8 vb beehives (#109)
* vb beehives

* format
2024-04-16 20:02:16 -05:00
briaguya 60d74f720a vb richard (#108)
* Lost Dog + Custom Hook Handler

* vb richard

* fix the merge

---------

Co-authored-by: Taw <Tawling@users.noreply.github.com>
2024-04-16 19:28:20 -05:00
briaguya 63afaa3cc9 vb ocarina memory (#107)
* Ocarina Memory Game

* vb memory game

---------

Co-authored-by: Taw <Tawling@users.noreply.github.com>
2024-04-16 19:18:26 -05:00
inspectredc ced34ab68a [Fix] Disable Lod Applies To Everything (Macready) (#4034)
* make lod cvar affect everything

* add to more functions

* re-add to player

* only add to necessary funcs
2024-04-15 12:00:04 -04:00
briaguya f3273e7627 vb treasure chest game (#103) 2024-04-09 23:31:45 -05:00
briaguya bbbd2520b1 vb lh sun (#106)
* underwater working pre func_80B858B4 replacement

* underwater item update handled by hookhandlers

* vb lh sun

* remove unused should
2024-04-09 22:57:07 -05:00
briaguya fe231147d5 vb underwater item (#104)
* underwater working pre func_80B858B4 replacement

* underwater item update handled by hookhandlers

* remove commented out code

* remove unused should
2024-04-09 22:46:11 -05:00
Garrett Cox 36a462d667 Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-04-08 11:03:50 -05:00
Garrett Cox 67ee5f8d0e Merge pull request #4045 from HarbourMasters/develop
develop -> develop-rando
2024-04-08 16:02:22 +00:00
briaguya 9c9fc49d32 vb horseback archery (#102)
* vb horseback archery

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

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-04-08 10:59:48 -05:00
briaguya 6d77bbd4a9 vb skull rewards (#101) 2024-04-08 10:55:16 -05:00
inspectredc e163d5bc3d Fix switch puzzle locking issues (#4027) 2024-04-07 17:28:20 -04:00
briaguya 897d3efbd0 rip out unused types (#4041) 2024-04-07 17:02:57 -04:00
briaguya 168323ebc9 bump LUS (#4042) 2024-04-07 14:27:50 -04:00
Archez fd7dfd8b6f Support for new ucode loading patterns (#4038) 2024-04-04 12:26:14 -04:00
briaguya 307e106038 vb talon's chickens (#99) 2024-04-04 10:55:07 -05:00
briaguya 1e9cba1d61 vb diving game (#100) 2024-04-04 10:30:45 -05:00
briaguya 249490909f pull docs: talon function names (#98) 2024-04-04 10:26:48 -05:00
Archez 86c6013888 Remove macports upgrading (#4035) 2024-04-04 11:23:18 -04:00
Garrett Cox 325035e473 Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-04-04 08:15:34 -05:00
Garrett Cox 01bcc4bb59 Merge pull request #4033 from HarbourMasters/develop
develop -> develop-rando
2024-04-04 13:13:58 +00:00
briaguya fb29c827ad Update BUILDING.md (#4029) 2024-04-03 22:17:32 -04:00
briaguya 0f43d5de2d bump lus (gfx refactor) (#4031) 2024-04-03 22:16:17 -04:00
briaguya 2339a729ee vb deku theater (#96) 2024-04-03 21:10:18 -05:00
briaguya d6c512904b vb target in woods (#95)
* do some target in woods VB stuff

* skip deku scrub hopping out animation

* replace a couple IS_RANDOs

* cleanup
2024-04-03 20:11:13 -05:00
briaguya 0334c4e354 pull in docs (#97)
* rename `func_8002DF54` to `Player_SetCsActionWithHaltedActors`
* rename `func_8002F434` to `Actor_OfferGetItem`
2024-04-03 20:07:42 -05:00
Christopher Leggett c162af818d Fix keysanity Any Dungeon setting. (#4020)
Due to a typo a few months ago, it was accidentally being ignored and
treated as Anywhere. Own Dungeon may have also been doing weird things,
but I'm not entirely sure.
2024-03-20 18:24:58 -04:00
Garrett Cox 8b3cfdb84f Merge pull request #3986 from Archez/merge-macready-805
Merge MacReady 8.0.5 -> Develop
2024-03-06 04:12:02 +00:00
briaguya ef690e2ceb support LUS::Archive::LoadFileRaw no longer being exposed (#3999) 2024-03-05 23:09:05 -05:00
briaguya 9fb2f26f1b tts: use RawJson resource + add SpeechLogger (#3998)
* moved `tts.cpp` away from using `LoadFileRaw` by creating a new `RawJson` resource type
* added `SpeechLogger`
2024-03-05 22:21:15 -05:00
briaguya 402a4db593 Bump LUS (#3996) 2024-03-04 23:56:26 -05:00
briaguya 375349e4f7 Support font as resource LUS changes (#3993) 2024-03-04 23:36:23 -05:00
briaguya ebde648c59 .o2r support (#3955) 2024-03-02 20:51:32 -05:00
Adam Bird 7bd2a7c3a6 Merge remote-tracking branch 'origin/develop' into merge-macready-805 2024-02-28 23:49:06 -05:00
Garrett Cox 612da023f0 Bump version to MacReady Foxtrot 8.0.5 (#3982) 2024-02-28 22:46:55 -05:00
Malkierian 368a9015ac Add Unix timestamp to renamed corrupted file to prevent trying to copy over existing file. (#3984) 2024-02-28 22:46:32 -05:00
Malkierian ed9cb1dfd2 Fix CVar evaluation for scummed checks being hidden. (#3985) 2024-02-28 22:45:16 -05:00
Archez fb6ea42560 prevent remember save location in dungeons/boss rooms (#3983) 2024-02-28 22:33:51 -05:00
Malkierian b26f2b21da [UX Improvement] Catch save loading errors and notify user (#3979)
* Add `SohModalWindow` and `SohModal`. Runs as window, always "visible", but not drawing if no popups are registered.

Adds error catching for save file corruption (malformed json) that renames the file in question to prevent future loading issues and uses `SohModalWindow` to inform the user of the error.

* Apply suggestions from code review

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-02-28 21:12:23 -06:00
Archez 358dd47da7 remove zapd extraction from mac launch script (#3981) 2024-02-28 21:03:08 -06:00
Malkierian ea1ffdd041 Adds messageboxes to no_ui handling so they don't show if you have it on. (#3977) 2024-02-28 20:04:44 -06:00
Garrett Cox 416ed84bc6 Migrate great fairy checks 2024-02-24 09:17:48 -06:00
Garrett Cox 09c967249f More 1PC skips 2024-02-23 14:06:27 -06:00
Garrett Cox 13a113c362 Various adjustments to goron related vanilla behavior hooks 2024-02-23 12:43:27 -06:00
Garrett Cox b293cac51c Enable timesaver enhancements by default on rando 2024-02-21 15:26:11 -06:00
Garrett Cox 2203f902a3 Merge branch 'develop-rando' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-changes 2024-02-21 14:43:37 -06:00
Garrett Cox 854fb67797 Merge pull request #3964 from Archez/rando-dev-merge-feb
Merge develop -> develop-rando
2024-02-21 20:05:32 +00:00
Garrett Cox 7bebe7a573 Migrate okarina_tag changes 2024-02-21 14:01:49 -06:00
Adam Bird b5c601f43e Merge remote-tracking branch 'origin/develop' into rando-dev-merge-feb 2024-02-21 02:01:25 -05:00
briaguya bcbe4cb1c3 we crash if we try to SPDLOG in the destructors (#3951)
* we crash if we try to SPDLOG in the destructors

* rip em out

* newline

* add to destroy

* Revert "rip em out"

This reverts commit 738a9b80f3.

* Revert "we crash if we try to SPDLOG in the destructors"

This reverts commit 327d305e00.
2024-02-21 00:21:26 -05:00
Archez cd25f1d3c1 Fix performance of dlist viewer (#3961) 2024-02-21 00:20:25 -05:00
Garrett Cox 37e89c0c7c Migrate song of storms check 2024-02-20 21:49:07 -06:00
Garrett Cox 72581f7482 Re-add some UI I accidentally removed 2024-02-20 21:04:16 -06:00
Garrett Cox 0dda3a6c29 More boss intro skips 2024-02-20 21:00:10 -06:00
Ted Newman 00b3581151 Skull Kid (#86)
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-20 20:15:10 -06:00
Garrett Cox d28257088b Merge pull request #85 from Tawling/vbo-man-on-roof
GI VB for Man On Roof
2024-02-21 02:12:53 +00:00
Garrett Cox 4c56583215 Merge pull request #90 from briaguya-ai/fix-the-torch
fix the torch
2024-02-21 02:11:07 +00:00
Adam Bird 8b178f9386 RandoV3 fixes for mix/decouple boss entrances 2024-02-20 16:52:42 -05:00
Adam Bird 37b960ab0e Merge commit '13fce8258d92e80ea09900f83d338ccba2e7b1f9' into rando-dev-merge-feb 2024-02-20 16:51:05 -05:00
Adam Bird 1d61ba0b86 Merge commit '3187564f5b4120e159f5e506b4a3db88716b56aa' into rando-dev-merge-feb 2024-02-20 10:57:39 -05:00
Archez cd5d2589f7 Merge pull request #3958 from HarbourMasters/develop-macready
macready -> develop
2024-02-20 10:32:28 -05:00
Archez ef9fc0a9ec fix endianess issue with camera setting data (#3950) 2024-02-20 08:38:10 -06:00
Archez 19af4481c0 fix object unload using wrong index (#3949) 2024-02-20 08:31:24 -06:00
briaguya 30ff3e9585 fix the torch 2024-02-16 02:03:22 -05:00
Archez d0b09743b9 Fix missing ImGui::EndDisabled (#3946) 2024-02-15 23:25:16 -05:00
Patrick12115 c484ea227b [Difficulty Options] Leever Spawn Rate (#3460)
* Spawn Rate

* Update z_en_reeba.c

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

* gEnhancements

* Merging issues

* Added preset entry and changed timer value math

* Update soh/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c

* this should do it

* Update soh/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c

* move out of loop

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-15 22:12:09 -06:00
Patrick12115 4599212546 [Fixes] Fix Raised Floor Switches (#3851)
* Lower by 1

* gEnhancements.

* Update z_obj_switch.c

Co-authored-by: Archez <Archez@users.noreply.github.com>

* Moved to Hook

* Properly this time

* Added to presets

* Added a Return;

* Use Hex

Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-15 22:02:58 -06:00
Garrett Cox a8d3724a53 Add missing cvars mostly that patrick forgot because he likes ranch dressing but also some that I missed oops (#3944) 2024-02-15 21:28:06 -06:00
Garrett Cox 10b6f8cf80 Merge pull request #3945 from HarbourMasters/develop-macready
macready -> develop
2024-02-15 21:21:18 -06:00
briaguya e0d502b696 resource refactory (#3926)
* animation

* playeranimation

* stop putting things in the LUS namespace from SoH

* get all the factories out of the namespace

* LUS::

* start on scene command stuff

* i think that's the rest of scene

* reduce copypasta

* collision header

* skeleton

* skeletonlimb

* fix

* path

* cutscene

* text

* audio sample

* sound font

* audiosequence

* background

* Revert "stop putting things in the LUS namespace from SoH"

This reverts commit 0ead6056e6.

* namespace shanans

* wrap all factories in namespace soh

* it's trying to link now

* lus

* scene command override etc

* fix audio loading

* slightly less logspam

* get past the cutscene problem

* in game!

* exporter cleanup

* more exporter cleanup

* clang formatted lus

* msvc

* itny lus change

* variant

* formatty

* fix of some sort i guess?

* use latest lus main

* fix name to enum/factory mapping

* otrexporter
2024-02-15 21:06:52 -06:00
Miles Acquaviva 7f4fc8dc4a Abstracted repeated code into functions (#3116)
* Abstracted repeated code into functions

* Apply suggestions from code review

* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: Archez <Archez@users.noreply.github.com>
2024-02-15 21:03:19 -06:00
Patrick12115 db57581d6f [Cosmetics] Add Vanilla GS DL for Cosmetics Editor (#3937)
* Add Vanilla DL

* Fixed egregious spacing error
2024-02-15 20:51:23 -06:00
Pepe20129 8525f71c57 Colored Compasses (#3883)
* Colored Compasses

* Rename cvar & add explicit rando check
2024-02-15 20:50:17 -06:00
Pepper0ni a7726653e5 Add Big Skulltula logic to adult kokiri forest and fix a small bug in forest temple logic (#3938)
* Add Big Skulltula logic to adult kokiri forest and fix a small bug in forest temple logic

* fix spelling
2024-02-15 20:49:45 -06:00
Pepe20129 7319e4db57 More player documentation from decomp (#3819)
* FallImpactInfo & AnimSfx stuff

* IA function naming & Player_UseItem

* ActionChange

* Speed modes

* Fix build

* Misc cleanup

* Name Player_Action funcs

* PlayerAgeProperties

* Most of the Player struct

* Update z_player.c

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-15 20:44:46 -06:00
Malkierian 30a063b75d [Tweak] Move Personal Notes to Save File (#3909)
* Moves personal notes to the save file under a new itemTracker save section.

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

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2024-02-15 20:44:40 -06:00
DeusVexus 4797c9ad35 Adds the Keese and Guay don't target you cheat (#3267)
* Adds the Keese and Guay don't target you cheat
that makes keese and guay ignore you as if
you are wearing the skull mask

* changed instances of CVar_GetS32 to CVarGetInteger
added the cvar to presets.h

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-15 20:29:09 -06:00
inspectredc 457a75e9f8 More Sword Toggle Options (#3889)
* Sword Unequipping Toggle

* better macro

* less ugly format

* cvar prefix

* Update soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c

* Update soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-15 20:15:44 -06:00
briaguya 1bc15d5bf3 document dependencies per distro (#3933)
* start on arch

* noconfirm

* git

* noconfirm

* just skip cache

* cmake

* ninja

* gcc

* lsb

* sdl2

* png

* sdl net

* boost

* imagemagick and add opensuse

* non interactive

* git

* cmake

* add a bunch

* things

* more

* try to matrix

* soh otr i guess

* needs

* trying to figure out how matrix include works

* make the matrix?

* matrix debug

* install?

* echo?

* yuck

* cannot locate package false

* parens for good measure

* lsb

* libsdl2

* suse

* i forgot opensuse uses gcc-c++ instead of g++ for the package name

* png

* sdl

* more

* suse packages....

* fedora cmake

* 2?

* png

* handle old sdl2 net

* apt

* not sure if this is a problem for both clang and gcc on opensuse or just clang

* devel

* cmake min version

* def don't want this here but it's here for now

* does this do anything

* mantic because cmake version

* libopengl?

* fedora ninja

* fedora g++

* lsb

* fedora sdl

* libpng

* do a build

* clang fix

* give early returns values

* ImageMagick

* Update BUILDING.md

* something

* plain boost instead of devel?

* not packing so we don't need this part

* base?

* don't have it can't need it

* just use boost download on opensuse i guess

* move workflow

* bring back the file

* lus main?

* detach
2024-02-15 20:13:49 -06:00
Garrett Cox e05f558ef3 Fix issue with bombchus always showing as major (#3303) 2024-02-15 20:12:19 -06:00
Garrett Cox a84227cbbb Support hook unregistration (#3538) 2024-02-15 20:08:31 -06:00
Pepper0ni cf6101f4da Logic bug: child cannot climb forest temple to the straight hallway either (#3934) 2024-02-15 20:03:58 -06:00
Ted Newman bdfcf39e56 Add a link to ship.equipment to the CRC error message box during extraction (#3939)
* Add a link to ship.equipment to the CRC error message box during extraction

* Improve message and add to ShowCrcErrorBox

* Change 'known good roms' to 'known compatible roms'
2024-02-15 19:55:01 -06:00
Archez 3d3b8bfc5b Allow IsSaveLoaded to consider debug saves (#3929) 2024-02-15 19:54:35 -06:00
Malkierian 0cb4cd158a Adds reset function to z_en_si (GS Token) to set getItemId to vanilla after resetting SoH. (#3925) 2024-02-15 19:53:18 -06:00
Ted Newman bbac8f8da4 [Fixes] Fix for Zora hint dialogue condition with an inverted flag check (#3920)
* [Fixes] Fix for Zora hint dialogue condition with an inverted flag check

* Base dialogue off of ruto's letter flag

* simplify condition
2024-02-15 19:52:46 -06:00
briaguya 43fed2d77e ci: pin switch docker image to known working version (#3917) 2024-02-15 19:51:31 -06:00
Malkierian 11a0a00633 Add CVarClear to appropriate sections of randomizer Locations and Tricks tabs to get around issue with saving blank CVar strings. (#3916) 2024-02-15 19:50:31 -06:00
mckinlee 2c5cb58ef6 Rename func_80853148 to Player_StartTalking (#3915)
-In PR #3498 I renamed this function for clarity and decided to make a
quick seperate PR for this change.
2024-02-15 19:49:56 -06:00
Tina H. (sheepytina) 7ccc816772 Cosmetics Editor fixes for icons in z_message_PAL.c (#3914)
* Fix resetting button icon colours in message boxes.

* Fix type/math error for custom color in textbox icon pulsing.

* Fix type error for custom color in ocarina icon pulsing.

* Make custom env colour math more closely match vanilla equivalents.

* Make comments presentable.
2024-02-15 19:49:13 -06:00
Tina H. (sheepytina) eeb6c7faaa Fix Cosmetics Editor getting stuck on weapon trails (#3913)
* Partially fix cosmetics editor getting stuck on sword trails.

* No reason for "reset" to be static.

* bombchu
2024-02-15 19:47:13 -06:00
Ted Newman e68b281b18 [Enhancement] Preserve minimap toggle state between areas (#3906)
* Add enhancement to preserve minimap toggle state between areas

* add map toggle enhancement to presets
2024-02-15 19:39:24 -06:00
inspectredc 107a365b71 Add safety measure to Scene_CommandObjectList to prevent crash (#3904)
* dont let k overflow

* Update soh/soh/z_scene_otr.cpp

Co-authored-by: Archez <Archez@users.noreply.github.com>

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2024-02-15 19:38:54 -06:00
Josh Bodner a7b8c1dbca Fix neck slider (#3902) 2024-02-15 19:38:28 -06:00
Garrett Cox f7e746e295 Tweaks to coloridoscope (#3901) 2024-02-15 19:37:55 -06:00
Ted Newman db958ab3f4 New input viewer (#3890)
* Move input viewer into SoH

* Remove unnecessary comments

* Update button outline mode to match default viewer

* Fix ambiguous call

* CVar name changes and minor fixes

* Two more cvars

* Separate C-buttons into individual toggles

* Account for text height regardless of scale

* A few extra comments

* Use new LoadTextureFromRawImage to load layer textures
2024-02-15 19:37:19 -06:00
Pepe20129 7cdd33a01d Better ammo rendering (#3844)
* Better ammo rendering

* Update soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c

Co-authored-by: Archez <Archez@users.noreply.github.com>

* Update z_kaleido_scope_PAL.c

* Rename gBetterAmmoRendering to gEnhancements.BetterAmmoRendering

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2024-02-15 19:32:17 -06:00
Patrick12115 c1365b3263 [Time Savers] Shops and Games always open (#3789)
* Shops and Games always open

* Added comment  for scene reload requirement

* Prefix

* Spacing

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

* I'm bad at merging

* Refined by Archez

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2024-02-15 19:27:26 -06:00
Giantblargg 458970816f Fix Check Tracker Vanilla/MQ Dungeon Spoilers (#3723)
* Fix Dungeon Spoilers

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

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

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-02-15 19:26:27 -06:00
Christopher Leggett 3514954ad1 Adds Message Viewer Window to Developer Tools (#3486)
* Adds a MessageViewer window to Developer Tools.

* Properly destroys message viewer window.

* Adds missing ImGui::End()

* Fixes an oopsie crashing non-windows builds after first run.

* Adds C ABI for displaying a custom message

* Fixes a crash and an issue with messages with SFX.

* Remove some osSyncPrintf's that aren't very useful for this case.
2024-02-15 19:23:12 -06:00
Pepper0ni 0932e1e504 Make the final Magic Bean cost 99 rupees in randomiser when it is not shuffled (#3392)
* Make rando final eban cost 99 and clean up Text IDs

* Remove Text ID changes

* Add french translation, All credit to Purple hato

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

---------

Co-authored-by: Purple Hato <linkvssangoku.jr@gmail.com>
2024-02-15 19:20:12 -06:00
inspectredc 46aea3aa7c Player State Docs (#3280)
* state flags 1

* state flags 2

* state flags 3

* fill array
2024-02-15 19:17:28 -06:00
Spodi 460ec1bb03 Use manifest for windows DPI awareness (#3270) 2024-02-15 19:17:03 -06:00
Archez 13fce8258d [Rando] Add Mix and Decouple support to Boss Entrances (#3261)
* initial support for mixing boss entrances in the mixed pool

* support decouple for boss entrances

* missed decouple change

* add blue warp exits to boss rooms in location access

* add entrance get helper methods

* fix assumed targets not using root in entrance name

* add dedicated blue warp entrances and handle blue warp changes during generation

* change bluewarp handling in game to use unique blue warp entrances

* handle blue warps in entrance tracker

* fix overriding all jabu and water temple rooms

* fix grotto returns when exiting boss rooms/dungeons

* fix blue warp logic by tracking original connected region key

* use entrance enums

* remove unneeded entrance values

* fix decouple generation crash

* fix jabu mq backwards logic
2024-02-15 19:14:24 -06:00
mckinlee 3187564f5b Pause Warp Enhancement (#3223)
* Pause Warp Enhancement

This commit introduces the PauseWarp mod, a feature that allows players to warp to different locations in the game directly from the pause menu.

- Add PauseWarpState structure to manage flags and cooldowns for the pause warp feature.
- Implement IsStateValid function for state validation.
- Implement ResetStateFlags function to reset all state flags to default values.
- Add InitiateWarp function to handle the initiation of warp sequences.
- Implement HandleWarpConfirmation function to confirm and execute warp actions.
- Implement HandleCooldowns function to manage various cooldown timers.
- Add PauseWarp_Main function as the main logic, called every frame to handle pause warp functionality.
- Map warp song messages to in-game text messages.

* Warp Song Check

-Now if you do not have a warp song you won't be able to select the empty slot and still teleport.

* Added Audio Fanfares and Changed stateFlag1 to PLAYER_STATE1_IN_CUTSCENE

-When selecting a warp song the audio for the applicable warp song will now play for a extra vanilla feel.
-Changed the stateFlag1 because previously it just disabled input allowing enemies to harm you. Now that won't happen because the game is put into a cutscene state.

* Feedback Update

-A new hook was created 'OnPauseMenu' so now PauseWarp_Main is only called when the pause menu is open
-Moved pauswarp.c to the Enhancements folder
-Removed from graph.c

PR Change:
Changing to the main branch instead of sulu

* Feedback Update #2

-Introduced new function 'PauseWarp_Idle' now that 'PauseWarp_Main' is no longer called every frame
-Added C wrapper to access 'GameInteractor::IsSaveLoaded' and scrapped the 'IsStateValid' function
-Added 'PauseWarp_Idle' to the the 'RegisterPauseWarp' function
-Refactored the code some

* Linux Compile Issue

-Added a missing header that was causing a compile issue for linux
-Hopefully, it won't crash

* Minor Bug Fix

-Now link won't get soft locked when warping to the same location twice

* Update libultraship

* Revert "Update libultraship"

This reverts commit 746fc23479.

* Bug Fix
-Added more checks to ensure vanilla behavior when a Ocarina is not in the players inventory.

* WIP

* Done unless I'm missing headers

* now we done

* clean up, these arn't needed anymore

* Rename OnPauseMenu to OnKaleidoUpdate
2024-02-15 19:13:54 -06:00
Archez c1eb0a8970 Bump latest LUS and Fix ship menu bar icon (#3935)
* fix ship menu bar icon

* update cmake in wiiu/switch

* different cmake install

* wrong arch
2024-02-13 19:55:33 -06:00
Taw ceb5b740b5 fix include 2024-02-12 14:26:10 -08:00
Taw 4e5b92fdf3 Man On Roof 2024-02-12 08:26:36 -08:00
Garrett Cox e433cce799 Merge pull request #83 from Tawling/vbo-shooting-gallery
GameInteractor hooks for adult and child shooting gallery
2024-02-12 01:14:35 -06:00
Taw bea3c6dae0 GameInteractor hooks for adult and child shooting gallery 2024-02-09 14:17:17 -08:00
briaguya 8a14fea94c support LUS archivemanager refactor (#3912) 2024-02-08 20:28:02 -05:00
Garrett Cox 596ea5ebbb Vanilla Behavior Overhaul
Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
2024-02-02 15:39:01 -06:00
Garrett Cox fe9dcf1fc3 Merge pull request #3900 from garrettjoecox/develop-rando-merge
Develop -> Develop-rando
2024-02-02 10:45:56 -06:00
Garrett Cox 04c106d8f7 Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-merge 2024-02-02 10:20:54 -06:00
Ted Newman be8dcfda05 Fix Internal Resolution format to use %.1f instead of %d (#3899) 2024-02-02 07:38:24 -06:00
Garrett Cox 83da5ee677 Moar caching (#3896) 2024-02-02 00:22:44 -06:00
aMannus 7cd2019ef6 Fix starting skulltulas (#3876) 2024-02-01 23:56:35 -06:00
Garrett Cox 8cac9b4264 Merge pull request #3897 from briaguya-ai/macready-to-dev-2-2
macready -> dev (2024/2/2)
2024-02-01 23:45:44 -06:00
briaguya a9d57a95ec Merge branch 'develop-macready' into macready-to-dev-2-2 2024-02-02 00:19:13 -05:00
briaguya 41c2933619 sccache for windows builds (#3385)
* cache vcpkg on windows ci

* try sccache as variant

* missed a spot

* see if we're checking here

* does this do it?

* trying to make minimal changes and have this work

* hopefully these z7s do something

* we were almost at the max already bump to double

* Apply suggestions from code review

* sc

* latest from soh-macready branch of otrexporter
2024-02-01 23:11:31 -06:00
briaguya aff9f40933 gc controllers via sdl on linux (#3869)
* try gc via sdl

basing this idea on this comment https://github.com/Ryujinx/Ryujinx/issues/2425#issuecomment-1269658650

* libusb?

* fix

* use latest lus main

* don't bump lus yet
2024-02-01 22:55:53 -06:00
Patrick12115 f88343839e Item Tracker Text Size Slider (#3856)
* Adds Slider and Functionality

* prefix

* Changed values

* HELLO

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-01 22:47:55 -06:00
Pepe20129 961b2626ad Merge controller menus (#3860)
* Merge controller menus

* Re-run Build

* Update SohInputEditorWindow.h

* Update soh/soh/Enhancements/controls/SohInputEditorWindow.cpp

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

* pin switch devkit docker image

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-02-01 22:10:46 -06:00
Patrick12115 775d3e68b7 [Graphics] Show Equipment Regardless of Age (#3830)
* Hookshot, Hammer, & Boomerang

* Added the remainder of equipment and DL Patching for hands

* Removed Mirror Shield Patch

Messed with the front texture of shield

* Child Hylian Shield Cheat

Adds a cheat that allows Child Link to hold Hylian Shield as adult. Added to this since it uses the same way to render the shield

* Debugging

* Adds Scaling to Child Link with Adult Equipment

* Fix Merge Conflict Blunders

* More cleanup

* Added Scaling checkbox and some clean up

* Added an || ITEM_NONE

* More cleanup and simplification

* Accidently added spacer

* Replace B_BTN_ITEM

* Spacing

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

* Added most sheath functionality

* Updated tooltips

* removed child hylian shield and tweaked bow/slingshot

Made child hylian shield cheat into a separate branch and hooked into existing bow/slingshot enhancement for drawing those

* Prefixes

* ()

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-01 21:11:49 -06:00
Tina H. (sheepytina) a6457599f9 Clarify descriptions of Graphics Settings (#3881)
* Rewrite tooltips: Internal Resolution, Anti-Aliasing.

+ Tweak others.

* MSAA slider will display 1x as Off.

* Rename setting and tweak tooltips: FPS (to Framerate)

+ Code style formatting.

* Add tooltip: Texture Filtering. + Small tooltip changes.

+ Tidy up comments/newlines.

* Add internal resolution advisory for Apple users.

(Because this setting being missing keeps getting reported as a bug.)

* Small text tweaks.

* Code review suggestion

Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>

* Missed one of the buttons + correct spelling of "frame rate"

---------

Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
2024-02-01 20:52:53 -06:00
skyyoshi86 351a511dc7 Cosmetics Editor entry for Ivan the Fairy (#3718)
* First commit

* Reverted MODDING.md

Reverted a correction to MODDING.md (case-sensitive broken link?) as this is not a change related to this PR

* Delete CMakeSettings.json

Deleted CMakeSettings.json as this is not a change related to this PR.

* checks for cosmetic changes ONCE for both body and sparles

Please review carefully. I made these changes blindly as I figure out why I can't compile it in my machine anymore. Sorry!

* correctly updates OUTER color when it's changed in Cosmetics Editor

* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp

* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp

* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp

* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp

* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp

* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c

* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c

* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-02-01 20:44:16 -06:00
Garrett Cox ddf0392100 Add gShowDoorLocksOnBothSides (#3787)
* Add gShowDoorLocksOnBothSides

* Update soh/src/overlays/actors/ovl_En_Door/z_en_door.c

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-02-01 20:43:45 -06:00
Patrick12115 c49908caa6 Item Tracker Hookshot/Longshot Identifiers (#3848)
* H & L

Adds an H and L for Hookshot and Longshot to be able to tell more clearly which one you have.

* Added Toggle and Refined

Adds a toggle if players don't want it on. Also scales the letter to stay constant with the icons, both size and position. Also now hides the letter if you don't have a hookshot yet.

* Clean up some of the comments

* prefix
2024-02-01 20:30:48 -06:00
Chris 81eb6de42e Audio Editor UI Improvements and Scene Init Randomization (#3388)
* Audio Editor UI Improvements and Scene Init Randomization

* Update soh/soh/Enhancements/audio/AudioEditor.cpp

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

* Update soh/soh/Enhancements/audio/AudioEditor.cpp

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2024-02-01 20:20:35 -06:00
Eric Hoey f7bd626162 change default value + scale offset by icon size appropriately (#3861) 2024-02-01 20:15:25 -06:00
Josh Bodner f8b0e586bb Fix +/- buttons on float sliders not working at certain values (#3865) 2024-02-01 20:14:17 -06:00
Patrick12115 ed85a1b0e2 [Time Saver] Reset Navi Timer (#3818)
* Reset Navi Timer

* Force Rebuild

* Prefix
2024-02-01 20:12:28 -06:00
Chris 270d0b836e Randomize cosmetics on new scene (#3342)
* Randomize cosmetics on new scene

* Code review feedback

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-01 20:10:49 -06:00
aMannus e4948d9ce4 Triforce Hunt GI Model Blender source files (#3478)
* Triforce Hunt GI model source files

* Move assets to different path
2024-02-01 20:01:38 -06:00
louist103 4bdb5098b0 Colors 1 (#3463) 2024-02-01 20:01:18 -06:00
Rozelette bb1078e99c Account for removed object dependency in Deku Scrub Leader (#3878)
* Account for removed object dependency in Deku Scrub Leader

* Update soh/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-01 19:58:22 -06:00
inspectredc 2529dc59bd Increase Door Cull range (#3888)
* cullzone

* better cvar name

* Update soh/src/code/z_actor.c

* Update soh/src/code/z_actor.c

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-01 19:58:08 -06:00
Caladius 695ab6c6ee Hurt Container Mode (#3336)
* Each Heart Container or full Heart Piece reduces Links hearts by 1

* Based on Briaguya's suggested Code but modified slightly as some parts were missing.

* Static Bool

* The episode without Captain Hook's Hook

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-01 19:57:12 -06:00
Eric Hoey be948339b9 Lost Woods Ocarina Game Difficulty Options (#3371)
* Menu options, note speed, unlimited playback time

* Instant win

* Add custom ocarina game cvar to all options and presets

* Extra spaces

* Add starting note count, ending note count by round, more presets

* Block out vanilla code + comments

* finish blocking out vanilla code

* new documentation formatting

* add starting notes to randomizer preset
2024-02-01 19:52:10 -06:00
Eric Hoey 7ff46ba1a7 Increase Crawl Speed (#3366)
* Increase animation speeds, crawl speed, add magic numbers for camera timer, add to menu and presets

* Remove extra space, reformat comments

* Initialilze CVar at 0, Initialize default timer, set default case for timer, change all CVarGets to 1, reorg logic

* Fix remaining CVars + unify logic

* block out vanilla code + comments

* new documentation formatting

* Simplify camera swing fix

* Remove redundant multiplication

* Update soh/src/code/z_onepointdemo.c

reduce code duplication

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-02-01 19:38:54 -06:00
Eric Hoey 4d5adbc80f Fisherman asks for fishing rod when leaving (#3347)
* CVar, presets, custom message, fishing actor

* Add placeholder translations for French/German

* Fix for MS Shuffle change

* Rename function to match

* Missing comma in presets

* Change description, CVar name, add'l function name, edit custom message

* Actual whitespace fix

* re-order custom message

* Fix message formatting

* Add enhancement comments

* yeet if (play) {} from enhancement

* new documentation format
2024-02-01 19:36:57 -06:00
Eric Hoey d9310e4543 Swim Speed Modifiers (#3308)
* Add CVars for swimming, apply to swim speed calc

* Prevent modifer from working underwater

* Re-enable swim speed mod when underwater, use new (orig) function for y-velocity while diving

* Add to presets list

* Fix spacing

* block out vanilla + comments

* re-org vanilla code block in a sane way

* new documentation format

* rename Surface function + comment for usage

* handle merge conflicts, but like an adult this time
2024-02-01 19:32:50 -06:00
Malkierian 61cf2bd323 No Magic Numbers for Preset Location Exclusions (#3801)
* Adds `FormatLocations` and `PRESET_ENTRY_TYPE_CPP_STRING` to allow for feeding `RandomizerCheck` values directly in presets instead of a string with magic numbers.

* Switch to concatenation with `std::to_string`.

* Forgot to remove <format> include XD
2024-02-01 19:29:24 -06:00
Malkierian 16ee20c2a8 Renames Freecam to Free Look. (#3771)
Adds helper info for invert, distance, and transition speed options.
2024-02-01 19:26:36 -06:00
Archez 7ef6a434f9 fix timestamp truncation (#3874) 2024-02-01 19:25:57 -06:00
Malkierian e3825ec263 Unify defaults for reward count sliders with Greg As Reward so they need to register changes. (#3875) 2024-02-01 19:23:06 -06:00
Pepper0ni cb82e77e40 fix bombchu logic bugs (#3720) 2024-02-01 19:15:13 -06:00
Archez a19056cd3d Merge pull request #3894 from Archez/mergeDevelopMacreadyJan31
Merge develop-macready -> develop
2024-02-01 10:56:45 -05:00
Adam Bird 5db4ce0b53 Merge remote-tracking branch 'origin/develop-macready' into mergeDevelopMacreadyJan31 2024-01-31 18:12:06 -05:00
Ted Newman 3e91d5565a Fix disabled icon for Easy Input Buffering checkbox when Easy Frame Advancing is enabled (#3859) 2024-01-15 19:46:36 -05:00
Archez 63cf3610e5 Fix: Move Ruto earring fix to graphic patch and fix Ganon fight rubble DL reference (#3810)
* move ruto earing fix to real patch

* use stringpath for ganon rubble
2024-01-15 10:31:33 -06:00
inspectredc dd5d8088f6 Revert actor uncullZone related checks back to match decomp (#3828) 2024-01-15 10:31:06 -06:00
Archez 1da1b1a2bb Tweak: Improve pause menu dungeon map performance (#3773)
* add map palettes per pulse to leverage shader caching

* use unregister blended with kaleido maps

* use Gfx_TextureCacheDelete for KD lava

* bump lus

* add miss tex clears for KD
2024-01-15 09:39:54 -06:00
Pepe20129 db2ccd95b7 Add Collision Header XML parser (#3396)
* Add Collision Header XML parser

* Update CollisionHeaderFactory.cpp

* Remove "Num" attributes

* Fix crashes

Prevent crash when the camera setting is negative
Change some IntAttributes to UnsignedAttributes
2024-01-15 09:33:21 -06:00
inspectredc db02870a05 Restore Original Scene Command Object List Behaviour (MacReady) (#3827)
* Restore Original Scene_CommandObjectList Behaviour

* remove some vrom stuff

* add some comments
2024-01-15 09:30:20 -06:00
Tina H. (sheepytina) ecdf74161b Add a tooltip to "Restore old Gold Skulltula cutscene" enhancement. (#3849) 2024-01-15 09:28:59 -06:00
Malkierian 861bd09848 Adds a log statement to show the SoH version at startup, in case crashes don't produce a stack trace from which to glean that information. (#3786) 2024-01-15 09:26:19 -06:00
Archez 8426cc93e5 Fix: Tektite texture not loading for death animation (#3808)
* fix tektite death texture loading

* add string header
2024-01-15 09:25:57 -06:00
Patrick12115 31623a93ab Remove OpenMenu Bar Check (#3817)
Having it set to just -6 makes the Glitch Tick stay in the same spot in game. when the F1 menu bar is open. At least on Windows
2024-01-15 09:24:57 -06:00
Amaro Martínez bfe2f58feb Custom message loading (#3713)
* Add custom text message loading

* Use "override" folder for text mods

* Replace only existing messages

* Use std::find_if to check for existing messages
2024-01-15 09:24:08 -06:00
Josh Bodner 01529126ba Imgui polish (#3481)
* Rearrange menus for better layout on smaller screens.

* Automatically calculate +/- increments for float sliders

* Add needed header

* Use stringstream instead of format since apparently most platforms don't actually support all of c++20 yet boooooo

* Add header that only Mac complained about for some reason

* Theoretical performance improvement

* Actual performance improvement
2024-01-15 09:22:56 -06:00
Pepe20129 22b9284240 Rando: Shuffle Swim (Rando V3) (#3795)
* Shuffle Swim

* Fix build
2024-01-15 09:20:57 -06:00
Pepe20129 ab3e9a7e54 Rando: Shuffle Child's Wallet (Rando V3) (#3794)
* Shuffle Child's Wallet

* Add support for "More info in file select"

* Fix build

* Fix build

* Update randomizer.cpp

* Update locacc_hyrule_field.cpp
2024-01-14 14:55:03 -05:00
Pepe20129 080038c39e Rando: Shuffle Beehives (Rando V3) (#3763)
* Shuffle Beehives

* Address review

* Fix build
2024-01-14 12:16:32 -06:00
Jordan Gilbreath 4cbf3a5621 Fishsanity - Rando v3 (#3738)
* Update z_fishing documentation from decomp

* undo sCameraAt/Eye rename

* forgot to include these defines Heehee

* adding enums, settings

* adding more stuff back in

* more work

* we're literally typing words into computer

* include unordered map

maybe this fixes mac build idk

* wahoo

* hmm

* add make sure disabled flag gets popped

* poggers in the chat?

* doing some refactoring

* fixing build

* documentation, moving fishsanity instance to rando

* move FS back to context, fixing build, mod progress

since FS is needed during rando generation & provides perpetual info abt. fishsanity in the seed, seems to make more sense if it lives on the context

* moving some stuff around

* it's starting to get real in here

* ELIMINATE FISHSANITYMETA

* IT WROKS

* Update trackers, fix pond fish flagging

* ZD fish shuffle initial checkpoint

* ZD fish "working"

aside from the crashing

* wrapping up

* fix for partial pond shuffle

* remove misc. unrelated debugconsole modification

* updating GI model

* get build working

* add a todo for this

* removeoopsie

* Rework hints a bit

* update hint loc

* Use visual indicator instead of despawning caught fish

---------

Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
2024-01-14 11:02:23 -06:00
Pepper0ni eb5f7688f8 Add more static hints (#3543)
* WIP biggoron and big poes hint

* commit v0 of biggoron and big poes hints

* adjust for settings update

* Add more hints

* Finish extra Basic Static Hints

* remove vestigial code

* Forgot to remove this

* try to fix windows build

* fix build post conflcit res

* remove StaticHintData as redundent

* last cleanup
2024-01-10 09:44:11 -06:00
Christopher Leggett a196dd6b7e Streamline hint generation (#3401)
* reimplement 3drando's hashtag color replacement system.

Also generates merchant text at seed gen time instead of runtime.
By merchants, I mean Bean Salesman, Medigoron, Granny, and Wasteland
Bombchu guy. Scrubs and shops are still dynamic at runtime.

* Improved auto-formatting and fixed altar text.

* Gets hint text for spoiler direct from context.

* Removal of now unused code.

* Change warp song hint generation/retrieval

Generates full warp location text instead of just location names and stores all six in the custom message tables for later retrieval as opposed to dynamically swapping in the location names every time the text is rendered.

* Change Frog Ocarina Game Hint generation/retrieval

Similar to previous changes, removes the on-the-fly generation aspect of it and just generates the full hint text once during seed generation.

* Update soh/soh/Enhancements/randomizer/3drando/text.hpp

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

* Fix submodules appearing as changed files.

* Fix WOTH/Foolish colors to match develop-macready.

* Fixes backwards colors for area and item in some hints.

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2024-01-08 14:41:33 -05:00
Amaro Martínez 21796367a0 Use temporary mirror for Boost download URL (#3822) 2024-01-08 12:39:49 -06:00
Eric Hoey a0258f0fca Add Invert Y-Axis and Apply Right-Stick Aiming to Z-Weapon Aiming (#3304)
* Add right-stick aiming to third-person aim

* Add Z-aiming CVar and inversion to Z-aiming

* Create calculation for rel.right_stick and apply it in Z-aiming

* Move option to First-Person section to match shield

* Fix max/min aiming heights

* Expand min/max + comment

* block out vanilla + comments

* block vanilla code better

* Remove extra space

* new documentation formatting

* rewrite ==0 and !=0
2024-01-08 12:21:18 -06:00
Malkierian 467ee7ad12 Logic class (#3812)
* Convert `Rando::Logic` to a class.

* Readd `LogicReset` as `Logic::Reset` for resetting logic mid-generation-cycle to allow seed generation to actually work.

* Change `IsChild` and `IsAdult` to `CanBe` variants.

* Make it buildable.

* First LogicVar class.

* Revert CanBe changes to Is (adult & child) as I'm no longer sure that it's a good one.

* Update soh/soh/OTRGlobals.cpp

Use existing gRandoContext reference.

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

* Conflict resolution cleanup (plus removing SaveContext references).

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2024-01-08 08:39:15 -06:00
Christopher Leggett b96df0b642 Fixes parsing of spoiler files in plando mode. (#3823)
It was specifically failing on Hints because of changes to the spoiler output that were not reflected in the parsing code.
2024-01-08 08:37:24 -06:00
Christopher Leggett 63413e8159 Explicitly clears the entire ItemLocations array. (#3820) 2024-01-08 08:37:10 -06:00
Christopher Leggett 1669393277 Fixes a regression in creating settings string. (#3813) 2024-01-06 12:52:03 -06:00
Pepper0ni 80e6e899a8 Fix other hints not getting reset (#3811) 2024-01-06 11:08:06 -05:00
Christopher Leggett 8b8f11d72e Consolidation of Trick Settings data (#3798)
* Adds TrickOption subclass and fills in extra info.

Fills in the extra info from randomizer_tricks.cpp that other Options don't have (hence the subclass for Tricks specifically).

* Uses new definitions of tricks in ImGui menu.

* Removes randomizer_tricks.cpp/h

* Adds new tricks.cpp/h to hold some static data and functions.

* Refactors Tricks namespace into a class with only static memebers and functions.

* Fixes bug with Trick Tag system.
2024-01-06 11:07:19 -05:00
inspectredc 321c258d69 Fix Fire Temple Boss Door Logic (#3774)
* Fix Fire Temple Boss Door Logic

* Update soh/soh/Enhancements/randomizer/3drando/location_access/locacc_fire_temple.cpp

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>

---------

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
2024-01-05 20:55:09 -05:00
Malkierian 02938cfba2 Fix Starting Triforce Piece Count (#3797)
* Move zeroing of triforcePiecesCollected to the beginning of `Randomizer_InitSaveFile()` to fix starting TFP count issues.
2024-01-05 20:53:18 -05:00
Garrett Cox 37b2fc0745 Make noclip only effect player (#3788) 2024-01-05 20:51:48 -05:00
Amaro Martínez 6cb3a830bd Restore previous Boost download URL (#3809)
This reverts commit 96abadd904.
2024-01-05 18:41:09 -05:00
Pepper0ni 4d2ca29940 Quickfix skip trials setting (#3800)
* quickfix skip trials setting

* Change to set trial count to 0 when skipping
2024-01-05 15:19:23 -05:00
briaguya 9064897736 fix compatibility nightly.link in README.md (#3768) 2024-01-04 20:24:08 -05:00
Pepper0ni 7e2a13e7d8 Quickfix giants knife counting as a kokiri sword (#3802) 2024-01-04 15:49:10 -05:00
Garrett Cox 7e1f72e17d Merge pull request #3785 from Malkierian/dev-merge
develop -> develop-rando 20240102
2024-01-03 06:09:47 +00:00
Malkierian d2ec346d0e Merge branch 'develop' of github.com:Malkierian/Shipwright into dev-merge 2024-01-02 17:28:23 -07:00
Christopher Leggett 96353c0b3b Fixes Pre-Clearing of Ganon's Trials. (#3783) 2024-01-02 17:19:56 -05:00
Pepper0ni 46abda83d2 probably fix glaring hint issues (#3752) 2024-01-02 16:23:33 -05:00
Pepe20129 1699eea009 Remove special IAs (#3453)
* Remove special IAs

* Add clarifying comment
2024-01-02 00:29:47 -05:00
Jordan Gilbreath 944a4c2e46 Fix settings persistence across sessions (#3779)
Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
2024-01-01 19:20:34 -06:00
Garrett Cox 03d907b843 Merge pull request #3778 from HarbourMasters/develop-macready
macready -> develop
2024-01-01 16:23:58 +00:00
Amaro Martínez 96abadd904 Update Boost download URL (#3776) 2023-12-31 16:06:47 -05:00
Malkierian fa8a0e2a76 [Rando] Fix Check Tracker Area Totals (#3758)
* Fix the calculation of `areaChecksGotten` to account for flags functionality setting invisible checks.
Change `areaChecksTotal` to dynamic calculation based on tracker visibility, now that all checks are being added to `checksByArea`.
Both are updated in realtime when either "Show all GS locations" or "Hide right side shop items" are toggled.
Reformat all remaining unencapsulated if statements.

* Changed helper variable change and call to `RecalculateAreaTotals()` to when the options are toggled instead of checking every frame.
Removed redundant if...else.
Clarified areaChecksGotten increment/decrement functionality based on current status and incoming status change.

* Removed unused code.
2023-12-31 13:58:31 -05:00
Christopher Leggett c9907ed5fc Allows rendering custom models as Ice Traps in GetItem Animations. (#3760) 2023-12-30 12:10:50 -05:00
Christopher Leggett dbb1e60734 Fixes some Spoiler Parsing Bugs (#3759)
* Fixes bug causing dropped spoiler not to be parsed.

* Fixes bugs with parsing enabled tricks

* Fixes bugs with parsing excluded locations.

* Fixes bugs parsing the Bombchu Drops setting
2023-12-30 12:10:31 -05:00
Christopher Leggett 8cb06d2d5d Fixes some "seed bleed" instances (#3766)
* Should fix seed bleed between multiple saves and loaded spoilers by resetting the Rando::Context before loading a save.

* Only reset for rando saves.
2023-12-30 12:09:46 -05:00
Christopher Leggett 75f9775ad8 Merge pull request #3769 from HarbourMasters/develop
develop->develop-rando 20231229
2023-12-29 18:25:16 -05:00
shinra-electric b7342a7847 [macOS] Add Architecture Priority to Info.plist (#3727)
* Add Architecture Priority to  Info.plist

This allows the app bundle to be launched natively on Arm without the need for Rosetta.

* Remove arch shenanigans in soh-macos.sh.in

Shouldn't be necessary now...

* Add back launching the binary in soh-macos.sh.in

Accidentally removed launching the binary from the script.
2023-12-29 18:02:22 -05:00
Jérémy Lugand a08943edc8 Fix typos in scenes_fra.json (#3732)
* Update scenes_fra.json
2023-12-29 18:00:06 -05:00
Sarge-117 bedb0a1768 Add LLR entrance from silo to the better debug warp screen (#3424)
* Add silo exit

* Back Tower
2023-12-29 17:57:31 -05:00
Pepe20129 807b00a058 Fix crashing when creating a new file (#3764) 2023-12-29 13:36:56 -05:00
Garrett Cox 6c88d33b19 Merge pull request #3756 from HarbourMasters/develop
develop -> develop-rando
2023-12-28 20:12:39 +00:00
Pepe20129 c860f7a73a Rando: Shuffle Ocarina Buttons (Rando V3) (#3735)
* Shuffle Ocarina Buttons

* Address review

* Add trick names

* Temporarily remove the ocarina button ice trap models

* Update soh/soh/Enhancements/randomizer/3drando/location_access/locacc_death_mountain.cpp

Fix lost closing brackets from merge resolution.

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
2023-12-28 14:19:23 -05:00
Garrett Cox 2495f45124 Merge pull request #3751 from garrettjoecox/develop-rando-develop
develop->develop-rando
2023-12-28 17:19:39 +00:00
Patrick12115 81ec2805ee scaling (#3393) 2023-12-28 12:04:30 -05:00
Patrick12115 b80452b2b8 Multiplier (#3395) 2023-12-28 12:04:20 -05:00
Garrett Cox f6a6b880c9 Only emit changed flags (#3489) 2023-12-28 08:23:03 -06:00
PurpleHato 1fff15753a ADD: Enhancement-->Graphics-->Colour Temple of Time's Medallions (#3514)
* First dirty testing process

* Forgot a 2 for the second Dlist patching of Shadow

* TWEAK: GI integration

* DEL: Unucessary includes + whitespace

* TWEAK: No stones refactor for now, sorry I'm kinda lazy right now, don't hate me, please! T_T

* Stone removal part 2, sometime I forget to save the changes :derp:

* Tiny last tweaks, hopefully

* Add to rando preset

* Tweak: typo

* TWEAK: Trigger on toggling on/off

* TWEAK: adressed reviews 💯

* Please mate, excuse my British typing
2023-12-27 23:46:00 -05:00
pirate486743186 3f61fbc5f6 use SHIP_BIN_DIR instead of HERE (#3469) 2023-12-27 13:37:11 -05:00
Pepe20129 dc4347253d Item cycling improvements (#3456)
* Simplify item cycling

* Simplify selection variables

* Fix adult bunny hood and gray appropriate items

* Don't go into cycling mode when there's no items to cycle to

* Restore updating c buttons

This was previously done with `Inventory_ReplaceItem` but that led to problems when another slot had the same item as the one that's being cycled.

* Address review
2023-12-27 12:55:09 -05:00
mattman107 9b74dc2892 Update linux/appimage script to use symlinked rom files (#3483)
* Update soh.sh.in

Added support for symlinked rom files in linux/appimage script.

* Update scripts/linux/appimage/soh.sh.in

Updated to be less confusing as per Archez

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>

---------

Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
2023-12-27 12:51:36 -05:00
Garrett Cox a6bb6cf0a3 Hardcore mode v1 (#3540) 2023-12-27 12:50:56 -05:00
Pepe20129 e8096a2d94 Better actor viewer (#3544)
* Update actorViewer.cpp

* Add more actors

* Add a search function

* Update actorViewer.cpp

* Add advanced mode for params
2023-12-26 19:09:04 -05:00
Garrett Cox 70e1017923 Add frame advance option to developer tools (#3435) 2023-12-26 19:08:37 -05:00
Adam Bird 6a7bcc4a5e add more commands to dl viewer (#3504) 2023-12-26 17:13:48 -05:00
briaguya 99194a75f1 docs: update func_800FADF8 to Audio_ResetActiveSequences (#3471) 2023-12-26 13:30:49 -05:00
Garrett Cox 1979d78788 Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/Shipwright into develop-rando-develop 2023-12-26 10:33:48 -06:00
Pepper0ni e731380e28 Fix various randomiser setting bugs (#3742)
* Fix various randomiser setting bugs

* Fix shuffle entrences metasetting getting locked on per savefile after an entrance rando seed is generated once
2023-12-26 08:58:19 -06:00
Christopher Leggett f74ba3c1da develop-rando: File Select Fixes (#3734)
* Fixes pressing B on name entry after randomizer quest.

* Reverts to auto parsing previous spoiler file.

Also includes an option to press L to automatically gen a fresh seed. It still does regenerate the old spoiler to regen the hints in the user's current language, but it will now automatically do this instead of requiring dragging and dropping the spoiler every time.

* Fixes bug causing rando settings to come from CVars instead of a spoiler file when a spoiler is dropped/imported on boot.

* Pressing Generate Randomizer in ImGui doesn't use loaded spoilerfile.

* Adds tooltip to Generate Randomizer ImGui Button.
2023-12-26 08:57:59 -06:00
briaguya 776c3a51ee stick sensitivity (#3725) 2023-12-23 18:48:06 -05:00
briaguya 0a59ce6d99 upgrade to docking imgui 1.90.0 (#3402)
https://github.com/ocornut/imgui/commit/ce0d0ac8298ce164b5d862577e8b087d92f6e90e
2023-12-23 18:12:52 -05:00
Tina H. (sheepytina) e0930809d4 Advanced controls for aspect ratio, resolution, and integer scaling. (#3130)
* Advanced Resolution Settings

first working version with most features implemented

* Update advancedResolutionEditor.cpp

Added auto-resizing logic for Pixel Perfect Mode.
Minor fixes.

* Tweaks and tidying up.

Disable integer scale slider if automatic sizing is overriding it.
Don't offer these UI options on Apple.
Removed unused code.
Updated LUS.

* Update libultraship

* Filenames and style fixes

Filenames and folders now more closely match rest of project.
Tidied newlines/comments.
(SohMenuBar.cpp) Label of button changed to fit menu.
(ResolutionEditor.cpp) Default window size improved.

* Update libultraship

(However, I still need to make the GUI controls acknowledge the new constraints.)

* Update libultraship

(and changed the name of some cvars)

* Added constraints to the inputs. Added a fps drop warning.

* Tweaks based on feedback

* Update libultraship

* Enabled on Apple - For currently ongoing Retina DPI troubleshooting.

(Also removed the duplicated N64 Mode toggle.)

* Update libultraship

* Update LUS, update CVar names, small tweaks

And one significant fix: Enhancement checkboxes in ResolutionEditor now default to off.

* Add Additional Settings and the accursed horizontal resolution field.

There's still a few bugs with it that I haven't squashed, but I need to stop for now and just commit what I've got.

(This is honestly causing more problems than it solves, but i'm tired of getting questions about it.)

* Resolved many of the lingering bugs with the previous commit

* Horizontal Resolution field now properly acknowledges resolution bounds.

* Don't show "Horiz. pixel count" field if not enforcing aspect ratio.

Additionally:
* Don't change settings if selecting "Custom" from preset dropdowns.
* Added a missing horizontal pixel count clamp check.
* Tidied up redundant behaviour.

* Additional comments, and a checkbox to disable aspect correction on consoles.

* Change how frame rate threshold is calculated.

* More minor UI tweaks.

* Added missing CVarSave() calls where needed.

Added a short update countdown for the numerical CVars. This is intended to prevent CVarSave() from being called too often.

* Added a helpful button to cover a potential support issue.

* "Fit Automatically" has been moved to LUS and is now smarter.

This will require another PR in LUS to be opened by me.

* Swap to new branch for libultraship

* Even more clever integer scaling behavior.

"IntegerScale" is itself now a CVar group.

* Tidy up comments.

* Fix a typo that prevented `IsDroppingFrames()` from working

(Maybe more than a mere typo, but a typo was involved.)

* Remove unused and unnecessary variables.

* Group "Integer Scaling" under its own collapsing header

* Changed label for the Enabled advanced settings checkbox.

* Update libultraship + Formatting pass on ResolutionEditor.cpp

* Add `(Select "Off" to disable.)` help text for the aspect ratio setting and hide UI elements accordingly.

Only show the fields if user chooses Custom.
Padding has been shifted accordingly too.

Also fixed a long standing error with the Y field disappearing when modifying X.

* Well I suppose that's no-longer necessary.

* Update libultraship with commits from main branch (up to e5df3a9)

* Tweak comments.

* Save current ImGui Combo items as a console variable

to improve user experience.

* Change language of NeverExceedBounds checkbox description

to be more affirmative, so it makes more sense.

Add tooltip for NeverExceedBounds checkbox.
Tweak some comments related to additional settings.

* Add list of colours to use with TextColored elements.

* Move some UI elements around.

Add an extra MSAA slider to the editor window.

* Integer Scaling header is DefaultOpen if player has Pixel Perfect Mode active upon window creation.

+ Amend tooltips.

* Fix a minor oversight with default configuration.

Fixes an issue where default aspect ratio settings on a fresh SoH configuration weren't matching the defaults assigned in libultraship.
The default values are now 16:9, matching LUS.
Additionally, the combo box now defaults specifically to the 16:9 preset instead of "Custom".

(Fixing the defaults in LUS to be 4:3 isn't worth a LUS bump, so this slight workaround will do for the sake of this PR.)

* Make resolution slider `disabled` condition a variable, for readability.

* Small tweak to combo item saving

* Use `SCREEN_HEIGHT` and `SCREEN_WIDTH` for constraints

* Simplify "Show a horizontal resolution field" logic

by using pixel dimensions as the aspect ratio directly, since now this view hides the aspect ratio setting from the user anyway.

* Correct aspect ratio visualiser to be un-inverted

+ actually display it as a ratio.

* Remove update flags from combo boxes + remove update countdown

+ remove non-functioning 'IsBoolArrayTrue' function.

(The countdown was an okay idea but I didn't implement it correctly. It's better to just keep it simple.)

* Code review suggestion: disable UI elements conditionally

 (+ tweaks to code style)

* Invisible tweaks to the Integer Scaling-related Additional Settings

This looks like a lot but it's mostly just re-arranging a cluttered area of the code for clarity.
Actual changes to functionality are:
* Help text now "disabled" along with the checkbox.
* The NeverExceedBounds checkbox will now reset the unused ExceedBoundsBy cvar if it's been changed.

* Assorted small tweaks to comments and variable declarations.

* Code review suggestion: tweak "Window exceeded" warning condition

* Missed a thingy.
2023-12-23 16:19:41 -05:00
Christopher Leggett 7f961abd8d Fixes missing options and some incorrect disabling logic (#3545) 2023-12-20 16:51:48 -05:00
Garrett Cox 2cb3a3664e Implement gMoveWhileFirstPerson 2023-12-20 20:26:07 +00:00
Garrett Cox 66c41a8012 Clean up func_8084ABD8 2023-12-20 20:26:07 +00:00
Adam Bird 1d7ad52222 fix remote control define when flag not set in windows (#3534) 2023-12-19 00:55:32 -05:00
Christopher Leggett bb4fb22188 Fixes error noise when seed generation fails (#3527) 2023-12-18 17:31:29 -05:00
Christopher Leggett 4978c3b34f Fix some bugs with settings (#3525)
* Fixes off by one errors for a few settings.

* Removes disable of shuffle options when starting with corresponding items.

* Junks checks when shuffle is off and start with is on.
2023-12-18 17:31:17 -05:00
briaguya 9b947615bc Merge pull request #3539 from Archez/merge-echo-develop
Merge (8.0.4) develop-macready -> develop
2023-12-17 21:56:11 -08:00
Adam Bird 03da69d7b7 Merge tag '8.0.4' into HEAD
MacReady Echo
2023-12-18 00:34:59 -05:00
Garrett Cox 60faf3f750 Bump version to MacReady Echo 8.0.4 (#3537) 2023-12-17 22:47:39 -06:00
Garrett Cox ef910a02f7 Remove use of static variable in en_box (#3536) 2023-12-17 21:47:02 -06:00
inspectredc f607afc754 Add player state dead check to Player_UseTunicBoots (#3530)
* Add player state dead check to Player_UseTunicBoots

* Update soh/src/overlays/actors/ovl_player_actor/z_player.c

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2023-12-17 21:46:35 -06:00
inspectredc 865bcc57a7 Fix Logical Error With Darunias Door Entrance (#3529) 2023-12-17 21:20:09 -06:00
Garrett Cox b5caf33a9b Initialize GameInteractor before SaveManager so it can correctly set up a hook (#3535) 2023-12-17 21:19:30 -06:00
Jordan Gilbreath 36e030e339 Reorder pop for #3532 (#3533)
* add make sure disabled flag gets popped

* reordering : ]

* what?

---------

Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
2023-12-17 21:13:35 -06:00
Jordan Gilbreath d99cd52eea add make sure disabled flag gets popped (#3532)
Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
2023-12-17 18:02:47 -06:00
Adam Bird f655ab592d Re-implement Pause menu Dungeon map texture effects (#3496)
* first pass implement dungeon maps

* wrap up map dungeon implementation

* add comments and enums, rename vars

* bump lus
2023-12-17 15:42:34 -05:00
Garrett Cox 86044a1c50 Remote GI Work (#3073)
Co-authored-by: David Chavez <david@dcvz.io>
2023-12-17 13:41:33 -06:00
briaguya e6fc34e4c2 bump lus to latest 1.x (#3528) 2023-12-17 13:36:38 -05:00
Adam Bird d370ca93fd [Tweak] Improve KD lava effect performance and stability (#3501)
* improve kd lava performance and stability

* enum typo

* account for rock tex size
2023-12-17 13:23:07 -05:00
Adam Bird a6b4e0b7fd Fix entrance tracker crash (#3502) 2023-12-17 11:06:01 -05:00
Garrett Cox fcf2141266 Fix JSON parsing every frame on file select (#3513)
* Fix JSON parsing every frame on file select

* string (#73)

---------

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2023-12-16 21:40:09 -05:00
Adam Bird e2f1cebfb5 fix condition causing enemies to always be small (#3512) 2023-12-16 20:56:36 -05:00
Adam Bird 907b770676 more swordless fixes when time traveling (#3510) 2023-12-16 20:56:14 -05:00
Adam Bird ea49196bae retain gameplay stats window size (#3508) 2023-12-16 20:52:36 -05:00
Adam Bird f65b711376 fix led crash when set to health (#3507) 2023-12-16 20:52:07 -05:00
Adam Bird 269e9faa46 change adult shooting gallery reward and add message (#3506) 2023-12-16 20:51:44 -05:00
Malkierian 35301556d9 Added "Always show gold skulltula" to check tracker options. Toggleable without restart. (#3505)
Made "Hide right-side shop checks" toggleable without restart.
2023-12-16 20:51:25 -05:00
Adam Bird fb0f7169d7 fix jabu mq minimap mark points (#3494) 2023-12-16 20:50:32 -05:00
Malkierian 9740ccc59b Fix Gravedigging Tour rando check. (#3524) 2023-12-14 17:12:43 -05:00
Christopher Leggett 3e0fc5efa5 Merge pull request #3509 from leggettc18/merge-develop
develop->develop-rando
2023-12-14 13:39:34 -05:00
Christopher Leggett 674645ef14 Fixes some miscellaneous issues for Switch builds. 2023-12-12 18:51:26 -05:00
Christopher Leggett c7c29034eb Fixes crash from attempted nullptr access. 2023-12-11 12:19:57 -05:00
Christopher Leggett bc49998e55 Reimplements ImGui Disable of options with Vanilla logic selected. 2023-12-10 21:25:59 -05:00
Christopher Leggett 2ef978c792 Fixes some build errors resulting from merge. 2023-12-10 14:00:31 -05:00
Christopher Leggett d58968d196 Merge branch 'develop' into merge-develop
# Conflicts:
#	soh/soh/Enhancements/custom-message/CustomMessageTypes.h
#	soh/soh/Enhancements/debugger/debugSaveEditor.h
#	soh/soh/Enhancements/item-tables/ItemTableTypes.h
#	soh/soh/Enhancements/mods.cpp
#	soh/soh/Enhancements/randomizer/3drando/entrance.cpp
#	soh/soh/Enhancements/randomizer/3drando/item_location.cpp
#	soh/soh/Enhancements/randomizer/3drando/keys.hpp
#	soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp
#	soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ganons_castle.cpp
#	soh/soh/Enhancements/randomizer/3drando/location_access/locacc_gerudo_training_grounds.cpp
#	soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ice_cavern.cpp
#	soh/soh/Enhancements/randomizer/3drando/menu.cpp
#	soh/soh/Enhancements/randomizer/3drando/playthrough.cpp
#	soh/soh/Enhancements/randomizer/3drando/settings.cpp
#	soh/soh/Enhancements/randomizer/3drando/settings.hpp
#	soh/soh/Enhancements/randomizer/randomizer.cpp
#	soh/soh/Enhancements/randomizer/randomizerTypes.h
#	soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp
#	soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp
#	soh/soh/Enhancements/randomizer/randomizer_entrance.c
#	soh/soh/OTRGlobals.cpp
#	soh/src/code/z_sram.c
#	soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c
2023-12-10 12:49:15 -05:00
Christopher Leggett dad4ae0095 Rando settings streamline and auto render (#3391)
* Removes cvarSettings map.

Options now link with CVar names directly. So instead of passing the
cvarSettings map, the Option class can check a corresponding CVar
if a cvarName was provided during construction. Of note, it does not
automatically sync the Option selected index with the CVar value, as
we would not want this to happen in all cases, for example when dragging
a spoiler file, we don't want to overwrite all the CVars with the Options
from the spoiler file. Currently all Options are set to the value of the CVar
they are linked to right before generating a new seed, unless a spoiler file
has been dropped in which case those settings are used instead.

* Early version of ImGui Render function

Currently only the slider variant. Will allow for auto rendering of options
in ImGui, with tooltips and automatic display of the values in each Option's
options array while keeping the CVars at the selected index, preventing
Off By One Errors.

* Implementation of Checkbox and Combobox rendering.

Currently only in use for a couple of items, future commit will implement for all
options.

* Auto-render entire first tab of Randomizer Settings

* Switch remaining tabs to auto-render

* Implements disabling options

* Cleanup/Documentation

* Auto-render entire table columns

* Implement OptionGroup rendering for "Sections"

* Automates the rendering of tables in the Settings window.

With the exception of the Locations and Tricks tabs, those are special
and will need a lot more work.

* Adds ability for option groups to have descriptions,

These descriptions will automatically display as tooltips in ImGui,
if the widget container type accounts for it.

* Fix as many IDE warnings as possible in option.h/cpp

Trying out CLion Nova, and it highlighted some things I decided to fix, some from CLion itself and some from CLang-Tidy. Oddly, it didn't like a conversion from size_t to int whether I left it implicit or added a static_cast, so I guess that warning is staying.

* Fixes some simple bugs

* fix another small oopsie

* Fixes parsing some of the option changes

Specifically we went from storing the actual value in the CVar to storing an index, meaning sliders that started with 1 now have the index offset by 1. This is currently only Big Poe Count, Triforce Hunt total/required, and starting hearts. Everything else either already started at 0, or in the case of LACS/Bridge counts, we were starting the sliders at 1 but they would have always worked at 0 according to the 3drando logic.

* Fix bug with status of skip child stealth

* Renames the Settings::Setting function to GetOption

* Add `Settings` pointer as a member of `RandomizerSettingsWindow`.

* Replaces ctx->GetOption with direct access to mOptions

This is equivalent, the access through ctx in this case was completely unnecessary and a muscle-memory mistake on my part.

* Implements a few IDE/Linter suggestions
2023-12-10 11:20:47 -05:00
Pepper0ni 4925abdd67 Fill in textId List (#3499) 2023-12-09 21:55:59 -05:00
Christopher Leggett 65d893bc85 Fix a seed gen bug surrounding new area enum (#3497)
* Fix a seed gen bug surrounding new area enum

* Sets areas after shuffling entrances.
2023-12-08 13:07:27 -05:00
Pepper0ni c5790d9284 Move Barren handling to before hint generation, Add RandomizerArea enum and other cleanups (#3339)
* Initial wothCandidates change, pushed early foreseeing conflicts

* Implement better barren handling, waiting on #3205

* pls save next time VS code

* Finish implementation of barren and randomizer area refactor

* Apply function changes to develop merge

* Fix double default decleration issue

* change some var types for uniformity

* Fix post merge differences to the point of building and generating randos

* Address reviews

* address more reviews
2023-12-07 18:11:44 -05:00
Christopher Leggett 1cc3201c19 Develop rando tidy up (#3425)
* Fixes some IDE warnings/linter-suggestions in context.*

Most of these come from CLion Nova. Some of these may be controversial, such as the if-init-statement related ones. Most of them should not be controversial though, like replacing C-style casts with static casts.

* Fixes IDE warnings/Linter suggestions in option.*

* Fixes some IDE warnings/linter suggestions.

Left a few about "Template Arguments can be deduced", and a "Redundant static_cast" for the sake of clarity.

* Fixes some IDE warnings/linter suggestions in item.*

* Fixes some IDE warnings/linter suggestions in location.*

* Fixes some IDE warnings/linter suggestions in item_location.*

* Fixes some IDE warnings/linter suggestions in item_override.*

* Fixes some IDE warnings/linter suggestions in dungeon.*

* Fixes some IDE warnings/linter suggestions in trial.*

* Use std::ranges::generate rather than manually looping.

* Fixes a typo

* Changes a TODO comment with more info.

Previously this TODO statement was a question of whether or not we ever want to not output a spoiler log. Eventually we may want different amounts or types of data to be output when generating a seed according to certain settings. For instance, maybe we want a human-readable spoiler log, that has item locations and hint content without the formatting info. Maybe we want a "Plandomizer File", which is that but the hint strings include formatting info so that the formatting/colors can be changed, and eventually we may want to let cosmetic info be specified in there as well. Or maybe we just want a Race/Patch file that just has the seed and settings, for Race files we could also specify non-rando settings that should be locked to certain values. Or maybe want one of each. All of that is stuff that should at least start being handled at the location of this TODO statement.

* Fixes a scope issue Windows didn't catch

* Removes std::ranges::generate as apparently AppleClang can't do it.

* Removes std::ranges::any_of as apparently AppleClang can't do it.

* Re-adds what I thought was an unused include.

* An attempt to fix the macos construct_at error
2023-12-05 19:03:36 -05:00
Garrett Cox 2d22a3ebcc Add vanilla logic option (#2191) 2023-12-04 11:29:48 -06:00
Garrett Cox a8c18882f0 Merge pull request #3487 from HarbourMasters/develop-macready
develop-macready -> develop
2023-12-04 14:31:58 +00:00
aMannus 6297df98e9 Fix GBK check for vanilla (#3473) 2023-12-04 08:22:35 -06:00
Garrett Cox 365afe7833 Add tableId to getItemEntry (#3064) 2023-12-04 07:52:39 -06:00
Adam Bird fbc397a131 Tweak skeleton limbs to use OTR path strings for loading DList and improve Alt toggling (#3479)
* set otr string paths for DList on skeleton limbs

* delay toggling alt assets cvar to end of frame
2023-12-04 07:33:14 -06:00
Garrett Cox 1fea642f33 Fix OnItemReceive hook for items in the extendedVanillaGetItem table (#3063) 2023-12-04 07:26:55 -06:00
aMannus 19cede44c3 Merge pull request #3468 from briaguya-ai/delta-to-dev
MacReady Delta -> develop
2023-11-30 00:07:38 +01:00
briaguya b39e6ec5af bump to latest lus main 2023-11-29 02:27:19 -05:00
briaguya 351f896cfa Merge branch 'develop' into delta-to-dev 2023-11-29 02:16:54 -05:00
briaguya 818addfdda delta bump (#3465) 2023-11-29 01:32:15 -05:00
Malkierian f14c390364 [Vanilla Fix] Slow Down Darunia's Dance (#3438)
* Fix Darunia's dancing animation speed (static for now; needs toggle later).

* Moved previous code to toggleable fix in enhancements. Tweaked speed factors, partially successful.
2023-11-29 00:38:48 -05:00
Adam Bird dd5e72a023 limit entrance discovered saving to end of operation (#3459) 2023-11-29 00:29:25 -05:00
rozlette d523b104d8 Change declaration of Morpha tentacle verts to combine them all and avoid overlaps that result in dropped verts 2023-11-28 21:09:34 -08:00
Garrett Cox fdcd9a7508 Race Integrity QoL (#3445)
* Add gDisableChangingSettings

* Add support for dropping a config file to overwrite CVars
2023-11-28 23:42:37 -05:00
Malkierian c4f34624ba Flag tracker (#3447)
* Hook into flagset hooks for processing check tracking. Has some manual workarounds (some breaks still need to be found).
Remove areaChecks and looping functionality as redundant.

* Additional vanilla handling.

* Fix tracker not showing MQ checks in MQ non-rando.
Fix tracker marking non-MQ variants of dungeon checks (e.g. map chest, etc) when collecting in MQ.

* Set all areas to spoiled if not rando.

* Revert attempt to spoil in randomizer based on MQ dungeon count as I don't know how that works at the moment.

* Restore and update spoiling based on MQ dungeon settings (none, selection, or count of 12).
Fix Anju As Adult check.

* Remove Anchor-specific code :baguette:

* Use `ClearAreaTotals()` in `Teardown()` instead of the duplicate code there.

* Update to `ClearAreaChecksAndTotals()` with `vec.clear()` added.

* Fix type spoiling again. Now spoils on 0 MQ dungeons, not rando, if the option is enabled in check tracker settings, selection, or set number of 12.
Fix vanilla checks being marked collected in MQ dungeons.

* Fix 100 GS check.

* ACTUALLY fix 100 GS: change flag type to `RandomizerInf()` in `item_location.cpp`, add RC to RandoInf for it to the table. Also don't send GI for flag if father, falsely triggers ZR frogs minigame.

* Fix gravedigging tour tracking.

* Fix membership card check tracking.
Change scene and flag values to any existing enums.
Clarifying formatting for the checking loop vOrMQ conditions.

* Fix Gravedigging Tour tracking.
Simplify Always Win Gravedigging Tour and Fix Gravedigging Tour Glitch applications.
Modified all necessary paths to use vanilla GDT PoH collection flag instead of randomizer variant.

* Fix Kak Potion Shop being "seen" when entering as child.
2023-11-28 21:25:48 -05:00
Adam Bird 33fe8776bb Fix bugs dont despawn cheat to work with soil patches (#3457) 2023-11-29 02:02:45 +01:00
briaguya 02256fac66 bump LUS to 1.4.0 (#3461) 2023-11-29 01:37:54 +01:00
briaguya 621afc99f0 sort patch otrs (#3430) 2023-11-29 01:34:00 +01:00
inspectredc 9d215b6dce Separate Arrows Equip Dupe Fix (#3450)
* add gseparatearrow check for equip dupe fix

* update gseparatearrows tooltip
2023-11-28 22:13:00 +01:00
aMannus 420bdab328 Random Enemy Sizes fixes (#3452) 2023-11-28 14:30:36 -05:00
Adam Bird 717074ff86 Fix: Missing TextIDs for MQ PAL and change lava size (#3449)
* Fix text offset for MQ pal and add text ID asserts

* correct lava texture size
2023-11-28 20:11:03 +01:00
Malkierian 3ab16b70c2 Changed all checks for !gPlayState to !GameInteractor::IsSaveLoaded() in mods.cpp for all the cheats, and added the same full check to others that really didn't need to be running outside of a game (like infinite rupees, magic, health, etc), and clear any triggering CVars. (#3441)
Changed `RegisterSwitchAge()` to clear the CVar instead of setting it to 0.
2023-11-27 23:00:25 +01:00
Pepe20129 5b81964ea5 Bring over some player documentation from decomp (#3380)
* Document static variables

* Document enums and structs

* Document some functions

* Document more functions

* actionParam to itemAction and fix build

* Document some local variables and a define

* General cleanup

* Use PlayerMeleeWeaponAnimation enum when appropiate

* Document some function parameters and local variables

* Document some of player struct
2023-11-26 11:54:54 -05:00
Malkierian 3cf9d655a7 Disable Fix Vine Fall when Climb Everything is enabled (#3439)
* Disable Fix Vine Fall when Climb Everything is enabled.

* Remove option disabling.
2023-11-26 11:34:54 -05:00
Garrett Cox d0d1d9c487 Merge pull request #3312 from quellen-sol/develop
Add Geo rupee name (Hollow Knight)
2023-11-24 12:27:49 -06:00
Garrett Cox 360b6b88be Merge pull request #3310 from Pepper0ni/NoSwimAnim
Port Faster Swim animations, full credit to kimimaru4000
2023-11-24 12:27:32 -06:00
Garrett Cox 1e4784af8f Merge pull request #3302 from inspectredc/toggle-strength
Toggle Strength Option
2023-11-24 12:26:34 -06:00
Garrett Cox bdc6fad0a9 Merge pull request #3208 from garrettjoecox/valueViewer
MVP ValueViewer
2023-11-24 12:25:39 -06:00
inspectredc 95f27ace2e Fix kokiri sword unequipping when using switch age cheat/enhancements (#3415)
* test fix for ks unequip

* remove unnecessary brackets
2023-11-24 09:40:42 -05:00
Salt d50ad4779d Fix #3417 Symlinks to Directories in Mods Dir Aren't Traversed (#3418) 2023-11-24 09:40:30 -05:00
Adam Bird f2df029efa fix: skybox crash for mask shop (#3427) 2023-11-24 09:38:45 -05:00
Garrett Cox bdb201201e Fix audio cutoff issues (#3428) 2023-11-24 09:38:13 -05:00
Adam Bird f4e4545180 Re-implement King Dodongo's Lava texture effects (#3434)
* fix alt backgrounds not always loading

* include gfx lookup with the original unload

* Add hook for alt toggle

* handle cpu modified texture for kd lava

* malloc array instead of illegal initialize
2023-11-23 09:07:30 -05:00
Garrett Cox c3ae829370 Add enhancement for removing explosive limit (#3242) 2023-11-20 13:25:22 -05:00
briaguya 76e90c0928 Controllers (#3378)
* lay some groundwork

* use custom window (which is currently identical to the LUS window)

* start making it shippy

* start moving stuff out of gamecontroleditor

* clean up shouldrumble

* include the other way

* wii u

* latest lus main

* notch snap angle buttons

* buttons on all the sliders

* just use a hidden id

* handle debug for port 2 and rename tabs so everything fits

* button line buttons look better

* padding fixed

* clang format

* bump to latest LUS main

* big buttons

* just default the analog stick options to open for now

* fix wii u build

* bonus: make it all scale-aware

* clang format

* fix horizontal scrolling

* fix all +/- buttons

* keyboard set defaults

* axis threshold helper text

* bonus: test rumble button

* clang format

* fix otrexporter submodule

* bump to latest lus main
2023-11-20 08:02:15 -05:00
Garrett Cox 3b5497cee3 Merge pull request #3408 from leggettc18/develop-rando-bugfix
Fixes a potential crash with saves made on older commit.
2023-11-19 20:13:18 -06:00
Garrett Cox 21caecab84 Merge pull request #3300 from stratomaster64/soulcalibur
Rando: Boss Soul Shuffle
2023-11-19 20:09:54 -06:00
aMannus 34556e40d6 Clean up Triforce Hunt U16's and GBK (#3355)
* Clean up Triforce Hunt U16's and GBK

* Apply suggestions from code review
2023-11-19 14:45:09 -05:00
inspectredc 80ef399c52 Entrance Docs (#3332)
* transition variables renamed

* transition circle

* transition wipe

* sand storm

* remaining sceneloadflag rename

* transition trigger macros

* transition mode enum

* transition type enum

* tc set params

* creg debug transitions

* introduce entrance table + return entrance indices + entrance info macros

* randomizer entrance pass through

* cleanup some missing scene enums

* randomizer entrance tracker pass through

* randomizer grotto pass through

* gSaveContext.entranceIndex

* misc lists

* z_select pass through

* respawn entrance index

* nextEntranceIndex

* add missing include
2023-11-19 14:29:56 -05:00
briaguya 8dbf738128 macready (charlie) -> dev 2023-11-19 05:52:26 -08:00
inspectredc 2b1327c41a Transition docs (#3322)
* transition variables renamed

* transition circle

* transition wipe

* sand storm

* remaining sceneloadflag rename

* transition trigger macros

* transition mode enum

* transition type enum

* tc set params

* creg debug transitions
2023-11-19 02:38:07 -05:00
briaguya a8e387b949 cache vcpkg on windows ci (#3384) 2023-11-18 21:11:44 -05:00
Ralphie Morell ae715bdc15 put boss souls back on the menu 2023-11-17 16:35:37 -05:00
Ralphie Morell aa00765997 Merge remote-tracking branch 'upstream/develop-rando' into soulcalibur 2023-11-16 22:51:16 -05:00
Christopher Leggett 4f9ce252e7 Fixes a potential crash with saves made on older commit.
I had an Off By One Bug in a previous commit, and saves made on that commit ended up crashing on boot due to attempting to access a negative index of an array. Added a bounds check to prevent attempting to load that data.
2023-11-16 15:48:32 -05:00
briaguya 0ddb0711ad Version bump to MacReady Charlie (#3406) 2023-11-15 23:22:09 -05:00
briaguya 3234256b03 bump lus (#3405) 2023-11-15 22:45:09 -05:00
inspectredc d8a7a6c764 Use Correct Player Boot Enums in CC (#3403) 2023-11-15 20:38:21 -05:00
Garrett Cox 2075213544 Merge pull request #3399 from HarbourMasters/develop-macready
macready -> dev
2023-11-14 22:24:48 -06:00
PurpleHato dd6271ecae ADD: No HUD Heart animation (#3348)
* ADD: No HUD Heart Animation

I've seen this requested multiple times for modding purposes for the case of using "lifebars" instead of hearts

* TWEAK: Move it under the the mods

* REM: Whitespace

* REM: Whitespace2

* Tweak: Cvar Oppsie
2023-11-13 18:13:46 -05:00
Christopher Leggett 2698d453bb More gap-bridging (#3323)
* Initial StaticData and RandoItem class definitions

* Initial implementation of RandoItem class.

* Rerranges RandoItem Constructor parameters

The parameters were rearranged for easy copy-paste from the GET_ITEM macro calls later on.

* Switches static data from map to static array.

Array is all that is needed, since the item list will be contiguous and indexed by the RandomizerGet Enum values.

* Defines part of the randomizer item list.

* Adds more item class instances to item_list.cpp

Up through bottles, many more items still to go.

* Adds song items

* Adds Maps and Compasses to the item_list

* Added Key Items to item_list

* Added Key Rings to item_list

* Added Dungeon Rewards to item_list

* Adds generic items and refills to item_list

* Adds shop items, triforce, and hints

Also added constructors that put the GET_ITEM_NONE data in for these items, since there is no corresponding GetItemEntry for them.

* Adds in the stages of progressive items

These are present for GetItemEntry purposes, and aren't really meant to be used in seed generation (unless we find a need for it later on.)

* Remove GetItemEntry data from progressive items

* Moves/adds function definitions to item/item_list

* Refactors GetItemEntry data

It's now a pointer to memory instantiated on the heap in the constructor. These are shared pointers so the memory is freed if any of the item instances get deconstructed (which they shouldn't but just in case.)

* Adds item class member for if item is progressive

* Removes unneeded stuff from initializer list macro

* Replaces relevant `uint32_t`s w/ `RandomizerGet`s

Also replaces calls to the ItemTable method with StaticData::RetrieveItem

* Switches our runtime code to use the new itemList.

* Changes just enough hint gen code to compile

* Initial Definition of Location Class

* Initial Implementation of Location

* Fixes some names and definitions.

* Extracts ActorID and SceneID enums to separate files.

This allows importing them without causing weird conflicts in cpp files when importing the z64scene.h and z64actor.h files directly. Now you can just import z64scene_enum.h and z64actor_enum.h instead. The two old files also import these new files so that existing setups still work as expected.

* Replaces the forward definitions with the new imports.

* Adds missing data for RandomizerCheckObjects.

* Definition and first entry of locationTable

* Added Mido's House Locations

* Added locations up through lost woods.

* Adds in Hyrule Field locations.

* Adds Lake Hylia locations

* Adds location name comments

* Adds Gerudo Valley Locations

* Adds Gerudo Fortress locations.

* Adds the Wasteland and Collosus locations

* Adds Market locations

* Adds Hyrule Castle locations.

* Adds Kakariko and Graveyard locations.

* Adds Death Mountain checks.

* Adds Goron City locations

* Adds Death Mountain Crater locations

* Adds Zora's River locations

* Added Zora's Domain Locations.

* Added Zora's Fountain locations

* Adds Lon Lon Ranch locations.

* Adds Deku Tree locations

* Adds Dodongo's Cavern Locations.

* Adds Jabu Jabu's Belly Locations

* Adds Forest Temple Locations

* Adds Fire Temple Locations

* Adds Water Temple Locations

* Added Spirit Temple Locations

* Some of shadow temple locations.

* Adds remaining Shadow Temple locations

* Fixes a leftover merge conflict

* Adds Bottom of the Well locations.

* Adds Ice Cavern locations

* Adds GTG locations.

* Adds Ganon's Castle and Tower locations

* Adds dungeon Gold Skulltula locations.

* Adds Overworld Gold Skulltula locations

* Adds dungeon reward locations

* Adds Heart Container Locations

* Adds Cutscene and Song locations

* Adds Cow locations

* Adds Shop locations.

* Adds hint locations

* Adds function for retrieving the Location data.

* Initial definition of ItemLocation structure for tracking runtime data

* First push on converting code to use new location definitions

* Changes hints to use the new tables

* Further conversion of hints to new definitions.

* Adds new Hint and Location IDs to area tables

* Moves areaTable to use new RandomizerRegion keys

* Removal of 3drando/item_location files.

* Uses new RandomizerRegion keys in entrance.cpp

* Final push for removal of massive keys.hpp enum

* Uses new SceneID Enum Values

* Remove RandomizerCheckObject structs in favor of new location list.

* Fix a few stragglers to successfully build

* Rename of RandoItem to just Item, but in the Rando namespace

* Adds static hints (Light Arrows, Altar text, etc) to the new Hint table.

* More hint related fixes/edits

* small fix for #include path

* Fix various miscellaneous issues related to seed gen and spoiler parsing.

* Handle progressive items correctly.

* Fixes some hint generation logic

* Fix a few GetItemEntry niche bugs.

* Adds missing shop GI Entries

* Formatting fixes

* small formatting fix

* Namespace StaticData under Rando

* Added a note about a potential use-after-free.

I confirmed the actual pointer in question isn't currently being used, but I added the note as a reminder to fix it later and/or as a warning to anyone who changes how the return value is used.

* Fixes missing location table entries

* Fixes LUS submodule and removes now-unused code

* Resolves weird duplicate definition issue

* Fix missing include

It was missed because not being included wasn't an issue on Windows.

* Fixes error present on Linux builds

* Fixes some issues with excluding locations

* Updates the Resolve Exclusion conflicts function

not sure if actually used, will look into that more later

* Removes some duplicate RGs

* More fixes of duplicate RG values.

* Fix a few duplication issues in the check tracker.

* Fix progressive bombchus.

* Minor typo fix, shouldn't really be affecting anything though

* Should fix some of the remaining check tracker issues.

* oops wrong boolean operator

* Fix skulltulas in the check tracker.

* oops, missing comma

* re-formatting of HintStone locations

* Fixes issue when picking up second Progressive Bullet Bag

* Hide bombchu bowling bombchus

* Fixes missed skullScene in location_list

* Reformats shop items

* Re-formats cow checks

* reformat song locations

* reformat "cutscene" checks

* reformat heart container locaitons

* reformat Boss/Dungeon reward checks

* Hide Triforce Completed if not playing Triforce Hunt

* Fixes incorrect chest param

* reformat GS Tokens locations and cuts down on duplicate data

* reformat Ganons Castle checks

* reformat GTG check locations

* Prevents Gift from Raoru from appearing in the check tracker

* more reformatting (botw, ice cavern, shadow temple)

* Should fix a couple more check tracker checks

* reformat spirit temple checks

* reformat water and fire temple checks

* fix RC_ZR_GS_ABOVE_BRIDGE flag typo

* reformat Forest Temple checks

* Fix RC_LW_TRADE_ODD_POTION in check tracker

* reformat child dungeon locations

* reformat overworld locations

* reformat item entries

* New Item Override system

* use new ItemOverrides and use ItemLocations table for getting items

* Saves/Loads directly from/to new ItemLocation table with overrides for traps

* Removes gSaveContext.itemLocations

* Don't load spoiler file on boot automatically.

Currently this means the old spoiler will have to be manually dropped or a new one generated in order to make a new rando file. Next I want to make it so that:
1. The Randomizer Quest button on the file select menu is always unlocked, even if a spoiler is not loaded.
2. If it's selected and a spoiler is not loaded, a menu will appear that asks if you want to generate a new seed or re-generate the previous one (if a spoiler file is present).
3. On choosing to generate a new one, you may also get an in-game menu to quickly apply a preset before generating (not sure if I'm going that far just yet).
4. After that, a seed is generated and you are taken back to the file select screen with the new file present.
5. If a seed is generated via the menu ahead of time, the CVar for loading the spoiler file will be set, but the spoiler file will not be parsed. All the data needed to actually play the randomizer at that point is
already in memory and in the save file (or at least I'll make it so that it is if it isn't already).
6. If a spoiler file is dropped over the window, the spoiler file is loaded, but it will only be parsed to get the seed and the settings, then the playthrough will be generated from scratch with that data. Thus allowing
for hints to be in the user's language of choice no matter what language the spoiler file was generated in.
7. Additionally, there will be a plandomizer mode that, if enabled, causes dragging and dropping a spoiler file to read the entire spoiler file instead of just the seed, and making a new file will use the data from there
instead of generating a new seed. This in particular may be expanded to have a "plando file" that contains more info than a spoiler file would normally have, such as cosmetic data and a more fleshed out
custom message syntax for various types of custom hints and whatnot. But that will be probably much later.

* Auto-gen rando seed when making a new rando file.

Also adds new logic for displaying the seed hash icons. Now, it is displayed in the following situations:
1. On the confirmation page when loading a rando save, the hash icons for *that save* are displayed.
2. On the name select screen after generating a seed, the hash icons for the seed that was just generated will be shown.
3. If you have dragged a spoiler log onto the window, the hash icons for that seed will be displayed while randomizer is selected on the quest select screen.
Currently the spoiler is just ignored, as the logic for pulling the settings from the spoiler file and regenerating the same seed has not been coded yet.

* Fix a few typos/bugs

* Partial conversion to new Settings/Option class

* Further conversion to new settings/options classes

* New settings struct (not fully working, need to wire it up to SaveManager)

* Move save files to new settings struct. Also fixes MQ options to match 3drando

* Fixes some spoilerfile related issues

* Cleans up now unused arrays

* Fixes some unhandled entries in parse settings switch case

* Reimplements parsing of settings on file drop to re-generate seeds

* Move merchantPrices into ItemLocation tables.

* Move hints to new struct

* Fixes a few seed gen bugs surrounding hints

* Fix treasure chest game.

* Relocate Entrance Shuffle code into ctx

* Move entrances to new context at runtime

* Remove now unused code from SaveContext and randomizer.cpp/.h

* Fix non-windows builds?

* Moves Dungeon Quests to new context

* Move trials into new context

* Whoops, forgot to construct the Trials in the context.

* Fixes accidental nullptr reference

* Fixes bug with saving MQ dungeons

* Implements plando mode and removes now unused code.

Largely untested, expect some bugfixes.

* prevent a multiple definition bug

* another attempt to fix the gSeedTextures multiple def error

* Fixes some minor hint issues from conflict resolution

* Some additional glue needed for merge

* Fixes another couple of miscellaneous issues/inconsistencies.

* A few french corrections

* Makes CVar gRandomizeWarpSongText match the checkbox default value.
2023-11-13 13:25:37 -05:00
Ralphie Morell e90dc91767 gee bill how come you had TWO master swords? 2023-11-05 13:52:19 -05:00
Ralphie Morell 05ba7874ae does this work? 2023-11-05 13:42:31 -05:00
Ralphie Morell 5de2e731c8 move boss soul assets 2023-11-05 13:33:28 -05:00
Ralphie Morell 4ff7e54426 clean out old OTRExporter 2023-11-05 13:24:07 -05:00
Ralphie Morell f7b8e8ed65 Merge remote-tracking branch 'upstream/develop-rando' into soulcalibur 2023-11-05 13:18:43 -05:00
Ralphie Morell 8ad79a7855 horseshit 2023-11-05 12:50:41 -05:00
Garrett Cox 20bb36c164 Merge pull request #3352 from Archez/mergeDevelopIntoRando4
Merge develop into develop-rando
2023-11-05 07:43:24 -06:00
Adam Bird 129f410aba Merge remote-tracking branch 'origin/develop' into 'origin/develop-rando' 2023-11-04 00:13:14 -04:00
Pepper0ni 051314e8b1 Refactor Hint Creation and add support for hint Copies and fixed number of hints. (#3205)
* Initial implementation of no-duplicates of special hints

* stupid fixes

* Impa's song will no longer be hinted when you skip child zelda

* fix building

* Fix Loading spoiler logs causing corrupt hints, remove disabled warp song shuffle text from spoiler logs

* Remove Sheik and Saria hints from the spoiler log when are not enabled

* Prevent Magic hinted by Saria and Light Arrows hinted by Sheik from being hinted elsewhere unless they are locked by that item.

* Prevent the Final Frogs gossip stone hint from spawning when the special final frogs hint is enabled.

* Fix building after rebasing in deduplication

* redelete keys.hpp

* Remove Sheik and Saria hints from the spoiler log when are not enabled

* Prevent the Final Frogs gossip stone hint from spawning when the special final frogs hint is enabled.

* First part of copies implementation

* Refactor hint system (broken)

* fix building

* fix obvious errors

* fix fixed hints doubling after failing to place a hint

* Fix bugs with hint distrabution

* Split PlaceRandomHint and fix hint bugs

* Merge special hint functions, move special hint text to the HintTable, expand LightArrow hint category into OtherHint category.

* Fix remaining hint distribution errors

* Forgot to stage dampe diary update

* Restore building after conflict resolution

* fix SetAllInRegionAsHinted
2023-11-02 11:42:33 -05:00
Ralphie Morell 4006c10bda don't kill ganon if no ganon boss soul setting;
save editor support
2023-11-01 22:15:03 -04:00
Ralphie Morell 58aab05e41 cleanup hook 2023-10-31 23:54:05 -04:00
Ralphie Morell b34471030c refine boss soul model (thanks sitton76!) 2023-10-31 20:31:27 -04:00
Ralphie Morell e1706e2aa1 test model v1 2023-10-30 21:50:00 -04:00
Ralphie Morell 0a5722d3ef Fix map/compass hints not showing V/MQ status 2023-10-30 17:44:21 -04:00
Ralphie Morell 279af81ead Implement custom draw for souls;
change souls from tokens to blue fire
2023-10-30 01:13:26 -04:00
Ralphie Morell 9b49d73814 playtest feedback; cleanup 2023-10-29 21:48:57 -04:00
Ralphie Morell be37cabaa9 pls build on mac 2023-10-28 01:20:13 -04:00
Ralphie Morell 2e50fbb0d2 Rework boss soul helper 2023-10-27 00:48:36 -04:00
inspectredc 2cbbaba9cc draw a button 2023-10-26 18:41:45 +01:00
Pepper0ni 15ebcd30fb Remove disabled special hints and warp song hints from the spoiler log (#3110)
* Initial implementation of no-duplicates of special hints

* stupid fixes

* fix always hints being suppressed by special hints

* Impa's song will no longer be hinted when you skip child zelda

* fix building

* Remove disabled special hints from the spoiler log

* Fix Loading spoiler logs causing corrupt hints, remove disabled warp song shuffle text from spoiler logs

* Fix not detecting text size correctly and badly named greg hint

* Remove disabled special hints from the spoiler log

* Fix Loading spoiler logs causing corrupt hints, remove disabled warp song shuffle text from spoiler logs

* Remove Sheik and Saria hints from the spoiler log when are not enabled

* Prevent Magic hinted by Saria and Light Arrows hinted by Sheik from being hinted elsewhere unless they are locked by that item.

* Prevent the Final Frogs gossip stone hint from spawning when the special final frogs hint is enabled.

* Fix building after rebasing in deduplication

* redelete keys.hpp
2023-10-22 10:11:36 -05:00
Christopher Leggett 2a52493d1f 100GS Tracker Fix (#3314)
* Fix 100 GS check in check tracker

* Add missing rcToRandomizerInf entry for 100 GS tokens
2023-10-21 00:43:25 +00:00
quellen-sol f56e839480 Add Geo rupee name (Hollow Knight) 2023-10-20 15:40:28 -07:00
Christopher Leggett 4d7fb88e2e Fix 100 GS check in check tracker (#3311) 2023-10-20 19:37:59 +00:00
Pepper0ni b294188782 Faster Swim animations, full credit to kimimaru4000
Co-authored-by: kimimaru4000 <kimimaru@posteo.net>
2023-10-20 12:35:05 +01:00
Ralphie Morell 9d8eab4511 add souls back to item list 2023-10-20 00:16:21 -04:00
Ralphie Morell f41bbeab06 actually get it running 2023-10-19 23:14:51 -04:00
Ralphie Morell 4d31463044 merge pt 2 2023-10-19 21:21:00 -04:00
Ralphie Morell ce94c047b5 Merge remote-tracking branch 'upstream/develop-rando' into soulcalibur 2023-10-19 21:20:43 -04:00
Christopher Leggett 92028aa8d8 Rando Definition Deduplication (#3284)
* Initial StaticData and RandoItem class definitions

* Initial implementation of RandoItem class.

* Rerranges RandoItem Constructor parameters

The parameters were rearranged for easy copy-paste from the GET_ITEM macro calls later on.

* Switches static data from map to static array.

Array is all that is needed, since the item list will be contiguous and indexed by the RandomizerGet Enum values.

* Defines part of the randomizer item list.

* Adds more item class instances to item_list.cpp

Up through bottles, many more items still to go.

* Adds song items

* Adds Maps and Compasses to the item_list

* Added Key Items to item_list

* Added Key Rings to item_list

* Added Dungeon Rewards to item_list

* Adds generic items and refills to item_list

* Adds shop items, triforce, and hints

Also added constructors that put the GET_ITEM_NONE data in for these items, since there is no corresponding GetItemEntry for them.

* Adds in the stages of progressive items

These are present for GetItemEntry purposes, and aren't really meant to be used in seed generation (unless we find a need for it later on.)

* Remove GetItemEntry data from progressive items

* Moves/adds function definitions to item/item_list

* Refactors GetItemEntry data

It's now a pointer to memory instantiated on the heap in the constructor. These are shared pointers so the memory is freed if any of the item instances get deconstructed (which they shouldn't but just in case.)

* Adds item class member for if item is progressive

* Removes unneeded stuff from initializer list macro

* Replaces relevant `uint32_t`s w/ `RandomizerGet`s

Also replaces calls to the ItemTable method with StaticData::RetrieveItem

* Switches our runtime code to use the new itemList.

* Changes just enough hint gen code to compile

* Initial Definition of Location Class

* Initial Implementation of Location

* Fixes some names and definitions.

* Extracts ActorID and SceneID enums to separate files.

This allows importing them without causing weird conflicts in cpp files when importing the z64scene.h and z64actor.h files directly. Now you can just import z64scene_enum.h and z64actor_enum.h instead. The two old files also import these new files so that existing setups still work as expected.

* Replaces the forward definitions with the new imports.

* Adds missing data for RandomizerCheckObjects.

* Definition and first entry of locationTable

* Added Mido's House Locations

* Added locations up through lost woods.

* Adds in Hyrule Field locations.

* Adds Lake Hylia locations

* Adds location name comments

* Adds Gerudo Valley Locations

* Adds Gerudo Fortress locations.

* Adds the Wasteland and Collosus locations

* Adds Market locations

* Adds Hyrule Castle locations.

* Adds Kakariko and Graveyard locations.

* Adds Death Mountain checks.

* Adds Goron City locations

* Adds Death Mountain Crater locations

* Adds Zora's River locations

* Added Zora's Domain Locations.

* Added Zora's Fountain locations

* Adds Lon Lon Ranch locations.

* Adds Deku Tree locations

* Adds Dodongo's Cavern Locations.

* Adds Jabu Jabu's Belly Locations

* Adds Forest Temple Locations

* Adds Fire Temple Locations

* Adds Water Temple Locations

* Added Spirit Temple Locations

* Some of shadow temple locations.

* Adds remaining Shadow Temple locations

* Fixes a leftover merge conflict

* Adds Bottom of the Well locations.

* Adds Ice Cavern locations

* Adds GTG locations.

* Adds Ganon's Castle and Tower locations

* Adds dungeon Gold Skulltula locations.

* Adds Overworld Gold Skulltula locations

* Adds dungeon reward locations

* Adds Heart Container Locations

* Adds Cutscene and Song locations

* Adds Cow locations

* Adds Shop locations.

* Adds hint locations

* Adds function for retrieving the Location data.

* Initial definition of ItemLocation structure for tracking runtime data

* First push on converting code to use new location definitions

* Changes hints to use the new tables

* Further conversion of hints to new definitions.

* Adds new Hint and Location IDs to area tables

* Moves areaTable to use new RandomizerRegion keys

* Removal of 3drando/item_location files.

* Uses new RandomizerRegion keys in entrance.cpp

* Final push for removal of massive keys.hpp enum

* Uses new SceneID Enum Values

* Remove RandomizerCheckObject structs in favor of new location list.

* Fix a few stragglers to successfully build

* Rename of RandoItem to just Item, but in the Rando namespace

* Adds static hints (Light Arrows, Altar text, etc) to the new Hint table.

* More hint related fixes/edits

* small fix for #include path

* Fix various miscellaneous issues related to seed gen and spoiler parsing.

* Handle progressive items correctly.

* Fixes some hint generation logic

* Fix a few GetItemEntry niche bugs.

* Adds missing shop GI Entries

* Formatting fixes

* small formatting fix

* Namespace StaticData under Rando

* Added a note about a potential use-after-free.

I confirmed the actual pointer in question isn't currently being used, but I added the note as a reminder to fix it later and/or as a warning to anyone who changes how the return value is used.

* Fixes missing location table entries

* Fixes LUS submodule and removes now-unused code

* Resolves weird duplicate definition issue

* Fix missing include

It was missed because not being included wasn't an issue on Windows.

* Fixes error present on Linux builds

* Fixes some issues with excluding locations

* Updates the Resolve Exclusion conflicts function

not sure if actually used, will look into that more later

* Removes some duplicate RGs

* More fixes of duplicate RG values.

* Fix a few duplication issues in the check tracker.

* Fix progressive bombchus.

* Minor typo fix, shouldn't really be affecting anything though

* Should fix some of the remaining check tracker issues.

* oops wrong boolean operator

* Fix skulltulas in the check tracker.

* oops, missing comma

* re-formatting of HintStone locations

* Fixes issue when picking up second Progressive Bullet Bag

* Hide bombchu bowling bombchus

* Fixes missed skullScene in location_list

* Reformats shop items

* Re-formats cow checks

* reformat song locations

* reformat "cutscene" checks

* reformat heart container locaitons

* reformat Boss/Dungeon reward checks

* Hide Triforce Completed if not playing Triforce Hunt

* Fixes incorrect chest param

* reformat GS Tokens locations and cuts down on duplicate data

* reformat Ganons Castle checks

* reformat GTG check locations

* Prevents Gift from Raoru from appearing in the check tracker

* more reformatting (botw, ice cavern, shadow temple)

* Should fix a couple more check tracker checks

* reformat spirit temple checks

* reformat water and fire temple checks

* fix RC_ZR_GS_ABOVE_BRIDGE flag typo

* reformat Forest Temple checks

* Fix RC_LW_TRADE_ODD_POTION in check tracker

* reformat child dungeon locations

* reformat overworld locations

* reformat item entries
2023-10-19 18:48:25 -05:00
Ralphie Morell e005985559 Added tracker support 2023-10-19 17:17:45 -04:00
Ralphie Morell 0751c59530 also remove phantom ganon's horses if he's not there 2023-10-19 00:23:05 -04:00
Ralphie Morell db4a30a7ff don't commit at fucking 2am 2023-10-18 23:58:14 -04:00
Ralphie Morell 51e965cf7e Cleaned up soul helpers; added check for ganon soul 2023-10-18 20:58:09 -04:00
inspectredc 38d70dd12f update tooltip to mention glitch use 2023-10-18 23:04:55 +01:00
inspectredc 1b2a31e34b Add success sound for toggle and equipping delay 2023-10-18 22:11:04 +01:00
inspectredc 9950c02fb2 Strength name un-greyed out and apply zoom regardless of strength disabled 2023-10-18 21:39:04 +01:00
inspectredc c22d1e724d No longer grey out bracelet as adult when toggle option is on and strength enabled 2023-10-18 21:29:00 +01:00
inspectredc 03ea465251 Toggle Strength 2023-10-18 21:21:50 +01:00
Ralphie Morell 582771ab48 insert witty commit message here 2023-10-18 01:30:49 -04:00
Garrett Cox f30e76e7b1 MVP ValueViewer 2023-10-17 08:54:52 -05:00
Garrett Cox 8357c2aa1b Merge pull request #3294 from HarbourMasters/develop
develop -> develop-rando (10/16/23) 2: Electric Boogaloo
2023-10-16 09:22:39 -05:00
1730 changed files with 139434 additions and 69398 deletions
+1 -1
View File
@@ -1 +1 @@
libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev ninja-build
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build
+125 -157
View File
@@ -7,102 +7,117 @@ concurrency:
cancel-in-progress: true
jobs:
generate-soh-otr:
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
uses: hendrikmuhs/ccache-action@v1.2.14
with:
key: ${{ runner.os }}-soh-otr-ccache
key: ${{ runner.os }}-otr-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-otr-ccache-${{ github.ref }}
${{ runner.os }}-otr-ccache-
- name: Install dependencies
if: ${{ !vars.LINUX_RUNNER }}
run: |
sudo apt-get update
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
- name: Cache build folders
uses: actions/cache@v4
with:
key: ${{ runner.os }}-otr-build-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-otr-build-${{ github.ref }}
${{ runner.os }}-otr-build-
path: |
build-cmake
SDL2-2.28.5
- name: Install latest SDL
if: ${{ !vars.LINUX_RUNNER }}
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz
tar -xzf SDL2-2.26.1.tar.gz
cd SDL2-2.26.1
./configure
if [ ! -d "SDL2-2.28.5" ]; then
wget https://www.libsdl.org/release/SDL2-2.28.5.tar.gz
tar -xzf SDL2-2.28.5.tar.gz
fi
cd SDL2-2.28.5
./configure --enable-hidapi-libusb
make -j 10
sudo make install
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
- name: Install latest SDL_net
if: ${{ !vars.LINUX_RUNNER }}
- name: Install latest tinyxml2
run: |
sudo apt-get remove libtinyxml2-dev
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz
tar -xzf SDL2_net-2.2.0.tar.gz
cd SDL2_net-2.2.0
./configure
make -j 10
if [ ! -d "tinyxml2-10.0.0" ]; then
wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz
tar -xzf 10.0.0.tar.gz
fi
cd tinyxml2-10.0.0
mkdir build
cd build
cmake ..
make
sudo make install
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
- name: Generate soh.otr
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
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: soh.otr
path: soh.otr
retention-days: 1
build-macos:
needs: generate-soh-otr
runs-on: ${{ (vars.MAC_RUNNER && fromJSON(vars.MAC_RUNNER)) || 'macos-12' }}
runs-on: macos-14
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
uses: hendrikmuhs/ccache-action@v1.2.14
with:
key: ${{ runner.os }}-ccache
create-symlink: true
key: ${{ runner.os }}-14-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-14-ccache-${{ github.ref }}
${{ runner.os }}-14-ccache-
- name: Install gtar wrapper
if: ${{ !vars.MAC_RUNNER }}
run: |
sudo mv /usr/local/bin/gtar /usr/local/bin/gtar.orig
sudo cp .github/workflows//gtar /usr/local/bin/gtar
sudo chmod +x /usr/local/bin/gtar
sudo mv /opt/homebrew/bin/gtar /opt/homebrew/bin/gtar.orig
sudo cp .github/workflows//gtar /opt/homebrew/bin/gtar
sudo chmod +x /opt/homebrew/bin/gtar
- name: Cache MacPorts
id: cache-macports
if: ${{ !vars.MAC_RUNNER }}
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: /opt/local/
key: ${{ runner.os }}-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}
key: ${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}
restore-keys: |
${{ runner.os }}-macports-
${{ runner.os }}-14-macports-
- name: Install MacPorts (if necessary)
if: ${{ !vars.MAC_RUNNER }}
run: |
if [ -d /opt/local/ ]; then
echo "MacPorts already installed"
else
wget https://github.com/macports/macports-base/releases/download/v2.7.2/MacPorts-2.7.2-12-Monterey.pkg
sudo installer -pkg ./MacPorts-2.7.2-12-Monterey.pkg -target /
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 /
fi
echo "/opt/local/bin:/opt/local/sbin" >> $GITHUB_PATH
- name: Install dependencies
if: ${{ !vars.MAC_RUNNER }}
run: |
brew uninstall --ignore-dependencies libpng
sudo port install $(cat .github/workflows/macports-deps.txt)
brew install ninja
- name: Download soh.otr
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: soh.otr
- name: Build SoH
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 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DBUILD_REMOTE_CONTROL=1
cmake --build build-cmake --config Release --parallel 10
mv soh.otr build-cmake/soh
(cd build-cmake && cpack)
@@ -110,7 +125,7 @@ jobs:
mv _packages/*.dmg SoH.dmg
mv README.md readme.txt
- name: Upload build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: soh-mac
path: |
@@ -118,156 +133,93 @@ jobs:
readme.txt
build-linux:
needs: generate-soh-otr
strategy:
fail-fast: true
matrix:
include:
- os: ubuntu-20.04
gcc: 10
archive-suffix: compatibility
- os: ubuntu-22.04
gcc: 12
archive-suffix: performance
runs-on: ${{ (matrix.os == 'ubuntu-20.04' && ((vars.LINUX_COMPATIBILITY_RUNNER && fromJSON(vars.LINUX_COMPATIBILITY_RUNNER)) || matrix.os)) || (matrix.os == 'ubuntu-22.04' && ((vars.LINUX_PERFORMANCE_RUNNER && fromJSON(vars.LINUX_PERFORMANCE_RUNNER)) || matrix.os)) }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true
- name: Install dependencies
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
run: |
sudo apt-get update
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
uses: hendrikmuhs/ccache-action@v1.2.14
with:
key: ${{ matrix.os }}-ccache
key: linux-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
linux-ccache-${{ github.ref }}
linux-ccache-
- name: Cache build folders
uses: actions/cache@v4
with:
key: linux-build-${{ github.ref }}-${{ github.sha }}
restore-keys: |
linux-build-${{ github.ref }}
linux-build-
path: |
SDL2-2.28.5
SDL2_net-2.2.0
- name: Install latest SDL
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz
tar -xzf SDL2-2.26.1.tar.gz
cd SDL2-2.26.1
./configure
if [ ! -d "SDL2-2.28.5" ]; then
wget https://www.libsdl.org/release/SDL2-2.28.5.tar.gz
tar -xzf SDL2-2.28.5.tar.gz
fi
cd SDL2-2.28.5
./configure --enable-hidapi-libusb
make -j 10
sudo make install
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
- name: Install latest tinyxml2
run: |
sudo apt-get remove libtinyxml2-dev
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "tinyxml2-10.0.0" ]; then
wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz
tar -xzf 10.0.0.tar.gz
fi
cd tinyxml2-10.0.0
mkdir build
cd build
cmake ..
make
sudo make install
- name: Install latest SDL_net
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz
tar -xzf SDL2_net-2.2.0.tar.gz
if [ ! -d "SDL2_net-2.2.0" ]; then
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz
tar -xzf SDL2_net-2.2.0.tar.gz
fi
cd SDL2_net-2.2.0
./configure
make -j 10
sudo make install
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
- name: Download soh.otr
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: soh.otr
- name: Build SoH
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 --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_REMOTE_CONTROL=1
cmake --build build-cmake --config Release -j3
(cd build-cmake && cpack -G External)
mv README.md readme.txt
mv build-cmake/*.appimage soh.appimage
env:
CC: gcc-${{ matrix.gcc }}
CXX: g++-${{ matrix.gcc }}
CC: gcc-12
CXX: g++-12
- name: Upload build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: soh-linux-${{ matrix.archive-suffix }}
name: soh-linux
path: |
soh.appimage
readme.txt
build-switch:
needs: generate-soh-otr
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
container:
image: devkitpro/devkita64:latest
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y ninja-build
- name: Fix dubious ownership error
if: ${{ vars.LINUX_RUNNER }}
run: git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
submodules: true
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-switch-ccache
- name: Build SoH
run: |
cmake -H. -Bbuild-switch -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache
cmake --build build-switch --target soh_nro -j3
mv build-switch/soh/*.nro soh.nro
mv README.md readme.txt
- name: Download soh.otr
uses: actions/download-artifact@v3
with:
name: soh.otr
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: soh-switch
path: |
soh.nro
soh.otr
readme.txt
build-wiiu:
needs: generate-soh-otr
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
container:
image: devkitpro/devkitppc:20230110
steps:
- name: Install dependencies
if: ${{ !vars.LINUX_RUNNER }}
run: |
sudo apt-get update
sudo apt-get install -y ninja-build
- uses: actions/checkout@v3
with:
submodules: true
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-wiiu-ccache
- name: Build SoH
run: |
cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache
cmake --build build-wiiu --target soh_wuhb --config Release -j3
mv build-wiiu/soh/*.rpx soh.rpx
mv build-wiiu/soh/*.wuhb soh.wuhb
mv README.md readme.txt
env:
DEVKITPRO: /opt/devkitpro
DEVKITPPC: /opt/devkitpro/devkitPPC
- name: Download soh.otr
uses: actions/download-artifact@v3
with:
name: soh.otr
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: soh-wiiu
path: |
soh.rpx
soh.wuhb
soh.otr
readme.txt
build-windows:
needs: generate-soh-otr
runs-on: ${{ (vars.WINDOWS_RUNNER && fromJSON(vars.WINDOWS_RUNNER)) || 'windows-latest' }}
@@ -277,20 +229,36 @@ jobs:
run: |
choco install ninja
Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true
- name: ccache
uses: dcvz/ccache-action@27b9f33213c0079872f064f6b6ba0233dfa16ba2
uses: hendrikmuhs/ccache-action@v1.2.14
with:
key: ${{ runner.os }}-ccache
- uses: ilammy/msvc-dev-cmd@v1
variant: sccache
max-size: "1G"
key: ${{ runner.os }}-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-${{ github.ref }}
${{ runner.os }}-ccache-
- name: Cache build folder
uses: actions/cache@v4
with:
key: ${{ runner.os }}-build-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-build-${{ github.ref }}
${{ runner.os }}-build-
path: |
build-windows
vcpkg
- name: Configure Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Build SoH
env:
VCPKG_ROOT: D:/a/vcpkg
VCPKG_ROOT: ${{github.workspace}}/vcpkg
run: |
set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH"
cmake -S . -B build-windows -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
cmake -S . -B build-windows -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DBUILD_REMOTE_CONTROL=1
cmake --build build-windows --config Release --parallel 10
mkdir soh-windows
@@ -303,12 +271,12 @@ jobs:
mv ./build-windows/gamecontrollerdb.txt ./soh-windows/gamecontrollerdb.txt
mv ./x64/Release/assets ./soh-windows
- name: Download soh.otr
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: soh.otr
path: soh-windows
- name: Upload build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: soh-windows
path: soh-windows
+1 -1
View File
@@ -1,2 +1,2 @@
#!/bin/sh
exec sudo /usr/local/bin/gtar.orig "$@"
exec sudo /opt/homebrew/bin/gtar.orig "$@"
+1 -1
View File
@@ -1 +1 @@
libsdl2 +universal libpng +universal glew +universal
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal libzip +universal nlohmann-json +universal tinyxml2 +universal
+7 -6
View File
@@ -12,7 +12,7 @@ jobs:
if: ${{ github.event.workflow_run.event == 'pull_request' }}
steps:
- id: 'pr-number'
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
result-encoding: string
script: |
@@ -20,8 +20,9 @@ jobs:
const pullHeadSHA = '${{github.event.workflow_run.head_sha}}';
const pullUserId = ${{github.event.sender.id}};
const prNumber = await (async () => {
const pulls = await github.rest.pulls.list({owner, repo});
for await (const {data} of github.paginate.iterator(pulls)) {
for await (const { data } of github.paginate.iterator(
github.rest.pulls.list, { owner, repo }
)) {
for (const pull of data) {
if (pull.head.sha === pullHeadSHA && pull.user.id === pullUserId) {
return pull.number;
@@ -36,7 +37,7 @@ jobs:
return prNumber;
- id: 'artifacts-text'
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
result-encoding: string
script: |
@@ -47,13 +48,13 @@ jobs:
});
return allArtifacts.data.artifacts.reduce((acc, item) => {
if (item.name === "assets") return acc;
if (item.name === "soh.otr") return acc;
acc += `
- [${item.name}.zip](https://nightly.link/${context.repo.owner}/${context.repo.repo}/actions/artifacts/${item.id}.zip)`;
return acc;
}, '### Build Artifacts');
- id: 'add-to-pr'
uses: garrettjoecox/pr-section@3.1.0
uses: garrettjoecox/pr-section@4.0.0
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
pr-number: ${{ steps.pr-number.outputs.result }}
@@ -0,0 +1,72 @@
name: test-builds-on-distros
on:
workflow_dispatch: # by request
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
strategy:
matrix:
image: ["archlinux:base", "opensuse/tumbleweed:latest", "ubuntu:mantic", "debian:bookworm", "fedora:39"]
cc: ["gcc", "clang"]
include:
- cxx: g++
cc: gcc
- cxx: clang++
cc: clang
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
container:
image: ${{ matrix.image }}
steps:
- name: Install dependencies (pacman)
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
pacman -Syu --noconfirm
pacman -S --noconfirm ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
- 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
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
- 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
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
- name: Install dependencies (zypper)
if: ${{ matrix.image == 'opensuse/tumbleweed:latest' }}
run: |
echo openSUSE
echo zypper in ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} ${{ matrix.cc == 'clang' && 'libstdc++-devel' || '' }} git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
zypper --non-interactive dup
zypper --non-interactive in ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} ${{ matrix.cc == 'clang' && 'libstdc++-devel' || '' }} git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
- name: Install latest nlohmann
if: ${{ matrix.image == 'fedora:39' }}
run: |
wget https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz
tar -xzvf v3.11.3.tar.gz
cd json-3.11.3
mkdir build
cd build
cmake ..
make
sudo make install
- uses: actions/checkout@v4
with:
submodules: true
- name: Build SoH
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 -DBUILD_REMOTE_CONTROL=1
cmake --build build-cmake --config Release -j3
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
+2 -1
View File
@@ -41,6 +41,7 @@ tools/asmsplitter/c/*
ctx.c
tools/*dSYM/
graphs/
.netcoredbg_hist
# Assets
*.png
@@ -448,5 +449,5 @@ _packages
*/extract_assets_cmake*
/build*
soh/build.c
soh/src/boot/build.c
soh/properties.h
+5 -1
View File
@@ -8,5 +8,9 @@ if(MSVC)
set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc")
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Z7")
else()
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
endif()
endif()
+22
View File
@@ -0,0 +1,22 @@
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 "")
set(CVAR_TEXTURE_FILTER "${CVAR_PREFIX_SETTING}.TextureFilter" CACHE STRING "")
set(CVAR_IMGUI_CONTROLLER_NAV "${CVAR_PREFIX_SETTING}.ControlNav" CACHE STRING "")
set(CVAR_CONSOLE_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.Console" CACHE STRING "")
set(CVAR_CONTROLLER_DISCONNECTED_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.ControllerDisconnected" CACHE STRING "")
set(CVAR_CONTROLLER_REORDERING_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.ControllerReordering" CACHE STRING "")
set(CVAR_GFX_DEBUGGER_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.GfxDebugger" CACHE STRING "")
set(CVAR_STATS_WINDOW_OPEN "${CVAR_PREFIX_WINDOW}.Stats" CACHE STRING "")
set(CVAR_ENABLE_MULTI_VIEWPORTS "${CVAR_PREFIX_SETTING}.EnableMultiViewports" CACHE STRING "")
set(CVAR_LOW_RES_MODE "${CVAR_PREFIX_SETTING}.LowResMode" CACHE STRING "")
set(CVAR_SIMULATED_INPUT_LAG "${CVAR_PREFIX_SETTING}.SimulatedInputLag" CACHE STRING "")
set(CVAR_GAME_OVERLAY_FONT "${CVAR_PREFIX_SETTING}.OverlayFont" CACHE STRING "")
set(CVAR_MENU_BAR_OPEN "${CVAR_PREFIX_SETTING}.OpenMenuBar" CACHE STRING "")
set(CVAR_PREFIX_CONTROLLERS "${CVAR_PREFIX_SETTING}.Controllers" CACHE STRING "")
set(CVAR_PREFIX_ADVANCED_RESOLUTION "${CVAR_PREFIX_SETTING}.AdvancedResolution" CACHE STRING "")
include("libultraship/cmake/cvars.cmake")
+26
View File
@@ -0,0 +1,26 @@
set(CVAR_PREFIX_RANDOMIZER_ENHANCEMENT "gRandoEnhancements")
set(CVAR_PREFIX_RANDOMIZER_SETTING "gRandoSettings")
set(CVAR_PREFIX_COSMETIC "gCosmetics")
set(CVAR_PREFIX_AUDIO "gAudioEditor")
set(CVAR_PREFIX_CHEAT "gCheats")
set(CVAR_PREFIX_ENHANCEMENT "gEnhancements")
set(CVAR_PREFIX_SETTING "gSettings")
set(CVAR_PREFIX_WINDOW "gOpenWindows")
set(CVAR_PREFIX_TRACKER "gTrackers")
set(CVAR_PREFIX_DEVELOPER_TOOLS "gDeveloperTools")
set(CVAR_PREFIX_GENERAL "gGeneral")
set(CVAR_PREFIX_REMOTE "gRemote")
add_compile_definitions(
CVAR_PREFIX_RANDOMIZER_ENHANCEMENT="${CVAR_PREFIX_RANDOMIZER_ENHANCEMENT}"
CVAR_PREFIX_RANDOMIZER_SETTING="${CVAR_PREFIX_RANDOMIZER_SETTING}"
CVAR_PREFIX_COSMETIC="${CVAR_PREFIX_COSMETIC}"
CVAR_PREFIX_AUDIO="${CVAR_PREFIX_AUDIO}"
CVAR_PREFIX_CHEAT="${CVAR_PREFIX_CHEAT}"
CVAR_PREFIX_ENHANCEMENT="${CVAR_PREFIX_ENHANCEMENT}"
CVAR_PREFIX_SETTING="${CVAR_PREFIX_SETTING}"
CVAR_PREFIX_WINDOW="${CVAR_PREFIX_WINDOW}"
CVAR_PREFIX_TRACKER="${CVAR_PREFIX_TRACKER}"
CVAR_PREFIX_DEVELOPER_TOOLS="${CVAR_PREFIX_DEVELOPER_TOOLS}"
CVAR_PREFIX_GENERAL="${CVAR_PREFIX_GENERAL}"
CVAR_PREFIX_REMOTE="${CVAR_PREFIX_REMOTE}"
)
+87 -14
View File
@@ -5,28 +5,85 @@ set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
project(Ship VERSION 8.0.1 LANGUAGES C CXX)
set(PROJECT_BUILD_NAME "MacReady Bravo" CACHE STRING "")
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "")
project(Ship VERSION 8.0.6 LANGUAGES C CXX)
include(CMake/soh-cvars.cmake)
include(CMake/lus-cvars.cmake)
option(SUPPRESS_WARNINGS "Suppress warnings in LUS and src (decomp)" ON)
if(SUPPRESS_WARNINGS)
MESSAGE("Suppressing warnings in LUS and src")
if(MSVC)
set(WARNING_OVERRIDE /w)
else()
set(WARNING_OVERRIDE -w)
endif()
else()
MESSAGE("Skipping warning suppression")
endif()
set(NATO_PHONETIC_ALPHABET
"Alfa" "Bravo" "Charlie" "Delta" "Echo" "Foxtrot" "Golf" "Hotel"
"India" "Juliett" "Kilo" "Lima" "Mike" "November" "Oscar" "Papa"
"Quebec" "Romeo" "Sierra" "Tango" "Uniform" "Victor" "Whiskey"
"Xray" "Yankee" "Zulu"
)
# Get the patch version number from the project version
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 "Holiday 2024" CACHE STRING "" FORCE)
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE)
execute_process(
COMMAND git branch --show-current
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CMAKE_PROJECT_GIT_BRANCH "${GIT_BRANCH}" CACHE STRING "Git branch" FORCE)
execute_process(
COMMAND git rev-parse HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CMAKE_PROJECT_GIT_COMMIT_HASH "${GIT_COMMIT_HASH}" CACHE STRING "Git commit hash" FORCE)
execute_process(
COMMAND git describe --tags --abbrev=0 --exact-match HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT GIT_COMMIT_TAG)
set(GIT_COMMIT_TAG "" CACHE STRING "Git commit tag" FORCE)
endif()
set(CMAKE_PROJECT_GIT_COMMIT_TAG "${GIT_COMMIT_TAG}" CACHE STRING "Git commit tag" FORCE)
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/utf-8>)
if (CMAKE_SYSTEM_NAME MATCHES "Windows|Linux")
if(NOT DEFINED BUILD_CROWD_CONTROL)
set(BUILD_CROWD_CONTROL ON)
endif()
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
include(CMake/automate-vcpkg.cmake)
include(CMake/automate-vcpkg.cmake)
set(VCPKG_TRIPLET x64-windows-static)
set(VCPKG_TARGET_TRIPLET x64-windows-static)
set(VCPKG_TRIPLET x64-windows-static)
set(VCPKG_TARGET_TRIPLET x64-windows-static)
vcpkg_bootstrap()
vcpkg_install_packages(zlib bzip2 libpng sdl2 sdl2-net glew glfw3)
vcpkg_bootstrap()
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2 spdlog)
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
endif()
endif()
################################################################################
@@ -84,10 +141,26 @@ include(CMake/GlobalSettingsInclude.cmake OPTIONAL)
################################################################################
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
################################################################################
# Set LUS vars
################################################################################
# Enable the Gfx debugger in LUS to use libgfxd from ZAPDTR
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)
################################################################################
# Set CONTROLLERBUTTONS_T
################################################################################
add_compile_definitions(CONTROLLERBUTTONS_T=uint32_t)
################################################################################
# Sub-projects
################################################################################
add_subdirectory(libultraship ${CMAKE_BINARY_DIR}/libultraship)
target_compile_options(libultraship PRIVATE "${WARNING_OVERRIDE}")
add_subdirectory(ZAPDTR/ZAPD ${CMAKE_BINARY_DIR}/ZAPD)
add_subdirectory(OTRExporter)
add_subdirectory(soh)
+17 -6
View File
@@ -9,7 +9,7 @@ Official Website: https://www.shipofharkinian.com/
Official Discord: https://discord.com/invite/shipofharkinian
If you're having any trouble after reading through this `README`, feel free ask for help in the Support text channels. Please keep in mind that we do not condone piracy.
If you're having any trouble after reading through this `README`, feel free to ask for help in the Support text channels. Please keep in mind that we do not condone piracy.
# Quick Start
@@ -70,12 +70,17 @@ Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
| Tab | Toggle Alternate assets |
| Ctrl+R | Reset |
# Project Overview
Ship of Harkinian (SOH) is built atop a custom library dubbed libultraship (LUS). Back in the N64 days, there was an SDK distributed to developers named libultra; LUS is designed to mimic the functionality of libultra on modern hardware. In addition, we are dependant on the source code provided by the OOT decompilation project.
In order for the game to function, you will require a **legally acquired** ROM for Ocarina of Time. Click [here](https://ship.equipment/) to check the compatibility of your specific rom. Any copyrighted assets are extracted from the ROM and reformatted as a .otr archive file which the code uses.
### Graphics Backends
Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (MacOS). You can change which API to use in the `Settings` menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the `shipofharkinian.json` file by finding the line `gfxbackend:""` and changing the value to `sdl` for OpenGL. DirectX 11 is the default on Windows.
# Custom Assets
Custom assets are packed in `.otr` files. To use custom assets, place them in the `mods` folder.
Custom assets are packed in `.otr` archive files. To use custom assets, place them in the `mods` folder.
If you're interested in creating and/or packing your own custom asset `.otr` files, check out the following tools:
* [**retro - OTR generator**](https://github.com/HarbourMasters64/retro)
@@ -91,10 +96,16 @@ If you want to playtest a continuous integration build, you can find them at the
* [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip)
* [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip)
* [Linux (performance)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-performance.zip) _(requires `glibc 2.35` or newer, but will be more performant than the compatibility build.)_
* [Linux (compatibility)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-compatiblity.zip) _(compatible with most Linux distributions, but may not be as performant as the performance build.)_
* [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip)
* [Wii U](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-wiiu.zip)
* [Linux](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux.zip)
### Further Reading
More detailed documentation can be found in the 'docs' directory, including the aforementioned [building instructions](docs/BUILDING.md).
* [Credits](docs/CREDITS.md)
* [Custom Music](docs/CUSTOM_MUSIC.md)
* [Controller Mapping](docs/GAME_CONTROLLER_DB.md)
* [Modding](docs/MODDING.md)
* [Versioning](docs/VERSIONING.md)
<a href="https://github.com/Kenix3/libultraship/">
<picture>
+1 -1
Submodule ZAPDTR updated: eff2903611...04d42249d2
+120 -68
View File
@@ -6,7 +6,7 @@ Requires:
* At least 8GB of RAM (machines with 4GB have seen complier failures)
* Visual Studio 2022 Community Edition with the C++ feature set
* One of the Windows SDKs that comes with Visual Studio, for example the current Windows 10 version 10.0.19041.0
* The `MSVC v142 - VS 2019 C++ build tools` component of Visual Studio
* The `MSVC v143 - VS 2022 C++ build tools` component of Visual Studio
* Python 3 (can be installed manually or as part of Visual Studio)
* Git (can be installed manually or as part of Visual Studio)
* Cmake (can be installed via chocolatey or manually)
@@ -14,18 +14,15 @@ Requires:
During installation, check the "Desktop development with C++" feature set:
![image](https://user-images.githubusercontent.com/30329717/183511274-d11aceea-7900-46ec-acb6-3f2cc110021a.png)
Doing so should also check one of the Windows SDKs by default. Then, in the installation details in the right-hand column, make sure you also check the v142 toolset.
Doing so should also check one of the Windows SDKs by default. Then, in the installation details in the right-hand column, make sure you also check the v143 toolset. This is often done by default.
You can also find the v142 toolset by searching through the individual components tab:
![image](https://user-images.githubusercontent.com/30329717/183521169-ead6a73b-a1bf-4e99-aab8-441746d8f08e.png)
While you're there, you can also install Python 3 and Git if needed.
It is recommended that you install Python and Git standalone, the install process in VS Installer has given some issues in the past.
1. Clone the Ship of Harkinian repository
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule init`` after cloning to pull in the libultraship submodule!_
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule update --init`` after cloning to pull in the libultraship submodule!_
2. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
2. After setup and initial build, use the built-in OTR extraction to make your oot.otr/oot-mq.otr files.
_Note: Instructions assume using powershell_
```powershell
@@ -33,24 +30,18 @@ _Note: Instructions assume using powershell_
cd Shipwright
# Setup cmake project
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v142 -A x64 # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging)
# or for VS2019
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 16 2019" -T v142 -A x64
# Extract assets & generate OTR (run this anytime you need to regenerate OTR)
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target ExtractAssets # --config Release (if you're packaging)
# Compile project
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 # --config Release (if you're packaging)
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
# Add `-DSUPPRESS_WARNINGS=0` to prevent suppression of warnings from LUS and decomp (src) files. set to 1 to re-enable suppression
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v143 -A x64
# Now you can run the executable in .\build\x64
# If you need to clean the project you can run
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target clean
# If you need to regenerate the asset headers to check them into source
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target ExtractAssetHeaders
# If you need a newer soh.otr only
# Generate soh.otr
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target GenerateSohOtr
# Compile project
# Add `--config Release` if you're packaging
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64
# Now you can run the executable in .\build\x64 or run in Visual Studio
```
### Developing SoH
@@ -60,9 +51,7 @@ With the cmake build system you have two options for working on the project:
To develop using Visual Studio you only need to use cmake to generate the solution file:
```powershell
# Generates Ship.sln at `build/x64` for Visual Studio 2022
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v142 -A x64
# or for Visual Studio 2019
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 16 2019" -T v142 -A x64
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v143 -A x64
```
#### Visual Studio Code or another editor
@@ -83,42 +72,84 @@ cd "build/x64"
& 'C:\Program Files\CMake\bin\cpack.exe' -G ZIP
```
### Additional CMake Targets
#### Clean
```powershell
# If you need to clean the project you can run
C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target clean
```
#### Regenerate Asset Headers
```powershell
# If you need to regenerate the asset headers to check them into source
C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target ExtractAssetHeaders
```
## Linux
Requires `gcc >= 10, x11, curl, python3, sdl2 >= 2.0.22, libpng, glew >= 2.2, ninja, cmake, lld, pulseaudio-libs`
### Install dependencies
#### 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
**Important: For maximum performance make sure you have ninja build tools installed!**
# 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
```
#### Arch
```sh
# using gcc
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
_Note: If you're using Visual Studio Code, the [cpack plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
# or using clang
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
```
#### 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
# 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
```
#### openSUSE
```sh
# using gcc
zypper in gcc gcc-c++ git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
# 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
```
### Build
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
```bash
# Clone the repo
# Clone the repo and enter the directory
git clone https://github.com/HarbourMasters/Shipwright.git
cd Shipwright
# Clone the submodule libultraship
# Clone the submodules
git submodule update --init
# Copy the baserom to the OTRExporter folder
cp <path to your ROM> OTRExporter
# Generate Ninja project
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging) -DPython3_EXECUTABLE=$(which python3) (if you are using non-standard Python installations such as PyEnv)
# Extract assets & generate OTR (run this anytime you need to regenerate OTR)
cmake --build build-cmake --target ExtractAssets
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
# Add `-DSUPPRESS_WARNINGS=0` to prevent suppression of warnings from LUS and decomp (src) files. set to 1 to re-enable suppression
# Add `-DPython3_EXECUTABLE=$(which python3)` if you are using non-standard Python installations such as PyEnv
cmake -H. -Bbuild-cmake -GNinja
# Generate soh.otr
cmake --build build-cmake --target GenerateSohOtr
# Compile the project
cmake --build build-cmake # --config Release (if you're packaging)
# Add `--config Release` if you're packaging
cmake --build build-cmake
# Now you can run the executable in ./build-cmake/soh/soh.elf
# To develop the project open the repository in VSCode (or your preferred editor)
# If you need to clean the project you can run
cmake --build build-cmake --target clean
# If you need to regenerate the asset headers to check them into source
cmake --build build-cmake --target ExtractAssetHeaders
# If you need a newer soh.otr only
cmake --build build-cmake --target GenerateSohOtr
```
### Generating a distributable
### Generate a distributable
After compiling the project you can generate a distributable by running of the following:
```bash
# Go to build folder
@@ -129,8 +160,20 @@ cpack -G ZIP
cpack -G External (creates appimage)
```
### Additional CMake Targets
#### Clean
```bash
# If you need to clean the project you can run
cmake --build build-cmake --target clean
```
#### Regenerate Asset Headers
```bash
# If you need to regenerate the asset headers to check them into source
cmake --build build-cmake --target ExtractAssetHeaders
```
## macOS
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake` (can be installed via homebrew, macports, etc)
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake, tinyxml2, nlohmann-json, libzip` (can be installed via [homebrew](https://brew.sh/), macports, etc)
**Important: For maximum performance make sure you have ninja build tools installed!**
@@ -140,32 +183,28 @@ _Note: If you're using Visual Studio Code, the [cpack plugin](https://marketplac
# Clone the repo
git clone https://github.com/HarbourMasters/Shipwright.git
cd ShipWright
# Clone the submodule libultraship
git submodule update --init
# Copy the baserom to the OTRExporter folder
cp <path to your ROM> OTRExporter
# Generate Ninja project
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging)
# Extract assets & generate OTR (run this anytime you need to regenerate OTR)
cmake --build build-cmake --target ExtractAssets
# Compile the project
cmake --build build-cmake # --config Release (if you're packaging)
# Copy oot.otr into the Application Support directory
cp build-cmake/soh/oot.otr ~/Library/Application\ Support/com.shipofharkinian.soh/
# Install development dependencies (assuming homebrew)
brew install sdl2 libpng glew ninja cmake tinyxml2 nlohmann-json libzip
# Generate Ninja project
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
# Add `-DSUPPRESS_WARNINGS=0` to prevent suppression of warnings from LUS and decomp (src) files. set to 1 to re-enable suppression
cmake -H. -Bbuild-cmake -GNinja
# Generate soh.otr
cmake --build build-cmake --target GenerateSohOtr
# Compile the project
# Add `--config Release` if you're packaging
cmake --build build-cmake
# Now you can run the executable file:
./build-cmake/soh/soh-macos
# To develop the project open the repository in VSCode (or your preferred editor)
# If you need to clean the project you can run
cmake --build build-cmake --target clean
# If you need to regenerate the asset headers to check them into source
cmake --build build-cmake --target ExtractAssetHeaders
# If you need a newer soh.otr only
cmake --build build-cmake --target GenerateSohOtr
```
### Generating a distributable
@@ -177,6 +216,19 @@ cd build-cmake
cpack
```
### Additional CMake Targets
#### Clean
```bash
# If you need to clean the project you can run
cmake --build build-cmake --target clean
```
#### Regenerate Asset Headers
```bash
# If you need to regenerate the asset headers to check them into source
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
+1 -1
View File
@@ -188,4 +188,4 @@ Assuming all went well, you can now push your changes to your fork with the foll
```bash
git push origin <YOUR BRANCH NAME>
```
```
+8 -3
View File
@@ -21,12 +21,17 @@ fi
while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
for romfile in "$SHIP_HOME"/*.*64
do
if [[ -e $romfile ]]; then
if [[ -e "$romfile" ]] || [[ -L "$romfile" ]]; then
export ASSETDIR="$(mktemp -d /tmp/assets-XXXXX)"
ln -s "$HERE"/usr/bin/{assets,soh.elf,ZAPD} "$ASSETDIR"
ln -s "$SHIP_BIN_DIR"/{assets,soh.elf,ZAPD} "$ASSETDIR"
export OLDPWD="$PWD"
mkdir -p "$ASSETDIR"/tmp
ln -s "$romfile" "$ASSETDIR"/tmp/rom.z64
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 }')
-1
View File
@@ -7,7 +7,6 @@ __pycache__/
.vscode/
.vs/
.idea/
CMakeLists.txt
cmake-build-debug
venv/
+5 -1
View File
@@ -8,5 +8,9 @@ if(MSVC)
set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc")
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Z7")
else()
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
endif()
endif()
+50 -96
View File
@@ -92,10 +92,6 @@ if (NOT TARGET libultraship)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libultraship ${CMAKE_BINARY_DIR}/libultraship)
endif()
if (NOT TARGET ZAPDUtils)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPDUtils ${CMAKE_BINARY_DIR}/ZAPDUtils)
endif()
if (NOT TARGET ZAPDLib)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD ${CMAKE_BINARY_DIR}/ZAPD)
endif()
@@ -105,8 +101,8 @@ set(PROJECT_NAME soh)
################################################################################
# Sources
################################################################################
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c.in ${CMAKE_BINARY_DIR}/build.c @ONLY)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c.in ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c @ONLY)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY)
set(Header_Files "resource.h")
source_group("headers" FILES ${Header_Files})
@@ -124,101 +120,61 @@ source_group("include" FILES ${Header_Files__include})
# }}}
# soh (root)
file(GLOB soh__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "soh/*.c" "soh/*.cpp" "soh/*.h")
source_group("soh" FILES ${soh__})
file(GLOB_RECURSE soh__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "soh/*.c" "soh/*.cpp" "soh/*.h" "soh/*.hpp")
# Add specific files that don't match the pattern
list(APPEND soh__ ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/savestates_extern.inc)
list(APPEND soh__ ${CMAKE_CURRENT_SOURCE_DIR}/soh/Enhancements/speechsynthesizer/DarwinSpeechSynthesizer.mm)
# Create source groups that match the real file directory paths
foreach(source IN LISTS soh__)
get_filename_component(source_path "${source}" PATH)
string(REPLACE "/" "\\" source_path_adjusted "${source_path}")
source_group("${source_path_adjusted}" FILES "${source}")
endforeach()
# Fix UTF-8 issues for MSVC
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")
endif()
# soh/config {{{
file(GLOB_RECURSE soh__config RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"soh/config/*.h"
"soh/config/*.cpp"
)
# }}}
# soh/enhancements {{{
file(GLOB_RECURSE soh__Enhancements RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"soh/Enhancements/*.c"
"soh/Enhancements/*.cpp"
"soh/Enhancements/*.h"
"soh/Enhancements/*.hpp"
"soh/Enhancements/*_extern.inc"
"soh/Enhancements/*.mm"
)
list(REMOVE_ITEM soh__Enhancements "soh/Enhancements/gamecommand.h")
list(FILTER soh__Enhancements EXCLUDE REGEX "soh/Enhancements/gfx.*")
# handle crowd control removals
list(REMOVE_ITEM soh__Enhancements "soh/Enhancements/crowd-control/soh.cs")
list(REMOVE_ITEM soh__Enhancements "soh/Enhancements/crowd-control/soh.ccpak")
if (!BUILD_CROWD_CONTROL)
list(FILTER soh__Enhancements EXCLUDE REGEX "soh/Enhancements/crowd-control/*")
# handle Network removals
if (!BUILD_REMOTE_CONTROL)
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/crowd-control/*")
endif()
# handle speechsynthesizer removals
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(FILTER soh__Enhancements EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/Darwin*")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/Darwin*")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
list(FILTER soh__Enhancements EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/SAPI*")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/SAPI*")
else()
list(FILTER soh__Enhancements EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/(Darwin|SAPI).*")
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/(Darwin|SAPI).*")
endif()
source_group("soh\\Enhancements" REGULAR_EXPRESSION "soh/Enhancements/*")
source_group("soh\\Enhancements\\audio" REGULAR_EXPRESSION "soh/Enhancements/audio/*")
source_group("soh\\Enhancements\\controls" REGULAR_EXPRESSION "soh/Enhancements/controls/*")
source_group("soh\\Enhancements\\cosmetics" REGULAR_EXPRESSION "soh/Enhancements/cosmetics/*")
source_group("soh\\Enhancements\\crowd-control" REGULAR_EXPRESSION "soh/Enhancements/crowd-control/*")
source_group("soh\\Enhancements\\custom-message" REGULAR_EXPRESSION "soh/Enhancements/custom-message/*")
source_group("soh\\Enhancements\\debugger" REGULAR_EXPRESSION "soh/Enhancements/debugger/*")
source_group("soh\\Enhancements\\game-interactor" REGULAR_EXPRESSION "soh/Enhancements/game-interactor/*")
source_group("soh\\Enhancements\\item-tables" REGULAR_EXPRESSION "soh/Enhancements/item-tables/*")
source_group("soh\\Enhancements\\randomizer" REGULAR_EXPRESSION "soh/Enhancements/randomizer/*")
source_group("soh\\Enhancements\\randomizer\\3drando" REGULAR_EXPRESSION "soh/Enhancements/randomizer/3drando/*")
source_group("soh\\Enhancements\\randomizer\\3drando\\hint_list" REGULAR_EXPRESSION "soh/Enhancements/randomizer/3drando/hint_list/*")
source_group("soh\\Enhancements\\randomizer\\3drando\\location_access" REGULAR_EXPRESSION "soh/Enhancements/randomizer/3drando/location_access/*")
source_group("soh\\Enhancements\\speechsynthesizer" REGULAR_EXPRESSION "soh/Enhancements/speechsynthesizer/*")
source_group("soh\\Enhancements\\tts" REGULAR_EXPRESSION "soh/Enhancements/tts/*")
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set_source_files_properties(soh/Enhancements/tts/tts.cpp PROPERTIES COMPILE_FLAGS "/utf-8")
endif()
# }}}
# soh/Extractor {{{
list(FILTER ship__ EXCLUDE REGEX "soh/Extractor/*")
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
# soh/Extractor {{{
file(GLOB_RECURSE soh__Extractor RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"soh/Extractor/*.c"
"soh/Extractor/*.cpp"
"soh/Extractor/*.h"
"soh/Extractor/*.hpp"
)
# }}}
else()
file(GLOB_RECURSE soh__Extractor RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"soh/Extractor/*.h"
"soh/Extractor/*.hpp"
)
# }}}
endif()
# soh/resource {{{
file(GLOB_RECURSE soh__Resource RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "soh/resource/*.cpp" "soh/resource/*.h")
source_group("soh\\resource\\type" REGULAR_EXPRESSION "soh/resource/type/*")
source_group("soh\\resource\\type\\scenecommand" REGULAR_EXPRESSION "soh/resource/type/scenecommand/*")
source_group("soh\\resource\\importer" REGULAR_EXPRESSION "soh/resource/importer/*")
source_group("soh\\resource\\importer\\scenecommand" REGULAR_EXPRESSION "soh/resource/importer/scenecommand/*")
# }}}
# src (decomp) {{{
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_BINARY_DIR}/build.c)
list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/properties.h)
list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc)
list(FILTER src__ EXCLUDE REGEX "src/dmadata/*")
list(FILTER src__ EXCLUDE REGEX "src/elf_message/*")
@@ -238,7 +194,6 @@ list(REMOVE_ITEM src__ "src/libultra/gu/sqrtf.c")
list(REMOVE_ITEM src__ "src/libultra/gu/us2dex.c")
source_group("src" REGULAR_EXPRESSION "src/*")
source_group("src\\build" FILES ${CMAKE_BINARY_DIR}/build.c ${CMAKE_CURRENT_SOURCE_DIR}/properties.h ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc)
source_group("src\\boot" REGULAR_EXPRESSION "src/boot/*")
source_group("src\\buffers" REGULAR_EXPRESSION "src/buffers/*")
source_group("src\\code" REGULAR_EXPRESSION "src/code/*")
@@ -253,10 +208,7 @@ set(ALL_FILES
${Header_Files}
${Header_Files__include}
${soh__}
${soh__config}
${soh__Enhancements}
${soh__Extractor}
${soh__Resource}
${src__}
)
@@ -328,7 +280,7 @@ endif()
include(FetchContent)
FetchContent_Declare(
Boost
URL https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.gz
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
@@ -354,9 +306,15 @@ endif()
find_package(SDL2)
set(SDL2-INCLUDE ${SDL2_INCLUDE_DIRS})
if (BUILD_CROWD_CONTROL)
if (BUILD_REMOTE_CONTROL)
find_package(SDL2_net)
set(SDL2-NET-INCLUDE ${SDL_NET_INCLUDE_DIRS})
if(NOT SDL2_net_FOUND)
message(STATUS "SDL2_net not found (it's possible the version installed is too old). Disabling BUILD_REMOTE_CONTROL.")
set(BUILD_REMOTE_CONTROL 0)
else()
set(SDL2-NET-INCLUDE ${SDL_NET_INCLUDE_DIRS})
endif()
endif()
target_include_directories(${PROJECT_NAME} PRIVATE assets
@@ -385,10 +343,8 @@ target_include_directories(${PROJECT_NAME} PRIVATE assets
${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/libultraship/Lib/spdlog/include/
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic/Fast3D/U64/PR
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic
${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPDUtils
${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD/resource/type
${SDL2-INCLUDE}
${SDL2-NET-INCLUDE}
@@ -408,13 +364,14 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
"$<$<CONFIG:Release>:"
"NDEBUG"
">"
"$<$<BOOL:${BUILD_CROWD_CONTROL}>:ENABLE_CROWD_CONTROL>"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
"INCLUDE_GAME_PRINTF;"
"ENABLE_CROWD_CONTROL;"
"F3DEX_GBI_2"
"UNICODE;"
"_UNICODE"
STORMLIB_NO_AUTO_LINK
"_CRT_SECURE_NO_WARNINGS;"
NOMINMAX
)
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
target_compile_definitions(${PROJECT_NAME} PRIVATE
@@ -428,10 +385,12 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
"NDEBUG;"
">"
"INCLUDE_GAME_PRINTF;"
"F3DEX_GBI_2"
"WIN32;"
"UNICODE;"
"_UNICODE"
STORMLIB_NO_AUTO_LINK
NOMINMAX
)
endif()
elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
@@ -442,6 +401,7 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
"$<$<CONFIG:Release>:"
"NDEBUG"
">"
"F3DEX_GBI_2"
"SPDLOG_ACTIVE_LEVEL=3;"
"SPDLOG_NO_THREAD_ID;"
"SPDLOG_NO_TLS;"
@@ -455,7 +415,8 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
"$<$<CONFIG:Release>:"
"NDEBUG"
">"
"$<$<BOOL:${BUILD_CROWD_CONTROL}>:ENABLE_CROWD_CONTROL>"
"F3DEX_GBI_2"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
"SPDLOG_ACTIVE_LEVEL=0;"
"_CONSOLE;"
"_CRT_SECURE_NO_WARNINGS;"
@@ -549,6 +510,7 @@ 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
@@ -624,6 +586,8 @@ 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-incompatible-pointer-types
@@ -643,15 +607,9 @@ endif()
################################################################################
# Pre build events
################################################################################
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_custom_command_if(
TARGET ${PROJECT_NAME}
PRE_BUILD
COMMANDS
COMMAND $<CONFIG:Debug> copy /b $<SHELL_PATH:${CMAKE_BINARY_DIR}/>build.c +,,
)
if (MSVC)
set(MSVC_CMD ${CMAKE_COMMAND} -E copy_directory $<TARGET_FILE_DIR:soh>/assets ${CMAKE_BINARY_DIR}/soh/assets)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
add_custom_command(
TARGET ${PROJECT_NAME}
@@ -664,13 +622,13 @@ if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${MSVC_CMD}
)
endif()
################################################################################
# Dependencies
################################################################################
add_dependencies(${PROJECT_NAME}
ZAPDUtils
libultraship
)
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
@@ -684,12 +642,11 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"libultraship;"
"ZAPDUtils;"
"ZAPDLib;"
"glu32;"
"SDL2::SDL2;"
"SDL2::SDL2main;"
"$<$<BOOL:${BUILD_CROWD_CONTROL}>:SDL2_net::SDL2_net-static>"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net-static>"
"glfw;"
"winmm;"
"imm32;"
@@ -699,7 +656,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"libultraship;"
"ZAPDUtils;"
"ZAPDLib;"
"glu32;"
"SDL2::SDL2;"
@@ -717,7 +673,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
find_package(Threads REQUIRED)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"libultraship;"
"ZAPDUtils;"
SDL2::SDL2
-lglad
Threads::Threads
@@ -739,10 +694,9 @@ else()
find_package(Threads REQUIRED)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"libultraship;"
"ZAPDUtils;"
"ZAPDLib;"
SDL2::SDL2
"$<$<BOOL:${BUILD_CROWD_CONTROL}>:SDL2_net::SDL2_net>"
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net>"
${CMAKE_DL_LIBS}
Threads::Threads
)
+6
View File
@@ -28,4 +28,10 @@
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware> <!-- legacy -->
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness> <!-- falls back to pm if pmv2 is not available -->
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
+1 -1
View File
@@ -4,4 +4,4 @@
*.cfg
*.vtx.inc
*.dlist.inc
*.txt
!*.png
@@ -1,5 +1,5 @@
{
"0": "Abre Mojo",
"0": "Arbre Mojo",
"1": "Caverne Dodongo",
"2": "Ventre de Jabu-Jabu",
"3": "Temple de la Forêt",
@@ -58,9 +58,9 @@
"56": "Laboratoire du Lac",
"57": "", // Tente du Marathonien (No title card)
"58": "Cabane du fossoyeur",
"59": "Fountaine Royale des Fées",
"60": "Fountaine des Fées",
"61": "Fountaine Royale des Fées",
"59": "Fontaine Royale des Fées",
"60": "Fontaine des Fées",
"61": "Fontaine Royale des Fées",
"62": "", // Grottes (No title card)
"63": "", // Tombe 1 (No title card)
"64": "", // Tombe 2 (No title card)
@@ -109,4 +109,4 @@
"107": "",
"108": "", // Debug: SRD Room (No title card)
"109": "" // Debug: Treasure Chest Warp (No 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,19 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_0"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_1"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_2"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_3"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid"/>
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_4"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,69 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" 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="3" V01="4" V02="5"/>
<Triangle1 V00="5" V01="4" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="9" V01="8" V02="10"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" 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="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="5" V02="4"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<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="13"/>
<Triangle1 V00="13" V01="12" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" 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="5" V02="3"/>
<Triangle1 V00="5" V01="4" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="11" V01="10" V02="12"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="13" V01="12" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="3" V01="0" V02="4"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" 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="14" V01="13" V02="12"/>
<Triangle1 V00="14" V01="15" V02="13"/>
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0" VertexBufferIndex="0" VertexOffset="64" 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="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="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="13" V02="11"/>
<Triangle1 V00="13" V01="12" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,31 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="3" V01="4" V02="1"/>
<Triangle1 V00="3" V01="5" V02="4"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="15" V02="13"/>
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" 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="7" V02="6"/>
<Triangle1 V00="8" V01="6" V02="9"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="13"/>
<Triangle1 V00="14" V01="13" V02="12"/>
<Triangle1 V00="14" V01="12" V02="15"/>
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1" VertexBufferIndex="0" VertexOffset="32" Count="6"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="0" V02="3"/>
<Triangle1 V00="4" V01="3" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,18 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_2" 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="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/gameplay_dangeon_keep/gRandoPotDL_vtx_2" VertexBufferIndex="0" VertexOffset="16" Count="8"/>
<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"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,9 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_3" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<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"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,9 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_dangeon_keep/gRandoPotDL_vtx_4" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<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"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,82 @@
<Vertex Version="0">
<Vtx X="-35" Y="133" Z="-20" S="546" T="573" R="159" G="61" B="200" A="255"/>
<Vtx X="-35" Y="133" Z="20" S="305" T="573" R="159" G="61" B="56" A="255"/>
<Vtx X="-35" Y="146" Z="20" S="305" T="654" R="196" G="149" B="34" A="255"/>
<Vtx X="-35" Y="146" Z="-20" S="546" T="654" R="196" G="149" B="222" A="255"/>
<Vtx X="-43" Y="146" Z="25" S="278" T="699" R="169" G="178" B="50" A="255"/>
<Vtx X="-43" Y="146" Z="-25" S="572" T="699" R="169" G="178" B="206" A="255"/>
<Vtx X="-43" Y="160" Z="25" S="278" T="778" R="169" G="78" B="50" A="255"/>
<Vtx X="-43" Y="160" Z="-25" S="572" T="778" R="169" G="78" B="206" A="255"/>
<Vtx X="-29" Y="160" Z="17" S="325" T="858" R="60" G="107" B="222" A="255"/>
<Vtx X="-29" Y="160" Z="-17" S="526" T="858" R="60" G="107" B="34" A="255"/>
<Vtx X="-29" Y="134" Z="17" S="325" T="1008" R="87" G="78" B="206" A="255"/>
<Vtx X="-29" Y="134" Z="-17" S="526" T="1008" R="87" G="78" B="50" A="255"/>
<Vtx X="-35" Y="133" Z="20" S="10" T="1008" R="159" G="61" B="56" A="255"/>
<Vtx X="0" Y="133" Z="41" S="252" T="1008" R="0" G="61" B="112" A="255"/>
<Vtx X="0" Y="146" Z="41" S="252" T="927" R="0" G="149" B="69" A="255"/>
<Vtx X="-35" Y="146" Z="20" S="10" T="927" R="196" G="149" B="34" A="255"/>
<Vtx X="-35" Y="146" Z="20" S="10" T="927" R="196" G="149" B="34" A="255"/>
<Vtx X="0" Y="146" Z="41" S="252" T="927" R="0" G="149" B="69" A="255"/>
<Vtx X="0" Y="146" Z="49" S="278" T="882" R="0" G="178" B="101" A="255"/>
<Vtx X="-43" Y="146" Z="25" S="-16" T="882" R="169" G="178" B="50" A="255"/>
<Vtx X="0" Y="160" Z="49" S="278" T="803" R="0" G="78" B="101" A="255"/>
<Vtx X="-43" Y="160" Z="25" S="-16" T="803" R="169" G="78" B="50" A="255"/>
<Vtx X="0" Y="160" Z="34" S="232" T="723" R="0" G="107" B="187" A="255"/>
<Vtx X="-29" Y="160" Z="17" S="30" T="723" R="60" G="107" B="222" A="255"/>
<Vtx X="0" Y="134" Z="34" S="232" T="573" R="0" G="78" B="155" A="255"/>
<Vtx X="-29" Y="134" Z="17" S="30" T="573" R="87" G="78" B="206" A="255"/>
<Vtx X="0" Y="133" Z="-41" S="573" T="740" R="0" G="61" B="144" A="255"/>
<Vtx X="-35" Y="133" Z="-20" S="573" T="982" R="159" G="61" B="200" A="255"/>
<Vtx X="-35" Y="146" Z="-20" S="654" T="982" R="196" G="149" B="222" A="255"/>
<Vtx X="0" Y="146" Z="-41" S="654" T="740" R="0" G="149" B="187" A="255"/>
<Vtx X="-43" Y="146" Z="-25" S="699" T="1008" R="169" G="178" B="206" A="255"/>
<Vtx X="0" Y="146" Z="-49" S="699" T="714" R="0" G="178" B="155" A="255"/>
<Vtx X="0" Y="146" Z="-49" S="699" T="714" R="0" G="178" B="155" A="255"/>
<Vtx X="-43" Y="146" Z="-25" S="699" T="1008" R="169" G="178" B="206" A="255"/>
<Vtx X="-43" Y="160" Z="-25" S="778" T="1008" R="169" G="78" B="206" A="255"/>
<Vtx X="0" Y="160" Z="-49" S="778" T="714" R="0" G="78" B="155" A="255"/>
<Vtx X="-29" Y="160" Z="-17" S="858" T="962" R="60" G="107" B="34" A="255"/>
<Vtx X="0" Y="160" Z="-34" S="858" T="760" R="0" G="107" B="69" A="255"/>
<Vtx X="-29" Y="134" Z="-17" S="1008" T="962" R="87" G="78" B="50" A="255"/>
<Vtx X="0" Y="134" Z="-34" S="1008" T="760" R="0" G="78" B="101" A="255"/>
<Vtx X="35" Y="133" Z="20" S="687" T="137" R="97" G="61" B="56" A="255"/>
<Vtx X="35" Y="133" Z="-20" S="446" T="137" R="97" G="61" B="200" A="255"/>
<Vtx X="35" Y="146" Z="-20" S="446" T="218" R="60" G="149" B="222" A="255"/>
<Vtx X="35" Y="146" Z="20" S="687" T="218" R="60" G="149" B="34" A="255"/>
<Vtx X="43" Y="146" Z="-25" S="420" T="263" R="87" G="178" B="206" A="255"/>
<Vtx X="43" Y="146" Z="25" S="714" T="263" R="87" G="178" B="50" A="255"/>
<Vtx X="43" Y="160" Z="-25" S="420" T="342" R="87" G="78" B="206" A="255"/>
<Vtx X="43" Y="160" Z="25" S="714" T="342" R="87" G="78" B="50" A="255"/>
<Vtx X="29" Y="160" Z="-17" S="466" T="422" R="196" G="107" B="34" A="255"/>
<Vtx X="43" Y="160" Z="25" S="714" T="342" R="87" G="78" B="50" A="255"/>
<Vtx X="43" Y="160" Z="-25" S="420" T="342" R="87" G="78" B="206" A="255"/>
<Vtx X="29" Y="160" Z="17" S="667" T="422" R="196" G="107" B="222" A="255"/>
<Vtx X="29" Y="134" Z="-17" S="466" T="572" R="169" G="78" B="50" A="255"/>
<Vtx X="29" Y="134" Z="17" S="667" T="572" R="169" G="78" B="206" A="255"/>
<Vtx X="35" Y="133" Z="-20" S="-16" T="305" R="97" G="61" B="200" A="255"/>
<Vtx X="0" Y="133" Z="-41" S="-16" T="546" R="0" G="61" B="144" A="255"/>
<Vtx X="0" Y="146" Z="-41" S="65" T="546" R="0" G="149" B="187" A="255"/>
<Vtx X="35" Y="146" Z="-20" S="65" T="305" R="60" G="149" B="222" A="255"/>
<Vtx X="0" Y="146" Z="-49" S="110" T="572" R="0" G="178" B="155" A="255"/>
<Vtx X="43" Y="146" Z="-25" S="110" T="278" R="87" G="178" B="206" A="255"/>
<Vtx X="0" Y="160" Z="-49" S="189" T="572" R="0" G="78" B="155" A="255"/>
<Vtx X="43" Y="160" Z="-25" S="189" T="278" R="87" G="78" B="206" A="255"/>
<Vtx X="0" Y="160" Z="-34" S="269" T="526" R="0" G="107" B="69" A="255"/>
<Vtx X="29" Y="160" Z="-17" S="269" T="325" R="196" G="107" B="34" A="255"/>
<Vtx X="29" Y="160" Z="-17" S="269" T="325" R="196" G="107" B="34" A="255"/>
<Vtx X="0" Y="160" Z="-34" S="269" T="526" R="0" G="107" B="69" A="255"/>
<Vtx X="0" Y="134" Z="-34" S="419" T="526" R="0" G="78" B="101" A="255"/>
<Vtx X="29" Y="134" Z="-17" S="419" T="325" R="169" G="78" B="50" A="255"/>
<Vtx X="0" Y="133" Z="41" S="419" T="252" R="0" G="61" B="112" A="255"/>
<Vtx X="35" Y="133" Z="20" S="419" T="10" R="97" G="61" B="56" A="255"/>
<Vtx X="35" Y="146" Z="20" S="338" T="10" R="60" G="149" B="34" A="255"/>
<Vtx X="0" Y="146" Z="41" S="338" T="252" R="0" G="149" B="69" A="255"/>
<Vtx X="43" Y="146" Z="25" S="293" T="-16" R="87" G="178" B="50" A="255"/>
<Vtx X="0" Y="146" Z="49" S="293" T="278" R="0" G="178" B="101" A="255"/>
<Vtx X="43" Y="160" Z="25" S="214" T="-16" R="87" G="78" B="50" A="255"/>
<Vtx X="0" Y="160" Z="49" S="214" T="278" R="0" G="78" B="101" A="255"/>
<Vtx X="29" Y="160" Z="17" S="134" T="30" R="196" G="107" B="222" A="255"/>
<Vtx X="0" Y="160" Z="34" S="134" T="232" R="0" G="107" B="187" A="255"/>
<Vtx X="29" Y="134" Z="17" S="-16" T="30" R="169" G="78" B="206" A="255"/>
<Vtx X="0" Y="134" Z="34" S="-16" T="232" R="0" G="78" B="155" A="255"/>
</Vertex>
@@ -0,0 +1,40 @@
<Vertex Version="0">
<Vtx X="0" Y="43" Z="-82" S="1008" T="1008" R="0" G="220" B="134" A="255"/>
<Vtx X="71" Y="97" Z="-41" S="-16" T="368" R="102" G="47" B="197" A="255"/>
<Vtx X="71" Y="43" Z="-41" S="-16" T="1008" R="106" G="220" B="195" A="255"/>
<Vtx X="0" Y="97" Z="-82" S="1008" T="368" R="0" G="47" B="138" A="255"/>
<Vtx X="35" Y="133" Z="-20" S="-16" T="-16" R="97" G="61" B="200" A="255"/>
<Vtx X="0" Y="133" Z="-41" S="1008" T="-16" R="0" G="61" B="144" A="255"/>
<Vtx X="0" Y="133" Z="41" S="1008" T="-16" R="0" G="61" B="112" A="255"/>
<Vtx X="-35" Y="133" Z="20" S="-16" T="-16" R="159" G="61" B="56" A="255"/>
<Vtx X="-71" Y="97" Z="41" S="-16" T="368" R="154" G="47" B="59" A="255"/>
<Vtx X="0" Y="97" Z="82" S="1008" T="368" R="0" G="47" B="118" A="255"/>
<Vtx X="0" Y="43" Z="82" S="1008" T="1008" R="0" G="220" B="122" A="255"/>
<Vtx X="-71" Y="43" Z="41" S="-16" T="1008" R="150" G="220" B="61" A="255"/>
<Vtx X="71" Y="43" Z="-41" S="1008" T="1008" R="106" G="220" B="195" A="255"/>
<Vtx X="71" Y="97" Z="41" S="-16" T="368" R="102" G="47" B="59" A="255"/>
<Vtx X="71" Y="43" Z="41" S="-16" T="1008" R="106" G="220" B="61" A="255"/>
<Vtx X="71" Y="97" Z="-41" S="1008" T="368" R="102" G="47" B="197" A="255"/>
<Vtx X="35" Y="133" Z="-20" S="1008" T="-16" R="97" G="61" B="200" A="255"/>
<Vtx X="71" Y="97" Z="41" S="-16" T="368" R="102" G="47" B="59" A="255"/>
<Vtx X="71" Y="97" Z="-41" S="1008" T="368" R="102" G="47" B="197" A="255"/>
<Vtx X="35" Y="133" Z="20" S="-16" T="-16" R="97" G="61" B="56" A="255"/>
<Vtx X="35" Y="133" Z="20" S="1008" T="-16" R="97" G="61" B="56" A="255"/>
<Vtx X="0" Y="133" Z="41" S="-16" T="-16" R="0" G="61" B="112" A="255"/>
<Vtx X="0" Y="97" Z="82" S="-16" T="368" R="0" G="47" B="118" A="255"/>
<Vtx X="71" Y="97" Z="41" S="1008" T="368" R="102" G="47" B="59" A="255"/>
<Vtx X="71" Y="43" Z="41" S="1008" T="1008" R="106" G="220" B="61" A="255"/>
<Vtx X="0" Y="43" Z="82" S="-16" T="1008" R="0" G="220" B="122" A="255"/>
<Vtx X="-35" Y="133" Z="20" S="1008" T="-16" R="159" G="61" B="56" A="255"/>
<Vtx X="-35" Y="133" Z="-20" S="-16" T="-16" R="159" G="61" B="200" A="255"/>
<Vtx X="-71" Y="97" Z="-41" S="-16" T="368" R="154" G="47" B="197" A="255"/>
<Vtx X="-71" Y="97" Z="41" S="1008" T="368" R="154" G="47" B="59" A="255"/>
<Vtx X="-71" Y="43" Z="41" S="1008" T="1008" R="150" G="220" B="61" A="255"/>
<Vtx X="-71" Y="43" Z="-41" S="-16" T="1008" R="150" G="220" B="195" A="255"/>
<Vtx X="-71" Y="97" Z="-41" S="1008" T="368" R="154" G="47" B="197" A="255"/>
<Vtx X="-35" Y="133" Z="-20" S="1008" T="-16" R="159" G="61" B="200" A="255"/>
<Vtx X="0" Y="133" Z="-41" S="-16" T="-16" R="0" G="61" B="144" A="255"/>
<Vtx X="0" Y="97" Z="-82" S="-16" T="368" R="0" G="47" B="138" A="255"/>
<Vtx X="-71" Y="43" Z="-41" S="1008" T="1008" R="150" G="220" B="195" A="255"/>
<Vtx X="0" Y="43" Z="-82" S="-16" T="1008" R="0" G="220" B="134" A="255"/>
</Vertex>
@@ -0,0 +1,26 @@
<Vertex Version="0">
<Vtx X="0" Y="0" Z="-51" S="240" T="240" R="0" G="150" B="185" A="255"/>
<Vtx X="0" Y="43" Z="-82" S="240" T="-16" R="0" G="220" B="134" A="255"/>
<Vtx X="71" Y="43" Z="-41" S="-16" T="-16" R="106" G="220" B="195" A="255"/>
<Vtx X="44" Y="0" Z="-25" S="-16" T="240" R="61" G="150" B="221" A="255"/>
<Vtx X="44" Y="0" Z="-25" S="240" T="240" R="61" G="150" B="221" A="255"/>
<Vtx X="71" Y="43" Z="-41" S="240" T="-16" R="106" G="220" B="195" A="255"/>
<Vtx X="71" Y="43" Z="41" S="-16" T="-16" R="106" G="220" B="61" A="255"/>
<Vtx X="44" Y="0" Z="25" S="-16" T="240" R="61" G="150" B="35" A="255"/>
<Vtx X="44" Y="0" Z="25" S="240" T="240" R="61" G="150" B="35" A="255"/>
<Vtx X="71" Y="43" Z="41" S="240" T="-16" R="106" G="220" B="61" A="255"/>
<Vtx X="0" Y="43" Z="82" S="-16" T="-16" R="0" G="220" B="122" A="255"/>
<Vtx X="0" Y="0" Z="51" S="-16" T="240" R="0" G="150" B="71" A="255"/>
<Vtx X="0" Y="0" Z="51" S="240" T="240" R="0" G="150" B="71" A="255"/>
<Vtx X="0" Y="43" Z="82" S="240" T="-16" R="0" G="220" B="122" A="255"/>
<Vtx X="-71" Y="43" Z="41" S="-16" T="-16" R="150" G="220" B="61" A="255"/>
<Vtx X="-44" Y="0" Z="25" S="-16" T="240" R="195" G="150" B="35" A="255"/>
<Vtx X="-44" Y="0" Z="25" S="240" T="240" R="195" G="150" B="35" A="255"/>
<Vtx X="-71" Y="43" Z="41" S="240" T="-16" R="150" G="220" B="61" A="255"/>
<Vtx X="-71" Y="43" Z="-41" S="-16" T="-16" R="150" G="220" B="195" A="255"/>
<Vtx X="-44" Y="0" Z="-25" S="-16" T="240" R="195" G="150" B="221" A="255"/>
<Vtx X="-44" Y="0" Z="-25" S="240" T="240" R="195" G="150" B="221" A="255"/>
<Vtx X="-71" Y="43" Z="-41" S="240" T="-16" R="150" G="220" B="195" A="255"/>
<Vtx X="0" Y="43" Z="-82" S="-16" T="-16" R="0" G="220" B="134" A="255"/>
<Vtx X="0" Y="0" Z="-51" S="-16" T="240" R="0" G="150" B="185" A="255"/>
</Vertex>
@@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="0" Y="0" Z="-51" S="357" T="900" R="0" G="150" B="185" A="255"/>
<Vtx X="44" Y="0" Z="-25" S="357" T="685" R="61" G="150" B="221" A="255"/>
<Vtx X="44" Y="0" Z="25" S="171" T="577" R="61" G="150" B="35" A="255"/>
<Vtx X="-44" Y="0" Z="-25" S="171" T="1008" R="195" G="150" B="221" A="255"/>
<Vtx X="0" Y="0" Z="51" S="-16" T="685" R="0" G="150" B="71" A="255"/>
<Vtx X="-44" Y="0" Z="25" S="-16" T="900" R="195" G="150" B="35" A="255"/>
<Vtx X="-44" Y="0" Z="-25" S="171" T="1008" R="195" G="150" B="221" A="255"/>
<Vtx X="44" Y="0" Z="25" S="171" T="577" R="61" G="150" B="35" A="255"/>
</Vertex>
@@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="29" Y="134" Z="-17" S="428" T="240" R="169" G="78" B="50" A="255"/>
<Vtx X="0" Y="134" Z="-34" S="428" T="752" R="0" G="78" B="101" A="255"/>
<Vtx X="-29" Y="134" Z="-17" S="871" T="1008" R="87" G="78" B="50" A="255"/>
<Vtx X="29" Y="134" Z="17" S="871" T="-16" R="169" G="78" B="206" A="255"/>
<Vtx X="-29" Y="134" Z="17" S="-16" T="240" R="87" G="78" B="206" A="255"/>
<Vtx X="0" Y="134" Z="34" S="-16" T="752" R="0" G="78" B="155" A="255"/>
<Vtx X="29" Y="134" Z="17" S="427" T="1008" R="169" G="78" B="206" A="255"/>
<Vtx X="-29" Y="134" Z="-17" S="427" T="-16" R="87" G="78" B="50" A="255"/>
</Vertex>
@@ -0,0 +1,21 @@
<DisplayList Version="0">
<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"/>
<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"/>
<SetTextureLUT Mode="G_TT_NONE"/>
<TileSync/>
<SetTextureImage Path="objects/gameplay_dangeon_keep/PotBaseNoise_8" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_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_MIRROR" MaskS="3" ShiftS="0" MaskT="3" ShiftT="0"/>
<LoadSync/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="63" Dxt="1024"/>
<PipeSync/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="2" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="3" ShiftS="0" MaskT="3" ShiftT="0"/>
<SetTileSize T="0" Uls="0" Ult="0" Lrs="28" Lrt="28"/>
<SetPrimColor M="0" L="0" R="255" G="255" B="255" 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="69" G="38" B="33" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -1,6 +1,6 @@
<DisplayList Version="0">
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_TEXEL0" 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"/>
<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"/>
<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" />
@@ -8,14 +8,14 @@
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetTextureLUT Mode="G_TT_NONE"/>
<TileSync/>
<SetTextureImage Path="objects/object_triforce_piece_0/noise_tex" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_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="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<SetTextureImage Path="objects/gameplay_dangeon_keep/PotFace_32" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_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_MIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<LoadSync/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
<PipeSync/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" 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"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" Line="8" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_MIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
<SetPrimColor M="0" L="0" R="255" G="195" B="0" A="255"/>
<SetPrimColor M="0" L="0" R="255" G="255" B="255" 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="218" G="179" B="131" 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,19 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_boss_soul/mat_gGIBossSoulSkullDL_skull_surface"/>
<CallDisplayList Path="objects/object_boss_soul/gGIBossSoulSkullDL_tri_0"/>
<CallDisplayList Path="objects/object_boss_soul/mat_gGIBossSoulSkullDL_skull_black"/>
<CallDisplayList Path="objects/object_boss_soul/gGIBossSoulSkullDL_tri_1"/>
<CallDisplayList Path="objects/object_boss_soul/mat_gGIBossSoulSkullDL_skull_eyes"/>
<CallDisplayList Path="objects/object_boss_soul/gGIBossSoulSkullDL_tri_2"/>
<CallDisplayList Path="objects/object_boss_soul/mat_gGIBossSoulSkullDL_skull_horns"/>
<CallDisplayList Path="objects/object_boss_soul/gGIBossSoulSkullDL_tri_3"/>
<CallDisplayList Path="objects/object_boss_soul/mat_gGIBossSoulSkullDL_Gem_eyes"/>
<CallDisplayList Path="objects/object_boss_soul/gGIBossSoulSkullDL_tri_4"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,163 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" 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="2" V01="5" V02="4"/>
<Triangle1 V00="2" V01="6" V02="5"/>
<Triangle1 V00="7" V01="6" V02="2"/>
<Triangle1 V00="2" V01="8" V02="7"/>
<Triangle1 V00="2" V01="9" V02="8"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="10" V01="13" V02="12"/>
<Triangle1 V00="10" V01="14" V02="13"/>
<Triangle1 V00="12" V01="13" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_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="2" V01="4" V02="5"/>
<Triangle1 V00="6" V01="5" V02="4"/>
<Triangle1 V00="4" V01="7" V02="6"/>
<Triangle1 V00="4" V01="8" V02="7"/>
<Triangle1 V00="1" V01="8" V02="4"/>
<Triangle1 V00="1" V01="9" V02="8"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="7" V01="8" V02="10"/>
<Triangle1 V00="7" V01="10" V02="11"/>
<Triangle1 V00="11" V01="10" V02="12"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="13" V01="12" V02="14"/>
<Triangle1 V00="15" V01="14" V02="12"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="2" V01="3" V02="0"/>
<Triangle1 V00="4" V01="3" V02="2"/>
<Triangle1 V00="4" V01="5" V02="3"/>
<Triangle1 V00="4" V01="6" V02="5"/>
<Triangle1 V00="4" V01="7" V02="6"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="13" V01="12" V02="8"/>
<Triangle1 V00="14" V01="13" V02="8"/>
<Triangle1 V00="14" V01="8" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="0" V02="2"/>
<Triangle1 V00="2" V01="4" V02="3"/>
<Triangle1 V00="2" V01="5" V02="4"/>
<Triangle1 V00="2" V01="6" V02="5"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="5" V01="7" V02="10"/>
<Triangle1 V00="5" V01="10" V02="11"/>
<Triangle1 V00="11" V01="12" V02="5"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="15" V01="13" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="64" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="2" V01="3" V02="0"/>
<Triangle1 V00="4" V01="0" V02="3"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="4" V01="6" V02="5"/>
<Triangle1 V00="6" V01="4" V02="7"/>
<Triangle1 V00="4" V01="8" V02="7"/>
<Triangle1 V00="4" V01="9" V02="8"/>
<Triangle1 V00="10" V01="9" V02="4"/>
<Triangle1 V00="4" V01="11" V02="10"/>
<Triangle1 V00="11" V01="12" V02="10"/>
<Triangle1 V00="11" V01="13" V02="12"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="14" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="80" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="0" V02="3"/>
<Triangle1 V00="4" V01="3" V02="5"/>
<Triangle1 V00="6" V01="5" V02="3"/>
<Triangle1 V00="6" V01="3" V02="7"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="8" V02="9"/>
<Triangle1 V00="9" V01="10" V02="6"/>
<Triangle1 V00="9" V01="11" V02="10"/>
<Triangle1 V00="11" V01="12" V02="10"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="14" V01="12" V02="13"/>
<Triangle1 V00="14" V01="15" V02="12"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="96" 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="4" V01="6" V02="5"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="7" V01="8" V02="5"/>
<Triangle1 V00="8" V01="7" V02="9"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="5" V02="8"/>
<Triangle1 V00="12" V01="5" V02="11"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="14"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="112" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="1" V01="3" V02="2"/>
<Triangle1 V00="0" V01="4" V02="5"/>
<Triangle1 V00="0" V01="6" V02="4"/>
<Triangle1 V00="4" V01="7" V02="5"/>
<Triangle1 V00="4" V01="8" V02="7"/>
<Triangle1 V00="9" V01="7" V02="8"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="8" V01="11" V02="10"/>
<Triangle1 V00="11" V01="12" V02="10"/>
<Triangle1 V00="11" V01="13" V02="12"/>
<Triangle1 V00="14" V01="12" V02="13"/>
<Triangle1 V00="14" V01="15" V02="12"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="128" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="4" V02="0"/>
<Triangle1 V00="0" V01="5" V02="1"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="6" V01="8" V02="7"/>
<Triangle1 V00="5" V01="7" V02="9"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="11" V01="10" V02="7"/>
<Triangle1 V00="12" V01="9" V02="10"/>
<Triangle1 V00="13" V01="9" V02="12"/>
<Triangle1 V00="14" V01="13" V02="12"/>
<Triangle1 V00="14" V01="12" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="144" Count="14"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="0" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="2" V01="5" V02="4"/>
<Triangle1 V00="6" V01="0" V02="3"/>
<Triangle1 V00="7" V01="0" V02="6"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="6" V02="9"/>
<Triangle1 V00="7" V01="1" V02="0"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="13"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_0" VertexBufferIndex="0" VertexOffset="158" Count="13"/>
<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="7" V02="5"/>
<Triangle1 V00="7" V01="8" V02="5"/>
<Triangle1 V00="7" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="9"/>
<Triangle1 V00="10" V01="11" V02="8"/>
<Triangle1 V00="11" V01="12" V02="8"/>
<Triangle1 V00="5" V01="8" V02="12"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,26 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="2" V01="4" V02="3"/>
<Triangle1 V00="3" V01="5" V02="0"/>
<Triangle1 V00="3" V01="6" V02="5"/>
<Triangle1 V00="5" V01="7" V02="0"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="8" V01="10" V02="11"/>
<Triangle1 V00="10" V01="12" V02="11"/>
<Triangle1 V00="11" V01="13" V02="8"/>
<Triangle1 V00="11" V01="14" V02="13"/>
<Triangle1 V00="13" V01="15" V02="8"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" Count="8"/>
<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="4" V02="3"/>
<Triangle1 V00="5" V01="6" V02="4"/>
<Triangle1 V00="5" V01="7" V02="6"/>
<Triangle1 V00="5" V01="0" V02="7"/>
<Triangle1 V00="0" V01="2" V02="7"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,7 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,48 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_3" VertexBufferIndex="0" VertexOffset="0" 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="3" V01="4" V02="5"/>
<Triangle1 V00="5" V01="4" V02="6"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="7" V01="9" V02="10"/>
<Triangle1 V00="10" V01="9" V02="11"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="14" V01="10" V02="12"/>
<Triangle1 V00="15" V01="10" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_3" VertexBufferIndex="0" VertexOffset="16" 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="2" V01="5" V02="4"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="3" V01="4" V02="7"/>
<Triangle1 V00="7" V01="4" V02="8"/>
<Triangle1 V00="1" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="14" V02="12"/>
<Triangle1 V00="14" V01="15" V02="12"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_3" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="1" V01="3" V02="2"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="4" V01="7" V02="5"/>
<Triangle1 V00="8" V01="7" V02="4"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="11" V01="12" V02="9"/>
<Triangle1 V00="11" V01="13" V02="12"/>
<Triangle1 V00="13" V01="14" V02="12"/>
<Triangle1 V00="9" V01="12" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_3" VertexBufferIndex="0" VertexOffset="48" Count="8"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="2" V01="6" V02="5"/>
<Triangle1 V00="4" V01="5" V02="7"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,245 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="3" V02="0"/>
<Triangle1 V00="5" V01="4" V02="0"/>
<Triangle1 V00="0" V01="6" V02="5"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="6" V01="8" V02="7"/>
<Triangle1 V00="6" V01="9" V02="8"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="11" V01="10" V02="9"/>
<Triangle1 V00="2" V01="11" V02="9"/>
<Triangle1 V00="2" V01="12" V02="11"/>
<Triangle1 V00="12" V01="2" V02="13"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="15" V01="14" V02="13"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="2" V01="3" V02="0"/>
<Triangle1 V00="3" V01="4" V02="0"/>
<Triangle1 V00="4" V01="3" V02="5"/>
<Triangle1 V00="5" V01="3" V02="6"/>
<Triangle1 V00="3" V01="7" V02="6"/>
<Triangle1 V00="3" V01="8" V02="7"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="13" V02="11"/>
<Triangle1 V00="12" V01="14" V02="13"/>
<Triangle1 V00="15" V01="14" V02="12"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="1" V02="0"/>
<Triangle1 V00="3" V01="0" V02="4"/>
<Triangle1 V00="5" V01="3" V02="4"/>
<Triangle1 V00="5" V01="6" V02="3"/>
<Triangle1 V00="5" V01="7" V02="6"/>
<Triangle1 V00="7" V01="8" V02="6"/>
<Triangle1 V00="7" V01="9" V02="8"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="11" V01="10" V02="7"/>
<Triangle1 V00="11" V01="12" V02="10"/>
<Triangle1 V00="11" V01="13" V02="12"/>
<Triangle1 V00="14" V01="12" V02="13"/>
<Triangle1 V00="14" V01="15" V02="12"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="48" 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="5" V01="4" V02="0"/>
<Triangle1 V00="6" V01="5" V02="0"/>
<Triangle1 V00="7" V01="5" V02="6"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="9" V01="7" V02="8"/>
<Triangle1 V00="9" V01="10" V02="7"/>
<Triangle1 V00="9" V01="11" V02="10"/>
<Triangle1 V00="9" V01="12" V02="11"/>
<Triangle1 V00="13" V01="11" V02="12"/>
<Triangle1 V00="13" V01="14" V02="11"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="64" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="0" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="0" V01="5" V02="1"/>
<Triangle1 V00="1" V01="5" V02="6"/>
<Triangle1 V00="5" V01="7" V02="6"/>
<Triangle1 V00="5" V01="8" V02="7"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="9" V01="11" V02="12"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="15" V01="14" V02="13"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="80" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<Triangle1 V00="3" V01="5" V02="4"/>
<Triangle1 V00="3" V01="6" V02="5"/>
<Triangle1 V00="7" V01="4" V02="5"/>
<Triangle1 V00="7" V01="8" V02="4"/>
<Triangle1 V00="9" V01="8" V02="7"/>
<Triangle1 V00="10" V01="9" V02="7"/>
<Triangle1 V00="11" V01="10" V02="7"/>
<Triangle1 V00="11" V01="7" V02="5"/>
<Triangle1 V00="12" V01="10" V02="11"/>
<Triangle1 V00="12" V01="13" V02="10"/>
<Triangle1 V00="13" V01="14" V02="10"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="96" 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="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="5" V02="4"/>
<Triangle1 V00="6" V01="4" V02="7"/>
<Triangle1 V00="6" V01="8" V02="5"/>
<Triangle1 V00="8" V01="9" V02="5"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="11" V01="9" V02="10"/>
<Triangle1 V00="11" V01="12" V02="9"/>
<Triangle1 V00="13" V01="12" V02="11"/>
<Triangle1 V00="12" V01="14" V02="9"/>
<Triangle1 V00="12" V01="15" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="112" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="1" V01="3" V02="4"/>
<Triangle1 V00="1" V01="5" V02="2"/>
<Triangle1 V00="1" V01="6" V02="5"/>
<Triangle1 V00="7" V01="6" V02="1"/>
<Triangle1 V00="2" V01="5" V02="8"/>
<Triangle1 V00="2" V01="8" V02="9"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="13" V02="11"/>
<Triangle1 V00="13" V01="14" V02="11"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="128" 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="6" V01="5" V02="7"/>
<Triangle1 V00="8" V01="7" V02="5"/>
<Triangle1 V00="9" V01="8" V02="5"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="11" V01="10" V02="9"/>
<Triangle1 V00="12" V01="11" V02="9"/>
<Triangle1 V00="13" V01="12" V02="9"/>
<Triangle1 V00="14" V01="13" V02="9"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="144" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="1" V02="4"/>
<Triangle1 V00="4" V01="5" V02="3"/>
<Triangle1 V00="4" V01="6" V02="5"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="9" V01="8" V02="6"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="11" V01="10" V02="9"/>
<Triangle1 V00="12" V01="11" V02="9"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="13" V01="12" V02="14"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="160" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="2" V02="1"/>
<Triangle1 V00="3" V01="1" V02="4"/>
<Triangle1 V00="4" V01="1" V02="5"/>
<Triangle1 V00="6" V01="5" V02="1"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="6" V01="8" V02="7"/>
<Triangle1 V00="9" V01="7" V02="8"/>
<Triangle1 V00="9" V01="10" V02="7"/>
<Triangle1 V00="9" V01="11" V02="10"/>
<Triangle1 V00="9" V01="12" V02="11"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="13" V02="14"/>
<Triangle1 V00="13" V01="15" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="176" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="1" V01="3" V02="2"/>
<Triangle1 V00="1" V01="4" V02="3"/>
<Triangle1 V00="1" V01="5" V02="4"/>
<Triangle1 V00="5" V01="6" V02="4"/>
<Triangle1 V00="5" V01="7" V02="6"/>
<Triangle1 V00="8" V01="6" V02="7"/>
<Triangle1 V00="8" V01="9" V02="6"/>
<Triangle1 V00="8" V01="10" V02="9"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="10" V01="12" V02="11"/>
<Triangle1 V00="10" V01="13" V02="12"/>
<Triangle1 V00="14" V01="13" V02="10"/>
<Triangle1 V00="14" V01="15" V02="13"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="192" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="2" V01="1" V02="3"/>
<Triangle1 V00="2" V01="3" V02="4"/>
<Triangle1 V00="3" V01="5" V02="4"/>
<Triangle1 V00="4" V01="5" V02="6"/>
<Triangle1 V00="5" V01="7" V02="6"/>
<Triangle1 V00="5" V01="8" V02="7"/>
<Triangle1 V00="4" V01="6" V02="9"/>
<Triangle1 V00="4" V01="9" V02="10"/>
<Triangle1 V00="11" V01="10" V02="9"/>
<Triangle1 V00="11" V01="9" V02="12"/>
<Triangle1 V00="13" V01="11" V02="12"/>
<Triangle1 V00="13" V01="12" V02="14"/>
<Triangle1 V00="15" V01="13" V02="14"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="208" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="1" V02="0"/>
<Triangle1 V00="3" V01="4" V02="1"/>
<Triangle1 V00="5" V01="4" V02="3"/>
<Triangle1 V00="6" V01="5" V02="3"/>
<Triangle1 V00="5" V01="7" V02="4"/>
<Triangle1 V00="7" V01="8" V02="4"/>
<Triangle1 V00="7" V01="9" V02="8"/>
<Triangle1 V00="10" V01="8" V02="9"/>
<Triangle1 V00="10" V01="11" V02="8"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="13" V02="11"/>
<Triangle1 V00="12" V01="14" V02="13"/>
<Triangle1 V00="15" V01="11" V02="13"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="224" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="0" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="2" V01="6" V02="5"/>
<Triangle1 V00="4" V01="5" V02="7"/>
<Triangle1 V00="8" V01="4" V02="7"/>
<Triangle1 V00="8" V01="9" V02="4"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="13" V01="12" V02="10"/>
<Triangle1 V00="13" V01="14" V02="12"/>
<Triangle1 V00="15" V01="14" V02="13"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="240" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="3" V01="6" V02="4"/>
<Triangle1 V00="4" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="6" V02="9"/>
<Triangle1 V00="10" V01="7" V02="8"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="14" V01="12" V02="11"/>
<Triangle1 V00="14" V01="11" V02="15"/>
<LoadVertices Path="objects/object_boss_soul/gGIBossSoulSkullDL_vtx_4" VertexBufferIndex="0" VertexOffset="256" Count="9"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="2" V01="4" V02="3"/>
<Triangle1 V00="2" V01="5" V02="4"/>
<Triangle1 V00="6" V01="5" V02="2"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="5" V01="8" V02="4"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,173 @@
<Vertex Version="0">
<Vtx X="18" Y="17" Z="0" S="147" T="-17" R="87" G="69" B="194" A="255"/>
<Vtx X="16" Y="14" Z="-8" S="239" T="-17" R="55" G="65" B="161" A="255"/>
<Vtx X="9" Y="17" Z="-8" S="239" T="-81" R="16" G="78" B="157" A="255"/>
<Vtx X="9" Y="22" Z="1" S="147" T="-81" R="12" G="111" B="196" A="255"/>
<Vtx X="0" Y="18" Z="-7" S="239" T="-145" R="249" G="91" B="167" A="255"/>
<Vtx X="0" Y="11" Z="-9" S="111" T="-145" R="246" G="32" B="133" A="255"/>
<Vtx X="4" Y="11" Z="-9" S="111" T="-113" R="1" G="23" B="131" A="255"/>
<Vtx X="9" Y="6" Z="-10" S="15" T="-17" R="9" G="11" B="130" A="255"/>
<Vtx X="18" Y="8" Z="-8" S="47" T="111" R="74" G="18" B="154" A="255"/>
<Vtx X="16" Y="14" Z="-8" S="111" T="111" R="55" G="65" B="161" A="255"/>
<Vtx X="18" Y="17" Z="0" S="111" T="19" R="87" G="69" B="194" A="255"/>
<Vtx X="22" Y="10" Z="0" S="47" T="19" R="122" G="20" B="225" A="255"/>
<Vtx X="22" Y="10" Z="7" S="47" T="-17" R="35" G="4" B="122" A="255"/>
<Vtx X="19" Y="17" Z="7" S="111" T="-17" R="41" G="18" B="119" A="255"/>
<Vtx X="19" Y="17" Z="6" S="111" T="-11" R="103" G="230" B="69" A="255"/>
<Vtx X="10" Y="22" Z="8" S="111" T="-81" R="18" G="37" B="120" A="255"/>
<Vtx X="19" Y="17" Z="7" S="111" T="-17" R="41" G="18" B="119" A="255"/>
<Vtx X="10" Y="22" Z="7" S="117" T="-81" R="210" G="73" B="94" A="255"/>
<Vtx X="10" Y="22" Z="8" S="111" T="-81" R="18" G="37" B="120" A="255"/>
<Vtx X="19" Y="17" Z="6" S="117" T="-17" R="103" G="230" B="69" A="255"/>
<Vtx X="1" Y="23" Z="9" S="111" T="-145" R="10" G="32" B="123" A="255"/>
<Vtx X="-7" Y="22" Z="9" S="111" T="-81" R="3" G="37" B="122" A="255"/>
<Vtx X="-7" Y="22" Z="8" S="117" T="-81" R="62" G="73" B="84" A="255"/>
<Vtx X="-8" Y="22" Z="3" S="147" T="-81" R="234" G="112" B="200" A="255"/>
<Vtx X="1" Y="23" Z="2" S="147" T="-145" R="253" G="121" B="217" A="255"/>
<Vtx X="9" Y="22" Z="1" S="147" T="-81" R="12" G="111" B="196" A="255"/>
<Vtx X="0" Y="18" Z="-7" S="239" T="-145" R="249" G="91" B="167" A="255"/>
<Vtx X="-9" Y="17" Z="-6" S="239" T="-81" R="222" G="78" B="161" A="255"/>
<Vtx X="0" Y="11" Z="-9" S="111" T="-145" R="246" G="32" B="133" A="255"/>
<Vtx X="-5" Y="11" Z="-8" S="111" T="-113" R="233" G="23" B="133" A="255"/>
<Vtx X="0" Y="3" Z="-10" S="-17" T="-145" R="245" G="0" B="129" A="255"/>
<Vtx X="4" Y="11" Z="-9" S="111" T="-113" R="1" G="23" B="131" A="255"/>
<Vtx X="0" Y="3" Z="-10" S="-17" T="-145" R="245" G="0" B="129" A="255"/>
<Vtx X="4" Y="11" Z="-9" S="111" T="-113" R="1" G="23" B="131" A="255"/>
<Vtx X="9" Y="6" Z="-10" S="15" T="-17" R="9" G="11" B="130" A="255"/>
<Vtx X="9" Y="2" Z="-10" S="-17" T="-17" R="13" G="249" B="130" A="255"/>
<Vtx X="18" Y="8" Z="-8" S="47" T="111" R="74" G="18" B="154" A="255"/>
<Vtx X="18" Y="0" Z="-8" S="-17" T="111" R="86" G="227" B="167" A="255"/>
<Vtx X="21" Y="0" Z="0" S="-17" T="19" R="118" G="218" B="229" A="255"/>
<Vtx X="22" Y="10" Z="0" S="47" T="19" R="122" G="20" B="225" A="255"/>
<Vtx X="22" Y="10" Z="7" S="47" T="-17" R="35" G="4" B="122" A="255"/>
<Vtx X="22" Y="0" Z="7" S="-17" T="-17" R="50" G="244" B="116" A="255"/>
<Vtx X="16" Y="-9" Z="7" S="-81" T="-17" R="48" G="250" B="118" A="255"/>
<Vtx X="12" Y="4" Z="8" S="-4" T="-71" R="11" G="0" B="127" A="255"/>
<Vtx X="13" Y="7" Z="7" S="23" T="-65" R="11" G="0" B="127" A="255"/>
<Vtx X="12" Y="11" Z="8" S="45" T="-73" R="11" G="0" B="127" A="255"/>
<Vtx X="8" Y="12" Z="8" S="49" T="-96" R="11" G="0" B="127" A="255"/>
<Vtx X="10" Y="22" Z="8" S="111" T="-81" R="18" G="37" B="120" A="255"/>
<Vtx X="5" Y="11" Z="8" S="35" T="-119" R="11" G="0" B="127" A="255"/>
<Vtx X="8" Y="12" Z="8" S="49" T="-96" R="11" G="0" B="127" A="255"/>
<Vtx X="10" Y="22" Z="8" S="111" T="-81" R="18" G="37" B="120" A="255"/>
<Vtx X="-2" Y="11" Z="9" S="35" T="-119" R="10" G="0" B="127" A="255"/>
<Vtx X="-6" Y="12" Z="9" S="49" T="-96" R="10" G="0" B="127" A="255"/>
<Vtx X="-19" Y="10" Z="10" S="47" T="-17" R="243" G="4" B="126" A="255"/>
<Vtx X="-7" Y="22" Z="9" S="111" T="-81" R="3" G="37" B="122" A="255"/>
<Vtx X="-16" Y="17" Z="10" S="111" T="-17" R="236" G="18" B="124" A="255"/>
<Vtx X="-7" Y="22" Z="8" S="117" T="-81" R="62" G="73" B="84" A="255"/>
<Vtx X="-16" Y="17" Z="9" S="117" T="-17" R="166" G="230" B="86" A="255"/>
<Vtx X="-16" Y="17" Z="9" S="111" T="-11" R="166" G="230" B="86" A="255"/>
<Vtx X="-17" Y="17" Z="3" S="111" T="19" R="159" G="69" B="210" A="255"/>
<Vtx X="-20" Y="10" Z="4" S="47" T="19" R="131" G="20" B="247" A="255"/>
<Vtx X="-18" Y="8" Z="-5" S="47" T="111" R="166" G="18" B="168" A="255"/>
<Vtx X="-16" Y="14" Z="-5" S="111" T="111" R="185" G="65" B="172" A="255"/>
<Vtx X="-9" Y="6" Z="-8" S="15" T="-17" R="225" G="11" B="133" A="255"/>
<Vtx X="-9" Y="6" Z="-8" S="15" T="-17" R="225" G="11" B="133" A="255"/>
<Vtx X="-16" Y="14" Z="-5" S="111" T="111" R="185" G="65" B="172" A="255"/>
<Vtx X="-9" Y="17" Z="-6" S="239" T="-81" R="222" G="78" B="161" A="255"/>
<Vtx X="-5" Y="11" Z="-8" S="111" T="-113" R="233" G="23" B="133" A="255"/>
<Vtx X="0" Y="3" Z="-10" S="-17" T="-145" R="245" G="0" B="129" A="255"/>
<Vtx X="-9" Y="2" Z="-8" S="-17" T="-17" R="222" G="249" B="134" A="255"/>
<Vtx X="-7" Y="-1" Z="-8" S="-49" T="-17" R="231" G="238" B="133" A="255"/>
<Vtx X="-5" Y="-1" Z="-8" S="-145" T="-113" R="225" G="236" B="134" A="255"/>
<Vtx X="0" Y="-8" Z="-9" S="-145" T="-145" R="245" G="237" B="131" A="255"/>
<Vtx X="4" Y="-1" Z="-9" S="-145" T="-113" R="9" G="236" B="131" A="255"/>
<Vtx X="7" Y="-1" Z="-9" S="-49" T="-17" R="3" G="238" B="130" A="255"/>
<Vtx X="9" Y="2" Z="-10" S="-17" T="-17" R="13" G="249" B="130" A="255"/>
<Vtx X="14" Y="-6" Z="-8" S="-81" T="111" R="92" G="232" B="171" A="255"/>
<Vtx X="18" Y="0" Z="-8" S="-17" T="111" R="86" G="227" B="167" A="255"/>
<Vtx X="21" Y="0" Z="0" S="-17" T="19" R="118" G="218" B="229" A="255"/>
<Vtx X="16" Y="-9" Z="1" S="-81" T="19" R="124" G="236" B="235" A="255"/>
<Vtx X="16" Y="-9" Z="1" S="-81" T="19" R="124" G="236" B="235" A="255"/>
<Vtx X="21" Y="0" Z="0" S="-17" T="19" R="118" G="218" B="229" A="255"/>
<Vtx X="22" Y="0" Z="7" S="-17" T="-17" R="50" G="244" B="116" A="255"/>
<Vtx X="16" Y="-9" Z="7" S="-81" T="-17" R="48" G="250" B="118" A="255"/>
<Vtx X="18" Y="-17" Z="0" S="-145" T="19" R="7" G="134" B="221" A="255"/>
<Vtx X="19" Y="-17" Z="7" S="-145" T="-17" R="12" G="242" B="126" A="255"/>
<Vtx X="10" Y="-9" Z="8" S="-145" T="-81" R="30" G="219" B="118" A="255"/>
<Vtx X="12" Y="4" Z="8" S="-4" T="-71" R="11" G="0" B="127" A="255"/>
<Vtx X="8" Y="2" Z="8" S="-21" T="-99" R="11" G="0" B="127" A="255"/>
<Vtx X="5" Y="4" Z="8" S="-8" T="-121" R="11" G="0" B="127" A="255"/>
<Vtx X="4" Y="-5" Z="8" S="-59" T="-133" R="8" G="0" B="127" A="255"/>
<Vtx X="4" Y="7" Z="8" S="13" T="-127" R="11" G="0" B="127" A="255"/>
<Vtx X="1" Y="2" Z="9" S="-26" T="-145" R="11" G="0" B="127" A="255"/>
<Vtx X="5" Y="11" Z="8" S="35" T="-119" R="11" G="0" B="127" A="255"/>
<Vtx X="-2" Y="11" Z="9" S="35" T="-119" R="10" G="0" B="127" A="255"/>
<Vtx X="-1" Y="7" Z="9" S="13" T="-127" R="10" G="0" B="127" A="255"/>
<Vtx X="-2" Y="-5" Z="9" S="-59" T="-133" R="14" G="0" B="126" A="255"/>
<Vtx X="1" Y="2" Z="9" S="-26" T="-145" R="11" G="0" B="127" A="255"/>
<Vtx X="-1" Y="7" Z="9" S="13" T="-127" R="10" G="0" B="127" A="255"/>
<Vtx X="-2" Y="4" Z="9" S="-8" T="-121" R="10" G="0" B="127" A="255"/>
<Vtx X="-6" Y="2" Z="9" S="-21" T="-99" R="10" G="0" B="127" A="255"/>
<Vtx X="-19" Y="0" Z="10" S="-17" T="-17" R="227" G="244" B="123" A="255"/>
<Vtx X="-10" Y="4" Z="9" S="-4" T="-71" R="10" G="0" B="127" A="255"/>
<Vtx X="-11" Y="7" Z="10" S="23" T="-65" R="10" G="0" B="127" A="255"/>
<Vtx X="-19" Y="10" Z="10" S="47" T="-17" R="243" G="4" B="126" A="255"/>
<Vtx X="-9" Y="11" Z="9" S="45" T="-73" R="10" G="0" B="127" A="255"/>
<Vtx X="-6" Y="12" Z="9" S="49" T="-96" R="10" G="0" B="127" A="255"/>
<Vtx X="-19" Y="0" Z="4" S="-17" T="19" R="135" G="218" B="250" A="255"/>
<Vtx X="-14" Y="-9" Z="3" S="-81" T="19" R="131" G="236" B="0" A="255"/>
<Vtx X="-14" Y="-6" Z="-6" S="-81" T="111" R="151" G="232" B="189" A="255"/>
<Vtx X="-18" Y="0" Z="-5" S="-17" T="111" R="156" G="227" B="183" A="255"/>
<Vtx X="-18" Y="8" Z="-5" S="47" T="111" R="166" G="18" B="168" A="255"/>
<Vtx X="-18" Y="8" Z="-5" S="47" T="111" R="166" G="18" B="168" A="255"/>
<Vtx X="-19" Y="0" Z="4" S="-17" T="19" R="135" G="218" B="250" A="255"/>
<Vtx X="-20" Y="10" Z="4" S="47" T="19" R="131" G="20" B="247" A="255"/>
<Vtx X="-19" Y="10" Z="10" S="47" T="-17" R="243" G="4" B="126" A="255"/>
<Vtx X="-9" Y="2" Z="-8" S="-17" T="-17" R="222" G="249" B="134" A="255"/>
<Vtx X="-18" Y="0" Z="-5" S="-17" T="111" R="156" G="227" B="183" A="255"/>
<Vtx X="-9" Y="6" Z="-8" S="15" T="-17" R="225" G="11" B="133" A="255"/>
<Vtx X="-14" Y="-6" Z="-6" S="-81" T="111" R="151" G="232" B="189" A="255"/>
<Vtx X="-7" Y="-1" Z="-8" S="-49" T="-17" R="231" G="238" B="133" A="255"/>
<Vtx X="-16" Y="-13" Z="-5" S="-273" T="-17" R="241" G="173" B="161" A="255"/>
<Vtx X="-9" Y="-7" Z="-6" S="-273" T="-81" R="205" G="176" B="171" A="255"/>
<Vtx X="-5" Y="-1" Z="-8" S="-145" T="-113" R="225" G="236" B="134" A="255"/>
<Vtx X="0" Y="-20" Z="-7" S="-273" T="-145" R="248" G="179" B="155" A="255"/>
<Vtx X="0" Y="-8" Z="-9" S="-145" T="-145" R="245" G="237" B="131" A="255"/>
<Vtx X="4" Y="-1" Z="-9" S="-145" T="-113" R="9" G="236" B="131" A="255"/>
<Vtx X="9" Y="-7" Z="-8" S="-273" T="-81" R="35" G="176" B="164" A="255"/>
<Vtx X="16" Y="-13" Z="-8" S="-273" T="-17" R="255" G="173" B="160" A="255"/>
<Vtx X="9" Y="-7" Z="-8" S="-273" T="-81" R="35" G="176" B="164" A="255"/>
<Vtx X="4" Y="-1" Z="-9" S="-145" T="-113" R="9" G="236" B="131" A="255"/>
<Vtx X="7" Y="-1" Z="-9" S="-49" T="-17" R="3" G="238" B="130" A="255"/>
<Vtx X="14" Y="-6" Z="-8" S="-81" T="111" R="92" G="232" B="171" A="255"/>
<Vtx X="9" Y="-9" Z="1" S="-180" T="-81" R="53" G="144" B="226" A="255"/>
<Vtx X="18" Y="-17" Z="0" S="-180" T="-17" R="7" G="134" B="221" A="255"/>
<Vtx X="10" Y="-9" Z="8" S="-145" T="-81" R="30" G="219" B="118" A="255"/>
<Vtx X="19" Y="-17" Z="7" S="-145" T="-17" R="12" G="242" B="126" A="255"/>
<Vtx X="1" Y="-27" Z="9" S="-145" T="-145" R="11" G="237" B="125" A="255"/>
<Vtx X="1" Y="-4" Z="9" S="-59" T="-145" R="11" G="1" B="127" A="255"/>
<Vtx X="4" Y="-5" Z="8" S="-59" T="-133" R="8" G="0" B="127" A="255"/>
<Vtx X="-7" Y="-9" Z="9" S="-145" T="-81" R="247" G="219" B="121" A="255"/>
<Vtx X="-8" Y="-9" Z="3" S="-180" T="-81" R="199" G="144" B="235" A="255"/>
<Vtx X="-17" Y="-17" Z="3" S="-180" T="-17" R="243" G="134" B="223" A="255"/>
<Vtx X="-16" Y="-17" Z="10" S="-145" T="-17" R="9" G="242" B="126" A="255"/>
<Vtx X="-14" Y="-9" Z="10" S="-81" T="-17" R="229" G="250" B="124" A="255"/>
<Vtx X="-16" Y="-17" Z="10" S="-145" T="-17" R="9" G="242" B="126" A="255"/>
<Vtx X="-7" Y="-9" Z="9" S="-145" T="-81" R="247" G="219" B="121" A="255"/>
<Vtx X="-19" Y="0" Z="10" S="-17" T="-17" R="227" G="244" B="123" A="255"/>
<Vtx X="-2" Y="-5" Z="9" S="-59" T="-133" R="14" G="0" B="126" A="255"/>
<Vtx X="1" Y="-4" Z="9" S="-59" T="-145" R="11" G="1" B="127" A="255"/>
<Vtx X="-14" Y="-9" Z="3" S="-81" T="19" R="131" G="236" B="0" A="255"/>
<Vtx X="-17" Y="-17" Z="3" S="-145" T="19" R="243" G="134" B="223" A="255"/>
<Vtx X="-16" Y="-13" Z="-5" S="-145" T="111" R="241" G="173" B="161" A="255"/>
<Vtx X="-14" Y="-6" Z="-6" S="-81" T="111" R="151" G="232" B="189" A="255"/>
<Vtx X="16" Y="-13" Z="-8" S="-145" T="111" R="255" G="173" B="160" A="255"/>
<Vtx X="14" Y="-6" Z="-8" S="-81" T="111" R="92" G="232" B="171" A="255"/>
<Vtx X="16" Y="-9" Z="1" S="-81" T="19" R="124" G="236" B="235" A="255"/>
<Vtx X="18" Y="-17" Z="0" S="-145" T="19" R="7" G="134" B="221" A="255"/>
<Vtx X="-17" Y="17" Z="3" S="147" T="-17" R="159" G="69" B="210" A="255"/>
<Vtx X="-9" Y="17" Z="-6" S="239" T="-81" R="222" G="78" B="161" A="255"/>
<Vtx X="-16" Y="14" Z="-5" S="239" T="-17" R="185" G="65" B="172" A="255"/>
<Vtx X="-8" Y="22" Z="3" S="147" T="-81" R="234" G="112" B="200" A="255"/>
<Vtx X="-16" Y="-13" Z="-5" S="-273" T="-17" R="241" G="173" B="161" A="255"/>
<Vtx X="-8" Y="-9" Z="3" S="-180" T="-81" R="199" G="144" B="235" A="255"/>
<Vtx X="-17" Y="-17" Z="3" S="-180" T="-17" R="243" G="134" B="223" A="255"/>
<Vtx X="-9" Y="-7" Z="-6" S="-273" T="-81" R="205" G="176" B="171" A="255"/>
<Vtx X="1" Y="-27" Z="2" S="-180" T="-145" R="254" G="133" B="223" A="255"/>
<Vtx X="0" Y="-20" Z="-7" S="-273" T="-145" R="248" G="179" B="155" A="255"/>
<Vtx X="9" Y="-7" Z="-8" S="-273" T="-81" R="35" G="176" B="164" A="255"/>
<Vtx X="9" Y="-9" Z="1" S="-180" T="-81" R="53" G="144" B="226" A="255"/>
<Vtx X="1" Y="-27" Z="9" S="-145" T="-145" R="11" G="237" B="125" A="255"/>
</Vertex>
@@ -0,0 +1,26 @@
<Vertex Version="0">
<Vtx X="13" Y="7" Z="7" S="23" T="-65" R="11" G="0" B="127" A="255"/>
<Vtx X="12" Y="11" Z="8" S="45" T="-73" R="11" G="0" B="127" A="255"/>
<Vtx X="8" Y="12" Z="8" S="49" T="-96" R="11" G="0" B="127" A="255"/>
<Vtx X="4" Y="7" Z="8" S="13" T="-127" R="11" G="0" B="127" A="255"/>
<Vtx X="5" Y="11" Z="8" S="35" T="-119" R="11" G="0" B="127" A="255"/>
<Vtx X="8" Y="2" Z="8" S="-21" T="-99" R="11" G="0" B="127" A="255"/>
<Vtx X="5" Y="4" Z="8" S="-8" T="-121" R="11" G="0" B="127" A="255"/>
<Vtx X="12" Y="4" Z="8" S="-4" T="-71" R="11" G="0" B="127" A="255"/>
<Vtx X="-6" Y="12" Z="9" S="49" T="-96" R="10" G="0" B="127" A="255"/>
<Vtx X="-9" Y="11" Z="9" S="45" T="-73" R="10" G="0" B="127" A="255"/>
<Vtx X="-11" Y="7" Z="10" S="23" T="-65" R="10" G="0" B="127" A="255"/>
<Vtx X="-6" Y="2" Z="9" S="-21" T="-99" R="10" G="0" B="127" A="255"/>
<Vtx X="-10" Y="4" Z="9" S="-4" T="-71" R="10" G="0" B="127" A="255"/>
<Vtx X="-1" Y="7" Z="9" S="13" T="-127" R="10" G="0" B="127" A="255"/>
<Vtx X="-2" Y="4" Z="9" S="-8" T="-121" R="10" G="0" B="127" A="255"/>
<Vtx X="-2" Y="11" Z="9" S="35" T="-119" R="10" G="0" B="127" A="255"/>
<Vtx X="4" Y="-5" Z="8" S="-59" T="-133" R="8" G="0" B="127" A="255"/>
<Vtx X="1" Y="2" Z="9" S="-26" T="-145" R="11" G="0" B="127" A="255"/>
<Vtx X="1" Y="1" Z="7" S="-26" T="-145" R="225" G="243" B="123" A="255"/>
<Vtx X="-2" Y="-5" Z="9" S="-59" T="-133" R="14" G="0" B="126" A="255"/>
<Vtx X="-1" Y="-5" Z="7" S="-59" T="-133" R="74" G="57" B="86" A="255"/>
<Vtx X="1" Y="-4" Z="9" S="-59" T="-145" R="11" G="1" B="127" A="255"/>
<Vtx X="1" Y="-4" Z="7" S="-59" T="-145" R="10" G="44" B="119" A="255"/>
<Vtx X="4" Y="-5" Z="7" S="-59" T="-133" R="198" G="57" B="98" A="255"/>
</Vertex>
@@ -0,0 +1,6 @@
<Vertex Version="0">
<Vtx X="4" Y="-5" Z="7" S="1008" T="1008" R="198" G="57" B="98" A="255"/>
<Vtx X="1" Y="1" Z="7" S="1008" T="582" R="225" G="243" B="123" A="255"/>
<Vtx X="1" Y="-4" Z="7" S="883" T="967" R="10" G="44" B="119" A="255"/>
<Vtx X="-1" Y="-5" Z="7" S="1008" T="1008" R="74" G="57" B="86" A="255"/>
</Vertex>
@@ -0,0 +1,58 @@
<Vertex Version="0">
<Vtx X="19" Y="17" Z="6" S="111" T="-11" R="103" G="230" B="69" A="255"/>
<Vtx X="18" Y="17" Z="0" S="111" T="19" R="87" G="69" B="194" A="255"/>
<Vtx X="21" Y="23" Z="4" S="111" T="19" R="100" G="245" B="178" A="255"/>
<Vtx X="21" Y="23" Z="10" S="111" T="-11" R="73" G="199" B="87" A="255"/>
<Vtx X="22" Y="27" Z="4" S="111" T="19" R="72" G="242" B="152" A="255"/>
<Vtx X="22" Y="25" Z="9" S="111" T="-11" R="93" G="225" B="81" A="255"/>
<Vtx X="27" Y="35" Z="9" S="111" T="-11" R="106" G="67" B="20" A="255"/>
<Vtx X="10" Y="22" Z="7" S="117" T="-81" R="210" G="73" B="94" A="255"/>
<Vtx X="19" Y="17" Z="6" S="117" T="-17" R="103" G="230" B="69" A="255"/>
<Vtx X="21" Y="23" Z="10" S="117" T="-17" R="73" G="199" B="87" A="255"/>
<Vtx X="13" Y="27" Z="11" S="117" T="-81" R="178" G="10" B="100" A="255"/>
<Vtx X="22" Y="25" Z="9" S="117" T="-17" R="93" G="225" B="81" A="255"/>
<Vtx X="16" Y="33" Z="11" S="117" T="-81" R="209" G="73" B="93" A="255"/>
<Vtx X="27" Y="35" Z="9" S="117" T="-81" R="106" G="67" B="20" A="255"/>
<Vtx X="12" Y="27" Z="5" S="147" T="-81" R="171" G="69" B="191" A="255"/>
<Vtx X="9" Y="22" Z="1" S="147" T="-81" R="12" G="111" B="196" A="255"/>
<Vtx X="18" Y="17" Z="0" S="147" T="-17" R="87" G="69" B="194" A="255"/>
<Vtx X="9" Y="22" Z="1" S="147" T="-81" R="12" G="111" B="196" A="255"/>
<Vtx X="12" Y="27" Z="5" S="147" T="-81" R="171" G="69" B="191" A="255"/>
<Vtx X="21" Y="23" Z="4" S="147" T="-17" R="100" G="245" B="178" A="255"/>
<Vtx X="17" Y="34" Z="5" S="147" T="-81" R="209" G="96" B="187" A="255"/>
<Vtx X="16" Y="33" Z="11" S="117" T="-81" R="209" G="73" B="93" A="255"/>
<Vtx X="27" Y="35" Z="9" S="147" T="-81" R="106" G="67" B="20" A="255"/>
<Vtx X="22" Y="27" Z="4" S="147" T="-17" R="72" G="242" B="152" A="255"/>
<Vtx X="27" Y="35" Z="9" S="147" T="-17" R="106" G="67" B="20" A="255"/>
<Vtx X="10" Y="22" Z="7" S="117" T="-81" R="210" G="73" B="94" A="255"/>
<Vtx X="13" Y="27" Z="11" S="117" T="-81" R="178" G="10" B="100" A="255"/>
<Vtx X="-16" Y="17" Z="9" S="111" T="-11" R="166" G="230" B="86" A="255"/>
<Vtx X="-19" Y="23" Z="8" S="111" T="19" R="144" G="245" B="197" A="255"/>
<Vtx X="-17" Y="17" Z="3" S="111" T="19" R="159" G="69" B="210" A="255"/>
<Vtx X="-18" Y="23" Z="13" S="111" T="-11" R="199" G="199" B="98" A="255"/>
<Vtx X="-20" Y="27" Z="8" S="111" T="19" R="167" G="242" B="166" A="255"/>
<Vtx X="-18" Y="23" Z="13" S="111" T="-11" R="199" G="199" B="98" A="255"/>
<Vtx X="-19" Y="25" Z="13" S="111" T="-11" R="179" G="225" B="96" A="255"/>
<Vtx X="-20" Y="27" Z="8" S="111" T="19" R="167" G="242" B="166" A="255"/>
<Vtx X="-24" Y="35" Z="13" S="111" T="-11" R="155" G="67" B="38" A="255"/>
<Vtx X="-7" Y="22" Z="8" S="117" T="-81" R="62" G="73" B="84" A="255"/>
<Vtx X="-18" Y="23" Z="13" S="117" T="-17" R="199" G="199" B="98" A="255"/>
<Vtx X="-16" Y="17" Z="9" S="117" T="-17" R="166" G="230" B="86" A="255"/>
<Vtx X="-9" Y="27" Z="13" S="117" T="-81" R="94" G="10" B="85" A="255"/>
<Vtx X="-8" Y="22" Z="3" S="147" T="-81" R="234" G="112" B="200" A="255"/>
<Vtx X="-10" Y="27" Z="7" S="147" T="-81" R="72" G="69" B="177" A="255"/>
<Vtx X="-17" Y="17" Z="3" S="147" T="-17" R="159" G="69" B="210" A="255"/>
<Vtx X="-19" Y="23" Z="8" S="147" T="-17" R="144" G="245" B="197" A="255"/>
<Vtx X="-14" Y="34" Z="8" S="147" T="-81" R="34" G="96" B="180" A="255"/>
<Vtx X="-20" Y="27" Z="8" S="147" T="-17" R="167" G="242" B="166" A="255"/>
<Vtx X="-24" Y="35" Z="13" S="147" T="-17" R="155" G="67" B="38" A="255"/>
<Vtx X="-13" Y="33" Z="13" S="117" T="-81" R="62" G="73" B="83" A="255"/>
<Vtx X="-14" Y="34" Z="8" S="147" T="-81" R="34" G="96" B="180" A="255"/>
<Vtx X="-24" Y="35" Z="13" S="147" T="-81" R="155" G="67" B="38" A="255"/>
<Vtx X="-13" Y="33" Z="13" S="117" T="-81" R="62" G="73" B="83" A="255"/>
<Vtx X="-10" Y="27" Z="7" S="147" T="-81" R="72" G="69" B="177" A="255"/>
<Vtx X="-9" Y="27" Z="13" S="117" T="-81" R="94" G="10" B="85" A="255"/>
<Vtx X="-19" Y="25" Z="13" S="117" T="-17" R="179" G="225" B="96" A="255"/>
<Vtx X="-24" Y="35" Z="13" S="117" T="-81" R="155" G="67" B="38" A="255"/>
<Vtx X="-18" Y="23" Z="13" S="117" T="-17" R="199" G="199" B="98" A="255"/>
</Vertex>
@@ -0,0 +1,267 @@
<Vertex Version="0">
<Vtx X="5" Y="5" Z="8" S="422" T="14" R="139" G="208" B="12" A="255"/>
<Vtx X="5" Y="9" Z="8" S="422" T="14" R="137" G="44" B="8" A="255"/>
<Vtx X="8" Y="7" Z="4" S="206" T="14" R="13" G="192" B="147" A="255"/>
<Vtx X="5" Y="7" Z="8" S="422" T="-50" R="129" G="0" B="6" A="255"/>
<Vtx X="6" Y="5" Z="9" S="462" T="14" R="196" G="229" B="109" A="255"/>
<Vtx X="6" Y="4" Z="8" S="422" T="78" R="166" G="166" B="2" A="255"/>
<Vtx X="8" Y="7" Z="4" S="206" T="142" R="13" G="192" B="147" A="255"/>
<Vtx X="7" Y="3" Z="8" S="422" T="142" R="206" G="139" B="8" A="255"/>
<Vtx X="9" Y="3" Z="8" S="422" T="206" R="0" G="129" B="255" A="255"/>
<Vtx X="11" Y="3" Z="8" S="422" T="142" R="54" G="141" B="251" A="255"/>
<Vtx X="10" Y="4" Z="9" S="462" T="142" R="36" G="188" B="101" A="255"/>
<Vtx X="11" Y="4" Z="8" S="422" T="78" R="90" G="167" B="245" A="255"/>
<Vtx X="12" Y="5" Z="7" S="422" T="14" R="119" G="212" B="244" A="255"/>
<Vtx X="12" Y="9" Z="7" S="422" T="14" R="117" G="48" B="248" A="255"/>
<Vtx X="12" Y="7" Z="7" S="422" T="-50" R="126" G="0" B="241" A="255"/>
<Vtx X="12" Y="9" Z="8" S="462" T="14" R="78" G="27" B="97" A="255"/>
<Vtx X="11" Y="10" Z="8" S="422" T="78" R="89" G="90" B="243" A="255"/>
<Vtx X="12" Y="9" Z="8" S="462" T="14" R="78" G="27" B="97" A="255"/>
<Vtx X="12" Y="9" Z="7" S="422" T="14" R="117" G="48" B="248" A="255"/>
<Vtx X="8" Y="7" Z="4" S="206" T="142" R="13" G="192" B="147" A="255"/>
<Vtx X="11" Y="11" Z="8" S="422" T="142" R="52" G="116" B="255" A="255"/>
<Vtx X="9" Y="11" Z="8" S="422" T="206" R="255" G="127" B="255" A="255"/>
<Vtx X="7" Y="11" Z="8" S="422" T="142" R="180" G="102" B="5" A="255"/>
<Vtx X="6" Y="10" Z="8" S="422" T="78" R="165" G="89" B="3" A="255"/>
<Vtx X="5" Y="9" Z="8" S="422" T="14" R="137" G="44" B="8" A="255"/>
<Vtx X="6" Y="9" Z="9" S="462" T="14" R="196" G="27" B="109" A="255"/>
<Vtx X="5" Y="7" Z="8" S="422" T="-50" R="129" G="0" B="6" A="255"/>
<Vtx X="6" Y="7" Z="9" S="462" T="-50" R="189" G="0" B="108" A="255"/>
<Vtx X="6" Y="5" Z="9" S="462" T="14" R="196" G="229" B="109" A="255"/>
<Vtx X="7" Y="7" Z="9" S="462" T="-50" R="236" G="0" B="125" A="255"/>
<Vtx X="7" Y="6" Z="9" S="462" T="14" R="232" G="243" B="124" A="255"/>
<Vtx X="6" Y="5" Z="9" S="462" T="78" R="210" G="200" B="104" A="255"/>
<Vtx X="6" Y="4" Z="8" S="422" T="78" R="166" G="166" B="2" A="255"/>
<Vtx X="6" Y="5" Z="9" S="462" T="78" R="210" G="200" B="104" A="255"/>
<Vtx X="6" Y="5" Z="9" S="462" T="14" R="196" G="229" B="109" A="255"/>
<Vtx X="7" Y="4" Z="9" S="462" T="142" R="238" G="188" B="106" A="255"/>
<Vtx X="7" Y="3" Z="8" S="422" T="142" R="206" G="139" B="8" A="255"/>
<Vtx X="9" Y="3" Z="8" S="422" T="206" R="0" G="129" B="255" A="255"/>
<Vtx X="9" Y="4" Z="9" S="462" T="206" R="9" G="183" B="104" A="255"/>
<Vtx X="10" Y="4" Z="9" S="462" T="142" R="36" G="188" B="101" A="255"/>
<Vtx X="9" Y="5" Z="9" S="462" T="206" R="10" G="225" B="123" A="255"/>
<Vtx X="10" Y="5" Z="9" S="462" T="142" R="23" G="221" B="120" A="255"/>
<Vtx X="11" Y="5" Z="9" S="462" T="78" R="64" G="200" B="95" A="255"/>
<Vtx X="11" Y="4" Z="8" S="422" T="78" R="90" G="167" B="245" A="255"/>
<Vtx X="12" Y="5" Z="8" S="462" T="14" R="78" G="229" B="97" A="255"/>
<Vtx X="12" Y="5" Z="7" S="422" T="14" R="119" G="212" B="244" A="255"/>
<Vtx X="12" Y="7" Z="7" S="422" T="-50" R="126" G="0" B="241" A="255"/>
<Vtx X="12" Y="7" Z="8" S="462" T="-50" R="85" G="0" B="95" A="255"/>
<Vtx X="12" Y="9" Z="8" S="462" T="14" R="78" G="27" B="97" A="255"/>
<Vtx X="12" Y="7" Z="8" S="462" T="-50" R="85" G="0" B="95" A="255"/>
<Vtx X="12" Y="7" Z="7" S="422" T="-50" R="126" G="0" B="241" A="255"/>
<Vtx X="11" Y="7" Z="9" S="462" T="-50" R="42" G="0" B="120" A="255"/>
<Vtx X="11" Y="9" Z="9" S="462" T="14" R="45" G="13" B="118" A="255"/>
<Vtx X="11" Y="10" Z="9" S="462" T="78" R="64" G="56" B="95" A="255"/>
<Vtx X="11" Y="10" Z="8" S="422" T="78" R="89" G="90" B="243" A="255"/>
<Vtx X="10" Y="10" Z="9" S="462" T="142" R="36" G="68" B="101" A="255"/>
<Vtx X="11" Y="11" Z="8" S="422" T="142" R="52" G="116" B="255" A="255"/>
<Vtx X="9" Y="11" Z="8" S="422" T="206" R="255" G="127" B="255" A="255"/>
<Vtx X="9" Y="10" Z="9" S="462" T="206" R="9" G="73" B="104" A="255"/>
<Vtx X="7" Y="10" Z="9" S="462" T="142" R="238" G="68" B="106" A="255"/>
<Vtx X="7" Y="11" Z="8" S="422" T="142" R="180" G="102" B="5" A="255"/>
<Vtx X="6" Y="10" Z="8" S="422" T="78" R="165" G="89" B="3" A="255"/>
<Vtx X="6" Y="10" Z="9" S="462" T="78" R="210" G="56" B="104" A="255"/>
<Vtx X="6" Y="9" Z="9" S="462" T="14" R="196" G="27" B="109" A="255"/>
<Vtx X="7" Y="9" Z="9" S="462" T="14" R="232" G="13" B="124" A="255"/>
<Vtx X="6" Y="10" Z="9" S="462" T="78" R="210" G="56" B="104" A="255"/>
<Vtx X="6" Y="9" Z="9" S="462" T="14" R="196" G="27" B="109" A="255"/>
<Vtx X="7" Y="7" Z="9" S="462" T="-50" R="236" G="0" B="125" A="255"/>
<Vtx X="6" Y="7" Z="9" S="462" T="-50" R="189" G="0" B="108" A="255"/>
<Vtx X="7" Y="9" Z="9" S="462" T="78" R="238" G="29" B="122" A="255"/>
<Vtx X="7" Y="9" Z="9" S="462" T="142" R="255" G="35" B="122" A="255"/>
<Vtx X="7" Y="9" Z="9" S="526" T="142" R="253" G="14" B="126" A="255"/>
<Vtx X="7" Y="9" Z="9" S="526" T="78" R="232" G="13" B="124" A="255"/>
<Vtx X="7" Y="7" Z="9" S="590" T="142" R="254" G="0" B="127" A="255"/>
<Vtx X="7" Y="7" Z="9" S="590" T="78" R="236" G="0" B="125" A="255"/>
<Vtx X="7" Y="6" Z="9" S="526" T="78" R="232" G="243" B="124" A="255"/>
<Vtx X="7" Y="6" Z="9" S="526" T="142" R="253" G="242" B="126" A="255"/>
<Vtx X="7" Y="5" Z="9" S="462" T="78" R="238" G="227" B="122" A="255"/>
<Vtx X="7" Y="5" Z="9" S="462" T="142" R="255" G="221" B="122" A="255"/>
<Vtx X="6" Y="5" Z="9" S="462" T="78" R="210" G="200" B="104" A="255"/>
<Vtx X="6" Y="5" Z="9" S="462" T="78" R="210" G="200" B="104" A="255"/>
<Vtx X="7" Y="5" Z="9" S="462" T="78" R="238" G="227" B="122" A="255"/>
<Vtx X="7" Y="6" Z="9" S="462" T="14" R="232" G="243" B="124" A="255"/>
<Vtx X="7" Y="4" Z="9" S="462" T="142" R="238" G="188" B="106" A="255"/>
<Vtx X="7" Y="5" Z="9" S="462" T="142" R="255" G="221" B="122" A="255"/>
<Vtx X="9" Y="5" Z="9" S="462" T="206" R="10" G="225" B="123" A="255"/>
<Vtx X="9" Y="4" Z="9" S="462" T="206" R="9" G="183" B="104" A="255"/>
<Vtx X="9" Y="6" Z="9" S="526" T="206" R="11" G="243" B="126" A="255"/>
<Vtx X="7" Y="6" Z="9" S="526" T="142" R="253" G="242" B="126" A="255"/>
<Vtx X="9" Y="7" Z="9" S="590" T="206" R="11" G="0" B="127" A="255"/>
<Vtx X="10" Y="6" Z="9" S="526" T="142" R="25" G="242" B="124" A="255"/>
<Vtx X="10" Y="5" Z="9" S="462" T="142" R="23" G="221" B="120" A="255"/>
<Vtx X="10" Y="5" Z="9" S="462" T="78" R="39" G="227" B="117" A="255"/>
<Vtx X="11" Y="6" Z="9" S="526" T="78" R="45" G="243" B="118" A="255"/>
<Vtx X="10" Y="7" Z="9" S="590" T="142" R="24" G="0" B="125" A="255"/>
<Vtx X="11" Y="7" Z="9" S="590" T="78" R="42" G="0" B="120" A="255"/>
<Vtx X="10" Y="7" Z="9" S="590" T="142" R="24" G="0" B="125" A="255"/>
<Vtx X="11" Y="7" Z="9" S="590" T="78" R="42" G="0" B="120" A="255"/>
<Vtx X="11" Y="9" Z="9" S="526" T="78" R="45" G="13" B="118" A="255"/>
<Vtx X="10" Y="9" Z="9" S="526" T="142" R="25" G="14" B="124" A="255"/>
<Vtx X="10" Y="9" Z="9" S="462" T="78" R="39" G="29" B="117" A="255"/>
<Vtx X="10" Y="9" Z="9" S="462" T="142" R="23" G="35" B="120" A="255"/>
<Vtx X="11" Y="10" Z="9" S="462" T="78" R="64" G="56" B="95" A="255"/>
<Vtx X="11" Y="9" Z="9" S="462" T="14" R="45" G="13" B="118" A="255"/>
<Vtx X="10" Y="10" Z="9" S="462" T="142" R="36" G="68" B="101" A="255"/>
<Vtx X="9" Y="9" Z="9" S="462" T="206" R="10" G="31" B="123" A="255"/>
<Vtx X="9" Y="10" Z="9" S="462" T="206" R="9" G="73" B="104" A="255"/>
<Vtx X="7" Y="10" Z="9" S="462" T="142" R="238" G="68" B="106" A="255"/>
<Vtx X="7" Y="9" Z="9" S="462" T="142" R="255" G="35" B="122" A="255"/>
<Vtx X="6" Y="10" Z="9" S="462" T="78" R="210" G="56" B="104" A="255"/>
<Vtx X="9" Y="9" Z="9" S="526" T="206" R="11" G="13" B="126" A="255"/>
<Vtx X="7" Y="9" Z="9" S="526" T="142" R="253" G="14" B="126" A="255"/>
<Vtx X="7" Y="9" Z="9" S="526" T="142" R="253" G="14" B="126" A="255"/>
<Vtx X="9" Y="7" Z="9" S="590" T="206" R="11" G="0" B="127" A="255"/>
<Vtx X="9" Y="9" Z="9" S="526" T="206" R="11" G="13" B="126" A="255"/>
<Vtx X="7" Y="7" Z="9" S="590" T="142" R="254" G="0" B="127" A="255"/>
<Vtx X="7" Y="6" Z="9" S="526" T="142" R="253" G="242" B="126" A="255"/>
<Vtx X="10" Y="9" Z="9" S="526" T="142" R="25" G="14" B="124" A="255"/>
<Vtx X="10" Y="7" Z="9" S="590" T="142" R="24" G="0" B="125" A="255"/>
<Vtx X="10" Y="6" Z="9" S="526" T="142" R="25" G="242" B="124" A="255"/>
<Vtx X="10" Y="9" Z="9" S="462" T="142" R="23" G="35" B="120" A="255"/>
<Vtx X="9" Y="9" Z="9" S="462" T="206" R="10" G="31" B="123" A="255"/>
<Vtx X="11" Y="7" Z="9" S="462" T="-50" R="42" G="0" B="120" A="255"/>
<Vtx X="12" Y="5" Z="8" S="462" T="14" R="78" G="229" B="97" A="255"/>
<Vtx X="12" Y="7" Z="8" S="462" T="-50" R="85" G="0" B="95" A="255"/>
<Vtx X="11" Y="6" Z="9" S="462" T="14" R="45" G="243" B="118" A="255"/>
<Vtx X="11" Y="5" Z="9" S="462" T="78" R="64" G="200" B="95" A="255"/>
<Vtx X="10" Y="5" Z="9" S="462" T="78" R="39" G="227" B="117" A="255"/>
<Vtx X="11" Y="5" Z="9" S="462" T="78" R="64" G="200" B="95" A="255"/>
<Vtx X="10" Y="5" Z="9" S="462" T="78" R="39" G="227" B="117" A="255"/>
<Vtx X="10" Y="5" Z="9" S="462" T="142" R="23" G="221" B="120" A="255"/>
<Vtx X="-2" Y="5" Z="9" S="422" T="14" R="117" G="208" B="248" A="255"/>
<Vtx X="-6" Y="7" Z="5" S="206" T="14" R="224" G="192" B="151" A="255"/>
<Vtx X="-2" Y="9" Z="9" S="422" T="14" R="119" G="44" B="244" A="255"/>
<Vtx X="-2" Y="7" Z="9" S="422" T="-50" R="126" G="0" B="241" A="255"/>
<Vtx X="-3" Y="9" Z="10" S="462" T="14" R="78" G="27" B="97" A="255"/>
<Vtx X="-3" Y="10" Z="9" S="422" T="78" R="89" G="90" B="244" A="255"/>
<Vtx X="-6" Y="7" Z="5" S="206" T="142" R="224" G="192" B="151" A="255"/>
<Vtx X="-4" Y="11" Z="9" S="422" T="142" R="76" G="102" B="252" A="255"/>
<Vtx X="-6" Y="11" Z="9" S="422" T="206" R="1" G="127" B="254" A="255"/>
<Vtx X="-8" Y="11" Z="9" S="422" T="142" R="204" G="116" B="7" A="255"/>
<Vtx X="-9" Y="10" Z="9" S="422" T="78" R="166" G="90" B="3" A="255"/>
<Vtx X="-10" Y="9" Z="9" S="422" T="14" R="139" G="48" B="12" A="255"/>
<Vtx X="-9" Y="9" Z="10" S="462" T="14" R="196" G="27" B="109" A="255"/>
<Vtx X="-9" Y="9" Z="10" S="462" T="14" R="196" G="27" B="109" A="255"/>
<Vtx X="-10" Y="9" Z="9" S="422" T="14" R="139" G="48" B="12" A="255"/>
<Vtx X="-10" Y="7" Z="9" S="422" T="-50" R="129" G="0" B="6" A="255"/>
<Vtx X="-10" Y="5" Z="9" S="422" T="14" R="137" G="212" B="8" A="255"/>
<Vtx X="-6" Y="7" Z="5" S="206" T="14" R="224" G="192" B="151" A="255"/>
<Vtx X="-9" Y="4" Z="9" S="422" T="78" R="166" G="166" B="3" A="255"/>
<Vtx X="-8" Y="3" Z="9" S="422" T="142" R="202" G="141" B="4" A="255"/>
<Vtx X="-8" Y="4" Z="10" S="462" T="142" R="238" G="188" B="106" A="255"/>
<Vtx X="-6" Y="3" Z="9" S="422" T="206" R="0" G="129" B="254" A="255"/>
<Vtx X="-6" Y="7" Z="5" S="206" T="142" R="224" G="192" B="151" A="255"/>
<Vtx X="-4" Y="3" Z="9" S="422" T="142" R="52" G="140" B="255" A="255"/>
<Vtx X="-3" Y="4" Z="9" S="422" T="78" R="89" G="167" B="244" A="255"/>
<Vtx X="-2" Y="5" Z="9" S="422" T="14" R="117" G="208" B="248" A="255"/>
<Vtx X="-3" Y="5" Z="10" S="462" T="14" R="78" G="229" B="97" A="255"/>
<Vtx X="-2" Y="7" Z="9" S="422" T="-50" R="126" G="0" B="241" A="255"/>
<Vtx X="-3" Y="7" Z="10" S="462" T="-50" R="85" G="0" B="95" A="255"/>
<Vtx X="-2" Y="7" Z="9" S="422" T="-50" R="126" G="0" B="241" A="255"/>
<Vtx X="-3" Y="9" Z="10" S="462" T="14" R="78" G="27" B="97" A="255"/>
<Vtx X="-3" Y="7" Z="10" S="462" T="-50" R="85" G="0" B="95" A="255"/>
<Vtx X="-4" Y="7" Z="10" S="462" T="-50" R="42" G="0" B="120" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="462" T="14" R="45" G="13" B="118" A="255"/>
<Vtx X="-4" Y="10" Z="10" S="462" T="78" R="64" G="56" B="95" A="255"/>
<Vtx X="-3" Y="10" Z="9" S="422" T="78" R="89" G="90" B="244" A="255"/>
<Vtx X="-4" Y="10" Z="10" S="462" T="142" R="36" G="68" B="101" A="255"/>
<Vtx X="-4" Y="11" Z="9" S="422" T="142" R="76" G="102" B="252" A="255"/>
<Vtx X="-6" Y="11" Z="9" S="422" T="206" R="1" G="127" B="254" A="255"/>
<Vtx X="-6" Y="10" Z="10" S="462" T="206" R="9" G="73" B="104" A="255"/>
<Vtx X="-8" Y="10" Z="10" S="462" T="142" R="238" G="68" B="106" A="255"/>
<Vtx X="-8" Y="11" Z="9" S="422" T="142" R="204" G="116" B="7" A="255"/>
<Vtx X="-9" Y="10" Z="9" S="422" T="78" R="166" G="90" B="3" A="255"/>
<Vtx X="-8" Y="10" Z="10" S="462" T="78" R="210" G="56" B="104" A="255"/>
<Vtx X="-9" Y="9" Z="10" S="462" T="14" R="196" G="27" B="109" A="255"/>
<Vtx X="-8" Y="10" Z="10" S="462" T="78" R="210" G="56" B="104" A="255"/>
<Vtx X="-9" Y="9" Z="10" S="462" T="14" R="196" G="27" B="109" A="255"/>
<Vtx X="-8" Y="9" Z="10" S="462" T="14" R="232" G="13" B="124" A="255"/>
<Vtx X="-8" Y="7" Z="10" S="462" T="-50" R="236" G="0" B="125" A="255"/>
<Vtx X="-9" Y="7" Z="10" S="462" T="-50" R="189" G="0" B="108" A="255"/>
<Vtx X="-10" Y="7" Z="9" S="422" T="-50" R="129" G="0" B="6" A="255"/>
<Vtx X="-9" Y="5" Z="10" S="462" T="14" R="196" G="229" B="109" A="255"/>
<Vtx X="-10" Y="5" Z="9" S="422" T="14" R="137" G="212" B="8" A="255"/>
<Vtx X="-9" Y="4" Z="9" S="422" T="78" R="166" G="166" B="3" A="255"/>
<Vtx X="-8" Y="5" Z="10" S="462" T="78" R="210" G="200" B="104" A="255"/>
<Vtx X="-8" Y="4" Z="10" S="462" T="142" R="238" G="188" B="106" A="255"/>
<Vtx X="-7" Y="5" Z="10" S="462" T="142" R="255" G="221" B="122" A="255"/>
<Vtx X="-6" Y="5" Z="10" S="462" T="206" R="10" G="225" B="123" A="255"/>
<Vtx X="-6" Y="4" Z="10" S="462" T="206" R="9" G="183" B="104" A="255"/>
<Vtx X="-6" Y="3" Z="9" S="422" T="206" R="0" G="129" B="254" A="255"/>
<Vtx X="-4" Y="4" Z="10" S="462" T="142" R="36" G="188" B="101" A="255"/>
<Vtx X="-6" Y="3" Z="9" S="422" T="206" R="0" G="129" B="254" A="255"/>
<Vtx X="-4" Y="3" Z="9" S="422" T="142" R="52" G="140" B="255" A="255"/>
<Vtx X="-4" Y="4" Z="10" S="462" T="142" R="36" G="188" B="101" A="255"/>
<Vtx X="-3" Y="4" Z="9" S="422" T="78" R="89" G="167" B="244" A="255"/>
<Vtx X="-4" Y="5" Z="10" S="462" T="78" R="64" G="200" B="95" A="255"/>
<Vtx X="-3" Y="5" Z="10" S="462" T="14" R="78" G="229" B="97" A="255"/>
<Vtx X="-4" Y="6" Z="10" S="462" T="14" R="45" G="243" B="118" A="255"/>
<Vtx X="-4" Y="7" Z="10" S="462" T="-50" R="42" G="0" B="120" A="255"/>
<Vtx X="-3" Y="7" Z="10" S="462" T="-50" R="85" G="0" B="95" A="255"/>
<Vtx X="-4" Y="5" Z="10" S="462" T="78" R="39" G="227" B="117" A="255"/>
<Vtx X="-4" Y="5" Z="10" S="462" T="142" R="23" G="221" B="120" A="255"/>
<Vtx X="-4" Y="6" Z="10" S="526" T="142" R="25" G="242" B="124" A="255"/>
<Vtx X="-4" Y="6" Z="10" S="526" T="78" R="45" G="243" B="118" A="255"/>
<Vtx X="-4" Y="7" Z="10" S="590" T="142" R="24" G="0" B="125" A="255"/>
<Vtx X="-4" Y="7" Z="10" S="590" T="78" R="42" G="0" B="120" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="526" T="78" R="45" G="13" B="118" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="526" T="78" R="45" G="13" B="118" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="526" T="142" R="25" G="14" B="124" A="255"/>
<Vtx X="-4" Y="7" Z="10" S="590" T="142" R="24" G="0" B="125" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="462" T="78" R="39" G="29" B="117" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="462" T="142" R="23" G="35" B="120" A="255"/>
<Vtx X="-4" Y="10" Z="10" S="462" T="78" R="64" G="56" B="95" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="462" T="14" R="45" G="13" B="118" A="255"/>
<Vtx X="-4" Y="10" Z="10" S="462" T="142" R="36" G="68" B="101" A="255"/>
<Vtx X="-6" Y="9" Z="10" S="462" T="206" R="10" G="31" B="123" A="255"/>
<Vtx X="-6" Y="10" Z="10" S="462" T="206" R="9" G="73" B="104" A="255"/>
<Vtx X="-8" Y="10" Z="10" S="462" T="142" R="238" G="68" B="106" A="255"/>
<Vtx X="-7" Y="9" Z="10" S="462" T="142" R="255" G="35" B="122" A="255"/>
<Vtx X="-8" Y="10" Z="10" S="462" T="78" R="210" G="56" B="104" A="255"/>
<Vtx X="-8" Y="9" Z="10" S="462" T="78" R="238" G="29" B="122" A="255"/>
<Vtx X="-8" Y="9" Z="10" S="462" T="14" R="232" G="13" B="124" A="255"/>
<Vtx X="-7" Y="9" Z="11" S="526" T="142" R="253" G="14" B="126" A="255"/>
<Vtx X="-6" Y="9" Z="10" S="526" T="206" R="11" G="13" B="126" A="255"/>
<Vtx X="-7" Y="9" Z="10" S="462" T="142" R="255" G="35" B="122" A="255"/>
<Vtx X="-7" Y="9" Z="11" S="526" T="142" R="253" G="14" B="126" A="255"/>
<Vtx X="-6" Y="7" Z="10" S="590" T="206" R="11" G="0" B="127" A="255"/>
<Vtx X="-7" Y="7" Z="11" S="590" T="142" R="254" G="0" B="127" A="255"/>
<Vtx X="-8" Y="9" Z="10" S="526" T="78" R="232" G="13" B="124" A="255"/>
<Vtx X="-8" Y="9" Z="10" S="462" T="78" R="238" G="29" B="122" A="255"/>
<Vtx X="-8" Y="7" Z="10" S="590" T="78" R="236" G="0" B="125" A="255"/>
<Vtx X="-8" Y="6" Z="10" S="526" T="78" R="232" G="243" B="124" A="255"/>
<Vtx X="-7" Y="6" Z="11" S="526" T="142" R="253" G="242" B="126" A="255"/>
<Vtx X="-8" Y="5" Z="10" S="462" T="78" R="238" G="227" B="122" A="255"/>
<Vtx X="-7" Y="5" Z="10" S="462" T="142" R="255" G="221" B="122" A="255"/>
<Vtx X="-8" Y="5" Z="10" S="462" T="78" R="210" G="200" B="104" A="255"/>
<Vtx X="-8" Y="6" Z="10" S="462" T="14" R="232" G="243" B="124" A="255"/>
<Vtx X="-9" Y="5" Z="10" S="462" T="14" R="196" G="229" B="109" A="255"/>
<Vtx X="-8" Y="7" Z="10" S="462" T="-50" R="236" G="0" B="125" A="255"/>
<Vtx X="-8" Y="7" Z="10" S="462" T="-50" R="236" G="0" B="125" A="255"/>
<Vtx X="-9" Y="7" Z="10" S="462" T="-50" R="189" G="0" B="108" A="255"/>
<Vtx X="-9" Y="5" Z="10" S="462" T="14" R="196" G="229" B="109" A="255"/>
<Vtx X="-7" Y="5" Z="10" S="462" T="142" R="255" G="221" B="122" A="255"/>
<Vtx X="-6" Y="6" Z="10" S="526" T="206" R="11" G="243" B="126" A="255"/>
<Vtx X="-7" Y="6" Z="11" S="526" T="142" R="253" G="242" B="126" A="255"/>
<Vtx X="-6" Y="5" Z="10" S="462" T="206" R="10" G="225" B="123" A="255"/>
<Vtx X="-4" Y="5" Z="10" S="462" T="142" R="23" G="221" B="120" A="255"/>
<Vtx X="-4" Y="4" Z="10" S="462" T="142" R="36" G="188" B="101" A="255"/>
<Vtx X="-6" Y="4" Z="10" S="462" T="206" R="9" G="183" B="104" A="255"/>
<Vtx X="-4" Y="5" Z="10" S="462" T="78" R="64" G="200" B="95" A="255"/>
<Vtx X="-6" Y="9" Z="10" S="526" T="206" R="11" G="13" B="126" A="255"/>
<Vtx X="-6" Y="9" Z="10" S="462" T="206" R="10" G="31" B="123" A="255"/>
<Vtx X="-7" Y="9" Z="10" S="462" T="142" R="255" G="35" B="122" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="462" T="142" R="23" G="35" B="120" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="526" T="142" R="25" G="14" B="124" A="255"/>
<Vtx X="-4" Y="9" Z="10" S="526" T="142" R="25" G="14" B="124" A="255"/>
<Vtx X="-6" Y="9" Z="10" S="526" T="206" R="11" G="13" B="126" A="255"/>
<Vtx X="-6" Y="7" Z="10" S="590" T="206" R="11" G="0" B="127" A="255"/>
<Vtx X="-4" Y="7" Z="10" S="590" T="142" R="24" G="0" B="125" A="255"/>
<Vtx X="-4" Y="6" Z="10" S="526" T="142" R="25" G="242" B="124" A="255"/>
<Vtx X="-6" Y="6" Z="10" S="526" T="206" R="11" G="243" B="126" A="255"/>
<Vtx X="-7" Y="6" Z="11" S="526" T="142" R="253" G="242" B="126" A="255"/>
<Vtx X="-7" Y="7" Z="11" S="590" T="142" R="254" G="0" B="127" A="255"/>
<Vtx X="-4" Y="5" Z="10" S="462" T="142" R="23" G="221" B="120" A="255"/>
</Vertex>
@@ -0,0 +1,21 @@
<DisplayList Version="0">
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_TEXEL0" D0="G_CCMUX_TEXEL0" 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_TEXTURE_GEN="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="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="5898" T="5898" Level="0" Tile="0" On="1"/>
<SetTextureLUT Mode="G_TT_NONE"/>
<TileSync/>
<SetTextureImage Path="objects/object_boss_soul/noise_tex" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_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="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<LoadSync/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
<PipeSync/>
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" 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"/>
<SetPrimColor M="0" L="0" R="223" G="62" B="53" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -8,14 +8,14 @@
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
<SetTextureLUT Mode="G_TT_NONE"/>
<TileSync/>
<SetTextureImage Path="objects/object_triforce_piece_1/noise_tex" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
<SetTextureImage Path="objects/object_boss_soul/noise_tex_copy" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_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="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<LoadSync/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
<PipeSync/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" 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"/>
<SetPrimColor M="0" L="0" R="255" G="195" B="0" A="255"/>
<SetPrimColor M="0" L="0" R="49" G="49" B="49" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -8,14 +8,14 @@
<Texture S="65535" T="65535" Level="0" Tile="0" On="1"/>
<SetTextureLUT Mode="G_TT_NONE"/>
<TileSync/>
<SetTextureImage Path="objects/object_triforce_piece_2/noise_tex" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
<SetTextureImage Path="objects/object_boss_soul/noise_tex_copy" Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b_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="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<LoadSync/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="1023" Dxt="256"/>
<PipeSync/>
<SetTile Format="G_IM_FMT_RGBA" Size="G_IM_SIZ_16b" 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"/>
<SetPrimColor M="0" L="0" R="255" G="195" B="0" A="255"/>
<SetPrimColor M="0" L="0" R="90" G="14" B="12" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,21 @@
<DisplayList Version="0">
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_TEXEL0" D0="G_CCMUX_TEXEL0" 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_TEXTURE_GEN="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="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"/>
<SetTextureLUT Mode="G_TT_NONE"/>
<TileSync/>
<SetTextureImage Path="objects/object_boss_soul/noise_tex" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_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="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<LoadSync/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
<PipeSync/>
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" 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"/>
<SetPrimColor M="0" L="0" R="255" G="241" B="124" A="255"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,21 @@
<DisplayList Version="0">
<PipeSync/>
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_TEXEL0" D0="G_CCMUX_TEXEL0" 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_TEXTURE_GEN="1" G_SHADING_SMOOTH="1" />
<ClearGeometryMode G_CULL_FRONT="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"/>
<SetTextureLUT Mode="G_TT_NONE"/>
<TileSync/>
<SetTextureImage Path="objects/object_boss_soul/noise_tex" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_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="5" ShiftS="0" MaskT="5" ShiftT="0"/>
<LoadSync/>
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
<PipeSync/>
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" 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"/>
<!-- <SetPrimColor M="0" L="0" R="255" G="255" B="255" A="255"/> -->
<EndDisplayList/>
</DisplayList>
Binary file not shown.
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gCuccoLadyHatDL_f3dlite_hatcolour"/>
<CallDisplayList Path="objects/object_festivehats/gCuccoLadyHatDL_tri_0"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,31 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gCuccoLadyHatDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="4" V01="3" V02="0"/>
<Triangle1 V00="4" V01="5" V02="3"/>
<Triangle1 V00="6" V01="5" V02="4"/>
<Triangle1 V00="6" V01="7" V02="5"/>
<Triangle1 V00="8" V01="7" V02="6"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="10" V01="9" V02="8"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="13" V02="11"/>
<Triangle1 V00="14" V01="13" V02="12"/>
<Triangle1 V00="14" V01="15" V02="13"/>
<LoadVertices Path="objects/object_festivehats/gCuccoLadyHatDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="1" V01="3" V02="4"/>
<Triangle1 V00="5" V01="1" V02="6"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="13" V01="14" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gCuccoLadyHatDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="9"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,43 @@
<Vertex Version="0">
<Vtx X="971" Y="326" Z="-377" S="112" T="1008" R="6" G="79" B="156" A="255"/>
<Vtx X="998" Y="-107" Z="-499" S="-16" T="-16" R="224" G="12" B="134" A="255"/>
<Vtx X="798" Y="-27" Z="-448" S="-16" T="1008" R="229" G="11" B="132" A="255"/>
<Vtx X="1172" Y="246" Z="-429" S="112" T="-16" R="4" G="81" B="158" A="255"/>
<Vtx X="1099" Y="450" Z="-72" S="240" T="1008" R="47" G="118" B="0" A="255"/>
<Vtx X="1300" Y="370" Z="-123" S="240" T="-16" R="47" G="118" B="0" A="255"/>
<Vtx X="1107" Y="272" Z="233" S="368" T="1008" R="51" G="68" B="94" A="255"/>
<Vtx X="1307" Y="192" Z="182" S="368" T="-16" R="51" G="69" B="94" A="255"/>
<Vtx X="989" Y="-103" Z="360" S="496" T="1008" R="27" G="245" B="124" A="255"/>
<Vtx X="1189" Y="-184" Z="308" S="496" T="-16" R="27" G="245" B="124" A="255"/>
<Vtx X="815" Y="-456" Z="233" S="624" T="1008" R="247" G="171" B="94" A="255"/>
<Vtx X="1015" Y="-537" Z="182" S="624" T="-16" R="246" G="171" B="93" A="255"/>
<Vtx X="687" Y="-580" Z="-72" S="752" T="1008" R="209" G="138" B="0" A="255"/>
<Vtx X="887" Y="-661" Z="-123" S="752" T="-16" R="209" G="138" B="0" A="255"/>
<Vtx X="680" Y="-402" Z="-377" S="880" T="1008" R="206" G="195" B="156" A="255"/>
<Vtx X="880" Y="-483" Z="-429" S="880" T="-16" R="203" G="195" B="158" A="255"/>
<Vtx X="798" Y="-27" Z="-448" S="1008" T="1008" R="229" G="11" B="132" A="255"/>
<Vtx X="880" Y="-483" Z="-429" S="880" T="-16" R="203" G="195" B="158" A="255"/>
<Vtx X="680" Y="-402" Z="-377" S="880" T="1008" R="206" G="195" B="156" A="255"/>
<Vtx X="998" Y="-107" Z="-499" S="1008" T="-16" R="224" G="12" B="134" A="255"/>
<Vtx X="1139" Y="-375" Z="-543" S="880" T="-16" R="207" G="250" B="139" A="255"/>
<Vtx X="887" Y="-661" Z="-123" S="752" T="-16" R="209" G="138" B="0" A="255"/>
<Vtx X="1084" Y="-652" Z="-328" S="752" T="-16" R="202" G="156" B="199" A="255"/>
<Vtx X="998" Y="-107" Z="-499" S="-16" T="-16" R="224" G="12" B="134" A="255"/>
<Vtx X="1172" Y="246" Z="-429" S="112" T="-16" R="4" G="81" B="158" A="255"/>
<Vtx X="1285" Y="-11" Z="-543" S="-16" T="-16" R="225" G="38" B="139" A="255"/>
<Vtx X="1300" Y="370" Z="-123" S="240" T="-16" R="47" G="118" B="0" A="255"/>
<Vtx X="1307" Y="192" Z="182" S="368" T="-16" R="51" G="69" B="94" A="255"/>
<Vtx X="1504" Y="201" Z="-22" S="240" T="-16" R="54" G="100" B="57" A="255"/>
<Vtx X="1189" Y="-184" Z="308" S="496" T="-16" R="27" G="245" B="124" A="255"/>
<Vtx X="1015" Y="-537" Z="182" S="624" T="-16" R="246" G="171" B="93" A="255"/>
<Vtx X="1302" Y="-440" Z="194" S="496" T="-16" R="11" G="209" B="118" A="255"/>
<Vtx X="1307" Y="192" Z="182" S="368" T="-16" R="51" G="69" B="94" A="255"/>
<Vtx X="1189" Y="-184" Z="308" S="496" T="-16" R="27" G="245" B="124" A="255"/>
<Vtx X="1448" Y="-76" Z="194" S="368" T="-16" R="41" G="26" B="117" A="255"/>
<Vtx X="1015" Y="-537" Z="182" S="624" T="-16" R="246" G="171" B="93" A="255"/>
<Vtx X="887" Y="-661" Z="-123" S="752" T="-16" R="209" G="138" B="0" A="255"/>
<Vtx X="1152" Y="-679" Z="-22" S="624" T="-16" R="227" G="146" B="57" A="255"/>
<Vtx X="1172" Y="246" Z="-429" S="112" T="-16" R="4" G="81" B="158" A="255"/>
<Vtx X="1300" Y="370" Z="-123" S="240" T="-16" R="47" G="118" B="0" A="255"/>
<Vtx X="1436" Y="228" Z="-328" S="112" T="-16" R="29" G="110" B="199" A="255"/>
</Vertex>
@@ -0,0 +1,13 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_rednose"/>
<CallDisplayList Path="objects/object_festivehats/gEponaRudolphHatDL_tri_0"/>
<CallDisplayList Path="objects/object_festivehats/mat_gEponaRudolphHatDL_f3dlite_antlers"/>
<CallDisplayList Path="objects/object_festivehats/gEponaRudolphHatDL_tri_1"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,47 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gEponaRudolphHatDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" 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="5" V01="6" V02="4"/>
<Triangle1 V00="5" V01="7" V02="6"/>
<Triangle1 V00="8" V01="7" V02="5"/>
<Triangle1 V00="8" V01="9" V02="7"/>
<Triangle1 V00="9" V01="8" V02="10"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="12" V01="9" V02="11"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="14" V01="12" V02="13"/>
<Triangle1 V00="14" V01="13" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gEponaRudolphHatDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="4" V01="0" V02="3"/>
<Triangle1 V00="4" V01="3" V02="5"/>
<Triangle1 V00="6" V01="4" V02="5"/>
<Triangle1 V00="6" V01="5" V02="7"/>
<Triangle1 V00="8" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="9"/>
<Triangle1 V00="10" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="11"/>
<Triangle1 V00="12" V01="8" V02="10"/>
<Triangle1 V00="12" V01="13" V02="8"/>
<Triangle1 V00="14" V01="13" V02="12"/>
<Triangle1 V00="15" V01="14" V02="12"/>
<LoadVertices Path="objects/object_festivehats/gEponaRudolphHatDL_vtx_0" 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="6" V01="8" V02="7"/>
<Triangle1 V00="6" V01="9" V02="8"/>
<Triangle1 V00="10" V01="9" V02="6"/>
<Triangle1 V00="10" V01="11" V02="9"/>
<Triangle1 V00="12" V01="11" V02="10"/>
<Triangle1 V00="12" V01="13" V02="11"/>
<Triangle1 V00="7" V01="8" V02="14"/>
<Triangle1 V00="7" V01="14" V02="15"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,22 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gEponaRudolphHatDL_vtx_1" 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="5" V01="4" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="5" V01="8" V02="0"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="9" V01="12" V02="10"/>
<Triangle1 V00="9" V01="13" V02="12"/>
<Triangle1 V00="9" V01="14" V02="13"/>
<Triangle1 V00="14" V01="9" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gEponaRudolphHatDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,50 @@
<Vertex Version="0">
<Vtx X="2038" Y="-313" Z="-237" S="-401" T="-17" R="208" G="162" B="185" A="255"/>
<Vtx X="1947" Y="-152" Z="0" S="-401" T="-145" R="140" G="205" B="0" A="255"/>
<Vtx X="1944" Y="-123" Z="-112" S="-401" T="-17" R="140" G="222" B="218" A="255"/>
<Vtx X="2043" Y="-366" Z="0" S="-401" T="-145" R="208" G="138" B="0" A="255"/>
<Vtx X="2358" Y="-266" Z="0" S="-145" T="-145" R="88" G="164" B="0" A="255"/>
<Vtx X="2289" Y="-260" Z="-157" S="-145" T="-17" R="67" G="163" B="200" A="255"/>
<Vtx X="2439" Y="-67" Z="0" S="-17" T="-145" R="125" G="235" B="0" A="255"/>
<Vtx X="2340" Y="-132" Z="-253" S="-17" T="-17" R="82" G="222" B="166" A="255"/>
<Vtx X="2038" Y="-313" Z="-237" S="-145" T="239" R="208" G="162" B="185" A="255"/>
<Vtx X="2063" Y="-196" Z="-293" S="-17" T="239" R="216" G="221" B="141" A="255"/>
<Vtx X="1944" Y="-123" Z="-112" S="-145" T="239" R="140" G="222" B="218" A="255"/>
<Vtx X="1958" Y="-60" Z="-158" S="-17" T="239" R="153" G="254" B="181" A="255"/>
<Vtx X="2099" Y="34" Z="-321" S="111" T="239" R="221" G="46" B="143" A="255"/>
<Vtx X="1977" Y="63" Z="-173" S="111" T="239" R="175" G="57" B="176" A="255"/>
<Vtx X="2352" Y="147" Z="-244" S="111" T="-17" R="61" G="78" B="177" A="255"/>
<Vtx X="2197" Y="159" Z="-131" S="111" T="-17" R="240" G="122" B="224" A="255"/>
<Vtx X="2411" Y="155" Z="0" S="111" T="-145" R="95" G="85" B="0" A="255"/>
<Vtx X="2352" Y="147" Z="-244" S="111" T="-17" R="61" G="78" B="177" A="255"/>
<Vtx X="2197" Y="159" Z="-131" S="111" T="-17" R="240" G="122" B="224" A="255"/>
<Vtx X="2228" Y="163" Z="0" S="111" T="-145" R="5" G="127" B="0" A="255"/>
<Vtx X="2352" Y="147" Z="244" S="111" T="-273" R="61" G="78" B="79" A="255"/>
<Vtx X="2197" Y="159" Z="131" S="111" T="-273" R="240" G="122" B="32" A="255"/>
<Vtx X="2099" Y="34" Z="321" S="111" T="-529" R="221" G="46" B="113" A="255"/>
<Vtx X="1977" Y="63" Z="173" S="111" T="-529" R="175" G="57" B="80" A="255"/>
<Vtx X="2063" Y="-196" Z="293" S="-17" T="-529" R="216" G="221" B="115" A="255"/>
<Vtx X="1958" Y="-60" Z="158" S="-17" T="-529" R="153" G="254" B="75" A="255"/>
<Vtx X="2038" Y="-313" Z="237" S="-145" T="-529" R="208" G="162" B="71" A="255"/>
<Vtx X="1944" Y="-123" Z="112" S="-145" T="-529" R="140" G="222" B="38" A="255"/>
<Vtx X="2289" Y="-260" Z="157" S="-145" T="-273" R="67" G="163" B="56" A="255"/>
<Vtx X="2340" Y="-132" Z="253" S="-17" T="-273" R="82" G="222" B="90" A="255"/>
<Vtx X="2358" Y="-266" Z="0" S="-145" T="-145" R="88" G="164" B="0" A="255"/>
<Vtx X="2043" Y="-366" Z="0" S="-401" T="-145" R="208" G="138" B="0" A="255"/>
<Vtx X="2043" Y="-366" Z="0" S="-401" T="-145" R="208" G="138" B="0" A="255"/>
<Vtx X="2289" Y="-260" Z="157" S="-145" T="-273" R="67" G="163" B="56" A="255"/>
<Vtx X="2038" Y="-313" Z="237" S="-401" T="-273" R="208" G="162" B="71" A="255"/>
<Vtx X="1944" Y="-123" Z="112" S="-401" T="-273" R="140" G="222" B="38" A="255"/>
<Vtx X="1947" Y="-152" Z="0" S="-401" T="-145" R="140" G="205" B="0" A="255"/>
<Vtx X="2358" Y="-266" Z="0" S="-145" T="-145" R="88" G="164" B="0" A="255"/>
<Vtx X="2439" Y="-67" Z="0" S="-17" T="-145" R="125" G="235" B="0" A="255"/>
<Vtx X="2340" Y="-132" Z="253" S="-17" T="-273" R="82" G="222" B="90" A="255"/>
<Vtx X="2352" Y="147" Z="244" S="111" T="-273" R="61" G="78" B="79" A="255"/>
<Vtx X="2411" Y="155" Z="0" S="111" T="-145" R="95" G="85" B="0" A="255"/>
<Vtx X="2340" Y="-132" Z="-253" S="-17" T="-17" R="82" G="222" B="166" A="255"/>
<Vtx X="2352" Y="147" Z="-244" S="111" T="-17" R="61" G="78" B="177" A="255"/>
<Vtx X="2063" Y="-196" Z="-293" S="-17" T="239" R="216" G="221" B="141" A="255"/>
<Vtx X="2099" Y="34" Z="-321" S="111" T="239" R="221" G="46" B="143" A="255"/>
<Vtx X="2099" Y="34" Z="321" S="111" T="-529" R="221" G="46" B="113" A="255"/>
<Vtx X="2063" Y="-196" Z="293" S="-17" T="-529" R="216" G="221" B="115" A="255"/>
</Vertex>
@@ -0,0 +1,23 @@
<Vertex Version="0">
<Vtx X="-51" Y="-1835" Z="-336" S="1124" T="1240" R="226" G="228" B="120" A="255"/>
<Vtx X="1312" Y="-1676" Z="-441" S="1987" T="1268" R="2" G="232" B="125" A="255"/>
<Vtx X="1099" Y="-892" Z="-181" S="1885" T="1872" R="2" G="232" B="125" A="255"/>
<Vtx X="66" Y="-801" Z="-244" S="1240" T="1982" R="237" G="242" B="125" A="255"/>
<Vtx X="-1194" Y="-1229" Z="-816" S="358" T="1684" R="192" G="228" B="106" A="255"/>
<Vtx X="-525" Y="-2017" Z="-504" S="813" T="1145" R="206" G="206" B="106" A="255"/>
<Vtx X="-1544" Y="-2071" Z="-1356" S="19" T="1016" R="182" G="207" B="91" A="255"/>
<Vtx X="-1149" Y="-2858" Z="-1650" S="171" T="359" R="206" G="185" B="93" A="255"/>
<Vtx X="-237" Y="-3221" Z="-1543" S="731" T="29" R="227" G="171" B="90" A="255"/>
<Vtx X="-51" Y="-1835" Z="336" S="1124" T="1240" R="226" G="228" B="136" A="255"/>
<Vtx X="1099" Y="-892" Z="181" S="1885" T="1872" R="2" G="232" B="131" A="255"/>
<Vtx X="1312" Y="-1676" Z="441" S="1987" T="1268" R="2" G="232" B="131" A="255"/>
<Vtx X="66" Y="-801" Z="244" S="1240" T="1982" R="237" G="242" B="131" A="255"/>
<Vtx X="-1194" Y="-1229" Z="816" S="358" T="1684" R="192" G="228" B="150" A="255"/>
<Vtx X="-525" Y="-2017" Z="504" S="813" T="1145" R="206" G="206" B="150" A="255"/>
<Vtx X="-237" Y="-3221" Z="1543" S="731" T="29" R="227" G="171" B="166" A="255"/>
<Vtx X="-525" Y="-2017" Z="504" S="813" T="1145" R="206" G="206" B="150" A="255"/>
<Vtx X="-237" Y="-3221" Z="1543" S="731" T="29" R="227" G="171" B="166" A="255"/>
<Vtx X="-1149" Y="-2858" Z="1650" S="171" T="359" R="206" G="185" B="163" A="255"/>
<Vtx X="-1544" Y="-2071" Z="1356" S="19" T="1016" R="182" G="207" B="165" A="255"/>
<Vtx X="-1194" Y="-1229" Z="816" S="358" T="1684" R="192" G="228" B="150" A="255"/>
</Vertex>
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gHorseAntlersDL_f3dlite_antlers"/>
<CallDisplayList Path="objects/object_festivehats/gHorseAntlersDL_tri_0"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,22 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gHorseAntlersDL_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="5" V01="4" V02="6"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="5" V01="8" V02="0"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="9" V01="12" V02="10"/>
<Triangle1 V00="9" V01="13" V02="12"/>
<Triangle1 V00="9" V01="14" V02="13"/>
<Triangle1 V00="14" V01="9" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gHorseAntlersDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="5"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="3" V02="4"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,23 @@
<Vertex Version="0">
<Vtx X="-51" Y="-1835" Z="-336" S="1124" T="1240" R="226" G="228" B="120" A="255"/>
<Vtx X="1312" Y="-1676" Z="-441" S="1987" T="1268" R="2" G="232" B="125" A="255"/>
<Vtx X="1099" Y="-892" Z="-181" S="1885" T="1872" R="2" G="232" B="125" A="255"/>
<Vtx X="66" Y="-801" Z="-244" S="1240" T="1982" R="237" G="242" B="125" A="255"/>
<Vtx X="-1194" Y="-1229" Z="-816" S="358" T="1684" R="192" G="228" B="106" A="255"/>
<Vtx X="-525" Y="-2017" Z="-504" S="813" T="1145" R="206" G="206" B="106" A="255"/>
<Vtx X="-1544" Y="-2071" Z="-1356" S="19" T="1016" R="182" G="207" B="91" A="255"/>
<Vtx X="-1149" Y="-2858" Z="-1650" S="171" T="359" R="206" G="185" B="93" A="255"/>
<Vtx X="-237" Y="-3221" Z="-1543" S="731" T="29" R="227" G="171" B="90" A="255"/>
<Vtx X="-51" Y="-1835" Z="336" S="1124" T="1240" R="226" G="228" B="136" A="255"/>
<Vtx X="1099" Y="-892" Z="181" S="1885" T="1872" R="2" G="232" B="131" A="255"/>
<Vtx X="1312" Y="-1676" Z="441" S="1987" T="1268" R="2" G="232" B="131" A="255"/>
<Vtx X="66" Y="-801" Z="244" S="1240" T="1982" R="237" G="242" B="131" A="255"/>
<Vtx X="-1194" Y="-1229" Z="816" S="358" T="1684" R="192" G="228" B="150" A="255"/>
<Vtx X="-525" Y="-2017" Z="504" S="813" T="1145" R="206" G="206" B="150" A="255"/>
<Vtx X="-237" Y="-3221" Z="1543" S="731" T="29" R="227" G="171" B="166" A="255"/>
<Vtx X="-525" Y="-2017" Z="504" S="813" T="1145" R="206" G="206" B="150" A="255"/>
<Vtx X="-237" Y="-3221" Z="1543" S="731" T="29" R="227" G="171" B="166" A="255"/>
<Vtx X="-1149" Y="-2858" Z="1650" S="171" T="359" R="206" G="185" B="163" A="255"/>
<Vtx X="-1544" Y="-2071" Z="1356" S="19" T="1016" R="182" G="207" B="165" A="255"/>
<Vtx X="-1194" Y="-1229" Z="816" S="358" T="1684" R="192" G="228" B="150" A="255"/>
</Vertex>
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gLinkAdultHatTrimDL_f3dlite_santahat_white"/>
<CallDisplayList Path="objects/object_festivehats/gLinkAdultHatTrimDL_tri_0"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,44 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" 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="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="1" V02="3"/>
<Triangle1 V00="6" V01="7" V02="1"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<Triangle1 V00="8" V01="6" V02="5"/>
<Triangle1 V00="7" V01="8" V02="9"/>
<Triangle1 V00="9" V01="8" V02="10"/>
<Triangle1 V00="10" V01="8" V02="11"/>
<Triangle1 V00="9" V01="10" V02="12"/>
<Triangle1 V00="13" V01="12" V02="10"/>
<Triangle1 V00="13" V01="10" V02="14"/>
<Triangle1 V00="13" V01="15" V02="12"/>
<LoadVertices Path="objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="0" V01="4" V02="1"/>
<Triangle1 V00="5" V01="4" V02="0"/>
<Triangle1 V00="5" V01="0" V02="6"/>
<Triangle1 V00="5" V01="7" V02="4"/>
<Triangle1 V00="8" V01="7" V02="5"/>
<Triangle1 V00="8" V01="5" V02="9"/>
<Triangle1 V00="9" V01="5" V02="10"/>
<Triangle1 V00="9" V01="11" V02="8"/>
<Triangle1 V00="9" V01="12" V02="11"/>
<Triangle1 V00="12" V01="9" V02="13"/>
<Triangle1 V00="8" V01="11" V02="14"/>
<LoadVertices Path="objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="31" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="7" V02="8"/>
<Triangle1 V00="9" V01="10" V02="11"/>
<Triangle1 V00="7" V01="12" V02="13"/>
<Triangle1 V00="12" V01="3" V02="14"/>
<LoadVertices Path="objects/object_festivehats/gLinkAdultHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="46" Count="6"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,54 @@
<Vertex Version="0">
<Vtx X="627" Y="-68" Z="717" S="290" T="309" R="106" G="58" B="41" A="254"/>
<Vtx X="489" Y="215" Z="422" S="229" T="370" R="76" G="102" B="249" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="290" T="309" R="21" G="86" B="165" A="254"/>
<Vtx X="414" Y="89" Z="325" S="250" T="395" R="63" G="226" B="150" A="254"/>
<Vtx X="478" Y="-308" Z="574" S="316" T="332" R="48" G="177" B="169" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="250" T="395" R="21" G="86" B="165" A="254"/>
<Vtx X="4" Y="91" Z="155" S="249" T="438" R="0" G="218" B="135" A="254"/>
<Vtx X="2" Y="216" Z="166" S="229" T="435" R="0" G="113" B="198" A="254"/>
<Vtx X="-410" Y="86" Z="326" S="250" T="395" R="194" G="225" B="149" A="254"/>
<Vtx X="-487" Y="214" Z="423" S="229" T="370" R="180" G="102" B="249" A="254"/>
<Vtx X="-476" Y="-312" Z="574" S="316" T="332" R="208" G="176" B="169" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="316" T="332" R="21" G="86" B="165" A="254"/>
<Vtx X="-626" Y="-74" Z="717" S="291" T="309" R="150" G="56" B="42" A="254"/>
<Vtx X="-482" Y="-548" Z="935" S="351" T="243" R="162" G="171" B="243" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="351" T="243" R="21" G="86" B="165" A="254"/>
<Vtx X="-420" Y="-480" Z="1088" S="344" T="216" R="202" G="24" B="113" A="254"/>
<Vtx X="-102" Y="-868" Z="1072" S="411" T="205" R="212" G="137" B="248" A="254"/>
<Vtx X="-420" Y="-480" Z="1088" S="344" T="216" R="202" G="24" B="113" A="254"/>
<Vtx X="-482" Y="-548" Z="935" S="351" T="243" R="162" G="171" B="243" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="411" T="205" R="21" G="86" B="165" A="254"/>
<Vtx X="-75" Y="-736" Z="1202" S="393" T="183" R="234" G="247" B="125" A="254"/>
<Vtx X="-11" Y="-874" Z="1066" S="412" T="206" R="24" G="132" B="242" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="412" T="206" R="21" G="86" B="165" A="254"/>
<Vtx X="13" Y="-739" Z="1199" S="393" T="184" R="27" G="243" B="123" A="254"/>
<Vtx X="432" Y="-476" Z="1088" S="344" T="216" R="53" G="17" B="114" A="254"/>
<Vtx X="502" Y="-543" Z="935" S="351" T="243" R="93" G="170" B="246" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="351" T="243" R="21" G="86" B="165" A="254"/>
<Vtx X="627" Y="-68" Z="717" S="288" T="288" R="106" G="58" B="41" A="254"/>
<Vtx X="478" Y="-308" Z="574" S="316" T="332" R="48" G="177" B="169" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="316" T="332" R="21" G="86" B="165" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="344" T="216" R="21" G="86" B="165" A="254"/>
<Vtx X="4" Y="91" Z="155" S="249" T="438" R="0" G="218" B="135" A="254"/>
<Vtx X="414" Y="89" Z="325" S="250" T="395" R="63" G="226" B="150" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="249" T="438" R="21" G="86" B="165" A="254"/>
<Vtx X="-420" Y="-480" Z="1088" S="344" T="216" R="202" G="24" B="113" A="254"/>
<Vtx X="-75" Y="-736" Z="1202" S="393" T="183" R="234" G="247" B="125" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="344" T="216" R="21" G="86" B="165" A="254"/>
<Vtx X="2" Y="216" Z="166" S="229" T="435" R="0" G="113" B="198" A="254"/>
<Vtx X="-487" Y="214" Z="423" S="229" T="370" R="180" G="102" B="249" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="229" T="435" R="21" G="86" B="165" A="254"/>
<Vtx X="13" Y="-739" Z="1199" S="393" T="184" R="27" G="243" B="123" A="254"/>
<Vtx X="432" Y="-476" Z="1088" S="344" T="216" R="53" G="17" B="114" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="393" T="184" R="21" G="86" B="165" A="254"/>
<Vtx X="-626" Y="-74" Z="717" S="291" T="309" R="150" G="56" B="42" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="229" T="370" R="21" G="86" B="165" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="291" T="309" R="21" G="86" B="165" A="254"/>
<Vtx X="489" Y="215" Z="422" S="229" T="370" R="76" G="102" B="249" A="254"/>
<Vtx X="2" Y="216" Z="166" S="229" T="435" R="0" G="113" B="198" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="229" T="370" R="21" G="86" B="165" A="254"/>
<Vtx X="-75" Y="-736" Z="1202" S="393" T="183" R="234" G="247" B="125" A="254"/>
<Vtx X="13" Y="-739" Z="1199" S="393" T="184" R="27" G="243" B="123" A="254"/>
<Vtx X="-7" Y="-278" Z="722" S="393" T="183" R="21" G="86" B="165" A="254"/>
</Vertex>
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gLinkAdultPompomDL_f3dlite_santahat_white"/>
<CallDisplayList Path="objects/object_festivehats/gLinkAdultPompomDL_tri_0"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,30 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gLinkAdultPompomDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="0" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="2" V01="6" V02="5"/>
<Triangle1 V00="4" V01="5" V02="7"/>
<Triangle1 V00="7" V01="5" V02="8"/>
<Triangle1 V00="5" V01="9" V02="8"/>
<Triangle1 V00="7" V01="8" V02="10"/>
<Triangle1 V00="11" V01="7" V02="10"/>
<Triangle1 V00="11" V01="10" V02="12"/>
<Triangle1 V00="13" V01="11" V02="12"/>
<Triangle1 V00="14" V01="7" V02="11"/>
<Triangle1 V00="14" V01="4" V02="7"/>
<Triangle1 V00="15" V01="4" V02="14"/>
<LoadVertices Path="objects/object_festivehats/gLinkAdultPompomDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="13"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="1" V01="3" V02="4"/>
<Triangle1 V00="5" V01="3" V02="1"/>
<Triangle1 V00="6" V01="5" V02="1"/>
<Triangle1 V00="5" V01="7" V02="3"/>
<Triangle1 V00="7" V01="8" V02="3"/>
<Triangle1 V00="7" V01="9" V02="8"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="11" V01="2" V02="12"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,31 @@
<Vertex Version="0">
<Vtx X="0" Y="-1636" Z="137" S="752" T="240" R="0" G="195" B="112" A="255"/>
<Vtx X="0" Y="-1684" Z="63" S="624" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="81" Y="-1650" Z="57" S="496" T="240" R="99" G="177" B="14" A="255"/>
<Vtx X="0" Y="-1550" Z="156" S="752" T="496" R="0" G="22" B="125" A="255"/>
<Vtx X="115" Y="-1570" Z="42" S="496" T="496" R="127" G="0" B="0" A="255"/>
<Vtx X="0" Y="-1665" Z="-23" S="240" T="240" R="0" G="160" B="173" A="255"/>
<Vtx X="0" Y="-1684" Z="63" S="368" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="0" Y="-1591" Z="-71" S="240" T="496" R="0" G="234" B="131" A="255"/>
<Vtx X="-81" Y="-1650" Z="57" S="-16" T="240" R="157" G="177" B="14" A="255"/>
<Vtx X="0" Y="-1684" Z="63" S="112" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="-115" Y="-1570" Z="42" S="-16" T="496" R="129" G="0" B="0" A="255"/>
<Vtx X="0" Y="-1505" Z="-52" S="240" T="752" R="0" G="61" B="144" A="255"/>
<Vtx X="-81" Y="-1490" Z="28" S="-16" T="752" R="157" G="79" B="242" A="255"/>
<Vtx X="0" Y="-1457" Z="22" S="112" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="81" Y="-1490" Z="28" S="496" T="752" R="99" G="79" B="242" A="255"/>
<Vtx X="0" Y="-1476" Z="108" S="752" T="752" R="0" G="96" B="83" A="255"/>
<Vtx X="0" Y="-1457" Z="22" S="624" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="0" Y="-1476" Z="108" S="752" T="752" R="0" G="96" B="83" A="255"/>
<Vtx X="81" Y="-1490" Z="28" S="496" T="752" R="99" G="79" B="242" A="255"/>
<Vtx X="0" Y="-1550" Z="156" S="752" T="496" R="0" G="22" B="125" A="255"/>
<Vtx X="115" Y="-1570" Z="42" S="496" T="496" R="127" G="0" B="0" A="255"/>
<Vtx X="-81" Y="-1490" Z="28" S="1008" T="752" R="157" G="79" B="242" A="255"/>
<Vtx X="0" Y="-1457" Z="22" S="880" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="-115" Y="-1570" Z="42" S="1008" T="496" R="129" G="0" B="0" A="255"/>
<Vtx X="0" Y="-1636" Z="137" S="752" T="240" R="0" G="195" B="112" A="255"/>
<Vtx X="-81" Y="-1650" Z="57" S="1008" T="240" R="157" G="177" B="14" A="255"/>
<Vtx X="0" Y="-1684" Z="63" S="880" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="0" Y="-1457" Z="22" S="368" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="0" Y="-1505" Z="-52" S="240" T="752" R="0" G="61" B="144" A="255"/>
</Vertex>
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gLinkChildHatTrimDL_f3dlite_santahat_white"/>
<CallDisplayList Path="objects/object_festivehats/gLinkChildHatTrimDL_tri_0"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,50 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gLinkChildHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="1" V02="0"/>
<Triangle1 V00="0" V01="4" V02="3"/>
<Triangle1 V00="0" V01="5" V02="4"/>
<Triangle1 V00="5" V01="0" V02="6"/>
<Triangle1 V00="3" V01="4" V02="7"/>
<Triangle1 V00="8" V01="9" V02="10"/>
<Triangle1 V00="9" V01="8" V02="11"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="8" V01="13" V02="12"/>
<Triangle1 V00="13" V01="8" V02="14"/>
<Triangle1 V00="12" V01="13" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gLinkChildHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="0" V02="4"/>
<Triangle1 V00="5" V01="4" V02="0"/>
<Triangle1 V00="5" V01="0" V02="6"/>
<Triangle1 V00="5" V01="7" V02="4"/>
<Triangle1 V00="4" V01="7" V02="8"/>
<Triangle1 V00="9" V01="3" V02="10"/>
<Triangle1 V00="3" V01="4" V02="11"/>
<Triangle1 V00="12" V01="9" V02="13"/>
<Triangle1 V00="14" V01="9" V02="12"/>
<Triangle1 V00="15" V01="14" V02="12"/>
<LoadVertices Path="objects/object_festivehats/gLinkChildHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="2" V01="1" V02="3"/>
<Triangle1 V00="2" V01="3" V02="4"/>
<Triangle1 V00="2" V01="5" V02="0"/>
<Triangle1 V00="2" V01="6" V02="5"/>
<Triangle1 V00="6" V01="2" V02="7"/>
<Triangle1 V00="8" V01="6" V02="7"/>
<Triangle1 V00="9" V01="6" V02="8"/>
<Triangle1 V00="6" V01="9" V02="10"/>
<Triangle1 V00="11" V01="10" V02="9"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="6" V01="10" V02="5"/>
<Triangle1 V00="5" V01="10" V02="13"/>
<Triangle1 V00="14" V01="0" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gLinkChildHatTrimDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="9"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="4" V02="3"/>
<Triangle1 V00="6" V01="7" V02="4"/>
<Triangle1 V00="7" V01="6" V02="8"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,59 @@
<Vertex Version="0">
<Vtx X="518" Y="-228" Z="458" S="-10" T="538" R="90" G="196" B="189" A="254"/>
<Vtx X="419" Y="-515" Z="820" S="-176" T="252" R="79" G="156" B="255" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-10" T="538" R="18" G="254" B="130" A="254"/>
<Vtx X="546" Y="-120" Z="598" S="75" T="406" R="91" G="71" B="54" A="254"/>
<Vtx X="384" Y="110" Z="270" S="186" T="688" R="74" G="103" B="11" A="254"/>
<Vtx X="340" Y="56" Z="185" S="154" T="756" R="67" G="235" B="150" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="154" T="756" R="18" G="254" B="130" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="75" T="406" R="18" G="254" B="130" A="254"/>
<Vtx X="-547" Y="-122" Z="596" S="74" T="407" R="169" G="75" B="55" A="254"/>
<Vtx X="-431" Y="-451" Z="922" S="-140" T="170" R="185" G="31" B="101" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="74" T="407" R="18" G="254" B="130" A="254"/>
<Vtx X="-518" Y="-231" Z="456" S="-12" T="540" R="167" G="201" B="184" A="254"/>
<Vtx X="-339" Y="56" Z="185" S="154" T="756" R="190" G="235" B="149" A="254"/>
<Vtx X="-384" Y="110" Z="270" S="186" T="688" R="182" G="103" B="10" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="186" T="688" R="18" G="254" B="130" A="254"/>
<Vtx X="-54" Y="229" Z="70" S="351" T="616" R="243" G="117" B="207" A="254"/>
<Vtx X="-54" Y="229" Z="70" S="351" T="616" R="243" G="117" B="207" A="254"/>
<Vtx X="-384" Y="110" Z="270" S="186" T="688" R="182" G="103" B="10" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="351" T="616" R="18" G="254" B="130" A="254"/>
<Vtx X="-339" Y="56" Z="185" S="154" T="756" R="190" G="235" B="149" A="254"/>
<Vtx X="-110" Y="136" Z="76" S="482" T="530" R="220" G="230" B="137" A="254"/>
<Vtx X="63" Y="229" Z="71" S="353" T="616" R="13" G="116" B="206" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="353" T="616" R="18" G="254" B="130" A="254"/>
<Vtx X="125" Y="135" Z="77" S="486" T="530" R="38" G="231" B="137" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="482" T="530" R="18" G="254" B="130" A="254"/>
<Vtx X="-518" Y="-231" Z="456" S="-12" T="540" R="167" G="201" B="184" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-12" T="540" R="18" G="254" B="130" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="154" T="756" R="18" G="254" B="130" A="254"/>
<Vtx X="-459" Y="-590" Z="832" S="-220" T="242" R="179" G="155" B="254" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-220" T="242" R="18" G="254" B="130" A="254"/>
<Vtx X="-431" Y="-451" Z="922" S="-140" T="170" R="185" G="31" B="101" A="254"/>
<Vtx X="-88" Y="-532" Z="1031" S="-186" T="83" R="246" G="27" B="124" A="254"/>
<Vtx X="-88" Y="-532" Z="1031" S="-186" T="83" R="246" G="27" B="124" A="254"/>
<Vtx X="-459" Y="-590" Z="832" S="-220" T="242" R="179" G="155" B="254" A="254"/>
<Vtx X="-131" Y="-646" Z="960" S="-252" T="140" R="213" G="146" B="46" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-252" T="140" R="18" G="254" B="130" A="254"/>
<Vtx X="-37" Y="-699" Z="874" S="-252" T="140" R="2" G="137" B="212" A="254"/>
<Vtx X="22" Y="-537" Z="1027" S="-189" T="88" R="18" G="20" B="124" A="254"/>
<Vtx X="33" Y="-653" Z="953" S="-256" T="146" R="48" G="147" B="43" A="254"/>
<Vtx X="-37" Y="-699" Z="874" S="-256" T="146" R="2" G="137" B="212" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-176" T="252" R="18" G="254" B="130" A="254"/>
<Vtx X="419" Y="-515" Z="820" S="-176" T="252" R="79" G="156" B="255" A="254"/>
<Vtx X="404" Y="-400" Z="912" S="-110" T="179" R="66" G="30" B="105" A="254"/>
<Vtx X="546" Y="-120" Z="598" S="75" T="406" R="91" G="71" B="54" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-110" T="179" R="18" G="254" B="130" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-189" T="88" R="18" G="254" B="130" A="254"/>
<Vtx X="-431" Y="-451" Z="922" S="-140" T="170" R="185" G="31" B="101" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-140" T="170" R="18" G="254" B="130" A="254"/>
<Vtx X="-88" Y="-532" Z="1031" S="-186" T="83" R="246" G="27" B="124" A="254"/>
<Vtx X="22" Y="-537" Z="1027" S="-189" T="88" R="18" G="20" B="124" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="-186" T="83" R="18" G="254" B="130" A="254"/>
<Vtx X="384" Y="110" Z="270" S="552" T="667" R="74" G="103" B="11" A="254"/>
<Vtx X="63" Y="229" Z="71" S="410" T="637" R="13" G="116" B="206" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="552" T="667" R="18" G="254" B="130" A="254"/>
<Vtx X="340" Y="56" Z="185" S="696" T="724" R="67" G="235" B="150" A="254"/>
<Vtx X="125" Y="135" Z="77" S="486" T="530" R="38" G="231" B="137" A="254"/>
<Vtx X="-14" Y="-241" Z="492" S="486" T="530" R="18" G="254" B="130" A="254"/>
</Vertex>
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gLinkChildPompomDL_f3dlite_santahat_white"/>
<CallDisplayList Path="objects/object_festivehats/gLinkChildPompomDL_tri_0"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,30 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gLinkChildPompomDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="0" V02="2"/>
<Triangle1 V00="3" V01="2" V02="4"/>
<Triangle1 V00="4" V01="2" V02="5"/>
<Triangle1 V00="2" V01="6" V02="5"/>
<Triangle1 V00="4" V01="5" V02="7"/>
<Triangle1 V00="7" V01="5" V02="8"/>
<Triangle1 V00="5" V01="9" V02="8"/>
<Triangle1 V00="7" V01="8" V02="10"/>
<Triangle1 V00="11" V01="7" V02="10"/>
<Triangle1 V00="11" V01="10" V02="12"/>
<Triangle1 V00="13" V01="11" V02="12"/>
<Triangle1 V00="14" V01="7" V02="11"/>
<Triangle1 V00="14" V01="4" V02="7"/>
<Triangle1 V00="15" V01="4" V02="14"/>
<LoadVertices Path="objects/object_festivehats/gLinkChildPompomDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="13"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="1" V01="3" V02="4"/>
<Triangle1 V00="5" V01="3" V02="1"/>
<Triangle1 V00="6" V01="5" V02="1"/>
<Triangle1 V00="5" V01="7" V02="3"/>
<Triangle1 V00="7" V01="8" V02="3"/>
<Triangle1 V00="7" V01="9" V02="8"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="11" V01="2" V02="12"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,31 @@
<Vertex Version="0">
<Vtx X="0" Y="-1100" Z="158" S="752" T="240" R="0" G="195" B="112" A="255"/>
<Vtx X="0" Y="-1135" Z="103" S="624" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="61" Y="-1111" Z="99" S="496" T="240" R="99" G="177" B="14" A="255"/>
<Vtx X="0" Y="-1036" Z="173" S="752" T="496" R="0" G="22" B="125" A="255"/>
<Vtx X="86" Y="-1051" Z="88" S="496" T="496" R="127" G="0" B="0" A="255"/>
<Vtx X="0" Y="-1121" Z="39" S="240" T="240" R="0" G="160" B="173" A="255"/>
<Vtx X="0" Y="-1135" Z="103" S="368" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="0" Y="-1066" Z="4" S="240" T="496" R="0" G="234" B="131" A="255"/>
<Vtx X="-61" Y="-1111" Z="99" S="-16" T="240" R="157" G="177" B="14" A="255"/>
<Vtx X="0" Y="-1135" Z="103" S="112" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="-86" Y="-1051" Z="88" S="-16" T="496" R="129" G="0" B="0" A="255"/>
<Vtx X="0" Y="-1002" Z="18" S="240" T="752" R="0" G="61" B="144" A="255"/>
<Vtx X="-61" Y="-991" Z="78" S="-16" T="752" R="157" G="79" B="242" A="255"/>
<Vtx X="0" Y="-967" Z="73" S="112" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="61" Y="-991" Z="78" S="496" T="752" R="99" G="79" B="242" A="255"/>
<Vtx X="0" Y="-981" Z="137" S="752" T="752" R="0" G="96" B="83" A="255"/>
<Vtx X="0" Y="-967" Z="73" S="624" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="0" Y="-981" Z="137" S="752" T="752" R="0" G="96" B="83" A="255"/>
<Vtx X="61" Y="-991" Z="78" S="496" T="752" R="99" G="79" B="242" A="255"/>
<Vtx X="0" Y="-1036" Z="173" S="752" T="496" R="0" G="22" B="125" A="255"/>
<Vtx X="86" Y="-1051" Z="88" S="496" T="496" R="127" G="0" B="0" A="255"/>
<Vtx X="-61" Y="-991" Z="78" S="1008" T="752" R="157" G="79" B="242" A="255"/>
<Vtx X="0" Y="-967" Z="73" S="880" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="-86" Y="-1051" Z="88" S="1008" T="496" R="129" G="0" B="0" A="255"/>
<Vtx X="0" Y="-1100" Z="158" S="752" T="240" R="0" G="195" B="112" A="255"/>
<Vtx X="-61" Y="-1111" Z="99" S="1008" T="240" R="157" G="177" B="14" A="255"/>
<Vtx X="0" Y="-1135" Z="103" S="880" T="-16" R="0" G="131" B="22" A="255"/>
<Vtx X="0" Y="-967" Z="73" S="368" T="1008" R="0" G="125" B="234" A="255"/>
<Vtx X="0" Y="-1002" Z="18" S="240" T="752" R="0" G="61" B="144" A="255"/>
</Vertex>
@@ -0,0 +1,11 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gPaperCrownGenericDL_f3dlite_crown"/>
<CallDisplayList Path="objects/object_festivehats/gPaperCrownGenericDL_tri_0"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,31 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gPaperCrownGenericDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="4" V02="0"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="8" V01="9" V02="5"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="13"/>
<Triangle1 V00="13" V01="14" V02="10"/>
<LoadVertices Path="objects/object_festivehats/gPaperCrownGenericDL_vtx_0" VertexBufferIndex="0" VertexOffset="15" Count="15"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="4" V02="0"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="8" V01="9" V02="5"/>
<Triangle1 V00="10" V01="11" V02="12"/>
<Triangle1 V00="10" V01="12" V02="13"/>
<Triangle1 V00="13" V01="14" V02="10"/>
<LoadVertices Path="objects/object_festivehats/gPaperCrownGenericDL_vtx_0" VertexBufferIndex="0" VertexOffset="30" Count="10"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="2" V02="3"/>
<Triangle1 V00="3" V01="4" V02="0"/>
<Triangle1 V00="5" V01="6" V02="7"/>
<Triangle1 V00="5" V01="7" V02="8"/>
<Triangle1 V00="8" V01="9" V02="5"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,42 @@
<Vertex Version="0">
<Vtx X="390" Y="472" Z="-472" S="112" T="-16" R="243" G="89" B="167" A="255"/>
<Vtx X="844" Y="280" Z="-676" S="48" T="-16" R="225" G="47" B="142" A="255"/>
<Vtx X="390" Y="0" Z="-667" S="48" T="240" R="243" G="0" B="130" A="255"/>
<Vtx X="0" Y="0" Z="-667" S="48" T="496" R="0" G="0" B="129" A="255"/>
<Vtx X="0" Y="472" Z="-472" S="112" T="496" R="0" G="90" B="166" A="255"/>
<Vtx X="390" Y="667" Z="0" S="240" T="-16" R="243" G="126" B="0" A="255"/>
<Vtx X="844" Y="676" Z="-280" S="176" T="-16" R="225" G="114" B="209" A="255"/>
<Vtx X="390" Y="472" Z="-472" S="176" T="240" R="243" G="89" B="167" A="255"/>
<Vtx X="0" Y="472" Z="-472" S="176" T="496" R="0" G="90" B="166" A="255"/>
<Vtx X="0" Y="667" Z="0" S="240" T="496" R="0" G="127" B="0" A="255"/>
<Vtx X="390" Y="472" Z="472" S="368" T="-16" R="243" G="89" B="89" A="255"/>
<Vtx X="844" Y="676" Z="280" S="304" T="-16" R="225" G="114" B="47" A="255"/>
<Vtx X="390" Y="667" Z="0" S="304" T="240" R="243" G="126" B="0" A="255"/>
<Vtx X="0" Y="667" Z="0" S="304" T="496" R="0" G="127" B="0" A="255"/>
<Vtx X="0" Y="472" Z="472" S="368" T="496" R="0" G="90" B="90" A="255"/>
<Vtx X="390" Y="0" Z="667" S="496" T="-16" R="243" G="0" B="126" A="255"/>
<Vtx X="844" Y="280" Z="676" S="432" T="-16" R="225" G="47" B="114" A="255"/>
<Vtx X="390" Y="472" Z="472" S="432" T="240" R="243" G="89" B="89" A="255"/>
<Vtx X="0" Y="472" Z="472" S="432" T="496" R="0" G="90" B="90" A="255"/>
<Vtx X="0" Y="0" Z="667" S="496" T="496" R="0" G="0" B="127" A="255"/>
<Vtx X="390" Y="-472" Z="472" S="624" T="-16" R="243" G="167" B="89" A="255"/>
<Vtx X="844" Y="-280" Z="676" S="560" T="-16" R="225" G="209" B="114" A="255"/>
<Vtx X="390" Y="0" Z="667" S="560" T="240" R="243" G="0" B="126" A="255"/>
<Vtx X="0" Y="0" Z="667" S="560" T="496" R="0" G="0" B="127" A="255"/>
<Vtx X="0" Y="-472" Z="472" S="624" T="496" R="0" G="166" B="90" A="255"/>
<Vtx X="390" Y="-667" Z="0" S="752" T="-16" R="243" G="130" B="0" A="255"/>
<Vtx X="844" Y="-676" Z="280" S="688" T="-16" R="225" G="142" B="47" A="255"/>
<Vtx X="390" Y="-472" Z="472" S="688" T="240" R="243" G="167" B="89" A="255"/>
<Vtx X="0" Y="-472" Z="472" S="688" T="496" R="0" G="166" B="90" A="255"/>
<Vtx X="0" Y="-667" Z="0" S="752" T="496" R="0" G="129" B="0" A="255"/>
<Vtx X="390" Y="-472" Z="-472" S="880" T="-16" R="243" G="167" B="167" A="255"/>
<Vtx X="844" Y="-676" Z="-280" S="816" T="-16" R="225" G="142" B="209" A="255"/>
<Vtx X="390" Y="-667" Z="0" S="816" T="240" R="243" G="130" B="0" A="255"/>
<Vtx X="0" Y="-667" Z="0" S="816" T="496" R="0" G="129" B="0" A="255"/>
<Vtx X="0" Y="-472" Z="-472" S="880" T="496" R="0" G="166" B="166" A="255"/>
<Vtx X="390" Y="0" Z="-667" S="1008" T="-16" R="243" G="0" B="130" A="255"/>
<Vtx X="844" Y="-280" Z="-676" S="944" T="-16" R="225" G="209" B="142" A="255"/>
<Vtx X="390" Y="-472" Z="-472" S="944" T="240" R="243" G="167" B="167" A="255"/>
<Vtx X="0" Y="-472" Z="-472" S="944" T="496" R="0" G="166" B="166" A="255"/>
<Vtx X="0" Y="0" Z="-667" S="1008" T="496" R="0" G="0" B="129" A="255"/>
</Vertex>
@@ -0,0 +1,13 @@
<DisplayList Version="0">
<CallDisplayList Path="objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatwhite"/>
<CallDisplayList Path="objects/object_festivehats/gSantaHatGenericDL_tri_0"/>
<CallDisplayList Path="objects/object_festivehats/mat_gSantaHatGenericDL_f3dlite_santahatred"/>
<CallDisplayList Path="objects/object_festivehats/gSantaHatGenericDL_tri_1"/>
<PipeSync/>
<SetGeometryMode G_LIGHTING="1" />
<ClearGeometryMode G_TEXTURE_GEN="1" />
<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_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,62 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gSantaHatGenericDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="1" V01="3" V02="2"/>
<Triangle1 V00="1" V01="4" V02="3"/>
<Triangle1 V00="5" V01="4" V02="1"/>
<Triangle1 V00="6" V01="5" V02="1"/>
<Triangle1 V00="5" V01="7" V02="4"/>
<Triangle1 V00="7" V01="8" V02="4"/>
<Triangle1 V00="7" V01="9" V02="8"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="4" V01="8" V02="11"/>
<Triangle1 V00="8" V01="12" V02="11"/>
<Triangle1 V00="4" V01="11" V02="3"/>
<Triangle1 V00="3" V01="11" V02="13"/>
<Triangle1 V00="11" V01="14" V02="13"/>
<Triangle1 V00="3" V01="13" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gSantaHatGenericDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="1" V01="3" V02="2"/>
<Triangle1 V00="0" V01="2" V02="4"/>
<Triangle1 V00="5" V01="0" V02="4"/>
<Triangle1 V00="5" V01="4" V02="6"/>
<Triangle1 V00="7" V01="5" V02="6"/>
<Triangle1 V00="8" V01="0" V02="5"/>
<Triangle1 V00="8" V01="9" V02="0"/>
<Triangle1 V00="10" V01="8" V02="5"/>
<Triangle1 V00="11" V01="12" V02="13"/>
<Triangle1 V00="11" V01="14" V02="12"/>
<Triangle1 V00="15" V01="14" V02="11"/>
<LoadVertices Path="objects/object_festivehats/gSantaHatGenericDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="3" V01="1" V02="0"/>
<Triangle1 V00="3" V01="4" V02="1"/>
<Triangle1 V00="5" V01="4" V02="3"/>
<Triangle1 V00="5" V01="6" V02="4"/>
<Triangle1 V00="7" V01="6" V02="5"/>
<Triangle1 V00="7" V01="8" V02="6"/>
<Triangle1 V00="9" V01="8" V02="7"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="10" V01="11" V02="8"/>
<Triangle1 V00="10" V01="12" V02="11"/>
<Triangle1 V00="8" V01="11" V02="13"/>
<Triangle1 V00="8" V01="13" V02="6"/>
<Triangle1 V00="6" V01="13" V02="14"/>
<Triangle1 V00="6" V01="14" V02="4"/>
<Triangle1 V00="4" V01="14" V02="15"/>
<Triangle1 V00="4" V01="15" V02="1"/>
<LoadVertices Path="objects/object_festivehats/gSantaHatGenericDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="13"/>
<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="6" V01="7" V02="8"/>
<Triangle1 V00="6" V01="9" V02="7"/>
<Triangle1 V00="6" V01="10" V02="9"/>
<Triangle1 V00="6" V01="11" V02="10"/>
<Triangle1 V00="6" V01="12" V02="11"/>
<Triangle1 V00="6" V01="8" V02="12"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,37 @@
<DisplayList Version="0">
<LoadVertices Path="objects/object_festivehats/gSantaHatGenericDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" 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="3" V01="4" V02="5"/>
<Triangle1 V00="6" V01="3" V02="5"/>
<Triangle1 V00="6" V01="5" V02="7"/>
<Triangle1 V00="8" V01="6" V02="7"/>
<Triangle1 V00="8" V01="7" V02="9"/>
<Triangle1 V00="10" V01="8" V02="9"/>
<Triangle1 V00="10" V01="9" V02="11"/>
<Triangle1 V00="12" V01="10" V02="11"/>
<Triangle1 V00="12" V01="11" V02="13"/>
<Triangle1 V00="14" V01="12" V02="13"/>
<Triangle1 V00="14" V01="13" V02="15"/>
<LoadVertices Path="objects/object_festivehats/gSantaHatGenericDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
<Triangle1 V00="0" V01="1" V02="2"/>
<Triangle1 V00="0" V01="3" V02="1"/>
<Triangle1 V00="3" V01="4" V02="1"/>
<Triangle1 V00="3" V01="5" V02="4"/>
<Triangle1 V00="5" V01="6" V02="4"/>
<Triangle1 V00="5" V01="7" V02="6"/>
<Triangle1 V00="7" V01="8" V02="6"/>
<Triangle1 V00="7" V01="9" V02="8"/>
<Triangle1 V00="9" V01="10" V02="8"/>
<Triangle1 V00="9" V01="11" V02="10"/>
<Triangle1 V00="12" V01="13" V02="14"/>
<Triangle1 V00="12" V01="15" V02="13"/>
<LoadVertices Path="objects/object_festivehats/gSantaHatGenericDL_vtx_1" VertexBufferIndex="0" VertexOffset="32" Count="6"/>
<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"/>
<EndDisplayList/>
</DisplayList>
@@ -0,0 +1,63 @@
<Vertex Version="0">
<Vtx X="128" Y="-1000" Z="0" S="624" T="1008" R="170" G="162" B="0" A="255"/>
<Vtx X="160" Y="-966" Z="-112" S="752" T="752" R="202" G="197" B="157" A="255"/>
<Vtx X="242" Y="-1041" Z="0" S="496" T="752" R="18" G="130" B="0" A="255"/>
<Vtx X="352" Y="-990" Z="0" S="496" T="496" R="94" G="170" B="0" A="255"/>
<Vtx X="236" Y="-883" Z="-158" S="752" T="496" R="0" G="0" B="129" A="255"/>
<Vtx X="77" Y="-890" Z="0" S="1008" T="752" R="129" G="8" B="0" A="255"/>
<Vtx X="128" Y="-1000" Z="0" S="880" T="1008" R="170" G="162" B="0" A="255"/>
<Vtx X="119" Y="-776" Z="0" S="1008" T="496" R="162" G="86" B="0" A="255"/>
<Vtx X="311" Y="-801" Z="-112" S="752" T="240" R="54" G="59" B="157" A="255"/>
<Vtx X="229" Y="-725" Z="0" S="1008" T="240" R="238" G="126" B="0" A="255"/>
<Vtx X="343" Y="-767" Z="0" S="880" T="-16" R="86" G="94" B="0" A="255"/>
<Vtx X="394" Y="-877" Z="0" S="496" T="240" R="127" G="248" B="0" A="255"/>
<Vtx X="343" Y="-767" Z="0" S="624" T="-16" R="86" G="94" B="0" A="255"/>
<Vtx X="311" Y="-801" Z="112" S="240" T="240" R="54" G="59" B="99" A="255"/>
<Vtx X="343" Y="-767" Z="0" S="368" T="-16" R="86" G="94" B="0" A="255"/>
<Vtx X="236" Y="-883" Z="158" S="240" T="496" R="0" G="0" B="127" A="255"/>
<Vtx X="236" Y="-883" Z="158" S="240" T="496" R="0" G="0" B="127" A="255"/>
<Vtx X="311" Y="-801" Z="112" S="240" T="240" R="54" G="59" B="99" A="255"/>
<Vtx X="229" Y="-725" Z="0" S="-16" T="240" R="238" G="126" B="0" A="255"/>
<Vtx X="343" Y="-767" Z="0" S="112" T="-16" R="86" G="94" B="0" A="255"/>
<Vtx X="119" Y="-776" Z="0" S="-16" T="496" R="162" G="86" B="0" A="255"/>
<Vtx X="160" Y="-966" Z="112" S="240" T="752" R="202" G="197" B="99" A="255"/>
<Vtx X="77" Y="-890" Z="0" S="-16" T="752" R="129" G="8" B="0" A="255"/>
<Vtx X="128" Y="-1000" Z="0" S="112" T="1008" R="170" G="162" B="0" A="255"/>
<Vtx X="242" Y="-1041" Z="0" S="496" T="752" R="18" G="130" B="0" A="255"/>
<Vtx X="352" Y="-990" Z="0" S="496" T="496" R="94" G="170" B="0" A="255"/>
<Vtx X="128" Y="-1000" Z="0" S="368" T="1008" R="170" G="162" B="0" A="255"/>
<Vtx X="78" Y="557" Z="-325" S="155" T="496" R="190" G="97" B="206" A="255"/>
<Vtx X="148" Y="-18" Z="-650" S="-16" T="64" R="77" G="246" B="155" A="255"/>
<Vtx X="0" Y="0" Z="-650" S="-16" T="496" R="179" G="10" B="155" A="255"/>
<Vtx X="227" Y="540" Z="-325" S="155" T="64" R="88" G="77" B="206" A="255"/>
<Vtx X="78" Y="557" Z="325" S="325" T="496" R="190" G="97" B="50" A="255"/>
<Vtx X="78" Y="557" Z="325" S="325" T="496" R="190" G="97" B="50" A="255"/>
<Vtx X="227" Y="540" Z="325" S="325" T="64" R="88" G="77" B="50" A="255"/>
<Vtx X="227" Y="540" Z="-325" S="155" T="64" R="88" G="77" B="206" A="255"/>
<Vtx X="0" Y="0" Z="650" S="496" T="496" R="179" G="10" B="101" A="255"/>
<Vtx X="148" Y="-18" Z="650" S="496" T="64" R="77" G="246" B="101" A="255"/>
<Vtx X="-78" Y="-557" Z="325" S="667" T="496" R="168" G="179" B="50" A="255"/>
<Vtx X="70" Y="-575" Z="325" S="667" T="64" R="65" G="159" B="50" A="255"/>
<Vtx X="-78" Y="-557" Z="-325" S="837" T="496" R="168" G="179" B="206" A="255"/>
<Vtx X="70" Y="-575" Z="-325" S="837" T="64" R="65" G="159" B="206" A="255"/>
<Vtx X="0" Y="0" Z="-650" S="1008" T="496" R="179" G="10" B="155" A="255"/>
<Vtx X="148" Y="-18" Z="-650" S="1008" T="64" R="77" G="246" B="155" A="255"/>
<Vtx X="78" Y="-524" Z="-293" S="837" T="-16" R="113" G="202" B="235" A="255"/>
<Vtx X="148" Y="-21" Z="-587" S="1008" T="-16" R="116" G="237" B="208" A="255"/>
<Vtx X="78" Y="-524" Z="293" S="667" T="-16" R="113" G="202" B="21" A="255"/>
<Vtx X="148" Y="-21" Z="587" S="496" T="-16" R="116" G="237" B="48" A="255"/>
<Vtx X="219" Y="482" Z="293" S="325" T="-16" R="120" G="30" B="27" A="255"/>
<Vtx X="227" Y="540" Z="325" S="325" T="64" R="88" G="77" B="50" A="255"/>
<Vtx X="219" Y="482" Z="293" S="325" T="-16" R="120" G="30" B="27" A="255"/>
<Vtx X="219" Y="482" Z="-293" S="155" T="-16" R="120" G="30" B="229" A="255"/>
<Vtx X="227" Y="540" Z="-325" S="155" T="64" R="88" G="77" B="206" A="255"/>
<Vtx X="148" Y="-21" Z="-587" S="-16" T="-16" R="116" G="237" B="208" A="255"/>
<Vtx X="148" Y="-18" Z="-650" S="-16" T="64" R="77" G="246" B="155" A="255"/>
<Vtx X="0" Y="0" Z="0" S="752" T="752" R="130" G="17" B="0" A="255"/>
<Vtx X="0" Y="0" Z="-650" S="752" T="506" R="179" G="10" B="155" A="255"/>
<Vtx X="-78" Y="-557" Z="-325" S="965" T="629" R="168" G="179" B="206" A="255"/>
<Vtx X="78" Y="557" Z="-325" S="539" T="629" R="190" G="97" B="206" A="255"/>
<Vtx X="78" Y="557" Z="325" S="539" T="875" R="190" G="97" B="50" A="255"/>
<Vtx X="0" Y="0" Z="650" S="752" T="998" R="179" G="10" B="101" A="255"/>
<Vtx X="-78" Y="-557" Z="325" S="965" T="875" R="168" G="179" B="50" A="255"/>
</Vertex>

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