X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fgamescr.c;h=73566c3cbaa0a642b263eef4477d7d53e9995b88;hb=5e41feadc19dbc9cda954543cf2b2649ced835b4;hp=5a2347de4fc6a4c28601267ce3f83a8890a2e79a;hpb=5d7112b5fad9e69a556898a705eeef2307bb83d9;p=gbajam22 diff --git a/src/gamescr.c b/src/gamescr.c index 5a2347d..73566c3 100644 --- a/src/gamescr.c +++ b/src/gamescr.c @@ -53,14 +53,14 @@ void gamescr(void) REG_DISPCNT = 4 | DISPCNT_BG2 | DISPCNT_OBJ | DISPCNT_FB1; - vblperf_setcolor(0xff); + vblperf_setcolor(1); lvl = init_level(testlvl); xgl_init(); memset(&player, 0, sizeof player); - player.y = 0x60000; + player.phi = 0x100; select_input(BN_DPAD | BN_A | BN_B); @@ -94,17 +94,30 @@ static void update(void) player_input(&player, bnstate); - upd_vis(lvl, player.x, player.y, player.theta); + upd_vis(lvl, &player); } static void draw(void) { + int i, x, y; + struct cell *cell; + xgl_load_identity(); xgl_rotate_x(player.phi); xgl_rotate_y(player.theta); xgl_translate(player.x, 0, player.y); - xgl_draw(XGL_QUADS, tm_floor, sizeof tm_floor / sizeof *tm_floor); + for(i=0; inumvis; i++) { + cell = lvl->vis[i]; + + x = (int32_t)(cell->x - player.cx) << 17; + y = -(int32_t)(cell->y - player.cy) << 17; + + xgl_push_matrix(); + xgl_translate(x, 0, y); + xgl_draw(XGL_QUADS, tm_floor, sizeof tm_floor / sizeof *tm_floor); + xgl_pop_matrix(); + } } __attribute__((noinline, target("arm"), section(".iwram")))