/* File: Group.c * Usefulness: None, unless your lazy like Thri. * * Description: * Ok this is the oddest piece of code ive ever writen. * Basicly, what it does, is.. takes all your Skill names defined * in skill_table, and writes them into a group_table, into the file * group.c. * * Why would you use this?: * If your like me, your extremely lazy. And, since your like me, * you also extremely dislike the group table thingy and find its only * an annoyance meant to piss off coders even more when they just want * to add a new skill. This, is my answer to 'fixing' the group table. * Since I dont care about groupings of skills in my mud, and would * rather setskill mage identify 2, actually GIVE the spell at level 2 * instead of having to recomplie every time to add it to that damn * group_table. So, instead of removing the group_table, i worked around it. * * Installation: * Ok first things first. Make sure your MAX_SKILL is right. * Then, make MAX_IN_GROUP the same as max_skill. * (since everything is going to be in one group now) * Add the appropirate number of 0's into the * "rom basics" line in group_table_update * Add do_print_skills to interp.h and interp.c * Recomplie. * do your do_print_skills command. * Now, group.c will be in ../src/ directory. * Now open const.c and delete that awful group_table * Make clean * make * Start the mud. * And your done! * * Credits: Russ Taylor for making that annoying group thing. * I know he meant well, amd it was probably alot of work. * but its turned into an annoyance ;) * * Nebesini of Clandestine Mud. Used his webspells.c file * for the file output code. I also thank him daily for the * contributions he has made to the community. * * My Cat, Squiggy, for knocking over my bottle of coke on * my floor, making me goto the store to buy a new one * and think this strange idea up. * * I require no credit for this one. Not even sure if others will * remotly find it useful. All in all, it shows you how to print * to a file ;) * * Next Up: Figure out how to append to the center of a file... Hmmm */ void do_print_skills (CHAR_DATA * ch, char* argument) { group_table_update(); send_to_char("Ship? Out of danger?\n\r", ch); } void group_table_update (void) { FILE *fp; char buf[MSL]; int i = MAX_SKILL; fclose(fpReserve); if ( (fp = fopen("../src/group.c", "w") ) == NULL) { bug( "group.c: fopen", 0 ); perror( "group.c" ); } else { fprintf(fp, "#if defined(macintosh)\n"); fprintf(fp, "#include <types.h>\n"); fprintf(fp, "#else\n"); fprintf(fp, "#include <sys/types.h>\n"); fprintf(fp, "#endif\n"); fprintf(fp, "#include <stdio.h>\n"); fprintf(fp, "#include <time.h>\n"); fprintf(fp, "#include \"merc.h\"\n"); fprintf(fp, "#include \"magic.h\"\n"); fprintf(fp, "#include \"interp.h\"\n\n"); fprintf(fp, "/* Generated by Thri */\n\n\n"); fprintf(fp, "const struct group_type group_table[MAX_GROUP] = { // Begin Table\n\n"); fprintf(fp, " \n"); fprintf(fp, " { \n"); fprintf(fp, " \"rom basics\", {0, 0, 0, 0, 0}, \n"); fprintf(fp, " { /* Start Skills */ \n"); while (i > 0) { sprintf(buf, " \"%s\", // Skill Number: %d\n", skill_table[i].name, i); fprintf(fp, buf); i--; } fprintf(fp, " }, // End Skills\n"); fprintf(fp, " } // End Table\n"); fprintf(fp, "}; // End file \n"); fclose( fp ); fpReserve = fopen( NULL_FILE, "r" ); } }