more bot() tinkering
This commit is contained in:
@@ -201,6 +201,9 @@ struct instance_globals_b {
|
|||||||
/* zap.c */
|
/* zap.c */
|
||||||
struct monst *buzzer; /* zapper/caster/breather who initiates buzz() */
|
struct monst *buzzer; /* zapper/caster/breather who initiates buzz() */
|
||||||
|
|
||||||
|
/* new */
|
||||||
|
boolean bot_disabled;
|
||||||
|
|
||||||
boolean havestate;
|
boolean havestate;
|
||||||
unsigned long magic; /* validate that structure layout is preserved */
|
unsigned long magic; /* validate that structure layout is preserved */
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -763,7 +763,7 @@ struct sinfo {
|
|||||||
int in_checkpoint; /* saving insurance checkpoint */
|
int in_checkpoint; /* saving insurance checkpoint */
|
||||||
int in_parseoptions; /* in parseoptions */
|
int in_parseoptions; /* in parseoptions */
|
||||||
int in_role_selection; /* role/race/&c selection menus in progress */
|
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 config_error_ready; /* config_error_add is ready, available */
|
||||||
int beyond_savefile_load; /* set when past savefile loading */
|
int beyond_savefile_load; /* set when past savefile loading */
|
||||||
#ifdef PANICLOG
|
#ifdef PANICLOG
|
||||||
|
|||||||
+2
-2
@@ -245,7 +245,7 @@ do_statusline2(void)
|
|||||||
void
|
void
|
||||||
bot(void)
|
bot(void)
|
||||||
{
|
{
|
||||||
if (gp.program_state.in_getlin)
|
if (gb.bot_disabled)
|
||||||
return;
|
return;
|
||||||
/* dosave() flags completion by setting u.uhp to -1; suppress_map_output()
|
/* 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 */
|
covers program_state.restoring and is used for status as well as map */
|
||||||
@@ -267,7 +267,7 @@ bot(void)
|
|||||||
void
|
void
|
||||||
timebot(void)
|
timebot(void)
|
||||||
{
|
{
|
||||||
if (gp.program_state.in_getlin)
|
if (gb.bot_disabled)
|
||||||
return;
|
return;
|
||||||
/* we're called when iflags.time_botl is set and general gc.context.botl
|
/* 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
|
is clear; iflags.time_botl gets set whenever gm.moves changes value
|
||||||
|
|||||||
@@ -248,6 +248,7 @@ const struct instance_globals_b g_init_b = {
|
|||||||
FALSE, /* bucx_filter */
|
FALSE, /* bucx_filter */
|
||||||
/* zap.c */
|
/* zap.c */
|
||||||
NULL, /* buzzer -- monst that zapped/cast/breathed to initiate buzz() */
|
NULL, /* buzzer -- monst that zapped/cast/breathed to initiate buzz() */
|
||||||
|
FALSE, /* bot_disabled */
|
||||||
|
|
||||||
TRUE, /* havestate*/
|
TRUE, /* havestate*/
|
||||||
IVMAGIC /* b_magic to validate that structure layout has been preserved */
|
IVMAGIC /* b_magic to validate that structure layout has been preserved */
|
||||||
|
|||||||
@@ -851,6 +851,7 @@ panic VA_DECL(const char *, str)
|
|||||||
if (gp.program_state.panicking++)
|
if (gp.program_state.panicking++)
|
||||||
NH_abort(NULL); /* avoid loops - this should never happen*/
|
NH_abort(NULL); /* avoid loops - this should never happen*/
|
||||||
|
|
||||||
|
gb.bot_disabled = TRUE;
|
||||||
if (iflags.window_inited) {
|
if (iflags.window_inited) {
|
||||||
raw_print("\r\nOops...");
|
raw_print("\r\nOops...");
|
||||||
wait_synch(); /* make sure all pending output gets flushed */
|
wait_synch(); /* make sure all pending output gets flushed */
|
||||||
|
|||||||
@@ -1682,8 +1682,12 @@ get_menu_coloring(const char *str, int *color, int *attr)
|
|||||||
void
|
void
|
||||||
getlin(const char *query, register char *bufp)
|
getlin(const char *query, register char *bufp)
|
||||||
{
|
{
|
||||||
|
boolean old_bot_disabled = gb.bot_disabled;
|
||||||
|
|
||||||
gp.program_state.in_getlin = 1;
|
gp.program_state.in_getlin = 1;
|
||||||
|
gb.bot_disabled = TRUE;
|
||||||
(*windowprocs.win_getlin)(query, bufp);
|
(*windowprocs.win_getlin)(query, bufp);
|
||||||
|
gb.bot_disabled = old_bot_disabled;
|
||||||
gp.program_state.in_getlin = 0;
|
gp.program_state.in_getlin = 0;
|
||||||
}
|
}
|
||||||
/*windows.c*/
|
/*windows.c*/
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ curses_status_update(
|
|||||||
|
|
||||||
if (fldidx != BL_FLUSH) {
|
if (fldidx != BL_FLUSH) {
|
||||||
if (fldidx < 0 || fldidx >= MAXBLSTATS) {
|
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);
|
panic("curses_status_update(%d)", fldidx);
|
||||||
}
|
}
|
||||||
changed_fields |= (1 << fldidx);
|
changed_fields |= (1 << fldidx);
|
||||||
|
|||||||
Reference in New Issue
Block a user