TeamRizu / OutFox

The Bug Reporting Repository for OutFox LTS 0.4, Alpha V and Steam Early Access Builds
https://projectoutfox.com
Apache License 2.0
182 stars 3 forks source link

[FIXED] [BUG] Announcer lines not working for "AAA" (tier 2), "AA" (tier 3), "A" (tier 4), "B" (tier 5), "C" (tier 6), "D" Tier 1 and Tier failed work #686

Closed makoflagkk closed 6 months ago

makoflagkk commented 1 year ago

Is there an existing issue for this?

Operating System

Windows 11

CPU

AMD Ryzen 9 6900HS with Radeon Graphics

GPU

AMD Radeon RX 6800S

Storage

3.63 TB

Game Version

4.19.1

Game Mode

dance

Theme

DDR A3 Theme

Describe the problem

When I score a certain grade the announcer lines don't come on. This is for A, B C, and D. AAA, AA and E all work.

Describe what should happen

I would like to know how to fix this. Or someone to help. This problem only occurs on the A3 theme and only on Outfox.

Relevant Log output

No response

JoseVarelaP commented 1 year ago

After searching, the theme definitely does not contain any special functions to recite these lines. However, I have a theory as to why it is not playing the sound.

The theory could be way off, take it with a grain of salt.

The theme performs multiple SOUND:PlayAnnouncer sounds in ScreenGameplay out at once, to perform the "Stage cleared" sound, which isn't present in the game, which is why themes perform this.

Def.ActorFrame{
    StartTransitioningCommand=function(s) s:sleep(AnimationSleep+0.035):queuecommand("Play") end,
    PlayCommand=function(s) SOUND:PlayAnnouncer("stage sound X");
                            SOUND:PlayAnnouncer("stage sound SN");
                            SOUND:PlayAnnouncer("stage cleared");
    end,
};

It's possible that GameSoundManager has cleaned up the sounds before going to next screen, which happened to include the announcer sounds for the grades that were about to play.

I'm currently investigating if I can recreate this behavior on my end before proceeding.

JoseVarelaP commented 1 year ago

I'm going to need information, this could be a "Not Implemented" behavior that we're not aware of. So, in the context of the game, how is it meant to fire the announcer line?

The way the game fires the announcer lines goes like this (This is ignoring all of the "New Record" conditions):

If you happen to get a full combo

The game will look for voices lines with the folder evaluation full combo [Grade] (W1/W2/W3/W4)

If you don't get a full combo

The game will look for voice lines with evaluation [Grade] The grades for this check are the ones listed on here: https://outfox.wiki/dev/announcers/#evaluation-grade


Also, the title is confusing me. The title implies all tiers do not load the announcer line, but then in the text it is?

Announcer lines not working for "AAA" (tier 2), "AA" (tier 3), "A" (tier 4), "B" (tier 5), "C" (tier 6), "D" Tier 1 and Tier failed work

This is for A, B C, and D. AAA, AA and E all work.

makoflagkk commented 1 year ago

Okay. Yeah certain lines don't work. But only AAAA, and AAA work. I deleted the evaluation new record so just goes straight to grades.

richardloxley commented 6 months ago

[TLDR: there is probably already a fix available for this in the old code base.]

I have just changed from StepMania 5.1 to Project OutFox and find I have this same issue, which is very annoying! Perhaps very few of us use announcers?

For reference, in testing:

