/********************************************************************** * Aztheria Menu System - Version 1.0 by Xeroth * **********************************************************************/ #include "include.h" #include "interp.h" #include "recycle.h" #include "tables.h" /*Local function prototypes*/ void generate(MENU_DATA *menu, DESCRIPTOR_DATA *d); /*Character Generation Menu Compiler*/ void chargen_menu (const int m, DESCRIPTOR_DATA *d) { int i; CHAR_DATA *ch; int iClass, race, weapon, pcrace; MENU_DATA *menu = aztheria_menu; menu->header = NULL; for(i = 0; i < MAX_MENU_ITEMS; i++) menu->item[i] = NULL; ch = d->character; switch(m) /*compile appropriate menu*/ { case MENU_CHARGEN_RACE: pcrace = 0; for (race = 1; race_table[race].name != NULL; race++) { if (!race_table[race].pc_race) break; menu->item[pcrace] = race_table[race].name; pcrace++; } menu->header = "Select Your Race:"; generate(menu, d); break; case MENU_CHARGEN_ALIGN: menu->item[0] = "Good"; menu->item[1] = "Neutral"; menu->item[2] = "Evil"; menu->header = "Choose Your Alignment:"; generate(menu, d); break; case MENU_CHARGEN_CLASS: for (iClass = 0; iClass < MAX_CLASS; iClass++) menu->item[iClass] = class_table[iClass].name; menu->header = "Pick Your Class:"; generate(menu, d); break; case MENU_CHARGEN_SEX: menu->item[0] = "[M]ale"; menu->item[1] = "[F]emale"; menu->header = "Gender?"; generate(menu, d); break; case MENU_CHARGEN_EYES: menu->item[0] = "Blue"; menu->item[1] = "Green"; menu->item[2] = "Brown"; menu->item[3] = "Black"; menu->item[4] = "Red"; menu->item[5] = "Grey"; menu->item[6] = "Hazel"; menu->item[7] = "Prple"; menu->item[8] = "Yellw"; menu->header = "What Color Shall Your Eyes Be?"; generate(menu, d); break; case MENU_CHARGEN_HAIR: menu->item[0] = "Silvr"; menu->item[1] = "Grey"; menu->item[2] = "Black"; menu->item[3] = "Blond"; menu->item[4] = "Brown"; menu->item[5] = "Red"; menu->header = "What Color Shall Your Hair Be?"; generate(menu,d); break; default: menu->header = "{R*** ERROR: NULL MENU! ***{x\n\r"; generate(menu, d); } } /*Generate Pre-compiled Menu*/ void generate(MENU_DATA *menu, DESCRIPTOR_DATA *d) { char buf[MAX_STRING_LENGTH]; int i; sprintf(buf, "{c|=============================================|{x\n\r"); send_to_desc(buf, d); sprintf(buf, "{c| {C%-43s {c|{x\n\r", menu->header); send_to_desc(buf, d); sprintf(buf, "{c| |{x\n\r"); send_to_desc(buf, d); for(i = 0; menu->item[i] != NULL; i++) { sprintf(buf, "{c| {w%-43s {c|{x\n\r", menu->item[i]); send_to_desc(buf, d); } sprintf(buf, "{c| |{x\n\r"); send_to_desc(buf, d); sprintf(buf, "{c|=============================================|{x\n\r"); send_to_desc(buf, d); send_to_desc("{c|=> {x", d); }