Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • leveleditor
  • david-author
  • clang-tidy-cleanup
  • architecture-refactoring
  • cleanUpMenus
  • doxygen-cleanup
  • project-structure-refactoring
  • interpolation
  • buildingFeatures
  • win_end_screen
  • helpMenu
  • leveleditor-placement
  • text-rendering
  • updated_unit_contextmenu
  • level-from-commandline
  • unit_contextmenu
  • player
  • engine-scaling
  • clang-tidy
20 results

README.md

Blame
  • 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 Datei clang-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

    Benötigte Pakete

    Dieses Projekt benötigt mehrere Paket um gebuilded werden zu können. Beispiele unter Ubuntu 24:

    1. SDL2

      sudo apt install libsdl2-dev
    2. SDL2-Image

      sudo apt install libsdl2-image-dev 
    3. SDL2-TTF

      sudo apt install libsdl2-ttf-dev
    4. Boost

      sudo apt install libboost-all-dev

    Linux/MacOS

    1. Repository klonen:

      git clone https://github.com/username/project.git
      cd project
    2. Build-Verzeichnis erstellen:

      mkdir build && cd build
    3. CMake konfigurieren und Build ausführen:

      cmake ..
      cmake --build .

    Windows

    1. Repository klonen:

      git clone https://github.com/username/project.git
      cd project
    2. Build-Verzeichnis erstellen:

      mkdir build
      cd build
    3. CMake konfigurieren und Build ausführen:

      cmake ..
      cmake --build . --config Release

    Visual Studio

    1. Repository klonen
    2. Visual Studio öffnen
    3. "Ordner öffnen" wählen und zum Projektverzeichnis navigieren
    4. Visual Studio erkennt automatisch das CMake-Projekt
    5. Build über "Build All" ausführen

    Falls Syntax errors

    1. Erstelle .vscode/c_cpp_properties.json Datei
    2. 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:

    • Rendering of the graphics and scene management
    • Player logic
    • Diverse support in event handling and bugs
    • Merge request last resort
    • Specifics:
      • 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

    Nils Jonathan Friedrich Eckardt:

    • AdvancedPlacementSwitch.cpp/hpp
    • LevelScene.cpp/hpp
    • MainWindow.cpp
    • TileButton.cpp/hpp
    • TileSelector.cpp/hpp
    • TopBar.cpp

    Jonathan Dueck (committer name TheUltimateOptimist):

    • Allgemein:

      • Level Editor
      • Level Laden und Speichern
      • Level Dateiformat
      • LevelEditor Dokumentation (in documentation ordner)
    • Spezifisch:

      • src/editor/EventHandler.cpp/hpp
      • src/editor/LevelNameEdit.cpp/hpp
      • src/editor/LevelScene.hpp/cpp alles ausser setTile, onTileClicked, placeAdvancedTiles, onAdvancedPlacementToggled, onSymmetryToggled, placeCliff, placeRoad, calcDir, isntIdentical
        Die genannten Funktionen hat Nils implementiert um Kacheln automatisch setzen (advanced placement) und symmetrisches placement zu realisieren.
      • src/editor/LevelView.cpp/hpp
      • src/editor/main.cpp
      • src/editor/MainWindow.cpp/hpp Nils und ich beide
      • src/editor/SaveButton.cpp/hpp
      • src/editor/SpriteProvider.cpp/hpp
      • src/editor/Tile.cpp/hpp
      • src/editor/TopBar.cpp/hpp gemeinsam mit Nils
      • src/editor/ZoomInButton.cpp/hpp
      • src/editor/ZoomOutButton.cpp/hpp
      • src/editor/ZoomInfo.cpp/hpp
      • src/editor/ZoomOutButton.cpp/hpp
      • in src/game/main.cpp auch noch getLevelFilePath und ersten block in main methode
      • in src/game/level/Level.cpp im Konstruktor das Laden des Levels

    Nicolas Will:

    • Tilemarker.cpp/hpp
    • UnitInfoMenu.cpp/hpp
    • HelpMenu.cpp/hpp
    • PauseMenu.cpp/hpp
    • Endscreen.cpp/hpp
    • RecruitingMenu.cpp/hpp
    • ContextMenu.cpp/hpp
    • Level.cpp/hpp
    • Unit.cpp/hpp
    • Building.cpp/hpp