daily Qt status window update...

Highlight changes to dungeon location or alignment in blue instead
of green or red since neither the old value nor the new can be
classified as better than the other.  Likewise when changing
between regular Hp and Xp (or Xp/Exp) to or from you-as-mon Hp and
HD when polymorph or rehumanization takes place.

When toggling Score On, start out highlighted in blue instead of
green.  When toggling it Off, don't highlight the blank space
where it had been in red.  At the moment there's a quirk here;
if it is highlighted in green (from recent change) or blue (from
having just been toggled on) at the time it gets toggled off, the
space stays green or blue until that highlight times out.  (It has
occurred to me that the bogus red highlight might have been added
to deliberately overwrite stale green highlights.  If so, a better
fix should be achievable.)

For the title (plname and rank or plname and monster-species),
capitalize the player name since core's botl() and at least some
other interfaces do that.

TODO:  toggling Exp needs work.  The field used for deciding
up/down changes gets swapped and the update in progress compares
apples and oranges.  [This wasn't an issue in the original Qt
implementation where Xp and Exp were two separate fields.]
This commit is contained in:
PatR
2020-11-19 04:48:15 -08:00
parent 7b50590654
commit f7a3e7884c
4 changed files with 177 additions and 91 deletions
+14 -7
View File
@@ -9,13 +9,18 @@
namespace nethack_qt_ {
enum CompareMode {
NoCompare = -1, BiggerIsBetter = 0,
SmallerIsBetter = 1, NeitherIsBetter = 2
};
class NetHackQtLabelledIcon : public QWidget {
public:
NetHackQtLabelledIcon(QWidget *parent, const char *label);
NetHackQtLabelledIcon(QWidget *parent, const char *label,
const QPixmap &icon);
enum { NoNum=-99999 };
enum { NoNum = -99999L };
void setLabel(const QString &, bool lower=true); // string
void setLabel(const QString &, long, const QString &tail=""); // number
void setLabel(const QString &, long show_value,
@@ -25,7 +30,7 @@ public:
//QString labelText() { return QString(this->label->text()); }
void highlightWhenChanging();
void lowIsGood();
void setCompareMode(int newmode);
void dissipateHighlight();
void ForceResize();
@@ -45,11 +50,13 @@ private:
void highlight(const QString& highlight);
void unhighlight();
bool low_is_good;
int prev_value;
int turn_count; /* last time the value changed */
QString hl_good;
QString hl_bad;
int comp_mode; /* compareMode; default is BiggerIsBetter */
long prev_value;
long turn_count; /* last time the value changed */
QString hl_better;
QString hl_worse;
QString hl_changd;
};
} // namespace nethack_qt_