- lvl++;
- for(unsigned int i=0; i<node->mNumChildren; i++) {
- if(i == node->mNumChildren - 1) {
- lvlopen[lvl - 1] = 0;
- }
- print_hierarchy(node->mChildren[i]);
+static void io_close(aiFileIO *io, aiFile *aifp)
+{
+ ass_fclose(aifp->UserData);
+ delete aifp;
+}
+
+static size_t io_read(aiFile *aifp, char *buf, size_t size, size_t count)
+{
+ return ass_fread(buf, size, count, aifp->UserData);
+}
+
+static size_t io_tell(aiFile *aifp)
+{
+ return ass_ftell(aifp->UserData);
+}
+
+static size_t io_filesize(aiFile *aifp)
+{
+ ass_file *fp = aifp->UserData;
+ long cur = ass_ftell(fp);
+ ass_fseek(fp, 0, SEEK_END);
+ long off = ass_ftell(fp);
+ ass_fseek(fp, cur, SEEK_SET);
+ return off;
+}
+
+static aiReturn io_seek(aiFile *aifp, size_t offs, aiOrigin whence)
+{
+ if(ass_fseek(aifp->UserData, offs, (int)whence) == -1) {
+ return aiReturn_FAILURE;