#include <unitypes.h>\r
#include "apc.h"\r
\r
-struct ir_frameinfo_t\r
-{ int facing, w, h; };\r
-typedef union ir_setdata_t* ir_setdata;\r
-typedef struct ir_frameinfo_t* ir_frameinfo;\r
-typedef struct ir_set_t* ir_set;\r
-typedef struct ir_class_t* ir_class;\r
-typedef struct ir_setld_t* ir_setld;\r
-typedef struct ir_classld_t* ir_classld;\r
+typedef union ir_setdata_t* ir_setdata;\r
+typedef struct ir_frameinfo_t* ir_frameinfo;\r
+typedef struct ir_set_t* ir_set;\r
+typedef struct ir_class_t* ir_class;\r
+typedef struct ir_setld_t* ir_setld;\r
+typedef struct ir_classld_t* ir_classld;\r
+typedef struct ir_facinglist_t* facinglist;\r
/* Classes and Sets\r
Classes are rooted at a special root class, representing the current working\r
directory at scan-time, named ".". The root class can always be identified\r
void ir_set_assign_data(ir_set,ir_setdata);\r
void ir_set_assign_ref(ir_set,uint32_t);\r
void ir_data_assign_path(ir_setdata,const uint8_t*);\r
-ir_setdata ir_framesheet(const uint8_t*, apc_facing, int,int);\r
-ir_setdata ir_mapsheet(const uint8_t*, apc_facing, int,int);\r
+ir_setdata ir_framesheet(const uint8_t*,facinglist,int,int);\r
+ir_setdata ir_mapsheet(const uint8_t*,facinglist,int,int);\r
ir_setdata ir_audio(const uint8_t*);\r
ir_setdata ir_link(enum ltype,ir_setld,const uint8_t*);\r
+/* Facing Lists for creating frame/mapsheets */\r
+facinglist ir_facinglist(apc_facing);\r
+facinglist ir_facinglist_push(facinglist,apc_facing);\r
/* Output */\r
-framebox ir_set_framebox(ir_set);\r
-audiodata ir_set_audio(ir_set);\r
-linkdata ir_set_link(ir_set);\r
-enum ltype ir_linkdata_type(linkdata);\r
-uint32_t ir_linkdata_ref(linkdata);\r
-ir_set ir_linkdata_set(linkdata);\r
-void ir_linkdata_assign_set(ir_set);\r
-ir_setdata ir_setdata_nextsib(ir_setdata);\r
-uint8_t* ir_setdata_name(ir_setdata);\r
-uint8_t* ir_setdata_filename(ir_setdata);\r
-long ir_setdata_fpos(ir_setdata);\r
-void ir_setdata_assign_fpos(ir_setdata,long);\r
-framedata ir_framebox_framesheet(framebox,apc_facing);\r
-framedata ir_framebox_mapsheet(framebox,apc_facing);\r
-ir_frameinfo ir_framedata_frameinfo(framedata);\r
+framebox ir_set_framebox(ir_set);\r
+audiodata ir_set_audio(ir_set);\r
+linkdata ir_set_link(ir_set);\r
+enum ltype ir_linkdata_type(linkdata);\r
+uint32_t ir_linkdata_ref(linkdata);\r
+ir_set ir_linkdata_set(linkdata);\r
+void ir_linkdata_assign_set(linkdata,ir_set);\r
+void ir_linkdata_assign_type(linkdata,enum ltype);\r
+uint8_t* ir_linkdata_dlink_name(linkdata);\r
+ir_setdata ir_setdata_nextsib(ir_setdata);\r
+uint8_t* ir_setdata_name(ir_setdata);\r
+uint8_t* ir_setdata_filename(ir_setdata);\r
+long ir_setdata_fpos(ir_setdata);\r
+void ir_setdata_assign_fpos(ir_setdata,long);\r
+void ir_setdata_assign_name(ir_setdata,uint8_t*);\r
+/* Framedata */\r
+framedata ir_framebox_framesheet(framebox,apc_facing);\r
+framedata ir_framebox_mapsheet(framebox,apc_facing);\r
+int ir_framedata_width(framedata);\r
+int ir_framedata_height(framedata);\r
+apc_facing ir_framedata_firstfacing(framedata);\r
+apc_facing ir_framedata_nextfacing(framedata);\r
/* Reference Linking Data \r
Create linking data to sets or classes that will be resolved at a later\r
stage. Class references can be created from an ir_class object, if\r