addHook("ThinkFrame", do
	for player in players.iterate
		if player.mo.valid
		and(player.mo.skin == "bob") and player.mo.state == S_PLAY_BDOVE then
		player.powers[pw_strong] =  STR_SPRING|STR_FLOOR|STR_ANIM
		end
	end
end)

addHook("ThinkFrame", function()
for player in players.iterate do
	local spin_pressed = (player.cmd.buttons & BT_SPIN) ~= 0
	if player.mo.valid
	and(player.mo.skin == "bob") and not (gametype == GT_LTMMURDERMYSTERY) and player.mo.state == S_PLAY_WALK and spin_pressed and player.speed >= 20 * FRACUNIT then
		player.mo.state = S_PLAY_ROLL
		player.pflags = $ |PF_SPINNING
		S_StartSound(player.mo, sfx_zoom)
		end
	end
end)

addHook("ThinkFrame", function()
for player in players.iterate do
	local spin_pressed = (player.cmd.buttons & BT_SPIN) ~= 0
	if player.mo.valid
	and(player.mo.skin == "bob") and not (gametype == GT_LTMMURDERMYSTERY) and player.mo.state == S_PLAY_RUN and spin_pressed then
		player.mo.state = S_PLAY_ROLL
		player.pflags = $ |PF_SPINNING
		S_StartSound(player.mo, sfx_zoom)
		end
	end
end)

addHook("ThinkFrame", function()
for player in players.iterate do
	local spin_pressed = (player.cmd.buttons & BT_SPIN) ~= 0
	if player.mo.valid
	and(player.mo.skin == "bob") and not (gametype == GT_LTMMURDERMYSTERY) and player.mo.state == S_PLAY_DASH and spin_pressed then
		player.mo.state = S_PLAY_ROLL
		player.pflags = $ |PF_SPINNING
		S_StartSound(player.mo, sfx_zoom)
		end
	end
end)


addHook("ThinkFrame", do
	for player in players.iterate
		if player.mo.valid
		and(player.mo.skin == "bob") and player.mo.state == S_PLAY_DASH then
		player.powers[pw_strong] =  STR_PUNCH|STR_ANIM
		end
	end
end)