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

Shuffle dungeon rewards #2034

Merged
merged 11 commits into from
May 25, 2024
1 change: 1 addition & 0 deletions ASM/c/demo_effect.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ extern void* DemoEffect_DrawJewel_AfterHook;

extern override_key_t CFG_BIGOCTO_OVERRIDE_KEY;

// Overrides the item model for the dungeon reward shown before the Big Octo fight
void DemoEffect_DrawJewel_Hook(DemoEffect* this, z64_game_t* globalCtx) {
fenhl marked this conversation as resolved.
Show resolved Hide resolved
if (!this->override_initialized) {
if (globalCtx->scene_index == 0x02) {
Expand Down
6 changes: 3 additions & 3 deletions ASM/c/dungeon_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ void draw_dungeon_info(z64_disp_buf_t* db) {
if (total_keys < 0) total_keys = 0;
if (total_keys > 9) total_keys = 9;

char count[5] = "O(O)";
char count[5] = "O(O)"; // we use O instead of 0 because it's easier to distinguish from 8
if (current_keys > 0) count[0] = current_keys + '0';
if (total_keys > 0) count[2] = total_keys + '0';
int top = start_top + ((icon_size + padding) * i) + 1;
Expand Down Expand Up @@ -586,7 +586,7 @@ void draw_dungeon_info(z64_disp_buf_t* db) {
continue;
}
uint8_t world = CFG_DUNGEON_REWARD_WORLDS[i];
char world_text[5] = "WOOO";
char world_text[5] = "WOOO"; // we use O instead of 0 because it's easier to distinguish from 8
fenhl marked this conversation as resolved.
Show resolved Hide resolved
if (world < 100) {
world_text[0] = ' ';
world_text[1] = 'W';
Expand Down Expand Up @@ -698,7 +698,7 @@ void draw_dungeon_info(z64_disp_buf_t* db) {
if (total_keys < 0) total_keys = 0;
if (total_keys > 9) total_keys = 9;

char count[5] = "O(O)";
char count[5] = "O(O)"; // we use O instead of 0 because it's easier to distinguish from 8
if (current_keys > 0) count[0] = current_keys + '0';
if (total_keys > 0) count[2] = total_keys + '0';
int top = start_top + ((icon_size + padding) * i) + 1;
Expand Down
12 changes: 6 additions & 6 deletions HintList.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,12 +309,12 @@ def tokens_required_by_settings(world: World) -> int:
'Kokiri Emerald': (["a tree's farewell", "the Spiritual Stone of the Forest"], "the Kokiri Emerald", 'item'),
'Goron Ruby': (["the Gorons' hidden treasure", "the Spiritual Stone of Fire"], "the Goron Ruby", 'item'),
'Zora Sapphire': (["an engagement ring", "the Spiritual Stone of Water"], "the Zora Sapphire", 'item'),
'Light Medallion': (["Rauru's sagely power", "a yellow disc"], "the Light Medallion", 'item'),
'Forest Medallion': (["Saria's sagely power", "a green disc"], "the Forest Medallion", 'item'),
'Fire Medallion': (["Darunia's sagely power", "a red disc"], "the Fire Medallion", 'item'),
'Water Medallion': (["Ruto's sagely power", "a blue disc"], "the Water Medallion", 'item'),
'Shadow Medallion': (["Impa's sagely power", "a purple disc"], "the Shadow Medallion", 'item'),
'Spirit Medallion': (["Nabooru's sagely power", "an orange disc"], "the Spirit Medallion", 'item'),
'Light Medallion': (["a sagely power frozen in time", "Rauru's sagely power", "a yellow disc"], "the Light Medallion", 'item'),
'Forest Medallion': (["a sagely power given by a childhood friend", "Saria's sagely power", "a green disc"], "the Forest Medallion", 'item'),
'Fire Medallion': (["a sagely power forged in lava", "Darunia's sagely power", "a red disc"], "the Fire Medallion", 'item'),
'Water Medallion': (["a sagely power given by your fiancée", "Ruto's sagely power", "a blue disc"], "the Water Medallion", 'item'),
'Shadow Medallion': (["a sagely power forged in blood", "Impa's sagely power", "a purple disc"], "the Shadow Medallion", 'item'),
'Spirit Medallion': (["a sagely power tainted by mind control", "Nabooru's sagely power", "an orange disc"], "the Spirit Medallion", 'item'),
'Triforce Piece': (["a triumph fork", "cheese", "a gold fragment"], "a Piece of the Triforce", 'item'),
'Magic Meter': (["mystic training", "pixie dust", "a green rectangle"], "a Magic Meter", 'item'),
'Double Defense': (["a white outline", "damage decrease", "strengthened love"], "Double Defense", 'item'),
Expand Down
5 changes: 3 additions & 2 deletions SettingsList.py
Original file line number Diff line number Diff line change
Expand Up @@ -1218,8 +1218,9 @@ class SettingInfos:
'Own Dungeon': Each dungeon reward appears in its respective
dungeon, but not necessarily on the boss. If boss entrances
are mixed, boss rooms that aren't in a dungeon can't have
dungeon rewards. The Light Medallion is either a starting
item or appears in the Temple of Time.
dungeon rewards. The Light Medallion appears in the Temple
of Time, or may be a starting item if the "Free Reward from
Rauru" setting is enabled.

'Regional': Dungeon rewards can only appear in regions
near the original dungeon (including the dungeon
Expand Down
Loading