From 500e9a864539e0dfaddbc1156f2a4b67f0399dd6 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 4 Aug 2024 09:10:22 +0000 Subject: [PATCH 1/5] Added downloads counter for 1.5.6 --- docs/Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Readme.md b/docs/Readme.md index 8ceb7a55d..b3122ef24 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -1,7 +1,7 @@ [![VCMI](https://github.com/vcmi/vcmi/actions/workflows/github.yml/badge.svg?branch=develop&event=push)](https://github.com/vcmi/vcmi/actions/workflows/github.yml?query=branch%3Adevelop+event%3Apush) [![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.0/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.0) -[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.4/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.4) -[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.5/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.5) +[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.4/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.5) +[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.5.5/total)](https://github.com/vcmi/vcmi/releases/tag/1.5.6) [![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/total)](https://github.com/vcmi/vcmi/releases) # VCMI Project From d36f90e6b645c9c71cd654ffbd888f962df85572 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 4 Aug 2024 09:18:43 +0000 Subject: [PATCH 2/5] Fixed heading in 1.5.6 changelog --- ChangeLog.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 2932b8fc4..df1aae550 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,28 +1,28 @@ # 1.5.5 -> 1.5.6 -# Stability +### Stability * Fixed possible crash on transferring hero to next campaign scenario if hero has combined artifact some components of which can be transferred * Fixed possible crash on transferring hero to next campaign scenario that has creature with faction limiter in his army * Fixed possible crash on application shutdown due to incorrect destruction order of UI entities -# Multiplayer +### Multiplayer * Mod compatibility issues when joining a lobby room now use color coding to make them less easy to miss. * Incompatible mods are now placed before compatible mods when joining lobby room. * Fixed text overflow in online lobby interface * Fixed jittering simultaneous turns slider after moving it twice over short period -# Interface +### Interface * Fixed some shortcuts that were not active during the enemy's turn, such as Thieves' Guild. * Game now correctly uses melee damage calculation when forcing a melee attack with a shooter. * Game will now close all open dialogs on start of our turn, to avoid bugs like locked right-click popups -# Map Objects +### Map Objects * Spells the hero can't learn are no longer hidden when received from a rewardable object, such as the Pandora Box * Spells that cannot be learned are now displayed with gray text in the name of the spell. * Configurable objects with scouted state such as Witch Hut in HotA now correctly show their reward on right click after vising them but refusing to accept reward * Right-click tooltip on map dwelling now always shows produced creatures. Player that owns the dwelling can also see number of creatures available for recruit -# Modding +### Modding * Fixed possible crash on invalid SPELL_LIKE_ATTACK bonus * Added compatibility check when loading maps with old names for boats From e8c32522142ab4338d3aaf07309d8c06555f9c05 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 4 Aug 2024 13:14:28 +0000 Subject: [PATCH 3/5] Do not auto-remove dialogs such as new week --- client/CPlayerInterface.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/client/CPlayerInterface.cpp b/client/CPlayerInterface.cpp index ad44404ce..5db827d4b 100644 --- a/client/CPlayerInterface.cpp +++ b/client/CPlayerInterface.cpp @@ -193,11 +193,6 @@ void CPlayerInterface::closeAllDialogs() castleInt->close(); castleInt = nullptr; - - // remove all pending dialogs that do not expect query answer - vstd::erase_if(dialogs, [](const std::shared_ptr & window){ - return window->ID == QueryID::NONE; - }); } void CPlayerInterface::playerEndsTurn(PlayerColor player) @@ -1515,7 +1510,7 @@ void CPlayerInterface::update() return; //if there are any waiting dialogs, show them - if ((CSH->howManyPlayerInterfaces() <= 1 || makingTurn) && !dialogs.empty() && !showingDialog->isBusy()) + if (makingTurn && !dialogs.empty() && !showingDialog->isBusy()) { showingDialog->setBusy(); GH.windows().pushWindow(dialogs.front()); From dde5cea601a9491673866c077061f602cc0710d0 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 4 Aug 2024 13:19:12 +0000 Subject: [PATCH 4/5] Fix activation of world view on end turn in multiplayer --- client/adventureMap/AdventureMapInterface.cpp | 2 +- client/adventureMap/AdventureMapShortcuts.cpp | 13 ++++++------- client/adventureMap/AdventureState.h | 1 - 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/client/adventureMap/AdventureMapInterface.cpp b/client/adventureMap/AdventureMapInterface.cpp index 2a4dbe0be..381e26c86 100644 --- a/client/adventureMap/AdventureMapInterface.cpp +++ b/client/adventureMap/AdventureMapInterface.cpp @@ -374,7 +374,7 @@ void AdventureMapInterface::onEnemyTurnStarted(PlayerColor playerID, bool isHuma mapAudio->onEnemyTurnStarted(); widget->getMinimap()->setAIRadar(!isHuman); widget->getInfoBar()->startEnemyTurn(playerID); - setState(isHuman ? EAdventureState::OTHER_HUMAN_PLAYER_TURN : EAdventureState::AI_PLAYER_TURN); + setState(isHuman ? EAdventureState::MAKING_TURN : EAdventureState::AI_PLAYER_TURN); } void AdventureMapInterface::setState(EAdventureState state) diff --git a/client/adventureMap/AdventureMapShortcuts.cpp b/client/adventureMap/AdventureMapShortcuts.cpp index 269183d0e..ee196e0b8 100644 --- a/client/adventureMap/AdventureMapShortcuts.cpp +++ b/client/adventureMap/AdventureMapShortcuts.cpp @@ -518,7 +518,7 @@ bool AdventureMapShortcuts::optionCanVisitObject() auto * hero = LOCPLINT->localState->getCurrentHero(); auto objects = LOCPLINT->cb->getVisitableObjs(hero->visitablePos()); - assert(vstd::contains(objects,hero)); + //assert(vstd::contains(objects,hero)); return objects.size() > 1; // there is object other than our hero } @@ -553,26 +553,25 @@ bool AdventureMapShortcuts::optionSpellcasting() bool AdventureMapShortcuts::optionInMapView() { - return state == EAdventureState::MAKING_TURN || state == EAdventureState::OTHER_HUMAN_PLAYER_TURN; + return state == EAdventureState::MAKING_TURN; } bool AdventureMapShortcuts::optionInWorldView() { - return state == EAdventureState::WORLD_VIEW || state == EAdventureState::OTHER_HUMAN_PLAYER_TURN; + return state == EAdventureState::WORLD_VIEW; } bool AdventureMapShortcuts::optionSidePanelActive() { -return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || state == EAdventureState::OTHER_HUMAN_PLAYER_TURN; +return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW; } bool AdventureMapShortcuts::optionMapScrollingActive() { - return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || state == EAdventureState::OTHER_HUMAN_PLAYER_TURN; + return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW; } bool AdventureMapShortcuts::optionMapViewActive() { - return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || state == EAdventureState::CASTING_SPELL - || state == EAdventureState::OTHER_HUMAN_PLAYER_TURN; + return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || state == EAdventureState::CASTING_SPELL; } diff --git a/client/adventureMap/AdventureState.h b/client/adventureMap/AdventureState.h index 32bfc2e2d..6fb2ec6e3 100644 --- a/client/adventureMap/AdventureState.h +++ b/client/adventureMap/AdventureState.h @@ -15,7 +15,6 @@ enum class EAdventureState HOTSEAT_WAIT, MAKING_TURN, AI_PLAYER_TURN, - OTHER_HUMAN_PLAYER_TURN, CASTING_SPELL, WORLD_VIEW }; From edad8889157e4c291ea3405c06541d401b48b94e Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 4 Aug 2024 13:33:30 +0000 Subject: [PATCH 5/5] Fixed non-scrollable invite to private room widget --- ChangeLog.md | 1 + client/globalLobby/GlobalLobbyInviteWindow.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index df1aae550..3ec0620fe 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -10,6 +10,7 @@ * Incompatible mods are now placed before compatible mods when joining lobby room. * Fixed text overflow in online lobby interface * Fixed jittering simultaneous turns slider after moving it twice over short period +* Fixed non-functioning slider in invite to game room dialog ### Interface * Fixed some shortcuts that were not active during the enemy's turn, such as Thieves' Guild. diff --git a/client/globalLobby/GlobalLobbyInviteWindow.cpp b/client/globalLobby/GlobalLobbyInviteWindow.cpp index ec436fea7..64a4e0026 100644 --- a/client/globalLobby/GlobalLobbyInviteWindow.cpp +++ b/client/globalLobby/GlobalLobbyInviteWindow.cpp @@ -94,7 +94,7 @@ GlobalLobbyInviteWindow::GlobalLobbyInviteWindow() }; listBackground = std::make_shared(Rect(8, 48, 220, 324), ColorRGBA(0, 0, 0, 64), ColorRGBA(64, 80, 128, 255), 1); - accountList = std::make_shared(createAccountCardCallback, Point(10, 50), Point(0, 40), 8, 0, 0, 1 | 4, Rect(200, 0, 320, 320)); + accountList = std::make_shared(createAccountCardCallback, Point(10, 50), Point(0, 40), 8, CSH->getGlobalLobby().getActiveAccounts().size(), 0, 1 | 4, Rect(200, 0, 320, 320)); buttonClose = std::make_shared(Point(86, 384), AnimationPath::builtin("MuBchck"), CButton::tooltip(), [this]() { close(); }, EShortcut::GLOBAL_RETURN );