Browse Source

Merge pull request #3792 from IvanSavenko/bugfixing

Fixes for minor issues
Ivan Savenko 1 year ago
parent
commit
9353e24fa5

+ 0 - 1
Mods/vcmi/config/vcmi/chinese.json

@@ -279,7 +279,6 @@
 
 	"vcmi.optionsTab.turnOptions.hover" : "回合选项",
 	"vcmi.optionsTab.turnOptions.help" : "选择回合计时器并同步回合选项",
-	"vcmi.optionsTab.selectPreset" : "预设",
 
 	"vcmi.optionsTab.chessFieldBase.hover" : "基本计时器",
 	"vcmi.optionsTab.chessFieldTurn.hover" : "回合计时器",

+ 0 - 1
Mods/vcmi/config/vcmi/czech.json

@@ -243,7 +243,6 @@
 
 	"vcmi.optionsTab.turnOptions.hover" : "Možnosti tahu",
 	"vcmi.optionsTab.turnOptions.help" : "Vyberte odpočítávadlo tahů a nastavení souběžných tahů",
-	"vcmi.optionsTab.selectPreset" : "Preset",
 
 	"vcmi.optionsTab.chessFieldBase.hover" : "Base timer",
 	"vcmi.optionsTab.chessFieldTurn.hover" : "Turn timer",

+ 1 - 2
Mods/vcmi/config/vcmi/english.json

@@ -233,7 +233,7 @@
 	"vcmi.battleWindow.accurateShot.resultDescription.2" : "%d %s were killed by accurate shots!",
 	"vcmi.battleWindow.endWithAutocombat" : "Are you sure you wish to end the battle with auto combat?",
 
-	"vcmi.battleResultsWindow.applyResultsLabel" : "Apply battle result",
+	"vcmi.battleResultsWindow.applyResultsLabel" : "Accept battle result?",
 
 	"vcmi.tutorialWindow.title" : "Touchscreen Introduction",
 	"vcmi.tutorialWindow.decription.RightClick" : "Touch and hold the element on which you want to right-click. Touch the free area to close.",
@@ -296,7 +296,6 @@
 
 	"vcmi.optionsTab.turnOptions.hover" : "Turn Options",
 	"vcmi.optionsTab.turnOptions.help" : "Select turn timer and simultaneous turns options",
-	"vcmi.optionsTab.selectPreset" : "Preset",
 
 	"vcmi.optionsTab.chessFieldBase.hover" : "Base timer",
 	"vcmi.optionsTab.chessFieldTurn.hover" : "Turn timer",

+ 0 - 1
Mods/vcmi/config/vcmi/german.json

@@ -258,7 +258,6 @@
 
 	"vcmi.optionsTab.turnOptions.hover" : "Spielzug-Optionen",
 	"vcmi.optionsTab.turnOptions.help" : "Optionen zu Spielzug-Timer und simultanen Zügen",
-	"vcmi.optionsTab.selectPreset" : "Voreinstellung",
 
 	"vcmi.optionsTab.chessFieldBase.hover" : "Basis-Timer",
 	"vcmi.optionsTab.chessFieldTurn.hover" : "Spielzug-Timer",

+ 0 - 1
Mods/vcmi/config/vcmi/polish.json

@@ -250,7 +250,6 @@
 
 	"vcmi.optionsTab.turnOptions.hover" : "Ustawienia tur",
 	"vcmi.optionsTab.turnOptions.help" : "Ustaw limity czasu oraz tury symultaniczne",
-	"vcmi.optionsTab.selectPreset" : "Szablonowe ustawienie",
 
 	"vcmi.optionsTab.chessFieldBase.hover" : "Zegar startowy",
 	"vcmi.optionsTab.chessFieldTurn.hover" : "Zegar tury",

+ 0 - 1
Mods/vcmi/config/vcmi/portuguese.json

