Index: class.c ================================================================== --- class.c +++ class.c @@ -1632,11 +1632,11 @@ if(tokent!=TF_INT) ParseError("Number expected\n"); i=tokenv; if(i&~7) ParseError("Animation slot number out of range\n"); nxttok(); if(tokent!=TF_INT) ParseError("Number expected\n"); - if(tokenv<1 || tokenv>255) ParseError("Length of synchronized animation too long\n"); + if(tokenv<1 || tokenv>255) ParseError("Length of synchronized animation out of range\n"); anim_slot[i].length=tokenv; nxttok(); if(tokent!=TF_INT) ParseError("Number expected\n"); if(tokenv<1 || tokenv>255) ParseError("Synchronized animation speed out of range\n"); anim_slot[i].speed=tokenv; Index: game.c ================================================================== --- game.c +++ game.c @@ -80,11 +80,11 @@ static void continue_animation(void) { Uint32 n=firstobj; Object*o; Animation*a; int i; - for(i=0;i<8;i++) if(anim_slot[i].length && ++anim_slot[i].vtime==anim_slot[i].speed && ++anim_slot[i].frame==anim_slot[i].length) anim_slot[i].frame=0; + for(i=0;i<8;i++) if(anim_slot[i].length && ++anim_slot[i].vtime==anim_slot[i].speed && (anim_slot[i].vtime=0,++anim_slot[i].frame==anim_slot[i].length)) anim_slot[i].frame=0; while(n!=VOIDLINK) { o=objects[n]; if((a=o->anim) && (a->status&ANISTAT_VISUAL)) { i=a->vstep; if(a->step[i].flag&ANI_SYNC) { @@ -467,9 +467,10 @@ main_options['e']=1; SDL_SetTimer(0,0); return; } redraw_game(); + timerflag=0; break; } } }