[jasper/world] Make World::updateObj return error
All checks were successful
Build / build (push) Successful in 3m55s

This commit is contained in:
Gary Talent 2025-01-12 23:58:26 -06:00
parent a986ab5734
commit d5d22372e1
2 changed files with 6 additions and 5 deletions

View File

@ -37,7 +37,7 @@ class World {
void setupTile(uint32_t lyr, uint32_t x, uint32_t y) noexcept; void setupTile(uint32_t lyr, uint32_t x, uint32_t y) noexcept;
private: private:
turbine::TimeMs updateObj(ObjState &state) noexcept; ox::Result<turbine::TimeMs> updateObj(ObjState &state) noexcept;
void setupLayer(uint_t lyr, uint_t cbb) noexcept; void setupLayer(uint_t lyr, uint_t cbb) noexcept;

View File

@ -55,7 +55,8 @@ ox::Result<int> World::update() noexcept {
turbine::TimeMs nextUpdateTime = ox::MaxValue<turbine::TimeMs>; turbine::TimeMs nextUpdateTime = ox::MaxValue<turbine::TimeMs>;
m_currentTicks = ticksMs(turbineCtx(m_nctx)); m_currentTicks = ticksMs(turbineCtx(m_nctx));
for (auto &state : m_objStates) { for (auto &state : m_objStates) {
nextUpdateTime = ox::min(nextUpdateTime, updateObj(state)); OX_REQUIRE(u, updateObj(state));
nextUpdateTime = ox::min(nextUpdateTime, u);
} }
return static_cast<int>(nextUpdateTime - m_currentTicks); return static_cast<int>(nextUpdateTime - m_currentTicks);
} }
@ -102,20 +103,20 @@ void World::setupTile(
} }
} }
turbine::TimeMs World::updateObj(ObjState &state) noexcept { ox::Result<turbine::TimeMs> World::updateObj(ObjState &state) noexcept {
if (state.nextUpdateTime <= m_currentTicks) { if (state.nextUpdateTime <= m_currentTicks) {
auto &obj = m_worldStatic.objTileRefSets[state.objIdx]; auto &obj = m_worldStatic.objTileRefSets[state.objIdx];
++state.frame; ++state.frame;
if (state.frame >= obj.frames) { if (state.frame >= obj.frames) {
state.frame = 0; state.frame = 0;
} }
std::ignore = ncore::loadBgTileSheet( OX_RETURN_ERROR(ncore::loadBgTileSheet(
m_nctx, m_nctx,
obj.cbb, obj.cbb,
*m_tilesheets[obj.tilesheetId], *m_tilesheets[obj.tilesheetId],
obj.cbbIdx, obj.cbbIdx,
static_cast<size_t>(obj.tilesheetIdx + state.frame * static_cast<uint16_t>(obj.tileCnt)), static_cast<size_t>(obj.tilesheetIdx + state.frame * static_cast<uint16_t>(obj.tileCnt)),
obj.tileCnt); obj.tileCnt));
state.nextUpdateTime = m_currentTicks + obj.intervalMs; state.nextUpdateTime = m_currentTicks + obj.intervalMs;
} }
return state.nextUpdateTime; return state.nextUpdateTime;