[Scummvm-cvs-logs] SF.net SVN: scummvm: [21958] scummvm/trunk/engines/simon/simon.cpp
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Sun Apr 16 18:32:01 CEST 2006
Revision: 21958
Author: kirben
Date: 2006-04-16 18:31:02 -0700 (Sun, 16 Apr 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=21958&view=rev
Log Message:
-----------
Handle unsigned variableArray reads better in FF, fixes more missing subroutines
Modified Paths:
--------------
scummvm/trunk/engines/simon/simon.cpp
Modified: scummvm/trunk/engines/simon/simon.cpp
===================================================================
--- scummvm/trunk/engines/simon/simon.cpp 2006-04-17 01:04:08 UTC (rev 21957)
+++ scummvm/trunk/engines/simon/simon.cpp 2006-04-17 01:31:02 UTC (rev 21958)
@@ -998,10 +998,7 @@
uint a = READ_BE_UINT16(_codePtr);
_codePtr += 2;
if (a >= 30000 && a < 30512) {
- if (getGameType() == GType_FF)
- return (uint16)readVariable(a - 30000);
- else
- return readVariable(a - 30000);
+ return readVariable(a - 30000);
}
return a;
}
@@ -1079,10 +1076,14 @@
if (variable >= 255)
error("Variable %d out of range in read", variable);
- if (getGameType() == GType_FF && getBitFlag(83))
- return _variableArray2[variable];
- else
- return _variableArray[variable];
+ if (getGameType() == GType_FF) {
+ if (getBitFlag(83))
+ return (uint16)_variableArray2[variable];
+ else
+ return (uint16)_variableArray[variable];
+ } else {
+ return _variableArray[variable];
+ }
}
void SimonEngine::writeNextVarContents(uint16 contents) {
@@ -1368,7 +1369,8 @@
return cur;
}
- debug(0,"getSubroutineByID: subroutine %d not found", subroutine_id);
+ if (subroutine_id != 160)
+ debug(0,"getSubroutineByID: subroutine %d not found", subroutine_id);
return NULL;
}
@@ -1989,7 +1991,7 @@
time_t cur_time;
if (getGameType() == GType_SIMON1) {
- uint subr_id = _variableArray[254];
+ uint subr_id = (uint16)_variableArray[254];
if (subr_id != 0) {
Subroutine *sub = getSubroutineByID(subr_id);
if (sub != NULL) {
@@ -2018,7 +2020,7 @@
uint subr_id;
Subroutine *sub;
- subr_id = _variableArray[249];
+ subr_id = (uint16)_variableArray[249];
if (subr_id != 0) {
sub = getSubroutineByID(subr_id);
if (sub != NULL) {
@@ -2029,7 +2031,7 @@
_variableArray[249] = 0;
}
- subr_id = _variableArray[254];
+ subr_id = (uint16)_variableArray[254];
if (subr_id != 0) {
sub = getSubroutineByID(subr_id);
if (sub != NULL) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list