projects
/
vrlugburz
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
visibility determination
[vrlugburz]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index
64c00df
..
92843dc
100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-124,36
+124,38
@@
void game_display(void)
static void draw_level(void)
{
static void draw_level(void)
{
- int i, j, k;
+ int i;
struct cell *cell;
float xform[16];
glUseProgram(sdr_foo);
struct cell *cell;
float xform[16];
glUseProgram(sdr_foo);
- cell = lvl.cells;
- for(i=0; i<lvl.height; i++) {
- for(j=0; j<lvl.width; j++) {
- cgm_mtranslation(xform, j * lvl.cell_size, 0, -i * lvl.cell_size);
-
- glPushMatrix();
- glMultMatrixf(xform);
+ if(!player.vis) {
+ upd_player_vis(&player);
+ }
- if(cell->tile) {
- 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; k<cell->num_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();
}
glPopMatrix();
}
+
+ for(i=0; i<cell->num_mgrp; i++) {
+ draw_meshgroup(cell->mgrp + i);
+ }
+ glPopMatrix();
+
+ cell = cell->next;
}
glUseProgram(0);
}
glUseProgram(0);