From 0417581bd5bc2bd434777ac6d65d53675e2acc9f Mon Sep 17 00:00:00 2001 From: Antz Date: Thu, 9 Jan 2020 15:16:08 +0000 Subject: [PATCH] Project tidy up and sync pt2 --- src/game/BattleGround/BattleGroundAV.cpp | 3 + src/game/BattleGround/BattleGroundMgr.h | 2 +- src/game/Object/Creature.cpp | 9 +- src/game/Object/Creature.h | 4 +- src/game/Object/CreatureAI.cpp | 4 +- src/game/Object/GameObject.cpp | 12 +- src/game/Object/Object.cpp | 191 ++++++++++++----------- src/game/Object/ObjectAccessor.cpp | 1 - src/game/Object/ObjectMgr.cpp | 15 +- src/game/Object/Pet.cpp | 5 - src/game/Object/Pet.h | 2 - src/game/Object/Player.cpp | 72 +-------- src/game/Object/Player.h | 5 - src/game/Object/PlayerLogger.cpp | 2 +- src/game/Object/PlayerLogger.h | 3 +- src/game/Object/ReputationMgr.cpp | 7 +- src/game/Object/SpellMgr.cpp | 14 +- src/game/Object/StatSystem.cpp | 4 - src/game/Object/Unit.cpp | 120 +++++++------- src/game/Object/Unit.h | 16 +- 20 files changed, 192 insertions(+), 299 deletions(-) diff --git a/src/game/BattleGround/BattleGroundAV.cpp b/src/game/BattleGround/BattleGroundAV.cpp index a3bd11a4..35818cdc 100644 --- a/src/game/BattleGround/BattleGroundAV.cpp +++ b/src/game/BattleGround/BattleGroundAV.cpp @@ -812,6 +812,9 @@ void BattleGroundAV::Reset() InitNode(BG_AV_NODES_SNOWFALL_GRAVE, BG_AV_TEAM_NEUTRAL, false); // give snowfall neutral owner } +/// +/// Gets the premature finish winning team. +/// Team BattleGroundAV::GetPrematureWinner() { int32 hordeScore = m_TeamScores[TEAM_INDEX_HORDE]; diff --git a/src/game/BattleGround/BattleGroundMgr.h b/src/game/BattleGround/BattleGroundMgr.h index 32d8d692..aa45a99e 100644 --- a/src/game/BattleGround/BattleGroundMgr.h +++ b/src/game/BattleGround/BattleGroundMgr.h @@ -171,7 +171,6 @@ class BattleGroundQueue * @param bgTypeId * @param bracketId * @param isPremade - * @return GroupQueueInfo */ GroupQueueInfo* AddGroup(Player* leader, Group* group, BattleGroundTypeId bgTypeId, BattleGroundBracketId bracketId, bool isPremade); /** @@ -540,6 +539,7 @@ class BattleGroundMgr * @param Team2StartLocY * @param Team2StartLocZ * @param Team2StartLocO + * @param StartMaxDist * @return uint32 */ uint32 CreateBattleGround(BattleGroundTypeId bgTypeId, uint32 MinPlayersPerTeam, uint32 MaxPlayersPerTeam, uint32 LevelMin, uint32 LevelMax, char const* BattleGroundName, uint32 MapID, float Team1StartLocX, float Team1StartLocY, float Team1StartLocZ, float Team1StartLocO, float Team2StartLocX, float Team2StartLocY, float Team2StartLocZ, float Team2StartLocO, float StartMaxDist); diff --git a/src/game/Object/Creature.cpp b/src/game/Object/Creature.cpp index 543754cf..44b5c7bc 100644 --- a/src/game/Object/Creature.cpp +++ b/src/game/Object/Creature.cpp @@ -1262,7 +1262,7 @@ void Creature::SelectLevel(uint32 forcedLevel /*= USE_DEFAULT_DATABASE_LEVEL*/) uint32 rank = IsPet() ? 0 : cinfo->Rank; // TODO :: IsPet probably not needed here - // level + // level uint32 level = forcedLevel; uint32 const minlevel = cinfo->MinLevel; uint32 const maxlevel = cinfo->MaxLevel; @@ -2131,9 +2131,6 @@ bool Creature::LoadCreatureAddon(bool reload) // 3 StandMiscFlags SetByteValue(UNIT_FIELD_BYTES_1, 0, uint8(cainfo->bytes1 & 0xFF)); - // SetByteValue(UNIT_FIELD_BYTES_1, 1, uint8((cainfo->bytes1 >> 8) & 0xFF)); - // SetByteValue(UNIT_FIELD_BYTES_1, 1, 0); - // SetByteValue(UNIT_FIELD_BYTES_2, 2, 0); SetByteValue(UNIT_FIELD_BYTES_1, 3, uint8((cainfo->bytes1 >> 24) & 0xFF)); } @@ -2684,8 +2681,7 @@ void Creature::AddToRemoveListInMaps(uint32 db_guid, CreatureData const* data) struct SpawnCreatureInMapsWorker { - SpawnCreatureInMapsWorker(uint32 guid, CreatureData const* data) - : i_guid(guid), i_data(data) {} + SpawnCreatureInMapsWorker(uint32 guid, CreatureData const* data) : i_guid(guid), i_data(data) {} void operator()(Map* map) { @@ -2693,7 +2689,6 @@ struct SpawnCreatureInMapsWorker if (map->IsLoaded(i_data->posX, i_data->posY)) { Creature* pCreature = new Creature; - // DEBUG_LOG("Spawning creature %u",*itr); if (!pCreature->LoadFromDB(i_guid, map)) { delete pCreature; diff --git a/src/game/Object/Creature.h b/src/game/Object/Creature.h index 48698bf2..b24587eb 100644 --- a/src/game/Object/Creature.h +++ b/src/game/Object/Creature.h @@ -536,9 +536,9 @@ class Creature : public Unit bool CanWalk() const { return GetCreatureInfo()->InhabitType & INHABIT_GROUND; } virtual bool CanSwim() const override { return GetCreatureInfo()->InhabitType & INHABIT_WATER; } - bool IsSwimming() const { return (m_movementInfo.HasMovementFlag((MovementFlags)(MOVEFLAG_SWIMMING))); } + bool IsSwimming() const { return (m_movementInfo.HasMovementFlag((MovementFlags)(MOVEFLAG_SWIMMING))); } virtual bool CanFly() const override { return (GetCreatureInfo()->InhabitType & INHABIT_AIR) || m_movementInfo.HasMovementFlag((MovementFlags)(MOVEFLAG_LEVITATING | MOVEFLAG_CAN_FLY)); } - bool IsFlying() const { return (m_movementInfo.HasMovementFlag((MovementFlags)(MOVEFLAG_FLYING|MOVEFLAG_LEVITATING))); } + bool IsFlying() const { return (m_movementInfo.HasMovementFlag((MovementFlags)(MOVEFLAG_FLYING | MOVEFLAG_LEVITATING))); } bool IsTrainerOf(Player* player, bool msg) const; bool CanInteractWithBattleMaster(Player* player, bool msg) const; bool CanTrainAndResetTalentsOf(Player* pPlayer) const; diff --git a/src/game/Object/CreatureAI.cpp b/src/game/Object/CreatureAI.cpp index 008d3537..7f1376b7 100644 --- a/src/game/Object/CreatureAI.cpp +++ b/src/game/Object/CreatureAI.cpp @@ -169,7 +169,7 @@ void CreatureAI::SetCombatMovementFlag(uint8 flag, bool setFlag) { m_combatMovement &= ~flag; if (m_combatMovement == 0) - m_creature->addUnitState(UNIT_STAT_NO_COMBAT_MOVEMENT); + { m_creature->addUnitState(UNIT_STAT_NO_COMBAT_MOVEMENT); } } } @@ -205,7 +205,7 @@ void CreatureAI::HandleMovementOnAttackStart(Unit* victim) { MotionMaster* creatureMotion = m_creature->GetMotionMaster(); MovementGeneratorType mmgen = creatureMotion->GetCurrentMovementGeneratorType(); - + if (IsCombatMovement()) { creatureMotion->MoveChase(victim, m_attackDistance, m_attackAngle); } diff --git a/src/game/Object/GameObject.cpp b/src/game/Object/GameObject.cpp index 23cfa54b..d6099e95 100644 --- a/src/game/Object/GameObject.cpp +++ b/src/game/Object/GameObject.cpp @@ -475,22 +475,22 @@ void GameObject::Update(uint32 update_diff, uint32 p_time) if (visualGO) visualGO->SetLootState(GO_JUST_DEACTIVATED); } - + if (!trapEntry) break; GameObjectInfo const* trapInfo = sGOStorage.LookupEntry(trapEntry); if (!trapInfo || trapInfo->type != GAMEOBJECT_TYPE_TRAP) break; - + float range = 0.5f; - + GameObject* trapGO = NULL; MaNGOS::NearestGameObjectEntryInObjectRangeCheck go_check(*this, trapEntry, range); MaNGOS::GameObjectLastSearcher checker(trapGO, go_check); Cell::VisitGridObjects(this, checker, range); - + // found correct GO if (trapGO) trapGO->SetLootState(GO_JUST_DEACTIVATED); @@ -1167,7 +1167,7 @@ void GameObject::Use(Unit* user) // FIXME: when GO casting will be implemented trap must cast spell to target if (goInfo->trap.spellId) - { caster->CastSpell(user, goInfo->trap.spellId, true, NULL, NULL, GetObjectGuid()); } + { caster->CastSpell(user, goInfo->trap.spellId, true, NULL, NULL, GetObjectGuid()); } // use template cooldown if provided m_cooldownTime = time(NULL) + (goInfo->trap.cooldown ? goInfo->trap.cooldown : uint32(4)); @@ -1874,7 +1874,7 @@ uint32 GameObject::RollMineralVein(uint32 entry) //Maybe incedicite bloodst default: //default case for copper or not listet special veins entrynew = entry; - } + } return entrynew; } diff --git a/src/game/Object/Object.cpp b/src/game/Object/Object.cpp index c7c5fef5..03a22682 100644 --- a/src/game/Object/Object.cpp +++ b/src/game/Object/Object.cpp @@ -295,8 +295,11 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint8 updateFlags) const data->appendPackGUID(0); } + // 0x2 if (updateFlags & UPDATEFLAG_TRANSPORT) - *data << uint32(WorldTimer::getMSTime()); + { + *data << uint32(WorldTimer::getMSTime()); // ms time + } } void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, UpdateMask* updateMask, Player* target) const @@ -324,79 +327,79 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, UpdateMask* u { for (uint16 index = 0; index < m_valuesCount; ++index) { - if(updateMask->GetBit(index)) - { - if (index == UNIT_NPC_FLAGS) + if (updateMask->GetBit(index)) { - uint32 appendValue = m_uint32Values[index]; - - if (GetTypeId() == TYPEID_UNIT) + if (index == UNIT_NPC_FLAGS) { - if (appendValue & UNIT_NPC_FLAG_TRAINER) + uint32 appendValue = m_uint32Values[index]; + + if (GetTypeId() == TYPEID_UNIT) { - if (!((Creature*)this)->IsTrainerOf(target, false)) - { appendValue &= ~UNIT_NPC_FLAG_TRAINER; } - } - - if (appendValue & UNIT_NPC_FLAG_STABLEMASTER) - { - if (target->getClass() != CLASS_HUNTER) - { appendValue &= ~UNIT_NPC_FLAG_STABLEMASTER; } - } - } - - *data << uint32(appendValue); - } - // FIXME: Some values at server stored in float format but must be sent to client in uint32 format - else if (index >= UNIT_FIELD_BASEATTACKTIME && index <= UNIT_FIELD_RANGEDATTACKTIME) - { - // convert from float to uint32 and send - *data << uint32(m_floatValues[index] < 0 ? 0 : m_floatValues[index]); - } - - // there are some float values which may be negative or can't get negative due to other checks - else if ((index >= PLAYER_FIELD_NEGSTAT0 && index <= PLAYER_FIELD_NEGSTAT4) || - (index >= PLAYER_FIELD_RESISTANCEBUFFMODSPOSITIVE && index <= (PLAYER_FIELD_RESISTANCEBUFFMODSPOSITIVE + 6)) || - (index >= PLAYER_FIELD_RESISTANCEBUFFMODSNEGATIVE && index <= (PLAYER_FIELD_RESISTANCEBUFFMODSNEGATIVE + 6)) || - (index >= PLAYER_FIELD_POSSTAT0 && index <= PLAYER_FIELD_POSSTAT4)) - { - *data << uint32(m_floatValues[index]); - } - - // Gamemasters should be always able to select units - remove not selectable flag - else if (index == UNIT_FIELD_FLAGS && target->isGameMaster()) - { - *data << (m_uint32Values[index] & ~UNIT_FLAG_NOT_SELECTABLE); - } - /* Hide loot animation for players that aren't permitted to loot the corpse */ - else if (index == UNIT_DYNAMIC_FLAGS && GetTypeId() == TYPEID_UNIT) - { - uint32 send_value = m_uint32Values[index]; - - /* Initiate pointer to creature so we can check loot */ - if (Creature* my_creature = (Creature*)this) - /* If the creature is NOT fully looted */ - if (!my_creature->loot.isLooted()) - /* If the lootable flag is NOT set */ - if (!(send_value & UNIT_DYNFLAG_LOOTABLE)) + if (appendValue & UNIT_NPC_FLAG_TRAINER) { - /* Update it on the creature */ - my_creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); - /* Update it in the packet */ - send_value = send_value | UNIT_DYNFLAG_LOOTABLE; + if (!((Creature*)this)->IsTrainerOf(target, false)) + { appendValue &= ~UNIT_NPC_FLAG_TRAINER; } } - /* If we're not allowed to loot the target, destroy the lootable flag */ - if (!target->isAllowedToLoot((Creature*)this)) - if (send_value & UNIT_DYNFLAG_LOOTABLE) - { send_value = send_value & ~UNIT_DYNFLAG_LOOTABLE; } + if (appendValue & UNIT_NPC_FLAG_STABLEMASTER) + { + if (target->getClass() != CLASS_HUNTER) + { appendValue &= ~UNIT_NPC_FLAG_STABLEMASTER; } + } + } - /* If we are allowed to loot it and mob is tapped by us, destroy the tapped flag */ - bool is_tapped = target->IsTappedByMeOrMyGroup((Creature*)this); + *data << uint32(appendValue); + } + // FIXME: Some values at server stored in float format but must be sent to client in uint32 format + else if (index >= UNIT_FIELD_BASEATTACKTIME && index <= UNIT_FIELD_RANGEDATTACKTIME) + { + // convert from float to uint32 and send + *data << uint32(m_floatValues[index] < 0 ? 0 : m_floatValues[index]); + } - /* If the creature has tapped flag but is tapped by us, remove the flag */ - if (send_value & UNIT_DYNFLAG_TAPPED && is_tapped) - { send_value = send_value & ~UNIT_DYNFLAG_TAPPED; } + // there are some float values which may be negative or can't get negative due to other checks + else if ((index >= PLAYER_FIELD_NEGSTAT0 && index <= PLAYER_FIELD_NEGSTAT4) || + (index >= PLAYER_FIELD_RESISTANCEBUFFMODSPOSITIVE && index <= (PLAYER_FIELD_RESISTANCEBUFFMODSPOSITIVE + 6)) || + (index >= PLAYER_FIELD_RESISTANCEBUFFMODSNEGATIVE && index <= (PLAYER_FIELD_RESISTANCEBUFFMODSNEGATIVE + 6)) || + (index >= PLAYER_FIELD_POSSTAT0 && index <= PLAYER_FIELD_POSSTAT4)) + { + *data << uint32(m_floatValues[index]); + } + + // Gamemasters should be always able to select units - remove not selectable flag + else if (index == UNIT_FIELD_FLAGS && target->isGameMaster()) + { + *data << (m_uint32Values[index] & ~UNIT_FLAG_NOT_SELECTABLE); + } + /* Hide loot animation for players that aren't permitted to loot the corpse */ + else if (index == UNIT_DYNAMIC_FLAGS && GetTypeId() == TYPEID_UNIT) + { + uint32 send_value = m_uint32Values[index]; + + /* Initiate pointer to creature so we can check loot */ + if (Creature* my_creature = (Creature*)this) + /* If the creature is NOT fully looted */ + if (!my_creature->loot.isLooted()) + /* If the lootable flag is NOT set */ + if (!(send_value & UNIT_DYNFLAG_LOOTABLE)) + { + /* Update it on the creature */ + my_creature->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + /* Update it in the packet */ + send_value = send_value | UNIT_DYNFLAG_LOOTABLE; + } + + /* If we're not allowed to loot the target, destroy the lootable flag */ + if (!target->isAllowedToLoot((Creature*)this)) + if (send_value & UNIT_DYNFLAG_LOOTABLE) + { send_value = send_value & ~UNIT_DYNFLAG_LOOTABLE; } + + /* If we are allowed to loot it and mob is tapped by us, destroy the tapped flag */ + bool is_tapped = target->IsTappedByMeOrMyGroup((Creature*)this); + + /* If the creature has tapped flag but is tapped by us, remove the flag */ + if (send_value & UNIT_DYNFLAG_TAPPED && is_tapped) + { send_value = send_value & ~UNIT_DYNFLAG_TAPPED; } // Checking SPELL_AURA_EMPATHY and caster if (send_value & UNIT_DYNFLAG_SPECIALINFO && ((Unit*)this)->IsAlive()) @@ -414,48 +417,48 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer* data, UpdateMask* u send_value &= ~UNIT_DYNFLAG_SPECIALINFO; } - *data << send_value; + *data << send_value; + } + else + { + // send in current format (float as float, uint32 as uint32) + *data << m_uint32Values[index]; + } } - else - { - // send in current format (float as float, uint32 as uint32) - *data << m_uint32Values[index]; - } - } } } else if (isType(TYPEMASK_GAMEOBJECT)) // gameobject case { for (uint16 index = 0; index < m_valuesCount; ++index) { - if (updateMask->GetBit(index)) - { - // send in current format (float as float, uint32 as uint32) - if (index == GAMEOBJECT_DYN_FLAGS) + if (updateMask->GetBit(index)) { - if (IsActivateToQuest) + // send in current format (float as float, uint32 as uint32) + if (index == GAMEOBJECT_DYN_FLAGS) { - switch (((GameObject*)this)->GetGoType()) + if (IsActivateToQuest) { - case GAMEOBJECT_TYPE_QUESTGIVER: - case GAMEOBJECT_TYPE_CHEST: - case GAMEOBJECT_TYPE_GENERIC: - case GAMEOBJECT_TYPE_SPELL_FOCUS: - case GAMEOBJECT_TYPE_GOOBER: - *data << uint16(GO_DYNFLAG_LO_ACTIVATE); - *data << uint16(0); - break; - default: - *data << uint32(0); // unknown, not happen. - break; + switch (((GameObject*)this)->GetGoType()) + { + case GAMEOBJECT_TYPE_QUESTGIVER: + case GAMEOBJECT_TYPE_CHEST: + case GAMEOBJECT_TYPE_GENERIC: + case GAMEOBJECT_TYPE_SPELL_FOCUS: + case GAMEOBJECT_TYPE_GOOBER: + *data << uint16(GO_DYNFLAG_LO_ACTIVATE); + *data << uint16(0); + break; + default: + *data << uint32(0); // unknown, not happen. + break; + } } + else + { *data << uint32(0); } // disable quest object } else - { *data << uint32(0); } // disable quest object + { *data << m_uint32Values[index]; } // other cases } - else - { *data << m_uint32Values[index]; } // other cases - } } } else // other objects case (no special index checks) diff --git a/src/game/Object/ObjectAccessor.cpp b/src/game/Object/ObjectAccessor.cpp index 3550700f..a4a7f0c3 100644 --- a/src/game/Object/ObjectAccessor.cpp +++ b/src/game/Object/ObjectAccessor.cpp @@ -41,7 +41,6 @@ INSTANTIATE_SINGLETON_2(ObjectAccessor, CLASS_LOCK); INSTANTIATE_CLASS_MUTEX(ObjectAccessor, ACE_Recursive_Thread_Mutex); - ObjectAccessor::ObjectAccessor() : i_playerMap(), i_corpseMap(), i_corpseGuard() { } diff --git a/src/game/Object/ObjectMgr.cpp b/src/game/Object/ObjectMgr.cpp index 7713a9db..a2f260e3 100644 --- a/src/game/Object/ObjectMgr.cpp +++ b/src/game/Object/ObjectMgr.cpp @@ -186,10 +186,10 @@ ObjectMgr::~ObjectMgr() { delete[] playerClassInfo[class_].levelInfo; } for (int race = 0; race < MAX_RACES; ++race) - { - for (int class_ = 0; class_ < MAX_CLASSES; ++class_) - { delete[] playerInfo[race][class_].levelInfo; } - } + { + for (int class_ = 0; class_ < MAX_CLASSES; ++class_) + { delete[] playerInfo[race][class_].levelInfo; } + } // free objects for (GroupMap::iterator itr = mGroupMap.begin(); itr != mGroupMap.end(); ++itr) @@ -1212,10 +1212,10 @@ void ObjectMgr::LoadCreatures() } if (gameEvent == 0 && GuidPoolId == 0 && EntryPoolId == 0) // if not this is to be managed by GameEvent System or Pool system - { AddCreatureToGrid(guid, &data); } + { AddCreatureToGrid(guid, &data); } if (cInfo->ExtraFlags & CREATURE_EXTRA_FLAG_ACTIVE) - { m_activeCreatures.insert(ActiveCreatureGuidsOnMap::value_type(data.mapid, guid)); } + { m_activeCreatures.insert(ActiveCreatureGuidsOnMap::value_type(data.mapid, guid)); } ++count; } @@ -1705,8 +1705,6 @@ void ObjectMgr::LoadItemPrototypes() if (proto->RequiredReputationRank == MIN_REPUTATION_RANK) { sLog.outErrorDb("Item (Entry: %u) has min. reputation rank in RequiredReputationRank (0) but RequiredReputationFaction > 0, faction setting is useless.", i); } } - // else if(proto->RequiredReputationRank > MIN_REPUTATION_RANK) - // sLog.outErrorDb("Item (Entry: %u) has RequiredReputationFaction ==0 but RequiredReputationRank > 0, rank setting is useless.",i); if (proto->Stackable == 0) { @@ -8276,7 +8274,6 @@ void ObjectMgr::LoadGossipMenuItems(std::set& gossipScriptSet) gMenuItem.action_poi_id = fields[7].GetUInt32(); gMenuItem.action_script_id = fields[8].GetUInt32(); gMenuItem.box_coded = fields[9].GetUInt8() != 0; - // gMenuItem.box_money = fields[10].GetUInt32(); gMenuItem.box_text = fields[11].GetCppString(); gMenuItem.conditionId = fields[12].GetUInt16(); diff --git a/src/game/Object/Pet.cpp b/src/game/Object/Pet.cpp index 4edd700a..9cc1ac6b 100644 --- a/src/game/Object/Pet.cpp +++ b/src/game/Object/Pet.cpp @@ -411,9 +411,6 @@ void Pet::SavePetToDB(PetSaveMode mode) _SaveSpellCooldowns(); _SaveAuras(); - //uint32 loyalty = 1; - //if (getPetType() != HUNTER_PET) - // { loyalty = GetLoyaltyLevel(); } uint32 ownerLow = GetOwnerGuid().GetCounter(); // remove current data @@ -1308,7 +1305,6 @@ void Pet::_LoadSpellCooldowns() WorldPacket data(SMSG_SPELL_COOLDOWN, (8 + size_t(result->GetRowCount()) * 8)); data << ObjectGuid(GetObjectGuid()); - //[-ZERO] data << uint8(0x0); // flags (0x1, 0x2) do { @@ -2010,7 +2006,6 @@ void Pet::CastOwnerTalentAuras() if (!GetOwner() || GetOwner()->GetTypeId() != TYPEID_PLAYER) { return; } - //Player* pOwner = static_cast(GetOwner()); // Add below code handling spells cast by pet when owner/player has aura from talent } diff --git a/src/game/Object/Pet.h b/src/game/Object/Pet.h index a670d911..0d7ab783 100644 --- a/src/game/Object/Pet.h +++ b/src/game/Object/Pet.h @@ -124,8 +124,6 @@ enum PetTalk PET_TALK_ATTACK = 1 }; - -// [-ZERO] Need recheck and drop not existed cases enum PetNameInvalidReason { // custom, not send diff --git a/src/game/Object/Player.cpp b/src/game/Object/Player.cpp index baa6dd10..0582e273 100644 --- a/src/game/Object/Player.cpp +++ b/src/game/Object/Player.cpp @@ -89,7 +89,6 @@ #define SKILL_PERM_BONUS(x) int16(PAIR32_HIPART(x)) #define MAKE_SKILL_BONUS(t, p) MAKE_PAIR32(t,p) -// [-ZERO] need recheck, some values known not existed in 1.12.1 enum CharacterFlags { CHARACTER_FLAG_NONE = 0x00000000, @@ -2728,11 +2727,6 @@ void Player::SendMailResult(uint32 mailId, MailResponseType mailAction, MailResp data << (uint32) mailError; if (mailError == MAIL_ERR_EQUIP_ERROR) { data << (uint32) equipError; } - //else if (mailAction == MAIL_ITEM_TAKEN) // [-ZERO] - //{ - // data << (uint32) item_guid; // item guid low? - // data << (uint32) item_count; // item count? - //} GetSession()->SendPacket(&data); } @@ -3622,7 +3616,6 @@ void Player::InitVisibleBits() updateVisualBits.SetBit(UNIT_FIELD_FACTIONTEMPLATE); updateVisualBits.SetBit(UNIT_FIELD_BYTES_0); updateVisualBits.SetBit(UNIT_FIELD_FLAGS); - //[-ZERO] updateVisualBits.SetBit(UNIT_FIELD_FLAGS_2); for (uint16 i = UNIT_FIELD_AURA; i < UNIT_FIELD_AURASTATE; ++i) { updateVisualBits.SetBit(i); } updateVisualBits.SetBit(UNIT_FIELD_AURASTATE); @@ -3772,7 +3765,6 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell SpellEntry const* spell = sSpellStore.LookupEntry(trainer_spell->spell); SpellEntry const* TriggerSpell = sSpellStore.LookupEntry(spell->EffectTriggerSpell[0]); - // known spell if (HasSpell(TriggerSpell->Id)) { return TRAINER_SPELL_GRAY; } @@ -3805,7 +3797,6 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell { return TRAINER_SPELL_RED; } // exist, already checked at loading - // SpellEntry const* spell = sSpellStore.LookupEntry(trainer_spell->spell); // secondary prof. or not prof. spell uint32 skill = spell->EffectMiscValue[1]; @@ -4126,20 +4117,7 @@ void Player::SetLevitate(bool /*enable*/) void Player::SetCanFly(bool /*enable*/) { // TODO: check if there is something similar for 1.12.x (99% chance there is not) -// WorldPacket data; -// if (enable) -// data.Initialize(SMSG_MOVE_SET_CAN_FLY, 12); -// else -// data.Initialize(SMSG_MOVE_UNSET_CAN_FLY, 12); -// -// data << GetPackGUID(); -// data << uint32(0); // unk -// SendMessageToSet(&data, true); -// -// data.Initialize(MSG_MOVE_UPDATE_CAN_FLY, 64); -// data << GetPackGUID(); -// m_movementInfo.Write(data); -// SendMessageToSet(&data, false); + } void Player::SetFeatherFall(bool enable) @@ -8599,31 +8577,7 @@ InventoryResult Player::_CanTakeMoreSimilarItems(uint32 entry, uint32 count, Ite bool Player::HasItemTotemCategory(uint32 /*TotemCategory*/) const { - /*[-ZERO] Item *pItem; - for(uint8 i = EQUIPMENT_SLOT_START; i < INVENTORY_SLOT_ITEM_END; ++i) - { - pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ); - if( pItem && IsTotemCategoryCompatiableWith(pItem->GetProto()->TotemCategory,TotemCategory )) - return true; - } - for(uint8 i = KEYRING_SLOT_START; i < KEYRING_SLOT_END; ++i) - { - pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i ); - if( pItem && IsTotemCategoryCompatiableWith(pItem->GetProto()->TotemCategory,TotemCategory )) - return true; - } - for(uint8 i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i) - { - if(Bag *pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, i )) - { - for(uint32 j = 0; j < pBag->GetBagSize(); ++j) - { - pItem = GetItemByPos( i, j ); - if( pItem && IsTotemCategoryCompatiableWith(pItem->GetProto()->TotemCategory,TotemCategory )) - return true; - } - } - } */ + return false; } @@ -10288,7 +10242,7 @@ void Player::VisualizeItem(uint8 slot, Item* pItem) // check also BIND_WHEN_PICKED_UP and BIND_QUEST_ITEM for .additem or .additemset case by GM (not binded at adding to inventory) ItemPrototype const* itemProto = pItem->GetProto(); if (itemProto->Bonding == BIND_WHEN_EQUIPPED || itemProto->Bonding == BIND_WHEN_PICKED_UP || itemProto->Bonding == BIND_QUEST_ITEM) - pItem->SetBinding(true); + { pItem->SetBinding(true); } DEBUG_LOG("STORAGE: EquipItem slot = %u, item = %u", slot, pItem->GetEntry()); @@ -11207,8 +11161,6 @@ void Player::SendBuyError(BuyResult msg, Creature* pCreature, uint32 item, uint3 WorldPacket data(SMSG_BUY_FAILED, (8 + 4 + 1)); data << (pCreature ? pCreature->GetObjectGuid() : ObjectGuid()); data << uint32(item); - //if (param > 0) - // { data << uint32(param); } // [-ZERO] data << uint8(msg); GetSession()->SendPacket(&data); } @@ -11219,8 +11171,6 @@ void Player::SendSellError(SellResult msg, Creature* pCreature, ObjectGuid itemG WorldPacket data(SMSG_SELL_ITEM, (8 + 8 + /*(param ? 4 : 0) +*/ 1)); // last check [ZERO] data << (pCreature ? pCreature->GetObjectGuid() : ObjectGuid()); data << ObjectGuid(itemGuid); - //if (param > 0) - // { data << uint32(param); } // [-ZERO] data << uint8(msg); GetSession()->SendPacket(&data); } @@ -11566,7 +11516,6 @@ void Player::SendNewItem(Item* item, uint32 count, bool received, bool created, data << uint32(item->GetItemSuffixFactor()); // SuffixFactor data << uint32(item->GetItemRandomPropertyId()); // random item property id data << uint32(count); // count of items - //data << uint32(GetItemCount(item->GetEntry())); // [-ZERO] count of items in inventory if (broadcast && GetGroup()) { GetGroup()->BroadcastPacket(&data, true); } @@ -15202,7 +15151,6 @@ void Player::_LoadBoundInstances(QueryResult* result) InstancePlayerBind* Player::GetBoundInstance(uint32 mapid) { - //const MapEntry* entry = sMapStore.LookupEntry(mapid); BoundInstancesMap::iterator itr = m_boundInstances.find(mapid); if (itr != m_boundInstances.end()) @@ -15305,7 +15253,6 @@ void Player::SendRaidInfo() size_t p_counter = data.wpos(); data << uint32(counter); // placeholder - //time_t now = time(NULL); for (BoundInstancesMap::const_iterator itr = m_boundInstances.begin(); itr != m_boundInstances.end(); ++itr) { @@ -17824,7 +17771,6 @@ inline void BeforeVisibilityDestroy(WorldObject* o, Player* p) } } -//2 params version (2p) void Player::UpdateVisibilityOf(WorldObject const* viewPoint, WorldObject* target) { if (HaveAtClient(target)) @@ -17990,7 +17936,7 @@ void Player::SendInitialPacketsBeforeAddToMap() /* This packet seems useless... * TODO: Work out if we need SMSG_SET_REST_START */ WorldPacket data(SMSG_SET_REST_START, 4); - data << uint32(0); // rest state time + data << uint32(0); // unknown, may be rest state time or experience GetSession()->SendPacket(&data); /* Send information about player's home binding */ @@ -18034,7 +17980,7 @@ void Player::SendInitialPacketsAfterAddToMap() UpdateZone(newzone, newarea); // This calls SendInitWorldStates /* Login effect spell */ - CastSpell(this, 836, true); + CastSpell(this, 836, true); // LOGINEFFECT /* Sets aura effects that need to be sent after the player is added to the map * We use SendMessageToSet so that it's sent to everyone, including the player @@ -18548,19 +18494,14 @@ void Player::UpdateForQuestWorldObjects() if (m_clientGUIDs.empty()) { return; } - // UpdateData udata; - // WorldPacket packet; for (GuidSet::const_iterator itr = m_clientGUIDs.begin(); itr != m_clientGUIDs.end(); ++itr) { if (itr->IsGameObject()) { if (GameObject* obj = GetMap()->GetGameObject(*itr)) - // obj->BuildValuesUpdateBlockForPlayer(&udata,this); { obj->SendCreateUpdateToPlayer(this); } //[-ZERO] we must send create packet because of GAMEOBJECT_FLAGS change (not dynamic) - probably incorrect } } - // udata.BuildPacket(&packet); - // GetSession()->SendPacket(&packet); } void Player::SummonIfPossible(bool agree) @@ -18691,9 +18632,6 @@ bool Player::HasItemFitToSpellReqirements(SpellEntry const* spellInfo, Item cons bool Player::CanNoReagentCast(SpellEntry const* /*spellInfo*/) const { // don't take reagents for spells with SPELL_ATTR_EX5_NO_REAGENT_WHILE_PREP -//[-ZERO] if (spellInfo->AttributesEx5 & SPELL_ATTR_EX5_NO_REAGENT_WHILE_PREP && -// HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREPARATION)) -// return true; return false; } diff --git a/src/game/Object/Player.h b/src/game/Object/Player.h index c3a192f3..379294ae 100644 --- a/src/game/Object/Player.h +++ b/src/game/Object/Player.h @@ -332,11 +332,6 @@ enum RaidGroupError { ERR_RAID_GROUP_REQUIRED = 1, ERR_RAID_GROUP_FULL = 2 - //ERR_RAID_GROUP_NONE = 0, - //ERR_RAID_GROUP_LOWLEVEL = 1, - //ERR_RAID_GROUP_ONLY = 2, - //ERR_RAID_GROUP_FULL = 3, - //ERR_RAID_GROUP_REQUIREMENTS_UNMATCH = 4 }; enum DrunkenState diff --git a/src/game/Object/PlayerLogger.cpp b/src/game/Object/PlayerLogger.cpp index 5b3e3316..18496d24 100644 --- a/src/game/Object/PlayerLogger.cpp +++ b/src/game/Object/PlayerLogger.cpp @@ -2,7 +2,7 @@ * MaNGOS is a full featured server for World of Warcraft, supporting * the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8 * -* Copyright (C) 2005-2020 MaNGOS +* Copyright (C) 2005-2020 MaNGOS * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/game/Object/PlayerLogger.h b/src/game/Object/PlayerLogger.h index ce82702b..65ff5227 100644 --- a/src/game/Object/PlayerLogger.h +++ b/src/game/Object/PlayerLogger.h @@ -2,7 +2,7 @@ * MaNGOS is a full featured server for World of Warcraft, supporting * the following clients: 1.12.x, 2.4.3, 3.3.5a, 4.3.4a and 5.4.8 * -* Copyright (C) 2005-2020 MaNGOS +* Copyright (C) 2005-2020 MaNGOS * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,6 +27,7 @@ #include "Platform/Define.h" #include + class Player; class ObjectGuid; diff --git a/src/game/Object/ReputationMgr.cpp b/src/game/Object/ReputationMgr.cpp index 94319535..7f76d61c 100644 --- a/src/game/Object/ReputationMgr.cpp +++ b/src/game/Object/ReputationMgr.cpp @@ -244,7 +244,7 @@ bool ReputationMgr::SetReputation(FactionEntry const* factionEntry, int32 standi #endif /* ENABLE_ELUNA */ bool res = false; - // if spillover definition exists in DB + // if spillover definition exists in DB, override DBC if (const RepSpilloverTemplate* repTemplate = sObjectMgr.GetRepSpilloverTemplate(factionEntry->ID)) { for (uint32 i = 0; i < MAX_SPILLOVER_FACTIONS; ++i) @@ -370,11 +370,6 @@ void ReputationMgr::SetAtWar(FactionState* faction, bool atWar) else { faction->Flags &= ~FACTION_FLAG_AT_WAR; } - //WorldPacket data(SMSG_SET_FACTION_ATWAR, 4 + 1); - //data << uint32(faction->ID); - //data << uint8(faction->Flags & FACTION_FLAG_AT_WAR); // the client tests only FACTION_FLAG_AT_WAR - //m_player->SendDirectMessage(&data); - faction->needSend = true; faction->needSave = true; } diff --git a/src/game/Object/SpellMgr.cpp b/src/game/Object/SpellMgr.cpp index b5a0c715..a8d71e0f 100644 --- a/src/game/Object/SpellMgr.cpp +++ b/src/game/Object/SpellMgr.cpp @@ -816,14 +816,6 @@ bool IsPositiveEffect(SpellEntry const* spellproto, SpellEffectIndex effIndex) if (spellproto->HasAttribute(SPELL_ATTR_UNK26) && effIndex == EFFECT_INDEX_0) { return false; } break; -// case SPELL_AURA_TRANSFORM: -// // some spells negative -// switch (spellproto->Id) -// { -// default -// break; -// } -// break; case SPELL_AURA_MOD_SCALE: // some spells negative switch (spellproto->Id) @@ -1678,7 +1670,7 @@ void SpellMgr::LoadSpellLinked() delete result; sLog.outString(); - sLog.outString(">> Loaded %u spell linked definitions", count); + sLog.outString(">> Loaded %u spell linked definitions", count); } SpellLinkedSet SpellMgr::GetSpellLinked(uint32 spell_id, SpellLinkedType type) const @@ -1692,7 +1684,9 @@ SpellLinkedSet SpellMgr::GetSpellLinked(uint32 spell_id, SpellLinkedType type) c for (SpellLinkedMap::const_iterator itr = bounds.first; itr != bounds.second; ++itr) { if (itr->second.type == type) - { result.insert(itr->second.linkedId); } + { + result.insert(itr->second.linkedId); + } } } return result; diff --git a/src/game/Object/StatSystem.cpp b/src/game/Object/StatSystem.cpp index 90579b12..59e7306d 100644 --- a/src/game/Object/StatSystem.cpp +++ b/src/game/Object/StatSystem.cpp @@ -317,22 +317,18 @@ void Player::UpdateAttackPowerAndDamage(bool ranged) void Player::CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, float& min_damage, float& max_damage) { UnitMods unitMod; - //UnitMods attPower; switch (attType) { case BASE_ATTACK: default: unitMod = UNIT_MOD_DAMAGE_MAINHAND; - //attPower = UNIT_MOD_ATTACK_POWER; break; case OFF_ATTACK: unitMod = UNIT_MOD_DAMAGE_OFFHAND; - //attPower = UNIT_MOD_ATTACK_POWER; break; case RANGED_ATTACK: unitMod = UNIT_MOD_DAMAGE_RANGED; - //attPower = UNIT_MOD_ATTACK_POWER_RANGED; break; } diff --git a/src/game/Object/Unit.cpp b/src/game/Object/Unit.cpp index aa2e4979..8915aa0e 100644 --- a/src/game/Object/Unit.cpp +++ b/src/game/Object/Unit.cpp @@ -1774,29 +1774,29 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss) // 20% base chance float Probability = 20.0f; - // there is a newbie protection, at level 10 just 7% base chance; assuming linear function - if (pVictim->getLevel() < 30) - { - Probability = 0.65f * pVictim->getLevel() + 0.5f; - } - - uint32 VictimDefense = pVictim->GetDefenseSkillValue(); - uint32 AttackerMeleeSkill = GetUnitMeleeSkill(); - - Probability *= AttackerMeleeSkill / (float)VictimDefense; - - if (Probability > 40.0f) - { - Probability = 40.0f; - } - - if (roll_chance_f(Probability)) - { - CastSpell(pVictim, 1604, true); - } - + // there is a newbie protection, at level 10 just 7% base chance; assuming linear function + if (pVictim->getLevel() < 30) + { + Probability = 0.65f * pVictim->getLevel() + 0.5f; } + uint32 VictimDefense = pVictim->GetDefenseSkillValue(); + uint32 AttackerMeleeSkill = GetUnitMeleeSkill(); + + Probability *= AttackerMeleeSkill / (float)VictimDefense; + + if (Probability > 40.0f) + { + Probability = 40.0f; + } + + if (roll_chance_f(Probability)) + { + CastSpell(pVictim, 1604, true); + } + + } + // update at damage Judgement aura duration that applied by attacker at victim if (damageInfo->damage) { @@ -1964,7 +1964,6 @@ void Unit::CalculateDamageAbsorbAndResist(Unit* pCaster, SpellSchoolMask schoolM if (!(mod->m_miscvalue & schoolMask)) { continue; } - //SpellEntry const* spellProto = (*i)->GetSpellProto(); // Max Amount can be absorbed by this aura int32 currentAbsorb = mod->m_amount; @@ -4212,16 +4211,6 @@ void Unit::RemoveAllAurasOnEvade() // Linked and flying auras should not be removed on evade for (SpellAuraHolderMap::iterator iter = m_spellAuraHolders.begin(); iter != m_spellAuraHolders.end();) { - // Note: for the moment this part of the function is used as a placeholder to keep in sync with master branch - /*SpellEntry const* proto = iter->second->GetSpellProto(); - if (!IsSpellHaveAura(proto, SPELL_AURA_CONTROL_VEHICLE)) - { - RemoveSpellAuraHolder(iter->second, AURA_REMOVE_BY_DEFAULT); - iter = m_spellAuraHolders.begin(); - } - else - ++iter;*/ - RemoveSpellAuraHolder(iter->second, AURA_REMOVE_BY_DEFAULT); iter = m_spellAuraHolders.begin(); } @@ -4549,30 +4538,30 @@ void Unit::SendPeriodicAuraLog(SpellPeriodicAuraLogInfo* pInfo) data << uint32(mod->m_auraname); // auraId switch (mod->m_auraname) { - case SPELL_AURA_PERIODIC_DAMAGE: - case SPELL_AURA_PERIODIC_DAMAGE_PERCENT: - data << uint32(pInfo->damage); // damage - data << uint32(aura->GetSpellProto()->School); - data << uint32(pInfo->absorb); // absorb - data << uint32(pInfo->resist); // resist - break; - case SPELL_AURA_PERIODIC_HEAL: - case SPELL_AURA_OBS_MOD_HEALTH: - data << uint32(pInfo->damage); // damage - break; - case SPELL_AURA_OBS_MOD_MANA: - case SPELL_AURA_PERIODIC_ENERGIZE: - data << uint32(mod->m_miscvalue); // power type - data << uint32(pInfo->damage); // damage - break; - case SPELL_AURA_PERIODIC_MANA_LEECH: - data << uint32(mod->m_miscvalue); // power type - data << uint32(pInfo->damage); // amount - data << float(pInfo->multiplier); // gain multiplier - break; - default: - sLog.outError("Unit::SendPeriodicAuraLog: unknown aura %u", uint32(mod->m_auraname)); - return; + case SPELL_AURA_PERIODIC_DAMAGE: + case SPELL_AURA_PERIODIC_DAMAGE_PERCENT: + data << uint32(pInfo->damage); // damage + data << uint32(aura->GetSpellProto()->School); + data << uint32(pInfo->absorb); // absorb + data << uint32(pInfo->resist); // resist + break; + case SPELL_AURA_PERIODIC_HEAL: + case SPELL_AURA_OBS_MOD_HEALTH: + data << uint32(pInfo->damage); // damage + break; + case SPELL_AURA_OBS_MOD_MANA: + case SPELL_AURA_PERIODIC_ENERGIZE: + data << uint32(mod->m_miscvalue); // power type + data << uint32(pInfo->damage); // damage + break; + case SPELL_AURA_PERIODIC_MANA_LEECH: + data << uint32(mod->m_miscvalue); // power type + data << uint32(pInfo->damage); // amount + data << float(pInfo->multiplier); // gain multiplier + break; + default: + sLog.outError("Unit::SendPeriodicAuraLog: unknown aura %u", uint32(mod->m_auraname)); + return; } aura->GetTarget()->SendMessageToSet(&data, true); @@ -4632,13 +4621,6 @@ void Unit::SendAttackStateUpdate(CalcDamageInfo* damageInfo) data << uint32(0); // spell id, seen with heroic strike and disarm as examples. // HITINFO_NOACTION normally set if spell data << uint32(damageInfo->blocked_amount); - //if (damageInfo->HitInfo & HITINFO_UNK0) - //{ - // data << uint32(0) << float(0) << float(0) << float(0) << float(0) << float(0) << float(0) << float(0) << float(0); - // for (int i = 0; i < 4; ++i) - // data << float(0) << float(0); - // data << uint32(0); - //} SendMessageToSet(&data, true); /**/ } @@ -5434,7 +5416,6 @@ void Unit::SendHealSpellLog(Unit* pVictim, uint32 SpellID, uint32 Damage, bool c data << uint32(SpellID); data << uint32(Damage); data << uint8(critical ? 1 : 0); - // data << uint8(0); // [-ZERO] SendMessageToSet(&data, true); } @@ -6953,6 +6934,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced, float ratio) case MOVE_WALK: break; case MOVE_RUN: + { if (IsMounted()) // Use on mount auras { main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_MOUNTED_SPEED); @@ -6966,11 +6948,14 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced, float ratio) non_stack_bonus = (100.0f + GetMaxPositiveAuraModifier(SPELL_AURA_MOD_SPEED_NOT_STACK)) / 100.0f; } break; + } case MOVE_RUN_BACK: return; case MOVE_SWIM: + { main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_SWIM_SPEED); break; + } case MOVE_SWIM_BACK: return; default: @@ -6986,6 +6971,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced, float ratio) { case MOVE_RUN: case MOVE_SWIM: + { // Normalize speed by 191 aura SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED if need // TODO: possible affect only on MOVE_RUN if (int32 normalization = GetMaxPositiveAuraModifier(SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED)) @@ -6996,6 +6982,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced, float ratio) { speed = max_speed; } } break; + } default: break; } @@ -7452,7 +7439,7 @@ int32 Unit::CalculateSpellDamage(Unit const* target, SpellEntry const* spellProt switch (randomPoints) { - case 0: + case 0: // not used case 1: basePoints += baseDice; break; // range 1..1 default: { @@ -8389,6 +8376,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* pTarget, uint32 procFlag, { continue; } SpellProcEventEntry const* spellProcEvent = NULL; + // check if that aura is triggered by proc event (then it will be managed by proc handler) if (!IsTriggeredAtSpellProcEvent(pTarget, itr->second, procSpell, procFlag, procExtra, attType, isVictim, spellProcEvent)) { continue; } @@ -8806,7 +8794,7 @@ void Unit::SetStandState(uint8 state) SetByteValue(UNIT_FIELD_BYTES_1, 0, state); if (!IsSeatedState()) - RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_NOT_SEATED); + { RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_NOT_SEATED); } if (GetTypeId() == TYPEID_PLAYER) { diff --git a/src/game/Object/Unit.h b/src/game/Object/Unit.h index c599c913..4bf5dff3 100644 --- a/src/game/Object/Unit.h +++ b/src/game/Object/Unit.h @@ -82,7 +82,7 @@ enum SpellAuraInterruptFlags AURA_INTERRUPT_FLAG_NOT_SHEATHED = 0x00000200, // 9 removed by unsheathing AURA_INTERRUPT_FLAG_UNK10 = 0x00000400, // 10 AURA_INTERRUPT_FLAG_UNK11 = 0x00000800, // 11 - AURA_INTERRUPT_FLAG_MELEE_ATTACK = 0x00001000, // 12 removed by melee attack + AURA_INTERRUPT_FLAG_MELEE_ATTACK = 0x00001000, // 12 removed by melee attacks AURA_INTERRUPT_FLAG_UNK13 = 0x00002000, // 13 AURA_INTERRUPT_FLAG_UNK14 = 0x00004000, // 14 AURA_INTERRUPT_FLAG_UNK15 = 0x00008000, // 15 removed by casting a spell? @@ -529,7 +529,6 @@ enum UnitFlags UNIT_FLAG_SHEATHE = 0x40000000, // UNIT_FLAG_UNK_31 = 0x80000000 // no affect in 1.12.1 - // [-ZERO] TBC enumerations [?] UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080, ///< ?? (UNIT_FLAG_PVP_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE UNIT_FLAG_LOOTING = 0x00000400, ///< loot animation UNIT_FLAG_PET_IN_COMBAT = 0x00000800, ///< in combat?, 2.0.8 @@ -539,7 +538,6 @@ enum UnitFlags UNIT_FLAG_CONFUSED = 0x00400000, UNIT_FLAG_FLEEING = 0x00800000, UNIT_FLAG_PLAYER_CONTROLLED = 0x01000000, ///< used in spell Eyes of the Beast for pet... let attack by controlled creature - // [-ZERO] UNIT_FLAG_MOUNT = 0x08000000, UNIT_FLAG_UNK_28 = 0x10000000, UNIT_FLAG_UNK_29 = 0x20000000 ///< used in Feign Death spell }; @@ -1065,8 +1063,6 @@ enum ReactiveType { REACTIVE_DEFENSE = 1, REACTIVE_HUNTER_PARRY = 2, - // REACTIVE_CRIT = 3, - // REACTIVE_HUNTER_CRIT = 4, REACTIVE_OVERPOWER = 5 }; @@ -2888,16 +2884,16 @@ class Unit : public WorldObject * \see MovementInfo::HasMovementFlag */ bool IsRooted() const { return m_movementInfo.HasMovementFlag(MOVEFLAG_ROOT); } - /** - * Roots or unroots this \ref Unit depending on the enabled parameter. - * @param enabled whether we should root (true) or unroot (false) this \ref Unit - * \see Player::SetRoot - */ virtual void SetLevitate(bool /*enabled*/) {} virtual void SetSwim(bool /*enabled*/) {} virtual void SetCanFly(bool /*enabled*/) {} virtual void SetFeatherFall(bool /*enabled*/) {} virtual void SetHover(bool /*enabled*/) {} + /** + * Roots or unroots this \ref Unit depending on the enabled parameter. + * @param enabled whether we should root (true) or unroot (false) this \ref Unit + * \see Player::SetRoot + */ virtual void SetRoot(bool /*enabled*/) {} /** * Changes this \ref Unit s ability to walk on water.