First step of comment style refactoring to doxygen-style.

This commit is contained in:
Nefarion
2013-03-08 21:55:37 +01:00
parent 2dbe3d6cfe
commit 49fd11ab5a
164 changed files with 363 additions and 362 deletions
+1 -1
View File
@@ -243,7 +243,7 @@ namespace VMAP
FILE* rf = fopen(fullname.c_str(), "rb");
if (!rf)
return false;
// TODO: check magic number when implemented...
/// @todo check magic number when implemented...
char tiled;
char chunk[8];
if (!readChunk(rf, chunk, VMAP_MAGIC, 8) || fread(&tiled, sizeof(char), 1, rf) != 1)
+1 -1
View File
@@ -88,7 +88,7 @@ namespace VMAP
}
else if (entry->second.flags & MOD_WORLDSPAWN) // WMO maps and terrain maps use different origin, so we need to adapt :/
{
// TODO: remove extractor hack and uncomment below line:
/// @todo remove extractor hack and uncomment below line:
//entry->second.iPos += Vector3(533.33333f*32, 533.33333f*32, 0.f);
entry->second.iBound = entry->second.iBound + Vector3(533.33333f*32, 533.33333f*32, 0.f);
}
+1 -1
View File
@@ -247,7 +247,7 @@ TurretAI::TurretAI(Creature* c) : CreatureAI(c)
bool TurretAI::CanAIAttack(const Unit* /*who*/) const
{
// TODO: use one function to replace it
/// @todo use one function to replace it
if (!me->IsWithinCombatRange(me->getVictim(), me->m_CombatDistance)
|| (m_minRange && me->IsWithinCombatRange(me->getVictim(), m_minRange)))
return false;
+1 -1
View File
@@ -89,7 +89,7 @@ struct DefaultTargetSelector : public std::unary_function<Unit*, bool>
};
// 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 std::unary_function<Unit*, bool>
{
public:
+1 -1
View File
@@ -134,7 +134,7 @@ void CreatureAI::MoveInLineOfSight(Unit* who)
AttackStart(who);
//else if (who->getVictim() && me->IsFriendlyTo(who)
// && me->IsWithinDistInMap(who, sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS))
// && me->canStartAttack(who->getVictim(), true)) // TODO: if we use true, it will not attack it when it arrives
// && me->canStartAttack(who->getVictim(), true)) /// @todo if we use true, it will not attack it when it arrives
// me->GetMotionMaster()->MoveChase(who->getVictim());
}
@@ -840,7 +840,7 @@ void CreatureEventAI::Reset()
break;
}
default:
//TODO: enable below code line / verify this is correct to enable events previously disabled (ex. aggro yell), instead of enable this in void EnterCombat()
/// @todo enable below code line / verify this is correct to enable events previously disabled (ex. aggro yell), instead of enable this in void EnterCombat()
//(*i).Enabled = true;
//(*i).Time = 0;
break;
@@ -415,7 +415,7 @@ void npc_escortAI::SetRun(bool on)
m_bIsRunning = on;
}
//TODO: get rid of this many variables passed in function.
/// @todo get rid of this many variables passed in function.
void npc_escortAI::Start(bool isActiveAttacker /* = true*/, bool run /* = false */, uint64 playerGUID /* = 0 */, Quest const* quest /* = NULL */, bool instantRespawn /* = false */, bool canLoopPath /* = false */, bool resetWaypoints /* = true */)
{
if (me->getVictim())
@@ -122,7 +122,7 @@ void FollowerAI::JustDied(Unit* /*killer*/)
if (!HasFollowState(STATE_FOLLOW_INPROGRESS) || !m_uiLeaderGUID || !m_pQuestForFollow)
return;
//TODO: need a better check for quests with time limit.
/// @todo need a better check for quests with time limit.
if (Player* player = GetLeaderForFollower())
{
if (Group* group = player->GetGroup())
+1 -1
View File
@@ -336,7 +336,7 @@ void SmartAI::UpdateAI(uint32 diff)
UpdatePath(diff);
UpdateDespawn(diff);
//TODO move to void
/// @todo move to void
if (mFollowGuid)
{
if (mFollowArrivedTimer < diff)
@@ -1904,7 +1904,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
creature->GetMotionMaster()->Clear();
creature->GetMotionMaster()->MoveJump(e.target.x, e.target.y, e.target.z, (float)e.action.jump.speedxy, (float)e.action.jump.speedz);
}
// TODO: Resume path when reached jump location
/// @todo Resume path when reached jump location
delete targets;
break;
@@ -426,7 +426,7 @@ enum SMART_ACTION
SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL = 42, // MinHpValue(+pct, -flat)
SMART_ACTION_MOUNT_TO_ENTRY_OR_MODEL = 43, // Creature_template entry(param1) OR ModelId (param2) (or 0 for both to dismount)
SMART_ACTION_SET_INGAME_PHASE_MASK = 44, // mask
SMART_ACTION_SET_DATA = 45, // Field, Data (only creature TODO)
SMART_ACTION_SET_DATA = 45, // Field, Data (only creature @todo)
SMART_ACTION_MOVE_FORWARD = 46, // distance
SMART_ACTION_SET_VISIBILITY = 47, // on/off
SMART_ACTION_SET_ACTIVE = 48, // No Params
@@ -2048,7 +2048,7 @@ void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
ca.changed = true;
// don't insert for ACHIEVEMENT_FLAG_REALM_FIRST_KILL since otherwise only the first group member would reach that achievement
// TODO: where do set this instead?
/// @todo where do set this instead?
if (!(achievement->flags & ACHIEVEMENT_FLAG_REALM_FIRST_KILL))
sAchievementMgr->SetRealmCompleted(achievement);
+2 -2
View File
@@ -81,7 +81,7 @@ void Battlefield::HandlePlayerEnterZone(Player* player, uint32 /*zone*/)
InvitePlayerToWar(player);
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()] = time(NULL) + 10;
InvitePlayerToQueue(player);
}
@@ -256,7 +256,7 @@ void Battlefield::InvitePlayerToWar(Player* player)
if (!player)
return;
// TODO : needed ?
/// @todo needed ?
if (player->isInFlight())
return;
@@ -15,9 +15,9 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// TODO: Implement proper support for vehicle+player teleportation
// TODO: Use spell victory/defeat in wg instead of RewardMarkOfHonor() && RewardHonor
// TODO: Add proper implement of achievement
/// @todo Implement proper support for vehicle+player teleportation
/// @todo Use spell victory/defeat in wg instead of RewardMarkOfHonor() && RewardHonor
/// @todo Add proper implement of achievement
#include "BattlefieldWG.h"
#include "AchievementMgr.h"
@@ -658,7 +658,7 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim)
}
}
}
// TODO:Recent PvP activity worldstate
/// @todoRecent PvP activity worldstate
}
bool BattlefieldWG::FindAndRemoveVehicleFromList(Unit* vehicle)
@@ -764,7 +764,7 @@ void BattlefieldWG::OnPlayerJoinWar(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->GetVehicle()) // Remove vehicle of player if he go out.
+1 -1
View File
@@ -652,7 +652,7 @@ int32 ArenaTeam::GetRatingMod(uint32 ownRating, uint32 opponentRating, bool won
// Calculate the rating modification
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 && ownRating < 1300)
{
if (ownRating < 1000)
@@ -515,7 +515,7 @@ inline void Battleground::_ProcessJoin(uint32 diff)
// Remove preparation
if (isArena())
{
// TODO : add arena sound PlaySoundToAll(SOUND_ARENA_START);
/// @todo add arena sound PlaySoundToAll(SOUND_ARENA_START);
for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
if (Player* player = ObjectAccessor::FindPlayer(itr->first))
{
@@ -1636,7 +1636,7 @@ bool Battleground::AddSpiritGuide(uint32 type, float x, float y, float z, float
creature->setDeathState(DEAD);
creature->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, creature->GetGUID());
// aura
// TODO: Fix display here
/// @todo Fix display here
// creature->SetVisibleAura(0, SPELL_SPIRIT_HEAL_CHANNEL);
// casting visual effect
creature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SPIRIT_HEAL_CHANNEL);
+1 -1
View File
@@ -494,7 +494,7 @@ class Battleground
void HandleTriggerBuff(uint64 go_guid);
void SetHoliday(bool is_holiday);
// TODO: make this protected:
/// @todo make this protected:
typedef std::vector<uint64> BGObjects;
typedef std::vector<uint64> BGCreatures;
BGObjects BgObjects;
@@ -1029,7 +1029,7 @@ void BattlegroundMgr::SetHolidayWeekends(uint32 mask)
void BattlegroundMgr::ScheduleQueueUpdate(uint32 arenaMatchmakerRating, uint8 arenaType, BattlegroundQueueTypeId bgQueueTypeId, BattlegroundTypeId bgTypeId, BattlegroundBracketId bracket_id)
{
//This method must be atomic, TODO add mutex
//This method must be atomic, @todo add mutex
//we will use only 1 number created of bgTypeId and bracket_id
uint64 const scheduleId = ((uint64)arenaMatchmakerRating << 32) | (arenaType << 24) | (bgQueueTypeId << 16) | (bgTypeId << 8) | bracket_id;
if (std::find(m_QueueUpdateScheduler.begin(), m_QueueUpdateScheduler.end(), scheduleId) == m_QueueUpdateScheduler.end())
@@ -282,7 +282,7 @@ class BattlegroundAB : public Battleground
void _SendNodeUpdate(uint8 node);
/* Creature spawning/despawning */
// TODO: working, scripted peons spawning
/// @todo working, scripted peons spawning
void _NodeOccupied(uint8 node, Team team);
void _NodeDeOccupied(uint8 node);
@@ -43,7 +43,7 @@ BattlegroundAV::~BattlegroundAV()
{
}
uint16 BattlegroundAV::GetBonusHonor(uint8 kills) //TODO: move this function to Battleground.cpp (needs to find a way to get m_MaxLevel)
uint16 BattlegroundAV::GetBonusHonor(uint8 kills) /// @todo move this function to Battleground.cpp (needs to find a way to get m_MaxLevel)
{
return Trinity::Honor::hk_honor_at_level(m_MaxLevel, kills);
}
@@ -139,7 +139,7 @@ void BattlegroundAV::HandleQuestComplete(uint32 questid, Player* player)
if (GetStatus() != STATUS_IN_PROGRESS)
return;//maybe we should log this, cause this must be a cheater or a big bug
uint8 team = GetTeamIndexByTeamId(player->GetTeam());
//TODO add reputation, events (including quest not available anymore, next quest availabe, go/npc de/spawning)and maybe honor
/// @todo add reputation, events (including quest not available anymore, next quest availabe, go/npc de/spawning)and maybe honor
sLog->outDebug(LOG_FILTER_BATTLEGROUND, "BG_AV Quest %i completed", questid);
switch (questid)
{
@@ -298,7 +298,7 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
if (!creature)
return NULL;
if (creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_A_CAPTAIN][0] || creature->GetEntry() == BG_AV_CreatureInfo[AV_NPC_H_CAPTAIN][0])
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) ||
(cinfoid >= AV_NPC_H_GRAVEDEFENSE0 && cinfoid <= AV_NPC_H_GRAVEDEFENSE3))))
@@ -314,7 +314,7 @@ Creature* BattlegroundAV::AddAVCreature(uint16 cinfoid, uint16 type)
creature->GetMotionMaster()->Initialize();
creature->setDeathState(JUST_DIED);
creature->Respawn();
//TODO: find a way to add a motionmaster without killing the creature (i
/// @todo find a way to add a motionmaster without killing the creature (i
//just copied this code from a gm-command
}
@@ -384,11 +384,11 @@ void BattlegroundAV::PostUpdateImpl(uint32 diff)
else
{
CastSpellOnTeam(AV_BUFF_H_CAPTAIN, HORDE);
Creature* creature = GetBGCreature(AV_CPLACE_MAX + 59); //TODO: make the captains a dynamic creature
Creature* creature = GetBGCreature(AV_CPLACE_MAX + 59); /// @todo make the captains a dynamic creature
if (creature)
YellToAll(creature, LANG_BG_AV_H_CAPTAIN_BUFF, LANG_ORCISH);
}
m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60000; //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes TODO get the right times
m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60000; //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes @todo get the right times
}
}
//add points from mine owning, and look if he neutral team wanrts to reclaim the mine
@@ -455,7 +455,7 @@ void BattlegroundAV::AddPlayer(Player* player)
BattlegroundAVScore* sc = new BattlegroundAVScore;
PlayerScores[player->GetGUID()] = sc;
if (m_MaxLevel == 0)
m_MaxLevel=(player->getLevel()%10 == 0)? player->getLevel() : (player->getLevel()-(player->getLevel()%10))+10; //TODO: just look at the code \^_^/ --but queue-info should provide this information..
m_MaxLevel=(player->getLevel()%10 == 0)? player->getLevel() : (player->getLevel()-(player->getLevel()%10))+10; /// @todo just look at the code \^_^/ --but queue-info should provide this information..
}
void BattlegroundAV::EndBattleground(uint32 winner)
@@ -494,7 +494,7 @@ void BattlegroundAV::EndBattleground(uint32 winner)
RewardHonorToTeam(GetBonusHonor(kills[i]), i == 0 ? ALLIANCE : HORDE);
}
//TODO add enterevademode for all attacking creatures
/// @todo add enterevademode for all attacking creatures
Battleground::EndBattleground(winner);
}
@@ -505,7 +505,7 @@ void BattlegroundAV::RemovePlayer(Player* player, uint64 /*guid*/, uint32 /*team
sLog->outError(LOG_FILTER_BATTLEGROUND, "bg_AV no player at remove");
return;
}
//TODO search more buffs
/// @todo search more buffs
player->RemoveAurasDueToSpell(AV_BUFF_ARMOR);
player->RemoveAurasDueToSpell(AV_BUFF_A_CAPTAIN);
player->RemoveAurasDueToSpell(AV_BUFF_H_CAPTAIN);
@@ -666,10 +666,10 @@ void BattlegroundAV::ChangeMineOwner(uint8 mine, uint32 team, bool initial)
if (mine == AV_SOUTH_MINE)
for (uint16 i=AV_CPLACE_MINE_S_S_MIN; i <= AV_CPLACE_MINE_S_S_MAX; i++)
if (BgCreatures[i])
DelCreature(i); //TODO just set the respawntime to 999999
DelCreature(i); /// @todo just set the respawntime to 999999
for (uint16 i=((mine == AV_NORTH_MINE)?AV_CPLACE_MINE_N_1_MIN:AV_CPLACE_MINE_S_1_MIN); i <= ((mine == AV_NORTH_MINE)?AV_CPLACE_MINE_N_3:AV_CPLACE_MINE_S_3); i++)
if (BgCreatures[i])
DelCreature(i); //TODO here also
DelCreature(i); /// @todo here also
}
SendMineWorldStates(mine);
@@ -1617,7 +1617,7 @@ void BattlegroundAV::ResetBGSubclass()
m_Team_Scores[i]=BG_AV_SCORE_INITIAL_POINTS;
m_IsInformedNearVictory[i]=false;
m_CaptainAlive[i] = true;
m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60; //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes TODO get the right times
m_CaptainBuffTimer[i] = 120000 + urand(0, 4)* 60; //as far as i could see, the buff is randomly so i make 2minutes (thats the duration of the buff itself) + 0-4minutes @todo get the right times
m_Mine_Owner[i] = AV_NEUTRAL_TEAM;
m_Mine_PrevOwner[i] = m_Mine_Owner[i];
}
@@ -272,7 +272,7 @@ void BattlegroundEY::UpdatePointStatuses()
void BattlegroundEY::UpdateTeamScore(uint32 Team)
{
uint32 score = GetTeamScore(Team);
//TODO there should be some sound played when one team is near victory!! - and define variables
/// @todo there should be some sound played when one team is near victory!! - and define variables
/*if (!m_IsInformedNearVictory && score >= BG_EY_WARNING_NEAR_VICTORY_SCORE)
{
if (Team == ALLIANCE)
+5 -5
View File
@@ -153,13 +153,13 @@ enum AchievementCriteriaTypes
ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION = 47,
ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP = 48,
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_HK_CLASS = 52,
ACHIEVEMENT_CRITERIA_TYPE_HK_RACE = 53,
ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE = 54,
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_MONEY_FROM_VENDORS = 59,
ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS = 60,
@@ -173,8 +173,8 @@ enum AchievementCriteriaTypes
ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 = 69,
ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL = 70,
ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT = 72,
// TODO 73: Achievements 1515, 1241, 1103 (Name: Mal'Ganis)
ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE = 74, // TODO: title id is not mentioned in dbc
/// @todo 73: Achievements 1515, 1241, 1103 (Name: Mal'Ganis)
ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE = 74, /// @todo title id is not mentioned in dbc
ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS = 75,
ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL = 76,
ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL = 77,
@@ -207,7 +207,7 @@ enum AchievementCriteriaTypes
ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED = 107,
ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN = 108,
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_EARN_HONORABLE_KILL = 113,
ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114,
+6 -6
View File
@@ -76,7 +76,7 @@ struct AchievementCriteriaEntry
union
{
// ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE = 0
// TODO: also used for player deaths..
/// @todo also used for player deaths..
struct
{
uint32 creatureID; // 3
@@ -288,14 +288,14 @@ struct AchievementCriteriaEntry
// ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA = 43
struct
{
// TODO: This rank is _NOT_ the index from AreaTable.dbc
/// @todo This rank is _NOT_ the index from AreaTable.dbc
uint32 areaReference; // 3
} explore_area;
// ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK = 44
struct
{
// TODO: This rank is _NOT_ the index from CharTitles.dbc
/// @todo This rank is _NOT_ the index from CharTitles.dbc
uint32 rank; // 3
} own_rank;
@@ -328,7 +328,7 @@ struct AchievementCriteriaEntry
} visit_barber;
// ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49
// TODO: where is the required itemlevel stored?
/// @todo where is the required itemlevel stored?
struct
{
uint32 itemSlot; // 3
@@ -363,7 +363,7 @@ struct AchievementCriteriaEntry
} hk_race;
// 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
{
uint32 emoteID; // 3 enum TextEmotes
@@ -413,7 +413,7 @@ struct AchievementCriteriaEntry
} use_gameobject;
// 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
{
uint32 unused; // 3
+1 -1
View File
@@ -421,7 +421,7 @@ void LFGMgr::InitializeLockedDungeons(Player* player, uint8 level /* = 0 */)
lockData = LFG_LOCKSTATUS_MISSING_ITEM;
}
/* TODO VoA closed if WG is not under team control (LFG_LOCKSTATUS_RAID_LOCKED)
/* @todo VoA closed if WG is not under team control (LFG_LOCKSTATUS_RAID_LOCKED)
lockData = LFG_LOCKSTATUS_TOO_LOW_GEAR_SCORE;
lockData = LFG_LOCKSTATUS_TOO_HIGH_GEAR_SCORE;
lockData = LFG_LOCKSTATUS_ATTUNEMENT_TOO_LOW_LEVEL;
@@ -78,7 +78,7 @@ void LFGPlayerScript::OnLogin(Player* player)
sLFGMgr->InitializeLockedDungeons(player);
sLFGMgr->SetTeam(player->GetGUID(), player->GetTeam());
// 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*/)
@@ -166,7 +166,7 @@ void LFGGroupScript::OnRemoveMember(Group* group, uint64 guid, RemoveMethod meth
if (isLFG && method == GROUP_REMOVEMETHOD_KICK) // Player have been kicked
{
// TODO - Update internal kick cooldown of kicker
/// @todo - Update internal kick cooldown of kicker
std::string str_reason = "";
if (reason)
str_reason = std::string(reason);
@@ -397,7 +397,7 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData* data)
SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool));
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_RESISTANCE_HOLY, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_HOLY]));
SetModifierValue(UNIT_MOD_RESISTANCE_FIRE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FIRE]));
@@ -737,7 +737,7 @@ void Creature::DoFleeToGetAssistance()
if (!creature)
//SetFeared(true, getVictim()->GetGUID(), 0, sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_FLEE_DELAY));
//TODO: use 31365
/// @todo use 31365
SetControlled(true, UNIT_STATE_FLEEING);
else
GetMotionMaster()->MoveSeekAssistance(creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ());
@@ -850,7 +850,7 @@ bool Creature::Create(uint32 guidlow, Map* map, uint32 phaseMask, uint32 Entry,
LastUsedScriptID = GetCreatureTemplate()->ScriptID;
// TODO: Replace with spell, handle from DB
/// @todo Replace with spell, handle from DB
if (isSpiritHealer() || isSpiritGuide())
{
m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST);
@@ -1186,7 +1186,7 @@ void Creature::SelectLevel(const CreatureTemplate* cinfo)
SetMaxPower(POWER_MANA, mana); //MAX 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_MANA, BASE_VALUE, (float)mana);
@@ -1484,7 +1484,7 @@ bool Creature::canStartAttack(Unit const* who, bool force) const
if (!CanFly() && (GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE + m_CombatDistance))
//|| who->IsControlledByPlayer() && who->IsFlying()))
// we cannot check flying for other creatures, too much map/vmap calculation
// TODO: should switch to range attack
/// @todo should switch to range attack
return false;
if (!force)
@@ -372,7 +372,7 @@ void Puppet::Update(uint32 time)
if (!isAlive())
{
UnSummon();
// TODO: why long distance .die does not remove it
/// @todo why long distance .die does not remove it
}
}
}
@@ -428,8 +428,8 @@ void GameObject::Update(uint32 diff)
bool IsBattlegroundTrap = false;
//FIXME: this is activation radius (in different casting radius that must be selected from spell data)
//TODO: move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state
float radius = (float)(goInfo->trap.radius)/3*2; // TODO rename radius to diameter (goInfo->trap.radius) should be (goInfo->trap.diameter)
/// @todo move activated state code (cast itself) to GO_ACTIVATED, in this place only check activating and set state
float radius = (float)(goInfo->trap.radius)/3*2; /// @todo rename radius to diameter (goInfo->trap.radius) should be (goInfo->trap.diameter)
if (!radius)
{
if (goInfo->trap.cooldown != 3) // cast in other case (at some triggering/linked go/etc explicit call)
@@ -945,7 +945,7 @@ bool GameObject::ActivateToQuest(Player* target) const
{
if (LootTemplates_Gameobject.HaveQuestLootForPlayer(GetGOInfo()->GetLootId(), target))
{
//TODO: fix this hack
/// @todo fix this hack
//look for battlegroundAV for some objects which are only activated after mine gots captured by own team
if (GetEntry() == BG_AV_OBJECTID_MINE_N || GetEntry() == BG_AV_OBJECTID_MINE_S)
if (Battleground* bg = target->GetBattleground())
@@ -1353,12 +1353,12 @@ void GameObject::Use(Unit* user)
{
player->UpdateFishingSkill();
//TODO: I do not understand this hack. Need some explanation.
/// @todo I do not understand this hack. Need some explanation.
// prevent removing GO at spell cancel
RemoveFromOwner();
SetOwnerGUID(player->GetGUID());
//TODO: find reasonable value for fishing hole search
/// @todo find reasonable value for fishing hole search
GameObject* ok = LookupFishingHoleAround(20.0f + CONTACT_DISTANCE);
if (ok)
{
@@ -1368,7 +1368,7 @@ void GameObject::Use(Unit* user)
else
player->SendLoot(GetGUID(), LOOT_FISHING);
}
// TODO: else: junk
/// @todo else: junk
else
m_respawnTime = time(NULL);
@@ -1831,7 +1831,7 @@ void GameObject::ModifyHealth(int32 change, Unit* attackerOrHealer /*= NULL*/, u
Player* player = attackerOrHealer->GetCharmerOrOwnerPlayerOrPlayerItself();
// dealing damage, send packet
// TODO: is there any packet for healing?
/// @todo is there any packet for healing?
if (change < 0 && player)
{
WorldPacket data(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, 8 + 8 + 8 + 4 + 4);
+5 -5
View File
@@ -457,7 +457,7 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
*data << uint32(GetGUIDLow()); // GetGUIDLow()
break;
//! Unit, Player and default here are sending wrong values.
//! TODO: Research the proper formula
/// @todo Research the proper formula
case TYPEID_UNIT:
*data << uint32(0x0000000B); // unk
break;
@@ -491,7 +491,7 @@ void Object::_BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
// 0x80
if (flags & UPDATEFLAG_VEHICLE)
{
// TODO: Allow players to aquire this updateflag.
/// @todo Allow players to aquire this updateflag.
*data << uint32(((Unit*)this)->GetVehicleKit()->GetVehicleInfo()->m_ID);
*data << float(((Creature*)this)->GetOrientation());
}
@@ -2174,7 +2174,7 @@ namespace Trinity
{
char const* text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
// TODO: i_object.GetName() also must be localized?
/// @todo i_object.GetName() also must be localized?
i_object.BuildMonsterChat(&data, i_msgtype, text, i_language, i_object.GetNameForLocaleIdx(loc_idx), i_targetGUID);
}
@@ -2193,7 +2193,7 @@ namespace Trinity
: i_object(obj), i_msgtype(msgtype), i_text(text), i_language(language), i_targetGUID(targetGUID) {}
void operator()(WorldPacket& data, LocaleConstant loc_idx)
{
// TODO: i_object.GetName() also must be localized?
/// @todo i_object.GetName() also must be localized?
i_object.BuildMonsterChat(&data, i_msgtype, i_text, i_language, i_object.GetNameForLocaleIdx(loc_idx), i_targetGUID);
}
@@ -3119,7 +3119,7 @@ void WorldObject::DestroyForNearbyPlayers()
if (!player->HaveAtClient(this))
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;
DestroyForPlayer(player);
+2 -2
View File
@@ -286,7 +286,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petentry, uint32 petnumber, bool c
// Send fake summon spell cast - this is needed for correct cooldown application for spells
// Example: 46584 - without this cooldown (which should be set always when pet is loaded) isn't set clientside
// TODO: pets should be summoned from real cast instead of just faking it?
/// @todo pets should be summoned from real cast instead of just faking it?
if (summon_spell_id)
{
WorldPacket data(SMSG_SPELL_GO, (8+8+4+4+2));
@@ -822,7 +822,7 @@ bool Pet::CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phas
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)
{
CreatureTemplate const* cinfo = GetCreatureTemplate();
+21 -21
View File
@@ -932,7 +932,7 @@ void Player::CleanupsBeforeDelete(bool finalCleanup)
bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo)
{
//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
// also do it in Player::BuildEnumData, Player::LoadFromDB
@@ -1040,7 +1040,7 @@ bool Player::Create(uint32 guidlow, CharacterCreateInfo* createInfo)
SetFlag(PLAYER_EXPLORED_ZONES_1+i, 0xFFFFFFFF);
}
//Reputations if "StartAllReputation" is enabled, -- TODO: Fix this in a better way
//Reputations if "StartAllReputation" is enabled, -- @todo Fix this in a better way
if (sWorld->getBoolConfig(CONFIG_START_ALL_REP))
{
GetReputationMgr().SetReputation(sFactionStore.LookupEntry(942), 42999);
@@ -1376,7 +1376,7 @@ void Player::HandleDrowning(uint32 time_diff)
{
m_MirrorTimer[BREATH_TIMER]+= 1*IN_MILLISECONDS;
// Calculate and deal damage
// TODO: Check this formula
/// @todo Check this formula
uint32 damage = GetMaxHealth() / 5 + urand(0, getLevel()-1);
EnvironmentalDamage(DAMAGE_DROWNING, damage);
}
@@ -1445,7 +1445,7 @@ void Player::HandleDrowning(uint32 time_diff)
{
m_MirrorTimer[FIRE_TIMER]+= 1*IN_MILLISECONDS;
// Calculate and deal damage
// TODO: Check this formula
/// @todo Check this formula
uint32 damage = urand(600, 700);
if (m_MirrorTimerFlags & UNDERWATER_INLAVA)
EnvironmentalDamage(DAMAGE_LAVA, damage);
@@ -1621,7 +1621,7 @@ void Player::Update(uint32 p_time)
if (Unit* victim = getVictim())
{
// default combat reach 10
// TODO add weapon, skill check
/// @todo add weapon, skill check
if (isAttackReady(BASE_ATTACK))
{
@@ -2506,7 +2506,7 @@ void Player::Regenerate(Powers power)
uint32 curValue = GetPower(power);
// TODO: possible use of miscvalueb instead of amount
/// @todo possible use of miscvalueb instead of amount
if (HasAuraTypeWithValue(SPELL_AURA_PREVENT_REGENERATE_POWER, power))
return;
@@ -2762,7 +2762,7 @@ GameObject* Player::GetGameObjectIfCanInteractWith(uint64 guid, GameobjectTypes
float maxdist;
switch (type)
{
// TODO: find out how the client calculates the maximal usage distance to spellless working
/// @todo find out how the client calculates the maximal usage distance to spellless working
// gameobjects like guildbanks and mailboxes - 10.0 is a just an abitrary choosen number
case GAMEOBJECT_TYPE_GUILD_BANK:
case GAMEOBJECT_TYPE_MAILBOX:
@@ -2801,7 +2801,7 @@ void Player::SetInWater(bool apply)
//move player's guid into HateOfflineList of those mobs
//which can't swim and move guid back into ThreatList when
//on surface.
//TODO: exist also swimming mobs, and function must be symmetric to enter/leave water
/// @todo exist also swimming mobs, and function must be symmetric to enter/leave water
m_isInWater = apply;
// remove auras that need water/land
@@ -2914,7 +2914,7 @@ bool Player::IsInSameRaidWith(Player const* p) const
}
///- If the player is invited, remove him. If the group if then only 1 person, disband the group.
/// \todo Shouldn't we also check if there is no other invitees before disbanding the group?
/// @todo Shouldn't we also check if there is no other invitees before disbanding the group?
void Player::UninviteFromGroup()
{
Group* group = GetGroupInvite();
@@ -3103,7 +3103,7 @@ void Player::GiveLevel(uint8 level)
if (MailLevelReward const* mailReward = sObjectMgr->GetMailLevelReward(level, getRaceMask()))
{
//- TODO: Poor design of mail system
/// @todo Poor design of mail system
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(mailReward->mailTemplateId).SendMailTo(trans, this, MailSender(MAIL_CREATURE, mailReward->senderEntry));
CharacterDatabase.CommitTransaction(trans);
@@ -5824,7 +5824,7 @@ void Player::GetDodgeFromAgility(float &diminishing, float &nondiminishing)
if (dodgeRatio == NULL || pclass > MAX_CLASSES)
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 + STAT_AGILITY][BASE_PCT];
float bonus_agility = GetStat(STAT_AGILITY) - base_agility;
@@ -8769,7 +8769,7 @@ void Player::SendLoot(uint64 guid, LootType loot_type)
{
uint32 lootid = go->GetGOInfo()->GetLootId();
//TODO: fix this big hack
/// @todo fix this big hack
if ((go->GetEntry() == BG_AV_OBJECTID_MINE_N || go->GetEntry() == BG_AV_OBJECTID_MINE_S))
if (Battleground* bg = GetBattleground())
if (bg->GetTypeID(true) == BATTLEGROUND_AV)
@@ -11902,7 +11902,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.
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
// binded to account items from off server.
@@ -13692,7 +13692,7 @@ void Player::AddTradeableItem(Item* item)
m_itemSoulboundTradeable.push_back(item);
}
//TODO: should never allow an item to be added to m_itemSoulboundTradeable twice
/// @todo should never allow an item to be added to m_itemSoulboundTradeable twice
void Player::RemoveTradeableItem(Item* item)
{
m_itemSoulboundTradeable.remove(item);
@@ -14747,7 +14747,7 @@ void Player::SendPreparedQuest(uint64 guid)
else if (icon == 4)
PlayerTalkClass->SendQuestGiverRequestItems(quest, guid, CanRewardQuest(quest, false), true);
// Send completable on repeatable and autoCompletable quest if player don't have quest
// TODO: verify if check for !quest->IsDaily() is really correct (possibly not)
/// @todo verify if check for !quest->IsDaily() is really correct (possibly not)
else
{
Object* object = ObjectAccessor::GetObjectByTypeMask(*this, guid, TYPEMASK_UNIT | TYPEMASK_GAMEOBJECT | TYPEMASK_ITEM);
@@ -15284,7 +15284,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
// Send reward mail
if (uint32 mail_template_id = quest->GetRewMailTemplateId())
{
//- TODO: Poor design of mail system
/// @todo Poor design of mail system
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(mail_template_id).SendMailTo(trans, this, questGiver, MAIL_CHECK_MASK_HAS_BODY, quest->GetRewMailDelaySecs());
CharacterDatabase.CommitTransaction(trans);
@@ -17750,7 +17750,7 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
//NOTE: the "order by `bag`" is important because it makes sure
//the bagMap is filled before items in the bags are loaded
//NOTE2: the "order by `slot`" is needed because mainhand weapons are (wrongly?)
//expected to be equipped before offhand items (TODO: fixme)
//expected to be equipped before offhand items (@todo fixme)
if (result)
{
@@ -20696,7 +20696,7 @@ void Player::RestoreSpellMods(Spell* spell, uint32 ownerAuraId, Aura* aura)
mod->charges = mod->ownerAura->GetCharges();
// Skip this check for now - aura charges may change due to various reason
// TODO: trac these changes correctly
/// @todo trac these changes correctly
//ASSERT (mod->ownerAura->GetCharges() <= mod->charges);
}
}
@@ -21551,7 +21551,7 @@ void Player::UpdateHomebindTime(uint32 time)
void Player::UpdatePvPState(bool onlyFFA)
{
// TODO: should we always synchronize UNIT_FIELD_BYTES_2, 1 of controller and controlled?
/// @todo should we always synchronize UNIT_FIELD_BYTES_2, 1 of controller and controlled?
// no, we shouldn't, those are checked for affecting player by client
if (!pvpInfo.IsInNoPvPArea && !isGameMaster()
&& (pvpInfo.IsInFFAPvPArea || sWorld->IsFFAPvPRealm()))
@@ -23825,7 +23825,7 @@ PartyResult Player::CanUninviteFromGroup() const
if (grp->isRollLootActive())
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 != NULL; itr = itr->next())
if (itr->getSource() && itr->getSource()->isInCombat())
return ERR_PARTY_LFG_BOOT_IN_COMBAT;
@@ -25913,7 +25913,7 @@ bool Player::AddItem(uint32 itemId, uint32 count)
if (count == 0 || dest.empty())
{
// -- TODO: Send to mailbox if no space
/// @todo Send to mailbox if no space
ChatHandler(GetSession()).PSendSysMessage("You don't have any space in your bags.");
return false;
}
+1 -1
View File
@@ -148,7 +148,7 @@ void Totem::UnSummon(uint32 msTime)
bool Totem::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const
{
// TODO: possibly all negative auras immune?
/// @todo possibly all negative auras immune?
if (GetEntry() == 5925)
return false;
+21 -21
View File
@@ -624,7 +624,7 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
uint32 share = CalculatePct(damage, (*i)->GetAmount());
// TODO: check packets if damage is done by victim, or by attacker of victim
/// @todo check packets if damage is done by victim, or by attacker of victim
DealDamageMods(shareDamageTarget, share, NULL);
DealDamage(shareDamageTarget, share, NULL, NODAMAGE, spell->GetSchoolMask(), spell, false);
}
@@ -844,7 +844,7 @@ void Unit::CastSpell(SpellCastTargets const& targets, SpellInfo const* spellInfo
return;
}
// 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)
originalCaster = triggeredByAura->GetCasterGUID();
@@ -1104,7 +1104,7 @@ void Unit::DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss)
DealDamage(victim, damageInfo->damage, &cleanDamage, SPELL_DIRECT_DAMAGE, SpellSchoolMask(damageInfo->schoolMask), spellProto, durabilityLoss);
}
// TODO for melee need create structure as in
/// @todo for melee need create structure as in
void Unit::CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* damageInfo, WeaponAttackType attackType)
{
damageInfo->attacker = this;
@@ -1427,7 +1427,7 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss)
// No Unit::CalcAbsorbResist here - opcode doesn't send that data - this damage is probably not affected by that
victim->DealDamageMods(this, damage, NULL);
// TODO: Move this to a packet handler
/// @todo Move this to a packet handler
WorldPacket data(SMSG_SPELLDAMAGESHIELD, (8+8+4+4+4+4));
data << uint64(victim->GetGUID());
data << uint64(GetGUID());
@@ -2456,7 +2456,7 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit* victim, SpellInfo const* spell)
return SPELL_MISS_NONE;
}
// TODO need use unit spell resistances in calculations
/// @todo need use unit spell resistances in calculations
SpellMissInfo Unit::MagicSpellHitResult(Unit* victim, SpellInfo const* spell)
{
// Can`t miss on dead target (on skinning for example)
@@ -2575,7 +2575,7 @@ SpellMissInfo Unit::SpellHitResult(Unit* victim, SpellInfo const* spell, bool Ca
return SPELL_MISS_IMMUNE;
// 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()
&&(!IsHostileTo(victim))) // prevent from affecting enemy by "positive" spell
return SPELL_MISS_NONE;
@@ -5200,7 +5200,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
target = this;
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;
}
// Sunwell Exalted Caster Neck (??? neck)
@@ -5600,7 +5600,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
if (!vehicleBase)
return false;
// Todo: Check if this amount is blizzlike
/// @todo Check if this amount is blizzlike
vehicleBase->ModifyHealth(int32(vehicleBase->CountPctFromMaxHealth(1)));
break;
}
@@ -7181,7 +7181,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Mark of Blood
if (dummySpell->Id == 49005)
{
// TODO: need more info (cooldowns/PPM)
/// @todo need more info (cooldowns/PPM)
triggered_spell_id = 61607;
break;
}
@@ -8092,7 +8092,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
basepoints0 = int32(auraSpellInfo->Effects[EFFECT_0].CalcValue() * GetMaxHealth() / 100.0f);
target = this;
trigger_spell_id = 31616;
// TODO: Threat part
/// @todo Threat part
}
else
return false;
@@ -8449,7 +8449,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
{
if (AuraEffect* aurEff = owner->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, 3220, 0))
{
basepoints0 = int32((aurEff->GetAmount() * owner->SpellBaseDamageBonusDone(SpellSchoolMask(SPELL_SCHOOL_MASK_MAGIC)) + 100.0f) / 100.0f); // TODO: Is it right?
basepoints0 = int32((aurEff->GetAmount() * owner->SpellBaseDamageBonusDone(SpellSchoolMask(SPELL_SCHOOL_MASK_MAGIC)) + 100.0f) / 100.0f); /// @todo Is it right?
CastCustomSpell(this, trigger_spell_id, &basepoints0, &basepoints0, NULL, true, castItem, triggeredByAura);
return true;
}
@@ -9527,7 +9527,7 @@ void Unit::SetCharm(Unit* charm, bool apply)
sLog->outFatal(LOG_FILTER_UNITS, "Player %s is trying to charm unit %u, but it already has a charmed unit " UI64FMTD "", GetName().c_str(), charm->GetEntry(), GetCharmGUID());
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->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
}
else
@@ -9644,7 +9644,7 @@ Unit* Unit::GetMagicHitRedirectTarget(Unit* victim, SpellInfo const* spellInfo)
&& spellInfo->CheckTarget(this, magnet, false) == SPELL_CAST_OK
&& _IsValidAttackTarget(magnet, spellInfo))
{
// TODO: handle this charge drop by proc in cast phase on explicit target
/// @todo handle this charge drop by proc in cast phase on explicit target
(*itr)->GetBase()->DropCharge(AURA_REMOVE_BY_EXPIRE);
return magnet;
}
@@ -10645,7 +10645,7 @@ uint32 Unit::SpellCriticalDamageBonus(SpellInfo const* spellProto, uint32 damage
{
case SPELL_DAMAGE_CLASS_MELEE: // for melee based spells is 100%
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;
break;
default:
@@ -10683,7 +10683,7 @@ uint32 Unit::SpellCriticalHealingBonus(SpellInfo const* spellProto, uint32 damag
{
case SPELL_DAMAGE_CLASS_MELEE: // for melee based spells is 100%
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;
break;
default:
@@ -12257,7 +12257,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
}
// Normalize speed by 191 aura SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED if need
// TODO: possible affect only on MOVE_RUN
/// @todo possible affect only on MOVE_RUN
if (int32 normalization = GetMaxPositiveAuraModifier(SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED))
{
// Use speed from aura
@@ -12683,7 +12683,7 @@ Unit* Creature::SelectVictim()
return NULL;
}
// TODO: a vehicle may eat some mob, so mob should not evade
/// @todo a vehicle may eat some mob, so mob should not evade
if (GetVehicle())
return NULL;
@@ -15362,7 +15362,7 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
{
Map* instanceMap = creature->GetMap();
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() && creditedPlayer)
{
@@ -15724,7 +15724,7 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
}
CastStop();
CombatStop(); // TODO: CombatStop(true) may cause crash (interrupt spells)
CombatStop(); /// @todo CombatStop(true) may cause crash (interrupt spells)
DeleteThreatList();
// Charmer stop charming
@@ -15859,7 +15859,7 @@ void Unit::RemoveCharmedBy(Unit* charmer)
type = CHARM_TYPE_CHARM;
CastStop();
CombatStop(); // TODO: CombatStop(true) may cause crash (interrupt spells)
CombatStop(); /// @todo CombatStop(true) may cause crash (interrupt spells)
getHostileRefManager().deleteReferences();
DeleteThreatList();
Map* map = GetMap();
@@ -17389,7 +17389,7 @@ void Unit::SetFacingToObject(WorldObject* object)
if (!IsStopped())
return;
// TODO: figure out under what conditions creature will move towards object instead of facing it where it currently is.
/// @todo figure out under what conditions creature will move towards object instead of facing it where it currently is.
SetFacingTo(GetAngle(object));
}
+3 -3
View File
@@ -703,7 +703,7 @@ enum MovementFlags
MOVEMENTFLAG_FALLING_SLOW = 0x20000000, // active rogue safe fall spell (passive)
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_FORWARD | MOVEMENTFLAG_BACKWARD | MOVEMENTFLAG_STRAFE_LEFT | MOVEMENTFLAG_STRAFE_RIGHT |
MOVEMENTFLAG_PITCH_UP | MOVEMENTFLAG_PITCH_DOWN | MOVEMENTFLAG_FALLING | MOVEMENTFLAG_FALLING_FAR | MOVEMENTFLAG_ASCENDING | MOVEMENTFLAG_DESCENDING |
@@ -715,7 +715,7 @@ enum MovementFlags
MOVEMENTFLAG_MASK_MOVING_FLY =
MOVEMENTFLAG_FLYING | MOVEMENTFLAG_ASCENDING | MOVEMENTFLAG_DESCENDING,
//! TODO if needed: add more flags to this masks that are exclusive to players
/// @todo if needed: add more flags to this masks that are exclusive to players
MOVEMENTFLAG_MASK_PLAYER_ONLY =
MOVEMENTFLAG_FLYING
};
@@ -926,7 +926,7 @@ struct CalcDamageInfo
uint32 procVictim;
uint32 procEx;
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
+2 -2
View File
@@ -765,7 +765,7 @@ void GameEventMgr::LoadFromDB()
Field* fields = result->Fetch();
uint32 questId = fields[0].GetUInt32();
uint32 eventEntry = fields[1].GetUInt32(); // TODO: Change to uint8
uint32 eventEntry = fields[1].GetUInt32(); /// @todo Change to uint8
if (!sObjectMgr->GetQuestTemplate(questId))
{
@@ -1227,7 +1227,7 @@ void GameEventMgr::GameEventSpawn(int16 event_id)
{
GameObject* pGameobject = new GameObject;
//sLog->outDebug(LOG_FILTER_GENERAL, "Spawning gameobject %u", *itr);
//TODO: find out when it is add to map
/// @todo find out when it is add to map
if (!pGameobject->LoadGameObjectFromDB(*itr, map, false))
delete pGameobject;
else
+2 -2
View File
@@ -213,7 +213,7 @@ void ObjectAccessor::RemoveCorpse(Corpse* corpse)
{
ASSERT(corpse && corpse->GetType() != CORPSE_BONES);
//TODO: more works need to be done for corpse and other world object
/// @todo more works need to be done for corpse and other world object
if (Map* map = corpse->FindMap())
{
corpse->DestroyForNearbyPlayers();
@@ -234,7 +234,7 @@ void ObjectAccessor::RemoveCorpse(Corpse* corpse)
TRINITY_WRITE_GUARD(ACE_RW_Thread_Mutex, i_corpseLock);
Player2CorpsesMapType::iterator iter = i_player2corpse.find(corpse->GetOwnerGUID());
if (iter == i_player2corpse.end()) // TODO: Fix this
if (iter == i_player2corpse.end()) /// @todo Fix this
return;
// build mapid*cellid -> guid_set map
+3 -3
View File
@@ -44,7 +44,7 @@ void ObjectGridEvacuator::Visit(CreatureMapType &m)
}
// for loading world object at grid loading (Corpses)
//TODO: to implement npc on transport, also need to load npcs at grid loading
/// @todo to implement npc on transport, also need to load npcs at grid loading
class ObjectWorldLoader
{
public:
@@ -121,7 +121,7 @@ void LoadHelper(CellCorpseSet const& cell_corpses, CellCoord &cell, CorpseMapTyp
if (!obj)
continue;
// TODO: this is a hack
/// @todo this is a hack
// corpse's map should be reset when the map is unloaded
// but it may still exist when the grid is unloaded but map is not
// in that case map == currMap
@@ -200,7 +200,7 @@ void ObjectGridUnloader::Visit(GridRefManager<T> &m)
//Some creatures may summon other temp summons in CleanupsBeforeDelete()
//So we need this even after cleaner (maybe we can remove cleaner)
//Example: Flame Leviathan Turret 33139 is summoned when a creature is deleted
//TODO: Check if that script has the correct logic. Do we really need to summons something before deleting?
/// @todo Check if that script has the correct logic. Do we really need to summons something before deleting?
obj->CleanupsBeforeDelete();
///- object will get delinked from the manager when deleted
delete obj;
+1 -1
View File
@@ -156,7 +156,7 @@ struct InstanceGroupBind
};
/** request member stats checken **/
/** todo: uninvite people that not accepted invite **/
/// @todo uninvite people that not accepted invite
class Group
{
public:
+3 -3
View File
@@ -983,7 +983,7 @@ void Guild::BankMoveItemData::LogBankEvent(SQLTransaction& trans, MoveItemData*
void Guild::BankMoveItemData::LogAction(MoveItemData* pFrom) const
{
MoveItemData::LogAction(pFrom);
if (!pFrom->IsBank() && m_pPlayer->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE))
if (!pFrom->IsBank() && m_pPlayer->GetSession()->HasPermission(RBAC_PERM_LOG_GM_TRADE)) /// @todo Move this to scripts
{
sLog->outCommand(m_pPlayer->GetSession()->GetAccountId(),
"GM %s (Account: %u) deposit item: %s (Entry: %d Count: %u) to guild bank (Guild ID: %u)",
@@ -2730,7 +2730,7 @@ bool Guild::_DoItemsMove(MoveItemData* pSrc, MoveItemData* pDest, bool sendError
if (!pSrc->CanStore(pDestItem, true, true))
return false;
// GM LOG (TODO: move to scripts)
// GM LOG (@todo move to scripts)
pDest->LogAction(pSrc);
if (swap)
pSrc->LogAction(pDest);
@@ -2874,7 +2874,7 @@ void Guild::_SendBankList(WorldSession* session /* = NULL*/, uint8 tabId /*= 0*/
sLog->outDebug(LOG_FILTER_GUILD, "SMSG_GUILD_BANK_LIST [%s]: TabId: %u, FullSlots: %u, slots: %d",
session->GetPlayerInfo().c_str(), tabId, sendAllSlots, numSlots);
}
else // TODO - Probably this is just sent to session + those that have sent CMSG_GUILD_BANKER_ACTIVATE
else /// @todo - Probably this is just sent to session + those that have sent CMSG_GUILD_BANKER_ACTIVATE
{
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
{
+2 -2
View File
@@ -25,7 +25,7 @@ SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT [ uint64(inviteId), string(Text) ]
SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT [ uint64(eventId), uint32(eventTime), uint32(unkFlag), uint8(deletePending) ]
SMSG_CALENDAR_RAID_LOCKOUT_UPDATED SendCalendarRaidLockoutUpdated(InstanceSave const* save)
----- TODO -----
@todo
Finish complains' handling - what to do with received complains and how to respond?
Find out what to do with all "not used yet" opcodes
@@ -147,7 +147,7 @@ void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recvData*/)
data << uint32(boundCounter);
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?
uint32 holidayCount = 0;
data << uint32(holidayCount);
for (uint32 i = 0; i < holidayCount; ++i)
@@ -556,7 +556,7 @@ void WorldSession::HandleCharCreateCallback(PreparedQueryResult result, Characte
}
// need to check team only for first character
// TODO: what to if account already has characters of both races?
/// @todo what to if account already has characters of both races?
if (!allowTwoSideAccounts)
{
uint32 accTeam = 0;
@@ -575,7 +575,7 @@ void WorldSession::HandleCharCreateCallback(PreparedQueryResult result, Characte
}
// search same race for cinematic or same class if need
// TODO: check if cinematic already shown? (already logged in?; cinematic field)
/// @todo check if cinematic already shown? (already logged in?; cinematic field)
while ((skipCinematics == 1 && !haveSameRace) || createInfo->Class == CLASS_DEATH_KNIGHT)
{
if (!result->NextRow())
+1 -1
View File
@@ -735,7 +735,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPacket& recvData)
}
}
//TODO Fix me! ... this void has probably bad condition, but good data are sent
/// @todo Fix me! ... this void has probably bad condition, but good data are sent
void WorldSession::HandleQueryNextMailTime(WorldPacket & /*recvData*/)
{
WorldPacket data(MSG_QUERY_NEXT_MAIL_TIME, 8);
+1 -1
View File
@@ -1066,7 +1066,7 @@ void WorldSession::HandleMoveTimeSkippedOpcode(WorldPacket& recvData)
recvData >> time_skipped;
sLog->outDebug(LOG_FILTER_PACKETIO, "WORLD: CMSG_MOVE_TIME_SKIPPED");
/// TODO
//// @todo
must be need use in Trinity
We substract server Lags to move time (AntiLags)
for exmaple
+1 -1
View File
@@ -392,7 +392,7 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recvData)
{
// NOTE: this is actually called many times while falling
// even after the player has been teleported away
// TODO: discard movement packets after the player is rooted
/// @todo discard movement packets after the player is rooted
if (plrMover->isAlive())
{
plrMover->EnvironmentalDamage(DAMAGE_FALL_TO_VOID, GetPlayer()->GetMaxHealth());
+3 -3
View File
@@ -93,7 +93,7 @@ void WorldSession::HandlePetAction(WorldPacket& recvData)
return;
}
//TODO: allow control charmed player?
/// @todo allow control charmed player?
if (pet->GetTypeId() == TYPEID_PLAYER && !(flag == ACT_COMMAND && spellid == COMMAND_ATTACK))
return;
@@ -185,7 +185,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, uint64 guid1, uint32 spellid
if (_player->HasAuraType(SPELL_AURA_MOD_PACIFY))
{
//pet->SendPetCastFail(spellid, SPELL_FAILED_PACIFIED);
//TODO: Send proper error message to client
/// @todo Send proper error message to client
return;
}
@@ -792,7 +792,7 @@ void WorldSession::HandlePetCastSpellOpcode(WorldPacket& recvPacket)
spell->m_cast_count = castCount; // probably pending spell cast
spell->m_targets = targets;
// TODO: need to check victim?
/// @todo need to check victim?
SpellCastResult result;
if (caster->m_movedPlayer)
result = spell->CheckPetCast(caster->m_movedPlayer->GetSelectedUnit());
@@ -111,7 +111,7 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket& recvData)
}
else
{
// TODO: find correct opcode
/// @todo find correct opcode
if (_player->getLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
SendNotification(LANG_ARENA_ONE_TOOLOW, sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL));
+1 -1
View File
@@ -502,7 +502,7 @@ void WorldSession::HandleQuestgiverCompleteQuest(WorldPacket& recvData)
_player->GetName().c_str(), _player->GetGUIDLow(), questId);
return;
}
// TODO: need a virtual function
/// @todo need a virtual function
if (_player->InBattleground())
if (Battleground* bg = _player->GetBattleground())
if (bg->GetTypeID() == BATTLEGROUND_AV)
+2 -2
View File
@@ -59,7 +59,7 @@ void WorldSession::HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlag
void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket)
{
// TODO: add targets.read() check
/// @todo add targets.read() check
Player* pUser = _player;
// ignore for remote control state
@@ -547,7 +547,7 @@ void WorldSession::HandleSpellClick(WorldPacket& recvData)
if (!unit)
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())
return;
@@ -646,7 +646,7 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b
((InstanceMap*)map2)->Reset(INSTANCE_RESET_GLOBAL);
}
// TODO: delete creature/gameobject respawn times even if the maps are not loaded
/// @todo delete creature/gameobject respawn times even if the maps are not loaded
}
uint32 InstanceSaveManager::GetNumBoundPlayersTotal()
+2 -2
View File
@@ -1186,7 +1186,7 @@ float LootTemplate::LootGroup::TotalChance() const
void LootTemplate::LootGroup::Verify(LootStore const& lootstore, uint32 id, uint8 group_id) const
{
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
sLog->outError(LOG_FILTER_SQL, "Table '%s' entry %u group %d has total chance > 100%% (%f)", lootstore.GetName(), id, group_id, chance);
if (chance >= 100.0f && !EqualChanced.empty())
@@ -1407,7 +1407,7 @@ void LootTemplate::Verify(LootStore const& lootstore, uint32 id) const
if (Groups[i])
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
+5 -5
View File
@@ -315,7 +315,7 @@ template<>
void Map::DeleteFromWorld(Player* player)
{
sObjectAccessor->RemoveObject(player);
sObjectAccessor->RemoveUpdateObject(player); //TODO: I do not know why we need this, it should be removed in ~Object anyway
sObjectAccessor->RemoveUpdateObject(player); /// @todo I do not know why we need this, it should be removed in ~Object anyway
delete player;
}
@@ -438,7 +438,7 @@ void Map::InitializeObject(Creature* obj)
template<class T>
bool Map::AddToMap(T *obj)
{
//TODO: Needs clean up. An object should not be added to map twice.
/// @todo Needs clean up. An object should not be added to map twice.
if (obj->IsInWorld())
{
ASSERT(obj->IsInGrid());
@@ -839,7 +839,7 @@ void Map::MoveAllCreaturesInMoveList()
//This may happen when a player just logs in and a pet moves to a nearby unloaded cell
//To avoid this, we can load nearby cells when player log in
//But this check is always needed to ensure safety
//TODO: pets will disappear if this is outside CreatureRespawnRelocation
/// @todo pets will disappear if this is outside CreatureRespawnRelocation
//need to check why pet is frequently relocated to an unloaded cell
if (c->isPet())
((Pet*)c)->Remove(PET_SAVE_NOT_IN_SLOT, true);
@@ -2387,7 +2387,7 @@ bool InstanceMap::CanEnter(Player* player)
*/
bool InstanceMap::AddPlayerToMap(Player* player)
{
// TODO: Not sure about checking player level: already done in HandleAreaTriggerOpcode
/// @todo Not sure about checking player level: already done in HandleAreaTriggerOpcode
// GMs still can teleport player in instance.
// Is it needed?
@@ -2541,7 +2541,7 @@ void InstanceMap::CreateInstanceData(bool load)
if (load)
{
// TODO: make a global storage for this
/// @todo make a global storage for this
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_INSTANCE);
stmt->setUInt16(0, uint16(GetId()));
stmt->setUInt32(1, i_InstanceId);
+3 -3
View File
@@ -195,7 +195,7 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck)
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
// 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()->GetTrinityString(LANG_INSTANCE_RAID_GROUP_ONLY), mapName);
sLog->outDebug(LOG_FILTER_MAPS, "MAP: Player '%s' must be in a raid group to enter instance '%s'", player->GetName().c_str(), mapName);
return false;
@@ -247,7 +247,7 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck)
if (playerBoundedInstance && playerBoundedInstance->perm && playerBoundedInstance->save &&
boundedInstance->save->GetInstanceId() != playerBoundedInstance->save->GetInstanceId())
{
//TODO: send some kind of error message to the player
/// @todo send some kind of error message to the player
return false;
}*/
}
@@ -321,7 +321,7 @@ bool MapManager::IsValidMAP(uint32 mapid, bool startUp)
else
return mEntry && (!mEntry->IsDungeon() || sObjectMgr->GetInstanceTemplate(mapid));
// TODO: add check for battleground template
/// @todo add check for battleground template
}
void MapManager::UnloadAll()
+3 -3
View File
@@ -256,7 +256,7 @@ void PathGenerator::BuildPolyPath(Vector3 const& startPos, Vector3 const& endPos
}
// look for startPoly/endPoly in current path
// TODO: we can merge it with getPathPolyByPosition() loop
/// @todo we can merge it with getPathPolyByPosition() loop
bool startPolyFound = false;
bool endPolyFound = false;
uint32 pathStartIndex = 0;
@@ -310,7 +310,7 @@ void PathGenerator::BuildPolyPath(Vector3 const& startPos, Vector3 const& endPos
// sub-path of optimal path is optimal
// take ~80% of the original length
// TODO : play with the values here
/// @todo play with the values here
uint32 prefixPolyLength = uint32(_polyLength * 0.8f + 0.5f);
memmove(_pathPolyRefs, _pathPolyRefs+pathStartIndex, prefixPolyLength * sizeof(dtPolyRef));
@@ -433,7 +433,7 @@ void PathGenerator::BuildPointPath(const float *startPoint, const float *endPoin
{
// only happens if pass bad data to findStraightPath or navmesh is broken
// single point paths can be generated here
// TODO : check the exact cases
/// @todo check the exact cases
sLog->outDebug(LOG_FILTER_MAPS, "++ PathGenerator::BuildPointPath FAILED! path sized %d returned\n", pointCount);
BuildShortcut();
_type = PATHFIND_NOPATH;
@@ -151,7 +151,7 @@ void MoveSpline::init_spline(const MoveSplineInitArgs& args)
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)
{
sLog->outError(LOG_FILTER_GENERAL, "MoveSpline::init_spline: zero length spline, wrong input data?");
+1 -1
View File
@@ -698,7 +698,7 @@ void Map::ScriptsProcess()
case SCRIPT_COMMAND_CAST_SPELL:
{
// TODO: Allow gameobjects to be targets and casters
/// @todo Allow gameobjects to be targets and casters
if (!source && !target)
{
sLog->outError(LOG_FILTER_TSCR, "%s source and target objects are NULL.", step.script->GetDebugInfo().c_str());
+3 -3
View File
@@ -766,7 +766,7 @@ uint32 ScriptMgr::GetDialogStatus(Player* player, Creature* creature)
ASSERT(player);
ASSERT(creature);
// TODO: 100 is a funny magic number to have hanging around here...
/// @todo 100 is a funny magic number to have hanging around here...
GET_SCRIPT_RET(CreatureScript, creature->GetScriptId(), tmpscript, 100);
player->PlayerTalkClass->ClearMenus();
return tmpscript->GetDialogStatus(player, creature);
@@ -852,7 +852,7 @@ uint32 ScriptMgr::GetDialogStatus(Player* player, GameObject* go)
ASSERT(player);
ASSERT(go);
// TODO: 100 is a funny magic number to have hanging around here...
/// @todo 100 is a funny magic number to have hanging around here...
GET_SCRIPT_RET(GameObjectScript, go->GetScriptId(), tmpscript, 100);
player->PlayerTalkClass->ClearMenus();
return tmpscript->GetDialogStatus(player, go);
@@ -918,7 +918,7 @@ bool ScriptMgr::OnAreaTrigger(Player* player, AreaTriggerEntry const* trigger)
Battleground* ScriptMgr::CreateBattleground(BattlegroundTypeId /*typeId*/)
{
// TODO: Implement script-side battlegrounds.
/// @todo Implement script-side battlegrounds.
ASSERT(false);
return NULL;
}
+1 -1
View File
@@ -71,7 +71,7 @@ struct OutdoorPvPData;
/*
TODO: Add more script type classes.
@todo Add more script type classes.
MailScript
SessionScript
+1 -1
View File
@@ -10,7 +10,7 @@
#define TEXT_SOURCE_RANGE -1000000 //the amount of entries each text source has available
//TODO: find better namings and definitions.
/// @todo find better namings and definitions.
//N=Neutral, A=Alliance, H=Horde.
//NEUTRAL or FRIEND = Hostility to player surroundings (not a good definition)
//ACTIVE or PASSIVE = Hostility to environment surroundings.
+2 -2
View File
@@ -974,7 +974,7 @@ void WorldSession::ReadAddonsInfo(WorldPacket &data)
sLog->outInfo(LOG_FILTER_GENERAL, "ADDON: %s (0x%x) was not known, saving...", addon.Name.c_str(), 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);
}
@@ -1031,7 +1031,7 @@ void WorldSession::SendAddonsInfo()
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
@@ -1022,7 +1022,7 @@ void AuraEffect::CleanupTriggeredSpells(Unit* target)
return;
// 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 &&
uint32(m_spellInfo->GetDuration()) == m_spellInfo->Effects[GetEffIndex()].Amplitude)
return;
@@ -2322,7 +2322,8 @@ void AuraEffect::HandleAuraModPacifyAndSilence(AuraApplication const* aurApp, ui
Unit* target = aurApp->GetTarget();
// Vengeance of the Blue Flight (TODO: REMOVE THIS!)
// Vengeance of the Blue Flight (@todo REMOVE THIS!)
/// @workaround
if (m_spellInfo->Id == 45839)
{
if (apply)
@@ -3410,7 +3411,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint
&& GetSpellInfo()->AttributesEx2 & SPELL_ATTR2_DAMAGE_REDUCED_SHIELD)
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)
&& GetSpellInfo()->AttributesEx & SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY
&& GetSpellInfo()->IsPositive()) //Only positive immunity removes auras
@@ -4641,7 +4642,7 @@ void AuraEffect::HandleAuraDummy(AuraApplication const* aurApp, uint8 mode, bool
if (owner_aura)
{
// This aura lasts 2 sec, need this hack to properly proc spells
// TODO: drop aura charges for ApplySpellMod in ProcDamageAndSpell
/// @todo drop aura charges for ApplySpellMod in ProcDamageAndSpell
GetBase()->SetDuration(owner_aura->GetDuration());
// Make aura be not charged-this prevents removing charge on not crit spells
owner_aura->SetCharges(0);
@@ -5396,7 +5397,7 @@ void AuraEffect::HandlePeriodicDummyAuraTick(Unit* target, Unit* caster) const
// Killing Spree
case 51690:
{
// TODO: this should use effect[1] of 51690
/// @todo this should use effect[1] of 51690
UnitList targets;
{
// eff_radius == 0
@@ -5593,7 +5594,7 @@ void AuraEffect::HandlePeriodicTriggerSpellAuraTick(Unit* target, Unit* caster)
triggerSpellId = 30571;
break;
// 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
case 31347:
{
+7 -7
View File
@@ -421,7 +421,7 @@ void Aura::_UnapplyForTarget(Unit* target, Unit* caster, AuraApplication * auraA
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())
{
sLog->outError(LOG_FILTER_SPELLS_AURAS, "Aura::_UnapplyForTarget, target:%u, caster:%u, spell:%u was not found in owners application map!",
@@ -565,7 +565,7 @@ void Aura::UpdateTargetMap(Unit* caster, bool apply)
// owner has to be in world, or effect has to be applied to self
if (!GetOwner()->IsSelfOrInSameMap(itr->first))
{
//TODO: There is a crash caused by shadowfiend load addon
/// @todo There is a crash caused by shadowfiend load addon
sLog->outFatal(LOG_FILTER_SPELLS_AURAS, "Aura %u: Owner %s (map %u) is not in the same map as target %s (map %u).", GetSpellInfo()->Id,
GetOwner()->GetName().c_str(), GetOwner()->IsInWorld() ? GetOwner()->GetMap()->GetId() : uint32(-1),
itr->first->GetName().c_str(), itr->first->IsInWorld() ? itr->first->GetMap()->GetId() : uint32(-1));
@@ -941,7 +941,7 @@ void Aura::UnregisterSingleTarget()
{
ASSERT(m_isSingleTarget);
Unit* caster = GetCaster();
// TODO: find a better way to do this.
/// @todo find a better way to do this.
if (!caster)
caster = ObjectAccessor::GetObjectInOrOutOfWorld(GetCasterGUID(), (Unit*)NULL);
ASSERT(caster);
@@ -1166,7 +1166,7 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
if (caster->HasAura(56370))
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)
{
// Polymorph Sound - Sheep && Penguin
@@ -1969,7 +1969,7 @@ bool Aura::IsProcTriggeredOnEvent(AuraApplication* aurApp, ProcEventInfo& eventI
if (IsProcOnCooldown())
return false;
// TODO:
/// @todo
// something about triggered spells triggering, and add extra attack effect
// do checks against db data
@@ -1987,14 +1987,14 @@ bool Aura::IsProcTriggeredOnEvent(AuraApplication* aurApp, ProcEventInfo& eventI
if (!check)
return false;
// TODO:
/// @todo
// 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
// and possibly a way to prevent default checks (if there're going to be any)
// Check if current equipment meets aura requirements
// 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();
if (IsPassive() && target->GetTypeId() == TYPEID_PLAYER)
{
+23 -23
View File
@@ -1077,7 +1077,7 @@ void Spell::SelectImplicitConeTargets(SpellEffIndex effIndex, SpellImplicitTarge
}
// for compability with older code - add only unit and go targets
// TODO: remove this
/// @todo remove this
std::list<Unit*> unitTargets;
std::list<GameObject*> gObjTargets;
@@ -1154,7 +1154,7 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
SearchAreaTargets(targets, radius, center, referer, targetType.GetObjectType(), targetType.GetCheckType(), m_spellInfo->Effects[effIndex].ImplicitTargetConditions);
// Custom entries
// TODO: remove those
/// @todo remove those
switch (m_spellInfo->Id)
{
case 46584: // Raise Dead
@@ -1229,7 +1229,7 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
std::list<Unit*> unitTargets;
std::list<GameObject*> gObjTargets;
// for compability with older code - add only unit and go targets
// TODO: remove this
/// @todo remove this
for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr)
{
if (Unit* unitTarget = (*itr)->ToUnit())
@@ -1393,7 +1393,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
case TARGET_DEST_DB:
if (SpellTargetPosition const* st = sSpellMgr->GetSpellTargetPosition(m_spellInfo->Id))
{
// TODO: fix this check
/// @todo fix this check
if (m_spellInfo->HasEffect(SPELL_EFFECT_TELEPORT_UNITS) || m_spellInfo->HasEffect(SPELL_EFFECT_BIND))
m_targets.SetDst(st->target_X, st->target_Y, st->target_Z, st->target_Orientation, (int32)st->target_mapId);
else if (st->target_mapId == m_caster->GetMapId())
@@ -1652,7 +1652,7 @@ void Spell::SelectImplicitTrajTargets()
continue;
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 = m_targets.GetSrcPos()->GetExactDist2d(*itr) * std::cos(m_targets.GetSrcPos()->GetRelativeAngle(*itr));
const float dz = (*itr)->GetPositionZ() - m_targets.GetSrcPos()->m_positionZ;
@@ -1752,7 +1752,7 @@ void Spell::SelectImplicitTrajTargets()
void Spell::SelectEffectTypeImplicitTargets(uint8 effIndex)
{
// 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)
{
case SPELL_EFFECT_SUMMON_RAF_FRIEND:
@@ -1795,7 +1795,7 @@ void Spell::SelectEffectTypeImplicitTargets(uint8 effIndex)
{
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()))
target = owner;
}
@@ -2176,7 +2176,7 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
if (m_spellInfo->Speed > 0.0f && m_caster != target)
{
// 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());
if (dist < 5.0f)
@@ -2404,7 +2404,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
{
m_needComboPoints = false;
// 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))
m_caster->ToPlayer()->RestoreSpellMods(this, 14177);
@@ -2625,14 +2625,14 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
if (m_caster->_IsValidAttackTarget(unit, m_spellInfo))
{
unit->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_HITBYSPELL);
//TODO: This is a hack. But we do not know what types of stealth should be interrupted by CC
/// @todo This is a hack. But we do not know what types of stealth should be interrupted by CC
if ((m_spellInfo->AttributesCu & SPELL_ATTR0_CU_AURA_CC) && unit->IsControlledByPlayer())
unit->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
}
else if (m_caster->IsFriendlyTo(unit))
{
// 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 (m_spellInfo->Speed > 0.0f && unit->GetTypeId() == TYPEID_PLAYER && !m_spellInfo->IsPositive())
return SPELL_MISS_EVADE;
@@ -2761,7 +2761,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
void Spell::DoTriggersOnSpellHit(Unit* unit, uint8 effMask)
{
// Apply additional spell effects to target
// TODO: move this code to scripts
/// @todo move this code to scripts
if (m_preCastSpell)
{
// Paladin immunity shields
@@ -2817,7 +2817,7 @@ void Spell::DoTriggersOnSpellHit(Unit* unit, uint8 effMask)
}
// 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))
for (std::vector<int32>::const_iterator i = spellTriggered->begin(); i != spellTriggered->end(); ++i)
if (*i < 0)
@@ -3048,7 +3048,7 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered
sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "Spell::prepare: spell id %u source %u caster %d customCastFlags %u mask %u", m_spellInfo->Id, m_caster->GetEntry(), m_originalCaster ? m_originalCaster->GetEntry() : -1, _triggeredCastFlags, m_targets.GetTargetMask());
//Containers for channeled spells have to be set
//TODO:Apply this to all casted spells if needed
/// @todoApply this to all casted spells if needed
// Why check duration? 29350: channelled triggers channelled
if ((_triggeredCastFlags & TRIGGERED_CAST_DIRECTLY) && (!m_spellInfo->IsChanneled() || !m_spellInfo->GetMaxDuration()))
cast(true);
@@ -3489,7 +3489,7 @@ void Spell::_handle_immediate_phase()
if (!m_originalCaster)
return;
// Handle procs on cast
// TODO: finish new proc system:P
/// @todo finish new proc system:P
if (m_UniqueTargetInfo.empty() && m_targets.HasDst())
{
uint32 procAttacker = m_procAttacker;
@@ -3517,7 +3517,7 @@ void Spell::_handle_finish_phase()
if (m_caster->m_extraAttacks && GetSpellInfo()->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS))
m_caster->HandleProcExtraAttackFor(m_caster->getVictim());
// TODO: trigger proc phase finish here
/// @todo trigger proc phase finish here
}
void Spell::SendSpellCooldown()
@@ -3971,7 +3971,7 @@ void Spell::SendSpellGo()
if (castFlags & CAST_FLAG_RUNE_LIST) // rune cooldowns list
{
//TODO: There is a crash caused by a spell with CAST_FLAG_RUNE_LIST casted by a creature
/// @todo There is a crash caused by a spell with CAST_FLAG_RUNE_LIST casted by a creature
//The creature is the mover of a player, so HandleCastSpellOpcode uses it as the caster
if (Player* player = m_caster->ToPlayer())
{
@@ -4969,7 +4969,7 @@ SpellCastResult Spell::CheckCast(bool strict)
}
// 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);
if (castResult != SPELL_CAST_OK)
return castResult;
@@ -6042,7 +6042,7 @@ SpellCastResult Spell::CheckItems()
if (msg != EQUIP_ERR_OK)
{
ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(m_spellInfo->Effects[i].ItemType);
// TODO: Needs review
/// @todo Needs review
if (pProto && !(pProto->ItemLimitCategory))
{
p_caster->SendEquipError(msg, NULL, NULL, m_spellInfo->Effects[i].ItemType);
@@ -6501,7 +6501,7 @@ bool Spell::CheckEffectTarget(Unit const* target, uint32 eff) const
if (IsTriggered() || m_spellInfo->AttributesEx2 & SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS || DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, NULL, SPELL_DISABLE_LOS))
return true;
// todo: shit below shouldn't be here, but it's temporary
/// @todo shit below shouldn't be here, but it's temporary
//Check targets for LOS visibility (except spells without range limitations)
switch (m_spellInfo->Effects[eff].Effect)
{
@@ -6547,7 +6547,7 @@ bool Spell::IsNextMeleeSwingSpell() const
bool Spell::IsAutoActionResetSpell() const
{
// TODO: changed SPELL_INTERRUPT_FLAG_AUTOATTACK -> SPELL_INTERRUPT_FLAG_INTERRUPT to fix compile - is this check correct at all?
/// @todo changed SPELL_INTERRUPT_FLAG_AUTOATTACK -> SPELL_INTERRUPT_FLAG_INTERRUPT to fix compile - is this check correct at all?
return !IsTriggered() && (m_spellInfo->InterruptFlags & SPELL_INTERRUPT_FLAG_INTERRUPT);
}
@@ -7171,7 +7171,7 @@ bool Spell::CanExecuteTriggersOnHit(uint8 effMask, SpellInfo const* triggeredByA
void Spell::PrepareTriggersExecutedOnHit()
{
// todo: move this to scripts
/// @todo move this to scripts
if (m_spellInfo->SpellFamilyName)
{
SpellInfo const* excludeCasterSpellInfo = sSpellMgr->GetSpellInfo(m_spellInfo->ExcludeCasterAuraSpell);
@@ -7182,7 +7182,7 @@ void Spell::PrepareTriggersExecutedOnHit()
m_preCastSpell = m_spellInfo->ExcludeTargetAuraSpell;
}
// todo: move this to scripts
/// @todo move this to scripts
switch (m_spellInfo->SpellFamilyName)
{
case SPELLFAMILY_MAGE:
+13 -13
View File
@@ -600,7 +600,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)
damage += m_spellInfo->Effects[EFFECT_1].CalcValue();
@@ -808,7 +808,7 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
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
&& effectHandleMode == SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
{
@@ -1379,7 +1379,7 @@ void Spell::EffectSendEvent(SpellEffIndex effIndex)
// some spells have no target entries in dbc and they use focus target
if (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
}
sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "Spell ScriptStart %u for spellid %u in EffectSendEvent ", m_spellInfo->Effects[effIndex].MiscValue, m_spellInfo->Id);
@@ -1759,7 +1759,7 @@ void Spell::EffectCreateItem2(SpellEffIndex effIndex)
else
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*/)
@@ -1773,7 +1773,7 @@ void Spell::EffectCreateRandomItem(SpellEffIndex /*effIndex*/)
// create some random items
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)
@@ -1991,7 +1991,7 @@ void Spell::SendLoot(uint64 guid, LootType loottype)
return;
case GAMEOBJECT_TYPE_CHEST:
// TODO: possible must be moved to loot release (in different from linked triggering)
/// @todo possible must be moved to loot release (in different from linked triggering)
if (gameObjTarget->GetGOInfo()->chest.eventId)
{
sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "Chest ScriptStart id %u for GO %u", gameObjTarget->GetGOInfo()->chest.eventId, gameObjTarget->GetDBTableGUIDLow());
@@ -2032,7 +2032,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
if (gameObjTarget)
{
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) ||
(goInfo->type == GAMEOBJECT_TYPE_GOOBER && goInfo->goober.losOK))
{
@@ -2060,7 +2060,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
gameObjTarget->SetLootState(GO_JUST_DEACTIVATED);
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
// these objects must have been spawned by outdoorpvp!
else if (gameObjTarget->GetGOInfo()->type == GAMEOBJECT_TYPE_GOOBER && sOutdoorPvPMgr->HandleOpenGo(player, gameObjTarget->GetGUID()))
@@ -2564,7 +2564,7 @@ void Spell::EffectDualWield(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);
}
@@ -3518,7 +3518,7 @@ void Spell::EffectInterruptCast(SpellEffIndex effIndex)
if (!unitTarget || !unitTarget->isAlive())
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
// there is no CURRENT_AUTOREPEAT_SPELL spells that can be interrupted
for (uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_AUTOREPEAT_SPELL; ++i)
@@ -3616,7 +3616,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
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)
{
@@ -4049,7 +4049,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
{
if (Unit* parent = seat->GetVehicleBase())
{
// TODO: a hack, range = 11, should after some time cast, otherwise too far
/// @todo a hack, range = 11, should after some time cast, otherwise too far
m_caster->CastSpell(parent, 62496, true);
unitTarget->CastSpell(parent, m_spellInfo->Effects[EFFECT_0].CalcValue());
}
@@ -4628,7 +4628,7 @@ void Spell::EffectFeedPet(SpellEffIndex effIndex)
uint32 count = 1;
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, NULL, NULL, true);
}
+1 -1
View File
@@ -1292,7 +1292,7 @@ SpellCastResult SpellInfo::CheckShapeshift(uint32 form) const
// Check if stance disables cast of not-stance spells
// 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 (!(stanceMask & Stances))
+1 -1
View File
@@ -2113,7 +2113,7 @@ void SpellMgr::LoadEnchantCustomAttr()
if (!spellInfo)
continue;
// TODO: find a better check
/// @todo find a better check
if (!(spellInfo->AttributesEx2 & SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA) || !(spellInfo->Attributes & SPELL_ATTR0_NOT_SHAPESHIFT))
continue;
+1 -1
View File
@@ -84,7 +84,7 @@ enum SpellFamilyFlag
SPELLFAMILYFLAG_DK_DEATH_STRIKE = 0x00000010,
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
};
+1 -1
View File
@@ -162,7 +162,7 @@ private:
bool _completed;
GMTicketEscalationStatus _escalatedStatus;
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 _haveTicket;
std::string _response;
std::string _chatLog; // No need to store in db, will be refreshed every session client side
+2 -2
View File
@@ -351,8 +351,8 @@ bool PlayerDumpWriter::GetDump(uint32 guid, std::string &dump)
if (!DumpTable(dump, guid, dumpTables[i].name, dumpTables[i].name, dumpTables[i].type))
return false;
// TODO: Add instance/group..
// TODO: Add a dump level option to skip some non-important tables
/// @todo Add instance/group..
/// @todo Add a dump level option to skip some non-important tables
return true;
}
+1 -1
View File
@@ -349,7 +349,7 @@ void WardenWin::HandleData(ByteBuffer &buff)
{
uint8 result;
buff >> result;
// TODO: test it.
/// @todo test it.
if (result == 0x00)
{
sLog->outWarn(LOG_FILTER_WARDEN, "%s failed timing check. Action: %s", _session->GetPlayerInfo().c_str(), Penalty().c_str());
+3 -3
View File
@@ -139,7 +139,7 @@ World::~World()
VMAP::VMapFactory::clear();
MMAP::MMapFactory::clear();
//TODO free addSessQueue
/// @todo free addSessQueue
}
/// Find a player in a specified zone
@@ -632,7 +632,7 @@ void World::LoadConfigSettings(bool reload)
m_float_configs[CONFIG_GROUP_XP_DISTANCE] = ConfigMgr::GetFloatDefault("MaxGroupXPDistance", 74.0f);
m_float_configs[CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE] = ConfigMgr::GetFloatDefault("MaxRecruitAFriendBonusDistance", 100.0f);
/// \todo Add MonsterSight and GuarderSight (with meaning) in worldserver.conf or put them as define
/// @todo Add MonsterSight and GuarderSight (with meaning) in worldserver.conf or put them as define
m_float_configs[CONFIG_SIGHT_MONSTER] = ConfigMgr::GetFloatDefault("MonsterSight", 50);
m_float_configs[CONFIG_SIGHT_GUARDER] = ConfigMgr::GetFloatDefault("GuarderSight", 50);
@@ -1710,7 +1710,7 @@ void World::SetInitialWorldSettings()
//to set mailtimer to return mails every day between 4 and 5 am
//mailtimer is increased when updating auctions
//one second is 1000 -(tested on win system)
//TODO: Get rid of magic numbers
/// @todo Get rid of magic numbers
mail_timer = ((((localtime(&m_gameTime)->tm_hour + 20) % 24)* HOUR * IN_MILLISECONDS) / m_timers[WUPDATE_AUCTIONS].GetInterval());
//1440
mail_timer_expires = ((DAY * IN_MILLISECONDS) / (m_timers[WUPDATE_AUCTIONS].GetInterval()));
+1 -1
View File
@@ -558,7 +558,7 @@ class World
int32 GetQueuePos(WorldSession*);
bool HasRecentlyDisconnected(WorldSession*);
/// \todo Actions on m_allowMovement still to be implemented
/// @todo Actions on m_allowMovement still to be implemented
/// Is movement allowed?
bool getAllowMovement() const { return m_allowMovement; }
/// Allow/Disallow object movements
+1 -1
View File
@@ -140,7 +140,7 @@ public:
}
/// Delete a user account and all associated characters in this realm
/// \todo This function has to be enhanced to respect the login/realm split (delete char, delete account chars in realm then delete account)
/// @todo This function has to be enhanced to respect the login/realm split (delete char, delete account chars in realm then delete account)
static bool HandleAccountDeleteCommand(ChatHandler* handler, char const* args)
{
if (!*args)
+2 -2
View File
@@ -443,7 +443,7 @@ public:
stmt->setUInt16(0, uint16(AT_LOGIN_CHANGE_RACE));
if (target)
{
// TODO : add text into database
/// @todo add text into database
handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER, handler->GetNameLink(target).c_str());
target->SetAtLoginFlag(AT_LOGIN_CHANGE_RACE);
stmt->setUInt32(1, target->GetGUIDLow());
@@ -451,7 +451,7 @@ public:
else
{
std::string oldNameLink = handler->playerLink(targetName);
// TODO : add text into database
/// @todo add text into database
handler->PSendSysMessage(LANG_CUSTOMIZE_PLAYER_GUID, oldNameLink.c_str(), GUID_LOPART(targetGuid));
stmt->setUInt32(1, GUID_LOPART(targetGuid));
}
+1 -1
View File
@@ -174,7 +174,7 @@ public:
return false;
}
// TODO: is it really necessary to add both the real and DB table guid here ?
/// @todo is it really necessary to add both the real and DB table guid here ?
sObjectMgr->AddGameobjectToGrid(guidLow, sObjectMgr->GetGOData(guidLow));
handler->PSendSysMessage(LANG_GAMEOBJECT_ADD, objectId, objectInfo->name.c_str(), guidLow, x, y, z);
+1 -1
View File
@@ -2211,7 +2211,7 @@ public:
// from console show not existed sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUIDLow() : 0, MAIL_STATIONERY_GM);
//- TODO: Fix poor design
/// @todo Fix poor design
SQLTransaction trans = CharacterDatabase.BeginTransaction();
MailDraft(subject, text)
.SendMailTo(trans, MailReceiver(target, GUID_LOPART(targetGuid)), sender);
+3 -3
View File
@@ -82,7 +82,7 @@ public:
{ "item", SEC_GAMEMASTER, false, &HandleNpcAddVendorItemCommand, "", NULL },
{ "move", SEC_GAMEMASTER, false, &HandleNpcAddMoveCommand, "", NULL },
{ "temp", SEC_GAMEMASTER, false, &HandleNpcAddTempSpawnCommand, "", NULL },
//{ TODO: fix or remove this command
//{@todo fix or remove this command
{ "weapon", SEC_ADMINISTRATOR, false, &HandleNpcAddWeaponCommand, "", NULL },
//}
{ "", SEC_GAMEMASTER, false, &HandleNpcAddCommand, "", NULL },
@@ -114,7 +114,7 @@ public:
{ "spawndist", SEC_GAMEMASTER, false, &HandleNpcSetSpawnDistCommand, "", NULL },
{ "spawntime", SEC_GAMEMASTER, false, &HandleNpcSetSpawnTimeCommand, "", NULL },
{ "data", SEC_ADMINISTRATOR, false, &HandleNpcSetDataCommand, "", NULL },
//{ TODO: fix or remove these commands
//{ @todo fix or remove these commands
{ "name", SEC_GAMEMASTER, false, &HandleNpcSetNameCommand, "", NULL },
{ "subname", SEC_GAMEMASTER, false, &HandleNpcSetSubNameCommand, "", NULL },
//}
@@ -1421,7 +1421,7 @@ public:
return true;
}
//TODO: NpcCommands that need to be fixed :
/// @todo NpcCommands that need to be fixed :
static bool HandleNpcAddWeaponCommand(ChatHandler* /*handler*/, char const* /*args*/)
{
/*if (!*args)
+1 -1
View File
@@ -700,7 +700,7 @@ public:
wpCreature2->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), chr->GetPhaseMaskForSpawn());
// To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells();
//TODO: Should we first use "Create" then use "LoadFromDB"?
/// @todo Should we first use "Create" then use "LoadFromDB"?
if (!wpCreature2->LoadCreatureFromDB(wpCreature2->GetDBTableGUIDLow(), map))
{
handler->PSendSysMessage(LANG_WAYPOINT_VP_NOTCREATED, VISUAL_WAYPOINT);
@@ -109,7 +109,7 @@ enum GrimstoneTexts
SAY_TEXT6 = 5
};
//TODO: implement quest part of event (different end boss)
/// @todo implement quest part of event (different end boss)
class npc_grimstone : public CreatureScript
{
public:
@@ -160,7 +160,7 @@ public:
CanWalk = false;
}
//TODO: move them to center
/// @todo move them to center
void SummonRingMob()
{
if (Creature* tmp = me->SummonCreature(RingMob[MobSpawnId], 608.960f, -235.322f, -53.907f, 1.857f, TEMPSUMMON_DEAD_DESPAWN, 0))
@@ -172,7 +172,7 @@ public:
MobDeath_Timer = 2500;
}
//TODO: move them to center
/// @todo move them to center
void SummonRingBoss()
{
if (Creature* tmp = me->SummonCreature(RingBoss[rand()%6], 644.300f, -175.989f, -53.739f, 3.418f, TEMPSUMMON_DEAD_DESPAWN, 0))
@@ -30,7 +30,7 @@ enum Spells
enum Adds
{
MODEL_REND_ON_DRAKE = 9723, // TODO: use creature_template 10459 instead of its modelid
MODEL_REND_ON_DRAKE = 9723, /// @todo use creature_template 10459 instead of its modelid
NPC_RAGE_TALON_FIRE_TONG = 10372,
NPC_CHROMATIC_WHELP = 10442,
NPC_CHROMATIC_DRAGONSPAWN = 10447,
@@ -44,7 +44,7 @@ enum Midnight
MOUNTED_DISPLAYID = 16040,
//Attumen (TODO: Use the summoning spell instead of Creature id. It works, but is not convenient for us)
//Attumen (@todo Use the summoning spell instead of Creature id. It works, but is not convenient for us)
SUMMON_ATTUMEN = 15550,
};
@@ -19,7 +19,7 @@
/* ScriptData
SDName: Instance_Karazhan
SD%Complete: 70
SDComment: Instance Script for Karazhan to help in various encounters. TODO: GameObject visibility for Opera event.
SDComment: Instance Script for Karazhan to help in various encounters. @todo GameObject visibility for Opera event.
SDCategory: Karazhan
EndScriptData */
@@ -224,7 +224,7 @@ public:
switch (m_uiOperaEvent)
{
//TODO: Set Object visibilities for Opera based on performance
/// @todo Set Object visibilities for Opera based on performance
case EVENT_OZ:
break;
@@ -134,7 +134,7 @@ public:
void Reset()
{
// TODO: Timers
/// @todo Timers
FireballTimer = 0;
PhoenixTimer = 10000;
FlameStrikeTimer = 25000;
@@ -493,7 +493,7 @@ public:
}
}
// TODO: spells
/// @todo spells
CombatAI::UpdateAI(uiDiff);
}
@@ -758,7 +758,7 @@ public:
if (CAST_PLR(owner)->GetQuestStatus(12698) == QUEST_STATUS_INCOMPLETE)
CAST_CRE(who)->CastSpell(owner, 52517, true);
//Todo: Creatures must not be removed, but, must instead
/// @todo Creatures must not be removed, but, must instead
// stand next to Gothik and be commanded into the pit
// and dig into the ground.
CAST_CRE(who)->DespawnOrUnsummon();
@@ -690,7 +690,7 @@ public:
return;
}
//TODO: simplify text's selection
/// @todo simplify text's selection
switch (player->getRace())
{
@@ -19,7 +19,7 @@
/* ScriptData
SDName: Boss_High_Inquisitor_Fairbanks
SD%Complete: 100
SDComment: TODO: if this guy not involved in some special event, remove (and let ACID script)
SDComment: @todo if this guy not involved in some special event, remove (and let ACID script)
SDCategory: Scarlet Monastery
EndScriptData */
@@ -22,7 +22,7 @@ SDComment: Sinister Reflection Model, Armageddon Visual, SAY_KJ_SHADOWSPIKE3, Em
SDCategory: Sunwell_Plateau
EndScriptData */
//TODO rewrite Armageddon
/// @todo rewrite Armageddon
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
@@ -105,7 +105,7 @@ enum Spells
SPELL_ARMAGEDDON_DAMAGE = 45915, // This does the area damage
/* Shield Orb Spells*/
SPELL_SHADOW_BOLT = 45680, //45679 would be correct but triggers to often //TODO fix console error
SPELL_SHADOW_BOLT = 45680, //45679 would be correct but triggers to often /// @todo fix console error
/* Anveena's spells and cosmetics (Or, generally, everything that has "Anveena" in name) */
SPELL_ANVEENA_PRISON = 46367, // She hovers locked within a bubble
@@ -784,7 +784,7 @@ public:
break;
case TIMER_FLAME_DART: //Phase 3
DoCastAOE(SPELL_FLAME_DART, false);
Timer[TIMER_FLAME_DART] = 3000; //TODO Timer
Timer[TIMER_FLAME_DART] = 3000; /// @todo Timer
break;
case TIMER_DARKNESS: //Phase 3
if (!me->IsNonMeleeSpellCasted(false))
@@ -918,7 +918,7 @@ public:
void Reset()
{
// TODO: Timers!
/// @todo Timers!
ShadowBoltVolleyTimer = urand(8000, 14000); // So they don't all cast it in the same moment.
FelfirePortalTimer = 20000;
if (instance)
@@ -155,7 +155,7 @@ class boss_nalorakk : public CreatureScript
Berserk_Timer = 600000;
inBearForm = false;
// me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 5122); // TODO: find the correct equipment id
// me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 5122); /// @todo find the correct equipment id
}
void SendAttacker(Unit* target)
@@ -23,7 +23,7 @@
#include "zulgurub.h"
/*
* TODO:
* @todo
* - Fix timers (research some more)
*/
+1 -1
View File
@@ -601,7 +601,7 @@ class npc_elder_kekek : public CreatureScript
/*######
## npc_the_etymidian
## TODO: A red crystal as a gift for the great one should be spawned during the event.
## @todo A red crystal as a gift for the great one should be spawned during the event.
######*/
class npc_the_etymidian : public CreatureScript
{
@@ -19,7 +19,7 @@
SDName: Boss epoch
SDAuthor: Tartalo
SD%Complete: 80
SDComment: TODO: Intro, consecutive attacks to a random target durin time wrap, adjust timers
SDComment: @todo Intro, consecutive attacks to a random target durin time wrap, adjust timers
SDCategory:
Script Data End */
@@ -19,7 +19,7 @@
SDName: Boss mal_ganis
SDAuthor: Tartalo
SD%Complete: 80
SDComment: TODO: Intro & outro
SDComment: @todo Intro & outro
SDCategory:
Script Data End */
@@ -19,7 +19,7 @@
SDName: Boss salramm
SDAuthor: Tartalo
SD%Complete: 80
SDComment: TODO: Intro
SDComment: @todo Intro
SDCategory:
Script Data End */
@@ -229,7 +229,7 @@ public:
if (me->HasAura(SPELL_CHANNEL))
me->RemoveAura(SPELL_CHANNEL);
//TODO: start the post-event here
/// @todo start the post-event here
instance->SetData(TYPE_MEDIVH, DONE);
}
} else Check_Timer -= diff;
@@ -152,7 +152,7 @@ public:
void UpdateAI(uint32 diff)
{
//TODO: make this work
/// @todo make this work
if (CanPatrol && wpId == 0)
{
me->GetMotionMaster()->MovePoint(DrakeWP[0].wpId, DrakeWP[0].x, DrakeWP[0].y, DrakeWP[0].z);
@@ -507,7 +507,7 @@ public:
{
switch (summoned->GetEntry())
{
//TODO: make Scarloc start into event instead, and not start attack directly
/// @todo make Scarloc start into event instead, and not start attack directly
case MOB_ENTRY_BARN_GUARDSMAN:
case MOB_ENTRY_BARN_PROTECTOR:
case MOB_ENTRY_BARN_LOOKOUT:
@@ -543,7 +543,7 @@ public:
if (!UpdateVictim())
return;
//TODO: add his abilities'n-crap here
/// @todo add his abilities'n-crap here
if (!LowHp && HealthBelowPct(20))
{
Talk(SAY_TH_RANDOM_LOW_HP);
@@ -63,7 +63,7 @@ enum Points
const Position AyamissAirPos = { -9689.292f, 1547.912f, 48.02729f, 0.0f };
const Position AltarPos = { -9717.18f, 1517.72f, 27.4677f, 0.0f };
// TODO: These below are probably incorrect, taken from SD2
/// @todo These below are probably incorrect, taken from SD2
const Position SwarmerPos = { -9647.352f, 1578.062f, 55.32f, 0.0f };
const Position LarvaPos[2] =
{
@@ -74,7 +74,7 @@ Position CrystalCoordinates[NUM_CRYSTALS] =
};
float RoomRadius = 165.0f;
uint8 const NUM_TORNADOS = 5; // TODO: This number is completly random!
uint8 const NUM_TORNADOS = 5; /// @todo This number is completly random!
uint8 const NUM_WEAKNESS = 5;
uint32 const SpellWeakness[NUM_WEAKNESS] = { 25177, 25178, 25180, 25181, 25183 };
Position const RoomCenter = { -9343.041992f, 1923.278198f, 85.555984f, 0.0 };
@@ -150,7 +150,7 @@ class boss_skeram : public CreatureScript
events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, urand(8000, 18000));
break;
case EVENT_FULLFILMENT:
// TODO: For some weird reason boss does not cast this
/// @todo For some weird reason boss does not cast this
// Spell actually works, tested in duel
DoCast(SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true), SPELL_TRUE_FULFILLMENT, true);
events.ScheduleEvent(EVENT_FULLFILMENT, urand(20000, 30000));
@@ -151,7 +151,7 @@ struct boss_twinemperorsAI : public ScriptedAI
Creature* pOtherBoss = GetOtherBoss();
if (pOtherBoss)
{
// TODO: we should activate the other boss location so he can start attackning even if nobody
/// @todo we should activate the other boss location so he can start attackning even if nobody
// is near I dont know how to do that
ScriptedAI* otherAI = CAST_AI(ScriptedAI, pOtherBoss->AI());
if (!pOtherBoss->isInCombat())
@@ -81,8 +81,8 @@ enum MovePoints
ROOM_CENTER = 1
};
Position const ViscidusCoord = { -7992.36f, 908.19f, -52.62f, 1.68f }; // TODO: Visci isn't in room middle
float const RoomRadius = 40.0f; // TODO: Not sure if its correct
Position const ViscidusCoord = { -7992.36f, 908.19f, -52.62f, 1.68f }; /// @todo Visci isn't in room middle
float const RoomRadius = 40.0f; /// @todo Not sure if its correct
class boss_viscidus : public CreatureScript
{

Some files were not shown because too many files have changed in this diff Show More