mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-28 07:36:44 -04:00
Fix endianess for import of extended nodes
Thanks Michael Bäuerle!
This commit is contained in:
parent
a60f8b4761
commit
e5f7ae07c6
@ -152,10 +152,15 @@ void P_LoadSegs_DeePBSP (int lump)
|
|||||||
|
|
||||||
int side, linedef;
|
int side, linedef;
|
||||||
line_t *ldef;
|
line_t *ldef;
|
||||||
|
int vn1, vn2;
|
||||||
|
|
||||||
|
// [MB] 2020-04-22: Fix endianess for DeePBSDP V4 nodes
|
||||||
|
vn1 = LONG(ml->v1);
|
||||||
|
vn2 = LONG(ml->v2);
|
||||||
|
|
||||||
// [FG] extended nodes
|
// [FG] extended nodes
|
||||||
li->v1 = &vertexes[ml->v1];
|
li->v1 = &vertexes[vn1];
|
||||||
li->v2 = &vertexes[ml->v2];
|
li->v2 = &vertexes[vn2];
|
||||||
|
|
||||||
li->angle = (SHORT(ml->angle))<<16;
|
li->angle = (SHORT(ml->angle))<<16;
|
||||||
li->offset = (SHORT(ml->offset))<<16;
|
li->offset = (SHORT(ml->offset))<<16;
|
||||||
@ -189,8 +194,9 @@ void P_LoadSubsectors_DeePBSP (int lump)
|
|||||||
|
|
||||||
for (i=0; i<numsubsectors; i++)
|
for (i=0; i<numsubsectors; i++)
|
||||||
{
|
{
|
||||||
subsectors[i].numlines = (int)data[i].numsegs;
|
// [MB] 2020-04-22: Fix endianess for DeePBSDP V4 nodes
|
||||||
subsectors[i].firstline = (int)data[i].firstseg;
|
subsectors[i].numlines = (unsigned short)SHORT(data[i].numsegs);
|
||||||
|
subsectors[i].firstline = LONG(data[i].firstseg);
|
||||||
}
|
}
|
||||||
|
|
||||||
Z_Free (data);
|
Z_Free (data);
|
||||||
@ -222,7 +228,8 @@ void P_LoadNodes_DeePBSP (int lump)
|
|||||||
for (j=0 ; j<2 ; j++)
|
for (j=0 ; j<2 ; j++)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
no->children[j] = (unsigned int)(mn->children[j]);
|
// [MB] 2020-04-22: Fix endianess for DeePBSDP V4 nodes
|
||||||
|
no->children[j] = LONG(mn->children[j]);
|
||||||
|
|
||||||
for (k=0 ; k<4 ; k++)
|
for (k=0 ; k<4 ; k++)
|
||||||
no->bbox[j][k] = SHORT(mn->bbox[j][k])<<FRACBITS;
|
no->bbox[j][k] = SHORT(mn->bbox[j][k])<<FRACBITS;
|
||||||
@ -241,6 +248,8 @@ void P_LoadNodes_DeePBSP (int lump)
|
|||||||
// - added support for compressed ZDBSP nodes
|
// - added support for compressed ZDBSP nodes
|
||||||
// - added support for flipped levels
|
// - added support for flipped levels
|
||||||
|
|
||||||
|
// [MB] 2020-04-22: Fix endianess for ZDoom extended nodes
|
||||||
|
|
||||||
void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
||||||
{
|
{
|
||||||
byte *data;
|
byte *data;
|
||||||
@ -312,10 +321,10 @@ void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
|||||||
|
|
||||||
// 1. Load new vertices added during node building
|
// 1. Load new vertices added during node building
|
||||||
|
|
||||||
orgVerts = *((unsigned int*)data);
|
orgVerts = LONG(*((unsigned int*)data));
|
||||||
data += sizeof(orgVerts);
|
data += sizeof(orgVerts);
|
||||||
|
|
||||||
newVerts = *((unsigned int*)data);
|
newVerts = LONG(*((unsigned int*)data));
|
||||||
data += sizeof(newVerts);
|
data += sizeof(newVerts);
|
||||||
|
|
||||||
if (orgVerts + newVerts == (unsigned int)numvertexes)
|
if (orgVerts + newVerts == (unsigned int)numvertexes)
|
||||||
@ -332,11 +341,11 @@ void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
|||||||
for (i = 0; i < newVerts; i++)
|
for (i = 0; i < newVerts; i++)
|
||||||
{
|
{
|
||||||
newvertarray[i + orgVerts].r_x =
|
newvertarray[i + orgVerts].r_x =
|
||||||
newvertarray[i + orgVerts].x = *((unsigned int*)data);
|
newvertarray[i + orgVerts].x = LONG(*((unsigned int*)data));
|
||||||
data += sizeof(newvertarray[0].x);
|
data += sizeof(newvertarray[0].x);
|
||||||
|
|
||||||
newvertarray[i + orgVerts].r_y =
|
newvertarray[i + orgVerts].r_y =
|
||||||
newvertarray[i + orgVerts].y = *((unsigned int*)data);
|
newvertarray[i + orgVerts].y = LONG(*((unsigned int*)data));
|
||||||
data += sizeof(newvertarray[0].y);
|
data += sizeof(newvertarray[0].y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -355,7 +364,7 @@ void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
|||||||
|
|
||||||
// 2. Load subsectors
|
// 2. Load subsectors
|
||||||
|
|
||||||
numSubs = *((unsigned int*)data);
|
numSubs = LONG(*((unsigned int*)data));
|
||||||
data += sizeof(numSubs);
|
data += sizeof(numSubs);
|
||||||
|
|
||||||
if (numSubs < 1)
|
if (numSubs < 1)
|
||||||
@ -369,15 +378,15 @@ void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
|||||||
mapsubsector_zdbsp_t *mseg = (mapsubsector_zdbsp_t*) data + i;
|
mapsubsector_zdbsp_t *mseg = (mapsubsector_zdbsp_t*) data + i;
|
||||||
|
|
||||||
subsectors[i].firstline = currSeg;
|
subsectors[i].firstline = currSeg;
|
||||||
subsectors[i].numlines = mseg->numsegs;
|
subsectors[i].numlines = LONG(mseg->numsegs);
|
||||||
currSeg += mseg->numsegs;
|
currSeg += LONG(mseg->numsegs);
|
||||||
}
|
}
|
||||||
|
|
||||||
data += numsubsectors * sizeof(mapsubsector_zdbsp_t);
|
data += numsubsectors * sizeof(mapsubsector_zdbsp_t);
|
||||||
|
|
||||||
// 3. Load segs
|
// 3. Load segs
|
||||||
|
|
||||||
numSegs = *((unsigned int*)data);
|
numSegs = LONG(*((unsigned int*)data));
|
||||||
data += sizeof(numSegs);
|
data += sizeof(numSegs);
|
||||||
|
|
||||||
// The number of stored segs should match the number of segs used by subsectors
|
// The number of stored segs should match the number of segs used by subsectors
|
||||||
@ -396,9 +405,12 @@ void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
|||||||
unsigned char side;
|
unsigned char side;
|
||||||
seg_t *li = segs + i;
|
seg_t *li = segs + i;
|
||||||
mapseg_zdbsp_t *ml = (mapseg_zdbsp_t *) data + i;
|
mapseg_zdbsp_t *ml = (mapseg_zdbsp_t *) data + i;
|
||||||
|
unsigned int v1, v2;
|
||||||
|
|
||||||
li->v1 = &vertexes[ml->v1];
|
v1 = LONG(ml->v1);
|
||||||
li->v2 = &vertexes[ml->v2];
|
v2 = LONG(ml->v2);
|
||||||
|
li->v1 = &vertexes[v1];
|
||||||
|
li->v2 = &vertexes[v2];
|
||||||
|
|
||||||
linedef = (unsigned short)SHORT(ml->linedef);
|
linedef = (unsigned short)SHORT(ml->linedef);
|
||||||
ldef = &lines[linedef];
|
ldef = &lines[linedef];
|
||||||
@ -430,7 +442,7 @@ void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
|||||||
|
|
||||||
// 4. Load nodes
|
// 4. Load nodes
|
||||||
|
|
||||||
numNodes = *((unsigned int*)data);
|
numNodes = LONG(*((unsigned int*)data));
|
||||||
data += sizeof(numNodes);
|
data += sizeof(numNodes);
|
||||||
|
|
||||||
numnodes = numNodes;
|
numnodes = numNodes;
|
||||||
@ -449,7 +461,7 @@ void P_LoadNodes_ZDBSP (int lump, boolean compressed)
|
|||||||
|
|
||||||
for (j = 0; j < 2; j++)
|
for (j = 0; j < 2; j++)
|
||||||
{
|
{
|
||||||
no->children[j] = (unsigned int)(mn->children[j]);
|
no->children[j] = LONG(mn->children[j]);
|
||||||
|
|
||||||
for (k = 0; k < 4; k++)
|
for (k = 0; k < 4; k++)
|
||||||
no->bbox[j][k] = SHORT(mn->bbox[j][k])<<FRACBITS;
|
no->bbox[j][k] = SHORT(mn->bbox[j][k])<<FRACBITS;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user