uox3/source/cServerData.h
Xoduz 68e57b0756 UOX3 0.99.5b-6
Increased world load speed by almost 20% by reducing how often loading progress is written to the console
Increased world save speed by almost 50% through the use of binary mode and buffer tweaks for ofstream combined with a cached newline char and std::to_string instead of static_cast
Fixed a server crash involving killing NPCs of a specific spawn region using the 'spawnkill # command
Fixed a server crash involving moving items from decaying corpses to the ground
Fixed a server crash involving carving up human corpses
Fixed a server crash related to AreaCharacterFunction JS function, which could trigger for any script that potentially kills any NPC this function iterates over (like explosion potions)
Fixed a server crash related to GMs attempting to add items from add-menu while having no backpack
Fixed a client crash issue caused by attempting to sell house deeds back to architect NPCs
Fixed an issue where players would get incorrect amounts of gold for selling house deeds back to architect NPCs
Fixed an issue with characters dying onboard boats which prevented players from packing up the boats later
Added new item property in code (via bools bitset) that can be used to enable/disable maker's mark on crafted items. This property can be set to true for items crafted at exceptional quality by GM craftsmen
Exposed the new item property to JS engine:
	.isMarkedByMaker	 	// If true, maker's mark will be displayed
Updated default item tooltip to display " of exceptional quality" for items crafted with exceptional quality
Updated default item tooltip to display "[Crafted] by [Crafter's Name]" for exceptional quality items crafted by GM craftsmen. The [Crafted] text comes from the MADEWORD defined in dfndata/skills/skills.dfn for the primary skill used to craft the item
Updated old-school single-click names for items (when AoS bit is disabled in client/server features) to display exceptional status and/or maker's mark for appropriate items
Fixed an issue with the display of titles for NPCs that used dictionary lookups for their title
Added new UOX.INI settings under the [settings] section:
	DISPLAYMAKERSMARK=1/0			// Controls if maker's marks on crafted items are shown on a global level
	SHOWNPCTITLESOVERHEAD=1/0 		// Controls whether NPC titles are shown over their heads
	SHOWINVULNERABLETAGOVERHEAD=0/1 // Controls whether invulnerable tags are shown overhead
	GLOBALRESTOCKMULTIPLIER=1.0 	// Global multiplier applied to RESTOCK property of items when loaded from DFNs
Added new UOX.INI settings under the [combat] section:
	PETCOMBATTRAINING=1/0 			// Controls whether pets can gain skills/stats from combat
	HIRELINGCOMBATTRAINING=1/0 		// Controls whether hirelings can gain skills/stats from combat
	NPCCOMBATTRAINING=0/1 			// Controls whether NPCs in general can gain skills/stats from combat
Fixed an issue where a player meeting the exact minimum requirements for crafting an item would always fail
Fixed a bug with teleporting off boats to valid nearby locations when double-clicking boat planks while standing on it
Updated behaviour of planks on boats:
	Boat key can unlock plank, but won't automatically open it
	Boat key used on an open, unlocked plank will lock and automatically close the plank
	Boat key used on an open, locked plank will unlock the plank and leave it open
	Player using an unlocked plank now opens it
	Player using an open plank will disembark (if onboard) or embark (if not) the boat
	Player can always open a locked plank if they're on the boat, even with no key, to allow disembarking the boat.
	Planks that are open, but locked cannot be accessed from outside the boat, and will close automatically after five of seconds
