Skip to content

Group GM*.cpp/h into src/source/GameMaps/ (#344)#45

Open
Mosch0512 wants to merge 1 commit intomainfrom
move-gamemaps
Open

Group GM*.cpp/h into src/source/GameMaps/ (#344)#45
Mosch0512 wants to merge 1 commit intomainfrom
move-gamemaps

Conversation

@Mosch0512
Copy link
Copy Markdown
Owner

Summary

  • Move all 26 per-map gameplay .cpp files (and their 27 headers, including the standalone GMGmArea.h and GM_Kanturu_1st.h) into src/source/GameMaps/
  • Update the 27 #include lines in w_MapHeaders.h to use the new GameMaps/ prefix (matching the existing convention used for Camera/, Scenes/, etc.)
  • No CMake changes needed: src/CMakeLists.txt:86-89 uses file(GLOB_RECURSE source/*.cpp), so the new subfolder is picked up automatically

First incremental subsystem grouping under sven-n#344.

w_MapHeaders.h is the only file that referenced these headers without a folder prefix; every GM*.cpp includes its own GM*.h (resolved via same-dir lookup, still works after the move).

Test plan

  • MinGW build (Unix Makefiles + mingw-w64-i686.cmake toolchain) of Main target succeeds
  • Object files compile from new path (src/CMakeFiles/Main.dir/source/GameMaps/GMAida.cpp.obj etc.)
  • Main.exe links successfully
  • MSVC build (not run locally)

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.
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, 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

  • Project Structure Refactoring: Moved 26 gameplay map source files and their corresponding headers into a dedicated 'src/source/GameMaps/' directory to improve project organization.
  • Header Inclusion Updates: Updated all 27 include directives in 'w_MapHeaders.h' to reflect the new directory structure, ensuring compatibility with the existing build system.
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 Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

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.

Comment thread src/source/w_MapHeaders.h
#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"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

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).

Comment thread src/source/w_MapHeaders.h
#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
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

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.

Suggested change
#include "GameMaps/GM3rdChangeUp.h"
#include "GameMaps/GM3rdChangeUp.h"

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant