From 744b3527e56da8dd982dc310f1574485809371f0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 31 Aug 2008 20:08:24 +0000 Subject: [PATCH] (svn r14208) -Fix (r14197): Crash if no .obg files are found. --- src/gfxinit.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index f76e90968e..d1195803aa 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; }