Commit graph

62 commits

Author SHA1 Message Date
PSZ
06a4b1af5c [11617] Make class Pet available from external libraries 2011-06-06 18:31:33 +04:00
zergtmn
f45e9ad680 [11588] Use override specifier on Update() methods
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.
2011-06-02 23:28:24 +06:00
VladimirMangos
6f8aa617d0 [11354] Resolve porblems with Pet regeneration timer conflict with Creature version.
* Creature regeneration code moved to new virtual function RegenerateAll
* Pet instead direct call own regeneration code overwrite now RegenerateAll

Big thanks to Vladskywolf for problem research and original patch version.
2011-04-15 02:15:29 +04:00
VladimirMangos
ba77d85a30 [11323] Avoid explicit use HIGHGUID_UNIT as creature high guid in guids or creature creating.
This helper change for allow have in future static spawned vehicles as `creature` table data.

Added CreatureInfo::GetHighGuid() high guid selector, and wrapper CreatureData::GetHighGuid()
for most real cases of usage. Also easy get expected guid form by CreatureData::GetObjectGuid(lowguid).

Also fixed some memory lost cases at creature spawn fail.
2011-04-07 21:15:27 +04:00
Vinolentus
06d319e5f8 [11256] Restore broken in [7207] Creature::SaveToDB overwriting.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-03-16 03:26:49 +03:00
VladimirMangos
2b65cdb3bb [11244] Collect in CreatureCreatePos data for delayed pos setup into Creature::Create.
* 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.
2011-03-14 06:18:34 +03:00
Ambal
7ef75985b9 [11055] Save pet related data in one single transaction. Also merge Pet::DeleteFromDB() queries into one single transaction request.
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-01-21 00:07:05 +02:00
VladimirMangos
324c8c4cd2 [10985] More safe for use PET_FOLLOW_ANGLE define. 2011-01-08 05:48:00 +03:00
VladimirMangos
bf0ecf6e71 [10947] Update copyright notice for 2011 year. 2011-01-01 20:33:43 +03:00
Ambal
b11820593c [10924] Send time diff between Update() calls for object - should help with mob respawn on inactive grids etc. Based on patches by VladimirMangos and cipherCOM. All issues from previous patches should be finally fixed now.
Signed-off-by: Ambal <pogrebniak@gala.net>
2010-12-27 22:27:20 +02:00
VladimirMangos
f9bcfa3a89 [10739] Cleanup pet remove code and some fixes.
* Merge Player::RemovePet and Pet::Remove function code to Pet::Unsummon
  This let be sure that in all cases all required steps doen. For example this fix
  creature's guardians propertly remove from guardians list.
* Add new pet save mode PET_SAVE_REAGENTS as replacement PET_SAVE_NOT_IN_SLOT+true-arg stable pair in old function args
  This will avoid use reagent save arg with wrong different save modes.
* Fixed recently added code with absent check for re-summon protector pet call.
2010-11-19 02:17:55 +03:00
VladimirMangos
1fe4b1f4bb [10737] Use empty name for non-unique named pets.
This let to client select appropriate name by self base at UNIT_CREATED_BY_SPELL data.
2010-11-18 22:58:49 +03:00
VladimirMangos
9c0076181b [10733] Implement defencive guardians pet type for creatures like 28120 2010-11-18 21:23:22 +03:00
VladimirMangos
3b0e926788 [10717] Revert "[10716][10688] New version of patch for send real diff from last update."
This reverts commit 8398a55fa274471daae115e00c627b299a3fdbbd.
This reverts commit 06e2d6859ba3d7fd47be72c23a64e68ae039701f.
2010-11-10 06:29:49 +03:00
VladimirMangos
e219ee99bb [10688] New version of patch for send real diff from last update.
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.
2010-11-06 22:59:54 +03:00
VladimirMangos
0847d4c8cd [10683] Revert "[10677] Send to creature/etc Update call real diff from last update and use it."
This reverts commit 10784a8c7cc81c468b5411e973d36ecf31de9603.

Main reason: impossibility for me as commiter test problem and fix all corner cases problems.
2010-11-05 19:54:31 +03:00
cipherCOM
555c1a9094 [10677] Send to creature/etc Update call real diff from last update and use it.
Now in case when creature/etc some tices not updates in result stay
in not active (no near players or active objects) cell some important
timers (corpse decay, summon timers, group loot expire, aura durations, etc) will
updates at real diff time from last prev. update call.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

For some systems added exclude use real diff time because current limitations
like move generators. So its stay use last tick diff and considered freeze and
skip all time while creature in not active map part.
2010-11-03 07:07:13 +03:00
DasBlub
fc5dd54f37 [10612] Revert "[10611] Made some values const"
Reason: It makes no sense to make a local variable const.

