393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
|
// Old format
replay_count=(buf[sz-2]<<8)|buf[sz-1];
if(sz-replay_count>=4) replay_mark=(buf[replay_count]<<8)|buf[replay_count+1]; else replay_mark=0;
if(sz-replay_count>=6) {
i=(buf[replay_count+2]<<8)|buf[replay_count+3];
if(i==level_version) solved=1;
}
replay_list=malloc(replay_size=sizeof(MoveItem)*replay_count+1);
if(!replay_list) fatal("Allocation failed\n");
for(i=0;i<replay_size;i++) replay_list[i]=buf[i];
} else {
// New format
fgetc(fp); // skip first null byte
while((i=fgetc(fp))!=EOF) switch(i) {
case 0x01: // Replay list
if(replay_list) goto skip;
decode_move_list(fp);
|
|
|
|
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
|
// Old format
replay_count=(buf[sz-2]<<8)|buf[sz-1];
if(sz-replay_count>=4) replay_mark=(buf[replay_count]<<8)|buf[replay_count+1]; else replay_mark=0;
if(sz-replay_count>=6) {
i=(buf[replay_count+2]<<8)|buf[replay_count+3];
if(i==level_version) solved=1;
}
replay_list=malloc(replay_size=sizeof(MoveItem)*(replay_count+1));
if(!replay_list) fatal("Allocation failed\n");
for(i=0;i<replay_count;i++) replay_list[i]=buf[i];
} else {
// New format
fgetc(fp); // skip first null byte
while((i=fgetc(fp))!=EOF) switch(i) {
case 0x01: // Replay list
if(replay_list) goto skip;
decode_move_list(fp);
|