diff options
author | frosch <frosch@openttd.org> | 2017-01-14 15:48:19 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2017-01-14 15:48:19 +0000 |
commit | 1aedadb49b75862457bf29ac58a55d7dc80dcb35 (patch) | |
tree | 9697f62b4690d88c7f85db1dffe4ee53682ae841 /src/gfxinit.cpp | |
parent | ec9a920aab1af1001abb216a89cdc13e0ba1c3ab (diff) | |
download | openttd-1aedadb49b75862457bf29ac58a55d7dc80dcb35.tar.xz |
(svn r27730) -Change: Split openttd.grf into openttd.grf and orig_extra.grf
openttd.grf is now always loaded and provides all extra graphics in case the (possibly outdated) baseset does not.
orig_extra.grf contains graphics specific to the original baseset only.
Diffstat (limited to 'src/gfxinit.cpp')
-rw-r--r-- | src/gfxinit.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 10bc0afa1..23172bdd5 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -197,31 +197,41 @@ static void LoadSpriteTables() InitializeUnicodeGlyphMap(); /* - * Load the base NewGRF with OTTD required graphics as first NewGRF. + * Load the base and extra NewGRF with OTTD required graphics as first NewGRF. * However, we do not want it to show up in the list of used NewGRFs, * so we have to manually add it, and then remove it later. */ GRFConfig *top = _grfconfig; - GRFConfig *master = new GRFConfig(used_set->files[GFT_EXTRA].filename); + + /* Default extra graphics */ + GRFConfig *master = new GRFConfig("OPENTTD.GRF"); + master->palette |= GRFP_GRF_DOS; + FillGRFDetails(master, false, BASESET_DIR); + ClrBit(master->flags, GCF_INIT_ONLY); + + /* Baseset extra graphics */ + GRFConfig *extra = new GRFConfig(used_set->files[GFT_EXTRA].filename); /* We know the palette of the base set, so if the base NewGRF is not * setting one, use the palette of the base set and not the global * one which might be the wrong palette for this base NewGRF. * The value set here might be overridden via action14 later. */ switch (used_set->palette) { - case PAL_DOS: master->palette |= GRFP_GRF_DOS; break; - case PAL_WINDOWS: master->palette |= GRFP_GRF_WINDOWS; break; + case PAL_DOS: extra->palette |= GRFP_GRF_DOS; break; + case PAL_WINDOWS: extra->palette |= GRFP_GRF_WINDOWS; break; default: break; } - FillGRFDetails(master, false, BASESET_DIR); + FillGRFDetails(extra, false, BASESET_DIR); + ClrBit(extra->flags, GCF_INIT_ONLY); - ClrBit(master->flags, GCF_INIT_ONLY); - master->next = top; + extra->next = top; + master->next = extra; _grfconfig = master; - LoadNewGRF(SPR_NEWGRFS_BASE, i); + LoadNewGRF(SPR_NEWGRFS_BASE, i, 2); /* Free and remove the top element. */ + delete extra; delete master; _grfconfig = top; } |