revo-jailbreak/autoloads/options.gd
2023-02-24 21:38:43 -05:00

64 lines
1.7 KiB
GDScript

extends Node
#Enums
enum ScalingModes {INTEGER,ASPECT,STRETCH}
enum Filters {NONE,CRT,LCD,BILINEAR}
enum RumbleMode {NONE,NORMAL,BPM}
enum TransSpeed {NONE = 0,SLOW = 1,NORMAL = 2,FAST = 3}
var TRANS_SPEEDS = [0.0000001, 0.8, 0.4, 0.2]
#Game
var rumble = RumbleMode.NONE
#Video
var fullscreen = false
var scaling_mode = ScalingModes.INTEGER
var transition_speed = TransSpeed.NORMAL setget , _get_transition_speed
#Audio
var master_volume = 100 setget _set_master_volume
var music_volume = 100 setget _set_music_volume
var sound_volume = 100 setget _set_sound_volume
func _ready():
load_options()
func load_options():
var file = ConfigFile.new()
file.load("user://options.pr")
func save_options():
var file = ConfigFile.new()
#Game
file.set_value("game","rumble",rumble)
#Video
file.set_value("video","fullscreen",fullscreen)
file.set_value("video","scaling_mode",scaling_mode)
file.set_value("video","transition_speed",transition_speed)
#Audio
file.set_value("audio","master_volume",master_volume)
file.set_value("audio","music_volume",music_volume)
file.set_value("audio","sound_volume",sound_volume)
file.save("user://options.pr")
# Setters
func _set_fullscreen(value):
fullscreen = value
OS.set_window_fullscreen(value)
func _get_transition_speed():
return TRANS_SPEEDS[transition_speed]
func _set_master_volume(value):
master_volume = value
AudioServer.set_bus_volume_db(0, linear2db(value))
func _set_music_volume(value):
music_volume = value
var idx = AudioServer.get_bus_index("music")
AudioServer.set_bus_volume_db(idx, linear2db(value))
func _set_sound_volume(value):
sound_volume = value
var idx = AudioServer.get_bus_index("sound")
AudioServer.set_bus_volume_db(idx, linear2db(value))