Interrupting the character wrapper's jump()

I’ve been messiing around with the Blender 2.66 test build, in particular the new additions to the character wrapper, and I have to say that it’s pretty amazing. I do have one problem, though. I’m trying to make an airial dash attack that stops a characters jump, using the jump() method. As far as I can tell, there is no way to override it, nor does it seem to effect any of the “normal” physics. So, am I missing something, or is this just something I’ll have to live with?

I think you should be able to just set the walkDirection and things should be fine for the most part. The jump() method just does some checks and then add some vertical velocity. In other words, it isn’t called every frame while jumping.

I’ve been trying to get this working, but the best I can do is a hackish workaround. The problem is that the character continues to get upward velocity, regardless of what I do, and since I can’t get access to the actual velocity numbers, I can’t stop or directly counteract it. I’ve tried to lock the character’s z position using worldPosition.z, but the jump() velocity gets applied after the worldPosition, bouncing the character back and forth in a way that makes it look like its slowly falling to the set z position. I’ve tried counteracting that with by adding heavy gravity to the character while it’s above the z position, but reapplying the original gravity results in a bounce.

I’m not sure if this can be fixed on the game engine side, or if its a limitation of Bullet, but even getting access to the jump() velocity would be a big help.