From 72d93e8919a8493f32ac0fa8f0588ef6b3cbfb33 Mon Sep 17 00:00:00 2001 From: Askou Date: Thu, 17 Jun 2021 16:10:06 +0200 Subject: [PATCH 01/15] add bonus speed limit --- sources/Items/Bonus.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/Items/Bonus.cpp b/sources/Items/Bonus.cpp index c7f9049c..68e4e9f3 100644 --- a/sources/Items/Bonus.cpp +++ b/sources/Items/Bonus.cpp @@ -44,7 +44,9 @@ namespace BBM { auto *playerBonus = player.tryGetComponent(); if (!controllable || !playerBonus) return; - controllable->speed += 0.025f; + if (controllable->speed >= 0.4) + return; + controllable->speed = 0.025f; const_cast(bonus).scheduleDeletion(); } From 9826375c6226aa73ffe45f615100a2c65cae0b38 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Thu, 17 Jun 2021 16:58:39 +0200 Subject: [PATCH 02/15] Using fixed update and adding optimization flags --- CMakeLists.txt | 3 +++ sources/Component/Animation/AnimationsComponent.cpp | 2 +- sources/Component/Animation/AnimationsComponent.hpp | 2 +- sources/Runner/Runner.cpp | 2 +- sources/System/Animation/AnimationsSystem.cpp | 8 +++++++- sources/System/Animation/AnimationsSystem.hpp | 2 +- 6 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d7e36036..2ba47cf3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,9 @@ project(bomberman) set(CMAKE_CXX_STANDARD 20) +set(CMAKE_C_FLAGS -O2) +set(CMAKE_CXX_FLAGS -O2) + include_directories(lib/Ray/sources) include_directories(lib/wal/sources) include_directories(lib/LuaGate/sources) diff --git a/sources/Component/Animation/AnimationsComponent.cpp b/sources/Component/Animation/AnimationsComponent.cpp index 26367a0b..e53cc259 100644 --- a/sources/Component/Animation/AnimationsComponent.cpp +++ b/sources/Component/Animation/AnimationsComponent.cpp @@ -29,7 +29,7 @@ namespace BBM return this->_modelAnimation.at(this->_currentAnimIndex).getFrameCounter(); } - RAY::ModelAnimation AnimationsComponent::getCurrentModelAnim() + RAY::ModelAnimation &AnimationsComponent::getCurrentModelAnim() { return this->_modelAnimation[this->_currentAnimIndex]; } diff --git a/sources/Component/Animation/AnimationsComponent.hpp b/sources/Component/Animation/AnimationsComponent.hpp index 36f22a6a..a1daa591 100644 --- a/sources/Component/Animation/AnimationsComponent.hpp +++ b/sources/Component/Animation/AnimationsComponent.hpp @@ -34,7 +34,7 @@ namespace BBM size_t getCurrentAnimFrameCounter() const; //! @brief get the current - RAY::ModelAnimation getCurrentModelAnim(); + RAY::ModelAnimation &getCurrentModelAnim(); //! @brief set the anim frame counter void setCurrentAnimFrameCounter(size_t animFrameCounter); diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index 98507d1f..b56b94fc 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -106,7 +106,7 @@ namespace BBM .addSystem() .addSystem() .addSystem() - .addSystem() +// .addSystem() .addSystem() .addSystem(); } diff --git a/sources/System/Animation/AnimationsSystem.cpp b/sources/System/Animation/AnimationsSystem.cpp index 5aaa4597..65bd7e0b 100644 --- a/sources/System/Animation/AnimationsSystem.cpp +++ b/sources/System/Animation/AnimationsSystem.cpp @@ -15,10 +15,15 @@ namespace BBM : System(wal) {} - void AnimationsSystem::onUpdate(WAL::ViewEntity &entity, std::chrono::nanoseconds) + void AnimationsSystem::onFixedUpdate(WAL::ViewEntity &entity) { auto &model = entity.get(); auto &anim = entity.get(); + static int count = 0; + + count++; + if (count % 2) + return; if (anim.isDisabled()) return; @@ -26,6 +31,7 @@ namespace BBM if (modelPtr) { modelPtr->setAnimation(anim.getCurrentModelAnim()); anim.incCurrentAnimFrameCounter(); + anim.incCurrentAnimFrameCounter(); } } } \ No newline at end of file diff --git a/sources/System/Animation/AnimationsSystem.hpp b/sources/System/Animation/AnimationsSystem.hpp index 6ace28d8..bf71460e 100644 --- a/sources/System/Animation/AnimationsSystem.hpp +++ b/sources/System/Animation/AnimationsSystem.hpp @@ -14,7 +14,7 @@ namespace BBM { public: //! @inherit - void onUpdate(WAL::ViewEntity &entity, std::chrono::nanoseconds) override; + void onFixedUpdate(WAL::ViewEntity &entity) override; //! @brief A default constructor explicit AnimationsSystem(WAL::Wal &wal); From ac2ade2017606b70a9aa30ddb269f6c6b0c37dfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Thu, 17 Jun 2021 17:06:54 +0200 Subject: [PATCH 03/15] push for zoe --- sources/System/Animation/AnimationsSystem.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/System/Animation/AnimationsSystem.cpp b/sources/System/Animation/AnimationsSystem.cpp index 65bd7e0b..df641307 100644 --- a/sources/System/Animation/AnimationsSystem.cpp +++ b/sources/System/Animation/AnimationsSystem.cpp @@ -32,6 +32,8 @@ namespace BBM modelPtr->setAnimation(anim.getCurrentModelAnim()); anim.incCurrentAnimFrameCounter(); anim.incCurrentAnimFrameCounter(); + anim.incCurrentAnimFrameCounter(); + anim.incCurrentAnimFrameCounter(); } } } \ No newline at end of file From aae3c6c64c7ad0c396029bb2e455ec433efea9d8 Mon Sep 17 00:00:00 2001 From: Askou Date: Thu, 17 Jun 2021 17:13:50 +0200 Subject: [PATCH 04/15] add new collision for map --- assets/map/bumper.png | Bin 26301 -> 14210 bytes assets/map/outer_wall.mtl | 12 ++++++++ assets/map/outer_wall.obj | 54 ++++++++++++++++++++++++++++++++++++ assets/map/outer_wall.png | Bin 0 -> 1013 bytes sources/Items/Bonus.cpp | 2 +- sources/Map/Map.cpp | 56 ++++++++++++++++++-------------------- sources/Map/Map.hpp | 4 ++- 7 files changed, 97 insertions(+), 31 deletions(-) create mode 100644 assets/map/outer_wall.mtl create mode 100644 assets/map/outer_wall.obj create mode 100644 assets/map/outer_wall.png diff --git a/assets/map/bumper.png b/assets/map/bumper.png index 63632844a4d7fbee363388dbf6af8090188d29f7..e8502594825aaa95d5d1eaa7e461c8c18a36542b 100644 GIT binary patch literal 14210 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 YADK*>ye5{nJ^%m!07*qoM6N<$f)-S-BLDyZ literal 26301 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

