Advanced Wars
clang-tidy
-
Um
clang-tidy
für eine einzelne Datei (z.B.main.cpp
) auszuführen:clang-tidy src/game/main.cpp -header-filter="src/game/main\.cpp" -p build/
-
Um
clang-tidy
für das ganze Projekt auszuführen und die Warnings in die Dateiclang-tidy-warnings.txt
zu schreiben:find src/game -name '*.cpp' -o -name '*.hpp' | xargs clang-tidy -header-filter="src/game/.*" -p build/ 1> clang-tidy-warnings.txt
Build-Anleitung
Linux/MacOS
-
Repository klonen:
git clone https://github.com/username/project.git cd project
-
Build-Verzeichnis erstellen:
mkdir build && cd build
-
CMake konfigurieren und Build ausführen:
cmake .. cmake --build .
Windows
-
Repository klonen:
git clone https://github.com/username/project.git cd project
-
Build-Verzeichnis erstellen:
mkdir build cd build
-
CMake konfigurieren und Build ausführen:
cmake .. cmake --build . --config Release
Visual Studio
- Repository klonen
- Visual Studio öffnen
- "Ordner öffnen" wählen und zum Projektverzeichnis navigieren
- Visual Studio erkennt automatisch das CMake-Projekt
- Build über "Build All" ausführen
Falls Syntax errors
- Erstelle .vscode/c_cpp_properties.json Datei
- Füge die folgende JSON so oder so ähnlich ein:
{
"configurations": [
{
"name": "Fedora",
"includePath": ["/usr/include", "/usr/include/SDL2"],
"defines": [],
"intelliSenseMode": "linux-gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "c++17"
}
],
"version": 4
}
Build-Optionen
CMake kann mit verschiedenen Optionen konfiguriert werden:
cmake .. -DCMAKE_BUILD_TYPE=Release # Release-Build
cmake .. -DCMAKE_BUILD_TYPE=Debug # Debug-Build
Prerequisites for Leveleditor
- QT 6:
sudo apt install qt6-base-dev
Authors
Max Körschen:
- Units.cpp/hpp (Combat and movement)
- Helpmenu.cpp/hpp
- UnitInfoMenu.cpp/hpp
- RecruitingMenu.cpp/hpp and Recruiting interactions with level-class
- Building.cpp/hpp (interactions and logic)
- level.cpp/hpp (eventhandling for units and buildings, movement, attack etc)
- debugging in CombatEngine.cpp/hpp, Bullets.cpp/hpp
Lorenz Diel:
- Units.cpp/hpp
- UnitInfoMenu.cpp/hpp
- level.cpp/hpp
- Config.cpp/hpp
- Weapon.cpp/hpp
- CombatEngine.cpp/hpp
David Maul:
- Engine.cpp/hpp
- Scene.hpp
- Spritesheet.cpp/hpp
- Tile.cpp/hpp
- Window.cpp/hpp
- Effect.cpp/hpp
- Level.cpp/hpp
- main.cpp
Frederik Keens:
- main.cpp
- Player.cpp/hpp
- Level.cpp/hpp
- Building.cpp/hpp
- Unit.cpp/hpp
- Tile.cpp/hpp
- Spritesheet.cpp/hpp
- Scene.hpp
- Engine.cpp/hpp
David Hermann:
- Projektmanagement (GitLab Issues, Milestones, etc.)
- Projektstruktur (Ordnerhierarchien)
- Refactoring der Architektur für bessere Modularität, Memory Management und Box2d Integration
- Spezifische Arbeit:
- CMakeLists.txt
- CombatEngine.cpp/hpp (refactoring, box2d integration)
- GameManager.cpp/hpp
- Unit.cpp/hpp (refactoring, box2d integration)
- Bullet.cpp/hpp
- Level.cpp/hpp (refactoring, box2d integration)
- PhysicsBody.cpp/hpp (box2d integration)
- PhysicsEngine.cpp/hpp (box2d integration)
- Menu.cpp/hpp (Main Menu UI)
- ContextMenu.cpp/hpp (Context Menu)
- Dimensions.hpp