DragonSpeedway_Music

DragonSpeedway_Music

504 Downloads

TODO CHECKLIST

Shushuda opened this issue ยท 23 comments

commented

I'm just gonna list a bunch of stuff I'll be working on in the future. No ETA whatsoever though. Comments will contain my thoughts and ramblings about the tasks.

TODO:

  • Implement the countdown sound (the very bottom of the backlog since it's gonna be pain).
  • Comment the countdown sound stuff out, since it's gonna be a while before I even look at that. Shuffle options around to cover the free space, I guess.
  • Closely observe the situation with Edit Mode triggering a popup about protected actions - in case it's intended, implement a workaround that disables the addon when Edit Mode is activated or something like that - just make the popup disappear, it's annoying.
  • Separate the music and music .lua files from the rest of the addon to prevent them from being overwritten by addon managers. Possible solution: a separate plugin/addon to be used with the main one. Main one is updated, plugin is left alone. Possible issues: .toc will be outdated and updating it will retrigger the issue with music deletion.
  • Add a preview listener button to allow people to listen to the picked song. Helps when you don't remember how something sounded but don't want to start a race just to check the music.
  • Add a volume slider that will overwrite global game music volume - for those that play with quiet/no music, but want the addon to play full blast when racing.
  • Add a checker box for this volume overwrite - maybe someone doesn't want to use it.
  • Add a checker box for forcing music ON - in case someone plays with no music, but wants the addon music to always play.
  • Add a randomizer for the music.
  • Add a selector for the randomizer - pick songs from Spyro, from Custom or both?
  • Implement a "don't play the same song twice in a row" to the randomizer.
  • Add a checker box for setting the max camera distance when waiting for the race to start ("Race starting" aura).
  • Add a slider to pick the camera distance to set, modify the max distance button to be an enable/disable button instead.
  • Add a checker box to enable camera distance overwrite for all dragonriding, not only races.
  • Add a checker box to enable music for all dragonriding, not only races.
  • Add a checker box to enable music for all dragonriding (when mounted), not only races.
  • Add a dropdown menu to pick what triggers the music - isFlying() or casting spells or mounting or only races? If music is playing pre-race (mounting), then mute on race start and proceed as usual. Resume music after the race if "mounting" in options. Remove checker box.
  • Add a selector for setting custom sounds for each separate dragonriding spell.
  • Add a checker box to enable/disable this "sound per spell" feature.
  • Add a checker box to mute the original spell sounds if custom spell sounds are enabled.
  • Add a new category in the options and reshuffle everything to make sense.
  • Add a checker box to remove the Blizz victory sound from races if custom jingle is enabled.
commented

I've handled the update issue by separating the addon into two addons. One will handle the code side of things and will be updatable via addon managers. The other will handle the music files and registers - this one will be modified by the end user to add music and will be left alone, with no updates, to prevent overwrites.

I will update the files later. CurseForge will also take a while to approve the second addon and update the files for both, so I will first do the second, then update the first and modify the description. It's going to take a while, I wish I could just copy paste the markdown there...

commented

I did the preview play and stop buttons for the music selector and play buttons for both sound selectors. Will upload shortly, make a new release here and upload to CurseForge once they review DragonSpeedway_Music (because I don't want to update DragonSpeedway before the mandatory plugin is searchable).

commented

I've added three things at once:

  • a slider for picking music volume to overwrite the global game setting,
  • a checker button to enable/disable this functionality,
  • a checker button to forcefully enable music if its disabled globally.

All these options activate when a race starts and revert the settings to previous global values when the race ends.

CurseForge still didn't review my second addon, so those folk will be like 3 releases behind. I will upload them one by one anyway, so they will get these releases even later. I don't want to skip releases there.

commented

I've commented out the countdown stuff, since it's not yet implemented. I've also tried to do scrolling, but recent beta builds broke something with the stock XMLs, so I can't really do that. I don't know how to get the interface window size without that XML, so I will have to wait for wowpedia updates, I guess. I'm too new at addon making to figure this out on my own.

I also added the randomizer. And the checkbox to enable/disable it. It uses a pseudo-random generator, so it will repeat songs every once in a while. I can't be bothered to do any fancy algorithms, it's gonna stay like that.

commented

And I'm still waiting on CurseForge. Tbh, I might as well upload the newest package there and ignore previous ones. Whatever.

commented

Actually, I'm running out of things to do here, so I might implement some simple "don't play the same song twice" thing to the randomizer, after all. Please give me ideas for new features.

commented

Implemented. Also fixed a bug.

commented

I'm thinking of implementing an option to move the camera as far away as possible when waiting for the race to start. Not later because it has to happen during that preparation stage to avoid annoying the player.

It would be either:

  • an on/off option to set the max camera distance when starting the race and revert to the previous position once the race is over,
  • a slider that lets the user pick their preferred camera distance, behaviour same as above, except the enable button is still there.

So it's a choice between having just the button and max distance hardcoded or a button and a slider for the distance.

This same behaviour can be achieved with DynamicCam addon (which I love with all my heart), so I'm not sure if I want to touch that here. Depends on how complicated that is. But I already see myself using it, I'm already doing the same things manually.

commented

Pulling the camera back would actually be great for the whole dragon riding experience, not just races. It'd be nice to increase the camera distance any time the player mounts up on a dragon riding drake. Could be an option too (enable button). Or a dropdown menu with picking the behaviour (mount up vs race only).

But that's even easier to set up in the DynamicCam. On the other hand, having this backed in would mean less addons people have to download. Although I recommend everyone to get DynamicCam anyway, it's brilliant.

I will add this to the TODO list. Sounds like a fun task to do.

commented

I've finished the options panels. I just need to add these small descriptions. I'll upload the code soon.

I'm going to work slowly on implementing all of these features now. There's quite a lot of that.

commented

I got some lovely feature suggestions on CurseForge, so I've added them to the TODO. Will add more info once I get the answers, as some things are unclear.

I will also need to reshuffle everything, as it's getting busy. The scrolling is still broken on Beta, or at least I have no clue how to make it work in the default Interface window, so I will just put everything into separate categories and call it a day.

I'm thinking of this setup:

  • Main category - Title, some explanations below about the addon, a reminder to place the files into the addon's directory and then options: randomizer + enable, volume overwrite + enable, music unmute, checker boxes for playing outside of races (separate for BGM and spell sounds).
  • "Music / Sounds" category - Category title, some explanations about the options here and then options: all dropdown menus with sound/music selectors + play buttons + enable.
  • "Camera" category - Category title, some explanations about the options here and then options: camera distance overwrite + enable, checker box for overwrite outside of races.
commented

I've made ugly mock-ups in Paint:

main panel

music-sounds panel

camera panel

commented

I might move "Overwrite camera only during races" to the main panel and rename the last header there from "Music settings" to "Race settings".

commented

Code prepared for implementing one feature at a time. Full options were moved to a separate branch for the time being.

Camera first.

commented

Camera implemented. This will be a 1.1.5 release.

I will prepare it tomorrow.

commented

Ah oopsie, I forgot to add descriptions of these category panels.

commented

Next on the list - slowly implement "outside of races" stuff. One at a time.
Or spell sounds. Whatever seems easier.

commented

Options code uploaded (I still need to add descriptions for the subcategories). I've also finally moved my bottom and set up WSL. I've missed VIM so much on this PC, lol.

commented

Small reminder - change "Spell sounds" on the main options panel to "Volume settings". I forgor

Also, Blizz added sounds to the race rings. I might try to look into this and try to replace these sounds with my own. That would require another reshuffling of the options, as it won't fit, lmao. New subcategories would be:

  • Music (race)
  • Music (spells)
commented

That's a lot of new features to do, so I think I will do it in waves and comment out not yet implemented options to avoid confusion.

I might focus on the camera first. The options will end up being more robust than the mock ups, but each release will have only a small part of that. Hopefully I will manage to write all of that before DF launches...

commented

Outside of races it is. I've fixed the camera work a bit for outside-of-races cases and added default dragonriding race music as an option for mounted state, FF14-style.

Next on the list - custom music outside of races.

commented

Ok, the music loops, right? There's no way of telling how long a song is. So the only way I can think of to make custom music work outside of races, without playing a single song over and over, is to ask the player to provide the music length when they register it.

That assumes the new way of registering in-game. Which I didn't write yet. So it's gotta wait.

This also assumes that the music has to play like a Winamp player - one song ends, shuffle for another and play that, etc. Until I write that new registration thing, I can only code these custom music players:

  • Play a song in a loop, but randomize the song each time the user mounts up / does the activation action.
  • Play a chosen song in a loop. There's just one pick, so whatever, it will work like the default dragonriding music option I've recently added.

A true Winamp style randomized player will need to wait for that registration rewrite. I'm currently in a pretty bad condition health-wise, so I definitely won't be able to code that now. But I can do those simple looping ones.

So, TODO:

  • Add a new tab "Open World Music" or something like that. Move all "outside of races" options there, if possible. Probably only those loose settings at the bottom of the main tab.
  • Rename "Music" to "Race Music" to avoid confusion.
  • Add an option to activate / deactivate this feature.
  • Add an option to pick if randomized looping or chosen song playing.
  • Add a dropdown menu to pick which category to randomize (copy that from regular shuffle).
  • Add a dropdown menu to pick the song for looping outside of races.
  • Code that in. Similar to default dragonriding race music option.

Actions will be next. Like isFlying() etc.

commented

I stg, the most difficult thing in all of this is deciding which option goes where in the addon settings menu. I suck at this.