Skip to content

Commit 87ec16a

Browse files
committed
Finish out Level Logic.
1 parent 6bd41b4 commit 87ec16a

26 files changed

Lines changed: 374 additions & 343 deletions

src/port/Rando/Logic/Logic.h

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ extern std::map<RandoRegionId, RandoRegion> Regions;
7373

7474
// Logic Operators
7575
#define HAS_COURSE_STAR(course, act) (CheckCourseActStar(course, act))
76+
#define CAN_ACCESS_ACT(course, act) (CheckCourseActAccess(course, act))
7677
#define HAS_TARGET_STARS(count) (CheckTotalStars() >= count)
7778
#define CAN_USE(item) (CheckFlagUnlock(RF_##item))
7879

@@ -84,6 +85,32 @@ inline bool CheckCourseActStar(int16_t courseNum, int16_t starAct) {
8485
: gSaveBuffer.files[selectedFileNum][0].courseStars[courseNum] & (1 << starAct);
8586
}
8687

88+
inline bool CheckCourseActAccess(int16_t courseNum, int16_t starAct) {
89+
bool canAccessAct = false;
90+
int8_t courseStars = 0;
91+
92+
if (courseNum != COURSE_NONE && starAct < RA_ACT_06) {
93+
for (int s = (starAct + 1); s < RA_ACT_COIN; s++) {
94+
if ((gSaveBuffer.files[selectedFileNum][0].courseStars[COURSE_NUM_TO_INDEX(courseNum)] & (1 << s)) != 0) {
95+
return true;
96+
}
97+
}
98+
}
99+
100+
for (int i = 0; i < starAct; i++) {
101+
bool checkStar =
102+
(gSaveBuffer.files[selectedFileNum][0].courseStars[COURSE_NUM_TO_INDEX(courseNum)] & (1 << i)) != 0;
103+
// int16_t checkStar = courseNum == COURSE_NONE
104+
// ? gSaveBuffer.files[selectedFileNum][0].flags & (1 << i)
105+
// : gSaveBuffer.files[selectedFileNum][0].courseStars[COURSE_NUM_TO_INDEX(courseNum)] & (1 << i);
106+
if (checkStar == true) {
107+
courseStars++;
108+
}
109+
}
110+
111+
return courseStars == starAct ? true : false;
112+
}
113+
87114
inline int32_t CheckTotalStars() {
88115
return gMarioState->numStars;
89116
}

