I haven’t tried this myself yet, but I wanted to make it known that it is now possible to implement a primitive way to vary the player footstep sounds in FPSC-R using a combination of Omega Core expanded keyboard input and the 3D sound system. If anyone wants to give this a try before me, here is what you would need to do.
First step is to replace the default grass walk sound with a file of the same name that just contains about 1 second of silence. I’m not sure exactly which file this is so you’ll have to find that out for yourself at least for now.
Second, load up the footsteps sounds that you want to use for you game using the ocAULoadSound function. You should do this preferably in a global player.lua script that you attach to some object in the game world and turn Always On to true. So, you might, for instance, load up a grass walk and a stone walk sound. You’ll also want to use the new ocAUSetSound2D function so that you don’t have to update the sound position to player position every time he moves. Although, you might want to do it that for your own reasons.
Third, in your player.lua script you’ll want to check for movement keys like wasd and arrows. While in motion you can then tell Omega Core to play the appropriate walking sound in a loop and to stop playing when no longer moving.
So, how do you determine then which sounds to play? That’s why this is a fairly primitive implementation. Unless you do some complex location checks or lay down some really complex zones, you should only use this for entire areas. Perhaps you always play the grass walk sound outdoors, but when your player crosses a trigger zone into a stone building then you switch to always playing the stone walk sound.
While this is somewhat primitive and doesn’t handle complex cases, it should work very effectively in the simple cases. When I get some time I’m going to implement something like this in Rescue the Princess. Good luck to anyone who gives this a try. And don’t hesitate to ask me questions if you’re trying to do this and get stuck.