aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle
diff options
context:
space:
mode:
authorStrangerke2012-03-24 09:47:36 +0100
committerStrangerke2012-04-06 08:23:46 +0200
commita87b992e8dd144c869db8498925662119f822d20 (patch)
treece030b5cbe78a1c545b1ff00148252cb7653e9d1 /engines/mortevielle
parentcdcb8d3645e86cac1f42ee5015b67521129efaf7 (diff)
downloadscummvm-rg350-a87b992e8dd144c869db8498925662119f822d20.tar.gz
scummvm-rg350-a87b992e8dd144c869db8498925662119f822d20.tar.bz2
scummvm-rg350-a87b992e8dd144c869db8498925662119f822d20.zip
MORTEVIELLE: Move functions out of mor.cpp
Diffstat (limited to 'engines/mortevielle')
-rw-r--r--engines/mortevielle/actions.cpp37
-rw-r--r--engines/mortevielle/graphics.cpp15
-rw-r--r--engines/mortevielle/graphics.h3
-rw-r--r--engines/mortevielle/mor.cpp125
-rw-r--r--engines/mortevielle/mor.h13
-rw-r--r--engines/mortevielle/mortevielle.cpp146
-rw-r--r--engines/mortevielle/mortevielle.h7
-rw-r--r--engines/mortevielle/saveload.cpp2
-rw-r--r--engines/mortevielle/var_mor.h8
9 files changed, 188 insertions, 168 deletions
diff --git a/engines/mortevielle/actions.cpp b/engines/mortevielle/actions.cpp
index 174af9fd1a..70979becfd 100644
--- a/engines/mortevielle/actions.cpp
+++ b/engines/mortevielle/actions.cpp
@@ -173,7 +173,7 @@ void MortevielleEngine::fctMove() {
}
if ((menuChoice < 5) || (menuChoice == 13) || (menuChoice == 14))
affrep();
- debloc(_coreVar._currPlace);
+ resetRoomVariables(_coreVar._currPlace);
_menu.setDestinationMenuText(_coreVar._currPlace);
}
@@ -693,7 +693,7 @@ void MortevielleEngine::fctPlace() {
aniof(1, 2);
aniof(1, 1);
repon(2, 165);
- maivid();
+ displayEmptyHand();
_speechManager.startSpeech(6, -9, 1);
// Do you want to enter the hidden passage?
@@ -772,7 +772,7 @@ void MortevielleEngine::fctPlace() {
}
if (_crep != 188)
- maivid();
+ displayEmptyHand();
}
}
@@ -856,7 +856,7 @@ void MortevielleEngine::fctAttach() {
aniof(1, 1);
} else
_crep = 185;
- maivid();
+ displayEmptyHand();
}
}
}
@@ -930,15 +930,14 @@ void MortevielleEngine::fctKnock() {
if (_coreVar._currPlace == ROOM26) {
int rand = (getRandomNumber(0, 8)) - 4;
_speechManager.startSpeech(11, rand, 1);
- int p;
- ecfren(p, rand, _coreVar._faithScore, _ment);
+ int p = getPresenceStats(rand, _coreVar._faithScore, _ment);
int l = _ment;
if (l != 0) {
if (p != -500) {
if (rand > p)
_crep = 190;
else {
- becfren(l);
+ setPresenceFlags(l);
getKnockAnswer();
}
} else
@@ -964,7 +963,7 @@ void MortevielleEngine::fctSelfPut() {
_crep = 999;
ajchai();
if (_crep != 192)
- maivid();
+ displayEmptyHand();
return;
}
tfleche();
@@ -1039,7 +1038,7 @@ void MortevielleEngine::fctSelfPut() {
if (_crep == 999)
ajchai();
if (_crep != 192)
- maivid();
+ displayEmptyHand();
}
}
}
@@ -1054,15 +1053,15 @@ void MortevielleEngine::fctListen() {
else {
if (_currBitIndex != 0)
++_coreVar._faithScore;
- int p, rand;
- ecfren(p, rand, _coreVar._faithScore, _ment);
+ int rand;
+ int p = getPresenceStats(rand, _coreVar._faithScore, _ment);
int l = _ment;
if (l != 0) {
if (p != -500) {
if (rand > p)
_crep = 101;
else {
- becfren(l);
+ setPresenceFlags(l);
int j, h, m;
updateHour(j, h, m);
rand = getRandomNumber(1, 100);
@@ -1093,7 +1092,7 @@ void MortevielleEngine::fctEat() {
tsort();
_coreVar._currPlace = DINING_ROOM;
_caff = 10;
- debloc(_coreVar._currPlace);
+ resetRoomVariables(_coreVar._currPlace);
_menu.setDestinationMenuText(_coreVar._currPlace);
int j, h, m;
@@ -1163,7 +1162,7 @@ void MortevielleEngine::fctEnter() {
repon(2, _caff);
} else
_col = false;
- debloc(_ment);
+ resetRoomVariables(_ment);
_ment = 0;
}
} else {
@@ -1173,7 +1172,7 @@ void MortevielleEngine::fctEnter() {
_coreVar._currPlace = _ment;
affrep();
- debloc(_coreVar._currPlace);
+ resetRoomVariables(_coreVar._currPlace);
_menu.setDestinationMenuText(_coreVar._currPlace);
_ment = 0;
_savedBitIndex = 0;
@@ -1198,7 +1197,7 @@ void MortevielleEngine::fctSleep() {
_coreVar._currPlace = OWN_ROOM;
affrep();
afdes();
- debloc(_coreVar._currPlace);
+ resetRoomVariables(_coreVar._currPlace);
_menu.setDestinationMenuText(_coreVar._currPlace);
}
clearScreenType3();
@@ -1281,7 +1280,7 @@ void MortevielleEngine::fctLeave() {
_caff = nextPlace;
if (_crep == 0)
_crep = nextPlace;
- debloc(nextPlace);
+ resetRoomVariables(nextPlace);
_menu.setDestinationMenuText(nextPlace);
}
}
@@ -1571,7 +1570,7 @@ void MortevielleEngine::fctScratch() {
void MortevielleEngine::endGame() {
_quitGame = true;
tlu(13, 152);
- maivid();
+ displayEmptyHand();
clearScreenType1();
clearScreenType2();
clearScreenType3();
@@ -1610,7 +1609,7 @@ void MortevielleEngine::askRestart() {
clearScreenType2();
startMusicOrSpeech(0);
tkey1(false);
- maivid();
+ displayEmptyHand();
resetVariables();
initGame();
_currHour = 10;
diff --git a/engines/mortevielle/graphics.cpp b/engines/mortevielle/graphics.cpp
index 42dd3c7cc7..2b6607513b 100644
--- a/engines/mortevielle/graphics.cpp
+++ b/engines/mortevielle/graphics.cpp
@@ -1143,4 +1143,19 @@ void ScreenSurface::drawLine(int x, int y, int xx, int yy, int coul) {
}
}
+/**
+ * Draw plain rectangle
+ * @remarks Originally called 'paint_rect'
+ */
+void ScreenSurface::drawRectangle(int x, int y, int dx, int dy) {
+ int co;
+
+ if (g_vm->_currGraphicalDevice == MODE_CGA)
+ co = 3;
+ else
+ co = 11;
+ g_vm->_screenSurface.fillRect(co, Common::Rect(x, y, x + dx, y + dy));
+}
+
+
} // End of namespace Mortevielle
diff --git a/engines/mortevielle/graphics.h b/engines/mortevielle/graphics.h
index 9f4a4799ab..498322680d 100644
--- a/engines/mortevielle/graphics.h
+++ b/engines/mortevielle/graphics.h
@@ -93,8 +93,9 @@ public:
void clearScreen();
void putxy(int x, int y) { _textPos = Common::Point(x, y); }
void drawString(const Common::String &l, int command);
- int getStringWidth(const Common::String &s);
+ int getStringWidth(const Common::String &s);
void drawLine(int x, int y, int xx, int yy, int coul);
+ void drawRectangle(int x, int y, int dx, int dy);
// TODO: Refactor code to remove this method, for increased performance
void setPixel(const Common::Point &pt, int palIndex);
diff --git a/engines/mortevielle/mor.cpp b/engines/mortevielle/mor.cpp
index 85e34b6680..09857c8014 100644
--- a/engines/mortevielle/mor.cpp
+++ b/engines/mortevielle/mor.cpp
@@ -44,115 +44,7 @@
namespace Mortevielle {
-void paint_rect(int x, int y, int dx, int dy) {
- int co;
-
- if (g_vm->_currGraphicalDevice == MODE_CGA)
- co = 3;
- else
- co = 11;
- g_vm->_screenSurface.fillRect(co, Common::Rect(x, y, x + dx, y + dy));
-}
-
-/* NIVEAU 12 */
-void modobj(int m) {
- Common::String strp = Common::String(' ');
-
- if (m != 500)
- strp = g_vm->getString(m - 501 + kInventoryStringIndex);
-
- g_vm->_menu.setText(g_vm->_menu._inventoryMenu[8], strp);
- g_vm->_menu.disableMenuItem(g_vm->_menu._inventoryMenu[8]);
-}
-
-int chlm() {
- int retval = g_vm->getRandomNumber(1, 2);
- if (retval == 2)
- retval = 128;
-
- return retval;
-}
-
-/*************
- * NIVEAU 11 *
- *************/
-
-void debloc(int roomId) {
- g_vm->_num = 0;
- g_vm->_x = 0;
- g_vm->_y = 0;
- if ((roomId != ROOM26) && (roomId != LANDING))
- g_vm->resetPresenceInRooms(roomId);
- g_vm->_savedBitIndex = g_vm->_currBitIndex;
-}
-
-void ecfren(int &p, int &rand, int cf, int roomId) {
- if (roomId == OWN_ROOM)
- g_vm->displayAloneText();
- p = -500;
- rand = 0;
- if ( ((roomId == GREEN_ROOM) && (!g_vm->_roomPresenceLuc) && (!g_vm->_roomPresenceIda))
- || ((roomId == DARKBLUE_ROOM) && (!g_vm->_roomPresenceGuy) && (!g_vm->_roomPresenceEva)) )
- p = g_vm->getPresenceStatsGreenRoom();
- if ((roomId == PURPLE_ROOM) && (!g_vm->_purpleRoomPresenceLeo) && (!g_vm->_room9PresenceLeo))
- p = g_vm->getPresenceStatsPurpleRoom();
- if ( ((roomId == TOILETS) && (!g_vm->_toiletsPresenceBobMax))
- || ((roomId == BATHROOM) && (!g_vm->_bathRoomPresenceBobMax)) )
- p = g_vm->getPresenceStatsToilets();
- if ((roomId == BLUE_ROOM) && (!g_vm->_roomPresenceMax))
- p = g_vm->getPresenceStatsBlueRoom();
- if ( ((roomId == RED_ROOM) && (!g_vm->_roomPresenceBob))
- || ((roomId == GREEN_ROOM2) && (!g_vm->_roomPresencePat)))
- p = g_vm->getPresenceStatsRedRoom();
- if ((roomId == ROOM9) && (!g_vm->_room9PresenceLeo) && (!g_vm->_purpleRoomPresenceLeo))
- p = 10;
- if ( ((roomId == PURPLE_ROOM) && (g_vm->_room9PresenceLeo))
- || ((roomId == ROOM9) && (g_vm->_purpleRoomPresenceLeo)))
- p = -400;
- if (p != -500) {
- p += cf;
- rand = g_vm->getRandomNumber(1, 100);
- }
-}
-
-void becfren(int roomId) {
- if ((roomId == GREEN_ROOM) || (roomId == DARKBLUE_ROOM)) {
- int rand = g_vm->getRandomNumber(1, 2);
- if (roomId == GREEN_ROOM) {
- if (rand == 1)
- g_vm->_roomPresenceLuc = true;
- else
- g_vm->_roomPresenceIda = true;
- } else { // roomId == DARKBLUE_ROOM
- if (rand == 1)
- g_vm->_roomPresenceGuy = true;
- else
- g_vm->_roomPresenceEva = true;
- }
- } else if (roomId == PURPLE_ROOM)
- g_vm->_purpleRoomPresenceLeo = true;
- else if (roomId == TOILETS)
- g_vm->_toiletsPresenceBobMax = true;
- else if (roomId == BLUE_ROOM)
- g_vm->_roomPresenceMax = true;
- else if (roomId == RED_ROOM)
- g_vm->_roomPresenceBob = true;
- else if (roomId == BATHROOM)
- g_vm->_bathRoomPresenceBobMax = true;
- else if (roomId == GREEN_ROOM2)
- g_vm->_roomPresencePat = true;
- else if (roomId == ROOM9)
- g_vm->_room9PresenceLeo = true;
-}
-
/* NIVEAU 10 */
-void init_nbrepm() {
- const byte ipm[9] = { 0, 4, 5, 6, 7, 5, 6, 5, 8 };
-
- for (int idx = 0; idx < 9; ++idx)
- g_vm->_nbrepm[idx] = ipm[idx];
-}
-
void phaz(int &rand, int &p, int cf) {
p += cf;
rand = g_vm->getRandomNumber(1, 100);
@@ -160,9 +52,9 @@ void phaz(int &rand, int &p, int cf) {
int t11(int roomId) {
int retVal = 0;
- int p, rand;
+ int rand;
- ecfren(p, rand, g_vm->_coreVar._faithScore, roomId);
+ int p = g_vm->getPresenceStats(rand, g_vm->_coreVar._faithScore, roomId);
g_vm->_place = roomId;
if ((roomId > OWN_ROOM) && (roomId < DINING_ROOM)) {
if (p != -500) {
@@ -170,7 +62,7 @@ int t11(int roomId) {
g_vm->displayAloneText();
retVal = 0;
} else {
- becfren(g_vm->_place);
+ g_vm->setPresenceFlags(g_vm->_place);
retVal = g_vm->getPresenceBitIndex(g_vm->_place);
}
} else
@@ -374,7 +266,7 @@ void tsort() {
g_vm->_ment = 0;
g_vm->_iouv = 0;
g_vm->_mchai = 0;
- debloc(g_vm->_coreVar._currPlace);
+ g_vm->resetRoomVariables(g_vm->_coreVar._currPlace);
}
void st4(int ob) {
@@ -508,7 +400,7 @@ L1:
g_vm->_speechManager.startSpeech(3, rand, 1);
g_vm->clearScreenType2();
g_vm->displayAloneText();
- debloc(21);
+ g_vm->resetRoomVariables(MANOR_FRONT);
affrep();
}
}
@@ -679,7 +571,7 @@ void avpoing(int &ob) {
ajjer(g_vm->_coreVar._selectedObjectId);
if (g_vm->_crep != 139) {
- modobj(ob + 400);
+ g_vm->displayItemInHand(ob + 400);
g_vm->_coreVar._selectedObjectId = ob;
ob = 0;
}
@@ -702,11 +594,6 @@ int t23coul() {
return CELLAR;
}
-void maivid() {
- g_vm->_coreVar._selectedObjectId = 0;
- modobj(500);
-}
-
void st13(int ob) {
if ((ob == 114) || (ob == 116) || (ob == 126) || (ob == 132) ||
(ob == 111) || (ob == 106) || (ob == 102) || (ob == 100) ||
diff --git a/engines/mortevielle/mor.h b/engines/mortevielle/mor.h
index 667883ccf4..b55dc46537 100644
--- a/engines/mortevielle/mor.h
+++ b/engines/mortevielle/mor.h
@@ -42,19 +42,7 @@ static const int _actionMenu[12] = { OPCODE_NONE,
OPCODE_PLACE, OPCODE_OPEN, OPCODE_LEAVE
};
-/* NIVEAU 13 */
-extern void paint_rect(int x, int y, int dx, int dy);
-/* NIVEAU 12 */
-extern void modobj(int m);
-extern int chlm();
-/*************
- * NIVEAU 11 *
- *************/
-extern void debloc(int roomId);
-extern void ecfren(int &p, int &rand, int cf, int roomId);
-extern void becfren(int roomId);
/* NIVEAU 10 */
-extern void init_nbrepm();
extern void phaz(int &rand, int &p, int cf);
extern int t11(int roomId);
extern void writetp(Common::String s, int t);
@@ -86,7 +74,6 @@ extern void treg(int ob);
extern void avpoing(int &ob);
extern void rechai(int &ch);
extern int t23coul();
-extern void maivid();
extern void st13(int ob);
extern void sauvecr(int y, int dy);
diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp
index 536fe09114..cd5c2151b2 100644
--- a/engines/mortevielle/mortevielle.cpp
+++ b/engines/mortevielle/mortevielle.cpp
@@ -1256,7 +1256,7 @@ int MortevielleEngine::setPresenceDiningRoom(int hour) {
int retVal = 0;
if ((hour >= 0) && (hour < 8))
- retVal = chlm();
+ retVal = checkLeoMaxRandomPresence();
else {
int min = 0, max = 0;
if ((hour > 7) && (hour < 10)) {
@@ -1287,7 +1287,7 @@ int MortevielleEngine::setPresenceBureau(int hour) {
int retVal = 0;
if ((hour >= 0) && (hour < 8))
- retVal = chlm();
+ retVal = checkLeoMaxRandomPresence();
else {
int min = 0, max = 0;
if (((hour > 7) && (hour < 10)) || ((hour > 20) && (hour < 24))) {
@@ -1312,7 +1312,7 @@ int MortevielleEngine::setPresenceBureau(int hour) {
* @remarks Originally called 'quelq12'
*/
int MortevielleEngine::setPresenceKitchen() {
- int retVal = chlm();
+ int retVal = checkLeoMaxRandomPresence();
showPeoplePresent(retVal);
return retVal;
@@ -1351,7 +1351,7 @@ int MortevielleEngine::setPresenceChapel(int hour) {
int retVal = 0;
if (((hour >= 0) && (hour < 10)) || ((hour > 18) && (hour < 24)))
- retVal = chlm();
+ retVal = checkLeoMaxRandomPresence();
else {
int min = 0, max = 0;
if ((hour > 9) && (hour < 12)) {
@@ -1892,7 +1892,7 @@ void MortevielleEngine::gameLoaded() {
_menu.setDestinationMenuText(_coreVar._currPlace);
modinv();
if (_coreVar._selectedObjectId != 0)
- modobj(_coreVar._selectedObjectId + 400);
+ displayItemInHand(_coreVar._selectedObjectId + 400);
_mouse.showMouse();
}
@@ -2733,8 +2733,8 @@ void MortevielleEngine::drawClock() {
_mouse.hideMouse();
- paint_rect(570, 118, 20, 10);
- paint_rect(578, 114, 6, 18);
+ _screenSurface.drawRectangle(570, 118, 20, 10);
+ _screenSurface.drawRectangle(578, 114, 6, 18);
if ((_currGraphicalDevice == MODE_CGA) || (_currGraphicalDevice == MODE_HERCULES))
co = 0;
else
@@ -2796,9 +2796,13 @@ void MortevielleEngine::hirs() {
// method is deprecated in favour of clearing the screen
debugC(1, kMortevielleCore, "TODO: hirs is deprecated in favour of ScreenSurface::clearScreen");
- if (_currGraphicalDevice == MODE_CGA)
+ if (_currGraphicalDevice == MODE_TANDY) {
+ _screenSurface.fillRect(0, Common::Rect(0, 0, 639, 200));
_res = 1;
- else
+ } else if (_currGraphicalDevice == MODE_CGA) {
+ palette(1);
+ _res = 1;
+ } else
_res = 2;
_screenSurface.clearScreen();
@@ -3025,4 +3029,128 @@ void MortevielleEngine::ecr3(Common::String text) {
_screenSurface.drawString(text, 5);
}
+/**
+ * Display item in hand
+ * @remarks Originally called 'modobj'
+ */
+void MortevielleEngine::displayItemInHand(int objId) {
+ Common::String strp = Common::String(' ');
+
+ if (objId != 500)
+ strp = getString(objId - 501 + kInventoryStringIndex);
+
+ _menu.setText(_menu._inventoryMenu[8], strp);
+ _menu.disableMenuItem(_menu._inventoryMenu[8]);
+}
+
+/**
+ * Display empty hand
+ * @remarks Originally called 'maivid'
+ */
+void MortevielleEngine::displayEmptyHand() {
+ _coreVar._selectedObjectId = 0;
+ displayItemInHand(500);
+}
+
+/**
+ * Set a random presence: Leo or Max
+ * @remarks Originally called 'chlm'
+ */
+int MortevielleEngine::checkLeoMaxRandomPresence() {
+ int retval = getRandomNumber(1, 2);
+ if (retval == 2)
+ retval = 128;
+
+ return retval;
+}
+
+/**
+ * Reset room variables
+ * @remarks Originally called 'debloc'
+ */
+void MortevielleEngine::resetRoomVariables(int roomId) {
+ _num = 0;
+ _x = 0;
+ _y = 0;
+ if ((roomId != ROOM26) && (roomId != LANDING))
+ resetPresenceInRooms(roomId);
+ _savedBitIndex = _currBitIndex;
+}
+
+/**
+ * Compute presence stats
+ * @remarks Originally called 'ecfren'
+ */
+int MortevielleEngine::getPresenceStats(int &rand, int cf, int roomId) {
+ if (roomId == OWN_ROOM)
+ displayAloneText();
+ int retVal = -500;
+ rand = 0;
+ if ( ((roomId == GREEN_ROOM) && (!_roomPresenceLuc) && (!_roomPresenceIda))
+ || ((roomId == DARKBLUE_ROOM) && (!_roomPresenceGuy) && (!_roomPresenceEva)) )
+ retVal = getPresenceStatsGreenRoom();
+ if ((roomId == PURPLE_ROOM) && (!_purpleRoomPresenceLeo) && (!_room9PresenceLeo))
+ retVal = getPresenceStatsPurpleRoom();
+ if ( ((roomId == TOILETS) && (!_toiletsPresenceBobMax))
+ || ((roomId == BATHROOM) && (!_bathRoomPresenceBobMax)) )
+ retVal = getPresenceStatsToilets();
+ if ((roomId == BLUE_ROOM) && (!_roomPresenceMax))
+ retVal = getPresenceStatsBlueRoom();
+ if ( ((roomId == RED_ROOM) && (!_roomPresenceBob))
+ || ((roomId == GREEN_ROOM2) && (!_roomPresencePat)))
+ retVal = getPresenceStatsRedRoom();
+ if ((roomId == ROOM9) && (!_room9PresenceLeo) && (!_purpleRoomPresenceLeo))
+ retVal = 10;
+ if ( ((roomId == PURPLE_ROOM) && (_room9PresenceLeo))
+ || ((roomId == ROOM9) && (_purpleRoomPresenceLeo)))
+ retVal = -400;
+ if (retVal != -500) {
+ retVal += cf;
+ rand = getRandomNumber(1, 100);
+ }
+
+ return retVal;
+}
+
+/**
+ * Set presence flags
+ * @remarks Originally called 'becfren'
+ */
+void MortevielleEngine::setPresenceFlags(int roomId) {
+ if ((roomId == GREEN_ROOM) || (roomId == DARKBLUE_ROOM)) {
+ int rand = g_vm->getRandomNumber(1, 2);
+ if (roomId == GREEN_ROOM) {
+ if (rand == 1)
+ g_vm->_roomPresenceLuc = true;
+ else
+ g_vm->_roomPresenceIda = true;
+ } else { // roomId == DARKBLUE_ROOM
+ if (rand == 1)
+ g_vm->_roomPresenceGuy = true;
+ else
+ g_vm->_roomPresenceEva = true;
+ }
+ } else if (roomId == PURPLE_ROOM)
+ g_vm->_purpleRoomPresenceLeo = true;
+ else if (roomId == TOILETS)
+ g_vm->_toiletsPresenceBobMax = true;
+ else if (roomId == BLUE_ROOM)
+ g_vm->_roomPresenceMax = true;
+ else if (roomId == RED_ROOM)
+ g_vm->_roomPresenceBob = true;
+ else if (roomId == BATHROOM)
+ g_vm->_bathRoomPresenceBobMax = true;
+ else if (roomId == GREEN_ROOM2)
+ g_vm->_roomPresencePat = true;
+ else if (roomId == ROOM9)
+ g_vm->_room9PresenceLeo = true;
+}
+
+void MortevielleEngine::init_nbrepm() {
+ static const byte ipm[9] = { 0, 4, 5, 6, 7, 5, 6, 5, 8 };
+
+ for (int idx = 0; idx < 9; ++idx)
+ g_vm->_nbrepm[idx] = ipm[idx];
+}
+
} // End of namespace Mortevielle
diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h
index 924e92b3d4..bb594d2415 100644
--- a/engines/mortevielle/mortevielle.h
+++ b/engines/mortevielle/mortevielle.h
@@ -166,6 +166,7 @@ private:
void showTitleScreen();
int readclock();
void palette(int v1);
+ int checkLeoMaxRandomPresence();
void adzon();
void text1(int x, int y, int nb, int m);
@@ -413,6 +414,11 @@ public:
void hirs();
void initCaveOrCellar();
void displayControlMenu();
+ void displayItemInHand(int objId);
+ void displayEmptyHand();
+ void resetRoomVariables(int roomId);
+ int getPresenceStats(int &rand, int cf, int roomId);
+ void setPresenceFlags(int roomId);
void pictout(int seg, int dep, int x, int y);
@@ -420,6 +426,7 @@ public:
void repon(int f, int m);
void ecr2(Common::String text);
void ecr3(Common::String text);
+ void init_nbrepm();
};
diff --git a/engines/mortevielle/saveload.cpp b/engines/mortevielle/saveload.cpp
index d71e2fd8b7..daa59b231b 100644
--- a/engines/mortevielle/saveload.cpp
+++ b/engines/mortevielle/saveload.cpp
@@ -119,7 +119,7 @@ void SavegameManager::loadSavegame(int n) {
*/
Common::Error SavegameManager::loadGame(int n) {
g_vm->_mouse.hideMouse();
- maivid();
+ g_vm->displayEmptyHand();
loadSavegame(n);
/* Initialization */
diff --git a/engines/mortevielle/var_mor.h b/engines/mortevielle/var_mor.h
index ddde25a464..3086f9eb20 100644
--- a/engines/mortevielle/var_mor.h
+++ b/engines/mortevielle/var_mor.h
@@ -101,6 +101,8 @@ enum places {
DOOR = 25, ROOM26 = 26, ROOM27 = 27
};
+enum GraphicModes { MODE_AMSTRAD1512 = 0, MODE_CGA = 1, MODE_EGA = 2, MODE_HERCULES = 3, MODE_TANDY = 4 };
+
struct Rect {
int _x1, _x2, _y1, _y2;
bool _enabled;
@@ -109,12 +111,6 @@ struct Rect {
typedef int tablint[256];
typedef int tfxx[108];
-/*---------------------------------------------------------------------------*/
-/*------------------------------ ENUMS ------------------------------*/
-/*---------------------------------------------------------------------------*/
-
-enum GraphicModes { MODE_AMSTRAD1512 = 0, MODE_CGA = 1, MODE_EGA = 2, MODE_HERCULES = 3, MODE_TANDY = 4 };
-
} // End of namespace Mortevielle
#endif