Ticket #7559: sky-hack3b.diff
File sky-hack3b.diff, 8.0 KB (added by , 17 years ago) |
---|
-
engines/sky/screen.h
64 64 void paletteFadeUp(uint8 *pal); 65 65 void paletteFadeUp(uint16 fileNr); 66 66 67 void showScreen(uint16 fileNum );68 void showScreen(uint8 *pScreen );67 void showScreen(uint16 fileNum, bool fullscreen = false); 68 void showScreen(uint8 *pScreen, bool fullscreen = false); 69 69 70 70 void handleTimer(void); 71 71 void startSequence(uint16 fileNum); … … 82 82 void fnFadeUp(uint32 palNum, uint32 scroll); 83 83 void fnFadeDown(uint32 scroll); 84 84 void fnDrawScreen(uint32 palette, uint32 scroll); 85 void clearScreen( void);85 void clearScreen(bool fullscreen = false); 86 86 void setFocusRectangle(const Common::Rect& rect); 87 87 88 88 void recreate(void); -
engines/sky/intro.cpp
63 63 #define PLAYBG 15 // play background sound 64 64 #define LOOPBG 16 // loop background sound 65 65 #define STOPBG 17 // stop background sound 66 #define CLEARSCREEN 18 // clear the screen 66 67 #define SEQEND 65535 // end of intro sequence 67 68 69 // Modifier flag for SHOWSCREEN when we want the image to cover the entire 70 // screen. 71 #define FULLSCREEN 0x8000 72 68 73 #define IC_PREPARE_TEXT 20 // commands used in COMMANDFLIRT block 69 74 #define IC_SHOW_TEXT 21 70 75 #define IC_REMOVE_TEXT 22 … … 331 336 WAITFLIRT, 332 337 WAITVOICE, 333 338 FADEDOWN, 334 SHOWSCREEN , CD_19_LOG,339 SHOWSCREEN | FULLSCREEN, CD_19_LOG, 335 340 FADEUP, CD_19_PAL, 336 341 PLAYVOICE, CDV_19, 337 342 WAITVOICE, 338 343 PLAYVOICE, CDV_20, 339 344 FADEDOWN, 340 SHOWSCREEN , CD_20_LOG,345 SHOWSCREEN | FULLSCREEN, CD_20_LOG, 341 346 FADEUP, CD_19_PAL, 342 347 WAITVOICE, 343 348 LOADBG, 59496, // quiet heli 344 349 LOOPBG, 345 350 PLAYVOICE, CDV_21, 346 351 FADEDOWN, 347 SHOWSCREEN , CD_21_LOG,352 SHOWSCREEN | FULLSCREEN, CD_21_LOG, 348 353 FADEUP, CD_19_PAL, 349 354 WAITVOICE, 350 355 PLAYVOICE, CDV_22, … … 354 359 PLAYVOICE, CDV_23, 355 360 FADEDOWN, 356 361 WAITVOICE, 357 SHOWSCREEN , CD_24_LOG,362 SHOWSCREEN | FULLSCREEN, CD_24_LOG, 358 363 FADEUP, CD_23_PAL, 359 364 PLAYVOICE, CDV_24, 360 365 WAITVOICE, … … 363 368 PLAYVOICE, CDV_26, 364 369 WAITVOICE, 365 370 FADEDOWN, 371 CLEARSCREEN, 372 // This one could be fullscreen, but that causes animation glitches. 366 373 SHOWSCREEN, CD_27_LOG, 367 374 FADEUP, CD_27_PAL, 368 375 PLAYVOICE, CDV_27, … … 385 392 WAITVOICE, 386 393 PLAYVOICE, CDV_36, 387 394 FADEDOWN, 395 // This one could be fullscreen, but that causes animation glitches. 388 396 SHOWSCREEN, CD_35_LOG, 389 397 FADEUP, CD_35_PAL, 390 398 WAITVOICE, … … 397 405 PLAYVOICE, CDV_39, 398 406 WAITVOICE, 399 407 FADEDOWN, 400 SHOWSCREEN , CD_40_LOG,408 SHOWSCREEN | FULLSCREEN, CD_40_LOG, 401 409 FADEUP, CD_40_PAL, 402 410 PLAYVOICE, CDV_40, 403 411 WAITVOICE, … … 406 414 PLAYVOICE, CDV_42, 407 415 WAITVOICE, 408 416 FADEDOWN, 409 SHOWSCREEN , CD_43_LOG,417 SHOWSCREEN | FULLSCREEN, CD_43_LOG, 410 418 FADEUP, CD_43_PAL, 411 419 PLAYVOICE, CDV_43, 412 420 WAITVOICE, … … 420 428 DOFLIRT, CD_45, 421 429 WAITVOICE, 422 430 FADEDOWN, 423 SHOWSCREEN , CD_47_LOG,431 SHOWSCREEN | FULLSCREEN, CD_47_LOG, 424 432 FADEUP, CD_47_PAL, 425 433 PLAYVOICE, CDV_47, 426 434 WAITVOICE, 427 435 PLAYVOICE, CDV_48, 428 436 FADEDOWN, 429 SHOWSCREEN , CD_48_LOG,437 SHOWSCREEN | FULLSCREEN, CD_48_LOG, 430 438 FADEUP, CD_48_PAL, 431 439 WAITVOICE, 432 440 BGFLIRT, CD_48, … … 499 507 FADEDOWN, 500 508 PLAYVOICE, CDV_71, 501 509 WAITVOICE, 502 SHOWSCREEN , CD_72_LOG,510 SHOWSCREEN | FULLSCREEN, CD_72_LOG, 503 511 FADEUP, CD_72_PAL, 504 512 PLAYVOICE, CDV_72, 505 513 WAITVOICE, 506 514 FADEDOWN, 507 SHOWSCREEN , CD_73_LOG,515 SHOWSCREEN | FULLSCREEN, CD_73_LOG, 508 516 FADEUP, CD_73_PAL, 509 517 PLAYVOICE, CDV_73, 510 518 WAITVOICE, … … 512 520 WAITVOICE, 513 521 PLAYVOICE, CDV_75, 514 522 FADEDOWN, 515 SHOWSCREEN , CD_76_LOG,523 SHOWSCREEN | FULLSCREEN, CD_76_LOG, 516 524 FADEUP, CD_76_PAL, 517 525 WAITVOICE, 518 526 PLAYVOICE, CDV_76, … … 520 528 PLAYVOICE, CDV_77, 521 529 WAITVOICE, 522 530 FADEDOWN, 531 CLEARSCREEN, 523 532 SHOWSCREEN, CD_78_LOG, 524 533 FADEUP, CD_78_PAL, 525 534 PLAYVOICE, CDV_78, … … 534 543 PLAYVOICE, CDV_82, 535 544 WAITVOICE, 536 545 WAITFLIRT, 537 SHOWSCREEN , CD_101_LOG,546 SHOWSCREEN | FULLSCREEN, CD_101_LOG, 538 547 BGFLIRT, CD_101, 539 548 PLAYVOICE, CDV_83, 540 549 WAITVOICE, … … 543 552 PLAYVOICE, CDV_85, 544 553 WAITVOICE, 545 554 WAITFLIRT, 555 CLEARSCREEN, 546 556 SHOWSCREEN, CD_102_LOG, 547 557 PLAYVOICE, CDV_86, 548 558 DOFLIRT, CD_102, 549 559 FADEDOWN, 560 // This one could be fullscreen, but that causes animation glitches. 550 561 SHOWSCREEN, CD_103_LOG, 551 562 FADEUP, CD_103_PAL, 552 563 BGFLIRT, CD_103, … … 556 567 WAITVOICE, 557 568 STARTMUSIC, 2, 558 569 FADEDOWN, 559 SHOWSCREEN , CD_104_LOG,570 SHOWSCREEN | FULLSCREEN, CD_104_LOG, 560 571 FADEUP, CD_104_PAL, 561 572 DOFLIRT, CD_104, 562 573 DOFLIRT, CD_105, … … 564 575 }; 565 576 566 577 uint16 Intro::_floppyIntroSeq[] = { 578 // This one could be fullscreen, but that causes animation glitches. 567 579 SHOWSCREEN, 60081, 568 580 FADEUP, 60080, 569 581 DOFLIRT, 60082, … … 578 590 50, IC_FX_VOLUME, 90, 579 591 5, IC_FX_VOLUME, 100, 580 592 COMMANDEND, 581 SHOWSCREEN , 60088,593 SHOWSCREEN | FULLSCREEN, 60088, 582 594 COMMANDFLIRT, 60089, // => command list 4b (cockpit) 583 595 1000, IC_PREPARE_TEXT, 77, 584 596 220, IC_SHOW_TEXT, 20, 160, // radar detects jamming signal … … 590 602 35, IC_SHOW_TEXT, 30, 160, 591 603 3, IC_REMOVE_TEXT, 592 604 COMMANDEND, 605 CLEARSCREEN, 593 606 SHOWSCREEN, 60090, 594 607 COMMANDFLIRT, 60091, // => command list 4c 595 608 1000, IC_FX_VOLUME, 100, … … 598 611 4, IC_FX_VOLUME, 127, 599 612 COMMANDEND, 600 613 FADEDOWN, 614 // This one could be fullscreen, but that causes animation glitches. 601 615 SHOWSCREEN, 60093, 602 616 FADEUP, 60092, 603 617 COMMANDFLIRT, 60094, // => command list 5 … … 605 619 COMMANDEND, 606 620 WAITMUSIC, 607 621 FADEDOWN, 608 SHOWSCREEN , 60096,622 SHOWSCREEN | FULLSCREEN, 60096, 609 623 STARTMUSIC, 2, 610 624 FADEUP, 60095, 611 625 COMMANDFLIRT, 60097, // => command list 6a … … 687 701 uint8 *vData = NULL; 688 702 // return false means cancel intro 689 703 uint16 command = *data++; 690 switch (command ) {704 switch (command & 0x7fff) { 691 705 case SHOWSCREEN: 692 _skyScreen->showScreen(*data++ );706 _skyScreen->showScreen(*data++, (command & FULLSCREEN) ? true : false); 693 707 return true; 694 708 case FADEUP: 695 709 _skyScreen->paletteFadeUp(*data++); … … 769 783 case STOPBG: 770 784 _mixer->stopID(SOUND_BG); 771 785 return true; 786 case CLEARSCREEN: 787 _skyScreen->clearScreen(true); 788 break; 772 789 default: 773 790 error("Unknown intro command %X", command); 774 791 } -
engines/sky/sky.cpp
281 281 } 282 282 283 283 if (!_systemVars.quitGame) { 284 _skyScreen->clearScreen(true); 284 285 _skyLogic->initScreen0(); 285 286 if (introSkipped) 286 287 _skyControl->restartGame(); -
engines/sky/screen.cpp
99 99 free(_scrollScreen); 100 100 } 101 101 102 void Screen::clearScreen( void) {102 void Screen::clearScreen(bool fullscreen) { 103 103 104 104 memset(_currentScreen, 0, FULL_SCREEN_WIDTH * FULL_SCREEN_HEIGHT); 105 _system->copyRectToScreen(_currentScreen, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT);105 _system->copyRectToScreen(_currentScreen, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, fullscreen ? FULL_SCREEN_HEIGHT : GAME_SCREEN_HEIGHT); 106 106 _system->updateScreen(); 107 107 } 108 108 … … 154 154 warning("Screen::setPalette: can't load file nr. %d",fileNum); 155 155 } 156 156 157 void Screen::showScreen(uint16 fileNum ) {157 void Screen::showScreen(uint16 fileNum, bool fullscreen) { 158 158 159 159 if (_currentScreen) 160 160 free(_currentScreen); 161 161 _currentScreen = _skyDisk->loadFile(fileNum); 162 162 163 163 if (_currentScreen) 164 showScreen(_currentScreen );164 showScreen(_currentScreen, fullscreen); 165 165 else 166 166 warning("Screen::showScreen: can't load file nr. %d",fileNum); 167 167 } 168 168 169 void Screen::showScreen(uint8 *pScreen ) {169 void Screen::showScreen(uint8 *pScreen, bool fullscreen) { 170 170 171 _system->copyRectToScreen(pScreen, 320, 0, 0, GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT);171 _system->copyRectToScreen(pScreen, 320, 0, 0, GAME_SCREEN_WIDTH, fullscreen ? FULL_SCREEN_HEIGHT : GAME_SCREEN_HEIGHT); 172 172 _system->updateScreen(); 173 173 } 174 174