[Scummvm-cvs-logs] CVS: scummvm/sky cd_intro.cpp,1.11,1.12 intro.cpp,1.24,1.25 screen.cpp,1.19,1.20 sky.cpp,1.49,1.50 sky.h,1.28,1.29
Robert G?ffringmann
lavosspawn at users.sourceforge.net
Sun Jun 1 15:54:04 CEST 2003
Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv29221/sky
Modified Files:
cd_intro.cpp intro.cpp screen.cpp sky.cpp sky.h
Log Message:
remove useless screen updates, make non-seq intro parts escapable.
Index: cd_intro.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/cd_intro.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- cd_intro.cpp 1 Jun 2003 21:21:06 -0000 1.11
+++ cd_intro.cpp 1 Jun 2003 22:53:44 -0000 1.12
@@ -217,7 +217,7 @@
bgVocBuffer = _skyDisk->loadFile(59499, NULL);
bgVocSize = _skyDisk->_lastLoadedFileSize;
- delay(2000); //keep gibbons screen up for 2 seconds
+ escDelay(2000); //keep gibbons screen up for 2 seconds
_skyScreen->fnFadeDown(0); //and fade out
START_VOICE;
Index: intro.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/intro.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- intro.cpp 1 Jun 2003 21:21:07 -0000 1.24
+++ intro.cpp 1 Jun 2003 22:53:44 -0000 1.25
@@ -191,6 +191,16 @@
_skyScreen->showScreen(60110);
}
+void SkyState::escDelay(uint32 pDelay) {
+
+ pDelay /= 50;
+ while (pDelay) {
+ delay(50);
+ if (_key_pressed == 27) pDelay = 0;
+ else pDelay--;
+ }
+}
+
void SkyState::intro(void) {
uint32 *commandPtr = (uint32 *)zeroCommands;
@@ -201,13 +211,13 @@
_skyMusic->loadSection(0);
_skySound->loadSection(0);
- delay(3000); //keep virgin screen up for 3 seconds
+ escDelay(3000); //keep virgin screen up for 3 seconds
CHECK_ESC
if (!isCDVersion())
_skyMusic->startMusic(1);
- delay(3000); //and another 3 seconds.
+ escDelay(3000); //and another 3 seconds.
CHECK_ESC
_skyScreen->fnFadeDown(0); //remove virgin screen
@@ -224,7 +234,7 @@
_skyText->getText(77);
- delay(8000); // keep revolution up for 8 seconds
+ escDelay(8000); // keep revolution up for 8 seconds
CHECK_ESC
_skyScreen->fnFadeDown(0);
@@ -240,7 +250,7 @@
_skyDisk->prefetchFile(FN_1A);
//keep gibbo up for 2 seconds
- delay(2000);
+ escDelay(2000);
CHECK_ESC
_skyScreen->fnFadeDown(0);
Index: screen.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/screen.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- screen.cpp 1 Jun 2003 21:21:09 -0000 1.19
+++ screen.cpp 1 Jun 2003 22:53:44 -0000 1.20
@@ -190,6 +190,7 @@
copySrc += GAME_SCREEN_WIDTH;
copyDest += GAME_SCREEN_WIDTH;
}
+ _system->copy_rect(screenPos, GAME_SCREEN_WIDTH, cntx * GRID_W, cnty * GRID_H, GRID_W, GRID_H);
}
backPos += GRID_W;
screenPos += GRID_W;
@@ -209,7 +210,7 @@
recreate();
spriteEngine();
flip();
- showScreen(_currentScreen);
+ _system->update_screen();
fnFadeUp(palette, scroll);
}
@@ -227,7 +228,7 @@
palette_fadedown_helper((uint32 *)_palette, GAME_COLOURS);
_system->set_palette(_palette, 0, GAME_COLOURS);
_system->update_screen();
- waitForTimer();
+ _system->delay_msecs(20);
}
}
}
@@ -275,7 +276,7 @@
}
_system->set_palette(_palette, 0, GAME_COLOURS);
_system->update_screen();
- waitForTimer();
+ _system->delay_msecs(20);
}
}
@@ -371,6 +372,7 @@
void SkyScreen::processSequence(void) {
uint32 screenPos = 0;
+ uint32 rectX, rectY, oldScreenPos;
_seqInfo.delay--;
if (_seqInfo.delay == 0) {
@@ -386,14 +388,28 @@
do {
nrToDo = _seqInfo.seqDataPos[0];
_seqInfo.seqDataPos++;
+
+ rectX = screenPos % GAME_SCREEN_WIDTH;
+ rectY = screenPos / GAME_SCREEN_WIDTH;
+ oldScreenPos = screenPos;
+
for (cnt = 0; cnt < nrToDo; cnt++) {
_currentScreen[screenPos] = _seqInfo.seqDataPos[0];
_seqInfo.seqDataPos++;
screenPos++;
}
+ if (nrToDo > 0) {
+ if (rectX + nrToDo <= GAME_SCREEN_WIDTH)
+ _system->copy_rect(_currentScreen + oldScreenPos, GAME_SCREEN_WIDTH, rectX, rectY, nrToDo, 1);
+ else {
+ _system->copy_rect(_currentScreen + oldScreenPos, GAME_SCREEN_WIDTH, rectX, rectY, 320 - rectX, 1);
+ oldScreenPos += 320 - rectX;
+ _system->copy_rect(_currentScreen + oldScreenPos, GAME_SCREEN_WIDTH, 0, rectY + 1, nrToDo - (320 - rectX), 1);
+ }
+ }
} while (nrToDo == 0xFF);
} while (screenPos < (GAME_SCREEN_WIDTH * GAME_SCREEN_HEIGHT));
- showScreen(_currentScreen);
+ _system->update_screen();
_seqInfo.framesLeft--;
}
if (_seqInfo.framesLeft == 0) {
Index: sky.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/sky.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- sky.cpp 1 Jun 2003 21:21:09 -0000 1.49
+++ sky.cpp 1 Jun 2003 22:53:44 -0000 1.50
@@ -152,7 +152,7 @@
_skyScreen->recreate();
_skyScreen->spriteEngine();
_skyScreen->flip();
- _skyScreen->showScreen(_skyScreen->giveCurrent());
+ _system->update_screen();
}
}
Index: sky.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/sky.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- sky.h 1 Jun 2003 21:21:09 -0000 1.28
+++ sky.h 1 Jun 2003 22:53:44 -0000 1.29
@@ -127,6 +127,7 @@
static uint8 fosterPal[256 * 3];
void checkCommands(uint32 *&cmdPtr);
void introFrame(uint8 **diffPtr, uint8 **vgaPtr, uint8 *screenData);
+ void escDelay(uint32 pDelay);
SkyText *getSkyText();
void initialise();
More information about the Scummvm-git-logs
mailing list