From 3d22de761f2918970491e298c659a6c52ae2b8aa Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 20 Mar 2025 22:04:29 +0300 Subject: [PATCH 1/2] fix compiler warnings (GCC + Clang) --- src/CMakeLists.txt | 1 + src/coders/BasicParser.inl | 4 ++-- src/coders/toml.cpp | 1 - src/coders/vec3.cpp | 4 ++-- src/content/ContentReport.cpp | 10 +++++----- src/data/StructLayout.hpp | 4 ++-- src/frontend/hud.cpp | 1 - src/frontend/menu.cpp | 1 - src/frontend/screens/LevelScreen.cpp | 1 - src/graphics/core/Font.cpp | 1 - src/graphics/render/BlocksRenderer.cpp | 9 ++++----- src/graphics/render/ChunksRenderer.cpp | 9 +++------ src/graphics/render/ChunksRenderer.hpp | 1 - src/graphics/render/Decorator.cpp | 7 +++---- src/graphics/render/Decorator.hpp | 3 +-- src/graphics/render/Emitter.cpp | 2 +- src/graphics/render/ModelBatch.cpp | 7 +++---- src/graphics/render/ParticlesRenderer.cpp | 8 +++----- src/graphics/render/ParticlesRenderer.hpp | 1 - src/graphics/render/PrecipitationRenderer.cpp | 8 +++----- src/graphics/render/PrecipitationRenderer.hpp | 2 -- src/graphics/render/WorldRenderer.cpp | 8 ++++---- src/graphics/render/WorldRenderer.hpp | 8 ++++---- src/graphics/ui/elements/InputBindBox.hpp | 2 +- src/graphics/ui/elements/InventoryView.hpp | 2 +- src/graphics/ui/elements/Label.cpp | 1 - src/graphics/ui/elements/TextBox.cpp | 1 - src/graphics/ui/gui_util.cpp | 6 +++--- src/io/memory_ostream.hpp | 4 ++-- src/io/path.cpp | 2 -- src/logic/PlayerController.cpp | 3 +-- src/logic/PlayerController.hpp | 1 - src/logic/scripting/lua/libs/libblock.cpp | 3 ++- src/logic/scripting/lua/libs/libgeneration.cpp | 3 --- src/logic/scripting/lua/libs/libgui.cpp | 2 +- src/logic/scripting/lua/libs/libinventory.cpp | 1 - src/logic/scripting/lua/libs/libpack.cpp | 2 +- src/logic/scripting/lua/libs/libparticles.cpp | 1 - src/logic/scripting/lua/libs/libworld.cpp | 4 +--- .../scripting/lua/usertypes/lua_type_heightmap.cpp | 1 - src/maths/Heightmap.hpp | 2 +- src/network/Network.cpp | 10 ++++++---- src/util/platform.cpp | 8 +++++++- src/world/Level.cpp | 3 +-- src/world/Level.hpp | 1 - src/world/files/WorldConverter.cpp | 6 ++---- src/world/files/compatibility.cpp | 3 +-- src/world/generator/GeneratorDef.cpp | 2 +- src/world/generator/WorldGenerator.cpp | 6 +++++- src/world/generator/WorldGenerator.hpp | 2 ++ 50 files changed, 80 insertions(+), 103 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8a97d2fc..f571b370 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -107,6 +107,7 @@ target_compile_options( -Wwrite-strings -Wno-unused-parameter -Wno-sign-compare + -Wno-unknown-pragmas $<$:-Og> >) diff --git a/src/coders/BasicParser.inl b/src/coders/BasicParser.inl index cee3c89d..2d15d8e9 100644 --- a/src/coders/BasicParser.inl +++ b/src/coders/BasicParser.inl @@ -6,7 +6,7 @@ #include "util/stringutil.hpp" namespace { - int is_box(int c) { + inline int is_box(int c) { switch (c) { case 'B': case 'b': @@ -21,7 +21,7 @@ namespace { return 10; } - double power(double base, int64_t power) { + inline double power(double base, int64_t power) { double result = 1.0; for (int64_t i = 0; i < power; i++) { result *= base; diff --git a/src/coders/toml.cpp b/src/coders/toml.cpp index 8df231a2..8fe05391 100644 --- a/src/coders/toml.cpp +++ b/src/coders/toml.cpp @@ -30,7 +30,6 @@ class TomlReader : BasicParser { // todo: extract common part std::string parseMultilineString() { pos += 2; - char next = peek(); std::stringstream ss; while (hasNext()) { diff --git a/src/coders/vec3.cpp b/src/coders/vec3.cpp index 7d0c8c17..974b9a63 100644 --- a/src/coders/vec3.cpp +++ b/src/coders/vec3.cpp @@ -68,7 +68,7 @@ static model::Mesh build_mesh( const glm::vec2* uvs = nullptr; const glm::vec3* normals = nullptr; - int coordsIndex, uvsIndex, normalsIndex; + int coordsIndex = 0, uvsIndex = 0, normalsIndex = 0; for (int i = 0; i < attrs.size(); i++) { const auto& attr = attrs[i]; @@ -204,7 +204,7 @@ File vec3::load( // Header reader.checkMagic("\0\0VEC3\0\0", 8); int version = reader.getInt16(); - int reserved = reader.getInt16(); + [[maybe_unused]] int reserved = reader.getInt16(); if (version > VERSION) { throw std::runtime_error("unsupported VEC3 version"); } diff --git a/src/content/ContentReport.cpp b/src/content/ContentReport.cpp index 0d8a20e2..a8ecad40 100644 --- a/src/content/ContentReport.cpp +++ b/src/content/ContentReport.cpp @@ -41,13 +41,13 @@ static void process_blocks_data( continue; } if (def->dataStruct == nullptr) { - ContentIssue issue {ContentIssueType::BLOCK_DATA_LAYOUTS_UPDATE}; + ContentIssue issue {ContentIssueType::BLOCK_DATA_LAYOUTS_UPDATE, {}}; report.issues.push_back(issue); report.dataLoss.push_back(name + ": discard data"); continue; } if (layout != *def->dataStruct) { - ContentIssue issue {ContentIssueType::BLOCK_DATA_LAYOUTS_UPDATE}; + ContentIssue issue {ContentIssueType::BLOCK_DATA_LAYOUTS_UPDATE, {}}; report.issues.push_back(issue); report.dataLayoutsUpdated = true; } @@ -111,10 +111,10 @@ static void build_issues( ) { auto type = report.getContentType(); if (report.hasContentReorder()) { - issues.push_back(ContentIssue {ContentIssueType::REORDER, type}); + issues.push_back(ContentIssue {ContentIssueType::REORDER, {type}}); } if (report.hasMissingContent()) { - issues.push_back(ContentIssue {ContentIssueType::MISSING, type}); + issues.push_back(ContentIssue {ContentIssueType::MISSING, {type}}); } } @@ -126,7 +126,7 @@ void ContentReport::buildIssues() { for (int layer = REGION_LAYER_VOXELS; layer < REGION_LAYERS_COUNT; layer++) { - ContentIssue issue {ContentIssueType::REGION_FORMAT_UPDATE}; + ContentIssue issue {ContentIssueType::REGION_FORMAT_UPDATE, {}}; issue.regionLayer = static_cast(layer); issues.push_back(issue); } diff --git a/src/data/StructLayout.hpp b/src/data/StructLayout.hpp index 02a5a435..47d59b3b 100644 --- a/src/data/StructLayout.hpp +++ b/src/data/StructLayout.hpp @@ -245,11 +245,11 @@ namespace data { return totalSize; } - [[nodiscard]] const auto begin() const { + [[nodiscard]] auto begin() const { return fields.begin(); } - [[nodiscard]] const auto end() const { + [[nodiscard]] auto end() const { return fields.end(); } diff --git a/src/frontend/hud.cpp b/src/frontend/hud.cpp index 48a699f1..ecf030dd 100644 --- a/src/frontend/hud.cpp +++ b/src/frontend/hud.cpp @@ -310,7 +310,6 @@ void Hud::updateWorldGenDebug() { } void Hud::update(bool visible) { - const auto& level = frontend.getLevel(); const auto& chunks = *player.chunks; const auto& menu = gui.getMenu(); diff --git a/src/frontend/menu.cpp b/src/frontend/menu.cpp index da2e6ba2..3b8e70fb 100644 --- a/src/frontend/menu.cpp +++ b/src/frontend/menu.cpp @@ -38,7 +38,6 @@ bool menus::call(Engine& engine, runnable func) { if (engine.isHeadless()) { throw std::runtime_error("menus::call(...) in headless mode"); } - auto gui = engine.getGUI(); try { func(); return true; diff --git a/src/frontend/screens/LevelScreen.cpp b/src/frontend/screens/LevelScreen.cpp index 9a471bff..e5c34f19 100644 --- a/src/frontend/screens/LevelScreen.cpp +++ b/src/frontend/screens/LevelScreen.cpp @@ -154,7 +154,6 @@ void LevelScreen::saveDecorations() { void LevelScreen::saveWorldPreview() { try { logger.info() << "saving world preview"; - const auto& paths = engine.getPaths(); auto player = playerController->getPlayer(); auto& settings = engine.getSettings(); int previewSize = settings.ui.worldPreviewSize.get(); diff --git a/src/graphics/core/Font.cpp b/src/graphics/core/Font.cpp index 74a78932..68cba17c 100644 --- a/src/graphics/core/Font.cpp +++ b/src/graphics/core/Font.cpp @@ -153,7 +153,6 @@ static inline void draw_text( } batch.texture(font.getPage(0)); for (size_t i = 0; i < text.length(); i++) { - uint c = text[i]; size_t styleIndex = styles->map.at( std::min(styles->map.size() - 1, i + styleMapOffset) ); diff --git a/src/graphics/render/BlocksRenderer.cpp b/src/graphics/render/BlocksRenderer.cpp index 5cddcb57..22bab4d8 100644 --- a/src/graphics/render/BlocksRenderer.cpp +++ b/src/graphics/render/BlocksRenderer.cpp @@ -329,8 +329,6 @@ void BlocksRenderer::blockCube( bool lights, bool ao ) { - ubyte group = block.drawGroup; - glm::ivec3 X(1, 0, 0); glm::ivec3 Y(0, 1, 0); glm::ivec3 Z(0, 0, 1); @@ -557,7 +555,7 @@ SortingMeshData BlocksRenderer::renderTranslucent( y + 0.5f, z + chunk->z * CHUNK_D + 0.5f ), - util::Buffer(indexSize * CHUNK_VERTEX_SIZE)}; + util::Buffer(indexSize * CHUNK_VERTEX_SIZE), 0}; totalSize += entry.vertexData.size(); @@ -593,7 +591,8 @@ SortingMeshData BlocksRenderer::renderTranslucent( sortingMesh.entries.size() > 1) { SortingMeshEntry newEntry { sortingMesh.entries[0].position, - util::Buffer(totalSize) + util::Buffer(totalSize), + 0 }; size_t offset = 0; for (const auto& entry : sortingMesh.entries) { @@ -643,7 +642,7 @@ void BlocksRenderer::build(const Chunk* chunk, const Chunks* chunks) { vertexOffset = 0; indexOffset = indexSize = 0; - sortingMesh = std::move(renderTranslucent(voxels, beginEnds)); + sortingMesh = renderTranslucent(voxels, beginEnds); overflow = false; vertexOffset = 0; diff --git a/src/graphics/render/ChunksRenderer.cpp b/src/graphics/render/ChunksRenderer.cpp index 6e6b4bd3..535baa59 100644 --- a/src/graphics/render/ChunksRenderer.cpp +++ b/src/graphics/render/ChunksRenderer.cpp @@ -19,7 +19,6 @@ static debug::Logger logger("chunks-render"); size_t ChunksRenderer::visibleChunks = 0; class RendererWorker : public util::Worker, RendererResult> { - const Level& level; const Chunks& chunks; BlocksRenderer renderer; public: @@ -29,8 +28,7 @@ public: const ContentGfxCache& cache, const EngineSettings& settings ) - : level(level), - chunks(chunks), + : chunks(chunks), renderer( settings.graphics.denseRender.get() ? settings.graphics.chunkMaxVerticesDense.get() @@ -45,7 +43,7 @@ public: renderer.build(chunk.get(), &chunks); if (renderer.isCancelled()) { return RendererResult { - glm::ivec2(chunk->x, chunk->z), true, MeshData()}; + glm::ivec2(chunk->x, chunk->z), true, ChunkMeshData {}}; } auto meshData = renderer.createMesh(); return RendererResult { @@ -61,8 +59,7 @@ ChunksRenderer::ChunksRenderer( const ContentGfxCache& cache, const EngineSettings& settings ) - : level(*level), - chunks(chunks), + : chunks(chunks), assets(assets), frustum(frustum), settings(settings), diff --git a/src/graphics/render/ChunksRenderer.hpp b/src/graphics/render/ChunksRenderer.hpp index a25c4241..3e2ca9d9 100644 --- a/src/graphics/render/ChunksRenderer.hpp +++ b/src/graphics/render/ChunksRenderer.hpp @@ -42,7 +42,6 @@ struct RendererResult { }; class ChunksRenderer { - const Level& level; const Chunks& chunks; const Assets& assets; const Frustum& frustum; diff --git a/src/graphics/render/Decorator.cpp b/src/graphics/render/Decorator.cpp index c0c88ebb..2904c39f 100644 --- a/src/graphics/render/Decorator.cpp +++ b/src/graphics/render/Decorator.cpp @@ -40,11 +40,10 @@ Decorator::Decorator( const Assets& assets, Player& player ) - : engine(engine), - level(*controller.getLevel()), - renderer(renderer), + : level(*controller.getLevel()), assets(assets), - player(player) { + player(player), + renderer(renderer) { controller.getBlocksController()->listenBlockInteraction( [this](auto player, const auto& pos, const auto& def, BlockInteraction type) { if (type == BlockInteraction::placing && def.particles) { diff --git a/src/graphics/render/Decorator.hpp b/src/graphics/render/Decorator.hpp index 31b0d506..181fdcb5 100644 --- a/src/graphics/render/Decorator.hpp +++ b/src/graphics/render/Decorator.hpp @@ -18,11 +18,10 @@ class Block; class Engine; class LevelController; class WorldRenderer; -class Weather; +struct Weather; struct WeatherPreset; class Decorator { - Engine& engine; const Level& level; const Assets& assets; Player& player; diff --git a/src/graphics/render/Emitter.cpp b/src/graphics/render/Emitter.cpp index e908ece8..cdc883ae 100644 --- a/src/graphics/render/Emitter.cpp +++ b/src/graphics/render/Emitter.cpp @@ -19,7 +19,7 @@ Emitter::Emitter( ) : level(level), origin(std::move(origin)), - prototype({this, 0, {}, preset.velocity, preset.lifetime, region}), + prototype({this, 0, {}, preset.velocity, preset.lifetime, region, 0, 0}), texture(texture), count(count), preset(std::move(preset)) { diff --git a/src/graphics/render/ModelBatch.cpp b/src/graphics/render/ModelBatch.cpp index 51c2fe9f..558393c6 100644 --- a/src/graphics/render/ModelBatch.cpp +++ b/src/graphics/render/ModelBatch.cpp @@ -51,11 +51,10 @@ ModelBatch::ModelBatch( const Chunks& chunks, const EngineSettings& settings ) - : batch(std::make_unique(capacity)), - assets(assets), + : assets(assets), chunks(chunks), - settings(settings) { -} + settings(settings), + batch(std::make_unique(capacity)) {} ModelBatch::~ModelBatch() = default; diff --git a/src/graphics/render/ParticlesRenderer.cpp b/src/graphics/render/ParticlesRenderer.cpp index 1be7272a..4c6a913e 100644 --- a/src/graphics/render/ParticlesRenderer.cpp +++ b/src/graphics/render/ParticlesRenderer.cpp @@ -21,11 +21,10 @@ ParticlesRenderer::ParticlesRenderer( const Chunks& chunks, const GraphicsSettings* settings ) - : batch(std::make_unique(4096)), - level(level), - chunks(chunks), + : chunks(chunks), assets(assets), - settings(settings) { + settings(settings), + batch(std::make_unique(4096)) { } ParticlesRenderer::~ParticlesRenderer() = default; @@ -171,7 +170,6 @@ void ParticlesRenderer::render(const Camera& camera, float delta) { continue; } auto texture = emitter.getTexture(); - const auto& found = particles.find(texture); std::vector* vec; vec = &particles[texture]; emitter.update(delta, camera.position, *vec); diff --git a/src/graphics/render/ParticlesRenderer.hpp b/src/graphics/render/ParticlesRenderer.hpp index a01f1018..506a3eac 100644 --- a/src/graphics/render/ParticlesRenderer.hpp +++ b/src/graphics/render/ParticlesRenderer.hpp @@ -16,7 +16,6 @@ class Level; struct GraphicsSettings; class ParticlesRenderer { - const Level& level; const Chunks& chunks; const Assets& assets; const GraphicsSettings* settings; diff --git a/src/graphics/render/PrecipitationRenderer.cpp b/src/graphics/render/PrecipitationRenderer.cpp index 1b138fc8..60f2c026 100644 --- a/src/graphics/render/PrecipitationRenderer.cpp +++ b/src/graphics/render/PrecipitationRenderer.cpp @@ -18,15 +18,13 @@ PrecipitationRenderer::PrecipitationRenderer( const Assets& assets, - const Level& level, + const Level&, const Chunks& chunks, - const GraphicsSettings* settings + const GraphicsSettings* ) : batch(std::make_unique(4096)), - level(level), chunks(chunks), - assets(assets), - settings(settings) { + assets(assets) { } PrecipitationRenderer::~PrecipitationRenderer() = default; diff --git a/src/graphics/render/PrecipitationRenderer.hpp b/src/graphics/render/PrecipitationRenderer.hpp index 9a691aca..d482e90a 100644 --- a/src/graphics/render/PrecipitationRenderer.hpp +++ b/src/graphics/render/PrecipitationRenderer.hpp @@ -12,10 +12,8 @@ struct WeatherPreset; class PrecipitationRenderer { std::unique_ptr batch; - const Level& level; const Chunks& chunks; const Assets& assets; - const GraphicsSettings* settings; float timer = 0.0f; int getHeightAt(int x, int z); diff --git a/src/graphics/render/WorldRenderer.cpp b/src/graphics/render/WorldRenderer.cpp index 2903028c..ab140c77 100644 --- a/src/graphics/render/WorldRenderer.cpp +++ b/src/graphics/render/WorldRenderer.cpp @@ -72,10 +72,6 @@ WorldRenderer::WorldRenderer( modelBatch(std::make_unique( MODEL_BATCH_CAPACITY, assets, *player.chunks, engine.getSettings() )), - particles(std::make_unique( - assets, level, *player.chunks, &engine.getSettings().graphics - )), - texts(std::make_unique(*batch3d, assets, *frustumCulling)), guides(std::make_unique()), chunks(std::make_unique( &level, @@ -85,6 +81,10 @@ WorldRenderer::WorldRenderer( frontend.getContentGfxCache(), engine.getSettings() )), + particles(std::make_unique( + assets, level, *player.chunks, &engine.getSettings().graphics + )), + texts(std::make_unique(*batch3d, assets, *frustumCulling)), blockWraps( std::make_unique(assets, level, *player.chunks) ), diff --git a/src/graphics/render/WorldRenderer.hpp b/src/graphics/render/WorldRenderer.hpp index 8d3914be..f3189fb0 100644 --- a/src/graphics/render/WorldRenderer.hpp +++ b/src/graphics/render/WorldRenderer.hpp @@ -43,10 +43,10 @@ class WorldRenderer { std::unique_ptr frustumCulling; std::unique_ptr lineBatch; std::unique_ptr batch3d; - std::unique_ptr chunks; - std::unique_ptr guides; - std::unique_ptr skybox; std::unique_ptr modelBatch; + std::unique_ptr guides; + std::unique_ptr chunks; + std::unique_ptr skybox; Weather weather {}; float timer = 0.0f; @@ -73,8 +73,8 @@ class WorldRenderer { float fogFactor ); public: - std::unique_ptr texts; std::unique_ptr particles; + std::unique_ptr texts; std::unique_ptr blockWraps; std::unique_ptr precipitation; diff --git a/src/graphics/ui/elements/InputBindBox.hpp b/src/graphics/ui/elements/InputBindBox.hpp index 74b64d61..7d4a8855 100644 --- a/src/graphics/ui/elements/InputBindBox.hpp +++ b/src/graphics/ui/elements/InputBindBox.hpp @@ -7,9 +7,9 @@ namespace gui { class InputBindBox : public Panel { protected: + Binding& binding; glm::vec4 focusedColor {0.1f, 0.15f, 0.35f, 0.75f}; std::shared_ptr