aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle/mortevielle.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mortevielle/mortevielle.h')
-rw-r--r--engines/mortevielle/mortevielle.h54
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;