-- 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()) -- 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