* use uoexpansion enums for A9, B9 flags
added TOL to uoexpansion
currently unsure where this will end
simplified account initialisation, added errorcheck
* Expansion classes for server and account
fixed flags
* use of AccountExpansion,ServerExpansion
extended tests
splitted unittest file
added missing test for Min/MaxAttackRange
* more micro performance for world saving
use all 4 cores in CI builds
fix compiler flag warning on windows
* save test for weight_multiplier
* enable gothic,rustictiles when using HSA expansion
* removed ancient unused files
* addressed comments
renamed ServerExpansion to ServerFeatures
added method for expansion name
* got rid of client UOExpansionFlag which is the same as the accout
expansion
* updated core-changes and docs
* updated generated ssopt
* test for tooltips
changed method names
removed/clarified comments
* npc hitchance was never saved
added missing npc save tests
* hitchance bug exists also for items...
added missing test for movemode
* directly write to stream
* quickfix just disabled orphan console print
* now?
* debug timer for each file
* removed pointer indirection
use defined underlying buffer size
reactivated orphans
* missing files
* optimized away dynamic allocations during formatting by using buffer
* debug print thread id used
stop timer of blocking part
* wake up all threads, if the producer thread is faster only one thread
will wake up...
extended debug logging
* after reading the standard...
notify_* is atomic thus multiple calls to notify_one will always wake up
a different thread.
So notify_one is correct here and notify_all pessimistic
* increased the buffer
ordered savefiles roughly by size
* use compile time strings to optimize formatting
added a few shortcuts
optimized hexint by adding a string_view version with threadlocal buffer
* cleanup
* readded terminate protection
* docs
* StreamWriter needs to be destroyed before printing the stream
* Clib::clamp_convert is now able to convert between equal sized types.
fixed tons of overflow/underflow problems in script member setters
* fix coverage CI
added docs
fixed warning
* finally got it right?
massively extended tests
* removed unneeded special handling
better comments
* SaveWorldState(): if possible the script will be suspended until the
async part is finished, added to the returning struct
`ElapsedMillisecondsTotal` for the complete time it takes.
* readded removed header
* extended test by calling save without beeing able to suspend
* fixed function name
* do not suspend script during worldsave when its critical
since testscripts are fast make sure via sleep that the gameclock
changes
* docs
* preparation
update boost
build stacktrace
* if worldsave i/o operations fail core terminates directly, allow
exceptions in SaveContext deconstructor to prevent this
* link with boost stackstrace
* print exception backtrace when buffering fails
* replaced other forced backtraces with actuals
* test throw
* revert test throw
* register terminate handler and print stacktrace
unsure if it collides with the other signals register
* StreamSaver can terminate in the deconstructor
added PolCore().last_worldsave which returns the gameclock of the last
successfull world save.
SaveWorldState() can now return error "Failed to save world" if the first critical
part fails. Since the second part runs async you have to check the new PolCore member when the last successfull save was.
* fixed cppdap checkout
* catch exceptions in the deconstructor and do not rethrow during stack
unwinding
* fix mac build
* fix apple builds
* helper lambda to get rid of repeating try/catch blocks per datafile
try to set promise in exception cases to guarantee the set
moved account storage into parallel tasks, comment about extra
thread is no longer valid.
* centralized stacktrace
renamed polcore member
* extended comment for clarification
* docs
* switch to cppdap original repo, latest commit
* update cppdap cache folder for github actions
coverity still used gcc11 instead 12
* minimum CMake version is now 3.22, since cppdap needs it
updated year
* cmake cleanup due to minimum version change
set c++ minimum version at a not so hidden spot
* Initial implementation, tests
* Enhance tests
* Add quiet to read_dbg_file
* Add pc to array format
* Add docs, core-changes
* fix bad PCs
* touchup on corechanges
* added multi prop/itemdesc items_decay
added region cfg entry NoDecay
misc cleanup eg chr->equip sets position instead of calling side
* docs
* added future pos refactoring comment
* changed region NoDecay to ItemsDecay so it matches the other props
* Initial commit of min and max range increase dynaprops.
* Fixed documentation and reported style issues.
* More style check fixes.
* Update missing uobject and script objects for new props.
* Rectify missing code from uoscrobj which prevented assignment on mobiles.
Changed range logic from weapons to include some sanity checks.
* Add a simple test
---------
Co-authored-by: Jonathan Morland-Barrett <jonathan@veridiandynamics.com.au>
Co-authored-by: Kevin Eady <8634912+KevinEady@users.noreply.github.com>
* added ssopt AllowVisualRangeModification which allows clients to modiy
their LOS via pkt 0xC8
* added ssopt MinimumVisualRange and MaximumVisualRange to limit the range
a client can define.
added r/w script member client.visual_range
if set via script the updaterange can no longer be modified by the
client
* fixed typo
* missing include
* if via script the visual_range is set to 0 use the client given range
remove/add objects when the visual range changes
added test
fixed testclient 0xbf sub clienttype packet
* extra logic to send/remove objects only if they are now/no longer
visible due to range change
script can by pass the VisualRange limit
added docs
* core changes