Show some timed properties in #timeout

Also simplify the levitation_dialogue a bit
This commit is contained in:
Pasi Kallinen
2016-09-29 18:48:52 +03:00
parent eac1d825f2
commit 60b4e5528e
2 changed files with 47 additions and 17 deletions

View File

@@ -343,6 +343,7 @@ differentiate symset and roguesymset option menu prompts
don't show monster vs. monster attack message, if the message refers to don't show monster vs. monster attack message, if the message refers to
a monster that cannot be sensed by the hero a monster that cannot be sensed by the hero
umber hulk gazing at hidden mimic forces mimic to unhide umber hulk gazing at hidden mimic forces mimic to unhide
show some timed hero properties in wizard-mode #timeout
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository

View File

@@ -123,14 +123,18 @@ vomiting_dialogue()
} }
static NEARDATA const char *const choke_texts[] = { static NEARDATA const char *const choke_texts[] = {
"You find it hard to breathe.", "You're gasping for air.", "You find it hard to breathe.",
"You can no longer breathe.", "You're turning %s.", "You suffocate." "You're gasping for air.",
"You can no longer breathe.",
"You're turning %s.",
"You suffocate."
}; };
static NEARDATA const char *const choke_texts2[] = { static NEARDATA const char *const choke_texts2[] = {
"Your %s is becoming constricted.", "Your %s is becoming constricted.",
"Your blood is having trouble reaching your brain.", "Your blood is having trouble reaching your brain.",
"The pressure on your %s increases.", "Your consciousness is fading.", "The pressure on your %s increases.",
"Your consciousness is fading.",
"You suffocate." "You suffocate."
}; };
@@ -156,14 +160,14 @@ choke_dialogue()
static NEARDATA const char *const levi_texts[] = { static NEARDATA const char *const levi_texts[] = {
"You float slightly lower.", "You float slightly lower.",
"You wobble unsteadily %s the %s.", "You wobble unsteadily %s the %s."
NULL
}; };
STATIC_OVL void STATIC_OVL void
levitation_dialogue() levitation_dialogue()
{ {
long i = (HLevitation & TIMEOUT) / 2L; /* -1 because the last message comes via float_down() */
long i = (((HLevitation & TIMEOUT) - 1L) / 2L);
if (ELevitation) if (ELevitation)
return; return;
@@ -172,17 +176,15 @@ levitation_dialogue()
&& !is_pool_or_lava(u.ux,u.uy)) && !is_pool_or_lava(u.ux,u.uy))
return; return;
if (((HLevitation & TIMEOUT) % 2L) && i >= 0L && i < SIZE(levi_texts)) { if (((HLevitation & TIMEOUT) % 2L) && i > 0L && i <= SIZE(levi_texts)) {
const char *s = levi_texts[SIZE(levi_texts) - i - 1L]; const char *s = levi_texts[SIZE(levi_texts) - i];
if (s) { if (index(s, '%')) {
if (index(s, '%')) { boolean danger = is_pool_or_lava(u.ux, u.uy)
boolean danger = is_pool_or_lava(u.ux, u.uy) && !Is_waterlevel(&u.uz);
&& !Is_waterlevel(&u.uz); pline(s, danger ? "over" : "in",
pline(s, danger ? "over" : "in", danger ? surface(u.ux, u.uy) : "air");
danger ? surface(u.ux, u.uy) : "air"); } else
} else pline1(s);
pline1(s);
}
} }
} }
@@ -1488,6 +1490,26 @@ timer_element *base;
} }
} }
static boolean print_prop_header = TRUE;
void
print_prop(win, text, prop)
winid win;
const char *text;
long prop;
{
char buf[BUFSZ];
if (prop & TIMEOUT) {
if (print_prop_header) {
putstr(win, 0, "");
putstr(win, 0, "Properties:");
putstr(win, 0, "");
print_prop_header = FALSE;
}
Sprintf(buf, " %10s: %ld", text, (prop & TIMEOUT));
putstr(win, 0, buf);
}
}
int int
wiz_timeout_queue() wiz_timeout_queue()
{ {
@@ -1505,6 +1527,13 @@ wiz_timeout_queue()
putstr(win, 0, ""); putstr(win, 0, "");
print_queue(win, timer_base); print_queue(win, timer_base);
print_prop_header = TRUE;
print_prop(win, "Levitation", HLevitation);
print_prop(win, "Stoned", Stoned);
print_prop(win, "Vomiting", Vomiting);
print_prop(win, "Strangled", Strangled);
print_prop(win, "Slimed", Slimed);
display_nhwindow(win, FALSE); display_nhwindow(win, FALSE);
destroy_nhwindow(win); destroy_nhwindow(win);