diff --git a/colobot/src/main.cpp b/colobot/src/main.cpp index 0b03c635..9d9f05b7 100644 --- a/colobot/src/main.cpp +++ b/colobot/src/main.cpp @@ -43,9 +43,9 @@ #include #endif +#include #include #include -#include /** \mainpage @@ -116,12 +116,17 @@ int main(int argc, char *argv[]) // Add file output to the logger std::string logFileName; - #if DEV_BUILD + + if constexpr (Version::DEVELOPMENT_BUILD) + { logFileName = "log.txt"; - #else - boost::filesystem::create_directories(systemUtils->GetSaveDir()); + } + else + { + std::filesystem::create_directories(systemUtils->GetSaveDir()); logFileName = systemUtils->GetSaveDir() + "/log.txt"; - #endif + } + FILE* logFile = fopen(logFileName.c_str(), "w"); if (logFile) logger.AddOutput(logFile); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 548027cb..c47bec95 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -15,6 +15,12 @@ else() set(OFFICIAL_COLOBOT_BUILD "false") endif() +if(DEV_BUILD) + set(DEVELOPMENT_COLOBOT_BUILD "true") +else() + set(DEVELOPMENT_COLOBOT_BUILD "false") +endif() + # Configure file configure_file(common/config.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/common/config.h") configure_file(common/version.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/common/version.h") diff --git a/src/common/logger.cpp b/src/common/logger.cpp index eb0e4756..6df44886 100644 --- a/src/common/logger.cpp +++ b/src/common/logger.cpp @@ -19,16 +19,15 @@ #include "common/logger.h" +#include "common/version.h" #include CLogger::CLogger() { - #if DEV_BUILD - m_logLevel = LOG_DEBUG; - #else - m_logLevel = LOG_INFO; - #endif + m_logLevel = Version::DEVELOPMENT_BUILD + ? LOG_DEBUG + : LOG_INFO; } CLogger::~CLogger() diff --git a/src/common/version.h.cmake b/src/common/version.h.cmake index 06c355e7..c7cb3fdd 100644 --- a/src/common/version.h.cmake +++ b/src/common/version.h.cmake @@ -5,6 +5,7 @@ namespace Version { static inline constexpr bool OFFICIAL_BUILD = @OFFICIAL_COLOBOT_BUILD@; + static inline constexpr bool DEVELOPMENT_BUILD = @DEVELOPMENT_COLOBOT_BUILD@; static inline constexpr int BUILD_NUMBER = @BUILD_NUMBER@; static inline constexpr std::string_view FULL_NAME = "Colobot: Gold Edition @COLOBOT_VERSION_FULL@"; diff --git a/src/graphics/opengl33/gl33_device.cpp b/src/graphics/opengl33/gl33_device.cpp index 75bdd64a..26d235d8 100644 --- a/src/graphics/opengl33/gl33_device.cpp +++ b/src/graphics/opengl33/gl33_device.cpp @@ -31,6 +31,7 @@ #include "common/config_file.h" #include "common/image.h" #include "common/logger.h" +#include "common/version.h" #include "graphics/core/light.h" #include "graphics/core/material.h" @@ -277,9 +278,8 @@ void CGL33Device::BeginScene() void CGL33Device::EndScene() { -#ifdef DEV_BUILD - CheckGLErrors(); -#endif + if constexpr (Version::DEVELOPMENT_BUILD) + CheckGLErrors(); } void CGL33Device::Clear() diff --git a/src/level/robotmain.cpp b/src/level/robotmain.cpp index c3daf212..d7c904c0 100644 --- a/src/level/robotmain.cpp +++ b/src/level/robotmain.cpp @@ -31,6 +31,7 @@ #include "common/restext.h" #include "common/settings.h" #include "common/stringutils.h" +#include "common/version.h" #include "common/resources/inputstream.h" #include "common/resources/outputstream.h" @@ -217,11 +218,7 @@ CRobotMain::CRobotMain() m_teamNames.clear(); - #if DEV_BUILD - m_cheatAllMission = true; // for development - #else - m_cheatAllMission = false; - #endif + m_cheatAllMission = Version::DEVELOPMENT_BUILD; // for development m_cheatRadar = false; m_fixScene = false; @@ -3425,10 +3422,13 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) float objectProgress = static_cast(rankObj) / static_cast(numObjects); std::string details = StrUtils::ToString(rankObj+1)+" / "+StrUtils::ToString(numObjects); - #if DEV_BUILD + // Object categories may spoil the level a bit, so hide them in release builds - details += ": "+CLevelParserParam::FromObjectType(params.type); - #endif + if constexpr (Version::DEVELOPMENT_BUILD) + { + details += ": " + CLevelParserParam::FromObjectType(params.type); + } + m_ui->GetLoadingScreen()->SetProgress(0.25f+objectProgress*0.75f, RT_LOADING_OBJECTS, details); try @@ -4843,10 +4843,13 @@ CObject* CRobotMain::IOReadObject(CLevelParserLine *line, const std::string& pro params.id = line->GetParam("id")->AsInt(); std::string details = objCounterText; - #if DEV_BUILD + // Object categories may spoil the level a bit, so hide them in release builds - details += ": "+CLevelParserParam::FromObjectType(params.type); - #endif + if constexpr (Version::DEVELOPMENT_BUILD) + { + details += ": " + CLevelParserParam::FromObjectType(params.type); + } + m_ui->GetLoadingScreen()->SetProgress(0.25f+objectProgress*0.7f, RT_LOADING_OBJECTS_SAVED, details); CObject* obj = m_objMan->CreateObject(params);