fallout2-ce/src/settings.h

109 lines
2.8 KiB
C++

#ifndef FALLOUT_SETTINGS_H_
#define FALLOUT_SETTINGS_H_
#include <string>
#include "game_config.h"
namespace fallout {
struct SystemSettings {
std::string executable = "game";
std::string master_dat_path = "master.dat";
std::string master_patches_path = "data";
std::string critter_dat_path = "critter.dat";
std::string critter_patches_path = "data";
std::string language = ENGLISH;
int scroll_lock = 0;
bool interrupt_walk = true;
int art_cache_size = 8;
bool color_cycling = true;
int cycle_speed_factor = 1;
bool hashing = true;
int splash = 0;
int free_space = 20480;
int times_run = 0;
};
struct PreferencesSettings {
int game_difficulty = GAME_DIFFICULTY_NORMAL;
int combat_difficulty = COMBAT_DIFFICULTY_NORMAL;
int violence_level = VIOLENCE_LEVEL_MAXIMUM_BLOOD;
int target_highlight = TARGET_HIGHLIGHT_TARGETING_ONLY;
bool item_highlight = true;
bool combat_looks = false;
bool combat_messages = true;
bool combat_taunts = true;
bool language_filter = false;
bool running = false;
bool subtitles = false;
int combat_speed = 0;
bool player_speedup = false;
double text_base_delay = 3.5;
double text_line_delay = 1.399994;
double brightness = 1.0;
double mouse_sensitivity = 1.0;
bool running_burning_guy = true;
};
struct SoundSettings {
bool initialize = true;
bool debug = false;
bool debug_sfxc = true;
int device = -1;
int port = -1;
int irq = -1;
int dma = -1;
bool sounds = true;
bool music = true;
bool speech = true;
int master_volume = 22281;
int music_volume = 22281;
int sndfx_volume = 22281;
int speech_volume = 22281;
int cache_size = 448;
std::string music_path1 = "sound\\music\\";
std::string music_path2 = "sound\\music\\";
};
struct DebugSettings {
std::string mode = "environment";
bool show_tile_num = false;
bool show_script_messages = false;
bool show_load_info = false;
bool output_map_data_info = false;
};
struct MapperSettings {
bool override_librarian = false;
bool librarian = false;
bool user_art_not_protos = false;
bool rebuild_protos = false;
bool fix_map_objects = false;
bool fix_map_inventory = false;
bool ignore_rebuild_errors = false;
bool show_pid_numbers = false;
bool save_text_maps = false;
bool run_mapper_as_game = false;
bool default_f8_as_game = true;
bool sort_script_list = false;
};
struct Settings {
SystemSettings system;
PreferencesSettings preferences;
SoundSettings sound;
DebugSettings debug;
MapperSettings mapper;
};
extern Settings settings;
bool settingsInit(bool isMapper, int argc, char** argv);
bool settingsSave();
bool settingsExit(bool shouldSave);
} // namespace fallout
#endif /* FALLOUT_SETTINGS_H_ */