aboutsummaryrefslogtreecommitdiff
path: root/engines/lab
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lab')
-rw-r--r--engines/lab/detection.cpp6
-rw-r--r--engines/lab/engine.cpp373
-rw-r--r--engines/lab/graphics.cpp9
-rw-r--r--engines/lab/interface.cpp14
-rw-r--r--engines/lab/interface.h2
-rw-r--r--engines/lab/lab.cpp14
-rw-r--r--engines/lab/lab.h11
-rw-r--r--engines/lab/labfun.h8
-rw-r--r--engines/lab/map.cpp12
-rw-r--r--engines/lab/mouse.cpp12
-rw-r--r--engines/lab/parsetypes.h2
-rw-r--r--engines/lab/processroom.cpp18
-rw-r--r--engines/lab/savegame.cpp14
-rw-r--r--engines/lab/special.cpp12
14 files changed, 244 insertions, 263 deletions
diff --git a/engines/lab/detection.cpp b/engines/lab/detection.cpp
index ddb6aa32a8..3b01d77568 100644
--- a/engines/lab/detection.cpp
+++ b/engines/lab/detection.cpp
@@ -194,7 +194,7 @@ SaveStateList LabMetaEngine::listSaves(const char *target) const {
Common::InSaveFile *in = saveFileMan->openForLoading(file->c_str());
if (in) {
if (Lab::readSaveGameHeader(in, header))
- saveList.push_back(SaveStateDescriptor(slotNum, header.desc.getDescription()));
+ saveList.push_back(SaveStateDescriptor(slotNum, header._descr.getDescription()));
delete in;
}
}
@@ -242,13 +242,13 @@ SaveStateDescriptor LabMetaEngine::querySaveMetaInfos(const char *target, int sl
delete in;
if (successfulRead) {
- SaveStateDescriptor desc(slot, header.desc.getDescription());
+ SaveStateDescriptor desc(slot, header._descr.getDescription());
// Do not allow save slot 0 (used for auto-saving) to be deleted or
// overwritten.
//desc.setDeletableFlag(slot != 0);
//desc.setWriteProtectedFlag(slot == 0);
- return header.desc;
+ return header._descr;
}
}
diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp
index ba9e4921c9..fe3c4284df 100644
--- a/engines/lab/engine.cpp
+++ b/engines/lab/engine.cpp
@@ -41,8 +41,6 @@
namespace Lab {
-const char *CurFileName = " ";
-
bool LongWinInFront = false;
TextFont *MsgFont;
@@ -56,10 +54,7 @@ extern InventoryData *Inventory;
extern uint16 NumInv, ManyRooms, HighestCondition, Direction;
CloseDataPtr CPtr;
-bool Alternate = false, ispal = false, noupdatediff = false, MainDisplay = true, QuitLab = false;
-
-extern const char *NewFileName; /* When ProcessRoom.c decides to change the filename
- of the current picture. */
+bool ispal = false, noupdatediff = false, MainDisplay = true, QuitLab = false;
#define BUFFERSIZE 850000L
@@ -100,11 +95,6 @@ extern const char *NewFileName; /* When ProcessRoom.c decides to change the fil
#define TERMINALMONITOR 81
#define LEVERSMONITOR 82
-
-static Image *MoveImages[20], *InvImages[10];
-static Gadget *MoveGadgetList, *InvGadgetList;
-
-
static char initcolors[] = { '\x00', '\x00', '\x00', '\x30',
'\x30', '\x30', '\x10', '\x10',
'\x10', '\x14', '\x14', '\x14',
@@ -112,9 +102,6 @@ static char initcolors[] = { '\x00', '\x00', '\x00', '\x30',
'\x24', '\x24', '\x2c', '\x2c',
'\x2c', '\x08', '\x08', '\x08'};
-
-
-
/******************************************************************************/
/* Draws the control panel display. */
/******************************************************************************/
@@ -133,10 +120,10 @@ void LabEngine::drawPanel() {
setAPen(0);
drawHLine(0, VGAScaleY(170), VGAScaleX(319)); /* First black line to separate buttons */
- if (!Alternate) {
+ if (!_alternate) {
setAPen(4);
drawHLine(0, VGAScaleY(170) + 1, VGAScaleX(319)); /* The horizontal lines under the black one */
- drawGadgetList(MoveGadgetList);
+ drawGadgetList(_moveGadgetList);
} else {
if (getPlatform() != Common::kPlatformWindows) {
drawVLine(VGAScaleX(124), VGAScaleY(170) + 1, VGAScaleY(199)); /* Vertical Black lines */
@@ -162,7 +149,7 @@ void LabEngine::drawPanel() {
drawVLine(VGAScaleX(232), VGAScaleY(170) + 2, VGAScaleY(198));
}
- drawGadgetList(InvGadgetList);
+ drawGadgetList(_invGadgetList);
}
_event->mouseShow();
@@ -171,38 +158,32 @@ void LabEngine::drawPanel() {
/******************************************************************************/
/* Draws the message for the room. */
/******************************************************************************/
-void LabEngine::drawRoomMessage(uint16 CurInv, CloseDataPtr cptr) {
+void LabEngine::drawRoomMessage(uint16 curInv, CloseDataPtr closePtr) {
if (_lastTooLong) {
_lastTooLong = false;
return;
}
- if (Alternate) {
- if ((CurInv <= NumInv) && _conditions->in(CurInv) && Inventory[CurInv].BInvName) {
- if ((CurInv == LAMPNUM) && _conditions->in(LAMPON)) /* LAB: Labyrith specific */
+ if (_alternate) {
+ if ((curInv <= NumInv) && _conditions->in(curInv) && Inventory[curInv].BInvName) {
+ if ((curInv == LAMPNUM) && _conditions->in(LAMPON)) /* LAB: Labyrinth specific */
drawStaticMessage(kTextLampOn);
- else if (Inventory[CurInv].Many > 1) {
- Common::String roomMessage = Common::String(Inventory[CurInv].name) + " (" + Common::String::format("%d", Inventory[CurInv].Many) + ")";
+ else if (Inventory[curInv].Many > 1) {
+ Common::String roomMessage = Common::String(Inventory[curInv].name) + " (" + Common::String::format("%d", Inventory[curInv].Many) + ")";
drawMessage(roomMessage.c_str());
} else
- drawMessage(Inventory[CurInv].name);
+ drawMessage(Inventory[curInv].name);
}
} else
- drawDirection(cptr);
+ drawDirection(closePtr);
_lastTooLong = _lastMessageLong;
}
-
/******************************************************************************/
/* Sets up the Labyrinth screens, and opens up the initial windows. */
/******************************************************************************/
bool LabEngine::setUpScreens() {
- byte *buffer;
- byte *MovePanelBuffer, *InvPanelBuffer;
- Gadget *curgad;
- uint16 y;
-
if (!createScreen(_isHiRes))
return false;
@@ -215,60 +196,61 @@ bool LabEngine::setUpScreens() {
if (file.err() || file.size() == 0)
return false;
- if (!(MovePanelBuffer = (byte *)calloc(file.size(), 1)))
+ byte *movePanelBuffer;
+ if (!(movePanelBuffer = (byte *)calloc(file.size(), 1)))
return false;
- file.read(MovePanelBuffer, file.size());
+ file.read(movePanelBuffer, file.size());
file.close();
- buffer = MovePanelBuffer;
+ byte *buffer = movePanelBuffer;
for (uint16 i = 0; i < 20; i++)
- MoveImages[i] = new Image(&buffer);
+ _moveImages[i] = new Image(&buffer);
/* Creates the gadgets for the movement control panel */
- y = VGAScaleY(173) - SVGACord(2);
+ uint16 y = VGAScaleY(173) - SVGACord(2);
if (getPlatform() == Common::kPlatformWindows) {
- MoveGadgetList = createButton(1, y, 0, 't', MoveImages[0], MoveImages[1]);
- curgad = MoveGadgetList;
- curgad->NextGadget = createButton(33, y, 1, 'm', MoveImages[2], MoveImages[3]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(65, y, 2, 'o', MoveImages[4], MoveImages[5]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(97, y, 3, 'c', MoveImages[6], MoveImages[7]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(129, y, 4, 'l', MoveImages[8], MoveImages[9]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(161, y, 5, 'i', MoveImages[12], MoveImages[13]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(193, y, 6, VKEY_LTARROW, MoveImages[14], MoveImages[15]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(225, y, 7, VKEY_UPARROW, MoveImages[16], MoveImages[17]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(257, y, 8, VKEY_RTARROW, MoveImages[18], MoveImages[19]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(289, y, 9, 'p', MoveImages[10], MoveImages[11]);
+ _moveGadgetList = createButton(1, y, 0, 't', _moveImages[0], _moveImages[1]);
+ Gadget *curGadget = _moveGadgetList;
+ curGadget->NextGadget = createButton(33, y, 1, 'm', _moveImages[2], _moveImages[3]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(65, y, 2, 'o', _moveImages[4], _moveImages[5]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(97, y, 3, 'c', _moveImages[6], _moveImages[7]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(129, y, 4, 'l', _moveImages[8], _moveImages[9]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(161, y, 5, 'i', _moveImages[12], _moveImages[13]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(193, y, 6, VKEY_LTARROW, _moveImages[14], _moveImages[15]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(225, y, 7, VKEY_UPARROW, _moveImages[16], _moveImages[17]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(257, y, 8, VKEY_RTARROW, _moveImages[18], _moveImages[19]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(289, y, 9, 'p', _moveImages[10], _moveImages[11]);
} else {
- MoveGadgetList = createButton(1, y, 0, 0, MoveImages[0], MoveImages[1]);
- curgad = MoveGadgetList;
- curgad->NextGadget = createButton(33, y, 1, 0, MoveImages[2], MoveImages[3]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(65, y, 2, 0, MoveImages[4], MoveImages[5]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(97, y, 3, 0, MoveImages[6], MoveImages[7]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(129, y, 4, 0, MoveImages[8], MoveImages[9]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(161, y, 5, 0, MoveImages[12], MoveImages[13]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(193, y, 6, 0, MoveImages[14], MoveImages[15]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(225, y, 7, 0, MoveImages[16], MoveImages[17]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(257, y, 8, 0, MoveImages[18], MoveImages[19]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(289, y, 9, 0, MoveImages[10], MoveImages[11]);
+ _moveGadgetList = createButton(1, y, 0, 0, _moveImages[0], _moveImages[1]);
+ Gadget *curGadget = _moveGadgetList;
+ curGadget->NextGadget = createButton(33, y, 1, 0, _moveImages[2], _moveImages[3]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(65, y, 2, 0, _moveImages[4], _moveImages[5]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(97, y, 3, 0, _moveImages[6], _moveImages[7]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(129, y, 4, 0, _moveImages[8], _moveImages[9]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(161, y, 5, 0, _moveImages[12], _moveImages[13]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(193, y, 6, 0, _moveImages[14], _moveImages[15]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(225, y, 7, 0, _moveImages[16], _moveImages[17]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(257, y, 8, 0, _moveImages[18], _moveImages[19]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(289, y, 9, 0, _moveImages[10], _moveImages[11]);
}
file.open(translateFileName("P:Inv"));
@@ -278,95 +260,89 @@ bool LabEngine::setUpScreens() {
if (file.err() || file.size() == 0)
return false;
- if (!(InvPanelBuffer = (byte *)calloc(file.size(), 1)))
+ byte *invPanelBuffer;
+ if (!(invPanelBuffer = (byte *)calloc(file.size(), 1)))
return false;
- file.read(InvPanelBuffer, file.size());
+ file.read(invPanelBuffer, file.size());
file.close();
- buffer = InvPanelBuffer;
+ buffer = invPanelBuffer;
if (getPlatform() == Common::kPlatformWindows) {
for (uint16 imgIdx = 0; imgIdx < 10; imgIdx++)
- InvImages[imgIdx] = new Image(&buffer);
-
- InvGadgetList = createButton(24, y, 0, 'm', InvImages[0], InvImages[1]);
- curgad = InvGadgetList;
- curgad->NextGadget = createButton(56, y, 1, 'g', InvImages[2], InvImages[3]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(94, y, 2, 'u', InvImages[4], InvImages[5]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(126, y, 3, 'l', MoveImages[8], MoveImages[9]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(164, y, 4, VKEY_LTARROW, MoveImages[14], MoveImages[15]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(196, y, 5, VKEY_RTARROW, MoveImages[18], MoveImages[19]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(234, y, 6, 'b', InvImages[6], InvImages[7]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(266, y, 7, 'f', InvImages[8], InvImages[9]);
- curgad = curgad->NextGadget;
+ _invImages[imgIdx] = new Image(&buffer);
+
+ _invGadgetList = createButton(24, y, 0, 'm', _invImages[0], _invImages[1]);
+ Gadget *curGadget = _invGadgetList;
+ curGadget->NextGadget = createButton(56, y, 1, 'g', _invImages[2], _invImages[3]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(94, y, 2, 'u', _invImages[4], _invImages[5]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(126, y, 3, 'l', _moveImages[8], _moveImages[9]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(164, y, 4, VKEY_LTARROW, _moveImages[14], _moveImages[15]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(196, y, 5, VKEY_RTARROW, _moveImages[18], _moveImages[19]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(234, y, 6, 'b', _invImages[6], _invImages[7]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(266, y, 7, 'f', _invImages[8], _invImages[9]);
+ curGadget = curGadget->NextGadget;
} else {
for (uint16 imgIdx = 0; imgIdx < 6; imgIdx++)
- InvImages[imgIdx] = new Image(&buffer);
-
- InvGadgetList = createButton(58, y, 0, 0, InvImages[0], InvImages[1]);
- curgad = InvGadgetList;
- curgad->NextGadget = createButton(90, y, 1, 0, InvImages[2], InvImages[3]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(128, y, 2, 0, InvImages[4], InvImages[5]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(160, y, 3, 0, MoveImages[8], MoveImages[9]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(198, y, 4, 0, MoveImages[14], MoveImages[15]);
- curgad = curgad->NextGadget;
- curgad->NextGadget = createButton(230, y, 5, 0, MoveImages[18], MoveImages[19]);
- curgad = curgad->NextGadget;
+ _invImages[imgIdx] = new Image(&buffer);
+
+ _invGadgetList = createButton(58, y, 0, 0, _invImages[0], _invImages[1]);
+ Gadget *curGadget = _invGadgetList;
+ curGadget->NextGadget = createButton(90, y, 1, 0, _invImages[2], _invImages[3]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(128, y, 2, 0, _invImages[4], _invImages[5]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(160, y, 3, 0, _moveImages[8], _moveImages[9]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(198, y, 4, 0, _moveImages[14], _moveImages[15]);
+ curGadget = curGadget->NextGadget;
+ curGadget->NextGadget = createButton(230, y, 5, 0, _moveImages[18], _moveImages[19]);
+ curGadget = curGadget->NextGadget;
}
return true;
}
-
-
/******************************************************************************/
-/* Permanently flips the imagry of a gadget. */
+/* Permanently flips the imagery of a gadget. */
/******************************************************************************/
-void LabEngine::perFlipGadget(uint16 GadID) {
- Image *Temp;
- Gadget *TopGad;
-
- TopGad = MoveGadgetList;
+void LabEngine::perFlipGadget(uint16 gadgetId) {
+ Gadget *topGadget = _moveGadgetList;
- while (TopGad) {
- if (TopGad->GadgetID == GadID) {
- Temp = TopGad->Im;
- TopGad->Im = TopGad->ImAlt;
- TopGad->ImAlt = Temp;
+ while (topGadget) {
+ if (topGadget->GadgetID == gadgetId) {
+ Image *tmpImage = topGadget->_image;
+ topGadget->_image = topGadget->_altImage;
+ topGadget->_altImage = tmpImage;
- if (!Alternate) {
+ if (!_alternate) {
_event->mouseHide();
- TopGad->Im->drawImage(TopGad->x, TopGad->y);
+ topGadget->_image->drawImage(topGadget->x, topGadget->y);
_event->mouseShow();
}
return;
} else
- TopGad = TopGad->NextGadget;
+ topGadget = topGadget->NextGadget;
}
}
-
-
/******************************************************************************/
/* Eats all the available messages. */
/******************************************************************************/
void LabEngine::eatMessages() {
- IntuiMessage *Msg;
+ IntuiMessage *msg;
do {
- Msg = getMsg();
- } while (Msg);
+ msg = getMsg();
+ } while (msg);
return;
}
@@ -374,8 +350,8 @@ void LabEngine::eatMessages() {
/******************************************************************************/
/* Checks whether the close up is one of the special case closeups. */
/******************************************************************************/
-bool LabEngine::doCloseUp(CloseDataPtr cptr) {
- if (cptr == NULL)
+bool LabEngine::doCloseUp(CloseDataPtr closePtr) {
+ if (closePtr == NULL)
return false;
int monltmargin, monrtmargin, montopmargin, lutertmargin;
@@ -392,46 +368,43 @@ bool LabEngine::doCloseUp(CloseDataPtr cptr) {
lutertmargin = 128;
}
- switch (cptr->CloseUpType) {
+ switch (closePtr->CloseUpType) {
case MUSEUMMONITOR:
case LIBRARYMONITOR:
case WINDOWMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, false, monltmargin, montopmargin, monrtmargin, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, false, monltmargin, montopmargin, monrtmargin, 165);
break;
case GRAMAPHONEMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, false, monltmargin, montopmargin, 171, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, false, monltmargin, montopmargin, 171, 165);
break;
case UNICYCLEMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, false, 100, montopmargin, monrtmargin, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, false, 100, montopmargin, monrtmargin, 165);
break;
case STATUEMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, false, 117, montopmargin, monrtmargin, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, false, 117, montopmargin, monrtmargin, 165);
break;
case TALISMANMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, false, monltmargin, montopmargin, 184, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, false, monltmargin, montopmargin, 184, 165);
break;
case LUTEMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, false, monltmargin, montopmargin, lutertmargin, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, false, monltmargin, montopmargin, lutertmargin, 165);
break;
case CLOCKMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, false, monltmargin, montopmargin, 206, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, false, monltmargin, montopmargin, 206, 165);
break;
case TERMINALMONITOR:
- doMonitor(cptr->GraphicName, cptr->Message, true, monltmargin, montopmargin, monrtmargin, 165);
+ doMonitor(closePtr->GraphicName, closePtr->Message, true, monltmargin, montopmargin, monrtmargin, 165);
break;
default:
return false;
}
- CurFileName = " ";
+ _curFileName = " ";
drawPanel();
return true;
}
-
-
-
/******************************************************************************/
/* Gets the current inventory name. */
/******************************************************************************/
@@ -442,21 +415,19 @@ static const char *getInvName(uint16 CurInv) {
if ((CurInv == LAMPNUM) && g_lab->_conditions->in(LAMPON))
return "P:Mines/120";
- else if ((CurInv == BELTNUM) && g_lab->_conditions->in(BELTGLOW))
+ if ((CurInv == BELTNUM) && g_lab->_conditions->in(BELTGLOW))
return "P:Future/BeltGlow";
- else if (CurInv == WESTPAPERNUM) {
- CurFileName = Inventory[CurInv].BInvName;
+ if (CurInv == WESTPAPERNUM) {
+ g_lab->_curFileName = Inventory[CurInv].BInvName;
g_lab->_anim->_noPalChange = true;
- readPict(CurFileName, false);
+ readPict(g_lab->_curFileName, false);
g_lab->_anim->_noPalChange = false;
doWestPaper();
- }
-
- else if (CurInv == NOTESNUM) {
- CurFileName = Inventory[CurInv].BInvName;
+ } else if (CurInv == NOTESNUM) {
+ g_lab->_curFileName = Inventory[CurInv].BInvName;
g_lab->_anim->_noPalChange = true;
- readPict(CurFileName, false);
+ readPict(g_lab->_curFileName, false);
g_lab->_anim->_noPalChange = false;
doNotes();
}
@@ -464,16 +435,14 @@ static const char *getInvName(uint16 CurInv) {
return Inventory[CurInv].BInvName;
}
-static bool interfaceisoff = false;
-
/******************************************************************************/
/* Turns the interface off. */
/******************************************************************************/
void LabEngine::interfaceOff() {
- if (!interfaceisoff) {
+ if (!_interfaceOff) {
_event->attachGadgetList(NULL);
_event->mouseHide();
- interfaceisoff = true;
+ _interfaceOff = true;
}
}
@@ -481,22 +450,19 @@ void LabEngine::interfaceOff() {
/* Turns the interface on. */
/******************************************************************************/
void LabEngine::interfaceOn() {
- if (interfaceisoff) {
- interfaceisoff = false;
-
+ if (_interfaceOff) {
+ _interfaceOff = false;
_event->mouseShow();
}
if (LongWinInFront)
_event->attachGadgetList(NULL);
- else if (Alternate)
- _event->attachGadgetList(InvGadgetList);
+ else if (_alternate)
+ _event->attachGadgetList(_invGadgetList);
else
- _event->attachGadgetList(MoveGadgetList);
+ _event->attachGadgetList(_moveGadgetList);
}
-static const char *Test;
-
/******************************************************************************/
/* If the user hits the "Use" gadget; things that can get used on themselves. */
/******************************************************************************/
@@ -505,7 +471,7 @@ bool LabEngine::doUse(uint16 CurInv) {
drawStaticMessage(kTextUseMap);
interfaceOff();
_anim->stopDiff();
- CurFileName = " ";
+ _curFileName = " ";
CPtr = NULL;
doMap(_roomNum);
setPalette(initcolors, 8);
@@ -515,7 +481,7 @@ bool LabEngine::doUse(uint16 CurInv) {
drawStaticMessage(kTextUseJournal);
interfaceOff();
_anim->stopDiff();
- CurFileName = " ";
+ _curFileName = " ";
CPtr = NULL;
doJournal();
drawPanel();
@@ -537,13 +503,13 @@ bool LabEngine::doUse(uint16 CurInv) {
_anim->_waitForEffect = false;
_anim->_doBlack = false;
- Test = getInvName(CurInv);
+ _nextFileName = getInvName(CurInv);
} else if (CurInv == BELTNUM) { /* LAB: Labyrinth specific */
if (!_conditions->in(BELTGLOW))
_conditions->inclElement(BELTGLOW);
_anim->_doBlack = false;
- Test = getInvName(CurInv);
+ _nextFileName = getInvName(CurInv);
} else if (CurInv == WHISKEYNUM) { /* LAB: Labyrinth specific */
_conditions->inclElement(USEDHELMET);
drawStaticMessage(kTextUseWhiskey);
@@ -559,9 +525,6 @@ bool LabEngine::doUse(uint16 CurInv) {
return true;
}
-
-
-
/******************************************************************************/
/* Decrements the current inventory number. */
/******************************************************************************/
@@ -575,7 +538,7 @@ void LabEngine::decIncInv(uint16 *CurInv, bool dec) {
while (*CurInv && (*CurInv <= NumInv)) {
if (_conditions->in(*CurInv) && Inventory[*CurInv].BInvName) {
- Test = getInvName(*CurInv);
+ _nextFileName = getInvName(*CurInv);
break;
}
@@ -593,7 +556,7 @@ void LabEngine::decIncInv(uint16 *CurInv, bool dec) {
while (*CurInv && (*CurInv <= NumInv)) {
if (_conditions->in(*CurInv) && Inventory[*CurInv].BInvName) {
- Test = getInvName(*CurInv);
+ _nextFileName = getInvName(*CurInv);
break;
}
@@ -660,32 +623,30 @@ void LabEngine::mainGameLoop() {
/* Sets the current picture properly on the screen */
if (MainDisplay)
- Test = getPictName(&CPtr);
+ _nextFileName = getPictName(&CPtr);
if (noupdatediff) {
_roomsFound->inclElement(_roomNum); /* Potentially entered another room */
- forceDraw = (strcmp(Test, CurFileName) != 0) || forceDraw;
+ forceDraw |= (strcmp(_nextFileName, _curFileName) != 0);
noupdatediff = false;
- CurFileName = Test;
- }
-
- else if (strcmp(Test, CurFileName) != 0) {
+ _curFileName = _nextFileName;
+ } else if (strcmp(_nextFileName, _curFileName) != 0) {
interfaceOff();
_roomsFound->inclElement(_roomNum); /* Potentially entered another room */
- CurFileName = Test;
+ _curFileName = _nextFileName;
if (CPtr) {
if ((CPtr->CloseUpType == SPECIALLOCK) && MainDisplay) /* LAB: Labyrinth specific code */
- showCombination(CurFileName);
+ showCombination(_curFileName);
else if (((CPtr->CloseUpType == SPECIALBRICK) ||
(CPtr->CloseUpType == SPECIALBRICKNOMOUSE)) &&
MainDisplay) /* LAB: Labyrinth specific code */
- showTile(CurFileName, (bool)(CPtr->CloseUpType == SPECIALBRICKNOMOUSE));
+ showTile(_curFileName, (bool)(CPtr->CloseUpType == SPECIALBRICKNOMOUSE));
else
- readPict(CurFileName, false);
+ readPict(_curFileName, false);
} else
- readPict(CurFileName, false);
+ readPict(_curFileName, false);
drawRoomMessage(curInv, CPtr);
forceDraw = false;
@@ -806,9 +767,9 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
_isCrumbWaiting = false;
getTime(&_crumbSecs, &_crumbMicros);
- if (Alternate) {
+ if (_alternate) {
eatMessages();
- Alternate = false;
+ _alternate = false;
_anim->_doBlack = true;
DoNotDrawMessage = false;
@@ -883,7 +844,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
drawRoomMessage(curInv, CPtr);
screenUpdate();
}
- } else if ((msgClass == GADGETUP) && !Alternate) {
+ } else if ((msgClass == GADGETUP) && !_alternate) {
if (gadgetId <= 5) {
if ((actionMode == 4) && (gadgetId == 4) && (CPtr != NULL)) {
doMainView(&CPtr);
@@ -896,7 +857,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
} else if (gadgetId == 5) {
eatMessages();
- Alternate = true;
+ _alternate = true;
_anim->_doBlack = true;
DoNotDrawMessage = false;
interfaceOn(); /* Sets the correct gadget list */
@@ -905,7 +866,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
if (LastInv && _conditions->in(LastInv)) {
curInv = LastInv;
- Test = getInvName(curInv);
+ _nextFileName = getInvName(curInv);
} else
decIncInv(&curInv, false);
@@ -951,7 +912,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
else
drawStaticMessage(kTextTurnRight);
- CurFileName = " ";
+ _curFileName = " ";
OldDirection = Direction;
@@ -977,7 +938,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
if (OldRoomNum != _roomNum) {
drawStaticMessage(kTextGoForward);
_roomsFound->inclElement(_roomNum); /* Potentially entered a new room */
- CurFileName = " ";
+ _curFileName = " ";
forceDraw = true;
} else {
_anim->_doBlack = true;
@@ -1030,12 +991,12 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
screenUpdate();
}
}
- } else if ((msgClass == GADGETUP) && Alternate) {
+ } else if ((msgClass == GADGETUP) && _alternate) {
_anim->_doBlack = true;
if (gadgetId == 0) {
eatMessages();
- Alternate = false;
+ _alternate = false;
_anim->_doBlack = true;
DoNotDrawMessage = false;
@@ -1052,7 +1013,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
if (gadgetId == 0) {
interfaceOff();
_anim->stopDiff();
- CurFileName = " ";
+ _curFileName = " ";
doit = !saveRestoreGame();
CPtr = NULL;
@@ -1062,7 +1023,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
curInv = MAPNUM;
LastInv = MAPNUM;
- Test = getInvName(curInv);
+ _nextFileName = getInvName(curInv);
drawPanel();
@@ -1101,7 +1062,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
if ((curInv <= NumInv) && _conditions->in(curInv) &&
Inventory[curInv].BInvName)
- Test = getInvName(curInv);
+ _nextFileName = getInvName(curInv);
screenUpdate();
} else if (gadgetId == 3) { /* Left gadget */
@@ -1134,7 +1095,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
getTime(&_crumbSecs, &_crumbMicros);
eatMessages();
- Alternate = false;
+ _alternate = false;
_anim->_doBlack = true;
DoNotDrawMessage = false;
@@ -1176,20 +1137,20 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
if (actionMode == 0) { /* Take something. */
if (doActionRule(Common::Point(curPos.x, curPos.y), actionMode, _roomNum, &CPtr))
- CurFileName = NewFileName;
+ _curFileName = _newFileName;
else if (takeItem(curPos.x, curPos.y, &CPtr))
drawStaticMessage(kTextTakeItem);
else if (doActionRule(curPos, TAKEDEF - 1, _roomNum, &CPtr))
- CurFileName = NewFileName;
+ _curFileName = _newFileName;
else if (doActionRule(curPos, TAKE - 1, 0, &CPtr))
- CurFileName = NewFileName;
+ _curFileName = _newFileName;
else if (curPos.y < (VGAScaleY(149) + SVGACord(2)))
drawStaticMessage(kTextNothing);
} else if ((actionMode == 1) /* Manipulate an object */ ||
(actionMode == 2) /* Open up a "door" */ ||
(actionMode == 3)) { /* Close a "door" */
if (doActionRule(curPos, actionMode, _roomNum, &CPtr))
- CurFileName = NewFileName;
+ _curFileName = _newFileName;
else if (!doActionRule(curPos, actionMode, 0, &CPtr)) {
if (curPos.y < (VGAScaleY(149) + SVGACord(2)))
drawStaticMessage(kTextNothing);
@@ -1212,7 +1173,7 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
} else if ((actionMode == 5) &&
_conditions->in(curInv)) { /* Use an item on something else */
if (doOperateRule(curPos.x, curPos.y, curInv, &CPtr)) {
- CurFileName = NewFileName;
+ _curFileName = _newFileName;
if (!_conditions->in(curInv))
decIncInv(&curInv, false);
@@ -1253,13 +1214,13 @@ bool LabEngine::from_crumbs(uint32 tmpClass, uint16 code, uint16 Qualifier, Comm
_event->setMousePos(Common::Point(scaleX((HCPtr->x1 + HCPtr->x2) / 2), scaleY((HCPtr->y1 + HCPtr->y2) / 2)));
} else if ((msgClass == MOUSEBUTTONS) && (IEQUALIFIER_RBUTTON & Qualifier)) {
eatMessages();
- Alternate = !Alternate;
+ _alternate = !_alternate;
_anim->_doBlack = true;
DoNotDrawMessage = false;
MainDisplay = true;
interfaceOn(); /* Sets the correct gadget list */
- if (Alternate) {
+ if (_alternate) {
if (LastInv && _conditions->in(LastInv))
curInv = LastInv;
else
diff --git a/engines/lab/graphics.cpp b/engines/lab/graphics.cpp
index 54a4f352c2..975f054fe1 100644
--- a/engines/lab/graphics.cpp
+++ b/engines/lab/graphics.cpp
@@ -44,7 +44,6 @@ BitMap bit1, bit2, *DispBitMap = &bit1, *DrawBitMap = &bit1;
extern bool stopsound;
extern TextFont *MsgFont;
-extern const char *CurFileName;
/*---------------------------------------------------------------------------*/
/*------ From readPict.c. Reads in pictures and animations from disk. ------*/
@@ -613,13 +612,13 @@ void LabEngine::doTransWipe(CloseDataPtr *cPtr, char *filename) {
}
if (filename == NULL)
- CurFileName = getPictName(cPtr);
+ g_lab->_curFileName = getPictName(cPtr);
else if (filename[0] > ' ')
- CurFileName = filename;
+ g_lab->_curFileName = filename;
else
- CurFileName = getPictName(cPtr);
+ g_lab->_curFileName = getPictName(cPtr);
- byte *BitMapMem = readPictToMem(CurFileName, _screenWidth, lastY + 5);
+ byte *BitMapMem = readPictToMem(g_lab->_curFileName, _screenWidth, lastY + 5);
setPalette(_anim->_diffPalette, 256);
if (BitMapMem) {
diff --git a/engines/lab/interface.cpp b/engines/lab/interface.cpp
index dff74be5e0..d9df22a9b1 100644
--- a/engines/lab/interface.cpp
+++ b/engines/lab/interface.cpp
@@ -51,8 +51,8 @@ Gadget *createButton(uint16 x, uint16 y, uint16 id, uint16 key, Image *im, Image
gptr->y = y;
gptr->GadgetID = id;
gptr->KeyEquiv = key;
- gptr->Im = im;
- gptr->ImAlt = imalt;
+ gptr->_image = im;
+ gptr->_altImage = imalt;
gptr->NextGadget = NULL;
return gptr;
@@ -82,7 +82,7 @@ void freeButtonList(Gadget *gptrlist) {
/*****************************************************************************/
void drawGadgetList(Gadget *gadlist) {
while (gadlist) {
- gadlist->Im->drawImage(gadlist->x, gadlist->y);
+ gadlist->_image->drawImage(gadlist->x, gadlist->y);
if (GADGETOFF & gadlist->GadgetFlags)
ghoastGadget(gadlist, 1);
@@ -96,7 +96,7 @@ void drawGadgetList(Gadget *gadlist) {
/* Ghoasts a gadget, and makes it unavailable for using. */
/*****************************************************************************/
void ghoastGadget(Gadget *curgad, uint16 pencolor) {
- g_lab->ghoastRect(pencolor, curgad->x, curgad->y, curgad->x + curgad->Im->Width - 1, curgad->y + curgad->Im->Height - 1);
+ g_lab->ghoastRect(pencolor, curgad->x, curgad->y, curgad->x + curgad->_image->Width - 1, curgad->y + curgad->_image->Height - 1);
curgad->GadgetFlags |= GADGETOFF;
}
@@ -106,7 +106,7 @@ void ghoastGadget(Gadget *curgad, uint16 pencolor) {
/* Unghoasts a gadget, and makes it available again. */
/*****************************************************************************/
void unGhoastGadget(Gadget *curgad) {
- curgad->Im->drawImage(curgad->x, curgad->y);
+ curgad->_image->drawImage(curgad->x, curgad->y);
curgad->GadgetFlags &= !(GADGETOFF);
}
@@ -133,11 +133,11 @@ Gadget *LabEngine::checkNumGadgetHit(Gadget *gadlist, uint16 key) {
(gadlist->KeyEquiv != 0 && makeGadgetKeyEquiv(key) == gadlist->KeyEquiv))
&& !(GADGETOFF & gadlist->GadgetFlags)) {
_event->mouseHide();
- gadlist->ImAlt->drawImage(gadlist->x, gadlist->y);
+ gadlist->_altImage->drawImage(gadlist->x, gadlist->y);
_event->mouseShow();
g_system->delayMillis(80);
_event->mouseHide();
- gadlist->Im->drawImage(gadlist->x, gadlist->y);
+ gadlist->_image->drawImage(gadlist->x, gadlist->y);
_event->mouseShow();
return gadlist;
diff --git a/engines/lab/interface.h b/engines/lab/interface.h
index 524c4ff437..ceeb4a8327 100644
--- a/engines/lab/interface.h
+++ b/engines/lab/interface.h
@@ -46,7 +46,7 @@ struct Gadget {
uint16 x, y, GadgetID;
uint16 KeyEquiv; // if not zero, a key that activates gadget
uint32 GadgetFlags;
- Image *Im, *ImAlt;
+ Image *_image, *_altImage;
Gadget *NextGadget;
};
diff --git a/engines/lab/lab.cpp b/engines/lab/lab.cpp
index 22ab50392d..1c95746857 100644
--- a/engines/lab/lab.cpp
+++ b/engines/lab/lab.cpp
@@ -89,6 +89,20 @@ LabEngine::LabEngine(OSystem *syst, const ADGameDescription *gameDesc)
_lastMessageLong = false;
_lastTooLong = false;
+ _interfaceOff = false;
+ _alternate = false;
+
+ for (int i = 0; i < 20; i++)
+ _moveImages[20] = nullptr;
+
+ for (int i = 0; i < 10; i++)
+ _invImages[10] = nullptr;
+
+ _moveGadgetList = nullptr;
+ _invGadgetList = nullptr;
+ _curFileName = nullptr;
+ _nextFileName = nullptr;
+ _newFileName = nullptr;
//const Common::FSNode gameDataDir(ConfMan.get("path"));
//SearchMan.addSubDirectoryMatching(gameDataDir, "game");
diff --git a/engines/lab/lab.h b/engines/lab/lab.h
index 348ce11eca..a439a3a7eb 100644
--- a/engines/lab/lab.h
+++ b/engines/lab/lab.h
@@ -86,6 +86,12 @@ public:
private:
uint32 _extraGameFeatures;
+ bool _interfaceOff;
+ bool _alternate;
+ Image *_moveImages[20];
+ Image *_invImages[10];
+ Gadget *_moveGadgetList;
+ Gadget *_invGadgetList;
// timing.cpp
void microDelay(uint32 secs, uint32 micros);
@@ -114,6 +120,11 @@ public:
byte *_tempScrollData;
bool _isHiRes;
byte *_displayBuffer;
+ const char *_curFileName;
+ const char *_nextFileName;
+ const char *_newFileName; /* When ProcessRoom.c decides to change the filename
+ of the current picture. */
+
private:
int _lastWaitTOFTicks;
diff --git a/engines/lab/labfun.h b/engines/lab/labfun.h
index 52f6034477..b20667bc2a 100644
--- a/engines/lab/labfun.h
+++ b/engines/lab/labfun.h
@@ -59,10 +59,10 @@ struct TextFont;
struct Gadget;
struct SaveGameHeader {
- byte version;
- SaveStateDescriptor desc;
- uint16 roomNumber;
- uint16 direction;
+ byte _version;
+ SaveStateDescriptor _descr;
+ uint16 _roomNumber;
+ uint16 _direction;
};
/*----------------------------*/
diff --git a/engines/lab/map.cpp b/engines/lab/map.cpp
index d7a3e124ca..43f8fd3267 100644
--- a/engines/lab/map.cpp
+++ b/engines/lab/map.cpp
@@ -171,12 +171,12 @@ static bool loadMapData() {
Down = new Image(buffer);
DownAlt = new Image(buffer);
- backgadget.Im = Back;
- backgadget.ImAlt = BackAlt;
- upgadget.Im = Up;
- upgadget.ImAlt = UpAlt;
- downgadget.Im = Down;
- downgadget.ImAlt = DownAlt;
+ backgadget._image = Back;
+ backgadget._altImage = BackAlt;
+ upgadget._image = Up;
+ upgadget._altImage = UpAlt;
+ downgadget._image = Down;
+ downgadget._altImage = DownAlt;
counter = 0;
gptr = MapGadgetList;
diff --git a/engines/lab/mouse.cpp b/engines/lab/mouse.cpp
index 38b893511d..b676f2cd37 100644
--- a/engines/lab/mouse.cpp
+++ b/engines/lab/mouse.cpp
@@ -61,21 +61,21 @@ static byte MouseData[] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
Gadget *EventManager::checkGadgetHit(Gadget *gadgetList, Common::Point pos) {
while (gadgetList != NULL) {
if ((pos.x >= gadgetList->x) && (pos.y >= gadgetList->y) &&
- (pos.x <= (gadgetList->x + gadgetList->Im->Width)) &&
- (pos.y <= (gadgetList->y + gadgetList->Im->Height)) &&
+ (pos.x <= (gadgetList->x + gadgetList->_image->Width)) &&
+ (pos.y <= (gadgetList->y + gadgetList->_image->Height)) &&
!(GADGETOFF & gadgetList->GadgetFlags)) {
if (_vm->_isHiRes) {
_hitGadget = gadgetList;
} else {
mouseHide();
- gadgetList->ImAlt->drawImage(gadgetList->x, gadgetList->y);
+ gadgetList->_altImage->drawImage(gadgetList->x, gadgetList->y);
mouseShow();
for (uint16 i = 0; i < 3; i++)
_vm->waitTOF();
mouseHide();
- gadgetList->Im->drawImage(gadgetList->x, gadgetList->y);
+ gadgetList->_image->drawImage(gadgetList->x, gadgetList->y);
mouseShow();
}
@@ -143,14 +143,14 @@ void EventManager::updateMouse() {
if (_hitGadget) {
mouseHide();
- _hitGadget->ImAlt->drawImage(_hitGadget->x, _hitGadget->y);
+ _hitGadget->_altImage->drawImage(_hitGadget->x, _hitGadget->y);
mouseShow();
for (uint16 i = 0; i < 3; i++)
_vm->waitTOF();
mouseHide();
- _hitGadget->Im->drawImage(_hitGadget->x, _hitGadget->y);
+ _hitGadget->_image->drawImage(_hitGadget->x, _hitGadget->y);
mouseShow();
doUpdateDisplay = true;
_hitGadget = nullptr;
diff --git a/engines/lab/parsetypes.h b/engines/lab/parsetypes.h
index 3ca441a286..82174b80f4 100644
--- a/engines/lab/parsetypes.h
+++ b/engines/lab/parsetypes.h
@@ -185,8 +185,6 @@ struct InventoryData {
#define MULTIMAZEF2 10
#define MULTIMAZEF3 11
-
-
struct MapData {
uint16 x, y, PageNumber, SpecialID;
uint32 MapFlags;
diff --git a/engines/lab/processroom.cpp b/engines/lab/processroom.cpp
index 0145c83cd4..3eeb00da54 100644
--- a/engines/lab/processroom.cpp
+++ b/engines/lab/processroom.cpp
@@ -47,10 +47,8 @@ namespace Lab {
RoomData *_rooms;
InventoryData *Inventory;
uint16 NumInv, ManyRooms, HighestCondition, Direction;
-const char *NewFileName;
extern bool DoNotDrawMessage, noupdatediff, QuitLab, MusicOn, LongWinInFront;
-extern const char *CurFileName;
extern CloseDataPtr CPtr;
/*****************************************************************************/
@@ -382,15 +380,15 @@ static void doActions(Action * APtr, CloseDataPtr *LCPtr) {
break;
case FORCEUPDATE:
- CurFileName = " ";
+ g_lab->_curFileName = " ";
break;
case SHOWCURPICT:
Test = getPictName(LCPtr);
- if (strcmp(Test, CurFileName) != 0) {
- CurFileName = Test;
- readPict(CurFileName, true);
+ if (strcmp(Test, g_lab->_curFileName) != 0) {
+ g_lab->_curFileName = Test;
+ readPict(g_lab->_curFileName, true);
}
break;
@@ -642,9 +640,9 @@ bool doActionRule(Common::Point pos, int16 action, int16 roomNum, CloseDataPtr *
CloseDataPtr TLCPtr;
if (roomNum)
- NewFileName = NOFILE;
+ g_lab->_newFileName = NOFILE;
else
- NewFileName = CurFileName;
+ g_lab->_newFileName = g_lab->_curFileName;
TLCPtr = getObject(pos.x, pos.y, *LCPtr);
@@ -694,7 +692,7 @@ static bool doOperateRuleSub(int16 ItemNum, int16 roomNum, CloseDataPtr LCPtr, C
bool doOperateRule(int16 x, int16 y, int16 ItemNum, CloseDataPtr *LCPtr) {
CloseDataPtr TLCPtr;
- NewFileName = NOFILE;
+ g_lab->_newFileName = NOFILE;
TLCPtr = getObject(x, y, *LCPtr);
@@ -707,7 +705,7 @@ bool doOperateRule(int16 x, int16 y, int16 ItemNum, CloseDataPtr *LCPtr) {
else if (doOperateRuleSub(ItemNum, g_lab->_roomNum, *LCPtr, LCPtr, true))
return true;
else {
- NewFileName = CurFileName;
+ g_lab->_newFileName = g_lab->_curFileName;
if (doOperateRuleSub(ItemNum, 0, TLCPtr, LCPtr, false))
return true;
diff --git a/engines/lab/savegame.cpp b/engines/lab/savegame.cpp
index d54e6cb491..41f7b2787e 100644
--- a/engines/lab/savegame.cpp
+++ b/engines/lab/savegame.cpp
@@ -89,10 +89,10 @@ bool readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &header) {
return false;
// Read in the version
- header.version = in->readByte();
+ header._version = in->readByte();
// Check that the save version isn't newer than this binary
- if (header.version > SAVEGAME_VERSION)
+ if (header._version > SAVEGAME_VERSION)
return false;
// Read in the save name
@@ -100,10 +100,10 @@ bool readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &header) {
char ch;
while ((ch = (char)in->readByte()) != '\0')
saveName += ch;
- header.desc.setDescription(saveName);
+ header._descr.setDescription(saveName);
// Get the thumbnail
- header.desc.setThumbnail(Graphics::loadThumbnail(*in));
+ header._descr.setThumbnail(Graphics::loadThumbnail(*in));
uint32 saveDate = in->readUint32BE();
uint16 saveTime = in->readUint16BE();
@@ -112,13 +112,13 @@ bool readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &header) {
int day = (saveDate >> 24) & 0xFF;
int month = (saveDate >> 16) & 0xFF;
int year = saveDate & 0xFFFF;
- header.desc.setSaveDate(year, month, day);
+ header._descr.setSaveDate(year, month, day);
int hour = (saveTime >> 8) & 0xFF;
int minutes = saveTime & 0xFF;
- header.desc.setSaveTime(hour, minutes);
+ header._descr.setSaveTime(hour, minutes);
- header.desc.setPlayTime(playTime * 1000);
+ header._descr.setPlayTime(playTime * 1000);
g_engine->setTotalPlayTime(playTime * 1000);
return true;
diff --git a/engines/lab/special.cpp b/engines/lab/special.cpp
index 2744d3de32..6c5ff021a8 100644
--- a/engines/lab/special.cpp
+++ b/engines/lab/special.cpp
@@ -551,12 +551,12 @@ static bool loadJournalData() {
if (!buffer)
return false;
- BackG.Im = new Image(buffer);
- BackG.ImAlt = new Image(buffer);
- ForwardG.Im = new Image(buffer);
- ForwardG.ImAlt = new Image(buffer);
- CancelG.Im = new Image(buffer);
- CancelG.ImAlt = new Image(buffer);
+ BackG._image = new Image(buffer);
+ BackG._altImage = new Image(buffer);
+ ForwardG._image = new Image(buffer);
+ ForwardG._altImage = new Image(buffer);
+ CancelG._image = new Image(buffer);
+ CancelG._altImage = new Image(buffer);
BackG.KeyEquiv = VKEY_LTARROW;
ForwardG.KeyEquiv = VKEY_RTARROW;