diff options
author | jackpoz <giacomopoz@gmail.com> | 2021-07-18 22:01:24 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2021-07-18 22:01:24 +0200 |
commit | 60379cf2c15d9cee1414fbaec2b217b89b8dc67e (patch) | |
tree | 376b571ef4daace9ca7d3d450c39439ae585ee6a /src | |
parent | d1e913162e0a96918c70ba4ec3f62f4186ee4707 (diff) |
Core/SAI: Temporarily allow SMART_ACTION_WP_START to specify parameter value 3 for reactState
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 4 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.cpp | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 885b7ad0db7..b8969840a62 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1444,7 +1444,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u } } - me->SetReactState((ReactStates)e.action.wpStart.reactState); + // Extra validation to ignore invalid values stored in the db, see comment at TEMPORARY_EXTRA_VALUE_FOR_DB_CLEANUP definition + if (e.action.wpStart.reactState <= REACT_AGGRESSIVE) + me->SetReactState((ReactStates)e.action.wpStart.reactState); ENSURE_AI(SmartAI, me->AI())->StartPath(run, entry, repeat, unit); uint32 quest = e.action.wpStart.quest; diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 80d119dffa5..dfeaf6c4a73 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -1818,7 +1818,12 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) } if (e.action.wpStart.quest && !IsQuestValid(e, e.action.wpStart.quest)) return false; - if (e.action.wpStart.reactState > REACT_AGGRESSIVE) + + // Allow "invalid" value 3 for a while to allow cleanup the values stored in the db for SMART_ACTION_WP_START. + // Remember to remove this once the clean is complete. + constexpr uint32 TEMPORARY_EXTRA_VALUE_FOR_DB_CLEANUP = 1; + + if (e.action.wpStart.reactState > (REACT_AGGRESSIVE + TEMPORARY_EXTRA_VALUE_FOR_DB_CLEANUP)) { TC_LOG_ERROR("sql.sql", "SmartAIMgr: Creature %d Event %u Action %u uses invalid React State %u, skipped.", e.entryOrGuid, e.event_id, e.GetActionType(), e.action.wpStart.reactState); return false; |