fix(Core/SmartAI): camera-shake of flight 'Delicate Sound of Thunder' - #27140
fix(Core/SmartAI): camera-shake of flight 'Delicate Sound of Thunder'#27140sogladev wants to merge 2 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe change adds Mergeability Score: ⚪ Minimal · up to This localized core and database change adjusts the Iron Rune Construct’s flight behavior and associated SmartAI paths; no actionable merge-blocking risk remains beyond normal checks and review. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR aims to fix the camera shake during the Iron Rune Construct’s Rocket Jump “flight” in Howling Fjord by introducing an explicit “forced fly” movement mode in core movement code and applying it to the relevant SmartAI escort paths.
Changes:
- Add
FORCED_MOVEMENT_FLYto the coreForcedMovementenum. - Update
EscortMovementGeneratorto set flying spline flags when forced fly is requested. - Add pending world SQL revisions to (a) rewrite the construct’s SmartAI for the speed-buff timing change and (b) mark the six Rocket Jump escort paths as flying.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/server/game/Movement/MovementGenerators/EscortMovementGenerator.cpp |
Applies MoveSplineInit::SetFly() when escort movement is forced to fly. |
src/server/game/Movement/MotionMaster.h |
Introduces FORCED_MOVEMENT_FLY enum value. |
data/sql/updates/pending_db_world/rev_1786649573107.sql |
Marks the six Rocket Jump escort paths as “forced fly” (currently via partial UPDATE). |
data/sql/updates/pending_db_world/rev_1786648635519.sql |
Rewrites SmartAI block for the construct to make the speed buff atomic with the flight. |
Suppressed comments (2)
data/sql/updates/pending_db_world/rev_1786649573107.sql:10
- This file ends with a blank line (the linter treats any blank line at EOF as a failure:
apps/codestyle/codestyle-sql.pyflags it under the multiple-blank-lines check). Remove the trailing empty line so the file ends on the last SQL statement.
AND `action_param2` IN (24826, 24827, 24828, 24831, 24829, 24832);
data/sql/updates/pending_db_world/rev_1786648635519.sql:26
- This file ends with a blank line (the linter treats any blank line at EOF as a failure:
apps/codestyle/codestyle-sql.pyflags it under the multiple-blank-lines check). Remove the trailing empty line so the file ends on the last SQL statement.
(24825, 0, 18, 0, 28, 0, 100, 512, 0, 0, 0, 0, 0, 0, 28, 44626, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Passenger Removed - Remove Aura Rocket Jump');
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| UPDATE `smart_scripts` SET `action_param1` = 3 | ||
| WHERE `entryorguid` = 24825 AND `source_type` = 0 | ||
| AND `action_type` = 53 | ||
| AND `action_param2` IN (24826, 24827, 24828, 24831, 24829, 24832); |
| FORCED_MOVEMENT_NONE = 0, | ||
| FORCED_MOVEMENT_WALK = 1, | ||
| FORCED_MOVEMENT_RUN = 2, | ||
| FORCED_MOVEMENT_FLY = 3, | ||
|
|
Changes Proposed:
This PR proposes changes to:
Core changes to fix the camera shake during construct flight.
followup on:
AI-assisted Pull Requests
Important
Using AI tools to prepare pull requests is allowed, but it must be disclosed and it must follow our AC guidelines for AI Agentic Engineering (link below).
You are expected to fully understand the changes you submit and to be able to explain and justify them when maintainers ask.
Issues Addressed:
SOURCE:
The changes have been validated through:
Tests Performed:
This PR has been:
How to Test the Changes:
Known Issues and TODO List:
How to Test AzerothCore PRs
When a PR is ready to be tested, it will be marked as [WAITING TO BE TESTED].
You can help by testing PRs and writing your feedback here on the PR's page on GitHub. Follow the instructions here:
http://www.azerothcore.org/wiki/How-to-test-a-PR
REMEMBER: when testing a PR that changes something generic (i.e. a part of code that handles more than one specific thing), the tester should not only check that the PR does its job (e.g. fixing spell XXX) but especially check that the PR does not cause any regression (i.e. introducing new bugs).
For example: if a PR fixes spell X by changing a part of code that handles spells X, Y, and Z, we should not only test X, but we should test Y and Z as well.
Self-review — fix/howling-fjord-f1-construct-2 → f576227
Outcome 2 findings — 1 dismissed, 1 deferred — no fixes, round ended
Reviewed
a29da97894a(fix/howling-fjord-f1-construct-2vsf5762271275, merge-base diff — 3 files, +14 −0)By GitHub Copilot, DeepSeek V4 Pro — self-review v0.4, 2026-08-13
Review details (1 round)
Intent Fix the Rocket Jump on quest 11495 so the Iron Rune Construct (24825) flies along its jump path instead of falling: add a
FORCED_MOVEMENT_FLYmode and makeEscortMovementGeneratorset the Flying spline flag for it, and mark the six jump paths as flying in SmartAI.Project rules
.agents/docs/self-review-rules.mdfound and applied, on top of.agents/docs/code-review.md,cpp-guidelines.md,sql-guidelines.md.Round 1 —
a29da97894a, 2 findingsdata/sql/updates/pending_db_world/rev_1786649573107.sql:6— partialUPDATEonsmart_scriptsviolatessql-guidelines.md("never a partial UPDATE — fullDELETE+INSERTof the(entryorguid, source_type)pair") → dismissed: stacked-PR design — PR 1 (f5762271275) already owns the full block rewrite of(24825, 0); this follow-up keys onaction_type = 53+action_param2, stable in both the pre- and post-PR-1 blocks, is idempotent, and passescodestyle-sql.py. Fallback if a maintainer objects: foldaction_param1 = 3into PR 1's fullINSERT.fix(Core/SmartAI): camera-shake of flight 'Delicate Sound of Thunder'— the subject names a symptom, not the change (adds a fly movement mode and flags six jump paths as flying) → deferred: author to reword at PR time, e.g.fix(Core/SmartAI): make Iron Rune Construct fly along Rocket Jump escort paths.Verification (no findings): both linters pass;
FORCED_MOVEMENT_MAXconsumers (SmartScriptMgr.cppSTART_CLOSEST_WAYPOINT and ESCORT_START validations) accept3and route through the generator that handles FLY;SetFly()→EnableFlying()→ Flying spline flag written to the client, matching existingSetFly()precedents that do not also callSetSmooth(); theUPDATEWHEREmatches exactly the sixSMART_ACTION_ESCORT_STARTrows for(24825, 0);wpStart.forcedMovement/pathIDmap toaction_param1/action_param2.Testing notes: verify in-game that a Rocket Jump while stationary and while moving both land at the correct scaffolding level, the construct flies (not falls) along the path, and the camera does not stutter; confirm no +599% speed aura (44626) lingers after an interrupted jump, and that Bluff (44609), Iron Rune Aura (44652), Reputation and Language (44643), and "Launching." still behave.
Previous review — 21570-howling-fjord-rocket-jump (Part 2) → master
Outcome No findings — clean
Reviewed
rev_1786648635519.sql(uncommitted working-tree file, new file — 26 lines, DB/SmartAI only)By GitHub Copilot, DeepSeek V4 Pro — self-review v0.4, 2026-08-13
Review details (1 round)
Intent Quest 11495 ("The Delicate Sound of Thunder") Part 2: make the Iron Rune Construct's (24825) Rocket Jump speed buff (spell 44626) atomic with the flight — applied by the same SmartAI chain that starts the escort path, removed when the escort stops or the passenger leaves — instead of riding the launch spell for its full 60 s.
Project rules
.agents/docs/self-review-rules.mdpresent and applied (with.agents/docs/code-review.md,sql-guidelines.md,cpp-scripts.md)Round 1 —
rev_1786648635519.sql(working tree), cleanNo findings.
Notes (not findings):
rev_1786649573107.sql(Part 1) is a separate pending revision thatUPDATEsaction_param1to 3 (fly) on the sameSMART_ACTION_ESCORT_STARTrows this file inserts withaction_param12. It documents being applied on top of Part 2; timestamp order (…5519 < …3107) makes that true. Layering is correct, not a duplicate or conflict.