Commit graph

43 commits

Author SHA1 Message Date
turleypol
24c8c8b92f
Tidy modernize for loops (#862)
* trigger loop convert

* Automated clang-tidy change: modernize-loop-convert

* fixed refactor

* Automated clang-tidy change: modernize-loop-convert

* compile

* first look through

* fixes and start to use a few ranges

* revert autogenerated file

* compilation fix

* second pass

* renamed loop variable

---------

Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>
2026-01-31 09:14:02 +01:00
turleypol
da2943acb8
Tidy copy initialization (#859)
* trigger tidy

* copy&move BApplicPtr obj
always commit tidy changes

* move PolObject

* fix house add_component

* Automated clang-tidy change: performance-unnecessary-copy-initialization,performance-unnecessary-value-param

* Revert "Automated clang-tidy change: performance-unnecessary-copy-initialization,performance-unnecessary-value-param"

This reverts commit bb6aab13dbdfa4aaf420cdaafaf22940f241fc5b.

* performance-unnecessary-value-param gives some weird suggestions

* Automated clang-tidy change: performance-unnecessary-copy-initialization

* minor performance improvements

* added used tidy check

* missing dependency

* renamed build so its no longer requires?

* better add docs for the sneaky fix

* silence pr check, not all headers can be compiled seperatly

---------

Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>
2026-01-19 08:17:28 +01:00
turleypol
bce1154d7a
ClangTidy readability-else-after-return (#857)
* trigger tidy

* Automated clang-tidy change: readability-else-after-return

* compile test

* rerun

* Automated clang-tidy change: readability-else-after-return

* trigger..

* Automated clang-tidy change: readability-else-after-return

* manually removed a few

* Automated clang-tidy change: readability-else-after-return

* removed duplicate code

* fix remaining warnings

* fixed scope

---------

Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>
2026-01-18 09:35:52 +01:00
turleypol
21577d8e5b
Clang Tidy concat namespaces (#855)
* tidy

* Automated clang-tidy change: modernize-concat-nested-namespaces

* compile test

* fix namespace

---------

Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>
2026-01-17 10:30:21 +01:00
turleypol
d7ec86bad6
Datafile save fixes (#768)
* create datafile directory if it does not exists during worldsave, before
writing the likely empty file

* check existing of datafiles during startup.
added test for just creating a datafile without adding content

* breaking changes added
2025-02-20 22:14:31 +01:00
turleypol
0fdd03316b
Worldsave further improvements (#758)
* directly use the capi for file writing
could improve performance

* docs

* file i/o error checking also during writing
2025-02-06 20:41:12 +01:00
turleypol
8e9a044776
WorldSave performance (#753)
* 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
2025-01-29 06:48:05 +01:00
turleypol
c046da4d5a
Moved target/menu members from char to ClientGameData, simplified memory size estimation (#668)
* moved more members from Character to ClientGameData
reordered a few members to reduce padding
added memsize functions for std containers to simplify code

* few more comments
2024-07-28 10:42:47 +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
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
7e8f92bc85 rewrote module function generation, maybe this works 2019-11-10 22:04:08 +01:00
Kevin Eady
ca850a0c76 project refactoring 2019-10-18 21:32:30 +02: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
Kevin Eady
b55e852a5b wip 1 2019-10-17 19:08:49 +02:00
esdete
dc2d29b433 NULL to nullptr 2018-07-31 14:30:29 +02:00
Gabriele Tozzi
b72f725e02 Whitespace fixes 2018-04-03 04:13:03 +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
Fernando Rozenblit
eb34290222 Cleanup for modules' function tables 2017-01-24 21:57:16 +01:00
turley
f9c3db9e41 Modules share the same (helper) template base class
Optimize function name search for all modules not only uo by using an additional map, replaced c array with vector for functionsdef.
Simplified pragma pack order. (MSVC version is supported in all
compilers)
Removed compilerassert.h (asserteql,..) replaced with static_assert
Removed some old #ifs
2016-12-20 23:53:32 +01:00
turley
4d9aa75f3b Corrected definition order in module defs 2016-12-14 21:50:23 +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
53c2ba78c6 Added: CProp profiler, helps detecting unused CProps
It can be enabled by using the new pol.cfg option "ProfileCProps".
For better results, should be enabled before startup.
Impacts on performance very slightly, but consumes an average of
300 bytes of extra RAM for every CProp used.
New polsys.em function LogCPropProfile() can be called to dump
the profiling information into cpprofile.log.
2016-01-31 15:06:56 +01:00
Gabriele Tozzi
d1ac902926 Documentation: reformatted headers for DoxyGen 2016-01-28 14:52:40 +01:00
Gabriele Tozzi
45959b92d2 Small memory improvement: BObjectImp.type_ is now u8 instead of int
It is very unlikely to grow to more than 256 elements any time soon.
This should save 3 bytes for every single object that derived from it.
Also added explicit int conversions and a not, for better robustness.
2015-12-29 03:21:02 +01:00
turley
7a531357fe Updated Memoryusage profiler 2015-01-19 18:18:21 +01:00
turley
8381032e7e moved datastore into globals. 2014-12-31 13:18:08 +01:00
turley
2737393f2a Tried to put all global vars into centralized structures.
Currently plib/systemstate, pol/uvars, pol/ucfg, pol/multi/multidef

Next step should be to split them based on usage, since its currently a bit of include hell...
2014-12-30 14:14:41 +01:00
turley
90f162924d Added override keyword to virtual functions 2014-11-23 15:07:02 +01:00
turley
c6d8225148 Fixed some warnings 2014-11-15 09:19:31 +01:00
frozenblit
a704a90208 Another round of stl_inc.h cleanups 2014-11-01 22:27:42 +01:00
turley
e0b722a93b fixed several uninitialized variables 2014-08-30 12:25:08 +02:00
turley
05c5b2d60b removed old code
testing a threadpool 
added chr.last_textcolor member which returns the clientside chatcolor
2014-06-01 09:59:12 +00:00
turley
31ee263a45 activated new logging facility 2014-01-18 13:29:38 +00:00
turley
99d7dc3037 namespaces...finally :)
Hard part is finished every file is touched. Namespaces are currently rough named by directory name.
Maybe we could split it more
2013-12-21 09:10:46 +00:00
turley
7085a8470f new StreamSaver class used for saving 2013-10-06 14:45:10 +00:00
turley
4c7f70fc79 first version of a generic message_queue (currently not lockfree, need to test more)
replaced old auto_ptr with unique_ptr
2013-09-13 18:07:19 +00:00
turley
53f03c3413 removed some unsused files
shrinked release build
2012-08-28 06:40:06 +00:00
turley
d32cec7d6c Added: basic::TypeOfInt( expr ) + basic.em constants
returns like TypeOf() the type of given parameter, but returns instead of a string an integer (see basic.em constants)
since integer comparison are way faster then string comparison this function should always be used for comparisons
2011-03-12 10:51:10 +00:00
frozenblit
eb61009c6e Fixed some possibilities of leaking if an exception was thrown and a few other warnings (all the rest, code analysis) 2010-07-10 20:02:50 +00:00
turley
e10cd27cea sync: shini - long to int (prerequisit for 64-bit) 2010-03-29 14:52:03 +00:00
turley
8ad4da6ac5 Fixed: call of built-in method with ._methodname if overridden
Added: Multis now support method script
2009-12-21 13:52:18 +00:00
muaddib_pol
c301d80817 + code organizational updates in the modules
+ Updated to-do and post-build
+ Renamed the mkdist7 and .vc7 since works on vc9 too just fine.
2009-09-06 21:42:46 +00:00
muaddib_pol
49072c3c41 + To-Do file updates
+ Beginning of Mobile and Module source file organization
+ Makefile.Gcc updates
2009-09-06 14:11:24 +00:00
Renamed from pol-core/pol/datastore.cpp (Browse further)