* 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
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
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...
made the sql module at least a bit more scriptfriendly: its now save to pass sql objects as parameters, result objects get automatically freed. Thus also removed the mysql_free_result function.
mysql_close is also now senseless, but kept for the guys who want to close the connection direct.
All I could do in half an hour sorry..
Never ever pass a C API directly into a scripting language!
And now the complete class: "Never ever ..."
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"}