Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • STJr/SRB2
  • Sryder/SRB2
  • wolfy852/SRB2
  • Alpha2244/SRB2
  • Inuyasha/SRB2
  • yoshibot/SRB2
  • TehRealSalt/SRB2
  • PrisimaTF/SRB2
  • Hatninja/SRB2
  • SteelT/SRB2
  • james/SRB2
  • ShaderWraith/SRB2
  • SinnamonLat/SRB2
  • mazmazz_/SRB2
  • filpAM/SRB2
  • chaoloveicemdboy/SRB2
  • Whooa21/SRB2
  • Machturne/SRB2
  • Golden/SRB2
  • Tatsuru/SRB2
  • Snu/SRB2
  • Zwip-Zwap_Zapony/SRB2
  • fickleheart/SRB2
  • alphaRexJames/SRB2
  • JJK/SRB2
  • diskpoppy/SRB2
  • Hannu_Hanhi/SRB2
  • ZipperQR/SRB2
  • kays/SRB2
  • spherallic/SRB2
  • Zippy_Zolton/SRB2
  • namiishere/SRB2
  • Ors/SRB2
  • SMS_Alfredo/SRB2
  • sonic_edge/SRB2
  • lavla/SRB2
  • ashi/SRB2
  • X.organic/SRB2
  • Fafabis/SRB2
  • Meziu/SRB2
  • v-rob/SRB2
  • tertu/SRB2
  • bitten2up/SRB2
  • flarn2006/SRB2
  • Krabs/SRB2
  • clairebun/SRB2
  • Lactozilla/SRB2
  • thehackstack/SRB2
  • Spice/SRB2
  • win8linux/SRB2
  • JohnFrostFox/SRB2
  • talktoneon726/SRB2
  • Wane/SRB2
  • Lamibe/SRB2
  • spectrumuk2/srb-2
  • nerdyminer18/srb-2
  • 256nil/SRB2
  • ARJr/SRB2
  • Alam/SRB2
  • Zenya/srb-2-marathon-demos
  • Acelite/srb-2-archivedmodifications
  • MIDIMan/SRB2
  • Lach/SRB2
  • Frostiikin/bounce-tweaks
  • Hanicef/SRB2Classic
  • Jaden/SRB2
  • Tyron/SRB2
  • Astronight/SRB2
  • Mari0shi06/SRB2
  • aiire/SRB2
  • Galactice/SRB2
  • srb2-ports/srb2-dreamcast
  • sdasdas/SRB2
  • chreas/srb-2-vr
  • StarManiaKG/the-story-of-sinically-rocketing-and-botching-the-2nd
  • LoganAir/SRB2
  • NepDisk/srb-2
  • alufolie91/SRB2
  • Felicia.iso/SRB2
  • twi/SRB2
  • BarrelsOFun/SRB2
  • Speed2411/SRB2
  • Leather_Realms/SRB2
  • Ayemar/SRB2
  • Acelite/SRB2
  • VladDoc/SRB2
  • kaldrum/model-features
  • strawberryfox417/SRB2
  • Lugent/SRB2
  • Jisk/SRB2
  • Rem/SRB2
  • Refrag/SRB2
  • Henry_3230/srb-3230
  • TehPuertoRicanSpartan2/tprs-srb2
  • Leminn/srb-2-marathon-stuff
  • chromaticpipe2/SRB2
  • MiguelGustavo15/SRB2
  • Maru/srb-2-tests
  • SilicDev/SRB2
  • UnmatchedBracket/SRB2
  • HybridDog/SRB2
  • xordspar0/SRB2
  • jsjhbewfhh/SRB2
  • Fancy2209/SRB2
  • Lorsoen/SRB2
  • shindoukin/SRB2
  • GamerOfDays/SRB2
  • Craftyawesome/SRB2
  • tenshi-tensai-tennoji/SRB2
  • Scarfdudebalder/SRB2
  • luigi-budd/srb-2-fix-interplag-lockon
  • mskluesner/SRB2
  • johnpetersa19/SRB2
  • Pheazant/SRB2
  • chromaticpipe2/srb2classic
  • romoney5/SRB2
  • PAS/SRB2Classic
  • BlueStaggo/SRB2
