Ticket #7559: sky-hack3-updated.diff
File sky-hack3-updated.diff, 8.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, 348 CLEARSCREEN, 343 349 SHOWSCREEN, CD_20_LOG, 344 350 FADEUP, CD_19_PAL, 345 351 WAITVOICE, … … 347 353 LOOPBG, 348 354 PLAYVOICE, CDV_21, // Foster: "He was only a robot, but, well, I loved the little guy." 349 355 FADEDOWN, 350 SHOWSCREEN , CD_21_LOG,356 SHOWSCREEN | FULLSCREEN, CD_21_LOG, 351 357 FADEUP, CD_19_PAL, 352 358 WAITVOICE, 353 359 PLAYVOICE, CDV_22, // Foster: "Then, as suddenly as it started, the shooting stopped." … … 358 364 /* fade down while Foster's saying his line */ 359 365 FADEDOWN, 360 366 WAITVOICE, 361 SHOWSCREEN , CD_24_LOG,367 SHOWSCREEN | FULLSCREEN, CD_24_LOG, 362 368 FADEUP, CD_23_PAL, 363 369 PLAYVOICE, CDV_24, // Reich: "Whoever is in charge here, come forward..." 364 370 WAITVOICE, … … 367 373 PLAYVOICE, CDV_26, // Foster: "Only a fool would have argued with that firepower." 368 374 WAITVOICE, 369 375 FADEDOWN, 376 CLEARSCREEN, 377 // This one could be fullscreen, but that causes animation glitches. 370 378 SHOWSCREEN, CD_27_LOG, 371 379 FADEUP, CD_27_PAL, 372 380 PLAYVOICE, CDV_27, // Shaman: "... I am the leader of these people... We are peaceful..." … … 389 397 WAITVOICE, 390 398 PLAYVOICE, CDV_36, // Foster: "My mind racing, I remembered where I'd seen that symbol before..." 391 399 FADEDOWN, 400 // This one could be fullscreen, but that causes animation glitches. 392 401 SHOWSCREEN, CD_35_LOG, 393 402 FADEUP, CD_35_PAL, 394 403 WAITVOICE, … … 401 410 PLAYVOICE, CDV_39, // Foster: "The day my mother died." 402 411 WAITVOICE, 403 412 FADEDOWN, 404 SHOWSCREEN , CD_40_LOG,413 SHOWSCREEN | FULLSCREEN, CD_40_LOG, 405 414 FADEUP, CD_40_PAL, 406 415 PLAYVOICE, CDV_40, // Shaman: "You alright, city boy?" 407 416 WAITVOICE, … … 410 419 PLAYVOICE, CDV_42, // Foster: "R-Robert." 411 420 WAITVOICE, 412 421 FADEDOWN, 422 CLEARSCREEN, 413 423 SHOWSCREEN, CD_43_LOG, 414 424 FADEUP, CD_43_PAL, 415 425 PLAYVOICE, CDV_43, // Shaman: "Hah! Welcome to the Gap, Robert!" … … 424 434 DOFLIRT, CD_45, 425 435 WAITVOICE, 426 436 FADEDOWN, 427 SHOWSCREEN , CD_47_LOG,437 SHOWSCREEN | FULLSCREEN, CD_47_LOG, 428 438 FADEUP, CD_47_PAL, 429 439 PLAYVOICE, CDV_47, // Foster: "His tribe was poor, but they treated me like one of their own..." 430 440 WAITVOICE, 431 441 PLAYVOICE, CDV_48, // Foster: "I learned how to survive in the wasteland they called the Gap..." 432 442 FADEDOWN, 443 CLEARSCREEN, 433 444 SHOWSCREEN, CD_48_LOG, 434 445 FADEUP, CD_48_PAL, 435 446 WAITVOICE, … … 503 514 FADEDOWN, 504 515 PLAYVOICE, CDV_71, // Reich: "Good. Detonate." 505 516 WAITVOICE, 506 SHOWSCREEN , CD_72_LOG,517 SHOWSCREEN | FULLSCREEN, CD_72_LOG, 507 518 FADEUP, CD_72_PAL, 508 519 PLAYVOICE, CDV_72, // Foster: "Much too late." 509 520 WAITVOICE, 510 521 FADEDOWN, 522 CLEARSCREEN, 511 523 SHOWSCREEN, CD_73_LOG, 512 524 FADEUP, CD_73_PAL, 513 525 PLAYVOICE, CDV_73, // Foster: "Why, you murdering..." … … 516 528 WAITVOICE, 517 529 PLAYVOICE, CDV_75, // Foster: "All I could do was wait." 518 530 FADEDOWN, 519 SHOWSCREEN , CD_76_LOG,531 SHOWSCREEN | FULLSCREEN, CD_76_LOG, 520 532 FADEUP, CD_76_PAL, 521 533 WAITVOICE, 522 534 PLAYVOICE, CDV_76, // Foster: "Just like on a hunt. Just like the old man taught me." … … 524 536 PLAYVOICE, CDV_77, // Foster: "Wait... and be ready." 525 537 WAITVOICE, 526 538 FADEDOWN, 539 CLEARSCREEN, 527 540 SHOWSCREEN, CD_78_LOG, 528 541 FADEUP, CD_78_PAL, 529 542 PLAYVOICE, CDV_78, // Foster: "It was dawn when we reached the City." … … 551 564 PLAYVOICE, CDV_86, // Foster: "Maybe I'd get some answers now." 552 565 DOFLIRT, CD_102, 553 566 FADEDOWN, 567 // This one could be fullscreen, but that causes animation glitches. 554 568 SHOWSCREEN, CD_103_LOG, 555 569 FADEUP, CD_103_PAL, 556 570 BGFLIRT, CD_103, … … 560 574 WAITVOICE, 561 575 STARTMUSIC, 2, 562 576 FADEDOWN, 563 SHOWSCREEN , CD_104_LOG,577 SHOWSCREEN | FULLSCREEN, CD_104_LOG, 564 578 FADEUP, CD_104_PAL, 565 579 DOFLIRT, CD_104, 566 580 DOFLIRT, CD_105, … … 568 582 }; 569 583 570 584 uint16 Intro::_floppyIntroSeq[] = { 585 // This one could be fullscreen, but that causes animation glitches. 571 586 SHOWSCREEN, 60081, 572 587 FADEUP, 60080, 573 588 DOFLIRT, 60082, … … 602 617 4, IC_FX_VOLUME, 127, 603 618 COMMANDEND, 604 619 FADEDOWN, 620 // This one could be fullscreen, but that causes animation glitches. 605 621 SHOWSCREEN, 60093, 606 622 FADEUP, 60092, 607 623 COMMANDFLIRT, 60094, // => command list 5 … … 609 625 COMMANDEND, 610 626 WAITMUSIC, 611 627 FADEDOWN, 612 SHOWSCREEN , 60096,628 SHOWSCREEN | FULLSCREEN, 60096, 613 629 STARTMUSIC, 2, 614 630 FADEUP, 60095, 615 631 COMMANDFLIRT, 60097, // => command list 6a … … 691 707 uint8 *vData = NULL; 692 708 // return false means cancel intro 693 709 uint16 command = *data++; 694 switch (command ) {710 switch (command & 0x7fff) { 695 711 case SHOWSCREEN: 696 _skyScreen->showScreen(*data++ );712 _skyScreen->showScreen(*data++, (command & FULLSCREEN) ? true : false); 697 713 return true; 698 714 case FADEUP: 699 715 _skyScreen->paletteFadeUp(*data++); … … 773 789 case STOPBG: 774 790 _mixer->stopID(SOUND_BG); 775 791 return true; 792 case CLEARSCREEN: 793 _skyScreen->clearScreen(true); 794 return true; 776 795 default: 777 796 error("Unknown intro command %X", command); 778 797 } -
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