Clean up unused variables (#2268)

<!--
Thank you for contributing to mod-playerbots, please make sure that
you...
1. Submit your PR to the test-staging branch, not master.
2. Read the guidelines below before submitting.
3. Don't delete parts of this template.

DESIGN PHILOSOPHY: We prioritize STABILITY, PERFORMANCE, AND
PREDICTABILITY over behavioral realism.

Every action and decision executes PER BOT AND PER TRIGGER. Small
increases in logic complexity scale
poorly across thousands of bots and negatively affect all. We prioritize
a stable system over a smarter
one. Bots don't need to behave perfectly; believable behavior is the
goal, not human simulation.
Default behavior must be cheap in processing; expensive behavior must be
opt-in.

Before submitting, make sure your changes aligns with these principles.
-->

## Pull Request Description
<!-- Describe what this change does and why it is needed -->
Clean up a bunch of additional unused variable warnings. 


## Feature Evaluation
<!--
If your PR is very minimal (comment typo, wrong ID reference, etc), and
it is very obvious it will not have
any impact on performance, you may skip these question. If necessary, a
maintainer may ask you for them later.
-->

<!-- Please answer the following: -->
- Describe the **minimum logic** required to achieve the intended
behavior.
- Describe the **processing cost** when this logic executes across many
bots.



## How to Test the Changes
<!--
- Step-by-step instructions to test the change.
- Any required setup (e.g. multiple players, number of bots, specific
configuration).
- Expected behavior and how to verify it.
-->



## Impact Assessment
<!-- As a generic test, before and after measure of pmon (playerbot pmon
tick) can help you here. -->
- Does this change increase per-bot/per-tick processing or risk scaling
poorly with thousands of bots?
    - - [x] No, not at all
    - - [ ] Minimal impact (**explain below**)
    - - [ ] Moderate impact (**explain below**)



- Does this change modify default bot behavior?
    - - [x] No
    - - [ ] Yes (**explain why**)



- Does this change add new decision branches or increase maintenance
complexity?
    - - [x] No
    - - [ ] Yes (**explain below**)



## Messages to Translate
<!--
Bot messages have to be translatable, but you don't need to do the
translations here. You only need to make sure
the message is in a translatable format, and list in the table the
message_key and the default English message.
Search for GetBotTextOrDefault in the codebase for examples.
-->
- Does this change add bot messages to translate?
    - - [x] No
    - - [ ] Yes (**list messages in the table**)

| Message key  | Default message |
| --------------- | ------------------ |
|			 |			      |
|			 |			      |

## AI Assistance
<!--
AI assistance is allowed, but all submitted code must be fully
understood, reviewed, and owned by the contributor.
We expect contributors to be honest about what they do and do not
understand.
-->
- Was AI assistance used while working on this change?
    - - [ ] No
    - - [x] Yes (**explain below**)
<!--
If yes, please specify:
- Purpose of usage (e.g. brainstorming, refactoring, documentation, code
generation).
- Which parts of the change were influenced or generated, and whether it
was thoroughly reviewed.
-->
Claude reviewed the warnings log from a build and suggested a series of
changes. I focused just on these warnings for now. Every line was
reviewed. Some sections need to be reviewed by author for intent.



## Final Checklist

- - [x] Stability is not compromised.
- - [x] Performance impact is understood, tested, and acceptable.
- - [x] Added logic complexity is justified and explained.
- - [x] Documentation updated if needed (Conf comments, WiKi commands).

## Notes for Reviewers
<!-- Anything else that's helpful to review or test your pull request.
-->
This commit is contained in:
Keleborn 2026-04-24 14:03:36 -07:00 committed by GitHub
parent a4b37c9fbc
commit 866a73dfbf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
88 changed files with 196 additions and 255 deletions

View File

@ -73,7 +73,7 @@ void AutoMaintenanceOnLevelupAction::LearnSpells(std::ostringstream* out)
LearnQuestSpells(out);
}
void AutoMaintenanceOnLevelupAction::LearnTrainerSpells(std::ostringstream* out)
void AutoMaintenanceOnLevelupAction::LearnTrainerSpells(std::ostringstream* /*out*/)
{
PlayerbotFactory factory(bot, bot->GetLevel());
factory.InitSkills();

View File

@ -27,7 +27,7 @@ bool BankAction::Execute(Event event)
return false;
}
bool BankAction::ExecuteBank(std::string const text, Unit* bank)
bool BankAction::ExecuteBank(std::string const text, Unit* /*bank*/)
{
if (text.empty() || text == "?")
{

View File

@ -21,7 +21,7 @@ public:
}
bool Execute(Event event) override;
virtual std::string const castString(WorldObject* target) { return "cast"; }
virtual std::string const castString(WorldObject* /*target*/) { return "cast"; }
protected:
bool ncCast = false;
@ -49,7 +49,7 @@ public:
bool isUseful() override { return false; }
virtual bool AcceptSpell(SpellInfo const* spellInfo);
virtual uint32 GetSpellPriority(SpellInfo const* spellInfo) { return 1; }
virtual uint32 GetSpellPriority(SpellInfo const* /*spellInfo*/) { return 1; }
virtual bool castSpell(uint32 spellId, WorldObject* wo);
bool Execute(Event event) override;

View File

@ -80,7 +80,7 @@ bool FollowChatShortcutAction::Execute(Event /*event*/)
true, priority);
}
if (Pet* pet = bot->GetPet())
if (bot->GetPet())
botAI->PetFollow();
if (moved)

View File

@ -116,6 +116,7 @@ bool ChooseRpgTargetAction::Execute(Event /*event*/)
GuidPosition masterRpgTarget;
if (master && master != bot && GET_PLAYERBOT_AI(master) && master->GetMapId() == bot->GetMapId() && !master->IsBeingTeleported())
{
//TODO Implement
Player* player = botAI->GetMaster();
//GuidPosition masterRpgTarget = PAI_VALUE(GuidPosition, "rpg target"); //not used, line marked for removal.
}

View File

