tariq-nasheed / HyperMania

sonic The
Other
15 stars 3 forks source link

Ray's Hyper Ability #5

Closed MetaNite64 closed 11 months ago

MetaNite64 commented 11 months ago

I discovered why Ray's Hyper Ability doesn't trigger more often than not- his gliding action seems to never reset ext->can_dash to true, which means that after the first time he glides in the current scene (regardless of whether it's during hyper state or not), can_dash will always equal false, and the hyper ability never triggers. This is only reset when the scene changes, i.e. after a bonus stage, special stage, or zone transition (maybe some act transitions too, like Stardust Speedway. Haven't tested extensively). Amusingly, I found this by acting on a hunch, randomly throwing a ext->can_dash = true into the RayGlide hook function in player.c, and causing him to trigger the hyper ability every frame that he glides. Currently working on figuring out how to make it reset once the glide state ends as (presumably) intended.

MetaNite64 commented 11 months ago

Update- very nearly got it, but now it's only working after entering a bonus stage (however, it doesn't matter whether you've glided beforehand or not). All I've done is put the line if (self->characterID == ID_RAY) ext->can_dash = true; into the Player_State_Ground hook

tariq-nasheed commented 11 months ago

The intended behavior is to reset can_dash after a "full dive" (raySwoopTimer == 0), in fact that's what happens on my end... Are you running an edited version? is this a platform-specific bug that I should look into?

MetaNite64 commented 11 months ago

Hm, that's peculiar. Just went through some testing and it was in fact a mod incompatibility, but I'm not sure why that would be the case. i'm gonna chalk it up to Extra Slot Amy for now due to it recompiling the Game.dll, although it's strange that it would affect Ray specifically. My bad though, definitely should've been more careful before reporting it.

tariq-nasheed commented 11 months ago

salright that is strange though, might be worth looking into in the future