diff options
| author | Spp <spp@jorge.gr> | 2012-11-27 14:15:12 +0100 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2012-11-27 14:15:12 +0100 |
| commit | 404129963c8536ced7c1398827e0f7ef9391bcba (patch) | |
| tree | 683d17c7e8b496f737b741fa393e812bf6866c71 /src/server/game/Conditions/ConditionMgr.cpp | |
| parent | 99e050fb271697ded6bf649c3173e7d04a196a74 (diff) | |
| parent | e9544985608e551d3765dea525d63b30d2c03b17 (diff) | |
Merge branch 'master' into 4.3.4
Conflicts:
src/server/game/Achievements/AchievementMgr.cpp
src/server/game/Achievements/AchievementMgr.h
src/server/game/AuctionHouse/AuctionHouseMgr.cpp
src/server/game/AuctionHouse/AuctionHouseMgr.h
src/server/game/Battlegrounds/BattlegroundMgr.h
src/server/game/Chat/ChatLink.cpp
src/server/game/DataStores/DBCEnums.h
src/server/game/DataStores/DBCStructure.h
src/server/game/DataStores/DBCfmt.h
src/server/game/Entities/Corpse/Corpse.cpp
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Unit/Unit.cpp
src/server/game/Entities/Vehicle/Vehicle.cpp
src/server/game/Groups/Group.cpp
src/server/game/Groups/Group.h
src/server/game/Guilds/Guild.cpp
src/server/game/Handlers/ArenaTeamHandler.cpp
src/server/game/Handlers/AuctionHouseHandler.cpp
src/server/game/Handlers/BattlefieldHandler.cpp
src/server/game/Handlers/GroupHandler.cpp
src/server/game/Handlers/ItemHandler.cpp
src/server/game/Handlers/MovementHandler.cpp
src/server/game/Miscellaneous/SharedDefines.h
src/server/game/Movement/Spline/MoveSpline.cpp
src/server/game/Movement/Spline/MoveSplineFlag.h
src/server/game/Movement/Spline/MovementUtil.cpp
src/server/game/Reputation/ReputationMgr.cpp
src/server/game/Spells/Auras/SpellAuraDefines.h
src/server/game/Spells/Auras/SpellAuraEffects.cpp
src/server/game/Spells/SpellInfo.cpp
src/server/scripts/Commands/cs_disable.cpp
src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
src/server/scripts/EasternKingdoms/redridge_mountains.cpp
src/server/scripts/EasternKingdoms/stormwind_city.cpp
src/server/scripts/EasternKingdoms/tirisfal_glades.cpp
src/server/scripts/Kalimdor/boss_azuregos.cpp
src/server/scripts/Kalimdor/ungoro_crater.cpp
src/server/shared/Packets/ByteBuffer.h
src/tools/map_extractor/dbcfile.h
Diffstat (limited to 'src/server/game/Conditions/ConditionMgr.cpp')
| -rw-r--r--[-rwxr-xr-x] | src/server/game/Conditions/ConditionMgr.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 544e3087614..4fd13a111c9 100755..100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -106,6 +106,12 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) condMeets = unit->getRaceMask() & ConditionValue1; break; } + case CONDITION_GENDER: + { + if (Player* player = object->ToPlayer()) + condMeets = player->getGender() == ConditionValue1; + break; + } case CONDITION_SKILL: { if (Player* player = object->ToPlayer()) @@ -443,6 +449,9 @@ uint32 Condition::GetSearcherTypeMaskForCondition() case CONDITION_SPAWNMASK: mask |= GRID_MAP_TYPE_MASK_ALL; break; + case CONDITION_GENDER: + mask |= GRID_MAP_TYPE_MASK_PLAYER; + break; default: ASSERT(false && "Condition::GetSearcherTypeMaskForCondition - missing condition handling!"); break; @@ -1650,6 +1659,20 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) sLog->outError(LOG_FILTER_SQL, "Race condition has useless data in value3 (%u)!", cond->ConditionValue3); break; } + case CONDITION_GENDER: + { + if (!Player::IsValidGender(uint8(cond->ConditionValue1))) + { + sLog->outError(LOG_FILTER_SQL, "Gender condition has invalid gender (%u), skipped", cond->ConditionValue1); + return false; + } + + if (cond->ConditionValue2) + sLog->outError(LOG_FILTER_SQL, "Gender condition has useless data in value2 (%u)!", cond->ConditionValue2); + if (cond->ConditionValue3) + sLog->outError(LOG_FILTER_SQL, "Gender condition has useless data in value3 (%u)!", cond->ConditionValue3); + break; + } case CONDITION_MAPID: { MapEntry const* me = sMapStore.LookupEntry(cond->ConditionValue1); @@ -1909,9 +1932,6 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) } break; } - case CONDITION_UNUSED_20: - sLog->outError(LOG_FILTER_SQL, "Found ConditionTypeOrReference = CONDITION_UNUSED_20 in `conditions` table - ignoring"); - return false; case CONDITION_UNUSED_21: sLog->outError(LOG_FILTER_SQL, "Found ConditionTypeOrReference = CONDITION_UNUSED_21 in `conditions` table - ignoring"); return false; |
