This bug can happen when using the program binary within a special,
customized version of R'n'D like "R'n'D jue" that does not contain
the usual "classic" artwork (like the graphics set "gfx_classic").
The problem is solved by doing a fallback to the default artwork set
(as it can be defined using "default_graphics_set") if the "classic"
artwork set cannot be found.
{
char *artwork_set = getArtworkIdentifierForUserLevelSet(type);
TreeInfo *artwork_first_node = ARTWORK_FIRST_NODE(artwork, type);
+ TreeInfo *ti = getTreeInfoFromIdentifier(artwork_first_node, artwork_set);
- return getTreeInfoFromIdentifier(artwork_first_node, artwork_set);
+ if (ti == NULL)
+ {
+ ti = getTreeInfoFromIdentifier(artwork_first_node,
+ ARTWORK_DEFAULT_SUBDIR(type));
+ if (ti == NULL)
+ Error(ERR_EXIT, "cannot find default graphics -- should not happen");
+ }
+
+ return ti;
}
boolean checkIfCustomArtworkExistsForCurrentLevelSet(void)
(type) == ARTWORK_TYPE_MUSIC ? \
getUserMusicDir() : "")
+#define ARTWORK_DEFAULT_SUBDIR(type) \
+ ((type) == ARTWORK_TYPE_GRAPHICS ? \
+ GFX_DEFAULT_SUBDIR : \
+ (type) == ARTWORK_TYPE_SOUNDS ? \
+ SND_DEFAULT_SUBDIR : \
+ MUS_DEFAULT_SUBDIR)
+
#define UPDATE_BUSY_STATE() \
{ \
if (gfx.draw_busy_anim_function != NULL) \