From: John Tsiombikas Date: Thu, 15 Sep 2022 12:10:05 +0000 (+0300) Subject: foo X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=commitdiff_plain;h=8fba666685cab4a4bd1fef9e6cc4d8ae2c53ab80;hp=f92aa640ce2f2859cc7ba8207ed6d20ed1af4a19;p=gbajam22 foo --- diff --git a/src/gamescr.c b/src/gamescr.c index 73566c3..290873d 100644 --- a/src/gamescr.c +++ b/src/gamescr.c @@ -49,7 +49,9 @@ static struct player player; void gamescr(void) { + int i; unsigned char *fb; + uint16_t *cmap; REG_DISPCNT = 4 | DISPCNT_BG2 | DISPCNT_OBJ | DISPCNT_FB1; @@ -62,6 +64,14 @@ void gamescr(void) memset(&player, 0, sizeof player); player.phi = 0x100; + cmap = (uint16_t*)CRAM_BG_ADDR; + *cmap++ = 0; + for(i=1; i<255; i++) { + *cmap++ = rand(); + } + *cmap = 0xffff; + + select_input(BN_DPAD | BN_A | BN_B); mask(INTR_VBLANK); @@ -115,6 +125,7 @@ static void draw(void) xgl_push_matrix(); xgl_translate(x, 0, y); + xgl_index(i + 1); xgl_draw(XGL_QUADS, tm_floor, sizeof tm_floor / sizeof *tm_floor); xgl_pop_matrix(); } diff --git a/src/xgl.c b/src/xgl.c index 3efae76..368c498 100644 --- a/src/xgl.c +++ b/src/xgl.c @@ -29,6 +29,8 @@ static int mtop; static unsigned int opt; static int32_t ldir[3]; +static int cur_cidx; + static void draw_ptlines(int prim, const struct xvertex *varr, int vcount); @@ -175,6 +177,11 @@ void xgl_scale(int32_t x, int32_t y, int32_t z) xgl_mult_matrix(m); } +void xgl_index(int cidx) +{ + cur_cidx = cidx; +} + static void xform(struct xvertex *out, const struct xvertex *in, const int32_t *m) { out->x = XMUL(m[0], in->x) + XMUL(m[4], in->y) + XMUL(m[8], in->z) + m[12]; @@ -207,7 +214,7 @@ void xgl_draw(int prim, const struct xvertex *varr, int vcount) } while(vcount >= prim) { - cidx = 0xff;//varr->cidx; + cidx = cur_cidx;//varr->cidx; xform(xv, varr, mat[mtop]); xform_norm(xv, varr, mat[mtop]); diff --git a/src/xgl.h b/src/xgl.h index 51dd64c..00c8efd 100644 --- a/src/xgl.h +++ b/src/xgl.h @@ -66,6 +66,8 @@ void xgl_scale(int32_t x, int32_t y, int32_t z); void xgl_draw(int prim, const struct xvertex *varr, int vcount); void xgl_transform(const struct xvertex *vin, int *x, int *y); +void xgl_index(int c); + void xgl_xyzzy(void); int xgl_clip_near(struct xvertex *vout, int *voutnum, struct xvertex *vin, int vnum);