@@ -294,7 +294,6 @@
 
 	"vcmi.optionsTab.turnOptions.hover" : "Opções de Turno",
 	"vcmi.optionsTab.turnOptions.help" : "Selecione as opções de cronômetro do turno e turnos simultâneos",
-	"vcmi.optionsTab.selectPreset" : "Predefinição",
 
 	"vcmi.optionsTab.chessFieldBase.hover" : "Cronômetro Base",
 	"vcmi.optionsTab.chessFieldTurn.hover" : "Cronômetro do Turno",

+ 0 - 1
Mods/vcmi/config/vcmi/spanish.json

@@ -259,7 +259,6 @@
 
 	"vcmi.optionsTab.turnOptions.hover" : "Opciones de turno",
 	"vcmi.optionsTab.turnOptions.help" : "Seleccionar temporizador de turno y opciones de turnos simultáneos",
-	"vcmi.optionsTab.selectPreset" : "Preconfigurado",
 
 	"vcmi.optionsTab.chessFieldBase.hover" : "Cronómetro base",
 	"vcmi.optionsTab.chessFieldTurn.hover" : "Cronómetro de turno",

+ 15 - 5
Mods/vcmi/config/vcmi/ukrainian.json

@@ -4,11 +4,11 @@
 	"vcmi.adventureMap.monsterThreat.levels.1"  : "Дуже слабкий",
 	"vcmi.adventureMap.monsterThreat.levels.2"  : "Слабкий",
 	"vcmi.adventureMap.monsterThreat.levels.3"  : "Трохи слабша",
-	"vcmi.adventureMap.monsterThreat.levels.4"  : "Відповідна",
+	"vcmi.adventureMap.monsterThreat.levels.4"  : "Рівна",
 	"vcmi.adventureMap.monsterThreat.levels.5"  : "Трохи сильніша",
 	"vcmi.adventureMap.monsterThreat.levels.6"  : "Сильніша",
 	"vcmi.adventureMap.monsterThreat.levels.7"  : "Дуже сильна",
-	"vcmi.adventureMap.monsterThreat.levels.8"  : "Кидає виклик",
+	"vcmi.adventureMap.monsterThreat.levels.8"  : "Надзвичайно сильна",
 	"vcmi.adventureMap.monsterThreat.levels.9"  : "Нездоланна",
 	"vcmi.adventureMap.monsterThreat.levels.10" : "Смертельна",
 	"vcmi.adventureMap.monsterThreat.levels.11" : "Неможлива",
@@ -20,6 +20,7 @@
 	"vcmi.adventureMap.playerAttacked"      : "Гравця атаковано: %s",
 	"vcmi.adventureMap.moveCostDetails" : "Очки руху - Вартість: %TURNS ходів + %POINTS очок. Залишок очок: %REMAINING",
 	"vcmi.adventureMap.moveCostDetailsNoTurns" : "Очки руху - Вартість: %POINTS очок, Залишок очок: %REMAINING",
+	"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Вибачте, функція повтору ходу суперника ще не реалізована!",
 
 	"vcmi.capitalColors.0" : "Червоний",
 	"vcmi.capitalColors.1" : "Синій",
@@ -62,7 +63,6 @@
 	"vcmi.mainMenu.serverClosing" : "Завершення...",
 	"vcmi.mainMenu.hostTCP" : "Створити TCP/IP гру",
 	"vcmi.mainMenu.joinTCP" : "Приєднатися до TCP/IP гри",
-	"vcmi.mainMenu.playerName" : "Гравець",
 	
 	"vcmi.lobby.filepath" : "Назва файлу",
 	"vcmi.lobby.creationDate" : "Дата створення",
@@ -71,6 +71,7 @@
 	"vcmi.lobby.noPreview" : "огляд недоступний",
 	"vcmi.lobby.noUnderground" : "немає підземелля",
 	"vcmi.lobby.sortDate" : "Сортувати мапи за датою зміни",
+	"vcmi.lobby.backToLobby" : "Назад до лобі",
 
 	"vcmi.lobby.login.title" : "Онлайн лобі VCMI",
 	"vcmi.lobby.login.username" : "Логін:",
