Ticket #8782: hofStartupFix.patch

File hofStartupFix.patch, 3.9 KB (added by athrxx, 13 years ago)
  • kyra.cpp

     
    162162                        _lang = 2;
    163163                        break;
    164164
     165                case Common::JA_JPN:
     166                        _lang = 3;
     167                        break;
     168
    165169                default:
    166170                        warning("unsupported language, switching back to English");
    167171                        _lang = 0;
  • kyra_v2.cpp

     
    212212        _screen->setMouseCursor(0, 0, getShapePtr(0));
    213213
    214214        _screenBuffer = new uint8[64000];
     215        _unkBuf200kByte = new uint8[200000];
    215216
    216         loadCCodeBuffer("C_CODE.XXX");
    217         loadOptionsBuffer("OPTIONS.XXX");
    218         loadChapterBuffer(_newChapterFile);
     217        loadChapterBuffer(_newChapterFile);     
    219218
    220         _unkBuf200kByte = new uint8[200000];
     219        if (_flags.isTalkie) {
     220                loadCCodeBuffer("C_CODE.XXX");
     221                loadOptionsBuffer("OPTIONS.XXX");
    221222
    222         showMessageFromCCode(265, 150, 0);
     223                showMessageFromCCode(265, 150, 0);
     224                openTalkFile(0);
     225                _currentTalkFile = 1;
     226                openTalkFile(1);
     227        }
    223228
    224         openTalkFile(0);
    225         _currentTalkFile = 1;
    226         openTalkFile(1);
    227 
    228229        showMessage(0, 207);
    229230
    230231        _screen->setShapePages(5, 3);
     
    345346
    346347                int inputFlag = checkInput(0/*dword_324C5*/);
    347348                removeInputTop();
     349                if (_flags.useHiResOverlay) {
     350                        _mouseX >>= 1;
     351                        _mouseY >>= 1;
     352                }
    348353
    349354                update();
    350355
     
    805810const char *KyraEngine_v2::getTableString(int id, const uint8 *buffer, int decode) {
    806811        const char *string = (const char*)getTableEntry(buffer, id);
    807812
    808         if (decode) {
     813        if (decode && _flags.lang != Common::JA_JPN) {
    809814                decodeString1(string, _internStringBuf);
    810815                decodeString2(_internStringBuf, _internStringBuf);
    811816                string = _internStringBuf;
     
    10121017        char filename[12];
    10131018        strcpy(filename, "_NPC.EMC");
    10141019
    1015         switch (_lang) {
    1016         case 0:
    1017                 filename[5] = 'E';
    1018                 break;
     1020        if (!(_flags.platform == Common::kPlatformPC && !_flags.isTalkie)) {
     1021                switch (_lang) {
     1022                case 0:
     1023                        filename[5] = 'E';
     1024                        break;
    10191025
    1020         case 1:
    1021                 filename[5] = 'F';
    1022                 break;
     1026                case 1:
     1027                        filename[5] = 'F';
     1028                        break;
    10231029
    1024         case 2:
    1025                 filename[5] = 'G';
    1026                 break;
     1030                case 2:
     1031                        filename[5] = 'G';
     1032                        break;
    10271033
    1028         default:
    1029                 break;
    1030         };
     1034                case 3:
     1035                        filename[5] = 'J';
     1036                        break;
    10311037
     1038                default:
     1039                        break;
     1040                };
     1041        }
     1042
    10321043        _scriptInterpreter->loadScript(filename, &_npcScriptData, &_opcodes);
    10331044}
    10341045
  • scene_v2.cpp

     
    3535void KyraEngine_v2::enterNewScene(uint16 newScene, int facing, int unk1, int unk2, int unk3) {
    3636        if (_newChapterFile != _currentTalkFile) {
    3737                _currentTalkFile = _newChapterFile;
    38                 showMessageFromCCode(265, 150, 0);
    39                 _screen->updateScreen();
    40                 openTalkFile(_currentTalkFile);
     38                if (_flags.isTalkie) {
     39                        showMessageFromCCode(265, 150, 0);
     40                        _screen->updateScreen();
     41                        openTalkFile(_currentTalkFile);
     42                }
    4143                showMessage(0, 207);
    4244                _screen->updateScreen();
    4345        }
     
    425427       
    426428        strcpy(filename, _sceneList[sceneId].filename);
    427429        strcat(filename, ".");
    428         strcat(filename, _scriptLangExt[_lang]);
     430        strcat(filename, _scriptLangExt[(_flags.platform == Common::kPlatformPC && !_flags.isTalkie) ? 0 : _lang]);
    429431       
    430432        assert(_res->getFileSize(filename));
    431433        _scriptInterpreter->loadScript(filename, &_sceneScriptData, &_opcodes);
  • staticres.cpp

     
    13401340const char *KyraEngine_v2::_languageExtension[] = {
    13411341        "ENG",
    13421342        "FRE",
    1343         "GER"/*,
     1343        "GER",/*,
    13441344        "ITA",          Italian and Spanish was never included
    13451345        "SPA"*/
     1346        "JPN"
    13461347};
    13471348
    13481349const char *KyraEngine_v2::_scriptLangExt[] = {
    13491350        "EMC",
    13501351        "FMC",
    1351         "GMC"/*,
     1352        "GMC",/*,
    13521353        "IMC",          Italian and Spanish was never included
    13531354        "SMC"*/
     1355        "JMC"
    13541356};
    13551357
    13561358const int KyraEngine_v2::_characterFrameTable[] = {