@ -68,25 +68,13 @@ bool CleanQuestLogAction::Execute(Event event)
}
if (!sPlayerbotAIConfig.dropObsoleteQuests)
{
return false;
}
// Only output this message if "debug rpg" strategy is enabled
if (botAI->HasStrategy("debug rpg", BotState::BOT_STATE_COMBAT))
{
botAI->TellMaster("Clean Quest Log command received, removing grey/trivial quests...");
}
uint8 botLevel = bot->GetLevel(); // Get bot's level
uint8 numQuest = 0;
for (uint8 slot = 0; slot < MAX_QUEST_LOG_SIZE; ++slot)
{
if (bot->GetQuestSlotQuestId(slot))
{
numQuest++;
}
}
for (uint8 slot = 0; slot < MAX_QUEST_LOG_SIZE; ++slot)
{
@ -101,34 +89,24 @@ bool CleanQuestLogAction::Execute(Event event)
// Determine if quest is trivial by comparing levels
int32 questLevel = quest->GetQuestLevel();
if (questLevel == -1) // For scaling quests, default to bot level
{
questLevel = botLevel;
}
// Set the level difference for when a quest becomes trivial
// This was determined by using the Lua code the client uses
int32 trivialLevel = 5;
if (botLevel >= 40)
{
trivialLevel = 8;
}
else if (botLevel >= 30)
{
trivialLevel = 7;
}
else if (botLevel >= 20)
{
trivialLevel = 6;
}
// Check if the quest is trivial (grey) for the bot
if ((botLevel - questLevel) > trivialLevel)
{
// Output only if "debug rpg" strategy is enabled
if (botAI->HasStrategy("debug rpg", BotState::BOT_STATE_COMBAT))
{
botAI->TellMaster("Quest [ " + quest->GetTitle() + " ] will be removed because it is trivial (grey).");
}
// Remove quest
botAI->rpgStatistic.questDropped++;
@ -137,8 +115,6 @@ bool CleanQuestLogAction::Execute(Event event)
bot->SetQuestStatus(questId, QUEST_STATUS_NONE);
bot->RemoveRewardedQuest(questId);
numQuest--;
if (botAI->HasStrategy("debug rpg", BotState::BOT_STATE_COMBAT))
{
const std::string text_quest = ChatHelper::FormatQuest(quest);
@ -147,17 +123,13 @@ bool CleanQuestLogAction::Execute(Event event)
}
if (botAI->HasStrategy("debug rpg", BotState::BOT_STATE_COMBAT))
{
botAI->TellMaster("Quest [ " + quest->GetTitle() + " ] has been removed.");
}
}
else
{
// Only output if "debug rpg" strategy is enabled
if (botAI->HasStrategy("debug rpg", BotState::BOT_STATE_COMBAT))
{
botAI->TellMaster("Quest [ " + quest->GetTitle() + " ] is not trivial and will be kept.");
}
}
}
@ -174,7 +146,6 @@ void CleanQuestLogAction::DropQuestType(uint8& numQuest, uint8 wantNum, bool isG
{
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(slots.begin(), slots.end(), g);
}
@ -200,8 +171,10 @@ void CleanQuestLogAction::DropQuestType(uint8& numQuest, uint8 wantNum, bool isG
bot->GetLevel() <= bot->GetQuestLevel(quest) + uint32(lowLevelDiff)) // Quest is not gray
{
if (bot->GetLevel() + 5 > bot->GetQuestLevel(quest)) // Quest is not red
{
if (!isGreen)
continue;
}
}
else // Quest is gray
{

View File

@ -168,8 +168,8 @@ bool FollowAction::Execute(Event /*event*/)
? MovementPriority::MOVEMENT_COMBAT
: MovementPriority::MOVEMENT_NORMAL;
bool const movingAllowed = IsMovingAllowed(mapId, destX, destY, destZ);
bool const dupMove = IsDuplicateMove(mapId, destX, destY, destZ);
bool const movingAllowed = IsMovingAllowed();
bool const dupMove = IsDuplicateMove(destX, destY, destZ);
bool const waiting = IsWaitingForLastMove(priority);
if (movingAllowed && !dupMove && !waiting)

View File

@ -53,7 +53,7 @@ bool GuildBankAction::Execute(std::string const text, GameObject* bank)
return result;
}
bool GuildBankAction::MoveFromCharToBank(Item* item, GameObject* bank)
bool GuildBankAction::MoveFromCharToBank(Item* item, GameObject* /*bank*/)
{
uint32 playerSlot = item->GetSlot();
uint32 playerBag = item->GetBagSlot();

View File

@ -78,7 +78,7 @@ private:
class TakeMailProcessor : public MailProcessor
{
public:
bool Process(uint32 index, Mail* mail, PlayerbotAI* botAI) override
bool Process(uint32 /*index*/, Mail* mail, PlayerbotAI* botAI) override
{
Player* bot = botAI->GetBot();
if (!CheckBagSpace(bot))
@ -104,7 +104,7 @@ public:
{
std::vector<uint32> guids;
for (MailItemInfoVec::iterator i = mail->items.begin(); i != mail->items.end(); ++i)
if (ItemTemplate const* proto = sObjectMgr->GetItemTemplate(i->item_template))
if (sObjectMgr->GetItemTemplate(i->item_template))
guids.push_back(i->item_guid);
for (std::vector<uint32>::iterator i = guids.begin(); i != guids.end(); ++i)
@ -157,7 +157,7 @@ private:
class DeleteMailProcessor : public MailProcessor
{
public:
bool Process(uint32 index, Mail* mail, PlayerbotAI* botAI) override
bool Process(uint32 /*index*/, Mail* mail, PlayerbotAI* botAI) override
{
std::ostringstream out;
out << "|cffffffff" << mail->subject << "|cffff0000 deleted";
@ -172,7 +172,7 @@ public:
class ReadMailProcessor : public MailProcessor
{
public:
bool Process(uint32 index, Mail* mail, PlayerbotAI* botAI) override
bool Process(uint32 /*index*/, Mail* mail, PlayerbotAI* botAI) override
{
std::ostringstream out, body;
out << "|cffffffff" << mail->subject;

View File

@ -63,10 +63,10 @@ void MovementAction::CreateWp(Player* wpOwner, float x, float y, float z, float
bool MovementAction::JumpTo(uint32 mapId, float x, float y, float z, MovementPriority priority)
{
UpdateMovementState();
if (!IsMovingAllowed(mapId, x, y, z))
if (!IsMovingAllowed())
return false;
if (IsDuplicateMove(mapId, x, y, z))
if (IsDuplicateMove(x, y, z))
return false;
if (IsWaitingForLastMove(priority))
@ -171,11 +171,11 @@ bool MovementAction::MoveTo(uint32 mapId, float x, float y, float z, bool idle,
bool exact_waypoint, MovementPriority priority, bool lessDelay, bool backwards)
{
UpdateMovementState();
if (!IsMovingAllowed(mapId, x, y, z))
if (!IsMovingAllowed())
{
return false;
}
if (IsDuplicateMove(mapId, x, y, z))
if (IsDuplicateMove(x, y, z))
{
return false;
}
@ -897,20 +897,7 @@ bool MovementAction::IsMovingAllowed(WorldObject* target)
return IsMovingAllowed();
}
bool MovementAction::IsMovingAllowed(uint32 mapId, float x, float y, float z)
{
// removed sqrt as means distance limit was effectively 22500 (ReactDistance<63>)
// leaving it commented incase we find ReactDistance limit causes problems
// float distance = sqrt(bot->GetDistance(x, y, z));
// Remove react distance limit
// if (!bot->InBattleground())
// return false;
return IsMovingAllowed();
}
bool MovementAction::IsDuplicateMove(uint32 mapId, float x, float y, float z)
bool MovementAction::IsDuplicateMove(float x, float y, float z)
{
LastMovement& lastMove = *context->GetValue<LastMovement&>("last movement");
@ -1286,7 +1273,7 @@ bool MovementAction::Follow(Unit* target, float distance, float angle)
return true;
}
bool MovementAction::ChaseTo(WorldObject* obj, float distance, float angle)
bool MovementAction::ChaseTo(WorldObject* obj, float distance)
{
if (!IsMovingAllowed())
{
@ -1859,7 +1846,7 @@ bool FleeAction::isUseful()
bool FleeWithPetAction::Execute(Event /*event*/)
{
if (Pet* pet = bot->GetPet())
if (bot->GetPet())
botAI->PetFollow();
return Flee(AI_VALUE(Unit*, "current target"));

View File

@ -43,14 +43,13 @@ protected:
float GetFollowAngle();
bool Follow(Unit* target, float distance = sPlayerbotAIConfig.followDistance);
bool Follow(Unit* target, float distance, float angle);
bool ChaseTo(WorldObject* obj, float distance = 0.0f, float angle = 0.0f);
bool ChaseTo(WorldObject* obj, float distance = 0.0f);
bool ReachCombatTo(Unit* target, float distance = 0.0f);
float MoveDelay(float distance, bool backwards = false);
void WaitForReach(float distance);
void SetNextMovementDelay(float delayMillis);
bool IsMovingAllowed(WorldObject* target);
bool IsMovingAllowed(uint32 mapId, float x, float y, float z);
bool IsDuplicateMove(uint32 mapId, float x, float y, float z);
bool IsDuplicateMove(float x, float y, float z);
bool IsWaitingForLastMove(MovementPriority priority);
bool IsMovingAllowed();
bool Flee(Unit* target);

View File

@ -45,7 +45,7 @@ std::once_flag ReadyChecker::initFlag;
class HealthChecker : public ReadyChecker
{
public:
bool Check(PlayerbotAI* botAI, AiObjectContext* context) override
bool Check(PlayerbotAI* /*botAI*/, AiObjectContext* context) override
{
return AI_VALUE2(uint8, "health", "self target") > sPlayerbotAIConfig.almostFullHealth;
}
@ -56,7 +56,7 @@ public:
class ManaChecker : public ReadyChecker
{
public:
bool Check(PlayerbotAI* botAI, AiObjectContext* context) override
bool Check(PlayerbotAI* /*botAI*/, AiObjectContext* context) override
{
return !AI_VALUE2(bool, "has mana", "self target") ||
AI_VALUE2(uint8, "mana", "self target") > sPlayerbotAIConfig.mediumHealth;
@ -68,7 +68,7 @@ public:
class DistanceChecker : public ReadyChecker
{
public:
bool Check(PlayerbotAI* botAI, AiObjectContext* context) override
bool Check(PlayerbotAI* botAI, AiObjectContext* /*context*/) override
{
Player* bot = botAI->GetBot();
if (Player* master = botAI->GetMaster())
@ -90,7 +90,7 @@ public:
class HunterChecker : public ReadyChecker
{
public:
bool Check(PlayerbotAI* botAI, AiObjectContext* context) override
bool Check(PlayerbotAI* botAI, AiObjectContext* /*context*/) override
{
Player* bot = botAI->GetBot();
if (bot->getClass() == CLASS_HUNTER)
@ -126,7 +126,7 @@ class ItemCountChecker : public ReadyChecker
public:
ItemCountChecker(std::string const item, std::string const name) : item(item), name(name) {}
bool Check(PlayerbotAI* botAI, AiObjectContext* context) override
bool Check(PlayerbotAI* /*botAI*/, AiObjectContext* context) override
{
return AI_VALUE2(uint32, "item count", item) > 0;
}
@ -225,4 +225,4 @@ bool ReadyCheckAction::ReadyCheck()
return true;
}
bool FinishReadyCheckAction::Execute(Event event) { return ReadyCheck(); }
bool FinishReadyCheckAction::Execute(Event /*event*/) { return ReadyCheck(); }

View File

@ -65,7 +65,7 @@ void ReleaseSpiritAction::IncrementDeathCount() const
}
}
void ReleaseSpiritAction::LogRelease(const std::string& releaseMsg, bool isAutoRelease) const
void ReleaseSpiritAction::LogRelease(const std::string& releaseMsg) const
{
const std::string teamPrefix = bot->GetTeamId() == TEAM_ALLIANCE ? "A" : "H";
@ -82,13 +82,13 @@ bool AutoReleaseSpiritAction::Execute(Event /*event*/)
{
IncrementDeathCount();
bot->DurabilityRepairAll(false, 1.0f, false);
LogRelease("auto released", true);
LogRelease("auto released");
WorldPacket packet(CMSG_REPOP_REQUEST);
packet << uint8(0);
bot->GetSession()->HandleRepopRequestOpcode(packet);
LogRelease("releases spirit", true);
LogRelease("releases spirit");
if (bot->InBattleground())
{

View File

@ -18,7 +18,7 @@ public:
: Action(botAI, name) {}
bool Execute(Event event) override;
void LogRelease(const std::string& releaseType, bool isAutoRelease = false) const;
void LogRelease(const std::string& releaseType) const;
protected:
void IncrementDeathCount() const;

View File

@ -154,7 +154,7 @@ bool SayAction::isUseful()
return (time(nullptr) - lastSaid) > 30;
}
void ChatReplyAction::ChatReplyDo(Player* bot, uint32& type, uint32& guid1, uint32& guid2, std::string& msg, std::string& chanName, std::string& name)
void ChatReplyAction::ChatReplyDo(Player* bot, uint32& type, uint32& guid1, std::string& msg, std::string& chanName, std::string& name)
{
std::string respondsText = "";
@ -205,14 +205,14 @@ void ChatReplyAction::ChatReplyDo(Player* bot, uint32& type, uint32& guid1, uint
if (msg.starts_with(sPlayerbotAIConfig.toxicLinksPrefix)
&& (GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllItemIds(msg).size() > 0 || GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllQuestIds(msg).size() > 0))
{
HandleToxicLinksReply(bot, chatChannelSource, msg, name);
HandleToxicLinksReply(bot, chatChannelSource);
return;
}
//thunderfury
if (GET_PLAYERBOT_AI(bot)->GetChatHelper()->ExtractAllItemIds(msg).count(19019))
{
HandleThunderfuryReply(bot, chatChannelSource, msg, name);
HandleThunderfuryReply(bot, chatChannelSource);
return;
}
@ -220,7 +220,7 @@ void ChatReplyAction::ChatReplyDo(Player* bot, uint32& type, uint32& guid1, uint
SendGeneralResponse(bot, chatChannelSource, messageRepy, name);
}
bool ChatReplyAction::HandleThunderfuryReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name)
bool ChatReplyAction::HandleThunderfuryReply(Player* bot, ChatChannelSource chatChannelSource)
{
std::map<std::string, std::string> placeholders;
const auto thunderfury = sObjectMgr->GetItemTemplate(19019);
@ -248,7 +248,7 @@ bool ChatReplyAction::HandleThunderfuryReply(Player* bot, ChatChannelSource chat
return true;
}
bool ChatReplyAction::HandleToxicLinksReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name)
bool ChatReplyAction::HandleToxicLinksReply(Player* bot, ChatChannelSource chatChannelSource)
{
//quests
std::vector<uint32> incompleteQuests;

View File

@ -29,12 +29,12 @@ class ChatReplyAction : public Action
{
public:
ChatReplyAction(PlayerbotAI* ai) : Action(ai, "chat message") {}
virtual bool Execute(Event event) { return true; }
virtual bool Execute(Event /*event*/) { return true; }
bool isUseful() { return true; }
static void ChatReplyDo(Player* bot, uint32& type, uint32& guid1, uint32& guid2, std::string& msg, std::string& chanName, std::string& name);
static bool HandleThunderfuryReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name);
static bool HandleToxicLinksReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name);
static void ChatReplyDo(Player* bot, uint32& type, uint32& guid1, std::string& msg, std::string& chanName, std::string& name);
static bool HandleThunderfuryReply(Player* bot, ChatChannelSource chatChannelSource);
static bool HandleToxicLinksReply(Player* bot, ChatChannelSource chatChannelSource);
static bool HandleWTBItemsReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name);
static bool HandleLFGQuestsReply(Player* bot, ChatChannelSource chatChannelSource, std::string& msg, std::string& name);
static bool SendGeneralResponse(Player* bot, ChatChannelSource chatChannelSource, std::string& responseMessage, std::string& name);

View File

@ -15,7 +15,7 @@
std::set<uint32> const FISHING_SPELLS = {7620, 7731, 7732, 18248, 33095, 51294};
Creature* SeeSpellAction::CreateWps(Player* wpOwner, float x, float y, float z, float o, uint32 entry, Creature* lastWp,
Creature* SeeSpellAction::CreateWps(Player* wpOwner, float x, float y, float z, float o, uint32 entry, Creature* /*lastWp*/,
bool important)
{
float dist = wpOwner->GetDistance(x, y, z);

View File

@ -61,7 +61,7 @@ bool SummonAction::Execute(Event /*event*/)
if (!master)
return false;
if (Pet* pet = bot->GetPet())
if (bot->GetPet())
botAI->PetFollow();
if (master->GetSession()->GetSecurity() >= SEC_PLAYER)

View File

@ -11,7 +11,7 @@ public:
ChatCommandActionNodeFactoryInternal() { creators["tank attack chat shortcut"] = &tank_attack_chat_shortcut; }
private:
static ActionNode* tank_attack_chat_shortcut(PlayerbotAI* botAI)
static ActionNode* tank_attack_chat_shortcut(PlayerbotAI* /*botAI*/)
{
return new ActionNode("tank attack chat shortcut",
/*P*/ {},

View File

@ -64,11 +64,11 @@ std::vector<NextAction> AvoidAoeStrategy::getDefaultActions()
};
}
void AvoidAoeStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void AvoidAoeStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
}
void AvoidAoeStrategy::InitMultipliers(std::vector<Multiplier*>& multipliers)
void AvoidAoeStrategy::InitMultipliers(std::vector<Multiplier*>& /*multipliers*/)
{
}
@ -81,7 +81,7 @@ std::vector<NextAction> TankFaceStrategy::getDefaultActions()
};
}
void TankFaceStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void TankFaceStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
}

View File

@ -17,6 +17,6 @@ void DuelStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
DuelStrategy::DuelStrategy(PlayerbotAI* botAI) : PassTroughStrategy(botAI) {}
void StartDuelStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) {}
void StartDuelStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/) {}
StartDuelStrategy::StartDuelStrategy(PlayerbotAI* botAI) : Strategy(botAI) {}

View File

@ -12,6 +12,6 @@ std::vector<NextAction> FollowMasterStrategy::getDefaultActions()
};
}
void FollowMasterStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void FollowMasterStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
}

View File

@ -12,4 +12,4 @@ std::vector<NextAction> GuardStrategy::getDefaultActions()
};
}
void GuardStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) {}
void GuardStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/) {}

View File

@ -17,7 +17,7 @@ void CollisionStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
new TriggerNode("collision", { NextAction("move out of collision", 2.0f) }));
}
void MountStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void MountStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
}

View File

@ -7,4 +7,4 @@
RTSCStrategy::RTSCStrategy(PlayerbotAI* botAI) : Strategy(botAI) {}
void RTSCStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) {}
void RTSCStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/) {}

View File

@ -11,7 +11,7 @@ public:
RacialsStrategyActionNodeFactory() { creators["lifeblood"] = &lifeblood; }
private:
static ActionNode* lifeblood(PlayerbotAI* botAI)
static ActionNode* lifeblood(PlayerbotAI* /*botAI*/)
{
return new ActionNode("lifeblood",
/*P*/ {},

View File

@ -11,7 +11,7 @@ public:
UsePotionsStrategyActionNodeFactory() { creators["healthstone"] = &healthstone; }
private:
static ActionNode* healthstone(PlayerbotAI* botAI)
static ActionNode* healthstone(PlayerbotAI* /*botAI*/)
{
return new ActionNode("healthstone",
/*P*/ {},

View File

@ -19,6 +19,7 @@ WorldLocation ArrowFormation::GetLocationInternal()
uint32 tankLines = 1 + tanks.Size() / 6;
uint32 meleeLines = 1 + melee.Size() / 6;
uint32 rangedLines = 1 + ranged.Size() / 6;
//TODO Implement Healer Lines
uint32 healerLines = 1 + healers.Size() / 6;
float offset = 0.f;
@ -147,7 +148,7 @@ UnitPosition MultiLineUnitPlacer::Place(FormationUnit* unit, uint32 index, uint3
return placer.Place(unit, indexInLine, lineSize);
}
UnitPosition SingleLineUnitPlacer::Place(FormationUnit* unit, uint32 index, uint32 count)
UnitPosition SingleLineUnitPlacer::Place(FormationUnit* /*unit*/, uint32 index, uint32 count)
{
float angle = orientation - M_PI / 2.0f;
float x = cos(angle) * sPlayerbotAIConfig.followDistance * ((float)index - (float)count / 2);

View File

@ -20,7 +20,7 @@ public:
}
public:
void CheckAttacker(Unit* creature, ThreatManager* threatMgr) override
void CheckAttacker(Unit* creature, ThreatManager* /*threatMgr*/) override
{
Player* bot = botAI->GetBot();
if (!botAI->CanCastSpell(spell, creature))

View File

@ -13,7 +13,7 @@ public:
{
}
void CheckAttacker(Unit* attacker, ThreatManager* threatMgr) override
void CheckAttacker(Unit* attacker, ThreatManager* /*threatMgr*/) override
{
if (botAI->HasAura(spell, attacker))
result = attacker;

View File

@ -50,7 +50,7 @@ public:
result = nullptr;
}
void CheckAttacker(Unit* attacker, ThreatManager* threatMgr) override
void CheckAttacker(Unit* attacker, ThreatManager* /*threatMgr*/) override
{
if (Group* group = botAI->GetBot()->GetGroup())
{

View File

@ -11,8 +11,6 @@ std::vector<Item*> InventoryItemValueBase::Find(std::string const qualifier)
{
std::vector<Item*> result;
Player* bot = InventoryAction::botAI->GetBot();
std::vector<Item*> items = InventoryAction::parseItems(qualifier);
for (Item* item : items)
result.push_back(item);

View File

@ -17,7 +17,7 @@ class InventoryItemValueBase : public InventoryAction
public:
InventoryItemValueBase(PlayerbotAI* botAI) : InventoryAction(botAI, "empty") {}
bool Execute(Event event) override { return false; }
bool Execute(Event /*event*/) override { return false; }
protected:
std::vector<Item*> Find(std::string const qualifier);

View File

@ -864,8 +864,6 @@ bool ItemUsageValue::SpellGivesSkillUp(uint32 spellId, Player* bot)
{
uint32 SkillValue = bot->GetPureSkillValue(skill->SkillLine);
uint32 craft_skill_gain = sWorld->getIntConfig(CONFIG_SKILL_GAIN_CRAFTING);
if (SkillGainChance(SkillValue, skill->TrivialSkillLineRankHigh,
(skill->TrivialSkillLineRankHigh + skill->TrivialSkillLineRankLow) / 2,
skill->TrivialSkillLineRankLow) > 0)

View File

@ -13,7 +13,7 @@ class FindLeastHpTargetStrategy : public FindNonCcTargetStrategy
public:
FindLeastHpTargetStrategy(PlayerbotAI* botAI) : FindNonCcTargetStrategy(botAI), minHealth(0) {}
void CheckAttacker(Unit* attacker, ThreatManager* threatMgr) override
void CheckAttacker(Unit* attacker, ThreatManager* /*threatMgr*/) override
{
if (IsCcTarget(attacker))
return;

View File

@ -60,7 +60,7 @@ public:
class AllLootStrategy : public LootStrategy
{
public:
bool CanLoot(ItemTemplate const* proto, AiObjectContext* context) override { return true; }
bool CanLoot(ItemTemplate const* /*proto*/, AiObjectContext* /*context*/) override { return true; }
std::string const GetName() override { return "all"; }
};

View File

@ -28,4 +28,4 @@ void NearestCorpsesValue::FindUnits(std::list<Unit*>& targets)
Cell::VisitObjects(bot, searcher, range);
}
bool NearestCorpsesValue::AcceptUnit(Unit* unit) { return true; }
bool NearestCorpsesValue::AcceptUnit(Unit* /*unit*/) { return true; }

View File

@ -27,7 +27,7 @@ Unit* PartyMemberValue::FindPartyMember(std::vector<Player*>* party, FindPlayerP
return nullptr;
}
Unit* PartyMemberValue::FindPartyMember(FindPlayerPredicate& predicate, bool ignoreOutOfGroup)
Unit* PartyMemberValue::FindPartyMember(FindPlayerPredicate& predicate, bool /*ignoreOutOfGroup*/)
{
Player* master = GetMaster();
// GuidVector nearestPlayers;

View File

@ -49,7 +49,7 @@ class FindTankTargetSmartStrategy : public FindTargetStrategy
public:
FindTankTargetSmartStrategy(PlayerbotAI* botAI) : FindTargetStrategy(botAI) {}
void CheckAttacker(Unit* attacker, ThreatManager* threatMgr) override
void CheckAttacker(Unit* attacker, ThreatManager* /*threatMgr*/) override
{
if (Group* group = botAI->GetBot()->GetGroup())
{

View File

@ -161,7 +161,7 @@ Unit* FindTargetValue::Calculate()
return nullptr;
}
void FindBossTargetStrategy::CheckAttacker(Unit* attacker, ThreatManager* threatManager)
void FindBossTargetStrategy::CheckAttacker(Unit* attacker, ThreatManager* /*threatManager*/)
{
UnitAI* unitAI = attacker->GetAI();
BossAI* bossAI = dynamic_cast<BossAI*>(unitAI);

View File

@ -47,7 +47,7 @@ void GenericDKNonCombatStrategy::InitTriggers(std::vector<TriggerNode*>& trigger
new TriggerNode("bone shield", { NextAction("bone shield", 21.0f) }));
}
void DKBuffDpsStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void DKBuffDpsStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
}

View File

@ -311,4 +311,4 @@ void CatDpsDruidStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
);
}
void CatAoeDruidStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) {}
void CatAoeDruidStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/) {}

View File

@ -392,7 +392,7 @@ class CastExplosiveShotRank4Action : public CastExplosiveShotBaseAction
public:
CastExplosiveShotRank4Action(PlayerbotAI* botAI) :
CastExplosiveShotBaseAction(botAI) {}
bool Execute(Event event) override
bool Execute(Event /*event*/) override
{
return botAI->CastSpell(60053, GetTarget());
}
@ -412,7 +412,7 @@ class CastExplosiveShotRank3Action : public CastExplosiveShotBaseAction
public:
CastExplosiveShotRank3Action(PlayerbotAI* botAI) :
CastExplosiveShotBaseAction(botAI) {}
bool Execute(Event event) override
bool Execute(Event /*event*/) override
{
return botAI->CastSpell(60052, GetTarget());
}
@ -432,7 +432,7 @@ class CastExplosiveShotRank2Action : public CastExplosiveShotBaseAction
public:
CastExplosiveShotRank2Action(PlayerbotAI* botAI) :
CastExplosiveShotBaseAction(botAI) {}
bool Execute(Event event) override
bool Execute(Event /*event*/) override
{
return botAI->CastSpell(60051, GetTarget());
}
@ -452,7 +452,7 @@ class CastExplosiveShotRank1Action : public CastExplosiveShotBaseAction
public:
CastExplosiveShotRank1Action(PlayerbotAI* botAI) :
CastExplosiveShotBaseAction(botAI) {}
bool Execute(Event event) override
bool Execute(Event /*event*/) override
{
return botAI->CastSpell(53301, GetTarget());
}

View File

@ -54,7 +54,7 @@ void PaladinCureStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ NextAction("cleanse magic on party", ACTION_DISPEL + 1) }));
}
void PaladinBoostStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void PaladinBoostStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
// triggers.push_back(new TriggerNode("divine favor", { NextAction("divine favor",

View File

@ -124,12 +124,12 @@ void AoEWarlockStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
);
}
void WarlockBoostStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void WarlockBoostStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
// Placeholder for future boost triggers
}
void WarlockPetStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void WarlockPetStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
// Placeholder for future pet triggers
}

View File

@ -41,6 +41,6 @@ std::vector<NextAction> TankWarlockStrategy::getDefaultActions()
};
}
void TankWarlockStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
void TankWarlockStrategy::InitTriggers(std::vector<TriggerNode*>& /*triggers*/)
{
}

