icoord Tile::moveDest(icoord here, ivec2 facing) const { icoord dest = here + icoord(facing.x, facing.y, 0); double* layermod = layermodAt(facing); if (layermod) dest = area->virt2phys(vicoord(dest.x, dest.y, *layermod)); return dest; }
icoord Tile::moveDest(icoord here, ivec2 facing) const noexcept { icoord dest = here + icoord{facing.x, facing.y, 0}; Optional<double> layermod = layermodAt(facing); if (layermod) { dest = area->virt2phys(vicoord{dest.x, dest.y, *layermod}); } return dest; }