It looks likely to be the same issue that existed in StepMania 5.1 until I fixed it there. (The problem was internally grades changed from 8 tiers to 20 tiers, but the announcer code wasn't updated to use the new internal grade tiers.)

Sadly my fix was after the code was forked to OutFox, and since OutFox isn't open source I can't submit a pull request to fix it.

For reference, this is the issue I raised in StepMania: https://github.com/stepmania/stepmania/issues/2005

And here is the patch I submitted to StepMania to fix it: https://github.com/stepmania/stepmania/pull/2007

Hopefully if the code hasn't changed too much since the fork, someone with access to the code should be able to incorporate my fix.

[Aside: OutFox has always said they intended to re-open the source "in the future". Is there a predicted time-scale for this? It's been closed source for nearly 4 years I think? Open source allows people like me to fix bugs and contribute fixes back, rather than begging other people to do them for me!]

richardloxley commented 6 months ago

I just play ITGmania. That game is actually pretty solid.

Thanks - I'll check that out too (looking at the source they seem to have already incorporated my announcer fix).

Scraticus commented 6 months ago

I just play ITGmania. That game is actually pretty solid.

Thanks - I'll check that out too (looking at the source they seem to have already incorporated my announcer fix).

we'll look at adding your fixes to the source, thanks for your time to bring it to our attention, sadly the person that posted this issue seems to have a grduge with us banning him after harassing us, and loves to take any opportunity to spread the comments I have removed from this chain as they are not relevant to the issue.

Thank you for your time, and i'll see they are put in for the next official release.

I will be closing this issue to prevent any more sidetracking or hateful posts which do not develop the problem.

Scraticus commented 6 months ago

This is now actioned, Thanks for your time.

makoflagkk commented 6 months ago

I just play ITGmania. That game is actually pretty solid.

Thanks - I'll check that out too (looking at the source they seem to have already incorporated my announcer fix).

we'll look at adding your fixes to the source, thanks for your time to bring it to our attention, sadly the person that posted this issue seems to have a grduge with us banning him after harassing us, and loves to take any opportunity to spread the comments I have removed from this chain as they are not relevant to the issue.

Thank you for your time, and i'll see they are put in for the next official release.

I will be closing this issue to prevent any more sidetracking or hateful posts which do not develop the problem.

I never harassed nor do I hate you. I hate how your acted towards me but I don't hate you as a person. Stop spreading false information to further ruin my and slander my reputation. You were very aggressive towards me from the start. But I wanna move on a start over and forget about your toxic personality. I wanna forget about you. But I still have nightmares about what you did to me. Idgaf that you banned me. It's the stuff that happened when I was active on the server that creeped me out.

Scraticus commented 6 months ago

I just play ITGmania. That game is actually pretty solid.

Thanks - I'll check that out too (looking at the source they seem to have already incorporated my announcer fix).

we'll look at adding your fixes to the source, thanks for your time to bring it to our attention, sadly the person that posted this issue seems to have a grduge with us banning him after harassing us, and loves to take any opportunity to spread the comments I have removed from this chain as they are not relevant to the issue. Thank you for your time, and i'll see they are put in for the next official release. I will be closing this issue to prevent any more sidetracking or hateful posts which do not develop the problem.

I never harassed nor do I hate you. I hate how your acted towards me but I don't hate you as a person. Stop spreading false information to further ruin my and slander my reputation. You were very aggressive towards me from the start. But I wanna move on a start over and forget about your toxic personality. I wanna forget about you. But I still have nightmares about what you did to me. Idgaf that you banned me. It's the stuff that happened when I was active on the server that creeped me out.

If you truly wish this, then stop using the software, using my discord avatar on reddit, spreading misinformation about the game that we then have to answer to, and posting on our repo, so you have to interact with us.

I do not wish to continue this either, it is a massive strain on us when you post massive insulting posts which are incorrect, then you play the victim when you are called on it. Leave us alone, then no-one will interact with you, it's pretty simple. But sadly you seem to go out of your way to passive-aggressively poke at us then cry when we respond.

If you want to be rid of us, walk away from Outfox permanently, it would be best for both sides.

makoflagkk commented 6 months ago

@richardloxley I did kind of fixed the issue with the theme for the full combos by adding custom playback announcer sounds and relabeling the announcer certain folders of the announcer. This is to make it that no engine defined sounds and custom sounds crash into each other. Which I think is the cause of the glitch? It's just a theory.

local t = Def.ActorFrame{}; local announcerPlayed = false -- Added flag to check if announcer has played

for _,pn in pairs(GAMESTATE:GetEnabledPlayers()) do local Award = STATSMAN:GetCurStageStats():GetPlayerStageStats(pn):GetStageAward() local Grade = STATSMAN:GetCurStageStats():GetPlayerStageStats(pn):GetGrade()

t[#t+1] = Def.Sprite{
    InitCommand=function(s) 
        s:player(pn):x(pn== PLAYER_1 and _screen.cx-297 or _screen.cx+380):y(_screen.cy-80):zoom(0):queuecommand("Set")
    end,
    OnCommand=function(s)
        s:linear(0.2):zoom(1):spin():effectmagnitude(0,0,170)
    end,
    SetCommand=function(s)
        if announcerPlayed then  -- Check if announcer has already played
            return
        end

        if (Award == "StageAward_FullComboW1") then
            s:Load(THEME:GetPathG("","Grade/MarvelousFullcombo_ring"))
            SOUND:PlayAnnouncer("MFC")
            announcerPlayed = true
        elseif ((Award == "StageAward_SingleDigitW2") or (Award == "StageAward_OneW2") or (Award == "StageAward_FullComboW2")) then
            s:Load(THEME:GetPathG("","Grade/PerfectFullcombo_ring"))

relabling full combo folders relabling full combo folders SOUND:PlayAnnouncer("PFC") announcerPlayed = true elseif ((Award == "StageAward_SingleDigitW3") or (Award == "StageAward_OneW3") or (Award == "StageAward_FullComboW3")) then s:Load(THEME:GetPathG("","Grade/GreatFullcombo_ring")) SOUND:PlayAnnouncer("GFC") announcerPlayed = true elseif (STATSMAN:GetCurStageStats():GetPlayerStageStats(pn):FullComboOfScore('TapNoteScore_W4')) then s:Load(THEME:GetPathG("","Grade/GoodFullcombo_ring")) SOUND:PlayAnnouncer("GDFC") announcerPlayed = true end end, OffCommand=function(s) s:linear(0.2):zoom(0) end, };

t[#t+1] = Def.Sprite{
    InitCommand=function(s)
        s:player(pn):x(pn== PLAYER_1 and _screen.cx-378 or _screen.cx+302):y(_screen.cy-98):zoom(0):queuecommand("Set")
    end,
    OnCommand=function(s)
        s:linear(0.2):zoom(1)
    end,
    OffCommand=function(s)
        s:linear(0.2):zoom(0)
    end,
    SetCommand=function(s)
        s:Load(THEME:GetPathG("","Grade/"..Grade))
    end,
};

end

return t;

makoflagkk commented 5 months ago

Save that code for reference if you want, before they probably ban me from this repository. I can show you more codes I modified from the Curilang DDR A3 theme . They just all audio announcer lines. I did fix the announcer sounding twice on the gameplay ready. I wanna figure out away to have the grid song wheel inspired by DDR not to clip on the last row if there is one or two rows of songs left. I wonder if that is limitation of StepMania's engine