33 #include "../clib/cfgelem.h" 34 #include "../clib/cfgfile.h" 35 #include "../clib/fileutil.h" 36 #include "../clib/logfacility.h" 51 cf.
open(
"config/servspecopt.local.cfg" );
56 cf.
open(
"config/servspecopt.cfg" );
61 elem.
remove_bool(
"AllowSecureTradingInWarMode",
false );
71 elem.
remove_bool(
"EventVisibilityCoreChecks",
false );
87 elem.
remove_bool(
"ForceNewObjCachePackets",
false );
93 "MaxContainerSlots", 125 ) );
105 static_cast<unsigned char>( elem.
remove_ushort(
"SupportFaces", 0 ) );
107 elem.
remove_bool(
"NewbieStartingEquipment",
true );
110 elem.
remove_bool(
"ScriptedMerchantHandlers",
false );
112 elem.
remove_bool(
"HonorUnequipScriptOnDeath",
false );
125 elem.
remove_bool(
"MobilesBlockNpcMovement",
true );
128 static_cast<unsigned char>( elem.
remove_ushort(
"DefaultCharacterHeight", 15 ) );
129 if ( default_character_height < 1 )
130 default_character_height = 1;
131 else if ( default_character_height > 32 )
132 default_character_height = 32;
150 static char tmp[100], tmpcopy[256];
152 std::string total_stats = elem.
remove_string(
"TotalStatsAtCreation",
"65,80" );
153 strncpy( tmpcopy, total_stats.c_str(),
sizeof( tmpcopy ) - 1 );
157 tmpcopy[
sizeof( tmpcopy ) - 1] =
'\0';
159 char *token, *valmax, *valend;
160 unsigned int statmin, statmax;
168 token = strtok( tmpcopy,
"," );
169 while ( token !=
nullptr && valok )
172 statmin = strtoul( token, &valmax, 0 );
173 if ( valmax == token )
175 if ( *valmax !=
'\0' )
178 if ( *( valmax++ ) !=
'-' || !isdigit( *valmax ) )
180 statmax = strtoul( valmax, &valend, 0 );
181 if ( *valend !=
'\0' || valend == valmax || statmax < statmin )
183 if ( statmax == statmin )
184 sprintf( tmp,
"%lu", static_cast<unsigned long>( statmin ) );
186 sprintf( tmp,
"%lu-%lu", static_cast<unsigned long>( statmin ),
187 static_cast<unsigned long>( statmax ) );
190 sprintf( tmp,
"%lu", static_cast<unsigned long>( statmin ) );
193 token = strtok(
nullptr,
"," );
201 POLLOG_ERROR <<
"Invalid TotalStatsAtCreation value '" << total_stats <<
"', using '65,80'\n";
unsigned short default_doubleclick_range
std::vector< std::string > total_stats_at_creation
std::string remove_string(const char *propname)
bool allow_secure_trading_in_warmode
double carrying_capacity_mod
unsigned short default_light_level
unsigned short speedhack_footrundelay
bool newbie_starting_equipment
unsigned short default_container_max_items
unsigned short whisper_range
unsigned short yell_range
unsigned int remove_ulong(const char *propname)
unsigned short speedhack_footwalkdelay
bool honor_unequip_script_on_death
int remove_int(const char *propname)
bool mobiles_block_npc_movement
unsigned short default_attribute_cap
unsigned short core_handled_tags
void readraw(ConfigElem &elem)
double remove_double(const char *propname, double dflt)
int default_accessible_range
unsigned short starting_gold
bool core_sends_guildmsgs
unsigned char default_max_slots
bool speedhack_prevention
bool event_visibility_core_checks
bool scripted_merchant_handlers
unsigned int max_pathfind_range
unsigned short uo_feature_enable
#define PKTIN_02_FOOT_RUN
unsigned int dblclick_wait
bool seperate_speechtoken
bool force_new_objcache_packets
unsigned short speech_range
unsigned char default_character_height
void open(const char *i_filename)
SettingsManager settingsManager
unsigned short default_container_max_weight
unsigned int default_decay_time
unsigned char support_faces
static void ssopt_parse_totalstats(Clib::ConfigElem &elem)
#define PKTIN_02_FOOT_WALK
unsigned short remove_ushort(const char *propname)
static void read_servspecopt()
bool FileExists(const char *filename)
unsigned short speedhack_mountrundelay
unsigned short item_color_mask
bool use_tile_flag_prefix
#define PKTIN_02_MOUNT_RUN
bool remove_bool(const char *propname)
unsigned short speedhack_mountwalkdelay
#define PKTIN_02_MOUNT_WALK
bool movement_uses_stamina