Fix use of data from deleted vault teleport trap
This commit is contained in:
@@ -490,12 +490,14 @@ int
|
|||||||
dotele()
|
dotele()
|
||||||
{
|
{
|
||||||
struct trap *trap;
|
struct trap *trap;
|
||||||
|
boolean trap_once = FALSE;
|
||||||
|
|
||||||
trap = t_at(u.ux, u.uy);
|
trap = t_at(u.ux, u.uy);
|
||||||
if (trap && (!trap->tseen || trap->ttyp != TELEP_TRAP))
|
if (trap && (!trap->tseen || trap->ttyp != TELEP_TRAP))
|
||||||
trap = 0;
|
trap = 0;
|
||||||
|
|
||||||
if (trap) {
|
if (trap) {
|
||||||
|
trap_once = trap->once; /* trap may get deleted, save this */
|
||||||
if (trap->once) {
|
if (trap->once) {
|
||||||
pline("This is a vault teleport, usable once only.");
|
pline("This is a vault teleport, usable once only.");
|
||||||
if (yn("Jump in?") == 'n')
|
if (yn("Jump in?") == 'n')
|
||||||
@@ -569,7 +571,7 @@ dotele()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (next_to_u()) {
|
if (next_to_u()) {
|
||||||
if (trap && trap->once)
|
if (trap && trap_once)
|
||||||
vault_tele();
|
vault_tele();
|
||||||
else
|
else
|
||||||
tele();
|
tele();
|
||||||
|
|||||||
Reference in New Issue
Block a user