diff --git a/src/Layers/xrRenderPC_R3/r3_loader.cpp b/src/Layers/xrRenderPC_R3/r3_loader.cpp index 7626864cbdd..c776e1acd8b 100644 --- a/src/Layers/xrRenderPC_R3/r3_loader.cpp +++ b/src/Layers/xrRenderPC_R3/r3_loader.cpp @@ -219,14 +219,14 @@ void CRender::LoadBuffers (CStreamReader *base_fs, BOOL _alternative) u32 count = fs->r_u32(); _DC.resize (count); _VB.resize (count); + u32 bufferSize = (MAXD3DDECLLENGTH+1)*sizeof(D3DVERTEXELEMENT9); + D3DVERTEXELEMENT9* dcl = (D3DVERTEXELEMENT9*)_alloca(bufferSize); for (u32 i=0; ir (dcl,buffer_size); - fs->advance (-(int)buffer_size); + fs->r (dcl,bufferSize); + fs->advance (-(int)bufferSize); u32 dcl_len = D3DXGetDeclLength (dcl)+1; _DC[i].resize (dcl_len);