X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrlugburz;a=blobdiff_plain;f=src%2Fgame.c;fp=src%2Fgame.c;h=92843dc5ba8beedb93e2f30001bfbc02e4842180;hp=64c00dfa32a7ea48c7318814479808a386086808;hb=32010751a69440b52780a4e570682f20b4ef70b2;hpb=594c18e3671a27624a867071b5bafd08148652b3 diff --git a/src/game.c b/src/game.c index 64c00df..92843dc 100644 --- a/src/game.c +++ b/src/game.c @@ -124,36 +124,38 @@ void game_display(void) static void draw_level(void) { - int i, j, k; + int i; struct cell *cell; float xform[16]; glUseProgram(sdr_foo); - cell = lvl.cells; - for(i=0; itile) { - cgm_mrotation_y(xform, cell->tilerot * M_PI / 2.0f); + cell = player.vis; + while(cell) { + cgm_mtranslation(xform, cell->x * lvl.cell_size, 0, -cell->y * lvl.cell_size); - glPushMatrix(); - glMultMatrixf(xform); - draw_meshgroup(&cell->tile->mgrp); - glPopMatrix(); - } + glPushMatrix(); + glMultMatrixf(xform); - for(k=0; knum_mgrp; k++) { - draw_meshgroup(cell->mgrp + k); - } - cell++; + if(cell->tile) { + cgm_mrotation_y(xform, cell->tilerot * M_PI / 2.0f); + glPushMatrix(); + glMultMatrixf(xform); + draw_meshgroup(&cell->tile->mgrp); glPopMatrix(); } + + for(i=0; inum_mgrp; i++) { + draw_meshgroup(cell->mgrp + i); + } + glPopMatrix(); + + cell = cell->next; } glUseProgram(0);