diff options
| author | Travis Howell | 2009-07-13 23:36:22 +0000 |
|---|---|---|
| committer | Travis Howell | 2009-07-13 23:36:22 +0000 |
| commit | 6f66d6a42565a803aac300eb6e8541029f682a01 (patch) | |
| tree | 6842fbe974a46ceeb965c3a2e2010a1fa79abfe7 /engines/cine | |
| parent | f7a2a9170ff9cbb3b71025c51b4fd870294b5a13 (diff) | |
| parent | 581be82b8366bca93fc3ea1c70b7aec921ad56a2 (diff) | |
| download | scummvm-rg350-6f66d6a42565a803aac300eb6e8541029f682a01.tar.gz scummvm-rg350-6f66d6a42565a803aac300eb6e8541029f682a01.tar.bz2 scummvm-rg350-6f66d6a42565a803aac300eb6e8541029f682a01.zip | |
Merged revisions 42433-42434,42436,42439-42441,42443-42446,42455-42456,42458-42459 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk
........
r42433 | sunmax | 2009-07-13 10:55:30 +1000 (Mon, 13 Jul 2009) | 5 lines
Reverted my previous change (fprintf vs fputs),
and properly implemented fputs for stderr case
on PS2 ;-)
........
r42434 | Kirben | 2009-07-13 17:55:11 +1000 (Mon, 13 Jul 2009) | 1 line
Fix bug #2820472 - MAZE: Keyboard input fault.
........
r42436 | wjpalenstijn | 2009-07-14 00:46:14 +1000 (Tue, 14 Jul 2009) | 1 line
Add one more type of IQ-points filename (for bug #2820803)
........
r42439 | buddha_ | 2009-07-14 02:52:09 +1000 (Tue, 14 Jul 2009) | 1 line
Fix for bug #2669415 (FW: half walking speed in a screen).
........
r42440 | buddha_ | 2009-07-14 03:09:40 +1000 (Tue, 14 Jul 2009) | 1 line
Fix compilation under Windows (The fabs-calls were causing error C2668 about 'ambiguous call to overloaded function').
........
r42441 | sev | 2009-07-14 03:28:49 +1000 (Tue, 14 Jul 2009) | 2 lines
Add Drascula engine to the credits
........
r42443 | lordhoto | 2009-07-14 03:48:13 +1000 (Tue, 14 Jul 2009) | 1 line
Got rid of Screen_LoL::_paletteConvTable.
........
r42444 | lordhoto | 2009-07-14 04:31:42 +1000 (Tue, 14 Jul 2009) | 1 line
Support transparent guioptions update on game launch for AdvancedMetaEngine.
........
r42445 | lordhoto | 2009-07-14 04:32:03 +1000 (Tue, 14 Jul 2009) | 1 line
Add transparent GUI options update for SCUMM too.
........
r42446 | lordhoto | 2009-07-14 04:47:32 +1000 (Tue, 14 Jul 2009) | 1 line
Refactor GUI options update into a function in Common: updateGameGUIOptions.
........
r42455 | fingolfin | 2009-07-14 08:08:56 +1000 (Tue, 14 Jul 2009) | 1 line
Unify PS2 and non-PS2 alloc code in Common::Array code (if this causes regressions somewhere, we better find a fix that also works on PS2)
........
r42456 | cyx | 2009-07-14 08:11:54 +1000 (Tue, 14 Jul 2009) | 1 line
tucker: fixed issues with dirty rects handling (tracker item #2597763)
........
r42458 | cyx | 2009-07-14 08:19:10 +1000 (Tue, 14 Jul 2009) | 1 line
tucker: added workaround for original game glitch (tracker item #2597763)
........
r42459 | fingolfin | 2009-07-14 08:19:33 +1000 (Tue, 14 Jul 2009) | 1 line
Completed name of the creator of our logo
........
svn-id: r42462
Diffstat (limited to 'engines/cine')
| -rw-r--r-- | engines/cine/script_fw.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/engines/cine/script_fw.cpp b/engines/cine/script_fw.cpp index 0c92beb650..a9824674e6 100644 --- a/engines/cine/script_fw.cpp +++ b/engines/cine/script_fw.cpp @@ -1443,6 +1443,38 @@ int FWScript::o1_palRotate() { int FWScript::o1_break() { debugC(5, kCineDebugScript, "Line: %d: break", _line); + // WORKAROUND for bug #2669415 ("FW: half walking speed in a screen"). + // The problem was that in Amiga/Atari ST versions of Future Wars the + // walking speed has halved in a forest scene where a monk's robe hangs + // on a tree branch (Up and to the left from the medieval castle's front). + // + // Initialization script for the scene is PART02.PRC's 26th script (011_INIT) + // and the background used in the scene is L11.PI1. The difference between + // the PC version and the Amiga/Atari ST version of the script is that the + // PC version calls scripts 37 and 36 for handling movement of the character + // when Amiga/Atari ST version calls scripts 22 and 21 for the same purpose + // (Scripts 37 and 22 handle vertical movement, 36 and 21 the horizontal). + // + // The called scripts only differ functionally so that all BREAK opcodes have been + // doubled in the Amiga/Atari ST versions (i.e. one BREAK has become two BREAKs) + // and in script 21 after LABEL_25 there's an extra opcode that isn't in script 36: + // SET globalvars[251], 0. + // + // As a BREAK opcode stops the execution of a script it causes a pause and + // with the BREAKs doubled the pause is twice as long in the Amiga/Atari ST versions. + // Thus the longer pause is eliminated by running only one BREAK when several + // are designated (i.e. ignoring a BREAK if there's another BREAK after it). + // + // TODO: Check whether the speed is halved in any other scenes in Amiga/Atari ST versions under ScummVM + // TODO: Check whether the speed is halved when running the original executable under an emulator + if (g_cine->getGameType() == Cine::GType_FW && + (g_cine->getPlatform() == Common::kPlatformAmiga || g_cine->getPlatform() == Common::kPlatformAtariST) && + _pos < _script._size && _script.getByte(_pos) == (0x4F + 1) && // Is the next opcode a BREAK too? + scumm_stricmp(currentPrcName, "PART02.PRC") == 0 && + scumm_stricmp(renderer->getBgName(), "L11.PI1") == 0) { + return 0; + } + return 1; } |
