mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-25 21:41:03 +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)
|
May 17, 2006 (Changes by Graf Zahl)
|
||||||
- Fixed: In case the path to strife1.wad didn't contain any '/' an
|
- Fixed: In case the path to strife1.wad didn't contain any '/' an
|
||||||
incorrect path was created for voices.wad.
|
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
|
- 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
|
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.
|
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.
|
for drawing masked items.
|
||||||
- Fixed: P_MorphPlayer() did not properly transfer ownership of inventory items, so
|
- 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
|
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;
|
delete[] linfo->level_name;
|
||||||
linfo->level_name = NULL;
|
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)
|
static void ClearClusterInfoStrings(cluster_info_t *cinfo)
|
||||||
|
|
|
@ -170,6 +170,7 @@ int FRandom::HitDice (int count)
|
||||||
|
|
||||||
void FRandom::StaticClearRandom ()
|
void FRandom::StaticClearRandom ()
|
||||||
{
|
{
|
||||||
|
Printf ("init with seed %d\n", rngseed);
|
||||||
const DWORD seed = rngseed*2+1; // add 3/26/98: add rngseed
|
const DWORD seed = rngseed*2+1; // add 3/26/98: add rngseed
|
||||||
FRandom *rng = FRandom::RNGList;
|
FRandom *rng = FRandom::RNGList;
|
||||||
|
|
||||||
|
|
|
@ -2002,6 +2002,11 @@ void P_CheckFakeFloorTriggers (AActor *mo, fixed_t oldz)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sector_t *sec = mo->Sector;
|
sector_t *sec = mo->Sector;
|
||||||
|
assert (sec != NULL);
|
||||||
|
if (sec == NULL)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (sec->heightsec != NULL && sec->SecActTarget != NULL)
|
if (sec->heightsec != NULL && sec->SecActTarget != NULL)
|
||||||
{
|
{
|
||||||
sector_t *hs = sec->heightsec;
|
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;
|
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)
|
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
|
else
|
||||||
{
|
{
|
||||||
FlipNonSquareBlock (newpix, Pixels, Width, Height);
|
FlipNonSquareBlock (newpix, Pixels, Width, Height, Width);
|
||||||
}
|
}
|
||||||
BYTE *oldpix = Pixels;
|
BYTE *oldpix = Pixels;
|
||||||
Pixels = newpix;
|
Pixels = newpix;
|
||||||
|
@ -2631,7 +2631,7 @@ void FCanvasTexture::MakeTexture ()
|
||||||
{
|
{
|
||||||
Canvas = new DSimpleCanvas (Width, Height);
|
Canvas = new DSimpleCanvas (Width, Height);
|
||||||
Canvas->Lock ();
|
Canvas->Lock ();
|
||||||
if (Width != Height)
|
if (Width != Height || Width != Canvas->GetPitch())
|
||||||
{
|
{
|
||||||
Pixels = new BYTE[Width*Height];
|
Pixels = new BYTE[Width*Height];
|
||||||
}
|
}
|
||||||
|
@ -2678,13 +2678,13 @@ void FCanvasTexture::RenderView (AActor *viewpoint, int fov)
|
||||||
R_SetFOV (fov);
|
R_SetFOV (fov);
|
||||||
R_RenderViewToCanvas (viewpoint, Canvas, 0, 0, Width, Height);
|
R_RenderViewToCanvas (viewpoint, Canvas, 0, 0, Width, Height);
|
||||||
R_SetFOV (savedfov);
|
R_SetFOV (savedfov);
|
||||||
if (Width == Height)
|
if (Pixels == Canvas->GetBuffer())
|
||||||
{
|
{
|
||||||
FlipSquareBlock (Pixels, Width, Height);
|
FlipSquareBlock (Pixels, Width, Height);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FlipNonSquareBlock (Pixels, Canvas->GetBuffer(), Width, Height);
|
FlipNonSquareBlock (Pixels, Canvas->GetBuffer(), Width, Height, Canvas->GetPitch());
|
||||||
}
|
}
|
||||||
bNeedsUpdate = false;
|
bNeedsUpdate = false;
|
||||||
bDidUpdate = true;
|
bDidUpdate = true;
|
||||||
|
@ -3037,6 +3037,7 @@ void R_DeinitData ()
|
||||||
{
|
{
|
||||||
R_DeinitColormaps ();
|
R_DeinitColormaps ();
|
||||||
R_DeinitBuildTiles();
|
R_DeinitBuildTiles();
|
||||||
|
FCanvasTextureInfo::EmptyList();
|
||||||
|
|
||||||
// Free openings
|
// Free openings
|
||||||
if (openings != NULL)
|
if (openings != NULL)
|
||||||
|
|
|
@ -664,7 +664,7 @@ protected:
|
||||||
|
|
||||||
static void FlipSquareBlock (BYTE *block, int x, int y);
|
static void FlipSquareBlock (BYTE *block, int x, int y);
|
||||||
static void FlipSquareBlockRemap (BYTE *block, int x, int y, const BYTE *remap);
|
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);
|
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;
|
cycle_t WallCycles, PlaneCycles, MaskedCycles, WallScanCycles;
|
||||||
|
|
||||||
|
FCanvasTextureInfo *FCanvasTextureInfo::List;
|
||||||
|
|
||||||
// PRIVATE DATA DEFINITIONS ------------------------------------------------
|
// PRIVATE DATA DEFINITIONS ------------------------------------------------
|
||||||
|
|
||||||
static int lastcenteryfrac;
|
static int lastcenteryfrac;
|
||||||
|
@ -1545,7 +1547,6 @@ void R_RenderViewToCanvas (AActor *actor, DCanvas *canvas,
|
||||||
viewactive = savedviewactive;
|
viewactive = savedviewactive;
|
||||||
}
|
}
|
||||||
|
|
||||||
FCanvasTextureInfo *FCanvasTextureInfo::List;
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
// FCanvasTextureInfo :: Add
|
// FCanvasTextureInfo :: Add
|
||||||
|
|
|
@ -778,6 +778,7 @@ void FSingleLumpFont::LoadFON2 (int lump, const BYTE *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
BuildTranslations (luminosity, identity);
|
BuildTranslations (luminosity, identity);
|
||||||
|
delete[] widths2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSingleLumpFont::FixupPalette (BYTE *identity, double *luminosity, const BYTE *palette, bool rescale)
|
void FSingleLumpFont::FixupPalette (BYTE *identity, double *luminosity, const BYTE *palette, bool rescale)
|
||||||
|
|
Loading…
Reference in a new issue