addHook("PlayerThink",function(p)
	if p.pflags & PF_SPINNING
	and not (p.pflags & PF_STARTDASH)
	and P_IsObjectOnGround(p.mo) then
		if p.cmd.forwardmove ~= 0
		or p.cmd.sidemove ~= 0
		or p.camangle == nil
		or p.mo.eflags & MFE_SPRUNG then
			p.camangle = p.cmd.angleturn<<16 + R_PointToAngle2(0, 0, p.cmd.forwardmove*FRACUNIT, -p.cmd.sidemove<<16)
		end
		p.movespd = R_PointToDist2(p.mo.x, p.mo.y, p.mo.x + p.mo.momx, p.mo.y + p.mo.momy)
		P_InstaThrust(p.mo,R_PointToAngle2(p.mo.x - p.mo.momx,p.mo.y - p.mo.momy,p.mo.x + P_ReturnThrustX(p.mo,p.camangle,p.movespd),p.mo.y + P_ReturnThrustY(p.mo,p.camangle,p.movespd)),p.movespd)
	else
		p.camangle = nil
	end
end)


addHook("PlayerThink", function(player)
	if (player.mo and player.mo.valid and player.mo.skin == "ultsonic")
	   player.stars = true
	else
	   player.stars = false
	end
end)

addHook("ThinkFrame", do
	for player in players.iterate
	if player.powers[pw_sneakers] and player.powers[pw_invulnerability] return end
		if (player.stars == true)
		and player.powers[pw_super]
		and not (player.exiting)
			S_ChangeMusic("classic", true, player)
		end
    end
end)