[Scummvm-cvs-logs] SF.net SVN: scummvm: [24751] scummvm/trunk/engines/scumm/script.cpp
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Mon Nov 20 04:21:09 CET 2006
Revision: 24751
http://svn.sourceforge.net/scummvm/?rev=24751&view=rev
Author: kirben
Date: 2006-11-19 19:21:09 -0800 (Sun, 19 Nov 2006)
Log Message:
-----------
Add stopObjectCode() differences in SCUMM 1 - 5 games. The nested script stack wasn't been checked.
Modified Paths:
--------------
scummvm/trunk/engines/scumm/script.cpp
Modified: scummvm/trunk/engines/scumm/script.cpp
===================================================================
--- scummvm/trunk/engines/scumm/script.cpp 2006-11-19 23:02:26 UTC (rev 24750)
+++ scummvm/trunk/engines/scumm/script.cpp 2006-11-20 03:21:09 UTC (rev 24751)
@@ -724,27 +724,36 @@
ScriptSlot *ss;
ss = &vm.slot[_currentScript];
- if (ss->cutsceneOverride == 255) { /* FIXME: What does this? */
- warning("Cutscene for script %d has overflown. Resetting.", ss->number);
- ss->cutsceneOverride = 0;
- }
+ if (_game.version <= 2) {
+ if (ss->where == WIO_GLOBAL || ss->where == WIO_LOCAL) {
+ stopScript(ss->number);
+ } else {
+ ss->number = 0;
+ ss->status = ssDead;
+ }
+ } else if (_game.version <= 5) {
+ if (ss->where != WIO_GLOBAL && ss->where != WIO_LOCAL) {
+ stopObjectScript(ss->number);
+ } else {
+ if (_game.version >= 4 && ss->cutsceneOverride)
+ error("Script %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);
- if (ss->where != WIO_GLOBAL && ss->where != WIO_LOCAL) {
- if (ss->cutsceneOverride) {
- if (_game.version >= 5)
- warning("Object %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);
- ss->cutsceneOverride = 0;
+ ss->number = 0;
+ ss->status = ssDead;
}
} else {
- if (ss->cutsceneOverride) {
- if (_game.version >= 5)
- warning("Script %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);
- ss->cutsceneOverride = 0;
+ if (ss->where != WIO_GLOBAL && ss->where != WIO_LOCAL) {
+ if (ss->cutsceneOverride)
+ error("Object %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);
+ } else {
+ if (ss->cutsceneOverride)
+ error("Script %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);
}
+ ss->number = 0;
+ ss->status = ssDead;
}
+
nukeArrays(_currentScript);
- ss->number = 0;
- ss->status = ssDead;
_currentScript = 0xFF;
}
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