chore(Core/Misc): Change all TODO to doxygen comment (#14966)

This commit is contained in:
Kitzunu
2023-02-12 14:05:34 +01:00
committed by GitHub
parent e37e6327f0
commit f039836a2f
84 changed files with 185 additions and 185 deletions
+1 -1
View File
@@ -339,7 +339,7 @@ void Log::Close()
bool Log::ShouldLog(std::string const& type, LogLevel level) const bool Log::ShouldLog(std::string const& type, LogLevel level) const
{ {
// TODO: Use cache to store "Type.sub1.sub2": "Type" equivalence, should /// @todo: Use cache to store "Type.sub1.sub2": "Type" equivalence, should
// Speed up in cases where requesting "Type.sub1.sub2" but only configured // Speed up in cases where requesting "Type.sub1.sub2" but only configured
// Logger "Type" // Logger "Type"
+1 -1
View File
@@ -322,7 +322,7 @@ std::string Metric::FormatInfluxDBValue(float value)
std::string Metric::FormatInfluxDBTagValue(std::string const& value) std::string Metric::FormatInfluxDBTagValue(std::string const& value)
{ {
// ToDo: should handle '=' and ',' characters too /// @todo: should handle '=' and ',' characters too
return boost::replace_all_copy(value, " ", "\\ "); return boost::replace_all_copy(value, " ", "\\ ");
} }
+1 -1
View File
@@ -95,7 +95,7 @@ private:
static std::string FormatInfluxDBTagValue(std::string const& value); static std::string FormatInfluxDBTagValue(std::string const& value);
// ToDo: should format TagKey and FieldKey too in the same way as TagValue /// @todo: should format TagKey and FieldKey too in the same way as TagValue
public: public:
Metric(); Metric();
+1 -1
View File
@@ -194,7 +194,7 @@ namespace Acore::Impl::StringConvertImpl
} }
}; };
#else #else
// @todo replace this once libc++ supports double args to from_chars /// @todo replace this once libc++ supports double args to from_chars
template <typename T> template <typename T>
struct For<T, std::enable_if_t<std::is_floating_point_v<T>>> struct For<T, std::enable_if_t<std::is_floating_point_v<T>>>
{ {
+1 -1
View File
@@ -25,7 +25,7 @@
namespace advstd namespace advstd
{ {
// This workaround for std::remove_cvref_t, std::type_identify is needed for GCC 8... // This workaround for std::remove_cvref_t, std::type_identify is needed for GCC 8...
// TODO: remove when we drop GCC 8 support. https://en.cppreference.com/w/cpp/compiler_support/20 /// @todo: remove when we drop GCC 8 support. https://en.cppreference.com/w/cpp/compiler_support/20
// C++20 advstd::remove_cvref_t // C++20 advstd::remove_cvref_t
template <class T> template <class T>
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>; using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
+1 -1
View File
@@ -349,7 +349,7 @@ PreparedResultSet::PreparedResultSet(MySQLStmt* stmt, MySQLResult* result, uint6
// when mysql_stmt_fetch returned MYSQL_DATA_TRUNCATED // when mysql_stmt_fetch returned MYSQL_DATA_TRUNCATED
// we cannot blindly null-terminate the data either as it may be retrieved as binary blob and not specifically a string // we cannot blindly null-terminate the data either as it may be retrieved as binary blob and not specifically a string
// in this case using Field::GetCString will result in garbage // in this case using Field::GetCString will result in garbage
// TODO: remove Field::GetCString and use std::string_view in C++17 /// @todo: remove Field::GetCString and use std::string_view in C++17
if (fetched_length < buffer_length) if (fetched_length < buffer_length)
*((char*)buffer + fetched_length) = '\0'; *((char*)buffer + fetched_length) = '\0';
break; break;
+1 -1
View File
@@ -228,7 +228,7 @@ TurretAI::TurretAI(Creature* c) : CreatureAI(c)
bool TurretAI::CanAIAttack(Unit const* /*who*/) const bool TurretAI::CanAIAttack(Unit const* /*who*/) const
{ {
// TODO: use one function to replace it /// @todo: use one function to replace it
if (!me->IsWithinCombatRange(me->GetVictim(), me->m_CombatDistance) if (!me->IsWithinCombatRange(me->GetVictim(), me->m_CombatDistance)
|| (m_minRange && me->IsWithinCombatRange(me->GetVictim(), m_minRange))) || (m_minRange && me->IsWithinCombatRange(me->GetVictim(), m_minRange)))
return false; return false;
+1 -1
View File
@@ -93,7 +93,7 @@ struct DefaultTargetSelector : public Acore::unary_function<Unit*, bool>
}; };
// Target selector for spell casts checking range, auras and attributes // Target selector for spell casts checking range, auras and attributes
// TODO: Add more checks from Spell::CheckCast /// @todo: Add more checks from Spell::CheckCast
struct SpellTargetSelector : public Acore::unary_function<Unit*, bool> struct SpellTargetSelector : public Acore::unary_function<Unit*, bool>
{ {
public: public:
@@ -641,22 +641,22 @@ enum SMART_ACTION
SMART_ACTION_SET_CORPSE_DELAY = 116, // timer SMART_ACTION_SET_CORPSE_DELAY = 116, // timer
SMART_ACTION_DISABLE_EVADE = 117, // 0/1 (1 = disabled, 0 = enabled) SMART_ACTION_DISABLE_EVADE = 117, // 0/1 (1 = disabled, 0 = enabled)
SMART_ACTION_GO_SET_GO_STATE = 118, // state SMART_ACTION_GO_SET_GO_STATE = 118, // state
SMART_ACTION_SET_CAN_FLY = 119, // TODO: NOT SUPPORTED YET SMART_ACTION_SET_CAN_FLY = 119, /// @todo: NOT SUPPORTED YET
SMART_ACTION_REMOVE_AURAS_BY_TYPE = 120, // TODO: NOT SUPPORTED YET SMART_ACTION_REMOVE_AURAS_BY_TYPE = 120, /// @todo: NOT SUPPORTED YET
SMART_ACTION_SET_SIGHT_DIST = 121, // sightDistance SMART_ACTION_SET_SIGHT_DIST = 121, // sightDistance
SMART_ACTION_FLEE = 122, // fleeTime SMART_ACTION_FLEE = 122, // fleeTime
SMART_ACTION_ADD_THREAT = 123, // +threat, -threat SMART_ACTION_ADD_THREAT = 123, // +threat, -threat
SMART_ACTION_LOAD_EQUIPMENT = 124, // id SMART_ACTION_LOAD_EQUIPMENT = 124, // id
SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT = 125, // id min range, id max range SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT = 125, // id min range, id max range
SMART_ACTION_REMOVE_ALL_GAMEOBJECTS = 126, SMART_ACTION_REMOVE_ALL_GAMEOBJECTS = 126,
SMART_ACTION_REMOVE_MOVEMENT = 127, // TODO: NOT SUPPORTED YET SMART_ACTION_REMOVE_MOVEMENT = 127, /// @todo: NOT SUPPORTED YET
SMART_ACTION_PLAY_ANIMKIT = 128, // don't use on 3.3.5a SMART_ACTION_PLAY_ANIMKIT = 128, // don't use on 3.3.5a
SMART_ACTION_SCENE_PLAY = 129, // don't use on 3.3.5a SMART_ACTION_SCENE_PLAY = 129, // don't use on 3.3.5a
SMART_ACTION_SCENE_CANCEL = 130, // don't use on 3.3.5a SMART_ACTION_SCENE_CANCEL = 130, // don't use on 3.3.5a
SMART_ACTION_SPAWN_SPAWNGROUP = 131, // TODO: NOT SUPPORTED YET SMART_ACTION_SPAWN_SPAWNGROUP = 131, /// @todo: NOT SUPPORTED YET
SMART_ACTION_DESPAWN_SPAWNGROUP = 132, // TODO: NOT SUPPORTED YET SMART_ACTION_DESPAWN_SPAWNGROUP = 132, /// @todo: NOT SUPPORTED YET
SMART_ACTION_RESPAWN_BY_SPAWNID = 133, // TODO: NOT SUPPORTED YET SMART_ACTION_RESPAWN_BY_SPAWNID = 133, /// @todo: NOT SUPPORTED YET
// SMART_ACTION_INVOKER_CAST = 134, // TODO: solve name conflicts // SMART_ACTION_INVOKER_CAST = 134, /// @todo: solve name conflicts
SMART_ACTION_PLAY_CINEMATIC = 135, // entry, cinematic SMART_ACTION_PLAY_CINEMATIC = 135, // entry, cinematic
SMART_ACTION_SET_MOVEMENT_SPEED = 136, // movementType, speedInteger, speedFraction SMART_ACTION_SET_MOVEMENT_SPEED = 136, // movementType, speedInteger, speedFraction
@@ -2341,7 +2341,7 @@ void AchievementMgr::BuildAllDataPacket(WorldPacket* data) const
*data << uint32(iter->first); *data << uint32(iter->first);
data->appendPackGUID(iter->second.counter); data->appendPackGUID(iter->second.counter);
*data << GetPlayer()->GetPackGUID(); *data << GetPlayer()->GetPackGUID();
*data << uint32(0); // TODO: This should be 1 if it is a failed timed criteria *data << uint32(0); /// @todo: This should be 1 if it is a failed timed criteria
data->AppendPackedTime(iter->second.date); data->AppendPackedTime(iter->second.date);
*data << uint32(now - iter->second.date); *data << uint32(now - iter->second.date);
*data << uint32(now - iter->second.date); *data << uint32(now - iter->second.date);
+2 -2
View File
@@ -87,7 +87,7 @@ void Battlefield::HandlePlayerEnterZone(Player* player, uint32 /*zone*/)
InvitePlayerToWar(player); InvitePlayerToWar(player);
else // No more vacant places else // No more vacant places
{ {
// TODO: Send a packet to announce it to player /// @todo: Send a packet to announce it to player
m_PlayersWillBeKick[player->GetTeamId()][player->GetGUID()] = GameTime::GetGameTime().count() + (player->IsGameMaster() ? 30 * MINUTE : 10); m_PlayersWillBeKick[player->GetTeamId()][player->GetGUID()] = GameTime::GetGameTime().count() + (player->IsGameMaster() ? 30 * MINUTE : 10);
InvitePlayerToQueue(player); InvitePlayerToQueue(player);
} }
@@ -273,7 +273,7 @@ void Battlefield::InvitePlayerToWar(Player* player)
if (!player) if (!player)
return; return;
// TODO : needed ? /// @todo : needed ?
if (player->IsInFlight()) if (player->IsInFlight())
return; return;
@@ -15,9 +15,9 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
// TODO: Implement proper support for vehicle+player teleportation /// @todo: Implement proper support for vehicle+player teleportation
// TODO: Use spell victory/defeat in wg instead of RewardMarkOfHonor() && RewardHonor /// @todo: Use spell victory/defeat in wg instead of RewardMarkOfHonor() && RewardHonor
// TODO: Add proper implement of achievement /// @todo: Add proper implement of achievement
#include "BattlefieldWG.h" #include "BattlefieldWG.h"
#include "GameTime.h" #include "GameTime.h"
@@ -864,7 +864,7 @@ void BattlefieldWG::OnPlayerJoinWar(Player* player)
void BattlefieldWG::OnPlayerLeaveWar(Player* player) void BattlefieldWG::OnPlayerLeaveWar(Player* player)
{ {
// Remove all aura from WG // TODO: false we can go out of this zone on retail and keep Rank buff, remove on end of WG // Remove all aura from WG /// @todo: false we can go out of this zone on retail and keep Rank buff, remove on end of WG
if (!player->GetSession()->PlayerLogout()) if (!player->GetSession()->PlayerLogout())
{ {
if (player->GetVehicle()) // Remove vehicle of player if he go out. if (player->GetVehicle()) // Remove vehicle of player if he go out.
@@ -532,7 +532,7 @@ enum WintergraspWorldstates
WORLDSTATE_ALLIANCE_KEEP_DEFENDED = 4025, WORLDSTATE_ALLIANCE_KEEP_DEFENDED = 4025,
}; };
// TODO: Handle this with creature_text ? /// @todo: Handle this with creature_text ?
enum eWGText enum eWGText
{ {
BATTLEFIELD_WG_TEXT_START = 28, BATTLEFIELD_WG_TEXT_START = 28,
+1 -1
View File
@@ -751,7 +751,7 @@ int32 ArenaTeam::GetRatingMod(uint32 ownRating, uint32 opponentRating, bool won
// Calculate the rating modification // Calculate the rating modification
float mod; float mod;
// TODO: Replace this hack with using the confidence factor (limiting the factor to 2.0f) /// @todo: Replace this hack with using the confidence factor (limiting the factor to 2.0f)
if (won) if (won)
{ {
if (ownRating < 1300) if (ownRating < 1300)
@@ -1599,7 +1599,7 @@ bool Battleground::AddSpiritGuide(uint32 type, float x, float y, float z, float
creature->setDeathState(DEAD); creature->setDeathState(DEAD);
creature->SetGuidValue(UNIT_FIELD_CHANNEL_OBJECT, creature->GetGUID()); creature->SetGuidValue(UNIT_FIELD_CHANNEL_OBJECT, creature->GetGUID());
// aura // aura
// TODO: Fix display here /// @todo: Fix display here
// creature->SetVisibleAura(0, SPELL_SPIRIT_HEAL_CHANNEL); // creature->SetVisibleAura(0, SPELL_SPIRIT_HEAL_CHANNEL);
// casting visual effect // casting visual effect
creature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SPIRIT_HEAL_CHANNEL); creature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SPIRIT_HEAL_CHANNEL);
+1 -1
View File
@@ -525,7 +525,7 @@ public:
void HandleTriggerBuff(GameObject* gameObject); void HandleTriggerBuff(GameObject* gameObject);
void SetHoliday(bool is_holiday); void SetHoliday(bool is_holiday);
// TODO: make this protected: /// @todo: make this protected:
typedef GuidVector BGObjects; typedef GuidVector BGObjects;
typedef GuidVector BGCreatures; typedef GuidVector BGCreatures;
BGObjects BgObjects; BGObjects BgObjects;
@@ -326,7 +326,7 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
if (!creature) if (!creature)
return nullptr; return nullptr;
if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN] || creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN]) if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN] || creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN])
creature->SetRespawnDelay(RESPAWN_ONE_DAY); // TODO: look if this can be done by database + also add this for the wingcommanders creature->SetRespawnDelay(RESPAWN_ONE_DAY); /// @todo: look if this can be done by database + also add this for the wingcommanders
if ((isStatic && cinfoid >= 10 && cinfoid <= 14) || (!isStatic && ((cinfoid >= AV_NPC_A_GRAVEDEFENSE0 && cinfoid <= AV_NPC_A_GRAVEDEFENSE3) || if ((isStatic && cinfoid >= 10 && cinfoid <= 14) || (!isStatic && ((cinfoid >= AV_NPC_A_GRAVEDEFENSE0 && cinfoid <= AV_NPC_A_GRAVEDEFENSE3) ||
(cinfoid >= AV_NPC_H_GRAVEDEFENSE0 && cinfoid <= AV_NPC_H_GRAVEDEFENSE3)))) (cinfoid >= AV_NPC_H_GRAVEDEFENSE0 && cinfoid <= AV_NPC_H_GRAVEDEFENSE3))))
@@ -80,7 +80,7 @@ namespace lfg
sLFGMgr->InitializeLockedDungeons(player, group); sLFGMgr->InitializeLockedDungeons(player, group);
sLFGMgr->SetTeam(player->GetGUID(), player->GetTeamId()); sLFGMgr->SetTeam(player->GetGUID(), player->GetTeamId());
// TODO - Restore LfgPlayerData and send proper status to player if it was in a group /// @todo - Restore LfgPlayerData and send proper status to player if it was in a group
} }
void LFGPlayerScript::OnBindToInstance(Player* player, Difficulty difficulty, uint32 mapId, bool /*permanent*/) void LFGPlayerScript::OnBindToInstance(Player* player, Difficulty difficulty, uint32 mapId, bool /*permanent*/)
@@ -50,7 +50,7 @@
#include "World.h" #include "World.h"
#include "WorldPacket.h" #include "WorldPacket.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -547,7 +547,7 @@ bool Creature::UpdateEntry(uint32 Entry, const CreatureData* data, bool changele
SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool)); SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool));
CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(GetLevel(), cInfo->unit_class); CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(GetLevel(), cInfo->unit_class);
float armor = (float)stats->GenerateArmor(cInfo); // TODO: Why is this treated as uint32 when it's a float? float armor = (float)stats->GenerateArmor(cInfo); /// @todo: Why is this treated as uint32 when it's a float?
SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, armor); SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, armor);
SetModifierValue(UNIT_MOD_RESISTANCE_HOLY, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_HOLY])); SetModifierValue(UNIT_MOD_RESISTANCE_HOLY, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_HOLY]));
SetModifierValue(UNIT_MOD_RESISTANCE_FIRE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FIRE])); SetModifierValue(UNIT_MOD_RESISTANCE_FIRE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FIRE]));
@@ -1521,7 +1521,7 @@ void Creature::SelectLevel(bool changelevel)
SetMaxPower(POWER_MANA, mana); //MAX Mana SetMaxPower(POWER_MANA, mana); //MAX Mana
SetPower(POWER_MANA, mana); SetPower(POWER_MANA, mana);
// TODO: set UNIT_FIELD_POWER*, for some creature class case (energy, etc) /// @todo: set UNIT_FIELD_POWER*, for some creature class case (energy, etc)
SetModifierValue(UNIT_MOD_HEALTH, BASE_VALUE, (float)health); SetModifierValue(UNIT_MOD_HEALTH, BASE_VALUE, (float)health);
SetModifierValue(UNIT_MOD_MANA, BASE_VALUE, (float)mana); SetModifierValue(UNIT_MOD_MANA, BASE_VALUE, (float)mana);
+1 -1
View File
@@ -91,7 +91,7 @@ public:
[[nodiscard]] bool HasReactState(ReactStates state) const { return (m_reactState == state); } [[nodiscard]] bool HasReactState(ReactStates state) const { return (m_reactState == state); }
void InitializeReactState(); void InitializeReactState();
///// TODO RENAME THIS!!!!! ///// @todo RENAME THIS!!!!!
bool isCanInteractWithBattleMaster(Player* player, bool msg) const; bool isCanInteractWithBattleMaster(Player* player, bool msg) const;
bool isCanTrainingAndResetTalentsOf(Player* player) const; bool isCanTrainingAndResetTalentsOf(Player* player) const;
[[nodiscard]] bool IsValidTrainerForPlayer(Player* player, uint32* npcFlags = nullptr) const; [[nodiscard]] bool IsValidTrainerForPlayer(Player* player, uint32* npcFlags = nullptr) const;
@@ -42,7 +42,7 @@ constexpr Milliseconds PET_FOCUS_REGEN_INTERVAL = 4s;
enum class VisibilityDistanceType : uint8; enum class VisibilityDistanceType : uint8;
// TODO: Implement missing flags from TC in places that custom flags from xinef&pussywizzard use flag values. /// @todo: Implement missing flags from TC in places that custom flags from xinef&pussywizzard use flag values.
// EnumUtils: DESCRIBE THIS // EnumUtils: DESCRIBE THIS
enum CreatureFlagsExtra : uint32 enum CreatureFlagsExtra : uint32
{ {
@@ -57,7 +57,7 @@ enum CreatureFlagsExtra : uint32
CREATURE_FLAG_EXTRA_NO_TAUNT = 0x00000100, // creature is immune to taunt auras and 'attack me' effects CREATURE_FLAG_EXTRA_NO_TAUNT = 0x00000100, // creature is immune to taunt auras and 'attack me' effects
CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE = 0x00000200, // creature won't update movement flags CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE = 0x00000200, // creature won't update movement flags
CREATURE_FLAG_EXTRA_GHOST_VISIBILITY = 0x00000400, // creature will only be visible to dead players CREATURE_FLAG_EXTRA_GHOST_VISIBILITY = 0x00000400, // creature will only be visible to dead players
CREATURE_FLAG_EXTRA_UNUSED_12 = 0x00000800, // TODO: Implement CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK (creature will use offhand attacks) CREATURE_FLAG_EXTRA_UNUSED_12 = 0x00000800, /// @todo: Implement CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK (creature will use offhand attacks)
CREATURE_FLAG_EXTRA_NO_SELL_VENDOR = 0x00001000, // players can't sell items to this vendor CREATURE_FLAG_EXTRA_NO_SELL_VENDOR = 0x00001000, // players can't sell items to this vendor
CREATURE_FLAG_EXTRA_IGNORE_COMBAT = 0x00002000, CREATURE_FLAG_EXTRA_IGNORE_COMBAT = 0x00002000,
CREATURE_FLAG_EXTRA_WORLDEVENT = 0x00004000, // custom flag for world event creatures (left room for merging) CREATURE_FLAG_EXTRA_WORLDEVENT = 0x00004000, // custom flag for world event creatures (left room for merging)
@@ -499,7 +499,7 @@ void Puppet::Update(uint32 time)
if (!IsAlive()) if (!IsAlive())
{ {
UnSummon(); UnSummon();
// TODO: why long distance .die does not remove it /// @todo: why long distance .die does not remove it
} }
} }
} }
@@ -2299,7 +2299,7 @@ void GameObject::ModifyHealth(int32 change, Unit* attackerOrHealer /*= nullptr*/
Player* player = attackerOrHealer->GetCharmerOrOwnerPlayerOrPlayerItself(); Player* player = attackerOrHealer->GetCharmerOrOwnerPlayerOrPlayerItself();
// dealing damage, send packet // dealing damage, send packet
// TODO: is there any packet for healing? /// @todo: is there any packet for healing?
if (player) if (player)
{ {
WorldPacket data(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, 8 + 8 + 8 + 4 + 4); WorldPacket data(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, 8 + 8 + 8 + 4 + 4);
+2 -2
View File
@@ -52,7 +52,7 @@
#include "Tokenize.h" #include "Tokenize.h"
#include "StringConvert.h" #include "StringConvert.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -2889,7 +2889,7 @@ void WorldObject::DestroyForNearbyPlayers()
if (!player->HaveAtClient(this)) if (!player->HaveAtClient(this))
continue; continue;
if (isType(TYPEMASK_UNIT) && ((Unit*)this)->GetCharmerGUID() == player->GetGUID()) // TODO: this is for puppet if (isType(TYPEMASK_UNIT) && ((Unit*)this)->GetCharmerGUID() == player->GetGUID()) /// @todo: this is for puppet
continue; continue;
DestroyForPlayer(player); DestroyForPlayer(player);
+1 -1
View File
@@ -1005,7 +1005,7 @@ bool Pet::CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phas
return true; return true;
} }
// TODO: Move stat mods code to pet passive auras /// @todo: Move stat mods code to pet passive auras
bool Guardian::InitStatsForLevel(uint8 petlevel) bool Guardian::InitStatsForLevel(uint8 petlevel)
{ {
CreatureTemplate const* cinfo = GetCreatureTemplate(); CreatureTemplate const* cinfo = GetCreatureTemplate();
+8 -8
View File
@@ -89,7 +89,7 @@
#include "Tokenize.h" #include "Tokenize.h"
#include "StringConvert.h" #include "StringConvert.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -470,7 +470,7 @@ void Player::CleanupsBeforeDelete(bool finalCleanup)
bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo) bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo)
{ {
// FIXME: outfitId not used in player creating // FIXME: outfitId not used in player creating
// TODO: need more checks against packet modifications /// @todo: need more checks against packet modifications
// should check that skin, face, hair* are valid via DBC per race/class // should check that skin, face, hair* are valid via DBC per race/class
// also do it in Player::BuildEnumData, Player::LoadFromDB // also do it in Player::BuildEnumData, Player::LoadFromDB
@@ -853,7 +853,7 @@ void Player::HandleDrowning(uint32 time_diff)
{ {
m_MirrorTimer[BREATH_TIMER] += 1 * IN_MILLISECONDS; m_MirrorTimer[BREATH_TIMER] += 1 * IN_MILLISECONDS;
// Calculate and deal damage // Calculate and deal damage
// TODO: Check this formula /// @todo: Check this formula
uint32 damage = GetMaxHealth() / 5 + urand(0, GetLevel() - 1); uint32 damage = GetMaxHealth() / 5 + urand(0, GetLevel() - 1);
EnvironmentalDamage(DAMAGE_DROWNING, damage); EnvironmentalDamage(DAMAGE_DROWNING, damage);
} }
@@ -922,7 +922,7 @@ void Player::HandleDrowning(uint32 time_diff)
{ {
m_MirrorTimer[FIRE_TIMER] += 1 * IN_MILLISECONDS; m_MirrorTimer[FIRE_TIMER] += 1 * IN_MILLISECONDS;
// Calculate and deal damage // Calculate and deal damage
// TODO: Check this formula /// @todo: Check this formula
uint32 damage = urand(600, 700); uint32 damage = urand(600, 700);
if (m_MirrorTimerFlags & UNDERWATER_INLAVA) if (m_MirrorTimerFlags & UNDERWATER_INLAVA)
EnvironmentalDamage(DAMAGE_LAVA, damage); EnvironmentalDamage(DAMAGE_LAVA, damage);
@@ -1837,7 +1837,7 @@ void Player::Regenerate(Powers power)
uint32 curValue = GetPower(power); uint32 curValue = GetPower(power);
// TODO: possible use of miscvalueb instead of amount /// @todo: possible use of miscvalueb instead of amount
if (HasAuraTypeWithMiscvalue(SPELL_AURA_PREVENT_REGENERATE_POWER, power + 1)) if (HasAuraTypeWithMiscvalue(SPELL_AURA_PREVENT_REGENERATE_POWER, power + 1))
return; return;
@@ -3184,7 +3184,7 @@ bool Player::_addSpell(uint32 spellId, uint8 addSpecMask, bool temporary, bool l
continue; continue;
} }
// @todo confirm if rogues start wth lockpicking skill at level 1 but only recieve the spell to use it at level 16 /// @todo confirm if rogues start wth lockpicking skill at level 1 but only recieve the spell to use it at level 16
// Added for runeforging, it is confirmed via sniff that this happens when death knights learn the spell, not on character creation. // Added for runeforging, it is confirmed via sniff that this happens when death knights learn the spell, not on character creation.
if ((_spell_idx->second->AcquireMethod == SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN && !HasSkill(pSkill->id)) || ((pSkill->id == SKILL_LOCKPICKING || pSkill->id == SKILL_RUNEFORGING) && _spell_idx->second->TrivialSkillLineRankHigh == 0)) if ((_spell_idx->second->AcquireMethod == SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN && !HasSkill(pSkill->id)) || ((pSkill->id == SKILL_LOCKPICKING || pSkill->id == SKILL_RUNEFORGING) && _spell_idx->second->TrivialSkillLineRankHigh == 0))
{ {
@@ -5055,7 +5055,7 @@ void Player::GetDodgeFromAgility(float& diminishing, float& nondiminishing)
if (!dodgeRatio || pclass > MAX_CLASSES) if (!dodgeRatio || pclass > MAX_CLASSES)
return; return;
// TODO: research if talents/effects that increase total agility by x% should increase non-diminishing part /// @todo: research if talents/effects that increase total agility by x% should increase non-diminishing part
float base_agility = GetCreateStat(STAT_AGILITY) * m_auraModifiersGroup[UNIT_MOD_STAT_START + static_cast<uint16>(STAT_AGILITY)][BASE_PCT]; float base_agility = GetCreateStat(STAT_AGILITY) * m_auraModifiersGroup[UNIT_MOD_STAT_START + static_cast<uint16>(STAT_AGILITY)][BASE_PCT];
float bonus_agility = GetStat(STAT_AGILITY) - base_agility; float bonus_agility = GetStat(STAT_AGILITY) - base_agility;
@@ -12921,7 +12921,7 @@ PartyResult Player::CanUninviteFromGroup(ObjectGuid targetPlayerGUID) const
if (grp->isRollLootActive()) if (grp->isRollLootActive())
return ERR_PARTY_LFG_BOOT_LOOT_ROLLS; return ERR_PARTY_LFG_BOOT_LOOT_ROLLS;
// TODO: Should also be sent when anyone has recently left combat, with an aprox ~5 seconds timer. /// @todo: Should also be sent when anyone has recently left combat, with an aprox ~5 seconds timer.
for (GroupReference const* itr = grp->GetFirstMember(); itr != nullptr; itr = itr->next()) for (GroupReference const* itr = grp->GetFirstMember(); itr != nullptr; itr = itr->next())
if (itr->GetSource() && itr->GetSource()->IsInMap(this) && itr->GetSource()->IsInCombat()) if (itr->GetSource() && itr->GetSource()->IsInMap(this) && itr->GetSource()->IsInCombat())
return ERR_PARTY_LFG_BOOT_IN_COMBAT; return ERR_PARTY_LFG_BOOT_IN_COMBAT;
@@ -76,7 +76,7 @@
#include "Tokenize.h" #include "Tokenize.h"
#include "StringConvert.h" #include "StringConvert.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -2271,7 +2271,7 @@ InventoryResult Player::CanUseItem(Item* pItem, bool not_loading) const
// Armor that is binded to account can "morph" from plate to mail, etc. if skill is not learned yet. // Armor that is binded to account can "morph" from plate to mail, etc. if skill is not learned yet.
if (pProto->Quality == ITEM_QUALITY_HEIRLOOM && pProto->Class == ITEM_CLASS_ARMOR && !HasSkill(itemSkill)) if (pProto->Quality == ITEM_QUALITY_HEIRLOOM && pProto->Class == ITEM_CLASS_ARMOR && !HasSkill(itemSkill))
{ {
// TODO: when you right-click already equipped item it throws EQUIP_ERR_NO_REQUIRED_PROFICIENCY. /// @todo: when you right-click already equipped item it throws EQUIP_ERR_NO_REQUIRED_PROFICIENCY.
// 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.
@@ -38,7 +38,7 @@
#include "WeatherMgr.h" #include "WeatherMgr.h"
#include "WorldStatePackets.h" #include "WorldStatePackets.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -164,7 +164,7 @@ void Player::Update(uint32 p_time)
if (Unit* victim = GetVictim()) if (Unit* victim = GetVictim())
{ {
// default combat reach 10 // default combat reach 10
// TODO add weapon, skill check /// @todo add weapon, skill check
if (isAttackReady(BASE_ATTACK)) if (isAttackReady(BASE_ATTACK))
{ {
@@ -1407,7 +1407,7 @@ void Player::UpdatePvPState()
void Player::UpdateFFAPvPState(bool reset /*= true*/) void Player::UpdateFFAPvPState(bool reset /*= true*/)
{ {
// TODO: should we always synchronize UNIT_FIELD_BYTES_2, 1 of controller /// @todo: should we always synchronize UNIT_FIELD_BYTES_2, 1 of controller
// and controlled? no, we shouldn't, those are checked for affecting player // and controlled? no, we shouldn't, those are checked for affecting player
// by client // by client
if (!pvpInfo.IsInNoPvPArea && !IsGameMaster() && if (!pvpInfo.IsInNoPvPArea && !IsGameMaster() &&
+16 -16
View File
@@ -1174,7 +1174,7 @@ SpellCastResult Unit::CastSpell(SpellCastTargets const& targets, SpellInfo const
return SPELL_FAILED_SPELL_UNAVAILABLE; return SPELL_FAILED_SPELL_UNAVAILABLE;
} }
// TODO: this is a workaround - not needed anymore, but required for some scripts :( /// @todo: this is a workaround - not needed anymore, but required for some scripts :(
if (!originalCaster && triggeredByAura) if (!originalCaster && triggeredByAura)
{ {
originalCaster = triggeredByAura->GetCasterGUID(); originalCaster = triggeredByAura->GetCasterGUID();
@@ -1457,7 +1457,7 @@ void Unit::DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss,
Unit::DealDamage(this, victim, damageInfo->damage, &cleanDamage, SPELL_DIRECT_DAMAGE, SpellSchoolMask(damageInfo->schoolMask), spellProto, durabilityLoss, false, spell); Unit::DealDamage(this, victim, damageInfo->damage, &cleanDamage, SPELL_DIRECT_DAMAGE, SpellSchoolMask(damageInfo->schoolMask), spellProto, durabilityLoss, false, spell);
} }
// TODO for melee need create structure as in // @todo for melee need create structure as in
void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, WeaponAttackType attackType, const bool sittingVictim) void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, WeaponAttackType attackType, const bool sittingVictim)
{ {
damageInfo->attacker = this; damageInfo->attacker = this;
@@ -1951,7 +1951,7 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss)
Unit::DealDamageMods(this, damage, &absorb); Unit::DealDamageMods(this, damage, &absorb);
// TODO: Move this to a packet handler /// @todo: Move this to a packet handler
WorldPacket data(SMSG_SPELLDAMAGESHIELD, (8 + 8 + 4 + 4 + 4 + 4)); WorldPacket data(SMSG_SPELLDAMAGESHIELD, (8 + 8 + 4 + 4 + 4 + 4));
data << victim->GetGUID(); data << victim->GetGUID();
data << GetGUID(); data << GetGUID();
@@ -3428,7 +3428,7 @@ SpellMissInfo Unit::SpellHitResult(Unit* victim, SpellInfo const* spell, bool Ca
return SPELL_MISS_IMMUNE; return SPELL_MISS_IMMUNE;
// All positive spells can`t miss // All positive spells can`t miss
// TODO: client not show miss log for this spells - so need find info for this in dbc and use it! /// @todo: client not show miss log for this spells - so need find info for this in dbc and use it!
if ((spell->IsPositive() || spell->HasEffect(SPELL_EFFECT_DISPEL)) if ((spell->IsPositive() || spell->HasEffect(SPELL_EFFECT_DISPEL))
&& (!IsHostileTo(victim))) // prevent from affecting enemy by "positive" spell && (!IsHostileTo(victim))) // prevent from affecting enemy by "positive" spell
return SPELL_MISS_NONE; return SPELL_MISS_NONE;
@@ -3496,7 +3496,7 @@ SpellMissInfo Unit::SpellHitResult(Unit* victim, Spell const* spell, bool CanRef
} }
// All positive spells can`t miss // All positive spells can`t miss
// TODO: client not show miss log for this spells - so need find info for this in dbc and use it! /// @todo: client not show miss log for this spells - so need find info for this in dbc and use it!
if ((spellInfo->IsPositive() || spellInfo->HasEffect(SPELL_EFFECT_DISPEL)) if ((spellInfo->IsPositive() || spellInfo->HasEffect(SPELL_EFFECT_DISPEL))
&& (!IsHostileTo(victim))) // prevent from affecting enemy by "positive" spell && (!IsHostileTo(victim))) // prevent from affecting enemy by "positive" spell
{ {
@@ -6615,7 +6615,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
target = this; target = this;
if (roll_chance_i(10)) if (roll_chance_i(10))
ToPlayer()->Say("This is Madness!", LANG_UNIVERSAL); // TODO: It should be moved to database, shouldn't it? ToPlayer()->Say("This is Madness!", LANG_UNIVERSAL); /// @todo: It should be moved to database, shouldn't it?
break; break;
} }
// Sunwell Exalted Caster Neck (??? neck) // Sunwell Exalted Caster Neck (??? neck)
@@ -7527,7 +7527,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
triggered_spell_id = isWrathSpell ? 48518 : 48517; triggered_spell_id = isWrathSpell ? 48518 : 48517;
break; break;
} }
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
} }
case SPELLFAMILY_ROGUE: case SPELLFAMILY_ROGUE:
{ {
@@ -8378,7 +8378,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Mark of Blood // Mark of Blood
if (dummySpell->Id == 49005) if (dummySpell->Id == 49005)
{ {
// TODO: need more info (cooldowns/PPM) /// @todo: need more info (cooldowns/PPM)
triggered_spell_id = 61607; triggered_spell_id = 61607;
break; break;
} }
@@ -9454,7 +9454,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
target = this; target = this;
trigger_spell_id = 22588; trigger_spell_id = 22588;
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
} }
// Bonus Healing (Crystal Spire of Karabor mace) // Bonus Healing (Crystal Spire of Karabor mace)
case 40971: case 40971:
@@ -10843,7 +10843,7 @@ void Unit::SetCharm(Unit* charm, bool apply)
LOG_FATAL("entities.unit", "Player {} is trying to charm unit {}, but it already has a charmed unit {}", GetName(), charm->GetEntry(), GetCharmGUID().ToString()); LOG_FATAL("entities.unit", "Player {} is trying to charm unit {}, but it already has a charmed unit {}", GetName(), charm->GetEntry(), GetCharmGUID().ToString());
charm->m_ControlledByPlayer = true; charm->m_ControlledByPlayer = true;
// TODO: maybe we can use this flag to check if controlled by player /// @todo: maybe we can use this flag to check if controlled by player
charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
} }
else else
@@ -12150,7 +12150,7 @@ float Unit::SpellTakenCritChance(Unit const* caster, SpellInfo const* spellProto
{ {
return 100.0f; return 100.0f;
} }
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case SPELL_DAMAGE_CLASS_RANGED: case SPELL_DAMAGE_CLASS_RANGED:
{ {
// flat aura mods // flat aura mods
@@ -12211,7 +12211,7 @@ uint32 Unit::SpellCriticalDamageBonus(Unit const* caster, SpellInfo const* spell
{ {
case SPELL_DAMAGE_CLASS_MELEE: // for melee based spells is 100% case SPELL_DAMAGE_CLASS_MELEE: // for melee based spells is 100%
case SPELL_DAMAGE_CLASS_RANGED: case SPELL_DAMAGE_CLASS_RANGED:
// TODO: write here full calculation for melee/ranged spells /// @todo: write here full calculation for melee/ranged spells
crit_bonus += damage; crit_bonus += damage;
break; break;
default: default:
@@ -12249,7 +12249,7 @@ uint32 Unit::SpellCriticalHealingBonus(Unit const* caster, SpellInfo const* spel
{ {
case SPELL_DAMAGE_CLASS_MELEE: // for melee based spells is 100% case SPELL_DAMAGE_CLASS_MELEE: // for melee based spells is 100%
case SPELL_DAMAGE_CLASS_RANGED: case SPELL_DAMAGE_CLASS_RANGED:
// TODO: write here full calculation for melee/ranged spells /// @todo: write here full calculation for melee/ranged spells
crit_bonus = damage; crit_bonus = damage;
break; break;
default: default:
@@ -14867,7 +14867,7 @@ void Unit::ModSpellCastTime(SpellInfo const* spellInfo, int32& castTime, Spell*
// called from caster // called from caster
if (Player* modOwner = GetSpellModOwner()) if (Player* modOwner = GetSpellModOwner())
// TODO:(MadAgos) Eventually check and delete the bool argument /// @todo:(MadAgos) Eventually check and delete the bool argument
modOwner->ApplySpellMod(spellInfo->Id, SPELLMOD_CASTING_TIME, castTime, spell, bool(modOwner != this && !IsPet())); modOwner->ApplySpellMod(spellInfo->Id, SPELLMOD_CASTING_TIME, castTime, spell, bool(modOwner != this && !IsPet()));
switch (spellInfo->DmgClass) switch (spellInfo->DmgClass)
@@ -18101,7 +18101,7 @@ void Unit::Kill(Unit* killer, Unit* victim, bool durabilityLoss, WeaponAttackTyp
{ {
Map* instanceMap = creature->GetMap(); Map* instanceMap = creature->GetMap();
//Player* creditedPlayer = GetCharmerOrOwnerPlayerOrPlayerItself(); //Player* creditedPlayer = GetCharmerOrOwnerPlayerOrPlayerItself();
// TODO: do instance binding anyway if the charmer/owner is offline /// @todo: do instance binding anyway if the charmer/owner is offline
if (instanceMap->IsDungeon() && player) if (instanceMap->IsDungeon() && player)
if (instanceMap->IsRaidOrHeroicDungeon()) if (instanceMap->IsRaidOrHeroicDungeon())
@@ -18540,7 +18540,7 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
AttackStop(); AttackStop();
// Xinef: dont reset threat and combat, put them on offline list, moved down after faction changes // Xinef: dont reset threat and combat, put them on offline list, moved down after faction changes
// CombatStop(); // TODO: CombatStop(true) may cause crash (interrupt spells) // CombatStop(); /// @todo: CombatStop(true) may cause crash (interrupt spells)
// DeleteThreatList(); // DeleteThreatList();
Player* playerCharmer = charmer->ToPlayer(); Player* playerCharmer = charmer->ToPlayer();
+2 -2
View File
@@ -581,7 +581,7 @@ enum MovementFlags
MOVEMENTFLAG_FALLING_SLOW = 0x20000000, // active rogue safe fall spell (passive) MOVEMENTFLAG_FALLING_SLOW = 0x20000000, // active rogue safe fall spell (passive)
MOVEMENTFLAG_HOVER = 0x40000000, // hover, cannot jump MOVEMENTFLAG_HOVER = 0x40000000, // hover, cannot jump
// TODO: Check if PITCH_UP and PITCH_DOWN really belong here.. /// @todo: Check if PITCH_UP and PITCH_DOWN really belong here..
MOVEMENTFLAG_MASK_MOVING = MOVEMENTFLAG_MASK_MOVING =
MOVEMENTFLAG_FORWARD | MOVEMENTFLAG_BACKWARD | MOVEMENTFLAG_STRAFE_LEFT | MOVEMENTFLAG_STRAFE_RIGHT | MOVEMENTFLAG_FORWARD | MOVEMENTFLAG_BACKWARD | MOVEMENTFLAG_STRAFE_LEFT | MOVEMENTFLAG_STRAFE_RIGHT |
MOVEMENTFLAG_PITCH_UP | MOVEMENTFLAG_PITCH_DOWN | MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR | MOVEMENTFLAG_ASCENDING | MOVEMENTFLAG_DESCENDING | MOVEMENTFLAG_PITCH_UP | MOVEMENTFLAG_PITCH_DOWN | MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR | MOVEMENTFLAG_ASCENDING | MOVEMENTFLAG_DESCENDING |
@@ -900,7 +900,7 @@ struct CalcDamageInfo
uint32 procVictim; uint32 procVictim;
uint32 procEx; uint32 procEx;
uint32 cleanDamage; // Used only for rage calculation uint32 cleanDamage; // Used only for rage calculation
MeleeHitOutcome hitOutCome; // TODO: remove this field (need use TargetState) MeleeHitOutcome hitOutCome; /// @todo: remove this field (need use TargetState)
}; };
// Spell damage info structure based on structure sending in SMSG_SPELLNONMELEEDAMAGELOG opcode // Spell damage info structure based on structure sending in SMSG_SPELLNONMELEEDAMAGELOG opcode
+1 -1
View File
@@ -826,7 +826,7 @@ void GameEventMgr::LoadFromDB()
Field* fields = result->Fetch(); Field* fields = result->Fetch();
uint32 questId = fields[0].Get<uint32>(); uint32 questId = fields[0].Get<uint32>();
uint32 eventEntry = fields[1].Get<uint32>(); // TODO: Change to uint8 uint32 eventEntry = fields[1].Get<uint32>(); /// @todo: Change to uint8
Quest* questTemplate = const_cast<Quest*>(sObjectMgr->GetQuestTemplate(questId)); Quest* questTemplate = const_cast<Quest*>(sObjectMgr->GetQuestTemplate(questId));
+1 -1
View File
@@ -161,7 +161,7 @@ enum GuildEvents
GE_RANK_DELETED = 11, GE_RANK_DELETED = 11,
GE_SIGNED_ON = 12, GE_SIGNED_ON = 12,
GE_SIGNED_OFF = 13, GE_SIGNED_OFF = 13,
GE_GUILDBANKBAGSLOTS_CHANGED = 14, /// TODO: Sent when items are moved in gbank - all players with bank open will send tab query GE_GUILDBANKBAGSLOTS_CHANGED = 14, /// @todo: Sent when items are moved in gbank - all players with bank open will send tab query
GE_BANK_TAB_PURCHASED = 15, GE_BANK_TAB_PURCHASED = 15,
GE_BANK_TAB_UPDATED = 16, GE_BANK_TAB_UPDATED = 16,
GE_BANK_MONEY_SET = 17, GE_BANK_MONEY_SET = 17,
+1 -1
View File
@@ -152,7 +152,7 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recvData*/)
data << uint32(boundCounter); data << uint32(boundCounter);
data.append(dataBuffer); data.append(dataBuffer);
// TODO: Fix this, how we do know how many and what holidays to send? /// @todo: Fix this, how we do know how many and what holidays to send?
data << uint32(sGameEventMgr->modifiedHolidays.size()); data << uint32(sGameEventMgr->modifiedHolidays.size());
for (uint32 entry : sGameEventMgr->modifiedHolidays) for (uint32 entry : sGameEventMgr->modifiedHolidays)
{ {
+1 -1
View File
@@ -431,7 +431,7 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPackets::Character::LogoutRequ
bool preventAfkLogout = sWorld->getIntConfig(CONFIG_AFK_PREVENT_LOGOUT) == 2 bool preventAfkLogout = sWorld->getIntConfig(CONFIG_AFK_PREVENT_LOGOUT) == 2
&& GetPlayer()->isAFK(); && GetPlayer()->isAFK();
/// TODO: Possibly add RBAC permission to log out in combat /// @todo: Possibly add RBAC permission to log out in combat
bool canLogoutInCombat = GetPlayer()->HasPlayerFlag(PLAYER_FLAGS_RESTING); bool canLogoutInCombat = GetPlayer()->HasPlayerFlag(PLAYER_FLAGS_RESTING);
uint32 reason = 0; uint32 reason = 0;
+1 -1
View File
@@ -321,7 +321,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe
if (pet->ToPet()) if (pet->ToPet())
pet->ToPet()->ClearCastWhenWillAvailable(); pet->ToPet()->ClearCastWhenWillAvailable();
pet->ClearInPetCombat(); pet->ClearInPetCombat();
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case REACT_DEFENSIVE: //recovery case REACT_DEFENSIVE: //recovery
case REACT_AGGRESSIVE: //activete case REACT_AGGRESSIVE: //activete
@@ -91,7 +91,7 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket& recvData)
} }
else else
{ {
// TODO: find correct opcode /// @todo: find correct opcode
if (_player->GetLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) if (_player->GetLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{ {
SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", _player->GetName(), ERR_ARENA_TEAM_TARGET_TOO_LOW_S); SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", _player->GetName(), ERR_ARENA_TEAM_TARGET_TOO_LOW_S);
+3 -3
View File
@@ -58,7 +58,7 @@ void WorldSession::HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlag
void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket) void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket)
{ {
// TODO: add targets.read() check /// @todo: add targets.read() check
Player* pUser = _player; Player* pUser = _player;
// ignore for remote control state // ignore for remote control state
@@ -384,7 +384,7 @@ void WorldSession::HandleCastSpellOpcode(WorldPacket& recvPacket)
} }
} }
// TODO: Preparation for #23204 /// @todo: Preparation for #23204
// allow casting of spells triggered by clientside periodic trigger auras // allow casting of spells triggered by clientside periodic trigger auras
/* /*
if (caster->HasAuraTypeWithTriggerSpell(SPELL_AURA_PERIODIC_TRIGGER_SPELL_FROM_CLIENT, spellId)) if (caster->HasAuraTypeWithTriggerSpell(SPELL_AURA_PERIODIC_TRIGGER_SPELL_FROM_CLIENT, spellId))
@@ -651,7 +651,7 @@ void WorldSession::HandleSpellClick(WorldPacket& recvData)
if (!unit) if (!unit)
return; return;
// TODO: Unit::SetCharmedBy: 28782 is not in world but 0 is trying to charm it! -> crash /// @todo: Unit::SetCharmedBy: 28782 is not in world but 0 is trying to charm it! -> crash
if (!unit->IsInWorld()) if (!unit->IsInWorld())
return; return;
+2 -2
View File
@@ -1457,7 +1457,7 @@ float LootTemplate::LootGroup::TotalChance() const
void LootTemplate::LootGroup::Verify(LootStore const& lootstore, uint32 id, uint8 group_id) const void LootTemplate::LootGroup::Verify(LootStore const& lootstore, uint32 id, uint8 group_id) const
{ {
float chance = RawTotalChance(); float chance = RawTotalChance();
if (chance > 101.0f) // TODO: replace with 100% when DBs will be ready if (chance > 101.0f) /// @todo: replace with 100% when DBs will be ready
{ {
LOG_ERROR("sql.sql", "Table '{}' entry {} group {} has total chance > 100% ({})", lootstore.GetName(), id, group_id, chance); LOG_ERROR("sql.sql", "Table '{}' entry {} group {} has total chance > 100% ({})", lootstore.GetName(), id, group_id, chance);
} }
@@ -1807,7 +1807,7 @@ void LootTemplate::Verify(LootStore const& lootstore, uint32 id) const
if (Groups[i]) if (Groups[i])
Groups[i]->Verify(lootstore, id, i + 1); Groups[i]->Verify(lootstore, id, i + 1);
// TODO: References validity checks /// @todo: References validity checks
} }
void LootTemplate::CheckLootRefs(LootTemplateMap const& store, LootIdSet* ref_set) const void LootTemplate::CheckLootRefs(LootTemplateMap const& store, LootIdSet* ref_set) const
+2 -2
View File
@@ -167,7 +167,7 @@ Map::EnterState MapMgr::PlayerCannotEnter(uint32 mapid, Player* player, bool log
if ((!group || !group->isRaidGroup()) && !sWorld->getBoolConfig(CONFIG_INSTANCE_IGNORE_RAID)) if ((!group || !group->isRaidGroup()) && !sWorld->getBoolConfig(CONFIG_INSTANCE_IGNORE_RAID))
{ {
// probably there must be special opcode, because client has this string constant in GlobalStrings.lua // probably there must be special opcode, because client has this string constant in GlobalStrings.lua
// TODO: this is not a good place to send the message /// @todo: this is not a good place to send the message
player->GetSession()->SendAreaTriggerMessage(player->GetSession()->GetAcoreString(LANG_INSTANCE_RAID_GROUP_ONLY), mapName); player->GetSession()->SendAreaTriggerMessage(player->GetSession()->GetAcoreString(LANG_INSTANCE_RAID_GROUP_ONLY), mapName);
LOG_DEBUG("maps", "MAP: Player '{}' must be in a raid group to enter instance '{}'", player->GetName(), mapName); LOG_DEBUG("maps", "MAP: Player '{}' must be in a raid group to enter instance '{}'", player->GetName(), mapName);
return Map::CANNOT_ENTER_NOT_IN_RAID; return Map::CANNOT_ENTER_NOT_IN_RAID;
@@ -320,7 +320,7 @@ bool MapMgr::IsValidMAP(uint32 mapid, bool startUp)
return mEntry && (!mEntry->IsDungeon() || sObjectMgr->GetInstanceTemplate(mapid)); return mEntry && (!mEntry->IsDungeon() || sObjectMgr->GetInstanceTemplate(mapid));
} }
// TODO: add check for battleground template /// @todo: add check for battleground template
} }
void MapMgr::UnloadAll() void MapMgr::UnloadAll()
@@ -32,7 +32,7 @@ void PointMovementGenerator<T>::DoInitialize(T* unit)
if (unit->HasUnitState(UNIT_STATE_NOT_MOVE) || unit->IsMovementPreventedByCasting()) if (unit->HasUnitState(UNIT_STATE_NOT_MOVE) || unit->IsMovementPreventedByCasting())
{ {
// the next line is to ensure that a new spline is created in DoUpdate() once the unit is no longer rooted/stunned // the next line is to ensure that a new spline is created in DoUpdate() once the unit is no longer rooted/stunned
// todo: rename this flag to something more appropriate since it is set to true even without speed change now. /// @todo: rename this flag to something more appropriate since it is set to true even without speed change now.
i_recalculateSpeed = true; i_recalculateSpeed = true;
return; return;
} }
@@ -147,7 +147,7 @@ namespace Movement
spline.initLengths(init); spline.initLengths(init);
} }
// TODO: what to do in such cases? problem is in input data (all points are at same coords) /// @todo: what to do in such cases? problem is in input data (all points are at same coords)
if (spline.length() < minimal_duration) if (spline.length() < minimal_duration)
{ {
spline.set_length(spline.last(), spline.isCyclic() ? 1000 : 1); spline.set_length(spline.last(), spline.isCyclic() ? 1000 : 1);
+1 -1
View File
@@ -664,7 +664,7 @@ void Map::ScriptsProcess()
case SCRIPT_COMMAND_CAST_SPELL: case SCRIPT_COMMAND_CAST_SPELL:
{ {
// TODO: Allow gameobjects to be targets and casters /// @todo: Allow gameobjects to be targets and casters
if (!source && !target) if (!source && !target)
{ {
LOG_ERROR("maps.script", "{} source and target objects are nullptr.", step.script->GetDebugInfo()); LOG_ERROR("maps.script", "{} source and target objects are nullptr.", step.script->GetDebugInfo());
@@ -19,7 +19,7 @@
Battleground* ScriptMgr::CreateBattleground(BattlegroundTypeId /*typeId*/) Battleground* ScriptMgr::CreateBattleground(BattlegroundTypeId /*typeId*/)
{ {
// TODO: Implement script-side battlegrounds. /// @todo: Implement script-side battlegrounds.
ABORT(); ABORT();
return nullptr; return nullptr;
} }
+2 -2
View File
@@ -1175,7 +1175,7 @@ void WorldSession::ReadAddonsInfo(ByteBuffer& data)
LOG_DEBUG("network", "ADDON: {} (0x{:x}) was not known, saving...", addon.Name, addon.CRC); LOG_DEBUG("network", "ADDON: {} (0x{:x}) was not known, saving...", addon.Name, addon.CRC);
} }
// TODO: Find out when to not use CRC/pubkey, and other possible states. /// @todo: Find out when to not use CRC/pubkey, and other possible states.
m_addonsList.push_back(addon); m_addonsList.push_back(addon);
} }
@@ -1230,7 +1230,7 @@ void WorldSession::SendAddonsInfo()
data.append(addonPublicKey, sizeof(addonPublicKey)); data.append(addonPublicKey, sizeof(addonPublicKey));
} }
data << uint32(0); // TODO: Find out the meaning of this. data << uint32(0); /// @todo: Find out the meaning of this.
} }
uint8 unk3 = 0; // 0 is sent here uint8 unk3 = 0; // 0 is sent here
+1 -1
View File
@@ -351,7 +351,7 @@ WorldSocket::ReadDataHandlerResult WorldSocket::ReadDataHandler()
LOG_ERROR("network", "WorldSocket::ReadDataHandler(): client {} sent malformed CMSG_AUTH_SESSION", GetRemoteIpAddress().to_string()); LOG_ERROR("network", "WorldSocket::ReadDataHandler(): client {} sent malformed CMSG_AUTH_SESSION", GetRemoteIpAddress().to_string());
return ReadDataHandlerResult::Error; return ReadDataHandlerResult::Error;
} }
case CMSG_KEEP_ALIVE: // todo: handle this packet in the same way of CMSG_TIME_SYNC_RESP case CMSG_KEEP_ALIVE: /// @todo: handle this packet in the same way of CMSG_TIME_SYNC_RESP
sessionGuard.lock(); sessionGuard.lock();
LogOpcodeText(opcode, sessionGuard); LogOpcodeText(opcode, sessionGuard);
if (_worldSession) if (_worldSession)
@@ -39,7 +39,7 @@
#include "Vehicle.h" #include "Vehicle.h"
#include "WorldPacket.h" #include "WorldPacket.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -595,7 +595,7 @@ void AuraEffect::CalculatePeriodic(Unit* caster, bool create, bool load)
// 3 spells have no amplitude set // 3 spells have no amplitude set
if (!m_amplitude) if (!m_amplitude)
m_amplitude = 1 * IN_MILLISECONDS; m_amplitude = 1 * IN_MILLISECONDS;
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case SPELL_AURA_PERIODIC_DAMAGE: case SPELL_AURA_PERIODIC_DAMAGE:
case SPELL_AURA_PERIODIC_HEAL: case SPELL_AURA_PERIODIC_HEAL:
case SPELL_AURA_OBS_MOD_HEALTH: case SPELL_AURA_OBS_MOD_HEALTH:
@@ -1190,7 +1190,7 @@ void AuraEffect::CleanupTriggeredSpells(Unit* target)
return; return;
// needed for spell 43680, maybe others // needed for spell 43680, maybe others
// TODO: is there a spell flag, which can solve this in a more sophisticated way? /// @todo: is there a spell flag, which can solve this in a more sophisticated way?
if (m_spellInfo->Effects[GetEffIndex()].ApplyAuraName == SPELL_AURA_PERIODIC_TRIGGER_SPELL && if (m_spellInfo->Effects[GetEffIndex()].ApplyAuraName == SPELL_AURA_PERIODIC_TRIGGER_SPELL &&
uint32(m_spellInfo->GetDuration()) == m_spellInfo->Effects[GetEffIndex()].Amplitude) uint32(m_spellInfo->GetDuration()) == m_spellInfo->Effects[GetEffIndex()].Amplitude)
return; return;
@@ -3128,7 +3128,7 @@ void AuraEffect::HandlePreventFleeing(AuraApplication const* aurApp, uint8 mode,
// Since patch 3.0.2 this mechanic no longer affects fear effects. It will ONLY prevent humanoids from fleeing due to low health. // Since patch 3.0.2 this mechanic no longer affects fear effects. It will ONLY prevent humanoids from fleeing due to low health.
if (target->GetTypeId() == TYPEID_PLAYER || !apply || target->HasAuraType(SPELL_AURA_MOD_FEAR)) if (target->GetTypeId() == TYPEID_PLAYER || !apply || target->HasAuraType(SPELL_AURA_MOD_FEAR))
return; return;
/// TODO: find a way to cancel fleeing for assistance. /// @todo: find a way to cancel fleeing for assistance.
/// Currently this will only stop creatures fleeing due to low health that could not find nearby allies to flee towards. /// Currently this will only stop creatures fleeing due to low health that could not find nearby allies to flee towards.
target->SetControlled(false, UNIT_STATE_FLEEING); target->SetControlled(false, UNIT_STATE_FLEEING);
} }
@@ -3864,7 +3864,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint
&& GetSpellInfo()->HasAttribute(SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE)) && GetSpellInfo()->HasAttribute(SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE))
target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_IMMUNE_OR_LOST_SELECTION); target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_IMMUNE_OR_LOST_SELECTION);
// TODO: optimalize this cycle - use RemoveAurasWithInterruptFlags call or something else /// @todo: optimalize this cycle - use RemoveAurasWithInterruptFlags call or something else
if ((apply) if ((apply)
&& GetSpellInfo()->HasAttribute(SPELL_ATTR1_IMMUNITY_PURGES_EFFECT) && GetSpellInfo()->HasAttribute(SPELL_ATTR1_IMMUNITY_PURGES_EFFECT)
&& GetSpellInfo()->IsPositive()) //Only positive immunity removes auras && GetSpellInfo()->IsPositive()) //Only positive immunity removes auras
@@ -6024,7 +6024,7 @@ void AuraEffect::HandlePeriodicTriggerSpellAuraTick(Unit* target, Unit* caster)
triggerSpellId = 30571; triggerSpellId = 30571;
break; break;
// Doom // Doom
// TODO: effect trigger spell may be independant on spell targets, and executed in spell finish phase /// @todo: effect trigger spell may be independant on spell targets, and executed in spell finish phase
// so instakill will be naturally done before trigger spell // so instakill will be naturally done before trigger spell
case 31347: case 31347:
{ {
+8 -8
View File
@@ -35,7 +35,7 @@
#include "Vehicle.h" #include "Vehicle.h"
#include "WorldPacket.h" #include "WorldPacket.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -520,7 +520,7 @@ void Aura::_UnapplyForTarget(Unit* target, Unit* caster, AuraApplication* auraAp
ApplicationMap::iterator itr = m_applications.find(target->GetGUID()); ApplicationMap::iterator itr = m_applications.find(target->GetGUID());
// TODO: Figure out why this happens /// @todo: Figure out why this happens
if (itr == m_applications.end()) if (itr == m_applications.end())
{ {
LOG_ERROR("spells.aura", "Aura::_UnapplyForTarget, target:{}, caster:{}, spell:{} was not found in owners application map!", LOG_ERROR("spells.aura", "Aura::_UnapplyForTarget, target:{}, caster:{}, spell:{} was not found in owners application map!",
@@ -1396,7 +1396,7 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
if (caster->HasAura(56370)) if (caster->HasAura(56370))
SetDuration(0); SetDuration(0);
} }
// Todo: This should be moved to similar function in spell::hit /// @todo: This should be moved to similar function in spell::hit
else if (GetSpellInfo()->SpellFamilyFlags[0] & 0x01000000) else if (GetSpellInfo()->SpellFamilyFlags[0] & 0x01000000)
{ {
// Polymorph Sound - Sheep && Penguin // Polymorph Sound - Sheep && Penguin
@@ -1695,7 +1695,7 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
case SPELLFAMILY_WARRIOR: case SPELLFAMILY_WARRIOR:
if (!caster) if (!caster)
break; break;
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case SPELLFAMILY_WARLOCK: case SPELLFAMILY_WARLOCK:
if (!caster) if (!caster)
break; break;
@@ -2243,7 +2243,7 @@ bool Aura::IsProcTriggeredOnEvent(AuraApplication* aurApp, ProcEventInfo& eventI
if (IsProcOnCooldown()) if (IsProcOnCooldown())
return false; return false;
// TODO: /// @todo:
// something about triggered spells triggering, and add extra attack effect // something about triggered spells triggering, and add extra attack effect
// do checks against db data // do checks against db data
@@ -2261,14 +2261,14 @@ bool Aura::IsProcTriggeredOnEvent(AuraApplication* aurApp, ProcEventInfo& eventI
if (!check) if (!check)
return false; return false;
// TODO: /// @todo:
// do allow additional requirements for procs // do allow additional requirements for procs
// this is needed because this is the last moment in which you can prevent aura charge drop on proc // this is needed because this is the last moment in which you can prevent aura charge drop on proc
// and possibly a way to prevent default checks (if there're going to be any) // and possibly a way to prevent default checks (if there're going to be any)
// Check if current equipment meets aura requirements // Check if current equipment meets aura requirements
// do that only for passive spells // do that only for passive spells
// TODO: this needs to be unified for all kinds of auras /// @todo: this needs to be unified for all kinds of auras
Unit* target = aurApp->GetTarget(); Unit* target = aurApp->GetTarget();
if (IsPassive() && target->GetTypeId() == TYPEID_PLAYER && GetSpellInfo()->EquippedItemClass != -1) if (IsPassive() && target->GetTypeId() == TYPEID_PLAYER && GetSpellInfo()->EquippedItemClass != -1)
{ {
@@ -2847,7 +2847,7 @@ void UnitAura::FillTargetMap(std::map<Unit*, uint8>& targets, Unit* caster)
} }
case SPELL_EFFECT_APPLY_AREA_AURA_PET: case SPELL_EFFECT_APPLY_AREA_AURA_PET:
targetList.push_back(GetUnitOwner()); targetList.push_back(GetUnitOwner());
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: case SPELL_EFFECT_APPLY_AREA_AURA_OWNER:
{ {
if (Unit* owner = GetUnitOwner()->GetCharmerOrOwner()) if (Unit* owner = GetUnitOwner()->GetCharmerOrOwner())
+15 -15
View File
@@ -1890,7 +1890,7 @@ void Spell::SelectImplicitTrajTargets(SpellEffIndex effIndex, SpellImplicitTarge
continue; continue;
const float size = std::max((*itr)->GetObjectSize() * 0.7f, 1.0f); // 1/sqrt(3) const float size = std::max((*itr)->GetObjectSize() * 0.7f, 1.0f); // 1/sqrt(3)
// TODO: all calculation should be based on src instead of m_caster /// @todo: all calculation should be based on src instead of m_caster
const float objDist2d = std::fabs(m_targets.GetSrcPos()->GetExactDist2d(*itr) * cos(m_targets.GetSrcPos()->GetRelativeAngle(*itr))); const float objDist2d = std::fabs(m_targets.GetSrcPos()->GetExactDist2d(*itr) * cos(m_targets.GetSrcPos()->GetRelativeAngle(*itr)));
const float dz = std::fabs((*itr)->GetPositionZ() - m_targets.GetSrcPos()->m_positionZ); const float dz = std::fabs((*itr)->GetPositionZ() - m_targets.GetSrcPos()->m_positionZ);
@@ -2011,7 +2011,7 @@ void Spell::SelectImplicitTrajTargets(SpellEffIndex effIndex, SpellImplicitTarge
void Spell::SelectEffectTypeImplicitTargets(uint8 effIndex) void Spell::SelectEffectTypeImplicitTargets(uint8 effIndex)
{ {
// special case for SPELL_EFFECT_SUMMON_RAF_FRIEND and SPELL_EFFECT_SUMMON_PLAYER // special case for SPELL_EFFECT_SUMMON_RAF_FRIEND and SPELL_EFFECT_SUMMON_PLAYER
// TODO: this is a workaround - target shouldn't be stored in target map for those spells /// @todo: this is a workaround - target shouldn't be stored in target map for those spells
switch (m_spellInfo->Effects[effIndex].Effect) switch (m_spellInfo->Effects[effIndex].Effect)
{ {
case SPELL_EFFECT_SUMMON_RAF_FRIEND: case SPELL_EFFECT_SUMMON_RAF_FRIEND:
@@ -2054,7 +2054,7 @@ void Spell::SelectEffectTypeImplicitTargets(uint8 effIndex)
{ {
if (Corpse* corpseTarget = m_targets.GetCorpseTarget()) if (Corpse* corpseTarget = m_targets.GetCorpseTarget())
{ {
// TODO: this is a workaround - corpses should be added to spell target map too, but we can't do that so we add owner instead /// @todo: this is a workaround - corpses should be added to spell target map too, but we can't do that so we add owner instead
if (Player* owner = ObjectAccessor::FindPlayer(corpseTarget->GetOwnerGUID())) if (Player* owner = ObjectAccessor::FindPlayer(corpseTarget->GetOwnerGUID()))
target = owner; target = owner;
} }
@@ -2442,7 +2442,7 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
if (m_spellInfo->Speed > 0.0f && m_caster != target) if (m_spellInfo->Speed > 0.0f && m_caster != target)
{ {
// calculate spell incoming interval // calculate spell incoming interval
// TODO: this is a hack /// @todo: this is a hack
float dist = m_caster->GetDistance(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ()); float dist = m_caster->GetDistance(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
if (dist < 5.0f) if (dist < 5.0f)
@@ -2472,7 +2472,7 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
m_spellFlags |= SPELL_FLAG_REFLECTED; m_spellFlags |= SPELL_FLAG_REFLECTED;
// HACK: workaround check for succubus seduction case // HACK: workaround check for succubus seduction case
// TODO: seduction should be casted only on humanoids (not demons) /// @todo: seduction should be casted only on humanoids (not demons)
if (m_caster->IsPet()) if (m_caster->IsPet())
{ {
CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(m_caster->GetEntry()); CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(m_caster->GetEntry());
@@ -2702,7 +2702,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
{ {
m_needComboPoints = false; m_needComboPoints = false;
// Restore spell mods for a miss/dodge/parry Cold Blood // Restore spell mods for a miss/dodge/parry Cold Blood
// TODO: check how broad this rule should be /// @todo: check how broad this rule should be
if (m_caster->GetTypeId() == TYPEID_PLAYER && (missInfo == SPELL_MISS_MISS || missInfo == SPELL_MISS_DODGE || missInfo == SPELL_MISS_PARRY)) if (m_caster->GetTypeId() == TYPEID_PLAYER && (missInfo == SPELL_MISS_MISS || missInfo == SPELL_MISS_DODGE || missInfo == SPELL_MISS_PARRY))
m_caster->ToPlayer()->RestoreSpellMods(this, 14177); m_caster->ToPlayer()->RestoreSpellMods(this, 14177);
} }
@@ -3051,7 +3051,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
else if (m_caster->IsFriendlyTo(unit)) else if (m_caster->IsFriendlyTo(unit))
{ {
// for delayed spells ignore negative spells (after duel end) for friendly targets // for delayed spells ignore negative spells (after duel end) for friendly targets
// TODO: this cause soul transfer bugged /// @todo: this cause soul transfer bugged
if(!IsTriggered() && m_spellInfo->Speed > 0.0f && unit->GetTypeId() == TYPEID_PLAYER && !m_spellInfo->IsPositive()) if(!IsTriggered() && m_spellInfo->Speed > 0.0f && unit->GetTypeId() == TYPEID_PLAYER && !m_spellInfo->IsPositive())
return SPELL_MISS_EVADE; return SPELL_MISS_EVADE;
@@ -3238,7 +3238,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
void Spell::DoTriggersOnSpellHit(Unit* unit, uint8 effMask) void Spell::DoTriggersOnSpellHit(Unit* unit, uint8 effMask)
{ {
// Apply additional spell effects to target // Apply additional spell effects to target
// TODO: move this code to scripts /// @todo: move this code to scripts
if (m_preCastSpell) if (m_preCastSpell)
{ {
// Paladin immunity shields // Paladin immunity shields
@@ -3297,7 +3297,7 @@ void Spell::DoTriggersOnSpellHit(Unit* unit, uint8 effMask)
} }
// trigger linked auras remove/apply // trigger linked auras remove/apply
// TODO: remove/cleanup this, as this table is not documented and people are doing stupid things with it /// @todo: remove/cleanup this, as this table is not documented and people are doing stupid things with it
if (std::vector<int32> const* spellTriggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id + SPELL_LINK_HIT)) if (std::vector<int32> const* spellTriggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id + SPELL_LINK_HIT))
{ {
for (std::vector<int32>::const_iterator i = spellTriggered->begin(); i != spellTriggered->end(); ++i) for (std::vector<int32>::const_iterator i = spellTriggered->begin(); i != spellTriggered->end(); ++i)
@@ -3709,7 +3709,7 @@ void Spell::cancel(bool bySelf)
if (m_caster->ToPlayer()->NeedSendSpectatorData()) if (m_caster->ToPlayer()->NeedSendSpectatorData())
ArenaSpectator::SendCommand_Spell(m_caster->FindMap(), m_caster->GetGUID(), "SPE", m_spellInfo->Id, bySelf ? 99998 : 99999); ArenaSpectator::SendCommand_Spell(m_caster->FindMap(), m_caster->GetGUID(), "SPE", m_spellInfo->Id, bySelf ? 99998 : 99999);
} }
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case SPELL_STATE_DELAYED: case SPELL_STATE_DELAYED:
SendInterrupted(0); SendInterrupted(0);
// xinef: fixes bugged gcd reset in some cases // xinef: fixes bugged gcd reset in some cases
@@ -5992,7 +5992,7 @@ SpellCastResult Spell::CheckCast(bool strict)
} }
// Triggered spells also have range check // Triggered spells also have range check
// TODO: determine if there is some flag to enable/disable the check /// @todo: determine if there is some flag to enable/disable the check
castResult = CheckRange(strict); castResult = CheckRange(strict);
if (castResult != SPELL_CAST_OK) if (castResult != SPELL_CAST_OK)
return castResult; return castResult;
@@ -7416,7 +7416,7 @@ SpellCastResult Spell::CheckItems()
return SPELL_FAILED_DONT_REPORT; return SPELL_FAILED_DONT_REPORT;
} }
} }
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC: case SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC:
{ {
Item* targetItem = m_targets.GetItemTarget(); Item* targetItem = m_targets.GetItemTarget();
@@ -7917,7 +7917,7 @@ bool Spell::CheckEffectTarget(Unit const* target, uint32 eff) const
return true; return true;
} }
// todo: below shouldn't be here, but it's temporary /// @todo: below shouldn't be here, but it's temporary
//Check targets for LOS visibility (except spells without range limitations) //Check targets for LOS visibility (except spells without range limitations)
switch (m_spellInfo->Effects[eff].Effect) switch (m_spellInfo->Effects[eff].Effect)
{ {
@@ -8709,7 +8709,7 @@ bool Spell::CanExecuteTriggersOnHit(uint8 effMask, SpellInfo const* triggeredByA
void Spell::PrepareTriggersExecutedOnHit() void Spell::PrepareTriggersExecutedOnHit()
{ {
// todo: move this to scripts /// @todo: move this to scripts
if (m_spellInfo->SpellFamilyName) if (m_spellInfo->SpellFamilyName)
{ {
SpellInfo const* excludeCasterSpellInfo = sSpellMgr->GetSpellInfo(m_spellInfo->ExcludeCasterAuraSpell); SpellInfo const* excludeCasterSpellInfo = sSpellMgr->GetSpellInfo(m_spellInfo->ExcludeCasterAuraSpell);
@@ -8720,7 +8720,7 @@ void Spell::PrepareTriggersExecutedOnHit()
m_preCastSpell = m_spellInfo->ExcludeTargetAuraSpell; m_preCastSpell = m_spellInfo->ExcludeTargetAuraSpell;
} }
// todo: move this to scripts /// @todo: move this to scripts
switch (m_spellInfo->SpellFamilyName) switch (m_spellInfo->SpellFamilyName)
{ {
case SPELLFAMILY_PALADIN: case SPELLFAMILY_PALADIN:
+13 -13
View File
@@ -63,7 +63,7 @@
#include "World.h" #include "World.h"
#include "WorldPacket.h" #include "WorldPacket.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -586,7 +586,7 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex)
} }
} }
// TODO: should this be put on taken but not done? /// @todo: should this be put on taken but not done?
if (found) if (found)
damage += m_spellInfo->Effects[EFFECT_1].CalcValue(); damage += m_spellInfo->Effects[EFFECT_1].CalcValue();
@@ -797,7 +797,7 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
uint32 triggered_spell_id = m_spellInfo->Effects[effIndex].TriggerSpell; uint32 triggered_spell_id = m_spellInfo->Effects[effIndex].TriggerSpell;
// todo: move those to spell scripts /// @todo: move those to spell scripts
if (m_spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_TRIGGER_SPELL if (m_spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_TRIGGER_SPELL
&& effectHandleMode == SPELL_EFFECT_HANDLE_LAUNCH_TARGET) && effectHandleMode == SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
{ {
@@ -1422,7 +1422,7 @@ void Spell::EffectSendEvent(SpellEffIndex effIndex)
// some spells have no target entries in dbc and they use focus target // some spells have no target entries in dbc and they use focus target
if (focusObject) if (focusObject)
target = focusObject; target = focusObject;
// TODO: there should be a possibility to pass dest target to event script /// @todo: there should be a possibility to pass dest target to event script
} }
LOG_DEBUG("spells.aura", "Spell ScriptStart {} for spellid {} in EffectSendEvent ", m_spellInfo->Effects[effIndex].MiscValue, m_spellInfo->Id); LOG_DEBUG("spells.aura", "Spell ScriptStart {} for spellid {} in EffectSendEvent ", m_spellInfo->Effects[effIndex].MiscValue, m_spellInfo->Id);
@@ -1827,7 +1827,7 @@ void Spell::EffectCreateItem2(SpellEffIndex effIndex)
else else
player->AutoStoreLoot(m_spellInfo->Id, LootTemplates_Spell); // create some random items player->AutoStoreLoot(m_spellInfo->Id, LootTemplates_Spell); // create some random items
} }
// TODO: ExecuteLogEffectCreateItem(i, m_spellInfo->Effects[i].ItemType); /// @todo: ExecuteLogEffectCreateItem(i, m_spellInfo->Effects[i].ItemType);
} }
void Spell::EffectCreateRandomItem(SpellEffIndex /*effIndex*/) void Spell::EffectCreateRandomItem(SpellEffIndex /*effIndex*/)
@@ -1846,7 +1846,7 @@ void Spell::EffectCreateRandomItem(SpellEffIndex /*effIndex*/)
// create some random items // create some random items
player->AutoStoreLoot(m_spellInfo->Id, LootTemplates_Spell); player->AutoStoreLoot(m_spellInfo->Id, LootTemplates_Spell);
// TODO: ExecuteLogEffectCreateItem(i, m_spellInfo->Effects[i].ItemType); /// @todo: ExecuteLogEffectCreateItem(i, m_spellInfo->Effects[i].ItemType);
} }
void Spell::EffectPersistentAA(SpellEffIndex effIndex) void Spell::EffectPersistentAA(SpellEffIndex effIndex)
@@ -2107,7 +2107,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
if (gameObjTarget) if (gameObjTarget)
{ {
GameObjectTemplate const* goInfo = gameObjTarget->GetGOInfo(); GameObjectTemplate const* goInfo = gameObjTarget->GetGOInfo();
// Arathi Basin banner opening. // TODO: Verify correctness of this check // Arathi Basin banner opening. /// @todo: Verify correctness of this check
if ((goInfo->type == GAMEOBJECT_TYPE_BUTTON && goInfo->button.noDamageImmune) || if ((goInfo->type == GAMEOBJECT_TYPE_BUTTON && goInfo->button.noDamageImmune) ||
(goInfo->type == GAMEOBJECT_TYPE_GOOBER && goInfo->goober.losOK)) (goInfo->type == GAMEOBJECT_TYPE_GOOBER && goInfo->goober.losOK))
{ {
@@ -2139,7 +2139,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
} }
return; return;
} }
// TODO: Add script for spell 41920 - Filling, becouse server it freze when use this spell /// @todo: Add script for spell 41920 - Filling, becouse server it freze when use this spell
// handle outdoor pvp object opening, return true if go was registered for handling // handle outdoor pvp object opening, return true if go was registered for handling
// these objects must have been spawned by outdoorpvp! // these objects must have been spawned by outdoorpvp!
else if (gameObjTarget->GetGOInfo()->type == GAMEOBJECT_TYPE_GOOBER && sOutdoorPvPMgr->HandleOpenGo(player, gameObjTarget)) else if (gameObjTarget->GetGOInfo()->type == GAMEOBJECT_TYPE_GOOBER && sOutdoorPvPMgr->HandleOpenGo(player, gameObjTarget))
@@ -2687,7 +2687,7 @@ void Spell::EffectDualWield(SpellEffIndex /*effIndex*/)
void Spell::EffectPull(SpellEffIndex effIndex) void Spell::EffectPull(SpellEffIndex effIndex)
{ {
// TODO: create a proper pull towards distract spell center for distract /// @todo: create a proper pull towards distract spell center for distract
EffectNULL(effIndex); EffectNULL(effIndex);
} }
@@ -3712,7 +3712,7 @@ void Spell::EffectInterruptCast(SpellEffIndex effIndex)
if (!unitTarget || !unitTarget->IsAlive()) if (!unitTarget || !unitTarget->IsAlive())
return; return;
// TODO: not all spells that used this effect apply cooldown at school spells /// @todo: not all spells that used this effect apply cooldown at school spells
// also exist case: apply cooldown to interrupted cast only and to all spells // also exist case: apply cooldown to interrupted cast only and to all spells
// there is no CURRENT_AUTOREPEAT_SPELL spells that can be interrupted // there is no CURRENT_AUTOREPEAT_SPELL spells that can be interrupted
for (uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_AUTOREPEAT_SPELL; ++i) for (uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_AUTOREPEAT_SPELL; ++i)
@@ -3794,7 +3794,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return; return;
// TODO: we must implement hunter pet summon at login there (spell 6962) /// @todo: we must implement hunter pet summon at login there (spell 6962)
switch (m_spellInfo->SpellFamilyName) switch (m_spellInfo->SpellFamilyName)
{ {
@@ -4554,7 +4554,7 @@ void Spell::EffectFeedPet(SpellEffIndex effIndex)
uint32 count = 1; uint32 count = 1;
player->DestroyItemCount(foodItem, count, true); player->DestroyItemCount(foodItem, count, true);
// TODO: fix crash when a spell has two effects, both pointed at the same item target /// @todo: fix crash when a spell has two effects, both pointed at the same item target
m_caster->CastCustomSpell(pet, m_spellInfo->Effects[effIndex].TriggerSpell, &benefit, nullptr, nullptr, true); m_caster->CastCustomSpell(pet, m_spellInfo->Effects[effIndex].TriggerSpell, &benefit, nullptr, nullptr, true);
} }
@@ -5248,7 +5248,7 @@ void Spell::EffectResurrectPet(SpellEffIndex /*effIndex*/)
return; return;
} }
// TODO: Better to fail Hunter's "Revive Pet" at cast instead of here when casting ends /// @todo: Better to fail Hunter's "Revive Pet" at cast instead of here when casting ends
if (pet->IsAlive()) if (pet->IsAlive())
{ {
return; return;
+2 -2
View File
@@ -1460,7 +1460,7 @@ SpellCastResult SpellInfo::CheckShapeshift(uint32 form) const
// Check if stance disables cast of not-stance spells // Check if stance disables cast of not-stance spells
// Example: cannot cast any other spells in zombie or ghoul form // Example: cannot cast any other spells in zombie or ghoul form
// TODO: Find a way to disable use of these spells clientside /// @todo: Find a way to disable use of these spells clientside
if (shapeInfo && shapeInfo->flags1 & 0x400) if (shapeInfo && shapeInfo->flags1 & 0x400)
{ {
if (!(stanceMask & Stances)) if (!(stanceMask & Stances))
@@ -2283,7 +2283,7 @@ SpellSpecificType SpellInfo::LoadSpellSpecific() const
/// @workaround For non-stacking tracking spells (We need generic solution) /// @workaround For non-stacking tracking spells (We need generic solution)
if (Id == 30645) // Gas Cloud Tracking if (Id == 30645) // Gas Cloud Tracking
return SPELL_SPECIFIC_NORMAL; return SPELL_SPECIFIC_NORMAL;
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case SPELL_AURA_TRACK_RESOURCES: case SPELL_AURA_TRACK_RESOURCES:
case SPELL_AURA_TRACK_STEALTHED: case SPELL_AURA_TRACK_STEALTHED:
return SPELL_SPECIFIC_TRACKER; return SPELL_SPECIFIC_TRACKER;
+2 -2
View File
@@ -2179,7 +2179,7 @@ void SpellMgr::LoadEnchantCustomAttr()
if (!spellInfo) if (!spellInfo)
continue; continue;
// TODO: find a better check /// @todo: find a better check
// Xinef: commented second part, fixes warlock enchants like firestone, spellstone // Xinef: commented second part, fixes warlock enchants like firestone, spellstone
if (!spellInfo->HasAttribute(SPELL_ATTR2_ENCHANT_OWN_ITEM_ONLY)/* || !spellInfo->HasAttribute(SPELL_ATTR0_NOT_SHAPESHIFTED)*/) if (!spellInfo->HasAttribute(SPELL_ATTR2_ENCHANT_OWN_ITEM_ONLY)/* || !spellInfo->HasAttribute(SPELL_ATTR0_NOT_SHAPESHIFTED)*/)
continue; continue;
@@ -3029,7 +3029,7 @@ void SpellMgr::LoadSpellInfoCustomAttributes()
spellInfo->Effects[j].ApplyAuraName == SPELL_AURA_PERIODIC_HEALTH_FUNNEL || spellInfo->Effects[j].ApplyAuraName == SPELL_AURA_PERIODIC_HEALTH_FUNNEL ||
spellInfo->Effects[j].ApplyAuraName == SPELL_AURA_PERIODIC_DUMMY) spellInfo->Effects[j].ApplyAuraName == SPELL_AURA_PERIODIC_DUMMY)
continue; continue;
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
default: default:
if (spellInfo->Effects[j].CalcValue() || ((spellInfo->Effects[j].Effect == SPELL_EFFECT_INTERRUPT_CAST || spellInfo->HasAttribute(SPELL_ATTR0_CU_DONT_BREAK_STEALTH)) && !spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES))) if (spellInfo->Effects[j].CalcValue() || ((spellInfo->Effects[j].Effect == SPELL_EFFECT_INTERRUPT_CAST || spellInfo->HasAttribute(SPELL_ATTR0_CU_DONT_BREAK_STEALTH)) && !spellInfo->HasAttribute(SPELL_ATTR0_NO_IMMUNITIES)))
if (spellInfo->Id != 69649 && spellInfo->Id != 71056 && spellInfo->Id != 71057 && spellInfo->Id != 71058 && spellInfo->Id != 73061 && spellInfo->Id != 73062 && spellInfo->Id != 73063 && spellInfo->Id != 73064) // Sindragosa Frost Breath if (spellInfo->Id != 69649 && spellInfo->Id != 71056 && spellInfo->Id != 71057 && spellInfo->Id != 71058 && spellInfo->Id != 73061 && spellInfo->Id != 73062 && spellInfo->Id != 73063 && spellInfo->Id != 73064) // Sindragosa Frost Breath
+1 -1
View File
@@ -85,7 +85,7 @@ enum SpellFamilyFlag
SPELLFAMILYFLAG_DK_DEATH_STRIKE = 0x00000010, SPELLFAMILYFLAG_DK_DEATH_STRIKE = 0x00000010,
SPELLFAMILYFLAG_DK_DEATH_COIL = 0x00002000, SPELLFAMILYFLAG_DK_DEATH_COIL = 0x00002000,
// TODO: Figure out a more accurate name for the following familyflag(s) /// @todo: Figure out a more accurate name for the following familyflag(s)
SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS = 0x04000000, // Seems to be linked to most totems and some totem effects SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS = 0x04000000, // Seems to be linked to most totems and some totem effects
}; };
+1 -1
View File
@@ -172,7 +172,7 @@ private:
bool _completed; bool _completed;
GMTicketEscalationStatus _escalatedStatus; GMTicketEscalationStatus _escalatedStatus;
bool _viewed; bool _viewed;
bool _needResponse; // TODO: find out the use of this, and then store it in DB bool _needResponse; /// @todo: find out the use of this, and then store it in DB
bool _needMoreHelp; bool _needMoreHelp;
std::string _response; std::string _response;
std::string _chatLog; // No need to store in db, will be refreshed every session client side std::string _chatLog; // No need to store in db, will be refreshed every session client side
+1 -1
View File
@@ -477,7 +477,7 @@ void WardenWin::HandleData(ByteBuffer& buff)
{ {
uint8 result; uint8 result;
buff >> result; buff >> result;
// TODO: test it. /// @todo: test it.
if (result == 0x00) if (result == 0x00)
{ {
LOG_DEBUG("warden", "TIMING CHECK FAIL result 0x00"); LOG_DEBUG("warden", "TIMING CHECK FAIL result 0x00");
+1 -1
View File
@@ -159,7 +159,7 @@ public:
return true; return true;
} }
// TODO - move item to other slot /// @todo - move item to other slot
static bool HandleItemMoveCommand(ChatHandler* handler, uint8 srcSlot, uint8 dstSlot) static bool HandleItemMoveCommand(ChatHandler* handler, uint8 srcSlot, uint8 dstSlot)
{ {
if (srcSlot == dstSlot) if (srcSlot == dstSlot)
+1 -1
View File
@@ -44,7 +44,7 @@
#include "Tokenize.h" #include "Tokenize.h"
#include "WeatherMgr.h" #include "WeatherMgr.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE /// @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -229,7 +229,7 @@ public:
for (ObjectGuid const& guid : EggList) for (ObjectGuid const& guid : EggList)
{ {
// Eggs should be destroyed instead // Eggs should be destroyed instead
// @todo: after dynamic spawns /// @todo: after dynamic spawns
if (GameObject* egg = instance->GetGameObject(guid)) if (GameObject* egg = instance->GetGameObject(guid))
{ {
egg->SetPhaseMask(2, true); egg->SetPhaseMask(2, true);
@@ -777,7 +777,7 @@ public:
return true; return true;
case 16: case 16:
SendGossipMenuFor(player, 100116, creature->GetGUID()); SendGossipMenuFor(player, 100116, creature->GetGUID());
// todo: we need to play these 3 emote in sequence, we play only the last one right now. /// @todo: we need to play these 3 emote in sequence, we play only the last one right now.
creature->HandleEmoteCommand(274); creature->HandleEmoteCommand(274);
creature->HandleEmoteCommand(1); creature->HandleEmoteCommand(1);
creature->HandleEmoteCommand(397); creature->HandleEmoteCommand(397);
+1 -1
View File
@@ -28,7 +28,7 @@
#include "SpellScript.h" #include "SpellScript.h"
#include "TaskScheduler.h" #include "TaskScheduler.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE // @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -251,7 +251,7 @@ public:
{ {
drake->AI()->Talk(0); drake->AI()->Talk(0);
} }
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
} }
case EVENT_THRALL_REPOSITION: case EVENT_THRALL_REPOSITION:
{ {
@@ -200,7 +200,7 @@ public:
break; break;
case EVENT_HADRONOX_MOVE4: case EVENT_HADRONOX_MOVE4:
me->CastSpell(me, SPELL_WEB_FRONT_DOORS, true); me->CastSpell(me, SPELL_WEB_FRONT_DOORS, true);
[[fallthrough]]; // TODO: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked. [[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
case EVENT_HADRONOX_MOVE1: case EVENT_HADRONOX_MOVE1:
case EVENT_HADRONOX_MOVE2: case EVENT_HADRONOX_MOVE2:
case EVENT_HADRONOX_MOVE3: case EVENT_HADRONOX_MOVE3:
@@ -346,7 +346,7 @@ class spell_ahn_kahet_swarmer_aura : public SpellScript
} }
else if (_targetCount) else if (_targetCount)
{ {
// TODO: move spell id to enum /// @todo: move spell id to enum
caster->CastCustomSpell(SPELL_SWARM, SPELLVALUE_AURA_STACK, _targetCount, caster, true); caster->CastCustomSpell(SPELL_SWARM, SPELLVALUE_AURA_STACK, _targetCount, caster, true);
if (Aura *aur = caster->GetAura(SPELL_SWARM)) if (Aura *aur = caster->GetAura(SPELL_SWARM))
{ {
@@ -131,7 +131,7 @@ struct npc_taldaram_flamesphere : public NullCreatureAI
DoCastSelf(SPELL_FLAME_SPHERE_SPAWN_EFFECT); DoCastSelf(SPELL_FLAME_SPHERE_SPAWN_EFFECT);
DoCastSelf(SPELL_FLAME_SPHERE_VISUAL); DoCastSelf(SPELL_FLAME_SPHERE_VISUAL);
// TODO: replace with DespawnOrUnsummon /// @todo: replace with DespawnOrUnsummon
uiDespawnTimer = 13000; uiDespawnTimer = 13000;
} }
@@ -490,7 +490,7 @@ private:
} }
}; };
// TODO: Turn into new script type when Gossips have been updated // @todo: Turn into new script type when Gossips have been updated
class go_prince_taldaram_sphere : public GameObjectScript class go_prince_taldaram_sphere : public GameObjectScript
{ {
public: public:
@@ -1305,7 +1305,7 @@ public:
if (Creature* acolyte = me->SummonCreature((isCalledBySartharion ? NPC_ACOLYTE_OF_SHADRON : NPC_DISCIPLE_OF_SHADRON), me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation())) if (Creature* acolyte = me->SummonCreature((isCalledBySartharion ? NPC_ACOLYTE_OF_SHADRON : NPC_DISCIPLE_OF_SHADRON), me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()))
{ {
// TODO: inpect JustSummoned /// @todo: inpect JustSummoned
summons.Summon(acolyte); summons.Summon(acolyte);
acolyte->SetPhaseMask(16, true); acolyte->SetPhaseMask(16, true);
} }
@@ -141,7 +141,7 @@ public:
n2->GetMotionMaster()->MovePoint(1, NecrolytePos2); n2->GetMotionMaster()->MovePoint(1, NecrolytePos2);
n2->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H); n2->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H);
} }
// TODO This spell check is invalid /// @todo This spell check is invalid
// if (SPELL_NECROLYTE_CHANNELING) // if (SPELL_NECROLYTE_CHANNELING)
// { // {
n1->RemoveAura(SPELL_NECROLYTE_CHANNELING); n1->RemoveAura(SPELL_NECROLYTE_CHANNELING);
@@ -410,7 +410,7 @@ public:
{ {
isInvincible = true; isInvincible = true;
// TODO This spell check is invalid /// @todo This spell check is invalid
// if (SPELL_NECROLYTE_CHANNELING) // if (SPELL_NECROLYTE_CHANNELING)
me->CastSpell(me, SPELL_NECROLYTE_CHANNELING, false); me->CastSpell(me, SPELL_NECROLYTE_CHANNELING, false);
@@ -434,7 +434,7 @@ public:
void EnterCombat(Unit* /*who*/) override void EnterCombat(Unit* /*who*/) override
{ {
// TODO This spell check is invalid /// @todo This spell check is invalid
// if (SPELL_NECROLYTE_CHANNELING) // if (SPELL_NECROLYTE_CHANNELING)
me->RemoveAura(SPELL_NECROLYTE_CHANNELING); me->RemoveAura(SPELL_NECROLYTE_CHANNELING);
events.Reset(); events.Reset();
@@ -63,7 +63,7 @@ enum ScriptTexts
SAY_INTRO_ALLIANCE_1 = 0, SAY_INTRO_ALLIANCE_1 = 0,
SAY_INTRO_ALLIANCE_4 = 1, SAY_INTRO_ALLIANCE_4 = 1,
SAY_INTRO_ALLIANCE_5 = 2, SAY_INTRO_ALLIANCE_5 = 2,
SAY_OUTRO_ALLIANCE_1 = 3, // TODO ALLIANCE OUTRO SAY_OUTRO_ALLIANCE_1 = 3, /// @todo ALLIANCE OUTRO
SAY_OUTRO_ALLIANCE_2 = 4, SAY_OUTRO_ALLIANCE_2 = 4,
SAY_OUTRO_ALLIANCE_3 = 5, SAY_OUTRO_ALLIANCE_3 = 5,
SAY_OUTRO_ALLIANCE_4 = 6, SAY_OUTRO_ALLIANCE_4 = 6,
+1 -1
View File
@@ -20,7 +20,7 @@
#include "OutdoorPvP.h" #include "OutdoorPvP.h"
// TODO: "sometimes" set to neutral // @todo: "sometimes" set to neutral
enum OutdoorPvPNASpells enum OutdoorPvPNASpells
{ {
+1 -1
View File
@@ -259,5 +259,5 @@ private:
uint32 m_HordeTowersControlled; uint32 m_HordeTowersControlled;
}; };
// todo: flag carrier death/leave/mount/activitychange should give back the gossip options // @todo: flag carrier death/leave/mount/activitychange should give back the gossip options
#endif #endif
@@ -39,7 +39,7 @@ EndContentData */
#include "SpellInfo.h" #include "SpellInfo.h"
#include "SpellScript.h" #include "SpellScript.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE // @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
+1 -1
View File
@@ -30,7 +30,7 @@
#include "SpellAuraEffects.h" #include "SpellAuraEffects.h"
#include "SpellScript.h" #include "SpellScript.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE // @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
+1 -1
View File
@@ -861,7 +861,7 @@ class spell_dk_anti_magic_shell_raid : public AuraScript
void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
{ {
// TODO: this should absorb limited amount of damage, but no info on calculation formula /// @todo: this should absorb limited amount of damage, but no info on calculation formula
amount = -1; amount = -1;
} }
+1 -1
View File
@@ -43,7 +43,7 @@
#include "Vehicle.h" #include "Vehicle.h"
#include <array> #include <array>
// TODO: this import is not necessary for compilation and marked as unused by the IDE // @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
+2 -2
View File
@@ -31,7 +31,7 @@
#include "SpellMgr.h" #include "SpellMgr.h"
#include "SpellScript.h" #include "SpellScript.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE // @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
@@ -463,7 +463,7 @@ class spell_hun_chimera_shot : public SpellScript
// Amount of one aura tick // Amount of one aura tick
basePoint = int32(CalculatePct(unitTarget->GetMaxPower(POWER_MANA), aurEff->GetAmount())); basePoint = int32(CalculatePct(unitTarget->GetMaxPower(POWER_MANA), aurEff->GetAmount()));
int32 casterBasePoint = aurEff->GetAmount() * unitTarget->GetMaxPower(POWER_MANA) / 50; // TODO: Caster uses unitTarget? int32 casterBasePoint = aurEff->GetAmount() * unitTarget->GetMaxPower(POWER_MANA) / 50; /// @todo: Caster uses unitTarget?
if (basePoint > casterBasePoint) if (basePoint > casterBasePoint)
basePoint = casterBasePoint; basePoint = casterBasePoint;
ApplyPct(basePoint, TickCount * 60); ApplyPct(basePoint, TickCount * 60);
+2 -2
View File
@@ -591,7 +591,7 @@ class spell_mage_ice_barrier_aura : public spell_mage_incanters_absorbtion_base_
{ {
PrepareAuraScript(spell_mage_ice_barrier_aura); PrepareAuraScript(spell_mage_ice_barrier_aura);
// TODO: Rework /// @todo: Rework
static int32 CalculateSpellAmount(Unit* caster, int32 amount, SpellInfo const* spellInfo, const AuraEffect* aurEff) static int32 CalculateSpellAmount(Unit* caster, int32 amount, SpellInfo const* spellInfo, const AuraEffect* aurEff)
{ {
// +80.68% from sp bonus // +80.68% from sp bonus
@@ -627,7 +627,7 @@ class spell_mage_ice_barrier : public SpellScript
{ {
PrepareSpellScript(spell_mage_ice_barrier); PrepareSpellScript(spell_mage_ice_barrier);
// TODO: Rework /// @todo: Rework
static int32 CalculateSpellAmount(Unit* caster, int32 amount, SpellInfo const* spellInfo, const AuraEffect* aurEff) static int32 CalculateSpellAmount(Unit* caster, int32 amount, SpellInfo const* spellInfo, const AuraEffect* aurEff)
{ {
// +80.68% from sp bonus // +80.68% from sp bonus
@@ -329,7 +329,7 @@ public:
enum SentryPoint enum SentryPoint
{ {
SPELL_TELEPORT_VISUAL = 799, // TODO Find the correct spell SPELL_TELEPORT_VISUAL = 799, /// @todo Find the correct spell
QUEST_MISSING_DIPLO_PT14 = 1265, QUEST_MISSING_DIPLO_PT14 = 1265,
NPC_TERVOSH = 4967 NPC_TERVOSH = 4967
}; };
+1 -1
View File
@@ -56,7 +56,7 @@ EndContentData */
#include "WaypointMgr.h" #include "WaypointMgr.h"
#include "World.h" #include "World.h"
// TODO: this import is not necessary for compilation and marked as unused by the IDE // @todo: this import is not necessary for compilation and marked as unused by the IDE
// however, for some reasons removing it would cause a damn linking issue // however, for some reasons removing it would cause a damn linking issue
// there is probably some underlying problem with imports which should properly addressed // there is probably some underlying problem with imports which should properly addressed
// see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766 // see: https://github.com/azerothcore/azerothcore-wotlk/issues/9766
+6 -6
View File
@@ -154,7 +154,7 @@ enum AchievementCriteriaTypes
ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL = 34, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL = 34,
ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL = 35, ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL = 35,
ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM = 36, ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM = 36,
ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA = 37, // TODO: the archievements 1162 and 1163 requires a special rating which can't be found in the dbc ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA = 37, /// @todo: the archievements 1162 and 1163 requires a special rating which can't be found in the dbc
ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING = 38,
ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING = 39,
ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL = 40,
@@ -167,13 +167,13 @@ enum AchievementCriteriaTypes
ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION = 47, ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION = 47,
ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP = 48, // note: rewarded as soon as the player payed, not at taking place at the seat ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP = 48, // note: rewarded as soon as the player payed, not at taking place at the seat
ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49,
ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50, // TODO: itemlevel is mentioned in text but not present in dbc ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT = 50, /// @todo: itemlevel is mentioned in text but not present in dbc
ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT = 51, ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT = 51,
ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52, ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS = 52,
ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53, ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53,
ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54, ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54,
ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55, ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE = 55,
ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56, // TODO: in some cases map not present, and in some cases need do without die ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS = 56, /// @todo: in some cases map not present, and in some cases need do without die
ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM = 57,
ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS = 59, ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS = 59,
ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60,
@@ -187,11 +187,11 @@ enum AchievementCriteriaTypes
ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 = 69, ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 = 69,
ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70, ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70,
ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72, ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72,
ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN = 74, // TODO: title id is not mentioned in dbc ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN = 74, /// @todo: title id is not mentioned in dbc
ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75,
ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76, ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76,
ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL = 77, ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL = 77,
ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE = 78, // TODO: creature type (demon, undead etc.) is not stored in dbc ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE = 78, /// @todo: creature type (demon, undead etc.) is not stored in dbc
ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS = 80, ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS = 80,
ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION = 82, ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION = 82,
ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID = 83, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID = 83,
@@ -220,7 +220,7 @@ enum AchievementCriteriaTypes
ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED = 107, ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED = 107,
ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108, ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108,
ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE = 109, ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE = 109,
ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2 = 110, // TODO: target entry is missing ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2 = 110, /// @todo: target entry is missing
ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE = 112, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE = 112,
ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113, ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113,
ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114, ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114,
+6 -6
View File
@@ -74,7 +74,7 @@ struct AchievementCriteriaEntry
union union
{ {
// ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE = 0 // ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE = 0
// TODO: also used for player deaths.. /// @todo: also used for player deaths..
struct struct
{ {
uint32 creatureID; // 3 uint32 creatureID; // 3
@@ -286,14 +286,14 @@ struct AchievementCriteriaEntry
// ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43 // ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43
struct struct
{ {
// TODO: This rank is _NOT_ the index from AreaTable.dbc /// @todo: This rank is _NOT_ the index from AreaTable.dbc
uint32 areaReference; // 3 uint32 areaReference; // 3
} explore_area; } explore_area;
// ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK = 44 // ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK = 44
struct struct
{ {
// TODO: This rank is _NOT_ the index from CharTitles.dbc /// @todo: This rank is _NOT_ the index from CharTitles.dbc
uint32 rank; // 3 uint32 rank; // 3
} own_rank; } own_rank;
@@ -326,7 +326,7 @@ struct AchievementCriteriaEntry
} visit_barber; } visit_barber;
// ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49 // ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49
// TODO: where is the required itemlevel stored? /// @todo: where is the required itemlevel stored?
struct struct
{ {
uint32 itemSlot; // 3 uint32 itemSlot; // 3
@@ -361,7 +361,7 @@ struct AchievementCriteriaEntry
} hk_race; } hk_race;
// ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54 // ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54
// TODO: where is the information about the target stored? /// @todo: where is the information about the target stored?
struct struct
{ {
uint32 emoteID; // 3 enum TextEmotes uint32 emoteID; // 3 enum TextEmotes
@@ -412,7 +412,7 @@ struct AchievementCriteriaEntry
} use_gameobject; } use_gameobject;
// ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70 // ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70
// TODO: are those special criteria stored in the dbc or do we have to add another sql table? /// @todo: are those special criteria stored in the dbc or do we have to add another sql table?
struct struct
{ {
uint32 unused; // 3 uint32 unused; // 3
@@ -103,6 +103,6 @@ TEST(FormulasTest, Gain)
{ {
auto worldMock = new WorldMock(); auto worldMock = new WorldMock();
sWorld.reset((worldMock)); sWorld.reset((worldMock));
// TODO: create mocks of Player and Creature /// @todo: create mocks of Player and Creature
// Gain(nullptr, nullptr); // Gain(nullptr, nullptr);
} }
+2 -2
View File
@@ -384,7 +384,7 @@ namespace MMAP
return; return;
} }
// ToDo: delete the old tile as the user clearly wants to rebuild it /// @todo: delete the old tile as the user clearly wants to rebuild it
TileBuilder tileBuilder = TileBuilder(this, m_skipLiquid, m_bigBaseUnit, m_debugOutput); TileBuilder tileBuilder = TileBuilder(this, m_skipLiquid, m_bigBaseUnit, m_debugOutput);
tileBuilder.buildTile(mapID, tileX, tileY, navMesh); tileBuilder.buildTile(mapID, tileX, tileY, navMesh);
@@ -763,7 +763,7 @@ namespace MMAP
delete[] tiles; delete[] tiles;
// set polygons as walkable // set polygons as walkable
// TODO: special flags for DYNAMIC polygons, ie surfaces that can be turned on and off /// @todo: special flags for DYNAMIC polygons, ie surfaces that can be turned on and off
for (int i = 0; i < iv.polyMesh->npolys; ++i) for (int i = 0; i < iv.polyMesh->npolys; ++i)
if (iv.polyMesh->areas[i] & RC_WALKABLE_AREA) if (iv.polyMesh->areas[i] & RC_WALKABLE_AREA)
iv.polyMesh->flags[i] = iv.polyMesh->areas[i]; iv.polyMesh->flags[i] = iv.polyMesh->areas[i];
+1 -1
View File
@@ -104,7 +104,7 @@ namespace MMAP
dtNavMeshParams m_navMeshParams; dtNavMeshParams m_navMeshParams;
}; };
// ToDo: move this to its own file. For now it will stay here to keep the changes to a minimum, especially in the cpp file /// @todo: move this to its own file. For now it will stay here to keep the changes to a minimum, especially in the cpp file
class MapBuilder; class MapBuilder;
class TileBuilder class TileBuilder
{ {
+1 -1
View File
@@ -31,7 +31,7 @@ public:
// Open database. It must be openened before it can be used. // Open database. It must be openened before it can be used.
bool open(); bool open();
// TODO: Add a close function? /// @todo: Add a close function?
// Database exceptions // Database exceptions
class Exception class Exception
@@ -107,7 +107,7 @@ void ExtractGameobjectModels()
} }
else if (!strcmp(ch_ext, ".mdl")) else if (!strcmp(ch_ext, ".mdl"))
{ {
// TODO: extract .mdl files, if needed /// @todo: extract .mdl files, if needed
continue; continue;
} }
else //if (!strcmp(ch_ext, ".mdx") || !strcmp(ch_ext, ".m2")) else //if (!strcmp(ch_ext, ".mdx") || !strcmp(ch_ext, ".m2"))
+1 -1
View File
@@ -472,7 +472,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE* output, bool preciseVectorData)
// only need height values, the other values are unknown anyway // only need height values, the other values are unknown anyway
for (uint32 i = 0; i < LiquEx_size / sizeof(WMOLiquidVert); ++i) for (uint32 i = 0; i < LiquEx_size / sizeof(WMOLiquidVert); ++i)
fwrite(&LiquEx[i].height, sizeof(float), 1, output); fwrite(&LiquEx[i].height, sizeof(float), 1, output);
// todo: compress to bit field /// @todo: compress to bit field
fwrite(LiquBytes, 1, hlq->xtiles * hlq->ytiles, output); fwrite(LiquBytes, 1, hlq->xtiles * hlq->ytiles, output);
} }
} }