unify(map): Merge and move GameLogic map headers and implementations to Core - #3189
unify(map): Merge and move GameLogic map headers and implementations to Core#3189OmarAglan wants to merge 2 commits into
Conversation
PR Summary by QodoUnify map: merge GameLogic map implementations
AI Description
Diagram
High-Level Assessment
Files changed (6)
|
Code Review by Qodo
1. Retail parser reads v2 dictionaries
|
59b40a9 to
21a5be6
Compare
|
You missed the other instances of |
|
/agentic_review |
ok, this is bad, well im working on it, maybe im still lacking, well get them all. |
|
Code review by qodo was updated up to the latest commit 21a5be6 |
21a5be6 to
82d9f62
Compare
i think i chnaged them all, hope so. |
|
You should try to minimize these guards, only add as needed. Consider when it may affect the CRC and when it doesn’t. For example deleting polygon triggers you would expect impacts CRC, but adding a function or class member or define generally doesn’t. |
One of the finer nuances here that determines if it affects the CRC is how the data is handled for the CRC. There are some instances where a whole object get's CRC'ed instead of its portion of the CRC being generated from the objects specific CRC function. But what you mentioned is true as long as the above is not a problem. |
well, yes that make sense, will look into it, but how can i test if my chnage will impact CRC, like replays or something, a general question? |
There is no standardized vgenerals replay testing right now but you could create a new replay in a map that has polygon triggers (or add them yourself, and make sure the trigger affects the game somehow) with AI's and then replay check them with |
82d9f62 to
7177417
Compare
|
updated and cleaned up the merge, it now has less guards, and now the behavior is:
ready for review |
|
/agentic_review |
|
Code review by qodo was updated up to the latest commit 7177417 |
|
Note that "merge with rebase" is the same as "squash merge" when you only have one commit. Perhaps close #3190 and put the move in here? Right now it's also confusing for people to review because of the depends on |
|
| Filename | Overview |
|---|---|
| Core/GameEngine/CMakeLists.txt | Adds the relocated map headers and implementations to the shared GameEngine source interface. |
| Core/GameEngine/Source/GameLogic/Map/PolygonTrigger.cpp | Adds compile-time compatibility branches for polygon-trigger filtering and serialized chunk versions. |
| Core/GameEngine/Source/GameLogic/Map/SidesList.cpp | Provides the unified, version-aware player-data parser and expanded team-allocation assertion. |
| Core/GameEngine/Source/GameLogic/Map/TerrainLogic.cpp | Relocates the shared terrain implementation, including the existing crater functionality, without a substantive behavioral change. |
| Generals/Code/GameEngine/CMakeLists.txt | Removes the relocated map files from the Generals-specific source list so Core supplies them. |
| GeneralsMD/Code/GameEngine/CMakeLists.txt | Removes the relocated map files from the Zero Hour-specific source list so Core supplies them. |
| scripts/cpp/unify_move_files.py | Records the completed map-file unification operations as inactive script entries. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
Core[Core GameEngine map implementations] --> G[g_gameengine / Generals]
Core --> Z[z_gameengine / Zero Hour]
G --> GC{Retail-compatible CRC?}
GC -->|Yes| V3[PolygonTriggers v3; preserve malformed triggers]
GC -->|No| V4G[PolygonTriggers v4; discard triggers with fewer than two points]
Z --> V4Z[PolygonTriggers v4; discard triggers with fewer than two points]
Reviews (4): Last reviewed commit: "unify(map): Move GameLogic map headers a..." | Re-trigger Greptile
75e2c2c to
2ca07b0
Compare
|
rebased, ready for review. |
2ca07b0 to
7b93bd7
Compare
|
ready up for review and merge now |
stephanmeesters
left a comment
There was a problem hiding this comment.
Looks correct to me. The commits need the pull request ID added
7b93bd7 to
2927607
Compare
|
added |
Merge with Rebase
This merges and moves
MapReaderWriterInfo.h,PolygonTrigger,SidesList, andTerrainLogictogether with their matching headers.Target conditions preserve retail compatibility while sharing isolated Zero Hour improvements that do not affect the Generals CRC path:
Testing
git diff --check