@@ -96,6 +97,8 @@
 	"vcmi.lobby.room.description.new" : "Щоб почати гру, виберіть сценарій або налаштуйте випадкову карту.",
 	"vcmi.lobby.room.description.load" : "Щоб почати гру, виберіть одну з ваших збережених ігор.",
 	"vcmi.lobby.room.description.limit" : "До %d гравців можуть зайти у вашу кімнату, включаючи вас.",
+	"vcmi.lobby.invite.header" : "Запросити гравців",
+	"vcmi.lobby.invite.notification" : "Гравець запросив вас до своєї ігрової кімнати. Тепер ви можете приєднатися до його приватної кімнати.",
 	"vcmi.lobby.room.new" : "Нова гра",
 	"vcmi.lobby.room.load" : "Завантажити гру",
 	"vcmi.lobby.room.type" : "Тип кімнати",
@@ -103,7 +106,9 @@
 	"vcmi.lobby.room.state.public" : "Публічна",
 	"vcmi.lobby.room.state.private" : "Приватна",
 	"vcmi.lobby.room.state.busy" : "У грі",
+	"vcmi.lobby.room.state.invited" : "Запрошено",
 
+	"vcmi.client.errors.invalidMap" : "{Пошкоджена карта або кампанія}\n\nНе вдалося запустити гру! Вибрана карта або кампанія може бути невірною або пошкодженою. Причина:\n%s",
 	"vcmi.client.errors.missingCampaigns" : "{Не вистачає файлів даних}\n\nФайли даних кампаній не знайдено! Можливо, ви використовуєте неповні або пошкоджені файли даних Heroes 3. Будь ласка, перевстановіть дані гри.",
 	"vcmi.server.errors.existingProcess" : "Працює інший процес vcmiserver, будь ласка, спочатку завершіть його",
 	"vcmi.server.errors.modsToEnable"    : "{Потрібні модифікації для завантаження гри}",
@@ -205,6 +210,8 @@
 	"vcmi.battleOptions.showStickyHeroInfoWindows.help": "{Показувати вікно інформації героя}\n\nЗавжди показувати вікно статистики героїв, що відображає первинні параметри та очки заклинань.",
 	"vcmi.battleOptions.skipBattleIntroMusic.hover": "Пропускати вступну музику",
 	"vcmi.battleOptions.skipBattleIntroMusic.help": "{Пропускати вступну музику}\n\n Пропускати коротку музику, яка грає на початку кожної битви перед початком дії. Також можна пропустити, натиснувши клавішу ESC.",
+	"vcmi.battleOptions.endWithAutocombat.hover": "Завершує бій",
+	"vcmi.battleOptions.endWithAutocombat.help": "{Завершує бій}\n\nАвто-бій миттєво завершує бій",
 
 	"vcmi.adventureMap.revisitObject.hover" : "Відвідати Об'єкт",
 	"vcmi.adventureMap.revisitObject.help" : "{Відвідати Об'єкт}\n\nЯкщо герой в даний момент стоїть на об'єкті мапи, він може знову відвідати цю локацію.",
@@ -224,8 +231,9 @@
 	"vcmi.battleWindow.accurateShot.resultDescription.0" : "%d %s було вбито влучними пострілами!",
 	"vcmi.battleWindow.accurateShot.resultDescription.1" : "%d %s було вбито влучним пострілом!",
 	"vcmi.battleWindow.accurateShot.resultDescription.2" : "%d %s було вбито влучними пострілами!",
+	"vcmi.battleWindow.endWithAutocombat" : "Ви впевнені, що хочете завершити бій автобоєм?",
 
