aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/director/cast.cpp21
-rw-r--r--engines/director/director.cpp14
-rw-r--r--engines/director/director.h5
-rw-r--r--engines/director/frame.cpp4
-rw-r--r--engines/director/frame.h2
-rw-r--r--engines/director/graphics.cpp2
-rw-r--r--engines/director/movie.cpp16
-rw-r--r--engines/director/movie.h17
-rw-r--r--engines/director/resource.cpp19
-rw-r--r--engines/director/score.cpp17
-rw-r--r--engines/director/score.h2
-rw-r--r--engines/director/sprite.h2
-rw-r--r--engines/titanic/core/game_object.h2
-rw-r--r--engines/titanic/game/nav_helmet.cpp2
-rw-r--r--engines/titanic/star_control/base_star.cpp34
-rw-r--r--engines/titanic/star_control/base_star.h13
-rw-r--r--engines/titanic/star_control/fpoint.cpp3
-rw-r--r--engines/titanic/star_control/fpoint.h7
-rw-r--r--engines/titanic/star_control/star_control.cpp17
-rw-r--r--engines/titanic/star_control/star_control_sub12.cpp13
-rw-r--r--engines/titanic/star_control/star_control_sub12.h14
-rw-r--r--engines/titanic/star_control/star_control_sub13.cpp6
-rw-r--r--engines/titanic/star_control/star_control_sub13.h3
-rw-r--r--engines/titanic/star_control/star_control_sub2.cpp12
-rw-r--r--engines/titanic/star_control/star_control_sub2.h11
-rw-r--r--engines/titanic/star_control/star_control_sub5.cpp4
-rw-r--r--engines/titanic/star_control/star_control_sub5.h6
-rw-r--r--engines/titanic/star_control/star_control_sub6.cpp60
-rw-r--r--engines/titanic/star_control/star_control_sub6.h10
-rw-r--r--engines/titanic/star_control/star_control_sub8.cpp37
-rw-r--r--engines/titanic/star_control/star_control_sub8.h17
-rw-r--r--engines/titanic/star_control/star_field.cpp100
-rw-r--r--engines/titanic/star_control/star_field.h31
-rw-r--r--engines/titanic/star_control/star_points2.cpp5
-rw-r--r--engines/titanic/star_control/star_points2.h8
-rw-r--r--engines/titanic/star_control/star_view.cpp335
-rw-r--r--engines/titanic/star_control/star_view.h41
-rw-r--r--engines/titanic/titanic.h5
-rw-r--r--gui/ThemeEngine.cpp28
-rw-r--r--gui/ThemeEngine.h2
-rw-r--r--gui/options.cpp99
-rw-r--r--gui/themes/scummclassic.zipbin128803 -> 20021 bytes
-rw-r--r--gui/themes/scummclassic/classic_layout.stx2
-rw-r--r--gui/themes/scummclassic/classic_layout_lowres.stx4
-rw-r--r--gui/themes/scummmodern.zipbin1648343 -> 739209 bytes
-rw-r--r--gui/themes/scummmodern/scummmodern_layout.stx2
-rw-r--r--gui/themes/scummmodern/scummmodern_layout_lowres.stx4
-rw-r--r--gui/widgets/tab.cpp197
-rw-r--r--gui/widgets/tab.h15
-rw-r--r--po/be_BY.po50
-rw-r--r--po/ca_ES.po50
-rw-r--r--po/cs_CZ.po50
-rw-r--r--po/da_DK.po50
-rw-r--r--po/de_DE.po92
-rw-r--r--po/el.po50
-rw-r--r--po/es_ES.po50
-rw-r--r--po/eu.po50
-rw-r--r--po/fi_FI.po78
-rw-r--r--po/fr_FR.po50
-rw-r--r--po/gl_ES.po50
-rw-r--r--po/hu_HU.po99
-rw-r--r--po/it_IT.po70
-rw-r--r--po/nb_NO.po50
-rw-r--r--po/nl_NL.po78
-rw-r--r--po/nn_NO.po50
-rw-r--r--po/pl_PL.po50
-rw-r--r--po/pt_BR.po65
-rw-r--r--po/pt_PT.po50
-rw-r--r--po/ru_RU.po74
-rw-r--r--po/scummvm.pot50
-rw-r--r--po/sv_SE.po50
-rw-r--r--po/uk_UA.po74
-rw-r--r--po/zh-Latn_CN.po50
73 files changed, 1261 insertions, 1439 deletions
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 4b391bd8cc..0f63a96435 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -94,12 +94,23 @@ TextCast::TextCast(Common::ReadStreamEndian &stream, uint16 version) {
palinfo2 = stream.readUint16();
palinfo3 = stream.readUint16();
- int t = stream.readUint32();
- if (t != 0) { // In D2 there are values
- warning("TextCast: t: %x", t);
+ if (version == 2) {
+ int t = stream.readUint16();
+ if (t != 0) { // In D2 there are values
+ warning("TextCast: t: %x", t);
+ }
+
+ initialRect = Score::readRect(stream);
+ stream.readUint16();
+ } else {
+ int t = stream.readUint32();
+ if (t != 0) { // In D2 there are values
+ warning("TextCast: t: %x", t);
+ }
+
+ initialRect = Score::readRect(stream);
}
- initialRect = Score::readRect(stream);
textShadow = static_cast<SizeType>(stream.readByte());
byte flags = stream.readByte();
if (flags & 0x1)
@@ -182,7 +193,7 @@ ButtonCast::ButtonCast(Common::ReadStreamEndian &stream, uint16 version) : TextC
stream.readByte();
stream.readByte();
- //This has already been populated in the super TextCast constructor
+ // This has already been populated in the super TextCast constructor
//initialRect = Score::readRect(stream);
//boundingRect = Score::readRect(stream);
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index a1ee253087..edea7ea591 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -59,7 +59,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
// Load Patterns
loadPatterns();
- _sharedCasts = nullptr;
+ _sharedScore = nullptr;
_currentScore = nullptr;
_soundManager = nullptr;
@@ -67,7 +67,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
_currentPaletteLength = 0;
_lingo = nullptr;
- _sharedCasts = nullptr;
+ _sharedScore = nullptr;
_sharedSound = nullptr;
_sharedBMP = nullptr;
_sharedSTXT = nullptr;
@@ -100,6 +100,7 @@ DirectorEngine::~DirectorEngine() {
delete _sharedBMP;
delete _sharedSTXT;
delete _sharedDIB;
+ delete _sharedScore;
delete _currentScore;
@@ -136,7 +137,7 @@ Common::Error DirectorEngine::run() {
return Common::kNoError;
}
- //FIXME
+ // FIXME
//_mainArchive = new RIFFArchive();
//_mainArchive->openFile("bookshelf_example.mmm");
@@ -242,4 +243,11 @@ Common::HashMap<Common::String, Score *> *DirectorEngine::scanMovies(const Commo
return nameMap;
}
+Common::HashMap<int, Cast *> *DirectorEngine::getSharedCasts() {
+ if (_sharedScore)
+ return &_sharedScore->_casts;
+
+ return &_dummyCast;
+}
+
} // End of namespace Director
diff --git a/engines/director/director.h b/engines/director/director.h
index 1c3d77fc71..5b1e9b36eb 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -105,7 +105,7 @@ public:
Common::HashMap<int, Common::SeekableSubReadStreamEndian *> *getSharedDIB() const { return _sharedDIB; }
Common::HashMap<int, Common::SeekableSubReadStreamEndian *> *getSharedBMP() const { return _sharedBMP; }
Common::HashMap<int, Common::SeekableSubReadStreamEndian *> *getSharedSTXT() const { return _sharedSTXT; }
- Common::HashMap<int, Cast *> *getSharedCasts() const { return _sharedCasts; }
+ Common::HashMap<int, Cast *> *getSharedCasts();
Common::HashMap<Common::String, Score *> *_movies;
@@ -138,7 +138,7 @@ private:
void loadEXERIFX(Common::SeekableReadStream *stream, uint32 offset);
void loadMac(const Common::String movie);
- Common::HashMap<int, Cast *> *_sharedCasts;
+ Score *_sharedScore;
Common::HashMap<int, Common::SeekableSubReadStreamEndian *> *_sharedDIB;
Common::HashMap<int, Common::SeekableSubReadStreamEndian *> *_sharedSTXT;
Common::HashMap<int, Common::SeekableSubReadStreamEndian *> *_sharedSound;
@@ -157,6 +157,7 @@ private:
Graphics::MacPatterns _director3QuickDrawPatterns;
Common::String _sharedCastFile;
+ Common::HashMap<int, Cast *> _dummyCast;
private:
void testFontScaling();
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index df03f998cd..50627d6d16 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -906,8 +906,8 @@ void Frame::renderText(Graphics::ManagedSurface &surface, uint16 spriteId, Commo
int x = _sprites[spriteId]->_startPoint.x; // +rectLeft;
int y = _sprites[spriteId]->_startPoint.y; // +rectTop;
- int height = _sprites[spriteId]->_height;
- int width = _sprites[spriteId]->_width;
+ int height = _sprites[spriteId]->_cast->initialRect.height(); //_sprites[spriteId]->_height;
+ int width = _sprites[spriteId]->_cast->initialRect.width(); //_sprites[spriteId]->_width;
if (_vm->getVersion() >= 4 && textSize != NULL)
width = textCast->initialRect.right;
diff --git a/engines/director/frame.h b/engines/director/frame.h
index 3799c2043c..704319ba0d 100644
--- a/engines/director/frame.h
+++ b/engines/director/frame.h
@@ -143,7 +143,7 @@ public:
byte _channelData[kChannelDataSize];
uint8 _actionId;
uint8 _transDuration;
- uint8 _transArea; //1 - Whole Stage, 0 - Changing Area
+ uint8 _transArea; // 1 - Whole Stage, 0 - Changing Area
uint8 _transChunkSize;
TransitionType _transType;
PaletteInfo *_palette;
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index 76ff41788c..5322abcedf 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -210,7 +210,7 @@ void DirectorEngine::loadPatterns() {
}
Graphics::MacPatterns &DirectorEngine::getPatterns() {
- //TOOD: implement switch and other version patterns. (use getVersion());
+ // TOOD: implement switch and other version patterns. (use getVersion());
return _director3QuickDrawPatterns;
}
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 9799510c6b..5d7b60efae 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -18,22 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- *
- * Additional copyright for this file:
- * Copyright (C) 1995-1997 Presto Studios, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
*/
#include "common/system.h"
diff --git a/engines/director/movie.h b/engines/director/movie.h
index e4729a62c3..8cccb99ad7 100644
--- a/engines/director/movie.h
+++ b/engines/director/movie.h
@@ -18,22 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- *
- * Additional copyright for this file:
- * Copyright (C) 1995-1997 Presto Studios, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
*/
#ifndef DIRECTOR_MOVIE_H
@@ -60,6 +44,7 @@ private:
Video::VideoDecoder *_currentVideo;
DirectorEngine *_vm;
};
+
} // End of namespace Director
#endif
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 9ceb95ba74..6dace8bcb2 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -205,8 +205,6 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
if (!shardcst->openFile(filename)) {
warning("No shared cast %s", filename.c_str());
- _sharedCasts = new Common::HashMap<int, Cast *>;
-
return;
}
@@ -214,8 +212,7 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
_sharedSTXT = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
_sharedSound = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
_sharedBMP = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
-
- Score *castScore = new Score(this, shardcst);
+ _sharedScore = new Score(this, shardcst);
if (shardcst->hasResource(MKTAG('F', 'O', 'N', 'D'), -1)) {
debug("Shared cast has fonts. Loading....");
@@ -223,20 +220,24 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
_wm->_fontMan->loadFonts(filename);
}
- castScore->loadConfig(*shardcst->getResource(MKTAG('V','W','C','F'), 1024));
+ _sharedScore->loadConfig(*shardcst->getResource(MKTAG('V','W','C','F'), 1024));
if (getVersion() < 4)
- castScore->loadCastDataVWCR(*shardcst->getResource(MKTAG('V','W','C','R'), 1024));
+ _sharedScore->loadCastDataVWCR(*shardcst->getResource(MKTAG('V','W','C','R'), 1024));
Common::Array<uint16> cast = shardcst->getResourceIDList(MKTAG('C','A','S','t'));
if (cast.size() > 0) {
for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator)
- castScore->loadCastData(*shardcst->getResource(MKTAG('C','A','S','t'), *iterator), *iterator, NULL);
+ _sharedScore->loadCastData(*shardcst->getResource(MKTAG('C','A','S','t'), *iterator), *iterator, NULL);
}
- castScore->setSpriteCasts();
+ Common::Array<uint16> vwci = shardcst->getResourceIDList(MKTAG('V', 'W', 'C', 'I'));
+ if (vwci.size() > 0) {
+ for (Common::Array<uint16>::iterator iterator = vwci.begin(); iterator != vwci.end(); ++iterator)
+ _sharedScore->loadCastInfo(*shardcst->getResource(MKTAG('V', 'W', 'C', 'I'), *iterator), *iterator);
+ }
- _sharedCasts = &castScore->_casts;
+ _sharedScore->setSpriteCasts();
Common::Array<uint16> dib = shardcst->getResourceIDList(MKTAG('D','I','B',' '));
if (dib.size() != 0) {
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index aa4828ead7..0f2f9ecb96 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -240,7 +240,7 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
while (size != 0) {
uint16 frameSize = stream.readUint16();
- debugC(kDebugLoading, 8, "++++ score frame %d (frameSize %d) size %d", _frames.size() + 1, frameSize, size);
+ debugC(kDebugLoading, 8, "++++ score frame %d (frameSize %d) size %d", _frames.size(), frameSize, size);
size -= frameSize;
frameSize -= 2;
@@ -344,12 +344,12 @@ void Score::setSpriteCasts() {
}
void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id, Resource *res) {
- // d4+ variant
+ // D4+ variant
if (stream.size() == 0)
return;
- //TODO: Determine if there really is a minimum size.
- //This value was too small for Shape Casts.
+ // TODO: Determine if there really is a minimum size.
+ // This value was too small for Shape Casts.
if (stream.size() < 10) {
warning("CAST data id %d is too small", id);
return;
@@ -717,14 +717,15 @@ int Score::getNextLabelNumber(int referenceFrame) {
for (i = _labels->begin(); i != _labels->end(); ++i) {
if ((*i)->number >= referenceFrame) {
+ int n = (*i)->number;
+ ++i;
if (i != _labels->end()) {
// return to the first marker to to the right
- ++i;
return (*i)->number;
} else {
// if no markers are to the right of the playback head,
// the playback head goes to the first marker to the left
- return (*i)->number;
+ return n;
}
}
}
@@ -909,7 +910,7 @@ void Score::update() {
if (_vm->getVersion() >= 6) {
for (uint16 i = 0; i < CHANNEL_COUNT; i++) {
if (_frames[_currentFrame]->_sprites[i]->_enabled) {
- //TODO: Check if this is also possibly a kSpriteScript?
+ // TODO: Check if this is also possibly a kSpriteScript?
_lingo->processEvent(kEventBeginSprite, kCastScript, _frames[_currentFrame]->_sprites[i]->_scriptId);
}
}
@@ -993,7 +994,7 @@ void Score::processEvents() {
// D3 doesn't have both mouse up and down.
// But we still want to know if the mouse is down for press effects.
_currentMouseDownSpriteId = _frames[_currentFrame]->getSpriteIDFromPos(pos);
-
+
if (_vm->getVersion() > 3) {
// TODO: check that this is the order of script execution!
_lingo->processEvent(kEventMouseDown, kCastScript, _frames[_currentFrame]->_sprites[_currentMouseDownSpriteId]->_castId);
diff --git a/engines/director/score.h b/engines/director/score.h
index 9ffa0e4de2..0a51d65a9a 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -72,6 +72,7 @@ public:
void loadConfig(Common::SeekableSubReadStreamEndian &stream);
void loadCastDataVWCR(Common::SeekableSubReadStreamEndian &stream);
void loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id, Resource *res);
+ void loadCastInfo(Common::SeekableSubReadStreamEndian &stream, uint16 id);
void setCurrentFrame(uint16 frameId) { _currentFrame = frameId; }
int getCurrentFrame() { return _currentFrame; }
Common::String getMacName() const { return _macName; }
@@ -90,7 +91,6 @@ private:
void loadFrames(Common::SeekableSubReadStreamEndian &stream);
void loadLabels(Common::SeekableSubReadStreamEndian &stream);
void loadActions(Common::SeekableSubReadStreamEndian &stream);
- void loadCastInfo(Common::SeekableSubReadStreamEndian &stream, uint16 id);
void loadScriptText(Common::SeekableSubReadStreamEndian &stream);
void loadFileInfo(Common::SeekableSubReadStreamEndian &stream);
void loadFontMap(Common::SeekableSubReadStreamEndian &stream);
diff --git a/engines/director/sprite.h b/engines/director/sprite.h
index d9b7729a87..c43418828c 100644
--- a/engines/director/sprite.h
+++ b/engines/director/sprite.h
@@ -49,7 +49,7 @@ enum InkType {
kInkTypeDark
};
-//Director v4
+// Director v4
enum SpriteType {
kInactiveSprite, // turns the sprite off
kBitmapSprite,
diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h
index a04860f7a4..3f42a872cb 100644
--- a/engines/titanic/core/game_object.h
+++ b/engines/titanic/core/game_object.h
@@ -44,7 +44,7 @@ enum Found { FOUND_NONE = 0, FOUND_GLOBAL = 1, FOUND_ROOM = 2, FOUND_PET = 3, FO
enum RoomFlagsComparison { RFC_LOCATION = 1, RFC_CLASS_ELEVATOR = 2, RFC_TITANIA = 3 };
enum StarControlAction {
STAR_SHOW = 0, STAR_HIDE, STAR_2, STAR_RESET_POS, STAR_4, STAR_5, STAR_6, STAR_7,
- STAR_8, STAR_9, STAR_10, STAR_11, STAR_12, STAR_13, STAR_SET_REFERENCE, STAR_FADE_IN,
+ STAR_8, STAR_TOGGLE_MODE, STAR_10, STAR_11, STAR_12, STAR_13, STAR_SET_REFERENCE, STAR_FADE_IN,
STAR_FADE_OUT, STAR_17, STAR_18, STAR_19
};
diff --git a/engines/titanic/game/nav_helmet.cpp b/engines/titanic/game/nav_helmet.cpp
index aaaa17defd..37d96a21fd 100644
--- a/engines/titanic/game/nav_helmet.cpp
+++ b/engines/titanic/game/nav_helmet.cpp
@@ -106,7 +106,7 @@ bool CNavHelmet::PETHelmetOnOffMsg(CPETHelmetOnOffMsg *msg) {
bool CNavHelmet::PETPhotoOnOffMsg(CPETPhotoOnOffMsg *msg) {
if (_flag)
- starFn(STAR_9);
+ starFn(STAR_TOGGLE_MODE);
return true;
}
diff --git a/engines/titanic/star_control/base_star.cpp b/engines/titanic/star_control/base_star.cpp
index 24d3e02b78..16e79fbe80 100644
--- a/engines/titanic/star_control/base_star.cpp
+++ b/engines/titanic/star_control/base_star.cpp
@@ -46,7 +46,8 @@ void CBaseStarEntry::load(Common::SeekableReadStream &s) {
/*------------------------------------------------------------------------*/
-CBaseStar::CBaseStar() : _minVal(0.0), _maxVal(1.0), _range(0.0) {
+CBaseStar::CBaseStar() : _minVal(0.0), _maxVal(1.0), _range(0.0),
+ _value1(0.0), _value2(0.0), _value3(0.0), _value4(0.0) {
}
void CBaseStar::clear() {
@@ -148,7 +149,36 @@ void CBaseStar::draw(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarC
}
void CBaseStar::draw1(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
- // TODO
+ CStarControlSub6 sub6 = sub12->proc23();
+ sub12->proc36(&_value1, &_value2, &_value3, &_value4);
+
+ FPoint centroid = surfaceArea->_centroid - FPoint(0.5, 0.5);
+ double v70 = sub12->proc25();
+ double minVal = v70 - 9216.0;
+ //int width1 = surfaceArea->_width - 1;
+ //int height1 = surfaceArea->_height - 1;
+ FVector vector;
+ double v4;
+
+ for (uint idx = 0; idx < _data.size(); ++idx) {
+ CBaseStarEntry &entry = _data[idx];
+ vector._x = entry._val._v1;
+ vector._y = entry._val._v2;
+ vector._z = entry._val._v3;
+ v4 = vector._x * sub6._row1._z + vector._y * sub6._row2._z
+ + vector._z * sub6._row3._z + sub6._field2C;
+ if (v4 <= minVal)
+ continue;
+
+
+ // TODO Lots of stuff
+ double v17 = 0.0, v98 = 0.0;
+ if (v17 >= 1.0e12) {
+ // TODO
+ } else {
+ sub5->proc2(&sub6, &vector, centroid._x, centroid._y, v98, surfaceArea, sub12);
+ }
+ }
}
void CBaseStar::draw2(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
diff --git a/engines/titanic/star_control/base_star.h b/engines/titanic/star_control/base_star.h
index 2c1c389e37..80f219c9ea 100644
--- a/engines/titanic/star_control/base_star.h
+++ b/engines/titanic/star_control/base_star.h
@@ -30,6 +30,8 @@
namespace Titanic {
+enum StarMode { MODE_STARFIELD = 0, MODE_PHOTO = 1 };
+
class CStarControlSub12;
struct CBaseStarEntry {
@@ -57,6 +59,8 @@ protected:
double _minVal;
double _maxVal;
double _range;
+ double _value1, _value2;
+ double _value3, _value4;
protected:
/**
* Get a pointer to a data entry
@@ -90,10 +94,15 @@ public:
virtual void draw(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5);
virtual bool loadYale(int v1) { return true; }
- virtual bool proc4(int v1, int v2, int v3, int v4, int v5) { return false; }
+
+ /**
+ * Selects a star
+ */
+ virtual bool selectStar(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12,
+ int flags, const Common::Point &pt) { return false; }
+
virtual bool proc5(int v1) { return false; }
virtual bool loadStar() { return false; }
- virtual bool proc7(int v1, int v2) { return true; }
/**
* Load the item's data
diff --git a/engines/titanic/star_control/fpoint.cpp b/engines/titanic/star_control/fpoint.cpp
index a2829572f8..a7c764177a 100644
--- a/engines/titanic/star_control/fpoint.cpp
+++ b/engines/titanic/star_control/fpoint.cpp
@@ -25,13 +25,14 @@
namespace Titanic {
-void FPoint::normalize() {
+double FPoint::normalize() {
double hyp = sqrt(_x * _x + _y * _y);
assert(hyp != 0.0);
double fraction = 1.0 / hyp;
_x *= fraction;
_y *= fraction;
+ return hyp;
}
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/fpoint.h b/engines/titanic/star_control/fpoint.h
index 33181d937b..d967351289 100644
--- a/engines/titanic/star_control/fpoint.h
+++ b/engines/titanic/star_control/fpoint.h
@@ -23,6 +23,8 @@
#ifndef TITANIC_FPOINT_H
#define TITANIC_FPOINT_H
+#include "common/rect.h"
+
namespace Titanic {
/**
@@ -34,9 +36,12 @@ public:
public:
FPoint() : _x(0), _y(0) {}
FPoint(double x, double y) : _x(x), _y(y) {}
+ FPoint(const Common::Point &pt) : _x(pt.x), _y(pt.y) {}
bool operator==(const FPoint &p) const { return _x == p._x && _y == p._y; }
bool operator!=(const FPoint &p) const { return _x != p._x || _y != p._y; }
+ FPoint operator+(const FPoint &delta) const { return FPoint(_x + delta._x, _y + delta._y); }
+ FPoint operator-(const FPoint &delta) const { return FPoint(_x - delta._x, _y - delta._y); }
void operator+=(const FPoint &delta) {
_x += delta._x;
@@ -52,7 +57,7 @@ public:
* Normalises the X and Y coordinates as fractions relative to the
* value of the hypotenuse formed by a triangle from the origin (0,0)
*/
- void normalize();
+ double normalize();
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control.cpp b/engines/titanic/star_control/star_control.cpp
index dcde81e253..6e27223f72 100644
--- a/engines/titanic/star_control/star_control.cpp
+++ b/engines/titanic/star_control/star_control.cpp
@@ -110,8 +110,11 @@ bool CStarControl::MouseMoveMsg(CMouseMoveMsg *msg) {
}
bool CStarControl::KeyCharMsg(CKeyCharMsg *msg) {
- if (_visible)
- _view.KeyCharMsg(msg->_key);
+ if (_visible) {
+ CErrorCode errorCode;
+ _view.KeyCharMsg(msg->_key, &errorCode);
+ return errorCode.get();
+ }
return false;
}
@@ -138,7 +141,7 @@ void CStarControl::newFrame() {
int val1 = _starField.get88();
int val2 = 0;
- if (!_starField.get3()) {
+ if (_starField.getMode() == MODE_STARFIELD) {
val2 = _starField.get5();
if ((val1 + 2) == _starField.get7Count())
val2 = 0;
@@ -205,8 +208,8 @@ void CStarControl::doAction(StarControlAction action) {
_view.fn9();
break;
- case STAR_9:
- _view.fn10();
+ case STAR_TOGGLE_MODE:
+ _view.toggleMode();
break;
case STAR_10:
@@ -226,7 +229,7 @@ void CStarControl::doAction(StarControlAction action) {
break;
case STAR_SET_REFERENCE: {
- _view.fn15();
+ _view.setHasReference();
CPetControl *pet = getPetControl();
if (pet)
pet->starsSetReference();
@@ -250,7 +253,7 @@ void CStarControl::doAction(StarControlAction action) {
break;
case STAR_19:
- _view.petDestinationSet();
+ _view.starDestinationSet();
break;
}
}
diff --git a/engines/titanic/star_control/star_control_sub12.cpp b/engines/titanic/star_control/star_control_sub12.cpp
index e8d49992bb..cd7400c577 100644
--- a/engines/titanic/star_control/star_control_sub12.cpp
+++ b/engines/titanic/star_control/star_control_sub12.cpp
@@ -105,9 +105,9 @@ void CStarControlSub12::proc11() {
_sub13.fn12();
}
-void CStarControlSub12::proc12(double v1, double v2) {
+void CStarControlSub12::proc12(StarMode mode, double v2) {
if (!isLocked())
- _sub13.fn13(v1, v2);
+ _sub13.fn13(mode, v2);
}
void CStarControlSub12::proc13(CStarControlSub13 *dest) {
@@ -122,7 +122,7 @@ void CStarControlSub12::proc14(int v) {
_handlerP->proc9(&vector, v, &matrix);
}
-void CStarControlSub12::proc15(int v) {
+void CStarControlSub12::proc15(CErrorCode *errorCode) {
if (!_matrix1)
_matrix1 = new FMatrix();
if (!_matrix2)
@@ -133,8 +133,7 @@ void CStarControlSub12::proc15(int v) {
FVector v1 = _sub13._position;
FVector v2 = _sub13._position;
- CErrorCode errorCode;
- _handlerP->proc11(errorCode, v2, _matrix2);
+ _handlerP->proc11(*errorCode, v2, _matrix2);
if (v1 != v2) {
_sub13.setPosition(v2);
@@ -216,8 +215,8 @@ FVector CStarControlSub12::proc31(int index, const FVector &v) {
return _sub13.fn18(index, v);
}
-void CStarControlSub12::proc32(double v1, double v2) {
- error("TODO: CStarControlSub12::proc32");
+void CStarControlSub12::setViewportPosition(const FPoint &pt) {
+ // TODO
}
bool CStarControlSub12::setArrayVector(const FVector &v) {
diff --git a/engines/titanic/star_control/star_control_sub12.h b/engines/titanic/star_control/star_control_sub12.h
index 8da45df5c0..2e53f10087 100644
--- a/engines/titanic/star_control/star_control_sub12.h
+++ b/engines/titanic/star_control/star_control_sub12.h
@@ -25,8 +25,11 @@
#include "titanic/support/simple_file.h"
#include "titanic/star_control/fmatrix.h"
+#include "titanic/star_control/fpoint.h"
+#include "titanic/star_control/base_star.h"
#include "titanic/star_control/star_control_sub13.h"
#include "titanic/star_control/star_control_sub20.h"
+#include "titanic/star_control/error_code.h"
namespace Titanic {
@@ -73,10 +76,10 @@ public:
virtual void proc9(int v);
virtual void proc10(int v);
virtual void proc11();
- virtual void proc12(double v1, double v2);
+ virtual void proc12(StarMode mode, double v2);
virtual void proc13(CStarControlSub13 *dest);
virtual void proc14(int v);
- virtual void proc15(int v);
+ virtual void proc15(CErrorCode *errorCode);
virtual void proc16();
virtual void proc17();
virtual void proc18();
@@ -93,7 +96,12 @@ public:
virtual FVector proc29(const FVector &v);
virtual FVector proc30(int index, const FVector &v);
virtual FVector proc31(int index, const FVector &v);
- virtual void proc32(double v1, double v2);
+
+ /**
+ * Sets the viewport position within the starfield
+ */
+ virtual void setViewportPosition(const FPoint &pt);
+
virtual int getCurrentIndex() const { return _currentIndex; }
virtual bool setArrayVector(const FVector &v);
virtual bool proc35();
diff --git a/engines/titanic/star_control/star_control_sub13.cpp b/engines/titanic/star_control/star_control_sub13.cpp
index 5da6118a74..298425ee55 100644
--- a/engines/titanic/star_control/star_control_sub13.cpp
+++ b/engines/titanic/star_control/star_control_sub13.cpp
@@ -129,7 +129,7 @@ void CStarControlSub13::setPosition(const FVector &v) {
void CStarControlSub13::setPosition(const CStarControlSub6 &sub6) {
FVector vector;
_position.fn5(&vector, &sub6);
- _position = sub6._matrix._row1;
+ _position = sub6._row1;
_fieldD4 = 0;
}
@@ -172,8 +172,8 @@ void CStarControlSub13::fn12() {
error("TODO: CStarControlSub13::fn12");
}
-void CStarControlSub13::fn13(double v1, double v2) {
- if (v1 == 0.0) {
+void CStarControlSub13::fn13(StarMode mode, double v2) {
+ if (mode == MODE_STARFIELD) {
_valArray[0] = v2;
_valArray[1] = -v2;
} else {
diff --git a/engines/titanic/star_control/star_control_sub13.h b/engines/titanic/star_control/star_control_sub13.h
index 2f0b479cec..75ae03b977 100644
--- a/engines/titanic/star_control/star_control_sub13.h
+++ b/engines/titanic/star_control/star_control_sub13.h
@@ -24,6 +24,7 @@
#define TITANIC_STAR_CONTROL_SUB13_H
#include "titanic/support/simple_file.h"
+#include "titanic/star_control/base_star.h"
#include "titanic/star_control/star_control_sub6.h"
#include "titanic/star_control/fmatrix.h"
@@ -88,7 +89,7 @@ public:
void fn11(const FVector &v);
void fn12();
- void fn13(double v1, double v2);
+ void fn13(StarMode mode, double v2);
void fn14(double v);
void fn15(FMatrix &matrix);
CStarControlSub6 getSub1();
diff --git a/engines/titanic/star_control/star_control_sub2.cpp b/engines/titanic/star_control/star_control_sub2.cpp
index fcbb70cbcb..cf7190fb34 100644
--- a/engines/titanic/star_control/star_control_sub2.cpp
+++ b/engines/titanic/star_control/star_control_sub2.cpp
@@ -24,13 +24,14 @@
namespace Titanic {
-bool CStarControlSub2::proc3(int v1) {
+bool CStarControlSub2::loadYale(int v1) {
clear();
- // TODO
+ error("Original loadYale not supported");
return true;
}
-bool CStarControlSub2::proc4(int v1, int v2, int v3, int v4, int v5) {
+bool CStarControlSub2::selectStar(CSurfaceArea *surfaceArea,
+ CStarControlSub12 *sub12, int flags, const Common::Point &pt) {
// TODO
return true;
}
@@ -40,11 +41,6 @@ bool CStarControlSub2::loadStar() {
return true;
}
-bool CStarControlSub2::proc7(int v1, int v2) {
- // TODO
- return true;
-}
-
bool CStarControlSub2::setup() {
// TODO
return true;
diff --git a/engines/titanic/star_control/star_control_sub2.h b/engines/titanic/star_control/star_control_sub2.h
index cd7781548f..9de2da4583 100644
--- a/engines/titanic/star_control/star_control_sub2.h
+++ b/engines/titanic/star_control/star_control_sub2.h
@@ -31,10 +31,15 @@ class CStarControlSub2: public CBaseStar {
public:
virtual ~CStarControlSub2() {}
- virtual bool proc3(int v1);
- virtual bool proc4(int v1, int v2, int v3, int v4, int v5);
+ virtual bool loadYale(int v1);
+
+ /**
+ * Selects a star
+ */
+ virtual bool selectStar(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12,
+ int flags, const Common::Point &pt);
+
virtual bool loadStar();
- virtual bool proc7(int v1, int v2);
/**
* Setup the control
diff --git a/engines/titanic/star_control/star_control_sub5.cpp b/engines/titanic/star_control/star_control_sub5.cpp
index 0503806e65..16aff46096 100644
--- a/engines/titanic/star_control/star_control_sub5.cpp
+++ b/engines/titanic/star_control/star_control_sub5.cpp
@@ -21,6 +21,7 @@
*/
#include "titanic/star_control/star_control_sub5.h"
+#include "titanic/star_control/star_control_sub12.h"
namespace Titanic {
@@ -33,7 +34,8 @@ bool CStarControlSub5::setup() {
return true;
}
-void CStarControlSub5::proc2() {
+void CStarControlSub5::proc2(CStarControlSub6 *sub6, FVector *vector, double v1, double v2, double v3,
+ CSurfaceArea *surfaceArea, CStarControlSub12 *sub12) {
// TODO
}
diff --git a/engines/titanic/star_control/star_control_sub5.h b/engines/titanic/star_control/star_control_sub5.h
index d90408e090..4e1a5be5d3 100644
--- a/engines/titanic/star_control/star_control_sub5.h
+++ b/engines/titanic/star_control/star_control_sub5.h
@@ -25,9 +25,12 @@
#include "titanic/star_control/star_control_sub6.h"
#include "titanic/star_control/error_code.h"
+#include "titanic/star_control/surface_area.h"
namespace Titanic {
+class CStarControlSub12;
+
class CStarControlSub5 {
struct SubEntry {
int _field0;
@@ -49,7 +52,8 @@ public:
virtual ~CStarControlSub5() {}
virtual bool setup();
- virtual void proc2();
+ virtual void proc2(CStarControlSub6 *sub6, FVector *vector, double v1, double v2, double v3,
+ CSurfaceArea *surfaceArea, CStarControlSub12 *sub12);
virtual void proc3(CErrorCode *errorCode);
int get4() const { return _field4; }
diff --git a/engines/titanic/star_control/star_control_sub6.cpp b/engines/titanic/star_control/star_control_sub6.cpp
index a5a1d81aa8..97eb5971ef 100644
--- a/engines/titanic/star_control/star_control_sub6.cpp
+++ b/engines/titanic/star_control/star_control_sub6.cpp
@@ -48,7 +48,7 @@ void CStarControlSub6::deinit() {
}
void CStarControlSub6::clear() {
- _matrix.clear();
+ FMatrix::clear();
_field24 = 0;
_field28 = 0;
_field2C = 0;
@@ -61,39 +61,39 @@ void CStarControlSub6::set(int mode, double amount) {
switch (mode) {
case 0:
- _matrix._row1._x = 1.0;
- _matrix._row1._y = 0.0;
- _matrix._row1._z = 0.0;
- _matrix._row2._x = 0.0;
- _matrix._row2._y = cosVal;
- _matrix._row2._z = sinVal;
- _matrix._row3._x = 0.0;
- _matrix._row3._y = -sinVal;
- _matrix._row3._z = cosVal;
+ _row1._x = 1.0;
+ _row1._y = 0.0;
+ _row1._z = 0.0;
+ _row2._x = 0.0;
+ _row2._y = cosVal;
+ _row2._z = sinVal;
+ _row3._x = 0.0;
+ _row3._y = -sinVal;
+ _row3._z = cosVal;
break;
case 1:
- _matrix._row1._x = cosVal;
- _matrix._row1._y = 0.0;
- _matrix._row1._z = sinVal;
- _matrix._row2._x = 0.0;
- _matrix._row2._y = 1.0;
- _matrix._row2._z = 0.0;
- _matrix._row3._x = -sinVal;
- _matrix._row3._y = 0.0;
- _matrix._row3._z = sinVal;
+ _row1._x = cosVal;
+ _row1._y = 0.0;
+ _row1._z = sinVal;
+ _row2._x = 0.0;
+ _row2._y = 1.0;
+ _row2._z = 0.0;
+ _row3._x = -sinVal;
+ _row3._y = 0.0;
+ _row3._z = sinVal;
break;
case 2:
- _matrix._row1._x = cosVal;
- _matrix._row1._y = sinVal;
- _matrix._row1._z = 0.0;
- _matrix._row2._x = -sinVal;
- _matrix._row2._y = cosVal;
- _matrix._row2._z = 0.0;
- _matrix._row3._x = 0.0;
- _matrix._row3._y = 0.0;
- _matrix._row3._z = 1.0;
+ _row1._x = cosVal;
+ _row1._y = sinVal;
+ _row1._z = 0.0;
+ _row2._x = -sinVal;
+ _row2._y = cosVal;
+ _row2._z = 0.0;
+ _row3._x = 0.0;
+ _row3._y = 0.0;
+ _row3._z = 1.0;
break;
default:
@@ -106,7 +106,9 @@ void CStarControlSub6::set(int mode, double amount) {
}
void CStarControlSub6::copyFrom(const CStarControlSub6 *src) {
- _matrix = src->_matrix;
+ _row1 = src->_row1;
+ _row2 = src->_row2;
+ _row3 = src->_row3;
_field24 = src->_field24;
_field28 = src->_field28;
_field2C = src->_field2C;
diff --git a/engines/titanic/star_control/star_control_sub6.h b/engines/titanic/star_control/star_control_sub6.h
index 118c7c7f10..645eb45c00 100644
--- a/engines/titanic/star_control/star_control_sub6.h
+++ b/engines/titanic/star_control/star_control_sub6.h
@@ -27,18 +27,16 @@
namespace Titanic {
-class CStarControlSub6 {
-private:
- int _field24;
- int _field28;
- int _field2C;
+class CStarControlSub6 : public FMatrix {
private:
static CStarControlSub6 *_static;
public:
static void init();
static void deinit();
public:
- FMatrix _matrix;
+ int _field24;
+ int _field28;
+ int _field2C;
public:
CStarControlSub6();
CStarControlSub6(int mode, double amount);
diff --git a/engines/titanic/star_control/star_control_sub8.cpp b/engines/titanic/star_control/star_control_sub8.cpp
index 78fdfa7f84..f2b52a984f 100644
--- a/engines/titanic/star_control/star_control_sub8.cpp
+++ b/engines/titanic/star_control/star_control_sub8.cpp
@@ -21,13 +21,48 @@
*/
#include "titanic/star_control/star_control_sub8.h"
+#include "titanic/star_control/star_control_sub7.h"
+#include "titanic/star_control/star_control_sub12.h"
+#include "titanic/star_control/star_field.h"
namespace Titanic {
CStarControlSub8::CStarControlSub8() : _field8(-1) {
#if 0
- _field0(0), _field4(0), _field8(-1), _fieldC(-1)
+ _field4(0), _field8(-1), _fieldC(-1)
#endif
}
+bool MouseButtonDown(const Common::Point &pt) {
+ // TODO
+ return true;
+}
+
+int CStarControlSub8::findStar(const Common::Point &pt) {
+ // TODO
+ return -1;
+}
+
+void CStarControlSub8::selectStar(int index, CVideoSurface *surface,
+ CStarField *starField, CStarControlSub7 *sub7) {
+ // TODO
+}
+
+void CStarControlSub8::fn1(CStarField *starField, CSurfaceArea *surfaceArea, CStarControlSub12 *sub12) {
+ // TODO
+}
+
+void CStarControlSub8::fn2(CVideoSurface *surface, CStarField *starField, CStarControlSub7 *sub7) {
+ // TODO
+}
+
+void CStarControlSub8::fn3() {
+ if (_field8 < 3)
+ ++_field8;
+}
+
+void CStarControlSub8::draw(CSurfaceArea *surfaceArea) {
+ // TODO
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub8.h b/engines/titanic/star_control/star_control_sub8.h
index 71aa8fb472..37944a78ed 100644
--- a/engines/titanic/star_control/star_control_sub8.h
+++ b/engines/titanic/star_control/star_control_sub8.h
@@ -23,10 +23,16 @@
#ifndef TITANIC_STAR_CONTROL_SUB8_H
#define TITANIC_STAR_CONTROL_SUB8_H
+#include "titanic/star_control/surface_area.h"
#include "titanic/support/simple_file.h"
+#include "titanic/support/video_surface.h"
namespace Titanic {
+class CStarField;
+class CStarControlSub7;
+class CStarControlSub12;
+
class CStarControlSub8 {
struct StructEntry {
int _field0;
@@ -55,6 +61,17 @@ public:
* Save the data for the class to file
*/
void save(SimpleFile *file, int indent) {}
+
+ int findStar(const Common::Point &pt);
+
+ void selectStar(int starNum, CVideoSurface *surface, CStarField *starField,
+ CStarControlSub7 *sub7);
+
+ void draw(CSurfaceArea *surfaceArea);
+
+ void fn1(CStarField *starField, CSurfaceArea *surfaceArea, CStarControlSub12 *sub12);
+ void fn2(CVideoSurface *surface, CStarField *starField, CStarControlSub7 *sub7);
+ void fn3();
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_field.cpp b/engines/titanic/star_control/star_field.cpp
index 31e75f3c13..43748ea0f8 100644
--- a/engines/titanic/star_control/star_field.cpp
+++ b/engines/titanic/star_control/star_field.cpp
@@ -25,16 +25,16 @@
namespace Titanic {
-CStarField::CStarField() : _val1(0), _val2(0), _val3(0), _val4(true),
- _val5(0), _isSolved(false) {
+CStarField::CStarField() : _points1On(false), _points2On(false), _mode(MODE_STARFIELD),
+ _val4(true), _val5(0), _isSolved(false) {
}
void CStarField::load(SimpleFile *file) {
_sub7.load(file);
_sub8.load(file);
- _val1 = file->readNumber();
- _val2 = file->readNumber();
- _val3 = file->readNumber();
+ _points1On = file->readNumber();
+ _points2On = file->readNumber();
+ _mode = (StarMode)file->readNumber();
_val4 = file->readNumber();
_isSolved = file->readNumber();
}
@@ -42,9 +42,9 @@ void CStarField::load(SimpleFile *file) {
void CStarField::save(SimpleFile *file, int indent) {
_sub7.save(file, indent);
_sub8.save(file, indent);
- file->writeNumberLine(_val1, indent);
- file->writeNumberLine(_val2, indent);
- file->writeNumberLine(_val3, indent);
+ file->writeNumberLine(_points1On, indent);
+ file->writeNumberLine(_points2On, indent);
+ file->writeNumberLine(_mode, indent);
file->writeNumberLine(_val4, indent);
file->writeNumberLine(_isSolved, indent);
}
@@ -64,25 +64,34 @@ bool CStarField::initDocument() {
void CStarField::render(CVideoSurface *surface, CStarControlSub12 *sub12) {
CSurfaceArea surfaceArea(surface);
draw(&surfaceArea, sub12, &_sub5);
+ if (_val4)
+ fn3(&surfaceArea);
+ _sub7.draw(&surfaceArea, sub12, nullptr);
+ _sub8.draw(&surfaceArea);
- // TODO
+ if (_points2On)
+ _points2.draw(&surfaceArea, sub12);
+ if (_points1On)
+ _points1.draw(&surfaceArea, sub12);
+
+ fn4(&surfaceArea, sub12);
}
int CStarField::get1() const {
- return _val1;
+ return _points1On;
}
void CStarField::set1(int val) {
- _val1 = val;
+ _points1On = val;
}
int CStarField::get2() const {
- return _val2;
+ return _points2On;
}
void CStarField::set2(int val) {
- _val2 = val;
+ _points2On = val;
}
int CStarField::get54() const {
@@ -93,12 +102,12 @@ void CStarField::set54(int val) {
_sub5.set4(val);
}
-int CStarField::get3() const {
- return _val3;
+StarMode CStarField::getMode() const {
+ return _mode;
}
-void CStarField::set3(int val) {
- _val3 = val;
+void CStarField::setMode(StarMode mode) {
+ _mode = mode;
}
void CStarField::toggle4() {
@@ -131,4 +140,61 @@ void CStarField::fn1(CErrorCode *errorCode) {
_sub5.proc3(errorCode);
}
+void CStarField::fn3(CSurfaceArea *surfaceArea) {
+ surfaceArea->_pixel = 0x323232;
+ surfaceArea->setColorFromPixel();
+
+ surfaceArea->fn1(FRect(202.60417, 63.75, 397.39584, 63.75));
+ surfaceArea->fn1(FRect(202.60417, 276.25, 397.39584, 276.25));
+ surfaceArea->fn1(FRect(193.75, 72.604164, 193.75, 267.39584));
+ surfaceArea->fn1(FRect(406.25, 72.604164, 406.25, 267.39584));
+ surfaceArea->fn1(FRect(202.60417, 63.75, 202.60417, 68.177086));
+ surfaceArea->fn1(FRect(397.39584, 63.75, 397.39584, 68.177086));
+ surfaceArea->fn1(FRect(202.60417, 276.25, 202.60417, 271.82291));
+ surfaceArea->fn1(FRect(397.39584, 276.25, 397.39584, 271.82291));
+ surfaceArea->fn1(FRect(193.75, 72.604164, 198.17708, 72.604164));
+ surfaceArea->fn1(FRect(193.75, 267.39584, 198.17708, 267.39584));
+ surfaceArea->fn1(FRect(406.25, 72.604164, 401.82291, 72.604164));
+ surfaceArea->fn1(FRect(406.25, 267.39584, 401.82291, 267.39584));
+ surfaceArea->fn1(FRect(300.0, 63.75, 300.0, 54.895832));
+ surfaceArea->fn1(FRect(300.0, 276.25, 300.0, 285.10416));
+ surfaceArea->fn1(FRect(193.75, 170.0, 184.89583, 170.0));
+ surfaceArea->fn1(FRect(406.25, 170.0, 415.10416, 170.0));
+}
+
+void CStarField::fn4(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12) {
+ // TODO
+}
+
+void CStarField::fn6(CVideoSurface *surface, CStarControlSub12 *sub12) {
+ CSurfaceArea surfaceArea(surface);
+
+}
+
+void CStarField::fn7() {
+ _sub8.fn3();
+ setSolved();
+}
+
+void CStarField::fn8(CVideoSurface *surface) {
+ _sub8.fn2(surface, this, &_sub7);
+ setSolved();
+}
+
+bool CStarField::mouseButtonDown(CVideoSurface *surface, CStarControlSub12 *sub12,
+ int flags, const Common::Point &pt) {
+ if (_mode == MODE_STARFIELD) {
+ CSurfaceArea surfaceArea(surface);
+ return selectStar(&surfaceArea, sub12, 0, pt);
+ } else {
+ int starNum = _sub8.findStar(pt);
+ if (starNum >= 0) {
+ _sub8.selectStar(starNum, surface, this, &_sub7);
+ return true;
+ }
+
+ return false;
+ }
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index 9e8b732f45..6787e06613 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -39,12 +39,15 @@ private:
CStarPoints1 _points1;
CStarPoints2 _points2;
CStarControlSub5 _sub5;
- int _val1;
- int _val2;
- int _val3;
+ bool _points1On;
+ bool _points2On;
+ StarMode _mode;
bool _val4;
int _val5;
bool _isSolved;
+private:
+ void fn3(CSurfaceArea *surfaceArea);
+ void fn4(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12);
public:
CStarField();
@@ -71,8 +74,17 @@ public:
void set2(int val);
int get54() const;
void set54(int val);
- int get3() const;
- void set3(int val);
+
+ /**
+ * Gets the current display mode
+ */
+ StarMode getMode() const;
+
+ /**
+ * Sets the display mode
+ */
+ void setMode(StarMode mode);
+
void toggle4();
bool set4(bool val);
int get88() const;
@@ -93,6 +105,15 @@ public:
}
void fn1(CErrorCode *errorCode);
+ void fn6(CVideoSurface *surface, CStarControlSub12 *sub12);
+ void fn7();
+ void fn8(CVideoSurface *surface);
+
+ /**
+ * Called when the starfield is clicked
+ */
+ bool mouseButtonDown(CVideoSurface *surface, CStarControlSub12 *sub12,
+ int flags, const Common::Point &pt);
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_points2.cpp b/engines/titanic/star_control/star_points2.cpp
index 287a46eaa7..9c4cfe8cf5 100644
--- a/engines/titanic/star_control/star_points2.cpp
+++ b/engines/titanic/star_control/star_points2.cpp
@@ -21,6 +21,7 @@
*/
#include "titanic/star_control/star_points2.h"
+#include "titanic/star_control/star_control_sub12.h"
#include "titanic/titanic.h"
namespace Titanic {
@@ -57,4 +58,8 @@ bool CStarPoints2::initialize() {
return true;
}
+void CStarPoints2::draw(CSurfaceArea *surface, CStarControlSub12 *sub12) {
+ // TODO
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_points2.h b/engines/titanic/star_control/star_points2.h
index df302f690b..d7192af2f0 100644
--- a/engines/titanic/star_control/star_points2.h
+++ b/engines/titanic/star_control/star_points2.h
@@ -25,9 +25,12 @@
#include "common/array.h"
#include "titanic/star_control/fvector.h"
+#include "titanic/star_control/surface_area.h"
namespace Titanic {
+class CStarControlSub12;
+
class CStarPoints2 {
class RootEntry : public Common::Array<FVector> {
public:
@@ -41,6 +44,11 @@ public:
* Initializes the data
*/
bool initialize();
+
+ /**
+ * Draw the starfield points
+ */
+ void draw(CSurfaceArea *surface, CStarControlSub12 *sub12);
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_view.cpp b/engines/titanic/star_control/star_view.cpp
index d10e0ee094..e717206e55 100644
--- a/engines/titanic/star_control/star_view.cpp
+++ b/engines/titanic/star_control/star_view.cpp
@@ -25,15 +25,16 @@
#include "titanic/star_control/star_control.h"
#include "titanic/star_control/star_field.h"
#include "titanic/core/game_object.h"
+#include "titanic/messages/pet_messages.h"
+#include "titanic/titanic.h"
namespace Titanic {
CStarView::CStarView() : _sub12(nullptr, nullptr), _sub13((void *)nullptr),
_owner(nullptr), _starField(nullptr), _videoSurface(nullptr), _field118(0),
_videoSurface2(nullptr), _homePhotoMask(nullptr),
- _field218(0), _field21C(0) {
- CStar20Data data = { 0, 0, 0x47C35000, 0, 0x41A00000,
- 0x3F800000, 0x3F800000, 0x3F800000 };
+ _field218(false), _showingPhoto(false) {
+ CStar20Data data = { 0, 0, 100000.0, 0, 20.0, 1.0, 1.0, 1.0 };
_sub12.proc3(&data);
}
@@ -47,7 +48,7 @@ void CStarView::load(SimpleFile *file, int param) {
_sub13.load(file, 0);
_field218 = file->readNumber();
- _field21C = file->readNumber();
+ _showingPhoto = file->readNumber();
}
}
@@ -59,7 +60,7 @@ void CStarView::save(SimpleFile *file, int indent) {
_sub13.save(file, indent);
file->writeNumberLine(_field218, indent);
- file->writeNumberLine(_field21C, indent);
+ file->writeNumberLine(_showingPhoto, indent);
}
void CStarView::setup(CScreenManager *screenManager, CStarField *starField, CStarControl *starControl) {
@@ -68,7 +69,10 @@ void CStarView::setup(CScreenManager *screenManager, CStarField *starField, CSta
}
void CStarView::reset() {
- // TODO
+ if (!_field118) {
+ CStarControlSub12 sub12(&_sub13);
+ fn18(&sub12);
+ }
}
void CStarView::draw(CScreenManager *screenManager) {
@@ -76,13 +80,13 @@ void CStarView::draw(CScreenManager *screenManager) {
return;
if (_fader.isActive()) {
- CVideoSurface *surface = _field21C ? _videoSurface2 : _videoSurface;
+ CVideoSurface *surface = _showingPhoto ? _videoSurface2 : _videoSurface;
surface = _fader.fade(screenManager, surface);
screenManager->blitFrom(SURFACE_PRIMARY, surface);
} else {
Point destPos(20, 10);
- if (_field21C) {
+ if (_showingPhoto) {
screenManager->blitFrom(SURFACE_PRIMARY, _videoSurface2, &destPos);
if (!_homePhotoMask && _owner) {
@@ -106,58 +110,189 @@ void CStarView::draw(CScreenManager *screenManager) {
}
}
-void CStarView::MouseButtonDownMsg(int unused, const Point &pt) {
- // TODO
-}
+bool CStarView::MouseButtonDownMsg(int flags, const Point &pt) {
+ if (_starField) {
+ return _starField->mouseButtonDown(
+ _showingPhoto ? _videoSurface2 : _videoSurface,
+ &_sub12, flags, pt);
+ }
-void CStarView::MouseMoveMsg(int unused, const Point &pt) {
- // TODO
+ return false;
}
-CErrorCode CStarView::KeyCharMsg(int key) {
- // TODO
- return CErrorCode();
+bool CStarView::MouseMoveMsg(int unused, const Point &pt) {
+ if (!_showingPhoto && (_fader._index < 0 || _fader._count >= 0)) {
+ FPoint fpt = pt;
+ FPoint centerPt(300.0, 170.0);
+
+ if (fpt != centerPt) {
+ double threshold = MIN(centerPt._x, centerPt._y) * 0.5;
+ FPoint tempPt = fpt - centerPt;
+
+ double distance = tempPt.normalize();
+ if (distance >= threshold) {
+ distance -= threshold;
+
+ FPoint relPt(tempPt._x * -2.0 * distance / threshold,
+ tempPt._y * -2.0 * distance / threshold);
+ _sub12.setViewportPosition(relPt);
+ return true;
+ }
+ }
+ }
+
+ return false;
}
-bool CStarView::canSetStarDestination() const {
- // TODO
+bool CStarView::KeyCharMsg(int key, CErrorCode *errorCode) {
+ CStarControlSub6 sub6;
+ int v = _starField ? _starField->get88() : -1;
+
+ switch (key) {
+ case Common::KEYCODE_TAB:
+ if (_starField) {
+ toggleMode();
+ return true;
+ }
+ break;
+
+ case Common::KEYCODE_l: {
+ CPetControl *pet = _owner->getPetControl();
+ if (pet && pet->_remoteTarget) {
+ CPETStarFieldLockMsg lockMsg(1);
+ lockMsg.execute(pet->_remoteTarget);
+ }
+ return true;
+ }
+
+ case Common::KEYCODE_d: {
+ CPetControl *pet = _owner->getPetControl();
+ if (pet && pet->_remoteTarget) {
+ CPETStarFieldLockMsg lockMsg(0);
+ lockMsg.execute(pet->_remoteTarget);
+ }
+ return true;
+ }
+
+ case Common::KEYCODE_z:
+ case Common::KEYCODE_c:
+ if (v == -1) {
+ sub6.set(key == Common::KEYCODE_z ? MODE_PHOTO : MODE_STARFIELD, 1.0);
+ _sub12.proc22(sub6);
+ _sub12.proc15(errorCode);
+ return true;
+ }
+ break;
+
+ case Common::KEYCODE_SEMICOLON:
+ if (v == -1) {
+ _sub12.proc16();
+ errorCode->set();
+ return true;
+ }
+ break;
+
+ case Common::KEYCODE_PERIOD:
+ if (v == -1) {
+ _sub12.proc17();
+ errorCode->set();
+ return true;
+ }
+ break;
+
+ case Common::KEYCODE_SPACE:
+ if (v == -1) {
+ _sub12.proc19();
+ errorCode->set();
+ return true;
+ }
+ break;
+
+ case Common::KEYCODE_x:
+ if (v == -1) {
+ sub6.set(MODE_PHOTO, -1.0);
+ _sub12.proc22(sub6);
+ _sub12.proc15(errorCode);
+ return true;
+ }
+ break;
+
+ case Common::KEYCODE_QUOTE:
+ if (v == -1) {
+ sub6.set(MODE_STARFIELD, -1.0);
+ _sub12.proc22(sub6);
+ _sub12.proc15(errorCode);
+ return true;
+ }
+ break;
+
+ default:
+ break;
+ }
+
return false;
}
-void CStarView::starDestinationSet() {
- // TODO
+bool CStarView::canSetStarDestination() const {
+ return _sub12.is108();
}
-void CStarView::petDestinationSet() {
- // TODO
+void CStarView::starDestinationSet() {
+ _sub12.reset108();
}
void CStarView::resetPosition() {
- // TODO
+ _sub12.setPosition(FVector(0.0, 0.0, 0.0));
}
-void CStarView::fn1() {
- // TODO
+bool CStarView::fn1() {
+ if (_videoSurface) {
+ CErrorCode errorCode;
+ _sub12.proc15(&errorCode);
+
+ if (_fader._index < 0 || _fader._index >= _fader._count)
+ _starField->fn1(&errorCode);
+ else
+ errorCode.set();
+
+ return errorCode.get();
+ }
+
+ return false;
}
void CStarView::fn2() {
- // TODO
+ if (!_videoSurface) {
+ CScreenManager *scrManager = CScreenManager::setCurrent();
+ if (scrManager)
+ resizeSurface(scrManager, 600, 340, &_videoSurface);
+
+ if (_videoSurface) {
+ fn13();
+ fn19(200);
+ draw(scrManager);
+ }
+ }
}
void CStarView::fn3(bool fadeIn) {
- // TODO
+ _fader.reset();
+ _fader.setFadeIn(fadeIn);
}
void CStarView::fn4() {
- // TODO
+ FVector v1, v2;
+ randomizeVectors2(&v1, &v2);
+ _sub12.setPosition(v1);
+ _sub12.proc5(v2);
}
void CStarView::fn5() {
- // TODO
+ _starField->set1(!_starField->get1());
}
void CStarView::fn6() {
- // TODO
+ _starField->set2(!_starField->get2());
}
void CStarView::fn7() {
@@ -165,15 +300,24 @@ void CStarView::fn7() {
}
void CStarView::fn8() {
- // TODO
+ _sub12.proc18();
}
void CStarView::fn9() {
- // TODO
+ _field218 = !_field218;
+ if (_field218) {
+ _sub12.proc12(MODE_PHOTO, 30.0);
+ _sub12.proc12(MODE_STARFIELD, 28000.0);
+ } else {
+ _sub12.proc12(MODE_PHOTO, 0.0);
+ _sub12.proc12(MODE_STARFIELD, 0.0);
+ }
}
-void CStarView::fn10() {
- // TODO
+void CStarView::toggleMode() {
+ _showingPhoto = !_showingPhoto;
+ if (_starField)
+ _starField->setMode(_showingPhoto ? MODE_PHOTO : MODE_STARFIELD);
}
void CStarView::fn11() {
@@ -185,15 +329,29 @@ void CStarView::fn12() {
}
void CStarView::fn13() {
- // TODO
+ _field218 = true;
+ _sub12.proc12(MODE_PHOTO, 30.0);
+ _sub12.proc12(MODE_STARFIELD, 28000.0);
}
void CStarView::fn14() {
- // TODO
+ _field218 = false;
+ _sub12.proc12(MODE_PHOTO, 0.0);
+ _sub12.proc12(MODE_STARFIELD, 0.0);
}
-void CStarView::fn15() {
- // TODO
+void CStarView::setHasReference() {
+ FVector v1, v2;
+ randomizeVectors1(&v1, &v2);
+
+ _sub13.setPosition(v1);
+ _sub13.fn11(v2);
+ _field218 = false;
+ _sub13.fn13(MODE_PHOTO, 0.0);
+ _sub13.fn13(MODE_STARFIELD, 0.0);
+ _field118 = true;
+ reset();
+ _field218 = true;
}
void CStarView::fn16() {
@@ -201,8 +359,109 @@ void CStarView::fn16() {
}
void CStarView::fn17() {
+ if (_starField && !_showingPhoto) {
+ _sub12.proc35();
+ _starField->fn8(_videoSurface2);
+ }
+}
+
+void CStarView::fn18(CStarControlSub12 *sub12) {
+ if (_starField) {
+ if (!_videoSurface2) {
+ CScreenManager *scrManager = CScreenManager::setCurrent();
+ if (scrManager)
+ resizeSurface(scrManager, 600, 340, &_videoSurface2);
+ }
+
+ if (_videoSurface2) {
+ int oldVal = _starField->get54();
+ _starField->set4(false);
+
+ _videoSurface2->clear();
+ _videoSurface2->lock();
+ _starField->render(_videoSurface2, sub12);
+ _videoSurface2->unlock();
+
+ _starField->set54(oldVal);
+ _starField->fn6(_videoSurface2, sub12);
+ }
+ }
+}
+
+void CStarView::fn19(int v) {
// TODO
}
+void CStarView::randomizeVectors1(FVector *v1, FVector *v2) {
+ v1->_x = g_vm->getRandomFloat() * -4096.0 - 3072.0;
+ v1->_y = g_vm->getRandomFloat() * -4096.0 - 3072.0;
+ v1->_z = g_vm->getRandomFloat() * -4096.0 - 3072.0;
+
+ double vx = g_vm->getRandomFloat() * 8192.0;
+ double vy = g_vm->getRandomFloat() * 1024.0;
+ vx -= v1->_x;
+ vy -= v1->_y;
+
+ v2->_x = vx;
+ v2->_y = vy;
+ v2->_z = -v1->_z;
+ v2->fn3();
+}
+
+void CStarView::randomizeVectors2(FVector *v1, FVector *v2) {
+ v1->_x = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+ v1->_y = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+ v1->_z = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+
+ // TODO: Doublecheck
+ v2->_x = -v1->_x;
+ v2->_y = -v1->_y;
+ v2->_z = -v1->_z;
+ v2->fn3();
+}
+
+void CStarView::randomizeVectors3(FVector *v1, FVector *v2) {
+ v1->_x = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+ v1->_y = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+ v1->_z = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+
+ // TODO: Doublecheck
+ v2->_x = -v1->_x;
+ v2->_y = -v1->_y;
+ v2->_z = -v1->_z;
+ v2->fn3();
+}
+
+void CStarView::randomizeVectors4(FVector *v1, FVector *v2) {
+ v1->_x = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+ v1->_y = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+ v1->_z = 3072.0 - g_vm->getRandomFloat() * -4096.0;
+
+ // TODO: Doublecheck
+ v2->_x = -v1->_x;
+ v2->_y = -v1->_y;
+ v2->_z = -v1->_z;
+ v2->fn3();
+}
+void CStarView::resizeSurface(CScreenManager *scrManager, int width, int height,
+ CVideoSurface **surface) {
+ if (!surface)
+ // Surface pointer must be provided
+ return;
+ if (*surface) {
+ // If there's an existing surface of the correct size, re-use it
+ if ((*surface)->getWidth() == width && (*surface)->getHeight() == height)
+ return;
+
+ // Delete the old surface
+ delete *surface;
+ *surface = nullptr;
+ }
+
+ CVideoSurface *newSurface = scrManager->createSurface(width, height);
+ if (newSurface)
+ *surface = newSurface;
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_view.h b/engines/titanic/star_control/star_view.h
index 5e958c8053..e2978e6da0 100644
--- a/engines/titanic/star_control/star_view.h
+++ b/engines/titanic/star_control/star_view.h
@@ -29,6 +29,7 @@
#include "titanic/star_control/star_control_sub13.h"
#include "titanic/star_control/surface_fader.h"
#include "titanic/star_control/error_code.h"
+#include "titanic/star_control/fvector.h"
namespace Titanic {
@@ -46,13 +47,26 @@ private:
CSurfaceFader _fader;
CVideoSurface *_videoSurface2;
CGameObject *_homePhotoMask;
- int _field218;
- int _field21C;
+ bool _field218;
+ bool _showingPhoto;
#if 0
int _field210;
#endif
private:
- void fn1();
+ bool fn1();
+ void fn18(CStarControlSub12 *sub12);
+ void fn19(int v);
+
+ void randomizeVectors1(FVector *v1, FVector *v2);
+ void randomizeVectors2(FVector *v1, FVector *v2);
+ void randomizeVectors3(FVector *v1, FVector *v2);
+ void randomizeVectors4(FVector *v1, FVector *v2);
+
+ /**
+ * Handles resizing the surface
+ */
+ void resizeSurface(CScreenManager *scrManager, int width, int height,
+ CVideoSurface **surface);
public:
CStarView();
@@ -81,17 +95,17 @@ public:
/**
* Handles mouse down messages
*/
- void MouseButtonDownMsg(int unused, const Point &pt);
+ bool MouseButtonDownMsg(int unused, const Point &pt);
/**
* Handles mouse move messages
*/
- void MouseMoveMsg(int unused, const Point &pt);
+ bool MouseMoveMsg(int unused, const Point &pt);
/**
* Handles keyboard messages
*/
- CErrorCode KeyCharMsg(int key);
+ bool KeyCharMsg(int key, CErrorCode *errorCode);
/**
* Returns true if a star destination can be set
@@ -107,7 +121,6 @@ public:
* Resets back to the origin position
*/
void resetPosition();
- void petDestinationSet();
void fn2();
void fn3(bool fadeIn);
@@ -117,12 +130,22 @@ public:
void fn7();
void fn8();
void fn9();
- void fn10();
+
+ /**
+ * Toggles between starfield and photo modes
+ */
+ void toggleMode();
+
void fn11();
void fn12();
void fn13();
void fn14();
- void fn15();
+
+ /**
+ * Called when the photograph is used on the navigation computer
+ */
+ void setHasReference();
+
void fn16();
void fn17();
diff --git a/engines/titanic/titanic.h b/engines/titanic/titanic.h
index 43f3fa07f3..fdc9402d89 100644
--- a/engines/titanic/titanic.h
+++ b/engines/titanic/titanic.h
@@ -164,6 +164,11 @@ public:
uint getRandomNumber(uint max) { return _randomSource.getRandomNumber(max); }
/**
+ * Returns a random floating point number between 0.0 to 65535.0
+ */
+ double getRandomFloat() { return getRandomNumber(0xffffffff) * 0.000015259022; }
+
+ /**
* Support method that generates a savegame name
* @param slot Slot number
*/
diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp
index d859a88da5..8e04b35f45 100644
--- a/gui/ThemeEngine.cpp
+++ b/gui/ThemeEngine.cpp
@@ -1308,7 +1308,7 @@ void ThemeEngine::drawRadiobuttonClip(const Common::Rect &r, const Common::Rect
queueDDClip(dd, r2, clippingRect);
r2.left = r2.right + checkBoxSize;
- r2.right = r.right;
+ r2.right = MAX(r2.left, r.right);
queueDDTextClip(getTextData(dd), getTextColor(dd), r2, clippingRect, str, true, false, _widgets[kDDRadiobuttonDefault]->_textAlignH, _widgets[dd]->_textAlignV);
}
@@ -1519,7 +1519,7 @@ void ThemeEngine::drawPopUpWidgetClip(const Common::Rect &r, const Common::Rect
queueDDClip(dd, r, clip);
- if (!sel.empty()) {
+ if (!sel.empty() && r.width() >= 13 && r.height() >= 1) {
Common::Rect text(r.left + 3, r.top + 1, r.right - 10, r.bottom);
queueDDTextClip(getTextData(dd), getTextColor(dd), text, clip, sel, true, false, _widgets[dd]->_textAlignH, _widgets[dd]->_textAlignV, deltax);
}
@@ -1620,28 +1620,34 @@ void ThemeEngine::drawTab(const Common::Rect &r, int tabHeight, int tabWidth, co
}
}
-void ThemeEngine::drawTabClip(const Common::Rect &r, const Common::Rect &clip, int tabHeight, int tabWidth, const Common::Array<Common::String> &tabs, int active, uint16 hints, int titleVPad, WidgetStateInfo state) {
+void ThemeEngine::drawTabClip(const Common::Rect &r, const Common::Rect &clip, int tabHeight, const Common::Array<int> &tabWidths, const Common::Array<Common::String> &tabs, int active, uint16 hints, int titleVPad, WidgetStateInfo state) {
if (!ready())
return;
+ assert(tabs.size() == tabWidths.size());
+
queueDDClip(kDDTabBackground, Common::Rect(r.left, r.top, r.right, r.top + tabHeight), clip);
- for (int i = 0; i < (int)tabs.size(); ++i) {
- if (i == active)
+ int width = 0;
+ int activePos = -1;
+ for (int i = 0; i < (int)tabs.size(); width += tabWidths[i++]) {
+ if (r.left + width > r.right || r.left + width + tabWidths[i] > r.right)
continue;
- if (r.left + i * tabWidth > r.right || r.left + (i + 1) * tabWidth > r.right)
+ if (i == active) {
+ activePos = width;
continue;
+ }
- Common::Rect tabRect(r.left + i * tabWidth, r.top, r.left + (i + 1) * tabWidth, r.top + tabHeight);
+
+ Common::Rect tabRect(r.left + width, r.top, r.left + width + tabWidths[i], r.top + tabHeight);
queueDDClip(kDDTabInactive, tabRect, clip);
queueDDTextClip(getTextData(kDDTabInactive), getTextColor(kDDTabInactive), tabRect, clip, tabs[i], false, false, _widgets[kDDTabInactive]->_textAlignH, _widgets[kDDTabInactive]->_textAlignV);
}
- if (active >= 0 &&
- (r.left + active * tabWidth < r.right) && (r.left + (active + 1) * tabWidth < r.right)) {
- Common::Rect tabRect(r.left + active * tabWidth, r.top, r.left + (active + 1) * tabWidth, r.top + tabHeight);
- const uint16 tabLeft = active * tabWidth;
+ if (activePos >= 0) {
+ Common::Rect tabRect(r.left + activePos, r.top, r.left + activePos + tabWidths[active], r.top + tabHeight);
+ const uint16 tabLeft = activePos;
const uint16 tabRight = MAX(r.right - tabRect.right, 0);
queueDDClip(kDDTabActive, tabRect, clip, (tabLeft << 16) | (tabRight & 0xFFFF));
queueDDTextClip(getTextData(kDDTabActive), getTextColor(kDDTabActive), tabRect, clip, tabs[active], false, false, _widgets[kDDTabActive]->_textAlignH, _widgets[kDDTabActive]->_textAlignV);
diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index 8a6db17dfd..9d8ed41738 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -388,7 +388,7 @@ public:
void drawTab(const Common::Rect &r, int tabHeight, int tabWidth,
const Common::Array<Common::String> &tabs, int active, uint16 hints,
int titleVPad, WidgetStateInfo state = kStateEnabled);
- void drawTabClip(const Common::Rect &r, const Common::Rect &clippingRect, int tabHeight, int tabWidth,
+ void drawTabClip(const Common::Rect &r, const Common::Rect &clippingRect, int tabHeight, const Common::Array<int> &tabWidths,
const Common::Array<Common::String> &tabs, int active, uint16 hints,
int titleVPad, WidgetStateInfo state = kStateEnabled);
diff --git a/gui/options.cpp b/gui/options.cpp
index d61e94093f..ae88781b71 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -113,7 +113,7 @@ enum {
kRootPathClearCmd = 'clrp'
};
#endif
-
+
enum {
kApplyCmd = 'appl'
};
@@ -124,7 +124,7 @@ static const char *outputRateLabels[] = { _s("<default>"), _s("8 kHz"), _s("11 k
static const int outputRateValues[] = { 0, 8000, 11025, 22050, 44100, 48000, -1 };
// The keyboard mouse speed values range from 0 to 7 and correspond to speeds shown in the label
// "10" (value 3) is the default speed corresponding to the speed before introduction of this control
-static const char *kbdMouseSpeedLabels[] = { _s("3"), _s("5"), _s("8"), _s("10"), _s("13"), _s("15"), _s("18"), _s("20"), 0 };
+static const char *kbdMouseSpeedLabels[] = { "3", "5", "8", "10", "13", "15", "18", "20", 0 };
OptionsDialog::OptionsDialog(const Common::String &domain, int x, int y, int w, int h)
: Dialog(x, y, w, h), _domain(domain), _graphicsTabId(-1), _midiTabId(-1), _pathsTabId(-1), _tabWidget(0) {
@@ -209,7 +209,7 @@ void OptionsDialog::init() {
_guioptions = parseGameGUIOptions(_guioptionsString);
}
}
-
+
void OptionsDialog::build() {
// Retrieve game GUI options
_guioptions.clear();
@@ -217,7 +217,7 @@ void OptionsDialog::build() {
_guioptionsString = ConfMan.get("guioptions", _domain);
_guioptions = parseGameGUIOptions(_guioptionsString);
}
-
+
// Control options
if (g_system->hasFeature(OSystem::kFeatureOnScreenControl)) {
if (ConfMan.hasKey("onscreen_control", _domain)) {
@@ -406,7 +406,7 @@ void OptionsDialog::build() {
_subSpeedLabel->setValue(speed);
}
}
-
+
void OptionsDialog::clean() {
delete _subToggleGroup;
while (_firstWidget) {
@@ -416,7 +416,7 @@ void OptionsDialog::clean() {
}
init();
}
-
+
void OptionsDialog::rebuild() {
int currentTab = _tabWidget->getActiveTab();
clean();
@@ -447,16 +447,16 @@ void OptionsDialog::apply() {
graphicsModeChanged = true;
if (ConfMan.getBool("aspect_ratio", _domain) != _aspectCheckbox->getState())
graphicsModeChanged = true;
-
+
ConfMan.setBool("filtering", _filteringCheckbox->getState(), _domain);
ConfMan.setBool("fullscreen", _fullscreenCheckbox->getState(), _domain);
ConfMan.setBool("aspect_ratio", _aspectCheckbox->getState(), _domain);
-
+
bool isSet = false;
-
+
if ((int32)_gfxPopUp->getSelectedTag() >= 0) {
const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
-
+
while (gm->name) {
if (gm->id == (int)_gfxPopUp->getSelectedTag()) {
if (ConfMan.get("gfx_mode", _domain) != gm->name)
@@ -470,7 +470,7 @@ void OptionsDialog::apply() {
}
if (!isSet)
ConfMan.removeKey("gfx_mode", _domain);
-
+
if ((int32)_renderModePopUp->getSelectedTag() >= 0)
ConfMan.set("render_mode", Common::getRenderModeCode((Common::RenderMode)_renderModePopUp->getSelectedTag()), _domain);
} else {
@@ -481,21 +481,21 @@ void OptionsDialog::apply() {
ConfMan.removeKey("render_mode", _domain);
}
}
-
+
// Setup graphics again if needed
if (_domain == Common::ConfigManager::kApplicationDomain && graphicsModeChanged) {
g_system->beginGFXTransaction();
g_system->setGraphicsMode(ConfMan.get("gfx_mode", _domain).c_str());
-
+
if (ConfMan.hasKey("aspect_ratio"))
g_system->setFeatureState(OSystem::kFeatureAspectRatioCorrection, ConfMan.getBool("aspect_ratio", _domain));
if (ConfMan.hasKey("fullscreen"))
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen", _domain));
if (ConfMan.hasKey("filtering"))
g_system->setFeatureState(OSystem::kFeatureFilteringMode, ConfMan.getBool("filtering", _domain));
-
+
OSystem::TransactionError gfxError = g_system->endGFXTransaction();
-
+
// Since this might change the screen resolution we need to give
// the GUI a chance to update it's internal state. Otherwise we might
// get a crash when the GUI tries to grab the overlay.
@@ -507,11 +507,11 @@ void OptionsDialog::apply() {
// Dialog::close) is called, to prevent crashes caused by invalid
// widgets being referenced or similar errors.
g_gui.checkScreenChange();
-
+
if (gfxError != OSystem::kTransactionSuccess) {
// Revert ConfMan to what OSystem is using.
Common::String message = _("Failed to apply some of the graphic options changes:");
-
+
if (gfxError & OSystem::kTransactionModeSwitchFailed) {
const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
while (gm->name) {
@@ -524,25 +524,25 @@ void OptionsDialog::apply() {
message += "\n";
message += _("the video mode could not be changed.");
}
-
+
if (gfxError & OSystem::kTransactionAspectRatioFailed) {
ConfMan.setBool("aspect_ratio", g_system->getFeatureState(OSystem::kFeatureAspectRatioCorrection), _domain);
message += "\n";
message += _("the aspect ratio setting could not be changed");
}
-
+
if (gfxError & OSystem::kTransactionFullscreenFailed) {
ConfMan.setBool("fullscreen", g_system->getFeatureState(OSystem::kFeatureFullscreenMode), _domain);
message += "\n";
message += _("the fullscreen setting could not be changed");
}
-
+
if (gfxError & OSystem::kTransactionFilteringFailed) {
ConfMan.setBool("filtering", g_system->getFeatureState(OSystem::kFeatureFilteringMode), _domain);
message += "\n";
message += _("the filtering setting could not be changed");
}
-
+
// And display the error
GUI::MessageDialog dialog(message);
dialog.runModal();
@@ -592,7 +592,7 @@ void OptionsDialog::apply() {
ConfMan.removeKey("mute", _domain);
}
}
-
+
// Audio options
if (_midiPopUp) {
if (_enableAudioSettings) {
@@ -601,11 +601,11 @@ void OptionsDialog::apply() {
ConfMan.removeKey("music_driver", _domain);
}
}
-
+
if (_oplPopUp) {
if (_enableAudioSettings) {
const OPL::Config::EmulatorDescription *ed = OPL::Config::findDriver(_oplPopUp->getSelectedTag());
-
+
if (ed)
ConfMan.set("opl_driver", ed->name, _domain);
else
@@ -614,7 +614,7 @@ void OptionsDialog::apply() {
ConfMan.removeKey("opl_driver", _domain);
}
}
-
+
if (_outputRatePopUp) {
if (_enableAudioSettings) {
if (_outputRatePopUp->getSelectedTag() != 0)
@@ -625,15 +625,15 @@ void OptionsDialog::apply() {
ConfMan.removeKey("output_rate", _domain);
}
}
-
+
// MIDI options
if (_multiMidiCheckbox) {
if (_enableMIDISettings) {
saveMusicDeviceSetting(_gmDevicePopUp, "gm_device");
-
+
ConfMan.setBool("multi_midi", _multiMidiCheckbox->getState(), _domain);
ConfMan.setInt("midi_gain", _midiGainSlider->getValue(), _domain);
-
+
Common::String soundFont(_soundFont->getLabel());
if (!soundFont.empty() && (soundFont != _c("None", "soundfont")))
ConfMan.set("soundfont", soundFont, _domain);
@@ -646,7 +646,7 @@ void OptionsDialog::apply() {
ConfMan.removeKey("soundfont", _domain);
}
}
-
+
// MT-32 options
if (_mt32DevicePopUp) {
if (_enableMT32Settings) {
@@ -659,14 +659,14 @@ void OptionsDialog::apply() {
ConfMan.removeKey("enable_gs", _domain);
}
}
-
+
// Subtitle options
if (_subToggleGroup) {
if (_enableSubtitleSettings) {
bool subtitles, speech_mute;
int talkspeed;
int sliderMaxValue = _subSpeedSlider->getMaxValue();
-
+
switch (_subToggleGroup->getValue()) {
case kSubtitlesSpeech:
subtitles = speech_mute = false;
@@ -680,22 +680,22 @@ void OptionsDialog::apply() {
subtitles = speech_mute = true;
break;
}
-
+
ConfMan.setBool("subtitles", subtitles, _domain);
ConfMan.setBool("speech_mute", speech_mute, _domain);
-
+
// Engines that reuse the subtitle speed widget set their own max value.
// Scale the config value accordingly (see addSubtitleControls)
talkspeed = (_subSpeedSlider->getValue() * 255 + sliderMaxValue / 2) / sliderMaxValue;
ConfMan.setInt("talkspeed", talkspeed, _domain);
-
+
} else {
ConfMan.removeKey("subtitles", _domain);
ConfMan.removeKey("talkspeed", _domain);
ConfMan.removeKey("speech_mute", _domain);
}
}
-
+
// Save config file
ConfMan.flushToDisk();
}
@@ -778,7 +778,7 @@ void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data
draw();
break;
case kKbdMouseSpeedChanged:
- _kbdMouseSpeedLabel->setLabel(_(kbdMouseSpeedLabels[_kbdMouseSpeedSlider->getValue()]));
+ _kbdMouseSpeedLabel->setLabel(_(kbdMouseSpeedLabels[_kbdMouseSpeedSlider->getValue()]));
_kbdMouseSpeedLabel->draw();
break;
case kJoystickDeadzoneChanged:
@@ -799,7 +799,7 @@ void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data
Dialog::handleCommand(sender, cmd, data);
}
}
-
+
void OptionsDialog::setGraphicSettingsState(bool enabled) {
_enableGraphicSettings = enabled;
@@ -925,12 +925,12 @@ void OptionsDialog::setSubtitleSettingsState(bool enabled) {
_subSpeedSlider->setEnabled(ena);
_subSpeedLabel->setEnabled(ena);
}
-
+
void OptionsDialog::addControlControls(GuiObject *boss, const Common::String &prefix) {
// Show On-Screen control
if (g_system->hasFeature(OSystem::kFeatureOnScreenControl))
_onscreenCheckbox = new CheckboxWidget(boss, prefix + "grOnScreenCheckbox", _("Show On-screen control"));
-
+
// Touchpad Mouse mode
if (g_system->hasFeature(OSystem::kFeatureTouchpadMode))
_touchpadCheckbox = new CheckboxWidget(boss, prefix + "grTouchpadCheckbox", _("Touchpad mouse mode"));
@@ -1410,11 +1410,11 @@ GlobalOptionsDialog::~GlobalOptionsDialog() {
delete _fluidSynthSettingsDialog;
#endif
}
-
+
void GlobalOptionsDialog::build() {
// The tab widget
TabWidget *tab = new TabWidget(this, "GlobalOptions.TabWidget");
-
+
//
// 1) The graphics tab
//
@@ -1743,7 +1743,7 @@ void GlobalOptionsDialog::clean() {
OptionsDialog::clean();
}
-
+
void GlobalOptionsDialog::apply() {
Common::String savePath(_savePath->getLabel());
if (!savePath.empty() && (savePath != _("Default")))
@@ -1850,7 +1850,7 @@ void GlobalOptionsDialog::apply() {
#endif // NETWORKING_LOCALWEBSERVER_ENABLE_PORT_OVERRIDE
#endif // USE_SDL_NET
#endif // USE_CLOUD
-
+
if (!_newTheme.empty()) {
#ifdef USE_TRANSLATION
Common::String lang = TransMan.getCurrentLanguage();
@@ -2002,14 +2002,8 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3
#ifdef USE_LIBCURL
case kPopUpItemSelectedCmd:
{
- //update container's scrollbar and make sure tabs are not re-arranged
- if (_tabWidget) {
- int oldFirstVisible = _tabWidget->getFirstVisible();
- reflowLayout();
- _tabWidget->setFirstVisible(oldFirstVisible);
- } else {
- reflowLayout();
- }
+ // update container's scrollbar
+ reflowLayout();
break;
}
case kConfigureStorageCmd:
@@ -2125,6 +2119,7 @@ void GlobalOptionsDialog::handleTickle() {
}
void GlobalOptionsDialog::reflowLayout() {
+ int firstVisible = _tabWidget->getFirstVisible();
int activeTab = _tabWidget->getActiveTab();
if (_midiTabId != -1) {
@@ -2156,6 +2151,8 @@ void GlobalOptionsDialog::reflowLayout() {
}
_tabWidget->setActiveTab(activeTab);
+ _tabWidget->setFirstVisible(firstVisible);
+
OptionsDialog::reflowLayout();
#ifdef USE_CLOUD
setupCloudTab();
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index e84768b497..8024437f6b 100644
--- a/gui/themes/scummclassic.zip
+++ b/gui/themes/scummclassic.zip
Binary files differ
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 75ffee20cd..35f4a03e6d 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -95,7 +95,7 @@
size = '15, 0'
/>
<widget name = 'TabWidget.Tab'
- size = '75, 27'
+ size = '40, 27'
padding = '0, 0, 8, 0'
/>
<widget name = 'TabWidget.Body'
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index e46db3e94b..1085c5fc6f 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -93,14 +93,14 @@
size = '9, 0'
/>
<widget name = 'TabWidget.Tab'
- size = '45, 16'
+ size = '40, 16'
padding = '0, 0, 2, 0'
/>
<widget name = 'TabWidget.Body'
padding = '0, 0, 0, 0'
/>
<widget name = 'TabWidget.NavButton'
- size = '32, 18'
+ size = '32, 14'
padding = '0, 0, 1, 0'
/>
<widget name = 'EditRecordLabel'
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index ed1e3c0c58..73aee35f61 100644
--- a/gui/themes/scummmodern.zip
+++ b/gui/themes/scummmodern.zip
Binary files differ
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index 754bc251d9..9633cb4e50 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -98,7 +98,7 @@
size = '15, 0'
/>
<widget name = 'TabWidget.Tab'
- size = '75, 27'
+ size = '40, 27'
padding = '0, 0, 8, 0'
/>
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index eadb305414..be8ce0c17e 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -91,14 +91,14 @@
size = '9, 0'
/>
<widget name = 'TabWidget.Tab'
- size = '45, 16'
+ size = '40, 16'
padding = '0, 0, 2, 0'
/>
<widget name = 'TabWidget.Body'
padding = '0, 0, 0, 0'
/>
<widget name = 'TabWidget.NavButton'
- size = '32, 18'
+ size = '32, 14'
padding = '0, 0, 2, 0'
/>
<widget name = 'EditRecordLabel'
diff --git a/gui/widgets/tab.cpp b/gui/widgets/tab.cpp
index 8e8c6b48a1..9bf9527c4f 100644
--- a/gui/widgets/tab.cpp
+++ b/gui/widgets/tab.cpp
@@ -33,6 +33,8 @@ enum {
kCmdRight = 'RGHT'
};
+static const int kTabTitleSpacing = 2 * 5;
+
TabWidget::TabWidget(GuiObject *boss, int x, int y, int w, int h)
: Widget(boss, x, y, w, h), _bodyBackgroundType(GUI::ThemeEngine::kDialogBackgroundDefault) {
init();
@@ -48,8 +50,10 @@ void TabWidget::init() {
_type = kTabWidget;
_activeTab = -1;
_firstVisibleTab = 0;
+ _lastVisibleTab = 0;
+ _navButtonsVisible = false;
- _tabWidth = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Width");
+ _minTabWidth = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Width");
_tabHeight = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Height");
_titleVPad = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Padding.Top");
@@ -105,52 +109,16 @@ int TabWidget::addTab(const String &title) {
newTab.title = title;
newTab.firstWidget = 0;
+ // Determine the new tab width
+ int newWidth = g_gui.getStringWidth(title) + kTabTitleSpacing;
+ if (newWidth < _minTabWidth)
+ newWidth = _minTabWidth;
+ newTab._tabWidth = newWidth;
+
_tabs.push_back(newTab);
int numTabs = _tabs.size();
- // HACK: Nintendo DS uses a custom config dialog. This dialog does not work with
- // our default "Globals.TabWidget.Tab.Width" setting.
- //
- // TODO: Add proper handling in the theme layout for such cases.
- //
- // There are different solutions to this problem:
- // - offer a "Tab.Width" setting per tab widget and thus let the Ninteno DS
- // backend set a default value for its special dialog.
- //
- // - change our themes to use auto width calculaction by default
- //
- // - change "Globals.TabWidget.Tab.Width" to be the minimal tab width setting and
- // rename it accordingly.
- // Actually this solution is pretty similar to our HACK for the Nintendo DS
- // backend. This hack enables auto width calculation by default with the
- // "Globals.TabWidget.Tab.Width" value as minimal width for the tab buttons.
- //
- // - we might also consider letting every tab button having its own width.
- //
- // - other solutions you can think of, which are hopefully less evil ;-).
- //
- // Of course also the Ninteno DS' dialog should be in our layouting engine, instead
- // of being hard coded like it is right now.
- //
- // There are checks for __DS__ all over this source file to take care of the
- // aforemnetioned problem.
-#ifdef __DS__
- if (true) {
-#else
- if (g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Width") == 0) {
-#endif
- if (_tabWidth == 0)
- _tabWidth = 40;
- // Determine the new tab width
- int newWidth = g_gui.getStringWidth(title) + 2 * 3;
- if (_tabWidth < newWidth)
- _tabWidth = newWidth;
- int maxWidth = _w / numTabs;
- if (_tabWidth > maxWidth)
- _tabWidth = maxWidth;
- }
-
// Activate the new tab
setActiveTab(numTabs - 1);
@@ -160,7 +128,7 @@ int TabWidget::addTab(const String &title) {
void TabWidget::removeTab(int tabID) {
assert(0 <= tabID && tabID < (int)_tabs.size());
- // Deactive the tab if it's currently the active one
+ // Deactivate the tab if it's currently the active one
if (tabID == _activeTab) {
_tabs[tabID].firstWidget = _firstWidget;
releaseFocus();
@@ -202,9 +170,9 @@ void TabWidget::setActiveTab(int tabID) {
// Also ensure the tab is visible in the tab bar
if (_firstVisibleTab > tabID)
- _firstVisibleTab = tabID;
- else if (_firstVisibleTab + _w / _tabWidth <= tabID)
- _firstVisibleTab = tabID - _w / _tabWidth + 1;
+ setFirstVisible(tabID, true);
+ while (_lastVisibleTab < tabID)
+ setFirstVisible(_firstVisibleTab + 1, false);
_boss->draw();
}
@@ -216,16 +184,14 @@ void TabWidget::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
switch (cmd) {
case kCmdLeft:
- if (_firstVisibleTab) {
- _firstVisibleTab--;
- draw();
+ if (_firstVisibleTab > 0) {
+ setFirstVisible(_firstVisibleTab - 1);
}
break;
case kCmdRight:
- if (_firstVisibleTab + _w / _tabWidth < (int)_tabs.size()) {
- _firstVisibleTab++;
- draw();
+ if (_lastVisibleTab + 1 < (int)_tabs.size()) {
+ setFirstVisible(_firstVisibleTab + 1, false);
}
break;
}
@@ -234,18 +200,20 @@ void TabWidget::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
void TabWidget::handleMouseDown(int x, int y, int button, int clickCount) {
assert(y < _tabHeight);
+ if (x < 0)
+ return;
+
// Determine which tab was clicked
- int tabID = -1;
- if (x >= 0 && (x % _tabWidth) < _tabWidth) {
- tabID = x / _tabWidth;
- if (tabID >= (int)_tabs.size())
- tabID = -1;
+ int tabID;
+ for (tabID = _firstVisibleTab; tabID <= _lastVisibleTab; ++tabID) {
+ x -= _tabs[tabID]._tabWidth;
+ if (x < 0)
+ break;
}
// If a tab was clicked, switch to that pane
- if (tabID >= 0 && tabID + _firstVisibleTab < (int)_tabs.size()) {
- setActiveTab(tabID + _firstVisibleTab);
- }
+ if (tabID <= _lastVisibleTab)
+ setActiveTab(tabID);
}
bool TabWidget::handleKeyDown(Common::KeyState state) {
@@ -265,26 +233,20 @@ void TabWidget::adjustTabs(int value) {
else if (tabID < 0)
tabID = ((int)_tabs.size() - 1);
- // Slides _firstVisibleTab forward to the correct tab
- int maxTabsOnScreen = (_w / _tabWidth);
- if (tabID >= maxTabsOnScreen && (_firstVisibleTab + maxTabsOnScreen) < (int)_tabs.size())
- _firstVisibleTab++;
-
- // Slides _firstVisibleTab backwards to the correct tab
- while (tabID < _firstVisibleTab)
- _firstVisibleTab--;
-
setActiveTab(tabID);
}
-int TabWidget::getFirstVisible() {
+int TabWidget::getFirstVisible() const {
return _firstVisibleTab;
}
-void TabWidget::setFirstVisible(int tabID) {
+void TabWidget::setFirstVisible(int tabID, bool adjustIfRoom) {
assert(0 <= tabID && tabID < (int)_tabs.size());
_firstVisibleTab = tabID;
- _boss->draw();
+
+ computeLastVisibleTab(adjustIfRoom);
+
+ _boss->draw(); // TODO: Necessary?
}
void TabWidget::reflowLayout() {
@@ -293,9 +255,14 @@ void TabWidget::reflowLayout() {
// NOTE: if you change that, make sure to do the same
// changes in the ThemeLayoutTabWidget (gui/ThemeLayout.cpp)
_tabHeight = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Height");
- _tabWidth = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Width");
+ _minTabWidth = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Width");
_titleVPad = g_gui.xmlEval()->getVar("Globals.TabWidget.Tab.Padding.Top");
+ _butRP = g_gui.xmlEval()->getVar("Globals.TabWidget.NavButton.PaddingRight", 0);
+ _butTP = g_gui.xmlEval()->getVar("Globals.TabWidget.NavButton.Padding.Top", 0);
+ _butW = g_gui.xmlEval()->getVar("GlobalsTabWidget.NavButton.Width", 10);
+ _butH = g_gui.xmlEval()->getVar("Globals.TabWidget.NavButton.Height", 10);
+
// If widgets were added or removed in the current tab, without tabs
// having been switched using setActiveTab() afterward, then the
// firstWidget in the _tabs list for the active tab may not be up to
@@ -311,28 +278,34 @@ void TabWidget::reflowLayout() {
}
}
- if (_tabWidth == 0) {
- _tabWidth = 40;
-#ifdef __DS__
- }
- if (true) {
-#endif
- int maxWidth = _w / _tabs.size();
-
- for (uint i = 0; i < _tabs.size(); ++i) {
- // Determine the new tab width
- int newWidth = g_gui.getStringWidth(_tabs[i].title) + 2 * 3;
- if (_tabWidth < newWidth)
- _tabWidth = newWidth;
- if (_tabWidth > maxWidth)
- _tabWidth = maxWidth;
- }
+ for (uint i = 0; i < _tabs.size(); ++i) {
+ // Determine the new tab width
+ int newWidth = g_gui.getStringWidth(_tabs[i].title) + kTabTitleSpacing;
+ if (newWidth < _minTabWidth)
+ newWidth = _minTabWidth;
+ _tabs[i]._tabWidth = newWidth;
}
- _butRP = g_gui.xmlEval()->getVar("Globals.TabWidget.NavButton.PaddingRight", 0);
- _butTP = g_gui.xmlEval()->getVar("Globals.TabWidget.NavButton.Padding.Top", 0);
- _butW = g_gui.xmlEval()->getVar("GlobalsTabWidget.NavButton.Width", 10);
- _butH = g_gui.xmlEval()->getVar("Globals.TabWidget.NavButton.Height", 10);
+ // See how many tabs fit on screen.
+ // We do this in a loop, because it will change if we need to
+ // add left/right scroll buttons, if we scroll left to use free
+ // space on the right, or a combination of those.
+ _navButtonsVisible = _firstVisibleTab > 0;
+ do {
+ computeLastVisibleTab(true);
+
+ if (_firstVisibleTab > 0 || _lastVisibleTab + 1 < (int)_tabs.size()) {
+ if (!_navButtonsVisible)
+ _navButtonsVisible = true;
+ else
+ break;
+ } else {
+ if (_navButtonsVisible)
+ _navButtonsVisible = false;
+ else
+ break;
+ }
+ } while (true);
int x = _w - _butRP - _butW * 2 - 2;
int y = _butTP - _tabHeight;
@@ -342,18 +315,20 @@ void TabWidget::reflowLayout() {
void TabWidget::drawWidget() {
Common::Array<Common::String> tabs;
- for (int i = _firstVisibleTab; i < (int)_tabs.size(); ++i) {
+ Common::Array<int> widths;
+ for (int i = _firstVisibleTab; i <= _lastVisibleTab; ++i) {
tabs.push_back(_tabs[i].title);
+ widths.push_back(_tabs[i]._tabWidth);
}
g_gui.theme()->drawDialogBackgroundClip(Common::Rect(_x + _bodyLP, _y + _bodyTP, _x+_w-_bodyRP, _y+_h-_bodyBP+_tabHeight), getBossClipRect(), _bodyBackgroundType);
- g_gui.theme()->drawTabClip(Common::Rect(_x, _y, _x+_w, _y+_h), getBossClipRect(), _tabHeight, _tabWidth, tabs, _activeTab - _firstVisibleTab, 0, _titleVPad);
+ g_gui.theme()->drawTabClip(Common::Rect(_x, _y, _x+_w, _y+_h), getBossClipRect(), _tabHeight, widths, tabs, _activeTab - _firstVisibleTab, 0, _titleVPad);
}
void TabWidget::draw() {
Widget::draw();
- if (_tabWidth * _tabs.size() > _w) {
+ if (_navButtonsVisible) {
_navLeft->draw();
_navRight->draw();
}
@@ -361,7 +336,7 @@ void TabWidget::draw() {
Widget *TabWidget::findWidget(int x, int y) {
if (y < _tabHeight) {
- if (_tabWidth * _tabs.size() > _w) {
+ if (_navButtonsVisible) {
if (y >= _butTP && y < _butTP + _butH) {
if (x >= _w - _butRP - _butW * 2 - 2 && x < _w - _butRP - _butW - 2)
return _navLeft;
@@ -378,4 +353,30 @@ Widget *TabWidget::findWidget(int x, int y) {
}
}
+void TabWidget::computeLastVisibleTab(bool adjustFirstIfRoom) {
+ int availableWidth = _w;
+ if (_navButtonsVisible)
+ availableWidth -= 2 + _butW * 2;
+
+ _lastVisibleTab = _tabs.size() - 1;
+ for (int i = _firstVisibleTab; i < (int)_tabs.size(); ++i) {
+ if (_tabs[i]._tabWidth > availableWidth) {
+ if (i > _firstVisibleTab)
+ _lastVisibleTab = i - 1;
+ else
+ _lastVisibleTab = _firstVisibleTab; // Always show 1
+ break;
+ }
+ availableWidth -= _tabs[i]._tabWidth;
+ }
+
+ if (adjustFirstIfRoom) {
+ // If possible, scroll to fit if there's unused space to the right
+ while (_firstVisibleTab > 0 && _tabs[_firstVisibleTab-1]._tabWidth <= availableWidth) {
+ availableWidth -= _tabs[_firstVisibleTab-1]._tabWidth;
+ _firstVisibleTab--;
+ }
+ }
+}
+
} // End of namespace GUI
diff --git a/gui/widgets/tab.h b/gui/widgets/tab.h
index 4516c3c831..a1a5e06481 100644
--- a/gui/widgets/tab.h
+++ b/gui/widgets/tab.h
@@ -39,15 +39,17 @@ class TabWidget : public Widget {
struct Tab {
String title;
Widget *firstWidget;
+ int _tabWidth;
};
typedef Common::Array<Tab> TabList;
protected:
int _activeTab;
int _firstVisibleTab;
+ int _lastVisibleTab;
TabList _tabs;
- int _tabWidth;
int _tabHeight;
+ int _minTabWidth;
int _bodyRP, _bodyTP, _bodyLP, _bodyBP;
ThemeEngine::DialogBackground _bodyBackgroundType;
@@ -57,6 +59,7 @@ protected:
int _butRP, _butTP, _butW, _butH;
ButtonWidget *_navLeft, *_navRight;
+ bool _navButtonsVisible;
public:
TabWidget(GuiObject *boss, int x, int y, int w, int h);
@@ -101,8 +104,8 @@ public:
virtual void handleMouseDown(int x, int y, int button, int clickCount);
virtual bool handleKeyDown(Common::KeyState state);
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
- virtual int getFirstVisible();
- virtual void setFirstVisible(int tabID);
+ virtual int getFirstVisible() const;
+ virtual void setFirstVisible(int tabID, bool adjustIfRoom = false);
virtual void reflowLayout();
@@ -111,14 +114,16 @@ public:
protected:
// We overload getChildY to make sure child widgets are positioned correctly.
// Essentially this compensates for the space taken up by the tab title header.
- virtual int16 getChildY() const;
- virtual uint16 getHeight() const;
+ virtual int16 getChildY() const;
+ virtual uint16 getHeight() const;
virtual void drawWidget();
virtual Widget *findWidget(int x, int y);
virtual void adjustTabs(int value);
+
+ virtual void computeLastVisibleTab(bool adjustFirstIfRoom);
};
} // End of namespace GUI
diff --git a/po/be_BY.po b/po/be_BY.po
index fbf7fb4108..fd50f28727 100644
--- a/po/be_BY.po
+++ b/po/be_BY.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-12-31 15:15+0000\n"
"Last-Translator: Ivan Lukyanov <lid-gr@tut.by>\n"
"Language-Team: Belarusian <https://translations.scummvm.org/projects/scummvm/"
@@ -821,38 +821,6 @@ msgstr "44 кГц"
msgid "48 kHz"
msgstr "48 кГц"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1263,7 +1231,7 @@ msgstr "Воблака:"
msgid "Active cloud storage"
msgstr "Актыўнае воблачнае сховішча"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<няма>"
@@ -1323,7 +1291,7 @@ msgstr "Запусціць сервер"
msgid "Run local webserver"
msgstr "Запускае лакальны вэб-сервер"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Не запушчаны"
@@ -1392,28 +1360,28 @@ msgstr "Абярыце дырэкторыю з плагінамі"
msgid "Select directory for Files Manager /root/"
msgstr "Абярыце дырэкторыю для кораня ў Менеджары файлаў"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu байтаў"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<зараз>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<ніколі>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Спыніць сервер"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Спыняе лакальны вэб-сервер"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/ca_ES.po b/po/ca_ES.po
index a726bf943e..60ddcb1afb 100644
--- a/po/ca_ES.po
+++ b/po/ca_ES.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.6.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-02-20 14:15+0000\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Catalan <https://translations.scummvm.org/projects/scummvm/"
@@ -823,38 +823,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1262,7 +1230,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1322,7 +1290,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Aturat"
@@ -1391,28 +1359,28 @@ msgstr "Seleccioneu el directori dels connectors"
msgid "Select directory for Files Manager /root/"
msgstr "Selecciona el directori /arrel/ per al gestor d'arxius"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<mai>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Aturar servidor"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index 791151b63e..326d89acb1 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.7.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-12-04 15:43+0000\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Czech <https://translations.scummvm.org/projects/scummvm/"
@@ -820,38 +820,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1260,7 +1228,7 @@ msgstr "кloОiЙtь:"
msgid "Active cloud storage"
msgstr "Aktivnэ cloudovщ њloОiЙtь"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<Осdnщ>"
@@ -1323,7 +1291,7 @@ msgstr "Spustit server"
msgid "Run local webserver"
msgstr "Spustit mэstnэ internetov§ server"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "NespuЙtьno"
@@ -1392,28 +1360,28 @@ msgstr "Vyberte adresсј pro zсsuvnщ moduly"
msgid "Select directory for Files Manager /root/"
msgstr "Vyberte adresсј pro koјen Sprсvce souborљ"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu bajtљ"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<prсvь nynэ>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<nikdy>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Zastavit server"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Zastavit mэstnэ internetov§ server"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/da_DK.po b/po/da_DK.po
index 2d17ffcc0c..aec4f2f058 100644
--- a/po/da_DK.po
+++ b/po/da_DK.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-12-29 07:29+0000\n"
"Last-Translator: poulsen93 <poulsen93@gmail.com>\n"
"Language-Team: Danish <https://translations.scummvm.org/projects/scummvm/"
@@ -814,38 +814,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1252,7 +1220,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1313,7 +1281,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
#, fuzzy
msgid "Not running"
msgstr "Fejl ved kјrsel af spil:"
@@ -1387,30 +1355,30 @@ msgstr "Vцlg bibliotek for plugins"
msgid "Select directory for Files Manager /root/"
msgstr "Vцlg bibliotek for ekstra filer"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
#, fuzzy
msgid "<never>"
msgstr "Aldrig"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
#, fuzzy
msgid "Stop server"
msgstr "Server:"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/de_DE.po b/po/de_DE.po
index abd56764cf..5543454d57 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -7,11 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.10.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
-"PO-Revision-Date: 2017-02-26 11:10+0000\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
+"PO-Revision-Date: 2017-03-04 10:43+0000\n"
"Last-Translator: Lothar Serra Mari <rootfather@scummvm.org>\n"
-"Language-Team: German <https://translations.scummvm.org/projects/scummvm/"
-"scummvm/de/>\n"
+"Language-Team: German "
+"<https://translations.scummvm.org/projects/scummvm/scummvm/de/>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
@@ -829,38 +829,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -897,35 +865,33 @@ msgstr "Touchpad-Mausmodus"
#: gui/options.cpp:940
msgid "Swap Menu and Back buttons"
-msgstr "Vertausche Menќ- und Zurќck-Buttons"
+msgstr "Menќ- und Zurќck-Tasten vertauschen"
#: gui/options.cpp:945
-#, fuzzy
msgid "Pointer Speed:"
msgstr "Maus-Geschwindigkeit:"
#: gui/options.cpp:945 gui/options.cpp:947 gui/options.cpp:948
msgid "Speed for keyboard/joystick mouse pointer control"
-msgstr ""
+msgstr "Zeiger-Geschwindigkeit der Tastatur-/Joystick-Maus"
#: gui/options.cpp:947
-#, fuzzy
msgctxt "lowres"
msgid "Pointer Speed:"
msgstr "Maus-Geschwindigkeit:"
#: gui/options.cpp:958
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Joystick-Totzone:"
#: gui/options.cpp:958 gui/options.cpp:960 gui/options.cpp:961
msgid "Analog joystick Deadzone"
-msgstr ""
+msgstr "Totzone des analogen Joysticks"
#: gui/options.cpp:960
msgctxt "lowres"
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Joystick-Totzone:"
#: gui/options.cpp:977
msgid "Graphics mode:"
@@ -1270,7 +1236,7 @@ msgstr "Cloud-Speicher:"
msgid "Active cloud storage"
msgstr "Aktiver Cloud-Speicher"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<keiner>"
@@ -1335,7 +1301,7 @@ msgstr "Server starten"
msgid "Run local webserver"
msgstr "Startet den lokalen Webserver"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Nicht gestartet"
@@ -1410,28 +1376,28 @@ msgid "Select directory for Files Manager /root/"
msgstr ""
"Wфhlen Sie das Verzeichnis aus, welches als Stammverzeichnis ('root') dient"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu Bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<gerade eben>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<nie>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Server anhalten"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Lokalen Webserver anhalten"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -4581,6 +4547,30 @@ msgstr ""
"Spielstфnde bis zu Version %d. Sie benіtigen eine aktualisierte Version der "
"Engine, um diesen Spielstand zu verwenden."
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "5"
+#~ msgstr "5"
+
+#~ msgid "8"
+#~ msgstr "8"
+
+#~ msgid "10"
+#~ msgstr "10"
+
+#~ msgid "13"
+#~ msgstr "13"
+
+#~ msgid "15"
+#~ msgstr "15"
+
+#~ msgid "18"
+#~ msgstr "18"
+
+#~ msgid "20"
+#~ msgstr "20"
+
#, fuzzy
#~ msgid "Speed multiplier for mouse emulation"
#~ msgstr "Geschwindigkeitsfaktor fќr Maus-Emulation"
diff --git a/po/el.po b/po/el.po
index 984bfb4e76..20335f6ace 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.10.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-02-22 19:57+0000\n"
"Last-Translator: Arius <alidop@pathfinder.gr>\n"
"Language-Team: Greek <https://translations.scummvm.org/projects/scummvm/"
@@ -836,38 +836,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1279,7 +1247,7 @@ msgstr "С№яшоъхѕѓч:"
msgid "Active cloud storage"
msgstr "Хэхёуо с№яшоъхѕѓч ѓ§ээхіяѕ"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<ъсьпс>"
@@ -1346,7 +1314,7 @@ msgstr "Хъєныхѓч фщсъяьщѓєо"
msgid "Run local webserver"
msgstr "Хъєныхѓч єя№щъя§ фщсъяьщѓєо web"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Фхэ хъєхыхпєсщ"
@@ -1418,28 +1386,28 @@ msgstr "Х№щынюєх імъхыя ущс №ёќѓшхєс"
msgid "Select directory for Files Manager /root/"
msgstr "Х№щынюєх імъхыя ущс єя /root/ єяѕ Фщсїхщёщѓєо Сёїхпљэ"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<мьхѓс>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<№яєн>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Фщсъя№о хюѕ№чёхєчєо"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Фщсъя№о єя№щъя§ хюѕ№чёхєчєо web"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/es_ES.po b/po/es_ES.po
index 6e0e499605..0a28c00ced 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.4.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-01-15 22:05+0000\n"
"Last-Translator: Rodrigo Vegas Sсnchez-Ferrero <rodrigo.vegas@gmail.com>\n"
"Language-Team: Spanish <https://translations.scummvm.org/projects/scummvm/"
@@ -825,38 +825,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1270,7 +1238,7 @@ msgstr "Almacenamiento:"
msgid "Active cloud storage"
msgstr "Almacenamiento activo"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<ninguno>"
@@ -1333,7 +1301,7 @@ msgstr "Habilitar servidor"
msgid "Run local webserver"
msgstr "Habilitar el servidor local"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Detenido"
@@ -1402,28 +1370,28 @@ msgstr "Selecciona el directorio de plugins"
msgid "Select directory for Files Manager /root/"
msgstr "Selecciona el directorio /raэz/ para el gestor de archivos"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<ahora>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<nunca>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Detener servidor"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Detener el servidor local"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/eu.po b/po/eu.po
index 34b0b04da8..bfdb281d7e 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.5.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-12-04 13:27+0000\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Basque <https://translations.scummvm.org/projects/scummvm/"
@@ -814,38 +814,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1257,7 +1225,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1318,7 +1286,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
#, fuzzy
msgid "Not running"
msgstr "Jokoa exekutatzean errorea:"
@@ -1392,30 +1360,30 @@ msgstr "Pluginen direktorioa aukeratu"
msgid "Select directory for Files Manager /root/"
msgstr "Fitxategi gehigarrien direktorioa aukeratu"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
#, fuzzy
msgid "<never>"
msgstr "Inoiz ez"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
#, fuzzy
msgid "Stop server"
msgstr "Zerbitzaria:"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/fi_FI.po b/po/fi_FI.po
index 210babc257..cabf9b2409 100644
--- a/po/fi_FI.po
+++ b/po/fi_FI.po
@@ -7,11 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.6.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-02-28 15:48+0000\n"
"Last-Translator: Timo Mikkolainen <tmikkola@gmail.com>\n"
-"Language-Team: Finnish "
-"<https://translations.scummvm.org/projects/scummvm/scummvm/fi/>\n"
+"Language-Team: Finnish <https://translations.scummvm.org/projects/scummvm/"
+"scummvm/fi/>\n"
"Language: fi_FI\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
@@ -821,38 +821,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr "3"
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr "5"
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr "8"
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr "10"
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr "13"
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr "15"
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr "18"
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr "20"
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1258,7 +1226,7 @@ msgstr "Tallennustila:"
msgid "Active cloud storage"
msgstr "Aktiivinen pilvitallennus"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<tyhjф>"
@@ -1318,7 +1286,7 @@ msgstr "Kфynnistф palvelin"
msgid "Run local webserver"
msgstr "Kфynnistф paikallinen webpalvelin"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Ei kфynnissф"
@@ -1387,28 +1355,28 @@ msgstr "Valitse hakemisto plugineille"
msgid "Select directory for Files Manager /root/"
msgstr "Valitse /root/ hakemisto tiedostonhallinnalle"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu tavua"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<nyt>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<ei koskaan>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Pysфytф palvelin"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Pysфytф paikallinen webpalvelin"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -4519,6 +4487,30 @@ msgstr ""
"vain versioon %d asti. Tarvitset pфivitetyn version tфstф pelimoottorista "
"kфyttффksesi tфtф pelitallennusta."
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "5"
+#~ msgstr "5"
+
+#~ msgid "8"
+#~ msgstr "8"
+
+#~ msgid "10"
+#~ msgstr "10"
+
+#~ msgid "13"
+#~ msgstr "13"
+
+#~ msgid "15"
+#~ msgstr "15"
+
+#~ msgid "18"
+#~ msgstr "18"
+
+#~ msgid "20"
+#~ msgstr "20"
+
#~ msgid "Speed multiplier for mouse emulation"
#~ msgstr "Hiiriemulaation nopeuskerroin"
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 9c501eb728..fe161a14b0 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-02-23 11:45+0000\n"
"Last-Translator: Purple T <zeonk@hotmail.com>\n"
"Language-Team: French <https://translations.scummvm.org/projects/scummvm/"
@@ -826,38 +826,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1270,7 +1238,7 @@ msgstr "Stockage :"
msgid "Active cloud storage"
msgstr "Service de stockage actif"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<aucun>"
@@ -1332,7 +1300,7 @@ msgstr "Dщmarrer serveur"
msgid "Run local webserver"
msgstr "Dщmarre le serveur web local"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Arrъtщ"
@@ -1403,28 +1371,28 @@ msgstr "Sщlectionner le rщpertoire des plugins"
msgid "Select directory for Files Manager /root/"
msgstr "Indique le rщpertoire pour la /racine/ du Gestionnaire de Fichiers"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu octets"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<maintenant>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<jamais>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Arrъter serveur"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Arrъter le serveur"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/gl_ES.po b/po/gl_ES.po
index 50cbeef98f..f1e31f3ab2 100644
--- a/po/gl_ES.po
+++ b/po/gl_ES.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-11-28 15:51+0000\n"
"Last-Translator: Santiago G. Sanz <santiagogarciasanz@gmail.com>\n"
"Language-Team: Galician <https://translations.scummvm.org/projects/scummvm/"
@@ -820,38 +820,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1260,7 +1228,7 @@ msgstr "Almacenamento:"
msgid "Active cloud storage"
msgstr "Almacenamento na nube activo"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<ningњn>"
@@ -1326,7 +1294,7 @@ msgstr "Executar servidor"
msgid "Run local webserver"
msgstr "Executar servidor web local"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Non se estс a executar"
@@ -1395,28 +1363,28 @@ msgstr "Seleccionar directorio para complementos"
msgid "Select directory for Files Manager /root/"
msgstr "Seleccionar directorio para /root/ de xestor de ficheiros"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<agora mesmo>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<nunca>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Deter servidor"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Deter servidor web local"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/hu_HU.po b/po/hu_HU.po
index 4e3130ae7b..f4a97ed8e4 100644
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -6,9 +6,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
-"PO-Revision-Date: 2017-02-24 12:04+0000\n"
-"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
+"PO-Revision-Date: 2017-03-01 04:36+0000\n"
+"Last-Translator: George Kormendi <grubycza@hotmail.com>\n"
"Language-Team: Hungarian <https://translations.scummvm.org/projects/scummvm/"
"scummvm/hu/>\n"
"Language: hu_HU\n"
@@ -818,38 +818,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -878,7 +846,7 @@ msgstr "a szћrщsi beсllэtсst nem lehet megvсltoztatni"
#: gui/options.cpp:932
msgid "Show On-screen control"
-msgstr ""
+msgstr "Irсnyэtсs a kщpernyѕn megjelenэtщse"
#: gui/options.cpp:936
msgid "Touchpad mouse mode"
@@ -886,35 +854,33 @@ msgstr "Touchpad egщr mѓd"
#: gui/options.cpp:940
msgid "Swap Menu and Back buttons"
-msgstr ""
+msgstr "Menќ щs Vissza gombok cserщje"
#: gui/options.cpp:945
-#, fuzzy
msgid "Pointer Speed:"
-msgstr "Sebessщg:"
+msgstr "Mutatѓ Sebessщg:"
#: gui/options.cpp:945 gui/options.cpp:947 gui/options.cpp:948
msgid "Speed for keyboard/joystick mouse pointer control"
-msgstr ""
+msgstr "Billentyћzet/joystick egщrmutatѓ vezщrlщs sebessщge"
#: gui/options.cpp:947
-#, fuzzy
msgctxt "lowres"
msgid "Pointer Speed:"
-msgstr "Sebessщg:"
+msgstr "Mutatѓ Sebessщg:"
#: gui/options.cpp:958
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Joy Holtzѓna:"
#: gui/options.cpp:958 gui/options.cpp:960 gui/options.cpp:961
msgid "Analog joystick Deadzone"
-msgstr ""
+msgstr "Analѓg joystick Holtzѓna"
#: gui/options.cpp:960
msgctxt "lowres"
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Joy Holtzѓna:"
#: gui/options.cpp:977
msgid "Graphics mode:"
@@ -1252,7 +1218,7 @@ msgstr "Tсrolѓ:"
msgid "Active cloud storage"
msgstr "Aktэv felhѕ tсrolѓ"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<nincs>"
@@ -1313,7 +1279,7 @@ msgstr "Szerver futtatсs"
msgid "Run local webserver"
msgstr "Helyi webszerver futtatсsa"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Nem fut"
@@ -1382,28 +1348,28 @@ msgstr "Plugin mappa kivсlasztсsa"
msgid "Select directory for Files Manager /root/"
msgstr "Vсlassz mappсt a Fсjlkezelѕnek /gyіkщr/"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu byte"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<щpp most>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<soha>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Szerver leсllэtсs"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Helyi webszerver leсllэtсsa"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -4500,6 +4466,33 @@ msgid ""
"This saved game uses version %u, but this engine only supports up to version "
"%d. You will need an updated version of the engine to use this saved game."
msgstr ""
+"Ez a mentett сllсs %u verziѓt hasznсl, de ez a motor csak %d verziѓ felettit "
+"tсmogat. Szќksщged van a motor frissэtett verziѓjсra, hogy hasznсld a "
+"mentett jсtщkсllсst."
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "5"
+#~ msgstr "5"
+
+#~ msgid "8"
+#~ msgstr "8"
+
+#~ msgid "10"
+#~ msgstr "10"
+
+#~ msgid "13"
+#~ msgstr "13"
+
+#~ msgid "15"
+#~ msgstr "15"
+
+#~ msgid "18"
+#~ msgstr "18"
+
+#~ msgid "20"
+#~ msgstr "20"
#, fuzzy
#~ msgid "Speed multiplier for mouse emulation"
diff --git a/po/it_IT.po b/po/it_IT.po
index 9ee67d4b7b..94914039be 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
-"PO-Revision-Date: 2017-01-06 21:05+0000\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
+"PO-Revision-Date: 2017-03-03 22:25+0000\n"
"Last-Translator: Walter Agazzi <tag2015@gmail.com>\n"
"Language-Team: Italian <https://translations.scummvm.org/projects/scummvm/"
"scummvm/it/>\n"
@@ -826,38 +826,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -886,25 +854,23 @@ msgstr "Impossibile modificare le impostazioni del filtro video"
#: gui/options.cpp:932
msgid "Show On-screen control"
-msgstr ""
+msgstr "Controlli in sovraimpressione"
#: gui/options.cpp:936
-#, fuzzy
msgid "Touchpad mouse mode"
-msgstr "Modalitр touchpad disattivata."
+msgstr "Mouse in modalitр Touchpad"
#: gui/options.cpp:940
msgid "Swap Menu and Back buttons"
-msgstr ""
+msgstr "Inverti i tasti Menu e Indietro"
#: gui/options.cpp:945
-#, fuzzy
msgid "Pointer Speed:"
-msgstr "Velocitр:"
+msgstr "Velocitр Puntatore:"
#: gui/options.cpp:945 gui/options.cpp:947 gui/options.cpp:948
msgid "Speed for keyboard/joystick mouse pointer control"
-msgstr ""
+msgstr "Velocitр puntatore (se controllato con joystick o tastiera)"
#: gui/options.cpp:947
#, fuzzy
@@ -914,16 +880,16 @@ msgstr "Velocitр:"
#: gui/options.cpp:958
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Deadzone Joystick:"
#: gui/options.cpp:958 gui/options.cpp:960 gui/options.cpp:961
msgid "Analog joystick Deadzone"
-msgstr ""
+msgstr "Deadzone (zona inerte) per joystick analogici"
#: gui/options.cpp:960
msgctxt "lowres"
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Deadzone Joy:"
#: gui/options.cpp:977
msgid "Graphics mode:"
@@ -1266,7 +1232,7 @@ msgstr "Servizio cloud:"
msgid "Active cloud storage"
msgstr "Servizio di archiviazione cloud attivo"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<nessuno>"
@@ -1329,7 +1295,7 @@ msgstr "Avvia server"
msgid "Run local webserver"
msgstr "Avvia webserver locale"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Non avviato"
@@ -1398,28 +1364,28 @@ msgstr "Seleziona la cartella dei plugin"
msgid "Select directory for Files Manager /root/"
msgstr "Seleziona la cartella di partenza del File Manager"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%lIu bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<adesso>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<mai>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Arresta server"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Arresta webserver locale"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/nb_NO.po b/po/nb_NO.po
index ad12be9e32..c6d967e158 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-12-26 17:36+0000\n"
"Last-Translator: Einar Johan Trјan Sјmхen <einarjohants@gmail.com>\n"
"Language-Team: Norwegian Bokmхl <https://translations.scummvm.org/projects/"
@@ -823,38 +823,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1259,7 +1227,7 @@ msgstr "Lagring:"
msgid "Active cloud storage"
msgstr "Aktiv skylagring"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<ingen>"
@@ -1319,7 +1287,7 @@ msgstr "Kjјr server"
msgid "Run local webserver"
msgstr "Kjјr lokal webserver"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Kjјrer ikke"
@@ -1388,28 +1356,28 @@ msgstr "Velg mappe for plugins"
msgid "Select directory for Files Manager /root/"
msgstr "Velg mappe for filbehandler /root/"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<med en gang>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<aldri>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Stopp server"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Stopp lokal webserver"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/nl_NL.po b/po/nl_NL.po
index b08150243b..76e434a21e 100644
--- a/po/nl_NL.po
+++ b/po/nl_NL.po
@@ -7,11 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.9.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-02-28 19:10+0000\n"
"Last-Translator: Ben Castricum <github@bencastricum.nl>\n"
-"Language-Team: Dutch "
-"<https://translations.scummvm.org/projects/scummvm/scummvm/nl/>\n"
+"Language-Team: Dutch <https://translations.scummvm.org/projects/scummvm/"
+"scummvm/nl/>\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
@@ -825,38 +825,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr "3"
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr "5"
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr "8"
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr "10"
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr "13"
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr "15"
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr "18"
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr "20"
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1261,7 +1229,7 @@ msgstr "Opslag:"
msgid "Active cloud storage"
msgstr "Actieve cloud opslag"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<geen>"
@@ -1322,7 +1290,7 @@ msgstr "Start server"
msgid "Run local webserver"
msgstr "Draai lokale webserver"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Draait niet"
@@ -1392,28 +1360,28 @@ msgstr "Selecteer map voor plugins"
msgid "Select directory for Files Manager /root/"
msgstr "Selecteer map voor Bestanden Manager /root/"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<nu>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<nooit>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Stop server"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Stop lokale webserver"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -4540,6 +4508,30 @@ msgstr ""
"tot versie %d. U heeft een nieuwere versie van deze engine nodig om dit "
"opgeslagen te gebruiken."
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "5"
+#~ msgstr "5"
+
+#~ msgid "8"
+#~ msgstr "8"
+
+#~ msgid "10"
+#~ msgstr "10"
+
+#~ msgid "13"
+#~ msgstr "13"
+
+#~ msgid "15"
+#~ msgstr "15"
+
+#~ msgid "18"
+#~ msgstr "18"
+
+#~ msgid "20"
+#~ msgstr "20"
+
#~ msgid "Speed multiplier for mouse emulation"
#~ msgstr "Snelheidsfactor voor muis emulatie"
diff --git a/po/nn_NO.po b/po/nn_NO.po
index dc11bb1084..104245355c 100644
--- a/po/nn_NO.po
+++ b/po/nn_NO.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-12-18 18:23+0000\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Norwegian Nynorsk <https://translations.scummvm.org/projects/"
@@ -814,38 +814,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1249,7 +1217,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1310,7 +1278,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
#, fuzzy
msgid "Not running"
msgstr "Feil under kјyring av spel:"
@@ -1384,30 +1352,30 @@ msgstr "Vel ei mappe for plugins"
msgid "Select directory for Files Manager /root/"
msgstr "Vel ei mappe for ekstra filer"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
#, fuzzy
msgid "<never>"
msgstr "Aldri"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
#, fuzzy
msgid "Stop server"
msgstr "Teinar:"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/pl_PL.po b/po/pl_PL.po
index 7a975fc926..dee686bff7 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-01-25 12:49+0000\n"
"Last-Translator: RafaГ Rzepecki <divided.mind@gmail.com>\n"
"Language-Team: Polish <https://translations.scummvm.org/projects/scummvm/"
@@ -821,38 +821,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1260,7 +1228,7 @@ msgstr "Dostawca:"
msgid "Active cloud storage"
msgstr "Wybrany dostawca przechowywania w chmurze"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<brak>"
@@ -1322,7 +1290,7 @@ msgstr "Uruchom serwer"
msgid "Run local webserver"
msgstr "Uruchamia lokalny serwer WWW"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Nie uruchomiono"
@@ -1391,28 +1359,28 @@ msgstr "Wybierz katalog dla wtyczek"
msgid "Select directory for Files Manager /root/"
msgstr "Wybierz gГѓwny katalog dla menedПera plikѓw"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu B"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<teraz>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<nigdy>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Zatrzymaj serwer"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Zatrzymuje lokalny serwer WWW"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 52205573db..0edeabf83e 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
-"PO-Revision-Date: 2016-12-22 21:50+0000\n"
-"Last-Translator: Alexandre Folle de Menezes <afmenez@terra.com.br>\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
+"PO-Revision-Date: 2017-03-03 22:26+0000\n"
+"Last-Translator: rafaelmessias <rmmartins@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translations.scummvm.org/"
"projects/scummvm/scummvm/pt_BR/>\n"
"Language: pt_BR\n"
@@ -99,12 +99,12 @@ msgstr "Para: "
#: gui/downloaddialog.cpp:63
msgid "Cancel download"
-msgstr ""
+msgstr "Cancelar download"
#: gui/downloaddialog.cpp:65
msgctxt "lowres"
msgid "Cancel download"
-msgstr ""
+msgstr "Cancelar download"
#: gui/downloaddialog.cpp:67
msgid "Hide"
@@ -190,9 +190,9 @@ msgid "Downloaded %s %s / %s %s"
msgstr "Baixado %s %s / %s %s"
#: gui/downloaddialog.cpp:258
-#, fuzzy, c-format
+#, c-format
msgid "Download speed: %s %s"
-msgstr "Busca completa!"
+msgstr "Velocidade de download: %s %s"
#: gui/editgamedialog.cpp:132
msgid "Game"
@@ -261,9 +261,8 @@ msgid "Platform:"
msgstr "Sistema:"
#: gui/editgamedialog.cpp:176
-#, fuzzy
msgid "Engine"
-msgstr "Examinar"
+msgstr "Engine"
#: gui/editgamedialog.cpp:184 gui/options.cpp:1336 gui/options.cpp:1421
msgid "Graphics"
@@ -833,38 +832,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1274,7 +1241,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1335,7 +1302,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
#, fuzzy
msgid "Not running"
msgstr "Erro ao executar o jogo:"
@@ -1409,30 +1376,30 @@ msgstr "Selecione a pasta para os plugins"
msgid "Select directory for Files Manager /root/"
msgstr "Selecione a pasta para os arquivos extras"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
#, fuzzy
msgid "<never>"
msgstr "Nunca"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
#, fuzzy
msgid "Stop server"
msgstr "Servidor:"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 6602e9f48f..d7e600c540 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.10.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-01-30 14:50+0000\n"
"Last-Translator: Vitor Santos <vitorhgsantos90@gmail.com>\n"
"Language-Team: Portuguese (Portugal) <https://translations.scummvm.org/"
@@ -833,38 +833,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1261,7 +1229,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1321,7 +1289,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr ""
@@ -1386,28 +1354,28 @@ msgstr ""
msgid "Select directory for Files Manager /root/"
msgstr ""
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr ""
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr ""
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/ru_RU.po b/po/ru_RU.po
index d0911aba1c..0d67243cba 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -7,17 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
-"PO-Revision-Date: 2017-02-22 19:56+0000\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
+"PO-Revision-Date: 2017-03-04 10:33+0000\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
-"Language-Team: Russian <https://translations.scummvm.org/projects/scummvm/"
-"scummvm/ru/>\n"
+"Language-Team: Russian "
+"<https://translations.scummvm.org/projects/scummvm/scummvm/ru/>\n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-5\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
+"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 2.9\n"
"X-Language-name: Russian\n"
@@ -823,38 +823,6 @@ msgstr "44 кГц"
msgid "48 kHz"
msgstr "48 кГц"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -894,32 +862,30 @@ msgid "Swap Menu and Back buttons"
msgstr "Поменять местами кнопки Меню и Назад"
#: gui/options.cpp:945
-#, fuzzy
msgid "Pointer Speed:"
-msgstr "Скорость:"
+msgstr "Скорость указателя:"
#: gui/options.cpp:945 gui/options.cpp:947 gui/options.cpp:948
msgid "Speed for keyboard/joystick mouse pointer control"
-msgstr ""
+msgstr "Скорость для клавиш эмуляции мыши на клавиатуре/джойстике"
#: gui/options.cpp:947
-#, fuzzy
msgctxt "lowres"
msgid "Pointer Speed:"
-msgstr "Скорость:"
+msgstr "Скорость указателя:"
#: gui/options.cpp:958
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Мёртвая зона джойстика:"
#: gui/options.cpp:958 gui/options.cpp:960 gui/options.cpp:961
msgid "Analog joystick Deadzone"
-msgstr ""
+msgstr "Мёртвая зона аналогового джойстика"
#: gui/options.cpp:960
msgctxt "lowres"
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Мёртвая зона джойстика:"
#: gui/options.cpp:977
msgid "Graphics mode:"
@@ -1264,7 +1230,7 @@ msgstr "Облако:"
msgid "Active cloud storage"
msgstr "Активное облачное хранилище"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<нет>"
@@ -1324,7 +1290,7 @@ msgstr "Запустить сервер"
msgid "Run local webserver"
msgstr "Запускает локальный веб-сервер"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Не запущен"
@@ -1393,28 +1359,28 @@ msgstr "Выберите директорию с плагинами"
msgid "Select directory for Files Manager /root/"
msgstr "Выберите директорию для корня в Менеджере файлов"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu байт"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<сейчас>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<никогда>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Остановить сервер"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Останавливает локальный веб-сервер"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/scummvm.pot b/po/scummvm.pot
index 50210ae4f1..c9cb5abd3a 100644
--- a/po/scummvm.pot
+++ b/po/scummvm.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.10.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -801,38 +801,6 @@ msgstr ""
msgid "48 kHz"
msgstr ""
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1227,7 +1195,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1287,7 +1255,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr ""
@@ -1352,28 +1320,28 @@ msgstr ""
msgid "Select directory for Files Manager /root/"
msgstr ""
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr ""
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr ""
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/sv_SE.po b/po/sv_SE.po
index 77c1a48eac..51fe26ab76 100644
--- a/po/sv_SE.po
+++ b/po/sv_SE.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.5.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2017-01-06 09:18+0000\n"
"Last-Translator: Petter Sjіlund <ignalina@mac.com>\n"
"Language-Team: Swedish <https://translations.scummvm.org/projects/scummvm/"
@@ -824,38 +824,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1262,7 +1230,7 @@ msgstr "Lager:"
msgid "Active cloud storage"
msgstr "Aktivera molnlagring"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<ingen>"
@@ -1323,7 +1291,7 @@ msgstr "Starta server"
msgid "Run local webserver"
msgstr "Starta lokal webbserver"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Ej aktiv"
@@ -1393,28 +1361,28 @@ msgstr "Vфlj katalog fіr tillфgg"
msgid "Select directory for Files Manager /root/"
msgstr "Vфlj katalog fіr filhanterarens /root/"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<nu direkt>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<aldrig>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Stoppa server"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Stoppa lokal webbserver"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/uk_UA.po b/po/uk_UA.po
index 798c6bd806..3720e21642 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -8,17 +8,17 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.9.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
-"PO-Revision-Date: 2017-02-22 19:54+0000\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
+"PO-Revision-Date: 2017-03-04 10:29+0000\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
-"Language-Team: Ukrainian <https://translations.scummvm.org/projects/scummvm/"
-"scummvm/uk/>\n"
+"Language-Team: Ukrainian "
+"<https://translations.scummvm.org/projects/scummvm/scummvm/uk/>\n"
"Language: uk_UA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-5\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
+"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 2.9\n"
"X-Language-name: Ukrainian\n"
@@ -823,38 +823,6 @@ msgstr "44 кГц"
msgid "48 kHz"
msgstr "48 кГц"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -894,32 +862,30 @@ msgid "Swap Menu and Back buttons"
msgstr "Поміняти місцями кнопки Меню і Назад"
#: gui/options.cpp:945
-#, fuzzy
msgid "Pointer Speed:"
-msgstr "Швидкість:"
+msgstr "Швидкість вказівника:"
#: gui/options.cpp:945 gui/options.cpp:947 gui/options.cpp:948
msgid "Speed for keyboard/joystick mouse pointer control"
-msgstr ""
+msgstr "Управління швидкістю вказівника миші/джойстика"
#: gui/options.cpp:947
-#, fuzzy
msgctxt "lowres"
msgid "Pointer Speed:"
-msgstr "Швидкість:"
+msgstr "Швидкість вказівника:"
#: gui/options.cpp:958
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Мертва зона джойстика:"
#: gui/options.cpp:958 gui/options.cpp:960 gui/options.cpp:961
msgid "Analog joystick Deadzone"
-msgstr ""
+msgstr "Мертва зона аналогового джойстика"
#: gui/options.cpp:960
msgctxt "lowres"
msgid "Joy Deadzone:"
-msgstr ""
+msgstr "Мертва зона джойстика:"
#: gui/options.cpp:977
msgid "Graphics mode:"
@@ -1262,7 +1228,7 @@ msgstr "Середовище:"
msgid "Active cloud storage"
msgstr "Активне хмарне середовище"
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr "<немає>"
@@ -1325,7 +1291,7 @@ msgstr "Запустити сервер"
msgid "Run local webserver"
msgstr "Запускає локальний веб-сервер"
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
msgid "Not running"
msgstr "Вимкнено"
@@ -1394,28 +1360,28 @@ msgstr "Виберіть папку зі втулками"
msgid "Select directory for Files Manager /root/"
msgstr "Виберіть папку /root/ для Керування файлами"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr "%llu байт"
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr "<зараз>"
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
msgid "<never>"
msgstr "<ніколи>"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
msgid "Stop server"
msgstr "Вимкнути сервер"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr "Вимкнути локальний веб-сервер"
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."
diff --git a/po/zh-Latn_CN.po b/po/zh-Latn_CN.po
index b365ef9c8d..57e3f06011 100644
--- a/po/zh-Latn_CN.po
+++ b/po/zh-Latn_CN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.9.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2017-02-28 15:54+0100\n"
+"POT-Creation-Date: 2017-03-04 11:23+0100\n"
"PO-Revision-Date: 2016-12-26 19:38+0000\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Chinese <https://translations.scummvm.org/projects/scummvm/"
@@ -810,38 +810,6 @@ msgstr "44 kHz"
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:127
-msgid "3"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "5"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "8"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "10"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "13"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "15"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "18"
-msgstr ""
-
-#: gui/options.cpp:127
-msgid "20"
-msgstr ""
-
#: gui/options.cpp:345 gui/options.cpp:638 gui/options.cpp:776
#: gui/options.cpp:853 gui/options.cpp:1105
msgctxt "soundfont"
@@ -1250,7 +1218,7 @@ msgstr ""
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1616 gui/options.cpp:2179
+#: gui/options.cpp:1616 gui/options.cpp:2176
msgid "<none>"
msgstr ""
@@ -1311,7 +1279,7 @@ msgstr ""
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1634 gui/options.cpp:2289
+#: gui/options.cpp:1634 gui/options.cpp:2286
#, fuzzy
msgid "Not running"
msgstr "Youxi Yunxing Cuowu:"
@@ -1385,30 +1353,30 @@ msgstr "Xuanze Chajian Mulu"
msgid "Select directory for Files Manager /root/"
msgstr "Xuanze QIta Wenjian Mulu"
-#: gui/options.cpp:2186
+#: gui/options.cpp:2183
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:2194
+#: gui/options.cpp:2191
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:2196
+#: gui/options.cpp:2193
#, fuzzy
msgid "<never>"
msgstr "Yongbu"
-#: gui/options.cpp:2280
+#: gui/options.cpp:2277
#, fuzzy
msgid "Stop server"
msgstr "Fuwuqi:"
-#: gui/options.cpp:2281
+#: gui/options.cpp:2278
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2372
+#: gui/options.cpp:2369
msgid ""
"Request failed.\n"
"Check your Internet connection."