Esempio n. 1
0
static void setup_menus(void)
{
	int i, n;
	struct player_class *c;
	struct player_race *r;

	const char *roller_choices[MAX_BIRTH_ROLLERS] = { 
		"Point-based", 
		"Standard roller" 
	};

	struct birthmenu_data *mdata;

	/* Sex menu fairly straightforward */
	init_birth_menu(&sex_menu, MAX_SEXES, p_ptr->psex, &gender_region, TRUE, NULL);
	mdata = sex_menu.menu_data;
	for (i = 0; i < MAX_SEXES; i++)
	{	
		mdata->items[i] = sex_info[i].title;
	}
	mdata->hint = "Your 'sex' does not have any significant gameplay effects.";

	n = 0;
	for (r = races; r; r = r->next)
		n++;
	/* Race menu more complicated. */
	init_birth_menu(&race_menu, n, p_ptr->race ? p_ptr->race->ridx : 0,
	                &race_region, TRUE, race_help);
	mdata = race_menu.menu_data;

	for (i = 0, r = races; r; r = r->next, i++)
		mdata->items[r->ridx] = r->name;
	mdata->hint = "Your 'race' determines various intrinsic factors and bonuses.";

	n = 0;
	for (c = classes; c; c = c->next)
		n++;
	/* Class menu similar to race. */
	init_birth_menu(&class_menu, n, p_ptr->class ? p_ptr->class->cidx : 0,
	                &class_region, TRUE, class_help);
	mdata = class_menu.menu_data;

	for (i = 0, c = classes; c; c = c->next, i++)
		mdata->items[c->cidx] = c->name;
	mdata->hint = "Your 'class' determines various intrinsic abilities and bonuses";
		
	/* Roller menu straightforward again */
	init_birth_menu(&roller_menu, MAX_BIRTH_ROLLERS, 0, &roller_region, FALSE, NULL);
	mdata = roller_menu.menu_data;
	for (i = 0; i < MAX_BIRTH_ROLLERS; i++)
	{	
		mdata->items[i] = roller_choices[i];
	}
	mdata->hint = "Your choice of character generation.  Point-based is recommended.";
}
Esempio n. 2
0
static void setup_menus(void)
{
	int i, n;
	struct player_class *c;
	struct player_race *r;

	const char *roller_choices[MAX_BIRTH_ROLLERS] = { 
		"Point-based", 
		"Standard roller" 
	};

	struct birthmenu_data *mdata;

	/* Count the races */
	n = 0;
	for (r = races; r; r = r->next) n++;

	/* Race menu. */
	init_birth_menu(&race_menu, n, player->race ? player->race->ridx : 0,
	                &race_region, TRUE, race_help);
	mdata = race_menu.menu_data;

	for (i = 0, r = races; r; r = r->next, i++)
		mdata->items[r->ridx] = r->name;
	mdata->hint = "Race affects stats and skills, and may confer resistances and abilities.";

	/* Count the classes */
	n = 0;
	for (c = classes; c; c = c->next) n++;

	/* Class menu similar to race. */
	init_birth_menu(&class_menu, n, player->class ? player->class->cidx : 0,
	                &class_region, TRUE, class_help);
	mdata = class_menu.menu_data;

	for (i = 0, c = classes; c; c = c->next, i++)
		mdata->items[c->cidx] = c->name;
	mdata->hint = "Class affects stats, skills, and other character traits.";
		
	/* Roller menu straightforward */
	init_birth_menu(&roller_menu, MAX_BIRTH_ROLLERS, 0, &roller_region, FALSE,
					NULL);
	mdata = roller_menu.menu_data;
	for (i = 0; i < MAX_BIRTH_ROLLERS; i++)
		mdata->items[i] = roller_choices[i];
	mdata->hint = "Choose how to generate your intrinsic stats. Point-based is recommended.";
}
Esempio n. 3
0
static void setup_menus(void)
{
	int i;

	const char *roller_choices[MAX_BIRTH_ROLLERS] =
	{
		"Point-based",
		"Standard roller"
	};

	const char *option_choices[MAX_BIRTH_OPTONS] =
	{
		"Use current options",
		"Go to birth option screen"
	};

	struct birthmenu_data *mdata;

	/* Sex menu fairly straightforward */
	init_birth_menu(&sex_menu, MAX_SEXES, p_ptr->psex, &gender_region, TRUE, NULL);
	mdata = sex_menu.menu_data;
	for (i = 0; i < MAX_SEXES; i++)
	{
		mdata->items[i] = sex_info[i].title;
	}
	mdata->hint = "Your 'sex' does not have any significant gameplay effects.";

	/* Race menu more complicated. */
	init_birth_menu(&race_menu, z_info->p_max, p_ptr->prace, &race_region, TRUE, race_help);
	mdata = race_menu.menu_data;

	for (i = 0; i < z_info->p_max; i++)
	{
		mdata->items[i] = p_name + p_info[i].name;
	}
	mdata->hint = "Your 'race' determines various intrinsic factors and bonuses.";

	/* Class menu similar to race. */
	init_birth_menu(&class_menu, z_info->c_max, p_ptr->pclass, &class_region, TRUE, class_help);
	mdata = class_menu.menu_data;

	for (i = 0; i < z_info->c_max; i++)
	{
		mdata->items[i] = c_name + c_info[i].name;
	}
	mdata->hint = "Your 'class' determines various intrinsic abilities and bonuses";

	/* Birth option menu simple */
	init_birth_menu(&birth_opt_menu, MAX_BIRTH_OPTONS, 0, &birth_opt_region, FALSE, NULL);
	mdata = birth_opt_menu.menu_data;
	for (i = 0; i < MAX_BIRTH_OPTONS; i++)
	{
		mdata->items[i] = option_choices[i];
	}
	mdata->hint = "Birth options are finalized for the game before stats are rolled.";

	/* Roller menu straightforward again */
	init_birth_menu(&roller_menu, MAX_BIRTH_ROLLERS, 0, &roller_region, TRUE, NULL);
	mdata = roller_menu.menu_data;
	for (i = 0; i < MAX_BIRTH_ROLLERS; i++)
	{
		mdata->items[i] = roller_choices[i];
	}
	mdata->hint = "Your choice of character generation.  Point-based is recommended.";
}