diff -ur ScummVM-cvs20020804/scummvm/script_v1.cpp ScummVM-cvs20020804+hack/scummvm/script_v1.cpp
old
|
new
|
|
1922 | 1922 | b = getVarOrDirectWord(0x40); |
1923 | 1923 | } |
1924 | 1924 | checkRange(256, 0, a, "o5_roomOps: 2: Illegal room color slot (%d)"); |
1925 | | _shadowPalette[a] = b; |
1926 | | // _fullRedraw = 1; |
| 1925 | _shadowPalette[b] = a; |
| 1926 | setDirtyColors(b, b); |
1927 | 1927 | } else { |
1928 | 1928 | a = getVarOrDirectWord(0x80); |
1929 | 1929 | b = getVarOrDirectWord(0x40); |
diff -ur ScummVM-cvs20020804/scummvm/scummvm.cpp ScummVM-cvs20020804+hack/scummvm/scummvm.cpp
old
|
new
|
|
1379 | 1379 | int first = _palDirtyMin; |
1380 | 1380 | int num = _palDirtyMax - first + 1; |
1381 | 1381 | int i; |
1382 | | byte *data = _currentPalette + first * 3; |
1383 | 1382 | |
1384 | 1383 | byte palette_colors[1024],*p = palette_colors; |
1385 | 1384 | |
1386 | 1385 | // Sam & Max film noir mode |
1387 | 1386 | if (_gameId == GID_SAMNMAX && readVar(0x8000)) |
1388 | 1387 | desaturatePalette(); |
1389 | | |
1390 | | for (i = 0; i != num; i++, data += 3, p+=4) { |
1391 | | p[0] = data[0]; |
1392 | | p[1] = data[1]; |
1393 | | p[2] = data[2]; |
1394 | | p[3] = 0; |
| 1388 | |
| 1389 | for (i = _palDirtyMin; i <= _palDirtyMax; i++) { |
| 1390 | byte *data; |
| 1391 | |
| 1392 | if (_features & GF_SMALL_HEADER) |
| 1393 | data = _currentPalette + _shadowPalette[i] * 3; |
| 1394 | else |
| 1395 | data = _currentPalette + i * 3; |
| 1396 | |
| 1397 | *p++ = data[0]; |
| 1398 | *p++ = data[1]; |
| 1399 | *p++ = data[2]; |
| 1400 | *p++ = 0; |
1395 | 1401 | } |
1396 | 1402 | |
1397 | 1403 | _system->set_palette(palette_colors, first, num); |