more bot() tinkering

This commit is contained in:
nhmall
2023-11-17 09:47:39 -05:00
parent a46c71f4c5
commit 0a13d759a3
7 changed files with 13 additions and 4 deletions

View File

@@ -201,6 +201,9 @@ struct instance_globals_b {
/* zap.c */
struct monst *buzzer; /* zapper/caster/breather who initiates buzz() */
/* new */
boolean bot_disabled;
boolean havestate;
unsigned long magic; /* validate that structure layout is preserved */
};

View File

@@ -763,7 +763,7 @@ struct sinfo {
int in_checkpoint; /* saving insurance checkpoint */
int in_parseoptions; /* in parseoptions */
int in_role_selection; /* role/race/&c selection menus in progress */
int in_getlin; /* inside interface getline routine */
int in_getlin; /* inside interface getlin routine */
int config_error_ready; /* config_error_add is ready, available */
int beyond_savefile_load; /* set when past savefile loading */
#ifdef PANICLOG

View File

@@ -245,7 +245,7 @@ do_statusline2(void)
void
bot(void)
{
if (gp.program_state.in_getlin)
if (gb.bot_disabled)
return;
/* dosave() flags completion by setting u.uhp to -1; suppress_map_output()
covers program_state.restoring and is used for status as well as map */
@@ -267,7 +267,7 @@ bot(void)
void
timebot(void)
{
if (gp.program_state.in_getlin)
if (gb.bot_disabled)
return;
/* we're called when iflags.time_botl is set and general gc.context.botl
is clear; iflags.time_botl gets set whenever gm.moves changes value

View File

@@ -248,6 +248,7 @@ const struct instance_globals_b g_init_b = {
FALSE, /* bucx_filter */
/* zap.c */
NULL, /* buzzer -- monst that zapped/cast/breathed to initiate buzz() */
FALSE, /* bot_disabled */
TRUE, /* havestate*/
IVMAGIC /* b_magic to validate that structure layout has been preserved */

View File

@@ -851,6 +851,7 @@ panic VA_DECL(const char *, str)
if (gp.program_state.panicking++)
NH_abort(NULL); /* avoid loops - this should never happen*/
gb.bot_disabled = TRUE;
if (iflags.window_inited) {
raw_print("\r\nOops...");
wait_synch(); /* make sure all pending output gets flushed */

View File

@@ -1682,8 +1682,12 @@ get_menu_coloring(const char *str, int *color, int *attr)
void
getlin(const char *query, register char *bufp)
{
boolean old_bot_disabled = gb.bot_disabled;
gp.program_state.in_getlin = 1;
gb.bot_disabled = TRUE;
(*windowprocs.win_getlin)(query, bufp);
gb.bot_disabled = old_bot_disabled;
gp.program_state.in_getlin = 0;
}
/*windows.c*/

View File

@@ -152,7 +152,7 @@ curses_status_update(
if (fldidx != BL_FLUSH) {
if (fldidx < 0 || fldidx >= MAXBLSTATS) {
gc.context.botlx = gc.context.botl = FALSE; /* avoid bot() */
/* panic immediately sets gb.bot_disabled to avoid bot() */
panic("curses_status_update(%d)", fldidx);
}
changed_fields |= (1 << fldidx);