diff options
author | michi_cc <michi_cc@openttd.org> | 2011-10-04 21:35:52 +0000 |
---|---|---|
committer | michi_cc <michi_cc@openttd.org> | 2011-10-04 21:35:52 +0000 |
commit | 71bd681d87065d093aa11195d3949cf7b7be4a07 (patch) | |
tree | 026cc10806c15b00c2948378b9538594db039224 /src/newgrf.cpp | |
parent | c575b5bbd7c8a225ff5a2b1120c58edfc96f078d (diff) | |
download | openttd-71bd681d87065d093aa11195d3949cf7b7be4a07.tar.xz |
(svn r23001) -Feature: [NewGRF] Automatically switch to a 32 bpp blitter on NewGRF indication.
Diffstat (limited to 'src/newgrf.cpp')
-rw-r--r-- | src/newgrf.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 3266a2c25..d71479585 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6993,6 +6993,28 @@ static bool ChangeGRFPalette(size_t len, ByteReader *buf) return true; } +/** Callback function for 'INFO'->'BLTR' to set the blitter info. */ +static bool ChangeGRFBlitter(size_t len, ByteReader *buf) +{ + if (len != 1) { + grfmsg(2, "StaticGRFInfo: expected only 1 byte for 'INFO'->'BLTR' but got " PRINTF_SIZE ", ignoring this field", len); + buf->Skip(len); + } else { + char data = buf->ReadByte(); + GRFPalette pal = GRFP_BLT_UNSET; + switch (data) { + case '8': pal = GRFP_BLT_UNSET; break; + case '3': pal = GRFP_BLT_32BPP; break; + default: + grfmsg(2, "StaticGRFInfo: unexpected value '%02x' for 'INFO'->'BLTR', ignoring this field", data); + return true; + } + _cur.grfconfig->palette &= ~GRFP_BLT_MASK; + _cur.grfconfig->palette |= pal; + } + return true; +} + /** Callback function for 'INFO'->'VRSN' to the version of the NewGRF. */ static bool ChangeGRFVersion(size_t len, ByteReader *buf) { @@ -7282,6 +7304,7 @@ AllowedSubtags _tags_info[] = { AllowedSubtags('DESC', ChangeGRFDescription), AllowedSubtags('NPAR', ChangeGRFNumUsedParams), AllowedSubtags('PALS', ChangeGRFPalette), + AllowedSubtags('BLTR', ChangeGRFBlitter), AllowedSubtags('VRSN', ChangeGRFVersion), AllowedSubtags('MINV', ChangeGRFMinVersion), AllowedSubtags('PARA', HandleParameterInfo), |