in win/Qt/qt_win.cpp [2473:2640]
void NetHackQtStatusWindow::updateStats()
{
if (!parentWidget()) return;
char buf[BUFSZ];
if (cursy != 0) return; /* do a complete update when line 0 is done */
if (ACURR(A_STR) > 118) {
Sprintf(buf,"STR:%d",ACURR(A_STR)-100);
} else if (ACURR(A_STR)==118) {
Sprintf(buf,"STR:18/**");
} else if(ACURR(A_STR) > 18) {
Sprintf(buf,"STR:18/%02d",ACURR(A_STR)-18);
} else {
Sprintf(buf,"STR:%d",ACURR(A_STR));
}
str.setLabel(buf,NetHackQtLabelledIcon::NoNum,ACURR(A_STR));
dex.setLabel("DEX:",(long)ACURR(A_DEX));
con.setLabel("CON:",(long)ACURR(A_CON));
intel.setLabel("INT:",(long)ACURR(A_INT));
wis.setLabel("WIS:",(long)ACURR(A_WIS));
cha.setLabel("CHA:",(long)ACURR(A_CHA));
const char* hung=hu_stat[u.uhs];
if (hung[0]==' ') {
hunger.hide();
} else {
hunger.setIcon(u.uhs ? p_hungry : p_satiated);
hunger.setLabel(hung);
hunger.show();
}
if (Confusion) confused.show(); else confused.hide();
if (Sick) {
if (u.usick_type & SICK_VOMITABLE) {
sick_fp.show();
} else {
sick_fp.hide();
}
if (u.usick_type & SICK_NONVOMITABLE) {
sick_il.show();
} else {
sick_il.hide();
}
} else {
sick_fp.hide();
sick_il.hide();
}
if (Blind) blind.show(); else blind.hide();
if (Stunned) stunned.show(); else stunned.hide();
if (Hallucination) hallu.show(); else hallu.hide();
const char* enc=enc_stat[near_capacity()];
if (enc[0]==' ' || !enc[0]) {
encumber.hide();
} else {
encumber.setIcon(p_encumber[near_capacity()-1]);
encumber.setLabel(enc);
encumber.show();
}
Strcpy(buf, plname);
if ('a' <= buf[0] && buf[0] <= 'z') buf[0] += 'A'-'a';
Strcat(buf, " the ");
if (u.mtimedone) {
char mname[BUFSZ];
int k = 0;
Strcpy(mname, mons[u.umonnum].mname);
while(mname[k] != 0) {
if ((k == 0 || (k > 0 && mname[k-1] == ' '))
&& 'a' <= mname[k] && mname[k] <= 'z')
{
mname[k] += 'A' - 'a';
}
k++;
}
Strcat(buf, mname);
} else {
Strcat(buf, rank_of(u.ulevel, pl_character[0], ::flags.female));
}
name.setLabel(buf,NetHackQtLabelledIcon::NoNum,u.ulevel);
if (describe_level(buf)) {
dlevel.setLabel(buf,(bool)TRUE);
} else {
Sprintf(buf, "%s, level ", dungeons[u.uz.dnum].dname);
dlevel.setLabel(buf,(long)depth(&u.uz));
}
gold.setLabel("Au:", money_cnt(invent));
if (u.mtimedone) {
// You're a monster!
Sprintf(buf, "/%d", u.mhmax);
hp.setLabel("HP:",u.mh > 0 ? u.mh : 0,buf);
level.setLabel("HD:",(long)mons[u.umonnum].mlevel);
} else {
// You're normal.
Sprintf(buf, "/%d", u.uhpmax);
hp.setLabel("HP:",u.uhp > 0 ? u.uhp : 0,buf);
level.setLabel("Level:",(long)u.ulevel);
}
Sprintf(buf, "/%d", u.uenmax);
power.setLabel("Pow:",u.uen,buf);
ac.setLabel("AC:",(long)u.uac);
if (::flags.showexp) {
exp.setLabel("Exp:",(long)u.uexp);
} else
{
exp.setLabel("");
}
if (u.ualign.type==A_CHAOTIC) {
align.setIcon(p_chaotic);
align.setLabel("Chaotic");
} else if (u.ualign.type==A_NEUTRAL) {
align.setIcon(p_neutral);
align.setLabel("Neutral");
} else {
align.setIcon(p_lawful);
align.setLabel("Lawful");
}
if (::flags.time) time.setLabel("Time:",(long)moves);
else time.setLabel("");
#ifdef SCORE_ON_BOTL
if (::flags.showscore) {
score.setLabel("Score:",(long)botl_score());
} else
#endif
{
score.setLabel("");
}
if (first_set)
{
first_set=FALSE;
name.highlightWhenChanging();
dlevel.highlightWhenChanging();
str.highlightWhenChanging();
dex.highlightWhenChanging();
con.highlightWhenChanging();
intel.highlightWhenChanging();
wis.highlightWhenChanging();
cha.highlightWhenChanging();
gold.highlightWhenChanging();
hp.highlightWhenChanging();
power.highlightWhenChanging();
ac.highlightWhenChanging(); ac.lowIsGood();
level.highlightWhenChanging();
exp.highlightWhenChanging();
align.highlightWhenChanging();
//time.highlightWhenChanging();
score.highlightWhenChanging();
hunger.highlightWhenChanging();
confused.highlightWhenChanging();
sick_fp.highlightWhenChanging();
sick_il.highlightWhenChanging();
blind.highlightWhenChanging();
stunned.highlightWhenChanging();
hallu.highlightWhenChanging();
encumber.highlightWhenChanging();
}
}