aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements/CriteriaHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-09-22 00:37:27 +0200
committerShauren <shauren.trinity@gmail.com>2018-09-26 23:08:17 +0200
commit0797da0c13ddab50d1a628c76f1e3bce18b67ed9 (patch)
tree529fc68ad543a04a0077e13542acc8fcdebf2aa7 /src/server/game/Achievements/CriteriaHandler.cpp
parente0309d94c8502d57734998cac769c474f355f7a2 (diff)
Core/DataStores: Fixed remaining db2 structures
Diffstat (limited to 'src/server/game/Achievements/CriteriaHandler.cpp')
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp70
1 files changed, 35 insertions, 35 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 879967ef31f..a491df3254f 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -504,6 +504,8 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT:
case CRITERIA_TYPE_HONOR_LEVEL_REACHED:
case CRITERIA_TYPE_PRESTIGE_REACHED:
+ case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
+ case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE);
break;
// std case: increment at miscValue1
@@ -700,16 +702,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
case CRITERIA_TYPE_REACH_GUILD_LEVEL:
SetCriteriaProgress(criteria, miscValue1, referencePlayer);
break;
- case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
- if (miscValue1 != criteria->Entry->Asset.TransmogSetGroupID)
- continue;
- SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE);
- break;
- case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
- if (!miscValue2 /*login case*/ || miscValue1 != criteria->Entry->Asset.EquipmentSlot)
- continue;
- SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE);
- break;
// FIXME: not triggered in code as result, need to implement
case CRITERIA_TYPE_COMPLETE_RAID:
case CRITERIA_TYPE_PLAY_ARENA:
@@ -1335,22 +1327,22 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CRITERIA_TYPE_WIN_BG:
case CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
case CRITERIA_TYPE_DEATH_AT_MAP:
- if (!miscValue1 || criteria->Entry->Asset.MapID != referencePlayer->GetMapId())
+ if (!miscValue1 || uint32(criteria->Entry->Asset.MapID) != referencePlayer->GetMapId())
return false;
break;
case CRITERIA_TYPE_KILL_CREATURE:
case CRITERIA_TYPE_KILLED_BY_CREATURE:
- if (!miscValue1 || criteria->Entry->Asset.CreatureID != miscValue1)
+ if (!miscValue1 || uint32(criteria->Entry->Asset.CreatureID) != miscValue1)
return false;
break;
case CRITERIA_TYPE_REACH_SKILL_LEVEL:
case CRITERIA_TYPE_LEARN_SKILL_LEVEL:
// update at loading or specific skill update
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.SkillID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SkillID))
return false;
break;
case CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.ZoneID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.ZoneID))
return false;
break;
case CRITERIA_TYPE_DEATH:
@@ -1369,7 +1361,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
//FIXME: work only for instances where max == min for players
- if (map->ToInstanceMap()->GetMaxPlayers() != criteria->Entry->Asset.GroupSize)
+ if (map->ToInstanceMap()->GetMaxPlayers() != uint32(criteria->Entry->Asset.GroupSize))
return false;
break;
}
@@ -1378,7 +1370,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
break;
case CRITERIA_TYPE_DEATHS_FROM:
- if (!miscValue1 || miscValue2 != criteria->Entry->Asset.DamageType)
+ if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.DamageType))
return false;
break;
case CRITERIA_TYPE_COMPLETE_QUEST:
@@ -1386,7 +1378,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
// if miscValues != 0, it contains the questID.
if (miscValue1)
{
- if (miscValue1 != criteria->Entry->Asset.QuestID)
+ if (miscValue1 != uint32(criteria->Entry->Asset.QuestID))
return false;
}
else
@@ -1405,11 +1397,11 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CRITERIA_TYPE_BE_SPELL_TARGET2:
case CRITERIA_TYPE_CAST_SPELL:
case CRITERIA_TYPE_CAST_SPELL2:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.SpellID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.SpellID))
return false;
break;
case CRITERIA_TYPE_LEARN_SPELL:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.SpellID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SpellID))
return false;
if (!referencePlayer->HasSpell(criteria->Entry->Asset.SpellID))
@@ -1418,17 +1410,17 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CRITERIA_TYPE_LOOT_TYPE:
// miscValue1 = itemId - miscValue2 = count of item loot
// miscValue3 = loot_type (note: 0 = LOOT_CORPSE and then it ignored)
- if (!miscValue1 || !miscValue2 || !miscValue3 || miscValue3 != criteria->Entry->Asset.LootType)
+ if (!miscValue1 || !miscValue2 || !miscValue3 || miscValue3 != uint32(criteria->Entry->Asset.LootType))
return false;
break;
case CRITERIA_TYPE_OWN_ITEM:
- if (miscValue1 && criteria->Entry->Asset.ItemID != miscValue1)
+ if (miscValue1 && uint32(criteria->Entry->Asset.ItemID) != miscValue1)
return false;
break;
case CRITERIA_TYPE_USE_ITEM:
case CRITERIA_TYPE_LOOT_ITEM:
case CRITERIA_TYPE_EQUIP_ITEM:
- if (!miscValue1 || criteria->Entry->Asset.ItemID != miscValue1)
+ if (!miscValue1 || uint32(criteria->Entry->Asset.ItemID )!= miscValue1)
return false;
break;
case CRITERIA_TYPE_EXPLORE_AREA:
@@ -1464,19 +1456,19 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
}
case CRITERIA_TYPE_GAIN_REPUTATION:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.FactionID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.FactionID))
return false;
break;
case CRITERIA_TYPE_EQUIP_EPIC_ITEM:
// miscValue1 = itemid miscValue2 = itemSlot
- if (!miscValue1 || miscValue2 != criteria->Entry->Asset.ItemSlot)
+ if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.ItemSlot))
return false;
break;
case CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
case CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
{
// miscValue1 = itemid miscValue2 = diced value
- if (!miscValue1 || miscValue2 != criteria->Entry->Asset.RollValue)
+ if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.RollValue))
return false;
ItemTemplate const* proto = sObjectMgr->GetItemTemplate(uint32(miscValue1));
@@ -1485,7 +1477,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
}
case CRITERIA_TYPE_DO_EMOTE:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.EmoteID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.EmoteID))
return false;
break;
case CRITERIA_TYPE_DAMAGE_DONE:
@@ -1505,12 +1497,12 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
case CRITERIA_TYPE_USE_GAMEOBJECT:
case CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.GameObjectID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.GameObjectID))
return false;
break;
case CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
case CRITERIA_TYPE_LEARN_SKILL_LINE:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.SkillID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SkillID))
return false;
break;
case CRITERIA_TYPE_LOOT_EPIC_ITEM:
@@ -1524,34 +1516,42 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
}
case CRITERIA_TYPE_HK_CLASS:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.ClassID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.ClassID))
return false;
break;
case CRITERIA_TYPE_HK_RACE:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.RaceID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.RaceID))
return false;
break;
case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.ObjectiveId)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.ObjectiveId))
return false;
break;
case CRITERIA_TYPE_HONORABLE_KILL_AT_AREA:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.AreaID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.AreaID))
return false;
break;
case CRITERIA_TYPE_CURRENCY:
if (!miscValue1 || !miscValue2 || int64(miscValue2) < 0
- || miscValue1 != criteria->Entry->Asset.CurrencyID)
+ || miscValue1 != uint32(criteria->Entry->Asset.CurrencyID))
return false;
break;
case CRITERIA_TYPE_WIN_ARENA:
- if (miscValue1 != criteria->Entry->Asset.MapID)
+ if (miscValue1 != uint32(criteria->Entry->Asset.MapID))
return false;
break;
case CRITERIA_TYPE_HIGHEST_TEAM_RATING:
return false;
case CRITERIA_TYPE_PLACE_GARRISON_BUILDING:
- if (miscValue1 != criteria->Entry->Asset.GarrBuildingID)
+ if (miscValue1 != uint32(criteria->Entry->Asset.GarrBuildingID))
+ return false;
+ break;
+ case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
+ if (miscValue1 != uint32(criteria->Entry->Asset.TransmogSetGroupID))
+ return false;
+ break;
+ case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
+ if (!miscValue2 /*login case*/ || miscValue1 != uint32(criteria->Entry->Asset.EquipmentSlot))
return false;
break;
default: