Group GM*.cpp/h into src/source/GameMaps/ (#344)#45
Conversation
Move all 26 per-map gameplay source files (and their 27 headers, including the standalone GMGmArea.h and GM_Kanturu_1st.h) into a GameMaps/ subfolder. First incremental subsystem grouping under sven-n#344. Updated includes in w_MapHeaders.h - the only file that referenced these headers without a folder prefix - to use the new GameMaps/ path, matching the convention already used for Camera/, Scenes/, etc. No CMake changes needed: src/CMakeLists.txt uses file(GLOB_RECURSE source/*.cpp), which auto-picks up the new subfolder. Verified with a MinGW build of the Main target.
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request performs a structural cleanup by grouping map-related source files into a specific subdirectory. This change aligns the codebase with established conventions used for other subsystems and enhances maintainability without requiring modifications to the existing CMake configuration. Highlights
New Features🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request relocates several game map header files into a GameMaps subdirectory and updates the include paths in w_MapHeaders.h accordingly. The review feedback identifies a case sensitivity mismatch between the GM_Kanturu_1st header and implementation files that may break builds on case-sensitive filesystems. Additionally, it is recommended to add a trailing newline to w_MapHeaders.h to adhere to C++ standards.
| #include "GM_Kanturu_2nd.h" | ||
| #include "GM_Kanturu_3rd.h" | ||
| #include "GM3rdChangeUp.h" No newline at end of file | ||
| #include "GameMaps/GM_Kanturu_1st.h" |
There was a problem hiding this comment.
There is a case inconsistency between the header file GM_Kanturu_1st.h (uppercase 'K') and its implementation file GM_kanturu_1st.cpp (lowercase 'k'). While this may work on case-insensitive filesystems (like Windows), it can lead to build failures on case-sensitive systems (like Linux). Since these files are being moved as part of this PR, it is a good opportunity to rename GM_kanturu_1st.cpp to GM_Kanturu_1st.cpp to ensure consistency with the header and other related files (e.g., GM_Kanturu_2nd.cpp).
| #include "GameMaps/GM_Kanturu_1st.h" | ||
| #include "GameMaps/GM_Kanturu_2nd.h" | ||
| #include "GameMaps/GM_Kanturu_3rd.h" | ||
| #include "GameMaps/GM3rdChangeUp.h" No newline at end of file |
There was a problem hiding this comment.
The file w_MapHeaders.h is missing a newline character at the end. According to the C++ standard (e.g., C++11 §2.2/2), a non-empty source file should end with a newline. This is a best practice that prevents potential compilation warnings and issues with certain build tools or when concatenating files. Since you are already modifying this line, it's a good opportunity to add the missing newline.
| #include "GameMaps/GM3rdChangeUp.h" | |
| #include "GameMaps/GM3rdChangeUp.h" | |
Summary
.cppfiles (and their 27 headers, including the standaloneGMGmArea.handGM_Kanturu_1st.h) intosrc/source/GameMaps/#includelines inw_MapHeaders.hto use the newGameMaps/prefix (matching the existing convention used forCamera/,Scenes/, etc.)src/CMakeLists.txt:86-89usesfile(GLOB_RECURSE source/*.cpp), so the new subfolder is picked up automaticallyFirst incremental subsystem grouping under sven-n#344.
w_MapHeaders.his the only file that referenced these headers without a folder prefix; everyGM*.cppincludes its ownGM*.h(resolved via same-dir lookup, still works after the move).Test plan
Unix Makefiles+mingw-w64-i686.cmaketoolchain) ofMaintarget succeedssrc/CMakeFiles/Main.dir/source/GameMaps/GMAida.cpp.objetc.)Main.exelinks successfully