Ticket #8296: ftdemofix.2.patch
File ftdemofix.2.patch, 8.7 KB (added by , 20 years ago) |
---|
-
scumm/help.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/help.cpp scummvm/scumm/help.cpp
old new 47 47 case GID_DIG: 48 48 case GID_FT: 49 49 case GID_CMI: 50 case GID_FTDEMO: 50 51 return 3; 51 52 break; 52 53 /* TODO - I don't know the controls for these games … … 215 216 ADD_BIND("b", "Black and White / Color"); 216 217 break; 217 218 case GID_FT: 219 case GID_FTDEMO: 218 220 ADD_BIND("e", "Eyes"); 219 221 ADD_BIND("t", "Tongue"); 220 222 ADD_BIND("i", "Inventory"); -
scumm/imuse_digi.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/imuse_digi.cpp scummvm/scumm/imuse_digi.cpp
old new 1066 1066 return 0; 1067 1067 } 1068 1068 } 1069 } else if (_scumm->_gameId == GID_FT ) {1069 } else if (_scumm->_gameId == GID_FT || _scumm->_gameId == GID_FTDEMO) { 1070 1070 for (l = 0;; l++) { 1071 1071 if (_ftStateMusicTable[l].index == -1) { 1072 1072 return 1; … … 1113 1113 return 0; 1114 1114 } 1115 1115 } 1116 } else if (_scumm->_gameId == GID_FT ) {1116 } else if (_scumm->_gameId == GID_FT || _scumm->_gameId == GID_FTDEMO) { 1117 1117 for (l = 0;; l++) { 1118 1118 if (_ftSeqMusicTable[l].index == -1) { 1119 1119 return 1; -
scumm/resource.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/resource.cpp scummvm/scumm/resource.cpp
old new 87 87 if (room > 0 && (_version == 8)) 88 88 VAR(VAR_CURRENTDISK) = res.roomno[rtRoom][room]; 89 89 sprintf(buf, "%s.la%d", _gameName.c_str(), room == 0 ? 0 : res.roomno[rtRoom][room]); 90 sprintf(buf2, "%s.%.3d", _gameName.c_str(), room == 0 ? 0 : res.roomno[rtRoom][room]); 90 91 // FIXME: Now it is not possible to have target file and 92 // main resource file named differently 93 if (_gameId == GID_FTDEMO) 94 sprintf(buf2, "ft.%.3d", room == 0 ? 0 : res.roomno[rtRoom][room]); 95 else 96 sprintf(buf2, "%s.%.3d", _gameName.c_str(), room == 0 ? 0 : res.roomno[rtRoom][room]); 91 97 } else if (_features & GF_HUMONGOUS) 92 98 sprintf(buf, "%s.he%.1d", _gameName.c_str(), room == 0 ? 0 : res.roomno[rtRoom][room]); 93 99 else { … … 2069 2075 _numCostumes = _fileHandle.readUint16LE(); 2070 2076 2071 2077 _objectRoomTable = (byte *)calloc(_numGlobalObjects, 1); 2072 _numGlobalScripts = 2000; 2078 2079 if (_gameId == GID_FTDEMO) 2080 _numGlobalScripts = 300; 2081 else 2082 _numGlobalScripts = 2000; 2073 2083 2074 2084 _shadowPaletteSize = NUM_SHADOW_PALETTE * 256; 2075 2085 // FIXME better check for the more recent windows based humongous games... -
scumm/script_v6.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/script_v6.cpp scummvm/scumm/script_v6.cpp
old new 1814 1814 // Full Throttle implements conversation by creating new verbs, one 1815 1815 // for each option, but it never tells when to actually draw them. 1816 1816 1817 if (_gameId == GID_FT )1817 if (_gameId == GID_FT || _gameId == GID_FTDEMO) 1818 1818 _verbRedraw = true; 1819 1819 1820 1820 op = fetchScriptByte(); … … 2411 2411 // INSANE mode 0: SMUSH movie playback 2412 2412 if (args[1] == 0) { 2413 2413 sp->play((char *)getStringAddressVar(VAR_VIDEONAME), getGameDataPath()); 2414 } else if (_gameId == GID_FT) { 2415 int insaneMode = readArray(233,0,0); 2414 } else if (_gameId == GID_FT || _gameId == GID_FTDEMO) { 2415 int insaneVarNum; 2416 int insaneMode; 2417 2418 if (_gameId == GID_FTDEMO) 2419 insaneVarNum = 232; 2420 else 2421 insaneVarNum = 233; 2422 2423 insaneMode = readArray(insaneVarNum,0,0); 2424 2425 // FIXME: FT Demo has different Insane 2416 2426 debug(1, "FT_INSANE Mode: %d", insaneMode); 2417 2427 switch (insaneMode) { 2418 2428 case 0: … … 2425 2435 sp->play("tovista1.san", getGameDataPath()); 2426 2436 break; 2427 2437 case 3: 2428 if (readArray( 233,0,50) == 0) {2438 if (readArray(insaneVarNum,0,50) == 0) { 2429 2439 InfoDialog info(this, "Set MineRoad - You can now jump the gorge."); 2430 2440 runDialog(info); 2431 2441 2432 writeArray( 233, 0, 50, 1); // INSANE callback: Chain2433 writeArray( 233, 0, 51, 1); // INSANE callback: Chainsaw2434 writeArray( 233, 0, 52, 1); // INSANE callback: Mace2435 writeArray( 233, 0, 53, 1); // INSANE callback: 2x42436 writeArray( 233, 0, 54, 1); // INSANE callback: Wrench2437 writeArray( 233, 0, 55, 1); // INSANE callback: Dust2442 writeArray(insaneVarNum, 0, 50, 1); // INSANE callback: Chain 2443 writeArray(insaneVarNum, 0, 51, 1); // INSANE callback: Chainsaw 2444 writeArray(insaneVarNum, 0, 52, 1); // INSANE callback: Mace 2445 writeArray(insaneVarNum, 0, 53, 1); // INSANE callback: 2x4 2446 writeArray(insaneVarNum, 0, 54, 1); // INSANE callback: Wrench 2447 writeArray(insaneVarNum, 0, 55, 1); // INSANE callback: Dust 2438 2448 2439 writeArray( 233, 0, 8, 1); // INSANE callback: Give Googles2440 writeArray( 233, 0, 7, 1); // INSANE callback: Give nitro fuel2449 writeArray(insaneVarNum, 0, 8, 1); // INSANE callback: Give Googles 2450 writeArray(insaneVarNum, 0, 7, 1); // INSANE callback: Give nitro fuel 2441 2451 2442 2452 putState(235, 1); // Cheat and activate Ramp 2443 2453 writeVar(142 | 0x8000, 1); // Cheat and activate auto-booster (fan) -
scumm/scumm.h
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/scumm.h scummvm/scumm/scumm.h
old new 189 189 GID_PUTTDEMO, 190 190 GID_PUTTPUTT, 191 191 GID_PJSDEMO, 192 GID_MONKEY_SEGA 192 GID_MONKEY_SEGA, 193 GID_FTDEMO 193 194 }; 194 195 195 196 #define _maxRooms res.num[rtRoom] -
scumm/scummvm.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/scummvm.cpp scummvm/scumm/scummvm.cpp
old new 188 188 GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE}, 189 189 {"ftdemo", "Full Throttle (Mac Demo)", GID_FT, 7, MDT_NONE, 190 190 GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE}, 191 {"ftpcdemo", "Full Throttle (Demo)", GID_FTDEMO, 7, MDT_NONE, 192 GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE}, 191 193 192 194 {"dig", "The Dig", GID_DIG, 7, MDT_NONE, 193 195 GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE}, … … 1482 1484 // texts have to be drawn before the blast objects. Unless 1483 1485 // someone can think of a better way to achieve this effect. 1484 1486 1485 if (_gameId == GID_FT ) {1487 if (_gameId == GID_FT || _gameId == GID_FTDEMO) { 1486 1488 drawBlastTexts(); 1487 1489 drawBlastObjects(); 1488 1490 } else { … … 2769 2771 strcpy(detectName2, g->gameName); 2770 2772 if (g->features & GF_HUMONGOUS) { 2771 2773 strcat(detectName2, ".he0"); 2774 } else if (g->id == GID_FTDEMO) { 2775 // FIXME: Now it is not possible to have target file and 2776 // main resource file named differently 2777 strcpy(detectName, "ft.000"); 2772 2778 } else if (g->version >= 7) { 2773 2779 strcat(detectName2, ".la0"); 2774 2780 } else -
scumm/smush/smush_player.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/smush/smush_player.cpp scummvm/scumm/smush/smush_player.cpp
old new 839 839 _sf[2] = new SmushFont(true, false); 840 840 _sf[0]->loadFont("scummfnt.nut", directory); 841 841 _sf[2]->loadFont("titlfnt.nut", directory); 842 } else if (_scumm->_gameId == GID_FTDEMO) { 843 _sf[0] = new SmushFont(true, false); 844 _sf[0]->loadFont("scummfnt.nut", directory); 842 845 } else if (_scumm->_gameId == GID_DIG) { 843 846 for (i = 0; i < 4; i++) { 844 847 sprintf(file_font, "font%d.nut", i); -
scumm/sound.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/sound.cpp scummvm/scumm/sound.cpp
old new 120 120 _scumm->ensureResourceLoaded(rtSound, sound); 121 121 addSoundToQueue2(sound); 122 122 } else { 123 // WARNING ! This may break something, maybe this sould be put inside if (_gameID == GID_FT ) ?123 // WARNING ! This may break something, maybe this sould be put inside if (_gameID == GID_FT || _gameID == GID_FTDEMO) ? 124 124 // But why addSoundToQueue should not queue sound ? 125 125 _scumm->ensureResourceLoaded(rtSound, sound); 126 126 addSoundToQueue2(sound); -
scumm/string.cpp
diff --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/string.cpp scummvm/scumm/string.cpp
old new 401 401 // and never time out. We can't do it blindly for all games, because 402 402 // it causes problem with the FOA intro. 403 403 404 if ( _gameId == GID_FT&& a == 4)404 if ((_gameId == GID_FT || _gameId == GID_FTDEMO) && a == 4) 405 405 _talkDelay = -1; 406 406 407 407 if (!buf[0]) {