static void render_lit(world_t w, float lerp) { renderer_t r = w->render; vec3_t cpos; glEnable(GL_LIGHT0); if ( w->do_shadows ) { glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glDepthMask(GL_TRUE); glStencilFunc(GL_EQUAL, 0x0, 0xff); glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); glEnable(GL_STENCIL_TEST); } do_render(w, lerp, NULL); if ( w->do_shadows ) { glDisable(GL_STENCIL_TEST); } glPushMatrix(); chopper_get_pos(w->apache, lerp, cpos); renderer_translate(r, w->cpos[0], w->cpos[1], w->cpos[2]); renderer_translate(r, -cpos[0], -cpos[1], -cpos[2]); particles_render_all(r, lerp); glPopMatrix(); }
void tile_render(tile_t t, renderer_t r, light_t l) { unsigned int i; #if 0 // renderer_wireframe(r, 1); if ( NULL == l ) { glColor4f(0.4, 0.4, 0.4, 1.0); glBegin(GL_QUAD_STRIP); glNormal3f(0.0, 1.0, 0.0); glVertex3f(0.0, 0.0, 0.0); glVertex3f(0.0, 0.0, TILE_Y); glVertex3f(TILE_X, 0.0, 0.0); glVertex3f(TILE_X, 0.0, TILE_Y); glEnd(); } // renderer_wireframe(r, 0); // return; #endif for(i = 0; i < t->t_num_items; i++) { struct _item *item = t->t_items + i; glPushMatrix(); renderer_translate(r, item->x, 0.0, item->y); glColor4f(0.3, 0.3, 0.3, 1.0); asset_render(item->asset, r, l); glPopMatrix(); } }
static void do_render(world_t w, float lerp, light_t l) { renderer_t r = w->render; vec3_t cpos; chopper_get_pos(w->apache, lerp, cpos); glPushMatrix(); renderer_translate(r, w->cpos[0], w->cpos[1], w->cpos[2]); renderer_translate(r, -cpos[0], -cpos[1], -cpos[2]); map_render(w->map, r, l); chopper_render_missiles(w->apache, r, lerp, l); glPopMatrix(); glPushMatrix(); renderer_translate(r, w->cpos[0], w->cpos[1], w->cpos[2]); chopper_render(w->apache, r, lerp, l); glPopMatrix(); }
static void view_transform(world_t w) { renderer_t r = w->render; renderer_translate(r, 0.0, -CAMERA_HEIGHT, 0.0); get_screen_centre(r, CHOPPER_HEIGHT, w->cpos); }