* Broken since 9cc97f226d
* There is still a crash when using lazy unloading which I
will fix in a later commit (this commit should fix at least
the static build and normal usage of the dynamic build).
* Closes#16948
* For easier usage, the processes output it routed
correctly to the TC logger line by line now.
* Add support for asynchronous process execution
and process termination.
* Finally this commit enables dynamic script hotswapping
and finished the PR #15671.
* Split the storage layout to use optimized storages
for database bound and unbound scripts.
* Add several unload workers to reload scripts correctly
-> Requires further investigation.
* Fixes memory leaks in ScriptMgr when dropping invalid scripts.
* Fixes VehicleScripts
* Makes OutdoorPvP scripts reloadable
* Makes InstanceMapScripts reloadable
* Makes CommandScripts reloadable
* Uses system API's which reduces the overhead
instead of checking periodically for changes.
* Will be used in the hotswap system to reload
shared libraries on changes.
* benefits from empty optimization (objects are only constructed if needed).
* supports r-value references (move semantics) (boost >= 1.56.0).
* preparation for c++14/17's std::optional and std::none_t.
* add move constructor to CompactArray.
(cherry picked from commit 800d5d893964a82265577d3352d683035b589f78)
* Prevents double deletion of MySQLConnection after errors
* The object stays valid after an error and will wait for a reconnect
* Also crash the server if 5 reconnects fail
* Corrects an issue where the server was crashed after one reconnect
because mysql_thread_id was invoked with an invalid handle
* Corrects dirty usage of vectors with array indexes
* Removes _connectionCount which is now handled through the vector size
* Rename magic identifier "t" to "connection"
* A PCH is still generated for every target which was passed to the macro
* Resolves naming conflicts when using the same PCH header from multiple projects
* Ref #15671
* Each subdirectory contains it's own translation unit now
which is responsible for loading it's directory
* Improves merging & decoupling between 3.3.5 <-> 6.x
* Removes unused Battleground loader
* Ref #15671
(cherry picked from commit 5534915f743c707c07cb977bca67c2ff15487597)
* Adds CMAKE_COMMAND and CMAKE_BINARY_DIR to revision_data.h
* Move the source and mysql exe path handling out of the DBUpdater.
* Make some Config methods const for correctness.
* Remove C & CXX flags from revision_data.h
(was unused and didn't capture all cxx vars)
* Reorder the link order to prevent `ld` from ignoring the file
* Ref #15671
(cherry picked from commit 719159e2074ac2d0902c70bdd3c7a39e0d311bbe)
* Seems like this feature is stable enough to enable it by default
since the last missing bugs were fixed some months ago.
* The database updater is the preferred method to update the databases
as described in the wiki: http://collab.kpsn.org/display/tc/Databases+Installation
(cherry picked from commit 25185967e8df949e0f13ec0a7ff45b14ba977c76)
* Setting all compiler flags in the cache led to circular bloating of
msvc cxx parameters (was visible in console) which caused MSVC to
rebuild the whole solution even on a small CMake change.
It's not neccessary anyway to set the cxx parameters to the cache
to take effect.
* I'm not sure if the workarround is still needed for MSVC 12+.
* Cleaning the CMake cache is recommended!
* ref #15671
(cherry picked from commit 0946fcf2aa35ebe0b8db07813315e3d6546b9d31)
* was caused through invoking "FindMySQL" after using ${MYSQL_EXECUTABLE}.
* better re-run CMake if you are affected by the mysql exe wasn't found issue.
* makes it possible to write:
```c++
events.ScheduleEvent(1, Seconds(10));
// ... or ...
events.ScheduleEvent(2, Minutes(1) + Seconds(20));
// ... or with C++14 support:
events.ScheduleEvent(2, 45s);
```
(cherry picked from commit e4e55a3dcbd846fd583b4fc86344d88ca63588d7)
* See https://gist.github.com/Naios/25810829e66b7ddd8b82 for the full procedure & sources.
* Most names were taken from commits (3.3.5 & 6.x branch)
* Also contributors who were mentioned in commits were included (@, thx, thanks, Author:, author:)
(cherry picked from commit 5b64df1a26d8b521282ffa41a17ad49a2e99558c)
* Use std::function as callback (methods, lamdas & std::bind).
* Uses std::chrono::duration as duration type (Milliseconds, Seconds...)
- With c++11 user defined literals we could just write "11s" for example (MSVS 2015, gcc & clang).
* Provides a lot of overloads for easier usage:
- Static durations or random durations between min and max.
- Named (with group ids - group id 0 is possible) or anonymous tasks.
- Asynchronous tasks.
* Is adapted to the current needs of scripting:
- Repeat tasks through the TaskContext
- Schedule new tasks from the context.
- Provides access to the times repeat counter of a task,
this will help to schedule multi step events (dialogs for example).
See https://gist.github.com/Naios/6d143538abdc3d32fd2b for usage examples.
* It let ide's (like vs) display the source tree.
* Disabled by default.
* Soft requirement is cmake >= 2.8.12 .
* Offers 2 modes: flat & hierarchical.
* For detailed description see #14471
* Thanks @click for help and advises.
* Closes#14471
* Also use proper errno instead of 0 when reconnecting.
* Thanks @et65 for reporting
* ref #14139
(cherry picked from commit 47410157b1d1e51062732696ad5f457a69019ef4)
* this also fixes non whitespace seperated timestamps in logs after 95ebe4f31cba6b4772cfd19 @Aokromes
* remove an unnecessary stringstream in Log::outCommand
* delete copy constructor of LogMessage to prevent unwanted copies
(cherry picked from commit a2e280c8a8478bbe0652c1850b1a435abba79f93)
* This will save you from loosing your update history if you use a repository in bad state (revision or branch) by mistake.
* Also turned 1 error message into a warning
(cherry picked from commit 966282fbed24a0d0cf8cb3e05b1849c3e6a0d1d6)
(cherry picked from commit 3ad7776d5061308d3e2b4ff9e3cbf67d48bffdd6)
* Thanks @Shauren for pointing out.
* Also removes an invalid argument thanks @jackpoz for noticing.
(cherry picked from commit 8e48ef7863c5018aa185913ce6a616e46ef5b17e)
Make sure you re-run cmake, because boost::iostreams was added as dependency.
Maybe you need to install libboost-iostreams1.55-dev on unix as well.
Import every update manual until (included) those INSERT IGNORE updates for each database.
Thanks DDuarte and Shauren for your amazing ideas, help and advises.
In hope that nobody gets a "Your database structure is not up to date..." anymore ,-)
(cherry picked from commit 352012e53173372ebc82898e1b6854c983b01b25)
(cherry picked from commit 1f7f9feafc3f5017d617634ae993d2cdf4430920)
For 3.3.5:
* Synchronized ConfigureBoost.cmake with 6.x, libboost-filesystem1.55-dev also added as dependency!
Signed-off-by: Naios <naios-dev@live.de>
Signed-off-by: Nayd <dnpd.dd@gmail.com>
* Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
-> This argument is passed by value, it makes no sence so set it to null here.
* Member variable 'instance_violet_hold_InstanceMapScript::bWiped' is not initialized in the constructor.
(cherry picked from commit 433bc289c2c82b7377ad0189e415a3ca070d220f)
* Possible inefficient checking for 'list' emptiness.
* Variable '_scheduledScripts' is assigned in constructor body.
Consider performing initialization in initialization list.
* Variable 'Text' is assigned in constructor body.
Consider performing initialization in initialization list.
* Possible inefficient checking for 'm_loadedScripts' emptiness.
(cherry picked from commit 9a61049f88835fd6bdb75905f042583d038d0667)
Conflicts:
src/server/game/Server/Packets/TicketPackets.cpp
* Either inefficient or wrong usage of string::find(). string::compare() will
be faster if string::find's result is compared with 0, because it will not scan the whole string.
If your intention is to check that there are no findings in the string,
you should compare with std::string::npos.
* C-style pointer casting detected. C++ offers four different kinds of casts as replacements:
static_cast, const_cast, dynamic_cast and reinterpret_cast.
(cherry picked from commit 8882a6ca78e90d2980a3cd8d53acea9d2137f8b8)