mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-28 15:02:01 +00:00
- remove SetLineSideRefs - this actually cannot be exported right now, due to the fact that both sides and lines have backreferences to themselves and their ancestry, and that linedefs have forward references to the sectors on their respective sides.
- made FlipLineSideRefs native, due to the SetLineSideRefs removal - fixed a bug with FlipLineSideRefs that rendered upper and lower textures incorrectly due to incorrect sector references - FlipLineSideRefs now should only work on single-sided lines
This commit is contained in:
parent
b0751db552
commit
4d66e9a8bb
2 changed files with 14 additions and 18 deletions
|
@ -459,23 +459,26 @@ DEFINE_ACTION_FUNCTION(DLevelPostProcessor, SetLineVertexes)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION(DLevelPostProcessor, SetLineSideRefs)
|
DEFINE_ACTION_FUNCTION(DLevelPostProcessor, FlipLineSideRefs)
|
||||||
{
|
{
|
||||||
PARAM_SELF_PROLOGUE(DLevelPostProcessor);
|
PARAM_SELF_PROLOGUE(DLevelPostProcessor);
|
||||||
PARAM_UINT(lineidx);
|
PARAM_UINT(lineidx);
|
||||||
PARAM_UINT(sideidx1);
|
|
||||||
PARAM_UINT(sideidx2);
|
|
||||||
|
|
||||||
if (lineidx < self->Level->lines.Size() &&
|
if (lineidx < self->Level->lines.Size())
|
||||||
sideidx1 < self->Level->sides.Size() &&
|
|
||||||
sideidx2 < self->Level->sides.Size())
|
|
||||||
{
|
{
|
||||||
line_t *line = &self->Level->lines[lineidx];
|
line_t *line = &self->Level->lines[lineidx];
|
||||||
side_t *side1 = &self->Level->sides[sideidx1];
|
side_t *side1 = line->sidedef[1];
|
||||||
side_t *side2 = &self->Level->sides[sideidx2];
|
side_t *side2 = line->sidedef[0];
|
||||||
|
|
||||||
line->sidedef[0] = side1;
|
if (!!side1 && !!side2) // don't flip single-sided lines
|
||||||
line->sidedef[1] = side2;
|
{
|
||||||
|
sector_t *frontsector = line->sidedef[1]->sector;
|
||||||
|
sector_t *backsector = line->sidedef[0]->sector;
|
||||||
|
line->sidedef[0] = side1;
|
||||||
|
line->sidedef[1] = side2;
|
||||||
|
line->frontsector = frontsector;
|
||||||
|
line->backsector = backsector;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
self->loader->ForceNodeBuild = true;
|
self->loader->ForceNodeBuild = true;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -48,7 +48,7 @@ class LevelPostProcessor native play
|
||||||
|
|
||||||
protected native void SetVertex(uint vertex, double x, double y);
|
protected native void SetVertex(uint vertex, double x, double y);
|
||||||
protected native void SetLineVertexes(uint Line, uint v1, uint v2);
|
protected native void SetLineVertexes(uint Line, uint v1, uint v2);
|
||||||
protected native void SetLineSideRefs(uint Line, uint s1, uint s2);
|
protected native void FlipLineSideRefs(uint Line);
|
||||||
protected native void SetLineSectorRef(uint line, uint side, uint sector);
|
protected native void SetLineSectorRef(uint line, uint side, uint sector);
|
||||||
protected native Actor GetDefaultActor(Name actorclass);
|
protected native Actor GetDefaultActor(Name actorclass);
|
||||||
|
|
||||||
|
@ -59,13 +59,6 @@ class LevelPostProcessor native play
|
||||||
SetLineVertexes(Line, v2, v1);
|
SetLineVertexes(Line, v2, v1);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void FlipLineSideRefs(uint Line)
|
|
||||||
{
|
|
||||||
uint s1 = level.lines[Line].sidedef[0].Index();
|
|
||||||
uint s2 = level.lines[Line].sidedef[1].Index();
|
|
||||||
SetLineSideRefs(Line, s2, s1);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void SetWallTexture(int line, int side, int texpart, String texture)
|
protected void SetWallTexture(int line, int side, int texpart, String texture)
|
||||||
{
|
{
|
||||||
SetWallTextureID(line, side, texpart, TexMan.CheckForTexture(texture, TexMan.Type_Wall));
|
SetWallTextureID(line, side, texpart, TexMan.CheckForTexture(texture, TexMan.Type_Wall));
|
||||||
|
|
Loading…
Reference in a new issue