(svn r14208) -Fix (r14197): Crash if no .obg files are found.

This commit is contained in:
peter1138 2008-08-31 20:08:24 +00:00
parent dc2ace2494
commit 744b3527e5

View File

@ -169,9 +169,9 @@ static bool FileMD5(const MD5File file)
* Determine the graphics pack that has to be used. * Determine the graphics pack that has to be used.
* The one with the most correct files wins. * 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; const GraphicsSet *best = _available_graphics_sets;
for (const GraphicsSet *c = _available_graphics_sets; c != NULL; c = c->next) { for (const GraphicsSet *c = _available_graphics_sets; c != NULL; c = c->next) {
@ -182,6 +182,7 @@ static void DetermineGraphicsPack()
} }
_used_graphics_set = best; _used_graphics_set = best;
return _used_graphics_set != NULL;
} }
/** /**
@ -191,6 +192,7 @@ static void DetermineGraphicsPack()
*/ */
static void DeterminePalette() static void DeterminePalette()
{ {
assert(_used_graphics_set != NULL);
if (_use_palette < MAX_PAL) return; if (_use_palette < MAX_PAL) return;
_use_palette = _used_graphics_set->palette; _use_palette = _used_graphics_set->palette;
@ -203,7 +205,6 @@ static void DeterminePalette()
*/ */
void CheckExternalFiles() void CheckExternalFiles()
{ {
DetermineGraphicsPack();
DeterminePalette(); DeterminePalette();
static const size_t ERROR_MESSAGE_LENGTH = 128; static const size_t ERROR_MESSAGE_LENGTH = 128;
@ -468,7 +469,7 @@ void FindGraphicsSets()
bool SetGraphicsSet(const char *name) bool SetGraphicsSet(const char *name)
{ {
if (StrEmpty(name)) { if (StrEmpty(name)) {
DetermineGraphicsPack(); if (!DetermineGraphicsPack()) return false;
CheckExternalFiles(); CheckExternalFiles();
return true; return true;
} }