diff options
author | Max Horn | 2009-03-20 16:33:58 +0000 |
---|---|---|
committer | Max Horn | 2009-03-20 16:33:58 +0000 |
commit | 6f4b5671245827866aa4fb59fdb9c602cfe3d482 (patch) | |
tree | d39ebc076ada919bc6078d2ef165f5ffea59f799 /engines/scumm/scumm_v8.h | |
parent | ed292fb498bc14f4482a82ba5a40a4bf3c7870f1 (diff) | |
download | scummvm-rg350-6f4b5671245827866aa4fb59fdb9c602cfe3d482.tar.gz scummvm-rg350-6f4b5671245827866aa4fb59fdb9c602cfe3d482.tar.bz2 scummvm-rg350-6f4b5671245827866aa4fb59fdb9c602cfe3d482.zip |
SCUMM: Split intern.h into multiple headers
svn-id: r39567
Diffstat (limited to 'engines/scumm/scumm_v8.h')
-rw-r--r-- | engines/scumm/scumm_v8.h | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/engines/scumm/scumm_v8.h b/engines/scumm/scumm_v8.h new file mode 100644 index 0000000000..abd53b44ff --- /dev/null +++ b/engines/scumm/scumm_v8.h @@ -0,0 +1,127 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#ifndef SCUMM_SCRIPT_V8_H +#define SCUMM_SCRIPT_V8_H + +#ifdef ENABLE_SCUMM_7_8 + +#include "scumm/scumm_v7.h" + +namespace Scumm { + +class ScummEngine_v8 : public ScummEngine_v7 { +protected: + typedef void (ScummEngine_v8::*OpcodeProcV8)(); + struct OpcodeEntryV8 { + OpcodeProcV8 proc; + const char *desc; + }; + + const OpcodeEntryV8 *_opcodesV8; + + struct ObjectNameId { + char name[40]; + int id; + }; + int _objectIDMapSize; + ObjectNameId *_objectIDMap; + + int _keyScriptKey, _keyScriptNo; + +public: + ScummEngine_v8(OSystem *syst, const DetectorResult &dr); + ~ScummEngine_v8(); + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + virtual void printString(int m, const byte *msg); + + virtual void scummLoop_handleSaveLoad(); + + virtual void setupScummVars(); + virtual void resetScummVars(); + virtual void decodeParseString(int m, int n); + virtual void readArrayFromIndexFile(); + + virtual void readMAXS(int blockSize); + virtual void readGlobalObjects(); + + virtual uint fetchScriptWord(); + virtual int fetchScriptWordSigned(); + + virtual int readVar(uint var); + virtual void writeVar(uint var, int value); + + virtual int getObjectIdFromOBIM(const byte *obim); + + virtual void processKeyboard(Common::KeyState lastKeyHit); + + void desaturatePalette(int hueScale, int satScale, int lightScale, int startColor, int endColor); + + + /* Version 8 script opcodes */ + void o8_mod(); + void o8_wait(); + + void o8_dimArray(); + void o8_dim2dimArray(); + void o8_arrayOps(); + void o8_blastText(); + + void o8_cursorCommand(); + void o8_resourceRoutines(); + void o8_roomOps(); + void o8_actorOps(); + void o8_cameraOps(); + void o8_verbOps(); + + void o8_systemOps(); + void o8_startVideo(); + void o8_kernelSetFunctions(); + void o8_kernelGetFunctions(); + + void o8_getActorChore(); + void o8_getActorZPlane(); + + void o8_drawObject(); + void o8_getObjectImageX(); + void o8_getObjectImageY(); + void o8_getObjectImageWidth(); + void o8_getObjectImageHeight(); + + void o8_getStringWidth(); + + byte VAR_LANGUAGE; +}; + +} // End of namespace Scumm + +#endif // ENABLE_SCUMM_7_8 + +#endif |