Shushuda / DragonSpeedway

A World of Warcraft addon playing music and sound effects when Dragon Riding
MIT License
0 stars 0 forks source link

TODO CHECKLIST #1

Open Shushuda opened 2 years ago

Shushuda commented 2 years ago

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:

Shushuda commented 2 years ago

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...

Shushuda commented 2 years ago

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).

Shushuda commented 2 years ago

I've added three things at once:

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.

Shushuda commented 2 years ago

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.

Shushuda commented 2 years ago

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

Shushuda commented 2 years ago

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.

Shushuda commented 2 years ago

Implemented. Also fixed a bug.

Shushuda commented 2 years ago

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:

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.

Shushuda commented 2 years ago

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.

Shushuda commented 2 years ago

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:

Shushuda commented 2 years ago

I've made ugly mock-ups in Paint:

main panel

music-sounds panel

camera panel

Shushuda commented 2 years ago

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

Shushuda commented 2 years ago

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.

Shushuda commented 2 years ago

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.

Shushuda commented 2 years ago

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:

Shushuda commented 2 years ago

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...

Shushuda commented 2 years ago

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

Camera first.

Shushuda commented 2 years ago

Camera implemented. This will be a 1.1.5 release.

I will prepare it tomorrow.

Shushuda commented 2 years ago

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

Shushuda commented 2 years ago

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

Shushuda commented 1 year ago

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.

Shushuda commented 1 year ago

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:

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:

Actions will be next. Like isFlying() etc.

Shushuda commented 1 year ago

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.