+ /* check for file to start from ... */
+ if(start_fd>0) {
+ printf("starting from a save file!\n");
+ unsigned char *nullbuf;
+ nullbuf=(unsigned char *)malloc(sizeof(d3_lattice));
+ if(read(start_fd,nullbuf,sizeof(d3_lattice))!=sizeof(d3_lattice)) {
+ printf("read failed (start file d3l)\n");
+ return -1;
+ }
+ free(nullbuf);
+ nullbuf=(unsigned char *)malloc(sizeof(info));
+ if(read(start_fd,nullbuf,sizeof(info))!=sizeof(info)) {
+ printf("read failed (start file info)\n");
+ return -1;
+ }
+ free(nullbuf);
+ if(read(start_fd,d3_l.status,j*sizeof(unsigned char))!=j*sizeof(unsigned char)) {
+ printf("read failed (start file status)\n");
+ return -1;
+ }
+ if(read(start_fd,d3_l.extra,j*sizeof(int))!=j*sizeof(int)) {
+ printf("read failed (start file extra)\n");
+ return -1;
+ }
+ }