Mercurial > hg > openttd
changeset 17644:87028d4260be draft
(svn r22416) -Fix: When action14 specified different values for the palette, the values were OR-ed. Use the last set value instead.
author | frosch <frosch@openttd.org> |
---|---|
date | Tue, 03 May 2011 20:19:57 +0000 |
parents | f9a8beb3c108 |
children | a758139e348a |
files | src/newgrf.cpp |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6527,15 +6527,20 @@ buf->Skip(len); } else { char data = buf->ReadByte(); + GRFPalette pal = GRFP_GRF_UNSET; switch (data) { case '*': - case 'A': _cur_grfconfig->palette |= GRFP_GRF_ANY; break; - case 'W': _cur_grfconfig->palette |= GRFP_GRF_WINDOWS; break; - case 'D': _cur_grfconfig->palette |= GRFP_GRF_DOS; break; + case 'A': pal = GRFP_GRF_ANY; break; + case 'W': pal = GRFP_GRF_WINDOWS; break; + case 'D': pal = GRFP_GRF_DOS; break; default: grfmsg(2, "StaticGRFInfo: unexpected value '%02x' for 'INFO'->'PALS', ignoring this field", data); break; } + if (pal != GRFP_GRF_UNSET) { + _cur_grfconfig->palette &= ~GRFP_GRF_MASK; + _cur_grfconfig->palette |= pal; + } } return true; }