mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-09-29 03:17:52 -04:00
Replace tabs with spaces (#7223)
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
name: no-tabs
|
||||
on: [pull_request]
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
no-tabs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- name: Check for tabs in C/C++ sources
|
||||
run: ./scripts/check-no-tabs.sh
|
||||
@@ -1,6 +1,6 @@
|
||||
# Local hooks run on commit: clang-format for staged C/C++ in soh/ (using a
|
||||
# pinned 14.x downloaded by pre-commit), and the JSON asset lint. Scopes match
|
||||
# run-clang-format.sh / scripts/lint-json.py and CI.
|
||||
# pinned 14.x downloaded by pre-commit), the tab and JSON asset lints. Scopes
|
||||
# match run-clang-format.sh / scripts/lint-json.py and CI.
|
||||
# pre-commit install --install-hooks # enable (downloads clang-format up front)
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/mirrors-clang-format
|
||||
@@ -17,3 +17,10 @@ repos:
|
||||
language: system
|
||||
files: '^soh/assets/custom/.*\.json$'
|
||||
pass_filenames: false
|
||||
- id: no-tabs
|
||||
name: check staged C/C++ for tabs
|
||||
entry: scripts/check-no-tabs.sh
|
||||
language: system
|
||||
files: '^soh/.*\.(c|cpp|h|hpp)$'
|
||||
exclude: '^soh/include/'
|
||||
pass_filenames: false
|
||||
|
||||
+10
-2
@@ -63,12 +63,20 @@ JSON in `soh/assets/custom` checked by CI with:
|
||||
./scripts/lint-json.sh --fix # reformat in place
|
||||
```
|
||||
|
||||
## No tabs
|
||||
|
||||
C/C++ outside soh/include is indented with spaces, checked by CI with:
|
||||
|
||||
```sh
|
||||
./scripts/check-no-tabs.sh # check, prints file:line for each tab
|
||||
```
|
||||
|
||||
## Optional: format on commit
|
||||
|
||||
The repo ships a [pre-commit](https://pre-commit.com/) config
|
||||
(`.pre-commit-config.yaml`) that auto-formats staged C/C++ with a pinned 14.x
|
||||
and runs the JSON lint on staged assets before each commit, so you never get
|
||||
caught by the CI checks. With pre-commit
|
||||
and runs the tab and JSON lints on staged files before each commit, so you
|
||||
never get caught by the CI checks. With pre-commit
|
||||
[installed](https://pre-commit.com/#install), enable it once:
|
||||
|
||||
```bash
|
||||
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
# Fail if any C/C++ source in soh/ outside soh/include contains a tab.
|
||||
|
||||
cd "$(dirname "$0")/.." || exit 2
|
||||
|
||||
if git grep -n "$(printf '\t')" -- 'soh/*.c' 'soh/*.cpp' 'soh/*.h' 'soh/*.hpp' ':!soh/include'; then
|
||||
echo "replace tabs with spaces"
|
||||
exit 1
|
||||
fi
|
||||
@@ -1690,7 +1690,7 @@ void StaticData::HintTable_Init() {
|
||||
hintTextTable[RHT_JUNK57] = HintText(CustomMessage("They say Ganon's tail is vulnerable to nuts, arrows, swords, explosives, hammers...^...sticks, seeds, "
|
||||
"boomerangs...^...rods, shovels, iron balls, angry bees...",
|
||||
/*german*/ "Man erzählt sich, Ganons Schwanz sei verwundbar durch Nüsse, Pfeile, Schwerter...^...Explosives, Hämmer, "
|
||||
"Stöcke...^...Kerne, Bumerangs, Schaufeln, Eisenkugeln, wütende Bienen...",
|
||||
"Stöcke...^...Kerne, Bumerangs, Schaufeln, Eisenkugeln, wütende Bienen...",
|
||||
/*french*/ "Selon moi, la queue de Ganon est vulnérable aux noix, flèches, épées, bombes, marteaux...^...bâtons, "
|
||||
"graines, boomerangs...^...baguettes, pelles, boulets de fer, abeilles enragées..."));
|
||||
|
||||
@@ -2031,7 +2031,7 @@ void StaticData::HintTable_Init() {
|
||||
{QM_YELLOW}, {}, TEXTBOX_TYPE_BLUE));
|
||||
|
||||
hintTextTable[RHT_BRIDGE_GREG_HINT] = HintText(CustomMessage("$gThe awakened ones will await for the Hero to find #Greg#.^",
|
||||
/*german*/ "$gDie Weisen werden darauf&warten, daß der Held&#Greg# findet.^",
|
||||
/*german*/ "$gDie Weisen werden darauf&warten, daß der Held&#Greg# findet.^",
|
||||
/*french*/ "$gLes êtres de sagesse attendront le héros muni de #Greg#.^",
|
||||
{QM_GREEN}, {}, TEXTBOX_TYPE_BLUE));
|
||||
|
||||
@@ -2342,13 +2342,13 @@ void StaticData::HintTable_Init() {
|
||||
{QM_GREEN, QM_RED}));
|
||||
|
||||
hintTextTable[RHT_LOACH_HINT] = HintText(CustomMessage("What?^You wanna know about the&%rHyrule Loach%w?^It's a big fish, but it's so rare that I'll give %g[[1]]%w to anyone who catches it. Seriously!",
|
||||
/*german*/ "Was?^Du willst etwas über die&%rhylianische Forelle%w wissen?&Es ist ein riesiger Fisch,&der unfassbar selten ist!^Wenn Du mir eine bringst, |springt|springen| für Dich&%g[[1]]%w dabei raus.&Ganz im Ernst!",
|
||||
/*german*/ "Was?^Du willst etwas über die&%rhylianische Forelle%w wissen?&Es ist ein riesiger Fisch,&der unfassbar selten ist!^Wenn Du mir eine bringst, |springt|springen| für Dich&%g[[1]]%w dabei raus.&Ganz im Ernst!",
|
||||
/*french*/ "Quoi?&Tu veux en savoir plus sur le&%rBrochet d'Hyrule%w?^C'est un gros poisson, mais il&est si rare que je donne&%g[[1]]%w&à celui qui l'attrape.^Ouais, j'suis sérieux!",
|
||||
{QM_RED}));
|
||||
|
||||
hintTextTable[RHT_FISHING_POLE_HINT] = HintText(CustomMessage("^If I remember correctly, I lost it somewhere in #[[1]]#...&Let me know if you find it!",
|
||||
/*german*/ "Wenn ich mich recht erinnere,&habe ich sie irgendwo&#[[1]]#&verloren...&Sag mir Bescheid, wenn Du sie findest!",
|
||||
/*french*/ "Si je me souviens bien, il me&semble que je l'ai perdue&quelque part dans&#[[1]]#...^Fais-moi signe si jamais&tu la trouves!",
|
||||
/*german*/ "Wenn ich mich recht erinnere,&habe ich sie irgendwo&#[[1]]#&verloren...&Sag mir Bescheid, wenn Du sie findest!",
|
||||
/*french*/ "Si je me souviens bien, il me&semble que je l'ai perdue&quelque part dans&#[[1]]#...^Fais-moi signe si jamais&tu la trouves!",
|
||||
{QM_RED}));
|
||||
|
||||
/*--------------------------
|
||||
@@ -2365,7 +2365,7 @@ void StaticData::HintTable_Init() {
|
||||
---------------------------*/
|
||||
|
||||
hintTextTable[RHT_HBA_HINT_SIGN] = HintText(CustomMessage("#Horseback Archery# Range Prizes:&1000: #[[1]]#&1500: #[[2]]#^@'s Record: #" + CustomMessage::POINTS(HS_HORSE_ARCHERY) + "#",
|
||||
/*german*/ "#Bogenschießen zu Pferde#&Schießstandpreise:&1000: #[[1]]#^1500: #[[2]]#^@'s Rekord: #" + CustomMessage::POINTS(HS_HORSE_ARCHERY) + "#",
|
||||
/*german*/ "#Bogenschießen zu Pferde#&Schießstandpreise:&1000: #[[1]]#^1500: #[[2]]#^@'s Rekord: #" + CustomMessage::POINTS(HS_HORSE_ARCHERY) + "#",
|
||||
/*french*/ "Récompenses de l'#Archerie Montée#:&1000: #[[1]]#&1500: #[[2]]#^Record de @: #" + CustomMessage::POINTS(HS_HORSE_ARCHERY) + "#",
|
||||
{QM_RED, QM_GREEN, QM_GREEN, QM_GREEN}, {}, TEXTBOX_TYPE_WOODEN));
|
||||
|
||||
@@ -2493,7 +2493,7 @@ void StaticData::HintTable_Init() {
|
||||
hintTextTable[RHT_GANON_JOKE06] = HintText(CustomMessage("Zelda is probably going to do something stupid, like send you back to your own timeline.^So this is "
|
||||
"quite meaningless. Do you really want to save this moron?",
|
||||
/*german*/ "Zelda wird wahrscheinlich wieder etwas Dummes tun, wie Dich in Deine eigene Zeit zurück zu schicken."
|
||||
"^Ziemlich sinnlos wenn Du mich fragst. Willst Du diesen Schwachkopf wirklich retten?",
|
||||
"^Ziemlich sinnlos wenn Du mich fragst. Willst Du diesen Schwachkopf wirklich retten?",
|
||||
/*french*/ "Même si je suis vaincu... Zelda te renverra dans ton ère, et je reviendrai conquérir!^Telle est la "
|
||||
"prophécie d'Hyrule Historia!"));
|
||||
// /*spanish*/Seguro que Zelda trata de hacer alguna tontería, como enviarte de vuelta a tu línea temporal.^No tiene
|
||||
|
||||
@@ -325,7 +325,7 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
||||
hintTextTable[RHT_DODONGOS_CAVERN_GRASS] = HintText(CustomMessage("They say that some #grass in Dodongo's Cavern# hides #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß etwas #Gras in Dodongos Höhle# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, de l'#herbe dans la Caverne Dodongo# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
|
||||
hintTextTable[RHT_CRATE_DODONGOS_CAVERN] = HintText(CustomMessage("They say that a #crate in Dodongo's Cavern# contains #[[1]]#.",
|
||||
/*german*/ "Man erzählt sich, daß eine #Kiste in Dodongos Höhle# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans la Caverne Dodongo# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
@@ -335,7 +335,7 @@ void Rando::StaticData::RegisterCrateLocations() {
|
||||
registered = true;
|
||||
// clang-format off
|
||||
// Overworld Crates
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
locationTable[RC_GV_FREESTANDING_POH_CRATE] = Location::Crate(RC_GV_FREESTANDING_POH_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-350, 1480), "Freestanding PoH Crate", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_FREESTANDING_POH_CRATE));
|
||||
locationTable[RC_GV_NEAR_COW_CRATE] = Location::Crate(RC_GV_NEAR_COW_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, TWO_ACTOR_PARAMS(-449, 123), "Near Cow Crate", RHT_CRATE_GERUDO_VALLEY, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GV_NEAR_COW_CRATE));
|
||||
locationTable[RC_GF_ABOVE_JAIL_CRATE] = Location::Crate(RC_GF_ABOVE_JAIL_CRATE, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(51, -2997), "Above Jail Crate", RHT_CRATE_GERUDOS_FORTRESS, RG_PURPLE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_ABOVE_JAIL_CRATE));
|
||||
@@ -420,7 +420,7 @@ void Rando::StaticData::RegisterCrateLocations() {
|
||||
locationTable[RC_GF_FAR_AWAY_CRATE_ADULT] = Location::NLCrate(RC_GF_FAR_AWAY_CRATE_ADULT, RCQUEST_BOTH, RCAREA_GERUDO_FORTRESS, SCENE_GERUDOS_FORTRESS, TWO_ACTOR_PARAMS(-4051, -3429), "Far Away Crate Adult", RHT_CRATE_GERUDOS_FORTRESS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_FAR_AWAY_CRATE_ADULT));
|
||||
|
||||
// MQ Crates
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
locationTable[RC_DEKU_TREE_MQ_LOBBY_CRATE] = Location::Crate(RC_DEKU_TREE_MQ_LOBBY_CRATE, RCQUEST_MQ, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(279, 333), "MQ Lobby Crate", RHT_CRATE_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_MQ_LOBBY_CRATE));
|
||||
locationTable[RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_1] = Location::Crate(RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_1, RCQUEST_MQ, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(-805, -62), "MQ Slingshot Room Crate 1", RHT_CRATE_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_1));
|
||||
locationTable[RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_2] = Location::Crate(RC_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_2, RCQUEST_MQ, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(-805, -2), "MQ Slingshot Room Crate 2", RHT_CRATE_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_MQ_SLINGSHOT_ROOM_CRATE_2));
|
||||
@@ -563,7 +563,7 @@ void Rando::StaticData::RegisterCrateLocations() {
|
||||
locationTable[RC_GERUDO_TRAINING_GROUND_MQ_MAZE_CRATE] = Location::Crate(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_CRATE, RCQUEST_MQ, RCAREA_GERUDO_TRAINING_GROUND, SCENE_GERUDO_TRAINING_GROUND, TWO_ACTOR_PARAMS(-59, -1598), "MQ Maze Crate", RHT_CRATE_GERUDO_TRAINING_GROUND, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GERUDO_TRAINING_GROUND_MQ_MAZE_CRATE));
|
||||
|
||||
// Small Crates
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
locationTable[RC_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_1] = Location::SmallCrate(RC_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_1, RCQUEST_VANILLA, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-141, -1945), "Platform Room Small Crate 1", RHT_CRATE_JABU_JABU, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_1));
|
||||
locationTable[RC_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_2] = Location::SmallCrate(RC_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_2, RCQUEST_VANILLA, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-189, -1925), "Platform Room Small Crate 2", RHT_CRATE_JABU_JABU, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_PLATFORM_ROOM_SMALL_CRATE_2));
|
||||
locationTable[RC_FIRE_TEMPLE_AFTER_HAMMER_SMALL_CRATE_1] = Location::SmallCrate(RC_FIRE_TEMPLE_AFTER_HAMMER_SMALL_CRATE_1, RCQUEST_VANILLA, RCAREA_FIRE_TEMPLE, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2030, -1172), "After Hammer Small Crate 1", RHT_CRATE_FIRE_TEMPLE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_AFTER_HAMMER_SMALL_CRATE_1));
|
||||
|
||||
@@ -231,7 +231,7 @@ void Rando::StaticData::RegisterGrassLocations() {
|
||||
registered = true;
|
||||
// clang-format off
|
||||
// Overworld Grass
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
locationTable[RC_KF_CHILD_GRASS_1] = Location::Grass(RC_KF_CHILD_GRASS_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(678, 596), "Child Grass 1", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_1));
|
||||
locationTable[RC_KF_CHILD_GRASS_2] = Location::Grass(RC_KF_CHILD_GRASS_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(594, 542), "Child Grass 2", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_2));
|
||||
locationTable[RC_KF_CHILD_GRASS_3] = Location::Grass(RC_KF_CHILD_GRASS_3, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(572, 603), "Child Grass 3", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_3));
|
||||
|
||||
@@ -334,7 +334,7 @@ void Rando::StaticData::RegisterWonderItemLocations() {
|
||||
registered = true;
|
||||
// clang-format off
|
||||
// Overworld Wonder Items
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Hint Text Key Vanilla Spoiler Collection Check
|
||||
locationTable[RC_KF_WONDER_TRAINING_1] = Location::WonderItem(RC_KF_WONDER_TRAINING_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-747, 951), "Wonder Training 1", RHT_WONDER_ITEM_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_WONDER_TRAINING_1));
|
||||
locationTable[RC_KF_WONDER_TRAINING_2] = Location::WonderItem(RC_KF_WONDER_TRAINING_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-677, 899), "Wonder Training 2", RHT_WONDER_ITEM_KOKIRI_FOREST, RG_BLUE_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_WONDER_TRAINING_2));
|
||||
locationTable[RC_KF_WONDER_TRAINING_3] = Location::WonderItem(RC_KF_WONDER_TRAINING_3, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-698, 830), "Wonder Training 3", RHT_WONDER_ITEM_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_WONDER_TRAINING_3));
|
||||
|
||||
@@ -312,10 +312,10 @@ void RegionTable_Init_BottomOfTheWell() {
|
||||
//Instead of blowing up the boulder, you can aim through the lower left side with sling(either age) or as child with bow
|
||||
//Not even bow extension seems to get adult's bow to work
|
||||
//this would be a trick
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, (AnyAgeTime([]{return logic->BlastOrSmash();}) && logic->CanHitEyeTargets()) ||
|
||||
(ctx->GetTrickOption(RT_BOULDER_COLLISION) && logic->IsChild ? logic->CanHitEyeTargets() : logic->CanUse(RG_FAIRY_SLINGSHOT))),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_BOMB_LEFT_HEART, logic->HasExplosives()),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_BOMB_RIGHT_HEART, logic->HasExplosives()),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, (AnyAgeTime([]{return logic->BlastOrSmash();}) && logic->CanHitEyeTargets()) ||
|
||||
(ctx->GetTrickOption(RT_BOULDER_COLLISION) && logic->IsChild ? logic->CanHitEyeTargets() : logic->CanUse(RG_FAIRY_SLINGSHOT))),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_BOMB_LEFT_HEART, logic->HasExplosives()),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_BOMB_RIGHT_HEART, logic->HasExplosives()),
|
||||
LOCATION(RC_BOTW_MQ_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_MQ_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_MQ_BOULDER_3, logic->BlastOrSmash()),
|
||||
|
||||
+14
-14
@@ -11,21 +11,21 @@ void RegionTable_Init_DeathMountainTrail() {
|
||||
EVENT_ACCESS(LOGIC_FAIRY_ACCESS, logic->IsChild && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_DMT_CHEST, (logic->BlastOrSmash() || (logic->IsChild && (ctx->GetTrickOption(RT_DMT_BOMBABLE) || logic->BunnyHood()) && logic->HasItem(RG_GORONS_BRACELET))) && logic->HasItem(RG_OPEN_CHEST)),
|
||||
LOCATION(RC_DMT_CHEST, (logic->BlastOrSmash() || (logic->IsChild && (ctx->GetTrickOption(RT_DMT_BOMBABLE) || logic->BunnyHood()) && logic->HasItem(RG_GORONS_BRACELET))) && logic->HasItem(RG_OPEN_CHEST)),
|
||||
//adult and bunny jumps off the nearby ledge and over the fence
|
||||
LOCATION(RC_DMT_FREESTANDING_POH, logic->IsAdult || logic->TakeDamage() || logic->CanUse(RG_HOVER_BOOTS) || logic->BunnyHood()),
|
||||
LOCATION(RC_DMT_GS_BEAN_PATCH, logic->CanSpawnSoilSkull(RG_DEATH_MOUNTAIN_TRAIL_BEAN_SOUL) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET) || (ctx->GetTrickOption(RT_DMT_SOIL_GS) && (logic->TakeDamage() || logic->CanUse(RG_HOVER_BOOTS)) && logic->CanUse(RG_BOOMERANG)))),
|
||||
LOCATION(RC_DMT_GS_NEAR_KAK, logic->BlastOrSmash() && (logic->HasItem(RG_CLIMB) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_BOOMERANG))),
|
||||
LOCATION(RC_DMT_GS_ABOVE_DODONGOS_CAVERN, logic->IsAdult && logic->CanGetNightTimeGS() &&
|
||||
((logic->CanUse(RG_MEGATON_HAMMER) || (ctx->GetTrickOption(RT_ITEM_EXTENSION) && logic->CanUse(RG_HOOKSHOT)) || (ctx->GetTrickOption(RT_BOULDER_COLLISION) && logic->CanUse(RG_LONGSHOT)) || (ctx->GetTrickOption(RT_DMT_JS_LOWER_GS) && logic->CanJumpslash())) ||
|
||||
((ctx->GetTrickOption(RT_DMT_BEAN_LOWER_GS) && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN)) || (ctx->GetTrickOption(RT_DMT_HOVERS_LOWER_GS) && logic->CanUse(RG_HOVER_BOOTS)) &&
|
||||
(logic->HasExplosives() || logic->CanUse(RG_DINS_FIRE) || ((ctx->GetTrickOption(RT_BOULDER_COLLISION) || ctx->GetTrickOption(RT_ITEM_EXTENSION)) && (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_FAIRY_SLINGSHOT))) || logic->CanJumpslash())))),
|
||||
LOCATION(RC_DMT_BLUE_RUPEE, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_RED_RUPEE, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_1, logic->IsChild && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_2, logic->IsChild && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_3, logic->IsChild && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_FLAG_SUN_FAIRY, logic->CanUse(RG_SUNS_SONG)),
|
||||
LOCATION(RC_DMT_FREESTANDING_POH, logic->IsAdult || logic->TakeDamage() || logic->CanUse(RG_HOVER_BOOTS) || logic->BunnyHood()),
|
||||
LOCATION(RC_DMT_GS_BEAN_PATCH, logic->CanSpawnSoilSkull(RG_DEATH_MOUNTAIN_TRAIL_BEAN_SOUL) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET) || (ctx->GetTrickOption(RT_DMT_SOIL_GS) && (logic->TakeDamage() || logic->CanUse(RG_HOVER_BOOTS)) && logic->CanUse(RG_BOOMERANG)))),
|
||||
LOCATION(RC_DMT_GS_NEAR_KAK, logic->BlastOrSmash() && (logic->HasItem(RG_CLIMB) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_BOOMERANG))),
|
||||
LOCATION(RC_DMT_GS_ABOVE_DODONGOS_CAVERN, logic->IsAdult && logic->CanGetNightTimeGS() &&
|
||||
((logic->CanUse(RG_MEGATON_HAMMER) || (ctx->GetTrickOption(RT_ITEM_EXTENSION) && logic->CanUse(RG_HOOKSHOT)) || (ctx->GetTrickOption(RT_BOULDER_COLLISION) && logic->CanUse(RG_LONGSHOT)) || (ctx->GetTrickOption(RT_DMT_JS_LOWER_GS) && logic->CanJumpslash())) ||
|
||||
((ctx->GetTrickOption(RT_DMT_BEAN_LOWER_GS) && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN)) || (ctx->GetTrickOption(RT_DMT_HOVERS_LOWER_GS) && logic->CanUse(RG_HOVER_BOOTS)) &&
|
||||
(logic->HasExplosives() || logic->CanUse(RG_DINS_FIRE) || ((ctx->GetTrickOption(RT_BOULDER_COLLISION) || ctx->GetTrickOption(RT_ITEM_EXTENSION)) && (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_FAIRY_SLINGSHOT))) || logic->CanJumpslash())))),
|
||||
LOCATION(RC_DMT_BLUE_RUPEE, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_RED_RUPEE, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_1, logic->IsChild && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_2, logic->IsChild && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_3, logic->IsChild && logic->BeanPlanted(LOGIC_PLANT_DEATH_MOUNTAIN_TRAIL_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_FLAG_SUN_FAIRY, logic->CanUse(RG_SUNS_SONG)),
|
||||
LOCATION(RC_DMT_ROCK_1, logic->CanBreakRocks()),
|
||||
LOCATION(RC_DMT_ROCK_2, logic->CanBreakRocks()),
|
||||
LOCATION(RC_DMT_ROCK_3, logic->CanBreakRocks()),
|
||||
|
||||
@@ -207,13 +207,13 @@ void RegionTable_Init_GerudoFortress() {
|
||||
}, {
|
||||
//Exits
|
||||
//there's a trick to reach RR_GF_LONG_ROOF
|
||||
ENTRANCE(RR_GF_OUTSKIRTS, true),
|
||||
ENTRANCE(RR_GF_NEAR_CHEST, logic->CanUse(RG_LONGSHOT)),
|
||||
ENTRANCE(RR_GF_BELOW_CHEST, logic->TakeDamage()),
|
||||
ENTRANCE(RR_GF_JAIL_WINDOW, logic->CanUse(RG_HOOKSHOT)),
|
||||
ENTRANCE(RR_GF_OUTSKIRTS, true),
|
||||
ENTRANCE(RR_GF_NEAR_CHEST, logic->CanUse(RG_LONGSHOT)),
|
||||
ENTRANCE(RR_GF_BELOW_CHEST, logic->TakeDamage()),
|
||||
ENTRANCE(RR_GF_JAIL_WINDOW, logic->CanUse(RG_HOOKSHOT)),
|
||||
ENTRANCE(RR_TH_BREAK_ROOM_UPPER_CORRIDOR, true),
|
||||
ENTRANCE(RR_GF_TOWER, ctx->GetTrickOption(RT_GF_ADULT_SKIP_WASTELAND_GATE) && logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS) && logic->CanJumpslash() && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD)),
|
||||
ENTRANCE(RR_GF_OUTSIDE_GATE, ctx->GetTrickOption(RT_GF_ADULT_SKIP_WASTELAND_GATE) && logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS) && logic->CanJumpslash()),
|
||||
ENTRANCE(RR_GF_TOWER, ctx->GetTrickOption(RT_GF_ADULT_SKIP_WASTELAND_GATE) && logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS) && logic->CanJumpslash() && logic->HasItem(RG_GERUDO_MEMBERSHIP_CARD)),
|
||||
ENTRANCE(RR_GF_OUTSIDE_GATE, ctx->GetTrickOption(RT_GF_ADULT_SKIP_WASTELAND_GATE) && logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS) && logic->CanJumpslash()),
|
||||
});
|
||||
|
||||
areaTable[RR_GF_JAIL_WINDOW] = Region("GF Jail Window", SCENE_GERUDOS_FORTRESS, {}, {}, {
|
||||
|
||||
@@ -191,9 +191,9 @@ void RegionTable_Init_HyruleField() {
|
||||
LOCATION(RC_HF_CENTER_EXIT_ARROW_SIGN, logic->CanRead()),
|
||||
LOCATION(RC_HF_RIVER_EXIT_ARROW_SIGN, logic->CanRead()),
|
||||
LOCATION(RC_HF_STAIRS_EXIT_ARROW_SIGN, logic->CanRead()),
|
||||
LOCATION(RC_HF_WONDER_BRIDGE_1, logic->IsChild),
|
||||
LOCATION(RC_HF_WONDER_BRIDGE_2, logic->IsChild),
|
||||
LOCATION(RC_HF_WONDER_BRIDGE_3, logic->IsChild),
|
||||
LOCATION(RC_HF_WONDER_BRIDGE_1, logic->IsChild),
|
||||
LOCATION(RC_HF_WONDER_BRIDGE_2, logic->IsChild),
|
||||
LOCATION(RC_HF_WONDER_BRIDGE_3, logic->IsChild),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_LW_BRIDGE, true),
|
||||
|
||||
@@ -90,14 +90,14 @@ void RegionTable_Init_KokiriForest() {
|
||||
LOCATION(RC_KF_TRAINING_CENTER_ENTRANCE_ARROW_SIGN, logic->IsChild && logic->CanRead()),
|
||||
LOCATION(RC_KF_INNER_TRAINING_CENTER_ARROW_SIGN, logic->IsChild && logic->CanRead()),
|
||||
LOCATION(RC_KF_KNOW_IT_ALL_BROTHERS_HOUSE_ARROW_SIGN, logic->CanRead()),
|
||||
LOCATION(RC_KF_WONDER_TRAINING_1, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_TRAINING_2, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_TRAINING_3, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_SIGN, logic->IsChild && logic->CanJumpslashExceptHammer()),
|
||||
LOCATION(RC_KF_WONDER_PLATFORMS_1, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_PLATFORMS_2, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_TRAINING_1, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_TRAINING_2, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_TRAINING_3, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_SIGN, logic->IsChild && logic->CanJumpslashExceptHammer()),
|
||||
LOCATION(RC_KF_WONDER_PLATFORMS_1, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_PLATFORMS_2, logic->IsChild),
|
||||
//Technically bad logic, because we can move Mido out of logic, but then we already have KSword...
|
||||
LOCATION(RC_MIDO_HINT, !ctx->GetOption(RSK_FOREST).Is(RO_CLOSED_FOREST_OFF) && logic->IsChild && logic->HasItem(RG_SPEAK_KOKIRI)),
|
||||
LOCATION(RC_MIDO_HINT, !ctx->GetOption(RSK_FOREST).Is(RO_CLOSED_FOREST_OFF) && logic->IsChild && logic->HasItem(RG_SPEAK_KOKIRI)),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_KF_BOULDER_LOOP, logic->CanUse(RG_CRAWL)),
|
||||
@@ -161,8 +161,8 @@ void RegionTable_Init_KokiriForest() {
|
||||
LOCATION(RC_KF_CHILD_GRASS_MAZE_3, logic->IsChild && logic->CanCutShrubs()),
|
||||
LOCATION(RC_KF_AFTER_CRAWLSPACE_RECTANGLE_SIGN, logic->IsChild && logic->CanRead()),
|
||||
LOCATION(RC_KF_BOULDER_MAZE_RECTANGLE_SIGN, logic->IsChild && logic->CanRead()),
|
||||
LOCATION(RC_KF_WONDER_CRAWL_GRASS_1, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_CRAWL_GRASS_2, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_CRAWL_GRASS_1, logic->IsChild),
|
||||
LOCATION(RC_KF_WONDER_CRAWL_GRASS_2, logic->IsChild),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_KOKIRI_FOREST, logic->CanUse(RG_CRAWL)),
|
||||
@@ -209,7 +209,7 @@ void RegionTable_Init_KokiriForest() {
|
||||
LOCATION(RC_KF_MIDOS_TOP_RIGHT_CHEST, logic->HasItem(RG_OPEN_CHEST)),
|
||||
LOCATION(RC_KF_MIDOS_BOTTOM_LEFT_CHEST, logic->HasItem(RG_OPEN_CHEST)),
|
||||
LOCATION(RC_KF_MIDOS_BOTTOM_RIGHT_CHEST, logic->HasItem(RG_OPEN_CHEST)),
|
||||
LOCATION(RC_MIDO_HINT, logic->Get(LOGIC_SHOWED_MIDO_SWORD_AND_SHIELD) && logic->IsChild && logic->HasItem(RG_SPEAK_KOKIRI)),
|
||||
LOCATION(RC_MIDO_HINT, logic->Get(LOGIC_SHOWED_MIDO_SWORD_AND_SHIELD) && logic->IsChild && logic->HasItem(RG_SPEAK_KOKIRI)),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_KOKIRI_FOREST, true),
|
||||
|
||||
@@ -11,20 +11,20 @@ void RegionTable_Init_LonLonRanch() {
|
||||
EVENT_ACCESS(LOGIC_LINKS_COW, logic->HasItem(RG_CHILD_WALLET) && logic->HasItem(RG_SPEAK_HYLIAN) && logic->CanUse(RG_EPONAS_SONG) && logic->IsAdult && logic->AtDay),
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_SONG_FROM_MALON, logic->IsChild && logic->Get(LOGIC_MALON_RETURNED_FROM_CASTLE) && logic->HasItem(RG_SPEAK_HYLIAN) && logic->HasItem(RG_FAIRY_OCARINA) && logic->AtDay),
|
||||
LOCATION(RC_LLR_GS_TREE, logic->IsChild && logic->CanBonkTrees() && (logic->HasItem(RG_POWER_BRACELET) || logic->CanKillEnemy(RE_GOLD_SKULLTULA))),
|
||||
LOCATION(RC_LLR_GS_RAIN_SHED, logic->IsChild && logic->CanGetNightTimeGS() && (logic->HasItem(RG_POWER_BRACELET) || logic->CanKillEnemy(RE_GOLD_SKULLTULA))),
|
||||
LOCATION(RC_LLR_GS_HOUSE_WINDOW, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_LLR_GS_BACK_WALL, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_LLR_FRONT_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_FRONT_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_FRONT_POT_3, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_FRONT_POT_4, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_RAIN_SHED_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_RAIN_SHED_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_RAIN_SHED_POT_3, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_NEAR_TREE_CRATE, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_LLR_TREE, logic->IsChild && logic->CanBonkTrees()),
|
||||
LOCATION(RC_SONG_FROM_MALON, logic->IsChild && logic->Get(LOGIC_MALON_RETURNED_FROM_CASTLE) && logic->HasItem(RG_SPEAK_HYLIAN) && logic->HasItem(RG_FAIRY_OCARINA) && logic->AtDay),
|
||||
LOCATION(RC_LLR_GS_TREE, logic->IsChild && logic->CanBonkTrees() && (logic->HasItem(RG_POWER_BRACELET) || logic->CanKillEnemy(RE_GOLD_SKULLTULA))),
|
||||
LOCATION(RC_LLR_GS_RAIN_SHED, logic->IsChild && logic->CanGetNightTimeGS() && (logic->HasItem(RG_POWER_BRACELET) || logic->CanKillEnemy(RE_GOLD_SKULLTULA))),
|
||||
LOCATION(RC_LLR_GS_HOUSE_WINDOW, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_LLR_GS_BACK_WALL, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_LLR_FRONT_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_FRONT_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_FRONT_POT_3, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_FRONT_POT_4, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_RAIN_SHED_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_RAIN_SHED_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_RAIN_SHED_POT_3, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_LLR_NEAR_TREE_CRATE, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_LLR_TREE, logic->IsChild && logic->CanBonkTrees()),
|
||||
LOCATION(RC_LLR_WONDER_BIG_FENCE, logic->IsAdult && logic->CanUse(RG_EPONAS_SONG) && (logic->HasItem(RG_CHILD_WALLET) || logic->Get(LOGIC_FREED_EPONA))),
|
||||
LOCATION(RC_LLR_WONDER_SMALL_FENCE, logic->IsAdult && logic->CanUse(RG_EPONAS_SONG) && (logic->HasItem(RG_CHILD_WALLET) || logic->Get(LOGIC_FREED_EPONA))),
|
||||
}, {
|
||||
|
||||
@@ -10,32 +10,32 @@ void RegionTable_Init_ZorasFountain() {
|
||||
EVENT_ACCESS(LOGIC_FAIRY_ACCESS, logic->CallGossipFairyExceptSuns() || (logic->CanUse(RG_STICKS) && logic->AtDay)),
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_ZF_GS_TREE, logic->IsChild && logic->CanBonkTrees() && (logic->HasItem(RG_POWER_BRACELET) || logic->CanKillEnemy(RE_GOLD_SKULLTULA))),
|
||||
LOCATION(RC_ZF_GS_ABOVE_THE_LOG, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_ZF_FAIRY_GOSSIP_STONE_FAIRY, logic->CallGossipFairyExceptSuns()),
|
||||
LOCATION(RC_ZF_FAIRY_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_ZF_JABU_GOSSIP_STONE_FAIRY, logic->CallGossipFairyExceptSuns()),
|
||||
LOCATION(RC_ZF_JABU_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_ZF_FAIRY_GOSSIP_STONE, true),
|
||||
LOCATION(RC_ZF_JABU_GOSSIP_STONE, true),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_3, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_4, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_GS_TREE, logic->IsChild && logic->CanBonkTrees() && (logic->HasItem(RG_POWER_BRACELET) || logic->CanKillEnemy(RE_GOLD_SKULLTULA))),
|
||||
LOCATION(RC_ZF_GS_ABOVE_THE_LOG, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_ZF_FAIRY_GOSSIP_STONE_FAIRY, logic->CallGossipFairyExceptSuns()),
|
||||
LOCATION(RC_ZF_FAIRY_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_ZF_JABU_GOSSIP_STONE_FAIRY, logic->CallGossipFairyExceptSuns()),
|
||||
LOCATION(RC_ZF_JABU_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_ZF_FAIRY_GOSSIP_STONE, true),
|
||||
LOCATION(RC_ZF_JABU_GOSSIP_STONE, true),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_3, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_NEAR_JABU_POT_4, logic->IsChild && logic->CanBreakPots()),
|
||||
LOCATION(RC_ZF_BOULDER, logic->BlastOrSmash()),
|
||||
LOCATION(RC_ZF_SILVER_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_ZF_UNDERGROUND_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS) && logic->BlastOrSmash()),
|
||||
LOCATION(RC_ZF_TREE, logic->IsChild && logic->CanBonkTrees()),
|
||||
LOCATION(RC_ZF_BUSH_1, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_2, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_3, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_4, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_5, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_6, logic->IsChild),
|
||||
LOCATION(RC_ZF_LOG_BUTTERFLY_FAIRY, logic->IsChild && logic->AtDay && logic->CanUse(RG_STICKS)),
|
||||
LOCATION(RC_ZF_TREE, logic->IsChild && logic->CanBonkTrees()),
|
||||
LOCATION(RC_ZF_BUSH_1, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_2, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_3, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_4, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_5, logic->IsChild),
|
||||
LOCATION(RC_ZF_BUSH_6, logic->IsChild),
|
||||
LOCATION(RC_ZF_LOG_BUTTERFLY_FAIRY, logic->IsChild && logic->AtDay && logic->CanUse(RG_STICKS)),
|
||||
LOCATION(RC_ZF_JABU_JABU_PLATFORM_RECTANGLE_SIGN, logic->IsChild && logic->CanRead()),
|
||||
LOCATION(RC_ZF_ENTRANCE_ARROW_SIGN, logic->CanRead()),
|
||||
LOCATION(RC_ZF_WONDER_ROCK, logic->IsAdult && logic->ReachScarecrow()),
|
||||
LOCATION(RC_ZF_WONDER_ROCK, logic->IsAdult && logic->ReachScarecrow()),
|
||||
}, {
|
||||
//Exits
|
||||
ENTRANCE(RR_ZD_BEHIND_KING_ZORA, true),
|
||||
|
||||
+3
-4
@@ -35,10 +35,9 @@ f32 qNaN0x10000 = 0x7F810000;
|
||||
#pragma warning(disable : 4716)
|
||||
#endif
|
||||
|
||||
// void gSPTextureRectangle(Gfx* pkt, s32 xl, s32 yl, s32 xh, s32 yh, u32 tile, u32 s, s32 t, u32 dsdx, u32 dtdy)
|
||||
//{
|
||||
// __gSPTextureRectangle(pkt, xl, yl, xh, yh, tile, s, t, dsdx, dtdy);
|
||||
// }
|
||||
// void gSPTextureRectangle(Gfx* pkt, s32 xl, s32 yl, s32 xh, s32 yh, u32 tile, u32 s, s32 t, u32 dsdx, u32 dtdy) {
|
||||
// __gSPTextureRectangle(pkt, xl, yl, xh, yh, tile, s, t, dsdx, dtdy);
|
||||
//}
|
||||
|
||||
OSId osGetThreadId(OSThread* thread) {
|
||||
return 0;
|
||||
|
||||
@@ -428,7 +428,7 @@ s32 func_800AAA9C(View* view) {
|
||||
Matrix_MtxToMtxF(projection, &mf);
|
||||
osSyncPrintf("projection\n");
|
||||
for (i = 0; i < 4; i++) {
|
||||
osSyncPrintf(" %f %f %f %f\n", mf.mf[i][0], mf.mf[i][1], mf.mf[i][2], mf.mf[i][3]);
|
||||
osSyncPrintf("\t%f\t%f\t%f\t%f\n", mf.mf[i][0], mf.mf[i][1], mf.mf[i][2], mf.mf[i][3]);
|
||||
}
|
||||
osSyncPrintf("\n");
|
||||
}
|
||||
@@ -469,7 +469,7 @@ s32 func_800AAA9C(View* view) {
|
||||
Matrix_MtxToMtxF(view->viewingPtr, &mf);
|
||||
osSyncPrintf("viewing\n");
|
||||
for (i = 0; i < 4; i++) {
|
||||
osSyncPrintf(" %f %f %f %f\n", mf.mf[i][0], mf.mf[i][1], mf.mf[i][2], mf.mf[i][3]);
|
||||
osSyncPrintf("\t%f\t%f\t%f\t%f\n", mf.mf[i][0], mf.mf[i][1], mf.mf[i][2], mf.mf[i][3]);
|
||||
}
|
||||
osSyncPrintf("\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user