diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index 12b3580cc..16266a506 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -898,9 +898,9 @@ namespace geode { ); } else if (auto p = event->getProgress()) { - // no guarantee P and NewProgress are compatible - // nor does it seem like the intended behavior? - // TODO: maybe add a mapper for progress? + if constexpr (std::is_same_v) { + NewTask::progress(handle.lock(), std::move(*p)); + } } else if (event->isCancelled()) { NewTask::cancel(handle.lock()); @@ -1110,3 +1110,4 @@ template struct std::coroutine_traits, Args...> { using promise_type = geode::geode_internal::TaskPromise; }; +