mirror of
https://github.com/SashLilac/cambridge.git
synced 2024-11-22 03:39:03 -06:00
New replay file naming and *fast replay saving.
*fast because lower CPU and IO use. No longer O(n²).
This commit is contained in:
parent
23a8c400ba
commit
d7c83b0bc7
@ -139,21 +139,18 @@ function GameMode:saveReplay()
|
|||||||
if love.filesystem.getInfo("replays") == nil then
|
if love.filesystem.getInfo("replays") == nil then
|
||||||
love.filesystem.createDirectory("replays")
|
love.filesystem.createDirectory("replays")
|
||||||
end
|
end
|
||||||
local replay_files = love.filesystem.getDirectoryItems("replays")
|
local init_name = string.format("replays/%s.crp", os.date("%Y-%m-%d_%H-%M-%S"))
|
||||||
-- Select replay filename that doesn't collide with an existing one
|
local replay_name = init_name
|
||||||
local replay_number = 0
|
local replay_number = 0
|
||||||
local collision = true
|
while true do
|
||||||
while collision do
|
if love.filesystem.getInfo(replay_name, "file") then
|
||||||
collision = false
|
|
||||||
replay_number = replay_number + 1
|
replay_number = replay_number + 1
|
||||||
for key, file in pairs(replay_files) do
|
replay_name = string.format("%s (%d)", init_name, replay_number)
|
||||||
if file == replay_number..".crp" then
|
else
|
||||||
collision = true
|
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
love.filesystem.write(replay_name, binser.serialize(replay))
|
||||||
love.filesystem.write("replays/"..replay_number..".crp", binser.serialize(replay))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function GameMode:addReplayInput(inputs)
|
function GameMode:addReplayInput(inputs)
|
||||||
|
Loading…
Reference in New Issue
Block a user