mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2024-11-15 16:51:31 +00:00
- Added a NULL sector check to P_CheckFakeFloorTrigger() because there was
a crash report indicating that an actor being pushed up by a moving floor had a NULL sector. Since this field should be valid for every actor, the debug build gets an assert here, and the release build just returns without doing anything. - Fixed: Camera textures were not rendered properly when the underlying canvas's pitch and width were different (which, really, only happens if you use ridiculously large camera textures). - Fixed: FCanvasTextureInfo's were never freed. - Fixed: MAPINFO special action structures were not freed. - Fixed: FSingleLumpFont::LoadFON2() never freed its widths2 array. SVN r129 (trunk)
This commit is contained in:
parent
1971f97fd6
commit
93c5753270
8 changed files with 37 additions and 9 deletions
|
@ -1,3 +1,16 @@
|
|||
May 18, 2006
|
||||
- Added a NULL sector check to P_CheckFakeFloorTrigger() because there was
|
||||
a crash report indicating that an actor being pushed up by a moving floor
|
||||
had a NULL sector. Since this field should be valid for every actor, the
|
||||
debug build gets an assert here, and the release build just returns without
|
||||
doing anything.
|
||||
- Fixed: Camera textures were not rendered properly when the underlying
|
||||
canvas's pitch and width were different (which, really, only happens if
|
||||
you use ridiculously large camera textures).
|
||||
- Fixed: FCanvasTextureInfo's were never freed.
|
||||
- Fixed: MAPINFO special action structures were not freed.
|
||||
- Fixed: FSingleLumpFont::LoadFON2() never freed its widths2 array.
|
||||
|
||||
May 17, 2006 (Changes by Graf Zahl)
|
||||
- Fixed: In case the path to strife1.wad didn't contain any '/' an
|
||||
incorrect path was created for voices.wad.
|
||||
|
@ -1552,7 +1565,7 @@ February 10, 2005
|
|||
- Fixed: P_ExplodeMissile() should zero the projectile's speed before putting it into
|
||||
its DeathState, not after. Strife's flamethrower needs it like this, and I'm not
|
||||
sure when or why it was moved to happen after the state change.
|
||||
- Fixed: R_DrawSkyBoxes() needs to save and restory viewx and viewy as well as viewz
|
||||
- Fixed: R_DrawSkyBoxes() needs to save and restore viewx and viewy as well as viewz
|
||||
for drawing masked items.
|
||||
- Fixed: P_MorphPlayer() did not properly transfer ownership of inventory items, so
|
||||
when it destroyed the player's armor, it also unlinked anything after the armor in
|
||||
|
|
|
@ -666,6 +666,12 @@ static void ClearLevelInfoStrings(level_info_t *linfo)
|
|||
delete[] linfo->level_name;
|
||||
linfo->level_name = NULL;
|
||||
}
|
||||
for (FSpecialAction *spac = linfo->specialactions; spac != NULL; )
|
||||
{
|
||||
FSpecialAction *next = spac->Next;
|
||||
delete spac;
|
||||
spac = next;
|
||||
}
|
||||
}
|
||||
|
||||
static void ClearClusterInfoStrings(cluster_info_t *cinfo)
|
||||
|
|
|
@ -170,6 +170,7 @@ int FRandom::HitDice (int count)
|
|||
|
||||
void FRandom::StaticClearRandom ()
|
||||
{
|
||||
Printf ("init with seed %d\n", rngseed);
|
||||
const DWORD seed = rngseed*2+1; // add 3/26/98: add rngseed
|
||||
FRandom *rng = FRandom::RNGList;
|
||||
|
||||
|
|
|
@ -2002,6 +2002,11 @@ void P_CheckFakeFloorTriggers (AActor *mo, fixed_t oldz)
|
|||
return;
|
||||
}
|
||||
sector_t *sec = mo->Sector;
|
||||
assert (sec != NULL);
|
||||
if (sec == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (sec->heightsec != NULL && sec->SecActTarget != NULL)
|
||||
{
|
||||
sector_t *hs = sec->heightsec;
|
||||
|
|
|
@ -1026,7 +1026,7 @@ void FTexture::FlipSquareBlockRemap (BYTE *block, int x, int y, const BYTE *rema
|
|||
}
|
||||
}
|
||||
|
||||
void FTexture::FlipNonSquareBlock (BYTE *dst, const BYTE *src, int x, int y)
|
||||
void FTexture::FlipNonSquareBlock (BYTE *dst, const BYTE *src, int x, int y, int srcpitch)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
|
@ -1034,7 +1034,7 @@ void FTexture::FlipNonSquareBlock (BYTE *dst, const BYTE *src, int x, int y)
|
|||
{
|
||||
for (j = 0; j < y; ++j)
|
||||
{
|
||||
dst[i*y+j] = src[i+j*x];
|
||||
dst[i*y+j] = src[i+j*srcpitch];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1982,7 +1982,7 @@ void FPNGTexture::MakeTexture ()
|
|||
}
|
||||
else
|
||||
{
|
||||
FlipNonSquareBlock (newpix, Pixels, Width, Height);
|
||||
FlipNonSquareBlock (newpix, Pixels, Width, Height, Width);
|
||||
}
|
||||
BYTE *oldpix = Pixels;
|
||||
Pixels = newpix;
|
||||
|
@ -2631,7 +2631,7 @@ void FCanvasTexture::MakeTexture ()
|
|||
{
|
||||
Canvas = new DSimpleCanvas (Width, Height);
|
||||
Canvas->Lock ();
|
||||
if (Width != Height)
|
||||
if (Width != Height || Width != Canvas->GetPitch())
|
||||
{
|
||||
Pixels = new BYTE[Width*Height];
|
||||
}
|
||||
|
@ -2678,13 +2678,13 @@ void FCanvasTexture::RenderView (AActor *viewpoint, int fov)
|
|||
R_SetFOV (fov);
|
||||
R_RenderViewToCanvas (viewpoint, Canvas, 0, 0, Width, Height);
|
||||
R_SetFOV (savedfov);
|
||||
if (Width == Height)
|
||||
if (Pixels == Canvas->GetBuffer())
|
||||
{
|
||||
FlipSquareBlock (Pixels, Width, Height);
|
||||
}
|
||||
else
|
||||
{
|
||||
FlipNonSquareBlock (Pixels, Canvas->GetBuffer(), Width, Height);
|
||||
FlipNonSquareBlock (Pixels, Canvas->GetBuffer(), Width, Height, Canvas->GetPitch());
|
||||
}
|
||||
bNeedsUpdate = false;
|
||||
bDidUpdate = true;
|
||||
|
@ -3037,6 +3037,7 @@ void R_DeinitData ()
|
|||
{
|
||||
R_DeinitColormaps ();
|
||||
R_DeinitBuildTiles();
|
||||
FCanvasTextureInfo::EmptyList();
|
||||
|
||||
// Free openings
|
||||
if (openings != NULL)
|
||||
|
|
|
@ -664,7 +664,7 @@ protected:
|
|||
|
||||
static void FlipSquareBlock (BYTE *block, int x, int y);
|
||||
static void FlipSquareBlockRemap (BYTE *block, int x, int y, const BYTE *remap);
|
||||
static void FlipNonSquareBlock (BYTE *blockto, const BYTE *blockfrom, int x, int y);
|
||||
static void FlipNonSquareBlock (BYTE *blockto, const BYTE *blockfrom, int x, int y, int srcpitch);
|
||||
static void FlipNonSquareBlockRemap (BYTE *blockto, const BYTE *blockfrom, int x, int y, const BYTE *remap);
|
||||
};
|
||||
|
||||
|
|
|
@ -206,6 +206,8 @@ void (*hcolfunc_post4) (int sx, int yl, int yh);
|
|||
|
||||
cycle_t WallCycles, PlaneCycles, MaskedCycles, WallScanCycles;
|
||||
|
||||
FCanvasTextureInfo *FCanvasTextureInfo::List;
|
||||
|
||||
// PRIVATE DATA DEFINITIONS ------------------------------------------------
|
||||
|
||||
static int lastcenteryfrac;
|
||||
|
@ -1545,7 +1547,6 @@ void R_RenderViewToCanvas (AActor *actor, DCanvas *canvas,
|
|||
viewactive = savedviewactive;
|
||||
}
|
||||
|
||||
FCanvasTextureInfo *FCanvasTextureInfo::List;
|
||||
//==========================================================================
|
||||
//
|
||||
// FCanvasTextureInfo :: Add
|
||||
|
|
|
@ -778,6 +778,7 @@ void FSingleLumpFont::LoadFON2 (int lump, const BYTE *data)
|
|||
}
|
||||
|
||||
BuildTranslations (luminosity, identity);
|
||||
delete[] widths2;
|
||||
}
|
||||
|
||||
void FSingleLumpFont::FixupPalette (BYTE *identity, double *luminosity, const BYTE *palette, bool rescale)
|
||||
|
|
Loading…
Reference in a new issue