35 lines
1.1 KiB
Text
35 lines
1.1 KiB
Text
# ludic.settings/rules.ludic - the whole store at once: every setting to its default, every one
|
|
# held to its range, and the rescue set. None of these is news: whoever calls them applies it all
|
|
export function settings_reset_all() -> void {
|
|
sg_init()
|
|
for i in 0 .. len(sg_defs) {
|
|
sg_num[i] = sg_defs[i].num
|
|
sg_text[i] = sg_defs[i].text
|
|
}
|
|
}
|
|
|
|
# a hand-edited file, or one from a build with more choices, never hands the game a value it has
|
|
# no case for
|
|
export function settings_clamp_all() -> void {
|
|
sg_init()
|
|
for i in 0 .. len(sg_defs) { sg_num[i] = settings_held(i, sg_num[i]) }
|
|
}
|
|
|
|
# the values every machine can run: each setting marked `rescue` back to its default, and the
|
|
# rest (keys, language, volume) left the player's
|
|
export function settings_rescue() -> void {
|
|
sg_init()
|
|
for i in 0 .. len(sg_defs) {
|
|
if sg_defs[i].rescue {
|
|
sg_num[i] = sg_defs[i].num
|
|
sg_text[i] = sg_defs[i].text
|
|
}
|
|
}
|
|
}
|
|
|
|
# whether a setting is on the rescue list at its safe value
|
|
export function settings_is_safe(id: int) -> bool {
|
|
let d = sg_defs[id]
|
|
if not d.rescue { return true }
|
|
return sg_num[id] == d.num and sg_text[id] == d.text
|
|
}
|