[Scummvm-cvs-logs] SF.net SVN: scummvm:[35905] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Jan 18 18:24:53 CET 2009
Revision: 35905
http://scummvm.svn.sourceforge.net/scummvm/?rev=35905&view=rev
Author: lordhoto
Date: 2009-01-18 17:24:47 +0000 (Sun, 18 Jan 2009)
Log Message:
-----------
- Fixed bug in script code of LoL
- Cleanup
Modified Paths:
--------------
scummvm/trunk/engines/kyra/script.cpp
scummvm/trunk/engines/kyra/script.h
Modified: scummvm/trunk/engines/kyra/script.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script.cpp 2009-01-18 17:17:39 UTC (rev 35904)
+++ scummvm/trunk/engines/kyra/script.cpp 2009-01-18 17:24:47 UTC (rev 35905)
@@ -152,9 +152,9 @@
void EMCInterpreter::init(EMCState *scriptStat, const EMCData *data) {
scriptStat->dataPtr = data;
scriptStat->ip = 0;
- scriptStat->stack[60] = 0;
- scriptStat->bp = 62;
- scriptStat->sp = 60;
+ scriptStat->stack[EMCState::kStackLastEntry] = 0;
+ scriptStat->bp = EMCState::kStackSize+1;
+ scriptStat->sp = EMCState::kStackLastEntry;
}
bool EMCInterpreter::start(EMCState *script, int function) {
@@ -346,7 +346,7 @@
break;
case 1:
- if (script->sp >= 60) {
+ if (script->sp >= EMCState::kStackLastEntry) {
script->ip = 0;
} else {
script->bp = script->stack[script->sp++];
@@ -519,12 +519,12 @@
}
void EMCInterpreter::cmd_setRetAndJmp(EMCState* script) {
- if (script->sp >= 60) {
+ if (script->sp >= EMCState::kStackLastEntry) {
script->ip = 0;
} else {
script->retValue = script->stack[script->sp++];
uint16 temp = script->stack[script->sp++];
- script->stack[60] = 0;
+ script->stack[EMCState::kStackLastEntry] = 0;
script->ip = &script->dataPtr->data[temp];
}
}
Modified: scummvm/trunk/engines/kyra/script.h
===================================================================
--- scummvm/trunk/engines/kyra/script.h 2009-01-18 17:17:39 UTC (rev 35904)
+++ scummvm/trunk/engines/kyra/script.h 2009-01-18 17:24:47 UTC (rev 35905)
@@ -47,13 +47,18 @@
};
struct EMCState {
+ enum {
+ kStackSize = 100,
+ kStackLastEntry = kStackSize - 1
+ };
+
const uint16 *ip;
const EMCData *dataPtr;
int16 retValue;
uint16 bp;
uint16 sp;
- int16 regs[30]; // VM registers
- int16 stack[100]; // VM stack
+ int16 regs[30]; // VM registers
+ int16 stack[kStackSize]; // VM stack
};
#define stackPos(x) (script->stack[script->sp+x])
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