···279279 for (s32 j = y, jj = sy; j < y + height; j++, jj += size)
280280 for (s32 i = x, ii = sx; i < x + width; i++, ii += size)
281281 {
282282- s32 mi = i;
283283- s32 mj = j;
284284-285285- while (mi < 0) mi += TIC_MAP_WIDTH;
286286- while (mj < 0) mj += TIC_MAP_HEIGHT;
287287- while (mi >= TIC_MAP_WIDTH) mi -= TIC_MAP_WIDTH;
288288- while (mj >= TIC_MAP_HEIGHT) mj -= TIC_MAP_HEIGHT;
282282+ s32 mi = tic_modulo(i, TIC_MAP_WIDTH);
283283+ s32 mj = tic_modulo(j, TIC_MAP_HEIGHT);
289284290285 s32 index = mi + mj * TIC_MAP_WIDTH;
291286 RemapResult retile = { *(src->data + index), tic_no_flip, tic_no_rotate };
+4-4
src/tools.h
···81818282inline s32 tic_modulo(s32 x, s32 m)
8383{
8484- if(x >= m) return x % m;
8585- if(x < 0) return x % m + m;
8686-8787- return x;
8484+ s32 r = x % m;
8585+ if (r < 0)
8686+ r += m;
8787+ return r;
8888}
89899090tic_blitpal tic_tool_palette_blit(const tic_palette* src, tic80_pixel_color_format fmt);