addHook("PlayerThink", function(player) 

if not(player.mo) then return end

if not(P_IsObjectOnGround(player.mo)) 
and (player.mo.state == S_PLAY_RUN) 
and not player.powers[pw_carry]
or not (P_IsObjectOnGround(player.mo)) and (player.mo.state == S_PLAY_WALK) and not player.powers[pw_carry] then
player.mo.state = S_PLAY_SPRING
end
end)