/* WorldMaker by Kroudar, Fall97, mlkesl@stthomas.edu */ #include #include void main() { int WIDTH=160, HEIGHT=60, VNUM_START=20001, /* must NOT be zero */ VNUM_END=WIDTH*HEIGHT+(VNUM_START-1), vnum,n,e,s,w,line_pos; FILE *fp=fopen("newworld.are","w"); printf("#*********************************#\n"); printf("# GENERATING %3d BY %3d AREA FILE #\n",WIDTH,HEIGHT ); printf("#*********************************#\n"); fprintf(fp, "\ #AREADATA\n\ Name Thera~\n\ Builders None~\n\ VNUMs %d %d\n\ Credits -=GLOBE=- The World of Thera~\n\ Security 1\n\ Worth 0\n\ Owner NONE~\n\ End\n\ ", VNUM_START, VNUM_END); fprintf(fp,"\n\n\n#MOBILES\n#0\n"); fprintf(fp,"\n\n\n#OBJECTS\n#0\n"); fprintf(fp,"\n\n\n#ROOMS\n"); for ( vnum=VNUM_START ; vnum<=VNUM_END ; vnum++) { /* for every room */ n=vnum-WIDTH; s=vnum+WIDTH; e=vnum+1; w=vnum-1; /*where it is on the line 0 to (WIDTH-1)*/ line_pos=(vnum-VNUM_START+1)%(WIDTH); if (line_pos==0) line_pos=WIDTH; /*north border*/ if ( (vnum >= VNUM_START) && (vnum < VNUM_START+WIDTH) ) { n=(VNUM_END-WIDTH)+(line_pos); /* printf("vnum %5d NORTH %5d [line_pos %3d]\n",vnum,n,line_pos);*/ } /*south border*/ if ( (vnum > VNUM_END-WIDTH) && (vnum <= VNUM_END) ) { s=(VNUM_START)+(line_pos-1); /* printf("vnum %5d SOUTH %5d [line_pos %3d]\n",vnum,s,line_pos);*/ } /*east border*/ if ( (vnum-VNUM_START+1)%(WIDTH)==0 ) { e=vnum-WIDTH+1; /* printf("vnum %5d EAST %5d [line_pos %3d]\n",vnum,e,line_pos);*/ } /*west border*/ if ( (vnum-VNUM_START+1)%(WIDTH)==1 ) { w=vnum+WIDTH-1; /* printf("vnum %5d WEST %5d [line_pos %3d]\n",vnum,w,line_pos);*/ } fprintf(fp,"#%d\nNAME~\nDESC\n~\n0 1073741824 3\n",vnum); fprintf(fp,"D0\n~\n~\n0 0 %d\n",n); fprintf(fp,"D1\n~\n~\n0 0 %d\n",e); fprintf(fp,"D2\n~\n~\n0 0 %d\n",s); fprintf(fp,"D3\n~\n~\n0 0 %d\n",w); fprintf(fp,"S\n"); /* printf("VNUM(%5d) N>%5d S>%5d E>%5d W>%5d LINE_POS[%3d]\n", vnum,n,s,e,w,line_pos);*/ } fprintf(fp,"#0\n"); fprintf(fp,"\n\n\n#SPECIALS\nS\n"); fprintf(fp,"\n\n\n#RESETS\nS\n"); fprintf(fp,"\n\n\n#SHOPS\n0\n"); fprintf(fp,"\n\n\n#$\n"); }