diff -r 675254f6311c src/newgrf.cpp --- a/src/newgrf.cpp Thu Dec 17 23:26:25 2009 +0000 +++ b/src/newgrf.cpp Fri Dec 18 18:55:00 2009 +0100 @@ -251,6 +251,10 @@ gf->spritegroups_count = 0; } +static bool IsBaseGRF(uint32 grfid) +{ + return (grfid & BSWAP32(0xFF000000)) == BSWAP32(0xFF000000); +} typedef std::map StringIDToGRFIDMapping; static StringIDToGRFIDMapping _string_to_grf_mapping; @@ -3620,8 +3624,8 @@ uint16 num = grf_load_extended(&buf); uint16 offset = HasBit(type, 7) ? grf_load_extended(&buf) : 0; ClrBit(type, 7); // Clear the high bit as that only indicates whether there is an offset. - - if ((type == 0x0D) && (num == 10) && _cur_grffile->is_ottdfile) { + + if ((type == 0x0D) && (num == 10) && IsBaseGRF(_cur_grffile->grfid)) { /* Special not-TTDP-compatible case used in openttd(d/w).grf * Missing shore sprites and initialisation of SPR_SHORE_BASE */ grfmsg(2, "GraphicsNew: Loading 10 missing shore sprites from openttd(d/w).grf.");