local preservespeed = 0
local bombspeed = 0
addHook("PlayerThink", do
    for player in players.iterate
        if player.mo.skin ~= "fang2"
			return
		end
		if (player.cmd.buttons & BT_WEAPONPREV)
			bombspeed = bombspeed - 2*FRACUNIT
		end
		if (player.cmd.buttons & BT_WEAPONNEXT)
			bombspeed = bombspeed + 2*FRACUNIT
		end
		if (player.cmd.buttons & BT_CUSTOM2) then
			if not player.spinheld then
				preservespeed = player.speed
			end
			P_InstaThrust(player.mo, player.mo.angle, 0)
			preservespeed = preservespeed + 10
			player.spinheld = true

		else
			if player.spinheld then
				P_InstaThrust(player.mo, player.mo.angle, preservespeed)
			end
			player.spinheld = false
		end
		if player.speed/900 > 0 then
			player.jumpfactor = FRACUNIT+FRACUNIT/10+(player.speed/800)
		else
			player.jumpfactor = FRACUNIT
		end
		if (player.cmd.buttons & BT_CUSTOM1) and not player.bombpressed then
			player.bombpressed = true
			player.bomb = P_SpawnMobjFromMobj(player.mo, 0, 0, player.mo.height+(35*FRACUNIT), MT_FBOMB)
			P_SetObjectMomZ(player.bomb, 10*FRACUNIT, true)
			P_InstaThrust(player.bomb, player.mo.angle, (10*FRACUNIT)+preservespeed+bombspeed)
			if player.speed > FRACUNIT then
				P_InstaThrust(player.mo, player.mo.angle, player.speed/2)
			end
		end
		if not (player.cmd.buttons & BT_CUSTOM1) then
			player.bombpressed = false
		end
    end
end)