mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-13 07:57:58 +00:00
Fix for Unreal meshes that don't have sequential texture numbers
This commit is contained in:
parent
44dd48c7fa
commit
1bb00ed4f0
2 changed files with 9 additions and 3 deletions
|
@ -75,11 +75,16 @@ bool FUE1Model::Load( const char *filename, int lumpnum, const char *buffer, int
|
||||||
numFrames = ahead->numframes;
|
numFrames = ahead->numframes;
|
||||||
numPolys = dhead->numpolys;
|
numPolys = dhead->numpolys;
|
||||||
numGroups = 0;
|
numGroups = 0;
|
||||||
|
groupIndices.Reset();
|
||||||
uint8_t used[256] = {0};
|
uint8_t used[256] = {0};
|
||||||
for ( int i=0; i<numPolys; i++ )
|
for ( int i=0; i<numPolys; i++ )
|
||||||
used[dpolys[i].texnum] = 1;
|
used[dpolys[i].texnum] = 1;
|
||||||
for ( int i=0; i<256; i++ )
|
for ( int i=0; i<256; i++ )
|
||||||
if ( used[i] ) numGroups++;
|
{
|
||||||
|
if ( !used[i] ) continue;
|
||||||
|
groupIndices.Push(i);
|
||||||
|
numGroups++;
|
||||||
|
}
|
||||||
LoadGeometry();
|
LoadGeometry();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -166,7 +171,7 @@ void FUE1Model::LoadGeometry()
|
||||||
Group.numPolys = 0;
|
Group.numPolys = 0;
|
||||||
for ( int j=0; j<numPolys; j++ )
|
for ( int j=0; j<numPolys; j++ )
|
||||||
{
|
{
|
||||||
if ( polys[j].texNum != i )
|
if ( polys[j].texNum != groupIndices[i] )
|
||||||
continue;
|
continue;
|
||||||
Group.P.Push(j);
|
Group.P.Push(j);
|
||||||
Group.numPolys++;
|
Group.numPolys++;
|
||||||
|
@ -208,8 +213,8 @@ void FUE1Model::RenderFrame( FModelRenderer *renderer, FTexture *skin, int frame
|
||||||
sskin = TexMan(curSpriteMDLFrame->surfaceskinIDs[curMDLIndex][i]);
|
sskin = TexMan(curSpriteMDLFrame->surfaceskinIDs[curMDLIndex][i]);
|
||||||
if ( !sskin )
|
if ( !sskin )
|
||||||
{
|
{
|
||||||
continue;
|
|
||||||
vofs += vsize;
|
vofs += vsize;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
renderer->SetMaterial(sskin,false,translation);
|
renderer->SetMaterial(sskin,false,translation);
|
||||||
|
|
|
@ -88,4 +88,5 @@ private:
|
||||||
TArray<UE1Vertex> verts;
|
TArray<UE1Vertex> verts;
|
||||||
TArray<UE1Poly> polys;
|
TArray<UE1Poly> polys;
|
||||||
TArray<UE1Group> groups;
|
TArray<UE1Group> groups;
|
||||||
|
TArray<int> groupIndices;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue