curved tunnel
[gbajam21] / src / gamescr.c
index 70991e8..30ae380 100644 (file)
@@ -52,12 +52,13 @@ void gamescr(void)
 __attribute__((noinline, target("arm"), section(".iwram")))
 static void draw_tunnel(void)
 {
-       int i, j, tx, ty, angle, depth, zoffs;
+       int i, j, tx, ty, angle, depth, zoffs, uoffs;
        uint16_t pptop, ppbot;
        uint16_t *top, *bot;
        uint32_t tun, *tunptr;
 
        zoffs = nframes;
+       uoffs = 0;
 
        top = vram[backbuf];
        bot = vram[backbuf] + 159 * 240 / 2;
@@ -71,18 +72,18 @@ static void draw_tunnel(void)
 
                        angle = tun & 0xff;
                        depth = (tun >> 8) & 0xff;
-                       tx = ((angle >> 1) + zoffs) & 0x1f;
+                       tx = ((angle >> 1) + uoffs) & 0x1f;
                        ty = ((depth >> 1) + zoffs) & 0x1f;
                        pptop = tex[(ty << 5) + tx];
-                       tx = ((angle >> 1) - zoffs) & 0x1f;
+                       tx = ((angle >> 1) - uoffs) & 0x1f;
                        ppbot = tex[(ty << 5) + tx];
 
                        angle = (tun >> 16) & 0xff;
                        depth = (tun >> 24) & 0xff;
-                       tx = ((angle >> 1) + zoffs) & 0x1f;
+                       tx = ((angle >> 1) + uoffs) & 0x1f;
                        ty = ((depth >> 1) + zoffs) & 0x1f;
                        pptop |= (uint16_t)tex[(ty << 5) + tx] << 8;
-                       tx = ((angle >> 1) - zoffs) & 0x1f;
+                       tx = ((angle >> 1) - uoffs) & 0x1f;
                        ppbot |= (uint16_t)tex[(ty << 5) + tx] << 8;
 
                        *top++ = pptop;