- added a compatibility option to restore the original Heretic bug where
a Minotaur couldn't spawn floor flames when standing in water having its feet clipped. - added vid_vsync to display options. - fixed: Animations of type 'Range' must be disabled if the textures don't come from the same definition unit (i.e both containing file and use type are identical.) - changed: Item pushing is now only done once per P_XYMovement call. - Increased the push factor of Heretic's pod to 0.5 so that its behavior more closely matches the original which depended on several bugs in the engine. - Removed damage thrust clamping in P_DamageMobj and changed the thrust calculation to use floats to prevent overflows. The prevention of the overflows was the only reason the clamping was done. - Added Raven's dagger-like vector sprite for the player to the automap code. SVN r1668 (trunk)
This commit is contained in:
parent
e69f90076d
commit
3ab370b6ee
16 changed files with 149 additions and 36 deletions
|
|
@ -371,6 +371,40 @@ void FTextureManager::ReplaceTexture (FTextureID picnum, FTexture *newtexture, b
|
|||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FTextureManager :: AreTexturesCompatible
|
||||
//
|
||||
// Checks if 2 textures are compatible for a ranged animation
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
bool FTextureManager::AreTexturesCompatible (FTextureID picnum1, FTextureID picnum2)
|
||||
{
|
||||
int index1 = picnum1.GetIndex();
|
||||
int index2 = picnum2.GetIndex();
|
||||
if (unsigned(index1) >= Textures.Size() || unsigned(index2) >= Textures.Size())
|
||||
return false;
|
||||
|
||||
FTexture *texture1 = Textures[index1].Texture;
|
||||
FTexture *texture2 = Textures[index2].Texture;
|
||||
|
||||
// both textures must be the same type.
|
||||
if (texture1 == NULL || texture2 == NULL || texture1->UseType != texture2->UseType)
|
||||
return false;
|
||||
|
||||
// both textures must be from the same file
|
||||
for(unsigned i = 0; i < FirstTextureForFile.Size() - 1; i++)
|
||||
{
|
||||
if (index1 >= FirstTextureForFile[i] && index1 < FirstTextureForFile[i+1])
|
||||
{
|
||||
return (index2 >= FirstTextureForFile[i] && index2 < FirstTextureForFile[i+1]);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FTextureManager :: AddGroup
|
||||
|
|
@ -707,6 +741,8 @@ void FTextureManager::AddTexturesForWad(int wadnum)
|
|||
int firsttexture = Textures.Size();
|
||||
int lumpcount = Wads.GetNumLumps();
|
||||
|
||||
FirstTextureForFile.Push(firsttexture);
|
||||
|
||||
// First step: Load sprites
|
||||
AddGroup(wadnum, ns_sprites, FTexture::TEX_Sprite);
|
||||
|
||||
|
|
@ -857,7 +893,12 @@ void FTextureManager::Init()
|
|||
{
|
||||
AddTexturesForWad(i);
|
||||
}
|
||||
|
||||
// Add one marker so that the last WAD is easier to handle and treat
|
||||
// Build tiles as a completely separate block.
|
||||
FirstTextureForFile.Push(Textures.Size());
|
||||
R_InitBuildTiles ();
|
||||
FirstTextureForFile.Push(Textures.Size());
|
||||
|
||||
DefaultTexture = CheckForTexture ("-NOFLAT-", FTexture::TEX_Override, 0);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue