def get_indices_array(mod, mesh): offset = ctypes.addressof(mod.index_buffer) position = mesh.face_offset * 2 + mesh.face_position * 2 index_buffer_size = get_size(mod, 'index_buffer') if position > index_buffer_size: raise BuildMeshError('Error building mesh in get_indices_array (out of bounds reference)' 'Size of mod.indices_buffer: {} mesh.face_offset: {}, mesh.face_position: {}' .format(index_buffer_size, mesh.face_offset, mesh.face_position)) offset += position return (ctypes.c_ushort * mesh.face_count).from_address(offset)
def test_meshes_array_2(mods_from_arc): for mod in mods_from_arc: assert get_offset(mod, 'meshes_array_2') == get_offset(mod, 'meshes_array') + get_size(mod, 'meshes_array') assert get_offset(mod, 'vertex_buffer') == get_offset(mod, 'meshes_array_2') + get_size(mod, 'meshes_array_2')