* rewrite Decay system
removed setting to switch to multithread decay
Syshook:: call_long treats true/false as 1/0
can_decay hook if it returns 2 skip multicheck
* sleeptime is used outside of PolLock, guarded via atomic
* updated docs
* renamed syshook private methods
added corechanges
* refactored boat move, fixed truncation of position when switching realm.
more simplifications
added more tests
* move_multi now accepts oldlocation like the other move functions
* added corechanges
* Implementation
* wip testing
* allow setting held weight mod to long value
* more tests
* address github actions warnings
- unary minus operator applied to unsigned type, result still unsigned
* Add docs, core-changes
* fix GetItemDescriptor() for HeldWeightMultiplierMod; update tests
* update docs a bit more
* Remove mod suffix
* Add item.weight_multiplier_mod
* Add test for item.weight_multiplier_mod
* add core-changes and docs
* Address review comments
- Use `Clib::clamp_convert`
- Remove new `weight_of` function
* Add libefsw at 3419347
* saving work
* some cleanup
* move to fs::paths
* saving work.. maybe hitting a limit with number of watched dirs?
* migrate to watching only ecompile.cfg specified folders, cleanup/doc
* Display summary between compilations in watch mode; fix cache reuse
* Fix inf loop; some cmake, format changes...
* some windows compilation fixes... tweaks to windows cmake?
* Update Efsw.cmake for build lib changes
* removed debug flag
* silence efsw build
dont add antlr project if it already exists
* Address review comments:
- use std::move on efswwatcher add_*
* add docs
* Add WatchModeByDefault ecompile.cfg option
* iniital work on tests
* Add CI actions
* some changes (passes locally on win, mac, linux)
* Fix fixtures dependency; use ecompile verbose mode
* Add core-changes
* Send ctrl+c instead of killing process
* Proper Python file naming
* Kill ecompile process on windows, SIGINT otherwise
---------
Co-authored-by: turleypol <turley@polserver.com>
* added sql tests (linux only)
* add mysql_escape_string module function
its now possible to define a port for sql connection. (0 means default
sql port like before)
* escape string can fail, return error in this case
* rebuild antlr
* added docs
* Update grammar; add tests
String literals inside an interpolated string cannot start with `}`, as it must be a DOUBLE_RBRACE `}}`
* Fix interpolate string token reading
* Update core-changes
* Add cppdap debugger library and simple server (#508)
* Add cppdap library
* Add cppdap server
* fixup cmake scripts for windows
* Enable caching of cppdap on GitHub actions
* Fix CMake for cppdap target
* Wait 1s for session close before thread ends
* Address review comments
- Remove unnecessary use of wait_for
- Fix wait_for method
* Do not use SocketClientThread for cppdap clients
* Address review comments
- Cleanup object ownership
* Add authorization and event handling (#510)
* Add authorization and event handling [WIP]
* Use std::weak_ptr; Only allow one debugger conn
* Only attach debugger if dbg file exists
* Cleanup weak_ptr; Fix listeners; Add handler stubs
* Address review comments
- PolLock on uoexec and weakptr access
- Use make_shared when creating client thread
* Add ExecutorDebugListener on_destroy callback
* Use cppdap sockets instead of clib sockets
* Update cppdap repository to 2703cf4
* Implement server address binding
* Update cppdap repository to eeca5ce
* Fix warnings
* Use weak_from_this
* Fix stalled executors on disconnect
* Fix stalled executors on re-attach
* Clear uoexec weakptr on all debugger detaches
* Move server to gamestate
* move DapDebugServer into Network namespace
* move DapDebugServer into GameState for storage
* Move DapDebugServer into NetworkManager
* Fix missing memory include
* Add more events (#513)
* Add more events
* Implement dbg_step_out
* Fix breakpoint clearing
* Add even more events (#515)
* add launch request
* Add custom `processes` command
* fixup loop
* Refactoring to move handlers to member functions
* Add VariablesRequest and ScopesRequest
* use std::varaint for Handles
* add pollocks
* refactor Handles to new file
* move custom messages to proto.h
* move clientthread
* some formatting / cleanup
* Add missing PolLock
* move dap variables creation to Handles
* appobj members
* rename ClientThread to DebugClientThread
* rename LaunchRequest args to arg
* Fix compiler error on size_t
* Add support for EvaluateRequest and SetVariableRequest (#519)
* Update grammar for evaluateUnit
* Cleanup various compiler code
* Add support for EvaluateRequest
Only supports values, variables, element access, member access
* Add report clearing to reinitialize state
* Add support for SetVariableRequest
* Fix CI build errors
* Move ExpressionEvaluator to Bscript
* Fix formatting
* Fix include
* Refactor global and frame variable references
* Encapsulate Executor debugging environment; Fix step over (#524)
* Fix step over
* Some cleanup of executor
- Remove unused debug states
- Rename members for consistency
* move debugging environment to new class
* Move instruction inspection to class
* Cleanup slashes on Windows; Add Executor state to processes response (#527)
* Fix backspaces in script names on Windows
* Fix compilation warnings with data loss
* Use boost::icontains for string comparison
* Add Executor state to processes response
* Updates for libfmt
* Fix tests; Fix cppdap build for Mac universal binary (#607)
* fix tests
* fix cppdap build for mac universal binary
* Update cppdap to 2a4c7cf
* Add tests; Modify launch behavior to not stop at entry (redo) (#609)
* Remove unused setExceptionBreakpoints handler
* Add debugger tests
* Launching a script should not set attaching state
* Add launch tests
* Do not check for connection in debugger tests
* Rename `program` to `script` in protocol structs
* Fix launch stopAtEntry; quote string var values
* Fix compilation error on Windows
* Add configfiles doc entry
* Various fixes for finishing touches; Add core-changes (#610)
* switch cmake projects
* simple docs
* cmake move make_directory
* Fix launch request with relative, absolute, package paths
* make relative paths as absolute in source request
* Add true, false, uninit to ExpressionEvaluator
* Re-add setExceptionBreakpoints to avoid unhandled message errors
* Better debug thread logging with instance numbers
* launched scripts should terminate on disconnect (according to DAP spec)
* Properly handle exited event in client thread
* Add core-changes
* Address Discord comments
- Mention vscode-escript in core-changes
- Re-add "cppdap already built" in cmake
* change cmake escriptgrammarlib visibility to public
* rewrite of saving, replaced operator way with a generic add method, thus
not everywhere the formating of the savefiles is hardcoded.
since its the last spot which uses the old formating lib, remobed the
lib
* removed cmake of old format lib
* testscripts for load/save of UObject,Item,Armor,Weapon
* fixed: member faster_cast_recovery and faster_cast_recovery_mod getter returned
a wrong value
* wrong/missing docs
* test containers, lockable, map, spellbooks
fixed save bug in map and spellbook
removed ancient savestrategy experiments
* added corpse test
splitted testfiles
* fixed loading (ancient bug) and saving (PR bug) of Reportables
added tests for houses, boats, accounts and chars
* fixed include
* fix shutdown leak
* added npc tests
upload complete coretest folder also on failure
* do not write and load RegisteredHouse for NPCs two times
readded extra newline between accounts
* tests for guild, party, realm
added resource cfgs, but a test is not really possible since nothing of
interest is stored
* added datafile, storage test
* activated resource loading, 25year old bug, but since the stored values
are senseless it makes no real difference.
added a few wtf comments
catch all exceptions during formatting of log lines
* replaced .write with explixit .begin, .end and .comment.
for leftovers.txt the StreamSaver was also used, since the format is
different use directly ofstream
* added corechanges
* Buffs: should be now possible to set for the first cliloc arguments,
added chr.buffs member to return the current buffs
* added test
* docs
* more docs
* Fix unhandled exception in UBoat::create_component
* Return 0 on unsuccessful boat move with MoveBoat and MoveBoatRelative
* Add boat.set_alternate_multiid
* skip base multiid in alternates boat struct
* Add test for boat.set_alternate_id
* docs, core-changes
* use array equals in test
* Initial work on boat piloting changes
- Changed: Boat script is now registered as the boat's control script
- Added: Boat piloting via mouse movement
- Added: boatRef.pilot member
- Added: boatRef.pilot([charRef]) method
* add first test
* Fix boat control script attach on scripted create
* move boat move packet warnings to suspicious acts
* set pilot now errors when mutli has no process
* Add test, testclient support for boat move packet
* Touchup pilot members and methods
- Change `pilot` method to `setpilot`. This standarizes it a bit with
the same naming convention of `npc.setmaster`.
- Fix return values in `pilot` member, returning `0` if no pilot.
* Refactor to put functionality inside UBoat
* Address Discord comments
- Remove SuspecisionActs for no boat process.
- Add `relative_direction` to boat move sysevent.
* destroy boatmount on chr death; more error checks
* Fix compilation after master merge
* Fix relative_direction calculation
* wip tests
* Fix boat tests
* Address review comments
- Initialize UBoat::mountpiece
* Add HSA check to boat.setpilot
* Reject movement if boat mountpiece equipped
* docs; test cleanup
* add test for blocked movement
* Address Discord review comments
- Add suspicious acts notice for client movement while piloting
- Return error on attempting to script move a char that is piloting a boat
* Fix compiler warning
* Update maximum animation ID in configuration
* updated core-changes
* Change author name in corechanges.xml and
core-changes.txt
* updated pol.cfg docs
* fix stylecheck test
* removed useless comment
* Added MaxAnimID to pol.cfg.example
* removed pol_distance/inrange* functions
replaced lastxyz with Pos4d
* replaced WorldIterator::InVisualRange with InMaxVisualRange returning
all objects in maximum update range. Adapted each caller, they now have
to check in_visual_range
Multis should now be send to clients with its footprint in mind.
added testscript for boat moving in/out of range
* removed non pos InRange/InBox functions
gamestate.update_range doesnt need to be a Vector, renamed
* corrected send_action_to_inrange
* replaced clip methods with general numeric type clamp function
* added Range2d constructor with radius
* splitted update_range. chr has now a los_size (how far can it see) and
an object has a visible_size (0 for objects 1/2 footprint for multis)
* use in_range instead of pol_distance
* corrected order of checks
* fixed warnings
* fixed visual size of multis
testclient added wornitems pkt support
added tests for los
* corechanges
* use std::to_chars for doubles
* fixed cmake errors when an escript error occurs
* macos 13 with clang15
* CI: macos new cache version
* guessing game
* guess no2
* test shipped clang with deloytarget env
* adapted testdata, lets see if all platforms behave the same
* explicit test if high precision double can get packed+unpacked
* log testclient receive buffer on error
* added docs
* added test for pack/unpack double which has exponent representation. Bug
in vs 2022 17.8..
removed unneeded minimum versions of cmake, root cmake file has a higher
minimum version
* switch back to vs2019
* force rebuild external libs
* docs
* Fix segfault in Character::clearBuffs()
This escript function was segfaulting every time it was
called because the implementation was deleting items
from a map while iterating through it.
* Add test for EScript character buff functions.
* Update core changelog.
* Update corechanges.xml
* Make GetStandingLayer recognize items & fix bug affecting the z-coordinates returned.
* Oblige oppressive line length requirements
* Don't need this workaround anymore
* Add includeitems parameter to GetStandingLayers.
* Add GetStandingCoordinates EScript function.
* Remove semicolon from documentation.
* Fix line length nags.
* Add "x", "y" members to documentation.
* Reformat code.
* Update corechanges.
* Fix line break in core changes.
* Remove dummy parameter by removing broken reinterpret_cast.
* Update GetStandingLayers documentation.
* Remove x,y parameter overload of get_walkheights.
* mf_GetStandingLayers: use Pos2d instead of x, y params.
* Remove x,y param overloads of readdynamics. Rename flagless version to read_walkable_dynamics.
* mf_GetStandingCoordinates: Refactor to use Core::Pos2d, Core::Range2d and Realms::Realm.
* Clarify GetStandingCoordinates documentation.
* Use correct error message in documentation.
* Fix function signature in uo.em
* Add test script for GetStandingCoordinates.
Adds a simple test script for GetStandingCoordinates which
compares the function's return value to known good data
from the test map.
* Update changelog
* Fix test
* Add a commented out block into test script to generate expected data
* Fix clearance check.
Walls and other tall shapes were not getting detected correctly.
added a small house as static, the poor testchars need also something to
rest
used sand tiles for the transition between water and grass
adapted testscripts due to the map changes
* add timing information per test function/script/pkg
* bypass script scheduler logic for our testsystem with a endlessloop
due to faster execution time the wait time between doubleclicks needs to
be disabled
* try to sync lift/drop tests
* Add Character member .parrychance_mod, additive modificator of the parry_chance from the defender when it has shield equipped. Add parrychance_mod to parry formula.
* Add repsys.cfg General section PartyHarmFullCountsAsCriminal 1/0 default 1. If 0 OnHarm does not set mobile to criminal when they are in the same party.
* fix settings/party namespace
* fix pointer
* add ServSpecOpt UndoGetItemEnableRangeCheck and UndoGetItemDropHere undo getItem behaviour options
* fix code style len
* add missing comas
* special case for no drop item
* if no drop item and was not able to return to original container try to put to backpack
* fix remove item in range (was still displaying item in container, but was not really present there)
* add first simple test
* remove all tests
* remove all tests
* do not export test function
* ReloadConfiguration add reload servspecopt; Testsuite add fileaccess and servspecopt files; Add test fro undo get item
* check what produce SanitizerBuild fail
* run all test to fail on ThreadSanitizer Build
* Add repsys.cfg General section PartyHarmFullCountsAsCriminal 1/0 default 1. If 0 OnHarm does not set mobile to criminal when they are in the same party.
* add ServSpecOpt UndoGetItemEnableRangeCheck and UndoGetItemDropHere undo getItem behaviour options
* add missing comas
* fix remove item in range (was still displaying item in container, but was not really present there)
* remove all tests
* check what produce SanitizerBuild fail
* run all test to fail on ThreadSanitizer Build
* test new reload conf fix
* double check that build successful
* fix test comments; fix change log
* add DefaultAccessibleRange = 2 for tests
* delete unnecessary servspecopt file
* change check to toplevel_pos; add test for toplevel_pos
* try to update backpacks for client; increase distance to on drop backpack
* add heavy robe for tests; use robe instead flooding client with arrows
* fix test messages
---------
Co-authored-by: Oleksii Rebreniuk <oleksii.rebreniuk@shopit.se>
* rewrite of FindPath
added parameter for movemode, before it was only possible to use
findpath on land
* unknown movemode is now an explicit error.
extended tests
docu
* added core changes
* typo
* reworked get_item and its undo behaviour.
old position gets stored and in case of failures restored
* removed ancient container content defines
* Fix some packet oddities
- dropitem: Success sent after rejections
- getitem: Double Delete Item packet due to item->extricate
* Store container serial when creating GottenInfo
* Add tests
* add socket mutex to disconnect checks
* Use mutable socket mutex
* add core changes
---------
Co-authored-by: turleypol <turley@polserver.com>
* each SpeechEvent needs to contain a copy of the speechtokens
* added core changes
* prevent memoryleak
* add basic pol test
* Remove extraneous prints in test
* Address review comments
- Refactor token encoding into a method
---------
Co-authored-by: Kevin Eady <8634912+KevinEady@users.noreply.github.com>