- fixed: FNodeBuilder::ExtractMini needs to check for segs that were created from minisegs.

- made polyobject node building code more update friendly for GZDoom by making R_BuildPolyBSP public.


SVN r2500 (trunk)
This commit is contained in:
Christoph Oelckers 2010-08-10 08:13:23 +00:00
parent 100731e3ab
commit 79ff9ae3ae
4 changed files with 14 additions and 5 deletions

View file

@ -217,7 +217,7 @@ AInventory *ABasicArmorPickup::CreateCopy (AActor *other)
copy->MaxFullAbsorb = MaxFullAbsorb; copy->MaxFullAbsorb = MaxFullAbsorb;
if (!(ItemFlags & IF_IGNORESKILL)) if (!(ItemFlags & IF_IGNORESKILL))
{ // extra ammo in baby mode and nightmare mode {
SaveAmount = FixedMul(SaveAmount, G_SkillProperty(SKILLP_ArmorFactor)); SaveAmount = FixedMul(SaveAmount, G_SkillProperty(SKILLP_ArmorFactor));
} }
@ -300,7 +300,7 @@ AInventory *ABasicArmorBonus::CreateCopy (AActor *other)
copy->MaxFullAbsorb = MaxFullAbsorb; copy->MaxFullAbsorb = MaxFullAbsorb;
if (!(ItemFlags & IF_IGNORESKILL)) if (!(ItemFlags & IF_IGNORESKILL))
{ // extra ammo in baby mode and nightmare mode {
SaveAmount = FixedMul(SaveAmount, G_SkillProperty(SKILLP_ArmorFactor)); SaveAmount = FixedMul(SaveAmount, G_SkillProperty(SKILLP_ArmorFactor));
} }
return copy; return copy;

View file

@ -224,8 +224,16 @@ void FNodeBuilder::ExtractMini (FMiniBSP *bsp)
out->v2 = &bsp->Verts[org->v2]; out->v2 = &bsp->Verts[org->v2];
out->backsector = org->backsector; out->backsector = org->backsector;
out->frontsector = org->frontsector; out->frontsector = org->frontsector;
out->linedef = Level.Lines + org->linedef; if (org->sidedef != int(NO_SIDE))
out->sidedef = Level.Sides + org->sidedef; {
out->linedef = Level.Lines + org->linedef;
out->sidedef = Level.Sides + org->sidedef;
}
else // part of a miniseg
{
out->linedef = NULL;
out->sidedef = NULL;
}
out->PartnerSeg = NULL; out->PartnerSeg = NULL;
out->bPolySeg = false; out->bPolySeg = false;
} }

View file

@ -1032,7 +1032,7 @@ FMiniBSP::FMiniBSP()
// //
//========================================================================== //==========================================================================
static void R_BuildPolyBSP(subsector_t *sub) void R_BuildPolyBSP(subsector_t *sub)
{ {
assert((sub->BSP == NULL || sub->BSP->bDirty) && "BSP computed more than once"); assert((sub->BSP == NULL || sub->BSP->bDirty) && "BSP computed more than once");

View file

@ -75,6 +75,7 @@ EXTERN_CVAR (Bool, r_drawflat) // [RH] Don't texture segs?
// BSP? // BSP?
void R_ClearClipSegs (short left, short right); void R_ClearClipSegs (short left, short right);
void R_ClearDrawSegs (); void R_ClearDrawSegs ();
void R_BuildPolyBSP(subsector_t *sub);
void R_RenderBSPNode (void *node); void R_RenderBSPNode (void *node);
// killough 4/13/98: fake floors/ceilings for deep water / fake ceilings: // killough 4/13/98: fake floors/ceilings for deep water / fake ceilings: