Eyes plus stinking cloud
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.
This commit is contained in:
@@ -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++)
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user