nipkownix / re4_tweaks

Fixes and tweaks for the "UHD" port of Resident Evil 4
zlib License
346 stars 32 forks source link

Type III Controls: Keep Shooting During Context-Sensitive Attack #364

Closed LethalPlacebo closed 2 years ago

LethalPlacebo commented 2 years ago

Describe the feature you'd like to see added

When using the Type III controls that assigns shooting to Left Trigger + Right Trigger, Leon's shooting will be interrupted if he shoots an enemy, is very close to them, and causes them to enter a staggered state that opens them up to a context sensitive melee attack (ex: "press X to kick"). There is sort of a solution to this: if you release the right trigger and then press it again, Leon will be able to continue firing, but it would be nice if the problem didn't happen at all. The same thing happens with knife slashes.

Some background info that may be of use:

When using the Type I controls, where shooting is bound to RT + X, if you just keep holding X and shoot an enemy and the prompt comes up, Leon will enter the melee animation. The same thing happens with knife slashes. This reflects original GameCube behavior. Some form of this behavior could be affecting the Type III controls, where the game stops Leon from shooting, but doesn't transition to the melee animation since it's now bound to a different button?

This is why I labeled this as a feature request and not a bugfix, I do think the game is technically working correctly.

pas-de-2 commented 2 years ago

Weirdly, this doesn't happen with Type II controls, despite ostensibly having the same LT+RT binds.

E: It doesn't happen with mouse left click either.

LethalPlacebo commented 2 years ago

Weirdly, this doesn't happen with Type II controls, despite ostensibly having the same LT+RT binds.

Can confirm, with both gunshots and knife slashes you can keep attacking with the right trigger held down even if there is a kick prompt onscreen. Thanks for the info! So perhaps this behavior for the Type III controls is NOT intended after all. The fact that the Type II controls don't have this problem gives me hope that this is something that can be fixed.

pas-de-2 commented 2 years ago

Found it. There's an explicit exemption made for type II config in joyFireOn(), but not type III.

LABEL_12:
    if ( pSys->pad_type_B == 1 )
      return result;
    return 0;

Type II config was first added in the 360 port. QLOC probably just overlooked this when they added type III for RE4 UHD.

nipkownix commented 2 years ago

Nice job, @pas-de-2!

@LethalPlacebo, here's a test build: https://github.com/nipkownix/re4_tweaks/suites/9363574564/artifacts/441072190

LethalPlacebo commented 2 years ago

Finally got home to test this, can confirm it works perfectly now. Can finally keep shooting or slashing with Type III controls, even while a kick prompt is onscreen. Thank you all! I will close this thread now.