Ticket #8769: sequencesFlags.patch

File sequencesFlags.patch, 11.5 KB (added by athrxx, 13 years ago)

correct platform and talkie flags for sequence player

  • kyra_v2.h

     
    232232        void seq_printCreditsString(uint16 strIndex, int x, int y, uint8 * colorMap, uint8 textcolor);
    233233        void seq_playWsaSyncDialogue(uint16 strIndex, uint16 vocIndex, int textColor, int x, int y, int width,
    234234                WSAMovieV2 * wsa, int firstframe, int lastframe, int wsaXpos, int wsaYpos);
    235         int seq_generateFixedRandomValue(int rangeFirst, int rangeLast);
    236235        void seq_showStarcraftLogo();
    237236
    238237        void seq_init();
     
    875874        int _seqFrameCounter;
    876875        int _seqWsaCurrentFrame;
    877876        bool _seqSpecialFlag;
    878         int _seqRandomizeBase;
    879877        bool _seqSubframePlaying;
    880878        uint8 _seqTextColor[2];
    881879        uint8 _seqTextColorMap[16];
  • sequences_v2.cpp

     
    420420
    421421                case 354:
    422422                case 434:
    423                         if (!((_seqFrameCounter == 354 && !_flags.isTalkie) || (_seqFrameCounter == 434 && _flags.isTalkie)))
     423                        if (!((_seqFrameCounter == 354 && (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)) || (_seqFrameCounter == 434 && _flags.platform == Common::kPlatformPC)))
    424424                                break;
    425425
    426426                        seq_resetActiveWSA(0);
     
    429429
    430430                case 400:
    431431                case 540:
    432                         if (!((_seqFrameCounter == 400 && !_flags.isTalkie) || (_seqFrameCounter == 540 && _flags.isTalkie)))
     432                        if (!((_seqFrameCounter == 400 && (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)) || (_seqFrameCounter == 540 && _flags.platform == Common::kPlatformPC)))
    433433                                break;
    434434
    435435                        seq_waitForTextsTimeout();
     
    503503
    504504                case 480:
    505505                case 660:
    506                         if (!((_seqFrameCounter == 480 && !_flags.isTalkie) || (_seqFrameCounter == 660 && _flags.isTalkie)))
     506                        if (!((_seqFrameCounter == 480 && (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)) || (_seqFrameCounter == 660 && _flags.platform == Common::kPlatformPC)))
    507507                                break;
    508508
    509509                        _screen->copyPage(2, 12);
     
    560560
    561561                case 260:
    562562                case 395:
    563                         if (!((_seqFrameCounter == 260 && !_flags.isTalkie) || (_seqFrameCounter == 395 && _flags.isTalkie)))
     563                        if (!((_seqFrameCounter == 260 && (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)) || (_seqFrameCounter == 395 && _flags.platform == Common::kPlatformPC)))
    564564                                break;
    565565
    566566                        seq_waitForTextsTimeout();
     
    571571
    572572                case 365:
    573573                case 500:
    574                         if (!((_seqFrameCounter == 365 && !_flags.isTalkie) || (_seqFrameCounter == 500 && _flags.isTalkie)))
     574                        if (!((_seqFrameCounter == 365 && (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)) || (_seqFrameCounter == 500 && _flags.platform == Common::kPlatformPC)))
    575575                                break;
    576576
    577577                        seq_waitForTextsTimeout();
     
    581581
    582582                case 405:
    583583                case 540:
    584                         if (!((_seqFrameCounter == 405 && !_flags.isTalkie) || (_seqFrameCounter == 540 && _flags.isTalkie)))
     584                        if (!((_seqFrameCounter == 405 && (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)) || (_seqFrameCounter == 540 && _flags.platform == Common::kPlatformPC)))
    585585                                break;
    586586
    587587                        seq_playTalkText(10);
     
    589589
    590590                case 484:
    591591                case 630:
    592                         if (!((_seqFrameCounter == 484 && !_flags.isTalkie) || (_seqFrameCounter == 630 && _flags.isTalkie)))
     592                        if (!((_seqFrameCounter == 484 && (_flags.platform == Common::kPlatformFMTowns || _flags.platform == Common::kPlatformPC98)) || (_seqFrameCounter == 630 && _flags.platform == Common::kPlatformPC)))
    593593                                break;
    594594
    595595                        seq_waitForTextsTimeout();
     
    660660                        if (_flags.isTalkie) {
    661661                                seq_playWsaSyncDialogue(21, 13, -1, 140, 70, 160, wsaObj, 0, 8, x, y);
    662662                        } else {
    663                                 seq_setTextEntry(21, 140, 70, 20, 160);
     663                                seq_setTextEntry(21, 140, 70, 200, 160);
    664664                                _seqFrameDelay = 200;
    665665                        }
    666666                        break;
     
    699699
    700700                case 20:
    701701                        if (!_flags.isTalkie) {
    702                                 seq_setTextEntry(18, 160, 50, _sequenceStringsDuration[17], 160);
     702                                seq_waitForTextsTimeout();
     703                                seq_setTextEntry(18, 160, 50, _sequenceStringsDuration[18], 160);
    703704                                _seqFrameDelay = 200;
    704705                        }
    705706                        break;
    706707
    707                 case 19:
    708708                case 26:
    709709                        seq_waitForTextsTimeout();
    710710                        break;
     
    838838                        _seqTextColor[0] = 1;
    839839
    840840                        if (_flags.isTalkie) {
    841                                 if (_flags.lang == Common::FR_FRA) {
    842                                         chatX = 84;
    843                                         chatY = 70;
    844                                 } else {
    845                                         chatX = 88;
    846                                         chatY = 78;
    847                                 }
     841                                chatY = (_flags.lang == Common::FR_FRA) ? 70 : 78;
    848842                                chatFirstFrame = 9;
    849843                                chatLastFrame = 15;
    850844                                voiceIndex = 34;
    851845                        } else {
    852                                 chatX = 88;
    853                                 chatY = 70;
     846                                chatY = (_flags.lang == Common::FR_FRA) ? 78 : 70;
    854847                                chatFirstFrame = 0;
    855848                                chatLastFrame = 8;
    856849                        }
     850                        chatX = (_flags.lang == Common::FR_FRA) ? 84 : 88;
    857851                        chatW = 100;
    858852
    859853                        seq_playWsaSyncDialogue(22, voiceIndex, 187, chatX, chatY, chatW, wsaObj, chatFirstFrame, chatLastFrame, x, y);
     
    866860
    867861                        _seqFrameDelay = 12;
    868862
     863                        if (_flags.lang == Common::FR_FRA) {
     864                                chatX = 80;
     865                                chatW = 112;
     866                        } else {
     867                                chatX = (_flags.lang == Common::DE_DEU) ? 84 : 96;
     868                                chatW = 100;
     869                        }
     870
    869871                        if (_flags.isTalkie) {
    870                                 if (_flags.lang == Common::FR_FRA) {
    871                                         chatW = 112;
    872                                         chatX = 80;
    873                                 } else {
    874                                         chatW = 100;
    875                                         chatX = (_flags.lang == Common::DE_DEU) ? 84 : 96;
    876                                 }
    877872                                chatFirstFrame = 0;
    878873                                chatLastFrame = 8;
    879874                                voiceIndex = 35;
    880                         } else {
    881                                 chatX = 96;
    882                                 chatW = 100;
     875                        } else {                               
    883876                                chatFirstFrame = 9;
    884877                                chatLastFrame = 15;
    885878                        }
     
    958951                        seq_playTalkText(_flags.isTalkie ? 23 : 19);
    959952                        _seqFrameDelay = _flags.isTalkie ? 20 : 16;
    960953
    961                         if (_flags.isTalkie) {
    962                                 if (_flags.lang == Common::FR_FRA) {
    963                                         chatY = 48;
    964                                         chatW = 88;
    965                                 } else {
    966                                         chatY = 60;
    967                                         chatW = 100;
    968                                 }
    969                                 voiceIndex = 36;
     954                        if (_flags.lang == Common::FR_FRA) {
     955                                chatY = 48;
     956                                chatW = 88;
    970957                        } else {
    971958                                chatY = 60;
    972959                                chatW = 100;
    973960                        }
    974961                        chatX = 60;
    975962
     963                        if (_flags.isTalkie)
     964                                voiceIndex = 36;                       
     965
    976966                        seq_playWsaSyncDialogue(25, voiceIndex, 143, chatX, chatY, chatW, wsaObj, 16, 25, x, y);
    977967                        _seqFrameDelay = 16;
    978968                        break;
     
    10331023                        break;
    10341024
    10351025                case 29:
     1026                        chatX = (_flags.lang == Common::DE_DEU) ? 82 : ((_flags.lang == Common::FR_FRA) ? 92 : 88);
     1027                        chatY = 40;
     1028                        chatW = 100;
     1029
    10361030                        if (_flags.isTalkie) {
    1037                                 if (_flags.lang == Common::DE_DEU) {
    1038                                         chatX = 82;
     1031                                if (_flags.lang == Common::DE_DEU)
    10391032                                        chatY = 35;
    1040                                 } else {
    1041                                         chatX = (_flags.lang == Common::FR_FRA) ? 92 : 88;
    1042                                         chatY = 40;
    1043                                 }
    10441033                                voiceIndex = 38;
    1045                         } else {
    1046                                 chatX = 88;
    1047                                 chatY = 40;
    10481034                        }
    1049                         chatW = 100;
    10501035
    10511036                        seq_playWsaSyncDialogue(27, voiceIndex, 187, chatX, chatY, chatW, wsaObj, 28, 34, x, y);
    10521037                        break;
     
    11131098                case 2:
    11141099                        seq_playTalkText(_flags.isTalkie ? 25 : 21);
    11151100
     1101                        if (_flags.lang == Common::FR_FRA) {
     1102                                chatX = 92;
     1103                                chatY = 72;
     1104                        } else {
     1105                                chatX = (_flags.lang == Common::DE_DEU) ? 90 : 98;
     1106                                chatY = 84;
     1107                        }
     1108
    11161109                        if (_flags.isTalkie) {
    1117                                 if (_flags.lang == Common::FR_FRA) {
    1118                                         chatX = 92;
    1119                                         chatY = 72;
    1120                                 } else {
    1121                                         chatX = (_flags.lang == Common::DE_DEU) ? 90 : 98;
    1122                                         chatY = 84;
    1123                                 }
    11241110                                chatFirstFrame = 8;
    11251111                                chatLastFrame = 9;
    11261112                                voiceIndex = 39;
    11271113                        } else {
    1128                                 chatX = 98;
    1129                                 chatY = 84;
    11301114                                chatFirstFrame = 2;
    11311115                                chatLastFrame = -8;
    11321116                        }
     
    11971181                        if (!_flags.isTalkie)
    11981182                                seq_playTalkText(14);
    11991183
     1184                        chatX = 90;
     1185                        chatY = 30;
     1186                        chatW = 100;
     1187                       
    12001188                        if (_flags.isTalkie) {
    12011189                                if (_flags.lang == Common::FR_FRA || _flags.lang == Common::DE_DEU) {
    12021190                                        chatX = 75;
    12031191                                        chatY = 25;
    1204                                 } else {
    1205                                         chatX = 90;
    1206                                         chatY = 30;
    12071192                                }
    12081193                                voiceIndex = 40;
    1209                         } else {
    1210                                 chatX = 90;
    1211                                 chatY = 30;
    12121194                        }
    1213                         chatW = 100;
    12141195
    12151196                        seq_playWsaSyncDialogue(29, voiceIndex, 150, chatX, chatY, chatW, wsaObj, 12, -21, x, y);
    12161197                        break;
     
    12711252
    12721253                        if (_flags.isTalkie) {
    12731254                                chatX = 82;
    1274                                 chatY = (_flags.lang == Common::FR_FRA || _flags.lang == Common::DE_DEU) ? 88 :100;
    12751255                                textCol = 143;
    12761256                                chatFirstFrame = 16;
    12771257                                chatLastFrame = 21;
    12781258                                voiceIndex = 41;
    12791259                        } else {
    12801260                                chatX = 62;
    1281                                 chatY = 100;
    12821261                                textCol = 137;
    12831262                                chatFirstFrame = 9;
    12841263                                chatLastFrame = 13;
    12851264                        }
     1265                        chatY = (_flags.lang == Common::FR_FRA || _flags.lang == Common::DE_DEU) ? 88 :100;
    12861266                        chatW = 80;
    12871267
    12881268                        seq_playWsaSyncDialogue(30, voiceIndex, 137, chatX, chatY, chatW, wsaObj, chatFirstFrame, chatLastFrame, x, y);
     
    13691349
    13701350                        seq_playTalkText(_flags.isTalkie ? 31 : 27);
    13711351
    1372                         if (_flags.isTalkie) {
    1373                                 if (_flags.lang == Common::DE_DEU) {
    1374                                         chatX = 82;
    1375                                         chatY = 84;
    1376                                         chatW = 140;
    1377                                 } else {
    1378                                         chatX = 74;
    1379                                         chatY = (_flags.lang == Common::FR_FRA) ? 96: 108;
    1380                                         chatW = 80;
    1381                                 }
    1382                                 voiceIndex = 43;
     1352                        if (_flags.lang == Common::DE_DEU) {
     1353                                chatX = 82;
     1354                                chatY = 84;
     1355                                chatW = 140;
    13831356                        } else {
    13841357                                chatX = 74;
    1385                                 chatY = 108;
     1358                                chatY = (_flags.lang == Common::FR_FRA) ? 96: 108;
    13861359                                chatW = 80;
    13871360                        }
    13881361
     1362                        if (_flags.isTalkie)
     1363                                voiceIndex = 43;
     1364                       
    13891365                        seq_playWsaSyncDialogue(32, voiceIndex, 137, chatX, chatY, chatW, wsaObj, 14, 16, x, y);
    13901366                        break;
    13911367
     
    13981374                        break;
    13991375
    14001376                case 31:
    1401                         if (_flags.isTalkie) {
    1402                                 chatY = (_flags.lang == Common::DE_DEU) ? 60 : 76;
     1377                        if (_flags.isTalkie)                           
    14031378                                voiceIndex = 44;
    1404                         } else {
    1405                                 chatY = 76;
    1406                         }
     1379
    14071380                        chatX = 90;
     1381                        chatY = (_flags.lang == Common::DE_DEU) ? 60 : 76;
    14081382                        chatW = 80;
    14091383
    14101384                        seq_playWsaSyncDialogue(33, voiceIndex, 143, chatX, chatY, chatW, wsaObj, 31, 34, x, y);
     
    14401414                        // if (_flags.isTalkie)
    14411415                        //       seq_finaleActorScreen();
    14421416                        _seqSpecialFlag = _flags.isTalkie;
    1443                         _seqRandomizeBase = 1;
    14441417                        break;
    14451418
    14461419                case 0:
     
    14581431                        if (_seqFrameCounter < 20 && _seqSpecialFlag) {
    14591432                                _seqWsaCurrentFrame = 0;
    14601433                        } else {
    1461                                 _seqFrameDelay = _flags.isTalkie ? 500 : (300 + seq_generateFixedRandomValue(1, 300));
     1434                                _seqFrameDelay = _flags.isTalkie ? 500 : (300 + _rnd.getRandomNumberRng(1, 300));
    14621435                                seq_playTalkText(_flags.isTalkie ? 26 : 22);
    14631436                                if (_seqSpecialFlag) {
    14641437                                        _seqFrameCounter = 3;
     
    14731446
    14741447                case 3:
    14751448                        seq_playTalkText(_flags.isTalkie ? 27 : 23);
    1476                         _seqFrameDelay = _flags.isTalkie ? 500 : (300 + seq_generateFixedRandomValue(1, 300));
     1449                        _seqFrameDelay = _flags.isTalkie ? 500 : (300 + _rnd.getRandomNumberRng(1, 300));
    14771450                        break;
    14781451
    14791452                case 4:
     
    14841457                        seq_playTalkText(_flags.isTalkie ? 27 : 23);
    14851458                        tmp = _seqFrameCounter / 6;
    14861459                        if (tmp == 2)
    1487                                 _seqFrameDelay = _flags.isTalkie ? 7 : (1 + seq_generateFixedRandomValue(1, 10));
     1460                                _seqFrameDelay = _flags.isTalkie ? 7 : (1 + _rnd.getRandomNumberRng(1, 10));
    14881461                        else if (tmp < 2)
    1489                                 _seqFrameDelay = _flags.isTalkie ? 500 : (300 + seq_generateFixedRandomValue(1, 300));
     1462                                _seqFrameDelay = _flags.isTalkie ? 500 : (300 + _rnd.getRandomNumberRng(1, 300));
    14901463                        break;
    14911464
    14921465                case 6:
     
    21272100        _seqWsaCurrentFrame = curframe;
    21282101}
    21292102
    2130 int KyraEngine_v2::seq_generateFixedRandomValue(int rangeFirst, int rangeLast) {
    2131         int result = 0;
    2132         if (rangeFirst > rangeFirst)
    2133                 SWAP(rangeFirst, rangeLast);
    2134         int range = (rangeLast - rangeFirst) + 1;
    2135 
    2136         do {
    2137                 _seqRandomizeBase = _seqRandomizeBase * 1103515245 + 12345;
    2138                 result = ((range * ((_seqRandomizeBase % 0x7fffffff) & 0x7fff)) / 32768) + rangeFirst;
    2139         } while (rangeLast < result);
    2140 
    2141         return result;
    2142 }
    2143 
    21442103void KyraEngine_v2::seq_showStarcraftLogo() {
    21452104        WSAMovieV2 * ci = new WSAMovieV2(this);
    21462105        assert(ci);