src/port/Rando/Logic/Regions/BigBoosHaunt.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,25 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_BBH] = RandoRegion{ .regionName = "Big Boo's Haunt", .levelId = LEVEL_BBH,
99
.checks = {
10-
CHECK(RC_BBH_BLUE_COIN_01, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
11-
CHECK(RC_BBH_BLUE_COIN_02, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
12-
CHECK(RC_BBH_BLUE_COIN_03, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
13-
CHECK(RC_BBH_BLUE_COIN_04, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
14-
CHECK(RC_BBH_RED_COIN_01, true),
15-
CHECK(RC_BBH_RED_COIN_02, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
16-
CHECK(RC_BBH_RED_COIN_03, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
17-
CHECK(RC_BBH_RED_COIN_04, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
18-
CHECK(RC_BBH_RED_COIN_05, true),
19-
CHECK(RC_BBH_RED_COIN_06, true),
20-
CHECK(RC_BBH_RED_COIN_07, true),
21-
CHECK(RC_BBH_RED_COIN_08, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
22-
CHECK(RC_BBH_STAR_01_GHOST_HUNT, true),
23-
CHECK(RC_BBH_STAR_02_MERRY_GO_ROUND, true),
24-
CHECK(RC_BBH_STAR_03_HAUNTED_BOOKS, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
25-
CHECK(RC_BBH_STAR_04_RED_COINS, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
26-
CHECK(RC_BBH_STAR_05_BALCONY, HAS_COURSE_STAR(COURSE_BBH, RA_ACT_01)),
27-
CHECK(RC_BBH_STAR_06_SECRET_ROOM, CAN_USE(VANISH)),
28-
CHECK(RC_BBH_STAR_07_100_COIN, true),
10+
CHECK(RC_BBH_BLUE_COIN_01, true),
11+
CHECK(RC_BBH_BLUE_COIN_02, true),
12+
CHECK(RC_BBH_BLUE_COIN_03, true),
13+
CHECK(RC_BBH_BLUE_COIN_04, true),
14+
CHECK(RC_BBH_RED_COIN_01, true),
15+
CHECK(RC_BBH_RED_COIN_02, true),
16+
CHECK(RC_BBH_RED_COIN_03, true),
17+
CHECK(RC_BBH_RED_COIN_04, true),
18+
CHECK(RC_BBH_RED_COIN_05, true),
19+
CHECK(RC_BBH_RED_COIN_06, true),
20+
CHECK(RC_BBH_RED_COIN_07, true),
21+
CHECK(RC_BBH_RED_COIN_08, true),
22+
CHECK(RC_BBH_STAR_01_GHOST_HUNT, true),
23+
CHECK(RC_BBH_STAR_02_MERRY_GO_ROUND, true),
24+
CHECK(RC_BBH_STAR_03_HAUNTED_BOOKS, true),
25+
CHECK(RC_BBH_STAR_04_RED_COINS, true),
26+
CHECK(RC_BBH_STAR_05_BALCONY, true),
27+
CHECK(RC_BBH_STAR_06_SECRET_ROOM, CAN_USE(VANISH)),
28+
CHECK(RC_BBH_STAR_07_100_COIN, true),
2929
},
3030
};
3131
}, {});

src/port/Rando/Logic/Regions/BobOmbBattlefield.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ static RegisterShipInitFunc initFunc([]() {
1717
CHECK(RC_BOB_RED_COIN_08, true),
1818
CHECK(RC_BOB_STAR_01_KING_BOBOMB, true),
1919
CHECK(RC_BOB_STAR_02_KOOPA_RACE, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_01)),
20-
CHECK(RC_BOB_STAR_03_ISLAND, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_02) || CAN_USE(WING)),
21-
CHECK(RC_BOB_STAR_04_RED_COINS, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_02)),
22-
CHECK(RC_BOB_STAR_05_WINGS, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_02) && CAN_USE(WING)),
20+
CHECK(RC_BOB_STAR_03_ISLAND, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_01) || CAN_USE(WING)),
21+
CHECK(RC_BOB_STAR_04_RED_COINS, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_01)),
22+
CHECK(RC_BOB_STAR_05_WINGS, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_01) && CAN_USE(WING)),
2323
CHECK(RC_BOB_STAR_06_CHAIN_CHOMP, true),
24-
CHECK(RC_BOB_STAR_07_100_COIN, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_02)),
24+
CHECK(RC_BOB_STAR_07_100_COIN, HAS_COURSE_STAR(COURSE_BOB, RA_ACT_01)),
2525
},
2626
};
2727
}, {});

src/port/Rando/Logic/Regions/BowserInTheDarkWorld.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_BITDW] = RandoRegion{ .regionName = "Bowser in the Dark World", .levelId = LEVEL_BITDW,
99
.checks = {
10-
CHECK(RC_BITDW_RED_COIN_01, true),
11-
CHECK(RC_BITDW_RED_COIN_02, true),
12-
CHECK(RC_BITDW_RED_COIN_03, true),
13-
CHECK(RC_BITDW_RED_COIN_04, true),
14-
CHECK(RC_BITDW_RED_COIN_05, true),
15-
CHECK(RC_BITDW_RED_COIN_06, true),
16-
CHECK(RC_BITDW_RED_COIN_07, true),
17-
CHECK(RC_BITDW_RED_COIN_08, true),
18-
CHECK(RC_BITDW_STAR_RED_COINS, true),
10+
CHECK(RC_BITDW_RED_COIN_01, true),
11+
CHECK(RC_BITDW_RED_COIN_02, true),
12+
CHECK(RC_BITDW_RED_COIN_03, true),
13+
CHECK(RC_BITDW_RED_COIN_04, true),
14+
CHECK(RC_BITDW_RED_COIN_05, true),
15+
CHECK(RC_BITDW_RED_COIN_06, true),
16+
CHECK(RC_BITDW_RED_COIN_07, true),
17+
CHECK(RC_BITDW_RED_COIN_08, true),
18+
CHECK(RC_BITDW_STAR_RED_COINS, true),
1919
},
2020
};
2121
}, {});

