blitToVManip: Check out-of-bounds using node position not index (#8127)
authorParamat <paramat@users.noreply.github.com>
Fri, 25 Jan 2019 19:01:00 +0000 (19:01 +0000)
committerGitHub <noreply@github.com>
Fri, 25 Jan 2019 19:01:00 +0000 (19:01 +0000)
commit922e6ff57ec9f07d2ff04cf010821c1ddd00831e
tree00c0a10f8501d7b9d30c504bc1fa34ec62af35dd
parentbc1e54764b736310ca3797dc3e06fe8326949367
blitToVManip: Check out-of-bounds using node position not index (#8127)

Previously, when using 'place on vmanip' to add a schematic to a
lua voxelmanip, if part of the schematic was outside the voxelmanip
volume, the outside part would often appear in a strange place
elsewhere inside the voxelmanip instead of being trimmed off.
This was due to the out-of-bounds check checking the index.

A position outside the voxelmanip can have an index that satisfies
'0 <= index <= voxelmanip volume', causing the node to be placed
at a strange position inside the voxelmanip.

Use 'vm->m_area.contains(pos)' instead.
Move index calculation to later in the code to optimise.
src/mapgen/mg_schematic.cpp