diff --git a/ChangeLog.md b/ChangeLog.md index 0bce56f4f..1090e5eb5 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -8,6 +8,8 @@ * Fixed good morale happening after defeating last enemy unit * Fixed death animation of Efreeti killed by petrification attack * Fixed crash on leaving to main menu from battle in hotseat mode +* Fixed music playback on switching between towns +* Special months (double growth and plague) will now appear correctly * Adventure map spells are no longer visible on units in battle * Attempt to cast spell with no valid targets in hotseat will show appropriate error message * RMG settings will now show all existing in game templates and not just those suitable for current settings @@ -17,6 +19,7 @@ * Fixed blocked progress in Launcher on language detection failure * Launcher will now correctly handle selection of Ddata directory in H3 install * Map editor will now correctly save message property for events and pandoras +* Fixed incorrect saving of heroes portraits in editor # 1.1.1 -> 1.2.0 diff --git a/client/windows/CCastleInterface.cpp b/client/windows/CCastleInterface.cpp index e37471223..16d28aaa6 100644 --- a/client/windows/CCastleInterface.cpp +++ b/client/windows/CCastleInterface.cpp @@ -1206,13 +1206,17 @@ CCastleInterface::CCastleInterface(const CGTownInstance * Town, const CGTownInst townlist->onSelect = std::bind(&CCastleInterface::townChange, this); recreateIcons(); - adventureInt->onAudioPaused(); + if (!from) + adventureInt->onAudioPaused(); CCS->musich->playMusic(town->town->clientInfo.musicTheme, true, false); } CCastleInterface::~CCastleInterface() { - if (adventureInt) // may happen on exiting client with open castle interface + // resume map audio if: + // adventureInt exists (may happen on exiting client with open castle interface) + // castleInt has not been replaced (happens on switching between towns inside castle interface) + if (adventureInt && LOCPLINT->castleInt == this) adventureInt->onAudioResumed(); if(LOCPLINT->castleInt == this) LOCPLINT->castleInt = nullptr; diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index 886ef9e69..325b3db31 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -1812,7 +1812,7 @@ void CGameHandler::newTurn() n.specialWeek = NewTurn::DEITYOFFIRE; n.creatureid = CreatureID::IMP; } - else if(!VLC->settings()->getBoolean(EGameSettings::CREATURES_ALLOW_RANDOM_SPECIAL_WEEKS)) + else if(VLC->settings()->getBoolean(EGameSettings::CREATURES_ALLOW_RANDOM_SPECIAL_WEEKS)) { int monthType = getRandomGenerator().nextInt(99); if (newMonth) //new month