src/port/Rando/Logic/Regions/BowserInTheFireSea.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_BITFS] = RandoRegion{ .regionName = "Bowser in the Fire Sea", .levelId = LEVEL_BITFS,
99
.checks = {
10-
CHECK(RC_BITFS_RED_COIN_01, true),
11-
CHECK(RC_BITFS_RED_COIN_02, true),
12-
CHECK(RC_BITFS_RED_COIN_03, true),
13-
CHECK(RC_BITFS_RED_COIN_04, true),
14-
CHECK(RC_BITFS_RED_COIN_05, true),
15-
CHECK(RC_BITFS_RED_COIN_06, true),
16-
CHECK(RC_BITFS_RED_COIN_07, true),
17-
CHECK(RC_BITFS_RED_COIN_08, true),
18-
CHECK(RC_BITFS_STAR_RED_COINS, true),
10+
CHECK(RC_BITFS_RED_COIN_01, true),
11+
CHECK(RC_BITFS_RED_COIN_02, true),
12+
CHECK(RC_BITFS_RED_COIN_03, true),
13+
CHECK(RC_BITFS_RED_COIN_04, true),
14+
CHECK(RC_BITFS_RED_COIN_05, true),
15+
CHECK(RC_BITFS_RED_COIN_06, true),
16+
CHECK(RC_BITFS_RED_COIN_07, true),
17+
CHECK(RC_BITFS_RED_COIN_08, true),
18+
CHECK(RC_BITFS_STAR_RED_COINS, true),
1919
},
2020
};
2121
}, {});

src/port/Rando/Logic/Regions/CavernOfTheMetalCap.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_COTMC] = RandoRegion{ .regionName = "Cavern of the Metal Cap", .levelId = LEVEL_COTMC,
99
.checks = {
10-
CHECK(RC_COTMC_RED_COIN_01, CAN_USE(METAL)),
11-
CHECK(RC_COTMC_RED_COIN_02, true),
12-
CHECK(RC_COTMC_RED_COIN_03, CAN_USE(METAL)),
13-
CHECK(RC_COTMC_RED_COIN_04, true),
14-
CHECK(RC_COTMC_RED_COIN_05, CAN_USE(METAL)),
15-
CHECK(RC_COTMC_RED_COIN_06, true),
16-
CHECK(RC_COTMC_RED_COIN_07, CAN_USE(METAL)),
17-
CHECK(RC_COTMC_RED_COIN_08, true),
18-
CHECK(RC_COTMC_STAR_RED_COINS, CAN_USE(METAL)),
10+
CHECK(RC_COTMC_RED_COIN_01, CAN_USE(METAL)),
11+
CHECK(RC_COTMC_RED_COIN_02, true),
12+
CHECK(RC_COTMC_RED_COIN_03, CAN_USE(METAL)),
13+
CHECK(RC_COTMC_RED_COIN_04, true),
14+
CHECK(RC_COTMC_RED_COIN_05, CAN_USE(METAL)),
15+
CHECK(RC_COTMC_RED_COIN_06, true),
16+
CHECK(RC_COTMC_RED_COIN_07, CAN_USE(METAL)),
17+
CHECK(RC_COTMC_RED_COIN_08, true),
18+
CHECK(RC_COTMC_STAR_RED_COINS, CAN_USE(METAL)),
1919
},
2020
};
2121
}, {});