This reverts commit 49e3184d69056738701bc15d9b7f982bf11d7bbc.
2010-10-15 22:29:10 +02:00
Reve
47d971c7f9 [10611] Made some values const
Signed-off-by: DasBlub <dasblub@gmail.com>
2010-10-15 22:14:42 +02:00
DasBlub
61102e3b16 [10610] Renamed some functions from the Creature class
Also other classes have been affected, due to the use of search&replace.
This will probably break some patches and 3rd party libraries, so make sure to update them if required.
Thanks to Phille for the original idea and patch!
2010-10-14 22:07:04 +02:00
VladimirMangos
acd0716297 [10432] Rename ASSERT -> MANGOS_ASSERT and related fixes
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
2010-09-02 05:13:16 +04:00
VladimirMangos
daaeb0a998 [9653] Correctly update talent free points in diff cases.
Before at .unlearn or .learn all_mytalents commands free talent points not updated correctly.
Same for .learn all_mypettalents.
2010-04-02 03:03:01 +04:00
XTZGZoReX
51fd11c92c [9638] Replace all C assert()s with MaNGOS ASSERT() macro. 2010-03-29 19:29:42 +02:00
VladimirMangos
6487c24f29 [9545] Rename ObjectDefines.h -> ObjectGuid.h
Also move unrelated generic defines to Common.h
2010-03-07 20:05:32 +03:00
AlexDereka
696cba9c37 [9330] Fixed msvc compile warnings. 2010-02-08 16:27:35 +03:00
VladimirMangos
fe6e2e1746 [9122] Updated copyright notice for new year.
Also fix some lost in past cases.
2010-01-08 00:02:21 +03:00
Lightguard
9c98bd92e2 [9077] Fixes for pet work in case mounted owner.
* 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>
2009-12-28 16:00:55 +03:00
VladimirMangos
663038c7c7 [8870] Fix problem with max pet distance from owner.
* 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.
2009-11-24 19:10:38 +03:00
VladimirMangos
715470a898 [8126] Improvemets in player/pet/charter name checks.
* Implement new config options for minimal player/pet/charter name length (2 by default)
* Better error reporting at problems in names.
* Add check from max pet/charter name length (same as for player names at client side)
2009-07-05 20:30:33 +04:00
ApoC
aab121fcb2 [8111] Implemented support for implicit specify owner when initializing stats for summoned pets.
* 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>
2009-07-03 19:28:22 +02:00
VladimirMangos
1baec77845 [8098] Support uint32 spell ids in code.
* 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.
2009-06-30 11:25:32 +04:00
VladimirMangos
d56de2cd77 [8053] At character talents reset using chat command also reset talents for all character pets.
This applied to .reset talents and .reset all talents commands.
2009-06-21 00:29:46 +04:00
VladimirMangos
65657533ab [7941] Restore autocast pet spell state at load/resummon
* 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)
2009-06-02 11:26:55 +04:00
ApoC
661ddea7a7 [7906] Inserted newline to make gcc happy.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-05-28 23:14:07 +02:00
VladimirMangos
0614a9eb75 [7903] Load and save for pets only talents. Not store unused (in fact) free talent point amount.
* 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.
2009-05-28 03:36:28 +04:00
VladimirMangos
4d8adefe70 [7901] Refactoting pet action bar related code. Fixed some related bugs.
* 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
2009-05-27 19:43:57 +04:00
VladimirMangos
c56ef09fa3 [7887] Drop pet spell teaching code, including field in character_pet. 2009-05-24 07:20:13 +04:00
ApoC
592adcf6d4 [7843] Added newline into Pet.h end to make gcc happy.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-05-17 23:54:00 +02:00
VladimirMangos
122c9c5785 [7838] More fixes in pet's levelup spells.
* 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....
2009-05-16 17:15:45 +04:00
VladimirMangos
7a7ee86f97 [7835] Store structures (with size = uint32) insteed pointer to structure in PetSpellMap. 2009-05-15 17:22:44 +04:00
VladimirMangos
e134b5383b [7831] Prevent have hunter pet with level greater player levels at level changes. Propertly set hunter pet xp values at level update. 2009-05-15 05:33:46 +04:00
VladimirMangos
8858aacfb0 [7829] Rename 3d (x,y,.. versions of IsWithinDist/IsWithinDist functions with adding 3d explict posfix to name for avoid wrong use. 2009-05-14 21:42:32 +04:00
Astellar
55392c3417 [7794] Add DK pet type support for proper show it in client Pet tab.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-07 13:19:49 +04:00
Astellar
7355eb2f52 [7785] Allow regenerate energy for pets if this current power type.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-06 07:30:08 +04:00
VladimirMangos
263bf2ab22 [7644] Fixed pet slot values using in pet save.
Problem exist from client version switch when stable slot amount changed.
In result this has been source problems with stable use (3-4 slots) and possible pet lost in some cases
or "not save state" for summoned pets.
Use enums to avoid repeating problem, use more safe value for not-in-slot save (for summoned pets)
Fixed data preparing for MSG_LIST_STABLED_PETS.
2009-04-10 09:02:04 +04:00
VladimirMangos
2dd36d688f [7558] Implement command: .learn all_mypettalents
Also output more correct messages at use .reset talents to pet
2009-03-28 03:28:08 +03:00
VladimirMangos
aa24bd836e [7207] Phase system development continue for DB/in_game objects
* Store phase mask for creatures/gameobjects/corpse in DB
* Propertly set phase for summoned creatures/gameobjects/pets/corpses/spell related dynobjects
* Select proper phase for spawned creature/gameobjects and save it in DB

TODO: in game commands.
2009-01-31 06:11:50 +03:00
ApoC
302dc70eab [7162] Converted some uint16 spellid parameteres to uint32. It can provide little speedup.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-01-24 18:42:14 +01:00
ApoC
a92354afed [7129] Changed uint64 results to const uint64& on some methods.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-01-21 02:10:03 +01:00
DiSlord
921914f87e [7125] Work under pet talents
Coorrect update Talent Points on levelup / leveldown
Unlearn other ranks of learned talent
Fix typo in Pet::HasSpell (wrong result for removed spell)
Allow .reset talents reset pet talent
Implement SPELL_AURA_MOD_PET_TALENT_POINTS aura (hunter talent)
Only reset pet talent from trainer unlearn.

Signed-off-by: DiSlord <dislord@nomail.com>
2009-01-21 00:31:19 +03:00