void view_draw_model_opaque(int tick) { int n; obj_type *obj; proj_type *proj; // setup draw gl_3D_view(); gl_3D_rotate(&view.render->camera.pnt,&view.render->camera.ang); gl_setup_project(); // render the models for (n=0;n!=view.render->draw_list.count;n++) { switch (view.render->draw_list.items[n].type) { case view_render_type_object: obj=&server.objs[view.render->draw_list.items[n].idx]; render_model_setup(tick,&obj->draw); if ((view.render->draw_list.items[n].flag&view_list_item_flag_model_in_view)!=0x0) render_model_opaque(&obj->draw); break; case view_render_type_projectile: proj=&server.projs[view.render->draw_list.items[n].idx]; render_model_setup(tick,&proj->draw); render_model_opaque(&proj->draw); break; } } }
void draw_weapon_hand_setup(obj_type *obj,weapon_type *weap) { int tick; model_draw *draw; model_type *mdl; // weapons hidden or zoom on? if (obj->hide_all_weapons) return; if ((weap->zoom.on) && (weap->zoom.mode!=zoom_mode_off) && (obj->zoom_draw.on) && (!weap->zoom.show_weapon)) return; // weapon model draw draw=&weap->draw; if ((draw->model_idx==-1) || (!draw->on)) return; mdl=server.model_list.models[draw->model_idx]; // regular weapon model tick=game_time_get(); model_draw_setup_clear(mdl,&draw->setup); model_draw_setup_weapon(obj,weap,FALSE,FALSE); model_calc_animation(draw,tick); model_calc_draw_bones(draw); render_model_setup(draw,tick); render_model_build_vertex_lists(draw,TRUE); // dual wielded weapons if ((weap->dual.on) && (weap->dual.active)) { draw=&weap->draw_dual; if ((draw->model_idx!=-1) && (draw->on)) { mdl=server.model_list.models[draw->model_idx]; model_draw_setup_clear(mdl,&draw->setup); model_draw_setup_weapon(obj,weap,FALSE,TRUE); model_calc_animation(draw,tick); model_calc_draw_bones(draw); render_model_setup(draw,tick); render_model_build_vertex_lists(draw,TRUE); } } }