src/port/Rando/Logic/Regions/CoolCoolMountain.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_CCM] = RandoRegion{ .regionName = "Cool Cool Mountain", .levelId = LEVEL_CCM,
99
.checks = {
10-
CHECK(RC_CCM_BLUE_COIN_01, true),
11-
CHECK(RC_CCM_BLUE_COIN_02, true),
12-
CHECK(RC_CCM_BLUE_COIN_03, true),
13-
CHECK(RC_CCM_RED_COIN_01, true),
14-
CHECK(RC_CCM_RED_COIN_02, true),
15-
CHECK(RC_CCM_RED_COIN_03, true),
16-
CHECK(RC_CCM_RED_COIN_04, true),
17-
CHECK(RC_CCM_RED_COIN_05, true),
18-
CHECK(RC_CCM_RED_COIN_06, true),
19-
CHECK(RC_CCM_RED_COIN_07, true),
20-
CHECK(RC_CCM_RED_COIN_08, true),
21-
CHECK(RC_CCM_STAR_01_SLIDING_AWAY, true),
22-
CHECK(RC_CCM_STAR_02_LOST_PENGUIN, true),
23-
CHECK(RC_CCM_STAR_03_PENGUIN_RACE, HAS_COURSE_STAR(COURSE_CCM, RA_ACT_02)),
24-
CHECK(RC_CCM_STAR_04_RED_COINS, true),
25-
CHECK(RC_CCM_STAR_05_LOST_HEAD, HAS_COURSE_STAR(COURSE_CCM, RA_ACT_04)),
26-
CHECK(RC_CCM_STAR_06_WALL_KICKS, true),
27-
CHECK(RC_CCM_STAR_07_100_COIN, true),
10+
CHECK(RC_CCM_BLUE_COIN_01, true),
11+
CHECK(RC_CCM_BLUE_COIN_02, true),
12+
CHECK(RC_CCM_BLUE_COIN_03, true),
13+
CHECK(RC_CCM_RED_COIN_01, true),
14+
CHECK(RC_CCM_RED_COIN_02, true),
15+
CHECK(RC_CCM_RED_COIN_03, true),
16+
CHECK(RC_CCM_RED_COIN_04, true),
17+
CHECK(RC_CCM_RED_COIN_05, true),
18+
CHECK(RC_CCM_RED_COIN_06, true),
19+
CHECK(RC_CCM_RED_COIN_07, true),
20+
CHECK(RC_CCM_RED_COIN_08, true),
21+
CHECK(RC_CCM_STAR_01_SLIDING_AWAY, true),
22+
CHECK(RC_CCM_STAR_02_LOST_PENGUIN, true),
23+
CHECK(RC_CCM_STAR_03_PENGUIN_RACE, CAN_ACCESS_ACT(COURSE_CCM, RA_ACT_03)),
24+
CHECK(RC_CCM_STAR_04_RED_COINS, true),
25+
CHECK(RC_CCM_STAR_05_LOST_HEAD, CAN_ACCESS_ACT(COURSE_CCM, RA_ACT_05)),
26+
CHECK(RC_CCM_STAR_06_WALL_KICKS, true),
27+
CHECK(RC_CCM_STAR_07_100_COIN, true),
2828
},
2929
};
3030
}, {});

src/port/Rando/Logic/Regions/DireDireDocks.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,27 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_DDD] = RandoRegion{ .regionName = "Dire Dire Docks", .levelId = LEVEL_DDD,
99
.checks = {
10-
CHECK(RC_DDD_BLUE_COIN_01, true),
11-
CHECK(RC_DDD_BLUE_COIN_02, true),
12-
CHECK(RC_DDD_BLUE_COIN_03, true),
13-
CHECK(RC_DDD_BLUE_COIN_04, true),
14-
CHECK(RC_DDD_BLUE_COIN_05, true),
15-
CHECK(RC_DDD_BLUE_COIN_06, true),
16-
CHECK(RC_DDD_RED_COIN_01, true),
17-
CHECK(RC_DDD_RED_COIN_02, true),
18-
CHECK(RC_DDD_RED_COIN_03, true),
19-
CHECK(RC_DDD_RED_COIN_04, true),
20-
CHECK(RC_DDD_RED_COIN_05, true),
21-
CHECK(RC_DDD_RED_COIN_06, true),
22-
CHECK(RC_DDD_RED_COIN_07, true),
23-
CHECK(RC_DDD_RED_COIN_08, true),
24-
CHECK(RC_DDD_STAR_01_BOWSERS_SUB, true),
25-
CHECK(RC_DDD_STAR_02_CHESTS, true),
26-
CHECK(RC_DDD_STAR_03_RED_COINS, HAS_COURSE_STAR(COURSE_DDD, RA_ACT_01)),
27-
CHECK(RC_DDD_STAR_04_JET_STREAM, CAN_USE(METAL)),
28-
CHECK(RC_DDD_STAR_05_MANTA_RAY, HAS_COURSE_STAR(COURSE_DDD, RA_ACT_01)),
29-
CHECK(RC_DDD_STAR_06_CAPS, CAN_USE(VANISH)),
30-
CHECK(RC_DDD_STAR_07_100_COIN, true),
10+
CHECK(RC_DDD_BLUE_COIN_01, true),
11+
CHECK(RC_DDD_BLUE_COIN_02, true),
12+
CHECK(RC_DDD_BLUE_COIN_03, true),
13+
CHECK(RC_DDD_BLUE_COIN_04, true),
14+
CHECK(RC_DDD_BLUE_COIN_05, true),
15+
CHECK(RC_DDD_BLUE_COIN_06, true),
16+
CHECK(RC_DDD_RED_COIN_01, true),
17+
CHECK(RC_DDD_RED_COIN_02, true),
18+
CHECK(RC_DDD_RED_COIN_03, true),
19+
CHECK(RC_DDD_RED_COIN_04, true),
20+
CHECK(RC_DDD_RED_COIN_05, true),
21+
CHECK(RC_DDD_RED_COIN_06, true),
22+
CHECK(RC_DDD_RED_COIN_07, true),
23+
CHECK(RC_DDD_RED_COIN_08, true),
24+
CHECK(RC_DDD_STAR_01_BOWSERS_SUB, true),
25+
CHECK(RC_DDD_STAR_02_CHESTS, true),
26+
CHECK(RC_DDD_STAR_03_RED_COINS, HAS_COURSE_STAR(COURSE_DDD, RA_ACT_01)),
27+
CHECK(RC_DDD_STAR_04_JET_STREAM, CAN_USE(METAL)),
28+
CHECK(RC_DDD_STAR_05_MANTA_RAY, HAS_COURSE_STAR(COURSE_DDD, RA_ACT_01)),
29+
CHECK(RC_DDD_STAR_06_CAPS, CAN_USE(VANISH)),
30+
CHECK(RC_DDD_STAR_07_100_COIN, true),
3131
},
3232
};
3333
}, {});

