mkxp-sunshine/scripts/Settings.rb
2026-06-23 22:33:16 +03:00

104 lines
3 KiB
Ruby

module Settings
FILE_PATH = [Oneshot::SAVE_PATH, 'settings.sunshine.dat'].join '/'
class << self
def [](k)
@data[k]
end
def []=(k, v)
if @data[k] == false or @data[k] == true
if not (v == false or v == true)
return
end
elsif @data[k] == NilClass
return
elsif @data[k].class != v.class
return
end
@data[k] = v;
end
def load!
#Settings::Legacy.load!
Settings.reset!
if FileTest.exist?(Settings::FILE_PATH)
File.open(Settings::FILE_PATH, "rb") do |f|
settings = Marshal.load(f) rescue return
if settings.class == Hash
settings.each do |key, value|
Settings[key] = value;
end
end
end
end
Settings.save!
end
def save!
#Settings::Legacy.save!
if @data
File.open(Settings::FILE_PATH, "wb") do |f|
f.write Marshal.dump(@data)
end
end
end
end
#module Legacy
# FILE_PATH = [Oneshot::SAVE_PATH, 'settings.conf'].join '/'
#
# def self.load!
# if not FileTest.exist?(Settings::Legacy::FILE_PATH)
# Settings::Legacy.save!
# return
# end
#
# File.foreach(Settings::Legacy::FILE_PATH) do |line|
# if not line.include? "="
# next
# end
#
# key, value = line.strip.split("=", 2)
# puts ([key, value].join '=')
# case key
# when "bgm_volume"
# Audio.bgm_volume = value.to_i
# when "sfx_volume"
# Audio.sfx_volume = value.to_i
# when "fullscreen"
# Graphics.fullscreen = (value.casecmp "true") == 0
# when "default_run"
# $game_switches[251] = (value.casecmp "true") == 0
# when "colorblind_mode"
# $game_switches[252] = (value.casecmp "true") == 0
# when "automash_enabled"
# $game_switches[253] = (value.casecmp "true") == 0
# when "frameskip"
# Graphics.frameskip = (value.casecmp "true") == 0
# when "in_game_timer"
# $game_temp.igt_timer_visible = (value.casecmp "true") == 0
# $scene.in_game_timer.visible = $game_temp.igt_timer_visible if $scene.is_a?(Scene_Map)
# end
# end
# end
#
# def self.save!
# $persistent.save
# File.open(Settings::Legacy::FILE_PATH, 'w') do |f|
# f.puts (["bgm_volume", Audio.bgm_volume].join '=')
# f.puts (["sfx_volume", Audio.sfx_volume].join '=')
# f.puts (["fullscreen", Graphics.fullscreen].join '=')
# f.puts (["default_run", ($game_switches[251])].join '=')
# f.puts (["colorblind_mode", ($game_switches[252])].join '=')
# f.puts (["automash_enabled", ($game_switches[253])].join '=')
# f.puts (["frameskip", Graphics.frameskip].join '=')
# f.puts (["in_game_timer", $game_temp.igt_timer_visible].join '=')
# end
# end
#end
end