#include // memcmp extern "C" { #include } #include #include #include #include #include #include #include #include //#include "controls.hpp" //#include "camera.hpp" #include "debughud.hpp" void DEBUGHUD::render_netcorrections() { if(!config.debug || !gameclient.snap.local_character || !gameclient.snap.local_prev_character) return; Graphics()->MapScreen(0, 0, 300*Graphics()->ScreenAspect(), 300); /*float speed = distance(vec2(netobjects.local_prev_character->x, netobjects.local_prev_character->y), vec2(netobjects.local_character->x, netobjects.local_character->y));*/ float velspeed = length(vec2(gameclient.snap.local_character->vx/256.0f, gameclient.snap.local_character->vy/256.0f))*50; float ramp = velocity_ramp(velspeed, gameclient.tuning.velramp_start, gameclient.tuning.velramp_range, gameclient.tuning.velramp_curvature); char buf[512]; str_format(buf, sizeof(buf), "%.0f\n%.0f\n%.2f\n%d %s\n%d %d", velspeed, velspeed*ramp, ramp, netobj_num_corrections(), netobj_corrected_on(), gameclient.snap.local_character->x, gameclient.snap.local_character->y ); gfx_text(0, 150, 50, 12, buf, -1); } void DEBUGHUD::render_tuning() { // render tuning debugging if(!config.dbg_tuning) return; TUNING_PARAMS standard_tuning; Graphics()->MapScreen(0, 0, 300*Graphics()->ScreenAspect(), 300); float y = 50.0f; int count = 0; for(int i = 0; i < gameclient.tuning.num(); i++) { char buf[128]; float current, standard; gameclient.tuning.get(i, ¤t); standard_tuning.get(i, &standard); if(standard == current) gfx_text_color(1,1,1,1.0f); else gfx_text_color(1,0.25f,0.25f,1.0f); float w; float x = 5.0f; str_format(buf, sizeof(buf), "%.2f", standard); x += 20.0f; w = gfx_text_width(0, 5, buf, -1); gfx_text(0x0, x-w, y+count*6, 5, buf, -1); str_format(buf, sizeof(buf), "%.2f", current); x += 20.0f; w = gfx_text_width(0, 5, buf, -1); gfx_text(0x0, x-w, y+count*6, 5, buf, -1); x += 5.0f; gfx_text(0x0, x, y+count*6, 5, gameclient.tuning.names[i], -1); count++; } y = y+count*6; Graphics()->TextureSet(-1); Graphics()->BlendNormal(); Graphics()->LinesBegin(); float height = 50.0f; float pv = 1; for(int i = 0; i < 100; i++) { float speed = i/100.0f * 3000; float ramp = velocity_ramp(speed, gameclient.tuning.velramp_start, gameclient.tuning.velramp_range, gameclient.tuning.velramp_curvature); float rampedspeed = (speed * ramp)/1000.0f; Graphics()->LinesDraw((i-1)*2, y+height-pv*height, i*2, y+height-rampedspeed*height); //Graphics()->LinesDraw((i-1)*2, 200, i*2, 200); pv = rampedspeed; } Graphics()->LinesEnd(); gfx_text_color(1,1,1,1); } void DEBUGHUD::on_render() { render_tuning(); render_netcorrections(); }