if (patrolspikes_initialized) then return end -- Check if the script has already been run

--SpikePatrol lua (Modified for Patrol Bugs)
--by Callmore (Mucked with by Ivo)

freeslot("MT_PATROLSPIKE")--, "S_MMSpikePatrol2")

local function mmSpikePatrolSpawn(mo)
	mo.scale = $*2
end

addHook("MobjSpawn", mmSpikePatrolSpawn, MT_PATROLSPIKE)

local function mmSpikePatrolThink(mo)
	local xdir = sin(mo.angle - ANGLE_90)
	local ydir = cos(mo.angle + ANGLE_90)
	
	local didMove
	if mo.currentmovement then
		didMove = P_TryMove(mo, mo.x + (xdir * mo.info.speed), mo.y + (ydir * mo.info.speed))
	else
		didMove = P_TryMove(mo, mo.x - (xdir * mo.info.speed), mo.y - (ydir * mo.info.speed))
	end
	if not didMove then
		--print("Flipping SpikePatrol")
		--mo.currentmovement = not $
		mo.angle = $+ANGLE_180
	end

end

addHook("MobjThinker", mmSpikePatrolThink, MT_PATROLSPIKE)

rawset(_G, "patrolspikes", true) -- The script ran, don't run it again