src/port/Rando/Logic/Regions/HazyMazeCave.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,28 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_HMC] = RandoRegion{ .regionName = "Hazy Maze Cave", .levelId = LEVEL_HMC,
99
.checks = {
10-
CHECK(RC_HMC_BLUE_COIN_01, true),
11-
CHECK(RC_HMC_BLUE_COIN_02, true),
12-
CHECK(RC_HMC_BLUE_COIN_03, true),
13-
CHECK(RC_HMC_BLUE_COIN_04, true),
14-
CHECK(RC_HMC_BLUE_COIN_05, true),
15-
CHECK(RC_HMC_BLUE_COIN_06, true),
16-
CHECK(RC_HMC_BLUE_COIN_07, true),
17-
CHECK(RC_HMC_RED_COIN_01, true),
18-
CHECK(RC_HMC_RED_COIN_02, true),
19-
CHECK(RC_HMC_RED_COIN_03, true),
20-
CHECK(RC_HMC_RED_COIN_04, true),
21-
CHECK(RC_HMC_RED_COIN_05, true),
22-
CHECK(RC_HMC_RED_COIN_06, true),
23-
CHECK(RC_HMC_RED_COIN_07, true),
24-
CHECK(RC_HMC_RED_COIN_08, true),
25-
CHECK(RC_HMC_STAR_01_BEAST, true),
26-
CHECK(RC_HMC_STAR_02_RED_COINS, true),
27-
CHECK(RC_HMC_STAR_03_METAL_HEAD, true),
28-
CHECK(RC_HMC_STAR_04_TOXIC_MAZE, true),
29-
CHECK(RC_HMC_STAR_05_EMERGENCY_EXIT, true),
30-
CHECK(RC_HMC_STAR_06_ROLLING_ROCKS, true),
31-
CHECK(RC_HMC_STAR_07_100_COIN, true),
10+
CHECK(RC_HMC_BLUE_COIN_01, CAN_USE(METAL)),
11+
CHECK(RC_HMC_BLUE_COIN_02, CAN_USE(METAL)),
12+
CHECK(RC_HMC_BLUE_COIN_03, CAN_USE(METAL)),
13+
CHECK(RC_HMC_BLUE_COIN_04, CAN_USE(METAL)),
14+
CHECK(RC_HMC_BLUE_COIN_05, CAN_USE(METAL)),
15+
CHECK(RC_HMC_BLUE_COIN_06, CAN_USE(METAL)),
16+
CHECK(RC_HMC_BLUE_COIN_07, CAN_USE(METAL)),
17+
CHECK(RC_HMC_RED_COIN_01, true),
18+
CHECK(RC_HMC_RED_COIN_02, true),
19+
CHECK(RC_HMC_RED_COIN_03, true),
20+
CHECK(RC_HMC_RED_COIN_04, true),
21+
CHECK(RC_HMC_RED_COIN_05, true),
22+
CHECK(RC_HMC_RED_COIN_06, true),
23+
CHECK(RC_HMC_RED_COIN_07, true),
24+
CHECK(RC_HMC_RED_COIN_08, true),
25+
CHECK(RC_HMC_STAR_01_BEAST, true),
26+
CHECK(RC_HMC_STAR_02_RED_COINS, true),
27+
CHECK(RC_HMC_STAR_03_METAL_HEAD, CAN_USE(METAL)),
28+
CHECK(RC_HMC_STAR_04_TOXIC_MAZE, CAN_USE(METAL)),
29+
CHECK(RC_HMC_STAR_05_EMERGENCY_EXIT, true),
30+
CHECK(RC_HMC_STAR_06_ROLLING_ROCKS, true),
31+
CHECK(RC_HMC_STAR_07_100_COIN, true),
3232
},
3333
};
3434
}, {});

