mirror of
				https://github.com/Zelda64Recomp/Zelda64Recomp.git
				synced 2025-10-30 08:03:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef __ZELDA_CONFIG_H__
 | 
						|
#define __ZELDA_CONFIG_H__
 | 
						|
 | 
						|
#include <filesystem>
 | 
						|
#include <string_view>
 | 
						|
#include "ultramodern/config.hpp"
 | 
						|
 | 
						|
namespace zelda64 {
 | 
						|
    constexpr std::u8string_view program_id = u8"Zelda64Recompiled";
 | 
						|
    constexpr std::string_view program_name = "Zelda 64: Recompiled";
 | 
						|
 | 
						|
    // TODO: Move loading configs to the runtime once we have a way to allow per-project customization.
 | 
						|
    void load_config();
 | 
						|
    void save_config();
 | 
						|
    
 | 
						|
    void reset_input_bindings();
 | 
						|
    void reset_cont_input_bindings();
 | 
						|
    void reset_kb_input_bindings();
 | 
						|
 | 
						|
    std::filesystem::path get_app_folder_path();
 | 
						|
    
 | 
						|
    bool get_debug_mode_enabled();
 | 
						|
    void set_debug_mode_enabled(bool enabled);
 | 
						|
    
 | 
						|
    enum class AutosaveMode {
 | 
						|
        On,
 | 
						|
        Off,
 | 
						|
        OptionCount
 | 
						|
    };
 | 
						|
 | 
						|
    NLOHMANN_JSON_SERIALIZE_ENUM(zelda64::AutosaveMode, {
 | 
						|
        {zelda64::AutosaveMode::On, "On"},
 | 
						|
        {zelda64::AutosaveMode::Off, "Off"}
 | 
						|
    });
 | 
						|
 | 
						|
    enum class TargetingMode {
 | 
						|
        Switch,
 | 
						|
        Hold,
 | 
						|
        OptionCount
 | 
						|
    };
 | 
						|
 | 
						|
    NLOHMANN_JSON_SERIALIZE_ENUM(zelda64::TargetingMode, {
 | 
						|
        {zelda64::TargetingMode::Switch, "Switch"},
 | 
						|
        {zelda64::TargetingMode::Hold, "Hold"}
 | 
						|
    });
 | 
						|
 | 
						|
    TargetingMode get_targeting_mode();
 | 
						|
    void set_targeting_mode(TargetingMode mode);
 | 
						|
 | 
						|
    enum class CameraInvertMode {
 | 
						|
        InvertNone,
 | 
						|
        InvertX,
 | 
						|
        InvertY,
 | 
						|
        InvertBoth,
 | 
						|
        OptionCount
 | 
						|
    };
 | 
						|
 | 
						|
    NLOHMANN_JSON_SERIALIZE_ENUM(zelda64::CameraInvertMode, {
 | 
						|
        {zelda64::CameraInvertMode::InvertNone, "InvertNone"},
 | 
						|
        {zelda64::CameraInvertMode::InvertX, "InvertX"},
 | 
						|
        {zelda64::CameraInvertMode::InvertY, "InvertY"},
 | 
						|
        {zelda64::CameraInvertMode::InvertBoth, "InvertBoth"}
 | 
						|
    });
 | 
						|
 | 
						|
    CameraInvertMode get_camera_invert_mode();
 | 
						|
    void set_camera_invert_mode(CameraInvertMode mode);
 | 
						|
 | 
						|
    CameraInvertMode get_analog_camera_invert_mode();
 | 
						|
    void set_analog_camera_invert_mode(CameraInvertMode mode);
 | 
						|
 | 
						|
    enum class AnalogCamMode {
 | 
						|
        On,
 | 
						|
        Off,
 | 
						|
		OptionCount
 | 
						|
    };
 | 
						|
 | 
						|
    NLOHMANN_JSON_SERIALIZE_ENUM(zelda64::AnalogCamMode, {
 | 
						|
        {zelda64::AnalogCamMode::On, "On"},
 | 
						|
        {zelda64::AnalogCamMode::Off, "Off"}
 | 
						|
    });
 | 
						|
 | 
						|
    AutosaveMode get_autosave_mode();
 | 
						|
    void set_autosave_mode(AutosaveMode mode);
 | 
						|
 | 
						|
    AnalogCamMode get_analog_cam_mode();
 | 
						|
    void set_analog_cam_mode(AnalogCamMode mode);
 | 
						|
 | 
						|
    void open_quit_game_prompt();
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |