Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/server/game/BattlePets/BattlePetJournal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,10 @@ void BattlePetJournal::CageBattlePet(ObjectGuid guid)
if (!item)
return;

if (BattlePetSpeciesEntry const* speciesEntry = sBattlePetSpeciesStore.LookupEntry(pet->JournalInfo.CreatureID))
if (speciesEntry->Flags & SPECIES_FLAG_CANT_TRADE)
return;

item->SetModifier(ITEM_MODIFIER_BATTLE_PET_SPECIES_ID, pet->JournalInfo.Species);
item->SetModifier(ITEM_MODIFIER_BATTLE_PET_BREED_DATA, pet->JournalInfo.Breed | (pet->JournalInfo.Quality << 24));
item->SetModifier(ITEM_MODIFIER_BATTLE_PET_LEVEL, pet->JournalInfo.Level);
Expand Down
45 changes: 45 additions & 0 deletions src/server/game/BattlePets/BattlePetJournal.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,19 @@ enum BattlePetDBFlags
BATTLE_PET_DB_FLAG_SPELL_3_ROW_2 = 0x40
};

enum BattlePetDBSpeciesFlags
{
SPECIES_FLAG_UNK1 = 0x002,
SPECIES_FLAG_UNK2 = 0x004,
SPECIES_FLAG_CAPTURABLE = 0x008,
SPECIES_FLAG_CANT_TRADE = 0x010,
SPECIES_FLAG_UNOBTAINABLE = 0x020,
SPECIES_FLAG_UNIQUE = 0x040,
SPECIES_FLAG_CANT_BATTLE = 0x080,
SPECIES_FLAG_UNK3 = 0x200,
SPECIES_FLAG_ELITE = 0x400,
};

// 6.2.4
enum FlagsControlType
{
Expand Down Expand Up @@ -73,13 +86,30 @@ enum BattlePetError
// TODO: expand this enum if needed
enum BattlePetState
{
STATE_IS_DEAD = 1,
STATE_MAX_HEALTH_BONUS = 2,
STATE_INTERNAL_INITIAL_LEVEL = 17,
STATE_STAT_POWER = 18,
STATE_STAT_STAMINA = 19,
STATE_STAT_SPEED = 20,
STATE_MECHANIC_POISONED = 21,
STATE_MECHANIC_STUNNED = 22,
STATE_MOD_DAMAGE_DEALT_PERCENT = 23,
STATE_MOD_DAMAGE_TAKEN_PERCENT = 24,
STATE_MOD_SPEED_PERCENT = 25,
STATE_RAMPING_DAMAGE_ID = 26,
STATE_RAMPING_DAMAGE_USES = 27,
STATE_CONDITION_WAS_DAMAGED_THIS_ROUND = 28,
STATE_UNTARGETABLE = 29,
STATE_UNDERGROUND = 30,
STATE_LAST_HIT_TAKEN = 31,
STATE_LAST_HIT_DEALT = 32,
STATE_MECHANIC_FLYING = 33,
STATE_MECHANIC_BURNING = 34,
STATE_TURN_LOCK = 35,
STATE_SWAP_OUT_LOCK = 36,
STATE_STAT_CRIT_CHANCE = 40,
STATE_STAT_ACCURACY = 41,
STATE_PASSIVE_CRITTER = 42,
STATE_PASSIVE_BEAST = 43,
STATE_PASSIVE_HUMANOID = 44,
Expand All @@ -90,11 +120,26 @@ enum BattlePetState
STATE_PASSIVE_MAGIC = 49,
STATE_PASSIVE_UNDEAD = 50,
STATE_PASSIVE_AQUATIC = 51,
STATE_MECHANIC_CHILLED = 52,
STATE_MECHANIC_WEBBED = 64,
STATE_MOD_HEALING_DEALT_PCT = 65,
STATE_MOD_HEALING_TAKEN_PCT = 66,
STATE_MECHANIC_INVISIBLE = 67,
STATE_UNKILLABLE = 68,
STATE_STAT_DODGE = 73,
STATE_MECHANIC_BLEEDING = 77,
STATE_GENDER = 78, // 1 - male, 2 - female
STATE_MECHANIC_BLIND = 82,
STATE_COSMETIC_WATER_BUBBLED = 85,
STATE_MOD_PET_TYPE_ID = 89,
STATE_INTERNAL_CAPTURE_BOOST = 90,
STATE_SPECIAL_IS_COCKROACH = 93,
STATE_SWAP_IN_LOCK = 98,
STATE_CONDITION_DID_DAMAGE_THIS_ROUND = 127,
STATE_COSMETIC_FLY_TIER = 128,
STATE_MECHANIC_BOMB = 136,
STATE_COSMETIC_BIGGLESWORTH = 144,
STATE_RESILITANT = 149,
STATE_PASSIVE_ELITE = 153,
STATE_PASSIVE_BOSS = 162,
STATE_COSMETIC_TREASURE_GOBLIN = 176,
Expand Down