aboutsummaryrefslogtreecommitdiff
path: root/src/game/Spell.cpp
diff options
context:
space:
mode:
authorKingPin <none@none>2008-11-05 09:22:56 -0600
committerKingPin <none@none>2008-11-05 09:22:56 -0600
commit62ed044d08425bd09053bda18d56113bd9f9a2ce (patch)
tree28ed72b77f24d88b47df4f1b3ec3f20582b2c18f /src/game/Spell.cpp
parenta1981ecc77c3da12cdec29c30a1a79a1011333f0 (diff)
[svn] *** Source Mangos ***
*Load npc_options at server startup, use cached data at creature gossip menu init. * Also new .reload table command added *Implement npc_option localization support, also store in DB BoxText/BoxMoney/Coded * Use characters.guid instead low guid value from characters.data in charcter enum data prepering for client. * Fixed crash at .pinfo command use from console. * Fixed windows ad.exe build *Creature related code and DB cleanups. * Rename 2 creature_template fields to more clean names and related code update also. * Use enum values instead raw values for type_flags, use halper functions instead code repeating. * Move tamed pet creating code to new function. ** Small code changes to make things compliant with above changes. ** Another rev with big changes so test away. --HG-- branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r--src/game/Spell.cpp14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 4795d64bfcc..7b4c855474c 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -3669,13 +3669,7 @@ uint8 Spell::CanCast(bool strict)
return SPELL_FAILED_TARGET_NOT_LOOTED;
}
- uint32 skill;
- if(creature->GetCreatureInfo()->flag1 & 256)
- skill = SKILL_HERBALISM; // special case
- else if(creature->GetCreatureInfo()->flag1 & 512)
- skill = SKILL_MINING; // special case
- else
- skill = SKILL_SKINNING; // normal case
+ uint32 skill = creature->GetCreatureInfo()->GetRequiredLootSkill();
int32 skillValue = ((Player*)m_caster)->GetSkillValue(skill);
int32 TargetLevel = m_targets.getUnitTarget()->getLevel();
@@ -3967,12 +3961,8 @@ uint8 Spell::CanCast(bool strict)
if (m_targets.getUnitTarget()->getLevel() > m_caster->getLevel())
return SPELL_FAILED_HIGHLEVEL;
- CreatureInfo const *cinfo = ((Creature*)m_targets.getUnitTarget())->GetCreatureInfo();
- if( cinfo->type != CREATURE_TYPE_BEAST )
- return SPELL_FAILED_BAD_TARGETS;
-
// use SMSG_PET_TAME_FAILURE?
- if( !(cinfo->flag1 & 1) || !(cinfo->family) )
+ if (!((Creature*)m_targets.getUnitTarget())->GetCreatureInfo()->isTameable ())
return SPELL_FAILED_BAD_TARGETS;
if(m_caster->GetPetGUID())