[Scummvm-cvs-logs] scummvm master -> 485118ecd9640538337672e3a00bb312803da666

digitall dgturner at iee.org
Sun Jul 14 06:06:53 CEST 2013


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
485118ecd9 TUCKER: Add support for skipping unhandled/invalid instructions.


Commit: 485118ecd9640538337672e3a00bb312803da666
    https://github.com/scummvm/scummvm/commit/485118ecd9640538337672e3a00bb312803da666
Author: D G Turner (digitall at scummvm.org)
Date: 2013-07-13T21:07:11-07:00

Commit Message:
TUCKER: Add support for skipping unhandled/invalid instructions.

This ensures that if any unhandled/invalid instructions are present,
they are skipped, rather than locking up engine execution.

This is a secondary fix for bug #3614697 - "Spanish version
uncompletable at end of 2nd part" and any other future bugs of this
type.

Changed paths:
    engines/tucker/tucker.cpp



diff --git a/engines/tucker/tucker.cpp b/engines/tucker/tucker.cpp
index e3fd928..122be95 100644
--- a/engines/tucker/tucker.cpp
+++ b/engines/tucker/tucker.cpp
@@ -3064,8 +3064,9 @@ static const struct {
 
 int TuckerEngine::readTableInstructionCode(int *index) {
 	bool match = false;
+	int nameLen = 0;
 	for (int i = 0; _instructions[i].name; ++i) {
-		const int nameLen = strlen(_instructions[i].name);
+		nameLen = strlen(_instructions[i].name);
 		if (_instructions[i].name[1] == '0') {
 			if (_instructions[i].name[0] == _tableInstructionsPtr[0] && _instructions[i].name[2] == _tableInstructionsPtr[2]) {
 				const char digit = _tableInstructionsPtr[1];
@@ -3085,6 +3086,7 @@ int TuckerEngine::readTableInstructionCode(int *index) {
 		}
 	}
 	warning("Unhandled instruction '%c%c%c'", _tableInstructionsPtr[0], _tableInstructionsPtr[1], _tableInstructionsPtr[2]);
+	_tableInstructionsPtr += nameLen + 1;
 	return kCode_invalid;
 }
 






More information about the Scummvm-git-logs mailing list