aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/agos.h
diff options
context:
space:
mode:
authorMax Horn2009-07-18 15:12:54 +0000
committerMax Horn2009-07-18 15:12:54 +0000
commit2250ff1df68bcd37f37ca2d37f5768ff1037219b (patch)
tree4cdc78289f6aae6babe9f34d30af07d572cfe50c /engines/agos/agos.h
parent24e18ae2154e7affb87368f09d5a4ebf78d2430e (diff)
downloadscummvm-rg350-2250ff1df68bcd37f37ca2d37f5768ff1037219b.tar.gz
scummvm-rg350-2250ff1df68bcd37f37ca2d37f5768ff1037219b.tar.bz2
scummvm-rg350-2250ff1df68bcd37f37ca2d37f5768ff1037219b.zip
AGOS: Get rid of one setjmp in PN code (needs testing)
svn-id: r42592
Diffstat (limited to 'engines/agos/agos.h')
-rw-r--r--engines/agos/agos.h39
1 files changed, 22 insertions, 17 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index 263811b78a..536c1ca3ab 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -1265,20 +1265,6 @@ protected:
#ifdef ENABLE_PN
class AGOSEngine_PN : public AGOSEngine {
- struct StackFrame {
- StackFrame *nextframe;
- int16 flag[6];
- int16 param[8];
- int16 classnum;
- uint8 *linpos;
- uint8 *lbase;
- int16 ll;
- int16 linenum;
- int16 process;
- jmp_buf *savearea;
- StackFrame() { memset(this, 0, sizeof(*this)); }
- };
-
virtual Common::Error go();
void demoSeq();
@@ -1358,8 +1344,30 @@ public:
void opn_opcode62();
void opn_opcode63();
+protected:
+ struct StackFrame {
+ StackFrame *nextframe;
+ int16 flag[6];
+ int16 param[8];
+ int16 classnum;
+ uint8 *linpos;
+ uint8 *lbase;
+ int16 ll;
+ int16 linenum;
+ int16 process;
+ int tagOfParentDoline; ///< tag of the doline "instance" to which this StackFrame belongs
+ StackFrame() { memset(this, 0, sizeof(*this)); }
+ };
+
+
StackFrame *_stackbase;
+ int _tagOfActiveDoline; ///< tag of the active doline "instance"
+ int _dolineReturnVal;
+
+ jmp_buf _loadfail;
+
+
byte *_dataBase, *_textBase;
uint32 _dataBaseSize, _textBaseSize;
@@ -1404,8 +1412,6 @@ public:
int _linembr;
uint8 *_linebase;
uint8 *_workptr;
- jmp_buf *_cjmpbuff;
- jmp_buf _loadfail;
uint16 getptr(uint32 pos);
uint32 getlong(uint32 pos);
@@ -1429,7 +1435,6 @@ public:
void addstack(int type);
void dumpstack();
- void junkstack();
void popstack(int type);
void funccpy(int *store);
void funcentry(int *storestore, int procn);