let FileReader::Read return an opaque buffer instead of std::vector.
This can later allow returning a pointer to a static buffer from a cache without creating copies.
This commit is contained in:
parent
54fb37e39e
commit
fc84579319
12 changed files with 248 additions and 85 deletions
|
|
@ -209,7 +209,7 @@ bool MapLoader::LoadGLVertexes(FileReader &lump)
|
|||
auto gllen=lump.GetLength();
|
||||
if (gllen < 4)
|
||||
return false;
|
||||
auto gldata = glbuf.data();
|
||||
auto gldata = glbuf.bytes();
|
||||
|
||||
if (*(int *)gldata == gNd5)
|
||||
{
|
||||
|
|
@ -294,7 +294,7 @@ bool MapLoader::LoadGLSegs(FileReader &lump)
|
|||
segs.Alloc(numsegs);
|
||||
memset(&segs[0],0,sizeof(seg_t)*numsegs);
|
||||
|
||||
glseg_t * ml = (glseg_t*)data.data();
|
||||
auto ml = (const glseg_t*)data.data();
|
||||
for(i = 0; i < numsegs; i++)
|
||||
{
|
||||
// check for gl-vertices
|
||||
|
|
@ -324,21 +324,21 @@ bool MapLoader::LoadGLSegs(FileReader &lump)
|
|||
ldef = &Level->lines[lineidx];
|
||||
segs[i].linedef = ldef;
|
||||
|
||||
ml->side=LittleShort(ml->side);
|
||||
if (ml->side > 1)
|
||||
auto side=LittleShort(ml->side);
|
||||
if (side > 1)
|
||||
return false;
|
||||
segs[i].sidedef = ldef->sidedef[ml->side];
|
||||
if (ldef->sidedef[ml->side] != nullptr)
|
||||
segs[i].sidedef = ldef->sidedef[side];
|
||||
if (ldef->sidedef[side] != nullptr)
|
||||
{
|
||||
segs[i].frontsector = ldef->sidedef[ml->side]->sector;
|
||||
segs[i].frontsector = ldef->sidedef[side]->sector;
|
||||
}
|
||||
else
|
||||
{
|
||||
segs[i].frontsector = nullptr;
|
||||
}
|
||||
if (ldef->flags & ML_TWOSIDED && ldef->sidedef[ml->side^1] != nullptr)
|
||||
if (ldef->flags & ML_TWOSIDED && ldef->sidedef[side^1] != nullptr)
|
||||
{
|
||||
segs[i].backsector = ldef->sidedef[ml->side^1]->sector;
|
||||
segs[i].backsector = ldef->sidedef[side^1]->sector;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -365,7 +365,7 @@ bool MapLoader::LoadGLSegs(FileReader &lump)
|
|||
segs.Alloc(numsegs);
|
||||
memset(&segs[0],0,sizeof(seg_t)*numsegs);
|
||||
|
||||
glseg3_t * ml = (glseg3_t*)(data.data() + (format5? 0:4));
|
||||
const glseg3_t * ml = (const glseg3_t*)(data.bytes() + (format5? 0:4));
|
||||
for(i = 0; i < numsegs; i++)
|
||||
{ // check for gl-vertices
|
||||
const unsigned v1idx = checkGLVertex3(LittleLong(ml->v1));
|
||||
|
|
@ -395,21 +395,21 @@ bool MapLoader::LoadGLSegs(FileReader &lump)
|
|||
segs[i].linedef = ldef;
|
||||
|
||||
|
||||
ml->side=LittleShort(ml->side);
|
||||
if (ml->side > 1)
|
||||
auto side=LittleShort(ml->side);
|
||||
if (side > 1)
|
||||
return false;
|
||||
segs[i].sidedef = ldef->sidedef[ml->side];
|
||||
if (ldef->sidedef[ml->side] != nullptr)
|
||||
segs[i].sidedef = ldef->sidedef[side];
|
||||
if (ldef->sidedef[side] != nullptr)
|
||||
{
|
||||
segs[i].frontsector = ldef->sidedef[ml->side]->sector;
|
||||
segs[i].frontsector = ldef->sidedef[side]->sector;
|
||||
}
|
||||
else
|
||||
{
|
||||
segs[i].frontsector = nullptr;
|
||||
}
|
||||
if (ldef->flags & ML_TWOSIDED && ldef->sidedef[ml->side^1] != nullptr)
|
||||
if (ldef->flags & ML_TWOSIDED && ldef->sidedef[side^1] != nullptr)
|
||||
{
|
||||
segs[i].backsector = ldef->sidedef[ml->side^1]->sector;
|
||||
segs[i].backsector = ldef->sidedef[side^1]->sector;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -456,7 +456,7 @@ bool MapLoader::LoadGLSubsectors(FileReader &lump)
|
|||
|
||||
if (!format5 && memcmp(datab.data(), "gNd3", 4))
|
||||
{
|
||||
mapsubsector_t * data = (mapsubsector_t*) datab.data();
|
||||
auto data = (const mapsubsector_t*) datab.data();
|
||||
numsubsectors /= sizeof(mapsubsector_t);
|
||||
Level->subsectors.Alloc(numsubsectors);
|
||||
auto &subsectors = Level->subsectors;
|
||||
|
|
@ -478,7 +478,7 @@ bool MapLoader::LoadGLSubsectors(FileReader &lump)
|
|||
}
|
||||
else
|
||||
{
|
||||
gl3_mapsubsector_t * data = (gl3_mapsubsector_t*) (datab.data()+(format5? 0:4));
|
||||
auto data = (const gl3_mapsubsector_t*) (datab.bytes()+(format5? 0:4));
|
||||
numsubsectors /= sizeof(gl3_mapsubsector_t);
|
||||
Level->subsectors.Alloc(numsubsectors);
|
||||
auto &subsectors = Level->subsectors;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue