Remove unnecesary casts to Player in Player.cpp

Thanks to Shauren for pointing it out

--HG--
branch : trunk
This commit is contained in:
Spp
2010-04-24 17:27:09 +02:00
parent 30c842480c
commit 9aa3fea857
+55 -61
View File
@@ -2446,9 +2446,9 @@ bool Player::IsGroupVisibleFor(Player* p) const
bool Player::IsInSameGroupWith(Player const* p) const bool Player::IsInSameGroupWith(Player const* p) const
{ {
return (p == this || (GetGroup() != NULL && return p == this || (GetGroup() != NULL &&
GetGroup() == p->GetGroup() && GetGroup() == p->GetGroup() &&
GetGroup()->SameSubGroup((Player*)this, (Player*)p))); GetGroup()->SameSubGroup(this, p));
} }
///- If the player is invited, remove him. If the group if then only 1 person, disband the group. ///- If the player is invited, remove him. If the group if then only 1 person, disband the group.
@@ -9023,7 +9023,7 @@ uint8 Player::FindEquipSlot(ItemPrototype const* proto, uint32 slot, bool swap)
if (ItemPrototype const *mhWeaponProto = mhWeapon->GetProto()) if (ItemPrototype const *mhWeaponProto = mhWeapon->GetProto())
if (mhWeaponProto->SubClass == ITEM_SUBCLASS_WEAPON_POLEARM || mhWeaponProto->SubClass == ITEM_SUBCLASS_WEAPON_STAFF) if (mhWeaponProto->SubClass == ITEM_SUBCLASS_WEAPON_POLEARM || mhWeaponProto->SubClass == ITEM_SUBCLASS_WEAPON_STAFF)
{ {
const_cast<Player *>(this)->AutoUnequipOffhandIfNeed(true); AutoUnequipOffhandIfNeed(true);
break; break;
} }
if (CanDualWield() && CanTitanGrip() && proto->SubClass != ITEM_SUBCLASS_WEAPON_POLEARM && proto->SubClass != ITEM_SUBCLASS_WEAPON_STAFF) if (CanDualWield() && CanTitanGrip() && proto->SubClass != ITEM_SUBCLASS_WEAPON_POLEARM && proto->SubClass != ITEM_SUBCLASS_WEAPON_STAFF)
@@ -11015,7 +11015,7 @@ uint8 Player::CanUseItem(Item *pItem, bool not_loading) const
// In fact it's a visual bug, everything works properly... I need sniffs of operations with // In fact it's a visual bug, everything works properly... I need sniffs of operations with
// binded to account items from off server. // binded to account items from off server.
switch (this->getClass()) switch (getClass())
{ {
case CLASS_HUNTER: case CLASS_HUNTER:
case CLASS_SHAMAN: case CLASS_SHAMAN:
@@ -12702,10 +12702,7 @@ void Player::ApplyEnchantment(Item *item,bool apply)
void Player::ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool apply_dur, bool ignore_condition) void Player::ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool apply_dur, bool ignore_condition)
{ {
if (!item) if (!item || !item->IsEquipped())
return;
if (!item->IsEquipped())
return; return;
if (!CanUseAttackType(Player::GetAttackBySlot(item->GetSlot()))) if (!CanUseAttackType(Player::GetAttackBySlot(item->GetSlot())))
@@ -12722,17 +12719,14 @@ void Player::ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool
if (!pEnchant) if (!pEnchant)
return; return;
if (!ignore_condition && pEnchant->EnchantmentCondition && !this->ToPlayer()->EnchantmentFitsRequirements(pEnchant->EnchantmentCondition, -1)) if (!ignore_condition && pEnchant->EnchantmentCondition && !EnchantmentFitsRequirements(pEnchant->EnchantmentCondition, -1))
return; return;
if ((pEnchant->requiredLevel) > this->ToPlayer()->getLevel()) if (pEnchant->requiredLevel > getLevel())
return; return;
if ((pEnchant->requiredSkill) > 0) if (pEnchant->requiredSkill > 0 && pEnchant->requiredSkillValue > GetSkillValue(pEnchant->requiredSkill))
{
if ((pEnchant->requiredSkillValue) > (this->ToPlayer()->GetSkillValue(pEnchant->requiredSkill)))
return; return;
}
if (!item->IsBroken()) if (!item->IsBroken())
{ {
@@ -12864,111 +12858,111 @@ void Player::ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool
ApplyStatBuffMod(STAT_STAMINA, enchant_amount, apply); ApplyStatBuffMod(STAT_STAMINA, enchant_amount, apply);
break; break;
case ITEM_MOD_DEFENSE_SKILL_RATING: case ITEM_MOD_DEFENSE_SKILL_RATING:
this->ToPlayer()->ApplyRatingMod(CR_DEFENSE_SKILL, enchant_amount, apply); ApplyRatingMod(CR_DEFENSE_SKILL, enchant_amount, apply);
sLog.outDebug("+ %u DEFENCE", enchant_amount); sLog.outDebug("+ %u DEFENCE", enchant_amount);
break; break;
case ITEM_MOD_DODGE_RATING: case ITEM_MOD_DODGE_RATING:
this->ToPlayer()->ApplyRatingMod(CR_DODGE, enchant_amount, apply); ApplyRatingMod(CR_DODGE, enchant_amount, apply);
sLog.outDebug("+ %u DODGE", enchant_amount); sLog.outDebug("+ %u DODGE", enchant_amount);
break; break;
case ITEM_MOD_PARRY_RATING: case ITEM_MOD_PARRY_RATING:
this->ToPlayer()->ApplyRatingMod(CR_PARRY, enchant_amount, apply); ApplyRatingMod(CR_PARRY, enchant_amount, apply);
sLog.outDebug("+ %u PARRY", enchant_amount); sLog.outDebug("+ %u PARRY", enchant_amount);
break; break;
case ITEM_MOD_BLOCK_RATING: case ITEM_MOD_BLOCK_RATING:
this->ToPlayer()->ApplyRatingMod(CR_BLOCK, enchant_amount, apply); ApplyRatingMod(CR_BLOCK, enchant_amount, apply);
sLog.outDebug("+ %u SHIELD_BLOCK", enchant_amount); sLog.outDebug("+ %u SHIELD_BLOCK", enchant_amount);
break; break;
case ITEM_MOD_HIT_MELEE_RATING: case ITEM_MOD_HIT_MELEE_RATING:
this->ToPlayer()->ApplyRatingMod(CR_HIT_MELEE, enchant_amount, apply); ApplyRatingMod(CR_HIT_MELEE, enchant_amount, apply);
sLog.outDebug("+ %u MELEE_HIT", enchant_amount); sLog.outDebug("+ %u MELEE_HIT", enchant_amount);
break; break;
case ITEM_MOD_HIT_RANGED_RATING: case ITEM_MOD_HIT_RANGED_RATING:
this->ToPlayer()->ApplyRatingMod(CR_HIT_RANGED, enchant_amount, apply); ApplyRatingMod(CR_HIT_RANGED, enchant_amount, apply);
sLog.outDebug("+ %u RANGED_HIT", enchant_amount); sLog.outDebug("+ %u RANGED_HIT", enchant_amount);
break; break;
case ITEM_MOD_HIT_SPELL_RATING: case ITEM_MOD_HIT_SPELL_RATING:
this->ToPlayer()->ApplyRatingMod(CR_HIT_SPELL, enchant_amount, apply); ApplyRatingMod(CR_HIT_SPELL, enchant_amount, apply);
sLog.outDebug("+ %u SPELL_HIT", enchant_amount); sLog.outDebug("+ %u SPELL_HIT", enchant_amount);
break; break;
case ITEM_MOD_CRIT_MELEE_RATING: case ITEM_MOD_CRIT_MELEE_RATING:
this->ToPlayer()->ApplyRatingMod(CR_CRIT_MELEE, enchant_amount, apply); ApplyRatingMod(CR_CRIT_MELEE, enchant_amount, apply);
sLog.outDebug("+ %u MELEE_CRIT", enchant_amount); sLog.outDebug("+ %u MELEE_CRIT", enchant_amount);
break; break;
case ITEM_MOD_CRIT_RANGED_RATING: case ITEM_MOD_CRIT_RANGED_RATING:
this->ToPlayer()->ApplyRatingMod(CR_CRIT_RANGED, enchant_amount, apply); ApplyRatingMod(CR_CRIT_RANGED, enchant_amount, apply);
sLog.outDebug("+ %u RANGED_CRIT", enchant_amount); sLog.outDebug("+ %u RANGED_CRIT", enchant_amount);
break; break;
case ITEM_MOD_CRIT_SPELL_RATING: case ITEM_MOD_CRIT_SPELL_RATING:
this->ToPlayer()->ApplyRatingMod(CR_CRIT_SPELL, enchant_amount, apply); ApplyRatingMod(CR_CRIT_SPELL, enchant_amount, apply);
sLog.outDebug("+ %u SPELL_CRIT", enchant_amount); sLog.outDebug("+ %u SPELL_CRIT", enchant_amount);
break; break;
// Values from ITEM_STAT_MELEE_HA_RATING to ITEM_MOD_HASTE_RANGED_RATING are never used // Values from ITEM_STAT_MELEE_HA_RATING to ITEM_MOD_HASTE_RANGED_RATING are never used
// in Enchantments // in Enchantments
// case ITEM_MOD_HIT_TAKEN_MELEE_RATING: // case ITEM_MOD_HIT_TAKEN_MELEE_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_HIT_TAKEN_MELEE, enchant_amount, apply); // ApplyRatingMod(CR_HIT_TAKEN_MELEE, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_HIT_TAKEN_RANGED_RATING: // case ITEM_MOD_HIT_TAKEN_RANGED_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_HIT_TAKEN_RANGED, enchant_amount, apply); // ApplyRatingMod(CR_HIT_TAKEN_RANGED, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_HIT_TAKEN_SPELL_RATING: // case ITEM_MOD_HIT_TAKEN_SPELL_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_HIT_TAKEN_SPELL, enchant_amount, apply); // ApplyRatingMod(CR_HIT_TAKEN_SPELL, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_CRIT_TAKEN_MELEE_RATING: // case ITEM_MOD_CRIT_TAKEN_MELEE_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_MELEE, enchant_amount, apply); // ApplyRatingMod(CR_CRIT_TAKEN_MELEE, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_CRIT_TAKEN_RANGED_RATING: // case ITEM_MOD_CRIT_TAKEN_RANGED_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_RANGED, enchant_amount, apply); // ApplyRatingMod(CR_CRIT_TAKEN_RANGED, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_CRIT_TAKEN_SPELL_RATING: // case ITEM_MOD_CRIT_TAKEN_SPELL_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_SPELL, enchant_amount, apply); // ApplyRatingMod(CR_CRIT_TAKEN_SPELL, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_HASTE_MELEE_RATING: // case ITEM_MOD_HASTE_MELEE_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_HASTE_MELEE, enchant_amount, apply); // ApplyRatingMod(CR_HASTE_MELEE, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_HASTE_RANGED_RATING: // case ITEM_MOD_HASTE_RANGED_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_HASTE_RANGED, enchant_amount, apply); // ApplyRatingMod(CR_HASTE_RANGED, enchant_amount, apply);
// break; // break;
case ITEM_MOD_HASTE_SPELL_RATING: case ITEM_MOD_HASTE_SPELL_RATING:
this->ToPlayer()->ApplyRatingMod(CR_HASTE_SPELL, enchant_amount, apply); ApplyRatingMod(CR_HASTE_SPELL, enchant_amount, apply);
break; break;
case ITEM_MOD_HIT_RATING: case ITEM_MOD_HIT_RATING:
this->ToPlayer()->ApplyRatingMod(CR_HIT_MELEE, enchant_amount, apply); ApplyRatingMod(CR_HIT_MELEE, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_HIT_RANGED, enchant_amount, apply); ApplyRatingMod(CR_HIT_RANGED, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_HIT_SPELL, enchant_amount, apply); ApplyRatingMod(CR_HIT_SPELL, enchant_amount, apply);
sLog.outDebug("+ %u HIT", enchant_amount); sLog.outDebug("+ %u HIT", enchant_amount);
break; break;
case ITEM_MOD_CRIT_RATING: case ITEM_MOD_CRIT_RATING:
this->ToPlayer()->ApplyRatingMod(CR_CRIT_MELEE, enchant_amount, apply); ApplyRatingMod(CR_CRIT_MELEE, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_CRIT_RANGED, enchant_amount, apply); ApplyRatingMod(CR_CRIT_RANGED, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_CRIT_SPELL, enchant_amount, apply); ApplyRatingMod(CR_CRIT_SPELL, enchant_amount, apply);
sLog.outDebug("+ %u CRITICAL", enchant_amount); sLog.outDebug("+ %u CRITICAL", enchant_amount);
break; break;
// Values ITEM_MOD_HIT_TAKEN_RATING and ITEM_MOD_CRIT_TAKEN_RATING are never used in Enchantment // Values ITEM_MOD_HIT_TAKEN_RATING and ITEM_MOD_CRIT_TAKEN_RATING are never used in Enchantment
// case ITEM_MOD_HIT_TAKEN_RATING: // case ITEM_MOD_HIT_TAKEN_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_HIT_TAKEN_MELEE, enchant_amount, apply); // ApplyRatingMod(CR_HIT_TAKEN_MELEE, enchant_amount, apply);
// this->ToPlayer()->ApplyRatingMod(CR_HIT_TAKEN_RANGED, enchant_amount, apply); // ApplyRatingMod(CR_HIT_TAKEN_RANGED, enchant_amount, apply);
// this->ToPlayer()->ApplyRatingMod(CR_HIT_TAKEN_SPELL, enchant_amount, apply); // ApplyRatingMod(CR_HIT_TAKEN_SPELL, enchant_amount, apply);
// break; // break;
// case ITEM_MOD_CRIT_TAKEN_RATING: // case ITEM_MOD_CRIT_TAKEN_RATING:
// this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_MELEE, enchant_amount, apply); // ApplyRatingMod(CR_CRIT_TAKEN_MELEE, enchant_amount, apply);
// this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_RANGED, enchant_amount, apply); // ApplyRatingMod(CR_CRIT_TAKEN_RANGED, enchant_amount, apply);
// this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_SPELL, enchant_amount, apply); // ApplyRatingMod(CR_CRIT_TAKEN_SPELL, enchant_amount, apply);
// break; // break;
case ITEM_MOD_RESILIENCE_RATING: case ITEM_MOD_RESILIENCE_RATING:
this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_MELEE, enchant_amount, apply); ApplyRatingMod(CR_CRIT_TAKEN_MELEE, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_RANGED, enchant_amount, apply); ApplyRatingMod(CR_CRIT_TAKEN_RANGED, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_CRIT_TAKEN_SPELL, enchant_amount, apply); ApplyRatingMod(CR_CRIT_TAKEN_SPELL, enchant_amount, apply);
sLog.outDebug("+ %u RESILIENCE", enchant_amount); sLog.outDebug("+ %u RESILIENCE", enchant_amount);
break; break;
case ITEM_MOD_HASTE_RATING: case ITEM_MOD_HASTE_RATING:
this->ToPlayer()->ApplyRatingMod(CR_HASTE_MELEE, enchant_amount, apply); ApplyRatingMod(CR_HASTE_MELEE, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_HASTE_RANGED, enchant_amount, apply); ApplyRatingMod(CR_HASTE_RANGED, enchant_amount, apply);
this->ToPlayer()->ApplyRatingMod(CR_HASTE_SPELL, enchant_amount, apply); ApplyRatingMod(CR_HASTE_SPELL, enchant_amount, apply);
sLog.outDebug("+ %u HASTE", enchant_amount); sLog.outDebug("+ %u HASTE", enchant_amount);
break; break;
case ITEM_MOD_EXPERTISE_RATING: case ITEM_MOD_EXPERTISE_RATING:
this->ToPlayer()->ApplyRatingMod(CR_EXPERTISE, enchant_amount, apply); ApplyRatingMod(CR_EXPERTISE, enchant_amount, apply);
sLog.outDebug("+ %u EXPERTISE", enchant_amount); sLog.outDebug("+ %u EXPERTISE", enchant_amount);
break; break;
case ITEM_MOD_ATTACK_POWER: case ITEM_MOD_ATTACK_POWER:
@@ -12981,23 +12975,23 @@ void Player::ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool
sLog.outDebug("+ %u RANGED_ATTACK_POWER", enchant_amount); sLog.outDebug("+ %u RANGED_ATTACK_POWER", enchant_amount);
break; break;
// case ITEM_MOD_FERAL_ATTACK_POWER: // case ITEM_MOD_FERAL_ATTACK_POWER:
// ((Player*)this)->ApplyFeralAPBonus(enchant_amount, apply); // ApplyFeralAPBonus(enchant_amount, apply);
// sLog.outDebug("+ %u FERAL_ATTACK_POWER", enchant_amount); // sLog.outDebug("+ %u FERAL_ATTACK_POWER", enchant_amount);
// break; // break;
case ITEM_MOD_MANA_REGENERATION: case ITEM_MOD_MANA_REGENERATION:
((Player*)this)->ApplyManaRegenBonus(enchant_amount, apply); ApplyManaRegenBonus(enchant_amount, apply);
sLog.outDebug("+ %u MANA_REGENERATION", enchant_amount); sLog.outDebug("+ %u MANA_REGENERATION", enchant_amount);
break; break;
case ITEM_MOD_ARMOR_PENETRATION_RATING: case ITEM_MOD_ARMOR_PENETRATION_RATING:
((Player*)this)->ApplyRatingMod(CR_ARMOR_PENETRATION, enchant_amount, apply); ApplyRatingMod(CR_ARMOR_PENETRATION, enchant_amount, apply);
sLog.outDebug("+ %u ARMOR PENETRATION", enchant_amount); sLog.outDebug("+ %u ARMOR PENETRATION", enchant_amount);
break; break;
case ITEM_MOD_SPELL_POWER: case ITEM_MOD_SPELL_POWER:
((Player*)this)->ApplySpellPowerBonus(enchant_amount, apply); ApplySpellPowerBonus(enchant_amount, apply);
sLog.outDebug("+ %u SPELL_POWER", enchant_amount); sLog.outDebug("+ %u SPELL_POWER", enchant_amount);
break; break;
case ITEM_MOD_HEALTH_REGEN: case ITEM_MOD_HEALTH_REGEN:
((Player*)this)->ApplyHealthRegenBonus(enchant_amount, apply); ApplyHealthRegenBonus(enchant_amount, apply);
sLog.outDebug("+ %u HEALTH_REGENERATION", enchant_amount); sLog.outDebug("+ %u HEALTH_REGENERATION", enchant_amount);
break; break;
case ITEM_MOD_SPELL_HEALING_DONE: // deprecated case ITEM_MOD_SPELL_HEALING_DONE: // deprecated
@@ -13394,8 +13388,8 @@ void Player::OnGossipSelect(WorldObject* pSource, uint32 gossipListId, uint32 me
// Cast spells that teach dual spec // Cast spells that teach dual spec
// Both are also ImplicitTarget self and must be cast by player // Both are also ImplicitTarget self and must be cast by player
this->CastSpell(this, 63680, true, NULL, NULL, this->GetGUID()); CastSpell(this, 63680, true, NULL, NULL, GetGUID());
this->CastSpell(this, 63624, true, NULL, NULL, this->GetGUID()); CastSpell(this, 63624, true, NULL, NULL, GetGUID());
// Should show another Gossip text with "Congratulations..." // Should show another Gossip text with "Congratulations..."
PlayerTalkClass->CloseGossip(); PlayerTalkClass->CloseGossip();
@@ -20798,7 +20792,7 @@ void Player::learnQuestRewardedSpells(Quest const* quest)
// if RewSpellCast = -1 we remove aura do to SrcSpell from player. // if RewSpellCast = -1 we remove aura do to SrcSpell from player.
if (spell_id == -1 && src_spell_id) if (spell_id == -1 && src_spell_id)
{ {
this->RemoveAurasDueToSpell(src_spell_id); RemoveAurasDueToSpell(src_spell_id);
return; return;
} }
@@ -23361,7 +23355,7 @@ void Player::ActivateSpec(uint8 spec)
if (GetPet()) if (GetPet())
GetPet()->RemoveAllAurasOnDeath();*/ GetPet()->RemoveAllAurasOnDeath();*/
//RemoveAllAuras(this->GetGUID(), NULL, false, true); // removes too many auras //RemoveAllAuras(GetGUID(), NULL, false, true); // removes too many auras
//ExitVehicle(); // should be impossible to switch specs from inside a vehicle.. //ExitVehicle(); // should be impossible to switch specs from inside a vehicle..
// Let client clear his current Actions // Let client clear his current Actions