aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sci.h
diff options
context:
space:
mode:
authorJohannes Schickel2010-10-13 03:57:44 +0000
committerJohannes Schickel2010-10-13 03:57:44 +0000
commit75e8452b6e6a2bf4fb2f588aa00b428a60d873b5 (patch)
treef29541d55309487a94bd1d38e8b53bb3dde9aec6 /engines/sci/sci.h
parent48ee83b88957dab86bc763e9ef21a70179fa8679 (diff)
parente9f50882ea5b6beeefa994040be9d3bab6a1f107 (diff)
downloadscummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.tar.gz
scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.tar.bz2
scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.zip
OPENGL: Merged from trunk, from rev 52105 to 53396.
This includes an rather hacky attempt to merge all the recent gp2x backend changes into the branch. I suppose the gp2x backend and probably all new backends, i.e. gph, dingux etc., might not compile anymore. Since I have no way of testing those it would be nice if porters could look into getting those up to speed in this branch. svn-id: r53399
Diffstat (limited to 'engines/sci/sci.h')
-rw-r--r--engines/sci/sci.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/engines/sci/sci.h b/engines/sci/sci.h
index 72d6e7e0cb..7239abad17 100644
--- a/engines/sci/sci.h
+++ b/engines/sci/sci.h
@@ -53,6 +53,7 @@ class Console;
class AudioPlayer;
class SoundCommandParser;
class EventManager;
+class SegManager;
class GfxAnimate;
class GfxCache;
@@ -143,8 +144,9 @@ enum SciGameId {
GID_LSL6,
GID_LSL6HIRES, // We have a separate ID for LSL6 SCI32, because it's actually a completely different game
GID_LSL7,
- GID_MOTHERGOOSE,
- GID_MOTHERGOOSEHIRES, // We have a separate ID for Mother Goose SCI32, because it's actually a completely different game
+ GID_MOTHERGOOSE, // this one is the SCI0 version
+ GID_MOTHERGOOSE256, // this one handles SCI1 and SCI1.1 variants, at least those 2 share a bit in common
+ GID_MOTHERGOOSEHIRES, // this one is the SCI2.1 hires version, completely different from the other ones
GID_MSASTROCHICKEN,
GID_PEPPER,
GID_PHANTASMAGORIA,
@@ -232,7 +234,8 @@ public:
inline EngineState *getEngineState() const { return _gamestate; }
inline Vocabulary *getVocabulary() const { return _vocabulary; }
inline EventManager *getEventManager() const { return _eventMan; }
- inline reg_t getGameObject() const { return _gameObj; }
+ inline reg_t getGameObject() const { return _gameObjectAddress; }
+ inline reg_t getGameSuperClassAddress() const { return _gameSuperClassAddress; }
Common::RandomSource &getRNG() { return _rng; }
@@ -247,11 +250,19 @@ public:
/** Remove the 'TARGET-' prefix of the given filename, if present. */
Common::String unwrapFilename(const Common::String &name) const;
+ /**
+ * Checks if we are in a QfG import screen, where special handling
+ * of file-listings is performed.
+ */
+ int inQfGImportRoom() const;
+
void sleep(uint32 msecs);
void scriptDebug();
bool checkExportBreakpoint(uint16 script, uint16 pubfunct);
- bool checkSelectorBreakpoint(reg_t send_obj, int selector);
+ bool checkSelectorBreakpoint(BreakpointType breakpointType, reg_t send_obj, int selector);
+
+ void patchGameSaveRestore(SegManager *segMan);
public:
@@ -341,7 +352,8 @@ private:
Vocabulary *_vocabulary;
int16 _vocabularyLanguage;
EventManager *_eventMan;
- reg_t _gameObj; /**< Pointer to the game object */
+ reg_t _gameObjectAddress; /**< Pointer to the game object */
+ reg_t _gameSuperClassAddress; // Address of the super class of the game object
Console *_console;
Common::RandomSource _rng;
};