#ifndef EQEMU_OPTIONS_H #define EQEMU_OPTIONS_H /** * Collects options on one object, because having a bunch of global variables floating around is * really ugly and just a little dangerous. */ class Options { public: /** * Constructor: Default options */ Options() : allow_unregistered(true), display_expansions(false), max_expansions_mask(0), encryption_mode(5), reject_duplicate_servers(false), allow_password_login(true), allow_token_login(false), auto_create_accounts(false) {} /** * Sets allow_unregistered. */ inline void AllowUnregistered(bool b) { allow_unregistered = b; } /** * Returns the value of expansion display settings. */ inline void DisplayExpansions(bool b) { display_expansions = b; } inline void MaxExpansions(int i) { max_expansions_mask = i; } inline bool IsDisplayExpansions() const { return display_expansions; } inline int GetMaxExpansions() const { return max_expansions_mask; } /** * Returns the value of allow_unregistered. */ inline bool IsUnregisteredAllowed() const { return allow_unregistered; } /** * Sets encryption_mode. */ inline void EncryptionMode(int m) { encryption_mode = m; } /** * Returns the value of encryption_mode. */ inline int GetEncryptionMode() const { return encryption_mode; } /** * Sets whether we are rejecting duplicate servers or not. */ inline void RejectDuplicateServers(bool b) { reject_duplicate_servers = b; } /** * Returns whether we are rejecting duplicate servers or not. */ inline bool IsRejectingDuplicateServers() { return reject_duplicate_servers; } inline void AllowTokenLogin(bool b) { allow_token_login = b; } inline bool IsTokenLoginAllowed() const { return allow_token_login; } inline void AllowPasswordLogin(bool b) { allow_password_login = b; } inline bool IsPasswordLoginAllowed() const { return allow_password_login; } inline void AutoCreateAccounts(bool b) { auto_create_accounts = b; } inline bool CanAutoCreateAccounts() const { return auto_create_accounts; } inline void AutoLinkAccounts(bool b) { auto_link_accounts = b; } inline bool CanAutoLinkAccounts() const { return auto_link_accounts; } inline void EQEmuLoginServerAddress(std::string v) { eqemu_loginserver_address = v; } inline std::string GetEQEmuLoginServerAddress() const { return eqemu_loginserver_address; } inline void DefaultLoginServerName(std::string v) { default_loginserver_name = v; } inline std::string GetDefaultLoginServerName() const { return default_loginserver_name; } inline void UpdateInsecurePasswords(bool b) { update_insecure_passwords = b; } inline bool IsUpdatingInsecurePasswords() const { return update_insecure_passwords; } inline bool IsShowPlayerCountEnabled() const { return show_player_count; } inline void SetShowPlayerCount(bool show_player_count) { Options::show_player_count = show_player_count; } inline bool IsWorldDevTestServersListBottom() const { return world_dev_test_servers_list_bottom; } inline void SetWorldDevTestServersListBottom(bool dev_test_servers_list_bottom) { Options::world_dev_test_servers_list_bottom = dev_test_servers_list_bottom; } inline bool IsWorldSpecialCharacterStartListBottom() const { return world_special_character_start_list_bottom; } inline void SetWorldSpecialCharacterStartListBottom(bool world_special_character_start_list_bottom) { Options::world_special_character_start_list_bottom = world_special_character_start_list_bottom; } private: bool allow_unregistered; bool display_expansions; bool reject_duplicate_servers; bool world_dev_test_servers_list_bottom; bool world_special_character_start_list_bottom; bool allow_token_login; bool allow_password_login; bool show_player_count; bool auto_create_accounts; bool auto_link_accounts; bool update_insecure_passwords; int encryption_mode; int max_expansions_mask; std::string eqemu_loginserver_address; std::string default_loginserver_name; }; #endif