diff options
author | peter1138 <peter1138@openttd.org> | 2008-08-31 20:08:24 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2008-08-31 20:08:24 +0000 |
commit | 8b926efae36eb22bdacf1dc7671d2d8b3c6dfb7b (patch) | |
tree | c44abc289939568773ce63096bd58ef10c781be5 | |
parent | 9f91aacc07d9cbc5f6c68b6c5c2dc5b841d4eee6 (diff) | |
download | openttd-8b926efae36eb22bdacf1dc7671d2d8b3c6dfb7b.tar.xz |
(svn r14208) -Fix (r14197): Crash if no .obg files are found.
-rw-r--r-- | src/gfxinit.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index f76e90968..d1195803a 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -169,9 +169,9 @@ static bool FileMD5(const MD5File file) * Determine the graphics pack that has to be used. * The one with the most correct files wins. */ -static void DetermineGraphicsPack() +static bool DetermineGraphicsPack() { - if (_used_graphics_set != NULL) return; + if (_used_graphics_set != NULL) return true; const GraphicsSet *best = _available_graphics_sets; for (const GraphicsSet *c = _available_graphics_sets; c != NULL; c = c->next) { @@ -182,6 +182,7 @@ static void DetermineGraphicsPack() } _used_graphics_set = best; + return _used_graphics_set != NULL; } /** @@ -191,6 +192,7 @@ static void DetermineGraphicsPack() */ static void DeterminePalette() { + assert(_used_graphics_set != NULL); if (_use_palette < MAX_PAL) return; _use_palette = _used_graphics_set->palette; @@ -203,7 +205,6 @@ static void DeterminePalette() */ void CheckExternalFiles() { - DetermineGraphicsPack(); DeterminePalette(); static const size_t ERROR_MESSAGE_LENGTH = 128; @@ -468,7 +469,7 @@ void FindGraphicsSets() bool SetGraphicsSet(const char *name) { if (StrEmpty(name)) { - DetermineGraphicsPack(); + if (!DetermineGraphicsPack()) return false; CheckExternalFiles(); return true; } |