From the CMake documentation of the FILE command:
"We do not recommend using GLOB to collect a list of source files from your
source tree. If no CMakeLists.txt file changes when a source is added or
removed then the generated build system cannot know when to ask CMake to
regenerate."
(based on commit [12390] - f123635)
Signed-off-by: DasBlub <DasBlub@gmail.com>
Note: override is new keyword in C++11 but VC++ already have override keyword with same behaviour long time.
GCC support explicit overrides starting at 4.7. Added workaround for GCC versions < 4.7.
Note: PostgreSQL does not have prepared statements implemented using native APIs.
Huge thanks to Undergarun, kero99 and Vinolentus.
Signed-off-by: Ambal <pogrebniak@gala.net>
In new version last update time stopred for specific Cell that store all world objects
placed in it. All objects of Cell updated (or not updated) in same time.
Original version provided by ciphercom.
ASSERT hard use in predictable way because diff. 3rd party libs code
redefine it inf different ways and hard make sure that used in end
of mangos define version. This is real detected problem make some
expected assert checks ignored and so bugs not detected as expected from code.
In addition made related changes:
* Common.h header expected to be first include in any src/game/header except most simple cases.
* Related FILE.h header expected to be first include in FILE.cpp
* Fixed some absent includes and type forwards for safe build without PCH enabled.
* Avoid using MANGOS_ASSERT in src/framework code
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Also added compatibility code for old Visual Studio versions
for non standard way hash calculation for hash_set.
Thanks to Lynx3D for help in Unix side testing.
Unix specific notes:
* Use --with-std-malloc in configure to disable tbb, if you have problems or you want to use the default or another allocator.
* Even if you disable tbb, the library will still be built and installed, so you can still use it manually.
* Removed last bits of threading in grid code.
* Removed some weird and unneeded declarations.
* General code style fixes.
* (Perhaps some things I forgot.)
Thanks to Lynx3d for the usual GCC-stabbing...
* This allow have more portable code and resolve some related portability problems.
* Also make default script library name lowcase at Windows in same way as used for Unix case.
Thanks to XTZGZoReX for Unix side testing :)
You should add two libraries into your server binaries:
tbb.so/tbbmalloc.so on *nix and tbb(_debug).dll/tbbmalloc(_debug).dll on Windows!!!
Define USE_STANDARD_MALLOC while compiling 'framework' project to use OS' default memory allocator!
Signed-off-by: Ambal <pogrebniak@gala.net>
This patch implements storing guid->object pairs on per map level, this leads
to less locking in ObjectAccessor in case of further multithreaded map update.
For case of cross map guid looking (auras cases) all maps are linked into
ObjectAccessor and can be traversed for this lookup.
Signed-off-by: ApoC <apoc@nymfe.net>
Active objects triggrering grid loading and updating around self like players.
It can be used for event long run movements or escoring quest travels.
Also can be used for proper implementation far vision spells.
Currently only creatures can be activated by function call (from script) cr->SetActiveObjectState(true);
Please avoid lot amount active objects in same time use. Existance active objects support isn't meaning
that each rabbit must be active creature.
Also added independent grid unloading locks for explicit unloading lock,
lock for used by instance copied grids, lock counter for actiove object spawn grids locks.
Last case required for prevent double spawn active creature walk far away from spawn point.
1) comparison singed and unsigned values
2) redundent includes
3) wrong constructor :-part field initilization
4) unused not-/*name*/-guarded args in template/virtual functions that not required like args.
5) explicitly list not implemented achievement types.
Also bugs fixed:
1) Drop wrong phase mask 0 check in WorldObject::InSamePhase.
2) ArenaTeamMember::ModifyPersonalRating incorrect work with move points in negative with infinity values in result.
3) ArenaTeam::SaveToDB code send uint64 value to string with arg format %u.