This meaning that ObjectGuid only proper way create guid from lowguid now.
But packet handlers still generate uint64 guids. Some DB fields also loaded uint64 values.
Also possible existed not catches et uint32->uint64 assigns.
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.
Also
* Fixed some amount wrong uses low guids as full player guids.
* Add private without body ObjectGuid(uint32 const&) for catch wrong assigns low guids to ObjectGuid.
In some cases need assign "0" guid, then use ObjectGuid() instead.
* Fixed .pdump commands work.
* If player tap creature in group and leave then group will have access to creature loot if not disbanded
* If player tap creature and after join to group then creature loot will accesable only by player
* Also RewardPlayerAndGroupAtKill divided to simgle player and group reward versions used for group tap
and single player tap cases.
This is resolve "none from players see each other" problem.
Please, reapply non-0 player guid only with or after this problem resolve.
Some ObjectGuid use cleanups added while reseach porblem source.
* This is let finally hide guid structure in ObjectGuid.h/.cpp code.
* Shared related code.
NOTE: while switch to use new clasess one more problem has been detected
with not-safe code in .pdump work for future per-map multi-threading.
It's need rewrited before will possible safe use in like case.
For current single world thread case it's safe.
Only one example (mostly) case converted to use it.
Need lot work for finally switch to class obly use, so old low-level defines still exist also (while used).
But some unused low-level defines dropped.