Skip to content

Commit

Permalink
Eyes plus stinking cloud
Browse files Browse the repository at this point in the history
stinking clouds extend their timers, causing the "ttl == 0" check in
visible_region_at to be inappropriate; technically it was never quite
right, since the ttl is set to 0 one turn before removal is considered. But
with the Eyes on, this caused a visible change in the region although the
region still existed.  Introduced a new -2L value to designate that the
region is being removed (-1L means it's permanent), which is what
visible_region_at was really trying to test.
  • Loading branch information
cohrs committed Sep 21, 2006
1 parent 2303fc8 commit a3e0bf9
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
2 changes: 2 additions & 0 deletions doc/fixes34.4
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,8 @@ hero is not subject to light-based blindness while fainted from hunger
engraving while underwater should use surface() which handles that case
prevent obj_is_local panic during bones creation when splatter_burning_oil()
from a thrown potion of oil kills the hero
fix region timeout detection, caused strange display of stinking cloud
while wearing the Eyes of the Overworld


Platform- and/or Interface-Specific Fixes
Expand Down
3 changes: 2 additions & 1 deletion src/region.c
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,7 @@ NhRegion *reg;
return;

/* Update screen if necessary */
reg->ttl = -2L; /* for visible_region_at */
if (reg->visible)
for (x = reg->bounding_box.lx; x <= reg->bounding_box.hx; x++)
for (y = reg->bounding_box.ly; y <= reg->bounding_box.hy; y++)
Expand Down Expand Up @@ -600,7 +601,7 @@ xchar x, y;

for (i = 0; i < n_regions; i++)
if (inside_region(regions[i], x, y) && regions[i]->visible &&
regions[i]->ttl != 0L)
regions[i]->ttl != -2L)
return regions[i];
return (NhRegion *) 0;
}
Expand Down

0 comments on commit a3e0bf9

Please sign in to comment.