Compare commits

..

1152 commits

Author SHA1 Message Date
Pepper0ni
fbbfc07ff1
port over autoFunc punctuation changes and translations (#5426)
Some checks failed
generate-builds / generate-soh-otr (push) Has been cancelled
generate-builds / build-macos (push) Has been cancelled
generate-builds / build-linux (push) Has been cancelled
generate-builds / build-windows (push) Has been cancelled
---

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

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

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

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

* update GIVanillaBehavior comment

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

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

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

* Rearrangement of the currencies in randomizer.cpp

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

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

* missing ones

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

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

* Additions for the German translation in hint_list_exclude_overworld.cpp

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

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

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

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

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

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

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

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

* One last

* final tweaks for real this time

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

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

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

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

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

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

* TODO_TRANSLATE is a macro no a string Hato

---------

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

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

* oops

* adjust shop flavor translations to better fit on 2 lines

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

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

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

* Update "menubar" to "menu" in README

* Add mouse capture toggle to README
2025-04-03 17:33:02 -07:00
Pepper0ni
4f783d5945
fix oversight causing big poes check not to run (#5303) 2025-04-03 16:47:56 -04:00
Archez
2deea6e105
Better verbose output for clang-format (#5306) 2025-04-03 15:23:47 -04:00
Philip Dubé
ef8fa17e7c
simplify clang-format script (#5274)
checked that -print0 & -0 also exist in apple's manpages
2025-04-03 00:36:10 -04:00
Philip Dubé
1e51f1e162
Cleanup whitespace (#5281) 2025-04-03 00:16:52 -04:00
inspectredc
fd96bf6b14
Fix Disable Bomb Billboarding (#5290) 2025-04-03 00:06:16 -04:00
Archez
1c248ded02
Bump Blair Alfa (#5283) 2025-04-02 16:21:47 -04:00
aMannus
dc20abe10b
Fix upgrade crash in rando settings (#5282) 2025-04-02 15:59:04 -04:00
Malkierian
58925bc770
More check renames (#5262)
* Rename a few more entrances to better match interior contents, and a lot of check names to match their grotto names.

* Undo debug commit. Now it's just text changes.
2025-04-02 10:24:01 -07:00
inspectredc
ccb7839eda
Reload font on language change (#5279) 2025-04-02 12:38:12 -04:00
inspectredc
c5e0e32391
Fix Names On Custom Message (#5278)
* Fix Names On Custom Message

* Display Blank Name

* format
2025-04-02 09:45:51 -04:00
inspectredc
2476a7752d
Use sOptionsMenuSettings to avoid OOB read (#5277) 2025-04-02 07:56:30 -04:00
inspectredc
a5a80bd8a2
Fix Crash On Play Scene Inits (#5276) 2025-04-02 07:40:43 -04:00
inspectredc
9892bfaffa
Fix Title Logo Flame Colors (#5275) 2025-04-01 23:56:25 -04:00
Archez
8f126344a4
Apply clang-format to files (#5273) 2025-04-01 22:33:38 -04:00
Archez
e8389e0b2e
Add clang-format scripts and github runner action (#5270) 2025-04-01 17:09:44 -04:00
Christopher Leggett
17b91ecc2d
Fix some misc. Rando menu issues (#5272)
* Fix issue where random and clear seed buttons overlap text input.

* Fix issue where item scale is incorrectly disabled.

On fresh json, there was a mismatch on the defaults where SGIA_JUNK was default for the actual
combobx but SGIA_DISABLED, was used as the default when the CVar was checked in the scale slider's
PreFunc.
2025-04-01 22:53:07 +02:00
xxAtrain223
2bde8fbe5d
Use GetDungeonFromScene (#5271)
* Use GetDungeonFromScene.

* Remove SceneToDungeon map.
2025-03-31 21:18:07 -07:00
Christopher Leggett
05219cbbf7
Prevent GameplayStats and TimeDisplay from getting reset on ship json drag and drop (#5269) 2025-03-31 21:28:48 +02:00
Pepper0ni
eb17f2e99d
Lock mask select behind zelda's letter in rando (#5267)
* Lock mask select behind letter in rando

* change to rand inf
2025-03-31 21:15:41 +02:00
xxAtrain223
35d17b8b0b
Available Randomizer Checks (#5091)
* Calculate accessible checks and show them in the check tracker.

* Added added DoorUnlocked checks to the Fire Temple doors.

This is needed when calculating Accessible checks while playing and using small keys. Otherwise checks will appear unaccessible because Keys have been used.

* Changed RecalculateAccessibleChecks to use the logic ReachabilitySearch.

* Reverted DoorUnlocked changes.

* Added recalculate_accessible_checks debug console command.

* Skip CanBuy check when calculating accessible checks, it spoils that some items can't be bought with the current wallet.

* Set RAND_INF_ZELDAS_LETTER.

* Don't add locations to the pool when calculating accessible checks.

* Save and Load randomizer trick options.

* Get the number of used small keys.

* Added check if bean was planted.

* Show number of Accessible checks in each Area.

* Accounted for missing RG_POCKET_CUCCO in logic HasItem and ApplyItemEffect.

* Show accessible checks via an icon.

* Check shop price against current wallet.

* Recalculate Accessible Checks in CheckTrackerLoadGame instead of LoadFile.

* RecalculateAccessibleChecks on save.

* Don't unset Zelda's Letter.

* Added Only Show Available Checks checkbox.

* Rename Accessible Checks to Available Checks.

* Added option to Enable Available Checks.

* Remove debug console to recalculate available checks, this can now be done by toggling Enable Available Checks in the settings.

* Remove extra requiredTrial.

* Default "Hide unshuffled shop item checks" unchecked.

* Updated GetSmallKeyCount to return int8_t.

* Default AmmoDrop to true until the setting is implemented.

* Fixed Sleeping Waterfall timesaver.

* Updated Only Show Available Checks to let Show Hidden Items reveal hidden available checks.

* Revert "Don't unset Zelda's Letter."

This reverts commit 4b5903940f.

* Set RAND_INF_ZELDAS_LETTER.

* Revert "Fixed Sleeping Waterfall timesaver."

This reverts commit 9b62fd5297.

* Added isMagicAcquired to Logic::HasItem.

* GetDungeonSmallKeyDoors return static emptyVector.

* Comment out AmmoCanDrop in ResetLogic.

* Added location_access CanBuy todo.

* Reverted Get and Set SmallKeyCount to use uint8_t and handled -1 keys.

* Added todo for MQ Water GetUsedSmallKeyCount.
2025-03-30 22:18:42 -07:00
Archez
ae209709ea
Default VSync on to match LUS default (#5261) 2025-03-30 19:24:59 -04:00
Archez
9355aca23e
More prep for clang-format (#5239) 2025-03-31 00:17:09 +02:00
Archez
bcd8842bde
Fix messages crashing when no ntsc game is loaded (#5259)
* Fix messages crashing when no ntsc game is loaded

* rename func
2025-03-31 00:16:44 +02:00
inspectredc
0dc5ff4984
NTSC GC Support (#5254)
* copy n64 pal 10

doing this so i can check diffs i make

* transfer german->jp icon item

* overlays, message data, icon item jpn, audio, code

todo: title_static, gameplay keep

* add kanji and fix title cards

* title static

* spell folder correctly

* boss title cards, do action, icon item, item name, map name

* headers for jpn stuff

* gameplay_keep

* Scenes, audio, jp text extraction, rom support, overlay fixes, sheik & darunia

todo: test & disable darunia fix cvar for ntsc

* msgptr init fix

* icon item offsets

* comment out title cards until zapd can fix itself (we extract these in a different file anyway)

* compile and font implemented to get past title screen

* file select

* message, kaleido and everything else but rando

* uintptr_t

* rando and custom messages working!

* ntsc-j 1.0 support

* n64 logo?

* copy ntsc 10 to 11

* ntsc 11 extraction

* change title version names

* copy ntsc 11 to 12

* ntsc 12 extraction

* clean up some todos

* re checkout submodules post merge

* fix US filename

* support cross-version filenames

* add new versions to non-mq list

* use correct message table init

* Fix ntsc nes message table overriding pal nes message table

* actual fix, allows extraction

* fix file name using wrong font of file being hovered over

* Fix barinade crash

* re-add pal

* better jabu fix and revert LUS

* fix gerudo title cards

* better better owl select

* more owl fixes

* build

* fix some name decode issues

* Switch Language Mid Text

* Fix PAL displaying for JP filenames

* Fix AskToEquip Crash

* Disable Credits Timing Fix on NTSC

* Fix JP Text positioning

* basic language switching (BIG todo: file select, title screen)

* Title Screen Hopefully working

* add ntsc to linux appimage stuff, TODO: add .v64/.n64 support

* Update OTRExporter

* Fix pause to decide offset

* Fix bomb item name crash

* fix fire arrows and PoH

* builds

* update asset changes and fix menu language changing

* fix name decode

* Fix crashes and add rando/boss rush select stuff

* Revive debug feature by setting language cvar too

* Fix ocarina text speed softlock, and update jp text speed changes

* Merge remote-tracking branch 'upstream/develop' into NTSC

* Fix options menu and let pal use japanese fully

* Resolve some suggestions

* match up gTextSpeed changes to english (still broken!)

* Fix text speed crash

* Set default filename language on save init funcs

* copy n64 ntsc 1.2 to gc nmq ntsc and add rom info

* extractor working for ntsc gc u

* Extraction Works

* bump otrexporter

* Display same correct info for n64 ntsc-j and ntsc-u

* ovl asset fixes

* final font diff

* change the correct ovl file choose xml

* copy asset files for jp

* JP Working

* Copy jp and us xmls to mq

* MQ Working

* quicktext more closely aligned with decomp

* add versions to mq switch

* linux appimage v64/n64 checksums

* bump zapd

* Credits Fix Tooltip Adjusted

* update supported hashes json

* update shasums to include JP n64

* add shasum hashes

* Bump submodules back to upstream
2025-03-31 00:16:24 +02:00
Pepper0ni
026a418789
Fix various HBA issues (#5246)
* Fix various HBA issues

* forgot to save

* cleanup to address review
2025-03-30 23:51:20 +02:00
Pepper0ni
c38205ddcf
Apply better big poe logic (#5245) 2025-03-30 23:51:00 +02:00
Archez
035c03bd85
Bump latest LUS main (#5252) 2025-03-30 23:28:53 +02:00
Pepper0ni
28393fba78
Fix early eyeball frog source adaption in King Zora (#5255)
* Fix early eyeball frog source adaption in king zora

* revert inftable sets
2025-03-30 15:07:48 -04:00
Pepper0ni
714b9a731a
Fix fast money accumulator setting (#5256) 2025-03-30 14:52:29 -04:00
Malkierian
e21d322a22
Convert grass shuffle locations to use automatic spoiler name creation. (#5243) 2025-03-30 14:18:19 -04:00
Archez
ae029a3f06
Replace old methods with ShipUtils (#5151)
* Replace old methods with ShipUtils

* remove PAL naming
2025-03-30 13:54:40 -04:00
inspectredc
6140b2ec8f
NTSC Support (N64) (#4198)
* copy n64 pal 10

doing this so i can check diffs i make

* transfer german->jp icon item

* overlays, message data, icon item jpn, audio, code

todo: title_static, gameplay keep

* add kanji and fix title cards

* title static

* spell folder correctly

* boss title cards, do action, icon item, item name, map name

* headers for jpn stuff

* gameplay_keep

* Scenes, audio, jp text extraction, rom support, overlay fixes, sheik & darunia

todo: test & disable darunia fix cvar for ntsc

* msgptr init fix

* icon item offsets

* comment out title cards until zapd can fix itself (we extract these in a different file anyway)

* compile and font implemented to get past title screen

* file select

* message, kaleido and everything else but rando

* uintptr_t

* rando and custom messages working!

* ntsc-j 1.0 support

* n64 logo?

* copy ntsc 10 to 11

* ntsc 11 extraction

* change title version names

* copy ntsc 11 to 12

* ntsc 12 extraction

* clean up some todos

* re checkout submodules post merge

* fix US filename

* support cross-version filenames

* add new versions to non-mq list

* use correct message table init

* Fix ntsc nes message table overriding pal nes message table

* actual fix, allows extraction

* fix file name using wrong font of file being hovered over

* Fix barinade crash

* re-add pal

* better jabu fix and revert LUS

* fix gerudo title cards

* better better owl select

* more owl fixes

* build

* fix some name decode issues

* Switch Language Mid Text

* Fix PAL displaying for JP filenames

* Fix AskToEquip Crash

* Disable Credits Timing Fix on NTSC

* Fix JP Text positioning

* basic language switching (BIG todo: file select, title screen)

* Title Screen Hopefully working

* add ntsc to linux appimage stuff, TODO: add .v64/.n64 support

* Update OTRExporter

* Fix pause to decide offset

* Fix bomb item name crash

* fix fire arrows and PoH

* builds

* update asset changes and fix menu language changing

* fix name decode

* Fix crashes and add rando/boss rush select stuff

* Revive debug feature by setting language cvar too

* Fix ocarina text speed softlock, and update jp text speed changes

* Merge remote-tracking branch 'upstream/develop' into NTSC

* Fix options menu and let pal use japanese fully

* Resolve some suggestions

* match up gTextSpeed changes to english (still broken!)

* Fix text speed crash

* Set default filename language on save init funcs

* bump otrexporter

* Display same correct info for n64 ntsc-j and ntsc-u

* quicktext more closely aligned with decomp

* linux appimage v64/n64 checksums

* bump zapd

* Credits Fix Tooltip Adjusted

* update supported hashes json

* update shasums to include JP n64
2025-03-30 12:29:59 -04:00
Archez
0e23adc237
Change Fullscreen toggle into button (#5236) 2025-03-30 12:20:21 -04:00
Christopher Leggett
554379fd70
Fix some options not updating correctly when dropping jsons and applying Presets (#5240)
* Re-Run ship init funcs on json drop and preset apply

* Prevent registering rando locations from running more than once

* Moves registered=true right after early return

* Move ShipInit call into applyPreset
2025-03-29 00:02:38 -04:00
Malkierian
4d18a36e1a
Clarify "Outside Temple of Time" entrance names. (#5241) 2025-03-28 19:22:51 -07:00
Archez
b66623c152
Fix freezard graphics crash with enemy health scaling (#5232) 2025-03-28 09:30:56 +01:00
Christopher Leggett
32923d83f2
Don't place items on Chest game. (#5233)
This causes it to fall back on vanilla behavior, fixing the crash
Where it tried to draw something invalid.
2025-03-28 04:31:04 +01:00
Malkierian
feea299291
Revert "Set Sample Rate to 32000 hz (#4780)" (#5234)
This reverts commit 9455579f42.
2025-03-28 04:27:01 +01:00
Philip Dubé
b417b87d1c
Shuffle cleanup (#5222)
* Shuffle cleanup

* Grass can be cut with Goron's Bracelet
* Gohma's grass can be cut without defeating Gohma

* more whitespace
2025-03-27 07:48:37 +01:00
aMannus
3e34934e01
Add grass and crates to hell preset (#5221) 2025-03-27 07:47:36 +01:00
Eric Hoey
006650d37b
update break room (#5223) 2025-03-27 07:47:19 +01:00
Malkierian
0ac3f4d6b4
Fix typo in tracker autoscroll tooltip (#5226) 2025-03-27 07:42:41 +01:00
aMannus
057434cdf3
Update Dev Tools Windows (#5220)
* Update dev tools windows

* Review comments
2025-03-26 22:26:11 +01:00
Eric Hoey
47c653a0e5
[Rando] Shuffle Crates (#5017)
* location list + enums

* add identity function

* add new files + hook handlers + settings + crate struct

* add dungeon struct + large crate locations

* fix wasteland name + add overworld hints

* add dungeon hints

* add to item pool

* opt desc + check tracker + overworld locs

* add VB funcs + fix fire locs + dmc crate + shuffle crates not pots again

* fix crate option def

* fix gy crate area

* add ow locs

* context + more location_list

* fix kak crate

* add gv child crates + make exceptions for OOB GF crates + fix GF rht name

* finish adding gv crates + align GF child crates + fix adult GF locs

* fix VB draw + adjust color

* begin logic

* add child archery crate + overworld logic

* deku + dc + rename dc locs

* gtg + spirit

* fire temple logic

* start water temple + some renaming

* finish water temple + renames

* fix dmc crate

* remove child GV + GF crates :( + simplify hints + french

* fix dungeon hint + add french attempt

* cleanup

* smol crate loc list + enums

* setup small crates

* fix fire temple fairy hints

* add logic

* fix small crates + locs

* align GF crates without moving

* add child GV-GF crates for No Logic

* convert to shipinit

* whitespace

* remove old comments

* assets

* proper cap

* better comments on not-shuffled crates

* update for context changes

* update for rest of context changes

* cleanup

* fix shadow hint RHT

* more cleanup

* count to three

* child gf logic

* gv cow crate

* loc list spacing

* remove redundant small crates

* remove left over vb funcs

* split out location list

* fix van spawns

* move NL crates to new type

* rm whitespace

* more whitespacing

* more more whitespace

* update VB

* restore support for custom models

* prep dungeon for develop

* update context for location changes

* finish context post-develop merge

* add heart crates to CSMC

* update loc list + logic fix

* update breakroom crates to adult only

* newline to make github happy

* revise vbshoulds

* formatting sheesh

* update vb info

* BRACKET

* whitespacent

* ws finalfinal
2025-03-26 21:32:32 +01:00
briaguya
9ff49403a8
shipinit (r)ba (#5025)
* RBA and BA

* move rba to shipinit

* make the vanilla condition actually a vanilla condition

* update should docs

* move ba to shipinit

* don't pass things

* try a different readability strategy

* remove option/preset entries

---------

Co-authored-by: rozlette <Rozelette@users.noreply.github.com>
2025-03-26 20:07:54 +01:00
Archez
f1a45cf2ec
Fix Tektite texture body break parts for custom skeletons (#5214)
* Fix Tektite body break parts for custom skeletons

* explicit null check
2025-03-26 20:05:06 +01:00
aMannus
b2ba5a6481
Add clang format off to shuffle grass (#5219) 2025-03-26 19:59:43 +01:00
Christopher Leggett
540aad6715
Don't place GBK into the pool for Triforce Hunt (#5218) 2025-03-26 19:40:03 +01:00
Varuuna
dd81af17bb
[Rando] Grassanity (#4889)
* * fixes softlock when talking to Mido without Kokiri Emerald after killing Gohma

* * moved scene check to hook
* moved vanilla conditioon into GameInteractor_Should

* * corrected hook condition
* removed 'this'

* * reverted GameInteractor and hook_handlers
* changed actor to use existing hook

* * updated kokiri emerald conditions

* * missed parentheses

* * Overworld pretty much done.
* Known issue with Market Night + 2 bushes in KF
* Known issue with Adult bush in ZR

* * fixed locations post-merge

* * renamed option and types to 'GRASSANITY'
* changed grassnity to be a combobox option
* added first 5 deku tree locations

* * color is a sickly green when containing a check
* added ZR 14 (adult only bush on the platform, not the same?)

* * forgot to rename the files to grassanity
* updated draw method to fix regrowing grass

* Removed old WIP locacc files

* * removed comments in bush actor
* added rest of Deku Tree plus MQ

* Added DC + MQ

* Fixed DC incorrect pos value on 1 loc

* JJB done minus after big octo

* Added BotW + MQ locs

* WIP grottos

* Grottos done

* Workaround to allow market grass during night

* Seperated the 2 KF bushes into 4 checks

* Hints and additional formatting

* Slightly less ghastly color

* Corrected the 2 JJB locs

* * Renaming and removal of some locs.
* Restructure in z_en_kusa.c to leave vanilla code alone.
* Formatting.

* * see previous (forgot to stage woops)

* * Clear grassIdentity on item drop
* Added check for RC on RandoDraw function
Results in no extra dupe drops, and instantly correct the color of the grass when cut instead of on collecting the item.

* * fixed dupe location spoiler names which caused occasional crash when writing spoiler log

* * reverse should

* * fixed faulty locations

* * corrected KAK location names and some formatting

* * Fixed market bushes by tree not working at night

* * merged ZR near PoH grass into a single loc

* * Changed to ShipInit (might be missing something?)
* Corrected Should in z_en_kusa.c to use original draw func when setting is Off

* * Renaming to Shuffle Grass

* * minor fix

* * keyboard fail lol

* * suggestions

* * removed unused function

* * move grass locations into ShuffleGrass
* move grass GameInteractor into GIVanillaBehavior
* minor fixes

* * pre-removed locs from dungeon.cpp

* * pre-remove from context.cpp

* * re-added Grass to context

* * added Dana's amazing custom bush models
* using CSMC to display flowers based on "contents"

* * added Dana's grass models
* refactor to lessen the clutter in the switch

* * removed fairy case

* Added back missing Deku Tree locations

* formatting

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

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

* re-added suggestion from previous

* removed wrong line >.>

---------

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-03-26 19:33:10 +01:00
aMannus
c1ff45a240
More minor menu/cvar fixes (#5213)
* Minor fixes

* Hide unshuffled shop checks default fix
2025-03-26 11:07:26 +01:00
Philip Dubé
8832bcaf12
Try make item pool size match location pool size (#5181)
Also avoid putting random junk into the pool to begin with

When smaller, add junk from pending junk items

When larger, remove junk from the item pool

This avoids issue where shuffles which add items to pool (souls, overworld keys, triforce pieces) would hit assert about item pool size exceeding location pool size
2025-03-25 15:00:32 -04:00
Extloga
364fec4d29
Additions and fixes for the German translation in several files (#5173)
* Additions and fixes for the German translation in item_list.cpp

* Additions and fixes for the German translation in hint_list_exclude_dungeon.cpp

* Additions and fixes for the German translation in hint_list_exclude_overworld.cpp

* Additions and fixes for the German translation in hint_list_item.cpp

* Additions and fixes for the German translation in randomizer.cpp

* Additions and fixes for the German translation in randomizer.cpp

* Fix for the French translation in item_list.cpp

* Additions and fixes for the German translation in hint_list_exclude_dungeon.cpp

* Fixes for the English text in settings.cpp

* Fixes for the English text in SohMenuEnhancements.cpp

* Fixes for the English text in SohMenuDevTools.cpp

* Fixes for the English text in SohMenuRandomizer.cpp

* Fixes for the English text in ResolutionEditor.cpp

* Fixes for the English text in enemyrandomizer.cpp

* Fixes for the English text in gameplaystats.cpp

* Fixes for the English text in savefile.cpp

* Fixes for the English text in enemyrandomizer.cpp

* Fix for the English text in SohMenuEnhancements.cpp

Co-authored-by: aMannus <mannusmenting@gmail.com>

---------

Co-authored-by: aMannus <mannusmenting@gmail.com>
2025-03-25 19:55:53 +01:00
Malkierian
2fd3825569
Fix warning from popped, minimized menu. (#5212)
* Fix warning from popped, minimized menu.

* Pre-empt another possible missing Pop.
2025-03-25 10:41:25 -07:00
Christopher Leggett
6abacc1024
Fix the player state flag that Tailparasan checks for for Damage Effect (#5211)
* Fix the player state flag that Tailparasan checks for

* Updated comment for accuracy
2025-03-25 18:12:50 +01:00
Christopher Leggett
ebc3616a3a
lus bump to fix shader issues (#5210) 2025-03-25 16:42:52 +01:00
Archez
aabeffa254
prep for clang format (#5202) 2025-03-25 09:22:18 +01:00
Archez
0f1fb1e5de
Add OOB texture fix entry for Arrow heads (#5207) 2025-03-25 09:21:44 +01:00
Archez
890f3ccee6
Change soh override windows to use different cvar name (#5208) 2025-03-25 09:20:08 +01:00
Archez
5bf1dc8285
Fix unhandled opcode crash with authentic gfx patches (#5206) 2025-03-24 21:27:38 -04:00
Christopher Leggett
084627b8af
Force excluded locations update when preset is applied. (#5205)
* Force excluded locations update when preset is applied.

* Apply same fix for tricks tab

* Address review comment
2025-03-24 22:58:56 +01:00
aMannus
c7ff6e4700
Update enhancement and randomizer presets (#5193)
* Prepare fresh presets

* Separate preset files & finish hell preset

* Enhancement presets done

* Finish randomizer presets

* Update missed enhancement cvar

* Better split presets.h

* Address review comments
2025-03-24 22:22:51 +01:00
Christopher Leggett
43510e5ad9
Fix Skull Tokens from Chests locking you in place (#5198)
* temp fix for chest skulltulas

* Implement way to load a vanilla message into a CustomMessage

* dynamically inserts autodismiss text code to skulltula text.
2025-03-24 22:21:09 +01:00
aMannus
bddef32a5a
fix defaults + modIndex (#5201) 2025-03-24 20:09:39 +01:00
lilacLunatic
dc5bc1aa6c
Mouse Support (#4673)
* mouse

* (mouse) small fix

* "fix" implicit declaration

* LUS 1.2

* empty commit to force CI re-run

* include new mouse LUS

* deleted:    soh/soh/Enhancements/controls/GameControlEditor.cpp

* [mouse]LUS

* fix input viewer header

* Bump LUS for mouse support

* Mouse Support

* Comment cleanup

* Adding the actual mouse enhancement files

* Fix (?) Windows and Mac builds

* Maybe fix MacOS now

* Why was it compiling with this??

* Mouse input viewer handling

* [Mouse] LUS bump

* [mouse] LUS

* (Mouse) bump LUS for dxgi fix

* F2 mouse notif

* Update soh/soh/Enhancements/controls/Mouse.h

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

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

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

* Fix mouse shield ranges to match control stick behavior

* Use early returns in Mouse_HandleQuickspin

* newline cleanup

* cleanup

* rename BUTTON_COLOR_MOUSE_BEIGE to BUTTON_COLOR_MOUSE_GRAY

* 'Enable Mouse' tooltip

* Fix includes

* Comments re mouse quickspin

* bullshit

* Hook handler for cursor recentering on shield

* Hook handler for first person mouse aiming

* Hook handlers for mouse quickspin

* Hook handlers for mouse shield control

* Hook registration conditions

* Enable Mouse -> Enable Mouse Controls

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2025-03-24 19:33:55 +01:00
briaguya
26aa36fe7b
bump lus (#5187)
* pushing what i have so i can try to figure out HW_REG errors

* HW_REG (fix? workaround? either way it builds now)

* factory fixes and shaders

* bump again

* bump again

* copy shaders for `ExtractAssets` too (instead of just in `GenerateSohOtr`)
2025-03-24 09:34:07 +01:00
Philip Dubé
9ae9dc4977
Fix SFM wolfos logic (#5192)
* Fix SFM logic

SFM mixed child wolfos / adult moblin logic, making both incorrect

In particular, Din's Fire is ineffective on Moblins, & slashing your way through them should not be in logic

Adds trick for getting through SFM as adult without killing moblins

Includes small cleanup elsewhere in logic

* moblins not required
2025-03-24 09:11:45 +01:00
Sirius902
1053b0e0cf
Prefix icon paths with CMAKE_SOURCE_DIR (#5197) 2025-03-24 08:56:08 +01:00
briaguya
edd8561ddc
assignable tunics/boots - dont throw items (#5045)
* don't throw items when using assigned tunics/boots

* didn't actually need that

* simplify logic so we don't need to check for holding items

* just use a vb should

* fix comment
2025-03-24 08:46:22 +01:00
Malkierian
c7e3ef9e4d
Wrong type for CVarGetInt on waterfall open enhancement. (#5200) 2025-03-23 21:52:07 -07:00
Malkierian
e25058c256
Fix sleeping waterfall enhancement and rando option combinations. (#5199) 2025-03-23 21:34:06 -07:00
Christopher Leggett
45b8f228d9
Remove MenuOptionIndex Middleman and fix rando presets (#5185)
* Remove CVar Middleman and fix rando presets

* Throwing in a couple of typo corrections
2025-03-23 19:07:12 +01:00
Malkierian
2564721b2c
Change default index retrieval to sidebarOrder vectors. (#5189) 2025-03-23 09:42:34 -07:00
Malkierian
9ffe2ab2b9
Some cleanup (#5183)
* Resolve size_t conversion warnings in UIWidgets.hpp

* Change "Better Debug Warp Menu" to default on.

* Change All/None checkboxes (for item counts and cutscene skips) to buttons.

* Remove all/none for item counts.
Remove arrays for item counts, create widgets directly.
2025-03-22 16:51:59 -07:00
Malkierian
69a32ffba6
Restore combobox functionality to Bunny Hood Effect (#5167)
* Restore combobox functionality to Bunny Hood Effect, and tweak the tooltip.

* Tweak the description a bit more.

* Final tweak?
2025-03-21 18:42:59 +01:00
Pepe20129
983c075a33
Overworld Key Tracker (#5164)
* Overworld Keys Tracker

* Update randomizer_item_tracker.cpp

* Fix id collision

* Post-merge fixes

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

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

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2025-03-21 17:53:17 +01:00
Malkierian
ae5e41f7a0
Fix Dungeon Spoiling in Trackers (#5168)
* Prevent spoiling dungeons in check and item trackers if MQ is set to Selection, but selection for specific dungeon is Random.

* Account for other options using "Set Dungeon Quests".
2025-03-21 12:32:46 +01:00
Philip Dubé
1e294134af
Remove EnFr_RandomizerCheckFromSongIndex (#5169)
* Remove EnFr_RandomizerCheckFromSongIndex

Also handle missing return in RawAction::CheckFlag

Also adjust jabu jabu shabom timer override to be non-overflowing constant (but same constant)

* Update soh/soh/Enhancements/enemyrandomizer.cpp

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

* remove shabom room hack from z_obj_roomtimer.c

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2025-03-21 12:27:53 +01:00
Malkierian
04458f2274
Allow F1 to close the menubar modal via new IsPopupOpen() and DismissPopup functions in SohModalWindow. (#5166) 2025-03-21 12:26:03 +01:00
Archez
1bcab06fed
Rework CI build caching for stability (#5170)
* improve github build caching

* add back network build flag

* add back sdlnet
2025-03-21 12:23:01 +01:00
Malkierian
e21a3e4c0f
Add check for GAMEMODE_END_CREDITS in Audio Editor's OnSceneInit hook (#5172)
* Add check for GAMEMODE_END_CREDITS in Audio Editor's OnSceneInit hook to prevent sequence shuffles mid-credits.

* Move extern "C" block up.
2025-03-21 12:22:22 +01:00
Archez
57bc5690e2
Mono dev tools (#5175)
* apply mono font to some dev tool windows

* soh gui wrappers for gfxdebugger and console to set mono font

* it can be just a little larger
2025-03-21 12:21:33 +01:00
Archez
985bf91945
prevent some timesavers applying in boss rush (#5163) 2025-03-20 20:20:50 +01:00
aMannus
b6f957b36f
More Menu Improvements (#5155)
* fix mismatch on default value for notification position

* Fix checkbox vertical offset for multiline

* Moooore changeees too theee menuuuuuu

* capitalization again

* Fix controller config & remove test var
2025-03-20 20:19:16 +01:00
Christopher Leggett
65564e9469
Fix typo in Mute Low HP Alarm CVar (#5161) 2025-03-20 08:46:52 -07:00
Jordan Longstaff
f02032aed4
Skip dialogue before getting Gerudo membership card (#5058)
* Skip dialogue before getting Gerudo membership card

* Change to misc interaction

* Change to forced NPC dialogue

* Rename VB flag
2025-03-20 12:07:43 +01:00
Christopher Leggett
8958db5c2b
Fix CVar mismatches for skip forced dialog and unrestricted items. (#5159) 2025-03-20 00:21:31 -04:00
Christopher Leggett
b3ed249021
Fix Pot Shuffle crash caused by removal of id check (#5158)
* Fix Pot Shuffle crash caused by removal of id check.

* Properly unregister ShufflePots Hook
2025-03-19 23:03:42 -04:00
Philip Dubé
723375a344
fix type signature of Randomizer_DrawMysteryItem (#5156) 2025-03-19 22:19:19 -04:00
Jordan Longstaff
224c810e39
Link can move around while carpenters escape (#5055) 2025-03-20 00:05:20 +01:00
Jordan Longstaff
818c7e4633
Skip carpenter dialogue before Gerudo mini-boss (#5057)
* Skip carpenter dialogue before Gerudo mini-boss

* Apparently I'd forgotten the include

* IS_RANDO default
2025-03-20 00:03:59 +01:00
Malkierian
6ad503e1d2
Adds a modal registration for pressing F1 and confirming Quit from the menu button. (#5154)
Fixes near shortcuts gossip stone name to include "grotto" to signify it's in the grotto.
2025-03-19 23:57:08 +01:00
aMannus
4243eb67ae
Exclude nabooru from boss souls (#5152) 2025-03-19 23:52:33 +01:00
Pepe20129
79b53e5920
Change Compass Colors Match Dungeon to Map & Compass Colors Match Dungeon (#5042)
* Colored maps & compasses with shipinit

* Update SohMenuBar.cpp

* Post-merge fixes

* Whoops
2025-03-19 23:52:16 +01:00
Archez
a6ff511af5
Exclude zora sapphire from random enemy size (#5153) 2025-03-19 21:53:46 +01:00
Jordan Longstaff
70fc060381
Fix Forest Stage upgrades with Skip Misc Interactions (#5052)
* Fix Forest Stage upgrades with Skip Misc Interactions

* Explicit upgrade checks
2025-03-19 20:03:15 +01:00
Philip Dubé
28944cc68f
fix some warnings (#5135)
* fix some warnings

* fix error caught by mac build, fix 3 more warnings

* merge fix

* feedback

* remove color refactor
2025-03-19 12:30:44 -04:00
aMannus
7dd3c1b2ac
update model (#5150) 2025-03-19 15:46:02 +01:00
Christopher Leggett
17b19ddd73
Remove GBK Triforce Hunt as an option (#5117)
Where we were previously checking it, just check the separate triforce hunt option instead.
The option under GBK settings was always kind of a dummy option that wasn't meant to actually be selected, and it was set automatically when Triforce Hunt was on.
This PR just cuts out the middle man, so to speak.
2025-03-19 14:11:56 +01:00
aMannus
7f8e3d4337
randomizer enhancement menu improvements (#5148) 2025-03-19 13:50:04 +01:00
aMannus
80850615c3
Fix key color issues (#5149) 2025-03-19 13:49:51 +01:00
aMannus
5517e22f6e
Exclude skip get item animations outside of rando (#5147) 2025-03-19 12:42:56 +01:00
Philip Dubé
b7b5949bc4
Some location access fixes (#5121)
* Some location access fixes

Split out a few fixes I've made while working on #5105

* assert false

* IC feedback
2025-03-19 12:42:18 +01:00
aMannus
04d79222d4
fix crash (#5146) 2025-03-19 12:34:52 +01:00
aMannus
d109aa795a
Remove Shuffle Pots assert (#5145)
* Remove assert

* Remove exceptions to the assert
2025-03-19 12:34:01 +01:00
Pepper0ni
7a6778c940
exclude maps from junk only GI skip (#5140) 2025-03-19 11:21:39 +01:00
Pepper0ni
dd7dee8f07
Fix finite shields getting thier effect applied in SCL (#5130) 2025-03-19 11:15:55 +01:00
Philip Dubé
37a2730df2
remove unused 3drando custom message code (#5138) 2025-03-19 11:15:43 +01:00
Archez
9795f696c8
Hook unregister fixes and hook debugger tweaks (#5139)
* clang-format before

* Hook unregister fixes and hook debugger tweaks
2025-03-19 11:14:43 +01:00
Philip Dubé
7c227dcc42
remove color from UIWidgets::WidgetOptions (#5141) 2025-03-19 11:11:47 +01:00
xxAtrain223
0f81e6d82b
Initialize the RegionTable when loading a file. (#5144) 2025-03-19 11:11:26 +01:00
aMannus
c72efd08a9
Menu - Enhancements and cheats re-organisation (#5142)
* First pass cheats, extra modes, minigames, difficulty, fixes, graphics

* More progress. One tab left

* Enhancements & cheats done and fix for item tracker font
2025-03-19 08:43:14 +01:00
Pepper0ni
233c07d16a
Fix entrance oversight in shield grave (#5137) 2025-03-18 11:32:54 -04:00
aMannus
ab5ea0e8ee
Further Menu Improvements (#5129)
* Menu improvements

* Update calc for button offsets

* Fix enemy rando UI
2025-03-18 10:12:45 +01:00
Christopher Leggett
9e883ece96
Fix/modern menu/secret flag (#5131)
* Adds ability to set InputString fields as "secret"

Meaning it shows the text as dots like a password field. Currently nothing that is merged into the main branch uses this but Anchor will need it.

* Adds an `addedFlags` field to InputOptions.
2025-03-18 09:26:09 +01:00
Spodi
546b915106
Unify FPS and V-Sync controls and behavior between renderer (#5132)
* FPS and refresh rate logic changes

Changes FPS behavior on all renderer (despite the actual set FPS):
- Clamp FPS to refresh rate when V-Sync on (or can't be disabled)
- Stick to refresh rate when "MatchRefreshRate" is toggled on

* Max 360 FPS for slider on all renderers

* "Match Refresh Rate" unification

Checkbox for all renderer. Was a button for DirectX.

* Fix wrong CVAR for Match Refresh Rate

* More descriptive V-Sync tooltip

* Fix wrong CVar for DISABLE_FOR_DEBUG_MODE_OFF
2025-03-18 09:24:50 +01:00
Malkierian
63ae14cc30
Menu Header Button Reorder (#5134)
* Move close menu button to right side, farthest right, and move Quit SoH to the left of the Reset button.
Also remove last reference to 2ship in tooltips.

* Change Resolution Editor's use of CVarGet to `GetInterpolationFPS()` in OTRGlobals.
2025-03-18 09:24:32 +01:00
PurpleHato
a95883b6b3
Multiple Rando Text related stuff (#5125)
* Multiple Rando Text related stuff

- Mostly french rework / completion of missing lines
- Removal of a duplicate entry for Richard's house overworld key
- Correct naming for the English pond
- Addition of missing text in English and french

* Txeak uncessary spaces
2025-03-17 20:15:53 +01:00
Malkierian
c18d427619
Setup F11 to toggle the fullscreen CVar to keep it synced with fullscreen state. (#5128) 2025-03-17 20:13:35 +01:00
Malkierian
a6163ca2e8
Fixes skip get item prefix in hook handlers and the space in ClimbSpeed CVar. (#5127)
Also moves Item Scale option into rando enhancements to match skip get item animation, as it's directly tied.
2025-03-16 23:36:06 -07:00
aMannus
f3b3e0f5eb
Use percentage of screen size as padding (#5123) 2025-03-16 23:00:47 +01:00
Malkierian
05ab17d3a8
Reimplement ImGui Scaling option. (#5124) 2025-03-16 23:00:30 +01:00
Pepper0ni
112fab503f
Fix oversight in HC storms grotto (#5120) 2025-03-16 22:00:31 +01:00
Pepe20129
797fe2d989
Fix Ganon's Tower entrance logic (#5115)
* Fix tower

* Update fire_temple.cpp
2025-03-16 21:58:04 +01:00
Christopher Leggett
a97f853a14
Prevent Big Octo one point cutscene from playing twice. (#5113) 2025-03-16 21:55:14 +01:00
Malkierian
5b622683f4
Clean up Push/Pop font calls in check and item trackers by adding them instead to Begin/EndFloatWindows functions. (#5122)
Add missing PopFont call to entrance tracker.
2025-03-16 21:51:52 +01:00
Malkierian
7e392e63a8
Modern Menu (#5116)
* Add menu files, hook menu up to window system.
Temporarily rename new menu's UIWidgets to UIWidgets2 to allow both menu systems to coexist temporarily.

* Finish implementing new menu.
Rename 2ship UIWidgets to UIWidgets2 to complete facilitation of both menus working for now.

* More preliminary setup

* More prepwork, begin on settings options

* Finish settings, add enhancements windows

* Fix search function not looking past first columns.

* Add dev tool windows

* Finish dev tools

* Add about window

* Fully replace about window

* Remove moved menu items from menubar, add more windows to new menu

* Implement WindowButtonOptions.
Add ability to not embed popout windows when not popped out.
Add ability to hide the button for WindowButtons.
Fix Entrance Tracker from showing when not enabled.

* Fix entrance tracker settings embedded display.
Fix entrance tracker settings window original size declaration.

* Initial implementation of themed radio button widget.

* Move "About" section to second column of general.
Fix sidebar sections starting in second column.

* Restore Entrance Tracker `Draw()` to allow for custom styling.

* Fix combobox positioning formatting.
Fix color picker end spacing.
Convert everything in check tracker settings to UIWidgets2 (except color pickers and section headers).
Make all tracker windows not embed.

* Minor cleanup

* Fix main volume defaults & mirror jitter fix removal on dev

* Improve color picker with RGB/RGBA options. Not finished.

* Finish creating CVarColorPicker and implement for Check Tracker background color.
Fix tracker and network prefixes.

* Finish check tracker settings and convert check tracker.

* Port all Cheats menu except for Beta Quest

* Port over Beta Quest to new menu

* Remove old cheats menu

* Port cutscene skips to modern menu

* Port Timesaver Enhancements to new menu

* Port the Items and Item Count Messages submenu

* Port Difficulty Options to new Menu

* Removes options that have been ported thus far.

* Port "Reduced Clutter" options to new menu

* Add forgotten callbacks to Hyper Enemies/Bosses

* Copy StateButton to UIWidgets2, and implement custom padding for them in the tracker.

* Ports some pause menu related settinga

* Change tracker window active title color.
Make state buttons smaller in tracker to get more info on screen.

* Convert window title active theming to all windows.

* Port the rest of Enhancements->Gameplay to new menu

* Port the "Graphics" Enhancements to new menu

* Ports Fixes over to the Modern Menu

* Ported Restorations to Modern Menu

* Ported Extra Modes to new menu

* Port Autosave and Boot Sequence to modern menu

* Cleans up some leftover data for ported buttons

* Ports Enhancement Presets to new menu

* Port Additional timers to new menu. Removes Enhancements from old menu

* Cleans up some unused stuff

* Ports Randomizer Enhancements to modern menu

* Convert Item Tracker Settings. Something's wrong with the comboboxes in a second column of a table.

* Fix combobox alignment and label position calculations.

* Convert Entrance Tracker window.

* Save Editor Info tab finished.
Added `PushStyleInput` and `PushStyleTabs` for Info tab.
Fixed some indentation in entrance tracker source.
Added font push to tracker windows.

* Increase size of all icons in save editor.

* Convert flag groups to child windows for automatic sizing and border drawing.

* Flags tab completed.
Finished inventory tab.

* Convert save editor help hover to UIWidgets2.

* Various fixes and corrections

* Start cosmetics editor, fix theme colors not updating

* Cosmetics editor conversion progress

* Remove Mac internal resolution restrictions.

* Copy over advanced resolution partial and enable most options as a custom widget.

* Add size to float sliders, more cosmetics editor progress

* Fix incorrect cvar for notifications

* Radio button & header color options, more cosmetics editor progress

* Finish cosmetics editor conversion

* Create and apply THEME_COLOR macro. Resides in SohGui for easy access to mSohMenu.

* Move ResolutionEditor to SohGui directory.

* Add labels to build info.
Fix slider width calculations.

* Fix some advanced resolution widget hiding.

* Fully implement Advanced Resolution options.
Fix graphics settings formatting.
Improve slider label position calculations.
Implement Clamp options on sliders.

* Finish save editor.
Convert save editor code to `using namespace UIWidgets2`.
Fix search crashing on time splits window.
Remove `SetLastItemHoverText` from `UIWidgets2`.

* Unify cvar sectioning in time splits.

* Add InputString and InputInt widgets, and corresponding CVar Widgets

* Adds Widget Type for Inputs, not currently used.

* Convert Sail to modern menu

* Add Combobox that takes a vector of std::strings

* Convert checkbox and combobx to new widgets

* Add Tristate checkbox

* Convert sliders and tristate checkboxes

* Convert top half of Rando window

* remove/replace remainder of UIWidgets usage in option.cpp

* Converts tricks, locations, and removes old UIWidgets refs

* Fix windows build errors

* Remove Tri-State checkboxes

* Use PushStyleInput instead of PushStyleSlider

lol oops didn't realize it was a thing in Ship.

* Rebase and address review comments

* Convert Crowd Control to modern menu.

* Fix build error

* Audio editor progress

* Re-add CVar SaveOnNextFrame calls to Resolution Editor.
Remove old Resolution Editor files.

* Convert TimeSplits to new menu.
Fix a few enum warnings.

* Decrease padding on Arrow Buttons

* Audio editor + gameplay stats done

* Give Randomizer Menu more screen real-estate

* Port plandomizer menu

* Fix slider width calculation and allow combobox LabelPosition::None

* Fix None labelPos and slider width for inline labels

* Fix all slider value label insertions.
Convert Collision Viewer.

* Minor Collision Viewer enum change.
Convert Actor Viewer.

* Theme/convert Message Viewer.

* Add font to Message Viewer.
Theme Value Viewer.

* DL Viewer and SohModals themed.

* Convert Input Viewer.

* Missed some color settings in Input Viewer.
Removed UIWidgets references from Controller Config, and restored SoH version.

* Remove UIWidgets.hpp include from multiple files.

* Completely remove old UIWidgets.
Rename UIWidgets2 to UIWidgets.
Move Accessibility and Language options to new menu.

* Fix Gfx Debugger not showing up.
Remove menubar registration.

* Fix clearCvars references.

* Fix passing std::string to const char* argument.

* enum name spacing

---------

Co-authored-by: aMannus <mannusmenting@gmail.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
2025-03-15 16:11:30 -07:00
Christopher Leggett
c54883da72
Fix more missing location pool exclusions (#5108)
* Fix more location pool exclusion misses

* Add assert to ensure item pool isn't too large.

This will catch any issues where too many items are getting
added to the pool in Debug mode. It only checks to make sure the item
pool is smaller than the location pool, as the code actually handles
that just fine by placing Junk if the pool runs out. The Item Pool being
larger than the location pool though could easily result in items not
being placed. Logic should prevent a seed like that actually being
generated, but No Logic does no such checks.

* Add TODO comment for Item Pool, should be same size as Location Pool.

* Prevent Completed Triforce from ending up in Location List
2025-03-12 10:32:45 -07:00
Malkierian
9b9a0061ab
Unify spoiler name creation across all shuffle types, and remove all versions of constructor functions with explicit spoilerName parameters except base. (#5111) 2025-03-12 10:32:17 -07:00
Philip Dubé
6dedf8a277
Gerudo Valley: fix regression with previous fix when combined with overworld shuffle (#5109)
Missed this in #5094 since only in last week I started becoming familiar with entrance shuffle logic
2025-03-12 10:32:03 -07:00
Philip Dubé
39e52aa8e6
Fix Gerudo Valley entrance logic (#5094)
* Fix Gerudo Valley entrance logic

Logic assumed cucco could be used as child to get around lacking bronze scale,
but this assumption fails if you enter grotto ledge from grotto or initial spawn

* fix lower/upper mixup

* fix: you can walk to lake hylia

* adult can jump across
2025-03-06 16:59:02 -07:00
Philip Dubé
eb6c0d9d29
presets: clear blocks (#5098)
* presets: clear blocks

this avoids needing to list every new cvar in presets.h

* avoid resetting selected preset

* no cvar lists, clear less blocks on drop
2025-02-28 04:34:16 +01:00
Jordan Longstaff
2d78cb561a
Move Broken Giant's Knife fix hook to its own file (#5049)
* Move Broken Giant's Knife fix hook to its own file

* Separate IS_RANDO out of value macro

* Remove redundant extern

* One-line comment
2025-02-28 04:33:48 +01:00
Pepe20129
06387060d6
Trade cleanup (#4971)
* Move adult trade to flags

* Move child trade to flags

* Fix vanilla

* Address review

* Rename `trade_shuffle` to `ShuffleTradeItems`

* Fix mac build

* Update GIVanillaBehavior.h

* Update z_kankyo.c

* Update z_en_heishi2.c
2025-02-25 12:09:01 +01:00
Philip Dubé
db41c6513b
Move boss kill logic into CanKillEnemy (#5000)
* Move boss kill logic into CanKillEnemy

Added hammer as being able to defeat Morpha

* add hammer vs gohma, king dodongo, & twinrova
2025-02-25 10:25:45 +01:00
Philip Dubé
e516f45e23
logic: allow finding big poe in bottle for reward logic (#5075)
* logic: allow finding big poe in bottle for reward logic

only applies when big poe count is set to 1

* Allow multiple big poe bottles for when big poe requirement > 1
2025-02-25 09:30:05 +01:00
Archez
66844fb220
Fix crash with scene logging paths (#5081) 2025-02-25 09:14:27 +01:00
Archez
5fcdf74f5c
Exclude debug file and cutscene map from auto save (#5088)
* Exclude debug file and cutscene map from auto save

* Remove ganon's lair from auto save exclusion
2025-02-25 09:13:31 +01:00
Archez
f023a46a5d
Use gamemode enum (#5089)
* Use gamemode enum

* update console command for file_select
2025-02-25 09:13:17 +01:00
Philip Dubé
51310db68f
ShuffleCows.cpp (#5093) 2025-02-25 09:11:46 +01:00
briaguya
acdb2dd324
bump lus (#5092) 2025-02-20 23:48:11 -05:00
Philip Dubé
49c5e19041
Fix rando generation crash (#5076)
Assertion failed in CreateChildAltarHints because all 3 stones were placed on fairies/beehives while those were disabled

Fix: consolidate on Context building settings dependant location lists. Overworld vs Dungeon should not operate so differently
2025-02-20 22:37:57 -05:00
Jordan Longstaff
b6e2a995f1
Use VB hook to fix Deku Nut upgrade bug (#5047)
* Use VB hook to fix Deku Nut upgrade bug

* Use constexpr, remove unused extern

* Separate IS_RANDO out of value macro

* Restore mask check in hook

* Call VB hook in SkipMiscInteractions hook

* Mask of Truth hook not registered in rando
2025-02-19 20:22:56 -05:00
Eric Hoey
75f33a00d8
Remove Right-Stick Aiming from Enhancement Presets (#5086) 2025-02-19 19:08:24 -05:00
Archez
3d7da51fc7
Remove committed mods folder (#5082) 2025-02-17 20:33:36 -05:00
Miles Acquaviva
cc25c96385
Added and implemented TrailType enum (#5059)
* added TrailType enum

* fixed build, moved declaration

* added enhancement comment

* Apply suggestions from code review

---------

Co-authored-by: link5669 <acqmiles@gmail.com>
2025-02-17 20:03:55 -05:00
aMannus
489cd84faa
Clean up autosave header (#5077) 2025-02-17 17:43:51 -05:00
briaguya
6f22c05eec
pin linuxdeploy (#5070)
* test forked linuxdeploy

* pin version
2025-02-16 08:25:30 +01:00
briaguya
2645a5fce2
bump lus (#5065) 2025-02-15 15:58:26 -05:00
briaguya
169a3d742d
make cmake_minimum_required consistent between root CMakeLists.txt and soh/CMakeLists.txt (#5066)
also remove some version checks that don't apply anymore
2025-02-15 00:59:02 -05:00
briaguya
20a9f41906
remove unused VB_SHOULDs (#5056)
* remove an unused should

* another unused

* remove more unused

* one more

* remove case

* more cases for unused shoulds
2025-02-14 21:32:25 +01:00
Christopher Leggett
6df5abc30b
Fix ER + Fishsanity settings combos (#5061) 2025-02-14 21:30:11 +01:00
aMannus
668040562f
Autosave Overhaul (#5022)
* Autosave interval based

* Move to save on soft reset, remove adjustable interval

* Use new BeforeExitGame hook to prevent non-existent data problems

* Fix check tracker crash, remove BeforeExitGame hook

* update comment
2025-02-14 21:29:22 +01:00
Eric Hoey
dbf7fcf775
explicitly exclude ganon + triforce completed (#5050) 2025-02-13 10:10:27 +01:00
Christopher Leggett
f7d6a47139
Fix issues leftover from PR #5023 (#5054) 2025-02-13 10:09:58 +01:00
Archez
0ce9807df6
ShipInit and move ValueViewer rendering out of src (#5039) 2025-02-12 21:52:18 +01:00
Christopher Leggett
d4b9e8c835
Remove locations from pool that are not shuffled. (#5023)
* Cleanup of unshuffled locations from pool/spoiler

* Removes unshuffled scrubs from the location pool

* Fix some instances of weird spacing

* Actually remove placement of vanilla freestandings

* Cleans up some now unnecessary code.

* Minor Optimization of PlaceItemsForType

* Fixes some grammer and spelling

* Another grammar fix
2025-02-12 21:42:58 +01:00
Archez
266792599e
Add hilite setup calls around all custom GI draws (#5043) 2025-02-12 21:32:28 +01:00
Archez
135c2e8217
Remove POLY_KAL and restore POLY_OPA for kaleido (#5041) 2025-02-12 21:30:06 +01:00
Miles Acquaviva
297a056dff
Created and implemented PosType enum (#5046)
* Created and implemented PosType enum

* fixed formatting

---------

Co-authored-by: link5669 <acqmiles@gmail.com>
2025-02-12 21:28:17 +01:00
Eric Hoey
499a23e9a3
restore night lock + remove interior lock (#5048) 2025-02-12 21:22:00 +01:00
Eric Hoey
126c3b532f
fix loop order + reorder case for clarity (#5044) 2025-02-12 21:21:43 +01:00
briaguya
37fd39c7b5
shipinit dont show master sword (#4989)
* Initial Commit

* Added full functionality for both Hylian and Mirror

* Included Format

* Removed Format

* Pedestal Cutscene

* Much Less OnGameUpdating

* Fix function call

* use enums

* move animation skip to vb should

* move taking out master sword to put in pedestal check into vb should

* move the rest of it over

* extra newline was bugging me

* update on `"IS_RANDO"` and use `COND`s

* make new "uncategorized" section for VB enum

* move shoulds to new file

* move vb rsk checks into conds

---------

Co-authored-by: Patrick12115 <Patrick12115@hotmail.com>
Co-authored-by: Malkierian <malkierian@gmail.com>
2025-02-12 15:32:40 +01:00
Archez
46c6d2f526
Restore pause link drawing behavior to use the work buffer (#5038) 2025-02-11 22:36:12 +01:00
Sarge-117
f5fa0f4e00
fix typo (#5036) 2025-02-11 16:18:16 -05:00
Garrett Cox
ac72ebaaa3
Fix issue with pause buffer input window not applying correctly to closing save prompt state and move code around to be in order of operations (#4975) 2025-02-11 09:56:48 -05:00
briaguya
a7f837014f
fix dark link not getting hit when stunned (#5028)
in https://github.com/HarbourMasters/Shipwright/pull/3280 both `0x00400000` and `0x04000000` were replaced with `PLAYER_STATE1_SHIELDING`.

`0x00400000` is `PLAYER_STATE1_SHIELDING`, but  `0x04000000` is `PLAYER_STATE1_DAMAGED`

this fixes the spots in `z_en_torch2` where we had `PLAYER_STATE1_SHIELDING` where it should have been `PLAYER_STATE1_DAMAGED`
2025-02-09 12:58:27 -05:00
briaguya
29cecd8502
fix dark link softlock (#5027) 2025-02-09 11:49:56 -05:00
aMannus
0177690b54
Remove potion values (#5021) 2025-02-09 09:34:02 +01:00
Spodi
8ce5c46531
Remove "Jitter Fix" option (#5020)
This was just confusing for users.
2025-02-09 01:07:02 -05:00
briaguya
c11887edcd
bump lus (#5026) 2025-02-09 01:06:31 -05:00
briaguya
6abf30aa2f
document vb shoulds (#5004) 2025-02-08 19:12:13 +01:00
Philip Dubé
14a14bb7ef
DC logic: more mud walls (#5019)
A few mud walls in DC logic still used SmashOrBlast, preventing alternative blue fire trick logic
2025-02-08 19:09:18 +01:00
aMannus
8f3711f008
simplify pause menu link (#5013) 2025-02-08 19:08:52 +01:00
Christopher Leggett
2400ad1d68
Start splitting Location List into ShipInit functions (#5011)
* Move fairy checks to separate file

* Moves pot locations to ShipInit function

* Move Freestanding locations to a ShipInit function

* Remove some extra newlines that were pasted in

* Move fish locations to ShipInit function

* Remove ON_BOOT, as it's not really necessary

* Fix weird spacing
2025-02-06 20:30:23 -07:00
briaguya
ca0617b035
add some documentation to RegisterShipInitFunc (#4995) 2025-02-06 21:47:06 -05:00
Christopher Leggett
f2a3ac1740
Fix enabledTricks getting incorrectly logged. (#5012) 2025-02-06 15:40:38 -07:00
Archez
eafe7f0b04
Fix save warping in links house with entrance rando (#5009)
* Fix save warping in links house with entrance rando

* account for interrior shuffle all
2025-02-06 08:33:41 -07:00
Malkierian
4044ab34c3
Add Fortress and Colossus entrance groups to the entrance tracker data, and adjusted the check tracker accordingly (for autoscroll). (#5001) 2025-02-05 16:11:48 -07:00
Archez
3cd4851474
Defer scene DList resource loading to in-game and support alt pathing (#4986)
* Defer scene dlist resource loading to in-game and support alt pathing

* feedback
2025-02-04 18:03:35 -05:00
aMannus
b2cb3ff87d
Unlock locked interior doors with overworld keys enabled (#4948)
* Update LockOverworldDoors.cpp

* Remove key logic from interiors

* Fix entrances, this time while awake
2025-02-04 15:08:28 +01:00
briaguya
811ffa5e98
fix rainbow all (#4991) 2025-02-04 11:32:44 +01:00
briaguya
e44877cca8
implement RemoveSpinAttackDarkness using shipinit and custom update func (#4987)
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2025-02-04 10:49:31 +01:00
Archez
40f2e16842
Macos game mode support (#4993)
* Remove macos startup script and rework cpack bundling

---------

Co-authored-by: Lars-Christian Selland <larsy1995@gmail.com>

* Add helper for creating mods folder

---------

Co-authored-by: Lars-Christian Selland <larsy1995@gmail.com>

---------

Co-authored-by: Lars-Christian Selland <larsy1995@gmail.com>
2025-02-04 10:48:41 +01:00
briaguya
11e07a8f9d
rework assignable tunic/boots to use shipinit and hooks (#4978)
* don't put away items when equipping tunics/boots

* vb

* don't need that return

* ok i guess i'm going down the rabbit hole

* more rabbit hole

* shipinit and more hooks

* clean up

* use fewer params, add a missing condition

* make the loops make sense
2025-02-04 10:44:02 +01:00
briaguya
8ae8770db8
pull in startMode docs (#4988) 2025-02-03 18:58:49 -05:00
Philip Dubé
c7f335f23c
Prefer EVENTCHKINF constants to hex (#4965)
Also remove unnecessary const qualifiers that flood warnings
2025-02-03 11:08:58 +01:00
Philip Dubé
e7e02735b0
rando: vanilla dungeon rewards (#4836)
* rando: vanilla dungeon rewards

* gift from rauru is dungeon location, not pocket

* missing apostrophe in preset description

* neither pocket nor gift should be listed in dungeonRewardLocations
2025-02-03 10:57:35 +01:00
Philip Dubé
e5ddcce7f2
use CanKillEnemy more (#4867)
* use CanKillEnemy more

reviewed instances of RG_KOKIRI_SWORD in logic

* kokiri does not damage spikes

* confirmed hammer works vs dodongos

* 3
2025-02-03 10:46:59 +01:00
Xeokn
33d7b173fa
Additional Sail commands (#4970)
* Additional Sail Commands.

Adds "SpawnEnemyWithOffset" and "SpawnActor" to Sail Functions.

* Small Corrections

Indentation my beloved
2025-02-02 17:00:59 -05:00
briaguya
ac9b8c2e87
better soft reset (#4984) 2025-02-02 02:33:04 -05:00
briaguya
f4604673e0
clean up/fix mq dungeon and required trial parsing logic (#4979) 2025-02-01 22:11:56 -05:00
Malkierian
b62808dc2d
Prevent adding Gerudo Fortress Keyring when Keyrings are set to off. (#4981) 2025-02-01 19:38:22 -07:00
briaguya
133825c1cd
update to latest LUS main (#4976) 2025-01-31 11:41:03 -07:00
Malkierian
1744f1fc18
Set Item Tracker Total Checks window to only scale text if Item Tracker window type is Floating. (#4963)
Increase default width to account for window type title text.
2025-01-30 10:37:17 +01:00
Christopher Leggett
7df9641297
Exclude locations fix (#4969)
* Properly check for Excluded Location option.

* Remove GetOption overloads, weren't working anyway
2025-01-29 08:12:42 -07:00
Malkierian
1f65bde583
Move most ImGui-related files/code to an SohGui subfolder. (#4968) 2025-01-28 18:45:21 -07:00
briaguya
668e266ecc
clamp addAlpha when skipping spinning logos to prevent softlock (#4964)
* debug print logos seen

* maybe this is the fix, not sure if there's a better option i'm overlooking

* use clamp

* msvc plz

* msvc?

* max is cleaner
2025-01-27 18:59:46 -07:00
Malkierian
41cf6b3338
LUS bump (#4960) 2025-01-27 14:13:14 -07:00
briaguya
744fab4b05
fix build (#4961) 2025-01-27 13:21:40 -07:00
Pepe20129
31cd419d6f
Update kakariko.cpp (#4959) 2025-01-27 11:31:50 -07:00
Christopher Leggett
b5e6342bc1
Rip Settings out of Rando::Context (#4943)
Not completely happy with everything here but this should fix the bugs
related to settings getting cleared on save load.
2025-01-27 11:30:04 -07:00
Malkierian
ef0350d830
Add translation for bottle item RGs to itemIDs for assigning to slots in logic.cpp (#4954)
Change `CanEmptyBigPoes` to reset to false instead of true.
2025-01-27 09:48:13 -07:00
briaguya
83000e2f6a
bump lus (controllerdb device at boot fix) (#4951)
* test controllerdb device at boot fix

* lus main
2025-01-26 19:37:14 +01:00
Eric Hoey
97c686c2a6
Fix fairy shuffle in LW Scrub Grotto and Royal Family Tomb (#4934)
* add missing fairy locations+hint text

* match rft chest name
2025-01-25 16:35:20 -07:00
Malkierian
8f67efee58
Entrance Names Redux (#4941)
* Add "Blue Warp" to the boss sides of the blue warp pairs to differentiate from the bosses on the other sides of boss doors.
Fix some names that weren't the same in both pairs of entrances.
Renamed a few other entrances for clarification.

* Add function to check entrance name consistency.
Fix remaining non-matching names.

* Document CheckEntranceNames.
Remove declaration of it from the header.
2025-01-25 10:09:17 -07:00
Eric Hoey
b6aa01b28c
fix fire temple hints (#4950) 2025-01-25 09:51:07 -07:00
Christopher Leggett
e99771f69c
Cause spoiler to be re-parsed on soft-reset (#4944) 2025-01-25 09:50:44 -07:00
Garrett Cox
8ac8dc3fd0
Move trap handler to its own file and make the additional trap types seeded (#4942) 2025-01-25 09:50:36 -07:00
briaguya
388eb487e3
rework "Authentic Logo Screen" and "Fast File Select" (#4939)
* skip z_title with button press

* use `RegisterShipInitFunc`

* rip out a bunch of custom ztitle code

* ok now it's almost fully back to vanilla

* titles are back for a limited time

enjoy #Skipping

* move old customizations into new custom draw

* finally getting the hang of this shipinit thing

* vb should let it snow

* boot sequence logic

* clean up logic to better handle changing boot sequence settings

* remove fast file select stuff

* remove authentic logo screen setting

* about window - not super pretty but not ugly imo

* maybe this fixes windows

* maybe alloca? idk why it's working in other files

* just pulling in every include hoping something works

* Revert

This reverts commit c1d02c9a40.

* try some macro fixing magic

* fix another c vs cpp thing

* do it without an extra var

* make `GitCommitHashTruncated` a private member on `AboutWindow` instead of truncating on draw

* move logo asset defs to `soh_assets.h`

* Apply suggestions from code review

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

* VB_SHOULDN'T

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2025-01-24 10:21:15 -05:00
briaguya
6d94cf9bac
bump LUS (joystick thread hint) (#4946) 2025-01-24 10:20:53 -05:00
Garrett Cox
aa2ad23601
Replace old pause buffer input experience with a more accurate one (#4918) 2025-01-23 01:30:34 +00:00
Garrett Cox
69e3342808
Fix improper usage of GetFinalGIEntry, passing the RG instead of GI (#4938) 2025-01-22 11:39:08 -06:00
Eric Hoey
bc561efa8e
change RCs to RHTs (#4932) 2025-01-21 16:51:17 +01:00
Malkierian
c781a76e89
Add DMT Cow Grotto Storms Fairy to DMT location access. (#4931) 2025-01-21 10:05:36 +01:00
Pepper0ni
04c0697379
Clean up settings and add boss soul files (#4891)
* Clean up settings and add boss soul files

* address reviews

* didn't realise there was more

* add comment for how to undummy stealth
2025-01-21 06:46:52 +01:00
Philip Dubé
ad9984ef68
pause warp: check player has buttons (#4927)
* pause warp: check player has buttons

* feedback
2025-01-21 06:45:33 +01:00
PurpleHato
26e92a063f
ADD: French translations for rando on file select (#4928)
* French translation for rando file select

* better seed than Seed
2025-01-21 06:45:15 +01:00
Pepper0ni
6f8ac16a9e
Add DMT cow fairy and give overworld misc song fairies hints (#4930) 2025-01-21 06:44:56 +01:00
aMannus
8a5dd6323c
Use textures for boss souls in item tracker (#4925)
* Use textures for boss souls in item tracker

* Fix builds
2025-01-21 00:12:49 +01:00
aMannus
5c4a6ae8c0
Hint purge (#4924) 2025-01-21 00:03:38 +01:00
Philip Dubé
936b159a67
fix 4 warnings (#4922)
1. pragma in cpp
2. missing return
3. unnecessary function call
4. remove impossible null check
2025-01-21 00:03:21 +01:00
Garrett Cox
eab11d7f56
Lock overworld doors Randomizer option (#4489) 2025-01-21 00:03:02 +01:00
aMannus
ded1c721f2
Fix particles (#4923) 2025-01-20 22:37:44 +01:00
aMannus
878a8fe465
Fix boss soul ice traps (#4921) 2025-01-20 22:37:11 +01:00
briaguya
63046a89ec
simplify controllers (#4914)
* start moving towards just using `ShipDeviceIndex::SDLGamepad`

* rename `ShipDeviceIndex` to `ShipDeviceType`

* all sdl mappings are always `ShipDeviceType::SDLGamepad`

* create new `physicaldevice` directory where the new stuff can live

* `ConnectedPhysicalDeviceManager`

* start to not need index mapping manager

* somes fixes and stuff

* remove more shipdeviceindex stuff

* more removing and what not

* axis thresholds

* rename some stuff and remove device icons

* back to all stuff visible

* show connected device names

* bring in mouse color from lus input editor window

* lus

* remove

* more stuff

* more lus

* basic filtering

* update lus

* upstream LUS

* make `Controller_ShouldRumble` make sense
2025-01-20 19:51:39 +01:00
Christopher Leggett
8244d63719
Fix rando menu sliders so they update on JSON drop (#4912) 2025-01-19 18:06:54 -07:00
Christopher Leggett
526aad59d5
Fix the trick options loop (#4917)
It initialized an array with a size, which pre-filled
it all with nullptrs, and then used push_back on top of that.
So it was a bunch of nullptrs followed by the actual
option pointers. Fixed by calling reserve instead of
constructing with a size, so it reserves the memory it needs
without actually filling the vector with nullptrs, so push_back
properly starts from the beginning.
2025-01-19 18:06:42 -07:00
Philip Dubé
ed674f1ed2
mOptionGroups: populate RSG_TRICKS with loop (#4909)
There were some tricks missing, using loop makes one less place to update when adding tricks
2025-01-19 20:49:59 +01:00
Malkierian
7a7eed74db
entrancesMap cleanup (#4905)
* Make spoiler entrancesMap use the same names and display scheme as the entrance tracker.

* Use `Entry` in place of grotto `Exit` and interior `Outside`.
2025-01-19 20:45:30 +01:00
aMannus
2a172de52a
Cosmetics Editor tweaks (#4904)
* Cosmetics Editor Tweaks

* More work on keys
2025-01-19 20:45:07 +01:00
Lord Jabu Jabu
3357543538 Dev Feature - Create VS Code Build tasks and update build documentation (#4895)
* Added vs code build tasks

* Fix typo in BUILDING.md regarding CMake Tools plugin

* Add "Build All" task to VS Code configuration
2025-01-19 13:49:23 -05:00
aMannus
c466c92905
Uncomment chime on one points (#4901) 2025-01-18 23:54:59 +01:00
Eric Hoey
3061b138fa
pause menu behind advanced + remove from applysideeffects (#4903) 2025-01-18 19:54:52 +01:00
aMannus
8a5dd022f6
Fix ice trap size not getting reset (#4897) 2025-01-18 11:46:59 +01:00
aMannus
188b9757da
Fix triforce hunt timer (#4896) 2025-01-18 11:46:48 +01:00
aMannus
b4f7d2289a
Play success sound on dropping in spoiler log (#4899) 2025-01-18 11:46:38 +01:00
aMannus
7d2a4e5818
Default "Hide unshuffled shop item checks" to off (#4900) 2025-01-18 11:46:01 +01:00
Archez
d1b7a5b814
Fix new Boss Soul skeleton based items (#4902)
* Fix and tweak boss soul skeleton patterns

* slow down morpha tex scroll

* extern c

* lower kotake a little
2025-01-18 11:45:21 +01:00
Pepper0ni
47fdaabd1b
Update Actor Flags to decomp (#4822) 2025-01-16 04:02:23 +01:00
Pepper0ni
88a432aac5
fix minor issues and a BotW rupee (#4888) 2025-01-16 03:26:11 +01:00
aMannus
7f4344e28e
Fix mystery items applying to GI skipped items (#4886) 2025-01-16 00:12:30 +01:00
aMannus
a06b6c4365
check tracker typos (#4885) 2025-01-16 00:12:16 +01:00
aMannus
5ae527c194
Shuffle Fairies - Fix fairies spawning without playing song (#4884)
* Fix fairies spawning without playing song

* Better if statement
2025-01-15 23:12:06 +01:00
Jordan Longstaff
0497ad20d8
Rename Business Scrub functions/flags from decomp (#4776)
* Rename Business Scrub functions/flags from decomp

* Update XML references
2025-01-15 11:23:06 -05:00
aMannus
a86205b999
[RANDO] Boss Soul Shuffle using actual boss models (#4827)
* First pass for first 8 bosses

* Finish all souls
2025-01-15 15:26:44 +01:00
Pepper0ni
3e6a0ef566
Add Dana's models to the game, add cosmetic customisation for keys and rename Bombchus in Logic (#4311)
* initial implementation of new models

* fix typo

* Add smaller skeleton key model and try to fix windows build

* stupid windows, you made me look bad!

* make DrawBombchuBag function work

* small cleanups

* OOGGA BOOGA BOO

* fix post merge leftovers

* post merge fix

* Added Big Key Lighting override to show vanilla lighting when unchanged

* rename CustomdLists into customIconDLs

* post merge fixes

* fix some tooltip issues

* post merge cleanup and some small menu changes

* post merge fix

* post merge fix

* add new boss soul model, colours broken

* update boss soul model for env support

* Add dungeon customise buttons to cosmetic editor

* fix mac build?

* keys don't support alpha

* fix submodules

* ring now draws

* fix keyring colours

* Add bombchu Bag RG, fix boss soul skull colour

* address reviews
2025-01-15 14:18:52 +01:00
Pepper0ni
95a4e1cfba
Fix big poe bottle logic (#4837)
* fix big poe logic

* oops
2025-01-15 13:47:30 +01:00
Philip Dubé
d3c619ec2f
Fix ImgUI red boxes (#4869)
Invisible buttons needed unique IDs
2025-01-15 13:46:47 +01:00
Fredrik Andreasson
651623a845
[Rando] Prevent alarm when at full HP (#4831)
* * Prevent low HP alarm when at full HP for 1 heart start

* * updated name
2025-01-15 13:15:08 +01:00
Pepe20129
a46cfff438
Move some cheats to Shipinit (#4819)
* Infinite ammo

* Infinite health

* Infinite magic

* Infinite money

* Infinite Nayru's love

* Unrestricted items

* Freeze time

* Easy QPA

* Easy ISG

* Deku stick cheats

* Moon jump cleanup

* Update Ammo.cpp

* Address reviews
2025-01-15 13:08:33 +01:00
Pepper0ni
ce289c0be9
Properly store starting age in spoiler log (#4873)
* properly store starting age in spoiler log

* convert ResolvedStatingAge to a setting to store it in the save
2025-01-15 13:05:52 +01:00
Pepe20129
7f31fd2e4e
Organize ship specific save context additions (#4597)
* Basic restructure

* Undo most randomizerInf changes for now

* Small fixes

* Fix linux & mac builds?

* Fix remnants of randomizerInf changes

* Post-merge fix

* Post-merge fix
2025-01-15 13:04:47 +01:00
Malkierian
0d80c4695f
Change UnregisterGameHook type for freestanding handler to OnVanillaBehavior to match registration type. (#4883) 2025-01-14 21:49:49 -07:00
Pepper0ni
2fc3a563c9
fix spirit MQ south child climb chest logic (#4850) 2025-01-13 11:17:12 -07:00
briaguya
b774d39bc7
fix tooltip wonkyness (#4856) 2025-01-12 02:06:34 +01:00
Pepper0ni
66f5e6c26c
Fix generation errors exposed by loccacc refactor (#4861)
* Fix generation errors exposed by loccacc refactor

* oops
2025-01-12 01:50:50 +01:00
Eric Hoey
61de721fe5
Fix Skeleton Key Hint (#4860)
* add skeleton key hint text

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

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

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

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

* add end quote back, oops

---------

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
2025-01-12 01:49:24 +01:00
Eric Hoey
4a91d94507
pass one + pass two + pass three (#4863) 2025-01-12 01:48:27 +01:00
Jordan Longstaff
0ae7f626a1
Added skip of Forest Stage leader cutscene (#4818) 2025-01-11 10:55:36 +01:00
Pepe20129
8e8befc6d5
Update settings.cpp (#4830) 2025-01-11 10:53:45 +01:00
Pepper0ni
7ea6422b6f
fix LW Boulder (#4835) 2025-01-11 08:44:02 +01:00
Pepe20129
1ee31e5d61
Location access files cleanup (#4750)
* Move/Rename locacc files

* Format locacc files

* Split hyrule field file into HF, LH & LLR files

* Split castle town file into MK, TOT & HC/OGC files

* Split kakariko file into KAK & GY files

* Split death mountain file into DMT, GC & DMC

* Split lost woods file into KF, LW & SFM files

* Split gerudo valley file into GV, GF, HW & COLO files

* Move most files into the overworld/dungeons folder

Gerudo fortress needs to be split into gerudo fortress & thieves hideout, the former into overworld and the latter into dungeons

* Remove the optional second condition function

We won't need it as we're doing glitches differently from 3ds rando

* Post-merge fixes

* Split zora's domain file into ZR, ZD & ZF files

* Post-merge fixes

* Forgot to save the file

* Remove the optional second condition function from entrances & events

* Update bottom_of_the_well.cpp

* Add clarifying comment in `gerudo_fortress.cpp`

* Post-merge fixes

* Post-merge fixes

* Remove `s` from `RegionTable_Init_GerudoTrainingGrounds`

* Post-merge fixes
2025-01-11 08:28:23 +01:00
briaguya
6a5e5e2a75
imgui 1.90.6 -> 1.91.6 (#4838) 2025-01-11 02:02:05 -05:00
Fredrik Andreasson
3b26bd0402
Fix Mido without Emerald softlock (#4824)
* * fixes softlock when talking to Mido without Kokiri Emerald after killing Gohma

* * moved scene check to hook
* moved vanilla conditioon into GameInteractor_Should

* * corrected hook condition
* removed 'this'

* * reverted GameInteractor and hook_handlers
* changed actor to use existing hook

* * updated kokiri emerald conditions

* * missed parentheses
2025-01-10 23:14:31 -07:00
Pepper0ni
8dc2b0cec2
fix a few default cutscene settings (#4834) 2025-01-10 23:13:04 -07:00
Archez
4e8ccce002
Move Window calls to portside (#4833)
* Move LUS window calls to portside

* move dropped frame handling to port side

* Use fast3d all in one draw

* bump to upstream lus
2025-01-11 00:33:19 -05:00
Pepper0ni
323ea2df96
Fix song Fairies (#4826)
* Fix song fairies

* forgot a bool
2025-01-08 17:51:51 +01:00
Alejandro Asenjo Nitti
9455579f42
Set Sample Rate to 32000 hz (#4780)
* Set Sample Rate to 32000 hz

* PR review

* .DesiredBuffered = 1680
2025-01-08 01:08:20 -05:00
Jordan Longstaff
707b135711
Rename stick and nut capacity settings in save editor (#4825) 2025-01-08 00:46:48 -05:00
PurpleHato
5d6f20bf55
Frenchsanity (translations) (#4817)
* Most of french rando message

* Should be all

* Plural

* Better wording

* forgot one

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

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

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

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

* Missing ones

---------

Co-authored-by: Philip Dubé <serprex@users.noreply.github.com>
2025-01-08 05:58:52 +01:00
Pepper0ni
ad596387c6
Stop Adult Anju from breaking (#4767)
* stop anju from breaking

* remove comments

* remove whitespace
2025-01-08 05:50:24 +01:00
Philip Dubé
51fcf4d2c6
Add trick for using blue fire on mud walls (#4810) 2025-01-08 05:49:55 +01:00
Pepper0ni
349aac10be
Fix some flipped entrance data in Entrace Rando (#4828)
* fix a reversed entrance entry

* whitespace pls

* fix market entrance IDs
2025-01-07 21:33:18 -05:00
Archez
a00df04ffd
Fix Naborru fight CS for child and with entrance skips (#4821) 2025-01-07 18:54:48 -05:00
Philip Dubé
47ba512351
Clean up enemy logic (#4816)
* Fix logic thinking naked adult can clear wolfos grotto

Use CanKillEnemy more

* GERUDO_WARRIOR. Can defeat with a lot more than swords

* one more flare dancer

* Put defeating Gerudo Warrior with slingshot/bombchu behind trick
2025-01-07 19:32:52 +01:00
aMannus
61a1d12ffe
Fix shuffled fairies despawning (#4823) 2025-01-07 19:32:20 +01:00
Pepper0ni
6ec71964a1
fix ITEM_00's giving twinrovas check (#4820) 2025-01-06 14:36:12 -07:00
Pepper0ni
cb738306d8
Actually fix issues with log settings (#4813)
* remove taking settings from a loaded spoiler instead of the imGUI settings

* actually fix most SpoilerLoad issues

* fix vanilla saves making future generations have so settings

* remove extra comment
2025-01-06 07:34:51 +01:00
Philip Dubé
2f8bb02502
fix assertion error due to CanUse(RG_BRONZE_SCALE) (#4814) 2025-01-05 22:36:04 -07:00
briaguya
34f77dda92
address some controller duping issues (#4805)
* try no wgi

* bump

* bump to latest LUS main
2025-01-05 21:32:54 +01:00
Philip Dubé
7267b47a83
check tracker: don't show GS from wrong quest when always showing GS (#4803)
* check tracker: don't show GS from wrong quest when always showing GS

also fix comparing `char*` to `""`

* IsQuestOfLocationActive
2025-01-05 19:36:34 +01:00
aMannus
23466e5a5e
Freestanding Shuffle fixes & extract to separate file (#4808)
* Freestanding fixes

* Copy paste fail

* Temporary vanilla items fix
2025-01-05 19:10:46 +01:00
Pepper0ni
700c1a808d
remove taking settings from a loaded spoiler instead of the imGUI settings (#4812) 2025-01-05 19:09:04 +01:00
aMannus
537a57c361
Introduce in-game Randomizer Settings menu, remove plando mode (#4804)
* Initial mockup

* Rip out part of plando mode, implement rando settings menu

* MVP new randomizer flow

* Translation support and code cleanup

* Fixes and more cleanup

* Fix whoopsie

* Fix whoopsie 2
2025-01-05 18:42:45 +01:00
Pepper0ni
55e1af9e81
Fairysanity (#4744)
* Define VB for fairy group spawning

* Add skeleton of new files for fairy shuffle

* Add option to enable/disable fairy shuffle

* Add field to fairy entities to hold randomizer data

* Expose the current grotto id, or find it if not shuffled

This is necessary since, unlike chest or scrub grottos,
fairy fountains, lacking any elements that would normally
differ between grottos, often have identical respawn data.
This change enables fairy shuffle to correctly identify
which fairy fountain was entered so it could load the right
checks.

* Initialise fairy groups if detected

* Randomize first set of fairies

* Make randomized fairies collectible

* VBify fairy healing customization

* Add remaining grotto fairies

* Add remaining fairy group spawns

* Override bean sprouts spawning fairies

* Define bean sprout fairy checks

* Add HasItem and CanUse entries for magic beans.

* Define logic for bean sprout fairies

* Enabling looking up fairies by z coordinate

* Add Temple of Time Gossip Stones

Logic might look a little weird. While the Gossip Stones
respond to Sun's Song, the scene transition takes priority,
so the fairies aren't actually obtainable. Adult does not have
day and night versions and is fully capable of acquiring the
fairies with Sun's Song.

Song of Time is similar, but rather than being dependant on
age, it's dependant on the timesaver to switch ages anywhere
with Song of Time. In this case, the fairies still spawn,
but the age transition deletes them before giving the chance
to collect them. While I could've chosen to ignore this and
simply require the player to disable the enhancement before
playing if it's their only option, I instead decided to
accomodate the enhancement and require one of the other songs
in order for the check to be in logic.

* Disable quick age change around gossip stones to simplify logic

* Add remaining gossip stone fairies

* Finish gossip stone fairies

* Add Desert Colossus Oasis

* Restrict fairy type

Somehow, it was previously possible for Navi to get detected
as a randomized fairy and rendered as an item. I was not
able to reproduce the behavior, but this should prevent it
from happening again.

* Add overworld special fairy spots

* Add mini-dungeon fairy song spots

* Add remaining dungeons except Shadow

* Add Shadow Temple fairies

* Add fairy check flags to the save editor

* Filter fairy checks from check tracker

* Add hints for fairy checks

* get fairysanity as far as I can for now

* fix a few obvious issues

* now builds

* try to convert FairyOnVanillaBehaviorHandler to vardic args

* convert RegisterFairyCustomization to REGISTER_VB_SHOULD

* fix some generation issues

* remove the list of fairy locations

* fix up logic

* more logic changes for gossip stones

* try silly thing for windows

* more stupid

* more dumb testing

* more testing

* small fixes

* implement inside fence storms fairy

* add inside fence storms fairy to logic

* remove duplicate hints (stupid conflicts)

* oops

* Rewrite game interfacing code of fairy shuffle

* Better function names

---------

Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
Co-authored-by: aMannus <mannusmenting@gmail.com>
2025-01-05 14:52:27 +01:00
aMannus
7021230fd5
Fix jabu pot locations (#4811) 2025-01-05 13:42:08 +01:00
aMannus
f8fa4416de
Port over ShipInit from 2Ship (#4756)
* Port over ShipInit and transform Moon Jump as example

* Clean up moon jump

* Updated moon jump structure & cvar defines
2025-01-05 10:48:49 +01:00
inspectredc
f0b02d6c7e
Custom Tunics (#4774)
* Custom Tunics

Co-authored-by: MoriyaFaith 46070717+MoriyaFaith@users.noreply.github.com

* Works for necessary scenarios

* make variable static again
2025-01-05 10:05:12 +01:00
Pepper0ni
91720a3857
Fix forest tooltip again and fix logic issue in fishanity age split (#4801)
* first forest tooltip again

* Fix logic issue with fishanity age split
2025-01-05 09:38:35 +01:00
Malkierian
bbc4cc3305
Fix shield invert tooltips and X-axis application (#4802)
* Update Forest and Carpenters CVars in the migrator.

* Fix shield invert tooltips and X-axis application.
2025-01-04 00:41:14 -07:00
Malkierian
8648cdeca5
Fix the GBK give after completing the triforce in triforce hunt. (#4800) 2025-01-03 15:40:30 -07:00
Pepper0ni
a9113aa7ba
set the logic context to the main save when initing the save (#4796) 2025-01-03 10:04:57 -07:00
Jordan Longstaff
1b6508556d
Fix Broken Giant's Knife flag not resetting (#4608)
* Fix Broken Giant's Knife flag not resetting

* Force setting on in rando

* Fix flag when checkbox is toggled
2025-01-03 00:16:03 -07:00
Jordan Longstaff
1a040b3198
Skip Ganondorf boss battle intro (#4693) 2025-01-03 00:14:49 -07:00
briaguya
822d93880d
bump lus (#4793) 2025-01-02 23:52:30 -07:00
Malkierian
f5b5690361
Make Let It Snow toggle always visible in Silly Cosmetics. (#4759)
* Make Let It Snow toggle always visible in Silly Cosmetics.

* Add tooltip.
2025-01-02 23:44:47 -07:00
Philip Dubé
5155905efa
fix 3 trick locations from spirit to ice cavern (#4792) 2025-01-02 23:07:40 -07:00
Philip Dubé
6133ebe135
cleanup indentation around trees drop sticks (#4778)
* cleanup indentation around trees drop sticks

* combine the range check
2025-01-02 23:07:14 -07:00
Jordan Longstaff
7e481c3f69
Rename code file for inventory functions (#4783) 2025-01-02 23:06:50 -07:00
Philip Dubé
d70c061c5e
minigames: render ammo even when out-of-minigame ammo is infinite (#4785) 2025-01-02 23:06:27 -07:00
briaguya
e57a052468
Update GAME_CONTROLLER_DB.md (#4784) 2025-01-02 18:22:50 -07:00
Philip Dubé
fceb083dc0
check tracker: fix Clear (#4791)
when pressing Clear the input is cleared but list was not updated
2025-01-02 18:22:15 -07:00
Pepper0ni
0544c494e6
Fix 2 broken rupees in ice cavern (#4789) 2025-01-02 14:43:56 -07:00
Pepper0ni
237f8b903a
Fix scarce and minimal item pools removing shuffled sticks and nuts. (#4787)
* fix scarce and minimal item pools removing stick and nut upgrades when they are shuffled.

* improve clarity
2025-01-02 14:12:12 -07:00
Pepe20129
966a86c508
Tricks Cleanup (#4740)
* Quick cleanup

* Re-add experimental tag

* Cleanup and small explanations

* Implement RT_DAMAGE_BOOST_SIMPLE & RT_HOVER_BOOST_SIMPLE

* Update tricks.cpp

* Move glitch status to a tag

* Fully remove the unused LENS & BKSKIP tags

* Enable some disabled tricks

* Add RT_ZF_GREAT_FAIRY_WITHOUT_EXPLOSIVES
2025-01-02 09:44:30 -07:00
Pepper0ni
0d0e03bedc
fix cheese logic (#4786) 2025-01-02 09:44:15 -07:00
Pepper0ni
396e2fd5ff
fix freestanding tracking (#4782) 2025-01-01 15:09:23 -07:00
Philip Dubé
4c6a2a4b64
fix potsanity looking at deku tree MQness when dealing with pots between quests (#4773)
* fix potsanity looking at deku tree MQness when dealing with pots between dungeons

also don't need a loop for a range check

* share logic between placing freestanding & pots

* fix settings typo

* fix all freestanding items still being shuffled

this reinstates original freestanding method of filling in unused locations,
but also extend logic so that when only dungeons have freestanding shuffled
we don't render overworld freestanding as 3d versions until collected

* lift optimization check
2025-01-01 13:26:41 -07:00
Extloga
21e55563b4
Additions and fixes for two translations in hint_list.cpp (#4771)
* Fixes for the German translation in hint_list.cpp

* Additions for two translations in hint_list.cpp

* Fixes for two translations in hint_list.cpp

* Fixes for two translations in hint_list.cpp
2024-12-29 08:30:31 -07:00
Reuben D'Souza
fc8d581efb
fix: readme typos (#4768)
* fix: change complier to compiler

* fix: repeated the
2024-12-27 22:25:25 -07:00
Pepper0ni
32c20b6ebe
several small fixes (#4762) 2024-12-26 11:51:16 -07:00
Archez
61e91526cd
Fix transition wipe not rendering properly (#4757) 2024-12-26 08:26:04 -07:00
briaguya
f7b8ddccfd
don't use magic numbers in EnItem00_CustomItemsParticles (#4728)
* don't use magic numbers in `EnItem00_CustomItemsParticles`

* Update particle enums, add deku/stick bag RGs (#377)

---------

Co-authored-by: aMannus <mannusmenting@gmail.com>
2024-12-25 21:18:20 -07:00
Philip Dubé
3ac06d4afc
fix missing newline in merchant option text (#4758) 2024-12-25 21:16:42 -07:00
Malkierian
2dccacc7f9
Change Kakariko Guard Gate Exit destination name to Bottom Exit rather than Middle. (#4752) 2024-12-25 21:14:35 -07:00
Pepper0ni
1f99dcf56a
Clean up Kakariko logic and fix some errors, move AtNight into CanGetNightTimeGS. (#4748)
* fix kakariko logic

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

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

---------

Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
2024-12-25 21:14:21 -07:00
aMannus
1c2fbba709
Convert audio sliders from float to int (#4709)
* Audio sliders float -> int

* Implement migrator

* Must construct additional if statements
2024-12-23 12:35:56 -07:00
Pepper0ni
e8cf9a61cc
Fix fortress pots being considered dungeon in pot replacment (#4749)
* Fix fortress pots being considered dungeon in pot replacment

* change to use IsDungeon, make IsDungeon cleaner
2024-12-23 19:16:53 +01:00
Philip Dubé
781bbb85ae
remove out of bounds array access, matching upstream fix (#4751) 2024-12-22 23:05:04 -07:00
Pepper0ni
9ea9100787
Freestanding Rupees/Hearts Shuffle (#4686)
* Enable freestanding items other than heart pieces and keys

* Add option to disable freestanding rupee & heart shuffle

* Add items to pool

* Actually add shuffle setting

* Define overworld locations

* Add logic for overworld freestanding checks

* Add freestanding items for child dungeons.

* Add checks for Ice Cavern and Bottom of the Well

* Add checks for Forest Temple and Gerudo Training Grounds

* Add checks for Fire Temple and Water Temple

* Add Shadow Temple checks

This does not include the spinning pots rupees, even though
they're included with freestanding rupees in the N64 randomizer
as they would require dedicated overrides for the code for
the pots in question.

* Define Spirit Temple and Ganon's Castle hearts

* Add remaining checks to dungeon definitions

* Fix missing logic

* Add freestanding checks to Save Flags Editor

* Fix flags for Zora Fountain underwater rupees

* Add option to enable freestanding shuffle for either dungeons or overworld

* Add missing MQ checks and fix mac & windows compile error

* Improve description and add hint text

* Update logic for Bombchu fixes

* Add missing Spirit Temple MQ hearts

* Add missing settings entries

* Actually add Forest Temple trick to the tricks menu.

* Re-add Ice Cavern lobby rupee

* go over MQ logic

* review logic on non-MQ checks

* convert all freestandings to location based

* add option enum and fix jabu exit logic

* fix mislocated freestandings

* fix mislocted freestandings

* Fix some mislocationed checks

---------

Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
2024-12-22 11:16:00 -07:00
briaguya
ff24581281
Fix actor inits happening too early (#4742)
* fix dogs not running

* clean up kak gs fix

* clean up scrub leader fix
2024-12-21 08:08:48 -07:00
Pepe20129
6fb974bfeb
Rando Cleanup (#4741)
* Delete empty files

* Small Cleanup

* Remove some now useless comments

* Re-add log
2024-12-21 08:08:40 -07:00
Jordan Longstaff
845e37936e
Skip water level change cutscenes in Water Temple (#4726)
* Skip water level change cutscenes in Water Temple

* Fix disappearing HUD issue
2024-12-21 07:52:34 -07:00
Jordan Longstaff
c5923fafcf
Fix Door of Time collision when skipping cutscene (#4734) 2024-12-21 07:47:37 -07:00
Jordan Longstaff
dd11751b43
Rename code_80043480.c from decomp (#4731) 2024-12-20 18:26:42 -05:00
Pepper0ni
35e0a7ce10
Remove excess magic from the MQ GTG pots (#4710)
* remove excess magic

* change rupees to hearts
2024-12-20 18:09:59 -05:00
Pepper0ni
c17b55b465
Improve KZ hook (#4732)
* improve KZ hook

* Adjust KZ hooks to permit early eyeball frog in rando

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

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

* Update soh/soh/Enhancements/game-interactor/GameInteractor.h

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

---------

Co-authored-by: Archez <Archez@users.noreply.github.com>
2024-12-20 17:44:35 -05:00
Pepper0ni
1edd41e807
Fix freeing gorons cutscene leaving link in cutscene state until the goron actor is killed (#4712)
* Fix goron cutscene

* Update soh/src/overlays/actors/ovl_En_Go2/z_en_go2.c
2024-12-20 14:56:36 -05:00
Jordan Longstaff
e7e5b1190a
Skip playing cutscenes of Pierre spawning (#4736) 2024-12-19 16:28:23 -07:00
Pepper0ni
6daa680a61
Fix Closed forest tooltip (#4733)
* Fix Closed forest tooltip

* forgot to save
2024-12-19 16:27:55 -07:00
briaguya
885e8f7360
collision viewer "apply as decal" default on (#4727) 2024-12-19 10:10:37 -07:00
Malkierian
a7d082246f
Rename all instances of "Training Grounds" to "Training Ground" to match the many that are already there as well as the in-game name. (#4730) 2024-12-19 10:44:16 +01:00
Malkierian
0afffe24fe
Fix Dungeon Type Spoiling (#4719)
* Make new `SpoilAreaFromCheck` function to spoil areas when getting maps or a first check in a dungeon that isn't spoiled by entrance.

* Add scummed check dungeon spoiling on load.
2024-12-18 21:42:36 -07:00
Archez
fd8bd31507
Fix camera mode not following boomerang with first person rang (#4716) 2024-12-18 23:54:55 +01:00
Eric Hoey
380d4c66f8
add bottles and greg to sparkle list (#4720) 2024-12-18 23:54:13 +01:00
Malkierian
3419928f5d
Fix Save Prompt Cursor on Quest/Misc Item Tracker Windows (#4694)
* Fix quest menu cursor "moving" in the background in the save game prompt.
Fix misc item tracker also being able to select R and L/Z in save prompt.
Include MigrationAction entry removal from item count fix PR.

* Fix formatting.
2024-12-18 15:03:51 -07:00
Pepper0ni
03e9331d7e
Fix forest temple lift softlock (#4713) 2024-12-18 15:01:42 -07:00
Archez
f7701a73c5
Fix incorrect entrance value for links house in entrance rando (#4717) 2024-12-18 13:34:06 -05:00
Malkierian
64eadad8c1
Copy Assets with "If Different" Variants, CMake bump (#4714)
* Change copy assets procedure to use "if different" variants of the copy commands.
Bump minimum cmake to 3.26 to accommodate those variants.

* Change MSVC_CMD asset copy command to VS_COPY_ASSETS_CMD, change setting it to only be on Visual Studio build chain.
2024-12-18 00:10:20 -07:00
Archez
6485f72283
ci(linux): fix mkdir not working with cached entries (#4711) 2024-12-17 19:51:07 -05:00
Archez
4bf608a051
ci(linux): install libzip without crypto, bump sdl from 2.28.5 -> 2.30.3 (#4708) 2024-12-17 16:58:42 -05:00
briaguya
5d978c11c4
bump lus/support lus changes (#4701) 2024-12-16 21:12:45 -05:00
Malkierian
e1a53a77d4
Surround BeginTable() calls and table-related draw code in if(){} blocks to fix resize crash. (#4700) 2024-12-16 12:09:25 -07:00
Jordan Longstaff
2a3bdca8a2
Skip Goron Link's forced dialogue (#4688)
* Skip Goron Link's forced dialogue

* Rename VB flag
2024-12-15 22:15:31 -07: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
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
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
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
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
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
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
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
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
a6fbadc04e
Fix issues with vanilla item queue when skipping things, resolves #4537 (#4538) 2024-11-12 10:18:57 -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
Pepper0ni
0d17e72dca
Rewrite MQ Shadow Temple logic (#4502) 2024-11-01 08:15:27 -07: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 a5c0cede12 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 '13fce8258d' into rando-dev-merge-feb 2024-02-20 16:51:05 -05:00
Adam Bird
1d61ba0b86 Merge commit '3187564f5b' 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)
ce0d0ac829
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
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
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
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
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
6474 changed files with 446134 additions and 93195 deletions

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 nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build

21
.github/workflows/clang-format.yml vendored Normal file
View file

@ -0,0 +1,21 @@
name: clang-format
on: [pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get install -y clang-format-14
- name: Run clang-format
run: |
./run-clang-format.sh
git diff --exit-code

View file

@ -6,309 +6,324 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
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
- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: ccache
- name: Configure ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-soh-otr-ccache
save: ${{ github.ref_name == github.event.repository.default_branch }}
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)
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) libzip-dev zipcmp zipmerge ziptool
- name: Restore Cached deps folder
uses: actions/cache/restore@v4
with:
key: ${{ runner.os }}-deps-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-deps-${{ github.ref }}-
${{ runner.os }}-deps-
path: deps
- name: Create deps folder
run: mkdir -p deps
- 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 "deps/SDL2-2.30.3" ]; then
wget https://github.com/libsdl-org/SDL/releases/download/release-2.30.3/SDL2-2.30.3.tar.gz
tar -xzf SDL2-2.30.3.tar.gz -C deps
fi
cd deps/SDL2-2.30.3
./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 "deps/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 -C deps
fi
cd deps/tinyxml2-10.0.0
mkdir -p 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
cmake --build build-cmake --config Release --target GenerateSohOtr -j3
- name: Upload soh.otr
uses: actions/upload-artifact@v4
with:
name: soh.otr
path: soh.otr
retention-days: 1
retention-days: 3
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
- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: ccache
- name: Configure ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-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
- name: Cache MacPorts
id: cache-macports
if: ${{ !vars.MAC_RUNNER }}
uses: actions/cache@v2
with:
path: /opt/local/
key: ${{ runner.os }}-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}
create-symlink: true
save: ${{ github.ref_name == github.event.repository.default_branch }}
key: ${{ runner.os }}-14-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-macports-
- name: Install MacPorts (if necessary)
if: ${{ !vars.MAC_RUNNER }}
${{ runner.os }}-14-ccache-${{ github.ref }}
${{ runner.os }}-14-ccache
# Needed to apply sudo for macports cache restore
- name: Install gtar wrapper
run: |
if [ -d /opt/local/ ]; then
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: Restore Cached MacPorts
id: restore-cache-macports
uses: actions/cache/restore@v4
with:
key: ${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}-
${{ runner.os }}-14-macports-
path: /opt/local/
# Updated PATH applies to the next step and onwards
- name: Install MacPorts (if necessary)
run: |
if command -v /opt/local/bin/port 2>&1 >/dev/null; 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 /
echo "Installing MacPorts"
wget https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-14-Sonoma.pkg
sudo installer -pkg ./MacPorts-2.9.3-14-Sonoma.pkg -target /
fi
echo "/opt/local/bin:/opt/local/sbin" >> $GITHUB_PATH
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
path: build-cmake/soh
- 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"
export PATH="/usr/lib/ccache:/opt/homebrew/opt/ccache/libexec:/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" -DBUILD_REMOTE_CONTROL=1
cmake --build build-cmake --config Release --parallel 10
mv soh.otr build-cmake/soh
(cd build-cmake && cpack)
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: |
SoH.dmg
readme.txt
- name: Save Cache MacPorts
if: ${{ github.ref_name == github.event.repository.default_branch }}
uses: actions/cache/save@v4
with:
key: ${{ steps.restore-cache-macports.outputs.cache-primary-key }}
path: /opt/local/
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
- name: Git Checkout
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
- name: Configure ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ matrix.os }}-ccache
save: ${{ github.ref_name == github.event.repository.default_branch }}
key: ${{ runner.os }}-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-${{ github.ref }}
${{ runner.os }}-ccache
- name: Restore Cached deps folder
id: restore-cache-deps
uses: actions/cache/restore@v4
with:
key: ${{ runner.os }}-deps-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-deps-${{ github.ref }}-
${{ runner.os }}-deps-
path: deps
- name: Create deps folder
run: mkdir -p deps
- 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 "deps/SDL2-2.30.3" ]; then
wget https://github.com/libsdl-org/SDL/releases/download/release-2.30.3/SDL2-2.30.3.tar.gz
tar -xzf SDL2-2.30.3.tar.gz -C deps
fi
cd deps/SDL2-2.30.3
./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: ${{ (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
cd SDL2_net-2.2.0
if [ ! -d "deps/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 -C deps
fi
cd deps/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: Install latest tinyxml2
run: |
sudo apt-get remove libtinyxml2-dev
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "deps/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 -C deps
fi
cd deps/tinyxml2-10.0.0
mkdir -p build
cd build
cmake ..
make
sudo make install
- name: Install libzip without crypto
run: |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
if [ ! -d "deps/libzip-1.10.1" ]; then
wget https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.gz
tar -xzf libzip-1.10.1.tar.gz -C deps
fi
cd deps/libzip-1.10.1
mkdir -p build
cd build
cmake .. -DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF
make
sudo make install
sudo cp -av /usr/local/lib/libzip* /lib/x86_64-linux-gnu/
- name: Download soh.otr
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: soh.otr
path: build-cmake/soh
- 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
- name: Save Cache deps folder
if: ${{ github.ref_name == github.event.repository.default_branch }}
uses: actions/cache/save@v4
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
key: ${{ steps.restore-cache-deps.outputs.cache-primary-key }}
path: deps
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' }}
runs-on: windows-latest
steps:
- name: Install dependencies
if: ${{ !vars.WINDOWS_RUNNER }}
run: |
choco install ninja
choco install ninja -y
Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue
- uses: actions/checkout@v3
- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: ccache
uses: dcvz/ccache-action@27b9f33213c0079872f064f6b6ba0233dfa16ba2
- name: Configure sccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-ccache
- uses: ilammy/msvc-dev-cmd@v1
- name: Build SoH
env:
VCPKG_ROOT: D:/a/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 --build build-windows --config Release --parallel 10
mkdir soh-windows
mv ./x64/Release/soh.exe ./soh-windows/soh.exe
mkdir soh-windows/debug
mkdir soh-windows/mods
New-Item soh-windows/mods/custom_otr_files_go_here.txt -type file
mv ./x64/Release/soh.pdb ./soh-windows/debug/soh.pdb
mv ./README.md ./soh-windows/readme.txt
mv ./build-windows/gamecontrollerdb.txt ./soh-windows/gamecontrollerdb.txt
mv ./x64/Release/assets ./soh-windows
variant: sccache
max-size: "2G"
evict-old-files: job
save: ${{ github.ref_name == github.event.repository.default_branch }}
key: ${{ runner.os }}-ccache-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-ccache-${{ github.ref }}
${{ runner.os }}-ccache
- name: Restore Cached VCPKG folder
id: restore-cache-vcpkg
uses: actions/cache/restore@v4
with:
key: ${{ runner.os }}-vcpkg-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-vcpkg-${{ github.ref }}-
${{ runner.os }}-vcpkg-
path: vcpkg
- name: Configure Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Download soh.otr
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: soh.otr
path: soh-windows
path: build-windows/soh
- name: Build SoH
env:
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=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DBUILD_REMOTE_CONTROL=1
cmake --build build-windows --config Release --parallel 10
(cd build-windows && cpack)
cd ..
mv _packages/*.zip _packages/soh-windows.zip
- name: Unzip package
run: Expand-Archive -Path _packages/soh-windows.zip -DestinationPath soh-windows
- name: Upload build
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: soh-windows
path: soh-windows
- name: Save Cache VCPKG folder
if: ${{ github.ref_name == github.event.repository.default_branch }}
uses: actions/cache/save@v4
with:
key: ${{ steps.restore-cache-vcpkg.outputs.cache-primary-key }}
path: vcpkg

View file

@ -1,2 +1,2 @@
#!/bin/sh
exec sudo /usr/local/bin/gtar.orig "$@"
exec sudo /opt/homebrew/bin/gtar.orig "$@"

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

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 }}

View file

@ -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 }}

12
.gitignore vendored
View file

@ -4,7 +4,9 @@ __pycache__/
.DS_Store
# Text editor remnants
.vscode/
.vscode/*
!.vscode/tasks.json
.vs/
.idea/
cmake-build-**
@ -41,6 +43,7 @@ tools/asmsplitter/c/*
ctx.c
tools/*dSYM/
graphs/
.netcoredbg_hist
# Assets
*.png
@ -399,7 +402,6 @@ ASALocalRun/
lib/libgfxd/libgfxd.a
ExporterTest/ExporterTest.a
ZAPDUtils/ZAPDUtils.a
.vscode/
build/
external/
ZAPDUtils/build/
@ -448,5 +450,9 @@ _packages
*/extract_assets_cmake*
/build*
soh/build.c
soh/src/boot/build.c
soh/properties.h
# Tools
/clang-format
/clang-format.exe

61
.vscode/tasks.json vendored Normal file
View file

@ -0,0 +1,61 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Setup CMake Project",
"type": "shell",
"command": "cmake",
"args": [
"-S",
".",
"-B",
"build/x64",
"-G",
"Visual Studio 17 2022",
"-T",
"v143",
"-A",
"x64"
],
"group": "build",
"problemMatcher": []
},
{
"label": "Generate SOH OTR",
"type": "shell",
"command": "cmake",
"args": [
"--build",
"./build/x64",
"--target",
"GenerateSohOtr"
],
"group": "build",
"problemMatcher": []
},
{
"label": "Build Project",
"type": "shell",
"command": "cmake",
"args": [
"--build",
"./build/x64"
],
"group": {
"kind": "build",
"isDefault": true
},
"dependsOn": ["Generate SOH OTR"],
"problemMatcher": []
},
{
"label": "Build All",
"dependsOrder": "sequence",
"dependsOn": [
"Setup CMake Project",
"Generate SOH OTR",
"Build Project"
]
}
]
}

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()

View file

@ -1,9 +1,9 @@
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
set(CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY 0)
set(CPACK_COMPONENTS_ALL "ship" "extractor" "appimage")
set(CPACK_COMPONENTS_ALL "ship")
if (NOT CPACK_GENERATOR STREQUAL "External")
list(REMOVE_ITEM CPACK_COMPONENTS_ALL "appimage")
if (CPACK_GENERATOR STREQUAL "External")
list(APPEND CPACK_COMPONENTS_ALL "extractor" "appimage")
endif()
if (CPACK_GENERATOR MATCHES "DEB|RPM")
@ -24,6 +24,5 @@ if (CPACK_GENERATOR MATCHES "Bundle")
set(CPACK_BUNDLE_NAME "soh")
set(CPACK_BUNDLE_PLIST "macosx/Info.plist")
set(CPACK_BUNDLE_ICON "macosx/soh.icns")
set(CPACK_BUNDLE_STARTUP_COMMAND "macosx/soh-macos.sh")
set(CPACK_BUNDLE_APPLE_CERT_APP "-")
endif()

View file

@ -60,7 +60,7 @@ if (NOT LINUXDEPLOY_EXECUTABLE)
message(STATUS "Downloading linuxdeploy")
set(LINUXDEPLOY_EXECUTABLE ${CPACK_PACKAGE_DIRECTORY}/linuxdeploy/linuxdeploy)
file(DOWNLOAD
https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20240109-1/linuxdeploy-x86_64.AppImage
${LINUXDEPLOY_EXECUTABLE}
INACTIVITY_TIMEOUT 10
LOG ${CPACK_PACKAGE_DIRECTORY}/linuxdeploy/download.log

22
CMake/lus-cvars.cmake Normal file
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")

30
CMake/soh-cvars.cmake Normal file
View file

@ -0,0 +1,30 @@
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")
set(CVAR_PREFIX_GAMEPLAY_STATS "gGameplayStats")
set(CVAR_PREFIX_TIME_DISPLAY "gTimeDisplay")
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}"
CVAR_PREFIX_GAMEPLAY_STATS="${CVAR_PREFIX_GAMEPLAY_STATS}"
CVAR_PREFIX_TIME_DISPLAY="${CVAR_PREFIX_TIME_DISPLAY}"
)

View file

@ -1,32 +1,92 @@
cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.26.0 FATAL_ERROR)
set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
project(Ship VERSION 8.0.3 LANGUAGES C CXX)
set(PROJECT_BUILD_NAME "MacReady Delta" CACHE STRING "")
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "")
project(Ship VERSION 9.0.2 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 "Blair ${PROJECT_PATCH_WORD}" 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
)
# Get only the first 7 characters of the hash
string(SUBSTRING "${GIT_COMMIT_HASH}" 0 7 SHORT_COMMIT_HASH)
set(CMAKE_PROJECT_GIT_COMMIT_HASH "${SHORT_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 +144,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)
@ -98,7 +174,7 @@ set_property(TARGET soh PROPERTY APPIMAGE_ICON_FILE "${CMAKE_BINARY_DIR}/sohIcon
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
install(PROGRAMS "${CMAKE_BINARY_DIR}/linux/soh.sh" DESTINATION . COMPONENT appimage)
install(FILES "${CMAKE_SOURCE_DIR}/soh.otr" DESTINATION . COMPONENT ship)
install(FILES "${CMAKE_BINARY_DIR}/soh/soh.otr" DESTINATION . COMPONENT ship)
install(TARGETS ZAPD DESTINATION ./assets/extractor COMPONENT extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/extractor COMPONENT extractor)
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/extractor/xmls COMPONENT extractor)
@ -122,8 +198,12 @@ find_package(Python3 COMPONENTS Interpreter)
# Target to generate OTRs
add_custom_target(
ExtractAssets
# CMake versions prior to 3.17 do not have the rm command, use remove instead for older versions
COMMAND ${CMAKE_COMMAND} -E $<IF:$<VERSION_LESS:${CMAKE_VERSION},3.17>,remove,rm> -f oot.otr oot-mq.otr soh.otr
COMMAND ${CMAKE_COMMAND} -E rm -f oot.otr oot-mq.otr soh.otr
# copy LUS default shaders into assets/custom
COMMAND ${CMAKE_COMMAND} -E rm -r -f ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic/Fast3D/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root ../soh/assets/xml --custom-otr-file soh.otr "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
COMMAND ${CMAKE_COMMAND} -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DTARGET_DIR="$<TARGET_FILE_DIR:ZAPD>" -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
@ -144,8 +224,12 @@ add_custom_target(
# Target to generate only soh.otr
add_custom_target(
GenerateSohOtr
# CMake versions prior to 3.17 do not have the rm command, use remove instead for older versions
COMMAND ${CMAKE_COMMAND} -E $<IF:$<VERSION_LESS:${CMAKE_VERSION},3.17>,remove,rm> -f soh.otr
COMMAND ${CMAKE_COMMAND} -E rm -f soh.otr
# copy LUS default shaders into assets/custom
COMMAND ${CMAKE_COMMAND} -E rm -r -f ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic/Fast3D/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --norom --custom-otr-file soh.otr "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
COMMAND ${CMAKE_COMMAND} -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DTARGET_DIR="$<TARGET_FILE_DIR:ZAPD>" -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -DONLYSOHOTR=On -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
@ -157,7 +241,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
find_package(ImageMagick COMPONENTS convert)
if (ImageMagick_FOUND)
execute_process (
COMMAND ${ImageMagick_convert_EXECUTABLE} soh/macosx/sohIcon.png -resize 512x512 ${CMAKE_BINARY_DIR}/sohIcon.png
COMMAND ${ImageMagick_convert_EXECUTABLE} ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png -resize 512x512 ${CMAKE_BINARY_DIR}/sohIcon.png
OUTPUT_VARIABLE outVar
)
endif()
@ -166,16 +250,16 @@ endif()
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
add_custom_target(CreateOSXIcons
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/macosx/soh.iconset
COMMAND sips -z 16 16 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_16x16.png
COMMAND sips -z 32 32 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_16x16@2x.png
COMMAND sips -z 32 32 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_32x32.png
COMMAND sips -z 64 64 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_32x32@2x.png
COMMAND sips -z 128 128 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_128x128.png
COMMAND sips -z 256 256 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_128x128@2x.png
COMMAND sips -z 256 256 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_256x256.png
COMMAND sips -z 512 512 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_256x256@2x.png
COMMAND sips -z 512 512 soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_512x512.png
COMMAND cp soh/macosx/sohIcon.png ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_512x512@2x.png
COMMAND sips -z 16 16 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_16x16.png
COMMAND sips -z 32 32 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_16x16@2x.png
COMMAND sips -z 32 32 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_32x32.png
COMMAND sips -z 64 64 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_32x32@2x.png
COMMAND sips -z 128 128 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_128x128.png
COMMAND sips -z 256 256 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_128x128@2x.png
COMMAND sips -z 256 256 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_256x256.png
COMMAND sips -z 512 512 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_256x256@2x.png
COMMAND sips -z 512 512 ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_512x512.png
COMMAND cp ${CMAKE_SOURCE_DIR}/soh/macosx/sohIcon.png ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_512x512@2x.png
COMMAND iconutil -c icns -o ${CMAKE_BINARY_DIR}/macosx/soh.icns ${CMAKE_BINARY_DIR}/macosx/soh.iconset
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "Creating OSX icons ..."
@ -199,9 +283,12 @@ install(DIRECTORY ${CMAKE_BINARY_DIR}/assets
PERMISSIONS ${PROGRAM_PERMISSIONS_EXECUTE}
)
# Rename the installed soh binary to drop the macos suffix
INSTALL(CODE "FILE(RENAME \${CMAKE_INSTALL_PREFIX}/../MacOS/soh-macos \${CMAKE_INSTALL_PREFIX}/../MacOS/soh)")
install(CODE "
include(BundleUtilities)
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/soh-macos\" \"\" \"${dirs}\")
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/../MacOS/soh\" \"\" \"${dirs}\")
")
endif()

@ -1 +1 @@
Subproject commit 04b85b95fab07a394b62dcd28a502a3040f08e0c
Subproject commit 41052efcdf8df8e67517cc93da8975fcd4e14af9

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
@ -61,7 +61,8 @@ Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
### Other shortcuts
| Keys | Action |
| - | - |
| F1 | Toggle menubar |
| ESC | Toggle menu |
| F2 | Toggle capture mouse input |
| F5 | Save state |
| F6 | Change state |
| F7 | Load state |
@ -70,12 +71,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 +97,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>

2
ZAPDTR

@ -1 +1 @@
Subproject commit eff29036118349e142ee8efca80fd975a2a2b6ff
Subproject commit 2aeababbfb81b00d34673406453e8e8e2deaa27b

View file

@ -3,10 +3,10 @@
## Windows
Requires:
* At least 8GB of RAM (machines with 4GB have seen complier failures)
* At least 8GB of RAM (machines with 4GB have seen compiler 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,16 +51,14 @@ 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
To develop using Visual Studio Code or another editor you only need to open the repository in it.
To build you'll need to follow the instructions from the building section.
_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._
_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._
_Experimental: You can also use another build system entirely rather than MSVC like [Ninja](https://ninja-build.org/) for possibly better performance._
@ -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,43 +160,51 @@ 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!**
_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._
_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
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

View file

@ -29,3 +29,10 @@ This file is pulled from https://github.com/gabomdq/SDL_GameControllerDB during
| Spock Charlie 7.0.2 | [c5b4df0](https://github.com/gabomdq/SDL_GameControllerDB/tree/c5b4df0e1061175cb11e3ebbf8045178339864a5) | [+3](https://github.com/gabomdq/SDL_GameControllerDB/compare/228d980...c5b4df0) |
| Sulu Alfa 7.1.0 | [a2cf171](https://github.com/gabomdq/SDL_GameControllerDB/tree/a2cf1711b4ebc646a3814705d2fb6aac5707bcae) | [+4/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/c5b4df0...a2cf171) |
| Sulu Bravo 7.1.1 | [cc9f777](https://github.com/gabomdq/SDL_GameControllerDB/tree/cc9f777721f0cb30058d9eef52a295130b734a4a) | [+29/-9](https://github.com/gabomdq/SDL_GameControllerDB/compare/a2cf171...cc9f777) |
| MacReady Alfa 8.0.0 | [c56329f](https://github.com/gabomdq/SDL_GameControllerDB/tree/c56329f4df93fc7a780bdbeae47a9c91447b629c) | [+67/-23](https://github.com/gabomdq/SDL_GameControllerDB/compare/cc9f777...c56329f) |
| MacReady Bravo 8.0.1 | [721b575](https://github.com/gabomdq/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+5/-5](https://github.com/gabomdq/SDL_GameControllerDB/compare/c56329f...721b575) |
| MacReady Charlie 8.0.2 | [721b575](https://github.com/gabomdq/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+0/-0](https://github.com/gabomdq/SDL_GameControllerDB/compare/721b575...721b575) |
| MacReady Delta 8.0.3 | [d4ab609](https://github.com/gabomdq/SDL_GameControllerDB/tree/d4ab609121ee6e687bc3d3a7e80244b3b26d1164) | [+5/-3](https://github.com/gabomdq/SDL_GameControllerDB/compare/721b575...d4ab609) |
| MacReady Echo 8.0.4 | [6555d47](https://github.com/gabomdq/SDL_GameControllerDB/tree/6555d47ecb5d9eebac0e3d8cd19a545e9d946c40) | [+2/-0](https://github.com/gabomdq/SDL_GameControllerDB/compare/d4ab609...6555d47) |
| MacReady Foxtrot 8.0.5 | [037d6a1](https://github.com/gabomdq/SDL_GameControllerDB/tree/037d6a1533ed94fbc6a8c71e6f1f9aff1e46208a) | [+47/-14](https://github.com/gabomdq/SDL_GameControllerDB/compare/6555d47...037d6a1) |
| MacReady Golf 8.0.6 | [075c154](https://github.com/gabomdq/SDL_GameControllerDB/tree/075c1549075ef89a397fd7e0663d21e53a2485fd) | [+340/-301](https://github.com/gabomdq/SDL_GameControllerDB/compare/037d6a1...075c154) |

View file

@ -59,7 +59,7 @@ if (IS_DAY || gTimeIncrement >= 0x190) {
}
```
We can make a quick change to this code to verify this is indeed what we are looking for, lets multiply the the gTimeIncrement by 10:
We can make a quick change to this code to verify this is indeed what we are looking for, lets multiply the gTimeIncrement by 10:
```diff
if (IS_DAY || gTimeIncrement >= 0x190) {
@ -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>
```
```

View file

@ -30,5 +30,49 @@
{
"name": "PAL MQ (Debug)",
"sha1": "cfecfdc58d650e71a200c81f033de4e6d617a9f6"
},
{
"name": "NTSC 1.0 (US)",
"sha1": "ad69c91157f6705e8ab06c79fe08aad47bb57ba7"
},
{
"name": "NTSC 1.1 (US)",
"sha1": "d3ecb253776cd847a5aa63d859d8c89a2f37b364"
},
{
"name": "NTSC 1.2 (US)",
"sha1": "41b3bdc48d98c48529219919015a1af22f5057c2"
},
{
"name": "NTSC 1.0 (JP)",
"sha1": "c892bbda3993e66bd0d56a10ecd30b1ee612210f"
},
{
"name": "NTSC 1.1 (JP)",
"sha1": "dbfc81f655187dc6fefd93fa6798face770d579d"
},
{
"name": "NTSC 1.2 (JP)",
"sha1": "fa5f5942b27480d60243c2d52c0e93e26b9e6b86"
},
{
"name": "NTSC GC (US)",
"sha1": "b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b"
},
{
"name": "NTSC MQ (US)",
"sha1": "8b5d13aac69bfbf989861cfdc50b1d840945fc1d"
},
{
"name": "NTSC GC (JP)",
"sha1": "0769c84615422d60f16925cd859593cdfa597f84"
},
{
"name": "NTSC GC (JP) (Collector's Edition)",
"sha1": "2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73"
},
{
"name": "NTSC MQ (JP)",
"sha1": "dd14e143c4275861fe93ea79d0c02e36ae8c6c2f"
}
]

@ -1 +1 @@
Subproject commit 59427a67bf9af060a4928bb72e3acce3b0782177
Subproject commit ffc062cbf44ce8dc07ac9fc0185224010bd78cc5

49
run-clang-format.ps1 Normal file
View file

@ -0,0 +1,49 @@
Using Namespace System
$url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.6/LLVM-14.0.6-win64.exe"
$llvmInstallerPath = ".\LLVM-14.0.6-win64.exe"
$clangFormatFilePath = ".\clang-format.exe"
$requiredVersion = "clang-format version 14.0.6"
$currentVersion = ""
function Test-7ZipInstalled {
$sevenZipPath = "C:\Program Files\7-Zip\7z.exe"
return Test-Path $sevenZipPath -PathType Leaf
}
if (Test-Path $clangFormatFilePath) {
$currentVersion = & $clangFormatFilePath --version
if (-not ($currentVersion -eq $requiredVersion)) {
# Delete the existing file if the version is incorrect
Remove-Item $clangFormatFilePath -Force
}
}
if (-not (Test-Path $clangFormatFilePath) -or ($currentVersion -ne $requiredVersion)) {
if (-not (Test-7ZipInstalled)) {
Write-Host "7-Zip is not installed. Please install 7-Zip and run the script again."
exit
}
$wc = New-Object net.webclient
$wc.Downloadfile($url, $llvmInstallerPath)
$sevenZipPath = "C:\Program Files\7-Zip\7z.exe"
$specificFileInArchive = "bin\clang-format.exe"
& "$sevenZipPath" e $llvmInstallerPath $specificFileInArchive
Remove-Item $llvmInstallerPath -Force
}
$basePath = (Resolve-Path .).Path
$files = Get-ChildItem -Path $basePath\soh -Recurse -File `
| Where-Object { ($_.Extension -eq '.c' -or $_.Extension -eq '.cpp' -or `
(($_.Extension -eq '.h' -or $_.Extension -eq '.hpp') -and `
(-not ($_.FullName -like "*\soh\src\*" -or $_.FullName -like "*\soh\include\*")))) -and `
(-not ($_.FullName -like "*\soh\assets\*")) }
for ($i = 0; $i -lt $files.Length; $i++) {
$file = $files[$i]
$relativePath = $file.FullName.Substring($basePath.Length + 1)
Write-Host "Formatting [$($i+1)/$($files.Length)] $relativePath"
.\clang-format.exe -i $file.FullName
}

29
run-clang-format.sh Executable file
View file

@ -0,0 +1,29 @@
# this line does quite a bit, so let's break it down
#
# find soh
# use "find" to look in the "soh" directory
# this ensures we don't try to format stuff in the submodules
#
# -type f
# only look for files
#
# -name "*.c" -o -name "*.cpp"
# find all .c and .cpp files
#
# ( -name "*.h" -o -name "*.hpp" ) ! -path "soh/src/**.h" ! -path "soh/include/**.h"
# find all .h and .hpp files that aren't in soh/src or soh/include
# this is because zret decomp only runs clang-format on c files
# https://github.com/zeldaret/mm/blob/b7e5468ca16315a7e322055eff3d97fe980bbc25/format.py#L182
#
# ! -path "soh/assets/*"
# asset headers are autogenerated, don't fight them
#
# -print0
# separate paths with NUL bytes, avoiding issues with spaces in paths
#
# | xargs -0 clang-format-14 -i -verbose
# use xargs to take each path we've found
# and pass it as an argument to clang-format
# verbose to print files being formatted and X out of Y status
find soh -type f \( -name "*.c" -o -name "*.cpp" -o \( \( -name "*.h" -o -name "*.hpp" \) ! -path "soh/src/*" ! -path "soh/include/*" \) \) ! -path "soh/assets/*" -print0 | xargs -0 clang-format-14 -i --verbose

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 }')
@ -87,6 +92,72 @@ while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
166c02770d67fcc3954c443eb400a6a3573d3fc0) # n64
ROMHASH=517bd9714c73cb96c21e7c2ef640d7b55186102f
;;
79a4f053d34018e59279e6d4b83c7daccd985c87) # v64
ROMHASH=ad69c91157f6705e8ab06c79fe08aad47bb57ba7
;;
82fafee9c6ac7946739282958364ce606077ac65) # n64
ROMHASH=ad69c91157f6705e8ab06c79fe08aad47bb57ba7
;;
18cd0eb65914a21d8fa08dfe71c29d865e9d728a) # v64
ROMHASH=d3ecb253776cd847a5aa63d859d8c89a2f37b364
;;
07940d5609e04b7caac63570731e01189129212e) # n64
ROMHASH=d3ecb253776cd847a5aa63d859d8c89a2f37b364
;;
3ac86253e0c0d55486d212e647350c1527b9c92d) # v64
ROMHASH=41b3bdc48d98c48529219919015a1af22f5057c2
;;
70bf30a9980026e615a1ae8d2735a773cf9fcc94) # n64
ROMHASH=41b3bdc48d98c48529219919015a1af22f5057c2
;;
f9e2b6840b9103e9707ea390089a7b6943592a98) # v64
ROMHASH=c892bbda3993e66bd0d56a10ecd30b1ee612210f
;;
2fae1601aa7ae8d3e03ba3f4dcdfca3a36002ac5) # n64
ROMHASH=c892bbda3993e66bd0d56a10ecd30b1ee612210f
;;
1181034d5f9533f53ebe8e1c781badbee115f5aa) # v64
ROMHASH=dbfc81f655187dc6fefd93fa6798face770d579d
;;
07477067943abe8d0c50285eb4a6cb9ece99e79b) # n64
ROMHASH=dbfc81f655187dc6fefd93fa6798face770d579d
;;
2d8fb7140a9c5d11ce614561e5a36ffef0c17540) # v64
ROMHASH=fa5f5942b27480d60243c2d52c0e93e26b9e6b86
;;
d90bbe422ac728ac54ac6a2c9fec942f7ff04df9) # n64
ROMHASH=fa5f5942b27480d60243c2d52c0e93e26b9e6b86
;;
44c75962911e13bdfdc31b35e0b8e3be6a6a49ab) # v64
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b
;;
5d47025581060af5ba19e6719c25fea7398e87cf) # n64
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b
;;
e1d070ad7b017de9f992b362164dcd9d7f820f7e) # v64
8b5d13aac69bfbf989861cfdc50b1d840945fc1d
;;
a8c04cd5aa94a6a32198f36ff2069d43342d18a8) # n64
8b5d13aac69bfbf989861cfdc50b1d840945fc1d
;;
245410280d152f28d5b1c0c0fc37f384db0020cd) # v64
0769c84615422d60f16925cd859593cdfa597f84
;;
fbdc9e444807f9b881e3432cedf66f38746b81d8) # n64
0769c84615422d60f16925cd859593cdfa597f84
;;
b6d33d6bf5d6700c64b6a873ab8b06ff039619bc) # v64
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73
;;
2c7113d20044f93c82ec888c19aa09ea7797396d) # n64
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73
;;
06c3c098f0e14ed61811dfaf0e8e4519d7d7a826) # v64
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f
;;
bb3f85bfaad9ae7a20afbf618fc9fe126c8c1b4f) # n64
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f
;;
esac
case "$ROMHASH" in
@ -120,6 +191,30 @@ while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
continue
fi
;;
ad69c91157f6705e8ab06c79fe08aad47bb57ba7|c892bbda3993e66bd0d56a10ecd30b1ee612210f)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_NTSC_10
OTRNAME="oot.otr"
else
continue
fi
;;
d3ecb253776cd847a5aa63d859d8c89a2f37b364|dbfc81f655187dc6fefd93fa6798face770d579d)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_NTSC_11
OTRNAME="oot.otr"
else
continue
fi
;;
41b3bdc48d98c48529219919015a1af22f5057c2|fa5f5942b27480d60243c2d52c0e93e26b9e6b86)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=N64_NTSC_12
OTRNAME="oot.otr"
else
continue
fi
;;
f46239439f59a2a594ef83cf68ef65043b1bffe2)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_PAL_F
@ -160,6 +255,46 @@ while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
continue
fi
;;
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_NTSC_U
OTRNAME="oot.otr"
else
continue
fi
;;
8b5d13aac69bfbf989861cfdc50b1d840945fc1d)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_NTSC_U
OTRNAME="oot-mq.otr"
else
continue
fi
;;
0769c84615422d60f16925cd859593cdfa597f84)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_NTSC_J
OTRNAME="oot.otr"
else
continue
fi
;;
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73)
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
ROM=GC_NMQ_NTSC_J_CE
OTRNAME="oot.otr"
else
continue
fi
;;
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f)
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
ROM=GC_MQ_NTSC_J
OTRNAME="oot-mq.otr"
else
continue
fi
;;
*)
echo -e "\n$romfile - $ROMHASH rom hash does not match\n"
continue;;

1
soh/.gitignore vendored
View file

@ -7,7 +7,6 @@ __pycache__/
.vscode/
.vs/
.idea/
CMakeLists.txt
cmake-build-debug
venv/

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()

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.26.0 FATAL_ERROR)
set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
@ -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;"
@ -479,6 +440,7 @@ if(MSVC)
/Gy;
/W3
>
/bigobj;
/sdl-;
/permissive-;
/MP;
@ -549,6 +511,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 +587,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,34 +608,28 @@ 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 (CMAKE_GENERATOR MATCHES "Visual Studio")
set(VS_COPY_ASSETS_CMD ${CMAKE_COMMAND} -E copy_directory_if_different $<TARGET_FILE_DIR:soh>/assets ${CMAKE_BINARY_DIR}/soh/assets)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMENT "Copying asset xmls..."
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/soh/assets/extractor $<TARGET_FILE_DIR:soh>/assets/extractor
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/soh/assets/xml $<TARGET_FILE_DIR:soh>/assets/extractor/xmls
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists $<TARGET_FILE_DIR:soh>/assets/extractor/filelists
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/extractor $<TARGET_FILE_DIR:soh>/assets/extractor
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/xml $<TARGET_FILE_DIR:soh>/assets/extractor/xmls
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists $<TARGET_FILE_DIR:soh>/assets/extractor/filelists
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy ${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 ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
COMMAND ${VS_COPY_ASSETS_CMD}
)
endif()
################################################################################
# Dependencies
################################################################################
add_dependencies(${PROJECT_NAME}
ZAPDUtils
libultraship
)
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
@ -684,12 +643,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 +657,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 +674,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
find_package(Threads REQUIRED)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
"libultraship;"
"ZAPDUtils;"
SDL2::SDL2
-lglad
Threads::Threads
@ -739,16 +695,15 @@ 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
)
endif()
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|NintendoSwitch|CafeOS")
INSTALL(TARGETS soh DESTINATION . COMPONENT ship)
endif()
@ -766,7 +721,7 @@ execute_process(COMMAND ${CURL} -sSfL https://raw.githubusercontent.com/gabomdq/
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/macosx/Info.plist.in ${CMAKE_BINARY_DIR}/macosx/Info.plist @ONLY)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/macosx/soh-macos.sh.in ${CMAKE_BINARY_DIR}/macosx/soh-macos.sh @ONLY)
INSTALL(TARGETS soh DESTINATION ../MacOS COMPONENT ship)
INSTALL(FILES ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt DESTINATION ../MacOS COMPONENT ship)
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.otr DESTINATION ../Resources COMPONENT ship)
elseif(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "NintendoSwitch|CafeOS")

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>

View file

@ -4,4 +4,5 @@
*.cfg
*.vtx.inc
*.dlist.inc
*.txt
!*.png
custom/shaders

View file

@ -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)
}
}

Binary file not shown.

Binary file not shown.

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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/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_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="255" B="255" A="255"/>
<EndDisplayList/>
</DisplayList>

View file

@ -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>

View file

@ -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>

View file

@ -0,0 +1,14 @@
<DisplayList Version="0">
<ClearGeometryMode G_LIGHTING="1" />
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<SetGeometryMode G_LIGHTING="1" />
<CullDisplayList Start="0" End="7"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushBossKeyDL_f3dlite_shrubbery"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_tri_0"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushBossKeyDL_f3dlite_leaf"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_tri_1"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushBossKeyDL_f3dlite_flower_bosskey"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_tri_2"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,8 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="14"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="0" V01="5" V02="6" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="11" Flag0="0" V10="7" V11="12" V12="13" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushBossKeyDL_vtx_2" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,16 @@
<Vertex Version="0">
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="129" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="127" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="110" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="110" G="0" B="64" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="77" G="174" B="197" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="77" G="174" B="197" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="35" G="211" B="143" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="90" G="179" B="211" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="73" G="161" B="213" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="87" G="167" B="230" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="77" G="160" B="224" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="93" G="177" B="221" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="78" G="163" B="220" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="78" G="163" B="220" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="45" G="142" B="31" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="72" G="167" B="201" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="90" G="178" B="213" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="84" G="186" B="191" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="90" G="184" B="203" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="76" G="176" B="194" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="89" G="181" B="205" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="89" G="181" B="205" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="110" G="255" B="193" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="85" G="169" B="221" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="73" G="169" B="199" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="67" G="156" B="216" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="66" G="161" B="204" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="77" G="160" B="224" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="70" G="163" B="206" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="70" G="163" B="206" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="252" G="142" B="201" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="82" G="178" B="199" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="93" G="177" B="221" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="90" G="184" B="203" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="90" G="174" B="219" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="90" G="174" B="219" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="116" G="211" B="26" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="74" G="162" B="214" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="84" G="179" B="200" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="65" G="167" B="192" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="76" G="176" B="194" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="66" G="161" B="204" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="13" G="174" B="96" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="13" G="174" B="96" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="81" G="211" B="87" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="250" G="179" B="101" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="1" G="161" B="85" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="235" G="167" B="88" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="245" G="160" B="82" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="239" G="177" B="98" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="206" G="142" B="24" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="11" G="167" B="90" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="248" G="178" B="100" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="14" G="187" B="105" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="1" G="184" B="104" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="16" G="176" B="97" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="255" B="127" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="244" G="169" B="91" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="12" G="169" B="92" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="1" G="156" B="78" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="12" G="161" B="84" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="245" G="160" B="82" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="8" G="163" B="86" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="8" G="163" B="86" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="50" G="142" B="24" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="8" G="178" B="100" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="245" G="167" B="90" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="243" G="186" B="105" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="239" G="177" B="98" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="1" G="184" B="104" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="243" G="174" B="96" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="243" G="174" B="96" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="175" G="211" B="87" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="255" G="162" B="85" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="6" G="179" B="101" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="23" G="167" B="88" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="16" G="176" B="97" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="12" G="161" B="84" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="166" G="174" B="219" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="166" G="174" B="219" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="140" G="211" B="26" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="172" G="179" B="200" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="190" G="160" B="205" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="180" G="177" B="193" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="186" G="163" B="206" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="186" G="163" B="206" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="4" G="142" B="201" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="172" G="167" B="221" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="174" G="178" B="199" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="158" G="187" B="216" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="165" G="184" B="205" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="164" G="176" B="221" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="167" G="181" B="205" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="167" G="181" B="205" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="146" G="255" B="193" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="183" G="169" B="200" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="170" G="169" B="221" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="188" G="156" B="218" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="177" G="161" B="225" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="190" G="160" B="205" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="178" G="163" B="220" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="178" G="163" B="220" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="211" G="142" B="31" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="166" G="178" B="214" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="184" G="167" B="201" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="171" G="186" B="192" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="180" G="177" B="193" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="165" G="184" B="205" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="179" G="174" B="197" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="221" G="211" B="143" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="166" G="179" B="211" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="168" G="167" B="232" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="164" G="176" B="221" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="177" G="161" B="225" A="255"/>
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="179" G="82" B="59" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="221" G="45" B="113" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="179" G="82" B="59" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="166" G="77" B="45" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="183" G="95" B="43" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="169" G="89" B="26" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="163" G="79" B="35" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="179" G="96" B="32" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="178" G="93" B="36" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="211" G="114" B="225" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="178" G="93" B="36" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="184" G="89" B="55" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="166" G="78" B="43" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="172" G="70" B="65" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="180" G="80" B="62" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="166" G="72" B="53" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="167" G="75" B="51" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="146" G="1" B="63" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="167" G="75" B="51" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="171" G="87" B="35" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="183" G="87" B="57" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="189" G="100" B="40" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="179" G="96" B="32" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="190" G="95" B="52" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="186" G="93" B="50" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="4" G="114" B="55" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="186" G="93" B="50" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="174" G="78" B="57" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="172" G="89" B="35" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="158" G="70" B="42" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="166" G="72" B="53" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="163" G="79" B="35" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="166" G="82" B="37" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="140" G="45" B="230" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="166" G="82" B="37" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="182" G="94" B="42" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="172" G="77" B="56" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="191" G="89" B="64" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="190" G="95" B="52" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="180" G="80" B="62" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="243" G="82" B="160" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="175" G="45" B="169" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="243" G="82" B="160" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="6" G="77" B="155" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="255" G="95" B="171" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="21" G="89" B="168" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="17" G="79" B="158" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="11" G="96" B="174" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="8" G="93" B="170" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="50" G="114" B="232" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="8" G="93" B="170" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="240" G="80" B="159" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="255" G="72" B="152" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="75" B="154" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="1" B="129" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="75" B="154" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="12" G="87" B="165" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="244" G="87" B="164" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="255" G="100" B="178" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="11" G="96" B="174" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="244" G="95" B="172" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="248" G="93" B="170" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="206" G="114" B="232" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="248" G="93" B="170" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="248" G="78" B="156" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="11" G="89" B="166" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="13" G="70" B="151" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="255" G="72" B="152" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="17" G="79" B="158" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="13" G="82" B="160" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="81" G="45" B="169" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="13" G="82" B="160" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="1" G="94" B="171" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="250" G="77" B="155" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="233" G="89" B="168" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="244" G="95" B="172" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="240" G="80" B="159" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="90" G="82" B="37" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="116" G="45" B="230" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="90" G="82" B="37" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="84" G="77" B="56" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="74" G="95" B="41" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="66" G="89" B="62" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="76" G="79" B="63" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="66" G="96" B="51" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="70" G="93" B="50" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="252" G="114" B="55" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="70" G="93" B="50" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="84" G="89" B="35" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="82" G="78" B="57" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="98" G="69" B="40" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="92" G="80" B="35" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="91" G="72" B="51" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="89" G="75" B="51" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="110" G="1" B="63" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="89" G="75" B="51" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="73" G="87" B="56" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="86" G="87" B="35" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="68" G="100" B="38" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="66" G="96" B="51" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="79" G="95" B="31" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="78" G="93" B="36" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="45" G="114" B="225" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="78" G="93" B="36" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="72" G="89" B="55" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="91" G="72" B="51" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="76" G="79" B="63" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="77" G="82" B="59" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="35" G="45" B="113" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="77" G="82" B="59" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="73" G="94" B="43" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="90" G="77" B="45" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="88" G="89" B="24" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="79" G="95" B="31" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="92" G="80" B="35" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="80" G="167" B="214" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="80" G="167" B="214" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="84" G="191" B="187" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="67" G="153" B="223" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="83" G="163" B="234" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="74" G="157" B="229" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="48" G="142" B="228" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="88" G="165" B="0" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="85" G="175" B="207" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="85" G="175" B="207" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="61" G="150" B="221" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="99" G="190" B="211" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="88" G="190" B="193" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="95" G="191" B="201" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="111" G="203" B="224" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="83" G="203" B="176" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="76" G="167" B="208" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="76" G="167" B="208" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="102" G="191" B="218" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="60" G="163" B="195" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="62" G="153" B="215" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="61" G="157" B="205" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="44" G="165" B="180" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="48" G="142" B="228" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="85" G="172" B="214" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="85" G="172" B="214" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="59" G="166" B="189" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="91" G="170" B="234" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="88" G="165" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="111" G="203" B="224" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="79" G="172" B="203" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="79" G="172" B="203" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="88" G="166" B="239" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="80" G="185" B="188" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="64" G="170" B="189" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="70" G="176" B="186" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="83" G="203" B="176" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="44" G="165" B="180" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="252" G="167" B="90" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="252" G="167" B="90" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="18" G="191" B="108" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="251" G="153" B="74" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="233" G="163" B="83" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="242" G="157" B="78" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="142" B="55" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="212" G="165" B="76" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="175" B="98" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="175" B="98" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="150" B="70" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="245" G="190" B="108" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="11" G="190" B="108" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="191" B="109" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="228" G="203" B="112" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="28" G="203" B="112" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="238" G="191" B="108" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="23" G="163" B="83" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="5" G="153" B="74" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="14" G="157" B="78" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="44" G="165" B="76" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="142" B="55" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="250" G="172" B="95" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="250" G="172" B="95" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="29" G="166" B="85" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="230" G="170" B="90" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="237" G="185" B="104" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="231" G="176" B="96" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="212" G="165" B="76" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="228" G="203" B="112" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="6" G="172" B="95" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="6" G="172" B="95" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="227" G="166" B="85" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="19" G="185" B="104" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="26" G="170" B="90" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="25" G="176" B="96" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="28" G="203" B="112" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="44" G="165" B="76" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="180" G="167" B="208" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="180" G="167" B="208" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="154" G="191" B="218" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="194" G="153" B="215" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="208" G="142" B="228" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="212" G="165" B="180" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="171" G="175" B="207" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="171" G="175" B="207" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="195" G="150" B="221" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="168" G="190" B="193" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="157" G="190" B="211" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="161" G="191" B="201" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="173" G="203" B="176" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="145" G="203" B="224" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="176" G="167" B="214" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="176" G="167" B="214" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="172" G="191" B="187" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="173" G="163" B="234" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="189" G="153" B="223" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="182" G="157" B="229" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="168" G="165" B="0" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="208" G="142" B="228" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="177" G="172" B="203" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="177" G="172" B="203" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="168" G="166" B="239" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="192" G="170" B="189" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="176" G="185" B="188" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="186" G="176" B="186" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="212" G="165" B="180" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="173" G="203" B="176" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="171" G="172" B="214" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="197" G="166" B="189" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="165" G="170" B="234" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="161" G="176" B="230" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="145" G="203" B="224" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="168" G="165" B="0" A="255"/>
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="176" G="89" B="42" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="172" G="65" B="69" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="176" G="89" B="42" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="189" G="103" B="33" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="173" G="93" B="22" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="182" G="99" B="27" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="168" G="91" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="208" G="114" B="28" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="171" G="81" B="49" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="195" G="106" B="35" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="171" G="81" B="49" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="157" G="66" B="45" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="168" G="66" B="63" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="161" G="65" B="55" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="173" G="53" B="80" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="145" G="53" B="32" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="180" G="89" B="48" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="154" G="65" B="38" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="180" G="89" B="48" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="196" G="93" B="61" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="194" G="103" B="41" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="195" G="99" B="51" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="208" G="114" B="28" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="212" G="91" B="76" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="171" G="84" B="42" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="197" G="90" B="67" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="171" G="84" B="42" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="165" G="86" B="22" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="157" G="71" B="35" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="161" G="80" B="26" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="145" G="53" B="32" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="168" G="91" B="0" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="177" G="84" B="53" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="168" G="90" B="17" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="177" G="84" B="53" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="176" G="71" B="68" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="192" G="86" B="67" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="186" G="80" B="70" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="212" G="91" B="76" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="173" G="53" B="80" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="4" G="89" B="166" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="238" G="65" B="148" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="4" G="89" B="166" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="5" G="103" B="182" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="23" G="93" B="173" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="14" G="99" B="178" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="44" G="91" B="180" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="114" B="201" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="81" B="158" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="106" B="186" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="81" B="158" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="228" G="53" B="144" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="252" G="89" B="166" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="18" G="65" B="148" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="252" G="89" B="166" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="233" G="93" B="173" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="251" G="103" B="182" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="242" G="99" B="178" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="114" B="201" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="212" G="91" B="180" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="6" G="84" B="161" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="227" G="90" B="171" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="6" G="84" B="161" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="26" G="86" B="166" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="19" G="71" B="152" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="25" G="80" B="160" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="44" G="91" B="180" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="250" G="84" B="161" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="29" G="90" B="171" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="250" G="84" B="161" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="237" G="71" B="152" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="230" G="86" B="166" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="231" G="80" B="160" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="212" G="91" B="180" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="228" G="53" B="144" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="76" G="89" B="48" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="102" G="65" B="38" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="76" G="89" B="48" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="62" G="103" B="41" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="60" G="93" B="61" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="61" G="99" B="51" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="44" G="91" B="76" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="48" G="114" B="28" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="85" G="81" B="49" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="61" G="106" B="35" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="85" G="81" B="49" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="88" G="66" B="63" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="99" G="66" B="45" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="95" G="65" B="55" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="111" G="53" B="32" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="83" G="53" B="80" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="80" G="89" B="42" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="84" G="65" B="69" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="80" G="89" B="42" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="83" G="93" B="22" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="67" G="103" B="33" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="74" G="99" B="27" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="48" G="114" B="28" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="88" G="91" B="0" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="79" G="84" B="53" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="88" G="90" B="17" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="79" G="84" B="53" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="80" G="71" B="68" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="83" G="53" B="80" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="44" G="91" B="76" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="85" G="84" B="42" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="59" G="90" B="67" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="85" G="84" B="42" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="99" G="71" B="35" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="91" G="86" B="22" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="95" G="80" B="26" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="88" G="91" B="0" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="111" G="53" B="32" A="255"/>
</Vertex>

View file

@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="-107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
</Vertex>

View file

@ -0,0 +1,14 @@
<DisplayList Version="0">
<ClearGeometryMode G_LIGHTING="1" />
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<SetGeometryMode G_LIGHTING="1" />
<CullDisplayList Start="0" End="7"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushFairyDL_f3dlite_shrubbery"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushFairyDL_tri_0"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushFairyDL_f3dlite_leaf"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushFairyDL_tri_1"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushFairyDL_f3dlite_flower_fairy"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushFairyDL_tri_2"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,8 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="14"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="0" V01="5" V02="6" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="11" Flag0="0" V10="7" V11="12" V12="13" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushFairyDL_vtx_2" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,16 @@
<Vertex Version="0">
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="129" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="127" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="110" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="110" G="0" B="64" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="77" G="174" B="197" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="77" G="174" B="197" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="35" G="211" B="143" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="90" G="179" B="211" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="73" G="161" B="213" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="87" G="167" B="230" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="77" G="160" B="224" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="93" G="177" B="221" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="78" G="163" B="220" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="78" G="163" B="220" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="45" G="142" B="31" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="72" G="167" B="201" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="90" G="178" B="213" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="84" G="186" B="191" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="90" G="184" B="203" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="76" G="176" B="194" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="89" G="181" B="205" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="89" G="181" B="205" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="110" G="255" B="193" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="85" G="169" B="221" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="73" G="169" B="199" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="67" G="156" B="216" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="66" G="161" B="204" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="77" G="160" B="224" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="70" G="163" B="206" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="70" G="163" B="206" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="252" G="142" B="201" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="82" G="178" B="199" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="93" G="177" B="221" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="90" G="184" B="203" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="90" G="174" B="219" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="90" G="174" B="219" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="116" G="211" B="26" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="74" G="162" B="214" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="84" G="179" B="200" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="65" G="167" B="192" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="76" G="176" B="194" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="66" G="161" B="204" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="13" G="174" B="96" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="13" G="174" B="96" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="81" G="211" B="87" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="250" G="179" B="101" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="1" G="161" B="85" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="235" G="167" B="88" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="245" G="160" B="82" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="239" G="177" B="98" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="206" G="142" B="24" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="11" G="167" B="90" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="248" G="178" B="100" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="14" G="187" B="105" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="1" G="184" B="104" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="16" G="176" B="97" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="255" B="127" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="244" G="169" B="91" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="12" G="169" B="92" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="1" G="156" B="78" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="12" G="161" B="84" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="245" G="160" B="82" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="8" G="163" B="86" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="8" G="163" B="86" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="50" G="142" B="24" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="8" G="178" B="100" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="245" G="167" B="90" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="243" G="186" B="105" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="239" G="177" B="98" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="1" G="184" B="104" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="243" G="174" B="96" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="243" G="174" B="96" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="175" G="211" B="87" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="255" G="162" B="85" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="6" G="179" B="101" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="23" G="167" B="88" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="16" G="176" B="97" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="12" G="161" B="84" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="166" G="174" B="219" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="166" G="174" B="219" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="140" G="211" B="26" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="172" G="179" B="200" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="190" G="160" B="205" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="180" G="177" B="193" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="186" G="163" B="206" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="186" G="163" B="206" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="4" G="142" B="201" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="172" G="167" B="221" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="174" G="178" B="199" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="158" G="187" B="216" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="165" G="184" B="205" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="164" G="176" B="221" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="167" G="181" B="205" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="167" G="181" B="205" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="146" G="255" B="193" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="183" G="169" B="200" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="170" G="169" B="221" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="188" G="156" B="218" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="177" G="161" B="225" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="190" G="160" B="205" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="178" G="163" B="220" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="178" G="163" B="220" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="211" G="142" B="31" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="166" G="178" B="214" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="184" G="167" B="201" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="171" G="186" B="192" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="180" G="177" B="193" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="165" G="184" B="205" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="179" G="174" B="197" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="221" G="211" B="143" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="166" G="179" B="211" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="168" G="167" B="232" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="164" G="176" B="221" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="177" G="161" B="225" A="255"/>
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="179" G="82" B="59" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="221" G="45" B="113" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="179" G="82" B="59" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="166" G="77" B="45" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="183" G="95" B="43" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="169" G="89" B="26" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="163" G="79" B="35" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="179" G="96" B="32" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="178" G="93" B="36" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="211" G="114" B="225" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="178" G="93" B="36" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="184" G="89" B="55" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="166" G="78" B="43" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="172" G="70" B="65" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="180" G="80" B="62" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="166" G="72" B="53" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="167" G="75" B="51" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="146" G="1" B="63" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="167" G="75" B="51" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="171" G="87" B="35" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="183" G="87" B="57" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="189" G="100" B="40" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="179" G="96" B="32" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="190" G="95" B="52" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="186" G="93" B="50" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="4" G="114" B="55" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="186" G="93" B="50" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="174" G="78" B="57" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="172" G="89" B="35" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="158" G="70" B="42" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="166" G="72" B="53" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="163" G="79" B="35" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="166" G="82" B="37" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="140" G="45" B="230" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="166" G="82" B="37" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="182" G="94" B="42" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="172" G="77" B="56" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="191" G="89" B="64" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="190" G="95" B="52" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="180" G="80" B="62" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="243" G="82" B="160" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="175" G="45" B="169" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="243" G="82" B="160" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="6" G="77" B="155" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="255" G="95" B="171" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="21" G="89" B="168" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="17" G="79" B="158" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="11" G="96" B="174" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="8" G="93" B="170" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="50" G="114" B="232" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="8" G="93" B="170" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="240" G="80" B="159" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="255" G="72" B="152" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="75" B="154" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="1" B="129" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="75" B="154" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="12" G="87" B="165" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="244" G="87" B="164" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="255" G="100" B="178" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="11" G="96" B="174" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="244" G="95" B="172" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="248" G="93" B="170" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="206" G="114" B="232" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="248" G="93" B="170" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="248" G="78" B="156" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="11" G="89" B="166" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="13" G="70" B="151" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="255" G="72" B="152" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="17" G="79" B="158" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="13" G="82" B="160" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="81" G="45" B="169" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="13" G="82" B="160" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="1" G="94" B="171" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="250" G="77" B="155" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="233" G="89" B="168" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="244" G="95" B="172" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="240" G="80" B="159" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="90" G="82" B="37" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="116" G="45" B="230" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="90" G="82" B="37" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="84" G="77" B="56" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="74" G="95" B="41" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="66" G="89" B="62" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="76" G="79" B="63" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="66" G="96" B="51" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="70" G="93" B="50" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="252" G="114" B="55" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="70" G="93" B="50" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="84" G="89" B="35" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="82" G="78" B="57" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="98" G="69" B="40" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="92" G="80" B="35" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="91" G="72" B="51" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="89" G="75" B="51" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="110" G="1" B="63" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="89" G="75" B="51" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="73" G="87" B="56" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="86" G="87" B="35" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="68" G="100" B="38" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="66" G="96" B="51" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="79" G="95" B="31" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="78" G="93" B="36" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="45" G="114" B="225" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="78" G="93" B="36" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="72" G="89" B="55" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="91" G="72" B="51" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="76" G="79" B="63" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="77" G="82" B="59" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="35" G="45" B="113" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="77" G="82" B="59" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="73" G="94" B="43" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="90" G="77" B="45" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="88" G="89" B="24" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="79" G="95" B="31" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="92" G="80" B="35" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="80" G="167" B="214" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="80" G="167" B="214" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="84" G="191" B="187" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="67" G="153" B="223" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="83" G="163" B="234" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="74" G="157" B="229" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="48" G="142" B="228" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="88" G="165" B="0" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="85" G="175" B="207" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="85" G="175" B="207" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="61" G="150" B="221" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="99" G="190" B="211" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="88" G="190" B="193" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="95" G="191" B="201" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="111" G="203" B="224" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="83" G="203" B="176" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="76" G="167" B="208" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="76" G="167" B="208" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="102" G="191" B="218" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="60" G="163" B="195" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="62" G="153" B="215" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="61" G="157" B="205" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="44" G="165" B="180" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="48" G="142" B="228" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="85" G="172" B="214" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="85" G="172" B="214" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="59" G="166" B="189" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="91" G="170" B="234" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="88" G="165" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="111" G="203" B="224" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="79" G="172" B="203" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="79" G="172" B="203" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="88" G="166" B="239" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="80" G="185" B="188" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="64" G="170" B="189" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="70" G="176" B="186" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="83" G="203" B="176" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="44" G="165" B="180" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="252" G="167" B="90" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="252" G="167" B="90" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="18" G="191" B="108" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="251" G="153" B="74" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="233" G="163" B="83" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="242" G="157" B="78" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="142" B="55" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="212" G="165" B="76" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="175" B="98" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="175" B="98" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="150" B="70" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="245" G="190" B="108" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="11" G="190" B="108" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="191" B="109" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="228" G="203" B="112" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="28" G="203" B="112" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="238" G="191" B="108" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="23" G="163" B="83" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="5" G="153" B="74" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="14" G="157" B="78" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="44" G="165" B="76" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="142" B="55" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="250" G="172" B="95" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="250" G="172" B="95" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="29" G="166" B="85" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="230" G="170" B="90" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="237" G="185" B="104" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="231" G="176" B="96" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="212" G="165" B="76" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="228" G="203" B="112" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="6" G="172" B="95" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="6" G="172" B="95" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="227" G="166" B="85" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="19" G="185" B="104" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="26" G="170" B="90" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="25" G="176" B="96" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="28" G="203" B="112" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="44" G="165" B="76" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="180" G="167" B="208" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="180" G="167" B="208" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="154" G="191" B="218" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="194" G="153" B="215" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="208" G="142" B="228" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="212" G="165" B="180" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="171" G="175" B="207" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="171" G="175" B="207" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="195" G="150" B="221" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="168" G="190" B="193" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="157" G="190" B="211" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="161" G="191" B="201" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="173" G="203" B="176" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="145" G="203" B="224" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="176" G="167" B="214" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="176" G="167" B="214" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="172" G="191" B="187" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="173" G="163" B="234" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="189" G="153" B="223" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="182" G="157" B="229" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="168" G="165" B="0" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="208" G="142" B="228" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="177" G="172" B="203" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="177" G="172" B="203" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="168" G="166" B="239" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="192" G="170" B="189" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="176" G="185" B="188" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="186" G="176" B="186" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="212" G="165" B="180" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="173" G="203" B="176" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="171" G="172" B="214" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="197" G="166" B="189" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="165" G="170" B="234" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="161" G="176" B="230" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="145" G="203" B="224" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="168" G="165" B="0" A="255"/>
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="176" G="89" B="42" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="172" G="65" B="69" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="176" G="89" B="42" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="189" G="103" B="33" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="173" G="93" B="22" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="182" G="99" B="27" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="168" G="91" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="208" G="114" B="28" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="171" G="81" B="49" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="195" G="106" B="35" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="171" G="81" B="49" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="157" G="66" B="45" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="168" G="66" B="63" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="161" G="65" B="55" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="173" G="53" B="80" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="145" G="53" B="32" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="180" G="89" B="48" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="154" G="65" B="38" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="180" G="89" B="48" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="196" G="93" B="61" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="194" G="103" B="41" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="195" G="99" B="51" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="208" G="114" B="28" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="212" G="91" B="76" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="171" G="84" B="42" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="197" G="90" B="67" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="171" G="84" B="42" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="165" G="86" B="22" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="157" G="71" B="35" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="161" G="80" B="26" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="145" G="53" B="32" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="168" G="91" B="0" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="177" G="84" B="53" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="168" G="90" B="17" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="177" G="84" B="53" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="176" G="71" B="68" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="192" G="86" B="67" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="186" G="80" B="70" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="212" G="91" B="76" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="173" G="53" B="80" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="4" G="89" B="166" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="238" G="65" B="148" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="4" G="89" B="166" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="5" G="103" B="182" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="23" G="93" B="173" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="14" G="99" B="178" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="44" G="91" B="180" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="114" B="201" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="81" B="158" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="106" B="186" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="81" B="158" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="228" G="53" B="144" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="252" G="89" B="166" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="18" G="65" B="148" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="252" G="89" B="166" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="233" G="93" B="173" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="251" G="103" B="182" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="242" G="99" B="178" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="114" B="201" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="212" G="91" B="180" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="6" G="84" B="161" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="227" G="90" B="171" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="6" G="84" B="161" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="26" G="86" B="166" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="19" G="71" B="152" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="25" G="80" B="160" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="44" G="91" B="180" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="250" G="84" B="161" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="29" G="90" B="171" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="250" G="84" B="161" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="237" G="71" B="152" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="230" G="86" B="166" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="231" G="80" B="160" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="212" G="91" B="180" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="228" G="53" B="144" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="76" G="89" B="48" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="102" G="65" B="38" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="76" G="89" B="48" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="62" G="103" B="41" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="60" G="93" B="61" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="61" G="99" B="51" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="44" G="91" B="76" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="48" G="114" B="28" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="85" G="81" B="49" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="61" G="106" B="35" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="85" G="81" B="49" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="88" G="66" B="63" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="99" G="66" B="45" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="95" G="65" B="55" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="111" G="53" B="32" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="83" G="53" B="80" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="80" G="89" B="42" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="84" G="65" B="69" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="80" G="89" B="42" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="83" G="93" B="22" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="67" G="103" B="33" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="74" G="99" B="27" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="48" G="114" B="28" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="88" G="91" B="0" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="79" G="84" B="53" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="88" G="90" B="17" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="79" G="84" B="53" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="80" G="71" B="68" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="83" G="53" B="80" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="44" G="91" B="76" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="85" G="84" B="42" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="59" G="90" B="67" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="85" G="84" B="42" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="99" G="71" B="35" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="91" G="86" B="22" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="95" G="80" B="26" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="88" G="91" B="0" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="111" G="53" B="32" A="255"/>
</Vertex>

View file

@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="-107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
</Vertex>

View file

@ -0,0 +1,14 @@
<DisplayList Version="0">
<ClearGeometryMode G_LIGHTING="1" />
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<SetGeometryMode G_LIGHTING="1" />
<CullDisplayList Start="0" End="7"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushHeartDL_f3dlite_shrubbery"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushHeartDL_tri_0"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushHeartDL_f3dlite_leaf"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushHeartDL_tri_1"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushHeartDL_f3dlite_flower_heart"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushHeartDL_tri_2"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,8 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="14"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="0" V01="5" V02="6" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="11" Flag0="0" V10="7" V11="12" V12="13" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushHeartDL_vtx_2" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,16 @@
<Vertex Version="0">
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="129" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="127" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="110" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="110" G="0" B="64" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="77" G="174" B="197" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="77" G="174" B="197" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="35" G="211" B="143" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="90" G="179" B="211" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="73" G="161" B="213" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="87" G="167" B="230" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="77" G="160" B="224" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="93" G="177" B="221" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="78" G="163" B="220" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="78" G="163" B="220" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="45" G="142" B="31" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="72" G="167" B="201" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="90" G="178" B="213" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="84" G="186" B="191" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="90" G="184" B="203" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="76" G="176" B="194" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="89" G="181" B="205" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="89" G="181" B="205" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="110" G="255" B="193" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="85" G="169" B="221" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="73" G="169" B="199" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="67" G="156" B="216" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="66" G="161" B="204" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="77" G="160" B="224" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="70" G="163" B="206" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="70" G="163" B="206" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="252" G="142" B="201" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="82" G="178" B="199" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="93" G="177" B="221" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="90" G="184" B="203" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="90" G="174" B="219" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="90" G="174" B="219" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="116" G="211" B="26" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="74" G="162" B="214" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="84" G="179" B="200" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="65" G="167" B="192" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="76" G="176" B="194" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="66" G="161" B="204" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="13" G="174" B="96" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="13" G="174" B="96" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="81" G="211" B="87" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="250" G="179" B="101" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="1" G="161" B="85" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="235" G="167" B="88" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="245" G="160" B="82" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="239" G="177" B="98" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="206" G="142" B="24" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="11" G="167" B="90" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="248" G="178" B="100" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="14" G="187" B="105" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="1" G="184" B="104" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="16" G="176" B="97" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="255" B="127" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="244" G="169" B="91" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="12" G="169" B="92" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="1" G="156" B="78" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="12" G="161" B="84" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="245" G="160" B="82" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="8" G="163" B="86" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="8" G="163" B="86" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="50" G="142" B="24" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="8" G="178" B="100" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="245" G="167" B="90" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="243" G="186" B="105" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="239" G="177" B="98" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="1" G="184" B="104" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="243" G="174" B="96" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="243" G="174" B="96" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="175" G="211" B="87" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="255" G="162" B="85" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="6" G="179" B="101" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="23" G="167" B="88" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="16" G="176" B="97" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="12" G="161" B="84" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="166" G="174" B="219" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="166" G="174" B="219" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="140" G="211" B="26" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="172" G="179" B="200" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="190" G="160" B="205" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="180" G="177" B="193" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="186" G="163" B="206" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="186" G="163" B="206" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="4" G="142" B="201" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="172" G="167" B="221" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="174" G="178" B="199" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="158" G="187" B="216" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="165" G="184" B="205" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="164" G="176" B="221" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="167" G="181" B="205" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="167" G="181" B="205" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="146" G="255" B="193" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="183" G="169" B="200" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="170" G="169" B="221" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="188" G="156" B="218" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="177" G="161" B="225" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="190" G="160" B="205" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="178" G="163" B="220" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="178" G="163" B="220" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="211" G="142" B="31" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="166" G="178" B="214" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="184" G="167" B="201" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="171" G="186" B="192" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="180" G="177" B="193" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="165" G="184" B="205" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="179" G="174" B="197" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="221" G="211" B="143" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="166" G="179" B="211" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="168" G="167" B="232" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="164" G="176" B="221" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="177" G="161" B="225" A="255"/>
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="179" G="82" B="59" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="221" G="45" B="113" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="179" G="82" B="59" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="166" G="77" B="45" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="183" G="95" B="43" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="169" G="89" B="26" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="163" G="79" B="35" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="179" G="96" B="32" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="178" G="93" B="36" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="211" G="114" B="225" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="178" G="93" B="36" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="184" G="89" B="55" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="166" G="78" B="43" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="172" G="70" B="65" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="180" G="80" B="62" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="166" G="72" B="53" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="167" G="75" B="51" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="146" G="1" B="63" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="167" G="75" B="51" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="171" G="87" B="35" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="183" G="87" B="57" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="189" G="100" B="40" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="179" G="96" B="32" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="190" G="95" B="52" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="186" G="93" B="50" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="4" G="114" B="55" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="186" G="93" B="50" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="174" G="78" B="57" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="172" G="89" B="35" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="158" G="70" B="42" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="166" G="72" B="53" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="163" G="79" B="35" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="166" G="82" B="37" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="140" G="45" B="230" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="166" G="82" B="37" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="182" G="94" B="42" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="172" G="77" B="56" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="191" G="89" B="64" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="190" G="95" B="52" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="180" G="80" B="62" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="243" G="82" B="160" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="175" G="45" B="169" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="243" G="82" B="160" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="6" G="77" B="155" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="255" G="95" B="171" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="21" G="89" B="168" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="17" G="79" B="158" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="11" G="96" B="174" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="8" G="93" B="170" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="50" G="114" B="232" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="8" G="93" B="170" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="240" G="80" B="159" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="255" G="72" B="152" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="75" B="154" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="1" B="129" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="75" B="154" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="12" G="87" B="165" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="244" G="87" B="164" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="255" G="100" B="178" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="11" G="96" B="174" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="244" G="95" B="172" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="248" G="93" B="170" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="206" G="114" B="232" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="248" G="93" B="170" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="248" G="78" B="156" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="11" G="89" B="166" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="13" G="70" B="151" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="255" G="72" B="152" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="17" G="79" B="158" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="13" G="82" B="160" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="81" G="45" B="169" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="13" G="82" B="160" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="1" G="94" B="171" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="250" G="77" B="155" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="233" G="89" B="168" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="244" G="95" B="172" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="240" G="80" B="159" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="90" G="82" B="37" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="116" G="45" B="230" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="90" G="82" B="37" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="84" G="77" B="56" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="74" G="95" B="41" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="66" G="89" B="62" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="76" G="79" B="63" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="66" G="96" B="51" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="70" G="93" B="50" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="252" G="114" B="55" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="70" G="93" B="50" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="84" G="89" B="35" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="82" G="78" B="57" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="98" G="69" B="40" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="92" G="80" B="35" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="91" G="72" B="51" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="89" G="75" B="51" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="110" G="1" B="63" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="89" G="75" B="51" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="73" G="87" B="56" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="86" G="87" B="35" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="68" G="100" B="38" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="66" G="96" B="51" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="79" G="95" B="31" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="78" G="93" B="36" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="45" G="114" B="225" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="78" G="93" B="36" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="72" G="89" B="55" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="91" G="72" B="51" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="76" G="79" B="63" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="77" G="82" B="59" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="35" G="45" B="113" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="77" G="82" B="59" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="73" G="94" B="43" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="90" G="77" B="45" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="88" G="89" B="24" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="79" G="95" B="31" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="92" G="80" B="35" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="80" G="167" B="214" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="80" G="167" B="214" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="84" G="191" B="187" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="67" G="153" B="223" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="83" G="163" B="234" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="74" G="157" B="229" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="48" G="142" B="228" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="88" G="165" B="0" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="85" G="175" B="207" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="85" G="175" B="207" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="61" G="150" B="221" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="99" G="190" B="211" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="88" G="190" B="193" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="95" G="191" B="201" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="111" G="203" B="224" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="83" G="203" B="176" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="76" G="167" B="208" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="76" G="167" B="208" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="102" G="191" B="218" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="60" G="163" B="195" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="62" G="153" B="215" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="61" G="157" B="205" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="44" G="165" B="180" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="48" G="142" B="228" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="85" G="172" B="214" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="85" G="172" B="214" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="59" G="166" B="189" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="91" G="170" B="234" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="88" G="165" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="111" G="203" B="224" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="79" G="172" B="203" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="79" G="172" B="203" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="88" G="166" B="239" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="80" G="185" B="188" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="64" G="170" B="189" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="70" G="176" B="186" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="83" G="203" B="176" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="44" G="165" B="180" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="252" G="167" B="90" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="252" G="167" B="90" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="18" G="191" B="108" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="251" G="153" B="74" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="233" G="163" B="83" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="242" G="157" B="78" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="142" B="55" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="212" G="165" B="76" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="175" B="98" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="175" B="98" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="150" B="70" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="245" G="190" B="108" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="11" G="190" B="108" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="191" B="109" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="228" G="203" B="112" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="28" G="203" B="112" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="238" G="191" B="108" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="23" G="163" B="83" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="5" G="153" B="74" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="14" G="157" B="78" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="44" G="165" B="76" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="142" B="55" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="250" G="172" B="95" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="250" G="172" B="95" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="29" G="166" B="85" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="230" G="170" B="90" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="237" G="185" B="104" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="231" G="176" B="96" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="212" G="165" B="76" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="228" G="203" B="112" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="6" G="172" B="95" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="6" G="172" B="95" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="227" G="166" B="85" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="19" G="185" B="104" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="26" G="170" B="90" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="25" G="176" B="96" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="28" G="203" B="112" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="44" G="165" B="76" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="180" G="167" B="208" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="180" G="167" B="208" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="154" G="191" B="218" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="194" G="153" B="215" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="208" G="142" B="228" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="212" G="165" B="180" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="171" G="175" B="207" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="171" G="175" B="207" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="195" G="150" B="221" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="168" G="190" B="193" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="157" G="190" B="211" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="161" G="191" B="201" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="173" G="203" B="176" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="145" G="203" B="224" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="176" G="167" B="214" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="176" G="167" B="214" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="172" G="191" B="187" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="173" G="163" B="234" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="189" G="153" B="223" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="182" G="157" B="229" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="168" G="165" B="0" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="208" G="142" B="228" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="177" G="172" B="203" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="177" G="172" B="203" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="168" G="166" B="239" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="192" G="170" B="189" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="176" G="185" B="188" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="186" G="176" B="186" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="212" G="165" B="180" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="173" G="203" B="176" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="171" G="172" B="214" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="197" G="166" B="189" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="165" G="170" B="234" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="161" G="176" B="230" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="145" G="203" B="224" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="168" G="165" B="0" A="255"/>
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="176" G="89" B="42" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="172" G="65" B="69" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="176" G="89" B="42" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="189" G="103" B="33" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="173" G="93" B="22" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="182" G="99" B="27" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="168" G="91" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="208" G="114" B="28" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="171" G="81" B="49" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="195" G="106" B="35" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="171" G="81" B="49" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="157" G="66" B="45" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="168" G="66" B="63" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="161" G="65" B="55" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="173" G="53" B="80" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="145" G="53" B="32" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="180" G="89" B="48" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="154" G="65" B="38" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="180" G="89" B="48" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="196" G="93" B="61" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="194" G="103" B="41" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="195" G="99" B="51" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="208" G="114" B="28" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="212" G="91" B="76" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="171" G="84" B="42" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="197" G="90" B="67" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="171" G="84" B="42" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="165" G="86" B="22" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="157" G="71" B="35" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="161" G="80" B="26" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="145" G="53" B="32" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="168" G="91" B="0" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="177" G="84" B="53" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="168" G="90" B="17" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="177" G="84" B="53" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="176" G="71" B="68" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="192" G="86" B="67" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="186" G="80" B="70" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="212" G="91" B="76" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="173" G="53" B="80" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="4" G="89" B="166" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="238" G="65" B="148" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="4" G="89" B="166" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="5" G="103" B="182" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="23" G="93" B="173" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="14" G="99" B="178" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="44" G="91" B="180" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="114" B="201" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="81" B="158" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="106" B="186" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="81" B="158" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="228" G="53" B="144" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="252" G="89" B="166" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="18" G="65" B="148" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="252" G="89" B="166" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="233" G="93" B="173" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="251" G="103" B="182" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="242" G="99" B="178" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="114" B="201" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="212" G="91" B="180" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="6" G="84" B="161" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="227" G="90" B="171" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="6" G="84" B="161" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="26" G="86" B="166" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="19" G="71" B="152" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="25" G="80" B="160" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="44" G="91" B="180" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="250" G="84" B="161" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="29" G="90" B="171" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="250" G="84" B="161" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="237" G="71" B="152" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="230" G="86" B="166" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="231" G="80" B="160" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="212" G="91" B="180" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="228" G="53" B="144" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="76" G="89" B="48" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="102" G="65" B="38" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="76" G="89" B="48" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="62" G="103" B="41" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="60" G="93" B="61" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="61" G="99" B="51" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="44" G="91" B="76" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="48" G="114" B="28" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="85" G="81" B="49" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="61" G="106" B="35" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="85" G="81" B="49" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="88" G="66" B="63" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="99" G="66" B="45" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="95" G="65" B="55" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="111" G="53" B="32" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="83" G="53" B="80" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="80" G="89" B="42" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="84" G="65" B="69" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="80" G="89" B="42" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="83" G="93" B="22" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="67" G="103" B="33" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="74" G="99" B="27" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="48" G="114" B="28" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="88" G="91" B="0" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="79" G="84" B="53" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="88" G="90" B="17" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="79" G="84" B="53" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="80" G="71" B="68" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="83" G="53" B="80" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="44" G="91" B="76" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="85" G="84" B="42" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="59" G="90" B="67" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="85" G="84" B="42" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="99" G="71" B="35" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="91" G="86" B="22" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="95" G="80" B="26" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="88" G="91" B="0" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="111" G="53" B="32" A="255"/>
</Vertex>

View file

@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="-107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
</Vertex>

View file

@ -0,0 +1,10 @@
<DisplayList Version="0">
<ClearGeometryMode G_LIGHTING="1" />
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushJunkDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<SetGeometryMode G_LIGHTING="1" />
<CullDisplayList Start="0" End="7"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushJunkDL_f3dlite_shrubbery"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushJunkDL_tri_0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,8 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="14"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="0" V01="5" V02="6" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="11" Flag0="0" V10="7" V11="12" V12="13" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,16 @@
<Vertex Version="0">
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="129" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="127" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="110" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="110" G="0" B="64" A="255"/>
</Vertex>

View file

@ -0,0 +1,10 @@
<Vertex Version="0">
<Vtx X="-107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="-107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="0" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="93" S="0" T="0" R="0" G="0" B="0" A="0"/>
<Vtx X="107" Y="98" Z="-93" S="0" T="0" R="0" G="0" B="0" A="0"/>
</Vertex>

View file

@ -0,0 +1,14 @@
<DisplayList Version="0">
<ClearGeometryMode G_LIGHTING="1" />
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_cull" VertexBufferIndex="0" VertexOffset="0" Count="8"/>
<SetGeometryMode G_LIGHTING="1" />
<CullDisplayList Start="0" End="7"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMajorDL_f3dlite_shrubbery"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMajorDL_tri_0"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMajorDL_f3dlite_leaf"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMajorDL_tri_1"/>
<CallDisplayList Path="objects/gameplay_field_keep/mat_gFieldBushMajorDL_f3dlite_flower_gold"/>
<CallDisplayList Path="objects/gameplay_field_keep/gFieldBushMajorDL_tri_2"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,8 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="14"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="0" V01="5" V02="6" Flag0="0" V10="7" V11="8" V12="9" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="11" Flag0="0" V10="7" V11="12" V12="13" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,134 @@
<DisplayList Version="0">
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="1" Flag0="0" V10="5" V11="4" V12="3" Flag1="0"/>
<Triangles2 V00="3" V01="6" V02="5" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="5" V11="8" V12="4" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="10" V12="9" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="10" Flag0="0" V10="14" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="12" V01="15" V02="14" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="14" V11="16" V12="13" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="18" V12="17" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="18" Flag0="0" V10="22" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="20" V01="23" V02="22" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="22" V11="24" V12="21" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="26" V12="25" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="26" Flag0="0" V10="30" V11="29" V12="28" Flag1="0"/>
<Triangles2 V00="28" V01="31" V02="30" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" 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="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="20" V02="17" Flag0="0" V10="17" V11="20" V12="16" Flag1="0"/>
<Triangles2 V00="21" V01="22" V02="23" Flag0="0" V10="24" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="26" V11="25" V12="24" Flag1="0"/>
<Triangles2 V00="24" V01="27" V02="26" Flag0="0" V10="19" V11="26" V12="27" Flag1="0"/>
<Triangles2 V00="19" V01="28" V02="26" Flag0="0" V10="26" V11="28" V12="25" Flag1="0"/>
<Triangle1 V00="29" V01="30" V02="31"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="64" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="0" V11="3" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="3" V02="0" Flag0="0" V10="0" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="4" V02="5" Flag0="0" V10="6" V11="7" V12="4" Flag1="0"/>
<Triangles2 V00="4" V01="7" V02="3" Flag0="0" V10="8" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="9" V02="8" Flag0="0" V10="11" V11="12" V12="9" Flag1="0"/>
<Triangles2 V00="13" V01="12" V02="11" Flag0="0" V10="11" V11="14" V12="13" Flag1="0"/>
<Triangles2 V00="6" V01="13" V02="14" Flag0="0" V10="6" V11="15" V12="13" Flag1="0"/>
<Triangles2 V00="13" V01="15" V02="12" Flag0="0" V10="16" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="17" V02="16" Flag0="0" V10="19" V11="20" V12="17" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="19" Flag0="0" V10="19" V11="22" V12="21" Flag1="0"/>
<Triangles2 V00="6" V01="21" V02="22" Flag0="0" V10="6" V11="23" V12="21" Flag1="0"/>
<Triangles2 V00="21" V01="23" V02="20" Flag0="0" V10="24" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="25" V02="24" Flag0="0" V10="27" V11="28" V12="25" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="27" Flag0="0" V10="27" V11="30" V12="29" Flag1="0"/>
<Triangle1 V00="31" V01="29" V02="30"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="96" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="2" V11="1" V12="3" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="5" V12="4" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="9" V11="8" V12="7" Flag1="0"/>
<Triangles2 V00="7" V01="10" V02="9" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="9" V11="11" V12="8" Flag1="0"/>
<Triangles2 V00="12" V01="13" V02="14" Flag0="0" V10="15" V11="13" V12="12" Flag1="0"/>
<Triangles2 V00="15" V01="16" V02="13" Flag0="0" V10="17" V11="16" V12="15" Flag1="0"/>
<Triangles2 V00="15" V01="18" V02="17" Flag0="0" V10="0" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="0" V01="19" V02="17" Flag0="0" V10="17" V11="19" V12="16" Flag1="0"/>
<Triangles2 V00="20" V01="21" V02="22" Flag0="0" V10="23" V11="21" V12="20" Flag1="0"/>
<Triangles2 V00="23" V01="24" V02="21" Flag0="0" V10="25" V11="24" V12="23" Flag1="0"/>
<Triangles2 V00="23" V01="26" V02="25" Flag0="0" V10="0" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="0" V01="27" V02="25" Flag0="0" V10="25" V11="27" V12="24" Flag1="0"/>
<Triangles2 V00="28" V01="29" V02="30" Flag0="0" V10="31" V11="29" V12="28" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="128" Count="32"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="1" V12="0" Flag1="0"/>
<Triangles2 V00="0" V01="4" V02="3" Flag0="0" V10="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="6" V02="3" Flag0="0" V10="3" V11="6" V12="1" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="9" Flag0="0" V10="10" V11="7" V12="9" Flag1="0"/>
<Triangles2 V00="10" V01="9" V02="11" Flag0="0" V10="12" V11="10" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="12" Flag0="0" V10="10" V11="12" V12="15" Flag1="0"/>
<Triangles2 V00="16" V01="17" V02="18" Flag0="0" V10="19" V11="16" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="21" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="21" V01="20" V02="22" Flag0="0" V10="14" V11="21" V12="22" Flag1="0"/>
<Triangles2 V00="14" V01="23" V02="21" Flag0="0" V10="19" V11="21" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="26" Flag0="0" V10="27" V11="24" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="29" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="14" V11="29" V12="30" Flag1="0"/>
<Triangles2 V00="14" V01="31" V02="29" Flag0="0" V10="27" V11="29" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="160" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="24" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="24" V01="25" V02="22" Flag0="0" V10="20" V11="22" V12="25" Flag1="0"/>
<Triangles2 V00="26" V01="27" V02="28" Flag0="0" V10="29" V11="26" V12="28" Flag1="0"/>
<Triangles2 V00="29" V01="28" V02="30" Flag0="0" V10="31" V11="29" V12="30" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="192" Count="30"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="0" V12="2" Flag1="0"/>
<Triangles2 V00="3" V01="4" V02="0" Flag0="0" V10="5" V11="0" V12="4" Flag1="0"/>
<Triangles2 V00="6" V01="7" V02="8" Flag0="0" V10="9" V11="6" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="11" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="11" V01="10" V02="12" Flag0="0" V10="3" V11="11" V12="12" Flag1="0"/>
<Triangles2 V00="3" V01="13" V02="11" Flag0="0" V10="9" V11="11" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="15" V02="16" Flag0="0" V10="17" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="16" V02="18" Flag0="0" V10="19" V11="17" V12="18" Flag1="0"/>
<Triangles2 V00="19" V01="18" V02="20" Flag0="0" V10="3" V11="19" V12="20" Flag1="0"/>
<Triangles2 V00="3" V01="21" V02="19" Flag0="0" V10="17" V11="19" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="23" V02="24" Flag0="0" V10="25" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="24" V02="26" Flag0="0" V10="27" V11="25" V12="26" Flag1="0"/>
<Triangles2 V00="27" V01="26" V02="28" Flag0="0" V10="3" V11="27" V12="28" Flag1="0"/>
<Triangles2 V00="3" V01="29" V02="27" Flag0="0" V10="25" V11="27" V12="29" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="222" Count="32"/>
<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="5" V11="3" V12="4" Flag1="0"/>
<Triangles2 V00="5" V01="4" V02="6" Flag0="0" V10="7" V11="5" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="8" V02="5" Flag0="0" V10="3" V11="5" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="10" V02="11" Flag0="0" V10="12" V11="9" V12="11" Flag1="0"/>
<Triangles2 V00="12" V01="11" V02="13" Flag0="0" V10="14" V11="12" V12="13" Flag1="0"/>
<Triangles2 V00="14" V01="13" V02="15" Flag0="0" V10="7" V11="14" V12="15" Flag1="0"/>
<Triangles2 V00="7" V01="16" V02="14" Flag0="0" V10="12" V11="14" V12="16" Flag1="0"/>
<Triangles2 V00="17" V01="18" V02="19" Flag0="0" V10="20" V11="17" V12="19" Flag1="0"/>
<Triangles2 V00="20" V01="19" V02="21" Flag0="0" V10="22" V11="20" V12="21" Flag1="0"/>
<Triangles2 V00="22" V01="21" V02="23" Flag0="0" V10="7" V11="22" V12="23" Flag1="0"/>
<Triangles2 V00="7" V01="24" V02="22" Flag0="0" V10="20" V11="22" V12="24" Flag1="0"/>
<Triangles2 V00="25" V01="26" V02="27" Flag0="0" V10="28" V11="25" V12="27" Flag1="0"/>
<Triangles2 V00="28" V01="27" V02="29" Flag0="0" V10="30" V11="28" V12="29" Flag1="0"/>
<Triangles2 V00="30" V01="29" V02="31" Flag0="0" V10="7" V11="30" V12="31" Flag1="0"/>
<LoadVertices Path="objects/gameplay_field_keep/gFieldBushMajorDL_vtx_2" VertexBufferIndex="0" VertexOffset="254" Count="12"/>
<Triangles2 V00="0" V01="1" V02="2" Flag0="0" V10="3" V11="2" V12="1" Flag1="0"/>
<Triangles2 V00="4" V01="5" V02="6" Flag0="0" V10="7" V11="4" V12="6" Flag1="0"/>
<Triangles2 V00="7" V01="6" V02="8" Flag0="0" V10="9" V11="7" V12="8" Flag1="0"/>
<Triangles2 V00="9" V01="8" V02="10" Flag0="0" V10="0" V11="9" V12="10" Flag1="0"/>
<Triangles2 V00="0" V01="11" V02="9" Flag0="0" V10="7" V11="9" V12="11" Flag1="0"/>
<EndDisplayList/>
</DisplayList>

View file

@ -0,0 +1,16 @@
<Vertex Version="0">
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="129" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="110" G="0" B="192" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="127" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="146" G="0" B="192" A="255"/>
<Vtx X="0" Y="98" Z="0" S="558" T="-664" R="0" G="0" B="127" A="255"/>
<Vtx X="-54" Y="0" Z="-93" S="1398" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="93" S="-281" T="1008" R="146" G="0" B="64" A="255"/>
<Vtx X="107" Y="0" Z="0" S="1398" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-107" Y="0" Z="0" S="-281" T="1008" R="0" G="0" B="129" A="255"/>
<Vtx X="-54" Y="0" Z="93" S="1398" T="1008" R="110" G="0" B="64" A="255"/>
<Vtx X="54" Y="0" Z="-93" S="-281" T="1008" R="110" G="0" B="64" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="77" G="174" B="197" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="77" G="174" B="197" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="35" G="211" B="143" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="90" G="179" B="211" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="73" G="161" B="213" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="87" G="167" B="230" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="77" G="160" B="224" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="93" G="177" B="221" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="78" G="163" B="220" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="78" G="163" B="220" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="45" G="142" B="31" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="72" G="167" B="201" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="90" G="178" B="213" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="84" G="186" B="191" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="90" G="184" B="203" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="76" G="176" B="194" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="89" G="181" B="205" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="89" G="181" B="205" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="110" G="255" B="193" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="85" G="169" B="221" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="73" G="169" B="199" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="67" G="156" B="216" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="66" G="161" B="204" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="77" G="160" B="224" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="70" G="163" B="206" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="70" G="163" B="206" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="252" G="142" B="201" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="82" G="178" B="199" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="93" G="177" B="221" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="81" G="171" B="209" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="90" G="184" B="203" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="98" G="186" B="214" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="84" G="167" B="221" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="90" G="174" B="219" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="90" G="174" B="219" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="116" G="211" B="26" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="74" G="162" B="214" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="84" G="179" B="200" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="65" G="167" B="192" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="76" G="176" B="194" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="66" G="161" B="204" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="13" G="174" B="96" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="13" G="174" B="96" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="81" G="211" B="87" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="250" G="179" B="101" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="1" G="161" B="85" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="235" G="167" B="88" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="245" G="160" B="82" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="239" G="177" B="98" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="248" G="163" B="86" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="206" G="142" B="24" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="11" G="167" B="90" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="248" G="178" B="100" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="14" G="187" B="105" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="1" G="184" B="104" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="16" G="176" B="97" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="255" B="127" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="244" G="169" B="91" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="181" B="102" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="181" B="102" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="12" G="169" B="92" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="1" G="156" B="78" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="12" G="161" B="84" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="245" G="160" B="82" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="8" G="163" B="86" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="8" G="163" B="86" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="50" G="142" B="24" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="8" G="178" B="100" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="245" G="167" B="90" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="243" G="186" B="105" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="239" G="177" B="98" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="1" G="184" B="104" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="243" G="174" B="96" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="243" G="174" B="96" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="175" G="211" B="87" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="255" G="162" B="85" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="6" G="179" B="101" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="23" G="167" B="88" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="16" G="176" B="97" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="12" G="161" B="84" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="166" G="174" B="219" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="166" G="174" B="219" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="140" G="211" B="26" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="172" G="179" B="200" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="190" G="160" B="205" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="180" G="177" B="193" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="190" G="167" B="194" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="182" G="161" B="215" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="186" G="163" B="206" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="186" G="163" B="206" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="4" G="142" B="201" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="172" G="167" B="221" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="174" G="178" B="199" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="158" G="187" B="216" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="165" G="184" B="205" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="164" G="176" B="221" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="167" G="181" B="205" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="167" G="181" B="205" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="146" G="255" B="193" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="183" G="169" B="200" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="170" G="169" B="221" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="188" G="156" B="218" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="177" G="161" B="225" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="190" G="160" B="205" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="178" G="163" B="220" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="178" G="163" B="220" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="211" G="142" B="31" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="166" G="178" B="214" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="184" G="167" B="201" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="171" G="186" B="192" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="180" G="177" B="193" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="165" G="184" B="205" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="179" G="174" B="197" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="221" G="211" B="143" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="183" G="162" B="213" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="166" G="179" B="211" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="179" G="174" B="197" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="168" G="167" B="232" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="164" G="176" B="221" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="177" G="161" B="225" A="255"/>
<Vtx X="-25" Y="44" Z="36" S="304" T="432" R="179" G="82" B="59" A="255"/>
<Vtx X="-20" Y="43" Z="38" S="496" T="496" R="221" G="45" B="113" A="255"/>
<Vtx X="-22" Y="48" Z="36" S="432" T="304" R="179" G="82" B="59" A="255"/>
<Vtx X="-28" Y="43" Z="29" S="112" T="304" R="166" G="77" B="45" A="255"/>
<Vtx X="-21" Y="50" Z="29" S="304" T="112" R="183" G="95" B="43" A="255"/>
<Vtx X="-27" Y="49" Z="25" S="112" T="112" R="169" G="89" B="26" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="176" T="-16" R="163" G="79" B="35" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="-16" T="176" R="179" G="96" B="32" A="255"/>
<Vtx X="-24" Y="63" Z="4" S="304" T="432" R="178" G="93" B="36" A="255"/>
<Vtx X="-23" Y="62" Z="-1" S="496" T="496" R="211" G="114" B="225" A="255"/>
<Vtx X="-28" Y="61" Z="2" S="432" T="304" R="178" G="93" B="36" A="255"/>
<Vtx X="-22" Y="59" Z="10" S="112" T="304" R="184" G="89" B="55" A="255"/>
<Vtx X="-30" Y="55" Z="5" S="304" T="112" R="166" G="78" B="43" A="255"/>
<Vtx X="-28" Y="55" Z="13" S="112" T="112" R="172" G="70" B="65" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="176" T="-16" R="180" G="80" B="62" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="-16" T="176" R="166" G="72" B="53" A="255"/>
<Vtx X="-42" Y="37" Z="22" S="304" T="432" R="167" G="75" B="51" A="255"/>
<Vtx X="-40" Y="32" Z="25" S="496" T="496" R="146" G="1" B="63" A="255"/>
<Vtx X="-39" Y="37" Z="27" S="432" T="304" R="167" G="75" B="51" A="255"/>
<Vtx X="-38" Y="40" Z="17" S="112" T="304" R="171" G="87" B="35" A="255"/>
<Vtx X="-33" Y="40" Z="26" S="304" T="112" R="183" G="87" B="57" A="255"/>
<Vtx X="-33" Y="46" Z="21" S="112" T="112" R="189" G="100" B="40" A="255"/>
<Vtx X="-29" Y="46" Z="22" S="176" T="-16" R="179" G="96" B="32" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="-16" T="176" R="190" G="95" B="52" A="255"/>
<Vtx X="-14" Y="61" Z="25" S="304" T="432" R="186" G="93" B="50" A="255"/>
<Vtx X="-9" Y="62" Z="22" S="496" T="496" R="4" G="114" B="55" A="255"/>
<Vtx X="-15" Y="63" Z="20" S="432" T="304" R="186" G="93" B="50" A="255"/>
<Vtx X="-18" Y="55" Z="25" S="112" T="304" R="174" G="78" B="57" A="255"/>
<Vtx X="-19" Y="59" Z="16" S="304" T="112" R="172" G="89" B="35" A="255"/>
<Vtx X="-24" Y="55" Z="20" S="112" T="112" R="158" G="70" B="42" A="255"/>
<Vtx X="-24" Y="54" Z="15" S="176" T="-16" R="166" G="72" B="53" A="255"/>
<Vtx X="-26" Y="48" Z="16" S="-16" T="-16" R="175" G="85" B="47" A="255"/>
<Vtx X="-24" Y="51" Z="22" S="-16" T="176" R="163" G="79" B="35" A="255"/>
<Vtx X="-41" Y="48" Z="3" S="304" T="432" R="166" G="82" B="37" A="255"/>
<Vtx X="-42" Y="43" Z="0" S="496" T="496" R="140" G="45" B="230" A="255"/>
<Vtx X="-43" Y="44" Z="6" S="432" T="304" R="166" G="82" B="37" A="255"/>
<Vtx X="-34" Y="50" Z="6" S="112" T="304" R="182" G="94" B="42" A="255"/>
<Vtx X="-38" Y="43" Z="11" S="304" T="112" R="172" G="77" B="56" A="255"/>
<Vtx X="-34" Y="49" Z="14" S="112" T="112" R="191" G="89" B="64" A="255"/>
<Vtx X="-33" Y="46" Z="16" S="176" T="-16" R="190" G="95" B="52" A="255"/>
<Vtx X="-30" Y="51" Z="12" S="-16" T="176" R="180" G="80" B="62" A="255"/>
<Vtx X="-18" Y="44" Z="-40" S="304" T="432" R="243" G="82" B="160" A="255"/>
<Vtx X="-23" Y="43" Z="-37" S="496" T="496" R="175" G="45" B="169" A="255"/>
<Vtx X="-20" Y="48" Z="-37" S="432" T="304" R="243" G="82" B="160" A="255"/>
<Vtx X="-11" Y="43" Z="-39" S="112" T="304" R="6" G="77" B="155" A="255"/>
<Vtx X="-14" Y="50" Z="-33" S="304" T="112" R="255" G="95" B="171" A="255"/>
<Vtx X="-8" Y="49" Z="-36" S="112" T="112" R="21" G="89" B="168" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="176" T="-16" R="17" G="79" B="158" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="-16" T="176" R="11" G="96" B="174" A="255"/>
<Vtx X="8" Y="63" Z="-23" S="304" T="432" R="8" G="93" B="170" A="255"/>
<Vtx X="12" Y="62" Z="-19" S="496" T="496" R="50" G="114" B="232" A="255"/>
<Vtx X="12" Y="61" Z="-25" S="432" T="304" R="8" G="93" B="170" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="3" Y="55" Z="-31" S="112" T="112" R="242" G="69" B="151" A="255"/>
<Vtx X="10" Y="55" Z="-28" S="304" T="112" R="8" G="78" B="156" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="176" T="-16" R="240" G="80" B="159" A="255"/>
<Vtx X="-1" Y="48" Z="-31" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="-16" T="176" R="255" G="72" B="152" A="255"/>
<Vtx X="2" Y="59" Z="-24" S="112" T="304" R="245" G="89" B="166" A="255"/>
<Vtx X="2" Y="37" Z="-47" S="304" T="432" R="0" G="75" B="154" A="255"/>
<Vtx X="-1" Y="32" Z="-47" S="496" T="496" R="0" G="1" B="129" A="255"/>
<Vtx X="-4" Y="37" Z="-47" S="432" T="304" R="0" G="75" B="154" A="255"/>
<Vtx X="4" Y="40" Z="-42" S="112" T="304" R="12" G="87" B="165" A="255"/>
<Vtx X="-6" Y="40" Z="-42" S="304" T="112" R="244" G="87" B="164" A="255"/>
<Vtx X="-1" Y="46" Z="-39" S="112" T="112" R="255" G="100" B="178" A="255"/>
<Vtx X="-5" Y="46" Z="-37" S="176" T="-16" R="11" G="96" B="174" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="-16" T="176" R="244" G="95" B="172" A="255"/>
<Vtx X="-15" Y="61" Z="-25" S="304" T="432" R="248" G="93" B="170" A="255"/>
<Vtx X="-15" Y="62" Z="-19" S="496" T="496" R="206" G="114" B="232" A="255"/>
<Vtx X="-10" Y="63" Z="-23" S="432" T="304" R="248" G="93" B="170" A="255"/>
<Vtx X="-12" Y="55" Z="-28" S="112" T="304" R="248" G="78" B="156" A="255"/>
<Vtx X="-4" Y="59" Z="-24" S="304" T="112" R="11" G="89" B="166" A="255"/>
<Vtx X="-5" Y="55" Z="-31" S="112" T="112" R="13" G="70" B="151" A="255"/>
<Vtx X="-1" Y="54" Z="-29" S="176" T="-16" R="255" G="72" B="152" A="255"/>
<Vtx X="-7" Y="51" Z="-32" S="-16" T="176" R="17" G="79" B="158" A="255"/>
<Vtx X="18" Y="48" Z="-37" S="304" T="432" R="13" G="82" B="160" A="255"/>
<Vtx X="21" Y="43" Z="-37" S="496" T="496" R="81" G="45" B="169" A="255"/>
<Vtx X="16" Y="44" Z="-40" S="432" T="304" R="13" G="82" B="160" A="255"/>
<Vtx X="12" Y="50" Z="-33" S="112" T="304" R="1" G="94" B="171" A="255"/>
<Vtx X="9" Y="43" Z="-39" S="304" T="112" R="250" G="77" B="155" A="255"/>
<Vtx X="5" Y="49" Z="-36" S="112" T="112" R="233" G="89" B="168" A="255"/>
<Vtx X="3" Y="46" Z="-37" S="176" T="-16" R="244" G="95" B="172" A="255"/>
<Vtx X="5" Y="51" Z="-32" S="-16" T="176" R="240" G="80" B="159" A="255"/>
<Vtx X="44" Y="44" Z="4" S="304" T="432" R="90" G="82" B="37" A="255"/>
<Vtx X="43" Y="43" Z="-2" S="496" T="496" R="116" G="45" B="230" A="255"/>
<Vtx X="42" Y="48" Z="1" S="432" T="304" R="90" G="82" B="37" A="255"/>
<Vtx X="39" Y="43" Z="10" S="112" T="304" R="84" G="77" B="56" A="255"/>
<Vtx X="35" Y="50" Z="4" S="304" T="112" R="74" G="95" B="41" A="255"/>
<Vtx X="35" Y="49" Z="11" S="112" T="112" R="66" G="89" B="62" A="255"/>
<Vtx X="31" Y="51" Z="10" S="176" T="-16" R="76" G="79" B="63" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="34" Y="46" Z="14" S="-16" T="176" R="66" G="96" B="51" A="255"/>
<Vtx X="16" Y="63" Z="18" S="304" T="432" R="70" G="93" B="50" A="255"/>
<Vtx X="11" Y="62" Z="20" S="496" T="496" R="252" G="114" B="55" A="255"/>
<Vtx X="15" Y="61" Z="23" S="432" T="304" R="70" G="93" B="50" A="255"/>
<Vtx X="20" Y="59" Z="14" S="112" T="304" R="84" G="89" B="35" A="255"/>
<Vtx X="19" Y="55" Z="23" S="304" T="112" R="82" G="78" B="57" A="255"/>
<Vtx X="25" Y="55" Z="18" S="112" T="112" R="98" G="69" B="40" A="255"/>
<Vtx X="25" Y="51" Z="20" S="176" T="-16" R="92" G="80" B="35" A="255"/>
<Vtx X="26" Y="54" Z="14" S="-16" T="176" R="91" G="72" B="51" A="255"/>
<Vtx X="40" Y="37" Z="25" S="304" T="432" R="89" G="75" B="51" A="255"/>
<Vtx X="41" Y="32" Z="23" S="496" T="496" R="110" G="1" B="63" A="255"/>
<Vtx X="43" Y="37" Z="20" S="432" T="304" R="89" G="75" B="51" A="255"/>
<Vtx X="34" Y="40" Z="24" S="112" T="304" R="73" G="87" B="56" A="255"/>
<Vtx X="39" Y="40" Z="15" S="304" T="112" R="86" G="87" B="35" A="255"/>
<Vtx X="34" Y="46" Z="19" S="112" T="112" R="68" G="100" B="38" A="255"/>
<Vtx X="34" Y="46" Z="14" S="176" T="-16" R="66" G="96" B="51" A="255"/>
<Vtx X="30" Y="46" Z="20" S="-16" T="176" R="79" G="95" B="31" A="255"/>
<Vtx X="29" Y="61" Z="0" S="304" T="432" R="78" G="93" B="36" A="255"/>
<Vtx X="24" Y="62" Z="-3" S="496" T="496" R="45" G="114" B="225" A="255"/>
<Vtx X="25" Y="63" Z="3" S="432" T="304" R="78" G="93" B="36" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="59" Z="8" S="304" T="112" R="72" G="89" B="55" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="26" Y="54" Z="14" S="176" T="-16" R="91" G="72" B="51" A="255"/>
<Vtx X="27" Y="48" Z="14" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="31" Y="51" Z="10" S="-16" T="176" R="76" G="79" B="63" A="255"/>
<Vtx X="29" Y="55" Z="11" S="112" T="112" R="85" G="70" B="64" A="255"/>
<Vtx X="31" Y="55" Z="3" S="112" T="304" R="90" G="78" B="42" A="255"/>
<Vtx X="23" Y="48" Z="34" S="304" T="432" R="77" G="82" B="59" A="255"/>
<Vtx X="21" Y="43" Z="36" S="496" T="496" R="35" G="45" B="113" A="255"/>
<Vtx X="27" Y="44" Z="34" S="432" T="304" R="77" G="82" B="59" A="255"/>
<Vtx X="22" Y="50" Z="27" S="112" T="304" R="73" G="94" B="43" A="255"/>
<Vtx X="29" Y="43" Z="27" S="304" T="112" R="90" G="77" B="45" A="255"/>
<Vtx X="29" Y="49" Z="22" S="112" T="112" R="88" G="89" B="24" A="255"/>
<Vtx X="30" Y="46" Z="20" S="176" T="-16" R="79" G="95" B="31" A="255"/>
<Vtx X="25" Y="51" Z="20" S="-16" T="176" R="92" G="80" B="35" A="255"/>
</Vertex>

View file

@ -0,0 +1,268 @@
<Vertex Version="0">
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="80" G="167" B="214" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="80" G="167" B="214" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="84" G="191" B="187" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="67" G="153" B="223" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="83" G="163" B="234" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="74" G="157" B="229" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="48" G="142" B="228" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="88" G="165" B="0" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="85" G="175" B="207" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="85" G="175" B="207" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="61" G="150" B="221" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="99" G="190" B="211" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="88" G="190" B="193" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="95" G="191" B="201" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="111" G="203" B="224" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="83" G="203" B="176" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="76" G="167" B="208" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="76" G="167" B="208" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="102" G="191" B="218" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="60" G="163" B="195" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="62" G="153" B="215" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="61" G="157" B="205" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="44" G="165" B="180" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="48" G="142" B="228" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="85" G="172" B="214" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="85" G="172" B="214" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="59" G="166" B="189" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="91" G="170" B="234" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="88" G="165" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="82" G="171" B="209" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="111" G="203" B="224" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="95" G="176" B="230" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="99" G="185" B="221" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="79" G="172" B="203" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="79" G="172" B="203" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="88" G="166" B="239" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="80" G="185" B="188" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="64" G="170" B="189" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="70" G="176" B="186" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="83" G="203" B="176" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="44" G="165" B="180" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="252" G="167" B="90" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="252" G="167" B="90" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="18" G="191" B="108" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="251" G="153" B="74" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="233" G="163" B="83" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="242" G="157" B="78" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="142" B="55" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="212" G="165" B="76" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="175" B="98" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="175" B="98" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="150" B="70" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="245" G="190" B="108" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="11" G="190" B="108" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="191" B="109" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="228" G="203" B="112" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="28" G="203" B="112" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="238" G="191" B="108" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="23" G="163" B="83" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="4" G="167" B="90" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="4" G="167" B="90" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="5" G="153" B="74" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="14" G="157" B="78" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="44" G="165" B="76" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="171" B="94" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="142" B="55" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="250" G="172" B="95" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="250" G="172" B="95" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="29" G="166" B="85" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="230" G="170" B="90" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="237" G="185" B="104" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="231" G="176" B="96" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="212" G="165" B="76" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="228" G="203" B="112" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="6" G="172" B="95" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="6" G="172" B="95" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="227" G="166" B="85" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="19" G="185" B="104" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="26" G="170" B="90" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="25" G="176" B="96" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="28" G="203" B="112" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="44" G="165" B="76" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="180" G="167" B="208" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="180" G="167" B="208" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="154" G="191" B="218" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="194" G="153" B="215" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="208" G="142" B="228" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="212" G="165" B="180" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="195" G="157" B="205" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="196" G="163" B="195" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="171" G="175" B="207" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="171" G="175" B="207" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="195" G="150" B="221" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="168" G="190" B="193" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="157" G="190" B="211" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="161" G="191" B="201" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="173" G="203" B="176" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="145" G="203" B="224" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="176" G="167" B="214" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="176" G="167" B="214" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="172" G="191" B="187" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="173" G="163" B="234" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="189" G="153" B="223" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="182" G="157" B="229" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="168" G="165" B="0" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="208" G="142" B="228" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="177" G="172" B="203" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="177" G="172" B="203" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="168" G="166" B="239" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="192" G="170" B="189" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="176" G="185" B="188" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="186" G="176" B="186" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="212" G="165" B="180" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="173" G="203" B="176" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="171" G="172" B="214" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="197" G="166" B="189" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="157" G="185" B="221" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="165" G="170" B="234" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="171" G="172" B="214" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="161" G="176" B="230" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="145" G="203" B="224" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="174" G="171" B="209" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="168" G="165" B="0" A="255"/>
<Vtx X="-38" Y="39" Z="35" S="304" T="432" R="176" G="89" B="42" A="255"/>
<Vtx X="-36" Y="33" Z="43" S="496" T="496" R="172" G="65" B="69" A="255"/>
<Vtx X="-33" Y="42" Z="38" S="432" T="304" R="176" G="89" B="42" A="255"/>
<Vtx X="-37" Y="42" Z="25" S="112" T="304" R="189" G="103" B="33" A="255"/>
<Vtx X="-28" Y="47" Z="32" S="304" T="112" R="173" G="93" B="22" A="255"/>
<Vtx X="-30" Y="46" Z="23" S="112" T="112" R="182" G="99" B="27" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="176" T="-16" R="168" G="91" B="0" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="-16" T="176" R="208" G="114" B="28" A="255"/>
<Vtx X="-17" Y="69" Z="15" S="304" T="432" R="171" G="81" B="49" A="255"/>
<Vtx X="-12" Y="75" Z="8" S="496" T="496" R="195" G="106" B="35" A="255"/>
<Vtx X="-20" Y="69" Z="9" S="432" T="304" R="171" G="81" B="49" A="255"/>
<Vtx X="-20" Y="61" Z="20" S="112" T="304" R="157" G="66" B="45" A="255"/>
<Vtx X="-26" Y="61" Z="9" S="304" T="112" R="168" G="66" B="63" A="255"/>
<Vtx X="-25" Y="55" Z="16" S="112" T="112" R="161" G="65" B="55" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="176" T="-16" R="173" G="53" B="80" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="-16" T="176" R="145" G="53" B="32" A="255"/>
<Vtx X="-48" Y="42" Z="12" S="304" T="432" R="180" G="89" B="48" A="255"/>
<Vtx X="-54" Y="33" Z="11" S="496" T="496" R="154" G="65" B="38" A="255"/>
<Vtx X="-48" Y="39" Z="17" S="432" T="304" R="180" G="89" B="48" A="255"/>
<Vtx X="-40" Y="47" Z="10" S="112" T="304" R="196" G="93" B="61" A="255"/>
<Vtx X="-39" Y="42" Z="21" S="304" T="112" R="194" G="103" B="41" A="255"/>
<Vtx X="-34" Y="46" Z="16" S="112" T="112" R="195" G="99" B="51" A="255"/>
<Vtx X="-34" Y="47" Z="21" S="176" T="-16" R="208" G="114" B="28" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="-16" T="176" R="212" G="91" B="76" A="255"/>
<Vtx X="-19" Y="56" Z="37" S="304" T="432" R="171" G="84" B="42" A="255"/>
<Vtx X="-10" Y="59" Z="41" S="496" T="496" R="197" G="90" B="67" A="255"/>
<Vtx X="-16" Y="60" Z="33" S="432" T="304" R="171" G="84" B="42" A="255"/>
<Vtx X="-24" Y="50" Z="31" S="112" T="304" R="165" G="86" B="22" A="255"/>
<Vtx X="-19" Y="59" Z="24" S="304" T="112" R="157" G="71" B="35" A="255"/>
<Vtx X="-25" Y="52" Z="23" S="112" T="112" R="161" G="80" B="26" A="255"/>
<Vtx X="-25" Y="55" Z="20" S="176" T="-16" R="145" G="53" B="32" A="255"/>
<Vtx X="-27" Y="48" Z="17" S="-16" T="-16" R="174" G="85" B="47" A="255"/>
<Vtx X="-28" Y="50" Z="24" S="-16" T="176" R="168" G="91" B="0" A="255"/>
<Vtx X="-36" Y="60" Z="-1" S="304" T="432" R="177" G="84" B="53" A="255"/>
<Vtx X="-39" Y="59" Z="-10" S="496" T="496" R="168" G="90" B="17" A="255"/>
<Vtx X="-40" Y="56" Z="-1" S="432" T="304" R="177" G="84" B="53" A="255"/>
<Vtx X="-29" Y="59" Z="7" S="112" T="304" R="176" G="71" B="68" A="255"/>
<Vtx X="-38" Y="50" Z="7" S="304" T="112" R="192" G="86" B="67" A="255"/>
<Vtx X="-31" Y="52" Z="12" S="112" T="112" R="186" G="80" B="70" A="255"/>
<Vtx X="-34" Y="50" Z="14" S="176" T="-16" R="212" G="91" B="76" A="255"/>
<Vtx X="-29" Y="55" Z="14" S="-16" T="176" R="173" G="53" B="80" A="255"/>
<Vtx X="-11" Y="39" Z="-50" S="304" T="432" R="4" G="89" B="166" A="255"/>
<Vtx X="-19" Y="33" Z="-52" S="496" T="496" R="238" G="65" B="148" A="255"/>
<Vtx X="-16" Y="42" Z="-48" S="432" T="304" R="4" G="89" B="166" A="255"/>
<Vtx X="-3" Y="42" Z="-45" S="112" T="304" R="5" G="103" B="182" A="255"/>
<Vtx X="-13" Y="47" Z="-40" S="304" T="112" R="23" G="93" B="173" A="255"/>
<Vtx X="-5" Y="46" Z="-38" S="112" T="112" R="14" G="99" B="178" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="176" T="-16" R="44" G="91" B="180" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="-16" T="176" R="0" G="114" B="201" A="255"/>
<Vtx X="-4" Y="69" Z="-22" S="304" T="432" R="0" G="81" B="158" A="255"/>
<Vtx X="-1" Y="75" Z="-14" S="496" T="496" R="0" G="106" B="186" A="255"/>
<Vtx X="2" Y="69" Z="-22" S="432" T="304" R="0" G="81" B="158" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="-1" Y="55" Z="-30" S="112" T="112" R="0" G="65" B="147" A="255"/>
<Vtx X="5" Y="61" Z="-27" S="304" T="112" R="245" G="66" B="148" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="176" T="-16" R="228" G="53" B="144" A="255"/>
<Vtx X="-1" Y="48" Z="-32" S="-16" T="-16" R="0" G="85" B="162" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="-16" T="176" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="61" Z="-27" S="112" T="304" R="11" G="66" B="148" A="255"/>
<Vtx X="14" Y="42" Z="-48" S="304" T="432" R="252" G="89" B="166" A="255"/>
<Vtx X="17" Y="33" Z="-52" S="496" T="496" R="18" G="65" B="148" A="255"/>
<Vtx X="9" Y="39" Z="-50" S="432" T="304" R="252" G="89" B="166" A="255"/>
<Vtx X="11" Y="47" Z="-40" S="112" T="304" R="233" G="93" B="173" A="255"/>
<Vtx X="1" Y="42" Z="-45" S="304" T="112" R="251" G="103" B="182" A="255"/>
<Vtx X="3" Y="46" Z="-38" S="112" T="112" R="242" G="99" B="178" A="255"/>
<Vtx X="-1" Y="47" Z="-40" S="176" T="-16" R="0" G="114" B="201" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="-16" T="176" R="212" G="91" B="180" A="255"/>
<Vtx X="-23" Y="56" Z="-35" S="304" T="432" R="6" G="84" B="161" A="255"/>
<Vtx X="-31" Y="59" Z="-29" S="496" T="496" R="227" G="90" B="171" A="255"/>
<Vtx X="-21" Y="60" Z="-31" S="432" T="304" R="6" G="84" B="161" A="255"/>
<Vtx X="-15" Y="50" Z="-37" S="112" T="304" R="26" G="86" B="166" A="255"/>
<Vtx X="-11" Y="59" Z="-29" S="304" T="112" R="19" G="71" B="152" A="255"/>
<Vtx X="-7" Y="52" Z="-33" S="112" T="112" R="25" G="80" B="160" A="255"/>
<Vtx X="-5" Y="55" Z="-32" S="176" T="-16" R="28" G="53" B="144" A="255"/>
<Vtx X="-7" Y="50" Z="-37" S="-16" T="176" R="44" G="91" B="180" A="255"/>
<Vtx X="19" Y="60" Z="-31" S="304" T="432" R="250" G="84" B="161" A="255"/>
<Vtx X="28" Y="59" Z="-29" S="496" T="496" R="29" G="90" B="171" A="255"/>
<Vtx X="21" Y="56" Z="-35" S="432" T="304" R="250" G="84" B="161" A="255"/>
<Vtx X="9" Y="59" Z="-29" S="112" T="304" R="237" G="71" B="152" A="255"/>
<Vtx X="13" Y="50" Z="-37" S="304" T="112" R="230" G="86" B="166" A="255"/>
<Vtx X="5" Y="52" Z="-33" S="112" T="112" R="231" G="80" B="160" A="255"/>
<Vtx X="5" Y="50" Z="-37" S="176" T="-16" R="212" G="91" B="180" A="255"/>
<Vtx X="3" Y="55" Z="-32" S="-16" T="176" R="228" G="53" B="144" A="255"/>
<Vtx X="49" Y="39" Z="15" S="304" T="432" R="76" G="89" B="48" A="255"/>
<Vtx X="55" Y="33" Z="9" S="496" T="496" R="102" G="65" B="38" A="255"/>
<Vtx X="50" Y="42" Z="10" S="432" T="304" R="76" G="89" B="48" A="255"/>
<Vtx X="40" Y="42" Z="19" S="112" T="304" R="62" G="103" B="41" A="255"/>
<Vtx X="41" Y="47" Z="8" S="304" T="112" R="60" G="93" B="61" A="255"/>
<Vtx X="35" Y="46" Z="15" S="112" T="112" R="61" G="99" B="51" A="255"/>
<Vtx X="35" Y="50" Z="12" S="176" T="-16" R="44" G="91" B="76" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="47" Z="19" S="-16" T="176" R="48" G="114" B="28" A="255"/>
<Vtx X="21" Y="69" Z="8" S="304" T="432" R="85" G="81" B="49" A="255"/>
<Vtx X="13" Y="75" Z="6" S="496" T="496" R="61" G="106" B="35" A="255"/>
<Vtx X="18" Y="69" Z="13" S="432" T="304" R="85" G="81" B="49" A="255"/>
<Vtx X="27" Y="61" Z="7" S="112" T="304" R="88" G="66" B="63" A="255"/>
<Vtx X="21" Y="61" Z="18" S="304" T="112" R="99" G="66" B="45" A="255"/>
<Vtx X="26" Y="55" Z="14" S="112" T="112" R="95" G="65" B="55" A="255"/>
<Vtx X="26" Y="55" Z="18" S="176" T="-16" R="111" G="53" B="32" A="255"/>
<Vtx X="30" Y="55" Z="12" S="-16" T="176" R="83" G="53" B="80" A="255"/>
<Vtx X="34" Y="42" Z="36" S="304" T="432" R="80" G="89" B="42" A="255"/>
<Vtx X="37" Y="33" Z="41" S="496" T="496" R="84" G="65" B="69" A="255"/>
<Vtx X="39" Y="39" Z="33" S="432" T="304" R="80" G="89" B="42" A="255"/>
<Vtx X="29" Y="47" Z="30" S="112" T="304" R="83" G="93" B="22" A="255"/>
<Vtx X="38" Y="42" Z="23" S="304" T="112" R="67" G="103" B="33" A="255"/>
<Vtx X="31" Y="46" Z="21" S="112" T="112" R="74" G="99" B="27" A="255"/>
<Vtx X="35" Y="47" Z="19" S="176" T="-16" R="48" G="114" B="28" A="255"/>
<Vtx X="29" Y="50" Z="23" S="-16" T="176" R="88" G="91" B="0" A="255"/>
<Vtx X="41" Y="56" Z="-2" S="304" T="432" R="79" G="84" B="53" A="255"/>
<Vtx X="40" Y="59" Z="-12" S="496" T="496" R="88" G="90" B="17" A="255"/>
<Vtx X="37" Y="60" Z="-3" S="432" T="304" R="79" G="84" B="53" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="30" Y="59" Z="5" S="304" T="112" R="80" G="71" B="68" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="30" Y="55" Z="12" S="176" T="-16" R="83" G="53" B="80" A="255"/>
<Vtx X="28" Y="48" Z="15" S="-16" T="-16" R="82" G="85" B="47" A="255"/>
<Vtx X="35" Y="50" Z="12" S="-16" T="176" R="44" G="91" B="76" A="255"/>
<Vtx X="32" Y="52" Z="10" S="112" T="112" R="70" G="80" B="70" A="255"/>
<Vtx X="39" Y="50" Z="6" S="112" T="304" R="64" G="86" B="67" A="255"/>
<Vtx X="17" Y="60" Z="31" S="304" T="432" R="85" G="84" B="42" A="255"/>
<Vtx X="11" Y="59" Z="39" S="496" T="496" R="59" G="90" B="67" A="255"/>
<Vtx X="20" Y="56" Z="35" S="432" T="304" R="85" G="84" B="42" A="255"/>
<Vtx X="21" Y="59" Z="22" S="112" T="304" R="99" G="71" B="35" A="255"/>
<Vtx X="26" Y="50" Z="29" S="304" T="112" R="91" G="86" B="22" A="255"/>
<Vtx X="26" Y="52" Z="21" S="112" T="112" R="95" G="80" B="26" A="255"/>
<Vtx X="29" Y="50" Z="23" S="176" T="-16" R="88" G="91" B="0" A="255"/>
<Vtx X="26" Y="55" Z="18" S="-16" T="176" R="111" G="53" B="32" A="255"/>
</Vertex>

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