mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-22 22:13:35 +02:00
Merge branch 'release_131' into master
This commit is contained in:
commit
daa8a494fc
@ -254,6 +254,13 @@ void CBattleAI::yourTacticPhase(int distance)
|
||||
cb->battleMakeTacticAction(BattleAction::makeEndOFTacticPhase(cb->battleGetTacticsSide()));
|
||||
}
|
||||
|
||||
uint64_t timeElapsed(std::chrono::time_point<std::chrono::high_resolution_clock> start)
|
||||
{
|
||||
auto end = std::chrono::high_resolution_clock::now();
|
||||
|
||||
return std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
|
||||
}
|
||||
|
||||
void CBattleAI::activeStack( const CStack * stack )
|
||||
{
|
||||
LOG_TRACE_PARAMS(logAi, "stack: %s", stack->nodeName());
|
||||
@ -261,6 +268,8 @@ void CBattleAI::activeStack( const CStack * stack )
|
||||
BattleAction result = BattleAction::makeDefend(stack);
|
||||
setCbc(cb); //TODO: make solid sure that AIs always use their callbacks (need to take care of event handlers too)
|
||||
|
||||
auto start = std::chrono::high_resolution_clock::now();
|
||||
|
||||
try
|
||||
{
|
||||
if(stack->creatureId() == CreatureID::CATAPULT)
|
||||
@ -276,6 +285,8 @@ void CBattleAI::activeStack( const CStack * stack )
|
||||
|
||||
attemptCastingSpell();
|
||||
|
||||
logAi->trace("Spellcast attempt completed in %lld", timeElapsed(start));
|
||||
|
||||
if(cb->battleIsFinished() || !stack->alive())
|
||||
{
|
||||
//spellcast may finish battle or kill active stack
|
||||
@ -312,6 +323,8 @@ void CBattleAI::activeStack( const CStack * stack )
|
||||
movesSkippedByDefense = 0;
|
||||
}
|
||||
|
||||
logAi->trace("BattleAI decission made in %lld", timeElapsed(start));
|
||||
|
||||
cb->battleMakeUnitAction(result);
|
||||
}
|
||||
|
||||
@ -494,7 +507,12 @@ void CBattleAI::attemptCastingSpell()
|
||||
{
|
||||
spells::BattleCast temp(cb.get(), hero, spells::Mode::HERO, spell);
|
||||
|
||||
for(auto & target : temp.findPotentialTargets())
|
||||
if(!spell->isDamage() && spell->getTargetType() == spells::AimType::LOCATION)
|
||||
continue;
|
||||
|
||||
const bool FAST = true;
|
||||
|
||||
for(auto & target : temp.findPotentialTargets(FAST))
|
||||
{
|
||||
PossibleSpellcast ps;
|
||||
ps.dest = target;
|
||||
|
@ -600,6 +600,8 @@ void BattleExchangeEvaluator::updateReachabilityMap(HypotheticBattle & hb)
|
||||
if(unit->isTurret())
|
||||
continue;
|
||||
|
||||
auto unitSpeed = unit->speed(turn);
|
||||
|
||||
if(turnBattle.battleCanShoot(unit))
|
||||
{
|
||||
for(BattleHex hex = BattleHex::TOP_LEFT; hex.isValid(); hex = hex + 1)
|
||||
@ -614,7 +616,7 @@ void BattleExchangeEvaluator::updateReachabilityMap(HypotheticBattle & hb)
|
||||
|
||||
for(BattleHex hex = BattleHex::TOP_LEFT; hex.isValid(); hex = hex + 1)
|
||||
{
|
||||
bool reachable = unitReachability.distances[hex] <= unit->speed(turn);
|
||||
bool reachable = unitReachability.distances[hex] <= unitSpeed;
|
||||
|
||||
if(!reachable && unitReachability.accessibility[hex] == EAccessibility::ALIVE_STACK)
|
||||
{
|
||||
@ -624,7 +626,7 @@ void BattleExchangeEvaluator::updateReachabilityMap(HypotheticBattle & hb)
|
||||
{
|
||||
for(BattleHex neighbor : hex.neighbouringTiles())
|
||||
{
|
||||
reachable = unitReachability.distances[neighbor] <= unit->speed(turn);
|
||||
reachable = unitReachability.distances[neighbor] <= unitSpeed;
|
||||
|
||||
if(reachable) break;
|
||||
}
|
||||
|
@ -84,17 +84,6 @@ PotentialTargets::PotentialTargets(const battle::Unit * attacker, const Hypothet
|
||||
{
|
||||
return lhs.damageDiff() > rhs.damageDiff();
|
||||
});
|
||||
|
||||
if (!possibleAttacks.empty())
|
||||
{
|
||||
auto & bestAp = possibleAttacks[0];
|
||||
|
||||
logGlobal->debug("Battle AI best: %s -> %s at %d from %d, affects %d units: d:%lld a:%lld c:%lld s:%lld",
|
||||
bestAp.attack.attacker->unitType()->getJsonKey(),
|
||||
state.battleGetUnitByPos(bestAp.dest)->unitType()->getJsonKey(),
|
||||
(int)bestAp.dest, (int)bestAp.from, (int)bestAp.affectedUnits.size(),
|
||||
bestAp.defenderDamageReduce, bestAp.attackerDamageReduce, bestAp.collateralDamageReduce, bestAp.shootersBlockedDmg);
|
||||
}
|
||||
}
|
||||
|
||||
int64_t PotentialTargets::bestActionValue() const
|
||||
|
@ -170,7 +170,7 @@ std::vector<SlotInfo> ArmyManager::getBestArmy(const IBonusBearer * armyCarrier,
|
||||
|
||||
std::vector<SlotInfo> newArmy;
|
||||
uint64_t newValue = 0;
|
||||
newArmyInstance.clear();
|
||||
newArmyInstance.clearSlots();
|
||||
|
||||
for(auto & slot : sortedSlots)
|
||||
{
|
||||
|
@ -84,7 +84,7 @@ Goals::TGoalVec RecruitHeroBehavior::decompose() const
|
||||
}
|
||||
}
|
||||
|
||||
if(treasureSourcesCount < 5)
|
||||
if(treasureSourcesCount < 5 && (town->garrisonHero || town->getUpperArmy()->getArmyStrength() < 10000))
|
||||
continue;
|
||||
|
||||
if(cb->getHeroesInfo().size() < cb->getTownsInfo().size() + 1
|
||||
|
48
ChangeLog.md
48
ChangeLog.md
@ -1,3 +1,51 @@
|
||||
# 1.3.0 -> 1.3.1
|
||||
|
||||
### GENERAL:
|
||||
* Fixed framerate drops on hero movement with active hota mod
|
||||
* Fade-out animations will now be skipped when instant hero movement speed is used
|
||||
* Restarting loaded campaing scenario will now correctly reapply starting bonus
|
||||
* Reverted FPS limit on mobile systems back to 60 fps
|
||||
* Fixed loading of translations for maps and campaigns
|
||||
* Fixed loading of preconfigured starting army for heroes with preconfigured spells
|
||||
* Background battlefield obstacles will now appear below creatures
|
||||
* it is now possible to load save game located inside mod
|
||||
* Added option to configure reserved screen area in Launcher on iOS
|
||||
* Fixed border scrolling when game window is maximized
|
||||
|
||||
### AI PLAYER:
|
||||
* BattleAI: Improved performance of AI spell selection
|
||||
* NKAI: Fixed freeze on attempt to exchange army between garrisoned and visiting hero
|
||||
* NKAI: Fixed town threat calculation
|
||||
* NKAI: Fixed recruitment of new heroes
|
||||
* VCAI: Added workaround to avoid freeze on attempting to reach unreachable location
|
||||
* VCAI: Fixed spellcasting by Archangels
|
||||
|
||||
### RANDOM MAP GENERATOR:
|
||||
* Fixed placement of roads inside rock in underground
|
||||
* Fixed placement of shifted creature animations from HotA
|
||||
* Fixed placement of treasures at the boundary of wide connections
|
||||
* Added more potential locations for quest artifacts in zone
|
||||
|
||||
### STABILITY:
|
||||
* When starting client without H3 data game will now show message instead of silently crashing
|
||||
* When starting invalid map in campaign, game will now show message instead of silently crashing
|
||||
* Blocked loading of saves made with different set of mods to prevent crashes
|
||||
* Fixed crash on starting game with outdated mods
|
||||
* Fixed crash on attempt to sacrifice all your artifacts in Altar of Sacrifice
|
||||
* Fixed crash on leveling up after winning battle as defender
|
||||
* Fixed possible crash on end of battle opening sound
|
||||
* Fixed crash on accepting battle result after winning battle as defender
|
||||
* Fixed possible crash on casting spell in battle by AI
|
||||
* Fixed multiple possible crashes on managing mods on Android
|
||||
* Fixed multiple possible crashes on importing data on Android
|
||||
* Fixed crash on refusing rewards from town building
|
||||
* Fixed possible crash on threat evaluation by NKAI
|
||||
* Fixed crash on using haptic feedback on some Android systems
|
||||
* Fixed crash on right-clicking flags area in RMG setup mode
|
||||
* Fixed crash on opening Blacksmith window and Build Structure dialogs in some localizations
|
||||
* Fixed possible crash on displaying animated main menu
|
||||
* Fixed crash on recruiting hero in town located on the border of map
|
||||
|
||||
# 1.2.1 -> 1.3.0
|
||||
|
||||
### GENERAL:
|
||||
|
2
Global.h
2
Global.h
@ -118,6 +118,7 @@ static_assert(sizeof(bool) == 1, "Bool needs to be 1 byte in size.");
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <numeric>
|
||||
#include <optional>
|
||||
#include <queue>
|
||||
#include <random>
|
||||
#include <set>
|
||||
@ -126,6 +127,7 @@ static_assert(sizeof(bool) == 1, "Bool needs to be 1 byte in size.");
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
#include <utility>
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
//The only available version is 3, as of Boost 1.50
|
||||
|
@ -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)
|
||||
[![Coverity Scan Build Status](https://scan.coverity.com/projects/vcmi/badge.svg)](https://scan.coverity.com/projects/vcmi)
|
||||
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.3.0/total)](https://github.com/vcmi/vcmi/releases/tag/1.3.0)
|
||||
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/1.3.1/total)](https://github.com/vcmi/vcmi/releases/tag/1.3.1)
|
||||
[![Github Downloads](https://img.shields.io/github/downloads/vcmi/vcmi/total)](https://github.com/vcmi/vcmi/releases)
|
||||
# VCMI Project
|
||||
VCMI is work-in-progress attempt to recreate engine for Heroes III, giving it new and extended possibilities.
|
||||
|
@ -10,8 +10,8 @@ android {
|
||||
applicationId "is.xyz.vcmi"
|
||||
minSdk 19
|
||||
targetSdk 31
|
||||
versionCode 1306
|
||||
versionName "1.3.0"
|
||||
versionCode 1310
|
||||
versionName "1.3.1"
|
||||
setProperty("archivesBaseName", "vcmi")
|
||||
}
|
||||
|
||||
|
@ -54,6 +54,7 @@
|
||||
#include <boost/uuid/uuid.hpp>
|
||||
#include <boost/uuid/uuid_io.hpp>
|
||||
#include <boost/uuid/uuid_generators.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include "../lib/serializer/Cast.h"
|
||||
#include "LobbyClientNetPackVisitors.h"
|
||||
|
||||
|
@ -219,7 +219,7 @@ void CClient::loadGame(CGameState * initializedGameState)
|
||||
// try to deserialize client data including sleepingHeroes
|
||||
try
|
||||
{
|
||||
boost::filesystem::path clientSaveName = *CResourceHandler::get("local")->getResourceName(ResourceID(CSH->si->mapname, EResType::CLIENT_SAVEGAME));
|
||||
boost::filesystem::path clientSaveName = *CResourceHandler::get()->getResourceName(ResourceID(CSH->si->mapname, EResType::CLIENT_SAVEGAME));
|
||||
|
||||
if(clientSaveName.empty())
|
||||
throw std::runtime_error("Cannot open client part of " + CSH->si->mapname);
|
||||
|
@ -169,10 +169,10 @@ void AdventureMapInterface::tick(uint32_t msPassed)
|
||||
void AdventureMapInterface::handleMapScrollingUpdate(uint32_t timePassed)
|
||||
{
|
||||
/// Width of window border, in pixels, that triggers map scrolling
|
||||
static constexpr uint32_t borderScrollWidth = 15;
|
||||
static constexpr int32_t borderScrollWidth = 15;
|
||||
|
||||
uint32_t scrollSpeedPixels = settings["adventure"]["scrollSpeedPixels"].Float();
|
||||
uint32_t scrollDistance = scrollSpeedPixels * timePassed / 1000;
|
||||
int32_t scrollSpeedPixels = settings["adventure"]["scrollSpeedPixels"].Float();
|
||||
int32_t scrollDistance = scrollSpeedPixels * timePassed / 1000;
|
||||
|
||||
Point cursorPosition = GH.getCursorPosition();
|
||||
Point scrollDirection;
|
||||
@ -822,6 +822,15 @@ void AdventureMapInterface::hotkeyZoom(int delta)
|
||||
void AdventureMapInterface::onScreenResize()
|
||||
{
|
||||
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
|
||||
|
||||
// remember our activation state and reactive after reconstruction
|
||||
// since othervice activate() calls for created elements will bypass virtual dispatch
|
||||
// and will call directly CIntObject::activate() instead of dispatching virtual function call
|
||||
bool widgetActive = isActive();
|
||||
|
||||
if (widgetActive)
|
||||
deactivate();
|
||||
|
||||
widget.reset();
|
||||
pos.x = pos.y = 0;
|
||||
pos.w = GH.screenDimensions().x;
|
||||
@ -838,4 +847,7 @@ void AdventureMapInterface::onScreenResize()
|
||||
widget->getMapView()->onCenteredObject(LOCPLINT->localState->getCurrentArmy());
|
||||
|
||||
adjustActiveness();
|
||||
|
||||
if (widgetActive)
|
||||
activate();
|
||||
}
|
||||
|
@ -445,6 +445,8 @@ void BattleInterface::spellCast(const BattleSpellCast * sc)
|
||||
stacksController->addNewAnim(new EffectAnimation(*this, side ? "SP07_B.DEF" : "SP07_A.DEF", rightHero));
|
||||
});
|
||||
}
|
||||
|
||||
// animations will be executed by spell effects
|
||||
}
|
||||
|
||||
void BattleInterface::battleStacksEffectsSet(const SetStackEffect & sse)
|
||||
|
@ -127,13 +127,26 @@ void BattleObstacleController::obstaclePlaced(const std::vector<std::shared_ptr<
|
||||
void BattleObstacleController::showAbsoluteObstacles(Canvas & canvas)
|
||||
{
|
||||
//Blit absolute obstacles
|
||||
for(auto & oi : owner.curInt->cb->battleGetAllObstacles())
|
||||
for(auto & obstacle : owner.curInt->cb->battleGetAllObstacles())
|
||||
{
|
||||
if(oi->obstacleType == CObstacleInstance::ABSOLUTE_OBSTACLE)
|
||||
if(obstacle->obstacleType == CObstacleInstance::ABSOLUTE_OBSTACLE)
|
||||
{
|
||||
auto img = getObstacleImage(*oi);
|
||||
auto img = getObstacleImage(*obstacle);
|
||||
if(img)
|
||||
canvas.draw(img, Point(oi->getInfo().width, oi->getInfo().height));
|
||||
canvas.draw(img, Point(obstacle->getInfo().width, obstacle->getInfo().height));
|
||||
}
|
||||
|
||||
if (obstacle->obstacleType == CObstacleInstance::USUAL)
|
||||
{
|
||||
if (obstacle->getInfo().isForegroundObstacle)
|
||||
continue;
|
||||
|
||||
auto img = getObstacleImage(*obstacle);
|
||||
if(img)
|
||||
{
|
||||
Point p = getObstaclePosition(img, *obstacle);
|
||||
canvas.draw(img, p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -148,11 +161,10 @@ void BattleObstacleController::collectRenderableObjects(BattleRenderer & rendere
|
||||
if (obstacle->obstacleType == CObstacleInstance::MOAT)
|
||||
continue;
|
||||
|
||||
bool isForeground = obstacle->obstacleType == CObstacleInstance::USUAL && obstacle->getInfo().isForegroundObstacle;
|
||||
if (obstacle->obstacleType == CObstacleInstance::USUAL && !obstacle->getInfo().isForegroundObstacle)
|
||||
continue;
|
||||
|
||||
auto layer = isForeground ? EBattleFieldLayer::OBSTACLES_FG : EBattleFieldLayer::OBSTACLES_BG;
|
||||
|
||||
renderer.insert(layer, obstacle->pos, [this, obstacle]( BattleRenderer::RendererRef canvas ){
|
||||
renderer.insert(EBattleFieldLayer::OBSTACLES, obstacle->pos, [this, obstacle]( BattleRenderer::RendererRef canvas ){
|
||||
auto img = getObstacleImage(*obstacle);
|
||||
if(img)
|
||||
{
|
||||
|
@ -16,12 +16,11 @@ class BattleInterface;
|
||||
|
||||
enum class EBattleFieldLayer {
|
||||
// confirmed ordering requirements:
|
||||
OBSTACLES_BG = 0,
|
||||
CORPSES = 0,
|
||||
WALLS = 1,
|
||||
HEROES = 2,
|
||||
STACKS = 2, // after corpses, obstacles, walls
|
||||
OBSTACLES_FG = 3, // after stacks
|
||||
OBSTACLES = 3, // after stacks
|
||||
STACK_AMOUNTS = 3, // after stacks, obstacles, corpses
|
||||
EFFECTS = 4, // after obstacles, battlements
|
||||
};
|
||||
|
@ -307,15 +307,13 @@ void BattleSiegeController::collectRenderableObjects(BattleRenderer & renderer)
|
||||
renderer.insert( EBattleFieldLayer::STACKS, getWallPiecePosition(wallPiece), [this, wallPiece](BattleRenderer::RendererRef canvas){
|
||||
owner.stacksController->showStack(canvas, getTurretStack(wallPiece));
|
||||
});
|
||||
renderer.insert( EBattleFieldLayer::OBSTACLES_FG, getWallPiecePosition(wallPiece), [this, wallPiece](BattleRenderer::RendererRef canvas){
|
||||
renderer.insert( EBattleFieldLayer::OBSTACLES, getWallPiecePosition(wallPiece), [this, wallPiece](BattleRenderer::RendererRef canvas){
|
||||
showWallPiece(canvas, wallPiece);
|
||||
});
|
||||
}
|
||||
renderer.insert( EBattleFieldLayer::WALLS, getWallPiecePosition(wallPiece), [this, wallPiece](BattleRenderer::RendererRef canvas){
|
||||
showWallPiece(canvas, wallPiece);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -499,7 +499,7 @@ void BattleStacksController::stacksAreAttacked(std::vector<StackAttackedInfo> at
|
||||
void BattleStacksController::stackTeleported(const CStack *stack, std::vector<BattleHex> destHex, int distance)
|
||||
{
|
||||
assert(destHex.size() > 0);
|
||||
owner.checkForAnimations();
|
||||
//owner.checkForAnimations(); // NOTE: at this point spellcast animations were added, but not executed
|
||||
|
||||
owner.addToAnimationStage(EAnimationEvents::HIT, [=](){
|
||||
addNewAnim( new ColorTransformAnimation(owner, stack, "teleportFadeOut", nullptr) );
|
||||
|
@ -31,8 +31,6 @@ namespace Cursor
|
||||
};
|
||||
|
||||
enum class Combat {
|
||||
INVALID = -1,
|
||||
|
||||
BLOCKED = 0,
|
||||
MOVE = 1,
|
||||
FLY = 2,
|
||||
@ -157,12 +155,16 @@ public:
|
||||
template<typename Index>
|
||||
Index get()
|
||||
{
|
||||
assert((std::is_same<Index, Cursor::Default>::value )|| type != Cursor::Type::DEFAULT );
|
||||
assert((std::is_same<Index, Cursor::Map>::value )|| type != Cursor::Type::ADVENTURE );
|
||||
assert((std::is_same<Index, Cursor::Combat>::value )|| type != Cursor::Type::COMBAT );
|
||||
assert((std::is_same<Index, Cursor::Spellcast>::value )|| type != Cursor::Type::SPELLBOOK );
|
||||
bool typeValid = true;
|
||||
|
||||
return static_cast<Index>(frame);
|
||||
typeValid &= (std::is_same<Index, Cursor::Default>::value )|| type != Cursor::Type::DEFAULT;
|
||||
typeValid &= (std::is_same<Index, Cursor::Map>::value )|| type != Cursor::Type::ADVENTURE;
|
||||
typeValid &= (std::is_same<Index, Cursor::Combat>::value )|| type != Cursor::Type::COMBAT;
|
||||
typeValid &= (std::is_same<Index, Cursor::Spellcast>::value )|| type != Cursor::Type::SPELLBOOK;
|
||||
|
||||
if (typeValid)
|
||||
return static_cast<Index>(frame);
|
||||
return Index::POINTER;
|
||||
}
|
||||
|
||||
Point getPivotOffsetDefault(size_t index);
|
||||
|
@ -426,7 +426,7 @@ void SelectionTab::select(int position)
|
||||
|
||||
if(inputName && inputName->isActive())
|
||||
{
|
||||
auto filename = *CResourceHandler::get("local")->getResourceName(ResourceID(curItems[py]->fileURI, EResType::SAVEGAME));
|
||||
auto filename = *CResourceHandler::get()->getResourceName(ResourceID(curItems[py]->fileURI, EResType::SAVEGAME));
|
||||
inputName->setText(filename.stem().string());
|
||||
}
|
||||
|
||||
|
@ -247,6 +247,20 @@ void MapViewController::afterRender()
|
||||
}
|
||||
}
|
||||
|
||||
bool MapViewController::isEventInstant(const CGObjectInstance * obj)
|
||||
{
|
||||
if (!isEventVisible(obj))
|
||||
return true;
|
||||
|
||||
if(!LOCPLINT->makingTurn && settings["adventure"]["enemyMoveTime"].Float() <= 0)
|
||||
return true; // instant movement speed
|
||||
|
||||
if(LOCPLINT->makingTurn && settings["adventure"]["heroMoveTime"].Float() <= 0)
|
||||
return true; // instant movement speed
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MapViewController::isEventVisible(const CGObjectInstance * obj)
|
||||
{
|
||||
if(adventureContext == nullptr)
|
||||
@ -358,7 +372,8 @@ void MapViewController::onBeforeHeroEmbark(const CGHeroInstance * obj, const int
|
||||
{
|
||||
if(isEventVisible(obj, from, dest))
|
||||
{
|
||||
fadeOutObject(obj);
|
||||
if (!isEventInstant(obj))
|
||||
fadeOutObject(obj);
|
||||
setViewCenter(obj->getSightCenter());
|
||||
}
|
||||
else
|
||||
@ -381,7 +396,8 @@ void MapViewController::onAfterHeroDisembark(const CGHeroInstance * obj, const i
|
||||
{
|
||||
if(isEventVisible(obj, from, dest))
|
||||
{
|
||||
fadeInObject(obj);
|
||||
if (!isEventInstant(obj))
|
||||
fadeInObject(obj);
|
||||
setViewCenter(obj->getSightCenter());
|
||||
}
|
||||
addObject(obj);
|
||||
@ -391,7 +407,7 @@ void MapViewController::onObjectFadeIn(const CGObjectInstance * obj)
|
||||
{
|
||||
assert(!hasOngoingAnimations());
|
||||
|
||||
if(isEventVisible(obj))
|
||||
if(isEventVisible(obj) && !isEventInstant(obj) )
|
||||
fadeInObject(obj);
|
||||
|
||||
addObject(obj);
|
||||
@ -401,7 +417,7 @@ void MapViewController::onObjectFadeOut(const CGObjectInstance * obj)
|
||||
{
|
||||
assert(!hasOngoingAnimations());
|
||||
|
||||
if(isEventVisible(obj))
|
||||
if(isEventVisible(obj) && !isEventInstant(obj) )
|
||||
fadeOutObject(obj);
|
||||
else
|
||||
removeObject(obj);
|
||||
|
@ -50,6 +50,7 @@ class MapViewController : public IMapObjectObserver
|
||||
std::shared_ptr<MapRendererPuzzleMapContext> puzzleMapContext;
|
||||
|
||||
private:
|
||||
bool isEventInstant(const CGObjectInstance * obj);
|
||||
bool isEventVisible(const CGObjectInstance * obj);
|
||||
bool isEventVisible(const CGHeroInstance * obj, const int3 & from, const int3 & dest);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
set(VCMI_VERSION_MAJOR 1)
|
||||
set(VCMI_VERSION_MINOR 3)
|
||||
set(VCMI_VERSION_PATCH 0)
|
||||
set(VCMI_VERSION_PATCH 1)
|
||||
add_definitions(
|
||||
-DVCMI_VERSION_MAJOR=${VCMI_VERSION_MAJOR}
|
||||
-DVCMI_VERSION_MINOR=${VCMI_VERSION_MINOR}
|
||||
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
||||
vcmi (1.3.1) jammy; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Ivan Savenko <saven.ivan@gmail.com> Fri, 18 Aug 2023 16:00:00 +0200
|
||||
|
||||
vcmi (1.3.0) jammy; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
@ -51,6 +51,7 @@
|
||||
<category>StrategyGame</category>
|
||||
</categories>
|
||||
<releases>
|
||||
<release version="1.3.1" date="2023-08-18" />
|
||||
<release version="1.3.0" date="2023-08-04" />
|
||||
<release version="1.2.1" date="2023-04-28" />
|
||||
<release version="1.2.0" date="2023-04-14" />
|
||||
|
@ -72,6 +72,8 @@ void CSettingsView::loadSettings()
|
||||
ui->comboBoxFullScreen->hide();
|
||||
ui->labelFullScreen->hide();
|
||||
#else
|
||||
ui->labelReservedArea->hide();
|
||||
ui->spinBoxReservedArea->hide();
|
||||
if (settings["video"]["realFullscreen"].Bool())
|
||||
ui->comboBoxFullScreen->setCurrentIndex(2);
|
||||
else
|
||||
@ -81,6 +83,7 @@ void CSettingsView::loadSettings()
|
||||
|
||||
ui->spinBoxInterfaceScaling->setValue(settings["video"]["resolution"]["scaling"].Float());
|
||||
ui->spinBoxFramerateLimit->setValue(settings["video"]["targetfps"].Float());
|
||||
ui->spinBoxReservedArea->setValue(std::round(settings["video"]["reservedWidth"].Float() * 100));
|
||||
|
||||
ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String()));
|
||||
ui->comboBoxNeutralAI->setCurrentText(QString::fromStdString(settings["server"]["neutralAI"].String()));
|
||||
@ -468,14 +471,12 @@ void CSettingsView::on_lineEditRepositoryExtra_textEdited(const QString &arg1)
|
||||
node->String() = arg1.toStdString();
|
||||
}
|
||||
|
||||
|
||||
void CSettingsView::on_spinBoxInterfaceScaling_valueChanged(int arg1)
|
||||
{
|
||||
Settings node = settings.write["video"]["resolution"]["scaling"];
|
||||
node->Float() = arg1;
|
||||
}
|
||||
|
||||
|
||||
void CSettingsView::on_refreshRepositoriesButton_clicked()
|
||||
{
|
||||
auto * mainWindow = dynamic_cast<MainWindow *>(qApp->activeWindow());
|
||||
@ -487,7 +488,6 @@ void CSettingsView::on_refreshRepositoriesButton_clicked()
|
||||
mainWindow->getModView()->loadRepositories();
|
||||
}
|
||||
|
||||
|
||||
void CSettingsView::on_spinBoxFramerateLimit_valueChanged(int arg1)
|
||||
{
|
||||
Settings node = settings.write["video"]["targetfps"];
|
||||
@ -500,14 +500,12 @@ void CSettingsView::on_comboBoxEnemyPlayerAI_currentTextChanged(const QString &a
|
||||
node->String() = arg1.toUtf8().data();
|
||||
}
|
||||
|
||||
|
||||
void CSettingsView::on_comboBoxAlliedPlayerAI_currentTextChanged(const QString &arg1)
|
||||
{
|
||||
Settings node = settings.write["server"]["alliedAI"];
|
||||
node->String() = arg1.toUtf8().data();
|
||||
}
|
||||
|
||||
|
||||
void CSettingsView::on_checkBoxAutoSavePrefix_stateChanged(int arg1)
|
||||
{
|
||||
Settings node = settings.write["general"]["useSavePrefix"];
|
||||
@ -515,17 +513,21 @@ void CSettingsView::on_checkBoxAutoSavePrefix_stateChanged(int arg1)
|
||||
ui->lineEditAutoSavePrefix->setEnabled(arg1);
|
||||
}
|
||||
|
||||
|
||||
void CSettingsView::on_spinBoxAutoSaveLimit_valueChanged(int arg1)
|
||||
{
|
||||
Settings node = settings.write["general"]["autosaveCountLimit"];
|
||||
node->Float() = arg1;
|
||||
}
|
||||
|
||||
|
||||
void CSettingsView::on_lineEditAutoSavePrefix_textEdited(const QString &arg1)
|
||||
{
|
||||
Settings node = settings.write["general"]["savePrefix"];
|
||||
node->String() = arg1.toStdString();
|
||||
}
|
||||
|
||||
void CSettingsView::on_spinBoxReservedArea_valueChanged(int arg1)
|
||||
{
|
||||
Settings node = settings.write["video"]["reservedWidth"];
|
||||
node->Float() = float(arg1) / 100; // percentage -> ratio
|
||||
}
|
||||
|
||||
|
@ -72,6 +72,8 @@ private slots:
|
||||
|
||||
void on_lineEditAutoSavePrefix_textEdited(const QString &arg1);
|
||||
|
||||
void on_spinBoxReservedArea_valueChanged(int arg1);
|
||||
|
||||
private:
|
||||
Ui::CSettingsView * ui;
|
||||
|
||||
|
@ -42,6 +42,7 @@
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
@ -106,35 +107,136 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<y>-197</y>
|
||||
<width>610</width>
|
||||
<height>790</height>
|
||||
<height>768</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout" columnstretch="2,0,1,1,1">
|
||||
<item row="18" column="0">
|
||||
<widget class="QLabel" name="labelArtificialIntelligence">
|
||||
<item row="5" column="1" colspan="3">
|
||||
<widget class="QLabel" name="labelTranslationStatus">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxFriendlyAI">
|
||||
<property name="editable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="currentText">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">StupidAI</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QLabel" name="labelDisplayIndex">
|
||||
<property name="text">
|
||||
<string>Display index</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="21" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxAlliedPlayerAI">
|
||||
<property name="currentText">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Nullkiller</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="labelAutoSaveLimit">
|
||||
<property name="text">
|
||||
<string>Autosave limit (0 = off)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="labelFullScreen">
|
||||
<property name="text">
|
||||
<string>Fullscreen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="labelNetworkPort">
|
||||
<property name="text">
|
||||
<string>Network port</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="labelGeneral">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Artificial Intelligence</string>
|
||||
<string>General</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEditRepositoryDefault">
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="labelAutoSave">
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
<string>Autosave</string>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
</widget>
|
||||
</item>
|
||||
<item row="18" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxCursorType">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Hardware</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Software</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="labelShowIntro">
|
||||
<property name="text">
|
||||
<string>Show intro</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="28" column="1">
|
||||
<widget class="QCheckBox" name="checkBoxRepositoryExtra">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="1">
|
||||
<item row="27" column="1">
|
||||
<widget class="QCheckBox" name="checkBoxRepositoryDefault">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
@ -147,13 +249,358 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="1">
|
||||
<widget class="QCheckBox" name="checkBoxRepositoryExtra">
|
||||
<item row="15" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxFramerateLimit">
|
||||
<property name="minimum">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxDisplayIndex"/>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="labelFramerateLimit">
|
||||
<property name="text">
|
||||
<string>Framerate Limit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxLanguageBase"/>
|
||||
</item>
|
||||
<item row="20" column="0">
|
||||
<widget class="QLabel" name="labelEnemyPlayerAI">
|
||||
<property name="text">
|
||||
<string>Adventure Map Enemies</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="0">
|
||||
<widget class="QLabel" name="labelRepositoryDefault">
|
||||
<property name="text">
|
||||
<string>Default repository</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxResolution"/>
|
||||
</item>
|
||||
<item row="7" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxAutoSave">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Off</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="labelVideo">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Video</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="labelAutoSavePrefix">
|
||||
<property name="text">
|
||||
<string>Autosave prefix</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="labelResolution">
|
||||
<property name="text">
|
||||
<string>Resolution</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="28" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEditRepositoryExtra">
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEditRepositoryDefault">
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="18" column="0">
|
||||
<widget class="QLabel" name="labelCursorType">
|
||||
<property name="text">
|
||||
<string>Cursor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="1" colspan="2">
|
||||
<widget class="QComboBox" name="comboBoxAutoCheck">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Off</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="3" colspan="2">
|
||||
<widget class="QPushButton" name="refreshRepositoriesButton">
|
||||
<property name="text">
|
||||
<string>Refresh now</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="4">
|
||||
<widget class="QPushButton" name="pushButtonTranslation">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="labelTranslation">
|
||||
<property name="text">
|
||||
<string>Heroes III Translation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxShowIntro">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Off</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="0">
|
||||
<widget class="QLabel" name="labelEnemyAI">
|
||||
<property name="text">
|
||||
<string>Enemy AI in battles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="0">
|
||||
<widget class="QLabel" name="labelRepositories">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Mod Repositories</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="28" column="0">
|
||||
<widget class="QLabel" name="labelRepositoryExtra">
|
||||
<property name="text">
|
||||
<string>Additional repository</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxEnemyAI">
|
||||
<property name="editable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="currentText">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">StupidAI</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxInterfaceScaling">
|
||||
<property name="minimum">
|
||||
<number>50</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>400</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="labelLanguageBase">
|
||||
<property name="text">
|
||||
<string>Heroes III Data Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxAutoSaveLimit"/>
|
||||
</item>
|
||||
<item row="22" column="0">
|
||||
<widget class="QLabel" name="labelNeutralAI">
|
||||
<property name="text">
|
||||
<string>Neutral AI in battles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="labelInterfaceScaling">
|
||||
<property name="text">
|
||||
<string>Interface Scaling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxNetworkPort">
|
||||
<property name="minimum">
|
||||
<number>1024</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>65535</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>3030</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QCheckBox" name="checkBoxAutoSavePrefix">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="0">
|
||||
<widget class="QLabel" name="labelFriendlyAI">
|
||||
<property name="text">
|
||||
<string>Friendly AI in battles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="labelLanguage">
|
||||
<property name="text">
|
||||
<string>VCMI Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxLanguage"/>
|
||||
</item>
|
||||
<item row="26" column="0">
|
||||
<widget class="QLabel" name="labelAutoCheck">
|
||||
<property name="text">
|
||||
<string>Check on startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxNeutralAI">
|
||||
<property name="currentText">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">StupidAI</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="21" column="0">
|
||||
<widget class="QLabel" name="labelAlliedPlayerAI">
|
||||
<property name="text">
|
||||
<string>Adventure Map Allies</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="labelArtificialIntelligence">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Artificial Intelligence</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxEnemyPlayerAI">
|
||||
<property name="currentText">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Nullkiller</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEditAutoSavePrefix">
|
||||
<property name="placeholderText">
|
||||
<string>empty = map name prefix</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -188,445 +635,29 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="labelResolution">
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="labelReservedArea">
|
||||
<property name="text">
|
||||
<string>Resolution</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="0">
|
||||
<widget class="QLabel" name="labelAlliedPlayerAI">
|
||||
<property name="text">
|
||||
<string>Adventure Map Allies</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxEnemyAI">
|
||||
<property name="editable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="currentText">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">StupidAI</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="0">
|
||||
<widget class="QLabel" name="labelRepositories">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Mod Repositories</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="1" colspan="2">
|
||||
<widget class="QComboBox" name="comboBoxAutoCheck">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Off</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1" colspan="3">
|
||||
<widget class="QLabel" name="labelTranslationStatus">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="0">
|
||||
<widget class="QLabel" name="labelRepositoryDefault">
|
||||
<property name="text">
|
||||
<string>Default repository</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="0">
|
||||
<widget class="QLabel" name="labelRepositoryExtra">
|
||||
<property name="text">
|
||||
<string>Additional repository</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="21" column="0">
|
||||
<widget class="QLabel" name="labelNeutralAI">
|
||||
<property name="text">
|
||||
<string>Neutral AI in battles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="4">
|
||||
<widget class="QPushButton" name="pushButtonTranslation">
|
||||
<property name="text">
|
||||
<string/>
|
||||
<string>Reserved screen area</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxInterfaceScaling">
|
||||
<widget class="QSpinBox" name="spinBoxReservedArea">
|
||||
<property name="suffix">
|
||||
<string notr="true">%</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>50</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>400</number>
|
||||
<number>25</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="labelInterfaceScaling">
|
||||
<property name="text">
|
||||
<string>Interface Scaling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="labelLanguageBase">
|
||||
<property name="text">
|
||||
<string>Heroes III Data Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="labelAutoSaveLimit">
|
||||
<property name="text">
|
||||
<string>Autosave limit (0 = off)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxLanguageBase"/>
|
||||
</item>
|
||||
<item row="22" column="0">
|
||||
<widget class="QLabel" name="labelFriendlyAI">
|
||||
<property name="text">
|
||||
<string>Friendly AI in battles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxFriendlyAI">
|
||||
<property name="editable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="currentText">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">StupidAI</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxResolution"/>
|
||||
</item>
|
||||
<item row="20" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxAlliedPlayerAI">
|
||||
<property name="currentText">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Nullkiller</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="labelDisplayIndex">
|
||||
<property name="text">
|
||||
<string>Display index</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="labelEnemyPlayerAI">
|
||||
<property name="text">
|
||||
<string>Adventure Map Enemies</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxFramerateLimit">
|
||||
<property name="minimum">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="labelShowIntro">
|
||||
<property name="text">
|
||||
<string>Show intro</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxAutoSave">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Off</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxLanguage"/>
|
||||
</item>
|
||||
<item row="17" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxCursorType">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Hardware</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Software</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="labelFullScreen">
|
||||
<property name="text">
|
||||
<string>Fullscreen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QLabel" name="labelCursorType">
|
||||
<property name="text">
|
||||
<string>Cursor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEditRepositoryExtra">
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="0">
|
||||
<widget class="QLabel" name="labelEnemyAI">
|
||||
<property name="text">
|
||||
<string>Enemy AI in battles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="0">
|
||||
<widget class="QLabel" name="labelAutoCheck">
|
||||
<property name="text">
|
||||
<string>Check on startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="labelGeneral">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>General</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="21" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxNeutralAI">
|
||||
<property name="currentText">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">BattleAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">StupidAI</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="3" colspan="2">
|
||||
<widget class="QPushButton" name="refreshRepositoriesButton">
|
||||
<property name="text">
|
||||
<string>Refresh now</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxNetworkPort">
|
||||
<property name="minimum">
|
||||
<number>1024</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>65535</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>3030</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="labelNetworkPort">
|
||||
<property name="text">
|
||||
<string>Network port</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="labelTranslation">
|
||||
<property name="text">
|
||||
<string>Heroes III Translation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="labelLanguage">
|
||||
<property name="text">
|
||||
<string>VCMI Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="labelAutoSave">
|
||||
<property name="text">
|
||||
<string>Autosave</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="labelVideo">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Video</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxEnemyPlayerAI">
|
||||
<property name="currentText">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">VCAI</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">Nullkiller</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxDisplayIndex"/>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="labelFramerateLimit">
|
||||
<property name="text">
|
||||
<string>Framerate Limit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="1" colspan="4">
|
||||
<widget class="QComboBox" name="comboBoxShowIntro">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Off</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>On</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="labelAutoSavePrefix">
|
||||
<property name="text">
|
||||
<string>Autosave prefix</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1" colspan="4">
|
||||
<widget class="QSpinBox" name="spinBoxAutoSaveLimit"/>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QCheckBox" name="checkBoxAutoSavePrefix">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEditAutoSavePrefix">
|
||||
<property name="placeholderText">
|
||||
<string>empty = map name prefix</string>
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -407,123 +407,123 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation>关闭</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation>人工智能</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation>模组仓库</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation>开启</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation>鼠标指针</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation>英雄无敌3数据语言</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -534,95 +534,100 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation>硬件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation>软件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translatorcomment>发布版本里找不到这个项,不太清楚意义</translatorcomment>
|
||||
<translation>英雄无敌3翻译</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation>启动时检查更新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>全屏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation>通用设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation>VCMI语言</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation>分辨率</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation>自动存档</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation>显示器序号</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation>网络端口</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation>视频设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation>显示开场动画</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation>激活</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation>禁用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation>启用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation>未安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
|
@ -406,123 +406,123 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -533,94 +533,99 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -411,43 +411,43 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation>Désactivé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation>Intelligence Artificielle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation>Dépôts de Mod</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation>Activé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation>IA ennemie dans les batailles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation>Dépôt par défaut</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -464,174 +464,179 @@ Mode fenêtré sans bord - le jeu s"exécutera dans une fenêtre qui couvre
|
||||
Mode exclusif plein écran - le jeu couvrira l"intégralité de votre écran et utilisera la résolution sélectionnée.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation>Fenêtré</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation>Fenêtré sans bord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation>Plein écran exclusif</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation>IA neutre dans les batailles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation>Ennemis de la carte d"aventure</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation>Mise à l"échelle de l"interface</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation>Curseur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation>Langue des Données de Heroes III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation>Limite de fréquence d"images</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation>Matériel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation>Logiciel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translation>Traduction de Heroes III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation>Alliés de la carte d"aventure</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation>Dépôt supplémentaire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation>Vérifier au démarrage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation>Actualiser maintenant</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation>IA amicale dans les batailles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>Plein écran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation>Général</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation>Langue de VCMI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation>Résolution</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation>Sauvegarde automatique</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation>Index d'affichage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation>Port de réseau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation>Vidéo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation>Montrer l'intro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation>Actif</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Désactivé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation>Activé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation>Pas Installé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation>Installer</translation>
|
||||
</message>
|
||||
|
@ -406,123 +406,123 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation>Aus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation>Künstliche Intelligenz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation>Mod-Repositorien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation>Skalierung der Benutzeroberfläche</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation>Neutrale KI in Kämpfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation>Gegnerische KI in Kämpfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation>Zusätzliches Repository</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation>Abenteuerkarte Verbündete</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation>Abenteuerkarte Feinde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation>Fenstermodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation>Randloser Vollbildmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation>Exklusiver Vollbildmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation>Limit für Autospeicherung (0 = aus)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation>Freundliche KI in Kämpfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation>Limit der Bildrate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation>Präfix für Autospeicherung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation>leer = Kartenname als Präfix</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation>Jetzt aktualisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation>Standard Repository</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation>An</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation>Zeiger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation>Sprache der Heroes III Daten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -539,94 +539,99 @@ Randloser Fenstermodus - das Spiel läuft in einem Fenster, das den gesamten Bil
|
||||
Exklusiver Vollbildmodus - das Spiel bedeckt den gesamten Bildschirm und verwendet die gewählte Auflösung.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation>Hardware</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation>Software</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translation>Heroes III Übersetzung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation>Beim Start prüfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>Vollbild</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation>Allgemein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation>VCMI-Sprache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation>Auflösung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation>Autospeichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation>Anzeige-Index</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation>Netzwerk-Port</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation>Video</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation>Intro anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation>Aktiv</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Deaktiviert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation>Aktivieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation>Nicht installiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation>Installieren</translation>
|
||||
</message>
|
||||
|
@ -406,123 +406,123 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation>Wyłączony</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation>Sztuczna Inteligencja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation>Repozytoria modów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation>Skala interfejsu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation>AI bitewne jednostek neutralnych</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation>AI bitewne wrogów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation>Dodatkowe repozytorium</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation>AI sojuszników mapy przygody</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation>AI wrogów mapy przygody</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation>Okno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation>Pełny ekran (tryb okna)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation>Pełny ekran klasyczny</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation>Limit autozapisów (0 = brak)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation>AI bitewne sojuszników</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation>Limit FPS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation>Przedrostek autozapisu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation>puste = przedrostek z nazwy mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation>Odśwież</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation>Domyślne repozytorium</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation>Włączony</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation>Kursor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation>Język plików Heroes III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -539,94 +539,99 @@ Pełny ekran w trybie okna - gra uruchomi się w oknie przysłaniającym cały e
|
||||
Pełny ekran klasyczny - gra przysłoni cały ekran uruchamiając się w wybranej przez ciebie rozdzielczości ekranu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation>Sprzętowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation>Programowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translation>Tłumaczenie Heroes III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation>Sprawdzaj przy uruchomieniu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>Pełny ekran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation>Ogólne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation>Język VCMI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation>Rozdzielczość</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation>Autozapis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation>Numer wyświetlacza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation>Port sieciowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation>Obraz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation>Pokaż intro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation>Aktywny</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Wyłączone</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation>Włącz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation>Nie zainstalowano</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation>Zainstaluj</translation>
|
||||
</message>
|
||||
|
@ -406,144 +406,149 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation>Отключено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation>Включено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation>Проверять при запуске</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>Полноэкранный режим</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation>Общее</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation>Язык VCMI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation>Курсор</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation>Искусственный интеллект</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation>Репозитории модов</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation>Язык данных Героев III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -554,73 +559,73 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation>Аппаратный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation>Программный</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translation>Перевод Героев III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation>Разрешение экрана</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation>Автосохранение</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation>Дисплей</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation>Сетевой порт</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation>Графика</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation>Вступление</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation>Активен</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Отключен</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation>Включить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation>Не установлен</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation>Установить</translation>
|
||||
</message>
|
||||
|
@ -406,165 +406,170 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation>Desactivado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation>Inteligencia Artificial</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation>Repositorios de Mods</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation>Encendido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation>Cursor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translation>Traducción de Heroes III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>Pantalla completa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation>General</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation>Idioma de VCMI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation>Resolución</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation>Autoguardado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation>Mostrar índice</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation>Puerto de red</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation>Vídeo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -575,52 +580,52 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation>Hardware</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation>Software</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation>Mostrar introducción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation>Comprovar al inicio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation>Idioma de los datos de Heroes III.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation>Activado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Desactivado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation>Activar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation>No Instalado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation>Instalar</translation>
|
||||
</message>
|
||||
|
@ -406,123 +406,123 @@
|
||||
<context>
|
||||
<name>CSettingsView</name>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="244"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="599"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="302"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="408"/>
|
||||
<source>Off</source>
|
||||
<translation>Вимкнено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="78"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="123"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="79"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="579"/>
|
||||
<source>Artificial Intelligence</source>
|
||||
<translation>Штучний інтелект</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="83"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="233"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="84"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="434"/>
|
||||
<source>Mod Repositories</source>
|
||||
<translation>Репозиторії модифікацій</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="305"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="498"/>
|
||||
<source>Interface Scaling</source>
|
||||
<translation>Масштабування інтерфейсу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="278"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="491"/>
|
||||
<source>Neutral AI in battles</source>
|
||||
<translation>Нейтральний ШІ в боях</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="465"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="421"/>
|
||||
<source>Enemy AI in battles</source>
|
||||
<translation>Ворожий ШІ в боях</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="441"/>
|
||||
<source>Additional repository</source>
|
||||
<translation>Додатковий репозиторій</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="201"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="566"/>
|
||||
<source>Adventure Map Allies</source>
|
||||
<translation>Союзники на мапі пригод</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="281"/>
|
||||
<source>Adventure Map Enemies</source>
|
||||
<translation>Вороги на мапі пригод</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="623"/>
|
||||
<source>Windowed</source>
|
||||
<translation>У вікні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="181"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="628"/>
|
||||
<source>Borderless fullscreen</source>
|
||||
<translation>Повноекранне вікно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="186"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="633"/>
|
||||
<source>Exclusive fullscreen</source>
|
||||
<translation>Повноекранний (ексклюзивно)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="319"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="170"/>
|
||||
<source>Autosave limit (0 = off)</source>
|
||||
<translation>Кількість автозбережень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="329"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="525"/>
|
||||
<source>Friendly AI in battles</source>
|
||||
<translation>Дружній ШІ в боях</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="588"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="271"/>
|
||||
<source>Framerate Limit</source>
|
||||
<translation>Обмеження частоти кадрів</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="612"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="328"/>
|
||||
<source>Autosave prefix</source>
|
||||
<translation>Префікс назв автозбережень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="629"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="603"/>
|
||||
<source>empty = map name prefix</source>
|
||||
<translation>(використовувати назву карти)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="508"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="383"/>
|
||||
<source>Refresh now</source>
|
||||
<translation>Оновити зараз</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="264"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="288"/>
|
||||
<source>Default repository</source>
|
||||
<translation>Стандартний репозиторій</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="249"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="419"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="604"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="307"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="375"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="413"/>
|
||||
<source>On</source>
|
||||
<translation>Увімкнено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="451"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="359"/>
|
||||
<source>Cursor</source>
|
||||
<translation>Курсор</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="312"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="481"/>
|
||||
<source>Heroes III Data Language</source>
|
||||
<translation>Мова Heroes III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="163"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="610"/>
|
||||
<source>Select display mode for game
|
||||
|
||||
Windowed - game will run inside a window that covers part of your screen
|
||||
@ -539,94 +539,99 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
||||
Повноекранний ексклюзивний режим - гра займатиме весь екран і використовуватиме вибрану роздільну здатність.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="431"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="641"/>
|
||||
<source>Reserved screen area</source>
|
||||
<translation>Зарезервована зона екрану</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="212"/>
|
||||
<source>Hardware</source>
|
||||
<translation>Апаратний</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="436"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="217"/>
|
||||
<source>Software</source>
|
||||
<translation>Програмний</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="535"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="397"/>
|
||||
<source>Heroes III Translation</source>
|
||||
<translation>Переклад Heroes III</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="472"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<source>Check on startup</source>
|
||||
<translation>Перевіряти на старті</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="444"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="177"/>
|
||||
<source>Fullscreen</source>
|
||||
<translation>Повноекранний режим</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="68"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="69"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="197"/>
|
||||
<source>General</source>
|
||||
<translation>Загальні налаштування</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="542"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="532"/>
|
||||
<source>VCMI Language</source>
|
||||
<translation>Мова VCMI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="194"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="335"/>
|
||||
<source>Resolution</source>
|
||||
<translation>Роздільна здатність</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="549"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="204"/>
|
||||
<source>Autosave</source>
|
||||
<translation>Автозбереження</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="376"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="146"/>
|
||||
<source>Display index</source>
|
||||
<translation>Дісплей</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="528"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="184"/>
|
||||
<source>Network port</source>
|
||||
<translation>Мережевий порт</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="73"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="561"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="74"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="321"/>
|
||||
<source>Video</source>
|
||||
<translation>Графіка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="403"/>
|
||||
<location filename="../settingsView/csettingsview_moc.ui" line="225"/>
|
||||
<source>Show intro</source>
|
||||
<translation>Вступні відео</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="402"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="405"/>
|
||||
<source>Active</source>
|
||||
<translation>Активні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="407"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="410"/>
|
||||
<source>Disabled</source>
|
||||
<translation>Деактивований</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="408"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="411"/>
|
||||
<source>Enable</source>
|
||||
<translation>Активувати</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="413"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="416"/>
|
||||
<source>Not Installed</source>
|
||||
<translation>Не встановлено</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="414"/>
|
||||
<location filename="../settingsView/csettingsview_moc.cpp" line="417"/>
|
||||
<source>Install</source>
|
||||
<translation>Встановити</translation>
|
||||
</message>
|
||||
|
@ -445,7 +445,7 @@ void CCreatureSet::setStackExp(const SlotID & slot, TExpType exp)
|
||||
stacks[slot]->experience = exp;
|
||||
}
|
||||
|
||||
void CCreatureSet::clear()
|
||||
void CCreatureSet::clearSlots()
|
||||
{
|
||||
while(!stacks.empty())
|
||||
{
|
||||
@ -533,12 +533,12 @@ void CCreatureSet::changeStackCount(const SlotID & slot, TQuantity toAdd)
|
||||
|
||||
CCreatureSet::~CCreatureSet()
|
||||
{
|
||||
clear();
|
||||
clearSlots();
|
||||
}
|
||||
|
||||
void CCreatureSet::setToArmy(CSimpleArmy &src)
|
||||
{
|
||||
clear();
|
||||
clearSlots();
|
||||
while(src)
|
||||
{
|
||||
auto i = src.army.begin();
|
||||
@ -1050,7 +1050,7 @@ void CStackBasicDescriptor::serializeJson(JsonSerializeFormat & handler)
|
||||
}
|
||||
}
|
||||
|
||||
void CSimpleArmy::clear()
|
||||
void CSimpleArmy::clearSlots()
|
||||
{
|
||||
army.clear();
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ using TCreatureQueue = std::priority_queue<TPairCreatureSlot, std::vector<TPairC
|
||||
class IArmyDescriptor
|
||||
{
|
||||
public:
|
||||
virtual void clear() = 0;
|
||||
virtual void clearSlots() = 0;
|
||||
virtual bool setCreature(SlotID slot, CreatureID cre, TQuantity count) = 0;
|
||||
};
|
||||
|
||||
@ -190,7 +190,7 @@ class DLL_LINKAGE CSimpleArmy : public IArmyDescriptor
|
||||
{
|
||||
public:
|
||||
TSimpleSlots army;
|
||||
void clear() override;
|
||||
void clearSlots() override;
|
||||
bool setCreature(SlotID slot, CreatureID cre, TQuantity count) override;
|
||||
operator bool() const;
|
||||
|
||||
@ -226,7 +226,7 @@ public:
|
||||
|
||||
void addToSlot(const SlotID & slot, const CreatureID & cre, TQuantity count, bool allowMerging = true); //Adds stack to slot. Slot must be empty or with same type creature
|
||||
void addToSlot(const SlotID & slot, CStackInstance * stack, bool allowMerging = true); //Adds stack to slot. Slot must be empty or with same type creature
|
||||
void clear() override;
|
||||
void clearSlots() override;
|
||||
void setFormation(bool tight);
|
||||
CArmedInstance *castToArmyObj();
|
||||
|
||||
|
@ -313,19 +313,7 @@ void CGeneralTextHandler::registerStringOverride(const std::string & modContext,
|
||||
assert(!modContext.empty());
|
||||
assert(!language.empty());
|
||||
|
||||
std::string baseModLanguage = getModLanguage(modContext);
|
||||
|
||||
if (baseModLanguage != language)
|
||||
{
|
||||
// this is translation - only add text to existing strings, do not register new ones
|
||||
if (stringsLocalizations.count(UID.get()) == 0)
|
||||
{
|
||||
logMod->warn("Unknown string '%s' in mod '%s' for language '%s'. Ignoring", UID.get(), modContext, language);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: implicitly creates entry, intended - strings added by vcmi (and potential UI mods) are not registered anywhere at the moment
|
||||
// NOTE: implicitly creates entry, intended - strings added by maps, campaigns, vcmi and potentially - UI mods are not registered anywhere at the moment
|
||||
auto & entry = stringsLocalizations[UID.get()];
|
||||
|
||||
entry.overrideLanguage = language;
|
||||
@ -349,6 +337,9 @@ bool CGeneralTextHandler::validateTranslation(const std::string & language, cons
|
||||
if (string.second.baseLanguage == language && !string.second.baseValue.empty())
|
||||
continue; // Base string already uses our language
|
||||
|
||||
if (string.second.baseLanguage.empty())
|
||||
continue; // String added in localization, not present in base language (e.g. maps/campaigns)
|
||||
|
||||
if (config.Struct().count(string.first) > 0)
|
||||
continue;
|
||||
|
||||
|
@ -335,7 +335,7 @@ struct DLL_LINKAGE SetAvailableHero : public CPackForClient
|
||||
{
|
||||
SetAvailableHero()
|
||||
{
|
||||
army.clear();
|
||||
army.clearSlots();
|
||||
}
|
||||
void applyGs(CGameState * gs);
|
||||
|
||||
|
@ -38,6 +38,8 @@
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
#define THROW_IF_NO_BATTLE if (!gs->curB) throw std::runtime_error("Trying to apply pack when no battle!");
|
||||
|
||||
void CPack::visit(ICPackVisitor & visitor)
|
||||
{
|
||||
visitBasic(visitor);
|
||||
@ -2127,16 +2129,19 @@ void BattleStart::applyGs(CGameState * gs) const
|
||||
|
||||
void BattleNextRound::applyGs(CGameState * gs) const
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
gs->curB->nextRound(round);
|
||||
}
|
||||
|
||||
void BattleSetActiveStack::applyGs(CGameState * gs) const
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
gs->curB->nextTurn(stack);
|
||||
}
|
||||
|
||||
void BattleTriggerEffect::applyGs(CGameState * gs) const
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
CStack * st = gs->curB->getStack(stackID);
|
||||
assert(st);
|
||||
switch(static_cast<BonusType>(effect))
|
||||
@ -2232,6 +2237,7 @@ void BattleLogMessage::applyBattle(IBattleState * battleState)
|
||||
|
||||
void BattleStackMoved::applyGs(CGameState *gs)
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
applyBattle(gs->curB);
|
||||
}
|
||||
|
||||
@ -2242,6 +2248,7 @@ void BattleStackMoved::applyBattle(IBattleState * battleState)
|
||||
|
||||
void BattleStackAttacked::applyGs(CGameState * gs)
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
applyBattle(gs->curB);
|
||||
}
|
||||
|
||||
@ -2252,6 +2259,7 @@ void BattleStackAttacked::applyBattle(IBattleState * battleState)
|
||||
|
||||
void BattleAttack::applyGs(CGameState * gs)
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
CStack * attacker = gs->curB->getStack(stackAttacking);
|
||||
assert(attacker);
|
||||
|
||||
@ -2265,6 +2273,8 @@ void BattleAttack::applyGs(CGameState * gs)
|
||||
|
||||
void StartAction::applyGs(CGameState *gs)
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
|
||||
CStack *st = gs->curB->getStack(ba.stackNumber);
|
||||
|
||||
if(ba.actionType == EActionType::END_TACTIC_PHASE)
|
||||
@ -2313,7 +2323,7 @@ void StartAction::applyGs(CGameState *gs)
|
||||
|
||||
void BattleSpellCast::applyGs(CGameState * gs) const
|
||||
{
|
||||
assert(gs->curB);
|
||||
THROW_IF_NO_BATTLE
|
||||
|
||||
if(castByHero)
|
||||
{
|
||||
@ -2326,6 +2336,7 @@ void BattleSpellCast::applyGs(CGameState * gs) const
|
||||
|
||||
void SetStackEffect::applyGs(CGameState *gs)
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
applyBattle(gs->curB);
|
||||
}
|
||||
|
||||
@ -2344,6 +2355,7 @@ void SetStackEffect::applyBattle(IBattleState * battleState)
|
||||
|
||||
void StacksInjured::applyGs(CGameState *gs)
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
applyBattle(gs->curB);
|
||||
}
|
||||
|
||||
@ -2355,6 +2367,7 @@ void StacksInjured::applyBattle(IBattleState * battleState)
|
||||
|
||||
void BattleUnitsChanged::applyGs(CGameState *gs)
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
applyBattle(gs->curB);
|
||||
}
|
||||
|
||||
@ -2385,8 +2398,8 @@ void BattleUnitsChanged::applyBattle(IBattleState * battleState)
|
||||
|
||||
void BattleObstaclesChanged::applyGs(CGameState * gs)
|
||||
{
|
||||
if(gs->curB)
|
||||
applyBattle(gs->curB);
|
||||
THROW_IF_NO_BATTLE;
|
||||
applyBattle(gs->curB);
|
||||
}
|
||||
|
||||
void BattleObstaclesChanged::applyBattle(IBattleState * battleState)
|
||||
@ -2417,8 +2430,8 @@ CatapultAttack::~CatapultAttack() = default;
|
||||
|
||||
void CatapultAttack::applyGs(CGameState * gs)
|
||||
{
|
||||
if(gs->curB)
|
||||
applyBattle(gs->curB);
|
||||
THROW_IF_NO_BATTLE
|
||||
applyBattle(gs->curB);
|
||||
}
|
||||
|
||||
void CatapultAttack::visitTyped(ICPackVisitor & visitor)
|
||||
@ -2444,6 +2457,7 @@ void CatapultAttack::applyBattle(IBattleState * battleState)
|
||||
|
||||
void BattleSetStackProperty::applyGs(CGameState * gs) const
|
||||
{
|
||||
THROW_IF_NO_BATTLE
|
||||
CStack * stack = gs->curB->getStack(stackID);
|
||||
switch(which)
|
||||
{
|
||||
|
@ -1732,6 +1732,10 @@ SpellID CBattleInfoCallback::getRandomCastedSpell(CRandomGenerator & rand,const
|
||||
TConstBonusListPtr bl = caster->getBonuses(Selector::type()(BonusType::SPELLCASTER));
|
||||
if (!bl->size())
|
||||
return SpellID::NONE;
|
||||
|
||||
if(bl->size() == 1)
|
||||
return SpellID(bl->front()->subtype);
|
||||
|
||||
int totalWeight = 0;
|
||||
for(const auto & b : *bl)
|
||||
{
|
||||
|
@ -58,7 +58,7 @@ std::string CBank::getHoverText(PlayerColor player) const
|
||||
void CBank::setConfig(const BankConfig & config)
|
||||
{
|
||||
bc = std::make_unique<BankConfig>(config);
|
||||
clear(); // remove all stacks, if any
|
||||
clearSlots(); // remove all stacks, if any
|
||||
|
||||
for(const auto & stack : config.guards)
|
||||
setCreature (SlotID(stacksCount()), stack.type->getId(), stack.count);
|
||||
|
@ -356,6 +356,9 @@ void CTownRewardableBuilding::heroLevelUpDone(const CGHeroInstance *hero) const
|
||||
|
||||
void CTownRewardableBuilding::blockingDialogAnswered(const CGHeroInstance *hero, ui32 answer) const
|
||||
{
|
||||
if(answer == 0)
|
||||
return; // player refused
|
||||
|
||||
if(visitors.find(hero->id) != visitors.end())
|
||||
return; // query not for this building
|
||||
|
||||
|
@ -1736,7 +1736,7 @@ CGObjectInstance * CMapLoaderH3M::readHero(const int3 & mapPosition, const Objec
|
||||
{
|
||||
if(!object->spells.empty())
|
||||
{
|
||||
object->clear();
|
||||
object->spells.clear();
|
||||
logGlobal->debug("Hero %s subID=%d has spells set twice (in map properties and on adventure map instance). Using the latter set...", object->getNameTextID(), object->subID);
|
||||
}
|
||||
|
||||
|
@ -376,6 +376,12 @@ void Area::translate(const int3 & shift)
|
||||
//toAbsolute(dTiles, shift);
|
||||
}
|
||||
|
||||
void Area::erase_if(std::function<bool(const int3&)> predicate)
|
||||
{
|
||||
invalidate();
|
||||
vstd::erase_if(dTiles, predicate);
|
||||
}
|
||||
|
||||
Area operator- (const Area & l, const int3 & r)
|
||||
{
|
||||
Area result(l);
|
||||
|
@ -64,6 +64,7 @@ namespace rmg
|
||||
void intersect(const Area & area);
|
||||
void subtract(const Area & area);
|
||||
void translate(const int3 & shift);
|
||||
void erase_if(std::function<bool(const int3&)> predicate);
|
||||
|
||||
friend Area operator+ (const Area & l, const int3 & r); //translation
|
||||
friend Area operator- (const Area & l, const int3 & r); //translation
|
||||
|
@ -344,16 +344,6 @@ void Object::Instance::finalize(RmgMap & map)
|
||||
setTemplate(terrainType->getId());
|
||||
}
|
||||
}
|
||||
if (dObject.ID == Obj::MONSTER)
|
||||
{
|
||||
//Make up for extra offset in HotA creature templates
|
||||
auto visitableOffset = dObject.getVisitableOffset();
|
||||
auto fixedPos = getPosition(true) + visitableOffset;
|
||||
vstd::abetween(fixedPos.x, visitableOffset.x, map.width() - 1);
|
||||
vstd::abetween(fixedPos.y, visitableOffset.y, map.height() - 1);
|
||||
int3 parentPos = getPosition(true) - getPosition(false);
|
||||
setPosition(fixedPos - parentPos);
|
||||
}
|
||||
|
||||
if (dObject.isVisitable() && !map.isOnMap(dObject.visitablePos()))
|
||||
throw rmgException(boost::to_string(boost::format("Visitable tile %s of object %d at %s is outside the map") % dObject.visitablePos().toString() % dObject.id % dObject.pos.toString()));
|
||||
|
@ -130,6 +130,19 @@ int3 ObjectManager::findPlaceForObject(const rmg::Area & searchArea, rmg::Object
|
||||
float bestWeight = 0.f;
|
||||
int3 result(-1, -1, -1);
|
||||
|
||||
//Blocked area might not cover object position if it has an offset from (0,0)
|
||||
auto outsideTheMap = [this, &obj]() -> bool
|
||||
{
|
||||
for (const auto& oi : obj.instances())
|
||||
{
|
||||
if (!map.isOnMap(oi->getPosition(true)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
if(optimizer & OptimizeType::DISTANCE)
|
||||
{
|
||||
auto open = tilesByDistance;
|
||||
@ -150,6 +163,9 @@ int3 ObjectManager::findPlaceForObject(const rmg::Area & searchArea, rmg::Object
|
||||
if(!searchArea.contains(obj.getArea()) || !searchArea.overlap(obj.getAccessibleArea()))
|
||||
continue;
|
||||
|
||||
if (outsideTheMap())
|
||||
continue;
|
||||
|
||||
float weight = weightFunction(tile);
|
||||
if(weight > bestWeight)
|
||||
{
|
||||
@ -172,6 +188,9 @@ int3 ObjectManager::findPlaceForObject(const rmg::Area & searchArea, rmg::Object
|
||||
if(!searchArea.contains(obj.getArea()) || !searchArea.overlap(obj.getAccessibleArea()))
|
||||
continue;
|
||||
|
||||
if (outsideTheMap())
|
||||
continue;
|
||||
|
||||
float weight = weightFunction(tile);
|
||||
if(weight > bestWeight)
|
||||
{
|
||||
@ -416,7 +435,7 @@ bool ObjectManager::createRequiredObjects()
|
||||
|
||||
//create object on specific positions
|
||||
//TODO: implement guards
|
||||
for (const auto &objInfo : instantObjects)
|
||||
for (const auto &objInfo : instantObjects) //Unused ATM
|
||||
{
|
||||
rmg::Object rmgObject(*objInfo.obj);
|
||||
rmgObject.setPosition(objInfo.pos);
|
||||
@ -433,6 +452,28 @@ bool ObjectManager::createRequiredObjects()
|
||||
|
||||
void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateDistance, bool createRoad/* = false*/)
|
||||
{
|
||||
//object.finalize(map);
|
||||
|
||||
if (object.instances().size() == 1 && object.instances().front()->object().ID == Obj::MONSTER)
|
||||
{
|
||||
//Fix for HoTA offset - lonely guards
|
||||
|
||||
auto monster = object.instances().front();
|
||||
if (!monster->object().appearance)
|
||||
{
|
||||
//Needed to determine visitable offset
|
||||
monster->setAnyTemplate();
|
||||
}
|
||||
object.getPosition();
|
||||
auto visitableOffset = monster->object().getVisitableOffset();
|
||||
auto fixedPos = monster->getPosition(true) + visitableOffset;
|
||||
|
||||
//Do not place guard outside the map
|
||||
vstd::abetween(fixedPos.x, visitableOffset.x, map.width() - 1);
|
||||
vstd::abetween(fixedPos.y, visitableOffset.y, map.height() - 1);
|
||||
int3 parentOffset = monster->getPosition(true) - monster->getPosition(false);
|
||||
monster->setPosition(fixedPos - parentOffset);
|
||||
}
|
||||
object.finalize(map);
|
||||
|
||||
Zone::Lock lock(zone.areaMutex);
|
||||
@ -444,7 +485,7 @@ void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateD
|
||||
zone.areaUsed().unite(object.getArea());
|
||||
zone.areaUsed().erase(object.getVisitablePosition());
|
||||
|
||||
if(guarded)
|
||||
if(guarded) //We assume the monster won't be guarded
|
||||
{
|
||||
auto guardedArea = object.instances().back()->getAccessibleArea();
|
||||
guardedArea.add(object.instances().back()->getVisitablePosition());
|
||||
@ -501,6 +542,7 @@ void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateD
|
||||
{
|
||||
case Obj::RANDOM_TREASURE_ART:
|
||||
case Obj::RANDOM_MINOR_ART: //In OH3 quest artifacts have higher value than normal arts
|
||||
case Obj::RANDOM_RESOURCE:
|
||||
{
|
||||
if (auto * qap = zone.getModificator<QuestArtifactPlacer>())
|
||||
{
|
||||
@ -629,9 +671,13 @@ bool ObjectManager::addGuard(rmg::Object & object, si32 strength, bool zoneGuard
|
||||
});
|
||||
|
||||
auto & instance = object.addInstance(*guard);
|
||||
instance.setPosition(guardPos - object.getPosition());
|
||||
instance.setAnyTemplate(); //terrain is irrelevant for monsters, but monsters need some template now
|
||||
|
||||
//Fix HoTA monsters with offset template
|
||||
auto visitableOffset = instance.object().getVisitableOffset();
|
||||
auto fixedPos = guardPos - object.getPosition() + visitableOffset;
|
||||
instance.setPosition(fixedPos);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -89,14 +89,15 @@ void QuestArtifactPlacer::placeQuestArtifacts(CRandomGenerator & rand)
|
||||
artifactToReplace->getObjectName(),
|
||||
artifactToReplace->getPosition().toString(),
|
||||
VLC->artifacts()->getById(artifactToPlace)->getNameTranslated());
|
||||
artifactToReplace->ID = Obj::ARTIFACT;
|
||||
artifactToReplace->subID = artifactToPlace;
|
||||
|
||||
//Update appearance. Terrain is irrelevant.
|
||||
auto handler = VLC->objtypeh->getHandlerFor(Obj::ARTIFACT, artifactToPlace);
|
||||
auto newObj = handler->create();
|
||||
auto templates = handler->getTemplates();
|
||||
artifactToReplace->appearance = templates.front();
|
||||
//FIXME: Instance name is still "randomArtifact"
|
||||
//artifactToReplace->appearance = templates.front();
|
||||
newObj->appearance = templates.front();
|
||||
newObj->pos = artifactToReplace->pos;
|
||||
mapProxy->insertObject(newObj);
|
||||
|
||||
for (auto z : map.getZones())
|
||||
{
|
||||
@ -107,6 +108,7 @@ void QuestArtifactPlacer::placeQuestArtifacts(CRandomGenerator & rand)
|
||||
localQap->dropReplacedArtifact(artifactToReplace);
|
||||
}
|
||||
}
|
||||
mapProxy->removeObject(artifactToReplace);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -18,9 +18,12 @@
|
||||
#include "../threadpool/MapProxy.h"
|
||||
#include "../../CModHandler.h"
|
||||
#include "../../mapping/CMapEditManager.h"
|
||||
#include "../../TerrainHandler.h"
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
class TerrainType;
|
||||
|
||||
void RoadPlacer::process()
|
||||
{
|
||||
if(generator.getConfig().defaultRoadType.empty() && generator.getConfig().secondaryRoadType.empty())
|
||||
@ -114,6 +117,13 @@ void RoadPlacer::drawRoads(bool secondary)
|
||||
//Clean space under roads even if they won't be eventually generated
|
||||
Zone::Lock lock(zone.areaMutex);
|
||||
|
||||
//Do not draw roads on underground rock or water
|
||||
roads.erase_if([this](const int3& pos) -> bool
|
||||
{
|
||||
const auto* terrain = map.getTile(pos).terType;;
|
||||
return !terrain->isPassable() || !terrain->isLand();
|
||||
});
|
||||
|
||||
zone.areaPossible().subtract(roads);
|
||||
zone.freePaths().unite(roads);
|
||||
}
|
||||
|
@ -30,6 +30,12 @@ void MapProxy::insertObjects(std::set<CGObjectInstance*>& objects)
|
||||
map.getEditManager()->insertObjects(objects);
|
||||
}
|
||||
|
||||
void MapProxy::removeObject(CGObjectInstance * obj)
|
||||
{
|
||||
Lock lock(mx);
|
||||
map.getEditManager()->removeObject(obj);
|
||||
}
|
||||
|
||||
void MapProxy::drawTerrain(CRandomGenerator & generator, std::vector<int3> & tiles, TerrainId terrain)
|
||||
{
|
||||
Lock lock(mx);
|
||||
|
@ -26,6 +26,7 @@ public:
|
||||
|
||||
void insertObject(CGObjectInstance * obj);
|
||||
void insertObjects(std::set<CGObjectInstance*>& objects);
|
||||
void removeObject(CGObjectInstance* obj);
|
||||
|
||||
void drawTerrain(CRandomGenerator & generator, std::vector<int3> & tiles, TerrainId terrain);
|
||||
void drawRivers(CRandomGenerator & generator, std::vector<int3> & tiles, TerrainId terrain);
|
||||
|
@ -590,7 +590,7 @@ std::vector<AimType> BattleSpellMechanics::getTargetTypes() const
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::vector<Destination> BattleSpellMechanics::getPossibleDestinations(size_t index, AimType aimType, const Target & current) const
|
||||
std::vector<Destination> BattleSpellMechanics::getPossibleDestinations(size_t index, AimType aimType, const Target & current, bool fast) const
|
||||
{
|
||||
//TODO: BattleSpellMechanics::getPossibleDestinations
|
||||
|
||||
@ -602,19 +602,66 @@ std::vector<Destination> BattleSpellMechanics::getPossibleDestinations(size_t in
|
||||
switch(aimType)
|
||||
{
|
||||
case AimType::CREATURE:
|
||||
case AimType::LOCATION:
|
||||
for(int i = 0; i < GameConstants::BFIELD_SIZE; i++)
|
||||
{
|
||||
auto stacks = battle()->battleGetAllStacks();
|
||||
|
||||
for(auto stack : stacks)
|
||||
{
|
||||
BattleHex dest(i);
|
||||
if(dest.isAvailable())
|
||||
Target tmp = current;
|
||||
tmp.emplace_back(stack->getPosition());
|
||||
|
||||
detail::ProblemImpl ignored;
|
||||
|
||||
if(canBeCastAt(tmp, ignored))
|
||||
ret.emplace_back(stack->getPosition());
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case AimType::LOCATION:
|
||||
if(fast)
|
||||
{
|
||||
auto stacks = battle()->battleGetAllStacks();
|
||||
std::set<BattleHex> hexesToCheck;
|
||||
|
||||
for(auto stack : stacks)
|
||||
{
|
||||
Target tmp = current;
|
||||
tmp.emplace_back(dest);
|
||||
hexesToCheck.insert(stack->getPosition());
|
||||
|
||||
detail::ProblemImpl ignored;
|
||||
for(auto adjacent : stack->getPosition().neighbouringTiles())
|
||||
hexesToCheck.insert(adjacent);
|
||||
}
|
||||
|
||||
if(canBeCastAt(tmp, ignored))
|
||||
ret.emplace_back(dest);
|
||||
for(auto hex : hexesToCheck)
|
||||
{
|
||||
if(hex.isAvailable())
|
||||
{
|
||||
Target tmp = current;
|
||||
tmp.emplace_back(hex);
|
||||
|
||||
detail::ProblemImpl ignored;
|
||||
|
||||
if(canBeCastAt(tmp, ignored))
|
||||
ret.emplace_back(hex);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(int i = 0; i < GameConstants::BFIELD_SIZE; i++)
|
||||
{
|
||||
BattleHex dest(i);
|
||||
if(dest.isAvailable())
|
||||
{
|
||||
Target tmp = current;
|
||||
tmp.emplace_back(dest);
|
||||
|
||||
detail::ProblemImpl ignored;
|
||||
|
||||
if(canBeCastAt(tmp, ignored))
|
||||
ret.emplace_back(dest);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
/// Returns vector of all possible destinations for specified aim type
|
||||
/// index - ???
|
||||
/// current - ???
|
||||
std::vector<Destination> getPossibleDestinations(size_t index, AimType aimType, const Target & current) const override final;
|
||||
std::vector<Destination> getPossibleDestinations(size_t index, AimType aimType, const Target & current, bool fast) const override final;
|
||||
|
||||
/// Returns true if spell can be cast on unit
|
||||
bool isReceptive(const battle::Unit * target) const override;
|
||||
|
@ -326,7 +326,7 @@ bool BattleCast::castIfPossible(ServerCallback * server, Target target)
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<Target> BattleCast::findPotentialTargets() const
|
||||
std::vector<Target> BattleCast::findPotentialTargets(bool fast) const
|
||||
{
|
||||
//TODO: for more than 2 destinations per target much more efficient algorithm is required
|
||||
|
||||
@ -354,7 +354,7 @@ std::vector<Target> BattleCast::findPotentialTargets() const
|
||||
if(previous.empty())
|
||||
{
|
||||
Target empty;
|
||||
destinations = m->getPossibleDestinations(index, targetTypes.at(index), empty);
|
||||
destinations = m->getPossibleDestinations(index, targetTypes.at(index), empty, fast);
|
||||
|
||||
for(auto & destination : destinations)
|
||||
{
|
||||
@ -367,7 +367,7 @@ std::vector<Target> BattleCast::findPotentialTargets() const
|
||||
{
|
||||
for(const Target & current : previous)
|
||||
{
|
||||
destinations = m->getPossibleDestinations(index, targetTypes.at(index), current);
|
||||
destinations = m->getPossibleDestinations(index, targetTypes.at(index), current, fast);
|
||||
|
||||
for(auto & destination : destinations)
|
||||
{
|
||||
|
@ -139,7 +139,7 @@ public:
|
||||
///cast with silent check for permitted cast
|
||||
bool castIfPossible(ServerCallback * server, Target target);
|
||||
|
||||
std::vector<Target> findPotentialTargets() const;
|
||||
std::vector<Target> findPotentialTargets(bool fast = false) const;
|
||||
|
||||
private:
|
||||
///spell school level
|
||||
@ -199,7 +199,7 @@ public:
|
||||
|
||||
virtual std::vector<AimType> getTargetTypes() const = 0;
|
||||
|
||||
virtual std::vector<Destination> getPossibleDestinations(size_t index, AimType aimType, const Target & current) const = 0;
|
||||
virtual std::vector<Destination> getPossibleDestinations(size_t index, AimType aimType, const Target & current, bool fast = false) const = 0;
|
||||
|
||||
virtual const Spell * getSpell() const = 0;
|
||||
|
||||
|
@ -222,7 +222,7 @@ bool RewardsWidget::commitChanges()
|
||||
pandora->resources = ResourceSet();
|
||||
pandora->artifacts.clear();
|
||||
pandora->spells.clear();
|
||||
pandora->creatures.clear();
|
||||
pandora->creatures.clearSlots();
|
||||
|
||||
for(int row = 0; row < rewards; ++row)
|
||||
{
|
||||
|
@ -2943,7 +2943,7 @@ bool CGameHandler::load(const std::string & filename)
|
||||
try
|
||||
{
|
||||
{
|
||||
CLoadFile lf(*CResourceHandler::get("local")->getResourceName(ResourceID(stem.to_string(), EResType::SAVEGAME)), MINIMAL_SERIALIZATION_VERSION);
|
||||
CLoadFile lf(*CResourceHandler::get()->getResourceName(ResourceID(stem.to_string(), EResType::SAVEGAME)), MINIMAL_SERIALIZATION_VERSION);
|
||||
loadCommonState(lf);
|
||||
logGlobal->info("Loading server state");
|
||||
lf >> *this;
|
||||
|
@ -277,6 +277,12 @@ void CVCMIServer::prepareToRestart()
|
||||
* si = * gh->gs->initialOpts;
|
||||
si->seedToBeUsed = si->seedPostInit = 0;
|
||||
state = EServerState::LOBBY;
|
||||
if (si->campState)
|
||||
{
|
||||
assert(si->campState->currentScenario().has_value());
|
||||
campaignMap = si->campState->currentScenario().value_or(CampaignScenarioID(0));
|
||||
campaignBonus = si->campState->getBonusID(campaignMap).value_or(-1);
|
||||
}
|
||||
// FIXME: dirry hack to make sure old CGameHandler::run is finished
|
||||
boost::this_thread::sleep(boost::posix_time::milliseconds(1000));
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ void HeroPoolProcessor::onHeroEscaped(const PlayerColor & color, const CGHeroIns
|
||||
sah.slotID = selectSlotForRole(color, sah.roleID);
|
||||
sah.player = color;
|
||||
sah.hid = hero->subID;
|
||||
sah.army.clear();
|
||||
sah.army.clearSlots();
|
||||
sah.army.setCreature(SlotID(0), hero->type->initialArmy.at(0).creature, 1);
|
||||
|
||||
gameHandler->sendAndApply(&sah);
|
||||
@ -148,7 +148,7 @@ void HeroPoolProcessor::selectNewHeroForSlot(const PlayerColor & color, TavernHe
|
||||
else
|
||||
{
|
||||
sah.roleID = TavernSlotRole::SINGLE_UNIT;
|
||||
sah.army.clear();
|
||||
sah.army.clearSlots();
|
||||
sah.army.setCreature(SlotID(0), newHero->type->initialArmy[0].creature, 1);
|
||||
}
|
||||
}
|
||||
@ -244,7 +244,7 @@ bool HeroPoolProcessor::hireHero(const ObjectInstanceID & objectID, const HeroTy
|
||||
hr.hid = recruitedHero->subID;
|
||||
hr.player = player;
|
||||
hr.tile = recruitedHero->convertFromVisitablePos(targetPos );
|
||||
if(gameHandler->getTile(hr.tile)->isWater() && !recruitedHero->boat)
|
||||
if(gameHandler->getTile(targetPos)->isWater() && !recruitedHero->boat)
|
||||
{
|
||||
//Create a new boat for hero
|
||||
gameHandler->createObject(targetPos , Obj::BOAT, recruitedHero->getBoatType().getNum());
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
|
||||
MOCK_CONST_METHOD1(isReceptive, bool(const battle::Unit * ));
|
||||
MOCK_CONST_METHOD0(getTargetTypes, std::vector<AimType>());
|
||||
MOCK_CONST_METHOD3(getPossibleDestinations, std::vector<Destination>(size_t, AimType, const Target &));
|
||||
MOCK_CONST_METHOD4(getPossibleDestinations, std::vector<Destination>(size_t, AimType, const Target &, bool));
|
||||
|
||||
MOCK_CONST_METHOD0(getSpell, const Spell *());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user