9yJ72F91@7NU3e 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 Ef=c^C2><{9 diff --git a/assets/map/outer_wall.mtl b/assets/map/outer_wall.mtl new file mode 100644 index 00000000..678256c4 --- /dev/null +++ b/assets/map/outer_wall.mtl @@ -0,0 +1,12 @@ +# Blender MTL File: 'None' +# Material Count: 1 + +newmtl cube +Ns 225.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.450000 +d 1.000000 +illum 2 diff --git a/assets/map/outer_wall.obj b/assets/map/outer_wall.obj new file mode 100644 index 00000000..5152d0f2 --- /dev/null +++ b/assets/map/outer_wall.obj @@ -0,0 +1,54 @@ +# Blender v2.92.0 OBJ File: '' +# www.blender.org +mtllib unbreakable_wall.mtl +o cube +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +vt 0.000000 0.000000 +vt 0.333333 0.000000 +vt 0.000000 0.500000 +vt 0.333333 0.500000 +vt 0.666666 1.000000 +vt 1.000000 1.000000 +vt 0.666666 0.500000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +vt 0.333333 1.000000 +vt 0.000000 0.500000 +vt 0.333333 0.500000 +vt 0.666666 0.000000 +vt 1.000000 0.000000 +vt 0.666666 0.500000 +vt 1.000000 0.500000 +vt 0.666666 0.500000 +vt 0.666666 1.000000 +vt 0.333333 0.000000 +vt 0.666666 0.000000 +vt 0.333333 0.500000 +vt 0.666666 0.500000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +usemtl cube +s 1 +f 1/1/1 2/2/1 3/3/1 +f 3/3/1 2/2/1 4/4/1 +f 3/5/2 4/6/2 5/7/2 +f 5/7/2 4/6/2 6/8/2 +f 5/9/3 6/10/3 7/11/3 +f 7/11/3 6/10/3 8/12/3 +f 7/13/4 8/14/4 1/15/4 +f 1/15/4 8/14/4 2/16/4 +f 2/17/5 8/12/5 4/18/5 +f 4/18/5 8/12/5 6/10/5 +f 7/19/6 1/20/6 5/21/6 +f 5/21/6 1/20/6 3/22/6 diff --git a/assets/map/outer_wall.png b/assets/map/outer_wall.png new file mode 100644 index 0000000000000000000000000000000000000000..e25f5252797d24a019d046d9127d4844551007e2 GIT binary patch literal 1013 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaeirbZlh+ zL~m?xXlZUBQ)6;vWo~n5Z*-~;4HN(X03mcmSad^jWnpw_Z*Cw|X>DZyGB7bVIxsgn zFgYMGG&(gnIx{hi>D4d*00TKmL_t(oN0pZgdYmu}guyJmWslSQ^nBR>)h~OzgBOx? z`Y9McG^3G8+xhRG-$yCSwC~#_Y}+<1%aY@9ZJtXTRUGr4Pxd8Z>&}lHMxOZN*p676 zV{p{>%mzVEFu=+G7jNXBEtgV;kV3TpB8{p3P7wHz5Rt zNPRk#L?mA(HLyR=e4HI^fj`K8Bd+J&r_b!5g_Skb{#G4e7vG=^fIxfLDH% zG=ZBD+N=G_A@nTU3K2?6=;henXZNmVKE j#8+_FoS3mspeed >= 0.4) return; - controllable->speed = 0.025f; + controllable->speed += 0.025f; const_cast(bonus).scheduleDeletion(); } diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index 305e94dd..d1d70223 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -29,7 +29,7 @@ namespace BBM if (!movable || !bumperTimer) return; if (!bumperTimer->_isReseting) { - movable->_velocity.y = 1.5; + movable->_velocity.y = 2; bumperTimer->_isReseting = true; } } @@ -113,6 +113,7 @@ namespace BBM const std::string MapGenerator::imageExtension = ".png"; const std::string MapGenerator::objExtension = ".obj"; const std::string MapGenerator::breakableWallPath = MapGenerator::wallAssetsPath + "breakable_wall"; + const std::string MapGenerator::outerWallPath = MapGenerator::wallAssetsPath + "outer_wall"; const std::string MapGenerator::unbreakableWallPath = MapGenerator::wallAssetsPath + "unbreakable_wall"; const std::string MapGenerator::floorPath = MapGenerator::wallAssetsPath + "floor"; const std::string MapGenerator::secondFloorPath = MapGenerator::wallAssetsPath + "upper_floor"; @@ -145,58 +146,55 @@ namespace BBM void MapGenerator::generateWall(int width, int height, std::shared_ptr scene) { - static const std::string unbreakableObj = unbreakableWallPath + objExtension; - static const std::string unbreakablePnj = unbreakableWallPath + imageExtension; + static const std::string outerWallObj = unbreakableWallPath + objExtension; + static const std::string outerWallPnj = unbreakableWallPath + imageExtension; - for (int i = 0; i < height + 1; i++) { + for (int i = -1; i < height + 2; i++) { scene->addEntity("Bomb stopper") .addComponent(-1, 0, i) - .addComponent>(); + .addComponent>() + .addComponent(outerWallObj, false, + std::make_pair(MAP_DIFFUSE, outerWallPnj)); scene->addEntity("Bomb stopper") .addComponent(width + 1, 0, i) - .addComponent>(); + .addComponent>() + .addComponent(outerWallObj, false, + std::make_pair(MAP_DIFFUSE, outerWallPnj)); } for (int i = 0; i < width + 1; i++) { scene->addEntity("Bomb stopper") .addComponent(i, 0, -1) - .addComponent>(); + .addComponent>() + .addComponent(outerWallObj, false, + std::make_pair(MAP_DIFFUSE, outerWallPnj)); scene->addEntity("Bomb stopper") .addComponent(i, 0, height + 1) - .addComponent>(); + .addComponent>() + .addComponent(outerWallObj, false, + std::make_pair(MAP_DIFFUSE, outerWallPnj)); } scene->addEntity("Bottom Wall") .addComponent(Vector3f((width + 1) / 2, 0, -1)) .addComponent( WAL::Callback(), - &MapGenerator::wallCollision, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75)) - .addComponent(unbreakableObj, false, - std::make_pair(MAP_DIFFUSE, unbreakablePnj), - RAY::Vector3(width + 3, 1, 1)); + &MapGenerator::wallCollision, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75)); scene->addEntity("Upper Wall") .addComponent(Vector3f((width + 1) / 2, 0, height + 1)) .addComponent( WAL::Callback(), - &MapGenerator::wallCollision, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75)) - .addComponent(unbreakableObj, false, - std::make_pair(MAP_DIFFUSE, unbreakablePnj), - RAY::Vector3(width + 3, 1, 1)); + &MapGenerator::wallCollision, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75)); scene->addEntity("Left Wall") .addComponent(Vector3f(width + 1, 0, height / 2)) .addComponent( WAL::Callback(), - &MapGenerator::wallCollision, Vector3f(0.25, 0.25, -(height + 1) / 2 ), Vector3f(0.75, 2, height + 1)) - .addComponent(unbreakableObj, false, - std::make_pair(MAP_DIFFUSE, unbreakablePnj), - RAY::Vector3(1, 1, height + 1)); + &MapGenerator::wallCollision, Vector3f(0.25, 0.25, -(height + 1) / 2 ), Vector3f(0.75, 2, height + 1)); scene->addEntity("Right Wall") .addComponent(Vector3f(-1, 0, height / 2)) .addComponent( WAL::Callback(), - &MapGenerator::wallCollision, Vector3f(0.25, 0.25, -(height + 1) / 2 ), Vector3f(0.75, 2, height + 1)) - .addComponent(unbreakableObj, false, - std::make_pair(MAP_DIFFUSE, unbreakablePnj), - RAY::Vector3(1, 1, height + 1)); + &MapGenerator::wallCollision, Vector3f(0.25, 0.25, -(height + 1) / 2 ), Vector3f(0.75, 2, height + 1)); + } void MapGenerator::generateFloor(MapBlock map, int width, int height, std::shared_ptr scene) @@ -331,13 +329,13 @@ namespace BBM map[std::make_tuple(x, y, z - 1)] == blockType); } - MapGenerator::BlockType MapGenerator::getRandomBlockType() + MapGenerator::BlockType MapGenerator::getRandomBlockType(bool hasHeight) { double rnd = static_cast(std::rand()) / RAND_MAX; - if (rnd > 0.98) + if (rnd > 0.98 && !hasHeight) return HOLE; - if (rnd > 0.25) + if ((!hasHeight && rnd > 0.25) || rnd > 0.7) return BREAKABLE; return NOTHING; } @@ -446,7 +444,7 @@ namespace BBM if (isCloseToBlockType(map, i, 0, j, SPAWNER)) { map[std::make_tuple(i, isNotClassic ? -1 : 0, j)] = isNotClassic ? BUMPER : NOTHING; } else { - map[std::make_tuple(i, 0, j)] = getRandomBlockType(); + map[std::make_tuple(i, 0, j)] = getRandomBlockType(isHeight); } if (map[std::make_tuple(i, 0, j)] == UNBREAKABLE && isCloseToBlockType(map, i, 0, j, UNBREAKABLE)) map[std::make_tuple(i, 0, j)] = BREAKABLE; @@ -501,7 +499,7 @@ namespace BBM .addComponent(Vector3f(width / 2 - width / 4, 0, height / 2 - height / 4)) .addComponent( WAL::Callback(), - &MapGenerator::wallCollided, Vector3f(0.25, 0.25, 0.25),Vector3f(width, 0.75, height / 2 + height / 4)); + &MapGenerator::wallCollided, Vector3f(0.25, 0.25, 0.25),Vector3f(width / 2 + width / 4, 0.75, height / 2 + height / 4)); } void MapGenerator::loadMap(int width, int height, MapBlock map, const std::shared_ptr &scene) diff --git a/sources/Map/Map.hpp b/sources/Map/Map.hpp index ff7b712e..0606cb54 100644 --- a/sources/Map/Map.hpp +++ b/sources/Map/Map.hpp @@ -49,7 +49,7 @@ namespace BBM using MapBlock = std::map, BlockType>; //! @brief Generate random block type - static BlockType getRandomBlockType(); + static BlockType getRandomBlockType(bool = false); //! @param map ASCII map //! @param x x index on the block @@ -160,6 +160,8 @@ namespace BBM static const std::string unbreakableWallPath; + static const std::string outerWallPath; + static const std::string breakableWallPath; static const std::string floorPath; From 85bf8565079dcb7802a18ad8e6a5ae69f68d4c49 Mon Sep 17 00:00:00 2001 From: Askou Date: Thu, 17 Jun 2021 17:23:28 +0200 Subject: [PATCH 05/15] remove unbreakbable on height --- sources/Map/Map.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index d1d70223..3d20ef71 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -450,10 +450,12 @@ namespace BBM map[std::make_tuple(i, 0, j)] = BREAKABLE; } } - if (!isNotClassic) - map = createClassicUnbreakable(map, width, height); - else - map = createLongClassicUnbreakable(map, width, height); + if (!isHeight) { + if (!isNotClassic) + map = createClassicUnbreakable(map, width, height); + else + map = createLongClassicUnbreakable(map, width, height); + } if (isHeight) map = createHeight(map, width, height); map = cleanBreakable(map, width, height); @@ -461,7 +463,7 @@ namespace BBM } void MapGenerator::generateHeightCollision(MapBlock map, int width, int height, std::shared_ptr scene) - { + { int floor = 2; for (int i = 0; i < width + 1; i++) { From dfc42ced60d9f946605b8155a39d4df604ae3079 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Thu, 17 Jun 2021 17:32:46 +0200 Subject: [PATCH 06/15] Cleaning up the cmake --- CMakeLists.txt | 4 ++-- sources/Component/Animation/AnimationsComponent.hpp | 4 ++++ sources/System/Animation/AnimationsSystem.cpp | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77a13829..287d2096 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,8 @@ project(bomberman) set(CMAKE_CXX_STANDARD 20) -set(CMAKE_C_FLAGS -O2) -set(CMAKE_CXX_FLAGS -O2) +set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -g") +set(CMAKE_CXX_FLAGS_RELEASE "-O2") include_directories(lib/Ray/sources) include_directories(lib/wal/sources) diff --git a/sources/Component/Animation/AnimationsComponent.hpp b/sources/Component/Animation/AnimationsComponent.hpp index a1daa591..41d9c10e 100644 --- a/sources/Component/Animation/AnimationsComponent.hpp +++ b/sources/Component/Animation/AnimationsComponent.hpp @@ -20,7 +20,11 @@ namespace BBM int _currentAnimIndex; //! @brief Bool allowing to play pause an animation bool _animDisabled; + public: + //! @brief Should the next update call be skipped? + bool skipNext = false; + //! @inherit WAL::Component *clone(WAL::Entity &entity) const override; diff --git a/sources/System/Animation/AnimationsSystem.cpp b/sources/System/Animation/AnimationsSystem.cpp index df641307..75923741 100644 --- a/sources/System/Animation/AnimationsSystem.cpp +++ b/sources/System/Animation/AnimationsSystem.cpp @@ -21,9 +21,11 @@ namespace BBM auto &anim = entity.get(); static int count = 0; - count++; - if (count % 2) + if (anim.skipNext) { + anim.skipNext = false; return; + } + anim.skipNext = true; if (anim.isDisabled()) return; From 01afcde9dfd04673996b94c6cd1c9fc7b23bc33a Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Thu, 17 Jun 2021 18:03:31 +0200 Subject: [PATCH 07/15] Fixing the CI --- .github/workflows/build.yml | 2 +- CMakeLists.txt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 25ab6fac..e930bed1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: - name: Build run: | mkdir build && cd build - cmake .. + cmake .. -DCMAKE_BUILD_TYPE=Debug cmake --build . - name: CheckBinaryName shell: bash diff --git a/CMakeLists.txt b/CMakeLists.txt index 287d2096..a7e512dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,9 @@ project(bomberman) set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -g") +if (CMAKE_COMPILER_IS_GNUCC) + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -g") +endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") include_directories(lib/Ray/sources) From 6925d633092904f57f465307278d8c6e9f33334f Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 17 Jun 2021 18:21:43 +0200 Subject: [PATCH 08/15] add strict compilation flags --- CMakeLists.txt | 4 +- a | 266 -------------------------------------- sources/Runner/Runner.cpp | 6 +- text | 70 ++++++++++ 4 files changed, 77 insertions(+), 269 deletions(-) delete mode 100644 a create mode 100644 text diff --git a/CMakeLists.txt b/CMakeLists.txt index 287d2096..45532774 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,8 @@ project(bomberman) set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -g") -set(CMAKE_CXX_FLAGS_RELEASE "-O2") +set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -Werror -W -g") +set(CMAKE_CXX_FLAGS_RELEASE "-O2 -D RELEASE -Wno-dev") include_directories(lib/Ray/sources) include_directories(lib/wal/sources) diff --git a/a b/a deleted file mode 100644 index 0e66280b..00000000 --- a/a +++ /dev/null @@ -1,266 +0,0 @@ -WARNING: SHADER: [ID 5] Failed to find shader attribute: vertexTexCoord2 -WARNING: SHADER: [ID 5] Failed to find shader attribute: vertexNormal -WARNING: SHADER: [ID 5] Failed to find shader attribute: vertexTangent -WARNING: SHADER: [ID 5] Failed to find shader attribute: vertexColor -WARNING: SHADER: [ID 5] Failed to find shader uniform: view -WARNING: SHADER: [ID 5] Failed to find shader uniform: projection -WARNING: SHADER: [ID 5] Failed to find shader uniform: matNormal -WARNING: SHADER: [ID 5] Failed to find shader uniform: colDiffuse -WARNING: SHADER: [ID 5] Failed to find shader uniform: texture1 -WARNING: SHADER: [ID 5] Failed to find shader uniform: texture2 -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader attribute: vertexTexCoord2 -WARNING: SHADER: [ID 8] Failed to find shader attribute: vertexTangent -WARNING: SHADER: [ID 8] Failed to find shader attribute: vertexColor -WARNING: SHADER: [ID 8] Failed to find shader uniform: view -WARNING: SHADER: [ID 8] Failed to find shader uniform: projection -WARNING: SHADER: [ID 8] Failed to find shader uniform: matNormal -WARNING: SHADER: [ID 8] Failed to find shader uniform: colDiffuse -WARNING: SHADER: [ID 8] Failed to find shader uniform: texture1 -WARNING: SHADER: [ID 8] Failed to find shader uniform: texture2 -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 5] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask -WARNING: SHADER: [ID 8] Failed to find shader uniform: mask diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index e9229812..a8224e78 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -107,7 +107,7 @@ namespace BBM .addSystem() .addSystem() .addSystem() -// .addSystem() + .addSystem() .addSystem() .addSystem() .addSystem(); @@ -115,7 +115,11 @@ namespace BBM void Runner::enableRaylib(WAL::Wal &wal) { + #ifdef RELEASE + RAY::TraceLog::setLevel(LOG_NONE); + #else RAY::TraceLog::setLevel(LOG_WARNING); + #endif RAY::Window &window = RAY::Window::getInstance(1280, 720, "Bomberman", FLAG_WINDOW_RESIZABLE); wal.addSystem() .addSystem() diff --git a/text b/text new file mode 100644 index 00000000..eee88bb4 --- /dev/null +++ b/text @@ -0,0 +1,70 @@ +-- Populating raylib +-- Configuring done +-- Generating done +-- Build files have been written to: /home/arthurjamet/Desktop/B4/YEP/Bomberman/build/_deps/raylib-subbuild +[100%] Built target raylib-populate +-- Testing if -Werror=pointer-arith can be used -- compiles +-- Testing if -Werror=implicit-function-declaration can be used -- compiles +-- Testing if -fno-strict-aliasing can be used -- compiles +-- Using raylib's GLFW +-- Using X11 for window creation +-- Audio Backend: miniaudio +-- Building raylib static library +-- Generated build type: Debug +-- Compiling with the flags: +-- PLATFORM=PLATFORM_DESKTOP +-- GRAPHICS=GRAPHICS_API_OPENGL_33 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/arthurjamet/Desktop/B4/YEP/Bomberman/build +[ 1%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Entity/Entity.cpp.o +[ 3%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Scene/Scene.cpp.o +[ 3%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Exception/WalError.cpp.o +[ 3%] Building CXX object lib/LuaGate/CMakeFiles/LuaGate.dir/sources/LuaGate.cpp.o +[ 3%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Component/Component.cpp.o +[ 15%] Built target glfw +[ 20%] Built target raylib +[ 20%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Color.cpp.o +[ 20%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Font.cpp.o +[ 21%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/TraceLog.cpp.o +[ 21%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Window.cpp.o +[ 23%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Audio/Music.cpp.o +[ 23%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Audio/Sound.cpp.o +[ 23%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Camera/Camera3D.cpp.o +[ 25%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Camera/Camera2D.cpp.o +[ 25%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Controllers/Gamepad.cpp.o +[ 26%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Controllers/Keyboard.cpp.o +[ 28%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Circle.cpp.o +[ 28%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Controllers/Mouse.cpp.o +[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Point.cpp.o +[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Line.cpp.o +[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Rectangle.cpp.o +[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Text.cpp.o +[ 31%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Triangle.cpp.o +[ 31%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Circle.cpp.o +[ 32%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Cube.cpp.o +[ 32%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Cylinder.cpp.o +[ 34%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Grid.cpp.o +[ 34%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Line.cpp.o +[ 34%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Plane.cpp.o +[ 35%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Point.cpp.o +[ 35%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Ray.cpp.o +[ 35%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/ADrawable2D.cpp.o +[ 37%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Sphere.cpp.o +[ 37%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Triangle.cpp.o +[ 39%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/ADrawable3D.cpp.o +[ 39%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/Image.cpp.o +[ 40%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/Texture.cpp.o +[ 40%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Exceptions/RayError.cpp.o +[ 42%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Model/Model.cpp.o +[ 42%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Model/ModelAnimation.cpp.o +[ 43%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Model/ModelAnimations.cpp.o +[ 43%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Vector/Vector2.cpp.o +[ 43%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Vector/Vector3.cpp.o +[ 45%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Shaders/Shaders.cpp.o +[ 45%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Meshes/MeshSphere.cpp.o +[ 46%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Meshes/AMesh.cpp.o +[ 46%] Linking CXX static library libLuaGate.a +[ 46%] Built target LuaGate +[ 46%] Linking CXX static library libray.a +[ 46%] Built target ray From 94508fa4f5049d203510195d471e9e40f17f230c Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 17 Jun 2021 18:21:50 +0200 Subject: [PATCH 09/15] add strict compilation flags --- text | 70 ------------------------------------------------------------ 1 file changed, 70 deletions(-) delete mode 100644 text diff --git a/text b/text deleted file mode 100644 index eee88bb4..00000000 --- a/text +++ /dev/null @@ -1,70 +0,0 @@ --- Populating raylib --- Configuring done --- Generating done --- Build files have been written to: /home/arthurjamet/Desktop/B4/YEP/Bomberman/build/_deps/raylib-subbuild -[100%] Built target raylib-populate --- Testing if -Werror=pointer-arith can be used -- compiles --- Testing if -Werror=implicit-function-declaration can be used -- compiles --- Testing if -fno-strict-aliasing can be used -- compiles --- Using raylib's GLFW --- Using X11 for window creation --- Audio Backend: miniaudio --- Building raylib static library --- Generated build type: Debug --- Compiling with the flags: --- PLATFORM=PLATFORM_DESKTOP --- GRAPHICS=GRAPHICS_API_OPENGL_33 --- Configuring done --- Generating done --- Build files have been written to: /home/arthurjamet/Desktop/B4/YEP/Bomberman/build -[ 1%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Entity/Entity.cpp.o -[ 3%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Scene/Scene.cpp.o -[ 3%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Exception/WalError.cpp.o -[ 3%] Building CXX object lib/LuaGate/CMakeFiles/LuaGate.dir/sources/LuaGate.cpp.o -[ 3%] Building CXX object lib/wal/CMakeFiles/wal.dir/sources/Component/Component.cpp.o -[ 15%] Built target glfw -[ 20%] Built target raylib -[ 20%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Color.cpp.o -[ 20%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Font.cpp.o -[ 21%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/TraceLog.cpp.o -[ 21%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Window.cpp.o -[ 23%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Audio/Music.cpp.o -[ 23%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Audio/Sound.cpp.o -[ 23%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Camera/Camera3D.cpp.o -[ 25%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Camera/Camera2D.cpp.o -[ 25%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Controllers/Gamepad.cpp.o -[ 26%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Controllers/Keyboard.cpp.o -[ 28%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Circle.cpp.o -[ 28%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Controllers/Mouse.cpp.o -[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Point.cpp.o -[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Line.cpp.o -[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Rectangle.cpp.o -[ 29%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Text.cpp.o -[ 31%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/2D/Triangle.cpp.o -[ 31%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Circle.cpp.o -[ 32%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Cube.cpp.o -[ 32%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Cylinder.cpp.o -[ 34%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Grid.cpp.o -[ 34%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Line.cpp.o -[ 34%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Plane.cpp.o -[ 35%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Point.cpp.o -[ 35%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Ray.cpp.o -[ 35%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/ADrawable2D.cpp.o -[ 37%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Sphere.cpp.o -[ 37%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/3D/Triangle.cpp.o -[ 39%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/ADrawable3D.cpp.o -[ 39%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/Image.cpp.o -[ 40%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Drawables/Texture.cpp.o -[ 40%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Exceptions/RayError.cpp.o -[ 42%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Model/Model.cpp.o -[ 42%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Model/ModelAnimation.cpp.o -[ 43%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Model/ModelAnimations.cpp.o -[ 43%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Vector/Vector2.cpp.o -[ 43%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Vector/Vector3.cpp.o -[ 45%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Shaders/Shaders.cpp.o -[ 45%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Meshes/MeshSphere.cpp.o -[ 46%] Building CXX object lib/Ray/CMakeFiles/ray.dir/sources/Meshes/AMesh.cpp.o -[ 46%] Linking CXX static library libLuaGate.a -[ 46%] Built target LuaGate -[ 46%] Linking CXX static library libray.a -[ 46%] Built target ray From 1cf820bf87b527517b4beea5112d80e374fde1d4 Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 17 Jun 2021 19:24:49 +0200 Subject: [PATCH 10/15] fix compile errors --- CMakeLists.txt | 4 ++-- lib/wal/CMakeLists.txt | 5 +++++ lib/wal/sources/Entity/Entity.cpp | 8 ++++---- lib/wal/sources/Scene/Scene.cpp | 4 ++-- sources/Component/Button/ButtonComponent.hpp | 2 +- sources/Models/Vector2.hpp | 4 ++-- sources/Models/Vector3.hpp | 4 ++-- 7 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fda7fff..5a2f7504 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,8 @@ project(bomberman) set(CMAKE_CXX_STANDARD 20) -if (CMAKE_COMPILER_IS_GNUCC) - set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Werror -g") +if (CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -Wno-unused-param -W -Werror -g") endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") diff --git a/lib/wal/CMakeLists.txt b/lib/wal/CMakeLists.txt index 9c30796f..c9227eab 100644 --- a/lib/wal/CMakeLists.txt +++ b/lib/wal/CMakeLists.txt @@ -3,6 +3,11 @@ project(wal) set(CMAKE_CXX_STANDARD 20) +if (CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Werror -Wno-unused-param -g") +endif() +set(CMAKE_CXX_FLAGS_RELEASE "-O2") + add_library(wal sources/Entity/Entity.hpp sources/Component/Component.hpp diff --git a/lib/wal/sources/Entity/Entity.cpp b/lib/wal/sources/Entity/Entity.cpp index 0142a4aa..5804cdf6 100644 --- a/lib/wal/sources/Entity/Entity.cpp +++ b/lib/wal/sources/Entity/Entity.cpp @@ -13,17 +13,17 @@ namespace WAL Entity::Entity(Scene &scene, std::string name, bool notifyScene) : _uid(Entity::nextID++), - _scene(scene), _name(std::move(name)), - _notifyScene(notifyScene) + _notifyScene(notifyScene), + _scene(scene) { } Entity::Entity(const Entity &other) : _uid(Entity::nextID++), - _scene(other._scene), _name(other._name), _disabled(other._disabled), - _notifyScene(other._notifyScene) + _notifyScene(other._notifyScene), + _scene(other._scene) { for (const auto &cmp : other._components) this->addComponent(*cmp.second); diff --git a/lib/wal/sources/Scene/Scene.cpp b/lib/wal/sources/Scene/Scene.cpp index aab82e82..647c5087 100644 --- a/lib/wal/sources/Scene/Scene.cpp +++ b/lib/wal/sources/Scene/Scene.cpp @@ -34,8 +34,8 @@ namespace WAL for (auto &view : this->_views) { if (std::find(view->getTypes().begin(), view->getTypes().end(), type) == view->getTypes().end()) continue; - bool valid = std::all_of(view->getTypes().begin(), view->getTypes().end(), [&entity](const auto &type){ - return entity.hasComponent(type); + bool valid = std::all_of(view->getTypes().begin(), view->getTypes().end(), [&entity](const auto <ype){ + return entity.hasComponent(ltype); }); if (valid) view->emplace_back(entity); diff --git a/sources/Component/Button/ButtonComponent.hpp b/sources/Component/Button/ButtonComponent.hpp index 42055be6..c7fda66d 100644 --- a/sources/Component/Button/ButtonComponent.hpp +++ b/sources/Component/Button/ButtonComponent.hpp @@ -44,7 +44,7 @@ namespace BBM //! @brief Constructor with the 3 callback ButtonComponent(WAL::Entity &entity, WAL::Callback callback) : WAL::Component(entity), - onEvent(callback), _up(nullptr), _down(nullptr), _left(nullptr), _right(nullptr) + onEvent(callback), _up(nullptr), _down(nullptr), _right(nullptr), _left(nullptr) { } ButtonComponent &setButtonLinks(WAL::Entity *up = nullptr, WAL::Entity *down = nullptr, diff --git a/sources/Models/Vector2.hpp b/sources/Models/Vector2.hpp index b3dacf2b..0f27fe3a 100644 --- a/sources/Models/Vector2.hpp +++ b/sources/Models/Vector2.hpp @@ -29,8 +29,8 @@ namespace BBM {} //! @brief Create a new vector2 representing a specific coordinate. - Vector2(T x, T y) - : x(x), y(y) + Vector2(T _x, T _y) + : x(_x), y(_y) {} //! @brief A default destructor diff --git a/sources/Models/Vector3.hpp b/sources/Models/Vector3.hpp index 3f6ef2cf..f3549465 100644 --- a/sources/Models/Vector3.hpp +++ b/sources/Models/Vector3.hpp @@ -29,8 +29,8 @@ namespace BBM {} //! @brief Create a new vector3 representing a specific coordinate. - Vector3(T x, T y, T z) - : x(x), y(y), z(z) + Vector3(T _x, T _y, T _z) + : x(_x), y(_y), z(_z) {} //! @brief A default destructor From 051096a194836d901e5915f38cc98ce464f715ad Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 17 Jun 2021 20:50:43 +0200 Subject: [PATCH 11/15] fix compile errors --- CMakeLists.txt | 2 +- lib/Ray/CMakeLists.txt | 6 +-- lib/wal/CMakeLists.txt | 2 +- sources/Component/Bomb/BasicBombComponent.cpp | 6 +-- sources/Component/Bomb/BasicBombComponent.hpp | 2 +- .../BombHolder/BombHolderComponent.cpp | 4 +- .../Collision/CollisionComponent.cpp | 38 +++++++++---------- sources/Component/Color/ColorComponent.cpp | 4 +- sources/Component/Color/ColorComponent.hpp | 2 +- sources/Component/Health/HealthComponent.cpp | 4 +- sources/Component/Health/HealthComponent.hpp | 2 +- .../Component/Keyboard/KeyboardComponent.cpp | 4 +- .../Component/Keyboard/KeyboardComponent.hpp | 2 +- .../Component/Levitate/LevitateComponent.cpp | 4 +- .../Component/Levitate/LevitateComponent.hpp | 2 +- sources/Component/Lobby/LobbyComponent.cpp | 8 ++-- sources/Component/Lobby/LobbyComponent.hpp | 2 +- sources/Component/Music/MusicComponent.cpp | 4 +- .../Component/Renderer/CameraComponent.cpp | 4 +- .../Component/Renderer/CameraComponent.hpp | 2 +- .../Renderer/Drawable2DComponent.hpp | 16 ++++---- .../Renderer/Drawable3DComponent.hpp | 4 +- sources/Component/Shaders/ShaderComponent.cpp | 20 +++++----- sources/Component/Sound/SoundComponent.cpp | 10 ++--- sources/Component/Timer/TimerComponent.cpp | 6 +-- sources/Component/Timer/TimerComponent.hpp | 2 +- sources/Map/Map.cpp | 6 +-- sources/Map/MapInfo.cpp | 4 +- sources/Runner/CreditScene.cpp | 12 +++--- sources/Runner/GameScene.cpp | 4 +- sources/Runner/HowToPlayScene.cpp | 2 +- sources/Runner/Runner.cpp | 1 - sources/Runner/ScoreScene.cpp | 8 ++-- sources/Runner/SplashScreenScene.cpp | 8 ++-- sources/System/Animation/AnimationsSystem.cpp | 1 - sources/System/Animator/AnimatorSystem.cpp | 2 +- .../System/BombHolder/BombHolderSystem.cpp | 20 +++++----- sources/System/Bonus/PlayerBonusSystem.cpp | 2 - .../GridCentered/GridCenteredSystem.cpp | 5 +-- .../IntroAnimation/IntroAnimationSystem.cpp | 4 +- .../IntroAnimation/IntroAnimationSystem.hpp | 4 -- sources/System/Lobby/LobbySystem.cpp | 2 +- sources/System/Renderer/CameraSystem.cpp | 14 +++---- 43 files changed, 124 insertions(+), 137 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a2f7504..ab315dbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(bomberman) set(CMAKE_CXX_STANDARD 20) if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -Wno-unused-param -W -Werror -g") + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -Wno-unused-parameter -W -Werror -g") endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") diff --git a/lib/Ray/CMakeLists.txt b/lib/Ray/CMakeLists.txt index 11540070..45042747 100644 --- a/lib/Ray/CMakeLists.txt +++ b/lib/Ray/CMakeLists.txt @@ -7,9 +7,9 @@ project("${LIB_NAME}") include_directories(${LIB_NAME} ./sources) if (CMAKE_COMPILER_IS_GNUCXX) - set(GCC_COVERAGE_COMPILE_FLAGS "-Wall -Wextra -Werror -Wshadow") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") -endif () + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Werror -Wno-unused-parameter -g") +endif() +set(CMAKE_CXX_FLAGS_RELEASE "-O2") set(HEADERS sources/Color.hpp diff --git a/lib/wal/CMakeLists.txt b/lib/wal/CMakeLists.txt index c9227eab..465ede45 100644 --- a/lib/wal/CMakeLists.txt +++ b/lib/wal/CMakeLists.txt @@ -4,7 +4,7 @@ project(wal) set(CMAKE_CXX_STANDARD 20) if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Werror -Wno-unused-param -g") + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Werror -Wno-unused-parameter -g") endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") diff --git a/sources/Component/Bomb/BasicBombComponent.cpp b/sources/Component/Bomb/BasicBombComponent.cpp index 9de464d7..d961f37c 100644 --- a/sources/Component/Bomb/BasicBombComponent.cpp +++ b/sources/Component/Bomb/BasicBombComponent.cpp @@ -8,10 +8,10 @@ namespace BBM { - BasicBombComponent::BasicBombComponent(WAL::Entity &entity, int damage, int explosionRadius, std::vector ignored) + BasicBombComponent::BasicBombComponent(WAL::Entity &entity, int damageHit, int radius, std::vector ignored) : WAL::Component(entity), - damage(damage), - explosionRadius(explosionRadius), + explosionRadius(radius), + damage(damageHit), ignoredEntities(std::move(ignored)) {} diff --git a/sources/Component/Bomb/BasicBombComponent.hpp b/sources/Component/Bomb/BasicBombComponent.hpp index 5d3838c8..ca1831a7 100644 --- a/sources/Component/Bomb/BasicBombComponent.hpp +++ b/sources/Component/Bomb/BasicBombComponent.hpp @@ -26,7 +26,7 @@ namespace BBM WAL::Component *clone(WAL::Entity &entity) const override; //! @brief A component can't be instantiated, it should be derived. - explicit BasicBombComponent(WAL::Entity &entity, int damage, int explosionRadius, std::vector ignored); + explicit BasicBombComponent(WAL::Entity &entity, int damageHit, int radius, std::vector ignored); //! @brief A component can't be instantiated, it should be derived. BasicBombComponent(const BasicBombComponent &) = default; diff --git a/sources/Component/BombHolder/BombHolderComponent.cpp b/sources/Component/BombHolder/BombHolderComponent.cpp index 9f75b8ae..13480cda 100644 --- a/sources/Component/BombHolder/BombHolderComponent.cpp +++ b/sources/Component/BombHolder/BombHolderComponent.cpp @@ -12,9 +12,9 @@ namespace BBM : WAL::Component(entity) {} - BombHolderComponent::BombHolderComponent(WAL::Entity &entity, unsigned int maxBombCount) + BombHolderComponent::BombHolderComponent(WAL::Entity &entity, unsigned int maxCount) : WAL::Component(entity), - maxBombCount(maxBombCount) + maxBombCount(maxCount) {} WAL::Component *BombHolderComponent::clone(WAL::Entity &entity) const diff --git a/sources/Component/Collision/CollisionComponent.cpp b/sources/Component/Collision/CollisionComponent.cpp index 759e6d21..8f12113d 100644 --- a/sources/Component/Collision/CollisionComponent.cpp +++ b/sources/Component/Collision/CollisionComponent.cpp @@ -16,43 +16,43 @@ namespace BBM } CollisionComponent::CollisionComponent(WAL::Entity &entity, - const WAL::Callback &onCollide, - const WAL::Callback &onCollided, - Vector3f positionOffset, - Vector3f bound) + const WAL::Callback &onCollideCallback, + const WAL::Callback &onCollidedCallback, + Vector3f positionOffsetVector, + Vector3f boundVector) : WAL::Component(entity), - onCollide(onCollide), - onCollided(onCollided), - bound(bound), - positionOffset(positionOffset) + onCollide(onCollideCallback), + onCollided(onCollidedCallback), + bound(boundVector), + positionOffset(positionOffsetVector) {} CollisionComponent::CollisionComponent(WAL::Entity &entity, - const WAL::Callback &onCollide, - const WAL::Callback &onCollided, - float positionOffset, + const WAL::Callback &onCollideCallback, + const WAL::Callback &onCollidedCallback, + float positionOffsetFloat, float boundSize) : WAL::Component(entity), - onCollide(onCollide), - onCollided(onCollided), + onCollide(onCollideCallback), + onCollided(onCollidedCallback), bound({boundSize, boundSize, boundSize}), - positionOffset({positionOffset, positionOffset, positionOffset}) + positionOffset({positionOffsetFloat, positionOffsetFloat, positionOffsetFloat}) {} - CollisionComponent::CollisionComponent(WAL::Entity &entity, Vector3f positionOffset, Vector3f bound) + CollisionComponent::CollisionComponent(WAL::Entity &entity, Vector3f positionOffsetVector, Vector3f boundVector) : WAL::Component(entity), onCollide(), onCollided(), - bound(bound), - positionOffset(positionOffset) + bound(boundVector), + positionOffset(positionOffsetVector) {} - CollisionComponent::CollisionComponent(WAL::Entity &entity, float positionOffset, float boundSize) + CollisionComponent::CollisionComponent(WAL::Entity &entity, float positionOffsetFloat, float boundSize) : WAL::Component(entity), onCollide(), onCollided(), bound({boundSize, boundSize, boundSize}), - positionOffset({positionOffset, positionOffset, positionOffset}) + positionOffset({positionOffsetFloat, positionOffsetFloat, positionOffsetFloat}) {} CollisionComponent::CollidedAxis operator|(CollisionComponent::CollidedAxis first, diff --git a/sources/Component/Color/ColorComponent.cpp b/sources/Component/Color/ColorComponent.cpp index 994f7f10..5d2ec1ac 100644 --- a/sources/Component/Color/ColorComponent.cpp +++ b/sources/Component/Color/ColorComponent.cpp @@ -7,9 +7,9 @@ namespace BBM { - ColorComponent::ColorComponent(WAL::Entity &entity, RAY::Color color) + ColorComponent::ColorComponent(WAL::Entity &entity, RAY::Color componentColor) : Component(entity), - color(color) + color(componentColor) {} ColorComponent::ColorComponent(WAL::Entity &entity, unsigned char r, unsigned char g, unsigned char b, unsigned char a) diff --git a/sources/Component/Color/ColorComponent.hpp b/sources/Component/Color/ColorComponent.hpp index d75b5818..7b269ca2 100644 --- a/sources/Component/Color/ColorComponent.hpp +++ b/sources/Component/Color/ColorComponent.hpp @@ -20,7 +20,7 @@ namespace BBM WAL::Component *clone(WAL::Entity &entity) const override; //! @brief Create a new ColorComponent at a certain color - ColorComponent(WAL::Entity &entity, RAY::Color color); + ColorComponent(WAL::Entity &entity, RAY::Color componentColor); //! @brief Create a new ColorComponent at a certain color ColorComponent(WAL::Entity &entity, unsigned char r, unsigned char g, unsigned char b, unsigned char a); //! @brief A color component is copy constructable diff --git a/sources/Component/Health/HealthComponent.cpp b/sources/Component/Health/HealthComponent.cpp index 9063520b..9b0013b5 100644 --- a/sources/Component/Health/HealthComponent.cpp +++ b/sources/Component/Health/HealthComponent.cpp @@ -10,10 +10,10 @@ namespace BBM { - HealthComponent::HealthComponent(WAL::Entity &entity, unsigned int healthPoint, const WAL::Callback &onDeath) + HealthComponent::HealthComponent(WAL::Entity &entity, unsigned int healthPoint, const WAL::Callback &onDeathCallback) : WAL::Component(entity), _healthPoint(healthPoint), - onDeath(onDeath) + onDeath(onDeathCallback) {} WAL::Component *HealthComponent::clone(WAL::Entity &entity) const diff --git a/sources/Component/Health/HealthComponent.hpp b/sources/Component/Health/HealthComponent.hpp index 3be3c979..5d32d527 100644 --- a/sources/Component/Health/HealthComponent.hpp +++ b/sources/Component/Health/HealthComponent.hpp @@ -37,7 +37,7 @@ namespace BBM WAL::Component *clone(WAL::Entity &entity) const override; //! @brief Constructor - HealthComponent(WAL::Entity &entity, unsigned int healthPoint, const WAL::Callback &onDeath = WAL::Callback()); + HealthComponent(WAL::Entity &entity, unsigned int healthPoint, const WAL::Callback &onDeathCallback = WAL::Callback()); //! @brief A Health component can't be instantiated, it should be derived. HealthComponent(const HealthComponent &) = default; diff --git a/sources/Component/Keyboard/KeyboardComponent.cpp b/sources/Component/Keyboard/KeyboardComponent.cpp index ba5f6f8f..632300be 100644 --- a/sources/Component/Keyboard/KeyboardComponent.cpp +++ b/sources/Component/Keyboard/KeyboardComponent.cpp @@ -8,8 +8,8 @@ namespace BBM { - KeyboardComponent::KeyboardComponent(WAL::Entity &entity, ControllableComponent::Layout layout) - : WAL::Component(entity), layout(layout) + KeyboardComponent::KeyboardComponent(WAL::Entity &entity, ControllableComponent::Layout controllerLayout) + : WAL::Component(entity), layout(controllerLayout) { if (layout == ControllableComponent::KEYBOARD_0) { this->keyUp = KEY_W; diff --git a/sources/Component/Keyboard/KeyboardComponent.hpp b/sources/Component/Keyboard/KeyboardComponent.hpp index eebe85e1..d7608ed5 100644 --- a/sources/Component/Keyboard/KeyboardComponent.hpp +++ b/sources/Component/Keyboard/KeyboardComponent.hpp @@ -40,7 +40,7 @@ namespace BBM void onStart() override; //! @brief Create a new keyboard component using custom keys. - explicit KeyboardComponent(WAL::Entity &entity, ControllableComponent::Layout layout = ControllableComponent::Layout::KEYBOARD_0); + explicit KeyboardComponent(WAL::Entity &entity, ControllableComponent::Layout controllerLayout = ControllableComponent::Layout::KEYBOARD_0); //! @brief A Keyboard component is copy constructable. KeyboardComponent(const KeyboardComponent &) = default; diff --git a/sources/Component/Levitate/LevitateComponent.cpp b/sources/Component/Levitate/LevitateComponent.cpp index 1e6f3c5f..9d0b9ff8 100644 --- a/sources/Component/Levitate/LevitateComponent.cpp +++ b/sources/Component/Levitate/LevitateComponent.cpp @@ -11,9 +11,9 @@ namespace BBM y() {} - LevitateComponent::LevitateComponent(WAL::Entity &entity, float y) + LevitateComponent::LevitateComponent(WAL::Entity &entity, float entityY) : WAL::Component(entity), - y(y) + y(entityY) {} WAL::Component *LevitateComponent::clone(WAL::Entity &entity) const diff --git a/sources/Component/Levitate/LevitateComponent.hpp b/sources/Component/Levitate/LevitateComponent.hpp index d2868956..81875f72 100644 --- a/sources/Component/Levitate/LevitateComponent.hpp +++ b/sources/Component/Levitate/LevitateComponent.hpp @@ -24,7 +24,7 @@ namespace BBM { explicit LevitateComponent(WAL::Entity &entity); //! @brief Create a new levitate component. - LevitateComponent(WAL::Entity &entity, float y); + LevitateComponent(WAL::Entity &entity, float entityY); //! @brief A Levitate component is copy constructable. LevitateComponent(const LevitateComponent &) = default; diff --git a/sources/Component/Lobby/LobbyComponent.cpp b/sources/Component/Lobby/LobbyComponent.cpp index a945f112..34be3425 100644 --- a/sources/Component/Lobby/LobbyComponent.cpp +++ b/sources/Component/Lobby/LobbyComponent.cpp @@ -6,11 +6,11 @@ namespace BBM { - LobbyComponent::LobbyComponent(WAL::Entity &entity, int playerID, WAL::Entity &readyButton, WAL::Entity &coloredTile) + LobbyComponent::LobbyComponent(WAL::Entity &entity, int playerNumber, WAL::Entity &button, WAL::Entity &tile) : WAL::Component(entity), - playerID(playerID), - readyButton(readyButton), - coloredTile(coloredTile) + playerID(playerNumber), + readyButton(button), + coloredTile(tile) {} WAL::Component *LobbyComponent::clone(WAL::Entity &entity) const diff --git a/sources/Component/Lobby/LobbyComponent.hpp b/sources/Component/Lobby/LobbyComponent.hpp index 4061d1ce..961b5d78 100644 --- a/sources/Component/Lobby/LobbyComponent.hpp +++ b/sources/Component/Lobby/LobbyComponent.hpp @@ -33,7 +33,7 @@ namespace BBM Component *clone(WAL::Entity &entity) const override; //! @brief Create a new lobby component. - explicit LobbyComponent(WAL::Entity &entity, int playerID, WAL::Entity &readyButton, WAL::Entity &coloredTile); + explicit LobbyComponent(WAL::Entity &entity, int playerNumber, WAL::Entity &button, WAL::Entity &tile); //! @brief A lobby component is copyable. LobbyComponent(const LobbyComponent &) = default; //! @brief A default destructor diff --git a/sources/Component/Music/MusicComponent.cpp b/sources/Component/Music/MusicComponent.cpp index ae6a9151..32eb6120 100644 --- a/sources/Component/Music/MusicComponent.cpp +++ b/sources/Component/Music/MusicComponent.cpp @@ -11,8 +11,8 @@ namespace BBM MusicComponent::MusicComponent(WAL::Entity &entity, const std::string &musicPath) : WAL::Component(entity), - _musicPath(musicPath), - _music(RAY::Audio::Music(musicPath)) + _music(RAY::Audio::Music(musicPath)), + _musicPath(musicPath) { } diff --git a/sources/Component/Renderer/CameraComponent.cpp b/sources/Component/Renderer/CameraComponent.cpp index 5934d527..2d0c3de1 100644 --- a/sources/Component/Renderer/CameraComponent.cpp +++ b/sources/Component/Renderer/CameraComponent.cpp @@ -6,9 +6,9 @@ namespace BBM { - CameraComponent::CameraComponent(WAL::Entity &entity, Vector3f target) + CameraComponent::CameraComponent(WAL::Entity &entity, Vector3f cameraTarget) : Component(entity), - target(target) + target(cameraTarget) {} WAL::Component *BBM::CameraComponent::clone(WAL::Entity &entity) const diff --git a/sources/Component/Renderer/CameraComponent.hpp b/sources/Component/Renderer/CameraComponent.hpp index 3f8e7fc5..84d166c2 100644 --- a/sources/Component/Renderer/CameraComponent.hpp +++ b/sources/Component/Renderer/CameraComponent.hpp @@ -21,7 +21,7 @@ namespace BBM Component *clone(WAL::Entity &entity) const override; //! @brief Ctor - explicit CameraComponent(WAL::Entity &, Vector3f target = Vector3f()); + explicit CameraComponent(WAL::Entity &, Vector3f cameraTarget = Vector3f()); //! @brief A camera component is copy constructable. CameraComponent(const CameraComponent &) = default; //! @brief Default destructor. diff --git a/sources/Component/Renderer/Drawable2DComponent.hpp b/sources/Component/Renderer/Drawable2DComponent.hpp index c6f86044..9de6c1eb 100644 --- a/sources/Component/Renderer/Drawable2DComponent.hpp +++ b/sources/Component/Renderer/Drawable2DComponent.hpp @@ -21,26 +21,26 @@ namespace BBM std::shared_ptr drawable; //! @brief ctor - Drawable2DComponent(WAL::Entity &entity, std::shared_ptr drawable, bool drawBefore3D = false) + Drawable2DComponent(WAL::Entity &entity, std::shared_ptr drawable2D, bool drawBehind3D = false) : WAL::Component(entity), - drawable(std::move(drawable)), - drawBefore3D(drawBefore3D) + drawBefore3D(drawBehind3D), + drawable(std::move(drawable2D)) {} //! ctor template explicit Drawable2DComponent(WAL::Entity &entity, WAL::TypeHolder, Params &&...params) : WAL::Component(entity), - drawable(new T(std::forward(params)...)), - drawBefore3D(false) + drawBefore3D(false), + drawable(new T(std::forward(params)...)) {} //! ctor template - explicit Drawable2DComponent(WAL::Entity &entity, WAL::TypeHolder, bool drawBefore3D, Params &&...params) + explicit Drawable2DComponent(WAL::Entity &entity, WAL::TypeHolder, bool drawBehind3D, Params &&...params) : WAL::Component(entity), - drawable(new T(std::forward(params)...)), - drawBefore3D(drawBefore3D) + drawBefore3D(drawBehind3D), + drawable(new T(std::forward(params)...)) {} //! @brief Clone a component for another or the same entity. diff --git a/sources/Component/Renderer/Drawable3DComponent.hpp b/sources/Component/Renderer/Drawable3DComponent.hpp index 5a04da07..36be9175 100644 --- a/sources/Component/Renderer/Drawable3DComponent.hpp +++ b/sources/Component/Renderer/Drawable3DComponent.hpp @@ -18,9 +18,9 @@ namespace BBM std::shared_ptr drawable; //! @brief ctor - Drawable3DComponent(WAL::Entity &entity, std::shared_ptr drawable) + Drawable3DComponent(WAL::Entity &entity, std::shared_ptr drawable3D) : WAL::Component(entity), - drawable(std::move(drawable)) + drawable(std::move(drawable3D)) {} //! ctor diff --git a/sources/Component/Shaders/ShaderComponent.cpp b/sources/Component/Shaders/ShaderComponent.cpp index e6f51917..ec5fb7ab 100644 --- a/sources/Component/Shaders/ShaderComponent.cpp +++ b/sources/Component/Shaders/ShaderComponent.cpp @@ -20,14 +20,14 @@ namespace BBM } ShaderComponent::ShaderComponent(WAL::Entity &entity, - const std::string &fragmentFilePath, - const std::string &vertexFilePath, + const std::string &fragmentPath, + const std::string &vertexPath, const WAL::Callback &onFixedUpdate, bool lonely) : WAL::Component(entity), shader(vertexFilePath, fragmentFilePath, lonely), - fragmentFilePath(fragmentFilePath), - vertexFilePath(vertexFilePath), + fragmentFilePath(fragmentPath), + vertexFilePath(vertexPath), update(onFixedUpdate) { } @@ -43,11 +43,11 @@ namespace BBM } ShaderComponentModel::ShaderComponentModel(WAL::Entity &entity, - const std::string &fragmentFilePath, - const std::string &vertexFilePath, + const std::string &fragmentPath, + const std::string &vertexPath, const WAL::Callback &onFixedUpdate, bool lonely) - : ShaderComponent(entity, fragmentFilePath, vertexFilePath, onFixedUpdate, lonely) + : ShaderComponent(entity, fragmentPath, vertexPath, onFixedUpdate, lonely) { } @@ -60,11 +60,11 @@ namespace BBM } ShaderComponentDrawable2D::ShaderComponentDrawable2D(WAL::Entity &entity, - const std::string &fragmentFilePath, - const std::string &vertexFilePath, + const std::string &fragmentPath, + const std::string &vertexPath, const WAL::Callback &onFixedUpdate, bool lonely) - : ShaderComponent(entity, fragmentFilePath, vertexFilePath, onFixedUpdate, lonely) + : ShaderComponent(entity, fragmentPath, vertexPath, onFixedUpdate, lonely) { } } \ No newline at end of file diff --git a/sources/Component/Sound/SoundComponent.cpp b/sources/Component/Sound/SoundComponent.cpp index 038b58e1..7f589400 100644 --- a/sources/Component/Sound/SoundComponent.cpp +++ b/sources/Component/Sound/SoundComponent.cpp @@ -11,17 +11,17 @@ namespace BBM float SoundComponent::volume = 0.75; SoundComponent::SoundComponent(WAL::Entity &entity, - const std::map &soundPath, + const std::map &soundsPath, bool isLonely) : WAL::Component(entity), - _soundIndex(IDLE), - _soundPath(soundPath), - _isLonely(isLonely) + _isLonely(isLonely), + _soundPath(soundsPath), + _soundIndex(IDLE) { for (int i = 0; i <= DEATH; i++) { this->_isSoundLoad[static_cast(i)] = false; } - for (auto &soundPath : soundPath) + for (auto &soundPath : soundsPath) { this->_isSoundLoad[soundPath.first] = true; this->_soundList[soundPath.first] = std::make_unique(soundPath.second, this->_isLonely); diff --git a/sources/Component/Timer/TimerComponent.cpp b/sources/Component/Timer/TimerComponent.cpp index 1695ee39..88af47c8 100644 --- a/sources/Component/Timer/TimerComponent.cpp +++ b/sources/Component/Timer/TimerComponent.cpp @@ -13,10 +13,10 @@ namespace BBM ringIn(delay) {} - TimerComponent::TimerComponent(WAL::Entity &entity, std::chrono::nanoseconds delay, const WAL::Callback &callback) + TimerComponent::TimerComponent(WAL::Entity &entity, std::chrono::nanoseconds delay, const WAL::Callback &timerCallback) : WAL::Component(entity), - ringIn(delay), - callback(callback) + callback(timerCallback), + ringIn(delay) {} WAL::Component *TimerComponent::clone(WAL::Entity &entity) const diff --git a/sources/Component/Timer/TimerComponent.hpp b/sources/Component/Timer/TimerComponent.hpp index b0ad2454..9a6ce3ff 100644 --- a/sources/Component/Timer/TimerComponent.hpp +++ b/sources/Component/Timer/TimerComponent.hpp @@ -25,7 +25,7 @@ namespace BBM //! @brief A default constructor TimerComponent(WAL::Entity &entity, std::chrono::nanoseconds delay); //! @brief Create a timer with a callback. - TimerComponent(WAL::Entity &entity, std::chrono::nanoseconds delay, const WAL::Callback &callback); + TimerComponent(WAL::Entity &entity, std::chrono::nanoseconds delay, const WAL::Callback &timerCallback); //! @brief A timer component is copy constructable TimerComponent(const TimerComponent &) = default; //! @brief A default destructor diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index 305e94dd..68371302 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -95,13 +95,13 @@ namespace BBM .addComponent(position) .addComponent>() .addComponent() - .addComponent(1, [](WAL::Entity &entity, WAL::Wal &wal) { - entity.scheduleDeletion(); + .addComponent(1, [](WAL::Entity &myEntity, WAL::Wal &) { + myEntity.scheduleDeletion(); }) .addComponent(position.y) .addComponent(WAL::Callback(), func[bonusType - 1], 0.5, .5) - .addComponent(5s, [](WAL::Entity &bonus, WAL::Wal &wal){ + .addComponent(5s, [](WAL::Entity &bonus, WAL::Wal &){ bonus.scheduleDeletion(); }) .addComponent(map.at(bonusType) + ".obj", false, diff --git a/sources/Map/MapInfo.cpp b/sources/Map/MapInfo.cpp index f7c8f7c8..d5027e71 100644 --- a/sources/Map/MapInfo.cpp +++ b/sources/Map/MapInfo.cpp @@ -6,8 +6,8 @@ namespace BBM { - MapInfo::MapInfo(Vector3f pos, MapGenerator::BlockType type) - : x(pos.x), y(pos.y), z(pos.z), type(type) + MapInfo::MapInfo(Vector3f pos, MapGenerator::BlockType blockType) + : x(pos.x), y(pos.y), z(pos.z), type(blockType) { } MapInfo::MapInfo(const MapInfo &other) diff --git a/sources/Runner/CreditScene.cpp b/sources/Runner/CreditScene.cpp index a0dfb539..5a5113de 100644 --- a/sources/Runner/CreditScene.cpp +++ b/sources/Runner/CreditScene.cpp @@ -32,22 +32,22 @@ namespace BBM .addComponent("assets/musics/music_title.ogg") .addComponent(sounds); - auto &raylibLogo = scene->addEntity("raylib logo") + scene->addEntity("raylib logo") .addComponent(1920 / 3.5, 1080 / 1.75, 0) .addComponent("assets/raylib.png"); - auto &raylibText = scene->addEntity("raylib text") + scene->addEntity("raylib text") .addComponent(1920 / 4, 1080 / 2, 0) .addComponent("Powered by:", 35, RAY::Vector2(), BLACK); - auto &otherRepoText = scene->addEntity("other repo text") + scene->addEntity("other repo text") .addComponent(1920 / 4, 1080 / 4, 0) .addComponent("Many Thanks to:", 35, RAY::Vector2(), BLACK); - auto &BriansRepo = scene->addEntity("thx brian") + scene->addEntity("thx brian") .addComponent(1920 / 3.5, 1080 / 3.25, 0) .addComponent("Brian Guitteny (and his team)\nAssets used by their permission", 35, RAY::Vector2(), BLACK); - auto &team = scene->addEntity("team") + scene->addEntity("team") .addComponent(1920 / 1.5, 1080 / 3.5, 0) .addComponent("Team:\n Zoe Roux\n Clément Le Bihan\n Arthur Jamet\n Louis Auzuret\n Benjamin Henry\n Tom Augier", 35, RAY::Vector2(), BLACK); - auto &back = scene->addEntity("back to menu") + scene->addEntity("back to menu") .addComponent(10, 1080 - 85, 0) .addComponent("assets/buttons/button_back.png") .addComponent([](WAL::Entity &entity, WAL::Wal &) diff --git a/sources/Runner/GameScene.cpp b/sources/Runner/GameScene.cpp index 69e954fa..ffa136b5 100644 --- a/sources/Runner/GameScene.cpp +++ b/sources/Runner/GameScene.cpp @@ -84,8 +84,8 @@ namespace BBM entity.removeComponent(); if (entity.hasComponent()) return; - entity.addComponent(1s, [](WAL::Entity &entity, WAL::Wal &wal) { - entity.scheduleDeletion(); + entity.addComponent(1s, [](WAL::Entity &ent, WAL::Wal &wal) { + ent.scheduleDeletion(); }); }); } diff --git a/sources/Runner/HowToPlayScene.cpp b/sources/Runner/HowToPlayScene.cpp index 782a70c0..392523ce 100644 --- a/sources/Runner/HowToPlayScene.cpp +++ b/sources/Runner/HowToPlayScene.cpp @@ -57,7 +57,7 @@ namespace BBM scene->addEntity("back") .addComponent(1920 / 1.75, 1080 / 1.75, 0) .addComponent("Esc / Controller's Home button:", 35, RAY::Vector2(), BLACK); - auto &back = scene->addEntity("back to menu") + scene->addEntity("back to menu") .addComponent(10, 1080 - 85, 0) .addComponent("assets/buttons/button_back.png") .addComponent([](WAL::Entity &entity, WAL::Wal &) diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index a8224e78..2c12210c 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -60,7 +60,6 @@ namespace BBM void Runner::updateState(WAL::Wal &engine, GameState &state) { - auto &view = engine.getScene()->view(); if (RAY::Window::getInstance().shouldClose()) engine.shouldClose = true; if (gameState.currentScene == GameState::SceneID::GameScene) { diff --git a/sources/Runner/ScoreScene.cpp b/sources/Runner/ScoreScene.cpp index 4f80babb..36dc00fe 100644 --- a/sources/Runner/ScoreScene.cpp +++ b/sources/Runner/ScoreScene.cpp @@ -58,17 +58,17 @@ namespace BBM scene->addEntity("scene title text") .addComponent(1920 / 2.37, 250, 0) .addComponent("CONGRATS", 50, RAY::Vector2(), ORANGE); - for (int i = 0; i < players.size(); i++) { - auto &playerTile = scene->addEntity("player tile") + for (int i = 0; i < static_cast(players.size()); i++) { + scene->addEntity("player tile") .addComponent(224 * (i + 1) + 200 * i, 1080 / 2.5, 0) .addComponent(RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3), RAY::Vector2(200, 200), tilesColor[i]); - auto &playerRank = scene->addEntity("player rank name") + scene->addEntity("player rank name") .addComponent(224 * (i + 1) + 200 * i, 1080 / 2.75, 0) .addComponent(rankName[i], 30, RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3), tilesColor[i]); - auto &player = scene->addEntity("player") + scene->addEntity("player") .addComponent(224 * (i + 1) + 200 * i, 1080 / 2.5, 0) .addComponent(playersIconPath[i]); } diff --git a/sources/Runner/SplashScreenScene.cpp b/sources/Runner/SplashScreenScene.cpp index 3d0cc1ae..a42b5c20 100644 --- a/sources/Runner/SplashScreenScene.cpp +++ b/sources/Runner/SplashScreenScene.cpp @@ -20,15 +20,15 @@ namespace BBM auto scene = std::make_shared(); addMenuControl(*scene); - auto &splashComponent = scene->addEntity("animation component") + scene->addEntity("animation component") .addComponent(); - auto &background = scene->addEntity("background") + scene->addEntity("background") .addComponent(0, 0, 0) .addComponent(RAY::Vector2(), RAY::Vector2(1920, 1080)); - auto &text = scene->addEntity("powered by text") + scene->addEntity("powered by text") .addComponent(1920 / 2 - 200, 1080 / 2 - 180, 0) .addComponent("powered by", 30, RAY::Vector2(), BLACK); - auto &skipText = scene->addEntity("Press space to skip") + scene->addEntity("Press space to skip") .addComponent(1920 - 250, 1080 - 30, 0) .addComponent("Press space to skip", 20, RAY::Vector2(), BLACK) .addComponent() diff --git a/sources/System/Animation/AnimationsSystem.cpp b/sources/System/Animation/AnimationsSystem.cpp index 75923741..47ff3d68 100644 --- a/sources/System/Animation/AnimationsSystem.cpp +++ b/sources/System/Animation/AnimationsSystem.cpp @@ -19,7 +19,6 @@ namespace BBM { auto &model = entity.get(); auto &anim = entity.get(); - static int count = 0; if (anim.skipNext) { anim.skipNext = false; diff --git a/sources/System/Animator/AnimatorSystem.cpp b/sources/System/Animator/AnimatorSystem.cpp index 23f312dc..59280fac 100644 --- a/sources/System/Animator/AnimatorSystem.cpp +++ b/sources/System/Animator/AnimatorSystem.cpp @@ -30,7 +30,7 @@ namespace BBM auto anim = dynamic_cast(drawable); auto health = entity->tryGetComponent(); - if (health && health->getHealthPoint() <= 0 || entity->shouldDelete()) + if ((health && health->getHealthPoint() <= 0) || entity->shouldDelete()) return; if (anim && controllable.move != Vector2f(0, 0)) { anim->setRotationAngle(controllable.move.angle(Vector2f(-1, 0))); diff --git a/sources/System/BombHolder/BombHolderSystem.cpp b/sources/System/BombHolder/BombHolderSystem.cpp index 02ed40aa..96953023 100644 --- a/sources/System/BombHolder/BombHolderSystem.cpp +++ b/sources/System/BombHolder/BombHolderSystem.cpp @@ -50,7 +50,7 @@ namespace BBM wal.getScene()->scheduleNewEntity("explosion") .addComponent(position) .addComponent() - .addComponent("assets/shaders/explosion.fs", "assets/shaders/explosion.vs", [](WAL::Entity &entity, WAL::Wal &wal, std::chrono::nanoseconds dtime) { + .addComponent("assets/shaders/explosion.fs", "assets/shaders/explosion.vs", [](WAL::Entity &entity, WAL::Wal &, std::chrono::nanoseconds dtime) { auto &ctx = entity.getComponent(); auto &shader = entity.getComponent(); @@ -70,7 +70,7 @@ namespace BBM shader.shader.setShaderUniformVar("alpha", ctx.alpha); shader.shader.setShaderUniformVar("radius", ctx.explosionRadius); }) - .addComponent(500ms, [](WAL::Entity &explosion, WAL::Wal &wal) { + .addComponent(500ms, [](WAL::Entity &explosion, WAL::Wal &) { explosion.scheduleDeletion(); }) .addComponent(RAY::Mesh::MeshSphere(0.5, 16, 16), @@ -78,31 +78,31 @@ namespace BBM MAP_DIFFUSE, "assets/bombs/explosion/blast.png" )); - wal.getSystem().dispatchEvent([position, size, expansionDirections](WAL::Wal &wal) { - for (auto &[entity, pos, _] : wal.getScene()->view>()) { + wal.getSystem().dispatchEvent([position, size, expansionDirections](WAL::Wal &myWal) { + for (auto &[entity, pos, _] : myWal.getScene()->view>()) { if (pos.position.round() == position) { if (auto *health = entity.tryGetComponent()) health->takeDmg(1); return; } } - for (auto &[entity, pos, _] : wal.getScene()->view>()) { + for (auto &[entity, pos, _] : myWal.getScene()->view>()) { if (pos.position.round() == position) { if (auto *health = entity.tryGetComponent()) health->takeDmg(1); } } if (expansionDirections & ExpansionDirection::FRONT) { - _dispatchExplosion(position + Vector3f{1, 0, 0}, wal, size - 1, ExpansionDirection::FRONT); + _dispatchExplosion(position + Vector3f{1, 0, 0}, myWal, size - 1, ExpansionDirection::FRONT); } if (expansionDirections & ExpansionDirection::BACK) { - _dispatchExplosion(position + Vector3f{-1, 0, 0}, wal, size - 1, ExpansionDirection::BACK); + _dispatchExplosion(position + Vector3f{-1, 0, 0}, myWal, size - 1, ExpansionDirection::BACK); } if (expansionDirections & ExpansionDirection::LEFT) { - _dispatchExplosion(position + Vector3f{0, 0, 1}, wal, size - 1, ExpansionDirection::LEFT); + _dispatchExplosion(position + Vector3f{0, 0, 1}, myWal, size - 1, ExpansionDirection::LEFT); } if (expansionDirections & ExpansionDirection::RIGHT) { - _dispatchExplosion(position + Vector3f{0, 0, -1}, wal, size - 1, ExpansionDirection::RIGHT); + _dispatchExplosion(position + Vector3f{0, 0, -1}, myWal, size - 1, ExpansionDirection::RIGHT); } }); } @@ -189,7 +189,7 @@ namespace BBM } if (controllable.bomb && holder.bombCount > 0) { auto spawnPos = position.position.round(); - for (auto &[entity, pos, _] : this->_wal.getScene()->view()) { + for (auto &[__, pos, _] : this->_wal.getScene()->view()) { if (pos.position == spawnPos) return; } diff --git a/sources/System/Bonus/PlayerBonusSystem.cpp b/sources/System/Bonus/PlayerBonusSystem.cpp index a0fc8218..32f6659b 100644 --- a/sources/System/Bonus/PlayerBonusSystem.cpp +++ b/sources/System/Bonus/PlayerBonusSystem.cpp @@ -14,8 +14,6 @@ namespace BBM void PlayerBonusSystem::onUpdate(WAL::ViewEntity &entity, std::chrono::nanoseconds dtime) { - auto &controllable = entity.get(); - auto &holder = entity.get(); auto &playerBonus = entity.get(); playerBonus.nextNoClipRate -= dtime; diff --git a/sources/System/GridCentered/GridCenteredSystem.cpp b/sources/System/GridCentered/GridCenteredSystem.cpp index 3c86175b..ca2c9b95 100644 --- a/sources/System/GridCentered/GridCenteredSystem.cpp +++ b/sources/System/GridCentered/GridCenteredSystem.cpp @@ -12,10 +12,7 @@ namespace BBM : System(wal) {} - void GridCenteredSystem::onFixedUpdate(WAL::ViewEntity &entity) + void GridCenteredSystem::onFixedUpdate(WAL::ViewEntity &) { - auto &grid = entity.get(); - auto &movement = entity.get(); -// movement.addForce(grid.force * ) } } \ No newline at end of file diff --git a/sources/System/IntroAnimation/IntroAnimationSystem.cpp b/sources/System/IntroAnimation/IntroAnimationSystem.cpp index 9e14eb1b..dc1dea66 100644 --- a/sources/System/IntroAnimation/IntroAnimationSystem.cpp +++ b/sources/System/IntroAnimation/IntroAnimationSystem.cpp @@ -15,14 +15,14 @@ namespace RAY2D = RAY::Drawables::Drawables2D; namespace BBM { IntroAnimationSystem::IntroAnimationSystem(WAL::Wal &wal) - : System(wal), wal(wal) + : System(wal) {} void IntroAnimationSystem::onFixedUpdate(WAL::ViewEntity &entity) { static const RAY::Vector2 logoPos(1920 / 2 - 128, 1080 / 2 - 128); auto &component = entity.get(); - auto scene = wal.getScene(); + auto scene = this->_wal.getScene(); RAY2D::Rectangle *rectangle = nullptr; RAY2D::Text *text = nullptr; static auto &rayText = scene->addEntity("raylibtext Rectangle") diff --git a/sources/System/IntroAnimation/IntroAnimationSystem.hpp b/sources/System/IntroAnimation/IntroAnimationSystem.hpp index a48c2af4..fd89568b 100644 --- a/sources/System/IntroAnimation/IntroAnimationSystem.hpp +++ b/sources/System/IntroAnimation/IntroAnimationSystem.hpp @@ -8,10 +8,6 @@ namespace BBM //! @brief A system to handle Controllable entities in a menu. class IntroAnimationSystem : public WAL::System { - private: - //! @brief reference to wal - WAL::Wal &wal; - public: //! @inherit void onSelfUpdate(std::chrono::nanoseconds dtime) override; diff --git a/sources/System/Lobby/LobbySystem.cpp b/sources/System/Lobby/LobbySystem.cpp index 3867bba6..7bb64885 100644 --- a/sources/System/Lobby/LobbySystem.cpp +++ b/sources/System/Lobby/LobbySystem.cpp @@ -56,7 +56,7 @@ namespace BBM this->_colorTaken[lobby.color] = false; do { lobby.color++; - if (lobby.color >= this->_colorTaken.size()) + if (lobby.color >= static_cast(this->_colorTaken.size())) lobby.color = 0; } while (this->_colorTaken[lobby.color]); this->_colorTaken[lobby.color] = true; diff --git a/sources/System/Renderer/CameraSystem.cpp b/sources/System/Renderer/CameraSystem.cpp index 3c4e538c..1919ecba 100644 --- a/sources/System/Renderer/CameraSystem.cpp +++ b/sources/System/Renderer/CameraSystem.cpp @@ -27,8 +27,6 @@ namespace BBM return (true); } - auto &cam = entity.get(); - pos.position += (posTarget - pos.position) / 100; return (false); } @@ -46,17 +44,17 @@ namespace BBM float lowerXDist = 0; float lowerZDist = 0; - for (auto &[entity, pos, _] : this->_wal.getScene()->view>()) { - if (!entity.hasComponent()) - entity.addComponent(); - playerPos.emplace_back(pos.position); + for (auto &[player, position, _] : this->_wal.getScene()->view>()) { + if (!player.hasComponent()) + player.addComponent(); + playerPos.emplace_back(position.position); } if (playerPos.size() == 0) introAnimation(entity, true); if (playerPos.size() == 1) newCameraPos = playerPos[0]; - for (int i = 0; i < playerPos.size(); i++) - for (int j = 0; j < playerPos.size(); j++) { + for (int i = 0; i < static_cast(playerPos.size()); i++) + for (int j = 0; j < static_cast(playerPos.size()); j++) { if (maxDist < playerPos[i].distance(playerPos[j])) { maxDist = playerPos[i].distance(playerPos[j]); newCameraPos = (playerPos[i] + playerPos[j]) / 2; From c08319d1f3dc58644a015db553b3ef84077e0779 Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 17 Jun 2021 21:54:54 +0200 Subject: [PATCH 12/15] remove werror compilation flag --- CMakeLists.txt | 2 +- lib/Ray/CMakeLists.txt | 2 +- lib/wal/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab315dbc..38fa4806 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(bomberman) set(CMAKE_CXX_STANDARD 20) if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -Wno-unused-parameter -W -Werror -g") + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -Wno-unused-parameter -W -g") endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") diff --git a/lib/Ray/CMakeLists.txt b/lib/Ray/CMakeLists.txt index 45042747..62cd3819 100644 --- a/lib/Ray/CMakeLists.txt +++ b/lib/Ray/CMakeLists.txt @@ -7,7 +7,7 @@ project("${LIB_NAME}") include_directories(${LIB_NAME} ./sources) if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Werror -Wno-unused-parameter -g") + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Wno-unused-parameter -g") endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") diff --git a/lib/wal/CMakeLists.txt b/lib/wal/CMakeLists.txt index 465ede45..54498458 100644 --- a/lib/wal/CMakeLists.txt +++ b/lib/wal/CMakeLists.txt @@ -4,7 +4,7 @@ project(wal) set(CMAKE_CXX_STANDARD 20) if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Werror -Wno-unused-parameter -g") + set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Wshadow -W -Wno-unused-parameter -g") endif() set(CMAKE_CXX_FLAGS_RELEASE "-O2") From cf96619231d3a75ed0b475ed32b77eeaef7cae58 Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 17 Jun 2021 21:59:39 +0200 Subject: [PATCH 13/15] use size_t instead og static cast --- sources/Runner/ScoreScene.cpp | 2 +- sources/System/Renderer/CameraSystem.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/Runner/ScoreScene.cpp b/sources/Runner/ScoreScene.cpp index 36dc00fe..b746b28e 100644 --- a/sources/Runner/ScoreScene.cpp +++ b/sources/Runner/ScoreScene.cpp @@ -58,7 +58,7 @@ namespace BBM scene->addEntity("scene title text") .addComponent(1920 / 2.37, 250, 0) .addComponent("CONGRATS", 50, RAY::Vector2(), ORANGE); - for (int i = 0; i < static_cast(players.size()); i++) { + for (size_t i = 0; i < players.size(); i++) { scene->addEntity("player tile") .addComponent(224 * (i + 1) + 200 * i, 1080 / 2.5, 0) .addComponent(RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3), diff --git a/sources/System/Renderer/CameraSystem.cpp b/sources/System/Renderer/CameraSystem.cpp index 1919ecba..d9c10a97 100644 --- a/sources/System/Renderer/CameraSystem.cpp +++ b/sources/System/Renderer/CameraSystem.cpp @@ -53,8 +53,8 @@ namespace BBM introAnimation(entity, true); if (playerPos.size() == 1) newCameraPos = playerPos[0]; - for (int i = 0; i < static_cast(playerPos.size()); i++) - for (int j = 0; j < static_cast(playerPos.size()); j++) { + for (size_t i = 0; i < playerPos.size(); i++) + for (size_t j = 0; j < playerPos.size(); j++) { if (maxDist < playerPos[i].distance(playerPos[j])) { maxDist = playerPos[i].distance(playerPos[j]); newCameraPos = (playerPos[i] + playerPos[j]) / 2; From 8d9234ceae2f4c5b2f89c784ee50e59ff91ca86c Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 17 Jun 2021 22:07:56 +0200 Subject: [PATCH 14/15] for structural binding variable mistake --- sources/System/BombHolder/BombHolderSystem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/System/BombHolder/BombHolderSystem.cpp b/sources/System/BombHolder/BombHolderSystem.cpp index 96953023..f2a2b398 100644 --- a/sources/System/BombHolder/BombHolderSystem.cpp +++ b/sources/System/BombHolder/BombHolderSystem.cpp @@ -189,8 +189,8 @@ namespace BBM } if (controllable.bomb && holder.bombCount > 0) { auto spawnPos = position.position.round(); - for (auto &[__, pos, _] : this->_wal.getScene()->view()) { - if (pos.position == spawnPos) + for (auto &eachEntity: this->_wal.getScene()->view()) { + if (eachEntity.get().position == spawnPos) return; } holder.bombCount--; From e18f72578ec9fbec7c333ad8aa0ec5c4ef639906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Fri, 18 Jun 2021 09:11:33 +0200 Subject: [PATCH 15/15] fixing shaders throw --- sources/Component/Shaders/ShaderComponent.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/Component/Shaders/ShaderComponent.cpp b/sources/Component/Shaders/ShaderComponent.cpp index ec5fb7ab..26847905 100644 --- a/sources/Component/Shaders/ShaderComponent.cpp +++ b/sources/Component/Shaders/ShaderComponent.cpp @@ -25,7 +25,7 @@ namespace BBM const WAL::Callback &onFixedUpdate, bool lonely) : WAL::Component(entity), - shader(vertexFilePath, fragmentFilePath, lonely), + shader(vertexPath, fragmentPath, lonely), fragmentFilePath(fragmentPath), vertexFilePath(vertexPath), update(onFixedUpdate)