Ticket #8296: ftdemofix.patch
File ftdemofix.patch, 8.8 KB (added by , 20 years ago) |
---|
-
scumm/help.cpp
diff -N --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 -N --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 -N --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 -N --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/script_v6.cpp scummvm/scumm/script_v6.cpp
old new 1813 1813 // Full Throttle implements conversation by creating new verbs, one 1814 1814 // for each option, but it never tells when to actually draw them. 1815 1815 1816 if (_gameId == GID_FT )1816 if (_gameId == GID_FT || _gameId == GID_FTDEMO) 1817 1817 _verbRedraw = true; 1818 1818 1819 1819 op = fetchScriptByte(); … … 2410 2410 // INSANE mode 0: SMUSH movie playback 2411 2411 if (args[1] == 0) { 2412 2412 sp->play((char *)getStringAddressVar(VAR_VIDEONAME), getGameDataPath()); 2413 } else if (_gameId == GID_FT) { 2414 int insaneMode = readArray(233,0,0); 2413 } else if (_gameId == GID_FT || _gameId == GID_FTDEMO) { 2414 int insaneVarNum; 2415 int insaneMode; 2416 2417 if (_gameId == GID_FTDEMO) 2418 insaneVarNum = 232; 2419 else 2420 insaneVarNum = 233; 2421 2422 insaneMode = readArray(insaneVarNum,0,0); 2423 2424 // FIXME: FT Demo has different Insane 2415 2425 debug(1, "FT_INSANE Mode: %d", insaneMode); 2416 2426 switch (insaneMode) { 2417 2427 case 0: … … 2424 2434 sp->play("tovista1.san", getGameDataPath()); 2425 2435 break; 2426 2436 case 3: 2427 if (readArray( 233,0,50) == 0) {2437 if (readArray(insaneVarNum,0,50) == 0) { 2428 2438 InfoDialog info(this, "Set MineRoad - You can now jump the gorge."); 2429 2439 runDialog(info); 2430 2440 2431 writeArray( 233, 0, 50, 1); // INSANE callback: Chain2432 writeArray( 233, 0, 51, 1); // INSANE callback: Chainsaw2433 writeArray( 233, 0, 52, 1); // INSANE callback: Mace2434 writeArray( 233, 0, 53, 1); // INSANE callback: 2x42435 writeArray( 233, 0, 54, 1); // INSANE callback: Wrench2436 writeArray( 233, 0, 55, 1); // INSANE callback: Dust2441 writeArray(insaneVarNum, 0, 50, 1); // INSANE callback: Chain 2442 writeArray(insaneVarNum, 0, 51, 1); // INSANE callback: Chainsaw 2443 writeArray(insaneVarNum, 0, 52, 1); // INSANE callback: Mace 2444 writeArray(insaneVarNum, 0, 53, 1); // INSANE callback: 2x4 2445 writeArray(insaneVarNum, 0, 54, 1); // INSANE callback: Wrench 2446 writeArray(insaneVarNum, 0, 55, 1); // INSANE callback: Dust 2437 2447 2438 writeArray( 233, 0, 8, 1); // INSANE callback: Give Googles2439 writeArray( 233, 0, 7, 1); // INSANE callback: Give nitro fuel2448 writeArray(insaneVarNum, 0, 8, 1); // INSANE callback: Give Googles 2449 writeArray(insaneVarNum, 0, 7, 1); // INSANE callback: Give nitro fuel 2440 2450 2441 2451 putState(235, 1); // Cheat and activate Ramp 2442 2452 writeVar(142 | 0x8000, 1); // Cheat and activate auto-booster (fan) -
scumm/scumm.h
diff -N --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/scumm.h scummvm/scumm/scumm.h
old new 186 186 GID_PUTTDEMO, 187 187 GID_PUTTPUTT, 188 188 GID_PJSDEMO, 189 GID_MONKEY_SEGA 189 GID_MONKEY_SEGA, 190 GID_FTDEMO 190 191 }; 191 192 192 193 #define _maxRooms res.num[rtRoom] -
scumm/scummvm.cpp
diff -N --exclude CVS --exclude .deps --rec -u scummvm.old/scumm/scummvm.cpp scummvm/scumm/scummvm.cpp
old new 186 186 /* Scumm Version 7 */ 187 187 {"ft", "Full Throttle", GID_FT, 7, MDT_NONE, 188 188 GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE}, 189 {"ftdemo", "Full Throttle (Mac Demo)", GID_FT, 7, MDT_NONE, 189 {"ftdemo", "Full Throttle (Demo)", GID_FTDEMO, 7, MDT_NONE, 190 GF_NEW_OPCODES | GF_NEW_COSTUMES | GF_NEW_CAMERA | GF_DIGI_IMUSE}, 191 {"ftmacdemo", "Full Throttle (Mac Demo)", GID_FT, 7, MDT_NONE, 190 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, … … 1485 1487 // texts have to be drawn before the blast objects. Unless 1486 1488 // someone can think of a better way to achieve this effect. 1487 1489 1488 if (_gameId == GID_FT ) {1490 if (_gameId == GID_FT || _gameId == GID_FTDEMO) { 1489 1491 drawBlastTexts(); 1490 1492 drawBlastObjects(); 1491 1493 } else { … … 2768 2770 strcpy(detectName2, g->gameName); 2769 2771 if (g->features & GF_HUMONGOUS) { 2770 2772 strcat(detectName2, ".he0"); 2773 } else if (g->id == GID_FTDEMO) { 2774 // FIXME: Now it is not possible to have target file and 2775 // main resource file named differently 2776 strcpy(detectName, "ft.000"); 2771 2777 } else if (g->version >= 7) { 2772 2778 strcat(detectName2, ".la0"); 2773 2779 } else -
scumm/smush/smush_player.cpp
diff -N --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 -N --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 -N --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]) {