int calc_exp_factor(void) { int exp; int r_exp = _race_exp_factor(); int c_exp = get_class()->exp; int a_exp = get_personality()->exp; if (p_ptr->prace == RACE_ANDROID) return r_exp; exp = r_exp * c_exp / 100; exp = exp * a_exp / 100; if (p_ptr->prace == RACE_MON_DRAGON) { dragon_realm_ptr realm = dragon_get_realm(p_ptr->dragon_realm); exp = exp * realm->exp / 100; } return exp; }
static void _dragon_realms_help(FILE* fff) { int i, j; fprintf(fff, "[[[[B| Dragon Realms\n\n"); _wrap_text(fff, "Dragons are magical creatures and may choose to learn a particular branch of " "dragon magic. Unlike normal spell casters, dragons do not need spell books to " "cast or learn powers. Instead, they simply gain spells as they mature. Each " "realm of dragon magic has a direct impact on the player's stats and skills, and " "each realm also requires a different stat for casting purposes.", 2, 80); fprintf(fff, "\n\n"); for (i = 1; i < DRAGON_REALM_MAX; i++) { dragon_realm_ptr realm = dragon_get_realm(i); fprintf(fff, "***** <%s>\n", realm->name); fprintf(fff, "[[[[r| %s\n\n", realm->name); _wrap_text(fff, realm->desc, 2, 80); fprintf(fff, "\n\n"); } fprintf(fff, "***** <Tables>\n"); fprintf(fff, "[[[[y| Table 1 - Realm Statistic Bonus Table ---\n\n"); fprintf(fff, "[[[[r| STR INT WIS DEX CON CHR Life Exp\n"); for (i = 1; i < DRAGON_REALM_MAX; i++) { dragon_realm_ptr realm = dragon_get_realm(i); char line[255]; char tmp[255]; sprintf(line, " %-14s", realm->name); for (j = 0; j < 6; j++) { if (j == realm->spell_stat) sprintf(tmp, "[[[[G| %+3d |", realm->stats[j]); else sprintf(tmp, " %+3d ", realm->stats[j]); strcat(line, tmp); } sprintf(tmp, " %3d%% %3d%%", realm->life, realm->exp); strcat(line, tmp); fprintf(fff, "%s\n", line); } fprintf(fff, "\n\n"); fprintf(fff, "[[[[y| Table 2 - Realm Skill Bonus Table\n\n"); fprintf(fff, "[[[[r| Dsrm Dvce Save Stlh Srch Prcp Melee Attack Breath\n"); for (i = 1; i < DRAGON_REALM_MAX; i++) { dragon_realm_ptr realm = dragon_get_realm(i); fprintf(fff, " %-14s %+4d %+4d %+4d %+4d %+4d %+4d %+5d %5d%% %5d%%\n", realm->name, realm->skills.dis, realm->skills.dev, realm->skills.sav, realm->skills.stl, realm->skills.srh, realm->skills.fos, realm->skills.thn, realm->attack, realm->breath ); } fprintf(fff, "\n\n"); }