mirror of
https://github.com/SashLilac/cambridge.git
synced 2024-11-23 05:29:02 -06:00
85 lines
2.2 KiB
Lua
85 lines
2.2 KiB
Lua
local binser = require 'libs.binser'
|
|
|
|
function loadSave()
|
|
local info = love.filesystem.getInfo(
|
|
love.filesystem.getSaveDirectory(), "directory"
|
|
)
|
|
if not info 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'
|
|
)
|
|
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
|
|
|
|
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
|
|
|
|
if not config.gamesettings then config.gamesettings = {} end
|
|
if not config.gamemodesettings then config.gamemodesettings = {} end
|
|
|
|
--[[
|
|
{
|
|
marathonA1 = {
|
|
allowHold = 1,
|
|
...
|
|
}
|
|
}
|
|
]]
|
|
|
|
for _, a in ipairs(game_modes) do
|
|
-- load config options for every mode
|
|
local mc = {}
|
|
local conf = a:provideSettings()
|
|
for i, j in pairs(conf) do
|
|
mc[j[1]] = (config.gamemodesettings[a.hash] or {})[j[1]] or 1
|
|
end
|
|
config.gamemodesettings[a.hash] = mc
|
|
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
|
|
scene = InputConfigScene()
|
|
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
|
|
|
|
function saveConfig()
|
|
binser.writeFile(
|
|
love.filesystem.getSaveDirectory() .. '/config.sav', config
|
|
)
|
|
end
|
|
|
|
function saveHighscores()
|
|
binser.writeFile(
|
|
love.filesystem.getSaveDirectory() .. '/highscores.sav', highscores
|
|
)
|
|
end
|