aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--common/scummsys.h2
-rw-r--r--engines/cge/snail.cpp8
-rw-r--r--engines/cruise/volume.cpp2
-rw-r--r--engines/drascula/animation.cpp6
-rw-r--r--engines/kyra/resource.cpp2
-rw-r--r--engines/lure/hotspots.cpp2
-rw-r--r--engines/lure/menu.cpp2
-rw-r--r--engines/lure/room.cpp2
-rw-r--r--engines/pegasus/pegasus.cpp2
-rw-r--r--engines/sci/engine/message.cpp26
-rw-r--r--engines/sci/engine/scriptdebug.cpp2
-rw-r--r--engines/sci/graphics/menu.cpp2
-rw-r--r--engines/sci/graphics/portrait.cpp2
-rw-r--r--engines/scumm/imuse/imuse.cpp4
-rw-r--r--engines/tinsel/dw.h2
-rw-r--r--engines/tinsel/scene.cpp2
-rw-r--r--engines/tinsel/sound.cpp2
-rw-r--r--engines/tinsel/timers.cpp2
-rw-r--r--gui/themes/translations.datbin416830 -> 417353 bytes
-rw-r--r--po/hu_HU.po25
-rw-r--r--video/smk_decoder.cpp4
22 files changed, 68 insertions, 34 deletions
diff --git a/NEWS b/NEWS
index 0ae4155715..f5c4f882fc 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,7 @@ For a more comprehensive changelog of the latest experimental code, see:
change it at all.
- Updated MT-32 emulation code to latest munt project snapshot.
- Added FluidSynth settings dialog, mainly for reverb and chorus settings.
+ - Fixed crash on certain Smacker movies.
Cine:
- Improved audio support for Amiga and AtariST versions of Future Wars.
diff --git a/common/scummsys.h b/common/scummsys.h
index cd8a949ce7..291de87dc9 100644
--- a/common/scummsys.h
+++ b/common/scummsys.h
@@ -51,7 +51,7 @@
#include <stdio.h>
#include <stdarg.h>
- // MSVC's vsnprintf is either non-existant (2003) or bugged since it
+ // MSVC's vsnprintf is either non-existent (2003) or bugged since it
// does not always include a terminating NULL (2005+). To work around
// that we fix up the _vsnprintf included. Note that the return value
// will still not match C99's specs!
diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp
index c26f68fa7b..4cd95a888e 100644
--- a/engines/cge/snail.cpp
+++ b/engines/cge/snail.cpp
@@ -493,7 +493,15 @@ void CGEEngine::snGame(Sprite *spr, int num) {
_sprK2->step(newRandom(6));
_sprK3->step(newRandom(6));
+ // check the ALT key as it's the solution of the puzzle
+ // the test has been restricted to some specific OSes
+ // in order to avoid some obvious issues (like Android, iOS, NDS, N64...)
+ // Not perfect, but at least better than nothing.
+#if defined(WIN32) || defined(UNIX) || defined(MACOSX) || defined(MOTOEZX) || defined(LINUPY) || defined(LINUXMOTO_SDL)
if (spr->_ref == 1 && _keyboard->_keyAlt) {
+#else
+ if (spr->_ref == 1 && _gameCase2Cpt > 1) {
+#endif
_sprK1->step(5);
_sprK2->step(5);
_sprK3->step(5);
diff --git a/engines/cruise/volume.cpp b/engines/cruise/volume.cpp
index 4b64d4ff77..9fb6842882 100644
--- a/engines/cruise/volume.cpp
+++ b/engines/cruise/volume.cpp
@@ -447,7 +447,7 @@ int16 readVolCnf() {
///////////////////////////::
-// This code used to rely on "strupr", which is non existant on my system,
+// This code used to rely on "strupr", which is non existent on my system,
// thus I just implemented this function instead. - LordHoto
//
// TODO: This might be code duplication, please check this out.
diff --git a/engines/drascula/animation.cpp b/engines/drascula/animation.cpp
index 7009752365..52cab6cd32 100644
--- a/engines/drascula/animation.cpp
+++ b/engines/drascula/animation.cpp
@@ -506,7 +506,7 @@ void DrasculaEngine::animation_2_1() {
trackProtagonist = 3;
// The room number was originally changed here to "no_bj.alg",
// which doesn't exist. In reality, this was just a hack to
- // set the room number to a non-existant one, so that BJ does
+ // set the room number to a non-existent one, so that BJ does
// not appear again when the room is refreshed after the
// animation where Count Drascula abducts her. We set the
// room number to -1 for the same purpose
@@ -1655,8 +1655,8 @@ void DrasculaEngine::animation_9_6() {
objExit = 108;
enterRoom(59);
// The room number was originally changed here to "nada.alg",
- // which is a non-existant file. In reality, this was just a
- // hack to set the room number to a non-existant one, so that
+ // which is a non-existent file. In reality, this was just a
+ // hack to set the room number to a non-existent one, so that
// room sprites do not appear again when the room is refreshed.
// We set the room number to -1 for the same purpose.
// Also check animation_2_1(), where the same hack was used
diff --git a/engines/kyra/resource.cpp b/engines/kyra/resource.cpp
index adb3063344..c350c81742 100644
--- a/engines/kyra/resource.cpp
+++ b/engines/kyra/resource.cpp
@@ -185,7 +185,7 @@ bool Resource::loadFileList(const Common::String &filedata) {
// the demo version supplied with Kyra3 does not
// contain all pak files listed in filedata.fdt
// so we don't do anything here if they are non
- // existant.
+ // existent.
} else if (!loadPakFile(filename)) {
delete f;
error("couldn't load file '%s'", filename.c_str());
diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp
index ee7a185ea1..7fab4521f7 100644
--- a/engines/lure/hotspots.cpp
+++ b/engines/lure/hotspots.cpp
@@ -213,7 +213,7 @@ void Hotspot::setAnimation(uint16 newAnimId) {
else {
tempAnim = r.getAnimation(newAnimId);
if (tempAnim == NULL)
- error("Hotspot %xh tried to set non-existant Animation Id: %xh", _hotspotId, newAnimId);
+ error("Hotspot %xh tried to set non-existent Animation Id: %xh", _hotspotId, newAnimId);
}
setAnimation(tempAnim);
diff --git a/engines/lure/menu.cpp b/engines/lure/menu.cpp
index 5a0dd26cba..93deecdcd6 100644
--- a/engines/lure/menu.cpp
+++ b/engines/lure/menu.cpp
@@ -31,7 +31,7 @@
#include "lure/events.h"
#include "lure/lure.h"
-#if defined(_WIN32_WCE) || defined(__SYMBIAN32__) || defined(WEBOS)
+#if defined(_WIN32_WCE) || defined(__SYMBIAN32__) || defined(WEBOS) || defined(__ANDROID__)
#define LURE_CLICKABLE_MENUS
#endif
diff --git a/engines/lure/room.cpp b/engines/lure/room.cpp
index 9a9313ece9..26d15dd025 100644
--- a/engines/lure/room.cpp
+++ b/engines/lure/room.cpp
@@ -549,7 +549,7 @@ void Room::setRoomNumber(uint16 newRoomNumber, bool showOverlay) {
_roomData = res.getRoom(newRoomNumber);
if (!_roomData)
- error("Tried to change to non-existant room: %d", newRoomNumber);
+ error("Tried to change to non-existent room: %d", newRoomNumber);
bool fadeFlag = (newRoomNumber != _roomNumber) && (_roomNumber != 0);
bool leaveFlag = _roomNumber != 999;
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index eedfaa7db3..449fa20579 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -616,7 +616,7 @@ void PegasusEngine::loadFromContinuePoint() {
// Failure to load a continue point is fatal
if (!_continuePoint)
- error("Attempting to load from non-existant continue point");
+ error("Attempting to load from non-existent continue point");
_continuePoint->seek(0);
diff --git a/engines/sci/engine/message.cpp b/engines/sci/engine/message.cpp
index a92d572d35..10f8094423 100644
--- a/engines/sci/engine/message.cpp
+++ b/engines/sci/engine/message.cpp
@@ -203,6 +203,32 @@ bool MessageState::getRecord(CursorStack &stack, bool recurse, MessageRecord &re
while (1) {
MessageTuple &t = stack.top();
+ // Fix known incorrect message tuples
+ if (g_sci->getGameId() == GID_QFG1VGA && stack.getModule() == 322 &&
+ t.noun == 14 && t.verb == 1 && t.cond == 19 && t.seq == 1) {
+ // Talking to Kaspar the shopkeeper - bug #3604944
+ t.verb = 2;
+ }
+
+ // Fill in known missing message tuples
+ if (g_sci->getGameId() == GID_SQ4 && stack.getModule() == 16 &&
+ t.noun == 7 && t.verb == 0 && t.cond == 3 && t.seq == 1) {
+ // This fixes the error message shown when speech and subtitles are
+ // enabled simultaneously in SQ4 - the (very) long dialog when Roger
+ // is talking with the aliens is missing - bug #3538416.
+ record.tuple = t;
+ record.refTuple = MessageTuple();
+ record.talker = 7; // Roger
+ // The missing text is just too big to fit in one speech bubble, and
+ // if it's added here manually and drawn on screen, it's painted over
+ // the entrance in the back where the Sequel Police enters, so it
+ // looks very ugly. Perhaps this is why this particular text is missing,
+ // as the text shown in this screen is very short (one-liners).
+ // Just output an empty string here instead of showing an error.
+ record.string = "";
+ return true;
+ }
+
if (!reader->findRecord(t, record)) {
// Tuple not found
if (recurse && (stack.size() > 1)) {
diff --git a/engines/sci/engine/scriptdebug.cpp b/engines/sci/engine/scriptdebug.cpp
index b2f22aa985..277437109c 100644
--- a/engines/sci/engine/scriptdebug.cpp
+++ b/engines/sci/engine/scriptdebug.cpp
@@ -79,7 +79,7 @@ reg_t disassemble(EngineState *s, reg32_t pos, bool printBWTag, bool printByteco
Kernel *kernel = g_sci->getKernel();
if (!mobj) {
- warning("Disassembly failed: Segment %04x non-existant or not a script", pos.getSegment());
+ warning("Disassembly failed: Segment %04x non-existent or not a script", pos.getSegment());
return retval;
} else
script_entity = (Script *)mobj;
diff --git a/engines/sci/graphics/menu.cpp b/engines/sci/graphics/menu.cpp
index bfecc296a2..e5b734782c 100644
--- a/engines/sci/graphics/menu.cpp
+++ b/engines/sci/graphics/menu.cpp
@@ -314,7 +314,7 @@ void GfxMenu::kernelSetAttribute(uint16 menuId, uint16 itemId, uint16 attributeI
reg_t GfxMenu::kernelGetAttribute(uint16 menuId, uint16 itemId, uint16 attributeId) {
GuiMenuItemEntry *itemEntry = findItem(menuId, itemId);
if (!itemEntry)
- error("Tried to getAttribute() on non-existant menu-item %d:%d", menuId, itemId);
+ error("Tried to getAttribute() on non-existent menu-item %d:%d", menuId, itemId);
switch (attributeId) {
case SCI_MENU_ATTRIBUTE_ENABLED:
if (itemEntry->enabled)
diff --git a/engines/sci/graphics/portrait.cpp b/engines/sci/graphics/portrait.cpp
index 8cd8cdb033..d5227126e2 100644
--- a/engines/sci/graphics/portrait.cpp
+++ b/engines/sci/graphics/portrait.cpp
@@ -193,7 +193,7 @@ void Portrait::doit(Common::Point position, uint16 resourceId, uint16 noun, uint
drawBitmap(syncCue);
bitsShow();
} else {
- warning("kPortrait: sync information tried to draw non-existant %d", syncCue);
+ warning("kPortrait: sync information tried to draw non-existent %d", syncCue);
}
}
}
diff --git a/engines/scumm/imuse/imuse.cpp b/engines/scumm/imuse/imuse.cpp
index b69ce552bc..a875702383 100644
--- a/engines/scumm/imuse/imuse.cpp
+++ b/engines/scumm/imuse/imuse.cpp
@@ -1741,10 +1741,10 @@ void IMuseInternal::copyGlobalInstrument(byte slot, Instrument *dest) {
// In case we have an valid instrument set up, copy it to the part.
_global_instruments[slot].copy_to(dest);
} else if (_pcSpeaker) {
- debug(0, "Trying to use non-existant global PC Speaker instrument %d", slot);
+ debug(0, "Trying to use non-existent global PC Speaker instrument %d", slot);
dest->pcspk(defaultInstr);
} else {
- debug(0, "Trying to use non-existant global AdLib instrument %d", slot);
+ debug(0, "Trying to use non-existent global AdLib instrument %d", slot);
dest->adlib(defaultInstr);
}
}
diff --git a/engines/tinsel/dw.h b/engines/tinsel/dw.h
index 21f6db946e..34f05ab8c2 100644
--- a/engines/tinsel/dw.h
+++ b/engines/tinsel/dw.h
@@ -91,7 +91,7 @@ typedef int HPOLYGON;
#define MAX_SAVED_ALIVES 512 // Saves actors'lives
#define MAX_SAVED_ACTOR_Z 512 // Saves actors' Z-ness
-// Legal non-existant entrance number for LoadScene()
+// Legal non-existent entrance number for LoadScene()
#define NO_ENTRY_NUM (-3458) // Magic unlikely number
diff --git a/engines/tinsel/scene.cpp b/engines/tinsel/scene.cpp
index 9181f85afb..b652e394a0 100644
--- a/engines/tinsel/scene.cpp
+++ b/engines/tinsel/scene.cpp
@@ -286,7 +286,7 @@ static void LoadScene(SCNHANDLE scene, int entry) {
}
if (i == ss->numEntrance)
- error("Non-existant scene entry number");
+ error("Non-existent scene entry number");
if (ss->hSceneScript) {
init.event = STARTUP;
diff --git a/engines/tinsel/sound.cpp b/engines/tinsel/sound.cpp
index 03aa3767c4..cea4971769 100644
--- a/engines/tinsel/sound.cpp
+++ b/engines/tinsel/sound.cpp
@@ -289,7 +289,7 @@ bool SoundManager::playSample(int id, int sub, bool bLooped, int x, int y, int p
uint32 dwSampleIndex = _sampleIndex[id];
if (dwSampleIndex == 0) {
- warning("Tinsel2 playSample, non-existant sample %d", id);
+ warning("Tinsel2 playSample, non-existent sample %d", id);
return false;
}
diff --git a/engines/tinsel/timers.cpp b/engines/tinsel/timers.cpp
index d3a7446565..36986ccb47 100644
--- a/engines/tinsel/timers.cpp
+++ b/engines/tinsel/timers.cpp
@@ -106,7 +106,7 @@ static TIMER *findTimer(int num) {
*/
static TIMER *allocateTimer(int num) {
assert(num); // zero is not allowed as a timer number
- assert(!findTimer(num)); // Allocating already existant timer
+ assert(!findTimer(num)); // Allocating already existent timer
for (int i = 0; i < MAX_TIMERS; i++) {
if (!g_timers[i].tno) {
diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat
index 07c3b3f3a2..3dc7ef7e2d 100644
--- a/gui/themes/translations.dat
+++ b/gui/themes/translations.dat
Binary files differ
diff --git a/po/hu_HU.po b/po/hu_HU.po
index e02882d677..abf47854e0 100644
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2013-02-07 23:11+0000\n"
-"PO-Revision-Date: 2013-02-03 09:21+0100\n"
+"PO-Revision-Date: 2013-02-11 09:27+0100\n"
"Last-Translator: George Kormendi <grubycza@hotmail.com>\n"
"Language-Team: Hungarian\n"
"Language: Magyar\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.5.5\n"
#: gui/about.cpp:93
#, c-format
@@ -2440,44 +2440,43 @@ msgstr ""
#: engines/pegasus/pegasus.cpp:675
msgid "Invalid save file name"
-msgstr ""
+msgstr "Érvénytelen mentés fájlnév"
#: engines/pegasus/pegasus.cpp:2410
msgid "Up/Zoom In/Move Forward/Open Doors"
-msgstr ""
+msgstr "Fel/Nagyítás/Előre mozgás/Ajtónyitás"
#: engines/pegasus/pegasus.cpp:2411
-#, fuzzy
msgid "Down/Zoom Out"
-msgstr "Nagyítás"
+msgstr "Le/Zoom Ki"
#: engines/pegasus/pegasus.cpp:2414
msgid "Display/Hide Inventory Tray"
-msgstr ""
+msgstr "Tárgylista tálca Képre/Elrejt"
#: engines/pegasus/pegasus.cpp:2415
msgid "Display/Hide Biochip Tray"
-msgstr ""
+msgstr "Biochip tálca Képre/Elrejt"
#: engines/pegasus/pegasus.cpp:2416
msgid "Action/Select"
-msgstr ""
+msgstr "Akció/Választ"
#: engines/pegasus/pegasus.cpp:2417
msgid "Toggle Center Data Display"
-msgstr ""
+msgstr "Adatképernyő kapcsoló"
#: engines/pegasus/pegasus.cpp:2418
msgid "Display/Hide Info Screen"
-msgstr ""
+msgstr "Infóképernyő Képre/Elrejt"
#: engines/pegasus/pegasus.cpp:2419
msgid "Display/Hide Pause Menu"
-msgstr ""
+msgstr "Szünet menü Képre/Elrejt"
#: engines/pegasus/pegasus.cpp:2420
msgid "???"
-msgstr ""
+msgstr "???"
#: audio/fmopl.cpp:49
msgid "MAME OPL emulator"
diff --git a/video/smk_decoder.cpp b/video/smk_decoder.cpp
index c49791100d..4e18268e72 100644
--- a/video/smk_decoder.cpp
+++ b/video/smk_decoder.cpp
@@ -119,7 +119,7 @@ uint16 SmallHuffmanTree::decodeTree(uint32 prefix, int length) {
}
uint16 SmallHuffmanTree::getCode(Common::BitStream &bs) {
- byte peek = bs.peekBits(8);
+ byte peek = bs.peekBits(MIN<uint32>(bs.size() - bs.pos(), 8));
uint16 *p = &_tree[_prefixtree[peek]];
bs.skip(_prefixlength[peek]);
@@ -257,7 +257,7 @@ uint32 BigHuffmanTree::decodeTree(uint32 prefix, int length) {
}
uint32 BigHuffmanTree::getCode(Common::BitStream &bs) {
- byte peek = bs.peekBits(8);
+ byte peek = bs.peekBits(MIN<uint32>(bs.size() - bs.pos(), 8));
uint32 *p = &_tree[_prefixtree[peek]];
bs.skip(_prefixlength[peek]);