void view_draw_debug_object(obj_type *obj) { char strs[9][128]; d3pnt size; size.x=obj->size.x; size.y=obj->size.y; size.z=obj->size.z; if (obj->duck.mode!=dm_stand) size.y-=obj->duck.y_move; if (obj->liquid.mode==lm_float) size.y+=obj->liquid.bob_y_move; view_draw_debug_bounding_box(&obj->draw.pnt,&obj->draw.setup.ang,&size); view_draw_debug_object_path(obj); sprintf(strs[0],"Name: %s",obj->name); sprintf(strs[1],"Debug: %s",obj->debug.str); sprintf(strs[2],"Position: %d,%d,%d",obj->draw.pnt.x,obj->draw.pnt.y,obj->draw.pnt.z); sprintf(strs[3],"Angle: %.2f,%.2f,%.2f",obj->ang.x,obj->ang.y,obj->ang.z); sprintf(strs[4],"Health: %d %d",obj->status.health.value,obj->status.armor.value); if (obj->watch.on) { sprintf(strs[5],"Watch: on"); } else { sprintf(strs[5],"Watch: off"); } view_draw_debug_timer(obj->script_idx,timer_mode_repeat,"Timer",FALSE,(char*)strs[6]); view_draw_debug_timer(obj->script_idx,timer_mode_single,"Wait",FALSE,(char*)strs[7]); view_draw_debug_timer(obj->script_idx,timer_mode_chain,"Chain",TRUE,(char*)strs[8]); view_draw_debug_info(&obj->draw.pnt,&size,9,(char*)strs); }
void view_draw_models_final(void) { int n; bool shadow_on; d3col col; 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(); // shadow overrides shadow_on=(setup.shadow_on) && (!view.render->no_shadow); // render the shadows, remote names, // and any debugging information 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]; if ((shadow_on) && (obj->draw.shadow.on)) { if ((view.render->draw_list.items[n].flag&view_list_item_flag_shadow_in_view)!=0x0) shadow_render_model(&obj->draw); } if ((view.render->draw_list.items[n].flag&view_list_item_flag_model_in_view)!=0x0) { if (obj->remote.on) remote_draw_status(obj); if (object_is_targetted(obj,&col)) render_model_target(&obj->draw,&col); if (dim3_debug) { view_draw_debug_bounding_box(obj); view_draw_object_path(obj); } } break; case view_render_type_projectile: proj=&server.projs[view.render->draw_list.items[n].idx]; if ((shadow_on) && (proj->draw.shadow.on)) { if ((view.render->draw_list.items[n].flag&view_list_item_flag_shadow_in_view)!=0x0) shadow_render_model(&proj->draw); } break; } } }
void view_draw_debug_projectile(proj_type *proj) { char strs[3][128]; d3pnt size; proj_setup_type *proj_setup; size.x=proj->size.x; size.y=proj->size.y; size.z=proj->size.z; view_draw_debug_bounding_box(&proj->draw.pnt,&proj->draw.setup.ang,&size); proj_setup=server.obj_list.objs[proj->obj_idx]->weap_list.weaps[proj->weap_idx]->proj_setup_list.proj_setups[proj->proj_setup_idx]; sprintf(strs[0],"Name: %s",proj_setup->name); sprintf(strs[1],"Position: %d,%d,%d",proj->draw.pnt.x,proj->draw.pnt.y,proj->draw.pnt.z); sprintf(strs[2],"Angle: %.2f,%.2f,%.2f",proj->ang.x,proj->ang.y,proj->ang.z); view_draw_debug_info(&proj->draw.pnt,&size,3,(char*)strs); }