Repository navigation
bugfix(helixcontain): Grant experience to the Helix from attachment gun kills - #3282
Conversation
e3e91c6 to
6be0d03
Compare
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
PR Summary by QodoRoute Helix attachment experience to containing Helix
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo
1. Detached cannons reward former Helixes
|
|
6be0d03 to
71706fb
Compare
71706fb to
b3e5168
Compare
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughHelixContain now assigns the Helix as the experience sink for a contained portable structure with an experience tracker, and clears the sink when the structure is removed. This logic is compiled only when neither ChangesHelix portable structure containment
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: 🟡 Moderate · up to Helix attachment kills can still fail to award the intended experience in non-retail builds, and older saves may retain that behavior after loading. Resolve these gaps before relying on the fix. Pre-merge checks |
|
207da05 to
86ba6b5
Compare
86ba6b5 to
287bc9d
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Organization UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
963d740a-7529-4095-816d-4ea90d81c814
📒 Files selected for processing (2)
Core/GameEngine/Include/Common/GameDefines.hGeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/HelixContain.cpp
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.
287bc9d to
7a7b2a1
Compare
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.
🟡 Minor · Set PRESERVE_NO_XP_FROM_HELIX_ATTACHMENT_KILLS to 0. · GameDefines.h:43-45
Core/GameEngine/Include/Common/GameDefines.h:43-45
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSet
PRESERVE_NO_XP_FROM_HELIX_ATTACHMENT_KILLSto0.When
RETAIL_COMPATIBLE_CRCis0, the default value1still excludes both Helix sink operations. Portable-structure kills therefore do not route experience to the Helix unless the build also defines this undocumented macro as0. Change only this default and retain theRETAIL_COMPATIBLE_CRCguard.Suggested fix
#ifndef PRESERVE_NO_XP_FROM_HELIX_ATTACHMENT_KILLS -#define PRESERVE_NO_XP_FROM_HELIX_ATTACHMENT_KILLS (1) +#define PRESERVE_NO_XP_FROM_HELIX_ATTACHMENT_KILLS (0) #endif
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Organization UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
1cf142a1-2bff-4da6-b3a6-1c800f0c2f85
📒 Files selected for processing (1)
GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/HelixContain.cpp
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review.
Closes #87
A Helix never gains experience from kills made by its Gattling Cannon. The cannon is a separate object with its own weapon, so every kill is credited to the cannon, and its experience tracker accepts nothing: it is not trainable and has no experience sink. The Overlord has the same setup, but
OverlordContainforwards the cannon's experience to the tank throughExperienceSinkForRider.HelixContainhas no equivalent, so the experience is lost.Now
HelixContain::addToContainsets the portable structure's experience sink to the Helix, so the cannon's kills count for it. This covers both ways a Helix gets an attachment: the initialPayloadTemplateNamepayload and the upgrade OCLs withContainInsideSourceObject.addToContainListdoes not need it, because for the Helix it is only reached fromOpenContain::loadPostProcess, andExperienceTracker::xferalready saves the sink. A portable structure never leaves a Helix alive, so nothing has to reset the sink, same as the Overlord.helix-xp-compare-github.mp4
!RETAIL_COMPATIBLE_CRC