From e75c51d614cb6f770f90a86cd79d1c863c1c1181 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Sat, 25 May 2024 22:33:01 -0500 Subject: [PATCH] [studio/modlib] Make iterateSelection return errors properly --- .../studio/modlib/include/studio/selectiontracker.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/deps/nostalgia/src/olympic/studio/modlib/include/studio/selectiontracker.hpp b/deps/nostalgia/src/olympic/studio/modlib/include/studio/selectiontracker.hpp index 8132e44..f33b299 100644 --- a/deps/nostalgia/src/olympic/studio/modlib/include/studio/selectiontracker.hpp +++ b/deps/nostalgia/src/olympic/studio/modlib/include/studio/selectiontracker.hpp @@ -12,15 +12,19 @@ namespace studio { struct Selection {ox::Point a, b;}; constexpr auto iterateSelection(studio::Selection const&sel, auto const&cb) { + constexpr auto retErr = ox::is_same_v; for (auto x = sel.a.x; x <= sel.b.x; ++x) { for (auto y = sel.a.y; y <= sel.b.y; ++y) { - if constexpr(ox::is_same_v) { - return cb(x, y); + if constexpr(retErr) { + oxReturnError(cb(x, y)); } else { cb(x, y); } } } + if constexpr(retErr) { + return ox::Error{}; + } }; class SelectionTracker {