-	"vcmi.battleResultsWindow.applyResultsLabel" : "Прийняти результат бою",
+	"vcmi.battleResultsWindow.applyResultsLabel" : "Прийняти результат бою?",
 
 	"vcmi.tutorialWindow.title" : "Використання Сенсорного Екрану",
 	"vcmi.tutorialWindow.decription.RightClick" : "Торкніться і утримуйте елемент, на якому ви хочете натиснути правою кнопкою миші. Торкніться вільної області, щоб закрити.",
@@ -266,6 +274,8 @@
 	"vcmi.heroWindow.openBackpack.hover" : "Відкрити вікно рюкзака з артефактами",
 	"vcmi.heroWindow.openBackpack.help"  : "Відкриває вікно, що дозволяє легше керувати рюкзаком артефактів",
 
+	"vcmi.tavernWindow.inviteHero"  : "Запросити героя",
+
 	"vcmi.commanderWindow.artifactMessage" : "Бажаєте передати цей артефакт герою?",
 
 	"vcmi.creatureWindow.showBonuses.hover"    : "Перейти до перегляду бонусів",
@@ -508,5 +518,5 @@
 	"vcmi.stackExperience.rank.7" :  "Експерт",
 	"vcmi.stackExperience.rank.8" :  "Еліта",
 	"vcmi.stackExperience.rank.9" : "Майстер",
-	"vcmi.stackExperience.rank.10" : "Профі",
+	"vcmi.stackExperience.rank.10" : "Профі"
 }

+ 1 - 2
lib/mapObjects/CGHeroInstance.cpp

@@ -607,10 +607,9 @@ void CGHeroInstance::pickRandomObject(CRandomGenerator & rand)
 
 	// to find object handler we must use heroClass->id
 	// after setType subID used to store unique hero identify id. Check issue 2277 for details
+	// exclude prisons which should use appearance as set in map, via map editor or RMG
 	if (ID != Obj::PRISON)
 		setType(ID, type->heroClass->getIndex());
-	else
-		setType(ID, 0);
 
 	this->subID = oldSubID;
 }

+ 7 - 2
lib/modding/ActiveModsInSaveList.cpp

@@ -17,9 +17,14 @@
 
 VCMI_LIB_NAMESPACE_BEGIN
 
-std::vector<TModID> ActiveModsInSaveList::getActiveMods()
+std::vector<TModID> ActiveModsInSaveList::getActiveGameplayAffectingMods()
 {
-	return VLC->modh->getActiveMods();
+	std::vector<TModID> result;
+	for (auto const & entry : VLC->modh->getActiveMods())
+		if (VLC->modh->getModInfo(entry).checkModGameplayAffecting())
+			result.push_back(entry);
+
+	return result;
 }
 
 const ModVerificationInfo & ActiveModsInSaveList::getVerificationInfo(TModID mod)

+ 2 - 2
lib/modding/ActiveModsInSaveList.h

@@ -16,7 +16,7 @@ VCMI_LIB_NAMESPACE_BEGIN
 
 class ActiveModsInSaveList
 {
-	std::vector<TModID> getActiveMods();
+	std::vector<TModID> getActiveGameplayAffectingMods();
 	const ModVerificationInfo & getVerificationInfo(TModID mod);
 
 	/// Checks whether provided mod list is compatible with current VLC and throws on failure
@@ -26,7 +26,7 @@ public:
 	{
 		if(h.saving)
 		{
-			std::vector<TModID> activeMods = getActiveMods();
+			std::vector<TModID> activeMods = getActiveGameplayAffectingMods();
 			h & activeMods;
 			for(const auto & m : activeMods)
 				h & getVerificationInfo(m);

+ 2 - 0
lib/modding/CModHandler.cpp

@@ -486,9 +486,11 @@ void CModHandler::load()
 	for(const TModID & modName : activeMods)
 		loadTranslation(modName);
 
+#if 0
 	for(const TModID & modName : activeMods)
 		if (!validateTranslations(modName))
 			allMods[modName].validation = CModInfo::FAILED;
+#endif
 
 	logMod->info("\tLoading mod data: %d ms", timer.getDiff());
 	VLC->creh->loadCrExpMod();