aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/agos.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agos/agos.h')
-rw-r--r--engines/agos/agos.h81
1 files changed, 56 insertions, 25 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index d1a57b7b18..2161903b7a 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -154,7 +154,7 @@ public:
const AGOSGameDescription *_gameDescription;
bool initGame(void);
- void setupGame();
+ virtual void setupGame();
int getGameId() const;
int getGameType() const;
@@ -663,17 +663,7 @@ protected:
// Elvira 1 specific
Item *getDoorOf(Item *item, uint16 d);
Item *getExitOf_e1(Item *item, uint16 d);
- void moveDirn_e1(Item *i, uint x);
-
- // Elvira 2 specific
- int changeExitStates(SubSuperRoom *sr, int n, int d, uint16 s);
- uint16 getExitState(Item *item, uint16 x, uint16 d);
- void setExitState(Item *i, uint16 n, uint16 d, uint16 s);
- void setSRExit(Item *i, int n, int d, uint16 s);
- void moveDirn_e2(Item *i, uint x);
-
- // Waxworks specific
- void moveDirn_ww(Item *i, uint x);
+ virtual void moveDirn(Item *i, uint x);
int canPlace(Item *x, Item *y);
int contains(Item *a, Item *b);
@@ -701,14 +691,10 @@ protected:
void mouseOff();
void mouseOn();
- bool loadTablesIntoMem(uint subr_id);
- bool loadTablesOldIntoMem(uint subr_id);
- bool loadTablesNewIntoMem(uint subr_id);
+ virtual bool loadTablesIntoMem(uint subr_id);
bool loadXTablesIntoMem(uint subr_id);
void loadTextIntoMem(uint stringId);
- bool loadRoomItems(uint item);
-
uint loadTextFile(const char *filename, byte *dst);
Common::File *openTablesFile(const char *filename);
void closeTablesFile(Common::File *in);
@@ -751,13 +737,13 @@ protected:
void initMouse();
virtual void drawMousePointer();
- void addArrows(WindowBlock *window);
+ virtual void addArrows(WindowBlock *window);
void removeArrows(WindowBlock *window, uint num);
- void drawIcon(WindowBlock *window, uint icon, uint x, uint y);
+ virtual void drawIcon(WindowBlock *window, uint icon, uint x, uint y);
bool hasIcon(Item *item);
uint itemGetIconNumber(Item *item);
- uint setupIconHitArea(WindowBlock *window, uint num, uint x, uint y, Item *item_ptr);
+ virtual uint setupIconHitArea(WindowBlock *window, uint num, uint x, uint y, Item *item_ptr);
virtual void drawIconArray(uint i, Item *item_ptr, int line, int classMask);
@@ -792,9 +778,7 @@ protected:
void printVerbOf(uint hitarea_id);
void showActionString(const byte *string);
- void printScreenText(uint vga_sprite_id, uint color, const char *string_ptr, int16 x, int16 y, int16 width);
- void sendInteractText(uint16 num, const char *fmt, ...);
- void printInteractText(uint16 num, const char *string);
+ virtual void printScreenText(uint vga_sprite_id, uint color, const char *string_ptr, int16 x, int16 y, int16 width);
void renderStringAmiga(uint vga_sprite_id, uint color, uint width, uint height, const char *txt);
void renderString(uint vga_sprite_id, uint color, uint width, uint height, const char *txt);
@@ -1041,7 +1025,6 @@ protected:
virtual void drawImage(VC10_state *state);
- void scaleClip(int16 h, int16 w, int16 y, int16 x, int16 scrollY);
void horizontalScroll(VC10_state *state);
void verticalScroll(VC10_state *state);
@@ -1191,6 +1174,7 @@ public:
AGOSEngine_Elvira1(OSystem *system);
//~AGOSEngine_Elvira1();
+ virtual void setupGame();
virtual void setupOpcodes();
virtual void setupVideoOpcodes(VgaOpcodeProc *op);
@@ -1267,6 +1251,7 @@ public:
AGOSEngine_Elvira2(OSystem *system);
//~AGOSEngine_Elvira2();
+ virtual void setupGame();
virtual void setupOpcodes();
virtual void setupVideoOpcodes(VgaOpcodeProc *op);
@@ -1322,6 +1307,18 @@ protected:
};
const OpcodeEntryElvira2 *_opcodesElvira2;
+
+ virtual void drawIcon(WindowBlock *window, uint icon, uint x, uint y);
+
+ virtual void addArrows(WindowBlock *window);
+ virtual uint setupIconHitArea(WindowBlock *window, uint num, uint x, uint y, Item *item_ptr);
+
+ virtual void moveDirn(Item *i, uint x);
+
+ int changeExitStates(SubSuperRoom *sr, int n, int d, uint16 s);
+ uint16 getExitState(Item *item, uint16 x, uint16 d);
+ void setExitState(Item *i, uint16 n, uint16 d, uint16 s);
+ void setSRExit(Item *i, int n, int d, uint16 s);
};
class AGOSEngine_Waxworks : public AGOSEngine_Elvira2 {
@@ -1329,6 +1326,7 @@ public:
AGOSEngine_Waxworks(OSystem *system);
//~AGOSEngine_Waxworks();
+ virtual void setupGame();
virtual void setupOpcodes();
virtual void setupVideoOpcodes(VgaOpcodeProc *op);
@@ -1340,7 +1338,6 @@ public:
uint16 getBoxSize();
uint16 checkFit(char *Ptr, int width, int lines);
- void oww_moveDirn();
void oww_goto();
void oww_addTextBox();
void oww_setShortText();
@@ -1366,6 +1363,17 @@ protected:
};
const OpcodeEntryWaxworks *_opcodesWaxworks;
+
+ virtual void drawIcon(WindowBlock *window, uint icon, uint x, uint y);
+
+ virtual void addArrows(WindowBlock *window);
+ virtual uint setupIconHitArea(WindowBlock *window, uint num, uint x, uint y, Item *item_ptr);
+
+ virtual bool loadTablesIntoMem(uint subr_id);
+
+ bool loadRoomItems(uint item);
+
+ virtual void moveDirn(Item *i, uint x);
};
class AGOSEngine_Simon1 : public AGOSEngine_Waxworks {
@@ -1373,6 +1381,7 @@ public:
AGOSEngine_Simon1(OSystem *system);
//~AGOSEngine_Simon1();
+ virtual void setupGame();
virtual void setupOpcodes();
virtual void setupVideoOpcodes(VgaOpcodeProc *op);
@@ -1406,6 +1415,11 @@ protected:
const OpcodeEntrySimon1 *_opcodesSimon1;
virtual void drawImage(VC10_state *state);
+
+ virtual void drawIcon(WindowBlock *window, uint icon, uint x, uint y);
+
+ virtual void addArrows(WindowBlock *window);
+ virtual uint setupIconHitArea(WindowBlock *window, uint num, uint x, uint y, Item *item_ptr);
};
class AGOSEngine_Simon2 : public AGOSEngine_Simon1 {
@@ -1413,6 +1427,7 @@ public:
AGOSEngine_Simon2(OSystem *system);
//~AGOSEngine_Simon2();
+ virtual void setupGame();
virtual void setupOpcodes();
virtual void setupVideoOpcodes(VgaOpcodeProc *op);
@@ -1438,6 +1453,11 @@ protected:
};
const OpcodeEntrySimon2 *_opcodesSimon2;
+
+ virtual void drawIcon(WindowBlock *window, uint icon, uint x, uint y);
+
+ virtual void addArrows(WindowBlock *window);
+ virtual uint setupIconHitArea(WindowBlock *window, uint num, uint x, uint y, Item *item_ptr);
};
class AGOSEngine_Feeble : public AGOSEngine_Simon2 {
@@ -1445,6 +1465,7 @@ public:
AGOSEngine_Feeble(OSystem *system);
//~AGOSEngine_Feeble();
+ virtual void setupGame();
virtual void setupOpcodes();
virtual void setupVideoOpcodes(VgaOpcodeProc *op);
@@ -1494,10 +1515,14 @@ protected:
const OpcodeEntryFeeble *_opcodesFeeble;
virtual void drawImage(VC10_state *state);
+ void scaleClip(int16 h, int16 w, int16 y, int16 x, int16 scrollY);
void drawMousePart(int image, byte x, byte y);
virtual void drawMousePointer();
+ virtual void addArrows(WindowBlock *window);
+ virtual uint setupIconHitArea(WindowBlock *window, uint num, uint x, uint y, Item *item_ptr);
+
virtual void resetVerbs();
virtual void setVerb(HitArea * ha);
virtual void hitarea_leave(HitArea * ha, bool state = false);
@@ -1511,6 +1536,11 @@ protected:
virtual void print_char_helper_1(const byte *src, uint len);
+ virtual void printScreenText(uint vga_sprite_id, uint color, const char *string_ptr, int16 x, int16 y, int16 width);
+
+ void printInteractText(uint16 num, const char *string);
+ void sendInteractText(uint16 num, const char *fmt, ...);
+
void checkLinkBox();
void hyperLinkOn(uint16 x);
void hyperLinkOff();
@@ -1538,6 +1568,7 @@ public:
AGOSEngine_PuzzlePack(OSystem *system);
//~AGOSEngine_PuzzlePack();
+ virtual void setupGame();
virtual void setupOpcodes();
virtual void executeOpcode(int opcode);