X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=9cebd02dda852d0c94755475d42a89589bcd2dc5;hb=1f877ca17e3eee9b2ea66fe2d7378be88fec3501;hp=4bd6305ab6b10ea4729d8e8364df2e25396dc042;hpb=28f0f8708f4b4f8c4f39f1b23bc5fc7e0fed7579;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 4bd6305a..9cebd02d 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -436,27 +436,43 @@ struct ArtworkInfo char *mus_current_identifier; }; -struct ArtworkConfigInfo +struct ConfigInfo +{ + char *token; + char *value; +}; + +struct FileInfo { char *token; - char *default_filename; + char *default_filename; char *filename; + + int *default_parameter; /* array of file parameters */ + int *parameter; /* array of file parameters */ }; -struct ArtworkListNodeInfo +struct ListNodeInfo { - char *source_filename; + char *source_filename; /* primary key for node list */ int num_references; }; struct ArtworkListInfo { int type; /* type of artwork */ - int num_list_entries; - struct ArtworkConfigInfo *config_list; /* static config list */ - struct ArtworkListNodeInfo **artwork_list; /* static artwork list */ - ListNode *file_list; /* dynamic artwork list */ + + int num_file_list_entries; + int num_suffix_list_entries; + + struct FileInfo *file_list; /* static artwork file array */ + struct ConfigInfo *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 */ };