* No unsummon temporary pet at non-fly mounting.
* Implement client side disable pet's action bar for mountted owner time
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* implement server side action disabled case (action bar modify, aggro reaction and autocast)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Also prevent command/action drop from action bar
* Pet action bar will recetn at this revision use single time for all pets.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Avoid use hardcoded and different max distance from owner for pet (more at contienets and less in instances)
Use instaed max visibility for map as expected.
* Explicitly pet remove at move pet to non-visible distance for player owner.
Original patch provided by Lightguard.
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>
* Allow add to DB data only for first rank in table `mangos_spell_bonus_data` and `mangos_spell_proc_event`.
* Copy data for other ranks for speedup use at loading for this data and data from `spell_proc_item_enchant`.
Also some code logic cleanups.
Changes let make more cleanups in base map access and other places,
but this chnages not inlcuded in patch.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Speedup of summoning pets (no need to seach owner by guid)
* Fixed problem that summond pets from NPC had not initialized stats
(pet was not in world in time of stat init thus owner was not found)
Signed-off-by: ApoC <apoc@nymfe.net>
* Call it from Map::AddObjectToRemoveList and remove now not needed explcit calls
* Create Gameobject version to make GO with owner more safe for remove
* Propertly work with uint32 spell ids in player action bar
* Fix in same time bug with not save equipment set button with id==0
* Merge misc field in character_action and playercreateinfo_action to action field as 3 byte
* Propertly load uint32 spell ids from character_spell
* Fixed types for some pet/creature related structure for spell id storing.
Note: before this commit hunters can tame exotic pets like any other.
After patch like not propertly contriolled pets will auto-dismiss at loading
if talent not learned.
* Revert partly "[7903] Load and save for pets only talents."
* Avoid use enum with bit size limit field (with unexpected work in cases use values negative for related biz size int type)
* Replace platform seelction MaNGOS code for select format descriptor for uint64 by using ACE define.
I64FMTD renamed to UI64FMTD for more clear name.
* Add new define UI64LIT (base at ACE seelction) for build portables uint64 literals.
Please always use UI64LIT(0x00001) instead less portable 0x00001LL
* Other pet spell types auto-learned at level setup/load.
* Code will cleanup pet_spell table from non-talents spell if detect any at load.
* Free talents points recalculated at loading and levelup so store its in DB useless.
Note: bug with not highlighting learned pet talents (except first line) until learn one more talent not fixed.
* Correctly update action bar at loading and other cases when listed unlearned/not existed spells
* Avoid send data by PetSpellInitialize() many times while pet loading
This is first commit in chain for remove oudated and not used pet functionality.
* Use instead dropped table CreatureSpellData.dbc if creature_template.PetSpellDataId set (mostly hunter pets)
* Use creature_template.spellN if not set creature_template.PetSpellDataId (mostly different summon creatures)
* Fixed bug with not removing from action bar spell icon for not ranked unlearned spells.
Note: summoned controllable creatures without PetSpellDataId must have expected spells in spellN feilds for creature_template.
* Fixed not updating levelup spells at warlock pet summon firsy time (overwriting by default original ranks in fact)
* Correctly upgrade/doungrade spell ranks in action bar.
* Fixed spell learning spam at warlock pet re-summon in some cases.
TODO: currently (before this commit and in it) PetSpellInitialize() called too oftern. Maybe possible cache update flag and do it one time somewhere in Pet::Update....
* Use less hacky way to prepare data in SpellMgr::LoadPetLevelupSpellMap.
* Fill data for all pet families including not hunter pets.
* Fixed bug with lost/unexpected learned spells for some hunter pet families.
Use less hackky way for