Updated behaviour of Magic Lock/Unlock spells:
	Magic Lock cannot be used on objects inside a multi
	Magic Lock applies difficulty to lock based on caster's Magery skill
	Magic Lock effect will last between 7 to 50 seconds (depending on caster's Magery skill)
	Any object that can be locked via Magic Lock spell can also be unlocked via Magic Unlock spell, if caster has high enough Magery skill
Fixed a bug where certain JS Functions, Methods and Properties would occasionally pass incorrect values to scripts that called upon them. Scripts that rely on the GetCurrentClock() Function, the .GetTimer() Method, .decayTime, .logTime, .oreTime and .fishTime Properties might need to be updated to account for the fix, which causes larger values to be passed in than before.
Fixed a bug related to GetCurrentClock() that caused decay and respawning of dungeon chests from working properly
Fixed a bug related to GetCurrentClock() and .logTime/.fishTime that prevented consumption and regeneration of log/fish resources from working properly
Added a new JS Function:
	GetStartTime()	// Returns a timestamp for when server started up
Fixed a bug related to GetCurrentClock() where server uptime stats in help menu was showing up incorrectly
Fixed a bug related to GetCurrentClock() and purging of registrations of visitors in public houses so their visits can be counted again later
Fixed a bug related to GetCurrentClock() that caused monster speech to not work properly
Fixed a Z-related issue that sometimes prevented players from fishing when standing on the shoreline next to the sea
Fixed an issue with Animal Lore skill that would always return a pet's loyalty level as "Wild"
Increased max range pets can be from their owner in order to still be included in moongate/teleporter travel from 12 to 24 tiles
Fixed an issue where the alchemy bonus damage for explosion potions was off by an order of magnitude
Fixed an issue where food IDs from foodlists referenced by other foodlists was not detected as valid food for tamed pets or NPCs
Fixed an issue where Alchemy crafting skill did not properly check for the existence of the crafting tool before proceeding with the crafting process
Fixed an issue that prevented the Teleport spell from working as intended
Fixed an issue where players would still get 1 gold even if STARTGOLD in uox.ini was set to 0
Fixed an issue with mount restrictions script that prevented players from mounting Unicorns, Ki-rins and Cu Sidhes
Fixed an issue where aggressive creatures wouldn't stop attacking player after being tamed (js/skill/taming.js)
Added a system message to inform the player when they've dropped out of stealth due to taking too many steps
Fixed an issue where hunger level of NPCs instantly dropped upon spawning because hunger timer was not active yet
Fixed a bug where character corpses would appear with a [unidentified] tag attached
Fixed an issue where the [unidentified] tag did not show up for unidentified magic items
Added ANIMAL tag to a small bunch of creature definitions (dfndata/creatures/creatures.dfn)
Fixed an issue with Bowcraft skill where player could not gain enough skill from crafting bows to reach min requirement for crossbows, and similiarly could not reach min requirement for heavy crossbows from crossbows
Updated default value of MURDERDECAYTIMER INI setting from 60 seconds to 28800 seconds (8 hours), to match the amount of time it would take for one (short term) murder count to decay on LBR-era OSI shards.
2022-08-25 02:13:00 +08:00

1074 lines
44 KiB
C++

#ifndef __CSERVERDATA__
#define __CSERVERDATA__
#include <map>
#include <string>
#include <cstdint>
#include <array>
#include "StringUtility.hpp"
#include "IP4Address.hpp"
//=======================================================================================
enum ClientFeatures {
CF_BIT_CHAT = 0, // 0x01
CF_BIT_UOR, // 0x02
CF_BIT_TD, // 0x04
CF_BIT_LBR, // 0x08 - Enables LBR features: mp3s instead of midi, show new LBR monsters
CF_BIT_AOS, // 0x10 - Enable AoS monsters/map, AoS skills, Necro/Pala/Fight book stuff - works for 4.0+
CF_BIT_SIXCHARS, // 0x20
CF_BIT_SE, // 0x40
CF_BIT_ML, // 0x80
CF_BIT_EIGHTAGE, // 0x100
CF_BIT_NINTHAGE, // 0x200
CF_BIT_TENTHAGE, // 0x400
CF_BIT_UNKNOWN1, // 0x800 - Increased housing/bank storage?
CF_BIT_SEVENCHARS, // 0x1000
//CF_BIT_KRFACES, // 0x2000
//CF_BIT_TRIAL, // 0x4000
CF_BIT_EXPANSION = 15, // 0x8000
CF_BIT_SA, // 0x10000 - Enable SA features: gargoyle race, spells, skills, housing tiles - clients 6.0.14.2+
CF_BIT_HS, // 0x20000 - Enable HS features: boats, new movementtype? ++
CF_BIT_GOTHHOUSE, // 0x40000
CF_BIT_RUSTHOUSE, // 0x80000
CF_BIT_JUNGLEHOUSE, // 0x100000 - Enable Jungle housing tiles
CF_BIT_SHADOWHOUSE, // 0x200000 - Enable Shadowguard housing tiles
CF_BIT_TOLHOUSE, // 0x400000 - Enable Time of Legends features
CF_BIT_ENDLESSHOUSE, // 0x800000 - Enable Endless Journey account
CF_BIT_COUNT
};
enum ServerFeatures {
SF_BIT_UNKNOWN1 = 0, // 0x01
SF_BIT_IGR, // 0x02
SF_BIT_ONECHAR, // 0x04 - One char only, Siege-server style
SF_BIT_CONTEXTMENUS, // 0x08
SF_BIT_LIMITCHAR, // 0x10 - Limit amount of chars, combine with OneChar
SF_BIT_AOS, // 0x20 - Enable Tooltips, fight system book - but not monsters/map/skills/necro/pala classes
SF_BIT_SIXCHARS, // 0x40 - Use 6 character slots instead of 5
SF_BIT_SE, // 0x80 - Samurai and Ninja classes, bushido, ninjitsu
SF_BIT_ML, // 0x100 - Elven race, spellweaving
SF_BIT_UNKNOWN2, // 0x200 - added with UO:KR launch
SF_BIT_SEND3DTYPE, // 0x400 - Send UO3D client type? KR and SA clients will send 0xE1)
SF_BIT_UNKNOWN4, // 0x800 - added sometime between UO:KR and UO:SA
SF_BIT_SEVENCHARS, // 0x1000 - Use 7 character slots instead of 5?6?, only 2D client?
SF_BIT_UNKNOWN5, // 0x2000 - added with UO:SA launch, imbuing, mysticism, throwing?
SF_BIT_NEWMOVE, // 0x4000 - new movement system
SF_BIT_FACTIONAREAS, // 0x8000 - Unlock new Felucca faction-areas
SF_BIT_COUNT
};
enum AssistantFeatures : std::uint64_t {
AF_NONE = 0,
// Razor/RE/AssistUO
AF_FILTERWEATHER = 1 << 0, // Weather Filter
AF_FILTERLIGHT = 1 << 1, // Light Filter
AF_SMARTTARGET = 1 << 2, // Smart Last Target
AF_RANGEDTARGET = 1 << 3, // Range Check Last Target
AF_AUTOOPENDOORS = 1 << 4, // Automatically Open Doors
AF_DEQUIPONCAST = 1 << 5, // Unequip Weapon on spell cast
AF_AUTOPOTIONEQUIP = 1 << 6, // Un/Re-equip weapon on potion use
AF_POISONEDCHECKS = 1 << 7, // Block heal If poisoned/Macro IIf Poisoned condition/Heal or Cure self
AF_LOOPEDMACROS = 1 << 8, // Disallow Looping macros, For loops, and macros that call other macros
AF_USEONCEAGENT = 1 << 9, // The use once agent
AF_RESTOCKAGENT = 1 << 10, // The restock agent
AF_SELLAGENT = 1 << 11, // The sell agent
AF_BUYAGENT = 1 << 12, // The buy agent
AF_POTIONHOTKEYS = 1 << 13, // All potion hotkeys
AF_RANDOMTARGETS = 1 << 14, // All random target hotkeys (Not target next, last target, target self)
AF_CLOSESTTARGETS = 1 << 15, // All closest target hotkeys
AF_OVERHEADHEALTH = 1 << 16, // Health and Mana/Stam messages shown over player's heads
// AssistUO only?
AF_AUTOLOOTAGENT = 1 << 17, // The autoloot agent
AF_BONECUTTERAGENT = 1 << 18, // The bone cutter agent
AF_JSCRIPTMACROS = 1 << 19, // Javascript macro engine
AF_AUTOREMOUNT = 1 << 20, // Auto remount after dismount
// UOSteam
AF_AUTOBANDAGE = 1 << 21, // Automatically apply bandages when health is low
AF_ENEMYTARGETSHARE = 1 << 22, // Share target with party/guild/alliance
AF_FILTERSEASON = 1 << 23, // Season filter that forces a specific season
AF_SPELLTARGETSHARE = 1 << 24, // Share spell target with party/guild/alliance
AF_HUMANOIDHEALTHCHECKS = 1 << 25, //
AF_SPEECHJOURNALCHECKS = 1 << 26, // ???
AF_ALL = 0xFFFFFFFFFFFFFFFF // Every feature possible
};
enum cSD_TID {
tSERVER_ERROR = -1,
tSERVER_CORPSEDECAY = 0, // Amount of time for a corpse to decay.
tSERVER_WEATHER, // Amount of time between changing light levels (day cycles).
tSERVER_SHOPSPAWN, // Amount of time between shopkeeper restocks.
tSERVER_DECAY, // Amount of time a decayable item will remain on the ground before dissapearing.
tSERVER_DECAYINHOUSE, // Amount of time a decayable item will remain on the floor of a house before dissapearing, if not locked down.
tSERVER_INVISIBILITY, // Duration of the invisibility spell.
tSERVER_OBJECTUSAGE, // Amount of time a player must wait between using objects.
tSERVER_GATE, // Duration of a summoned moongate.
tSERVER_POISON, // Duration of the poison effect on a character.
tSERVER_LOGINTIMEOUT, // Amount of time for an idle connection to time out.
tSERVER_HITPOINTREGEN, // Amount of time required to regenerate a single point of health.
tSERVER_STAMINAREGEN, // Amount of time required to regenerate a single point of stamina.
tSERVER_MANAREGEN, // Amount of time required to regenerate a single point of mana.
tSERVER_FISHINGBASE, // Base time for fishing skill to complete.
tSERVER_FISHINGRANDOM, // Max random time for fishing skill to complete.
tSERVER_SPIRITSPEAK, // Duration of the spirit speak skill.
tSERVER_HUNGERRATE, // Amount of time a player has before his hunger level decreases.
tSERVER_THIRSTRATE, // Amount of time a player has before his thirst level decreases.
tSERVER_POLYMORPH, // Duration of the polymorph spell.
tSERVER_ESCORTWAIT, // Amount of time until an escort NPC will dissapear while waiting for a player to start his quest.
tSERVER_ESCORTACTIVE, // Amount of time until an escort NPC will dissapear while a player is escorting him.
tSERVER_ESCORTDONE, // Amount of time until an escort NPC will dissapear when his quest is finished.
tSERVER_MURDERDECAY, // Amount of time before a permanent murder count will decay.
tSERVER_CRIMINAL, // Amount of time a character remains criminal after committing a criminal act.
tSERVER_POTION, // Delay between using potions
tSERVER_PETOFFLINECHECK, // Delay between checks for the PetOfflineTimeout
tSERVER_NPCFLAGUPDATETIMER, // Delay in seconds between each time NPC flags are updated
tSERVER_BLOODDECAY, // Delay in seconds before blood spatter spawned from combat decays
tSERVER_BLOODDECAYCORPSE, // Delay in seconds before blood spawned along with corpses decays
tSERVER_NPCCORPSEDECAY, // Delay in seconds before NPC corpses decay
tSERVER_LOYALTYRATE, // Amount of time between each time loyalty decreases for a pet
tSERVER_COUNT
};
enum CSDDirectoryPaths {
CSDDP_ROOT = 0,
CSDDP_DATA,
CSDDP_DEFS,
CSDDP_ACCESS,
CSDDP_ACCOUNTS,
CSDDP_SCRIPTS,
CSDDP_BACKUP,
CSDDP_MSGBOARD,
CSDDP_SHARED,
CSDDP_HTML,
CSDDP_LOGS,
CSDDP_DICTIONARIES,
CSDDP_BOOKS,
CSDDP_SCRIPTDATA,
CSDDP_COUNT
};
struct __STARTLOCATIONDATA__
{
__STARTLOCATIONDATA__()
{
x=0;
y=0;
z=0;
worldNum = 0 ;
instanceID = 0;
clilocDesc = 0 ;
}
std::string oldTown ;
std::string oldDescription;
std::string newTown ;
std::string newDescription ;
SI16 x;
SI16 y;
SI16 z;
SI16 worldNum;
UI16 instanceID;
UI32 clilocDesc;
} ;
//============================================================================
// physicalServer
//==========================================================================
//==========================================================================
class physicalServer {
public:
auto setName(const std::string& newName) ->void;
auto setDomain(const std::string& newDomain) ->void;
auto setIP(const std::string& newIP) ->void;
auto setPort(UI16 newPort) ->void;
auto getName() const ->const std::string&;
auto getDomain() const ->const std::string&;
auto getIP() const ->const std::string&;
auto getPort() const ->std::uint16_t;
private:
std::string name;
std::string domain;
std::string ip;
UI16 port;
};
class CServerData {
private:
std::bitset< CF_BIT_COUNT > clientFeatures;
std::bitset< SF_BIT_COUNT > serverFeatures;
// Once over 62, bitsets are costly. std::vector<bool> has a special exception in the c++ specificaiton, to minimize wasted space for bools
// These should be updated
std::bitset<86> boolVals; // Many values stored this way, rather than using bools.
std::bitset<64> spawnRegionsFacets; // Used to determine which facets to enable spawn regions for, set in UOX>INI
// ServerSystems
std::string sServerName; // 04/03/2004 - Need a place to store the name of the server (Added to support the UOG Info Request)
std::string commandprefix; // Character that acts as the command prefix
std::string externalIP;
ip4list_t availableIPs ;
std::vector< physicalServer > serverList; // Series of server entries for shard list
UI08 consolelogenabled; // Various levels of legging 0 == none, 1 == normal, 2 == normal + all speech
UI16 serverLanguage; // Default language used on server
UI16 port; // Port number that the server listens on, for connections
UI16 jsEngineSize; // gcMaxBytes limit in MB per JS runtime
UI16 sysMsgColour; // Default text colour for system messages displayed in bottom left corner of screen
SI16 backupRatio; // Number of saves before a backup occurs
UI32 serversavestimer; // Number of seconds between world saves
UI32 netRcvTimeout; // 04/03/2004 - Used to be hardcoded as 2 seconds (2 * 1000ms) for some raly laggy nets this would drop alot of packets, and disconnect people.
UI32 netSndTimeout; // 04/03/2004 - Not used at this time.
UI32 netRetryCount; // 04/03/2004 - Used to set the number of times a network recieve will be attempted before it throws an error
UI32 maxBytesIn; // Max bytes that can be received from a client in a 10-second window before client is warned/kicked for excessive data use
UI32 maxBytesOut; // Max bytes that can be sent to a client in a 10-second window before client is warned/kicked for excessive data use
UI32 trafficTimeban; // Duration in minutes that player will be banned for if they exceed their network traffic budget
bool uogEnabled; // 04/03/2004 - Added to support the UOG Info Request Service
bool randomStartingLocation; // Enable or disable randomizing starting location for new players based on starting location entries
bool useUnicodeMessages; // Enable or disable sending messages originating on server in Unicode format
// Client Support
bool Clients4000Enabled; // Allow client connections from 4.0.0 to 4.0.11f
bool Clients5000Enabled; // Allow client connections from 5.0.0.0 to 5.0.8.2 (Mondain's Legacy)
bool Clients6000Enabled; // Allow client connections from 6.0.0.0 to 6.0.4.0
bool Clients6050Enabled; // Allow client connections from 6.0.5.0 to 6.0.14.2
bool Clients7000Enabled; // Allow client connections from 7.0.0.0 to 7.0.8.2
bool Clients7090Enabled; // Allow client connections from 7.0.9.0 to 7.0.15.1 (High Seas)
bool Clients70160Enabled; // Allow client connections from 7.0.16.0 to 7.0.23.1
bool Clients70240Enabled; // Allow client connections from 7.0.24.0+
bool Clients70300Enabled; // Allow client connections from 7.0.30.0+
bool Clients70331Enabled; // Allow client connections from 7.0.33.1+
bool Clients704565Enabled; // Allow client connections from 7.0.45.65+ (Time of Legends)
bool Clients70610Enabled; // Allow client connections from 7.0.61.0+ (Endless Journey)
// facet block
bool useFacetSaves;
std::vector< std::string > facetNameList;
std::vector< UI32 > facetAccessFlags;
// Skills & Stats
UI08 skilldelay; // Number of seconds after a skill is used before another skill can be used
UI16 skilltotalcap; // A cap on the total of all a PC's skills
UI16 skillcap; // A cap on each individual PC skill
UI16 statcap; // A cap on the total of a PC's stats
SI16 maxstealthmovement; // Max number of steps allowed with stealth skill at 100.0
SI16 maxstaminamovement; // Max number of steps allowed while running before stamina is reduced
// ServerTimers
// array
UI16 serverTimers[tSERVER_COUNT];
// Directories
// array
std::string serverDirectories[CSDDP_COUNT];
std::string actualINI; // The actual uox.ini file loaded, used for saveing
// Settings
SI16 ambientsounds; // Ambient sounds - values from 1->10 - higher values indicate sounds occur less often
SI16 htmlstatusenabled; // If > 0 then it's enabled - only used at PC char creation - use elsewhere? (was # of seconds between updates)
UI08 maxControlSlots; // The default max amount of pet/follower control slots for each player
UI08 maxFollowers; // The default max amount of followers a player can have active
UI08 maxSafeTeleports; // The default max amount of free teleports to safety players get via the help menu per day
UI08 maxPetOwners; // The default max amount of different owners a pet may have in its lifetime
UI16 maxPlayerPackItems; // The max amount of items a player's backpack can contain
UI16 maxPlayerBankItems; // The max amount of items a player's bankbox can contain
UI16 petLoyaltyGainOnSuccess; // The default amount of pet loyalty gained on successful use of a pet command
UI16 petLoyaltyLossOnFailure; // The default amount of pet loyalty lost on a failed attempt to use a pet command
UI16 petOfflineTimeout; // Offline time after a player looses all pets
SI16 sellmaxitems; // Maximum number of items that can be sold to a vendor
SI16 fishingstaminaloss; // The amount of stamina lost with each use of fishing skill
R32 weightPerSTR; // How much weight per point of STR a character can hold.
bool paperdollGuildButton; // Enable Guild-button on paperdoll to access guild-menus without going through guildstone
// SpeedUp
R32 npcWalkingSpeed; // Speed at which walking NPCs move
R32 npcRunningSpeed; // Speed at which running NPCs move
R32 npcFleeingSpeed; // Speed at which fleeing NPCs move
R32 npcMountedWalkingSpeed; // Speed at which (mounted) walking NPCs move
R32 npcMountedRunningSpeed; // Speed at which (mounted) running NPCs move
R32 npcMountedFleeingSpeed; // Speed at which (mounted) fleeing NPCs move
R32 archeryShootDelay; // Attack delay for archers; after coming to a full stop, they need to wait this amount of time before they can fire an arrow. Defaults to 1.0 seconds
R32 globalattackspeed; // Global attack speed that can be tweaked to quickly increase or decrease overall combat speed. Defaults to 1.0
R32 npcspellcastspeed; // For adjusting the overall speed of (or delay between) NPC spell casts. Defaults to 1.0
R32 globalRestockMultiplier;// Global multiplier applied to restock properties of items when loaded from DFNs
R64 checkitems; // How often (in seconds) items are checked for decay and other things
R64 checkboats; // How often (in seconds) boats are checked for motion and so forth
R64 checknpcai; // How often (in seconds) NPCs can execute an AI routine
R64 checkspawnregions; // How often (in seconds) spawn regions are checked for new spawns
R64 flushTime; // How often (in minutes) online accounts are checked to see if they really ARE online
// MessageBoards
UI08 msgpostinglevel; // If not 0, then players can post
UI08 msgremovallevel; // If not 0, then players can remove posts
// WorldLight
LIGHTLEVEL dungeonlightlevel; // Default light level for a dungeon, if not subject to a weather system
LIGHTLEVEL currentlightlevel; // Default current light level if not subject to a weather system
LIGHTLEVEL brightnesslightlevel; // Default brightest light level if not subject to a weather system
LIGHTLEVEL darknesslightlevel; // Default darkest light level if not subject to a weather system
// WorldTimer // days/hours/minutes/seconds to it's own file?
UI08 hours; // Number of hours the world has been running (persistent)
UI08 minutes; // Number of minutes the world has been running (persistent)
UI08 seconds; // Number of seconds the world has been running (persistent)
UI16 secondsperuominute; // Number of seconds for a UOX minute.
// array
SI16 moon[2]; // Moon current state
SI16 days; // Number of days the world has been running (persistent)
bool ampm; // Whether our current time is in the morning or afternoon
// Tracking
UI08 trackingmaxtargets; // Maximum number of targets that can be tracked
UI16 trackingbaserange; // Minimum range even a novice can track from
UI16 trackingbasetimer; // Tracking timer - maximum time for a GM to track at
UI16 trackingmsgredisplaytimer; // How often (in seconds) the tracking message is redisplayed
// Reputation
UI16 maxmurdersallowed; // Maximum number of kills before turning red
// Resources
UI08 minecheck; // Type of mining check performed - 0 anywhere 1 only mountains/floors 2 region based (not working)
UI16 resourceAreaSize; // Size of each resource area to split each world into
UI16 orerespawntimer; // Time at which ore is respawned (only 1 ore, not all)
UI16 fishrespawntimer; // TIMERVAL? Time at which fish are respawned (only 1 fish, not all)
UI16 logsrespawntimer; // TIMERVAL? Time at which logs are respawned (only 1 log, not all)
SI16 logsperarea; // Maximum number of logs in a resource area
SI16 fishperarea; // Maximum number of fish in a resource area
SI16 oreperarea; // TIMERVAL? Maximum number of ores in a resource area
// Hunger & Food
SI16 hungerdamage; // Amount of damage applied if hungry and below threshold
// Thirst
SI16 thirstdrain; // Amount of stamina drained if thirsty and below threshold
// Combat
UI08 combatanimalattackchance; // Chance of animals being attacked (0-100)
UI08 combatweapondamagechance; // Chance of weapons being damaged when attacking in combat (0-100)
UI08 combatweapondamagemin; // Minimum amount of hitpoints a weapon can lose when being damaged in combat
UI08 combatweapondamagemax; // Maximum amount of hitpoints a weapon can lose when being damaged in combat
UI08 combatarmordamagechance; // Chance of armor being damaged when defending in combat (0-100)
UI08 combatarmordamagemin; // Minimum amount of hitpoints an armor can lose when being damaged in combat
UI08 combatarmordamagemax; // Maximum amount of hitpoints an armor can lose when being damaged in combat
UI08 combatparrydamagechance; // Chance of shield being damaged when parrying in combat (0-100)
UI08 combatparrydamagemin; // Minimum amount of hitpoints a shield/weapon can lose when successfully parrying in combat
UI08 combatparrydamagemax; // Maximum amount of hitpoints a shield/weapon can lose when successfully parrying in combat
UI08 combatbloodeffectchance; // Chance of blood splatter effects spawning during combat
UI08 alchemyDamageBonusModifier; // Modifier used to calculate bonus damage for explosion potions based on alchemy skill
SI08 combatArcheryHitBonus; // Bonus to hit chance for Archery skill in combat, applied after regular hit chance calculation
SI16 combatmaxrange; // RANGE? Range at which combat can actually occur
SI16 combatmaxspellrange; // RANGE? Range at which spells can be cast
SI16 combatnpcdamagerate; // NPC Damage divisor - PCs sustain less than NPCs. If a PC, damage is 1/value
SI16 combatnpcbasefleeat; // % of HP where an NPC will flee, if it's not defined for them
SI16 combatnpcbasereattackat; // % of HP where an NPC will resume attacking
SI16 combatattackstamina; // Amount of stamina lost when hitting an opponent
// Start & Location Settings
std::vector< __STARTLOCATIONDATA__ > startlocations;
UI16 startprivs; // Starting privileges of characters
SI16 startgold; // Amount of gold created when a PC is made
// Anything under this comment is left here for symantics
UI08 skilllevel; // Some skill value associated with the rank system
SI16 buyThreshold; // Value above which money will be sourced from the bank rather than the player
// Gump stuff
UI16 titleColour; // Default text colour for titles in gumps
UI16 leftTextColour; // Default text colour for left text in gumps (2 column ones)
UI16 rightTextColour; // Default text colour for right text in gumps
UI16 buttonCancel; // Default Button ID for cancel button in gumps
UI16 buttonLeft; // Default Button ID for left button in gumps
UI16 buttonRight; // Default Button ID for right button in gumps
UI16 backgroundPic; // Default Gump ID for background gump
// Houses
UI16 maxHousesOwnable; // Max amount of houses that a player can own
UI16 maxHousesCoOwnable; // Max amount of houses that a player can co-own
// Townstone stuff
UI32 numSecsPollOpen; // Time (in seconds) for which a town voting poll is open
UI32 numSecsAsMayor; // Time (in seconds) that a PC would be a mayor
UI32 taxPeriod; // Time (in seconds) between periods of taxes for PCs
UI32 guardPayment; // Time (in seconds) between payments for guards
void PostLoadDefaults();
static const std::map<std::string,std::int32_t> uox3inicasevalue;
public:
UI64 DisabledAssistantFeatures;
auto lookupINIValue(const std::string& tag) ->std::int32_t ;
auto SetServerFeature( ServerFeatures, bool ) ->void;
auto SetServerFeatures( size_t ) ->void;
auto GetServerFeature( ServerFeatures ) const ->bool;
auto GetServerFeatures() const ->size_t;
auto SetClientFeature( ClientFeatures, bool ) ->void;
auto SetClientFeatures( UI32 ) ->void;
auto GetClientFeature( ClientFeatures ) const ->bool;
UI32 GetClientFeatures() const;
auto SetDisabledAssistantFeature( AssistantFeatures, bool ) ->void;
auto SetDisabledAssistantFeatures( UI64 ) ->void;
auto GetDisabledAssistantFeature( AssistantFeatures ) const ->bool;
UI64 GetDisabledAssistantFeatures() const;
auto SetAssistantNegotiation( bool value ) ->void;
auto GetAssistantNegotiation() const ->bool;
auto GetSpawnRegionsFacetStatus( UI32 value ) const ->bool;
auto SetSpawnRegionsFacetStatus( UI32 value, bool status ) ->void;
UI32 GetSpawnRegionsFacetStatus() const;
auto SetSpawnRegionsFacetStatus( UI32 value ) ->void;
auto SetClassicUOMapTracker( bool value ) ->void;
auto GetClassicUOMapTracker() const ->bool;
auto UseUnicodeMessages( bool value ) ->void;
auto UseUnicodeMessages() const ->bool;
SI16 ServerMoon( SI16 slot ) const;
LIGHTLEVEL WorldLightDarkLevel() const;
LIGHTLEVEL WorldLightBrightLevel() const;
LIGHTLEVEL WorldLightCurrentLevel() const;
LIGHTLEVEL DungeonLightLevel() const;
auto ServerStartPrivs() const ->std::uint16_t;
SI16 ServerStartGold() const;
auto ServerMoon( SI16 slot, SI16 value ) ->void;
auto WorldLightDarkLevel( LIGHTLEVEL value ) ->void;
auto WorldLightBrightLevel( LIGHTLEVEL value ) ->void;
auto WorldLightCurrentLevel( LIGHTLEVEL value ) ->void;
auto DungeonLightLevel( LIGHTLEVEL value ) ->void;
auto ServerStartPrivs( UI16 value ) ->void;
auto ServerStartGold( SI16 value ) ->void;
auto ParseINI( const std::string& filename ) ->bool;
auto HandleLine( const std::string& tag, const std::string& value ) ->bool;
auto Load(const std::string &filename = "") ->bool;
auto save() ->bool;
auto save( const std::string &filename ) ->bool;
auto ResetDefaults() ->void ;
auto startup() ->void ;
//void RefreshIPs( void );
CServerData();
auto ServerName( const std::string &setname ) ->void;
auto ServerDomain( const std::string &setdomain ) ->void;
auto ServerIP( const std::string &setip ) ->void;
auto ServerName() const ->const std::string &;
auto ServerDomain() const ->const std::string &;
auto ServerIP() const ->const std::string &;
auto ExternalIP() const ->const std::string &;
auto ExternalIP( const std::string &ip ) ->void;
auto ServerPort( UI16 setport ) ->void;
auto ServerPort() const ->std::uint16_t;
auto ServerConsoleLog( bool setting ) ->void;
auto ServerConsoleLog() const ->bool;
auto ServerNetworkLog(bool setting) ->void;
auto ServerNetworkLog() const ->bool;
auto ServerSpeechLog( bool setting ) ->void;
auto ServerSpeechLog() const ->bool;
auto ServerCommandPrefix( char cmdvalue ) ->void;
char ServerCommandPrefix() const;
auto ServerAnnounceSaves( bool setting ) ->void;
auto ServerAnnounceSavesStatus() const ->bool;
auto ServerJoinPartAnnouncements( bool setting ) ->void;
auto ServerJoinPartAnnouncementsStatus() const ->bool;
auto ServerMulCaching( bool setting ) ->void;
auto ServerMulCachingStatus() const ->bool;
auto ServerBackups( bool setting ) ->void;
auto ServerBackupStatus() const ->bool;
auto ServerContextMenus( bool setting ) ->void;
auto ServerContextMenus() const ->bool;
auto ServerSavesTimer( UI32 timer ) ->void;
UI32 ServerSavesTimerStatus() const;
auto ServerMainThreadTimer( UI32 threadtimer ) ->void;
UI32 ServerMainThreadTimerStatus() const;
auto ServerSkillTotalCap( UI16 cap ) ->void;
auto ServerSkillTotalCapStatus() const ->std::uint16_t;
auto ServerSkillCap( UI16 cap ) ->void;
auto ServerSkillCapStatus() const ->std::uint16_t;
auto ServerSkillDelay( UI08 skdelay ) ->void;
UI08 ServerSkillDelayStatus() const;
auto ServerStatCap( UI16 cap ) ->void;
auto ServerStatCapStatus() const ->std::uint16_t;
auto MaxStealthMovement( SI16 value ) ->void;
SI16 MaxStealthMovement() const;
auto MaxStaminaMovement( SI16 value ) ->void;
SI16 MaxStaminaMovement() const;
auto SystemTimer( cSD_TID timerid, UI16 value ) ->void;
auto SystemTimer( cSD_TID timerid ) const ->std::uint16_t;
TIMERVAL BuildSystemTimeValue( cSD_TID timerID ) const;
auto SysMsgColour( UI16 value ) ->void;
auto SysMsgColour() const ->std::uint16_t;
auto ServerUOGEnabled() const ->bool { return uogEnabled; }
auto ServerUOGEnabled(bool uogValue) ->void { uogEnabled = uogValue; }
auto ConnectUOServerPoll( bool value ) ->void;
auto ConnectUOServerPoll() const ->bool;
auto ServerRandomStartingLocation() const ->bool { return randomStartingLocation; }
auto ServerRandomStartingLocation( bool rndStartLocValue ) ->void { randomStartingLocation = rndStartLocValue; }
UI32 ServerNetRetryCount() const { return netRetryCount; }
auto ServerNetRetryCount(UI32 retryValue) ->void{ netRetryCount = retryValue; }
UI32 ServerNetRcvTimeout() const { return netRcvTimeout; }
auto ServerNetRcvTimeout(UI32 timeoutValue) ->void { netRcvTimeout = timeoutValue; }
UI32 ServerNetSndTimeout() const { return netSndTimeout; }
auto ServerNetSndTimeout(UI32 timeoutValue) ->void { netSndTimeout = timeoutValue; }
// ClientSupport used to determine login-restrictions
auto ClientSupport4000() const ->bool { return Clients4000Enabled; }
auto ClientSupport4000(bool cliSuppValue) ->void { Clients4000Enabled = cliSuppValue; }
auto ClientSupport5000() const ->bool { return Clients5000Enabled; }
auto ClientSupport5000(bool cliSuppValue) ->void { Clients5000Enabled = cliSuppValue; }
auto ClientSupport6000() const ->bool{ return Clients6000Enabled; }
auto ClientSupport6000(bool cliSuppValue) ->void { Clients6000Enabled = cliSuppValue; }
auto ClientSupport6050() const ->bool{ return Clients6050Enabled; }
auto ClientSupport6050(bool cliSuppValue) ->void { Clients6050Enabled = cliSuppValue; }
auto ClientSupport7000() const ->bool{ return Clients7000Enabled; }
auto ClientSupport7000(bool cliSuppValue) ->void { Clients7000Enabled = cliSuppValue; }
auto ClientSupport7090() const ->bool { return Clients7090Enabled; }
auto ClientSupport7090(bool cliSuppValue) ->void { Clients7090Enabled = cliSuppValue; }
auto ClientSupport70160() const ->bool { return Clients70160Enabled; }
auto ClientSupport70160(bool cliSuppValue) ->void { Clients70160Enabled = cliSuppValue; }
auto ClientSupport70240() const ->bool { return Clients70240Enabled; }
auto ClientSupport70240(bool cliSuppValue) ->void { Clients70240Enabled = cliSuppValue; }
auto ClientSupport70300() const ->bool{ return Clients70300Enabled; }
auto ClientSupport70300( bool cliSuppValue ) ->void { Clients70300Enabled = cliSuppValue; }
auto ClientSupport70331() const ->bool { return Clients70331Enabled; }
auto ClientSupport70331( bool cliSuppValue ) ->void { Clients70331Enabled = cliSuppValue; }
auto ClientSupport704565() const ->bool { return Clients704565Enabled; }
auto ClientSupport704565( bool cliSuppValue ) ->void { Clients704565Enabled = cliSuppValue; }
auto ClientSupport70610() const ->bool{ return Clients70610Enabled; }
auto ClientSupport70610( bool cliSuppValue ) ->void { Clients70610Enabled = cliSuppValue; }
auto StatsAffectSkillChecks( bool setting ) ->void;
auto StatsAffectSkillChecks() const ->bool;
// Enable/disable higher total for starting stats, and/or fourth starting skill in clients 7.0.16+
auto ExtendedStartingStats( bool setting ) ->void;
auto ExtendedStartingStats() const ->bool;
auto ExtendedStartingSkills( bool setting ) ->void;
auto ExtendedStartingSkills() const ->bool;
// Define all Path Get/Set's here please
auto Directory( CSDDirectoryPaths dp, std::string value ) ->void;
std::string Directory( CSDDirectoryPaths dp );
auto CorpseLootDecay( bool value ) ->void;
auto CorpseLootDecay() const ->bool;
auto GuardStatus( bool value ) ->void;
auto GuardsStatus() const ->bool;
auto DeathAnimationStatus( bool value ) ->void;
auto DeathAnimationStatus() const ->bool;
auto WorldAmbientSounds( SI16 value ) ->void;
SI16 WorldAmbientSounds() const;
auto AmbientFootsteps( bool value ) ->void;
auto AmbientFootsteps() const ->bool;
auto InternalAccountStatus( bool value ) ->void;
auto InternalAccountStatus() const ->bool;
auto ShowOfflinePCs( bool value ) ->void;
auto ShowOfflinePCs() const ->bool;
auto RogueStatus( bool value ) ->void;
auto RogueStatus() const ->bool;
auto SnoopIsCrime( bool value ) ->void;
auto SnoopIsCrime() const ->bool;
auto PlayerPersecutionStatus( bool value ) ->void;
auto PlayerPersecutionStatus() const ->bool;
auto HtmlStatsStatus( SI16 value ) ->void;
SI16 HtmlStatsStatus() const;
auto SellByNameStatus( bool value ) ->void;
auto SellByNameStatus() const ->bool;
auto SellMaxItemsStatus( SI16 value ) ->void;
SI16 SellMaxItemsStatus() const;
auto TradeSystemStatus( bool value ) ->void;
auto TradeSystemStatus() const ->bool;
auto RankSystemStatus( bool value ) ->void;
auto RankSystemStatus() const ->bool;
void DisplayMakersMark( bool value );
bool DisplayMakersMark( void ) const;
auto CutScrollRequirementStatus( bool value ) ->void;
auto CutScrollRequirementStatus() const ->bool;
auto CheckPetControlDifficulty( bool value ) ->void;
auto CheckPetControlDifficulty() const ->bool;
auto NPCTrainingStatus( bool setting ) ->void;
auto NPCTrainingStatus() const ->bool;
auto CheckItemsSpeed( R64 value ) ->void;
R64 CheckItemsSpeed() const;
auto CheckBoatSpeed( R64 value ) ->void;
R64 CheckBoatSpeed() const;
auto CheckNpcAISpeed( R64 value ) ->void;
R64 CheckNpcAISpeed() const;
auto CheckSpawnRegionSpeed( R64 value ) ->void;
R64 CheckSpawnRegionSpeed() const;
auto GlobalAttackSpeed( R32 value ) ->void;
R32 GlobalAttackSpeed() const;
auto NPCSpellCastSpeed( R32 value ) ->void;
R32 NPCSpellCastSpeed() const;
auto GlobalRestockMultiplier( R32 value ) ->void;
R32 GlobalRestockMultiplier() const;
auto MsgBoardPostingLevel( UI08 value ) ->void;
UI08 MsgBoardPostingLevel() const;
auto MsgBoardPostRemovalLevel( UI08 value ) ->void;
UI08 MsgBoardPostRemovalLevel() const;
auto MineCheck( UI08 value ) ->void;
UI08 MineCheck() const;
auto AlchemyDamageBonusEnabled( bool value ) ->void;
auto AlchemyDamageBonusEnabled() const ->bool;
auto AlchemyDamageBonusModifier( UI08 value ) ->void;
UI08 AlchemyDamageBonusModifier() const;
auto ItemsInterruptCasting( bool value ) ->void;
auto ItemsInterruptCasting() const ->bool;
auto CombatArmorClassDamageBonus( bool value ) ->void;
auto CombatArmorClassDamageBonus() const ->bool;
auto CombatDisplayHitMessage( bool value ) ->void;
auto CombatDisplayHitMessage() const ->bool;
auto CombatDisplayDamageNumbers( bool value ) ->void;
auto CombatDisplayDamageNumbers() const ->bool;
auto CombatAttackSpeedFromStamina( bool value ) ->void;
auto CombatAttackSpeedFromStamina() const ->bool;
auto FishingStaminaLoss( SI16 value ) ->void;
SI16 FishingStaminaLoss() const;
auto CombatAttackStamina( SI16 value ) ->void;
SI16 CombatAttackStamina() const;
auto CombatNPCDamageRate( SI16 value ) ->void;
SI16 CombatNPCDamageRate() const;
UI08 SkillLevel() const;
auto SkillLevel( UI08 value ) ->void;
auto EscortsEnabled( bool value ) ->void;
auto EscortsEnabled() const ->bool;
auto ItemsDetectSpeech( bool value ) ->void;
auto ItemsDetectSpeech() const ->bool;
auto ForceNewAnimationPacket( bool value ) ->void;
auto ForceNewAnimationPacket() const ->bool;
auto MapDiffsEnabled( bool value ) ->void;
auto MapDiffsEnabled() const ->bool;
auto MaxPlayerPackItems( UI16 value ) ->void;
auto MaxPlayerPackItems() const ->std::uint16_t;
auto MaxPlayerBankItems( UI16 value ) ->void;
auto MaxPlayerBankItems() const ->std::uint16_t;
auto BasicTooltipsOnly( bool value ) ->void;
auto BasicTooltipsOnly() const ->bool;
auto ShowNpcTitlesInTooltips( bool value ) ->void;
auto ShowNpcTitlesInTooltips() const ->bool;
auto ShowNpcTitlesOverhead( bool value ) ->void;
auto ShowNpcTitlesOverhead() const ->bool;
auto ShowInvulnerableTagOverhead( bool value ) ->void;
auto ShowInvulnerableTagOverhead() const ->bool;
auto PetCombatTraining( bool value ) ->void;
auto PetCombatTraining() const ->bool;
auto HirelingCombatTraining( bool value ) ->void;
auto HirelingCombatTraining() const ->bool;
auto NpcCombatTraining( bool value ) ->void;
auto NpcCombatTraining() const ->bool;
auto ShowItemResistStats( bool value ) ->void;
auto ShowItemResistStats() const ->bool;
auto ShowWeaponDamageTypes( bool value ) ->void;
auto ShowWeaponDamageTypes() const ->bool;
auto GlobalItemDecay( bool value ) ->void;
auto GlobalItemDecay() const ->bool;
auto ScriptItemsDecayable( bool value ) ->void;
auto ScriptItemsDecayable() const ->bool;
auto BaseItemsDecayable( bool value ) ->void;
auto BaseItemsDecayable() const ->bool;
auto ItemDecayInHouses( bool value ) ->void;
auto ItemDecayInHouses() const ->bool;
auto ProtectPrivateHouses( bool value ) ->void;
auto ProtectPrivateHouses() const ->bool;
auto TrackHousesPerAccount( bool value ) ->void;
auto TrackHousesPerAccount() const ->bool;
auto CanOwnAndCoOwnHouses( bool value ) ->void;
auto CanOwnAndCoOwnHouses() const ->bool;
auto CoOwnHousesOnSameAccount( bool value ) ->void;
auto CoOwnHousesOnSameAccount() const ->bool;
auto MaxHousesOwnable( UI16 value ) ->void;
auto MaxHousesOwnable() const ->std::uint16_t;
auto MaxHousesCoOwnable( UI16 value ) ->void;
auto MaxHousesCoOwnable() const ->std::uint16_t;
auto PaperdollGuildButton( bool value ) ->void;
auto PaperdollGuildButton() const ->bool;
auto CombatMonstersVsAnimals( bool value ) ->void;
auto CombatMonstersVsAnimals() const ->bool;
auto CombatAnimalsAttackChance( UI16 value ) ->void;
auto CombatAnimalsAttackChance() const ->std::uint16_t;
auto CombatArcheryShootDelay( R32 value ) ->void;
R32 CombatArcheryShootDelay() const;
auto CombatArcheryHitBonus( SI08 value ) ->void;
SI08 CombatArcheryHitBonus() const;
auto CombatWeaponDamageChance( UI08 value ) ->void;
UI08 CombatWeaponDamageChance() const;
auto CombatWeaponDamageMin( UI08 value ) ->void;
UI08 CombatWeaponDamageMin( void ) const;
auto CombatWeaponDamageMax( UI08 value ) ->void;
UI08 CombatWeaponDamageMax() const;
auto CombatArmorDamageChance( UI08 value ) ->void;
UI08 CombatArmorDamageChance() const;
auto CombatArmorDamageMin( UI08 value ) ->void;
UI08 CombatArmorDamageMin() const;
auto CombatArmorDamageMax( UI08 value ) ->void;
UI08 CombatArmorDamageMax() const;
auto CombatParryDamageChance( UI08 value ) ->void;
UI08 CombatParryDamageChance() const;
auto CombatParryDamageMin( UI08 value ) ->void;
UI08 CombatParryDamageMin() const;
auto CombatParryDamageMax( UI08 value ) ->void;
UI08 CombatParryDamageMax() const;
auto CombatBloodEffectChance( UI08 value ) ->void;
UI08 CombatBloodEffectChance() const;
auto TravelSpellsFromBoatKeys( bool value ) ->void;
auto TravelSpellsFromBoatKeys() const ->bool;
auto TravelSpellsWhileOverweight( bool value ) ->void;
auto TravelSpellsWhileOverweight() const ->bool;
auto MarkRunesInMultis( bool value ) ->void;
auto MarkRunesInMultis() const ->bool;
auto TravelSpellsBetweenWorlds( bool value ) ->void;
auto TravelSpellsBetweenWorlds() const ->bool;
auto TravelSpellsWhileAggressor( bool value ) ->void;
auto TravelSpellsWhileAggressor() const ->bool;
auto ToolUseLimit( bool value ) ->void;
auto ToolUseLimit() const ->bool;
auto ToolUseBreak( bool value ) ->void;
auto ToolUseBreak() const ->bool;
auto ItemRepairDurabilityLoss( bool value ) ->void;
auto ItemRepairDurabilityLoss() const ->bool;
auto HideStatsForUnknownMagicItems( bool value ) ->void;
auto HideStatsForUnknownMagicItems() const ->bool;
auto CraftColouredWeapons( bool value ) ->void;
auto CraftColouredWeapons() const ->bool;
auto MaxControlSlots( UI08 value ) ->void;
UI08 MaxControlSlots() const;
auto MaxFollowers( UI08 value ) ->void;
UI08 MaxFollowers() const;
auto MaxPetOwners( UI08 value ) ->void;
UI08 MaxPetOwners() const;
auto SetPetLoyaltyGainOnSuccess( UI16 value ) ->void;
auto GetPetLoyaltyGainOnSuccess() const ->std::uint16_t;
auto SetPetLoyaltyLossOnFailure( UI16 value ) ->void;
auto GetPetLoyaltyLossOnFailure() const ->std::uint16_t;
auto MaxSafeTeleportsPerDay( UI08 value ) ->void;
UI08 MaxSafeTeleportsPerDay() const;
auto TeleportToNearestSafeLocation( bool value ) ->void;
auto TeleportToNearestSafeLocation() const ->bool;
auto AllowAwakeNPCs( bool value ) ->void;
auto AllowAwakeNPCs() const ->bool;
auto HungerSystemEnabled( bool value ) ->void;
auto HungerSystemEnabled() const ->bool;
auto ThirstSystemEnabled( bool value ) ->void;
auto ThirstSystemEnabled() const ->bool;
auto HungerDamage( SI16 value ) ->void;
SI16 HungerDamage() const;
auto ThirstDrain( SI16 value ) ->void;
SI16 ThirstDrain() const;
auto PetHungerOffline( bool value ) ->void;
auto PetHungerOffline() const ->bool;
auto PetThirstOffline( bool value ) ->void;
auto PetThirstOffline() const ->bool;
auto PetOfflineTimeout( UI16 value ) ->void;
auto PetOfflineTimeout() const ->std::uint16_t;
auto BuyThreshold( SI16 value ) ->void;
SI16 BuyThreshold() const;
auto BackupRatio( SI16 value ) ->void;
SI16 BackupRatio() const;
auto CombatMaxRange( SI16 value ) ->void;
SI16 CombatMaxRange() const;
auto CombatMaxSpellRange( SI16 value ) ->void;
SI16 CombatMaxSpellRange() const;
auto CombatAnimalsGuarded( bool value ) ->void;
auto CombatAnimalsGuarded() const ->bool;
auto CombatNPCBaseFleeAt( SI16 value ) ->void;
SI16 CombatNPCBaseFleeAt() const;
auto CombatNPCBaseReattackAt( SI16 value ) ->void;
SI16 CombatNPCBaseReattackAt() const;
auto ShootOnAnimalBack( bool setting ) ->void;
auto ShootOnAnimalBack() const ->bool;
auto NPCWalkingSpeed( R32 value ) ->void;
R32 NPCWalkingSpeed() const;
auto NPCRunningSpeed( R32 value ) ->void;
R32 NPCRunningSpeed() const;
auto NPCFleeingSpeed( R32 value ) ->void;
R32 NPCFleeingSpeed() const;
auto NPCMountedWalkingSpeed( R32 value ) ->void;
R32 NPCMountedWalkingSpeed() const;
auto NPCMountedRunningSpeed( R32 value ) ->void;
R32 NPCMountedRunningSpeed() const;
auto NPCMountedFleeingSpeed( R32 value ) ->void;
R32 NPCMountedFleeingSpeed() const;
auto TitleColour( UI16 value ) ->void;
auto TitleColour() const ->std::uint16_t;
auto LeftTextColour( UI16 value ) ->void;
auto LeftTextColour() const ->std::uint16_t;
auto RightTextColour( UI16 value ) ->void;
auto RightTextColour() const ->std::uint16_t;
auto ButtonCancel( UI16 value ) ->void;
auto ButtonCancel() const ->std::uint16_t;
auto ButtonLeft( UI16 value ) ->void;
auto ButtonLeft() const ->std::uint16_t;
auto ButtonRight( UI16 value ) ->void;
auto ButtonRight() const ->std::uint16_t;
auto BackgroundPic( UI16 value ) ->void;
auto BackgroundPic() const ->std::uint16_t;
auto TownNumSecsPollOpen( UI32 value ) ->void;
UI32 TownNumSecsPollOpen() const;
auto TownNumSecsAsMayor( UI32 value ) ->void;
UI32 TownNumSecsAsMayor() const;
auto TownTaxPeriod( UI32 value ) ->void;
UI32 TownTaxPeriod() const;
auto TownGuardPayment( UI32 value ) ->void;
UI32 TownGuardPayment() const;
auto RepMaxKills( UI16 value ) ->void;
auto RepMaxKills() const ->std::uint16_t;
auto ResLogs( SI16 value ) ->void;
SI16 ResLogs() const;
auto ResLogTime( UI16 value ) ->void;
auto ResLogTime() const ->std::uint16_t;
auto ResOre( SI16 value ) ->void;
SI16 ResOre() const;
auto ResOreTime( UI16 value ) ->void;
auto ResOreTime() const ->std::uint16_t;
auto ResourceAreaSize( UI16 value ) ->void;
auto ResourceAreaSize() const ->std::uint16_t;
auto ResFish( SI16 value ) ->void;
SI16 ResFish() const;
auto ResFishTime( UI16 value ) ->void;
auto ResFishTime() const ->std::uint16_t;
auto AccountFlushTimer( R64 value ) ->void;
R64 AccountFlushTimer() const;
auto TrackingBaseRange( UI16 value ) ->void;
auto TrackingBaseRange() const ->std::uint16_t;
auto TrackingMaxTargets( UI08 value ) ->void;
UI08 TrackingMaxTargets() const;
auto TrackingBaseTimer( UI16 value ) ->void;
auto TrackingBaseTimer() const ->std::uint16_t;
auto TrackingRedisplayTime( UI16 value ) ->void;
auto TrackingRedisplayTime() const ->std::uint16_t;
// Sept 22, 2002 - Support for HideWhileMounted fix.
auto CharHideWhileMounted( bool value ) ->void;
auto CharHideWhileMounted() const ->bool;
auto WeightPerStr( R32 newVal ) ->void;
R32 WeightPerStr() const;
auto ServerOverloadPackets( bool newVal ) ->void;
auto ServerOverloadPackets() const ->bool;
auto ArmorAffectManaRegen( bool newVal ) ->void;
auto ArmorAffectManaRegen() const ->bool;
auto AdvancedPathfinding( bool value ) ->void;
auto AdvancedPathfinding() const ->bool;
auto LootingIsCrime( bool value ) ->void;
auto LootingIsCrime() const ->bool;
auto KickOnAssistantSilence( bool value ) ->void;
auto KickOnAssistantSilence() const ->bool;
auto dumpPaths() ->void;
auto ServerLocation( std::string toSet ) ->void;
auto ServerLocation( size_t locNum ) ->__STARTLOCATIONDATA__ *;
auto NumServerLocations() const ->size_t ;
auto ServerSecondsPerUOMinute() const ->std::uint16_t;
auto ServerSecondsPerUOMinute( UI16 newVal ) ->void;
auto ServerLanguage() const ->std::uint16_t;
auto ServerLanguage( UI16 newVal ) ->void;
UI32 MaxClientBytesIn() const;
auto MaxClientBytesIn( UI32 newVal ) ->void;
UI32 MaxClientBytesOut() const;
auto MaxClientBytesOut( UI32 newVal ) ->void;
UI32 NetTrafficTimeban() const;
auto NetTrafficTimeban( UI32 newVal ) ->void;
auto GetJSEngineSize() const ->std::uint16_t;
auto SetJSEngineSize( UI16 newVal ) ->void;
SI16 ServerTimeDay() const;
UI08 ServerTimeHours() const;
UI08 ServerTimeMinutes() const;
UI08 ServerTimeSeconds() const;
auto ServerTimeAMPM() const ->bool;
auto ServerTimeDay( SI16 nValue ) ->void;
auto ServerTimeHours( UI08 nValue ) ->void;
auto ServerTimeMinutes( UI08 nValue ) ->void;
auto ServerTimeSeconds( UI08 nValue ) ->void;
auto ServerTimeAMPM( bool nValue ) ->void;
auto SaveTime() ->void;
auto LoadTime() ->void;
auto LoadTimeTags( std::ifstream &input ) ->void;
// These functions return true if it's a new day
auto incSecond() ->bool;
auto incMinute() ->bool;
auto incHour() ->bool;
auto incDay() ->bool;
auto incMoon( SI32 mNumber ) ->void;
auto matchIP(const ip4addr_t &ip) const -> ip4addr_t ;
physicalServer *ServerEntry( UI16 entryNum );
auto ServerCount() const ->std::uint16_t ;
private:
bool resettingDefaults;
};
#endif