No reason have implicit wrong uses catch version when main version
of constrictor have `explicit`. This also avoid unexpected selection
catch-version with less readable error output at implicit uses.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Now safe allow this casts in like way after completed convertion to ObjectGuid use.
Also simplify code in result allowed auto cast to uint64.
Please _not_ add new uint64 storages (local and in structures) for guid values.
* Now no correct way access to internal structure of guid in uint64 form.
For this always must be used ObjectGuid form.
* Guids in uint64 form still used in some cases (many) but it uses as-is
Main source of uint64 guids is non-converted opcode handlers.
* Also ofc, possible cases wrong created uint64 guids by assign uint32 to uint64.
For catch all cases need finish convertion to ObjectGuid all non-converted yet code.
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.