mirror of
https://github.com/vcmi/vcmi.git
synced 2025-04-21 12:06:49 +02:00
Merge pull request #3546 from IvanSavenko/fix_freeze_on_start
Fix freeze on map start
This commit is contained in:
commit
46c4f39eb8
19
ChangeLog.md
19
ChangeLog.md
@ -1,3 +1,22 @@
|
|||||||
|
# 1.4.4 -> 1.4.5
|
||||||
|
|
||||||
|
### Stability
|
||||||
|
* Fixed crash on creature spellcasting
|
||||||
|
* Fixed crash on unit entering magical obstacles such as quicksands
|
||||||
|
* Fixed freeze on map loading on some systems
|
||||||
|
|
||||||
|
### Random Maps Generator
|
||||||
|
* Fixed placement of guards sometimes resulting into open connection into third zone
|
||||||
|
* Fixed rare crash on multithreaded access during placement of artifacts or wandering monsters
|
||||||
|
|
||||||
|
### Map Editor
|
||||||
|
* Fixed inspector using wrong editor for some values
|
||||||
|
|
||||||
|
# 1.4.3 -> 1.4.4
|
||||||
|
|
||||||
|
### General
|
||||||
|
* Fixed crash on generation of random maps
|
||||||
|
|
||||||
# 1.4.2 -> 1.4.3
|
# 1.4.2 -> 1.4.3
|
||||||
|
|
||||||
### General
|
### General
|
||||||
|
@ -10,8 +10,8 @@ android {
|
|||||||
applicationId "is.xyz.vcmi"
|
applicationId "is.xyz.vcmi"
|
||||||
minSdk 19
|
minSdk 19
|
||||||
targetSdk 33
|
targetSdk 33
|
||||||
versionCode 1441
|
versionCode 1450
|
||||||
versionName "1.4.4"
|
versionName "1.4.5"
|
||||||
setProperty("archivesBaseName", "vcmi")
|
setProperty("archivesBaseName", "vcmi")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,10 +21,6 @@
|
|||||||
|
|
||||||
#include <SDL_events.h>
|
#include <SDL_events.h>
|
||||||
|
|
||||||
#ifdef VCMI_APPLE
|
|
||||||
# include <dispatch/dispatch.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void InputSourceText::handleEventTextInput(const SDL_TextInputEvent & text)
|
void InputSourceText::handleEventTextInput(const SDL_TextInputEvent & text)
|
||||||
{
|
{
|
||||||
GH.events().dispatchTextInput(text.text);
|
GH.events().dispatchTextInput(text.text);
|
||||||
@ -37,11 +33,8 @@ void InputSourceText::handleEventTextEditing(const SDL_TextEditingEvent & text)
|
|||||||
|
|
||||||
void InputSourceText::startTextInput(const Rect & whereInput)
|
void InputSourceText::startTextInput(const Rect & whereInput)
|
||||||
{
|
{
|
||||||
|
GH.dispatchMainThread([whereInput]()
|
||||||
#ifdef VCMI_APPLE
|
{
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Rect rectInScreenCoordinates = GH.screenHandler().convertLogicalPointsToWindow(whereInput);
|
Rect rectInScreenCoordinates = GH.screenHandler().convertLogicalPointsToWindow(whereInput);
|
||||||
SDL_Rect textInputRect = CSDL_Ext::toSDL(rectInScreenCoordinates);
|
SDL_Rect textInputRect = CSDL_Ext::toSDL(rectInScreenCoordinates);
|
||||||
|
|
||||||
@ -51,24 +44,16 @@ void InputSourceText::startTextInput(const Rect & whereInput)
|
|||||||
{
|
{
|
||||||
SDL_StartTextInput();
|
SDL_StartTextInput();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VCMI_APPLE
|
|
||||||
});
|
});
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputSourceText::stopTextInput()
|
void InputSourceText::stopTextInput()
|
||||||
{
|
{
|
||||||
#ifdef VCMI_APPLE
|
GH.dispatchMainThread([]()
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
{
|
||||||
#endif
|
|
||||||
|
|
||||||
if (SDL_IsTextInputActive() == SDL_TRUE)
|
if (SDL_IsTextInputActive() == SDL_TRUE)
|
||||||
{
|
{
|
||||||
SDL_StopTextInput();
|
SDL_StopTextInput();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VCMI_APPLE
|
|
||||||
});
|
});
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
@ -553,8 +553,7 @@ Point CGStatusBar::getBorderSize()
|
|||||||
|
|
||||||
CTextInput::CTextInput(const Rect & Pos, EFonts font, const CFunctionList<void(const std::string &)> & CB, bool giveFocusToInput)
|
CTextInput::CTextInput(const Rect & Pos, EFonts font, const CFunctionList<void(const std::string &)> & CB, bool giveFocusToInput)
|
||||||
: CLabel(Pos.x, Pos.y, font, ETextAlignment::CENTER),
|
: CLabel(Pos.x, Pos.y, font, ETextAlignment::CENTER),
|
||||||
cb(CB),
|
cb(CB)
|
||||||
CFocusable(std::make_shared<CKeyboardFocusListener>(this))
|
|
||||||
{
|
{
|
||||||
setRedrawParent(true);
|
setRedrawParent(true);
|
||||||
pos.h = Pos.h;
|
pos.h = Pos.h;
|
||||||
@ -570,7 +569,7 @@ CTextInput::CTextInput(const Rect & Pos, EFonts font, const CFunctionList<void(c
|
|||||||
}
|
}
|
||||||
|
|
||||||
CTextInput::CTextInput(const Rect & Pos, const Point & bgOffset, const ImagePath & bgName, const CFunctionList<void(const std::string &)> & CB)
|
CTextInput::CTextInput(const Rect & Pos, const Point & bgOffset, const ImagePath & bgName, const CFunctionList<void(const std::string &)> & CB)
|
||||||
:cb(CB), CFocusable(std::make_shared<CKeyboardFocusListener>(this))
|
:cb(CB)
|
||||||
{
|
{
|
||||||
pos += Pos.topLeft();
|
pos += Pos.topLeft();
|
||||||
pos.h = Pos.h;
|
pos.h = Pos.h;
|
||||||
@ -587,7 +586,6 @@ CTextInput::CTextInput(const Rect & Pos, const Point & bgOffset, const ImagePath
|
|||||||
}
|
}
|
||||||
|
|
||||||
CTextInput::CTextInput(const Rect & Pos, std::shared_ptr<IImage> srf)
|
CTextInput::CTextInput(const Rect & Pos, std::shared_ptr<IImage> srf)
|
||||||
:CFocusable(std::make_shared<CKeyboardFocusListener>(this))
|
|
||||||
{
|
{
|
||||||
pos += Pos.topLeft();
|
pos += Pos.topLeft();
|
||||||
OBJ_CONSTRUCTION;
|
OBJ_CONSTRUCTION;
|
||||||
@ -603,20 +601,15 @@ CTextInput::CTextInput(const Rect & Pos, std::shared_ptr<IImage> srf)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
std::atomic<int> CKeyboardFocusListener::usageIndex(0);
|
std::atomic<int> CFocusable::usageIndex(0);
|
||||||
|
|
||||||
CKeyboardFocusListener::CKeyboardFocusListener(CTextInput * textInput)
|
void CFocusable::focusGot()
|
||||||
:textInput(textInput)
|
|
||||||
{
|
{
|
||||||
}
|
GH.startTextInput(pos);
|
||||||
|
|
||||||
void CKeyboardFocusListener::focusGot()
|
|
||||||
{
|
|
||||||
GH.startTextInput(textInput->pos);
|
|
||||||
usageIndex++;
|
usageIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKeyboardFocusListener::focusLost()
|
void CFocusable::focusLost()
|
||||||
{
|
{
|
||||||
if(0 == --usageIndex)
|
if(0 == --usageIndex)
|
||||||
{
|
{
|
||||||
@ -769,12 +762,6 @@ void CTextInput::numberFilter(std::string & text, const std::string & oldText, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
CFocusable::CFocusable()
|
CFocusable::CFocusable()
|
||||||
:CFocusable(std::make_shared<IFocusListener>())
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
CFocusable::CFocusable(std::shared_ptr<IFocusListener> focusListener)
|
|
||||||
: focusListener(focusListener)
|
|
||||||
{
|
{
|
||||||
focus = false;
|
focus = false;
|
||||||
focusables.push_back(this);
|
focusables.push_back(this);
|
||||||
@ -785,7 +772,7 @@ CFocusable::~CFocusable()
|
|||||||
if(hasFocus())
|
if(hasFocus())
|
||||||
{
|
{
|
||||||
inputWithFocus = nullptr;
|
inputWithFocus = nullptr;
|
||||||
focusListener->focusLost();
|
focusLost();
|
||||||
}
|
}
|
||||||
|
|
||||||
focusables -= this;
|
focusables -= this;
|
||||||
@ -799,13 +786,13 @@ bool CFocusable::hasFocus() const
|
|||||||
void CFocusable::giveFocus()
|
void CFocusable::giveFocus()
|
||||||
{
|
{
|
||||||
focus = true;
|
focus = true;
|
||||||
focusListener->focusGot();
|
focusGot();
|
||||||
redraw();
|
redraw();
|
||||||
|
|
||||||
if(inputWithFocus)
|
if(inputWithFocus)
|
||||||
{
|
{
|
||||||
inputWithFocus->focus = false;
|
inputWithFocus->focus = false;
|
||||||
inputWithFocus->focusListener->focusLost();
|
inputWithFocus->focusLost();
|
||||||
inputWithFocus->redraw();
|
inputWithFocus->redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -837,7 +824,7 @@ void CFocusable::removeFocus()
|
|||||||
if(this == inputWithFocus)
|
if(this == inputWithFocus)
|
||||||
{
|
{
|
||||||
focus = false;
|
focus = false;
|
||||||
focusListener->focusLost();
|
focusLost();
|
||||||
redraw();
|
redraw();
|
||||||
|
|
||||||
inputWithFocus = nullptr;
|
inputWithFocus = nullptr;
|
||||||
|
@ -163,25 +163,12 @@ public:
|
|||||||
void clear() override;
|
void clear() override;
|
||||||
void setEnteringMode(bool on) override;
|
void setEnteringMode(bool on) override;
|
||||||
void setEnteredText(const std::string & text) override;
|
void setEnteredText(const std::string & text) override;
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
class CFocusable;
|
|
||||||
|
|
||||||
class IFocusListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual void focusGot() {};
|
|
||||||
virtual void focusLost() {};
|
|
||||||
virtual ~IFocusListener() = default;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// UIElement which can get input focus
|
/// UIElement which can get input focus
|
||||||
class CFocusable : public virtual CIntObject
|
class CFocusable : public virtual CIntObject
|
||||||
{
|
{
|
||||||
private:
|
static std::atomic<int> usageIndex;
|
||||||
std::shared_ptr<IFocusListener> focusListener;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool focus; //only one focusable control can have focus at one moment
|
bool focus; //only one focusable control can have focus at one moment
|
||||||
|
|
||||||
@ -190,27 +177,16 @@ public:
|
|||||||
void removeFocus(); //remove focus
|
void removeFocus(); //remove focus
|
||||||
bool hasFocus() const;
|
bool hasFocus() const;
|
||||||
|
|
||||||
|
void focusGot();
|
||||||
|
void focusLost();
|
||||||
|
|
||||||
static std::list<CFocusable *> focusables; //all existing objs
|
static std::list<CFocusable *> focusables; //all existing objs
|
||||||
static CFocusable * inputWithFocus; //who has focus now
|
static CFocusable * inputWithFocus; //who has focus now
|
||||||
|
|
||||||
CFocusable();
|
CFocusable();
|
||||||
CFocusable(std::shared_ptr<IFocusListener> focusListener);
|
|
||||||
~CFocusable();
|
~CFocusable();
|
||||||
};
|
};
|
||||||
|
|
||||||
class CTextInput;
|
|
||||||
class CKeyboardFocusListener : public IFocusListener
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
static std::atomic<int> usageIndex;
|
|
||||||
CTextInput * textInput;
|
|
||||||
|
|
||||||
public:
|
|
||||||
CKeyboardFocusListener(CTextInput * textInput);
|
|
||||||
void focusGot() override;
|
|
||||||
void focusLost() override;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// Text input box where players can enter text
|
/// Text input box where players can enter text
|
||||||
class CTextInput : public CLabel, public CFocusable
|
class CTextInput : public CLabel, public CFocusable
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
set(VCMI_VERSION_MAJOR 1)
|
set(VCMI_VERSION_MAJOR 1)
|
||||||
set(VCMI_VERSION_MINOR 4)
|
set(VCMI_VERSION_MINOR 4)
|
||||||
set(VCMI_VERSION_PATCH 4)
|
set(VCMI_VERSION_PATCH 5)
|
||||||
add_definitions(
|
add_definitions(
|
||||||
-DVCMI_VERSION_MAJOR=${VCMI_VERSION_MAJOR}
|
-DVCMI_VERSION_MAJOR=${VCMI_VERSION_MAJOR}
|
||||||
-DVCMI_VERSION_MINOR=${VCMI_VERSION_MINOR}
|
-DVCMI_VERSION_MINOR=${VCMI_VERSION_MINOR}
|
||||||
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
|||||||
|
vcmi (1.4.5) jammy; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release
|
||||||
|
|
||||||
|
-- Ivan Savenko <saven.ivan@gmail.com> Tue, 23 Jan 2024 12:00:00 +0200
|
||||||
|
|
||||||
vcmi (1.4.4) jammy; urgency=medium
|
vcmi (1.4.4) jammy; urgency=medium
|
||||||
|
|
||||||
* New upstream release
|
* New upstream release
|
||||||
|
@ -76,6 +76,7 @@
|
|||||||
</screenshot>
|
</screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="1.4.5" date="2024-01-23" type="stable"/>
|
||||||
<release version="1.4.4" date="2024-01-20" type="stable"/>
|
<release version="1.4.4" date="2024-01-20" type="stable"/>
|
||||||
<release version="1.4.3" date="2024-01-19" type="stable"/>
|
<release version="1.4.3" date="2024-01-19" type="stable"/>
|
||||||
<release version="1.4.2" date="2023-12-25" type="stable"/>
|
<release version="1.4.2" date="2023-12-25" type="stable"/>
|
||||||
|
@ -38,6 +38,9 @@ bool CModEntry::isEnabled() const
|
|||||||
if(!isInstalled())
|
if(!isInstalled())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (!isVisible())
|
||||||
|
return false;
|
||||||
|
|
||||||
return modSettings["active"].toBool();
|
return modSettings["active"].toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -521,7 +521,7 @@ QStringList CModListView::findDependentMods(QString mod, bool excludeDisabled)
|
|||||||
{
|
{
|
||||||
auto current = modModel->getMod(modName);
|
auto current = modModel->getMod(modName);
|
||||||
|
|
||||||
if(!current.isInstalled())
|
if(!current.isInstalled() || !current.isVisible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(current.getDependencies().contains(mod, Qt::CaseInsensitive))
|
if(current.getDependencies().contains(mod, Qt::CaseInsensitive))
|
||||||
|
@ -6,84 +6,84 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="22"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="22"/>
|
||||||
<source>VCMI on Discord</source>
|
<source>VCMI on Discord</source>
|
||||||
<translation type="unfinished">VCMI en Discord</translation>
|
<translation>VCMI en Discord</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="29"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="29"/>
|
||||||
<source>Have a question? Found a bug? Want to help? Join us!</source>
|
<source>Have a question? Found a bug? Want to help? Join us!</source>
|
||||||
<translation type="unfinished">¿Tienes alguna pregunta? ¿Encontraste algún error? ¿Quieres ayudar? ¡Únete a nosotros!</translation>
|
<translation>¿Tienes alguna pregunta? ¿Encontraste algún error? ¿Quieres ayudar? ¡Únete a nosotros!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="36"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="36"/>
|
||||||
<source>VCMI on Github</source>
|
<source>VCMI on Github</source>
|
||||||
<translation type="unfinished">VCMI en Github</translation>
|
<translation>VCMI en Github</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="55"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="55"/>
|
||||||
<source>Our Community</source>
|
<source>Our Community</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Nuestra comunidad</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="62"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="62"/>
|
||||||
<source>VCMI on Slack</source>
|
<source>VCMI on Slack</source>
|
||||||
<translation type="unfinished">VCMI en Slack</translation>
|
<translation>VCMI en Slack</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="98"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="98"/>
|
||||||
<source>Build Information</source>
|
<source>Build Information</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Información de la versión</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="115"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="115"/>
|
||||||
<source>User data directory</source>
|
<source>User data directory</source>
|
||||||
<translation type="unfinished">Directorio de datos del usuario</translation>
|
<translation>Directorio de datos del usuario</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="122"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="122"/>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="129"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="129"/>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="193"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="193"/>
|
||||||
<source>Open</source>
|
<source>Open</source>
|
||||||
<translation type="unfinished">Abrir</translation>
|
<translation>Abrir</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="136"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="136"/>
|
||||||
<source>Check for updates</source>
|
<source>Check for updates</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Comprobar actualizaciones</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="156"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="156"/>
|
||||||
<source>Game version</source>
|
<source>Game version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Versión del juego</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="163"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="163"/>
|
||||||
<source>Log files directory</source>
|
<source>Log files directory</source>
|
||||||
<translation type="unfinished">Directorio de archivos de registro</translation>
|
<translation>Directorio de archivos de registro</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="176"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="176"/>
|
||||||
<source>Data Directories</source>
|
<source>Data Directories</source>
|
||||||
<translation type="unfinished">Directorios de datos</translation>
|
<translation>Directorios de datos</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="213"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="213"/>
|
||||||
<source>Game data directory</source>
|
<source>Game data directory</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Directorio de los datos del juego</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="220"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="220"/>
|
||||||
<source>Operating System</source>
|
<source>Operating System</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Sistema operativo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="273"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="273"/>
|
||||||
<source>Project homepage</source>
|
<source>Project homepage</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Página web del proyecto</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../aboutProject/aboutproject_moc.ui" line="286"/>
|
<location filename="../aboutProject/aboutproject_moc.ui" line="286"/>
|
||||||
<source>Report a bug</source>
|
<source>Report a bug</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Informar de un error</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -121,7 +121,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistmodel_moc.cpp" line="48"/>
|
<location filename="../modManager/cmodlistmodel_moc.cpp" line="48"/>
|
||||||
<source>Maps</source>
|
<source>Maps</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mapas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistmodel_moc.cpp" line="49"/>
|
<location filename="../modManager/cmodlistmodel_moc.cpp" line="49"/>
|
||||||
@ -180,7 +180,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistmodel_moc.cpp" line="62"/>
|
<location filename="../modManager/cmodlistmodel_moc.cpp" line="62"/>
|
||||||
<source>Compatibility</source>
|
<source>Compatibility</source>
|
||||||
<translation type="unfinished">Compatibilidad</translation>
|
<translation>Compatibilidad</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistmodel_moc.cpp" line="63"/>
|
<location filename="../modManager/cmodlistmodel_moc.cpp" line="63"/>
|
||||||
@ -319,7 +319,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="292"/>
|
||||||
<source>Size</source>
|
<source>Size</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Tamaño</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="294"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="294"/>
|
||||||
@ -410,12 +410,12 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="638"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="638"/>
|
||||||
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
|
<source>Downloading %s%. %p% (%v MB out of %m MB) finished</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Descargando %s%. %p% (%v MB de %m MB) completado</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="665"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="665"/>
|
||||||
<source>Download failed</source>
|
<source>Download failed</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Descarga fallida</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="666"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="666"/>
|
||||||
@ -424,30 +424,37 @@
|
|||||||
Encountered errors:
|
Encountered errors:
|
||||||
|
|
||||||
</source>
|
</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>No se han podido descargar todos los ficheros.
|
||||||
|
|
||||||
|
Errores encontrados:
|
||||||
|
|
||||||
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="667"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="667"/>
|
||||||
<source>
|
<source>
|
||||||
|
|
||||||
Install successfully downloaded?</source>
|
Install successfully downloaded?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>
|
||||||
|
|
||||||
|
Instalar lo correctamente descargado?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="812"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="812"/>
|
||||||
<source>Installing mod %1</source>
|
<source>Installing mod %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Instalando mod %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="874"/>
|
||||||
<source>Operation failed</source>
|
<source>Operation failed</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Operación fallida</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="875"/>
|
||||||
<source>Encountered errors:
|
<source>Encountered errors:
|
||||||
</source>
|
</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Errores encontrados:
|
||||||
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../modManager/cmodlistview_moc.cpp" line="910"/>
|
<location filename="../modManager/cmodlistview_moc.cpp" line="910"/>
|
||||||
@ -482,94 +489,94 @@ Install successfully downloaded?</source>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="230"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="230"/>
|
||||||
<source>Interface Scaling</source>
|
<source>Interface Scaling</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Escala de la interfaz</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="394"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="394"/>
|
||||||
<source>Neutral AI in battles</source>
|
<source>Neutral AI in battles</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>IA neutral en batallas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="169"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="169"/>
|
||||||
<source>Enemy AI in battles</source>
|
<source>Enemy AI in battles</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>IA enemiga en batallas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="176"/>
|
||||||
<source>Additional repository</source>
|
<source>Additional repository</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Repositorio adicional</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="210"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="210"/>
|
||||||
<source>Adventure Map Allies</source>
|
<source>Adventure Map Allies</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Aliados en el Mapa de aventuras</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="552"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="552"/>
|
||||||
<source>Adventure Map Enemies</source>
|
<source>Adventure Map Enemies</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Enemigos en el Mapa de aventuras</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="428"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="428"/>
|
||||||
<source>Windowed</source>
|
<source>Windowed</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ventana</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="433"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="433"/>
|
||||||
<source>Borderless fullscreen</source>
|
<source>Borderless fullscreen</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ventana completa sin bordes</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="438"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="438"/>
|
||||||
<source>Exclusive fullscreen</source>
|
<source>Exclusive fullscreen</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Pantalla completa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="593"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="593"/>
|
||||||
<source>Autosave limit (0 = off)</source>
|
<source>Autosave limit (0 = off)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Límite de autosaves (0 = sin límite)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="401"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="401"/>
|
||||||
<source>Friendly AI in battles</source>
|
<source>Friendly AI in battles</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>IA amistosa en batallas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="370"/>
|
||||||
<source>Framerate Limit</source>
|
<source>Framerate Limit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Límite de fotogramas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="460"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="460"/>
|
||||||
<source>Autosave prefix</source>
|
<source>Autosave prefix</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Prefijo autoguardado</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="484"/>
|
||||||
<source>empty = map name prefix</source>
|
<source>empty = map name prefix</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Vacio = prefijo del mapa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="607"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="607"/>
|
||||||
<source>Refresh now</source>
|
<source>Refresh now</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Actualizar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="614"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="614"/>
|
||||||
<source>Default repository</source>
|
<source>Default repository</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Repositorio por defecto</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="624"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="624"/>
|
||||||
<source>Renderer</source>
|
<source>Renderer</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Render</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="246"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="246"/>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="476"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="476"/>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="544"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="544"/>
|
||||||
<source>On</source>
|
<source>On</source>
|
||||||
<translation>Encendido</translation>
|
<translation>Activado</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="115"/>
|
||||||
@ -584,7 +591,7 @@ Install successfully downloaded?</source>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="349"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="349"/>
|
||||||
<source>Reserved screen area</source>
|
<source>Reserved screen area</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Área de pantalla reservada</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="155"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="155"/>
|
||||||
@ -614,7 +621,7 @@ Install successfully downloaded?</source>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="562"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="562"/>
|
||||||
<source>VSync</source>
|
<source>VSync</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Sincronización vertical</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="135"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="135"/>
|
||||||
@ -640,7 +647,13 @@ Windowed - game will run inside a window that covers part of your screen
|
|||||||
Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
|
Borderless Windowed Mode - game will run in a window that covers entirely of your screen, using same resolution as your screen.
|
||||||
|
|
||||||
Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</source>
|
Fullscreen Exclusive Mode - game will cover entirety of your screen and will use selected resolution.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Selecciona el modo de visualización del juego
|
||||||
|
|
||||||
|
En ventana - el juego se ejecutará dentro de una ventana que forma parte de tu pantalla.
|
||||||
|
|
||||||
|
Ventana sin bordes - el juego se ejecutará en una ventana que cubre completamente tu pantalla, usando la misma resolución.
|
||||||
|
|
||||||
|
Pantalla completa - el juego cubrirá la totalidad de la pantalla y utilizará la resolución seleccionada.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../settingsView/csettingsview_moc.ui" line="522"/>
|
<location filename="../settingsView/csettingsview_moc.ui" line="522"/>
|
||||||
@ -698,27 +711,27 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../lobby/chat_moc.ui" line="14"/>
|
<location filename="../lobby/chat_moc.ui" line="14"/>
|
||||||
<source>Form</source>
|
<source>Form</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Formulario</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../lobby/chat_moc.ui" line="40"/>
|
<location filename="../lobby/chat_moc.ui" line="40"/>
|
||||||
<source>Users in lobby</source>
|
<source>Users in lobby</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Usuarios en la sala</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../lobby/chat_moc.ui" line="50"/>
|
<location filename="../lobby/chat_moc.ui" line="50"/>
|
||||||
<source>Global chat</source>
|
<source>Global chat</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Chat general</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../lobby/chat_moc.ui" line="104"/>
|
<location filename="../lobby/chat_moc.ui" line="104"/>
|
||||||
<source>type you message</source>
|
<source>type you message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Escribe tu mensaje</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../lobby/chat_moc.ui" line="111"/>
|
<location filename="../lobby/chat_moc.ui" line="111"/>
|
||||||
<source>send</source>
|
<source>send</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Enviar</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -792,12 +805,12 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../firstLaunch/firstlaunch_moc.ui" line="702"/>
|
<location filename="../firstLaunch/firstlaunch_moc.ui" line="702"/>
|
||||||
<source>Interface Improvements</source>
|
<source>Interface Improvements</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mejora de la interfaz</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../firstLaunch/firstlaunch_moc.ui" line="772"/>
|
<location filename="../firstLaunch/firstlaunch_moc.ui" line="772"/>
|
||||||
<source>Install mod that provides various interface improvements, such as better interface for random maps and selectable actions in battles</source>
|
<source>Install mod that provides various interface improvements, such as better interface for random maps and selectable actions in battles</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Instalar mod que proporciona varias mejoras en la interfaz, como mejor interacción en los mapas aleatorios y más opciones en las batallas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../firstLaunch/firstlaunch_moc.ui" line="127"/>
|
<location filename="../firstLaunch/firstlaunch_moc.ui" line="127"/>
|
||||||
@ -921,7 +934,7 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="23"/>
|
<location filename="../languages.cpp" line="23"/>
|
||||||
<source>Czech</source>
|
<source>Czech</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Czech (Checo)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="24"/>
|
<location filename="../languages.cpp" line="24"/>
|
||||||
@ -936,7 +949,7 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="26"/>
|
<location filename="../languages.cpp" line="26"/>
|
||||||
<source>Finnish</source>
|
<source>Finnish</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Finnish (Finlandés)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="27"/>
|
<location filename="../languages.cpp" line="27"/>
|
||||||
@ -951,12 +964,12 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="29"/>
|
<location filename="../languages.cpp" line="29"/>
|
||||||
<source>Hungarian</source>
|
<source>Hungarian</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Hungarian (Húngaro)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="30"/>
|
<location filename="../languages.cpp" line="30"/>
|
||||||
<source>Italian</source>
|
<source>Italian</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Italian (Italiano)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="31"/>
|
<location filename="../languages.cpp" line="31"/>
|
||||||
@ -971,7 +984,7 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="33"/>
|
<location filename="../languages.cpp" line="33"/>
|
||||||
<source>Portuguese</source>
|
<source>Portuguese</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Portuguese (Portugués)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="34"/>
|
<location filename="../languages.cpp" line="34"/>
|
||||||
@ -986,12 +999,12 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="36"/>
|
<location filename="../languages.cpp" line="36"/>
|
||||||
<source>Swedish</source>
|
<source>Swedish</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Swedish (Sueco)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="37"/>
|
<location filename="../languages.cpp" line="37"/>
|
||||||
<source>Turkish</source>
|
<source>Turkish</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Turkish (Turco)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="38"/>
|
<location filename="../languages.cpp" line="38"/>
|
||||||
@ -1001,7 +1014,7 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="39"/>
|
<location filename="../languages.cpp" line="39"/>
|
||||||
<source>Vietnamese</source>
|
<source>Vietnamese</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Vietnamese (Vietnamita)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="40"/>
|
<location filename="../languages.cpp" line="40"/>
|
||||||
@ -1011,12 +1024,12 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="41"/>
|
<location filename="../languages.cpp" line="41"/>
|
||||||
<source>Other (Cyrillic Script)</source>
|
<source>Other (Cyrillic Script)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Otro (Escritura cirílica)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="42"/>
|
<location filename="../languages.cpp" line="42"/>
|
||||||
<source>Other (West European)</source>
|
<source>Other (West European)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Otro (Europa del Este)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../languages.cpp" line="64"/>
|
<location filename="../languages.cpp" line="64"/>
|
||||||
@ -1151,7 +1164,7 @@ Ten en cuenta que para usar VCMI debes ser dueño de los archivos de datos origi
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow_moc.ui" line="207"/>
|
<location filename="../mainwindow_moc.ui" line="207"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ayuda</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow_moc.ui" line="276"/>
|
<location filename="../mainwindow_moc.ui" line="276"/>
|
||||||
|
@ -273,6 +273,10 @@ CBonusSystemNode::~CBonusSystemNode()
|
|||||||
|
|
||||||
void CBonusSystemNode::attachTo(CBonusSystemNode & parent)
|
void CBonusSystemNode::attachTo(CBonusSystemNode & parent)
|
||||||
{
|
{
|
||||||
|
// quick workaround to prevent multithreaded access to bonus system in RMG
|
||||||
|
static boost::mutex attachMutex;
|
||||||
|
boost::lock_guard<boost::mutex> lock(attachMutex);
|
||||||
|
|
||||||
assert(!vstd::contains(parents, &parent));
|
assert(!vstd::contains(parents, &parent));
|
||||||
parents.push_back(&parent);
|
parents.push_back(&parent);
|
||||||
|
|
||||||
|
@ -177,6 +177,21 @@ void ConnectionsPlacer::selfSideDirectConnection(const rmg::ZoneConnection & con
|
|||||||
int3 potentialPos = zone.areaPossible().nearest(borderPos);
|
int3 potentialPos = zone.areaPossible().nearest(borderPos);
|
||||||
assert(borderPos != potentialPos);
|
assert(borderPos != potentialPos);
|
||||||
|
|
||||||
|
//Check if guard pos doesn't touch any 3rd zone. This would create unwanted passage to 3rd zone
|
||||||
|
bool adjacentZone = false;
|
||||||
|
map.foreach_neighbour(potentialPos, [this, &adjacentZone, otherZoneId](int3 & pos)
|
||||||
|
{
|
||||||
|
auto zoneId = map.getZoneID(pos);
|
||||||
|
if (zoneId != zone.getId() && zoneId != otherZoneId)
|
||||||
|
{
|
||||||
|
adjacentZone = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (adjacentZone)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//Take into account distance to objects from both sides
|
//Take into account distance to objects from both sides
|
||||||
float dist = std::min(map.getTileInfo(potentialPos).getNearestObjectDistance(),
|
float dist = std::min(map.getTileInfo(potentialPos).getNearestObjectDistance(),
|
||||||
map.getTileInfo(borderPos).getNearestObjectDistance());
|
map.getTileInfo(borderPos).getNearestObjectDistance());
|
||||||
|
@ -128,7 +128,6 @@ protected:
|
|||||||
{
|
{
|
||||||
itemKey = keyItems[key];
|
itemKey = keyItems[key];
|
||||||
table->setItem(table->row(itemKey), 1, itemValue);
|
table->setItem(table->row(itemKey), 1, itemValue);
|
||||||
if(delegate)
|
|
||||||
table->setItemDelegateForRow(table->row(itemKey), delegate);
|
table->setItemDelegateForRow(table->row(itemKey), delegate);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -139,7 +138,6 @@ protected:
|
|||||||
table->setRowCount(row + 1);
|
table->setRowCount(row + 1);
|
||||||
table->setItem(row, 0, itemKey);
|
table->setItem(row, 0, itemKey);
|
||||||
table->setItem(row, 1, itemValue);
|
table->setItem(row, 1, itemValue);
|
||||||
if(delegate)
|
|
||||||
table->setItemDelegateForRow(row, delegate);
|
table->setItemDelegateForRow(row, delegate);
|
||||||
++row;
|
++row;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user