cambridge/load/save.lua

62 lines
1.7 KiB
Lua
Raw Normal View History

2019-05-22 22:57:34 -05:00
local binser = require 'libs.binser'
function loadSave()
local info = love.filesystem.getInfo(love.filesystem.getSaveDirectory())
if not info or info.type ~= "directory" then
love.filesystem.remove(love.filesystem.getSaveDirectory())
love.filesystem.createDirectory(love.filesystem.getSaveDirectory())
end
config = loadFromFile(
love.filesystem.getSaveDirectory() .. '/config.sav'
)
highscores = loadFromFile(
love.filesystem.getSaveDirectory() .. '/highscores.sav'
)
2019-05-22 22:57:34 -05:00
end
function loadFromFile(filename)
local save_data, len = binser.readFile(filename)
if save_data == nil then
return {} -- new object
end
return save_data[1]
end
2021-03-11 08:24:19 -06:00
function initConfig()
if not config.das then config.das = 10 end
if not config.arr then config.arr = 2 end
if not config.dcd then config.dcd = 0 end
if not config.sfx_volume then config.sfx_volume = 0.5 end
if not config.bgm_volume then config.bgm_volume = 0.5 end
if config.fullscreen == nil then config.fullscreen = false end
if config.secret == nil then config.secret = false end
2019-05-22 22:57:34 -05:00
2021-03-11 08:24:19 -06:00
if not config.gamesettings then config.gamesettings = {} end
for _, option in ipairs(GameConfigScene.options) do
if not config.gamesettings[option[1]] then
config.gamesettings[option[1]] = 1
end
end
if not config.input then
2021-05-20 22:25:24 -05:00
scene = InputConfigScene()
2021-03-11 08:24:19 -06:00
else
if config.current_mode then current_mode = config.current_mode end
if config.current_ruleset then current_ruleset = config.current_ruleset end
scene = TitleScene()
end
end
2019-05-22 22:57:34 -05:00
function saveConfig()
binser.writeFile(
love.filesystem.getSaveDirectory() .. '/config.sav', config
)
2019-05-22 22:57:34 -05:00
end
function saveHighscores()
binser.writeFile(
love.filesystem.getSaveDirectory() .. '/highscores.sav', highscores
)
2019-05-22 22:57:34 -05:00
end