X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=b24ac1035afb1de56ddf7830f52e6c0696be5e88;hp=23579d277ba5b92503aac35cfabdcd26625613de;hb=eba9b49866465497a474dabe972b2b604617da30;hpb=46f4e87332b727a832ac242b04d886480ec8f674 diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 23579d27..b24ac103 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -3923,6 +3923,29 @@ void LoadArtworkInfo(void) #endif } +static void MoveArtworkInfoIntoSubTree(ArtworkDirTree **artwork_node) +{ + ArtworkDirTree *artwork_new = newTreeInfo(); + char *top_node_name = "dedicated custom artwork"; + + setTreeInfoToDefaults(artwork_new, (*artwork_node)->type); + + artwork_new->level_group = TRUE; + + setString(&artwork_new->identifier, top_node_name); + setString(&artwork_new->name, top_node_name); + setString(&artwork_new->name_sorting, top_node_name); + + // create node to link back to current custom artwork directory + createParentTreeInfoNode(artwork_new); + + // move existing custom artwork tree into newly created sub-tree + artwork_new->node_group->next = *artwork_node; + + // change custom artwork tree to contain only newly created node + *artwork_node = artwork_new; +} + static void LoadArtworkInfoFromLevelInfoExt(ArtworkDirTree **artwork_node, ArtworkDirTree *node_parent, LevelDirTree *level_node, @@ -4025,6 +4048,8 @@ static void LoadArtworkInfoFromLevelInfoExt(ArtworkDirTree **artwork_node, static void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node) { + MoveArtworkInfoIntoSubTree(artwork_node); + LoadArtworkInfoFromLevelInfoExt(artwork_node, NULL, leveldir_first_all, TRUE); LoadArtworkInfoFromLevelInfoExt(artwork_node, NULL, leveldir_first_all, FALSE); }