char **artwork_path_ptr, **artwork_set_ptr;
TreeInfo *level_artwork;
+ TreeInfo *tst1 = getTreeInfoFromIdentifier(leveldir_first, "jue1");
+ printf("::: XXX 0.1 '%s'\n", tst1->graphics_path);
+
if (ti == NULL || leveldir_current == NULL)
return;
artwork_path_ptr = &(LEVELDIR_ARTWORK_PATH(leveldir_current, ti->type));
artwork_set_ptr = &(LEVELDIR_ARTWORK_SET( leveldir_current, ti->type));
+ printf("::: ['%s', '%s']\n", tst1->identifier, leveldir_current->identifier);
+
+ printf("::: XXX 0.2 '%s' [%x]\n", tst1->graphics_path, tst1->graphics_path);
+
+#if 1
if (*artwork_path_ptr != NULL)
+ {
+ if (ti->type == 0)
+ printf("::: free'ing '%s' [%x] [%x] [type %d] ...\n",
+ *artwork_path_ptr, *artwork_path_ptr,
+ leveldir_current->graphics_path, ti->type);
+
free(*artwork_path_ptr);
+ }
+#endif
+
+ printf("::: XXX 0.3 '%s' [%x]\n", tst1->graphics_path, tst1->graphics_path);
if ((level_artwork = getTreeInfoFromIdentifier(ti, *artwork_set_ptr)))
+ {
*artwork_path_ptr = getStringCopy(getSetupArtworkDir(level_artwork));
+
+ printf(":1: setting to '%s' [type %d] ...\n", *artwork_path_ptr, ti->type);
+ }
else
{
/* No (or non-existing) artwork configured in "levelinfo.conf". This would
{
*artwork_path_ptr = getStringCopy(getDefaultArtworkDir(ti->type));
*artwork_set_ptr = getStringCopy(getDefaultArtworkSet(ti->type));
+
+ if (ti->type == 0)
+ printf(":2: setting to '%s' [type %d] ...\n",
+ *artwork_path_ptr, ti->type);
}
else
{
*artwork_path_ptr = getStringCopy(UNDEFINED_FILENAME);
*artwork_set_ptr = NULL;
+
+ if (ti->type == 0)
+ printf(":3: setting to '%s' [type %d] ...\n",
+ *artwork_path_ptr, ti->type);
}
free(dir);
if (ldi->type == TREE_TYPE_LEVEL_DIR)
{
ldi->imported_from = NULL;
+
ldi->graphics_set = NULL;
ldi->sounds_set = NULL;
ldi->music_set = NULL;
ldi->graphics_path = getStringCopy(UNDEFINED_FILENAME);
ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME);
ldi->music_path = getStringCopy(UNDEFINED_FILENAME);
+
ldi->levels = 0;
ldi->first_level = 0;
ldi->last_level = 0;
return;
}
+#if 1
+ /* copy all values from the parent structure */
+
+ ldi->type = parent->type;
+
+ ldi->node_top = parent->node_top;
+ ldi->node_parent = parent;
+ ldi->node_group = NULL;
+ ldi->next = NULL;
+
+ ldi->cl_first = -1;
+ ldi->cl_cursor = -1;
+
+ ldi->filename = NULL;
+ ldi->fullpath = NULL;
+ ldi->basepath = NULL;
+ ldi->identifier = NULL;
+ ldi->name = getStringCopy(ANONYMOUS_NAME);
+ ldi->name_sorting = NULL;
+ ldi->author = getStringCopy(parent->author);
+
+ ldi->sort_priority = parent->sort_priority;
+ ldi->parent_link = FALSE;
+ ldi->user_defined = parent->user_defined;
+ ldi->color = parent->color;
+ ldi->class_desc = getStringCopy(parent->class_desc);
+
+ if (ldi->type == TREE_TYPE_LEVEL_DIR)
+ {
+ ldi->imported_from = getStringCopy(parent->imported_from);
+
+ ldi->graphics_set = NULL;
+ ldi->sounds_set = NULL;
+ ldi->music_set = NULL;
+ ldi->graphics_path = getStringCopy(UNDEFINED_FILENAME);
+ ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME);
+ ldi->music_path = getStringCopy(UNDEFINED_FILENAME);
+
+ ldi->levels = 0;
+ ldi->first_level = 0;
+ ldi->last_level = 0;
+ ldi->level_group = FALSE;
+ ldi->handicap_level = 0;
+ ldi->readonly = TRUE;
+ }
+
+
+#else
+
/* first copy all values from the parent structure ... */
*ldi = *parent;
ldi->name = getStringCopy(ANONYMOUS_NAME);
ldi->name_sorting = NULL;
ldi->author = getStringCopy(parent->author);
+
ldi->imported_from = getStringCopy(parent->imported_from);
+ ldi->class_desc = getStringCopy(parent->class_desc);
+
+ ldi->graphics_set = NULL;
+ ldi->sounds_set = NULL;
+ ldi->music_set = NULL;
+ ldi->graphics_path = NULL;
+ ldi->sounds_path = NULL;
+ ldi->music_path = NULL;
ldi->level_group = FALSE;
ldi->parent_link = FALSE;
ldi->node_parent = parent;
ldi->node_group = NULL;
ldi->next = NULL;
+
+#endif
}
void setSetupInfo(struct TokenInfo *token_info,
LoadLevelInfoFromLevelDir(&leveldir_first, NULL, options.level_directory);
LoadLevelInfoFromLevelDir(&leveldir_first, NULL, getUserLevelDir(NULL));
+ {
+ TreeInfo *tst1 = getTreeInfoFromIdentifier(leveldir_first, "jue1");
+ TreeInfo *tst2 = getTreeInfoFromIdentifier(leveldir_first, "demojue");
+ printf("::: ??? 1 '%s' [%x, %x]\n", tst1->graphics_path,
+ tst1->graphics_path, tst2->graphics_path);
+ }
+
/* before sorting, the first entries will be from the user directory */
leveldir_current = getFirstValidTreeInfoEntry(leveldir_first);
/* always start with reliable default values */
setTreeInfoToDefaults(&ldi, TREE_TYPE_LEVEL_DIR);
+#if 0
+ /* !!! FIX ME !!! */
+ setString(&ldi.name, getLoginName());
+ setString(&ldi.author, getRealName());
+ ldi.levels = 100;
+ ldi.first_level = 1;
+ ldi.sort_priority = LEVELCLASS_USER_START;
+ ldi.readonly = FALSE;
+ setString(&ldi.graphics_set, GRAPHICS_SUBDIR);
+ setString(&ldi.sounds_set, SOUNDS_SUBDIR);
+ setString(&ldi.music_set, MUSIC_SUBDIR);
+#else
ldi.name = getStringCopy(getLoginName());
ldi.author = getStringCopy(getRealName());
ldi.levels = 100;
ldi.graphics_set = getStringCopy(GRAPHICS_SUBDIR);
ldi.sounds_set = getStringCopy(SOUNDS_SUBDIR);
ldi.music_set = getStringCopy(MUSIC_SUBDIR);
+#endif
fprintf(file, "%s\n\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER,
getCookie("LEVELINFO")));
int level_width = font_width * strlen("Level:");
int i;
+ printf("::: CHECK A: '%s'\n", leveldir_current->graphics_path);
+
UnmapAllGadgets();
FadeSounds();
/* needed if last screen was the setup screen and fullscreen state changed */
ToggleFullscreenIfNeeded();
+ printf("::: CHECK B.1: '%s'\n", leveldir_current->graphics_path);
+
+#if 1
+ /* leveldir_current may be invalid (level group, parent link) */
+ if (!validLevelSeries(leveldir_current))
+ leveldir_current = getFirstValidTreeInfoEntry(leveldir_last_valid);
+
+ /* store valid level series information */
+ leveldir_last_valid = leveldir_current;
+#endif
+
+ printf("::: CHECK B.2: '%s'\n", leveldir_current->graphics_path);
+
/* needed if last screen (level choice) changed graphics, sounds or music */
ReloadCustomArtwork();
+ printf("::: CHECK C: '%s'\n", leveldir_current->graphics_path);
+
#ifdef TARGET_SDL
SetDrawtoField(DRAW_BACKBUFFER);
#endif
/* map gadgets for main menu screen */
MapTapeButtons();
+#if 0
/* leveldir_current may be invalid (level group, parent link) */
if (!validLevelSeries(leveldir_current))
leveldir_current = getFirstValidTreeInfoEntry(leveldir_last_valid);
/* store valid level series information */
leveldir_last_valid = leveldir_current;
+#endif
/* level_nr may have been set to value over handicap with level editor */
if (setup.handicap && level_nr > leveldir_current->handicap_level)
/* move upwards to top level directory */
while (leveldir_current->node_parent)
{
+ printf("::: ---> '%s'\n", leveldir_current->graphics_path);
+
/* write a "path" into level tree for easy navigation to last level */
if (leveldir_current->node_parent->node_group->cl_first == -1)
{
}
leveldir_current = leveldir_current->node_parent;
+
+ printf("::: +++> '%s'\n", leveldir_current->graphics_path);
}
+
+ printf("::: ===> '%s'\n", leveldir_current->graphics_path);
}
void HandleMainMenu(int mx, int my, int dx, int dy, int button)
SaveLevelSetup_LastSeries();
SaveLevelSetup_SeriesInfo();
+ printf("::: CHECK C.1: '%s'\n", leveldir_current->graphics_path);
+
gotoTopLevelDir();
+ printf("::: CHECK C.2: '%s'\n", leveldir_current->graphics_path);
+
DrawChooseLevel();
}
}