Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rando Alpha #5

Open
wants to merge 426 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
426 commits
Select commit Hold shift + click to select a range
68786a9
Add Logic
Caladius Dec 11, 2024
bcbb68e
clang
Caladius Dec 11, 2024
5a12a27
Rename Items to Owl Statue
Caladius Dec 12, 2024
70f60a3
Tweaks to owl shuffle implementation
garrettjoecox Dec 12, 2024
b4af8ab
Add Snowhead MVP region
garrettjoecox Dec 12, 2024
baa926d
Tingle checks
garrettjoecox Dec 14, 2024
c5add26
Shuffle Gibdo Mask and related cutscene skips (#61)
Eblo Dec 14, 2024
ec6730b
Bossa Nova Check & Skip
garrettjoecox Dec 14, 2024
802cd8c
Revert change to temple map names
garrettjoecox Dec 14, 2024
3bbb0da
Another pass on the junk item concept
garrettjoecox Dec 14, 2024
81e76e5
Add Great Bay Temple MVP region
garrettjoecox Dec 14, 2024
fdf00fd
Add Stone Tower Temple MVP region
garrettjoecox Dec 14, 2024
3bc7c20
Shuffle Shooting Galleries (#65)
Eblo Dec 14, 2024
a6f2318
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Dec 14, 2024
f004d20
Migrate new enhancements to ShipInit
garrettjoecox Dec 14, 2024
4d6b901
Display events in check tracker
garrettjoecox Dec 14, 2024
7678552
Fix issue with song of time ShipInit migration
garrettjoecox Dec 15, 2024
4903884
Add Epona/Malon related skips and check
garrettjoecox Dec 15, 2024
dcf88d3
More pot stuff (#68)
balloondude2 Dec 19, 2024
a6f3767
fix bean scrub flag type (#69)
balloondude2 Dec 19, 2024
acecd7f
Implement Snowhead Dungeon Logic (#66)
Caladius Dec 19, 2024
4167c51
Fix glitchless logic shop items
garrettjoecox Dec 19, 2024
5dccdeb
Added ranch checks to glitchless logic (#70)
sitton76 Dec 19, 2024
91ef87a
Added Mountain checks to glitchless logic. (#71)
sitton76 Dec 19, 2024
7c387ad
Fix small issues with tingle, owl statues, and glitchless without shops
garrettjoecox Dec 19, 2024
a28ed91
Events for seahorse, zora eggs, and pirate picture
garrettjoecox Dec 19, 2024
9fdbd5f
Remove health requirement from secret shrine and add skip item checkb…
garrettjoecox Dec 19, 2024
164d431
Tweak item conversions for progressives
garrettjoecox Dec 19, 2024
62184ee
Restock re-obtainable items in shops
garrettjoecox Dec 19, 2024
8e33517
Tweaks to check tracker UX
garrettjoecox Dec 20, 2024
518c843
Add more misc interaction skips (#73)
balloondude2 Dec 20, 2024
c76c692
Add minimal container style matches contents feature
garrettjoecox Dec 20, 2024
d94c8b7
skip giants stopping moon cs (#75)
balloondude2 Dec 21, 2024
dc442e8
Add Woodfall raising skip (#74)
balloondude2 Dec 21, 2024
ae51016
Check Tracker Update (#76)
Caladius Dec 22, 2024
e19e120
Replace recursive glitchless logic gen with iterative
garrettjoecox Dec 22, 2024
2f475c7
Split Regions.cpp
garrettjoecox Dec 22, 2024
b86bb96
Fix some inconsistencies across the tracker types
garrettjoecox Dec 22, 2024
456b1c8
Tweaks to stray fairy actor rendering
garrettjoecox Dec 22, 2024
26ec92c
Prevent re-obtaining heart piece checks
garrettjoecox Dec 22, 2024
cd6415b
Add seeded gossip stone hints
garrettjoecox Dec 23, 2024
1c42c76
skip going to great bay temple stuff (#82)
balloondude2 Dec 23, 2024
1da112f
Implement All 3 days of Honey Darling Rewards (#78)
Caladius Dec 23, 2024
a310553
Logic for Beneath The Well, and changes to AkinDonuts and a few other…
garrettjoecox Dec 24, 2024
1086c1a
New Moon Logic (#80)
Caladius Dec 26, 2024
e4c1f13
Tweaks to moon logic
garrettjoecox Dec 26, 2024
4f45784
Shuffle Lottery (#81)
Caladius Dec 26, 2024
6620dda
Fix location for HD Logic (#88)
Caladius Dec 26, 2024
0ac3768
Shuffle Termina Field Guay drops
garrettjoecox Dec 26, 2024
8dccac8
Shuffle Deku Playground Rewards (#84)
Caladius Dec 26, 2024
ace7f34
Great Bay Temple Logic (#89)
Caladius Dec 26, 2024
0fd17c7
Tweaks to great bay temple logic
garrettjoecox Dec 26, 2024
a72aaf4
Custom textures for CSMC chests
garrettjoecox Dec 26, 2024
4aef989
Clang on EnBox
garrettjoecox Dec 26, 2024
8f9357c
Shuffle deku playground rupees
garrettjoecox Dec 27, 2024
4f2664d
Update Dialogue to reflect Rando Reward (#91)
Caladius Dec 27, 2024
a5a537f
Logic for Ancient Castle of Ikana
garrettjoecox Dec 27, 2024
f245ce3
Apply alphabetical sorting in various places
garrettjoecox Dec 27, 2024
6f9bc37
Garo mask (#86)
balloondude2 Dec 28, 2024
2bb2673
Add one point skips, more entrance skips, and faster push/pull
garrettjoecox Dec 28, 2024
d11e0c4
Spider Houses to logic (#93)
sitton76 Dec 28, 2024
2afcf41
Replace bomb_bag_20 with progressive bomb bag in pool
garrettjoecox Dec 28, 2024
a7fb85a
Fix some minor issues
garrettjoecox Dec 28, 2024
5eaff85
Re-added STT/ISTTD logic (#95)
sitton76 Dec 29, 2024
fa711f0
Shuffle Don Gero Mask (#96)
Caladius Dec 29, 2024
8ce7ee6
WeekEventRegHorseState macro -> function (#94)
balloondude2 Dec 29, 2024
0e22df9
Fix Missing or Incorrect Logic (#97)
Caladius Dec 29, 2024
720d6c4
Adjusted Gomess kill requirements (#98)
sitton76 Dec 29, 2024
ff81ba0
Swamp skulltula house access adjustment. (#101)
sitton76 Dec 29, 2024
4add2b6
Various bug fixes:
garrettjoecox Dec 29, 2024
87339ff
Shuffle Doggy Racetrack HP (#100)
Caladius Dec 29, 2024
2e5ba9e
Shuffle Gold Dust and implement logic for gilded sword. (#99)
Caladius Dec 29, 2024
62b0dbc
Remaining Bomb Bag and All-Night Mask (#103)
Eblo Dec 30, 2024
c9a2543
Fix an issue when buying sword, and some issues with the clock town s…
garrettjoecox Dec 30, 2024
4dd1c00
First round of corrections. (#107)
sitton76 Dec 30, 2024
b9ab5a5
Use eligible flag instead of obtained for Kamaro (#106)
Eblo Dec 30, 2024
8444e8a
Shuffles Spider House Rewards (#105)
Caladius Dec 31, 2024
78d5316
Shuffle Mask of Scents and other stuff (#104)
Caladius Dec 31, 2024
8cbea25
Tweaks to deku shrine access and oath to order
garrettjoecox Dec 31, 2024
2c6794c
Add Alien Defense Check (#111)
balloondude2 Dec 31, 2024
35ce52d
Remove unnecessary event for cremia escort
garrettjoecox Dec 31, 2024
c5dd255
Shuffle Postman Hat (#109)
Caladius Dec 31, 2024
516b99e
Add CSMC for pots, fix some seed generation issues
garrettjoecox Dec 31, 2024
90d7589
Tweaks to logic display in CheckTracker
garrettjoecox Dec 31, 2024
bd9fce6
Fix Curiosity Shop owner's special item checks (#112)
Eblo Dec 31, 2024
dfaec31
Temporary solution for all night mask check breaking glitchless gen
garrettjoecox Dec 31, 2024
5db5221
Add grottos to logic, still not fully prepped for entrance rando but …
garrettjoecox Dec 31, 2024
922a931
Implements Check Tracker Icons (#113)
Caladius Dec 31, 2024
3a66f03
Uncommented some pots in STT & HP in Ikana Castle (#115)
sitton76 Jan 1, 2025
c2cf9e1
Misc fixes
garrettjoecox Jan 1, 2025
7b94420
Shuffle Song of Soaring, add related skip (#117)
Eblo Jan 1, 2025
bb63590
Freestanding Shuffle Additions (#116)
Caladius Jan 2, 2025
a1dcb74
Quadruple SaveBuffer size & increase range of CustomItem actor
garrettjoecox Jan 2, 2025
cb2f1dc
Fix foundDungeonKeys not being persisted for restoring keys
garrettjoecox Jan 2, 2025
b0ab833
Do not set Igos intro flag during credits (#122)
Eblo Jan 2, 2025
75e802d
First pass on small key logic
garrettjoecox Jan 2, 2025
3529bdb
Allow some CustomItem drops to be boomerang'd
garrettjoecox Jan 2, 2025
f28f6da
Added some additional logic for the Don Gero check. (#118)
sitton76 Jan 2, 2025
473f3e8
Make piece of heart & heart containers heal you
garrettjoecox Jan 2, 2025
709930c
Shuffle Song of Storms, add related skips (#119)
Eblo Jan 2, 2025
4125d29
Shuffles Circus Leaders Mask (#110)
Caladius Jan 2, 2025
b644fb5
Implement Keaton Mask and Letter to Mama Shuffles (#114)
Caladius Jan 2, 2025
2dea19d
Add rando to modern menu & mostly disable f1 menu
garrettjoecox Jan 2, 2025
9df889e
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 2, 2025
70281f3
Add additional build info, ensure saves are marked as incompatible ac…
garrettjoecox Jan 2, 2025
24fb883
Replace dice with rando in disclaimer
garrettjoecox Jan 2, 2025
9a49096
A few more one point skips
garrettjoecox Jan 3, 2025
349d728
Allow logic to account for non-shuffled items
garrettjoecox Jan 3, 2025
645c4f2
force tingle balloon for rando (#124)
balloondude2 Jan 3, 2025
4d6043f
Fix hints and they no longer require Mask of Truth
garrettjoecox Jan 3, 2025
f067011
Add logic strings back to tracker
garrettjoecox Jan 3, 2025
1de628a
Shuffles Barrels, Crates & Missed Freestanding Rupees (#125)
Caladius Jan 3, 2025
125e3e4
Tweaks to Barrel & Crate implementation
garrettjoecox Jan 3, 2025
0cb9f26
Fix glitchless logic generation when some settings are disabled
garrettjoecox Jan 4, 2025
c69def2
Logic Fixes (#129)
Caladius Jan 4, 2025
1711f11
fix mask of truth check (#131)
balloondude2 Jan 4, 2025
2218b0b
Implement Display Overlay (#127)
Caladius Jan 4, 2025
2ec5554
Small logic fixes. (#128)
sitton76 Jan 4, 2025
4450d56
Uniformed RC Naming (#132)
Caladius Jan 5, 2025
3c1eb29
Fixed "Palaza" typo (#133)
sitton76 Jan 5, 2025
98b815a
Fix a few issues
garrettjoecox Jan 5, 2025
13f322c
Color-code keys
garrettjoecox Jan 5, 2025
0583764
Increase amount of ammo given by junk
garrettjoecox Jan 5, 2025
83dbf7e
Balance purchase-able hint cost
garrettjoecox Jan 5, 2025
bda0d1c
Add 2 missing crates and adjust logic for path to goron village ramp …
garrettjoecox Jan 5, 2025
1d70a6b
Fix instrument being locked to deku pipes after sonata skip
garrettjoecox Jan 5, 2025
f49d624
Fix Anju Stock Pot Inn check softlocks (#135)
Eblo Jan 6, 2025
5fdfd69
Merge branch 'develop' of garrettjoecox.github.com:garrettjoecox/2shi…
garrettjoecox Jan 6, 2025
766f4bb
fix milk bar crash (#134)
balloondude2 Jan 6, 2025
d287d02
Apply events when using the logic tracker again
garrettjoecox Jan 6, 2025
290b1bc
Open clock tower rooftop when time is advanced
garrettjoecox Jan 6, 2025
7639ae0
Check Tracker V3 (#136)
Caladius Jan 6, 2025
a1af32c
Fix Anju crash on Letter to Kafei check (#138)
Eblo Jan 6, 2025
1fe29a4
express delivery (#139)
mckinlee Jan 6, 2025
3cf540d
A few more one point skips and skip boss warp prompt
garrettjoecox Jan 6, 2025
45f828e
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 6, 2025
4d8339c
Fix Check Tracker Issues (#140)
Caladius Jan 6, 2025
57263bc
Add a few missing converts, and fix tingle maps giving the wrong map
garrettjoecox Jan 6, 2025
a9cd152
Check Fixes and Additions (#141)
Caladius Jan 6, 2025
4d2927a
Readd WEEKEVENTREG_RECEIVED_MASK_OF_TRUTH to RC Check (#143)
Caladius Jan 7, 2025
2f2a7aa
Only kill Winter Village owl if both Lens and magic are acquired (#142)
Eblo Jan 7, 2025
67a73d8
Check tracker fixes again (#144)
Caladius Jan 7, 2025
ce9e390
Tweak behavior of pots & fairies to account for a pot holding a fairy
garrettjoecox Jan 7, 2025
4ee7487
Fix item message icons
garrettjoecox Jan 7, 2025
5833891
Sparkles on RI_NONE and Progressive Magic (#145)
Caladius Jan 7, 2025
a9d702b
Adjust colors of keys
garrettjoecox Jan 7, 2025
eaf7696
Move freestanding hearts down into mundane section of types
garrettjoecox Jan 7, 2025
b4fe736
A few tweaks
garrettjoecox Jan 7, 2025
2e3c6a6
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 7, 2025
540dd5d
Fix shop softlocks
garrettjoecox Jan 8, 2025
f1180df
Change HALF_SAVE_BUFFER_SIZE to SAVE_BUFFER_SIZE_HALF
garrettjoecox Jan 9, 2025
bbbc121
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 9, 2025
6dd044e
Add bombers notebook check
garrettjoecox Jan 9, 2025
85ea9c3
Add ChuDrops enhancement
garrettjoecox Jan 10, 2025
a095cec
A few small logic corrections. (#151)
sitton76 Jan 10, 2025
5d0d063
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 10, 2025
b68ae4b
Only grant Song of Soaring for the engraving (#153)
Eblo Jan 10, 2025
6ae3cfb
Add support for 3 files with rando file tag (#152)
Archez Jan 10, 2025
d5ff993
fix riding horse after leaving gorman track scene (#154)
balloondude2 Jan 10, 2025
7933cb8
More cutscene skips & faster block pushes
garrettjoecox Jan 10, 2025
109ccce
Fix RC_OCEAN_SKULLTULA_2ND_ROOM_BEHIND_SKULL_01 and 02 logic (#157)
Caladius Jan 10, 2025
384e808
Fix Postman softlock (#158)
Eblo Jan 10, 2025
3bf4aa1
Add Sparkles to Barrel Items (#156)
Caladius Jan 10, 2025
1262f8b
Shuffle Keaton Quiz Heart Piece (#148)
Eblo Jan 10, 2025
a26d01f
Shuffle Clock Town postbox (#146)
Eblo Jan 10, 2025
f54cee1
Couples mask in Glitchless logic (#120)
sitton76 Jan 10, 2025
556aa94
Receive Both Shooting Gallery Rewards (#150)
mckinlee Jan 10, 2025
5b59794
Improve chu drops behavior (#159)
Archez Jan 10, 2025
0e24fc3
Second pass on GalleryTwofer
garrettjoecox Jan 10, 2025
24d372b
Add Sparkles to Guay Drops and Crates (#160)
Caladius Jan 11, 2025
9b5cd34
Fix Postman's Hat check flags and branching (#162)
Eblo Jan 11, 2025
325310d
Do not play Song of Healing cutscene on moon crash (#163)
Eblo Jan 11, 2025
1ebaca6
Replace Bomb Shopkeeper Held Item (#147)
mckinlee Jan 11, 2025
b77ac0a
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 11, 2025
f18ad3d
Speed up elegy of emptiness & stone tower blocks
garrettjoecox Jan 12, 2025
a7c5cc0
Create new glitchless logic variant, and move old one to 'French Vani…
garrettjoecox Jan 13, 2025
2e33e79
Add some more missing RemoveItems
garrettjoecox Jan 13, 2025
b45e6a8
2shiprando logicfixes (#155)
Ghunzor Jan 13, 2025
9242eb1
Convert Pot Switch Statement to Map (#161)
Caladius Jan 13, 2025
5d689f7
Deku Grotto + Ranch related corrections (#165)
sitton76 Jan 13, 2025
67b5dd3
Add shuffle boss remains toggle
garrettjoecox Jan 13, 2025
3fe4582
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 13, 2025
d65f77d
CSMC for barrels and crates
garrettjoecox Jan 13, 2025
12887f1
Shuffle Chateau bottle, fix related bugs (#166)
Eblo Jan 13, 2025
b095cda
Implement better feedback for item trade cycling (#170)
Archez Jan 13, 2025
922d41d
Add more options for skipping item get cutscenes
garrettjoecox Jan 13, 2025
739fed6
Adjustments to Glitchless generation to weight junk replacements towa…
garrettjoecox Jan 14, 2025
82e3136
Add additional item tracker entries (#171)
Archez Jan 14, 2025
e7f7300
Shuffle both Goron Lullaby checks
garrettjoecox Jan 14, 2025
ffdc883
force unbreakable razor for rando (#174)
balloondude2 Jan 14, 2025
ace433a
Fix moons tear check and skullkid cutscene skips (#173)
Archez Jan 14, 2025
b999bbe
Bunch of corrections for Snowhead Temple (#168)
sitton76 Jan 15, 2025
7571d10
Switch to randoInf check for letter to mama in logic
garrettjoecox Jan 15, 2025
4625dc0
Remove goron req to enter ocean spider house
garrettjoecox Jan 15, 2025
81eef99
Fix custom message formatting and gossip stone hint text (#175)
Archez Jan 15, 2025
6ff8521
Change boss warp pad requirements to check for blue warp usage (#178)
Archez Jan 16, 2025
39a357b
Fix issues with some checks not being shuffled in a spoiler file
garrettjoecox Jan 17, 2025
319b18c
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 17, 2025
8b37684
Cast currentChar before using as index (#181)
Eblo Jan 17, 2025
8d135ed
Corrected scene ID for Freestanding BtG rupee checks (#182)
sitton76 Jan 18, 2025
32ca683
Adds some more missing items to RemoveItem so that logic works correctly
garrettjoecox Jan 18, 2025
85b7990
Great Bay Temple switch logic. (#137)
sitton76 Jan 18, 2025
ff45e60
Add initial implementation of nearly no logic
garrettjoecox Jan 19, 2025
f462d1f
Koume Tourist Shop Checks (#130)
inspectredc Jan 19, 2025
1de6351
Fix Banker ItemGives (#167)
Caladius Jan 19, 2025
9508498
ADD: Green Control Code for paid hint (#176)
PurpleHato Jan 19, 2025
0bd9852
Ensure skipCmds vectors clear on init (#183)
Eblo Jan 19, 2025
fd2e642
Shuffle Beaver Bros empty bottle and heart piece (#184)
Eblo Jan 19, 2025
318e878
fix show current scene option (#185)
balloondude2 Jan 19, 2025
3ab52d3
Set EN_COW_FLAG_WONT_GIVE_MILK to prevent softlock (#186)
Eblo Jan 19, 2025
c16aa7d
Add cycleObtained flag for checks and use it for mundane checks
garrettjoecox Jan 19, 2025
dd8f8db
Added magic as a requirement for getting past Path to Snowhead. (#188)
sitton76 Jan 20, 2025
4e6687c
Fix skull token eyes and give them unique colors for area (#191)
Archez Jan 20, 2025
95d34e2
skip kotake cs (#192)
balloondude2 Jan 20, 2025
9c1f0ee
Add remains hint on clock town recruitment posters
garrettjoecox Jan 20, 2025
357b3e7
Fix field ordering issue
garrettjoecox Jan 20, 2025
8c1998e
Nuked startingItems (#190)
sitton76 Jan 20, 2025
9372f9e
Fix cast issue in EnTalk
garrettjoecox Jan 20, 2025
7221642
Added TODO for possible trick, added Fire Arrow as a requirement for …
sitton76 Jan 21, 2025
f08e820
Grant mask salesman checks when beginning seed, and prep for starting…
garrettjoecox Jan 21, 2025
45104b9
Allow clock town alt check with any form, and add great fairy hints
garrettjoecox Jan 21, 2025
7b6d7ac
Add swamp & ocean spider house hints
garrettjoecox Jan 21, 2025
f1f9b83
Shuffle Kotake Red Potion Bottle (#169)
Caladius Jan 21, 2025
632342c
Shuffles Zora Hall Scene Lights (#187)
Caladius Jan 21, 2025
120a515
Adjusted conditions for accessing the South half of Swamp (#196)
sitton76 Jan 21, 2025
1b0f17d
Fix Zora Hall bomb softlock in rando (#197)
Eblo Jan 21, 2025
9e537cc
Gibdo Ikana Canyon access correction. (#198)
sitton76 Jan 23, 2025
677a2fe
Fix logic issues with skulltula tokens and red potion refill
garrettjoecox Jan 23, 2025
6892939
Implement Evan's HP check and CS skip (#195)
balloondude2 Jan 25, 2025
8fecd2e
Revert changes to modern menu to prepare for merge
garrettjoecox Jan 25, 2025
4fafa01
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 25, 2025
6102f4e
Re-add new options to modern menu
garrettjoecox Jan 25, 2025
db55749
Fix: Add CAN_AFFORD logic to Goron Shop item checks (#200)
JoshSanch Jan 25, 2025
3f57179
Add Rando section to modern menu
garrettjoecox Jan 26, 2025
d5d0336
Merge branch 'develop-rando' of garrettjoecox.github.com:garrettjoeco…
garrettjoecox Jan 26, 2025
5bf3e04
clang oops
garrettjoecox Jan 26, 2025
f11fcca
First pass on expanding menus
garrettjoecox Jan 27, 2025
259e7e5
skip captain defeat cutscene (#201)
briaguya-ai Jan 27, 2025
6a6fd48
Shuffles Marine Lab Fish Heart Piece (#189)
Caladius Jan 27, 2025
c4dc930
Skips Banker Deposit Dialogue (#172)
Caladius Jan 27, 2025
c9dea02
fix red potion bottle (#202)
balloondude2 Jan 27, 2025
6b7686a
Update East.cpp (#203)
Patrick12115 Jan 27, 2025
ce33454
Fix some cross platform compilation issues
garrettjoecox Jan 28, 2025
41cd582
Merge branch 'develop' of garrettjoecox.github.com:HarbourMasters/2sh…
garrettjoecox Jan 28, 2025
2e82da9
Fix Captain Defeat CS crash (#207)
Eblo Jan 29, 2025
1a6acf1
More one point skips
garrettjoecox Jan 29, 2025
6ec5a9a
fix crate drops (#209)
balloondude2 Jan 29, 2025
4bc13b4
Skip ballad of windfish (#180)
balloondude2 Jan 29, 2025
c281ced
fix isst pot (#211)
balloondude2 Jan 30, 2025
61c2c76
Remove dinalfos from onePoint skips for now
garrettjoecox Jan 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mm/2s2h/BenGui/BenMenuBar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -697,6 +697,7 @@ void DrawEnhancementsMenu() {

void DrawCheatsMenu() {
if (UIWidgets::BeginMenu("Cheats")) {
UIWidgets::CVarCheckbox("Rando", "gRando.Enabled");
UIWidgets::CVarCheckbox("Infinite Health", "gCheats.InfiniteHealth");
UIWidgets::CVarCheckbox("Infinite Magic", "gCheats.InfiniteMagic");
UIWidgets::CVarCheckbox("Infinite Rupees", "gCheats.InfiniteRupees");
Expand Down
34 changes: 34 additions & 0 deletions mm/2s2h/BenJsonConversions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,50 @@ void from_json(const json& j, DpadSaveInfo& dpadEquips) {
}
}

void to_json(json& j, const RandoSaveInfoCheck& check) {
j = json{
{ "item", check.item },
{ "eligible", check.eligible },
{ "obtained", check.obtained },
};
}

void from_json(const json& j, RandoSaveInfoCheck& check) {
j.at("item").get_to(check.item);
j.at("eligible").get_to(check.eligible);
j.at("obtained").get_to(check.obtained);
}

void to_json(json& j, const RandoSaveInfo& rando) {
j = json{
{ "checks", rando.checks },
};
}

void from_json(const json& j, RandoSaveInfo& rando) {
j.at("checks").get_to(rando.checks);
}

void to_json(json& j, const ShipSaveInfo& shipSaveInfo) {
j = json {
{ "dpadEquips", shipSaveInfo.dpadEquips },
{ "pauseSaveEntrance", shipSaveInfo.pauseSaveEntrance },
{ "saveType", shipSaveInfo.saveType },
};

if (shipSaveInfo.saveType == SAVETYPE_RANDO) {
j["rando"] = shipSaveInfo.rando;
}
}

void from_json(const json& j, ShipSaveInfo& shipSaveInfo) {
j.at("dpadEquips").get_to(shipSaveInfo.dpadEquips);
j.at("pauseSaveEntrance").get_to(shipSaveInfo.pauseSaveEntrance);
j.at("saveType").get_to(shipSaveInfo.saveType);

if (shipSaveInfo.saveType == SAVETYPE_RANDO) {
j.at("rando").get_to(shipSaveInfo.rando);
}
}

void to_json(json& j, const ItemEquips& itemEquips) {
Expand Down
3 changes: 3 additions & 0 deletions mm/2s2h/BenPort.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ CrowdControl* CrowdControl::Instance;
#include "2s2h/Enhancements/GfxPatcher/AuthenticGfxPatches.h"
#include "2s2h/DeveloperTools/DebugConsole.h"
#include "2s2h/DeveloperTools/DeveloperTools.h"
#include "2s2h/Rando/Rando.h"
#include "2s2h/SaveManager/SaveManager.h"

// Resource Types/Factories
Expand Down Expand Up @@ -468,9 +469,11 @@ extern "C" void InitOTR() {

OTRGlobals::Instance = new OTRGlobals();
GameInteractor::Instance = new GameInteractor();
GameInteractor::Instance->Init();
BenGui::SetupGuiElements();
InitEnhancements();
InitDeveloperTools();
Rando::Init();
GfxPatcher_ApplyNecessaryAuthenticPatches();
DebugConsole_Init();

Expand Down
89 changes: 89 additions & 0 deletions mm/2s2h/CustomMessage/CustomMessage.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@

#include "CustomMessage.h"
#include <libultraship/bridge.h>
#include "2s2h/Enhancements/GameInteractor/GameInteractor.h"
#include <map>

extern "C" {
#include "z64.h"
extern PlayState* gPlayState;
}

static s32 activeMessageModId = -1;
static s32 activeMessageTextId = -1;

#define DEFINE_MESSAGE(textId, typePos, msg) { SHIP_TEXT_##textId, typePos, msg "\xBF" },

MessageTableEntry shipMessagesTable[] = {
#include "2s2h/CustomMessage/ShipMessages.h"
{ 0xFFFF, 0, NULL },
};

#undef DEFINE_MESSAGE

// Intended to be used in conjunction with GI's OnOpenText hook
void CustomMessage_SetActiveMessage(s32 modId, s32 textId) {
activeMessageModId = modId;
activeMessageTextId = textId;
}

void CustomMessage_Replace(std::string* msg, const std::string& placeholder, const std::string& value) {
size_t pos = 0;
while ((pos = msg->find(placeholder, pos)) != std::string::npos) {
msg->replace(pos, placeholder.length(), value);
pos += value.length();
}
}

// Intended to be called in place of Message_StartTextbox within the source code when overriding messages
extern "C" void CustomMessage_StartTextbox(PlayState* play, s32 modId, s32 textId, Actor* actor) {
activeMessageModId = modId;
activeMessageTextId = textId;
Message_StartTextbox(play, CUSTOM_MESSAGE_ID, actor);
}

// Intended to be called in place of Message_ContinueTextbox within the source code when overriding messages
extern "C" void CustomMessage_ContinueTextbox(PlayState* play, s32 modId, s32 textId) {
activeMessageModId = modId;
activeMessageTextId = textId;
Message_ContinueTextbox(play, CUSTOM_MESSAGE_ID);
}

extern "C" void CustomMessage_HandleCustomMessage() {
if (activeMessageTextId == -1 || activeMessageModId == -1)
return;

// Currently we only support the ship mod
if (activeMessageModId != MOD_ID_SHIP)
return;

MessageContext* msgCtx = &gPlayState->msgCtx;
Font* font = &msgCtx->font;

MessageTableEntry* msgEntry = &shipMessagesTable[activeMessageTextId];
char buff[1280] = { 0 };

// Copy message metadata
memcpy(buff, msgEntry->segment, 11);

// Convert the rest of the message to a std::string
std::string msg = msgEntry->segment + 11;
// Allow the message to be modified by the game interactor
GameInteractor_ExecuteOnHandleCustomMessage(activeMessageModId, activeMessageTextId, &msg);

// If messaage is too long, truncate it and add the message end character
if (msg.length() > 1269) {
msg = msg.substr(0, 1268);
msg += '\xBF';
}

// Copy modified message to the buffer
memcpy(buff + 11, msg.c_str(), msg.length());

// Set the message length and copy the buffer to the real message buffer
msgCtx->msgLength = msg.length() + 11;
memcpy(&font->msgBuf, buff, msgCtx->msgLength);

activeMessageModId = -1;
activeMessageTextId = -1;
}
39 changes: 39 additions & 0 deletions mm/2s2h/CustomMessage/CustomMessage.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef CUSTOM_MESSAGE_H
#define CUSTOM_MESSAGE_H

#ifdef __cplusplus
#include <string>

extern "C" {
#include "z64.h"
#endif

// Not really sure what the best ID is for this, but it needs to be between 0-255
// because it's used as a u8 somewhere in the chain
#define CUSTOM_MESSAGE_ID 0x004B

typedef enum ModId {
MOD_ID_VANILLA = 0,
MOD_ID_SHIP = 1,
} ModId;

#define DEFINE_MESSAGE(textId, typePos, msg) SHIP_TEXT_##textId,

typedef enum ShipTextId {
#include "2s2h/CustomMessage/ShipMessages.h"
SHIP_TEXT_MAX,
} ShipTextId;

#undef DEFINE_MESSAGE

void CustomMessage_StartTextbox(PlayState* play, s32 modId, s32 textId, Actor* actor);
void CustomMessage_ContinueTextbox(PlayState* play, s32 modId, s32 textId);
void CustomMessage_HandleCustomMessage();

#ifdef __cplusplus
};
void CustomMessage_SetActiveMessage(s32 modId, s32 textId);
void CustomMessage_Replace(std::string* msg, const std::string& placeholder, const std::string& value);
#endif

#endif
13 changes: 13 additions & 0 deletions mm/2s2h/CustomMessage/ShipMessages.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// clang-format off
DEFINE_MESSAGE(HELLO_WORLD, 0x00, "\x06\x00" "\xFE" "\xFF\xFF" "\xFF\xFF" "\xFF\xFF" "\xFF\xFF"
"Hello World!\x11"
"You have {{rupees}} rupee(s).\x11"
"\x11"
" - The Moon"
)
DEFINE_MESSAGE(GIVE_ITEM, 0x00, "\x02\x00" "\x0C" "\xFF\xFF" "\xFF\xFF" "\xFF\xFF" "\xFF\xFF"
"You recieved a(n) {{item}}!"
garrettjoecox marked this conversation as resolved.
Show resolved Hide resolved
)
DEFINE_MESSAGE(GIVE_ITEM_NO_STOP, 0x00, "\x02\x00" "\x0C" "\xFF\xFF" "\xFF\xFF" "\xFF\xFF" "\xFF\xFF"
"{{item}}" "\x1C\x02\x10"
)
4 changes: 2 additions & 2 deletions mm/2s2h/DeveloperTools/EventLog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,11 @@ void RegisterEventLogHooks() {
TrimEventLog();
});

onOpenTextHookId = GameInteractor::Instance->RegisterGameHook<GameInteractor::OnOpenText>([](s16 textId) {
onOpenTextHookId = GameInteractor::Instance->RegisterGameHook<GameInteractor::OnOpenText>([](u16* textId) {
eventLogEntries.insert(eventLogEntries.begin(), {
.timestamp = CurrentTime(),
.type = EVENT_LOG_ENTRY_TYPE_OPEN_TEXT,
.meta = fmt::format("0x{:02x}", textId),
.meta = fmt::format("0x{:02x}", *textId),
});
TrimEventLog();
});
Expand Down
26 changes: 26 additions & 0 deletions mm/2s2h/Enhancements/Cheats/OverrideTextExample.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include <libultraship/bridge.h>
#include "Enhancements/GameInteractor/GameInteractor.h"
#include "2s2h/CustomMessage/CustomMessage.h"

extern "C" {
extern SaveContext gSaveContext;
}

// This is not actually used, but it's a good example of how to override text
// until we have good examples of usage. This will be deleted eventually.
void RegisterOverrideTextExample() {
// Overrides the sign in south clock town message
GameInteractor::Instance->RegisterGameHookForID<GameInteractor::OnOpenText>(0x1C18, [](u16* textId) {
CustomMessage_SetActiveMessage(MOD_ID_SHIP, SHIP_TEXT_HELLO_WORLD);
*textId = CUSTOM_MESSAGE_ID;
});

GameInteractor::Instance->RegisterGameHook<GameInteractor::OnHandleCustomMessage>(
[](s32 modId, s32 textId, std::string* msg) {
if (modId != MOD_ID_SHIP || textId != SHIP_TEXT_HELLO_WORLD) {
return;
}

CustomMessage_Replace(msg, "{{rupees}}", std::to_string(gSaveContext.save.saveInfo.playerData.rupees));
});
}
1 change: 1 addition & 0 deletions mm/2s2h/Enhancements/Cutscenes/Cutscenes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ void RegisterCutscenes() {

// StoryCutscenes
RegisterSkipClockTowerOpen();
RegisterSkipLearningSongOfTime();

RegisterHideTitleCards();
RegisterSkipEntranceCutscenes();
Expand Down
1 change: 1 addition & 0 deletions mm/2s2h/Enhancements/Cutscenes/Cutscenes.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ void RegisterSkipTatlInterrupts();

// StoryCutscenes
void RegisterSkipClockTowerOpen();
void RegisterSkipLearningSongOfTime();

void RegisterHideTitleCards();
void RegisterSkipEntranceCutscenes();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#include <libultraship/bridge.h>
#include <spdlog/spdlog.h>
#include "Enhancements/GameInteractor/GameInteractor.h"
#include "Enhancements/FrameInterpolation/FrameInterpolation.h"

extern "C" {
#include "z64.h"
#include "functions.h"
#include "variables.h"
#include "assets/objects/object_gi_melody/object_gi_melody.h"
extern SaveContext gSaveContext;
extern PlayState* gPlayState;
}

void RegisterSkipLearningSongOfTime() {
GameInteractor::Instance->RegisterGameHookForID<GameInteractor::ShouldVanillaBehavior>(
GI_VB_PLAY_TRANSITION_CS, [](GIVanillaBehavior _, bool* should, void* opt) {
// Cutscene that plays after picking up the Ocarina of Time.
if (gSaveContext.save.entrance == ENTRANCE(CUTSCENE, 0) && gSaveContext.save.cutsceneIndex == 0xFFF2 &&
CVarGetInteger("gEnhancements.Cutscenes.SkipStoryCutscenes", 0)) {
gSaveContext.save.playerForm = PLAYER_FORM_DEKU;
gSaveContext.save.entrance = ENTRANCE(CLOCK_TOWER_ROOFTOP, 1);
gSaveContext.save.cutsceneIndex = 0;
GameInteractor::Instance->events.emplace_back(
GIEventGiveItem{ .showGetItemCutscene = true,
.getItemText = "You recieved the Song of Time",
.drawItem =
[]() {
OPEN_DISPS(gPlayState->state.gfxCtx);

Gfx_SetupDL25_Xlu(gPlayState->state.gfxCtx);

gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gPlayState->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetEnvColor(POLY_XLU_DISP++, 200, 255, 0, 255);
gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gGiSongNoteDL);

CLOSE_DISPS(gPlayState->state.gfxCtx);
},
.giveItem = []() { SET_QUEST_ITEM(QUEST_SONG_TIME); } });
}
});
}
Loading
Loading