#include "mstruct.h"
#include "mextern.h"
#include <time.h>
void merror(str)
char *str;
{
printf("error %s\n", str);
exit(-1);
}
main(argc, argv)
int argc;
char *argv[];
{
int n, start, end;
room *rom_ptr;
long t;
t = time(0);
if(argc < 3) {
printf("syntax: reset [low] [high]\n");
exit(0);
}
start = atoi(argv[1]);
end = atoi(argv[2]);
for(n=start; n<=end; n++) {
if(load_rom(n, &rom_ptr) < 0) continue;
rom_ptr->established = t;
rom_ptr->beenhere = 0L;
save_rom(rom_ptr);
printf("Room '%s'(%d) altered.\n", rom_ptr->name, rom_ptr->rom_num);
free_rom(rom_ptr);
}
}
int load_rom(index, rom_ptr)
short index;
room **rom_ptr;
{
int fd;
char file[256];
sprintf(file, "%s/r%05d", ROOMPATH, index);
fd = open(file, O_RDONLY, 0);
if(fd < 0)
return(-1);
*rom_ptr = (room *)malloc(sizeof(room));
if(!*rom_ptr)
exit(-1);
if(read_rom(fd, *rom_ptr) < 0) {
close(fd);
return(-1);
}
close(fd);
(*rom_ptr)->rom_num = index;
return(0);
}
int save_rom(rom_ptr)
room *rom_ptr;
{
int fd, rtn;
char file[256];
sprintf(file, "%s/r%05d", ROOMPATH, rom_ptr->rom_num);
fd = open(file, O_RDWR, 0);
if(fd < 0)
return(-1);
rtn = write_rom(fd, rom_ptr, 0);
close(fd);
return rtn;
}