/* default text for non-existant artwork */
#define NOT_AVAILABLE "(not available)"
+/* default value for undefined filename */
+#define UNDEFINED_FILENAME "[NONE]"
+
/* default name for new levels */
#define NAMELESS_LEVEL_NAME "nameless level"
};
#define TREE_TYPE_GENERIC 0
-#define TREE_TYPE_LEVEL_DIR 1
-#define TREE_TYPE_GRAPHICS_DIR 2
-#define TREE_TYPE_SOUNDS_DIR 3
-#define TREE_TYPE_MUSIC_DIR 4
+#define TREE_TYPE_GRAPHICS_DIR 1
+#define TREE_TYPE_SOUNDS_DIR 2
+#define TREE_TYPE_MUSIC_DIR 3
+#define TREE_TYPE_LEVEL_DIR 4
+
+#define ARTWORK_TYPE_GRAPHICS TREE_TYPE_GRAPHICS_DIR
+#define ARTWORK_TYPE_SOUNDS TREE_TYPE_SOUNDS_DIR
+#define ARTWORK_TYPE_MUSIC TREE_TYPE_MUSIC_DIR
struct TreeInfo
{
char *mus_current_identifier;
};
+struct ConfigInfo
+{
+ char *token;
+ char *value;
+};
+
+struct FileInfo
+{
+ char *token;
+
+ char *default_filename;
+ char *filename;
+
+ int *default_parameter; /* array of file parameters */
+ int *parameter; /* array of file parameters */
+};
+
+struct ListNodeInfo
+{
+ char *source_filename; /* primary key for node list */
+ int num_references;
+};
+
+struct ArtworkListInfo
+{
+ int type; /* type of artwork */
+
+ int num_file_list_entries;
+ int num_suffix_list_entries;
+
+ struct FileInfo *file_list; /* static artwork file array */
+ char **suffix_list; /* parameter suffixes array */
+
+ struct ListNodeInfo **artwork_list; /* static artwork node array */
+
+ struct ListNode *content_list; /* dynamic artwork node list */
+
+ void *(*load_artwork)(char *); /* constructor function */
+ void (*free_artwork)(void *); /* destructor function */
+};
+
/* ========================================================================= */
/* exported variables */