Repository navigation
bugfix(sideslist): Add the general skirmish sides that Generals maps lack - #3484
tintinhamans wants to merge 1 commit into
Conversation
|
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:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
WalkthroughThe change records polygon-trigger chunk versions, detects legacy maps without Zero Hour skirmish sides, conditionally adds missing sides, and warns during LAN, skirmish, and WOL map selection. It also limits the Armored Fury and Scorched Earth exclusions to Zero Hour builds with retail-compatible CRC mode. ChangesMap compatibility
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix · Severity of issue fixed: Medium Sequence Diagram(s)sequenceDiagram
participant SkirmishMapSelectMenuSystem
participant warnIfMapLacksSkirmishSides
participant isGeneralsMapWithoutGeneralSides
participant MessageBox
SkirmishMapSelectMenuSystem->>warnIfMapLacksSkirmishSides: selected map name
warnIfMapLacksSkirmishSides->>isGeneralsMapWithoutGeneralSides: inspect map
isGeneralsMapWithoutGeneralSides-->>warnIfMapLacksSkirmishSides: missing-side result
warnIfMapLacksSkirmishSides->>MessageBox: display warning
Suggested reviewers: Merge Risk: ⚪ Minimal · up to
|
a654a93 to
b488b9c
Compare
[Medium impact] The PR appears safe to merge; no actionable issues remain.
|
b488b9c to
dc8dcda
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:
af6ce4e8-183e-4d73-a36a-5926446a2e4a
📒 Files selected for processing (9)
Core/GameEngine/Include/GameClient/MapUtil.hCore/GameEngine/Include/GameLogic/PolygonTrigger.hCore/GameEngine/Include/GameLogic/SidesList.hCore/GameEngine/Source/GameClient/MapUtil.cppCore/GameEngine/Source/GameLogic/Map/PolygonTrigger.cppCore/GameEngine/Source/GameLogic/Map/SidesList.cppGeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/LanMapSelectMenu.cppGeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishMapSelectMenu.cppGeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLMapSelectMenu.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.
dc8dcda to
f8e2cef
Compare
| d.setAsciiString(TheKey_teamName, teamName); | ||
| d.setAsciiString(TheKey_teamOwner, playerName); | ||
| d.setBool(TheKey_teamIsSingleton, true); | ||
| addTeam(&d); |
There was a problem hiding this comment.
I think the added teams get dropped. With no side scripts, prepareForMP_or_Skirmish clears m_skirmishTeamrec and loads the teams from SkirmishScripts.scb. The added sides still help, so maybe only the addTeam part can go.
There was a problem hiding this comment.
Oof, realised my test rig missed the extra scb.. adjusted and will retest.
There was a problem hiding this comment.
you were right, the scb brings those teams once the sides exist. dropped the addTeam and the team name check, retested and the generals get their AI fine
f8e2cef to
9c795ea
Compare
Closes #1772
Generals maps only have
SkirmishAmerica,SkirmishChinaandSkirmishGLA.Player::initFromDictturns a general AI into a human player with no AI when no map side matches itsSide, so on these maps the generals never move. The 1.03 filter hides Armored Fury and Scorched Earth for this reason.prepareForMP_or_Skirmishnow adds the general sides the way Add Skirmish Players in WorldBuilder does, so the standard skirmish scripts and their teams bind to them. Only for maps saved by the Generals WorldBuilder with the three original factions and no general, and only when all nine fit. Behind!RETAIL_COMPATIBLE_CRC, a general that plays desyncs against retail. The 1.03 filter stays in retail builds.The map pickers warn when such a map is selected.
Retail compatible builds never add sides.