60 lines
1.3 KiB
Lua
60 lines
1.3 KiB
Lua
Config = {}
|
|
|
|
--- Return initial data for Config
|
|
--- @within Config
|
|
function Config.initial_data()
|
|
return {
|
|
screen = {
|
|
width = 240,
|
|
height = 136
|
|
},
|
|
colors = {
|
|
black = 2,
|
|
light_grey = 13,
|
|
dark_grey = 14,
|
|
red = 0,
|
|
green = 7,
|
|
blue = 9,
|
|
white = 12,
|
|
item = 12,
|
|
meter_bg = 12
|
|
},
|
|
timing = {
|
|
splash_duration = 120
|
|
}
|
|
}
|
|
end
|
|
|
|
--- Restores default configuration settings.
|
|
--- @within Config
|
|
function Config.reset()
|
|
local initial = Config.initial_data()
|
|
Config.screen = initial.screen
|
|
Config.colors = initial.colors
|
|
Config.timing = initial.timing
|
|
end
|
|
|
|
local CONFIG_SAVE_BANK = 7
|
|
local CONFIG_MAGIC_VALUE_ADDRESS = 2
|
|
local CONFIG_SPLASH_DURATION_ADDRESS = 3
|
|
local CONFIG_MAGIC_VALUE = 0xDE
|
|
|
|
--- Saves the current configuration.
|
|
--- @within Config
|
|
function Config.save()
|
|
mset(CONFIG_MAGIC_VALUE, CONFIG_MAGIC_VALUE_ADDRESS, CONFIG_SAVE_BANK)
|
|
mset(Config.timing.splash_duration, CONFIG_SPLASH_DURATION_ADDRESS, CONFIG_SAVE_BANK)
|
|
end
|
|
|
|
--- Loads saved configuration.
|
|
--- @within Config
|
|
function Config.load()
|
|
if mget(CONFIG_MAGIC_VALUE_ADDRESS, CONFIG_SAVE_BANK) == CONFIG_MAGIC_VALUE then
|
|
Config.timing.splash_duration = mget(CONFIG_SPLASH_DURATION_ADDRESS, CONFIG_SAVE_BANK)
|
|
else
|
|
Config.reset()
|
|
end
|
|
end
|
|
|
|
Config.load()
|