118 results
Show changes
Commits on Source (3)
...@@ -521,36 +521,39 @@ static poly_t *CutOutSubsecPoly(seg_t *lseg, INT32 count, poly_t *poly) ...@@ -521,36 +521,39 @@ static poly_t *CutOutSubsecPoly(seg_t *lseg, INT32 count, poly_t *poly)
} }
} }
// there was a split // there was a split
if (ps >= 0) if (ps >= 0)
{
//need 2 points
if (pe >= 0)
{ {
//need 2 points // generate FRONT poly
if (pe >= 0) temppoly = HWR_AllocPoly(nump);
pv = temppoly->pts;
*pv++ = vs;
*pv++ = ve;
do
{ {
// generate FRONT poly if (++ps == poly->numpts)
temppoly = HWR_AllocPoly(nump); ps = 0;
pv = temppoly->pts; *pv++ = poly->pts[ps];
*pv++ = vs; } while (ps != pe);
*pv++ = ve; HWR_FreePoly(poly);
do poly = temppoly;
{
if (++ps == poly->numpts)
ps = 0;
*pv++ = poly->pts[ps];
} while (ps != pe);
HWR_FreePoly(poly);
poly = temppoly;
}
//hmmm... maybe we should NOT accept this, but this happens
// only when the cut is not needed it seems (when the cut
// line is aligned to one of the borders of the poly, and
// only some times..)
else
skipcut++;
// I_Error("CutOutPoly: only one point for split line (%d %d) %d", ps, pe, debugpos);
} }
//hmmm... maybe we should NOT accept this, but this happens
// only when the cut is not needed it seems (when the cut
// line is aligned to one of the borders of the poly, and
// only some times..)
else
skipcut++;
// I_Error("CutOutPoly: only one point for split line (%d %d) %d", ps, pe, debugpos);
} }
return poly; }
CONS_Printf("X0 %.0f> Y0 %.0f> Z0 %.0f> X1 %.0f> Y1 %.0f> Z1 %.0f\n",
poly->pts[0].x, poly->pts[0].y, poly->pts[0].z,
poly->pts[1].x, poly->pts[1].y, poly->pts[1].z);
return poly;
} }
// At this point, the poly should be convex and the exact // At this point, the poly should be convex and the exact
...@@ -601,7 +604,7 @@ static void WalkBSPNode(INT32 bspnum, poly_t *poly, UINT16 *leafnode, fixed_t *b ...@@ -601,7 +604,7 @@ static void WalkBSPNode(INT32 bspnum, poly_t *poly, UINT16 *leafnode, fixed_t *b
fdivline_t fdivline; fdivline_t fdivline;
polyvertex_t *pt; polyvertex_t *pt;
INT32 i; INT32 i;
bsp = &nodes[bspnum];
// Found a subsector? // Found a subsector?
if (bspnum & NF_SUBSECTOR) if (bspnum & NF_SUBSECTOR)
{ {
...@@ -630,6 +633,7 @@ static void WalkBSPNode(INT32 bspnum, poly_t *poly, UINT16 *leafnode, fixed_t *b ...@@ -630,6 +633,7 @@ static void WalkBSPNode(INT32 bspnum, poly_t *poly, UINT16 *leafnode, fixed_t *b
} }
else else
{ {
CONS_Printf("SS-%d> ", bspnum % NF_SUBSECTOR);
HWR_SubsecPoly(bspnum&(~NF_SUBSECTOR), poly); HWR_SubsecPoly(bspnum&(~NF_SUBSECTOR), poly);
//Hurdler: implement a loading status //Hurdler: implement a loading status
...@@ -966,6 +970,7 @@ void HWR_CreatePlanePolygons(INT32 bspnum) ...@@ -966,6 +970,7 @@ void HWR_CreatePlanePolygons(INT32 bspnum)
polyvertex_t *rootpv; polyvertex_t *rootpv;
size_t i; size_t i;
fixed_t rootbbox[4]; fixed_t rootbbox[4];
INT32 j = 0;
CONS_Debug(DBG_RENDER, "Creating polygons, please wait...\n"); CONS_Debug(DBG_RENDER, "Creating polygons, please wait...\n");
ls_count = ls_percent = 0; // reset the loading status ls_count = ls_percent = 0; // reset the loading status
...@@ -1014,12 +1019,29 @@ void HWR_CreatePlanePolygons(INT32 bspnum) ...@@ -1014,12 +1019,29 @@ void HWR_CreatePlanePolygons(INT32 bspnum)
rootpv->y = FIXED_TO_FLOAT(rootbbox[BOXBOTTOM]); //ll rootpv->y = FIXED_TO_FLOAT(rootbbox[BOXBOTTOM]); //ll
rootpv++; rootpv++;
CONS_Printf("\nSUBSECTORS\n\n");
WalkBSPNode(bspnum, rootp, NULL,rootbbox); WalkBSPNode(bspnum, rootp, NULL,rootbbox);
i = SolveTProblem(); i = SolveTProblem();
//CONS_Debug(DBG_RENDER, "%d point divides a polygon line\n",i); //CONS_Debug(DBG_RENDER, "%d point divides a polygon line\n",i);
AdjustSegs(); AdjustSegs();
CONS_Printf("\nEXTRASUBSECTORS\n\n");
for (j = 0; j < bspnum; j++)
{
CONS_Printf("ESS-%d> ", j);
if (!extrasubsectors[j].planepoly)
{
CONS_Printf("\n");
continue;
}
CONS_Printf("X0 %.4f> Y0 %.4f> Z0 %.4f> X1 %.4f> Y1 %.4f> Z1 %.4f\n",
extrasubsectors[j].planepoly->pts[0].x, extrasubsectors[j].planepoly->pts[0].y, extrasubsectors[j].planepoly->pts[0].z,
extrasubsectors[j].planepoly->pts[1].x, extrasubsectors[j].planepoly->pts[1].y, extrasubsectors[j].planepoly->pts[1].z);
}
//debug debug.. //debug debug..
//if (nobackpoly) //if (nobackpoly)
// CONS_Debug(DBG_RENDER, "no back polygon %u times\n",nobackpoly); // CONS_Debug(DBG_RENDER, "no back polygon %u times\n",nobackpoly);
......
...@@ -548,7 +548,10 @@ static void HWR_RenderPlane(sector_t *sector, extrasubsector_t *xsub, boolean is ...@@ -548,7 +548,10 @@ static void HWR_RenderPlane(sector_t *sector, extrasubsector_t *xsub, boolean is
// no convex poly were generated for this subsector // no convex poly were generated for this subsector
if (!xsub->planepoly) if (!xsub->planepoly)
{
CONS_Debug(DBG_RENDER, "%d> No convex poly were generated for this subsector\n", gametic);
return; return;
}
#ifdef ESLOPE #ifdef ESLOPE
// Get the slope pointer to simplify future code // Get the slope pointer to simplify future code
...@@ -578,11 +581,14 @@ static void HWR_RenderPlane(sector_t *sector, extrasubsector_t *xsub, boolean is ...@@ -578,11 +581,14 @@ static void HWR_RenderPlane(sector_t *sector, extrasubsector_t *xsub, boolean is
nrPlaneVerts = xsub->planepoly->numpts; nrPlaneVerts = xsub->planepoly->numpts;
if (nrPlaneVerts < 3) //not even a triangle ? if (nrPlaneVerts < 3) //not even a triangle ?
{
CONS_Debug(DBG_RENDER, "%d> polygon size of %d is not a triangle\n", gametic, nrPlaneVerts);
return; return;
}
if (nrPlaneVerts > UINT16_MAX) // FIXME: exceeds plVerts size if (nrPlaneVerts > UINT16_MAX) // FIXME: exceeds plVerts size
{ {
CONS_Debug(DBG_RENDER, "polygon size of %d exceeds max value of %d vertices\n", nrPlaneVerts, UINT16_MAX); CONS_Debug(DBG_RENDER, "%d> polygon size of %d exceeds max value of %d vertices\n", gametic, nrPlaneVerts, UINT16_MAX);
return; return;
} }
...@@ -3516,8 +3522,9 @@ static void HWR_Subsector(size_t num) ...@@ -3516,8 +3522,9 @@ static void HWR_Subsector(size_t num)
{ {
if (sub->validcount != validcount) if (sub->validcount != validcount)
{ {
extrasubsector_t *extrasubsector = &extrasubsectors[num];
HWR_GetFlat(levelflats[gr_frontsector->floorpic].lumpnum); HWR_GetFlat(levelflats[gr_frontsector->floorpic].lumpnum);
HWR_RenderPlane(gr_frontsector, &extrasubsectors[num], false, HWR_RenderPlane(gr_frontsector, extrasubsector, false,
// Hack to make things continue to work around slopes. // Hack to make things continue to work around slopes.
locFloorHeight == cullFloorHeight ? locFloorHeight : gr_frontsector->floorheight, locFloorHeight == cullFloorHeight ? locFloorHeight : gr_frontsector->floorheight,
// We now return you to your regularly scheduled rendering. // We now return you to your regularly scheduled rendering.
......