Ticket #8144: noir.diff

File noir.diff, 1.3 KB (added by eriktorbjorn, 21 years ago)

Patch against a December 10 CVS snapshot

  • scummvm/scumm/script_v2.cpp

    diff -ur ScummVM-cvs20021210/scummvm/scumm/script_v2.cpp ScummVM-cvs20021210+hack/scummvm/scumm/script_v2.cpp
    old new  
    15791579                break;
    15801580
    15811581        case 213:                                                                               /* set palette */
    1582                 // One case where this is used is to turn off Sam & Max film
    1583                 // noir mode. Unfortunately it only restores color to the
    1584                 // palette, it doesn't take palette manipulation (darkening,
    1585                 // etc.) into account. So, for instance, if you turn on film
    1586                 // noir mode in Sam & Max's office, turn off the light and turn
    1587                 // off film noir mode, the room will no longer look dark.
    1588                 //
    1589                 // This bug is present in the original interpreter, so it may
    1590                 // not be worth the trouble fixing it.
    1591                 setPalette(pop());
     1582                a = pop();
     1583
     1584                // This opcode is used when turning off noir mode in Sam & Max,
     1585                // but since our implementation of this feature doesn't change
     1586                // the original palette there's no need to reload it. Doing it
     1587                // this way, we avoid some graphics glitches that the original
     1588                // interpreter had.
     1589
     1590                if (_gameId == GID_SAMNMAX && vm.slot[_currentScript].number == 64)
     1591                        setDirtyColors(0, 255);
     1592                else
     1593                        setPalette(a);
    15921594                break;
    15931595
    15941596        default: