addHook("ThinkFrame", function()
	for player in players.iterate do
		if player.mo.skin ~= "jimmyharold" then
			continue
		end
		
		if not (player.cmd.buttons & BT_JUMP) then
			player.jumptapready = true
			player.jumptapping = false
		elseif player.jumptapready then
			player.jumptapping = true
			player.jumptapready = false
		else
			player.jumptapping = false
		end
		
		if player.jumptapping then
			if P_IsObjectOnGround(player.mo) == false and player.smakuse == false and player.mo.state == S_PLAY_TWINSPIN then
				player.mo.state = S_PLAY_STND
				player.pflags = $ & ~PF_JUMPED
				if not(player.pflags & PF_JUMPED)
					P_DoJump(player, true)
					player.smakuse = true
				player.mo.state = S_PLAY_TWINSPIN
				end
			end
		elseif player.smakuse 
		and player.target 
		and (player.target.type == MT_RING 
		or player.target.type == MT_FLINGRING) then
            P_HomingAttack(player.mo, player.target)
            P_Thrust(player.mo, player.mo.angle, 5*FRACUNIT)
            P_SpawnLockOn(player, player.target, S_LOCKON1)
		elseif P_IsObjectOnGround(player.mo) == true then
			player.smakuse = false
		elseif player.powers[pw_underwater] <= 1 - 2 then
			player.powers[pw_underwater] = 1
		end
	end
end)