GridMaker 1.0 by Muerte of MND | | fixed to work for rom by Rashin of TGH2: Project X | http://tgh2.solfice.com <- Website | telnet://tgh.solfice.com:8500 <- Mud | langton_designs@hotmail.com <- Email | ========================================================' Directions: -->interp.c (I put it under the OLC functions) {"gridmake", do_gridmake, POS_DEAD, ML, LOG_NORMAL, 1}, -->interp.h (bottom of file) #DECLARE_DO_FUN ( do_gridmake ); -->act_wiz.c (bottom of file) void do_gridmake(CHAR_DATA *ch, char *argument) { /* GridMaker 1.0 by Muerte of MND */ /* fixed for rom by Rashin of TGH2: Project X */ FILE *fp; char arg1[10], arg2[10], arg3[10]; int width, height, vstart, vend,vnum,n,e,s,w,line_pos; argument = one_argument(argument, arg1); argument = one_argument(argument, arg2); argument = one_argument(argument, arg3); if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0') { send_to_char("SYNTAX: worldmake \n\r", ch); return; } width = atoi(arg2); height = atoi(arg3); vstart = atoi(arg1); vend = vstart + (width*height) - 1; if ((fp = fopen("new.are", "w")) == NULL) { send_to_char("WORLDMAKE: fopen", ch); return; } printf_to_char(ch, "#*********************************#\n"); printf_to_char(ch, "# GENERATING %3d BY %3d AREA FILE #\n",width,height); printf_to_char(ch, "#*********************************#\n"); fprintf(fp,"#AREADATA\nName MND~\nBuilders None~\nVNUMs %d %d\nCredits MND~\nSecurity 1\nEnd\n", vstart, vend); 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=vstart; vnum<=vend; 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-vstart+1)%(width); if (line_pos==0) line_pos=width; /*north border*/ if ( (vnum >= vstart) && (vnum < vstart+width) ) { n=0; } /*south border*/ if ( (vnum > vend-width) && (vnum <= vend) ) { s=0; } /*east border*/ if ( (vnum-vstart+1)%(width)==0 ) { e=0; } /*west border*/ if ( (vnum-vstart+1)%(width)==1 ) { w=0; } fprintf(fp,"#%d\nNAME~\n\n~\n0 0 0\n",vnum); if (n > 0) fprintf(fp,"D0\n\n~\n~\n0 0 %d\n",n); if (e > 0) fprintf(fp,"D1\n\n~\n~\n0 0 %d\n",e); if (s > 0) fprintf(fp,"D2\n\n~\n~\n0 0 %d\n",s); if (w > 0) fprintf(fp,"D3\n\n~\n~\n0 0 %d\n",w); fprintf(fp,"S\n"); } 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"); fclose(fp); send_to_char("Area Completed\n\r", ch); return; }