aboutsummaryrefslogtreecommitdiff
path: root/engines/lab
diff options
context:
space:
mode:
authorFilippos Karapetis2015-12-07 09:58:46 +0200
committerWillem Jan Palenstijn2015-12-23 21:33:53 +0100
commit87201cfed25e2b145d55c5d77fe0988d32444395 (patch)
tree0e7c60b89bd816355360ac9e89a3fecbd1c28164 /engines/lab
parentf3a24ff593024e3a997ed1a9160d32a84eb42d74 (diff)
downloadscummvm-rg350-87201cfed25e2b145d55c5d77fe0988d32444395.tar.gz
scummvm-rg350-87201cfed25e2b145d55c5d77fe0988d32444395.tar.bz2
scummvm-rg350-87201cfed25e2b145d55c5d77fe0988d32444395.zip
LAB: Rename and clean up some of the scene transition code
Diffstat (limited to 'engines/lab')
-rw-r--r--engines/lab/graphics.cpp38
-rw-r--r--engines/lab/graphics.h13
-rw-r--r--engines/lab/parsetypes.h4
-rw-r--r--engines/lab/processroom.cpp4
-rw-r--r--engines/lab/resource.cpp2
5 files changed, 36 insertions, 25 deletions
diff --git a/engines/lab/graphics.cpp b/engines/lab/graphics.cpp
index 5147ac3654..95551040c2 100644
--- a/engines/lab/graphics.cpp
+++ b/engines/lab/graphics.cpp
@@ -409,18 +409,6 @@ void DisplayMan::drawMessage(const char *str) {
}
}
-/*---------------------------------------------------------------------------*/
-/*--------------------------- All the wipe stuff. ---------------------------*/
-/*---------------------------------------------------------------------------*/
-
-#define TRANSWIPE 1
-#define SCROLLWIPE 2
-#define SCROLLBLACK 3
-#define SCROLLBOUNCE 4
-#define TRANSPORTER 5
-#define READFIRSTFRAME 6
-#define READNEXTFRAME 7
-
/*****************************************************************************/
/* Scrolls the display to black. */
/*****************************************************************************/
@@ -736,19 +724,31 @@ void DisplayMan::doTransWipe(CloseDataPtr *cPtr, char *filename) {
/*****************************************************************************/
/* Does a certain number of pre-programmed wipes. */
/*****************************************************************************/
-void DisplayMan::doWipe(uint16 wipeType, CloseDataPtr *cPtr, char *filename) {
- if ((wipeType == TRANSWIPE) || (wipeType == TRANSPORTER))
+void DisplayMan::doTransition(TransitionType transitionType, CloseDataPtr *cPtr, char *filename) {
+ switch (transitionType) {
+ case kTransitionWipe:
+ case kTransitionTransporter:
doTransWipe(cPtr, filename);
- else if (wipeType == SCROLLWIPE)
+ break;
+ case kTransitionScrollWipe:
doScrollWipe(filename);
- else if (wipeType == SCROLLBLACK)
+ break;
+ case kTransitionScrollBlack:
doScrollBlack();
- else if (wipeType == SCROLLBOUNCE)
+ break;
+ case kTransitionScrollBounce:
doScrollBounce();
- else if (wipeType == READFIRSTFRAME)
+ break;
+ case kTransitionReadFirstFrame:
readPict(filename, false);
- else if (wipeType == READNEXTFRAME)
+ break;
+ case kTransitionReadNextFrame:
_vm->_anim->diffNextFrame();
+ break;
+ case kTransitionNone:
+ default:
+ break;
+ }
}
/*****************************************************************************/
diff --git a/engines/lab/graphics.h b/engines/lab/graphics.h
index 8e67cd2366..9011b22c83 100644
--- a/engines/lab/graphics.h
+++ b/engines/lab/graphics.h
@@ -46,6 +46,17 @@ struct TextFont {
byte *_data;
};
+enum TransitionType {
+ kTransitionNone,
+ kTransitionWipe,
+ kTransitionScrollWipe,
+ kTransitionScrollBlack,
+ kTransitionScrollBounce,
+ kTransitionTransporter,
+ kTransitionReadFirstFrame,
+ kTransitionReadNextFrame
+};
+
class DisplayMan {
private:
LabEngine *_vm;
@@ -76,7 +87,7 @@ public:
void doScrollWipe(char *filename);
void doScrollBounce();
void doTransWipe(CloseDataPtr *cPtr, char *filename);
- void doWipe(uint16 wipeType, CloseDataPtr *cPtr, char *filename);
+ void doTransition(TransitionType transitionType, CloseDataPtr *cPtr, char *filename);
void blackScreen();
void whiteScreen();
void blackAllScreen();
diff --git a/engines/lab/parsetypes.h b/engines/lab/parsetypes.h
index b345e1e056..42c7269d7c 100644
--- a/engines/lab/parsetypes.h
+++ b/engines/lab/parsetypes.h
@@ -45,7 +45,7 @@ namespace Lab {
#define LOADDIFF 5
#define LOADBM 6
#define SHOWBM 7
-#define WIPECMD 8
+#define TRANSITION 8
#define NOUPDATE 9
#define FORCEUPDATE 10
#define SHOWCURPICT 11
@@ -139,7 +139,7 @@ struct RoomData {
uint16 _southDoor;
uint16 _eastDoor;
uint16 _westDoor;
- byte _wipeType;
+ byte _transitionType;
ViewData *_view[4];
RuleList *_rules;
char *_roomMsg;
diff --git a/engines/lab/processroom.cpp b/engines/lab/processroom.cpp
index 015b854b75..d467c21cb5 100644
--- a/engines/lab/processroom.cpp
+++ b/engines/lab/processroom.cpp
@@ -332,8 +332,8 @@ void LabEngine::doActions(Action *aptr, CloseDataPtr *lcptr) {
break;
- case WIPECMD:
- _graphics->doWipe(aptr->_param1, lcptr, (char *)aptr->_data);
+ case TRANSITION:
+ _graphics->doTransition((TransitionType)aptr->_param1, lcptr, (char *)aptr->_data);
break;
case NOUPDATE:
diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp
index f76aea0087..f99ab82a53 100644
--- a/engines/lab/resource.cpp
+++ b/engines/lab/resource.cpp
@@ -98,7 +98,7 @@ bool Resource::readRoomData(const char *fileName) {
_vm->_rooms[i]._southDoor = dataFile->readUint16LE();
_vm->_rooms[i]._eastDoor = dataFile->readUint16LE();
_vm->_rooms[i]._westDoor = dataFile->readUint16LE();
- _vm->_rooms[i]._wipeType = dataFile->readByte();
+ _vm->_rooms[i]._transitionType = dataFile->readByte();
_vm->_rooms[i]._view[NORTH] = nullptr;
_vm->_rooms[i]._view[SOUTH] = nullptr;