From 0cccb6d03df991d9c978ef3f7e16aadf3470a49b Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sat, 24 Aug 2002 23:56:19 +0200 Subject: [PATCH] rnd-20020824-3-src --- src/conftime.h | 2 +- src/init.c | 34 +++++++----------------- src/libgame/setup.c | 63 ++++++++++++++++++++++++--------------------- src/libgame/setup.h | 2 +- 4 files changed, 45 insertions(+), 56 deletions(-) diff --git a/src/conftime.h b/src/conftime.h index ca2edc0d..b80ee518 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2002-08-24 22:54]" +#define COMPILE_DATE_STRING "[2002-08-24 23:51]" diff --git a/src/init.c b/src/init.c index 38aec9ae..26f0268c 100644 --- a/src/init.c +++ b/src/init.c @@ -453,48 +453,28 @@ void ReloadCustomArtwork() snd_new_identifier = identifier_new; if (getTreeInfoFromIdentifier(artwork.mus_first, identifier_new) != getTreeInfoFromIdentifier(artwork.mus_first, identifier_new)) - artwork.mus_current_identifier = NULL; + mus_new_identifier = identifier_new; leveldir_current_identifier = leveldir_current->identifier; } /* custom level artwork configured in level series configuration file always overrides custom level artwork stored in level series directory - and (level independant) custom artwork configured in setup menue - (the path entry is needed to send it to the sound child process) */ + and (level independant) custom artwork configured in setup menue */ if (leveldir_current->graphics_set != NULL) - { - if (leveldir_current->graphics_path) - free(leveldir_current->graphics_path); - leveldir_current->graphics_path = NULL; - leveldir_current->graphics_path = - getStringCopy(getLevelArtworkDir(artwork.gfx_first)); gfx_new_identifier = leveldir_current->graphics_set; - } if (leveldir_current->sounds_set != NULL) - { - if (leveldir_current->sounds_path) - free(leveldir_current->sounds_path); - leveldir_current->sounds_path = NULL; - leveldir_current->sounds_path = - getStringCopy(getLevelArtworkDir(artwork.snd_first)); snd_new_identifier = leveldir_current->sounds_set; - } if (leveldir_current->music_set != NULL) - { - if (leveldir_current->music_path) - free(leveldir_current->music_path); - leveldir_current->music_path = NULL; - leveldir_current->music_path = - getStringCopy(getLevelArtworkDir(artwork.mus_first)); mus_new_identifier = leveldir_current->music_set; - } if (strcmp(artwork.gfx_current_identifier, gfx_new_identifier) != 0 || last_override_level_graphics != setup.override_level_graphics) { int i; + setLevelArtworkDir(artwork.gfx_first); + ClearRectangle(window, 0, 0, WIN_XSIZE, WIN_YSIZE); for(i=0; itype == TREE_TYPE_GRAPHICS_DIR ? leveldir_current->graphics_path : - ti->type == TREE_TYPE_SOUNDS_DIR ? leveldir_current->sounds_path : - ti->type == TREE_TYPE_MUSIC_DIR ? leveldir_current->music_path : NULL); + return; - if (artwork_path != NULL) - return artwork_path; + artwork_path_ptr = + (ti->type == TREE_TYPE_GRAPHICS_DIR ? &leveldir_current->graphics_path : + ti->type == TREE_TYPE_SOUNDS_DIR ? &leveldir_current->sounds_path : + &leveldir_current->music_path); artwork_set = (ti->type == TREE_TYPE_GRAPHICS_DIR ? leveldir_current->graphics_set : ti->type == TREE_TYPE_SOUNDS_DIR ? leveldir_current->sounds_set : - ti->type == TREE_TYPE_MUSIC_DIR ? leveldir_current->music_set : NULL); + leveldir_current->music_set); - if (artwork_set != NULL) - { - TreeInfo *level_artwork = getTreeInfoFromIdentifier(ti, artwork_set); + if ((level_artwork = getTreeInfoFromIdentifier(ti, artwork_set)) == NULL) + return; - if (level_artwork != NULL) - return getSetupArtworkDir(level_artwork); - } + if (*artwork_path_ptr != NULL) + free(*artwork_path_ptr); + + *artwork_path_ptr = getStringCopy(getSetupArtworkDir(level_artwork)); +} + +static char *getLevelArtworkDir(int type) +{ + char *artwork_path; + + if (leveldir_current == NULL) + return NOT_AVAILABLE; + + artwork_path = + (type == TREE_TYPE_GRAPHICS_DIR ? leveldir_current->graphics_path : + type == TREE_TYPE_SOUNDS_DIR ? leveldir_current->sounds_path : + type == TREE_TYPE_MUSIC_DIR ? leveldir_current->music_path : + NOT_AVAILABLE); - return NOT_AVAILABLE; + return artwork_path; } char *getLevelFilename(int nr) @@ -432,7 +444,7 @@ char *getCustomImageFilename(char *basename) if (!setup.override_level_graphics) { /* 1st try: look for special artwork configured in level series config */ - filename = getPath2(getLevelArtworkDir(artwork.gfx_first), basename); + filename = getPath2(getLevelArtworkDir(TREE_TYPE_GRAPHICS_DIR), basename); if (fileExists(filename)) return filename; @@ -469,12 +481,10 @@ char *getCustomSoundFilename(char *basename) if (!setup.override_level_sounds) { -#if 1 /* 1st try: look for special artwork configured in level series config */ - filename = getPath2(getLevelArtworkDir(artwork.snd_first), basename); + filename = getPath2(getLevelArtworkDir(TREE_TYPE_SOUNDS_DIR), basename); if (fileExists(filename)) return filename; -#endif /* 2nd try: look for special artwork in current level series directory */ filename = getPath3(getCurrentLevelDir(), SOUNDS_DIRECTORY, basename); @@ -514,12 +524,10 @@ char *getCustomMusicDirectory(void) if (!setup.override_level_music) { -#if 1 /* 1st try: look for special artwork configured in level series config */ - directory = getStringCopy(getLevelArtworkDir(artwork.mus_first)); + directory = getStringCopy(getLevelArtworkDir(TREE_TYPE_MUSIC_DIR)); if (fileExists(directory)) return directory; -#endif /* 2nd try: look for special artwork in current level series directory */ directory = getPath2(getCurrentLevelDir(), MUSIC_DIRECTORY); @@ -529,11 +537,6 @@ char *getCustomMusicDirectory(void) /* 3rd try: look for special artwork in configured artwork directory */ directory = getStringCopy(getSetupArtworkDir(artwork.mus_current)); - -#if 1 - printf("DEBUG: checking directory '%s' ...\n", directory); -#endif - if (fileExists(directory)) return directory; diff --git a/src/libgame/setup.h b/src/libgame/setup.h index 67f42611..3a5021be 100644 --- a/src/libgame/setup.h +++ b/src/libgame/setup.h @@ -171,7 +171,7 @@ struct TokenInfo ARTWORKCLASS_UNDEFINED) -char *getLevelArtworkDir(TreeInfo *); +void setLevelArtworkDir(TreeInfo *); char *getLevelFilename(int); char *getTapeFilename(int); char *getScoreFilename(int); -- 2.34.1