109 lines
2.8 KiB
C++
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_ */
|