Skip to content

fix(Core/SmartAI): camera-shake of flight 'Delicate Sound of Thunder' - #27140

Open
sogladev wants to merge 2 commits into
azerothcore:masterfrom
sogladev:fix/howling-fjord-f1-construct-2
Open

fix(Core/SmartAI): camera-shake of flight 'Delicate Sound of Thunder'#27140
sogladev wants to merge 2 commits into
azerothcore:masterfrom
sogladev:fix/howling-fjord-f1-construct-2

Conversation

@sogladev

Copy link
Copy Markdown
Member

Changes Proposed:

This PR proposes changes to:

  • Core (units, players, creatures, game systems).
  • Scripts (bosses, spell scripts, creature scripts).
  • Database (SAI, creatures, etc).

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.

  • AI tools (e.g. Claude, ChatGPT, or similar) were used entirely or partially to prepare this pull request. If checked, specify which tools and models below.
    • Tools/models used:
  • I have read and understood the AC guidelines for AI Agentic Engineering

Issues Addressed:

  • Closes

SOURCE:

The changes have been validated through:

  • Live research (checked on live servers, e.g Classic WotLK, Retail, etc.)
  • Sniffs (remember to share them with the open source community!)
  • Video evidence, knowledge databases or other public sources (e.g forums, Wowhead, etc.)
  • The changes promoted by this pull request come partially or entirely from another project (cherry-pick). Cherry-picks must be committed using the proper --author tag in order to be accepted, thus crediting the original authors, unless otherwise unable to be found

Tests Performed:

This PR has been:

  • Tested in-game by the author.
  • Tested in-game by other community members/someone else other than the author/has been live on production servers.
  • This pull request requires further testing and may have edge cases to be tested.

How to Test the Changes:

  • This pull request can be tested by following the reproduction steps provided in the linked issue
  • This pull request requires further testing. Provide steps to test your changes. If it requires any specific setup e.g multiple players please specify it as well.

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-2 vs f5762271275, 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_FLY mode and make EscortMovementGenerator set the Flying spline flag for it, and mark the six jump paths as flying in SmartAI.

Project rules .agents/docs/self-review-rules.md found and applied, on top of .agents/docs/code-review.md, cpp-guidelines.md, sql-guidelines.md.

Round 1 — a29da97894a, 2 findings

  1. data/sql/updates/pending_db_world/rev_1786649573107.sql:6 — partial UPDATE on smart_scripts violates sql-guidelines.md ("never a partial UPDATE — full DELETE+INSERT of 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 on action_type = 53 + action_param2, stable in both the pre- and post-PR-1 blocks, is idempotent, and passes codestyle-sql.py. Fallback if a maintainer objects: fold action_param1 = 3 into PR 1's full INSERT.
  2. commit subject 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_MAX consumers (SmartScriptMgr.cpp START_CLOSEST_WAYPOINT and ESCORT_START validations) accept 3 and route through the generator that handles FLY; SetFly()EnableFlying() → Flying spline flag written to the client, matching existing SetFly() precedents that do not also call SetSmooth(); the UPDATE WHERE matches exactly the six SMART_ACTION_ESCORT_START rows for (24825, 0); wpStart.forcedMovement/pathID map to action_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.md present and applied (with .agents/docs/code-review.md, sql-guidelines.md, cpp-scripts.md)

Round 1 — rev_1786648635519.sql (working tree), clean

No findings.

Notes (not findings):

  1. rev_1786649573107.sql (Part 1) is a separate pending revision that UPDATEs action_param1 to 3 (fly) on the same SMART_ACTION_ESCORT_START rows this file inserts with action_param1 2. It documents being applied on top of Part 2; timestamp order (…5519 < …3107) makes that true. Layering is correct, not a duplicate or conflict.
  2. Whether the construct's synchronous self-cast of 44626 inside its own 44608 spellhit is ever rejected in-game is not determinable from source alone; author confirmed in-game that the buff no longer persists after an interrupted jump.

Copilot AI lite review requested due to automatic review settings August 13, 2026 22:12
@sogladev sogladev added the Requires WIKI Update Wiki sources will need to be updated after merging this PR. label Aug 13, 2026
@github-actions github-actions Bot added DB related to the SQL database CORE Related to the core file-cpp Used to trigger the matrix build labels Aug 13, 2026
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: cb92995a-75c8-4360-ae1c-56ff7dc10d6d

📥 Commits

Reviewing files that changed from the base of the PR and between da68c7c and a29da97.

📒 Files selected for processing (4)
  • data/sql/updates/pending_db_world/rev_1786648635519.sql
  • data/sql/updates/pending_db_world/rev_1786649573107.sql
  • src/server/game/Movement/MotionMaster.h
  • src/server/game/Movement/MovementGenerators/EscortMovementGenerator.cpp

📝 Walkthrough

Walkthrough

The change adds FORCED_MOVEMENT_FLY support to escort movement, including initial path setup and spline recalculation. It updates Iron Rune Construct smart scripts for Rocket Jump aura, dialogue, passenger, and flight-path handling, removes a linked spell relationship, and configures six escort paths for forced flying.

Mergeability Score: ⚪ Minimal · up to a29da

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_FLY to the core ForcedMovement enum.
  • Update EscortMovementGenerator to 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.py flags 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.py flags 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.

Comment on lines +6 to +9
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);
Comment on lines 86 to 90
FORCED_MOVEMENT_NONE = 0,
FORCED_MOVEMENT_WALK = 1,
FORCED_MOVEMENT_RUN = 2,
FORCED_MOVEMENT_FLY = 3,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CORE Related to the core DB related to the SQL database file-cpp Used to trigger the matrix build Requires WIKI Update Wiki sources will need to be updated after merging this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants