-- Functions to handle restarting
-- all objects
-- Used in map switching and restarting!

function ClearWalls(walls)
	for i = #walls, 1, -1 do
		walls[i]:destroy()
	end
end

function StopAllMusic()
	-- TODO: maybe find a way
	-- to find all 'streaming'
	-- sounds and then stop them all!
	musicBattle:stop()
	musicMenu:stop()
	musicPause:stop()
	--musicStory:stop() -- Unused
end

function ClearPlayerCollision()
	UserPlayer1.collider:destroy()
	UserPlayer2.collider:destroy()
end

function ClearBullets(bullets)
	for i, v in ipairs(bullets) do
		v.collider:destroy()
	end
end

local function setNewLevelFromRandom(count)
	local level = math.random(1, count)
	_G.CUR_LEVEL = level
end

local function getLevelCount()
	local levelcount = 0
	local suf = ".lua"
	local files = love.filesystem.getDirectoryItems("maps/")

	for _, file in ipairs(files) do
		if string.find(file, suf) then
			levelcount = levelcount + 1
			--print(k .. ". " .. file) --outputs something like "1. main.lua"
		end
	end
	return levelcount
end

function RestartGame()
	setNewLevelFromRandom(getLevelCount())

	--reset wins
	_G.P1_WIN = false
	_G.P2_WIN = false

	-- Stop the music
	--StopAllMusic()

	-- Clear the players collision
	ClearPlayerCollision()

	-- Work through and delete all bullets
	ClearBullets(Bullets1)
	ClearBullets(Bullets2)

	--Clear Walls
	ClearWalls(Walls)

	-- Done!
end
