Note: spell 62105 are still considered to be negative, despite explicit exception added in IsPositiveEffect and will unexpectedly put caster in combat.
Signed-off-by: NoFantasy <nofantasy@nf.no>
* Some spells have StackAmount > 255, for example 22735, 54314
* In SMSG_AURA_UPDATE maximum stack amount is limited by 255
* Move duplicate code into SpellAuraHolder::BuildUpdatePacket function
* Cleanup some weird type casts in _LoadAuras
* CreatureCreatePos work in 3 modes:
- exactly provided coordinates/orientation/map/phasemask
- exactly object + orientation as coordinates/map/phasemask
- delayed position calculation near provided object at specific dist/angle.
* Use in similar way and for Pet/Vehicle Create functions.
For Totem created new Totem::Create function with some moved in to it totem specific code.
* This let resolve recent problems with creature spawn and preserve fix for cases when
Creature::Create addon/script code expected known correct possition for creature.
Some called from Create code can req. proper pos setup for creature.
Bad side: But in way how currently code orginized impossible setup excetly position for most
Creature sublasses. So in this part need more work.
Only work different from old way: target creature despawned.
So if this not expected use .respawn to it in gm mode or area respawn.
Code simplification suggested originally by rsa.
* Creature/GameObject guid generators moved to Map
* For avoid wrong not converted cases generic function in ObjectMgr has been replaced by
specilized guid generation function like sObjectMgr.GeneratePlayerLowGuid().
This let catch all cases that need update in custom code or scripts.
* Drop many ObjectAcessor.h now dead code. This is also make mangos more thread safe.
* Restore one more time unix build broken in prev. commits.
Note: many cases when something not wotk in instance but work in continents
possible magicly start work after this commit. For example, some gm commands.
From large systems that need more chnages for start work in full power in instances
can be referecned pool/gamevent system. Last need just small hacks drop changes but
in will addded in independent commit.
* Move code to dummy aura (main spell mount aura not applied yet in time scripting effect processing)
* Use special mount spell selection helper instead raw code.
Not using a hard coded radius, instead summon at location where radius is 0 (or the actual radius).
Does only affect spells without TARGET_FLAG_DEST_LOCATION set (and the majority of those spells with implicit target 18)
Signed-off-by: NoFantasy <nofantasy@nf.no>
Note: spell animation (the fun part of the spells) does not play as it should, so this implementation should be revised at some point to correct that problem.
Signed-off-by: NoFantasy <nofantasy@nf.no>