View File

@ -21,7 +21,7 @@ public:
}
private:
static ActionNode* charge(PlayerbotAI* botAI)
static ActionNode* charge(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"charge",
@ -31,7 +31,7 @@ private:
);
}
static ActionNode* death_wish(PlayerbotAI* botAI)
static ActionNode* death_wish(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"death wish",
@ -41,7 +41,7 @@ private:
);
}
static ActionNode* piercing_howl(PlayerbotAI* botAI)
static ActionNode* piercing_howl(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"piercing howl",
@ -51,7 +51,7 @@ private:
);
}
static ActionNode* mocking_blow(PlayerbotAI* botAI)
static ActionNode* mocking_blow(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"mocking blow",
@ -61,7 +61,7 @@ private:
);
}
static ActionNode* heroic_strike(PlayerbotAI* botAI)
static ActionNode* heroic_strike(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"heroic strike",
@ -71,7 +71,7 @@ private:
);
}
static ActionNode* enraged_regeneration(PlayerbotAI* botAI)
static ActionNode* enraged_regeneration(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"enraged regeneration",
@ -81,7 +81,7 @@ private:
);
}
static ActionNode* retaliation(PlayerbotAI* botAI)
static ActionNode* retaliation(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"retaliation",
@ -91,7 +91,7 @@ private:
);
}
static ActionNode* shattering_throw(PlayerbotAI* botAI)
static ActionNode* shattering_throw(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"shattering throw",

View File

@ -18,7 +18,7 @@ public:
}
private:
static ActionNode* charge(PlayerbotAI* botAI)
static ActionNode* charge(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"charge",
@ -28,7 +28,7 @@ private:
);
}
static ActionNode* intercept(PlayerbotAI* botAI)
static ActionNode* intercept(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"intercept",
@ -38,7 +38,7 @@ private:
);
}
static ActionNode* piercing_howl(PlayerbotAI* botAI)
static ActionNode* piercing_howl(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"piercing howl",
@ -48,7 +48,7 @@ private:
);
}
static ActionNode* pummel(PlayerbotAI* botAI)
static ActionNode* pummel(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"pummel",
@ -58,7 +58,7 @@ private:
);
}
static ActionNode* enraged_regeneration(PlayerbotAI* botAI)
static ActionNode* enraged_regeneration(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"enraged regeneration",

View File

@ -24,7 +24,7 @@ public:
}
private:
static ActionNode* heroic_throw_taunt(PlayerbotAI* botAI)
static ActionNode* heroic_throw_taunt(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"heroic throw",
@ -34,7 +34,7 @@ private:
);
}
static ActionNode* heroic_throw_on_snare_target(PlayerbotAI* botAI)
static ActionNode* heroic_throw_on_snare_target(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"heroic throw on snare target",
@ -44,7 +44,7 @@ private:
);
}
static ActionNode* last_stand(PlayerbotAI* botAI)
static ActionNode* last_stand(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"last stand",
@ -54,7 +54,7 @@ private:
);
}
static ActionNode* devastate(PlayerbotAI* botAI)
static ActionNode* devastate(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"devastate",
@ -64,7 +64,7 @@ private:
);
}
static ActionNode* commanding_shout(PlayerbotAI* botAI)
static ActionNode* commanding_shout(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"commanding shout",
@ -74,7 +74,7 @@ private:
);
}
static ActionNode* sunder_armor(PlayerbotAI* botAI)
static ActionNode* sunder_armor(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"sunder armor",
@ -84,7 +84,7 @@ private:
);
}
static ActionNode* charge(PlayerbotAI* botAI)
static ActionNode* charge(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"charge",
@ -94,7 +94,7 @@ private:
);
}
static ActionNode* taunt(PlayerbotAI* botAI)
static ActionNode* taunt(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"taunt",
@ -104,7 +104,7 @@ private:
);
}
static ActionNode* vigilance(PlayerbotAI* botAI)
static ActionNode* vigilance(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"vigilance",
@ -114,7 +114,7 @@ private:
);
}
static ActionNode* enraged_regeneration(PlayerbotAI* botAI)
static ActionNode* enraged_regeneration(PlayerbotAI* /*botAI*/)
{
return new ActionNode(
"enraged regeneration",

View File

@ -134,7 +134,7 @@ bool IckAndKrickAction::PoisonNova(bool poisonNova, Unit* boss)
return false;
}
bool IckAndKrickAction::ExplosiveBarrage(bool explosiveBarrage, Unit* boss)
bool IckAndKrickAction::ExplosiveBarrage(bool /*explosiveBarrage*/, Unit* boss)
{
std::vector<Unit*> orbs;
Unit* closestOrb = nullptr;

View File

@ -27,7 +27,7 @@ float IckAndKrickMultiplier::GetValue(Action* action)
return 1.0f;
}
float GarfrostMultiplier::GetValue(Action* action)
float GarfrostMultiplier::GetValue(Action* /*action*/)
{
Unit* boss = AI_VALUE2(Unit*, "find target", "garfrost");
if (!boss)

View File

@ -15,6 +15,6 @@ void WotlkDungeonToCStrategy::InitTriggers(std::vector<TriggerNode*> &triggers)
}
void WotlkDungeonToCStrategy::InitMultipliers(std::vector<Multiplier*> &multipliers)
void WotlkDungeonToCStrategy::InitMultipliers(std::vector<Multiplier*> &/*multipliers*/)
{
}

View File

@ -57,7 +57,7 @@ float HighKingMaulgarDisableArcaneShotOnKroshMultiplier::GetValue(Action* action
float HighKingMaulgarDisableMageTankAOEMultiplier::GetValue(Action* action)
{
if (IsKroshMageTank(botAI, bot) &&
if (IsKroshMageTank(bot) &&
(dynamic_cast<CastFrostNovaAction*>(action) || dynamic_cast<CastBlizzardAction*>(action) ||
dynamic_cast<CastConeOfColdAction*>(action) || dynamic_cast<CastFlamestrikeAction*>(action) ||
dynamic_cast<CastDragonsBreathAction*>(action) || dynamic_cast<CastBlastWaveAction*>(action)))

View File

@ -31,14 +31,14 @@ bool HighKingMaulgarIsMageTankTrigger::IsActive()
{
Unit* krosh = AI_VALUE2(Unit*, "find target", "krosh firehand");
return IsKroshMageTank(botAI, bot) && krosh;
return IsKroshMageTank(bot) && krosh;
}
bool HighKingMaulgarIsMoonkinTankTrigger::IsActive()
{
Unit* kiggler = AI_VALUE2(Unit*, "find target", "kiggler the crazed");
return IsKigglerMoonkinTank(botAI, bot) && kiggler;
return IsKigglerMoonkinTank(bot) && kiggler;
}
bool HighKingMaulgarDeterminingKillOrderTrigger::IsActive()
@ -53,8 +53,8 @@ bool HighKingMaulgarDeterminingKillOrderTrigger::IsActive()
!(botAI->IsMainTank(bot) && maulgar) &&
!(botAI->IsAssistTankOfIndex(bot, 0, false) && olm) &&
!(botAI->IsAssistTankOfIndex(bot, 1, false) && blindeye) &&
!(IsKroshMageTank(botAI, bot) && krosh) &&
!(IsKigglerMoonkinTank(botAI, bot) && kiggler);
!(IsKroshMageTank(bot) && krosh) &&
!(IsKigglerMoonkinTank(bot) && kiggler);
}
bool HighKingMaulgarHealerInDangerTrigger::IsActive()

View File

@ -39,7 +39,7 @@ namespace GruulsLairHelpers
return false;
}
bool IsKroshMageTank(PlayerbotAI* botAI, Player* bot)
bool IsKroshMageTank(Player* bot)
{
Group* group = bot->GetGroup();
if (!group)
@ -79,7 +79,7 @@ namespace GruulsLairHelpers
return highestHpMage == bot;
}
bool IsKigglerMoonkinTank(PlayerbotAI* botAI, Player* bot)
bool IsKigglerMoonkinTank(Player* bot)
{
Group* group = bot->GetGroup();
if (!group)

View File

@ -29,8 +29,8 @@ namespace GruulsLairHelpers
constexpr uint32 GRUULS_LAIR_MAP_ID = 565;
bool IsAnyOgreBossAlive(PlayerbotAI* botAI);
bool IsKroshMageTank(PlayerbotAI* botAI, Player* bot);
bool IsKigglerMoonkinTank(PlayerbotAI* botAI, Player* bot);
bool IsKroshMageTank(Player* bot);
bool IsKigglerMoonkinTank(Player* bot);
bool IsPositionSafe(PlayerbotAI* botAI, Player* bot, Position pos);
bool TryGetNewSafePosition(PlayerbotAI* botAI, Player* bot, Position& outPos);

View File

@ -1998,10 +1998,10 @@ bool IccRotfaceGroupPositionAction::PositionRangedAndHealers(Unit* boss,Unit *sm
if (!isHeroic)
return false;
return FindAndMoveFromClosestMember(boss, smallOoze);
return FindAndMoveFromClosestMember(smallOoze);
}
bool IccRotfaceGroupPositionAction::FindAndMoveFromClosestMember(Unit* boss, Unit* smallOoze)
bool IccRotfaceGroupPositionAction::FindAndMoveFromClosestMember(Unit* smallOoze)
{
const GuidVector npcs = AI_VALUE(GuidVector, "nearest hostile npcs");
@ -6925,7 +6925,7 @@ bool IccLichKingWinterAction::Execute(Event /*event*/)
isVictim = true;
// First priority: Get out of Defile if we're in one
if (!IsPositionSafeFromDefile(bot->GetPositionX(), bot->GetPositionY(), bot->GetPositionZ(), 3.0f))
if (!IsPositionSafeFromDefile(bot->GetPositionX(), bot->GetPositionY(), 3.0f))
{
// Find nearest safe position (use tank position as fallback)
const Position* safePos = botAI->IsTank(bot) ? GetMainTankPosition() : GetMainTankRangedPosition();
@ -7124,7 +7124,7 @@ const Position* IccLichKingWinterAction::GetMainTankRangedPosition()
return &ICC_LK_FROSTR3_POSITION;
}
bool IccLichKingWinterAction::IsPositionSafeFromDefile(float x, float y, float z, float minSafeDistance)
bool IccLichKingWinterAction::IsPositionSafeFromDefile(float x, float y, float minSafeDistance)
{
Unit* boss = AI_VALUE2(Unit*, "find target", "the lich king");
if (!boss)
@ -7190,7 +7190,7 @@ bool IccLichKingWinterAction::TryMoveToPosition(float targetX, float targetY, fl
dy /= distance;
// First check if direct path is safe
if (bot->IsWithinLOS(targetX, targetY, targetZ) && IsPositionSafeFromDefile(targetX, targetY, targetZ, 3.0f))
if (bot->IsWithinLOS(targetX, targetY, targetZ) && IsPositionSafeFromDefile(targetX, targetY, 3.0f))
{
if (isForced)
botAI->Reset();
@ -7221,7 +7221,7 @@ bool IccLichKingWinterAction::TryMoveToPosition(float targetX, float targetY, fl
float testY = currentY + dy * attemptDistance + offsetY * direction;
float testZ = targetZ;
if (bot->IsWithinLOS(testX, testY, testZ) && IsPositionSafeFromDefile(testX, testY, testZ, 3.0f))
if (bot->IsWithinLOS(testX, testY, testZ) && IsPositionSafeFromDefile(testX, testY, 3.0f))
{
if (isForced)
botAI->Reset();
@ -7271,7 +7271,7 @@ void IccLichKingWinterAction::HandleTankPositioning()
const Position* targetPos = GetMainTankPosition();
// First check if current position is safe
if (!IsPositionSafeFromDefile(bot->GetPositionX(), bot->GetPositionY(), bot->GetPositionZ(), 3.0f))
if (!IsPositionSafeFromDefile(bot->GetPositionX(), bot->GetPositionY(), 3.0f))
{
// If in defile, prioritize getting out
TryMoveToPosition(targetPos->GetPositionX(), targetPos->GetPositionY(), 840.857f, true);
@ -7295,7 +7295,7 @@ void IccLichKingWinterAction::HandleTankPositioning()
}
// Once in position, handle add management from tank position
HandleMainTankAddManagement(boss, targetPos);
HandleMainTankAddManagement(targetPos);
}
// ASSIST TANK: More flexible positioning based on add collection
else if (botAI->IsAssistTank(bot))
@ -7312,7 +7312,7 @@ void IccLichKingWinterAction::HandleTankPositioning()
}
// Handle assist tank add collection and positioning
HandleAssistTankAddManagement(boss, targetPos);
HandleAssistTankAddManagement(targetPos);
}
}
@ -7405,7 +7405,7 @@ void IccLichKingWinterAction::HandleRangedPositioning()
const Position* targetPos = GetMainTankRangedPosition();
// First check if current position is safe
if (!IsPositionSafeFromDefile(bot->GetPositionX(), bot->GetPositionY(), bot->GetPositionZ(), 3.0f))
if (!IsPositionSafeFromDefile(bot->GetPositionX(), bot->GetPositionY(), 3.0f))
{
// If in defile, prioritize getting out
TryMoveToPosition(targetPos->GetPositionX(), targetPos->GetPositionY(), 840.857f, true);
@ -7484,7 +7484,7 @@ void IccLichKingWinterAction::HandleRangedPositioning()
}
}
void IccLichKingWinterAction::HandleMainTankAddManagement(Unit* boss, const Position* tankPos)
void IccLichKingWinterAction::HandleMainTankAddManagement(const Position* tankPos)
{
if (!botAI->IsMainTank(bot))
return;
@ -7607,7 +7607,7 @@ void IccLichKingWinterAction::HandleMainTankAddManagement(Unit* boss, const Posi
}
}
void IccLichKingWinterAction::HandleAssistTankAddManagement(Unit* boss, const Position* tankPos)
void IccLichKingWinterAction::HandleAssistTankAddManagement(const Position* tankPos)
{
if (!botAI->IsAssistTank(bot))
return;
@ -7812,7 +7812,7 @@ bool IccLichKingAddsAction::Execute(Event /*event*/)
return true;
// Handle shambling horror interactions
HandleShamblingHorrors(boss, hasPlague);
HandleShamblingHorrors();
// Handle assist tank add management
if (HandleAssistTankAddManagement(boss, diff))
@ -8251,7 +8251,7 @@ bool IccLichKingAddsAction::HandleQuakeMechanics(Unit* boss)
return false;
}
void IccLichKingAddsAction::HandleShamblingHorrors(Unit* boss, bool hasPlague)
void IccLichKingAddsAction::HandleShamblingHorrors()
{
// Find closest shambling horror
GuidVector npcs2 = AI_VALUE(GuidVector, "nearest hostile npcs");

View File

@ -286,7 +286,7 @@ public:
bool HandleOozeTargeting();
bool HandleOozeMemberPositioning();
bool PositionRangedAndHealers(Unit* boss,Unit* smallOoze);
bool FindAndMoveFromClosestMember(Unit* boss, Unit* smallOoze);
bool FindAndMoveFromClosestMember(Unit* smallOoze);
};
class IccRotfaceMoveAwayFromExplosionAction : public MovementAction
@ -623,12 +623,12 @@ class IccLichKingWinterAction : public AttackAction
void HandlePositionCorrection();
bool IsValidCollectibleAdd(Unit* unit);
bool IsPositionSafeFromDefile(float x, float y, float z, float minSafeDistance);
bool IsPositionSafeFromDefile(float x, float y, float minSafeDistance);
void HandleTankPositioning();
void HandleMeleePositioning();
void HandleRangedPositioning();
void HandleMainTankAddManagement(Unit* boss, const Position* tankPos);
void HandleAssistTankAddManagement(Unit* boss, const Position* tankPos);
void HandleMainTankAddManagement(const Position* tankPos);
void HandleAssistTankAddManagement(const Position* tankPos);
private:
const Position* GetMainTankPosition();
@ -648,7 +648,7 @@ class IccLichKingAddsAction : public AttackAction
void HandleHeroicNonTankPositioning(Difficulty diff, Unit* terenasMenethilHC);
void HandleSpiritMarkingAndTargeting(Difficulty diff, Unit* terenasMenethilHC);
bool HandleQuakeMechanics(Unit* boss);
void HandleShamblingHorrors(Unit* boss, bool hasPlague);
void HandleShamblingHorrors();
bool HandleAssistTankAddManagement(Unit* boss, Difficulty diff);
void HandleMeleePositioning(Unit* boss, bool hasPlague, Difficulty diff);
void HandleMainTankTargeting(Unit* boss, Difficulty diff);

View File

@ -559,7 +559,7 @@ bool IccBqlVampiricBiteTrigger::IsActive()
bool IccValkyreSpearTrigger::IsActive()
{
// Check if there's a spear nearby
if (Creature* spear = bot->FindNearestCreature(NPC_SPEAR, 100.0f))
if (bot->FindNearestCreature(NPC_SPEAR, 100.0f))
return true;
return false;

View File

@ -744,7 +744,7 @@ bool NetherspiteBlockBlueBeamAction::Execute(Event /*event*/)
float candidateX = bx + dx * dist;
float candidateY = by + dy * dist;
float candidateZ = bz;
if (!IsSafePosition(candidateX, candidateY, candidateZ, voidZones, 4.0f))
if (!IsSafePosition(candidateX, candidateY, voidZones, 4.0f))
continue;
float distToIdeal = fabs(dist - idealDistance);
@ -836,7 +836,7 @@ bool NetherspiteBlockGreenBeamAction::Execute(Event /*event*/)
float candidateX = bx + dx * dist;
float candidateY = by + dy * dist;
float candidateZ = bz;
if (!IsSafePosition(candidateX, candidateY, candidateZ, voidZones, 4.0f))
if (!IsSafePosition(candidateX, candidateY, voidZones, 4.0f))
continue;
float distToIdeal = fabs(dist - 18.0f);
@ -873,7 +873,7 @@ bool NetherspiteAvoidBeamAndVoidZoneAction::Execute(Event /*event*/)
std::vector<Unit*> voidZones = GetAllVoidZones(botAI, bot);
bool nearVoidZone = !IsSafePosition(bot->GetPositionX(), bot->GetPositionY(),
bot->GetPositionZ(), voidZones, 4.0f);
voidZones, 4.0f);
std::vector<BeamAvoid> beams;
Unit* redPortal = bot->FindNearestCreature(NPC_RED_PORTAL, 150.0f);
@ -922,7 +922,7 @@ bool NetherspiteAvoidBeamAndVoidZoneAction::Execute(Event /*event*/)
float cy = botY + std::sin(angle) * dist;
float cz = netherspiteZ;
if (!IsSafePosition(cx, cy, cz, voidZones, 4.0f) ||
if (!IsSafePosition(cx, cy, voidZones, 4.0f) ||
!IsAwayFromBeams(cx, cy, beams, netherspite))
continue;

View File

@ -272,7 +272,7 @@ namespace KarazhanHelpers
return voidZones;
}
bool IsSafePosition(float x, float y, float z, const std::vector<Unit*>& hazards, float hazardRadius)
bool IsSafePosition(float x, float y, const std::vector<Unit*>& hazards, float hazardRadius)
{
for (Unit* hazard : hazards)
{
@ -351,7 +351,7 @@ namespace KarazhanHelpers
destX, destY, destZ, true))
continue;
if (!IsSafePosition(destX, destY, destZ, hazards, safeDistance))
if (!IsSafePosition(destX, destY, hazards, safeDistance))
continue;
if (requireSafePath)

View File

@ -116,7 +116,7 @@ namespace KarazhanHelpers
std::vector<Player*> GetGreenBlockers(PlayerbotAI* botAI, Player* bot);
std::tuple<Player*, Player*, Player*> GetCurrentBeamBlockers(PlayerbotAI* botAI, Player* bot);
std::vector<Unit*> GetAllVoidZones(PlayerbotAI *botAI, Player* bot);
bool IsSafePosition (float x, float y, float z, const std::vector<Unit*>& hazards, float hazardRadius);
bool IsSafePosition (float x, float y, const std::vector<Unit*>& hazards, float hazardRadius);
std::vector<Unit*> GetSpawnedInfernals(PlayerbotAI* botAI);
bool IsStraightPathSafe(
const Position& start, const Position& target,

View File

@ -499,7 +499,7 @@ bool MagtheridonUseManticronCubeAction::Execute(Event /*event*/)
return false;
// Release cubes after Blast Nova is interrupted
if (HandleCubeRelease(magtheridon, cube))
if (HandleCubeRelease(magtheridon))
return true;
// Check if cube logic should be active (49+ second rule)
@ -520,7 +520,7 @@ bool MagtheridonUseManticronCubeAction::Execute(Event /*event*/)
return false;
}
bool MagtheridonUseManticronCubeAction::HandleCubeRelease(Unit* magtheridon, GameObject* cube)
bool MagtheridonUseManticronCubeAction::HandleCubeRelease(Unit* magtheridon)
{
if (bot->HasAura(SPELL_SHADOW_GRASP) &&
!(magtheridon->HasUnitState(UNIT_STATE_CASTING) &&

View File

@ -81,7 +81,7 @@ public:
bool Execute(Event event) override;
private:
bool HandleCubeRelease(Unit* magtheridon, GameObject* cube);
bool HandleCubeRelease(Unit* magtheridon);
bool ShouldActivateCubeLogic(Unit* magtheridon);
bool HandleWaitingPhase(const MagtheridonHelpers::CubeInfo& cubeInfo);
bool HandleCubeInteraction(const MagtheridonHelpers::CubeInfo& cubeInfo, GameObject* cube);

View File

@ -118,7 +118,7 @@ namespace MagtheridonHelpers
std::unordered_map<uint32, time_t> spreadWaitTimer;
std::unordered_map<uint32, time_t> dpsWaitTimer;
bool IsSafeFromMagtheridonHazards(PlayerbotAI* botAI, Player* bot, float x, float y, float z)
bool IsSafeFromMagtheridonHazards(PlayerbotAI* botAI, Player* /*bot*/, float x, float y, float /*z*/)
{
// Debris
std::vector<Unit*> debrisHazards;

View File

@ -24,7 +24,7 @@ void RaidOnyxiaStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
"ony whelps spawn", { NextAction("ony kill whelps", ACTION_RAID + 1) }));
}
void RaidOnyxiaStrategy::InitMultipliers(std::vector<Multiplier*>& multipliers)
void RaidOnyxiaStrategy::InitMultipliers(std::vector<Multiplier*>& /*multipliers*/)
{
// Empty for now
}

View File

@ -1466,16 +1466,16 @@ bool MorogrimTidewalkerMoveBossToTankPositionAction::Execute(Event /*event*/)
if (tidewalker->GetVictim() == bot && bot->IsWithinMeleeRange(tidewalker))
{
if (tidewalker->GetHealthPct() > 26.0f)
return MoveToPhase1TankPosition(tidewalker);
return MoveToPhase1TankPosition();
else
return MoveToPhase2TankPosition(tidewalker);
return MoveToPhase2TankPosition();
}
return false;
}
// Phase 1: tank position is up against the Northeast pillar
bool MorogrimTidewalkerMoveBossToTankPositionAction::MoveToPhase1TankPosition(Unit* tidewalker)
bool MorogrimTidewalkerMoveBossToTankPositionAction::MoveToPhase1TankPosition()
{
const Position& phase1 = TIDEWALKER_PHASE_1_TANK_POSITION;
float distToPhase1 = bot->GetExactDist2d(phase1.GetPositionX(), phase1.GetPositionY());
@ -1495,7 +1495,7 @@ bool MorogrimTidewalkerMoveBossToTankPositionAction::MoveToPhase1TankPosition(Un
}
// Phase 2: move in two steps to get around the pillar and back up into the Northeast corner
bool MorogrimTidewalkerMoveBossToTankPositionAction::MoveToPhase2TankPosition(Unit* tidewalker)
bool MorogrimTidewalkerMoveBossToTankPositionAction::MoveToPhase2TankPosition()
{
const Position& phase2 = TIDEWALKER_PHASE_2_TANK_POSITION;
const Position& transition = TIDEWALKER_PHASE_TRANSITION_WAYPOINT;
@ -2151,7 +2151,7 @@ bool LadyVashjPassTheTaintedCoreAction::Execute(Event /*event*/)
{
// Passer order: HealAssistantOfIndex 0, 1, 2, then RangedDpsAssistantOfIndex 0
if (bot == firstCorePasser &&
LineUpFirstCorePasser(designatedLooter, closestTrigger))
LineUpFirstCorePasser(designatedLooter))
{
return true;
}
@ -2176,7 +2176,7 @@ bool LadyVashjPassTheTaintedCoreAction::Execute(Event /*event*/)
// Designated core looter logic
// Applicable only if cheat mode is on and thus looter is a bot
if (bot == designatedLooter &&
IsFirstCorePasserInPosition(designatedLooter, firstCorePasser, closestTrigger))
IsFirstCorePasserInPosition(firstCorePasser))
{
const time_t now = std::time(nullptr);
auto it = lastImbueAttempt.find(instanceId);
@ -2192,7 +2192,7 @@ bool LadyVashjPassTheTaintedCoreAction::Execute(Event /*event*/)
// First core passer: receive core from looter at the top of the stairs,
// pass to second core passer
else if (bot == firstCorePasser &&
IsSecondCorePasserInPosition(firstCorePasser, secondCorePasser, closestTrigger))
IsSecondCorePasserInPosition(secondCorePasser))
{
const time_t now = std::time(nullptr);
auto it = lastImbueAttempt.find(instanceId);
@ -2209,7 +2209,7 @@ bool LadyVashjPassTheTaintedCoreAction::Execute(Event /*event*/)
// of the first passer, move to the generator; otherwise, move as close as
// possible to the generator while staying in passing range
else if (bot == secondCorePasser && !UseCoreOnNearestGenerator(instanceId) &&
IsThirdCorePasserInPosition(secondCorePasser, thirdCorePasser, closestTrigger))
IsThirdCorePasserInPosition(thirdCorePasser))
{
const time_t now = std::time(nullptr);
auto it = lastImbueAttempt.find(instanceId);
@ -2226,7 +2226,7 @@ bool LadyVashjPassTheTaintedCoreAction::Execute(Event /*event*/)
// of the second passer, move to the generator; otherwise, move as close as
// possible to the generator while staying in passing range
else if (bot == thirdCorePasser && !UseCoreOnNearestGenerator(instanceId) &&
IsFourthCorePasserInPosition(thirdCorePasser, fourthCorePasser, closestTrigger))
IsFourthCorePasserInPosition(fourthCorePasser))
{
const time_t now = std::time(nullptr);
auto it = lastImbueAttempt.find(instanceId);
@ -2249,7 +2249,7 @@ bool LadyVashjPassTheTaintedCoreAction::Execute(Event /*event*/)
}
bool LadyVashjPassTheTaintedCoreAction::LineUpFirstCorePasser(
Player* designatedLooter, Unit* closestTrigger)
Player* designatedLooter)
{
const float centerX = VASHJ_PLATFORM_CENTER_POSITION.GetPositionX();
const float centerY = VASHJ_PLATFORM_CENTER_POSITION.GetPositionY();
@ -2288,8 +2288,6 @@ bool LadyVashjPassTheTaintedCoreAction::LineUpSecondCorePasser(
if (itFirst == intendedLineup.end())
return false;
const Position& firstLineup = itFirst->second;
auto itSecond = intendedLineup.find(bot->GetGUID());
if (itSecond == intendedLineup.end())
{
@ -2343,9 +2341,9 @@ bool LadyVashjPassTheTaintedCoreAction::LineUpThirdCorePasser(
Player* secondCorePasser, Unit* closestTrigger)
{
bool needThirdPasser =
(IsFirstCorePasserInPosition(designatedLooter, firstCorePasser, closestTrigger) &&
(IsFirstCorePasserInPosition(firstCorePasser) &&
firstCorePasser->GetExactDist2d(closestTrigger) > 42.0f) ||
(IsSecondCorePasserInPosition(firstCorePasser, secondCorePasser, closestTrigger) &&
(IsSecondCorePasserInPosition(secondCorePasser) &&
secondCorePasser->GetExactDist2d(closestTrigger) > 4.0f);
if (!needThirdPasser)
@ -2408,9 +2406,9 @@ bool LadyVashjPassTheTaintedCoreAction::LineUpFourthCorePasser(
Player* thirdCorePasser, Unit* closestTrigger)
{
bool needFourthPasser =
(IsSecondCorePasserInPosition(firstCorePasser, secondCorePasser, closestTrigger) &&
(IsSecondCorePasserInPosition(secondCorePasser) &&
secondCorePasser->GetExactDist2d(closestTrigger) > 42.0f) ||
(IsThirdCorePasserInPosition(secondCorePasser, thirdCorePasser, closestTrigger) &&
(IsThirdCorePasserInPosition(thirdCorePasser) &&
thirdCorePasser->GetExactDist2d(closestTrigger) > 4.0f);
if (!needFourthPasser)
@ -2460,8 +2458,7 @@ bool LadyVashjPassTheTaintedCoreAction::LineUpFourthCorePasser(
// The next four functions check if the respective passer is <= 2 yards of their intended
// position and are used to determine when the prior bot in the chain can pass the core
bool LadyVashjPassTheTaintedCoreAction::IsFirstCorePasserInPosition(
Player* designatedLooter, Player* firstCorePasser, Unit* closestTrigger)
bool LadyVashjPassTheTaintedCoreAction::IsFirstCorePasserInPosition(Player* firstCorePasser)
{
auto itSnap = intendedLineup.find(firstCorePasser->GetGUID());
if (itSnap != intendedLineup.end())
@ -2474,8 +2471,7 @@ bool LadyVashjPassTheTaintedCoreAction::IsFirstCorePasserInPosition(
return false;
}
bool LadyVashjPassTheTaintedCoreAction::IsSecondCorePasserInPosition(
Player* firstCorePasser, Player* secondCorePasser, Unit* closestTrigger)
bool LadyVashjPassTheTaintedCoreAction::IsSecondCorePasserInPosition(Player* secondCorePasser)
{
auto itSnap = intendedLineup.find(secondCorePasser->GetGUID());
if (itSnap != intendedLineup.end())
@ -2488,8 +2484,7 @@ bool LadyVashjPassTheTaintedCoreAction::IsSecondCorePasserInPosition(
return false;
}
bool LadyVashjPassTheTaintedCoreAction::IsThirdCorePasserInPosition(
Player* secondCorePasser, Player* thirdCorePasser, Unit* closestTrigger)
bool LadyVashjPassTheTaintedCoreAction::IsThirdCorePasserInPosition(Player* thirdCorePasser)
{
auto itSnap = intendedLineup.find(thirdCorePasser->GetGUID());
if (itSnap != intendedLineup.end())
@ -2502,8 +2497,7 @@ bool LadyVashjPassTheTaintedCoreAction::IsThirdCorePasserInPosition(
return false;
}
bool LadyVashjPassTheTaintedCoreAction::IsFourthCorePasserInPosition(
Player* thirdCorePasser, Player* fourthCorePasser, Unit* closestTrigger)
bool LadyVashjPassTheTaintedCoreAction::IsFourthCorePasserInPosition(Player* fourthCorePasser)
{
auto itSnap = intendedLineup.find(fourthCorePasser->GetGUID());
if (itSnap != intendedLineup.end())

View File

@ -312,8 +312,8 @@ public:
bool Execute(Event event) override;
private:
bool MoveToPhase1TankPosition(Unit* tidewalker);
bool MoveToPhase2TankPosition(Unit* tidewalker);
bool MoveToPhase1TankPosition();
bool MoveToPhase2TankPosition();
};
class MorogrimTidewalkerPhase2RepositionRangedAction : public MovementAction
@ -414,14 +414,14 @@ public:
bool Execute(Event event) override;
private:
bool LineUpFirstCorePasser(Player* designatedLooter, Unit* closestTrigger);
bool LineUpFirstCorePasser(Player* designatedLooter);
bool LineUpSecondCorePasser(Player* firstCorePasser, Unit* closestTrigger);
bool LineUpThirdCorePasser(Player* designatedLooter, Player* firstCorePasser, Player* secondCorePasser, Unit* closestTrigger);
bool LineUpFourthCorePasser(Player* firstCorePasser, Player* secondCorePasser, Player* thirdCorePasser, Unit* closestTrigger);
bool IsFirstCorePasserInPosition(Player* designatedLooter, Player* firstCorePasser, Unit* closestTrigger);
bool IsSecondCorePasserInPosition(Player* firstCorePasser, Player* secondCorePasser, Unit* closestTrigger);
bool IsThirdCorePasserInPosition(Player* secondCorePasser, Player* thirdCorePasser, Unit* closestTrigger);
bool IsFourthCorePasserInPosition(Player* thirdCorePasser, Player* fourthCorePasser, Unit* closestTrigger);
bool IsFirstCorePasserInPosition(Player* firstCorePasser);
bool IsSecondCorePasserInPosition(Player* secondCorePasser);
bool IsThirdCorePasserInPosition(Player* thirdCorePasser);
bool IsFourthCorePasserInPosition(Player* fourthCorePasser);
void ScheduleTransferCoreAfterImbue(PlayerbotAI* botAI, Player* giver, Player* receiver);
bool UseCoreOnNearestGenerator(const uint32 instanceId);
};

View File

@ -690,13 +690,11 @@ float LadyVashjCorePassersPrioritizePositioningMultiplier::GetValue(Action* acti
auto coreHandlers = GetCoreHandlers(botAI, bot);
bool isCoreHandler = false;
int myIndex = -1;
for (int i = 0; i < static_cast<int>(coreHandlers.size()); ++i)
{
if (coreHandlers[i] && coreHandlers[i] == bot)
{
isCoreHandler = true;
myIndex = i;
}
}
if (!isCoreHandler)

View File

@ -213,7 +213,7 @@ bool AlarAssistTanksPickUpEmbersAction::Execute(Event /*event*/)
if (!isAlarInPhase2[alar->GetMap()->GetInstanceId()])
return HandlePhase1Embers(alar);
else
return HandlePhase2Embers(alar);
return HandlePhase2Embers();
}
// Embers will be tanked by only the second assist tank in Phase 1
@ -275,7 +275,7 @@ bool AlarAssistTanksPickUpEmbersAction::HandlePhase1Embers(Unit* alar)
// One Ember will be tanked by the second assist tank in Phase 2, and the other by
// the main tank or first assist tank (whichever is not tanking Al'ar)
bool AlarAssistTanksPickUpEmbersAction::HandlePhase2Embers(Unit* alar)
bool AlarAssistTanksPickUpEmbersAction::HandlePhase2Embers()
{
auto [firstEmber, secondEmber] = GetFirstTwoEmbersOfAlar(botAI);

View File

@ -66,7 +66,7 @@ public:
private:
bool HandlePhase1Embers(Unit* alar);
bool HandlePhase2Embers(Unit* alar);
bool HandlePhase2Embers();
};
class AlarRangedDpsPrioritizeEmbersAction : public AttackAction

View File

@ -2332,7 +2332,6 @@ bool MimironRocketStrikeAction::isUseful()
bool MimironRocketStrikeAction::Execute(Event /*event*/)
{
Unit* leviathanMkII = nullptr;
Unit* vx001 = nullptr;
Unit* aerialCommandUnit = nullptr;
@ -2344,9 +2343,7 @@ bool MimironRocketStrikeAction::Execute(Event /*event*/)
if (!target || !target->IsAlive())
continue;
if (target->GetEntry() == NPC_LEVIATHAN_MKII)
leviathanMkII = target;
else if (target->GetEntry() == NPC_VX001)
if (target->GetEntry() == NPC_VX001)
vx001 = target;
else if (target->GetEntry() == NPC_AERIAL_COMMAND_UNIT)
aerialCommandUnit = target;

View File

@ -157,7 +157,7 @@ float JanalaiStayAwayFromFireBombsMultiplier::GetValue(Action* action)
if (!AI_VALUE2(Unit*, "find target", "jan'alai"))
return 1.0f;
if (!HasFireBombNearby(botAI, bot))
if (!HasFireBombNearby(bot))
return 1.0f;
if (dynamic_cast<CastReachTargetSpellAction*>(action) ||

View File

@ -108,7 +108,7 @@ bool JanalaiBossEngagedByTanksTrigger::IsActive()
!AI_VALUE2(Unit*, "find target", "jan'alai"))
return false;
return !HasFireBombNearby(botAI, bot);
return !HasFireBombNearby(bot);
}
bool JanalaiBossCastsFlameBreathTrigger::IsActive()
@ -118,13 +118,13 @@ bool JanalaiBossCastsFlameBreathTrigger::IsActive()
AI_VALUE2(Unit*, "find target", "amani dragonhawk hatchling"))
return false;
return !HasFireBombNearby(botAI, bot);
return !HasFireBombNearby(bot);
}
bool JanalaiBossSummoningFireBombsTrigger::IsActive()
{
return AI_VALUE2(Unit*, "find target", "jan'alai") &&
HasFireBombNearby(botAI, bot);
HasFireBombNearby(bot);
}
bool JanalaiAmanishiHatchersSpawnedTrigger::IsActive()

View File

@ -143,7 +143,7 @@ namespace ZulAmanHelpers
// Jan'alai <Dragonhawk Avatar>
const Position JANALAI_TANK_POSITION = { -33.873f, 1149.571f, 19.146f };
bool HasFireBombNearby(PlayerbotAI* botAI, Player* bot)
bool HasFireBombNearby(Player* bot)
{
constexpr float searchRadius = 30.0f;
std::list<Creature*> creatureList;

View File

@ -97,7 +97,7 @@ namespace ZulAmanHelpers
// Jan'alai <Dragonhawk Avatar>
extern const Position JANALAI_TANK_POSITION;
bool HasFireBombNearby(PlayerbotAI* botAI, Player* bot);
bool HasFireBombNearby(Player* bot);
std::pair<Unit*, Unit*> GetAmanishiHatcherPair(PlayerbotAI* botAI);
// Halazzi <Lynx Avatar>

View File

@ -138,7 +138,7 @@ void Engine::Init()
}
}
bool Engine::DoNextAction(Unit* unit, uint32 depth, bool minimal)
bool Engine::DoNextAction(Unit* /*unit*/, uint32 /*depth*/, bool minimal)
{
LogAction("--- AI Tick ---");

View File

@ -2230,8 +2230,6 @@ void PlayerbotFactory::InitEquipment(bool incremental, bool second_chance)
if (!CanEquipUnseenItem(slot, dest, bestItemForSlot))
continue;
Item* newItem = bot->EquipNewItem(dest, bestItemForSlot, true);
bot->EquipNewItem(dest, bestItemForSlot, true);
bot->AutoUnequipOffhandIfNeed();
}
@ -2393,7 +2391,7 @@ void PlayerbotFactory::InitBags(bool destroyOld)
if (old_bag)
continue;
Item* newItem = bot->EquipNewItem(dest, newItemId, true);
bot->EquipNewItem(dest, newItemId, true);
// if (newItem)
// {
// newItem->AddToWorld();
@ -4729,7 +4727,7 @@ void PlayerbotFactory::ApplyEnchantTemplate(uint8 spec)
// const SpellItemEnchantmentEntry* a = sSpellItemEnchantmentStore.LookupEntry(1);
}
void PlayerbotFactory::ApplyEnchantAndGemsNew(bool destroyOld)
void PlayerbotFactory::ApplyEnchantAndGemsNew(bool /*destroyOld*/)
{
//int32 bestGemEnchantId[4] = {-1, -1, -1, -1}; // 1, 2, 4, 8 color //not used, line marked for removal.
//float bestGemScore[4] = {0, 0, 0, 0}; //not used, line marked for removal.

View File

@ -491,7 +491,7 @@ void PlayerbotAI::UpdateAIInternal([[maybe_unused]] uint32 elapsed, bool minimal
continue;
}
ChatReplyAction::ChatReplyDo(bot, it->m_type, it->m_guid1, it->m_guid2, it->m_msg, it->m_chanName, it->m_name);
ChatReplyAction::ChatReplyDo(bot, it->m_type, it->m_guid1, it->m_msg, it->m_chanName, it->m_name);
it = chatReplies.erase(it);
}
@ -1811,7 +1811,7 @@ Strategy* PlayerbotAI::GetStrategy(std::string const name, BotState type)
return engines[type] ? engines[type]->GetStrategy(name) : nullptr;
}
void PlayerbotAI::ResetStrategies(bool load)
void PlayerbotAI::ResetStrategies(bool /*load*/)
{
for (uint8 i = 0; i < BOT_STATE_MAX; i++)
engines[i]->removeAllStrategies();

View File

@ -1667,7 +1667,7 @@ void PlayerbotMgr::TellError(std::string const botName, std::string const text)
errors[text] = names;
}
void PlayerbotMgr::CheckTellErrors(uint32 elapsed)
void PlayerbotMgr::CheckTellErrors(uint32 /*elapsed*/)
{
time_t now = time(nullptr);
if ((now - lastErrorTell) < sPlayerbotAIConfig.errorDelay / 1000)

View File

@ -278,7 +278,7 @@ void RandomPlayerbotMgr::LogPlayerLocation()
}
}
void RandomPlayerbotMgr::UpdateAIInternal(uint32 elapsed, bool /*minimal*/)
void RandomPlayerbotMgr::UpdateAIInternal(uint32 /*elapsed*/, bool /*minimal*/)
{
if (totalPmo)
totalPmo->finish();

View File

@ -65,7 +65,7 @@ void PlayerbotRepository::Save(PlayerbotAI* botAI)
SaveValue(guid, "dead", FormatStrategies("dead", botAI->GetStrategies(BOT_STATE_DEAD)));
}
std::string const PlayerbotRepository::FormatStrategies(std::string const type, std::vector<std::string> strategies)
std::string const PlayerbotRepository::FormatStrategies(std::string const /*type*/, std::vector<std::string> strategies)
{
std::ostringstream out;
for (std::vector<std::string>::iterator i = strategies.begin(); i != strategies.end(); ++i)

View File

@ -325,9 +325,6 @@ public:
FindMountVisitor(Player* bot) : FindUsableItemVisitor(bot) {}
bool Accept(ItemTemplate const* proto) override;
private:
uint32 effectId;
};
class FindPetVisitor : public FindUsableItemVisitor

View File

@ -176,7 +176,7 @@ RandomItemMgr::~RandomItemMgr()
predicates.clear();
}
bool RandomItemMgr::HandleConsoleCommand(ChatHandler* handler, char const* args)
bool RandomItemMgr::HandleConsoleCommand(ChatHandler* /*handler*/, char const* args)
{
if (!args || !*args)
{
@ -1823,7 +1823,7 @@ uint32 RandomItemMgr::GetUpgrade(Player* player, std::string spec, uint8 slot, u
}
std::vector<uint32> RandomItemMgr::GetUpgradeList(Player* player, std::string spec, uint8 slot, uint32 quality,
uint32 itemId, uint32 amount)
uint32 itemId, uint32 /*amount*/)
{
std::vector<uint32> listItems;
if (!player)

View File

@ -517,7 +517,7 @@ void StatsWeightCalculator::CalculateItemSetMod(Player* player, ItemTemplate con
weight_ *= multiplier;
}
void StatsWeightCalculator::CalculateSocketBonus(Player* player, ItemTemplate const* proto)
void StatsWeightCalculator::CalculateSocketBonus(Player* /*player*/, ItemTemplate const* proto)
{
uint32 socketNum = 0;
for (uint32 enchant_slot = SOCK_ENCHANTMENT_SLOT; enchant_slot < SOCK_ENCHANTMENT_SLOT + MAX_GEM_SOCKETS;

View File

@ -142,7 +142,7 @@ bool TalentSpec::CheckTalents(uint32 level, std::ostringstream* out)
}
// Set the talents for the bots to the current spec.
void TalentSpec::ApplyTalents(Player* bot, std::ostringstream* out)
void TalentSpec::ApplyTalents(Player* bot, std::ostringstream* /*out*/)
{
for (auto& entry : talents)
{
@ -397,7 +397,7 @@ uint32 TalentSpec::highestTree()
return 0;
}
std::string const TalentSpec::FormatSpec(Player* bot)
std::string const TalentSpec::FormatSpec(Player* /*bot*/)
{
// uint8 cls = bot->getClass(); //not used, (used in lined 403), line marked for removal.

View File

@ -226,7 +226,7 @@ public:
return true;
}
bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Guild* guild) override
bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 /*lang*/, std::string& msg, Guild* /*guild*/) override
{
if (type != CHAT_MSG_GUILD)
return true;
@ -445,7 +445,7 @@ public:
playerbotMgr->HandleMasterOutgoingPacket(*packet);
}
void OnPlayerbotUpdate(uint32 diff) override
void OnPlayerbotUpdate(uint32 /*diff*/) override
{
sRandomPlayerbotMgr.UpdateSessions(); // Per-bot updates only
}

View File

@ -39,7 +39,7 @@ bool ServerFacade::IsDistanceGreaterOrEqualThan(float dist1, float dist2) { retu
bool ServerFacade::IsDistanceLessOrEqualThan(float dist1, float dist2) { return !IsDistanceGreaterThan(dist1, dist2); }
void ServerFacade::SetFacingTo(Player* bot, WorldObject* wo, bool force)
void ServerFacade::SetFacingTo(Player* bot, WorldObject* wo, bool /*force*/)
{
if (!bot)
return;