void NetHackQtStatusWindow::updateStats()

in win/Qt4/qt4stat.cpp [366:531]


void NetHackQtStatusWindow::updateStats()
{
    if (!parentWidget()) return;

    QString buf;
    const char *text;

    if (cursy != 0) return;    /* do a complete update when line 0 is done */

    if (ACURR(A_STR) > 118) {
	buf.sprintf("STR:%d",ACURR(A_STR)-100);
    } else if (ACURR(A_STR)==118) {
	buf.sprintf("STR:18/**");
    } else if(ACURR(A_STR) > 18) {
	buf.sprintf("STR:18/%02d",ACURR(A_STR)-18);
    } else {
	buf.sprintf("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.setLabel("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();
    }
    if (u.mtimedone) {
	buf = nh_capitalize_words(mons[u.umonnum].mname);
    } else {
	buf = rank_of(u.ulevel, pl_character[0], ::flags.female);
    }
    QString buf2;
    buf2.sprintf("%s the %s", plname, buf.toLatin1().constData());
    name.setLabel(buf2, NetHackQtLabelledIcon::NoNum, u.ulevel);

    char buf3[BUFSZ];
    if (describe_level(buf3)) {
	dlevel.setLabel(buf3,true);
    } else {
	buf.sprintf("%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!

	buf.sprintf("/%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.

	buf.sprintf("/%d", u.uhpmax);
	hp.setLabel("HP:", u.uhp > 0 ? u.uhp : 0, buf);
	level.setLabel("Level:",(long)u.ulevel);
    }
    buf.sprintf("/%d", u.uenmax);
    power.setLabel("Pow:", u.uen, buf);
    ac.setLabel("AC:",(long)u.uac);
#ifdef EXP_ON_BOTL
    if (::flags.showexp) {
	exp.setLabel("Exp:",(long)u.uexp);
    } else
#endif
    {
	exp.setLabel("");
    }
    if (u.ualign.type==A_CHAOTIC) {
	align.setIcon(p_chaotic);
	text = "Chaotic";
    } else if (u.ualign.type==A_NEUTRAL) {
	align.setIcon(p_neutral);
	text = "Neutral";
    } else {
	align.setIcon(p_lawful);
	text = "Lawful";
    }
    align.setLabel(text);

    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();
    }
}