/
#include <stdio.h>
#include "structs.h"
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif


int ReadObjs( FILE *fl, struct obj_file_u *st)
{
  int i;
  char buf[128];

  if (feof(fl)) {
    fclose(fl);
    return(FALSE);
  }

  fread(st->owner, sizeof(st->owner), 1, fl);
  if (feof(fl)) {
    fclose(fl);
    return(FALSE);
  }
  fread(&st->gold_left, sizeof(st->gold_left), 1, fl);
  if (feof(fl)) {
    fclose(fl);
    return(FALSE);
  }
  fread(&st->total_cost, sizeof(st->total_cost), 1, fl);
  if (feof(fl)) {
    fclose(fl);
    return(FALSE);
  }
  fread(&st->last_update, sizeof(st->last_update), 1, fl);
  if (feof(fl)) {
    fclose(fl);
    return(FALSE);
  }
  fread(&st->minimum_stay, sizeof(st->minimum_stay), 1, fl);
  if (feof(fl)) {
    fclose(fl);
    return(FALSE);
  }
  fread(&st->number, sizeof(st->number), 1, fl);
  if (feof(fl)) {
    fclose(fl);
    return(FALSE);
  }
   
  for (i=0;i<st->number;i++) {
     fread(&st->objects[i], sizeof(struct obj_file_elem), 1, fl);
  }
  
  

}


#define RENTDIR "/cis/reef3/jdb/src/silly/lib/rent/"
#define PLYRFILE "/cis/reef3/jdb/src/silly/lib/players"

void main (int argc,char *argv[])
{
  FILE *fl;
  FILE *rf;
  struct obj_file_u st;
  struct char_file_u grunt;
  int num_tried,num_succeed,i,bingo,j,found;
  char RentFileName[80];	/* sure as heck better not be longer */

  if(argc != 2) {
    printf("Usage: %s <item number>\n",argv[0]);
    exit(1);
  }

  if((fl=fopen(PLYRFILE, "r"))==NULL) {
    printf("Dangnabit, can't open the player file.\n");
    exit(1);
  }

  bingo = atoi(argv[1]);

  if(!bingo) 
    exit(1);
  printf("Hunting for item number %d\n",bingo);
  num_tried=num_succeed=0;
  
  for(j=0;!feof(fl);j++) {
    fread(&grunt, sizeof(struct char_file_u), 1, fl);
    
    if(feof(fl))
      continue;

    if(strlen(grunt.name) > 1) {
      for(i=0;grunt.name[i] != '\0' && i < 25;i++)
	grunt.name[i] = tolower(grunt.name[i]);
      
      sprintf(RentFileName,"%s%s",RENTDIR,grunt.name);
      /*       printf("%s",RentFileName); */

      if((rf=fopen(RentFileName,"r"))==NULL)
	continue;
      if(feof(rf))
	continue;

      num_tried++;
      if(ReadObjs(rf,&st)) {
	/* 	printf("  [%d]\n",st.number); */
	num_succeed++;
	
	/* 	printf("%s has %d objects in rent.\n",grunt.name,st.number); */
	for(i=0,found=0;i<st.number;i++) {
	  /* 	  printf("[%d]\n",st.objects[i].item_number); */
	  if(st.objects[i].item_number == bingo)  { 
	  
	  /* if(st.objects[i].value[3] > 0 && st.objects[i].value[3] < 13) {
	    if( ((st.objects[i].value[2]+1)/2)*st.objects[i].value[1] < 4.0 )
	    for(j=0;j<5;j++) {
	    if(st.objects[i].affected[j].location == 19 && 
	    st.objects[i].affected[j].modifier > 3) { */
	    found++;
	  }
	}
      }
      if(found)
	printf("%s has %d of them!.\n",grunt.name,found);
    } 
    fclose(rf);
  }
  printf("%d people, tried to open %d files, opened %d.\n",
	 j,num_tried,num_succeed);
}