addHook("PlayerThink", function(player)
if player.mo.skin ~= "sonic" then return end
if (player.cmd.buttons & BT_CUSTOM1)
and not player.powers[pw_super]
and player.pflags & PF_JUMPED then
player.mo.state = S_PLAY_ROLL
player.pflags = $1|PF_THOKKED
player.pflags = $1|PF_STARTDASH
player.charging = true
 end
end)

addHook("PlayerThink",function(player)
if player.mo.skin ~= "sonic" then return end
if player.mo.eflags & MFE_JUSTHITFLOOR 
and player.charging then
S_StartSound(player.mo, sfx_zoom)
player.mo.state = S_PLAY_ROLL
player.charging = false
player.pflags =$1|PF_SPINNING
P_InstaThrust(player.mo, player.mo.angle, skins[player.mo.skin].normalspeed+25*FRACUNIT)
 end
end)