/* * Print character stat in given row, column */ static void prt_stat(int stat, int row, int col) { char tmp[32]; /* Display "injured" stat */ if (p_ptr->stat_cur[stat] < p_ptr->stat_max[stat]) { put_str(stat_names_reduced[stat], row, col); cnv_stat(p_ptr->state.stat_use[stat], tmp, sizeof(tmp)); c_put_str(TERM_YELLOW, tmp, row, col + 6); } /* Display "healthy" stat */ else { put_str(stat_names[stat], row, col); cnv_stat(p_ptr->state.stat_use[stat], tmp, sizeof(tmp)); c_put_str(TERM_L_GREEN, tmp, row, col + 6); } /* Indicate natural maximum */ if (p_ptr->stat_max[stat] == 18+100) { put_str("!", row, col + 3); } }
/** * Special display, part 2b */ void display_player_stat_info(void) { int i, row, col; char buf[80]; /* Row */ row = 2; /* Column */ col = 42; /* Print out the labels for the columns */ c_put_str(COLOUR_WHITE, " Self", row-1, col+5); c_put_str(COLOUR_WHITE, " RB", row-1, col+12); c_put_str(COLOUR_WHITE, " CB", row-1, col+16); c_put_str(COLOUR_WHITE, " EB", row-1, col+20); c_put_str(COLOUR_WHITE, " Best", row-1, col+24); /* Display the stats */ for (i = 0; i < STAT_MAX; i++) { /* Reduced or normal */ if (player->stat_cur[i] < player->stat_max[i]) /* Use lowercase stat name */ put_str(stat_names_reduced[i], row+i, col); else /* Assume uppercase stat name */ put_str(stat_names[i], row+i, col); /* Indicate natural maximum */ if (player->stat_max[i] == 18+100) put_str("!", row+i, col+3); /* Internal "natural" maximum value */ cnv_stat(player->stat_max[i], buf, sizeof(buf)); c_put_str(COLOUR_L_GREEN, buf, row+i, col+5); /* Race Bonus */ strnfmt(buf, sizeof(buf), "%+3d", player->race->r_adj[i]); c_put_str(COLOUR_L_BLUE, buf, row+i, col+12); /* Class Bonus */ strnfmt(buf, sizeof(buf), "%+3d", player->class->c_adj[i]); c_put_str(COLOUR_L_BLUE, buf, row+i, col+16); /* Equipment Bonus */ strnfmt(buf, sizeof(buf), "%+3d", player->state.stat_add[i]); c_put_str(COLOUR_L_BLUE, buf, row+i, col+20); /* Resulting "modified" maximum value */ cnv_stat(player->state.stat_top[i], buf, sizeof(buf)); c_put_str(COLOUR_L_GREEN, buf, row+i, col+24); /* Only display stat_use if there has been draining */ if (player->stat_cur[i] < player->stat_max[i]) { cnv_stat(player->state.stat_use[i], buf, sizeof(buf)); c_put_str(COLOUR_YELLOW, buf, row+i, col+31); } } }