Index: exec.c ================================================================== --- exec.c +++ exec.c @@ -343,12 +343,12 @@ switch(f&0x07) { case 0: an->status=0; an->step->flag=0; break; case 1: an->status=ANISTAT_LOGICAL; an->step->flag=ANI_ONCE; break; case 2: an->status=ANISTAT_VISUAL|ANISTAT_LOGICAL; an->step->flag=ANI_ONCE; break; case 3: an->status=ANISTAT_VISUAL; an->step->flag=ANI_ONCE; break; - case 4: an->status=ANISTAT_VISUAL; an->step->flag=ANI_LOOP; break; - case 5: an->status=ANISTAT_VISUAL; an->step->flag=ANI_LOOP|ANI_OSC; break; + case 4: an->status=ANISTAT_VISUAL|ANISTAT_LOGICAL; an->step->flag=ANI_LOOP; break; + case 5: an->status=ANISTAT_VISUAL|ANISTAT_LOGICAL; an->step->flag=ANI_LOOP|ANI_OSC; break; case 6: an->status=ANISTAT_VISUAL|ANISTAT_SYNCHRONIZED; an->step->flag=ANI_LOOP|ANI_SYNC; an->step->slot=t&7; break; case 7: an->status=ANISTAT_LOGICAL; an->step->flag=ANI_ONCE; objects[n]->image=a0; break; } } @@ -657,14 +657,16 @@ Uint32 e[8]={VOIDLINK,VOIDLINK,VOIDLINK,VOIDLINK,VOIDLINK,VOIDLINK,VOIDLINK,VOIDLINK}; Uint8 re[8]={0,0,0,0,0,0,0,0}; Value v; if(StackProtection()) Throw("Call stack overflow"); for(i=0;i<8;i++) if(b&(1<x),NVALUE(n==VOIDLINK?0:objects[n]->y),CVALUE(c)); if(v.t) Throw("Type mismatch in COLLIDEBY"); r|=re[i]=v.u; }