aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.cpp97
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.h6
-rwxr-xr-xsrc/server/game/Entities/Item/Item.cpp19
-rwxr-xr-xsrc/server/game/Entities/Item/Item.h18
4 files changed, 19 insertions, 121 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index f624328546f..d38cc2a38ee 100755
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -49,15 +49,7 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
case CONDITION_AURA:
{
if (Unit* unit = object->ToUnit())
- {
- if (!ConditionValue3)
- condMeets = unit->HasAuraEffect(ConditionValue1, ConditionValue2);
- else if (Player* player = unit->ToPlayer())
- {
- if (Unit* target = player->GetSelectedUnit())
- condMeets = target->HasAuraEffect(ConditionValue1, ConditionValue2);
- }
- }
+ condMeets = unit->HasAuraEffect(ConditionValue1, ConditionValue2);
break;
}
case CONDITION_ITEM:
@@ -165,38 +157,6 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
case CONDITION_SPELL_SCRIPT_TARGET:
condMeets = true;//spell target condition is handled in spellsystem, here it is always true
break;
- case CONDITION_CREATURE_TARGET:
- {
- if (Player* player = object->ToPlayer())
- {
- Unit* target = player->GetSelectedUnit();
- if (target)
- if (Creature* cTarget = target->ToCreature())
- if (cTarget->GetEntry() == ConditionValue1)
- condMeets = true;
- }
- break;
- }
- case CONDITION_TARGET_HEALTH_BELOW_PCT:
- {
- if (Player* player = object->ToPlayer())
- {
- Unit* target = player->GetSelectedUnit();
- if (target)
- condMeets = !target->HealthAbovePct(ConditionValue1);
- break;
- }
- }
- case CONDITION_TARGET_RANGE:
- {
- if (Player* player = object->ToPlayer())
- {
- if (Unit* target = player->GetSelectedUnit())
- if (player->GetDistance(target) >= ConditionValue1 && (!ConditionValue2 || player->GetDistance(target) <= ConditionValue2))
- condMeets = true;
- }
- break;
- }
case CONDITION_MAPID:
condMeets = object->GetMapId() == ConditionValue1;
break;
@@ -1116,7 +1076,7 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond)
}
break;
case CONDITION_SOURCE_TYPE_UNUSED_18:
- sLog->outErrorDb("Found SourceTypeOrReferenceId = CONDITION_SOURCE_TYPE_UNUSED_18 in `condition` table - ignoring");
+ sLog->outErrorDb("Found SourceTypeOrReferenceId = CONDITION_SOURCE_TYPE_UNUSED_18 in `conditions` table - ignoring");
return false;
case CONDITION_SOURCE_TYPE_GOSSIP_MENU:
case CONDITION_SOURCE_TYPE_GOSSIP_MENU_OPTION:
@@ -1157,6 +1117,8 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
sLog->outErrorDb("Aura condition has non existing effect index (%u) (must be 0..2), skipped", cond->ConditionValue2);
return false;
}
+ if (cond->ConditionValue3)
+ sLog->outErrorDb("Aura condition has useless data in value3 (%u)!", cond->ConditionValue3);
break;
}
case CONDITION_ITEM:
@@ -1370,45 +1332,6 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
}
break;
}
- case CONDITION_CREATURE_TARGET:
- {
- if (!cond->ConditionValue1 && !sObjectMgr->GetCreatureTemplate(cond->ConditionValue1))
- {
- sLog->outErrorDb("CreatureTarget condition has non existing creature template entry (%u) as target, skipped", cond->ConditionValue1);
- return false;
- }
-
- if (cond->ConditionValue2)
- sLog->outErrorDb("CreatureTarget condition has useless data in value2 (%u)!", cond->ConditionValue2);
- if (cond->ConditionValue3)
- sLog->outErrorDb("CreatureTarget condition has useless data in value3 (%u)!", cond->ConditionValue3);
- break;
- }
- case CONDITION_TARGET_HEALTH_BELOW_PCT:
- {
- if (cond->ConditionValue1 > 100)
- {
- sLog->outErrorDb("TargetHealthBelowPct condition has invalid data in value1 (%u), skipped", cond->ConditionValue1);
- return false;
- }
-
- if (cond->ConditionValue2)
- sLog->outErrorDb("TargetHealthBelowPct condition has useless data in value2 (%u)!", cond->ConditionValue2);
- if (cond->ConditionValue3)
- sLog->outErrorDb("TargetHealthBelowPct condition has useless data in value3 (%u)!", cond->ConditionValue3);
- break;
- }
- case CONDITION_TARGET_RANGE:
- {
- if (cond->ConditionValue2 && cond->ConditionValue2 < cond->ConditionValue1)//maxDist can be 0 for infinit max range
- {
- sLog->outErrorDb("TargetRange condition has max distance closer then min distance, skipped");
- return false;
- }
- if (cond->ConditionValue3)
- sLog->outErrorDb("TargetRange condition has useless data in value3 (%u)!", cond->ConditionValue3);
- break;
- }
case CONDITION_MAPID:
{
MapEntry const* me = sMapStore.LookupEntry(cond->ConditionValue1);
@@ -1649,6 +1572,18 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
sLog->outErrorDb("Phasemask condition has useless data in value3 (%u)!", cond->ConditionValue3);
break;
}
+ case CONDITION_UNUSED_19:
+ sLog->outErrorDb("Found ConditionTypeOrReference = CONDITION_UNUSED_19 in `conditions` table - ignoring");
+ return false;
+ case CONDITION_UNUSED_20:
+ sLog->outErrorDb("Found ConditionTypeOrReference = CONDITION_UNUSED_19 in `conditions` table - ignoring");
+ return false;
+ case CONDITION_UNUSED_21:
+ sLog->outErrorDb("Found ConditionTypeOrReference = CONDITION_UNUSED_19 in `conditions` table - ignoring");
+ return false;
+ case CONDITION_UNUSED_24:
+ sLog->outErrorDb("Found ConditionTypeOrReference = CONDITION_UNUSED_19 in `conditions` table - ignoring");
+ return false;
default:
break;
}
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index e1e4328a3b9..3c968998566 100755
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -49,9 +49,9 @@ enum ConditionTypes
CONDITION_RACE = 16, // race 0 0 true if player's race is equal to race
CONDITION_ACHIEVEMENT = 17, // achievement_id 0 0 true if achievement is complete
CONDITION_SPELL_SCRIPT_TARGET = 18, // SpellScriptTargetType, TargetEntry, 0
- CONDITION_CREATURE_TARGET = 19, // creature entry 0 0 true if current target is creature with value1 entry
- CONDITION_TARGET_HEALTH_BELOW_PCT = 20, // 0-100 0 0 true if target's health is below value1 percent, false if over or no target
- CONDITION_TARGET_RANGE = 21, // minDistance maxDist 0 true if target is closer then minDist and further then maxDist or if max is 0 then max dist is infinit
+ CONDITION_UNUSED_19 = 19, //
+ CONDITION_UNUSED_20 = 20, //
+ CONDITION_UNUSED_21 = 21, //
CONDITION_MAPID = 22, // map_id 0 0 true if in map_id
CONDITION_AREAID = 23, // area_id 0 0 true if in area_id
CONDITION_UNUSED_24 = 24, //
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 9cac6822b60..70b81593b56 100755
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -1074,25 +1074,6 @@ bool Item::IsBindedNotWith(Player const* player) const
return true;
}
-bool ItemRequiredTarget::IsFitToRequirements(Unit* pUnitTarget) const
-{
- if (pUnitTarget->GetTypeId() != TYPEID_UNIT)
- return false;
-
- if (pUnitTarget->GetEntry() != m_uiTargetEntry)
- return false;
-
- switch (m_uiType)
- {
- case ITEM_TARGET_TYPE_CREATURE:
- return pUnitTarget->isAlive();
- case ITEM_TARGET_TYPE_DEAD:
- return !pUnitTarget->isAlive();
- default:
- return false;
- }
-}
-
void Item::BuildUpdate(UpdateDataMapType& data_map)
{
if (Player* owner = GetOwner())
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index de5f8220208..3a197a8347f 100755
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -201,26 +201,8 @@ enum ItemUpdateState
ITEM_REMOVED = 3
};
-enum ItemRequiredTargetType
-{
- ITEM_TARGET_TYPE_CREATURE = 1,
- ITEM_TARGET_TYPE_DEAD = 2
-};
-
-#define MAX_ITEM_REQ_TARGET_TYPE 2
-
#define MAX_ITEM_SPELLS 5
-struct ItemRequiredTarget
-{
- ItemRequiredTarget(ItemRequiredTargetType uiType, uint32 uiTargetEntry) : m_uiType(uiType), m_uiTargetEntry(uiTargetEntry) {}
- ItemRequiredTargetType m_uiType;
- uint32 m_uiTargetEntry;
-
- // helpers
- bool IsFitToRequirements(Unit* pUnitTarget) const;
-};
-
bool ItemCanGoIntoBag(ItemTemplate const* proto, ItemTemplate const* pBagProto);
class Item : public Object