/**********************************************************************
 *         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);

	
}