--- src/files.c.orig 2005-10-26 21:02:32.000000000 -0400 +++ src/files.c 2005-10-26 21:10:19.000000000 -0400 @@ -1470,6 +1470,9 @@ int show_todam = p_ptr->dis_to_d; object_type *o_ptr = &p_ptr->inventory[INVEN_WIELD]; + char num[7]; + byte color; + int speed; /* Hack -- add in weapon info if known */ @@ -1525,56 +1528,110 @@ if (p_ptr->necro_extra & CLASS_UNDEAD) { - prt_num("Max Death Points ", p_ptr->mhp, 9, 52, TERM_L_BLUE, " "); - + put_str("Death Points ", 9, 52); if (p_ptr->chp >= p_ptr->mhp) { - prt_num("Cur Death Points ", p_ptr->chp, 10, 52, TERM_L_BLUE, " "); + color = TERM_L_BLUE; } else if (p_ptr->chp > (p_ptr->mhp * hitpoint_warn) / 10) { - prt_num("Cur Death Points ", p_ptr->chp, 10, 52, TERM_VIOLET, " "); + color = TERM_VIOLET; } else { - prt_num("Cur Death Points ", p_ptr->chp, 10, 52, TERM_L_RED, " "); + color = TERM_L_RED; } + (void)sprintf(num, "%6ld", (long)p_ptr->chp); + c_put_str(color, num, 9, 65); + put_str("/", 9, 71); + (void)sprintf(num, "%6ld", (long)p_ptr->mhp); + c_put_str(TERM_L_BLUE, num, 9, 72); } else { - prt_num("Max Hit Points ", p_ptr->mhp, 9, 52, TERM_L_GREEN, " "); - + put_str("Hit Points ", 9, 52); if (p_ptr->chp >= p_ptr->mhp) { - prt_num("Cur Hit Points ", p_ptr->chp, 10, 52, TERM_L_GREEN, " "); + color = TERM_L_GREEN; } else if (p_ptr->chp > (p_ptr->mhp * hitpoint_warn) / 10) { - prt_num("Cur Hit Points ", p_ptr->chp, 10, 52, TERM_YELLOW, " "); + color = TERM_YELLOW; } else { - prt_num("Cur Hit Points ", p_ptr->chp, 10, 52, TERM_RED, " "); + color = TERM_RED; } + (void)sprintf(num, "%6ld", (long)p_ptr->chp); + c_put_str(color, num, 9, 65); + put_str("/", 9, 71); + (void)sprintf(num, "%6ld", (long)p_ptr->mhp); + c_put_str(TERM_L_GREEN, num, 9, 72); } - prt_num("Max SP (Mana) ", p_ptr->msp, 11, 52, TERM_L_GREEN, " "); - + put_str("Spell Points ", 10, 52); if (p_ptr->csp >= p_ptr->msp) { - prt_num("Cur SP (Mana) ", p_ptr->csp, 12, 52, TERM_L_GREEN, " "); + color = TERM_L_GREEN; } else if (p_ptr->csp > (p_ptr->msp * hitpoint_warn) / 10) { - prt_num("Cur SP (Mana) ", p_ptr->csp, 12, 52, TERM_YELLOW, " "); + color = TERM_YELLOW; + } + else + { + color = TERM_RED; + } + (void)sprintf(num, "%6ld", (long)p_ptr->csp); + c_put_str(color, num, 10, 65); + put_str("/", 10, 71); + (void)sprintf(num, "%6ld", (long)p_ptr->msp); + c_put_str(TERM_L_GREEN, num, 10, 72); + + put_str("Sanity ", 11, 52); + if (p_ptr->csane >= p_ptr->msane) + { + color = TERM_L_GREEN; + } + else if (p_ptr->csane > (p_ptr->msane * hitpoint_warn) / 10) + { + color = TERM_YELLOW; } else { - prt_num("Cur SP (Mana) ", p_ptr->csp, 12, 52, TERM_RED, " "); + color = TERM_RED; } + (void)sprintf(num, "%6ld", (long)p_ptr->csane); + c_put_str(color, num, 11, 65); + put_str("/", 11, 71); + (void)sprintf(num, "%6ld", (long)p_ptr->msane); + c_put_str(TERM_L_GREEN, num, 11, 72); if (p_ptr->pgod != GOD_NONE) - prt_num("Piety ", p_ptr->grace, 13, 52, TERM_L_GREEN, " "); + { + prt_num("Piety ", p_ptr->grace, 12, 52, TERM_L_GREEN, " "); + } + + put_str("Speed ", 13, 52); + speed = p_ptr->pspeed; + /* Hack -- Visually "undo" the Search Mode Slowdown */ + if (p_ptr->searching) speed += 10; + if (speed > 110) + { + char s[11]; + (void)sprintf(s, "Fast (+%d)", speed - 110); + c_put_str(TERM_L_GREEN, s, 13, (speed >= 120) ? 68 : 69); + } + else if (speed < 110) + { + char s[11]; + (void)sprintf(s, "Slow (-%d)", 110 - speed); + c_put_str(TERM_L_UMBER, s, 13, (speed <= 100) ? 68 : 69); + } + else + { + put_str("Normal", 13, 72); + } } --- src/xtra1.c.orig 2004-05-11 08:01:23.000000000 -0400 +++ src/xtra1.c 2005-10-26 21:07:18.000000000 -0400 @@ -149,7 +149,7 @@ sprintf(tmp, "%9ld", p_ptr->grace); if (p_ptr->praying) - c_put_str(TERM_L_GREEN, tmp, ROW_PIETY, COL_PIETY + 3); + c_put_str(TERM_L_BLUE, tmp, ROW_PIETY, COL_PIETY + 3); else c_put_str(TERM_GREEN, tmp, ROW_PIETY, COL_PIETY + 3); } --- src/object1.c.orig 2006-02-19 18:16:49.000000000 -0500 +++ src/object1.c 2006-12-02 13:36:08.000000000 -0500 @@ -2166,7 +2166,17 @@ if ((f4 & TR4_LEVELS) && known) { t = object_desc_str(t, " (E:"); - t = object_desc_num(t, o_ptr->exp); + if (exp_need) + { + s32b need; + /* Formula from check_experience_obj(). */ + need = player_exp[o_ptr->elevel - 1] * 5 / 2; + t = object_desc_num(t, need - o_ptr->exp); + } + else + { + t = object_desc_num(t, o_ptr->exp); + } t = object_desc_str(t, ", L:"); t = object_desc_num(t, o_ptr->elevel); t = object_desc_chr(t, ')');