* 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
* 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
* 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
* ReloadConfiguration reloads npctemplates leaving dangling references in
the NPCs.
NPCs now hold a shared_ptr of the template.
(the only attribute which would change due to reloading is the
alignment, so keeping the old shared_ptr is no feature loss..)
* missing changes xml
* 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>
* add item.character_owner
* Address review comments
- Cleanup chr_from_wornitems
- Return BError if no character owner
* Add Target option TGTOPT_ALLOW_NONLOCAL
* Address review comments
- Remove `Core::chr_from_wornitems`
* Add pol tests for snooping
* Add tests for TGTOPT_ALLOW_NONLOCAL
* target_nonlocal_checklos pol test debugging
* target_nonlocal_checklos pol test debugging
- Remove destroy of obstacle
- Add a CheckLosAt call to error return
* target_nonlocal_checklos pol test debugging
- Enable USAN build
* undo test debugging changes
* use mobile for los when targetting snoopable items
* Update core-changes
* Persist SnoopScript for items on save
* Add snoop_script_ to Item::estimatedSize
* document SnoopScript script type
* Initial work on adding SnoopScript
* use message "That doesn't belong to you..." if lifting a snoopable item
* fix configfile changes
* Update core-changes
* switched internals of realms, changed packetdefs
* restructured ListenPoint a bit
* moved actual listenpt code to private method
* simplified listenptr loop and the same for guilds to fix ancient fixme
* added todo for future us
* use Pos classes in Map and Door
removed most of the functions in ufacing.cpp
removed Plib::UFACING
added executor getPos2d
* added forward methods to baseobject, lets see where it ends :)
* fix typo
* moved methods to uobject
* replaced baseclass x,y,z,realm members with Pos4d.
Adapted the code, no changes except making the compiler happy
* review changes
* Fixed gotten_item
* fixed copy&waste
* added escriptgrammar as external lib where it belongs. Silenced warnings.
* bscript compiler warning fixes
* special include file to get rid of gcc warnings about antlr4
* misc windows warnings
* time specifc warnings
* buildfix + apple warnings
* never trust apple
* windows debug build warnings
* some windows clang warnings
* last warning fix
In summary:
* Make functions in clientthread.cpp depend on ThreadedClient.
* Wrap session, packet logging and cryptengine
* Other small changes to make ThreadedClient private
* Return the full spec for item.hitscript and item.onhitscript. The relative name wasn't very helpful.
* Added breaking changes.txt. We can add more breaking changes later.
* Added ScriptDef::qualifiedname(). Returns the full spec necessary to call the script ("::scriptname" or ":pkgname:scriptname"). Returns an empty string if there is no script.
* Fix bug where the quality property couldn't be changed in the ItemDescriptor for Items, only for Equipment.
* Removed the distinction between Item and Equipment quality. Now every quality comes from the dynprop in Item. I haven't benchmarked memory use nor performance but it should have a minimal difference (8-16 bytes more per equipment).
* Items with different quality will no longer stack
* origin/master: (70 commits)
Fix to items randomly loading with AOS props due to incorrect initalization of props on load of server.
Rectify core not clearing mobiles from client during shadow realm shift.
SendQuestArrow() fix for HSA clients (#91)
Hotfix/start skill script (#90)
Noninvasive dynaprops (#89)
Update objref.xml
Some network error conditions were missing...
Final adjustments to core-changes
Added Turley's missing core-changes :P
Improved connection handling: - Linux isn't limited to 1024 connections anymore - Windows may have some slight performance boost
removed senseless gitignore files
use generator unspecific clean cmd in build_tools.sh always generate compile_commands.json force color diagnostic (to work with ninja)
Curl building uses now the same compiler as pol
fixed target_link_directories system header declaration
check if container is orphan when adding items as content. for now it crashes the shard to have the backtrace. (would crash anyway later)
add corechanges for doc changes
new build target "clang_format" runs clang-format on current modified or new files in pol-core dir.
Formatting
Fix xml indentation
fix indentation
...
Conflicts:
pol-core/bscript/execmodl.cpp
pol-core/doc/core-changes.txt
pol-core/pol/getmsg.cpp
pol-core/pol/module/unimod.cpp