aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Pet
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2012-11-20 16:01:31 +0100
committerSpp <spp@jorge.gr>2012-11-20 16:01:31 +0100
commit1ecc55272e210258e9ccbe64d5bff8d6dfbd78fa (patch)
tree6e977425847eeceb8339cc2fe2e85d0f6d9917b1 /src/server/game/Entities/Pet
parent172c5f0b93d8810ed06dde48af529d0e1998a48c (diff)
parent7bef4ce4014cc0ea967d3e80eda740b8c518653c (diff)
Merge branch 'master' into 4.3.4
Conflicts: src/server/game/AI/CoreAI/GameObjectAI.h src/server/game/Achievements/AchievementMgr.cpp src/server/game/Battlegrounds/Battleground.cpp src/server/game/Conditions/ConditionMgr.h src/server/game/Entities/Pet/Pet.h src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Player/Player.h src/server/game/Entities/Unit/Unit.h src/server/game/Globals/ObjectMgr.cpp src/server/game/Guilds/Guild.cpp src/server/game/Handlers/CharacterHandler.cpp src/server/game/Handlers/GroupHandler.cpp src/server/game/Handlers/LootHandler.cpp src/server/game/Miscellaneous/SharedDefines.h src/server/game/Spells/Auras/SpellAuraEffects.cpp src/server/game/Spells/SpellEffects.cpp src/server/scripts/Commands/cs_modify.cpp src/server/scripts/Commands/cs_reload.cpp src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
Diffstat (limited to 'src/server/game/Entities/Pet')
-rwxr-xr-xsrc/server/game/Entities/Pet/Pet.cpp6
-rwxr-xr-xsrc/server/game/Entities/Pet/Pet.h66
-rw-r--r--src/server/game/Entities/Pet/PetDefines.h80
3 files changed, 91 insertions, 61 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index c431ee2c772..9337add8ba3 100755
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -30,6 +30,8 @@
#include "Unit.h"
#include "Util.h"
#include "Group.h"
+#include "Opcodes.h"
+#include "WorldSession.h"
#define PET_XP_FACTOR 0.05f
@@ -1034,7 +1036,7 @@ bool Pet::HaveInDiet(ItemTemplate const* item) const
return diet & FoodMask;
}
-uint32 Pet::GetCurrentFoodBenefitLevel(uint32 itemlevel)
+uint32 Pet::GetCurrentFoodBenefitLevel(uint32 itemlevel) const
{
// -5 or greater food level
if (getLevel() <= itemlevel + 5) //possible to feed level 60 pet with level 55 level food for full effect
@@ -1838,7 +1840,7 @@ void Pet::ToggleAutocast(SpellInfo const* spellInfo, bool apply)
}
}
-bool Pet::IsPermanentPetFor(Player* owner)
+bool Pet::IsPermanentPetFor(Player* owner) const
{
switch (getPetType())
{
diff --git a/src/server/game/Entities/Pet/Pet.h b/src/server/game/Entities/Pet/Pet.h
index e7ecadae2f1..15f0237d8d2 100755
--- a/src/server/game/Entities/Pet/Pet.h
+++ b/src/server/game/Entities/Pet/Pet.h
@@ -19,43 +19,11 @@
#ifndef TRINITYCORE_PET_H
#define TRINITYCORE_PET_H
-#include "ObjectDefines.h"
-#include "Unit.h"
+#include "PetDefines.h"
#include "TemporarySummon.h"
-enum PetType
-{
- SUMMON_PET = 0,
- HUNTER_PET = 1,
- MAX_PET_TYPE = 4
-};
-
-#define MAX_PET_STABLES 4
-
-// stored in character_pet.slot
-enum PetSaveMode
-{
- PET_SAVE_AS_DELETED = -1, // not saved in fact
- PET_SAVE_AS_CURRENT = 0, // in current slot (with player)
- PET_SAVE_FIRST_STABLE_SLOT = 1,
- PET_SAVE_LAST_STABLE_SLOT = MAX_PET_STABLES, // last in DB stable slot index (including), all higher have same meaning as PET_SAVE_NOT_IN_SLOT
- PET_SAVE_NOT_IN_SLOT = 100 // for avoid conflict with stable size grow will use 100
-};
-
-enum PetSpellState
-{
- PETSPELL_UNCHANGED = 0,
- PETSPELL_CHANGED = 1,
- PETSPELL_NEW = 2,
- PETSPELL_REMOVED = 3
-};
-
-enum PetSpellType
-{
- PETSPELL_NORMAL = 0,
- PETSPELL_FAMILY = 1,
- PETSPELL_TALENT = 2
-};
+#define PET_FOCUS_REGEN_INTERVAL 4 * IN_MILLISECONDS
+#define HAPPINESS_LEVEL_SIZE 333000
struct PetSpell
{
@@ -64,29 +32,9 @@ struct PetSpell
PetSpellType type;
};
-enum ActionFeedback
-{
- FEEDBACK_NONE = 0,
- FEEDBACK_PET_DEAD = 1,
- FEEDBACK_NOTHING_TO_ATT = 2,
- FEEDBACK_CANT_ATT_TARGET = 3
-};
-
-enum PetTalk
-{
- PET_TALK_SPECIAL_SPELL = 0,
- PET_TALK_ATTACK = 1
-};
-
typedef UNORDERED_MAP<uint32, PetSpell> PetSpellMap;
typedef std::vector<uint32> AutoSpellList;
-#define ACTIVE_SPELLS_MAX 4
-
-#define PET_FOLLOW_DIST 1.0f
-#define PET_FOLLOW_ANGLE (M_PI/2)
-#define PET_FOCUS_REGEN_INTERVAL 4 * IN_MILLISECONDS
-
class Player;
class Pet : public Guardian
@@ -103,9 +51,9 @@ class Pet : public Guardian
bool isControlled() const { return getPetType() == SUMMON_PET || getPetType() == HUNTER_PET; }
bool isTemporarySummoned() const { return m_duration > 0; }
- bool IsPermanentPetFor(Player* owner); // pet have tab in character windows and set UNIT_FIELD_PETNUMBER
+ bool IsPermanentPetFor(Player* owner) const; // pet have tab in character windows and set UNIT_FIELD_PETNUMBER
- bool Create (uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry, uint32 pet_number);
+ bool Create(uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry, uint32 pet_number);
bool CreateBaseAtCreature(Creature* creature);
bool CreateBaseAtCreatureInfo(CreatureTemplate const* cinfo, Unit* owner);
bool CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phaseMask);
@@ -131,9 +79,9 @@ class Pet : public Guardian
void GivePetLevel(uint8 level);
void SynchronizeLevelWithOwner();
bool HaveInDiet(ItemTemplate const* item) const;
- uint32 GetCurrentFoodBenefitLevel(uint32 itemlevel);
+ uint32 GetCurrentFoodBenefitLevel(uint32 itemlevel) const;
void SetDuration(int32 dur) { m_duration = dur; }
- int32 GetDuration() { return m_duration; }
+ int32 GetDuration() const { return m_duration; }
/*
bool UpdateStats(Stats stat);
diff --git a/src/server/game/Entities/Pet/PetDefines.h b/src/server/game/Entities/Pet/PetDefines.h
new file mode 100644
index 00000000000..76de2647c8c
--- /dev/null
+++ b/src/server/game/Entities/Pet/PetDefines.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef TRINITYCORE_PET_DEFINES_H
+#define TRINITYCORE_PET_DEFINES_H
+
+enum PetType
+{
+ SUMMON_PET = 0,
+ HUNTER_PET = 1,
+ MAX_PET_TYPE = 4
+};
+
+#define MAX_PET_STABLES 4
+
+// stored in character_pet.slot
+enum PetSaveMode
+{
+ PET_SAVE_AS_DELETED = -1, // not saved in fact
+ PET_SAVE_AS_CURRENT = 0, // in current slot (with player)
+ PET_SAVE_FIRST_STABLE_SLOT = 1,
+ PET_SAVE_LAST_STABLE_SLOT = MAX_PET_STABLES, // last in DB stable slot index (including), all higher have same meaning as PET_SAVE_NOT_IN_SLOT
+ PET_SAVE_NOT_IN_SLOT = 100 // for avoid conflict with stable size grow will use 100
+};
+
+enum HappinessState
+{
+ UNHAPPY = 1,
+ CONTENT = 2,
+ HAPPY = 3
+};
+
+enum PetSpellState
+{
+ PETSPELL_UNCHANGED = 0,
+ PETSPELL_CHANGED = 1,
+ PETSPELL_NEW = 2,
+ PETSPELL_REMOVED = 3
+};
+
+enum PetSpellType
+{
+ PETSPELL_NORMAL = 0,
+ PETSPELL_FAMILY = 1,
+ PETSPELL_TALENT = 2
+};
+
+enum ActionFeedback
+{
+ FEEDBACK_NONE = 0,
+ FEEDBACK_PET_DEAD = 1,
+ FEEDBACK_NOTHING_TO_ATT = 2,
+ FEEDBACK_CANT_ATT_TARGET = 3
+};
+
+enum PetTalk
+{
+ PET_TALK_SPECIAL_SPELL = 0,
+ PET_TALK_ATTACK = 1
+};
+
+#define PET_FOLLOW_DIST 1.0f
+#define PET_FOLLOW_ANGLE (M_PI/2)
+
+#endif