* 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
* 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
* restructured pol testscripts
pkg based (dedicated pkgroot)
runs per pkg:
setup.ecl if exists
all scripts starting with "test"
cleanup.ecl if exists
return 1 for success everything else is an error
* Scripts can now be loaded and exported functions called
adapted testscripts to use this feature
critical script handling missing
* added support for used in critical scripts
* use weakptr instead of pid
moved keep_alive flag to uoexecutor
* Function and nethod accept now a argument list
* added docs
* missing docs
* faster shutdown time
* fixed typo
* fixed weird cornercase
* shorter test functions names, the length is limited, renamed
loadexported test script to have a dedicated testscript
* generate tiledata/multi for small boat
added generate scripts for generation..
adapted testdata set
* boat tests
* extended scripttests
scheduler will now always know about the loaded script
secured scheduler api
* cleanuo scripts for boat and npc
* shorter function for error return
fixed cleanup: npcs have gravestones, chars was one off and scripted
create of a char made it permanent logged in (until next restart),
which also means that it cannot be deleted
* bypass windows specific ecompile.cfg logic
* fix for parallel execution
* on windows its called .exe ..
* use target binary directly, so cmake can replace it with the actual path
use absolute path to testsuite
disabled temporary the copy of ecompile
* configure ecompile.cfg to add absolute path
* early sleepms calls can lead to endless waiting
* Code coverage (#260)
* play with coverage reports
* fix yml
* use 0 as default for gcov cmake var
* fixed used cov version, hopefully fixed now cmake
* demangle function names
* removed debug msg
* added a few polcore tests (basically just for coverage)
first set executor to noncritical before blocking
* added https://coveralls.io/github/polserver/polserver
* added a stackable item
added a few backpack insert tests
do coverage build only on push events not also for PR merge builds
* added storage tests..
docs need fixes, the Imps are not working at all
* fixed storage test to really move items
* added a house
corrected static/dynamic flag
created a few house tests
* updated yml file to new github api
* corrected coverage discord job name
* always put to runlist even if not necessary
* extended aos prop tests
* equip/unequip aos mod
* extra ci step for shard test fixtures and activated verbose shard test
* use extra ci step for all build configs, sorted testscripts for
execution
* fixed sorting
* added param to syslog to not print the context (cleaner testscript
visualization)
* added build targets for tests
* sleep api cleanup
* more aos property tests
* build for coveralls also on pullrequest
* readded debug state reset on schedule
* updated checkout ci action
* updated checkout in all ci runs
* Build on OSX
* Add macos-latest to build matrix
* Fix case sensitivity checks/tests
* On osx builds, cope with unpacking a double that might be followed by either an exponent or an error (as part of an array).
Also, remove static unpack(const char*) forms that were never called.
Co-authored-by: turleypol <turley@polserver.com>
find VS installation with vswhere (local if no 2017 is installed)
dont build and link against debug version of curl
automatically insert git revision if git is in path
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
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!
changed client class from ref_counted to also hold like the uoexecutor a weakptr, use it in the ClientObjImp.
Renamed NPCRef to NpcRef like its been told since years in a TODO comment
fixed some warnings from VS2015
- obj.isLesserThan() and obj.ieEqual() are now replaced by < and ==
- Removed obsolete isLT(), isLE(), isGT(), isGE()
- Also implemented comparison operators for BObjectImp
- These operators may now be fully overriden in child classes
- Default implementations are derived from == and < operators
- As a general rule (that fit into "undefined" behavior":
-- Objects are == if having the same address
-- Objects are < based on their type ID, except of Error and Uninit
that always are < everything else.
-- Objects are supposed to implement their own < and fall back to
base class. If not implemented, as a last fallback, the object's
address in memory is used to do the comparison
- Added test case for comparison operators
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.
Adding "inline" to the unused template functions removes the warning
about the function not being used (C4505).
Fixed a warning in ExceptionParser.cpp about GetTID() not being used by
not defining it in the first place for WIN32.
Added: pol/sqlscrobj.cpp pol/sqlscrobj.h
Changed: pol/module/sqlmod.cpp pol/module/sqlmod.h
Add preliminary MySQL database support.
New eScript objects: BSQLConnection, BSQLResultSet, BSQLRow
Added several new sql module functions:
mysql_connect(host,username,password);
mysql_query(connection,query);
mysql_fetch_row(result);
mysql_affected_rows(result);
mysql_num_fields(result);
mysql_num_rows(result);
mysql_select_db(connection,database);
mysql_field_name(result,column_index);
mysql_free_result(result);
mysql_close(connection);
In order to build with MySQL support, define the HAVE_MYSQL preprocessor directive in your build configuration.
You must have the MySQL headers and libraries installed.
Only really tested with dynamically linking mysql libraries on Linux.
Added: pol/network/auxclient.h
Changed: pol/network/auxclient.cpp pol/module/osmod.cpp pol/module/osmod.h clib/socketsvc.cpp clib/socketsvc.h
Moved AuxClient-related classes to its own header file (shared between auxclient.cpp and osmod.cpp)
Implemented os::OpenConnection() to create outgoing TCP/IP connections.
Changed: runecl/runecl.cpp
Added the sql module to runecl to allow quick testing
Changed: pol/uoscrobj.cpp pol/mobile/charactr.cpp pol/mobile/character.h bscript/parser.cpp bscript/objmembers.h
Added read/write property "mountedsteps" for mobiles. Represents number of steps taken while character was mounted.
Changed: bscript/parser.cpp
Declaring an array only using "{}" will show a compiler warning; please explicitly state 'array', 'struct', or 'dictionary'
Changed: pol/pol.cpp
If using Linux, remove pol.pid on shutdown of pol.
Changed: pol/uoexec.h pol/scrsched.cpp
Added script option "AUXSVC_ASSUME_STRING" which will allow aux service connections to send and receive non-packed strings.
Changed: ecompile/ecompile.cpp
If using Linux, a slash ("/") cannot be used to define ecompile options to allow support for absolute filenames.
Changed: bscript/object.cpp bscript/bobject.h
Implemented array operation MultiSubscript. Will return a splice of an array, eg:
array{"a","b","c","d","e"}[2,4] will return array{"b","c","d"}
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