aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatan Shukry <matanshukry@gmail.com>2021-03-07 12:17:04 +0200
committerGitHub <noreply@github.com>2021-03-07 11:17:04 +0100
commitc019d4f10c47612aea49a8b081f367df00ca7c97 (patch)
treeb46ec5ffbe6dc74a05d04784d8541b8db93b6967
parentb4aa698acb88e1a74bc22d97279148a567b88cad (diff)
Core/SAI: Don't require BaseObject when creating conversation from smart scripts (#26209)
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index ed45c8bfea8..05066012466 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -2365,18 +2365,17 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
}
case SMART_ACTION_CREATE_CONVERSATION:
{
- if (WorldObject* baseObject = GetBaseObject())
+ WorldObject* baseObject = GetBaseObject();
+
+ for (WorldObject* const target : targets)
{
- for (WorldObject* const target : targets)
+ if (Player* playerTarget = target->ToPlayer())
{
- if (Player* playerTarget = target->ToPlayer())
- {
- Conversation* conversation = Conversation::CreateConversation(e.action.conversation.id, playerTarget,
- *playerTarget, { playerTarget->GetGUID() }, nullptr);
- if (!conversation)
- TC_LOG_WARN("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_TALK_CONVERSATION: id %u, baseObject %s, target %s - failed to create",
- e.action.conversation.id, baseObject->GetName().c_str(), playerTarget->GetName().c_str());
- }
+ Conversation* conversation = Conversation::CreateConversation(e.action.conversation.id, playerTarget,
+ *playerTarget, { playerTarget->GetGUID() }, nullptr);
+ if (!conversation)
+ TC_LOG_WARN("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_CREATE_CONVERSATION: id %u, baseObject %s, target %s - failed to create conversation",
+ e.action.conversation.id, !baseObject ? "" : baseObject->GetName().c_str(), playerTarget->GetName().c_str());
}
}