navmesh file load error-fix

don't try to read 0 length buffers
This commit is contained in:
Azaezel 2016-08-01 17:22:19 -05:00
parent 5fa8504568
commit 6a5820d3a2

View file

@ -1593,12 +1593,15 @@ bool NavMesh::load()
S32 s;
file.read(sizeof(S32), (char*)&s);
setLinkCount(s);
file.read(sizeof(F32) * s * 6, (char*)const_cast<F32*>(mLinkVerts.address()));
file.read(sizeof(F32) * s, (char*)const_cast<F32*>(mLinkRads.address()));
file.read(sizeof(U8) * s, (char*)const_cast<U8*>(mLinkDirs.address()));
file.read(sizeof(U8) * s, (char*)const_cast<U8*>(mLinkAreas.address()));
file.read(sizeof(U16) * s, (char*)const_cast<U16*>(mLinkFlags.address()));
file.read(sizeof(F32) * s, (char*)const_cast<U32*>(mLinkIDs.address()));
if (s > 0)
{
file.read(sizeof(F32) * s * 6, (char*)const_cast<F32*>(mLinkVerts.address()));
file.read(sizeof(F32) * s, (char*)const_cast<F32*>(mLinkRads.address()));
file.read(sizeof(U8) * s, (char*)const_cast<U8*>(mLinkDirs.address()));
file.read(sizeof(U8) * s, (char*)const_cast<U8*>(mLinkAreas.address()));
file.read(sizeof(U16) * s, (char*)const_cast<U16*>(mLinkFlags.address()));
file.read(sizeof(F32) * s, (char*)const_cast<U32*>(mLinkIDs.address()));
}
mLinksUnsynced.fill(false);
mLinkSelectStates.fill(Unselected);
mDeleteLinks.fill(false);