Ticket #8780: hofIntroSjisFix.patch

File hofIntroSjisFix.patch, 1.9 KB (added by athrxx, 16 years ago)
  • screen.cpp

     
    27692769                return _sjisOverlayPtrs[1];
    27702770        else if (page == 2 || page == 3)
    27712771                return _sjisOverlayPtrs[2];
    2772         else
    2773                 return 0;
     2772
     2773        if (_vm->gameFlags().gameID == GI_KYRA2) {
     2774                if (page == 12 || page == 13)
     2775                        return _sjisOverlayPtrs[3];
     2776        }
     2777       
     2778        return 0;
    27742779}
    27752780
    27762781void Screen::clearOverlayPage(int page) {
     
    28122817        y <<= 1; y2 <<= 1;
    28132818        w <<= 1; h <<= 1;
    28142819
    2815         dst += y2 * 640 + x2;
    2816         src += y * 640 + x;
     2820        if (w == 640 && h == 400) {
     2821                memcpy(dst, src, SCREEN_OVL_SJIS_SIZE);
     2822        } else {
     2823                dst += y2 * 640 + x2;
     2824                src += y * 640 + x;
    28172825
    2818         while (h--) {
    2819                 for (x = 0; x < w; ++x)
    2820                         memcpy(dst, src, w);
    2821                 dst += 640;
    2822                 src += 640;
     2826                while (h--) {
     2827                        for (x = 0; x < w; ++x)
     2828                                memcpy(dst, src, w);
     2829                        dst += 640;
     2830                        src += 640;
     2831                }
    28232832        }
    28242833}
    28252834
     
    30863095
    30873096} // End of namespace Kyra
    30883097
     3098
  • screen.h

     
    6969                SCREEN_PAGE_SIZE = 320 * 200 + 1024,
    7070                SCREEN_OVL_SJIS_SIZE = 640 * 400,
    7171                SCREEN_PAGE_NUM = 16,
    72                 SCREEN_OVLS_NUM = 3
     72                SCREEN_OVLS_NUM = 4
    7373        };
    7474
    7575        enum CopyRegionFlags {
     
    327327
    328328#endif
    329329
     330
  • sequences_v2.cpp

     
    15501550void KyraEngine_v2::seq_processText() {
    15511551        Screen::FontId curFont = _screen->setFont(Screen::FID_GOLDFONT_FNT);
    15521552        int curPage = _screen->setCurPage(2);
    1553         char outputStr[60];
     1553        char outputStr[70];
    15541554
    15551555        for (int i = 0; i < 10; i++) {
    15561556                if (_activeText[i].startTime + _activeText[i].duration > _system->getMillis() && _activeText[i].duration != -1) {