aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction
diff options
context:
space:
mode:
authorNicola Mettifogo2008-06-24 13:21:22 +0000
committerNicola Mettifogo2008-06-24 13:21:22 +0000
commit28e32bb7cb6df6610e137500c0187d4ba36d8bdf (patch)
treecfcf720267b1cccc04bfeb39ec4525ba7ffbdc02 /engines/parallaction
parent0b58aea011b248e35236c3e6c24858f5f2071c42 (diff)
downloadscummvm-rg350-28e32bb7cb6df6610e137500c0187d4ba36d8bdf.tar.gz
scummvm-rg350-28e32bb7cb6df6610e137500c0187d4ba36d8bdf.tar.bz2
scummvm-rg350-28e32bb7cb6df6610e137500c0187d4ba36d8bdf.zip
Fix for bug #2001193. Character confirmation screen didn't appear and game crashed because too many strings were added to the draw list.
svn-id: r32762
Diffstat (limited to 'engines/parallaction')
-rw-r--r--engines/parallaction/callables_ns.cpp5
-rw-r--r--engines/parallaction/gui_ns.cpp2
-rw-r--r--engines/parallaction/parallaction.h3
-rw-r--r--engines/parallaction/parallaction_ns.cpp8
4 files changed, 15 insertions, 3 deletions
diff --git a/engines/parallaction/callables_ns.cpp b/engines/parallaction/callables_ns.cpp
index 68e6a70ffb..36f5b00c5b 100644
--- a/engines/parallaction/callables_ns.cpp
+++ b/engines/parallaction/callables_ns.cpp
@@ -417,6 +417,11 @@ void Parallaction_ns::_c_ridux(void *parm) {
}
void Parallaction_ns::_c_testResult(void *parm) {
+ if (_inTestResult) {
+ return;
+ }
+ _inTestResult = true;
+
_gfx->updateScreen();
_disk->selectArchive("disk1");
diff --git a/engines/parallaction/gui_ns.cpp b/engines/parallaction/gui_ns.cpp
index 1d4d44fa46..9c48586dbc 100644
--- a/engines/parallaction/gui_ns.cpp
+++ b/engines/parallaction/gui_ns.cpp
@@ -166,6 +166,8 @@ void Parallaction_ns::guiStart() {
}
void Parallaction_ns::selectStartLocation() {
+ _inTestResult = false;
+
int character = guiSelectCharacter();
if (character == -1)
error("invalid character selected from menu screen");
diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h
index 5ae1386378..f9c2c86a1b 100644
--- a/engines/parallaction/parallaction.h
+++ b/engines/parallaction/parallaction.h
@@ -548,6 +548,9 @@ private:
ZonePtr _moveSarcExaZones[5];
AnimationPtr _rightHandAnim;
+ bool _inTestResult;
+
+
// common callables
void _c_play_boogie(void*);
void _c_startIntro(void*);
diff --git a/engines/parallaction/parallaction_ns.cpp b/engines/parallaction/parallaction_ns.cpp
index f346a278f7..59b9465d0a 100644
--- a/engines/parallaction/parallaction_ns.cpp
+++ b/engines/parallaction/parallaction_ns.cpp
@@ -147,6 +147,8 @@ int Parallaction_ns::init() {
num_foglie = 0;
+ _inTestResult = false;
+
_location._animations.push_front(_char._ani);
Parallaction::init();
@@ -156,7 +158,7 @@ int Parallaction_ns::init() {
Parallaction_ns::~Parallaction_ns() {
freeFonts();
-
+
delete _locationParser;
delete _programParser;
delete _mouseComposedArrow;
@@ -235,10 +237,10 @@ int Parallaction_ns::go() {
_globalTable = _disk->loadTable("global");
guiStart();
-
+
if (_engineFlags & kEngineQuit)
return 0;
-
+
changeLocation(_location._name);
if (_engineFlags & kEngineQuit)