Commit graph

186 commits

Author SHA1 Message Date
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
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
154a68a9fd
LEAKLOG, DEBUGLOG, SCRIPTLOG, FLEXLOG changed to new logging (#597)
* LEAKLOG, DEBUGLOG, SCRIPTLOG changed to new logging

* updated FLEXLOG
2024-01-13 17:08:33 +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
turleypol
41e348ce65
use correct upperlimit for sellhandlers (#586) 2023-12-29 11:43:43 +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
e08bc60fe9
its no possible to explicitly destroy all orphan objects (#564)
added test which as of now would fail in AddressSanitizer CI build.
(controlscript holds a rawpointer to the item)
2023-11-13 14:23:36 +01:00
Kevin Eady
ecec3a2206
reworked get_item and its undo behaviour (#514)
* 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>
2023-05-23 17:07:23 +02: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
Kevin Eady
ab151728d0
Add x, y parameters to create item function calls (#490) 2022-12-13 23:08:02 +01:00
Kevin Eady
7346c9b443
Add POLCore().poldir returning POL executable directory (#474) 2022-09-21 13:49:08 +02:00
turleypol
23ac3bcded
Fixed popupmenu request when an old canceled request has to be revived. (#468) 2022-08-22 16:45:35 +02:00
turleypol
b1536d30a4
SendPopUpMenu update (#467)
* SendPopUpMenu supports now the newer format which removes the limitation
of the cliloc values

* fixed build errors

* revision increase when insurance gets reset on death.
added core changes

* updated online docs

* using enum for flag values
2022-08-14 11:35:38 +02: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
Peter Wedder
62638190a6
Change outgoing packet handlers to write CP-1252 when appropriate (#443)
* - Change all (most?) outgoing packet handlers that should write CP-1252 to convert UTF-8 to CP-1252.
- Update Clib::sanitizeUnicodeWithIso() to sanitize with CP-1252, which is what UO uses instead of ISO-8859.
- Add a test for Clib::sanitizeUnicodeWithIso() to check if it's performing the conversion correctly (currently it is not).

* Fix stylecheck

* Revert changes to sanitizeUnicodeWithIso()

* Change test so it matches acceptable sanitizeUnicodeWithIso behavior.

* Fix warnings.

* Add corechanges.
2021-11-09 08:01:31 +01: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
90b92f4002
Get environment variable/Extended Testsuite (#359)
* added os:GetEnvironmentVariable to list all environs or get a single one

* first version of restarting the core to test save/load
added environment variable to filter tests

* fixed string constructor (size_t instead of signed int)

* added string_view constructor

* splitted and extended restart tests

* added docs

* added pol.cfg setting to disallow environment variable access

* Change environmental variable access rules
Instead of defaulting to all values allowed, now defaults to none. May
specify either `*` to allow all variables, or a comma-delimited list.

* Address review changes
- Use Clib lower instead of boost
- const auto references
- Separate tests for access and finding env vars

* Update documentation

* Apply suggestions from code review

Co-authored-by: Kevin Eady <8634912+KevinEady@users.noreply.github.com>
Co-authored-by: Fernando Rozenblit <rozenblit@gmail.com>
2021-02-27 08:36: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
Fernando Rozenblit
4f3da669aa
Refactor suspicious activity warnings and suppress B1 overflow warnings (#249)
* Refactored the reporting of suspicious activities
* Only show warnings about B1 packet overflow if ShowWarningGump is enabled
2020-08-29 09:39:18 +02:00
Fernando Rozenblit
815bb6f856
Cmake and zlib cleanup (#219)
* Added explicit path to the lib/ folder.

* Added use_zlib() function to the cmake files. Changed the remaining cmake files to use POL_EXT_LIB_DIR.

* Removed relative path to zlib. It seems we were always using our zlib header (even when linking to the system zlib on linux!).
2020-08-14 22:16:02 +02:00
Fernando Rozenblit
af19074ed4
Update to cpp14 (#188)
* use c++14 on linux, visual studio still undefined which means highest
available

* removed make_unique.h due to c++14 no more needed

* stumbled across pre c++14 code

* Removed use of boost::make_unique<> (updated to C++14)

Co-authored-by: turleypol <turley@polserver.com>
2020-08-05 20:28:07 +02:00
AsY!um-
673d991d8a Added two new members to polcore()
- polcore().last_character_serial returns last character serial assigned by core
- polcore().last_item_serial returns last item serial assigned by core.
2020-08-04 14:14:01 +02:00
Kevin Eady
c10e724ea1 Ensure textentry_uoemod is not overwritten
Fixes: #163
2020-07-28 19:08:14 +02:00
Kevin Eady
12d6186d10
Script option enhancements (#118)
* Fix SCRIPTOPT_CAN_ACCESS_OFFLINE_MOBILES

* Add SCRIPTOPT_SURVIVE_ATTACHED_DISCONNECT

* wip beginning work on templatization

* Use PolModule in pol-specific modules

* wip, creating PolModule with getXYZParam

* wip 1, moving getXYZ to UOExecutor

* compilable with PolObjectImp / PolApplicObj

* add type guard

* wip, change signatures

change signatures of script_method, script_method_id, and
custom_script_method

* compilable (windows)

* linux fixes

* namespace fixes

* remove uoexhelp

* formatting

* compilable

- move can_access_offline_mobiles back to uoexec
- add guildscrobj and partyscrobj sources
- move EGuildRefObjImp and EPartyRefObjImp
- wip, implement asUOExec
- formatting uoexec.cpp,.h

* finish uoexec() helper

* some cleanup
2020-02-08 09:21:35 +01:00
turleypol
20b2e0475e
Merge pull request #109 from polserver/hotfix/Custom_House_Restore_Commit
Several custom house fixes
2019-12-28 18:30:37 +01:00
turleypol
98db5aa846 CloseCustomHouse hook gets called when client disconnects 2019-12-28 13:55:25 +01:00
turleypol
1c8aae80d4 missed one stop after changing method to be non static 2019-12-22 14:32:09 +01:00
turleypol
0e339f3ca0 fixed bug with wrong gump response length check (pkt 0xB1) introduced with unicode support 2019-12-15 14:34:19 +01:00
Kevin Eady
5c0fb7c4ea First support for .em-parsed module function tbls
- Create module parser custom target
- Include generated tables in .cpp sources
- Standardize module function names based off .em names
2019-10-17 22:37:26 +02:00
turleypol
ef5e4021eb i think its not correct to terminate gump strings with null. 2019-09-01 22:27:20 +02:00
turleypol
0859c84eac guessing tooltips and gump packets
use newer ninja for travis
2019-08-17 17:26:55 +02:00
Kevin Eady
c002cdd5c3 Remove osmodule includes 2019-03-15 00:58:55 +01:00
Kevin Eady
44f2ebbe90 Refactor to make os_module private in UOExecutor 2019-03-11 21:37:51 +01:00
Admin-Yukiko
4a1c08b6da Change HideWarningGump and HideWarningItem to ShowWarningGump and ShowWarningItem. (#85)
* Changed: pol.cfg settings HideWarningGump and HideWarningItem to ShowWarningGump and ShowWarningItem. This positive logic is consistent with all other console output settings.
Default is zero (0). The output will not be displayed unless set to one (1).

* Set default behaviour for ShowWarningGump and ShowWarningItem to display warnings (1).

* Added ShowWarningGump and ShowWarningItem settings to pol.cfg.example.
2019-03-09 11:40:31 +01:00
Adriano Nogueira
ca04166dd1 Hide warning gump and item drop. Added HideWarningGump and HideWarningItem into pol.cfg. Default value 0. 2019-02-18 16:52:29 -03:00
Fernando Rozenblit
189e73f335 ugly fix... 2019-02-07 18:00:26 +01:00
Fernando Rozenblit
978fca5029 Removed undefined behavior when shifting left a signed char 2019-02-07 17:53:49 +01:00
Kevin Eady
76b80f104c Cast the sellprice to uint64 2019-01-17 20:15:35 +01:00
Kevin Eady
2de0e812ac Change to uint64 for temporary results 2019-01-17 19:49:39 +01:00
Kevin Eady
964d3e5340 Handle overflow from vendor purchases 2019-01-17 11:51:42 +01: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
dd7379524b PolCore().internal(6, scriptname)
logs name and memoryusage of variables for given script into
log/scriptmemory.log.
Globals, locals and all current call stacks.
scriptname has to be the relative path from root with ecl ending.
Precondition is an existing .dbg file for the given script, this will
be created by compiling the script with -x
2018-12-09 16:13:37 +01:00
turleypol
ffa0ef1360 added PolCore().internal(5)
logs memoryusage in bytes of each script instance into
log/memoryusagescripts.log
2018-12-02 22:01:55 +01:00
turleypol
4f40aa7997 removed Clib::decint and used Clib::tostring, changed Clib::hexint to
template function for all integers
2018-10-28 09:31:58 +01:00