diff --git a/ChangeLog.md b/ChangeLog.md index 8ba2668a2..f55e37766 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -5,6 +5,7 @@ * Restored support for 32-bit builds * Implemented quick backpack window for slot-specific artifact selection, activated via mouse wheel / swipe gesture * Added option to search for specific spell in the spellbook +* Added option to skip fading animation on adventure map * Using alt-tab to switch to another application will no longer activate in-game console/chat * Increased frequency of checks for server startup to improve server connection time * added nwcfollowthewhiterabbit / vcmiluck cheat: the currently selected hero permanently gains maximum luck. @@ -56,6 +57,7 @@ ### Interface * Right-clicking hero icon during levelup dialog will now show hero status window +* Added indicator of current turn to unit turn order panel in battles * Reduces upscaling artifacts on large spellbook * Game will now display correct date of saved games on Android * Fixed black screen appearing during spellbook page flip animation @@ -63,6 +65,7 @@ * Fixed invisible chat text input in game lobby * Fixed positioning of chat history in game lobby * "Infobar Creature Management" option is now enabled by default +* "Large Spellbook" option is now enabled by default ### Mechanics * Anti-magic garrison now actually blocks spell casting diff --git a/Mods/vcmi/config/vcmi/polish.json b/Mods/vcmi/config/vcmi/polish.json index 1028d8349..533f91c29 100644 --- a/Mods/vcmi/config/vcmi/polish.json +++ b/Mods/vcmi/config/vcmi/polish.json @@ -114,6 +114,8 @@ "vcmi.systemOptions.enableUiEnhancementsButton.help" : "{Ulepszenia interfejsu}\n\nWłącza różne ulepszenia interfejsu poprawiające wygodę rozgrywki. Takie jak przycisk sakwy bohatera itp. Wyłącz jeśli szukasz bardziej klasycznej wersji gry.", "vcmi.systemOptions.enableLargeSpellbookButton.hover" : "Duża księga zaklęć", "vcmi.systemOptions.enableLargeSpellbookButton.help" : "{Duża księga zaklęć}\n\nWłącza dużą księgę czarów, która mieści więcej zaklęć na stronę. Animacja zmiany strony nie działa gdy ta opcja jest włączona.", + "vcmi.systemOptions.audioMuteFocus.hover" : "Wycisz przy zdezaktywowaniu", + "vcmi.systemOptions.audioMuteFocus.help" : "{Wycisz przy zdezaktywowaniu}\n\nWycisz dźwięk gdy okno gry staje się nieaktywne. Wyjątkiem są dźwięki wiadomości i nowej tury.", "vcmi.adventureOptions.infoBarPick.hover" : "Pokaż komunikaty w panelu informacyjnym", "vcmi.adventureOptions.infoBarPick.help" : "{Pokaż komunikaty w panelu informacyjnym}\n\nGdy to możliwe, wiadomości z odwiedzania obiektów będą pokazywane w panelu informacyjnym zamiast w osobnym okienku.", @@ -129,6 +131,8 @@ "vcmi.adventureOptions.infoBarCreatureManagement.help" : "{Zarządzanie armią w panelu informacyjnym}\n\nPozwala zarządzać jednostkami w panelu informacyjnym, zamiast przełączać między domyślnymi informacjami.", "vcmi.adventureOptions.leftButtonDrag.hover" : "Przeciąganie mapy lewym kliknięciem", "vcmi.adventureOptions.leftButtonDrag.help" : "{Przeciąganie mapy lewym kliknięciem}\n\nGdy włączone, umożliwia przesuwanie mapy przygody poprzez przeciąganie myszy z wciśniętym lewym przyciskiem.", + "vcmi.adventureOptions.smoothDragging.hover" : "'Pływające' przeciąganie mapy", + "vcmi.adventureOptions.smoothDragging.help" : "{'Pływające' przeciąganie mapy}\n\nGdy włączone, przeciąganie mapy następuje ze stopniowo zanikającym przyspieszeniem.", "vcmi.adventureOptions.mapScrollSpeed1.hover": "", "vcmi.adventureOptions.mapScrollSpeed5.hover": "", "vcmi.adventureOptions.mapScrollSpeed6.hover": "", diff --git a/Mods/vcmi/config/vcmi/ukrainian.json b/Mods/vcmi/config/vcmi/ukrainian.json index c22aebf6e..dd689a9c1 100644 --- a/Mods/vcmi/config/vcmi/ukrainian.json +++ b/Mods/vcmi/config/vcmi/ukrainian.json @@ -54,6 +54,8 @@ "vcmi.radialWheel.moveDown" : "Перемістити вниз", "vcmi.radialWheel.moveBottom" : "Перемістити у кінець", + "vcmi.spellBook.search" : "шукати...", + "vcmi.mainMenu.serverConnecting" : "Підключення...", "vcmi.mainMenu.serverAddressEnter" : "Вкажіть адресу:", "vcmi.mainMenu.serverConnectionFailed" : "Помилка з'єднання", @@ -134,6 +136,8 @@ "vcmi.adventureOptions.leftButtonDrag.help" : "{Переміщення мапи лівою кнопкою}\n\nЯкщо увімкнено, переміщення миші з натиснутою лівою кнопкою буде перетягувати мапу пригод", "vcmi.adventureOptions.smoothDragging.hover" : "Плавне перетягування мапи", "vcmi.adventureOptions.smoothDragging.help" : "{Плавне перетягування мапи}\n\nЯкщо увімкнено, перетягування мапи має сучасний ефект завершення.", + "vcmi.adventureOptions.skipAdventureMapAnimations.hover" : "Вимкнути ефекти зникнення", + "vcmi.adventureOptions.skipAdventureMapAnimations.help" : "{Вимкнути ефекти зникнення}\n\nЯкщо увімкнено, пропускає зникання об'єктів та подібні ефекти (збирання ресурсів, посадка на корабель тощо). У деяких випадках робить інтерфейс більш реактивним за рахунок естетики. Особливо корисно в PvP-іграх. При максимальній швидкості пересування цей параметр увімкнено завжди, незалежно від цього параметра.", "vcmi.adventureOptions.mapScrollSpeed1.hover": "", "vcmi.adventureOptions.mapScrollSpeed5.hover": "", "vcmi.adventureOptions.mapScrollSpeed6.hover": "", diff --git a/android/vcmi-app/build.gradle b/android/vcmi-app/build.gradle index da5bbd247..0ade17ddb 100644 --- a/android/vcmi-app/build.gradle +++ b/android/vcmi-app/build.gradle @@ -10,7 +10,7 @@ android { applicationId "is.xyz.vcmi" minSdk 19 targetSdk 33 - versionCode 1420 + versionCode 1421 versionName "1.4.2" setProperty("archivesBaseName", "vcmi") } diff --git a/client/widgets/TextControls.cpp b/client/widgets/TextControls.cpp index 33012d758..57d1db55f 100644 --- a/client/widgets/TextControls.cpp +++ b/client/widgets/TextControls.cpp @@ -801,6 +801,9 @@ void CFocusable::moveFocus() if(i == focusables.end()) i = focusables.begin(); + if (*i == this) + return; + if((*i)->isActive()) { (*i)->giveFocus(); diff --git a/debian/changelog b/debian/changelog index 8a998c674..2100ab4ad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,7 @@ vcmi (1.4.2) jammy; urgency=medium * New upstream release - -- Ivan Savenko Fri, 22 Dec 2023 16:00:00 +0200 + -- Ivan Savenko Mon, 25 Dec 2023 16:00:00 +0200 vcmi (1.4.1) jammy; urgency=medium diff --git a/docs/Readme.md b/docs/Readme.md index e20c28ee9..ce334ddb5 100644 --- a/docs/Readme.md +++ b/docs/Readme.md @@ -1,6 +1,7 @@ [![GitHub](https://github.com/vcmi/vcmi/actions/workflows/github.yml/badge.svg)](https://github.com/vcmi/vcmi/actions/workflows/github.yml) [![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.4.0/total)](https://github.com/vcmi/vcmi/releases/tag/1.4.0) [![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.4.1/total)](https://github.com/vcmi/vcmi/releases/tag/1.4.1) +[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.4.2/total)](https://github.com/vcmi/vcmi/releases/tag/1.4.2) [![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/total)](https://github.com/vcmi/vcmi/releases) # VCMI Project diff --git a/launcher/eu.vcmi.VCMI.metainfo.xml b/launcher/eu.vcmi.VCMI.metainfo.xml index 63f831ee4..2ddeeb0c6 100644 --- a/launcher/eu.vcmi.VCMI.metainfo.xml +++ b/launcher/eu.vcmi.VCMI.metainfo.xml @@ -76,7 +76,7 @@ - + diff --git a/lib/mapObjects/MiscObjects.cpp b/lib/mapObjects/MiscObjects.cpp index 0b70fac9c..853466a14 100644 --- a/lib/mapObjects/MiscObjects.cpp +++ b/lib/mapObjects/MiscObjects.cpp @@ -117,7 +117,15 @@ void CGMine::initObj(CRandomGenerator & rand) putStack(SlotID(0), troglodytes); assert(!abandonedMineResources.empty()); - producedResource = *RandomGeneratorUtil::nextItem(abandonedMineResources, rand); + if (!abandonedMineResources.empty()) + { + producedResource = *RandomGeneratorUtil::nextItem(abandonedMineResources, rand); + } + else + { + logGlobal->error("Abandoned mine at (%s) has no valid resource candidates!", pos.toString()); + producedResource = GameResID::GOLD; + } } else { diff --git a/server/NetPacksLobbyServer.cpp b/server/NetPacksLobbyServer.cpp index a079309ef..63258d471 100644 --- a/server/NetPacksLobbyServer.cpp +++ b/server/NetPacksLobbyServer.cpp @@ -189,11 +189,11 @@ void ApplyOnServerAfterAnnounceNetPackVisitor::visitLobbyClientDisconnected(Lobb } srv.updateAndPropagateLobbyState(); - if(srv.getState() != EServerState::SHUTDOWN && srv.remoteConnections.count(pack.c)) - { - srv.remoteConnections -= pack.c; - srv.connectToRemote(); - } +// if(srv.getState() != EServerState::SHUTDOWN && srv.remoteConnections.count(pack.c)) +// { +// srv.remoteConnections -= pack.c; +// srv.connectToRemote(); +// } } void ClientPermissionsCheckerNetPackVisitor::visitLobbyChatMessage(LobbyChatMessage & pack) diff --git a/server/processors/PlayerMessageProcessor.cpp b/server/processors/PlayerMessageProcessor.cpp index f1821de56..afb331148 100644 --- a/server/processors/PlayerMessageProcessor.cpp +++ b/server/processors/PlayerMessageProcessor.cpp @@ -384,7 +384,7 @@ void PlayerMessageProcessor::cheatPuzzleReveal(PlayerColor player) for(auto & obj : gameHandler->gameState()->map->objects) { - if(obj->ID == Obj::OBELISK) + if(obj && obj->ID == Obj::OBELISK) { gameHandler->setObjPropertyID(obj->id, ObjProperty::OBELISK_VISITED, t->id); for(const auto & color : t->players)