aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorTravis Howell2003-10-26 03:20:13 +0000
committerTravis Howell2003-10-26 03:20:13 +0000
commit0600e4e0f47f71801df995382896358db7f90b4b (patch)
tree30bf38ee4c63ab0cff084bc04d4c5b6cf73d5079 /simon
parent060300339e8324add5ba46f50c8ea1cf48a6813c (diff)
downloadscummvm-rg350-0600e4e0f47f71801df995382896358db7f90b4b.tar.gz
scummvm-rg350-0600e4e0f47f71801df995382896358db7f90b4b.tar.bz2
scummvm-rg350-0600e4e0f47f71801df995382896358db7f90b4b.zip
Fix simon1dos freezes
svn-id: r10966
Diffstat (limited to 'simon')
-rw-r--r--simon/simon.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp
index d0ededcccb..cadb3e8b63 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -4029,14 +4029,20 @@ void SimonEngine::talk_with_text(uint vga_sprite_id, uint color, const char *str
len_div_3 = (strlen(string_ptr) + 3) / 3;
- if (!(_game & GF_SIMON2)) {
+ if (_game & GF_SIMON2) {
+ if (_variableArray[86] == 0)
+ len_div_3 >>= 1;
+ if (_variableArray[86] == 2)
+ len_div_3 <<= 1;
+ _variableArray[85] = len_div_3 * 5;
+ } else if (_game & GF_WIN) {
if (_variableArray[141] == 0)
_variableArray[141] = 9;
_variableArray[85] = _variableArray[141] * len_div_3;
} else {
- if (_variableArray[86] == 0)
- len_div_3 >>= 1;
- if (_variableArray[86] == 2)
+ if (_variableArray[141] == 0)
+ _variableArray[141] = len_div_3 / 2;
+ if (_variableArray[141] == 2)
len_div_3 <<= 1;
_variableArray[85] = len_div_3 * 5;
}