Commit graph

112 commits

Author SHA1 Message Date
turleypol
f526ef17bd
Boat refactor Part 3 of N (#656)
* 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
2024-07-10 19:54:31 +02:00
turleypol
cd51ccebd0
simplified move functions further, added move_boat_item/move_boat_mobile (#655)
to get rid of duplicate code
2024-07-10 07:08:50 +02:00
turleypol
0d00a675d0
Boat refactor Part 1 of N (#654)
* test for traveller movement due to turn/move
check relative position of a component

* refactor BoatComponents, turn/move
2024-07-08 11:35:25 +02:00
turleypol
b216a16d36
refactored npcmod,decay to use Pos classes, removed all wrappers from Realm (#652)
* refactored npcmod,decay to use Pos classes
get rid of some realm methods used to wrap Pos

* all wrappers in Realm are now gone

* review comments
2024-07-07 15:32:29 +02:00
turleypol
a88d76acc3
refactor uomod to use pos classes (#651)
* refactor uomod to use pos classes

* fixed ambiguous call
2024-07-06 07:56:02 +02:00
turleypol
9d2bf0ec60
replaced all uppercase hex formatting with lowercase variant (#645) 2024-05-05 09:13:12 +02:00
Kevin Eady
09bb6d97f3
Add servspecopt BoatSailsCollide (#640)
* Implementation

* Add tests

* Update docs

* Rename test function

* Tweak boat cleanup if test fails

* Address review comments
- check objtype passable in boat unregself
2024-04-18 14:59:23 +02:00
turleypol
08bd3c7ce5
Savefile rewrite (#601)
* 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
2024-01-24 18:49:06 +01:00
turleypol
d848deae18
POLLOG* macros use the new formatting (#598)
* POLLOG* macros use the new formatting
removed all old logging functions

* removed old fmt lib from everything except StreamWriter
removed unneeded functions

* fixed review comments
2024-01-16 17:55:42 +01:00
turleypol
0e675c516a
use new formatter for ERROR_PRINT, added ERROR_PRINTLN (#595)
* use new formatter for ERROR_PRINT, added ERROR_PRINTLN

* remove old log define

* fix comments
2024-01-12 06:51:44 +01:00
turleypol
43b776b94d
New format lib version (#592)
* renamed include guard to be able to use both format lib versions in
parallel

* build Fmt lib and link it into clib

* use std::string instead of format Writer for logging
added variant "2" for logging with new fmt lib

* use new logging variant for two logs

* always add \n to flush log, lets see if the assumption holds

* use new lib for tostring

* replaced all INFO_PRINTS in clib

* formatter for Token, BObject and BObjectImp

* started with bsccript

* use function instead of actual object for logging

* remaining bscript, started plib

* logvariant without newline added, more template magic

* format support for base types, added test for format padding
new version for fdump

* chanhed ecompile/runecl fixed compilation with ESCRIPT_PROFILE

* rewrite INFO_PRINT in plib,poltool/uoconvert/uotool

* replaced remaining INFO_PRINTS, renamed macros INFO_PRINT for logging
without newline, INFO_PRINTLN for newline addition.
Replaced also INFO_PRINT_TRACE and renamed it to INFO_PRINTLN_TRACE

* gitignore for fmt lib

* cleanup vim leftovers
2024-01-10 18:29:10 +01:00
Kevin Eady
3f82fbafb4
Add boat.set_alternate_multiid (#593)
* 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
2024-01-10 11:34:40 +01:00
Kevin Eady
48c8a00476
Allow custom boat control script defined in boat item descriptor; Rename boat method setpilot to set_pilot (#591)
* Allow custom boat control script defined in boat item descriptor

* Rename boat.setpilot to boat.set_pilot
2024-01-08 18:46:01 +00:00
Kevin Eady
e5209a51ff
Add support for boat piloting via mouse movement (#558)
* 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
2024-01-06 18:01:31 +07:00
turleypol
ec91d7cc3c
Codecleanup from #581 (#583)
* is_visible_to_me checks now also in_visual_range
added obj::distance_to
fixed warnings

* no magic numbers for snprintf
2023-12-26 17:47:40 +01:00
turleypol
d873551c25
removed pol_distance/inrange* functions (#556)
* 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
2023-12-25 22:02:52 +01:00
turleypol
eeb57d489a
Drop/getitem related pos refactoring (#497)
* refactored move_item

* container location methods

* dropitem position refactors

* addressed pr comments.
fixed comment
more readable algo for random location
2023-01-05 00:10:51 +01:00
turleypol
99667711af
Fixed move of mobiles/items between realms (#446)
* MoveObject fix between realms for mobiles and items

* missing poltool changes
2021-12-15 07:47:54 +01:00
turleypol
3306c5e206
converted multidef (#441)
* converted multidef
added to the testsuite a big multi
ListMultisInBox now uses the update range, but since its the only spot
and the chances are low that someone really has such a big multi
corechanges are not really worth it I would say

* Fixed a few grid bugs, one endless loop and changed the range a chr can move while customhouse is active
2021-11-09 20:01:16 +01:00
turleypol
95783a3226
removed ufacing move_delta, added getPos*Param (#424)
* removed ufacing move_delta, added getPos*Param

* renamed move_self to move_to
2021-09-12 14:39:06 +02:00
turleypol
9fe3e36cff
use Pos classes in Map and Door (#422)
* 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
2021-09-11 22:38:43 +02:00
turleypol
7ee1b64e19
replaced baseclass x,y,z,realm members with Pos4d. (#420)
* 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
2021-09-10 20:17:25 +02:00
turleypol
0fab3e17e1
Boat pkt encoding len (#405)
* guessing game, does encoding can take more space?

* corrected comment to explain fix

* fixed compiler warning

* added corechanges
2021-07-22 21:18:19 +02:00
turleypol
aa6b0ec3ba
Smooth Boat pkt: overflow/invis objects (#403)
* Test: move boat while client on ship
* added f3 pkt
* pkt id on assert failure
* 7090 pkts
* smooth boat pkt
* silent the spam
* syncpoint for moveobjecttolocation of char
* added sync point for silent item updates
* starting actual test for boat movement to check correcr coords
* read z coord as signed short
* clarified names

* smooth boat pkt rewrite. dont include invis objs, send the correct obj count in case of overflows

* core changes
2021-06-21 18:13:15 +02:00
Fernando Rozenblit
f3a362a151
Fix boat packet overflow and add setting to control the refresh of decay timer for items on a boat's deck (#354)
* Fix overflow of new HSA packets when a boat has too many items on the deck. These packets will now be truncated.
* Added setting in ssopt to control the refresh of the decay timer for items on deck after a boat movement
2021-03-08 16:05:22 +01:00
Eric Swanson
81ad68df2e
Core version is now a semantic version, starting at 100.0.0 (#337)
* Core version is now a semantic version, starting at 100.0.0

* Remove 'POL' prefix from POL_VERSION_ID

* re-add dash in between version str and name in POL_VERSION_ID

Co-authored-by: Fernando Rozenblit <rozenblit@gmail.com>
2020-10-18 03:35:17 -07:00
turleypol
9cfb4ec5a5 moved pkt headers into network folder 2018-12-30 21:35:54 +01:00
turleypol
25dae4fc21 fixed namespaces of moved files 2018-12-22 00:32:47 +01:00
turleypol
e1b14dcd00 moved polfile/uofile files into plib to cleanup atleast a bit the
compile dependencies
2018-12-21 20:27:05 +01:00
turleypol
983c6a3c73 first round for scripted object class methods 2018-10-13 00:03:40 +02:00
esdete
dc2d29b433 NULL to nullptr 2018-07-31 14:30:29 +02:00
turleypol
dbb25bdb62
Include and buildsystem cleanup (#45)
Include cleanup
Reworked buildsystem (Linux only)
Removed dynamic libs, Linux now again uses static linking (like windows)
2018-01-29 21:55:48 +01:00
turleypol
798eda5b63 Cleanup of header includes. 2018-01-01 21:52:14 +01:00
turley
c855a27815 Added new baseclass for uobject
contains only minimum data and can be created with arbritary data.
This reduces memory overhead for each los-check.
Plus minor cleanup
2016-12-12 22:21:59 +01:00
turley
a983d25e4e removed bool members and replaced them with flags.
Further decrease memory foodprint.
2016-12-07 23:34:16 +01:00
turley
099c81d572 Fixed some variable names hiding class members 2016-08-28 15:38:35 +02:00
frozenblit
b933d4e326 Fixed crashes after removing boat components 2016-03-24 20:06:38 +01:00
turley
189cad3479 Formating everything
Authors are not forced to use the clang-format setting, but should
atleast be inspired by the style.
The only thing which is now not allowed are tabs for ident/alignment!
2016-02-19 19:26:35 +01:00
Gabriele Tozzi
b2342339bf Doxygen fixes 2016-01-29 20:27:21 +01:00
Gabriele Tozzi
d1ac902926 Documentation: reformatted headers for DoxyGen 2016-01-28 14:52:40 +01:00
Gabriele Tozzi
4a02fa110d Fix: usage of assert() in my previous commits due to inexperience
Also fixed a rval issue in recently modified house components code.
2016-01-21 18:43:45 +01:00
Gabriele Tozzi
a5efaa4fa6 Merge branch 'master' of https://github.com/polserver/polserver into cmake 2015-12-05 09:41:51 +01:00
frozenblit
b3b9bb1fb6 Removing dependence on useless includes.
Preparing to reorganize the uofile code by removing useless includes
from the rest ;)
2015-12-04 00:50:14 +01:00
Gabriele Tozzi
24eee9ecf4 Merge branch 'master' of https://github.com/polserver/polserver into cmake
Conflicts solved, still need to test and review it before merging into master.
2015-11-27 06:26:46 +01:00
turley
dfd65e30cd Moved plib realm to pol 2015-09-18 19:11:46 +02:00
Gabriele Tozzi
b69cb9032a Fixed: Bug in loading POL098 and older data files
Boats were rotated leaving dynamic elements like plank and
tillerman on the old position.
2015-09-12 18:49:05 +02:00
Thomas Volkert
1dd2200c6b Renamed endian.h to clib_endian.h to avoid redefinition problems in
system files and the general hiding of the endian.h from the system
2015-08-31 20:01:31 +02:00
turley
65fe073971 Gotten by pointer for items and chars made optional 2015-05-16 11:09:26 +02:00
frozenblit
a4c91921ce Avoid crashing if someone moves a boat component away 2015-03-15 12:43:51 +01:00
turley
7a531357fe Updated Memoryusage profiler 2015-01-19 18:18:21 +01:00