Apply runmode to multiturn actions

This commit is contained in:
Pasi Kallinen
2021-12-21 17:37:48 +02:00
parent 8f366c725e
commit b1ed92abad
4 changed files with 14 additions and 5 deletions
+1
View File
@@ -720,6 +720,7 @@ if a leashed pet changed name (#name m) or an unnamed pet changed type
attack feedback when using a bullwhip said "swing"; change to "lash" attack feedback when using a bullwhip said "swing"; change to "lash"
attack feedback for monster using polearm when adjacent said "thrust"; change attack feedback for monster using polearm when adjacent said "thrust"; change
to "bash" to "bash"
apply runmode delay to multiturn actions, not just running
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
+1
View File
@@ -874,6 +874,7 @@ extern int wiz_debug_cmd_traveldisplay(void);
#endif #endif
extern boolean u_rooted(void); extern boolean u_rooted(void);
extern void domove(void); extern void domove(void);
extern void runmode_delay_output(void);
extern void overexert_hp(void); extern void overexert_hp(void);
extern boolean overexertion(void); extern boolean overexertion(void);
extern void invocation_message(void); extern void invocation_message(void);
+3 -4
View File
@@ -336,6 +336,7 @@ moveloop_core(void)
/* when immobile, count is in turns */ /* when immobile, count is in turns */
if (g.multi < 0) { if (g.multi < 0) {
runmode_delay_output();
if (++g.multi == 0) { /* finished yet? */ if (++g.multi == 0) { /* finished yet? */
unmul((char *) 0); unmul((char *) 0);
/* if unmul caused a level change, take it now */ /* if unmul caused a level change, take it now */
@@ -433,10 +434,7 @@ moveloop_core(void)
stop_occupation(); stop_occupation();
reset_eat(); reset_eat();
} }
#if defined(MICRO) || defined(WIN32) runmode_delay_output();
if (!(++g.occtime % 7))
display_nhwindow(WIN_MAP, FALSE);
#endif
return; return;
} }
@@ -449,6 +447,7 @@ moveloop_core(void)
if (g.multi > 0) { if (g.multi > 0) {
lookaround(); lookaround();
runmode_delay_output();
if (!g.multi) { if (!g.multi) {
/* lookaround may clear multi */ /* lookaround may clear multi */
g.context.move = 0; g.context.move = 0;
+9 -1
View File
@@ -2141,7 +2141,15 @@ domove_core(void)
g.nomovemsg = ""; g.nomovemsg = "";
} }
if (g.context.run && flags.runmode != RUN_TPORT) { runmode_delay_output();
}
/* delay output based on value of runmode,
if hero is running or doing a multi-turn action */
void
runmode_delay_output(void)
{
if ((g.context.run || g.multi) && flags.runmode != RUN_TPORT) {
/* for tport mode, don't display anything until we've stopped; /* for tport mode, don't display anything until we've stopped;
for normal (leap) mode, update display every 7th step for normal (leap) mode, update display every 7th step
(relative to turn counter; ought to be to start of running); (relative to turn counter; ought to be to start of running);