- Fixed: The compatibility searches for teleport destinations did not work

properly when the teleporter had both a tid and a tag. Now, if a teleporter
  has a tag these are skipped because they are only present for Hexen
  compatibility.


SVN r994 (trunk)
This commit is contained in:
Christoph Oelckers 2008-05-23 17:50:28 +00:00
parent 4434e322e2
commit 1dc9528b43
2 changed files with 17 additions and 9 deletions

View file

@ -1,4 +1,8 @@
May 23, 2008 (Changes by Graf Zahl) May 23, 2008 (Changes by Graf Zahl)
- Fixed: The compatibility searches for teleport destinations did not work
properly when the teleporter had both a tid and a tag. Now, if a teleporter
has a tag these are skipped because they are only present for Hexen
compatibility.
- Fixed: The first texture in a TEXTURE1 lump, although invalid when used - Fixed: The first texture in a TEXTURE1 lump, although invalid when used
elsewhere, must be usable as sky (see Requiem.wad's SKY3.) elsewhere, must be usable as sky (see Requiem.wad's SKY3.)
- Fixed: side_t::GetLightLevel relied on the global 'linedef' variable for - Fixed: side_t::GetLightLevel relied on the global 'linedef' variable for

View file

@ -349,21 +349,25 @@ static AActor *SelectTeleDest (int tid, int tag)
// If teleport dests were not found, the sector tag is ignored for the // If teleport dests were not found, the sector tag is ignored for the
// following compatibility searches. // following compatibility searches.
// Do this only when tag is 0 because this is the only case that was defined in Hexen.
if (count == 0) if (count == 0)
{ {
// Try to find a matching map spot (fixes Hexen MAP10) if (tag == 0)
NActorIterator it2 (NAME_MapSpot, tid);
searcher = it2.Next ();
if (searcher == NULL)
{ {
// Try to find a matching non-blocking spot of any type (fixes Caldera MAP13) // Try to find a matching map spot (fixes Hexen MAP10)
FActorIterator it3 (tid); NActorIterator it2 (NAME_MapSpot, tid);
searcher = it3.Next (); searcher = it2.Next ();
while (searcher != NULL && (searcher->flags & MF_SOLID)) if (searcher == NULL)
{ {
// Try to find a matching non-blocking spot of any type (fixes Caldera MAP13)
FActorIterator it3 (tid);
searcher = it3.Next (); searcher = it3.Next ();
while (searcher != NULL && (searcher->flags & MF_SOLID))
{
searcher = it3.Next ();
}
return searcher;
} }
return searcher;
} }
} }
else else