mkxp-sunshine/scripts/Settings_Setters.rb
DepressedTWM d1124b7b35 ga
2026-08-15 17:16:16 +04:00

114 lines
3 KiB
Ruby

module Settings
module Setters
class << self
# these setters apply settings to game.
# if they are not present, they will still be saved,
# but changing them in game will not do anything
# if you do not take the value from settings directly.
# name must be same as the parameter identifier
def crashlog_privacy(value)
Sunshine.crashprivacy=value
end
def master_volume(value)
Audio.master_volume = value / 100.0
end
def bgm_volume(value)
Audio.bgm_volume = value
end
def sfx_volume(value)
Audio.sfx_volume = value
end
def fullscreen(value)
Graphics.fullscreen = $console = value
end
def resolution(value)
if (!Graphics::RESOLUTION_OVERRIDDEN)
res_data = Graphics::RESOLUTIONS&.[](value) || {:width => 480, :height => 640}
old_width = Graphics.width
old_height = Graphics.height
new_width = res_data[:width]
new_height = res_data[:height]
Graphics.move_screen(Graphics.x - (new_width - old_width) / 2, Graphics.y - (new_height - old_height) / 2)
Graphics.resize_screen(new_width, new_height)
end
end
def scaling_mode(value)
if value == 0
Graphics.smooth = false
else
Graphics.smooth = true
end
end
def colorblind(value)
$game_switches[252] = value
end
# UI
def in_game_timer(value)
$game_temp.igt_timer_visible = value
if $scene.is_a?(Scene_Map) && $scene&.in_game_timer
$scene.in_game_timer.visible = $game_temp.igt_timer_visible
end
end
def language(value)
$persistent.lang = Language::LANGUAGES[value]
$scene&.redraw
end
def movement(value)
$game_switches[251] = value != 0
end
def skip_text(value)
$game_switches[253] = value != 0
end
def frameskip(value)
Graphics.frameskip = value
end
def SDL_HINT_INVALID_PARAM_CHECKS(value)
if value
Sunshine.setSDLHint("SDL_HINT_INVALID_PARAM_CHECKS", "1")
else
Sunshine.setSDLHint("SDL_HINT_INVALID_PARAM_CHECKS", "2")
end
end
def vsync(value)
if value == 0
Graphics.setVsync(1)
elsif value == 1
Graphics.setVsync(-1)
else
Graphics.setVsync(0)
end
end
def SDL_HINT_SHUTDOWN_DBUS_ON_QUIT(value)
if value
Sunshine.setSDLHint("SDL_HINT_SHUTDOWN_DBUS_ON_QUIT", "1")
else
Sunshine.setSDLHint("SDL_HINT_SHUTDOWN_DBUS_ON_QUIT", "0")
end
end
def profiller(value)
Profiler.set(value)
end
def wallpaper_mode(value)
if value == 0
Sunshine.wallpapermode="normal"
elsif value == 1
Sunshine.wallpapermode="fallback"
else
Sunshine.wallpapermode="disabled"
end
end
end
end
end