Hello! It's been a long time...

My problem is as follows: The next step in my Megaman engine is creating the special weapons and items (which you access via the same pause menu I previously asked about, long ago). I decided to pick Megaman's famous Rush Coil (where he jumps on his dog Rush to propel himself further up in the air) since Megaman usually has this item from the start. However, when I make my Megaman jump on my Rush, he doesn't jump any higher, but jumps the same as a normal jump on the ground, making the item totally useless.

My Megaman has a grav_spd variable which determines the speed of his vertical movement. It's 0 when he's on the ground, takes a negative value when you press the jump button (-15 in normal circumstances, -24 underwater) and whenever Megaman is not on the ground, grav_spd increases by one constantly until reaching 15 (it doesn't increase more than 15) _y+=grav_spd makes Megaman go up when grav_spd is negative, go down when grav_spd is positive and stay where he is when grav_spd is 0.

Now, as you may be guessing, when Megaman jumps on Rush, grav_spd should suddenly take a negative value (such as -24) to jump high in the air... But it doesn't work ...I've even tried setting that value to -40 taking into account that Megaman will add another +15 (since he's falling when he lands on Rush) to grav_spd which would make -25... But he STILL bounces as high as a normal jump on the ground out of water!

I've also tried putting ridiculously high values such as -100, but it seems to work for only one frame, then his grav_spd variable mysteriously seems to reset to 0 or something like that and start falling.

I'm very confused about this Can anyone help me?