Ticket #7559: sky-hack3b-updated.diff
File sky-hack3b-updated.diff, 9.7 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 … … 334 339 WAITFLIRT, 335 340 WAITVOICE, 336 341 FADEDOWN, 337 SHOWSCREEN , CD_19_LOG,342 SHOWSCREEN | FULLSCREEN, CD_19_LOG, 338 343 FADEUP, CD_19_PAL, 339 344 PLAYVOICE, CDV_19, // Joey: "Foster! (zzzt) H-Help!" 340 345 WAITVOICE, 341 346 PLAYVOICE, CDV_20, // Joey: "Better make my next body move faster, Foster..." 342 347 FADEDOWN, 343 SHOWSCREEN , CD_20_LOG,348 SHOWSCREEN | FULLSCREEN, CD_20_LOG, 344 349 FADEUP, CD_19_PAL, 345 350 WAITVOICE, 346 351 LOADBG, 59496, // quiet heli 347 352 LOOPBG, 348 353 PLAYVOICE, CDV_21, // Foster: "He was only a robot, but, well, I loved the little guy." 349 354 FADEDOWN, 350 SHOWSCREEN , CD_21_LOG,355 SHOWSCREEN | FULLSCREEN, CD_21_LOG, 351 356 FADEUP, CD_19_PAL, 352 357 WAITVOICE, 353 358 PLAYVOICE, CDV_22, // Foster: "Then, as suddenly as it started, the shooting stopped." … … 358 363 /* fade down while Foster's saying his line */ 359 364 FADEDOWN, 360 365 WAITVOICE, 361 SHOWSCREEN , CD_24_LOG,366 SHOWSCREEN | FULLSCREEN, CD_24_LOG, 362 367 FADEUP, CD_23_PAL, 363 368 PLAYVOICE, CDV_24, // Reich: "Whoever is in charge here, come forward..." 364 369 WAITVOICE, … … 367 372 PLAYVOICE, CDV_26, // Foster: "Only a fool would have argued with that firepower." 368 373 WAITVOICE, 369 374 FADEDOWN, 375 CLEARSCREEN, 376 // This one could be fullscreen, but that causes animation glitches. 370 377 SHOWSCREEN, CD_27_LOG, 371 378 FADEUP, CD_27_PAL, 372 379 PLAYVOICE, CDV_27, // Shaman: "... I am the leader of these people... We are peaceful..." … … 389 396 WAITVOICE, 390 397 PLAYVOICE, CDV_36, // Foster: "My mind racing, I remembered where I'd seen that symbol before..." 391 398 FADEDOWN, 399 // This one could be fullscreen, but that causes animation glitches. 392 400 SHOWSCREEN, CD_35_LOG, 393 401 FADEUP, CD_35_PAL, 394 402 WAITVOICE, … … 401 409 PLAYVOICE, CDV_39, // Foster: "The day my mother died." 402 410 WAITVOICE, 403 411 FADEDOWN, 404 SHOWSCREEN , CD_40_LOG,412 SHOWSCREEN | FULLSCREEN, CD_40_LOG, 405 413 FADEUP, CD_40_PAL, 406 414 PLAYVOICE, CDV_40, // Shaman: "You alright, city boy?" 407 415 WAITVOICE, … … 410 418 PLAYVOICE, CDV_42, // Foster: "R-Robert." 411 419 WAITVOICE, 412 420 FADEDOWN, 413 SHOWSCREEN , CD_43_LOG,421 SHOWSCREEN | FULLSCREEN, CD_43_LOG, 414 422 FADEUP, CD_43_PAL, 415 423 PLAYVOICE, CDV_43, // Shaman: "Hah! Welcome to the Gap, Robert!" 416 424 WAITVOICE, … … 424 432 DOFLIRT, CD_45, 425 433 WAITVOICE, 426 434 FADEDOWN, 427 SHOWSCREEN , CD_47_LOG,435 SHOWSCREEN | FULLSCREEN, CD_47_LOG, 428 436 FADEUP, CD_47_PAL, 429 437 PLAYVOICE, CDV_47, // Foster: "His tribe was poor, but they treated me like one of their own..." 430 438 WAITVOICE, 431 439 PLAYVOICE, CDV_48, // Foster: "I learned how to survive in the wasteland they called the Gap..." 432 440 FADEDOWN, 433 SHOWSCREEN , CD_48_LOG,441 SHOWSCREEN | FULLSCREEN, CD_48_LOG, 434 442 FADEUP, CD_48_PAL, 435 443 WAITVOICE, 436 444 BGFLIRT, CD_48, … … 503 511 FADEDOWN, 504 512 PLAYVOICE, CDV_71, // Reich: "Good. Detonate." 505 513 WAITVOICE, 506 SHOWSCREEN , CD_72_LOG,514 SHOWSCREEN | FULLSCREEN, CD_72_LOG, 507 515 FADEUP, CD_72_PAL, 508 516 PLAYVOICE, CDV_72, // Foster: "Much too late." 509 517 WAITVOICE, 510 518 FADEDOWN, 511 SHOWSCREEN , CD_73_LOG,519 SHOWSCREEN | FULLSCREEN, CD_73_LOG, 512 520 FADEUP, CD_73_PAL, 513 521 PLAYVOICE, CDV_73, // Foster: "Why, you murdering..." 514 522 WAITVOICE, … … 516 524 WAITVOICE, 517 525 PLAYVOICE, CDV_75, // Foster: "All I could do was wait." 518 526 FADEDOWN, 519 SHOWSCREEN , CD_76_LOG,527 SHOWSCREEN | FULLSCREEN, CD_76_LOG, 520 528 FADEUP, CD_76_PAL, 521 529 WAITVOICE, 522 530 PLAYVOICE, CDV_76, // Foster: "Just like on a hunt. Just like the old man taught me." … … 524 532 PLAYVOICE, CDV_77, // Foster: "Wait... and be ready." 525 533 WAITVOICE, 526 534 FADEDOWN, 535 CLEARSCREEN, 527 536 SHOWSCREEN, CD_78_LOG, 528 537 FADEUP, CD_78_PAL, 529 538 PLAYVOICE, CDV_78, // Foster: "It was dawn when we reached the City." … … 538 547 PLAYVOICE, CDV_82, // Guard: "Yes, sir. Locking on automatic landing beacon." 539 548 WAITVOICE, 540 549 WAITFLIRT, 541 SHOWSCREEN , CD_101_LOG,550 SHOWSCREEN | FULLSCREEN, CD_101_LOG, 542 551 BGFLIRT, CD_101, 543 552 PLAYVOICE, CDV_83, // Foster: "But what was I? Why did..." 544 553 WAITVOICE, … … 547 556 PLAYVOICE, CDV_85, // Guard: "We're going to HIT!" 548 557 WAITVOICE, 549 558 WAITFLIRT, 559 CLEARSCREEN, 550 560 SHOWSCREEN, CD_102_LOG, 551 561 PLAYVOICE, CDV_86, // Foster: "Maybe I'd get some answers now." 552 562 DOFLIRT, CD_102, 553 563 FADEDOWN, 564 // This one could be fullscreen, but that causes animation glitches. 554 565 SHOWSCREEN, CD_103_LOG, 555 566 FADEUP, CD_103_PAL, 556 567 BGFLIRT, CD_103, … … 560 571 WAITVOICE, 561 572 STARTMUSIC, 2, 562 573 FADEDOWN, 563 SHOWSCREEN , CD_104_LOG,574 SHOWSCREEN | FULLSCREEN, CD_104_LOG, 564 575 FADEUP, CD_104_PAL, 565 576 DOFLIRT, CD_104, 566 577 DOFLIRT, CD_105, … … 568 579 }; 569 580 570 581 uint16 Intro::_floppyIntroSeq[] = { 582 // This one could be fullscreen, but that causes animation glitches. 571 583 SHOWSCREEN, 60081, 572 584 FADEUP, 60080, 573 585 DOFLIRT, 60082, … … 582 594 50, IC_FX_VOLUME, 90, 583 595 5, IC_FX_VOLUME, 100, 584 596 COMMANDEND, 585 SHOWSCREEN , 60088,597 SHOWSCREEN | FULLSCREEN, 60088, 586 598 COMMANDFLIRT, 60089, // => command list 4b (cockpit) 587 599 1000, IC_PREPARE_TEXT, 77, 588 600 220, IC_SHOW_TEXT, 20, 160, // radar detects jamming signal … … 594 606 35, IC_SHOW_TEXT, 30, 160, 595 607 3, IC_REMOVE_TEXT, 596 608 COMMANDEND, 609 CLEARSCREEN, 597 610 SHOWSCREEN, 60090, 598 611 COMMANDFLIRT, 60091, // => command list 4c 599 612 1000, IC_FX_VOLUME, 100, … … 602 615 4, IC_FX_VOLUME, 127, 603 616 COMMANDEND, 604 617 FADEDOWN, 618 // This one could be fullscreen, but that causes animation glitches. 605 619 SHOWSCREEN, 60093, 606 620 FADEUP, 60092, 607 621 COMMANDFLIRT, 60094, // => command list 5 … … 609 623 COMMANDEND, 610 624 WAITMUSIC, 611 625 FADEDOWN, 612 SHOWSCREEN , 60096,626 SHOWSCREEN | FULLSCREEN, 60096, 613 627 STARTMUSIC, 2, 614 628 FADEUP, 60095, 615 629 COMMANDFLIRT, 60097, // => command list 6a … … 691 705 uint8 *vData = NULL; 692 706 // return false means cancel intro 693 707 uint16 command = *data++; 694 switch (command ) {708 switch (command & 0x7fff) { 695 709 case SHOWSCREEN: 696 _skyScreen->showScreen(*data++ );710 _skyScreen->showScreen(*data++, (command & FULLSCREEN) ? true : false); 697 711 return true; 698 712 case FADEUP: 699 713 _skyScreen->paletteFadeUp(*data++); … … 773 787 case STOPBG: 774 788 _mixer->stopID(SOUND_BG); 775 789 return true; 790 case CLEARSCREEN: 791 _skyScreen->clearScreen(true); 792 return true; 776 793 default: 777 794 error("Unknown intro command %X", command); 778 795 } -
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 // This is only used for static images in the floppy and cd intro 159 159 if (_currentScreen) 160 160 free(_currentScreen); 161 161 _currentScreen = _skyDisk->loadFile(fileNum); 162 // make sure the last 8 lines are forced to black. 163 memset(_currentScreen + GAME_SCREEN_HEIGHT * GAME_SCREEN_WIDTH, 0, (FULL_SCREEN_HEIGHT - GAME_SCREEN_HEIGHT) * GAME_SCREEN_WIDTH); 162 if (!fullscreen) { 163 // make sure the last 8 lines are forced to black. 164 memset(_currentScreen + GAME_SCREEN_HEIGHT * GAME_SCREEN_WIDTH, 0, (FULL_SCREEN_HEIGHT - GAME_SCREEN_HEIGHT) * GAME_SCREEN_WIDTH); 165 } 164 166 165 167 if (_currentScreen) 166 showScreen(_currentScreen );168 showScreen(_currentScreen, fullscreen); 167 169 else 168 170 warning("Screen::showScreen: can't load file nr. %d",fileNum); 169 171 } 170 172 171 void Screen::showScreen(uint8 *pScreen ) {173 void Screen::showScreen(uint8 *pScreen, bool fullscreen) { 172 174 173 _system->copyRectToScreen(pScreen, 320, 0, 0, GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT);175 _system->copyRectToScreen(pScreen, 320, 0, 0, GAME_SCREEN_WIDTH, fullscreen ? FULL_SCREEN_HEIGHT : GAME_SCREEN_HEIGHT); 174 176 _system->updateScreen(); 175 177 } 176 178