static mswin_status_lines _status_lines;
static mswin_status_string _status_strings[MAXBLSTATS];
-static mswin_status_string _condition_strings[BL_MASK_BITS];
+static mswin_status_string _condition_strings[CONDITION_COUNT];
static mswin_status_field _status_fields[MAXBLSTATS];
-static mswin_condition_field _condition_fields[BL_MASK_BITS] = {
- { BL_MASK_STONE, "Stone" },
- { BL_MASK_SLIME, "Slime" },
- { BL_MASK_STRNGL, "Strngl" },
- { BL_MASK_FOODPOIS, "FoodPois" },
- { BL_MASK_TERMILL, "TermIll" },
- { BL_MASK_BLIND, "Blind" },
- { BL_MASK_DEAF, "Deaf" },
- { BL_MASK_STUN, "Stun" },
- { BL_MASK_CONF, "Conf" },
- { BL_MASK_HALLU, "Hallu" },
- { BL_MASK_LEV, "Lev" },
- { BL_MASK_FLY, "Fly" },
- { BL_MASK_RIDE, "Ride" }
+static mswin_condition_field _condition_fields[CONDITION_COUNT] = {
+ { BL_MASK_BAREH, "Bare" },
+ { BL_MASK_BLIND, "Blind" },
+ { BL_MASK_BUSY, "Busy" },
+ { BL_MASK_CONF, "Conf" },
+ { BL_MASK_DEAF, "Deaf" },
+ { BL_MASK_ELF_IRON, "Iron" },
+ { BL_MASK_FLY, "Fly" },
+ { BL_MASK_FOODPOIS, "FoodPois" },
+ { BL_MASK_GLOWHANDS, "Glow" },
+ { BL_MASK_GRAB, "Grab" },
+ { BL_MASK_HALLU, "Hallu" },
+ { BL_MASK_HELD, "Held" },
+ { BL_MASK_ICY, "Icy" },
+ { BL_MASK_INLAVA, "Lava" },
+ { BL_MASK_LEV, "Lev" },
+ { BL_MASK_PARLYZ, "Parlyz" },
+ { BL_MASK_RIDE, "Ride" },
+ { BL_MASK_SLEEPING, "Zzz" },
+ { BL_MASK_SLIME, "Slime" },
+ { BL_MASK_SLIPPERY, "Slip" },
+ { BL_MASK_STONE, "Stone" },
+ { BL_MASK_STRNGL, "Strngl" },
+ { BL_MASK_STUN, "Stun" },
+ { BL_MASK_SUBMERGED, "Sub" },
+ { BL_MASK_TERMILL, "TermIll" },
+ { BL_MASK_TETHERED, "Teth" },
+ { BL_MASK_TRAPPED, "Trap" },
+ { BL_MASK_UNCONSC, "Out" },
+ { BL_MASK_WOUNDEDL, "Legs" },
};
-
extern winid WIN_STATUS;
#ifdef STATUS_HILITES
mswin_status_init(void)
{
logDebug("mswin_status_init()\n");
+ int ci;
for (int i = 0; i < SIZE(_status_fields); i++) {
mswin_status_field * status_field = &_status_fields[i];
}
for (int i = 0; i < SIZE(_condition_fields); i++) {
- mswin_condition_field * condition_field = &_condition_fields[i];
- nhassert(condition_field->mask == (1 << i));
- condition_field->bit_position = i;
+ ci = cond_idx[i];
+ mswin_condition_field * condition_field = &_condition_fields[ci];
+ nhassert(condition_field->mask == (1 << ci));
+ condition_field->bit_position = ci;
}
for (int i = 0; i < SIZE(_status_strings); i++) {
}
for (int i = 0; i < SIZE(_condition_strings); i++) {
- mswin_status_string * status_string = &_condition_strings[i];
+ ci = cond_idx[i];
+ mswin_status_string * status_string = &_condition_strings[ci];
status_string->str = NULL;
}
&_status_strings[field_index];
if (field_index == BL_CONDITION) {
- for (int j = 0; j < BL_MASK_BITS; j++) {
+ for (int j = 0; j < CONDITION_COUNT; j++) {
+ ci = cond_idx[j];
nhassert(status_strings->count <= SIZE(status_strings->status_strings));
status_strings->status_strings[status_strings->count++] =
- &_condition_strings[j];
+ &_condition_strings[ci];
}
}
}
long cond, *condptr = (long *) ptr;
char *text = (char *) ptr;
MSNHMsgUpdateStatus update_cmd_data;
- int ocolor, ochar;
+ int ocolor, ochar, ci;
unsigned ospecial;
logDebug("mswin_status_update(%d, %p, %d, %d, %x, %p)\n", idx, ptr, chg, percent, color, condmasks);
switch (idx) {
case BL_CONDITION: {
- mswin_condition_field * condition_field = _condition_fields;
+ mswin_condition_field * condition_field;
nhassert(status_string->str == NULL);
cond = *condptr;
- for (int i = 0; i < BL_MASK_BITS; i++, condition_field++) {
- status_string = &_condition_strings[i];
+ for (int i = 0; i < CONDITION_COUNT; i++) {
+ ci = cond_idx[i];
+ condition_field = &_condition_fields[ci];
+ status_string = &_condition_strings[ci];
if (condition_field->mask & cond) {
status_string->str = condition_field->name;