Those of us who own a copy of the "Eric Schwartz Productions Archive" CD and had to make do with xanim to play the animations, were a little dissappointed when a few of the really neat ones contained chunk IDs that xanim couldn't parse. Uncool. Included below is a patch to xanim-2.70.6.3 that allows it to blindly skip over the new IFF extensions. Eric's files only used these for sound, which xanim currently doesn't support in the Moviesetter format anyway. For earlier xanim releases, use the alternative statement that's been commented out. -- Chris *** xanim27063.orig/xa_iff.c Sat Aug 3 07:32:27 1996 --- xanim27063/xa_iff.c Mon Mar 17 18:42:18 1997 *************** *** 206,209 **** --- 206,212 ---- xaLONG exit_flag; + #define NAME 0x4e414d45 + int name_flag = xaFALSE; + char NAME_string[128]; iff_allow_cycling = (anim_hdr->anim_flags & ANIM_CYCLE)?(xaTRUE):(xaFALSE); *************** *** 270,273 **** --- 273,277 ---- if ( (formtype != 0x494C424D) /* ILBM 0x494C424D */ + && (formtype != 0x38535658) /* 8SVX old: leave out this entire chunk */ && (formtype != 0x414E494D) ) /* ANIM 0x414E494D */ { *************** *** 470,477 **** --- 474,495 ---- break; + case NAME: /* seek over the filename */ + xin->Read_Block(xin,NAME_string,chunk.size); /* old: fread(NAME_string,1,chunk.size,fin); */ + DEBUG_LEVEL2 fprintf(stderr,"Read NAME \"%s\"\n", NAME_string); + name_flag = xaTRUE; /* and flag we want the next BODY nuked */ + break; + case BODY: { XA_ACTION *act; ACT_DLTA_HDR *dlta_hdr; + + if (name_flag == xaTRUE) /* seek over everything */ + { + DEBUG_LEVEL2 fprintf(stderr,"NAME BODY\n"); + xin->Seek_FPos(xin,chunk.size,1); /* old: fseek(fin,chunk.size,1); */ + name_flag = xaFALSE; + break; + } DEBUG_LEVEL2 fprintf(stderr,"IFF BODY\n");