diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f567b14..8b5010c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.16.0) set(CMAKE_CONFIGURATION_TYPES Debug RelWithDebInfo CACHE STRING INTERNAL FORCE) # Project version, 4 numbers representation -set(DEFAULT_VERSION "0.8.9.0" CACHE STRING "Version" FORCE) +set(DEFAULT_VERSION "0.8.10.0" CACHE STRING "Version" FORCE) # Set from CI only set(BUILD_ID "0" CACHE INTERNAL "") set(GIT_REPO "" CACHE INTERNAL "") diff --git a/Changelog.md b/Changelog.md index e16f0946..14151d6c 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,12 @@ # Changelog All notable changes to this project will be documented in this file. +## [0.8.10] + +### Fixed +- fix workshop getting stuck if job prerequisites are used elsewhere (#182) +- fix half-height walls being completely flat + ## [0.8.9] ### Fixed diff --git a/README.md b/README.md index d6f308e3..159164b2 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ Just looking for the game itself? Prebuilt binaries are available in the [release section](https://github.com/rschurade/Ingnomia/releases) or on [Steam](https://store.steampowered.com/app/709240/Ingnomia/). +The active community for this game can be found on our [Discord server](https://discord.gg/y5GygwY). + ## What is this? ## Ingnomia started out as an independent remake of the older [Gnomoria](https://store.steampowered.com/app/224500/Gnomoria/) colony simulator, from which it was permitted to borrow some of the assets. diff --git a/src/game/workshop.cpp b/src/game/workshop.cpp index 8c55071d..a70ea7d8 100644 --- a/src/game/workshop.cpp +++ b/src/game/workshop.cpp @@ -352,9 +352,9 @@ void Workshop::onTick( quint64 tick ) if ( !m_active ) { - if( m_job ) + QSharedPointer spJob = m_job.toStrongRef(); + if ( spJob ) { - QSharedPointer spJob = m_job.toStrongRef(); g->jm()->deleteJob( spJob->id() ); m_currentCraftJobID = 0; } @@ -380,6 +380,26 @@ void Workshop::onTick( quint64 tick ) } m_autoCraftList.clear(); + // check if the emitted job is still possible + // ressources may have been consumed by 3rd party + { + QSharedPointer spJob = m_job.toStrongRef(); + if ( spJob && !spJob->isWorked() ) + { + for ( auto& cj : m_jobList ) + { + if ( cj.id == m_currentCraftJobID ) + { + if ( !checkItemsAvailable( cj ) ) + { + g->jm()->deleteJob( spJob->id() ); + m_currentCraftJobID = 0; + } + } + } + } + } + if ( !m_job && !m_jobList.empty() && outputTileFree() ) { for ( auto& cj : m_jobList )