diff options
Diffstat (limited to 'engines/mortevielle/mortevielle.h')
-rw-r--r-- | engines/mortevielle/mortevielle.h | 54 |
1 files changed, 24 insertions, 30 deletions
diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h index 699ee3f37a..5ae94987a0 100644 --- a/engines/mortevielle/mortevielle.h +++ b/engines/mortevielle/mortevielle.h @@ -62,6 +62,11 @@ enum { MORTDAT_LANG_GERMAN = 2 }; +enum { + kUseOriginalData = 0, + kUseEngineDataFile = 1 +}; + // Static string list enum { S_YES_NO = 0, S_GO_TO = 1, S_SOMEONE_ENTERS = 2, S_COOL = 3, S_LOURDE = 4, @@ -115,6 +120,7 @@ const int kMenuSelfStringIndex = 497; const int kMenuSayStringIndex = 502; const int kMaxPatt = 20; +const int kResolutionScaler = 2; /* 9 "A glance at the forbidden$", 18 "It's already open$", @@ -129,18 +135,6 @@ enum Places { DOOR = 25, ROOM26 = 26, COAT_ARMS = 27 }; -enum GraphicModes { MODE_AMSTRAD1512 = 0, MODE_CGA = 1, MODE_EGA = 2, MODE_HERCULES = 3, MODE_TANDY = 4 }; - -struct nhom { - byte _id; /* number between 0 and 32 */ - byte _hom[4]; -}; - -struct CgaPalette { - byte _p; - nhom _a[16]; -}; - struct Pattern { byte _tay, _tax; byte _des[kMaxPatt + 1][kMaxPatt + 1]; @@ -169,16 +163,17 @@ struct Hint { byte _point; }; +struct MortevielleGameDescription; + class MortevielleEngine : public Engine { private: - const ADGameDescription *_gameDescription; + const MortevielleGameDescription *_gameDescription; Common::Stack<int> _keypresses; uint32 _lastGameFrame; Common::Point _mousePos; Common::StringArray _engineStrings; Common::StringArray _gameStrings; - Pattern _patternArr[15]; int _menuOpcode; bool _inMainGameLoop; // Flag when the main game loop is active @@ -219,10 +214,9 @@ private: int _minute; int _curSearchObjId; int _controlMenu; - int _startHour; - int _endHour; + int _startTime; + int _endTime; Common::Point _stdPal[91][17]; - CgaPalette _cgaPal[91]; int _x26KeyCount; int _roomDoorId; @@ -235,7 +229,8 @@ private: int _x; int _y; int _currentHourCount; - int _currentDayHour; + int _currentTime; + int _pauseStartTime; Common::String _hintPctMessage; byte *_cfiecBuffer; @@ -255,7 +250,6 @@ private: void mainGame(); void playGame(); void handleAction(); - void displayCGAPattern(int n, Pattern *p, nhom *pal); void loadPalette(); void loadTexts(); void loadCFIEC(); @@ -276,7 +270,6 @@ private: void getReadDescription(int objId); void getSearchDescription(int objId); int checkLeaveSecretPassage(); - void changeGraphicalDevice(int newDevice); void startDialog(int16 rep); void endSearch(); int convertCharacterIndexToBitIndex(int characterIndex); @@ -384,6 +377,7 @@ private: void displayQuestionText(Common::String s, int cmd); void displayTextInDescriptionBar(int x, int y, int nb, int mesgId); void displayTextInVerbBar(Common::String text); + void displayTextBlock(Common::String text); void mapMessageId(int &mesgId); void resetOpenObjects(); void setCoordinates(int sx); @@ -397,13 +391,12 @@ private: void prepareNextObject(); void putObject(); void resetObjectPlace(); + void drawDiscussionBox(); + void displayNarrativePicture(int af, int ob); + void menuUp(); + void displayLookScreen(int objId); void adzon(); - void premtet(); - void ecr2(Common::String text); - void tlu(int af, int ob); - void mennor(); - void treg(int objId); public: Common::Point _prevPos; @@ -417,8 +410,6 @@ public: bool _blo; bool _destinationOk; bool _largestClearScreen; - int _currGraphicalDevice; - int _newGraphicalDevice; float _addFix; int _savedBitIndex; int _numpal; @@ -430,7 +421,6 @@ public: int _caff; int _crep; - int _resolutionScaler; byte _destinationArray[7][25]; byte *_curPict; @@ -449,7 +439,7 @@ public: TextHandler _text; DialogManager _dialogManager; - MortevielleEngine(OSystem *system, const ADGameDescription *gameDesc); + MortevielleEngine(OSystem *system, const MortevielleGameDescription *gameDesc); ~MortevielleEngine(); virtual bool hasFeature(EngineFeature f) const; virtual bool canLoadGameStateCurrently(); @@ -457,8 +447,12 @@ public: virtual Common::Error loadGameState(int slot); virtual Common::Error saveGameState(int slot, const Common::String &desc); virtual Common::Error run(); + virtual void pauseEngineIntern(bool pause); + virtual GUI::Debugger *getDebugger() {return &_debugger;} uint32 getGameFlags() const; Common::Language getLanguage() const; + Common::Language getOriginalLanguage() const; + bool useOriginalData() const; static Common::String generateSaveFilename(const Common::String &target, int slot); Common::String generateSaveFilename(int slot) { return generateSaveFilename(_targetName, slot); } @@ -490,7 +484,7 @@ public: void handleDescriptionText(int f, int mesgId); int getAnimOffset(int frameNum, int animNum); - void hirs(); + void clearScreen(); }; extern MortevielleEngine *g_vm; |