isFalling() was !grounded && verticalVelocity <= 0, which holds for a
swimming character: not on the ground and not rising. Reaching the shore
therefore looked like a fall arriving at the ground, so SfxStateDriver
played a landing — with prevFalling set it took the hard-landing path and
the character grunted on every water exit.
Exclude swimming from isFalling(), and skip the landing entirely when the
previous frame was swimming: wading ashore is marked by the water-exit
splash that already plays, not by a landing thud.