X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=bb214b604b24112384b946c6b3881cf6b5533d25;hb=ad8306cba93c058f00e21871a290302ce728d6b8;hp=cde94b1265cf5c75a46d9947c5d81354a92b5d86;hpb=b17705c5e8242e7769094e538b52c52c3c1687d0;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index cde94b12..bb214b60 100644 --- a/src/init.c +++ b/src/init.c @@ -2778,7 +2778,8 @@ void InitElementPropertiesEngine(int engine_version) CAN_EXPLODE_IMPACT(i))); /* ---------- CAN_EXPLODE_3X3 ------------------------------------------ */ - SET_PROPERTY(i, EP_CAN_EXPLODE_3X3, !CAN_EXPLODE_1X1(i)); + SET_PROPERTY(i, EP_CAN_EXPLODE_3X3, (CAN_EXPLODE(i) && + !CAN_EXPLODE_1X1(i))); /* ---------- CAN_BE_CRUMBLED ------------------------------------------ */ SET_PROPERTY(i, EP_CAN_BE_CRUMBLED, @@ -3202,7 +3203,9 @@ void InitLevelArtworkInfo() static void InitImages() { +#if 0 setLevelArtworkDir(artwork.gfx_first); +#endif #if 0 printf("::: InitImages for '%s' ['%s', '%s'] ['%s', '%s']\n", @@ -3226,8 +3229,10 @@ static void InitSound(char *identifier) if (identifier == NULL) identifier = artwork.snd_current->identifier; +#if 0 /* set artwork path to send it to the sound server process */ setLevelArtworkDir(artwork.snd_first); +#endif InitReloadCustomSounds(identifier); ReinitializeSounds(); @@ -3238,8 +3243,10 @@ static void InitMusic(char *identifier) if (identifier == NULL) identifier = artwork.mus_current->identifier; +#if 0 /* set artwork path to send it to the sound server process */ setLevelArtworkDir(artwork.mus_first); +#endif InitReloadCustomMusic(identifier); ReinitializeMusic(); @@ -3278,7 +3285,12 @@ static char *getNewArtworkIdentifier(int type) boolean setup_override_artwork = SETUP_OVERRIDE_ARTWORK(setup, type); char *setup_artwork_set = SETUP_ARTWORK_SET(setup, type); char *leveldir_identifier = leveldir_current->identifier; +#if 1 + /* !!! setLevelArtworkDir() should be moved to an earlier stage !!! */ + char *leveldir_artwork_set = setLevelArtworkDir(artwork_first_node); +#else char *leveldir_artwork_set = LEVELDIR_ARTWORK_SET(leveldir_current, type); +#endif boolean has_level_artwork_set = (leveldir_artwork_set != NULL); char *artwork_current_identifier; char *artwork_new_identifier = NULL; /* default: nothing has changed */ @@ -3287,7 +3299,6 @@ static char *getNewArtworkIdentifier(int type) if (!validLevelSeries(leveldir_current)) return NULL; - /* 1st step: determine artwork set to be activated in descending order: -------------------------------------------------------------------- 1. setup artwork (when configured to override everything else) @@ -3309,6 +3320,16 @@ static char *getNewArtworkIdentifier(int type) /* 2nd step: check if it is really needed to reload artwork set ------------------------------------------------------------ */ +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 0: '%s' ['%s', '%s'] ['%s' ('%s')]\n", + artwork_new_identifier, + ARTWORK_CURRENT_IDENTIFIER(artwork, type), + artwork_current_identifier, + leveldir_current->graphics_set, + leveldir_current->identifier); +#endif + /* ---------- reload if level set and also artwork set has changed ------- */ if (leveldir_current_identifier[type] != leveldir_identifier && (last_has_level_artwork_set[type] || has_level_artwork_set)) @@ -3317,12 +3338,22 @@ static char *getNewArtworkIdentifier(int type) leveldir_current_identifier[type] = leveldir_identifier; last_has_level_artwork_set[type] = has_level_artwork_set; +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 1: '%s'\n", artwork_new_identifier); +#endif + /* ---------- reload if "override artwork" setting has changed ----------- */ if (last_override_level_artwork[type] != setup_override_artwork) artwork_new_identifier = artwork_current_identifier; last_override_level_artwork[type] = setup_override_artwork; +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 2: '%s'\n", artwork_new_identifier); +#endif + /* ---------- reload if current artwork identifier has changed ----------- */ if (strcmp(ARTWORK_CURRENT_IDENTIFIER(artwork, type), artwork_current_identifier) != 0) @@ -3330,6 +3361,11 @@ static char *getNewArtworkIdentifier(int type) *(&(ARTWORK_CURRENT_IDENTIFIER(artwork, type))) = artwork_current_identifier; +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 3: '%s'\n", artwork_new_identifier); +#endif + /* ---------- do not reload directly after starting ---------------------- */ if (!initialized[type]) artwork_new_identifier = NULL; @@ -3337,10 +3373,16 @@ static char *getNewArtworkIdentifier(int type) initialized[type] = TRUE; #if 0 - printf("CHECKING OLD/NEW GFX:\n- OLD: %s\n- NEW: %s ['%s', '%s'] ['%s']\n", - artwork.gfx_current_identifier, artwork_current_identifier, - artwork.gfx_current->identifier, leveldir_current->graphics_set, - artwork_new_identifier); + if (type == ARTWORK_TYPE_GRAPHICS) + printf("::: 4: '%s'\n", artwork_new_identifier); +#endif + +#if 0 + if (type == ARTWORK_TYPE_GRAPHICS) + printf("CHECKING OLD/NEW GFX:\n- OLD: %s\n- NEW: %s ['%s', '%s'] ['%s']\n", + artwork.gfx_current_identifier, artwork_current_identifier, + artwork.gfx_current->identifier, leveldir_current->graphics_set, + artwork_new_identifier); #endif return artwork_new_identifier; @@ -3356,16 +3398,22 @@ void ReloadCustomArtwork() if (gfx_new_identifier != NULL) { #if 0 - printf("RELOADING GRAPHICS '%s' -> '%s' ['%s']\n", + printf("RELOADING GRAPHICS '%s' -> '%s' ['%s', '%s']\n", artwork.gfx_current_identifier, gfx_new_identifier, - artwork.gfx_current->identifier); + artwork.gfx_current->identifier, + leveldir_current->graphics_set); #endif ClearRectangle(window, 0, 0, WIN_XSIZE, WIN_YSIZE); InitImages(); +#if 0 + printf("... '%s'\n", + leveldir_current->graphics_set); +#endif + FreeTileClipmasks(); InitTileClipmasks();