src/port/Rando/Logic/Regions/JollyRogersBay.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,27 @@ using namespace Rando::Logic;
77
static RegisterShipInitFunc initFunc([]() {
88
Regions[RR_LEVEL_JRB] = RandoRegion{ .regionName = "Jolly Roger's Bay", .levelId = LEVEL_JRB,
99
.checks = {
10-
CHECK(RC_JRB_BLUE_COIN_01, true),
11-
CHECK(RC_JRB_BLUE_COIN_02, true),
12-
CHECK(RC_JRB_BLUE_COIN_03, true),
13-
CHECK(RC_JRB_BLUE_COIN_04, true),
14-
CHECK(RC_JRB_BLUE_COIN_05, true),
15-
CHECK(RC_JRB_BLUE_COIN_06, true),
16-
CHECK(RC_JRB_RED_COIN_01, true),
17-
CHECK(RC_JRB_RED_COIN_02, true),
18-
CHECK(RC_JRB_RED_COIN_03, true),
19-
CHECK(RC_JRB_RED_COIN_04, true),
20-
CHECK(RC_JRB_RED_COIN_05, true),
21-
CHECK(RC_JRB_RED_COIN_06, true),
22-
CHECK(RC_JRB_RED_COIN_07, true),
23-
CHECK(RC_JRB_RED_COIN_08, true),
24-
CHECK(RC_JRB_STAR_01_SUNKEN_SHIP, true),
25-
CHECK(RC_JRB_STAR_02_EEL, true),
26-
CHECK(RC_JRB_STAR_03_OCEAN_CAVE, true),
27-
CHECK(RC_JRB_STAR_04_RED_COINS, true),
28-
CHECK(RC_JRB_STAR_05_STONE_PILLAR, true),
29-
CHECK(RC_JRB_STAR_06_JET_STREAM, true),
30-
CHECK(RC_JRB_STAR_07_100_COIN, true),
10+
CHECK(RC_JRB_BLUE_COIN_01, true),
11+
CHECK(RC_JRB_BLUE_COIN_02, true),
12+
CHECK(RC_JRB_BLUE_COIN_03, true),
13+
CHECK(RC_JRB_BLUE_COIN_04, true),
14+
CHECK(RC_JRB_BLUE_COIN_05, true),
15+
CHECK(RC_JRB_BLUE_COIN_06, true),
16+
CHECK(RC_JRB_RED_COIN_01, true),
17+
CHECK(RC_JRB_RED_COIN_02, true),
18+
CHECK(RC_JRB_RED_COIN_03, true),
19+
CHECK(RC_JRB_RED_COIN_04, true),
20+
CHECK(RC_JRB_RED_COIN_05, true),
21+
CHECK(RC_JRB_RED_COIN_06, true),
22+
CHECK(RC_JRB_RED_COIN_07, HAS_COURSE_STAR(COURSE_JRB, RA_ACT_01)),
23+
CHECK(RC_JRB_RED_COIN_08, HAS_COURSE_STAR(COURSE_JRB, RA_ACT_01)),
24+
CHECK(RC_JRB_STAR_01_SUNKEN_SHIP, true),
25+
CHECK(RC_JRB_STAR_02_EEL, HAS_COURSE_STAR(COURSE_JRB, RA_ACT_01)),
26+
CHECK(RC_JRB_STAR_03_OCEAN_CAVE, true),
27+
CHECK(RC_JRB_STAR_04_RED_COINS, HAS_COURSE_STAR(COURSE_JRB, RA_ACT_01)),
28+
CHECK(RC_JRB_STAR_05_STONE_PILLAR, HAS_COURSE_STAR(COURSE_JRB, RA_ACT_01)),
29+
CHECK(RC_JRB_STAR_06_JET_STREAM, HAS_COURSE_STAR(COURSE_JRB, RA_ACT_01) && CAN_USE(METAL)),
30+
CHECK(RC_JRB_STAR_07_100_COIN, true),
3131
},
3232
};
3333
}, {});

0 commit comments

Comments
 (0)