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

[Suggestion] Ballad of Gales warps player to entrance inside dungeons #398

Open
Sage-of-Mirrors opened this issue Aug 2, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@Sage-of-Mirrors
Copy link
Contributor

I played a seed tonight where I received keys to Dragon Roost sporadically, and with each key I went back to the dungeon to check if I had opened anything important. Exiting the dungeon multiple times proved to be time-consuming, as even save-and-quit has a noticable amount of downtime.

The Ballad of Gales currently returns an error message inside dungeons. If I recall correctly, this error message is an event defined in each dungeon's event_list.dat. My suggestion is that the "error" event be replaced with one that warps the player to the corresponding dungeon entrance when the Ballad of Gales is played. That way, exiting a dungeon is nearly as quick as any other scene transition. This would also make exiting nested dungeons much quicker, as the player could just do a chain of Ballads instead of multiple save-and-quits.

I am familiar with WWRando's event_list modification system from my implementation of ice trap chests. (Those work on console by the way, I got one during my playthrough tonight.) If this is a feature deemed worth exploring, I am willing to implement it.

@LagoLunatic LagoLunatic added the enhancement New feature or request label Aug 2, 2024
@LagoLunatic
Copy link
Owner

Could be convenient. But FYI event_list.dat has nothing to do with how it's implemented, it's just a simple text message with the message ID hardcoded into Link's code (the check depends on the stage type). So you won't be able to make it behave differently in different stages without modifying Link's ASM somehow.

@Sage-of-Mirrors
Copy link
Contributor Author

Sage-of-Mirrors commented Aug 2, 2024

Huh. Unfortunate, but seemingly a simple fix - replace that function call with one that checks the current stage name, and warp to whatever player spawn is the entrance.

Mind if I prototype it this weekend?

@LagoLunatic
Copy link
Owner

You could try something like

else if stage_type == dungeon:
    warp_to(return_place)

so that you don't have to hardcode stage names or or spawns and it theoretically might work for all dungeons right away with that. Though it might not wind up being that simple in practice, would have to test it (not sure what it would do for ganon's tower and boss rooms for example)

@Sage-of-Mirrors
Copy link
Contributor Author

I feel like boss rooms should work like vanilla... but then again, you can also save-and-quit in them, and this should just be a quicker version of that.

Is there an override of any of the scene transition funcs that just takes a player ID? Not sure how a single warp_to(place) call would work without that.

@LagoLunatic
Copy link
Owner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants