ref: 203a433a66633b726f92393efa42f168c0319755
parent: 29789bd2b1096d5c363c41d0f6eaa0266bffe9a6
author: Snesrev <[email protected]>
date: Thu Sep 29 22:14:22 EDT 2022
Allow bird travel to be cancelled
--- a/config.c
+++ b/config.c
@@ -320,6 +320,8 @@
return ParseBoolBit(value, &g_config.features0, kFeatures0_CarryMoreRupees);
} else if (StringEqualsNoCase(key, "MiscBugFixes")) {
return ParseBoolBit(value, &g_config.features0, kFeatures0_MiscBugFixes);
+ } else if (StringEqualsNoCase(key, "CancelBirdTravel")) {
+ return ParseBoolBit(value, &g_config.features0, kFeatures0_CancelBirdTravel);
}
}
return false;
--- a/features.h
+++ b/features.h
@@ -38,6 +38,8 @@
kFeatures0_CarryMoreRupees = 2048,
kFeatures0_MiscBugFixes = 4096,
+
+ kFeatures0_CancelBirdTravel = 8192,
};
#define enhanced_features0 (*(uint32*)(g_ram+0x64c))
--- a/messaging.c
+++ b/messaging.c
@@ -1080,6 +1080,10 @@
if (some_menu_ctr == 0) {
if ((joypad1L_last | joypad1H_last) & 0xc0) {
+
+ if (enhanced_features0 & kFeatures0_CancelBirdTravel)
+ some_menu_ctr = joypad1L_last;
+
overworld_map_state++;
return;
}
@@ -1121,7 +1125,11 @@
save_ow_event_info[0x7b] &= ~0x20;
save_dung_info[267] &= ~0x80;
save_dung_info[40] &= ~0x100;
- FluteMenu_LoadTransport();
+
+ // This is kFeatures0_CancelBirdTravel
+ if (!(some_menu_ctr & 0x40))
+ FluteMenu_LoadTransport();
+
FluteMenu_LoadSelectedScreenPalettes();
uint8 t = overworld_screen_index & 0xbf;
DecompressAnimatedOverworldTiles((t == 3 || t == 5 || t == 7) ? 0x58 : 0x5a);
--- a/zelda3.ini
+++ b/zelda3.ini
@@ -76,6 +76,9 @@
# Enable various zelda bug fixes
MiscBugFixes = 1
+# Allow bird travel to be cancelled
+CancelBirdTravel = 1
+
[KeyMap]
# Change what keyboard keys map to the joypad
# Order: Up, Down, Left, Right, Select, Start, A, B, X, Y, L, R