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

New setting : display ocarina melodies #2168

Open
wants to merge 4 commits into
base: Dev
Choose a base branch
from

Conversation

GSKirox
Copy link
Collaborator

@GSKirox GSKirox commented Jan 24, 2024

If toggled, the melodies will be displayed on screen when the player pull out the Ocarina, works with both vanilla songs and if the setting Randomize Ocarina Melodies is used.

ocarina_melodies2

This display is dynamic with both the songs you got (in the picture above, i have all songs in inventory except Minuet), and the Ocarina Buttons if you enabled the setting ! In that case, the melodies will still be shown for the songs you got, but the buttons you have not obtained yet will be dimmed out.

As printing text in that window on top of all the icons will fill up the graphical buffer very fast and freeze the game, i only put a colored note at the start of each line to show what song it represents.
The order is the one used on the pause status screen, or the file select screen :

  • ZL, Epona, Saria, Suns, SoT, SoS, Minuet, Bolero, Serenade, Requiem, Nocturne, Prelude

I took the occasion to re-order the way random melodies were stored on the Python side, which was previously by Difficulty. Which means the order they show in the Spoiler Log is now always the one listed above instead of a different order every seed.

@fenhl fenhl added Type: Enhancement New feature or request Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it Component: Setting specific to setting(s) Status: Needs Testing Probably should be tested Status: Under Consideration Developers are considering whether to accept or decline the feature described labels Jan 24, 2024
@r0bd0g
Copy link

r0bd0g commented Jan 24, 2024

If this were added prior to the introduction of randomized ocarina buttons I would question why randomized melodies even existed if the point wasn't that you had to remember them.

But I'm wondering also if this setting should be limited only to randomized melodies. I mean back in the day, you'd never seen the songs before, you still had to remember them. There might be new players who don't remember even the vanilla melodies that could use something like this.

@Hamsda
Copy link

Hamsda commented Jan 24, 2024

I think I mentioned something similar when you show the first WIP screens of this, but I pretty much agree with r0bd0g that limiting this to the setting isn't really needed. It feels more like a cosmetic option that acts as a memory aid (sort of similar to dpad boots, where you can see if you have them without menuing, though obviously more powerful). If people never play with any of the melody randomization and find it obtrusive they can turn it off, but if it helps casual players, that's just a great bonus feature.

@GSKirox
Copy link
Collaborator Author

GSKirox commented Jan 24, 2024

There's no technical issues to displaying the vanilla melodies if we want, since world.song_notes is accurate even if they're not randomized, so it'll work perfectly fine.
It's just a choice at this point, i'm not against removing the limitation if we think it'll have uses for casual players too.

@fenhl
Copy link
Collaborator

fenhl commented Jan 24, 2024

I agree that it probably doesn't need to be restricted to randomized melodies, but I don't think it can be cosmetic because of how much of an advantage it can be with randomized melodies enabled.

@alkalineace
Copy link

Even without randomized melodies, with this on it is just straight up faster to pull out Ocarina to check for songs or notes you have found.

It might be overkill, but I feel this warrants to be outside of Cosmetic like Fenhl said, and a safe ping to race mods to notify them about this so they can talk about enabling this setting or not for racing environment.

@LuigiXHero
Copy link

I mean this is basically the same as OOT3D having a menu dedicated to ocarina songs while the ocarina is out but with the added bonus of ocarina button viewability. So it might be worth it just for 3DS players who are trying out n64 rando and don't really know the n64 notes for the songs.

@GSKirox GSKirox changed the title New setting : display random ocarina melodies New setting : display ocarina melodies Jul 24, 2024
@r0bd0g
Copy link

r0bd0g commented Jul 25, 2024

Can you grey out notes that you don't have?

@flagrama
Copy link

PR description says it does that, yeah.

This display is dynamic with both the songs you got (in the picture above, i have all songs in inventory except Minuet), and the Ocarina Buttons if you enabled the setting ! In that case, the melodies will still be shown for the songs you got, but the buttons you have not obtained yet will be dimmed out.

@r0bd0g
Copy link

r0bd0g commented Jul 25, 2024

I thought for sure somebody would have suggested that by now, actually I felt like I'd seen happen? But there wasn't a picture of it here lol. Can't read, pictures only.

Copy link
Collaborator

@fenhl fenhl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's quite a bit of code that's repeated 5 times, once for each button. Maybe there's a way to deduplicate that somehow?

Other than that, this is mostly minor code style nits:

ASM/c/main.c Outdated Show resolved Hide resolved
ASM/c/ocarina_buttons.c Outdated Show resolved Hide resolved
ASM/c/ocarina_buttons.c Outdated Show resolved Hide resolved
ASM/c/ocarina_buttons.c Outdated Show resolved Hide resolved
ASM/c/ocarina_buttons.c Outdated Show resolved Hide resolved
ASM/c/ocarina_buttons.c Outdated Show resolved Hide resolved
ASM/c/ocarina_buttons.c Outdated Show resolved Hide resolved
ASM/c/ocarina_buttons.c Outdated Show resolved Hide resolved
OcarinaSongs.py Outdated Show resolved Hide resolved
OcarinaSongs.py Outdated Show resolved Hide resolved
@fenhl fenhl added the Status: Waiting for Author Changes or response requested label Sep 17, 2024
@GSKirox GSKirox force-pushed the display_ocarina_melodies branch 3 times, most recently from 5a54a5b to 6f22bec Compare October 1, 2024 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: ASM/C Changes some internals of the ASM/C libraries Component: Setting specific to setting(s) Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested Status: Under Consideration Developers are considering whether to accept or decline the feature described Status: Waiting for Author Changes or response requested Type: Enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants