Ticket #9049: patchpalette.diff
File patchpalette.diff, 3.0 KB (added by , 15 years ago) |
---|
-
engines/scumm/scumm.cpp
494 494 case Common::kRenderCGA: 495 495 case Common::kRenderEGA: 496 496 case Common::kRenderAmiga: 497 if ((_game.version >= 4 && !(_game.features & GF_16COLOR)) || (_game.features & GF_OLD256)) 497 if ((_game.version >= 4 && !(_game.features & GF_16COLOR) 498 && !(_game.platform == Common::kPlatformAmiga && _renderMode == Common::kRenderEGA)) 499 || (_game.features & GF_OLD256)) 498 500 _renderMode = Common::kRenderDefault; 499 501 break; 500 502 -
engines/scumm/scumm.h
1018 1018 void setC64Palette(); 1019 1019 void setNESPalette(); 1020 1020 void setAmigaPalette(); 1021 void setAmigaMIPalette(); 1021 1022 void setHercPalette(); 1022 1023 void setCGAPalette(); 1023 1024 void setEGAPalette(); -
engines/scumm/palette.cpp
70 70 else 71 71 setEGAPalette(); 72 72 } 73 } else 73 } else { 74 if ((_game.platform == Common::kPlatformAmiga) && _game.version == 4) { 75 // if rendermode is set to EGA we use the full palette from the resources 76 // else we initialise and then lock down the first 16 colors. 77 if (_renderMode != Common::kRenderEGA) 78 setAmigaMIPalette(); 79 } 74 80 setDirtyColors(0, 255); 81 } 75 82 } 76 83 77 84 void ScummEngine::setC64Palette() { … … 187 194 setPalColor(15, 255, 255, 255); 188 195 } 189 196 197 void ScummEngine::setAmigaMIPalette() { 198 setPalColor( 0, 0, 0, 0); 199 setPalColor( 1, 0, 0, 170); 200 setPalColor( 2, 0, 136, 34); 201 setPalColor( 3, 0, 102, 119); 202 setPalColor( 4, 187, 102, 102); 203 setPalColor( 5, 170, 34, 170); 204 setPalColor( 6, 136, 85, 34); 205 setPalColor( 7, 119, 119, 119); 206 setPalColor( 8, 51, 51, 51); 207 setPalColor( 9, 34, 85, 221); 208 setPalColor(10, 34, 221, 68); 209 setPalColor(11, 0, 204, 255); 210 setPalColor(12, 255, 153, 153); 211 setPalColor(13, 255, 85, 255); 212 setPalColor(14, 255, 255, 119); 213 setPalColor(15, 255, 255, 255); 214 } 215 190 216 void ScummEngine::setHercPalette() { 191 217 setPalColor( 0, 0, 0, 0); 192 218 … … 258 284 } 259 285 260 286 void ScummEngine::setPaletteFromPtr(const byte *ptr, int numcolor) { 287 int firstIndex = 0; 261 288 int i; 262 289 byte *dest, r, g, b; 263 290 … … 277 304 278 305 dest = _currentPalette; 279 306 280 for (i = 0; i < numcolor; i++) { 307 if ((_game.platform == Common::kPlatformAmiga) && _game.version == 4 && _renderMode != Common::kRenderEGA) { 308 firstIndex = 16; 309 dest += 3 * 16; 310 ptr += 3 * 16; 311 } 312 313 for (i = firstIndex; i < numcolor; i++) { 281 314 r = *ptr++; 282 315 g = *ptr++; 283 316 b = *ptr++; … … 302 335 memcpy(_darkenPalette, _currentPalette, 768); 303 336 } 304 337 305 setDirtyColors( 0, numcolor - 1);338 setDirtyColors(firstIndex, numcolor - 1); 306 339 } 307 340 308 341 void ScummEngine::setDirtyColors(int min, int max) {