181
182
183
184
185
186
187
188
189
190
191
192
193
194
|
draw_cell(d->x,d->y);
if(!d->s.flag) continue;
if(d->vimage<classes[d->class]->nimages)
draw_picture((d->x-1)*picture_size+left_margin,(d->y-1)*picture_size,classes[d->class]->images[d->vimage]&0x7FFF);
if(++d->vtime>=d->s.speed) {
if(d->vimage==d->s.end) d->s.flag=0;
if(d->s.end>=d->s.start) ++d->vimage; else --d->vimage;
}
}
for(i=0;i<ndeadanim;i++) while(i<ndeadanim && !deadanim[i].s.flag) {
draw_cell(deadanim[i].x,deadanim[i].y);
if(i<ndeadanim-1) deadanim[i]=deadanim[ndeadanim-1];
--ndeadanim;
}
|
>
|
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
draw_cell(d->x,d->y);
if(!d->s.flag) continue;
if(d->vimage<classes[d->class]->nimages)
draw_picture((d->x-1)*picture_size+left_margin,(d->y-1)*picture_size,classes[d->class]->images[d->vimage]&0x7FFF);
if(++d->vtime>=d->s.speed) {
if(d->vimage==d->s.end) d->s.flag=0;
if(d->s.end>=d->s.start) ++d->vimage; else --d->vimage;
d->vtime=0;
}
}
for(i=0;i<ndeadanim;i++) while(i<ndeadanim && !deadanim[i].s.flag) {
draw_cell(deadanim[i].x,deadanim[i].y);
if(i<ndeadanim-1) deadanim[i]=deadanim[ndeadanim-1];
--ndeadanim;
}
|
679
680
681
682
683
684
685
686
687
688
689
690
691
692
|
if(!number) return 1;
if(number>replay_count) number=replay_count;
if(number>=inputs_size) {
inputs=realloc(inputs,inputs_size=number+1);
if(!inputs) fatal("Allocation failed\n");
}
memcpy(inputs,replay_list,inputs_count=number);
return 1;
case '^<': // Rewind to mark
number=replay_mark;
goto restart;
case '^>': // Replay to mark
inputs_count=0;
number=replay_mark-replay_pos;
|
>
|
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
|
if(!number) return 1;
if(number>replay_count) number=replay_count;
if(number>=inputs_size) {
inputs=realloc(inputs,inputs_size=number+1);
if(!inputs) fatal("Allocation failed\n");
}
memcpy(inputs,replay_list,inputs_count=number);
no_dead_anim=1;
return 1;
case '^<': // Rewind to mark
number=replay_mark;
goto restart;
case '^>': // Replay to mark
inputs_count=0;
number=replay_mark-replay_pos;
|
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
|
if(i==-2) {
main_options['e']=1;
SDL_SetTimer(0,0);
return;
}
replay:
if(inputs_count) {
//TODO: Check for solution replay
for(i=0;i<inputs_count && !gameover;i++) if(inputs[i]) input_move(inputs[i]);
inputs_count=0;
}
redraw_game();
timerflag=0; // ensure we have not missed a timer event
break;
}
}
quit:
save_replay();
exit(0);
}
void run_auto_test(void) {
Uint8 rc=0;
int lvl,pro,i,n;
const char*t;
setbuf(stdout,0);
solution_replay=1;
optionquery[1]=Q_progress;
t=xrm_get_resource(resourcedb,optionquery,optionquery,2);
pro=t?strtol(t,0,10):0;
if(main_options['t']) pro=0;
optionquery[1]=Q_level;
|
<
>
>
|
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
|
if(i==-2) {
main_options['e']=1;
SDL_SetTimer(0,0);
return;
}
replay:
if(inputs_count) {
for(i=0;i<inputs_count && !gameover;i++) if(inputs[i]) input_move(inputs[i]);
inputs_count=0;
no_dead_anim=0;
}
redraw_game();
timerflag=0; // ensure we have not missed a timer event
break;
}
}
quit:
save_replay();
exit(0);
}
void run_auto_test(void) {
Uint8 rc=0;
int lvl,pro,i,n;
const char*t;
no_dead_anim=1;
setbuf(stdout,0);
solution_replay=1;
optionquery[1]=Q_progress;
t=xrm_get_resource(resourcedb,optionquery,optionquery,2);
pro=t?strtol(t,0,10):0;
if(main_options['t']) pro=0;
optionquery[1]=Q_level;
|