VertexLoader: Don't write position_cache if vertex is skipped

This is the behavior in the x64 and ARM64 vertex loaders. I don't know if it makes sense (the whole skipped vertex system seems jank, but several games behave incorrectly without it).
This commit is contained in:
Pokechu22 2023-01-12 16:35:57 -08:00
parent 16c0593a52
commit 3910bdd68b

View file

@ -62,7 +62,7 @@ void Pos_ReadIndex(VertexLoader* loader)
for (int i = 0; i < N; ++i)
{
const float value = PosScale(Common::FromBigEndian(data[i]), scale);
if (loader->m_remaining < 3)
if (loader->m_remaining < 3 && !loader->m_vertexSkip)
VertexLoaderManager::position_cache[loader->m_remaining][i] = value;
DataWrite(value);
}