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."; }
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."; }
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."; }