don't allow polymorphed player to web over the stairs
geographical shopkeeper updates
stethoscope use should be free the first time it's use per player move
+travel command caches last position to make non-mouse less painful
Platform- and/or Interface-Specific Fixes
int purge_monsters; /* # of dead monsters still on fmon list */
int *opt_booldup; /* for duplication of boolean opts in config file */
int *opt_compdup; /* for duplication of compound opts in config file */
- uchar bouldersym; /* symbol for boulder display */
+ uchar bouldersym; /* symbol for boulder display */
+ coord travelcc; /* coordinates for travel_cache */
#ifdef WIZARD
boolean sanity_check; /* run sanity checks */
boolean mon_polycontrol; /* debug: control monster polymorphs */
if (!flags.travelcmd) return 0;
cmd[1]=0;
- cc.x = u.ux;
- cc.y = u.uy;
+ cc.x = iflags.travelcc.x;
+ cc.y = iflags.travelcc.y;
+ if (cc.x == -1 && cc.y == -1) {
+ /* No cached destination, start attempt from current position */
+ cc.x = u.ux;
+ cc.y = u.uy;
+ }
pline("Where do you want to travel to?");
if (getpos(&cc, TRUE, "the desired destination") < 0) {
/* user pressed ESC */
return 0;
}
- u.tx = cc.x;
- u.ty = cc.y;
+ iflags.travelcc.x = u.tx = cc.x;
+ iflags.travelcc.y = u.ty = cc.y;
cmd[0] = CMD_TRAVEL;
readchar_queue = cmd;
return 0;
nomul(0);
/* reset run so domove run checks work */
flags.run = 8;
+ iflags.travelcc.x = iflags.travelcc.y = -1;
}
return TRUE;
}
for (i = 0; i < WARNCOUNT; i++)
warnsyms[i] = def_warnsyms[i].sym;
iflags.bouldersym = 0;
+ iflags.travelcc.x = iflags.travelcc.y = -1;
flags.warnlevel = 1;
flags.warntype = 0L;