Esempio n. 1
0
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);
}
Esempio n. 2
0
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;

		}
	}
}
Esempio n. 3
0
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);
}