X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fdebug.qh;h=05064ca96742c395ab0beb863f6bffb186549867;hb=242da345d0d786969b7ca3d478e89fa1662ab458;hp=983b073b406c8cfb93de92a31002d5dd1359fa56;hpb=0b6694545ba935bbac13c20fc11842ba1850d972;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/debug.qh b/qcsrc/common/debug.qh index 983b073b4..05064ca96 100644 --- a/qcsrc/common/debug.qh +++ b/qcsrc/common/debug.qh @@ -1,5 +1,9 @@ #pragma once +#ifdef CSQC +#include +#endif + // This includes some functions useful for debugging. // Some more bot-specific ones are in server/pathlib/debug.qc. @@ -201,8 +205,7 @@ GENERIC_COMMAND(bufstr_get, "Examine a string buffer object") { int bufhandle = stof(argv(1)); int string_index = stof(argv(2)); - string s = bufstr_get(bufhandle, string_index); - LOG_INFOF("%s", s); + LOG_INFO(bufstr_get(bufhandle, string_index)); return; } @@ -288,16 +291,16 @@ MUTATOR_HOOKFUNCTION(trace, SV_StartFrame) it.debug_trace_button = btn; if (!btn || skip) continue; FOREACH_ENTITY(true, { - it.solid_prev = it.solid; + it.solid_prev = it.solid; it.solid = SOLID_BBOX; }); vector forward = '0 0 0'; vector right = '0 0 0'; vector up = '0 0 0'; - MAKEVECTORS(makevectors, it.v_angle, forward, right, up); + MAKE_VECTORS(it.v_angle, forward, right, up); vector pos = it.origin + it.view_ofs; traceline(pos, pos + forward * max_shot_distance, MOVE_NORMAL, it); FOREACH_ENTITY(true, { - it.solid = it.solid_prev; - it.solid_prev = 0; + it.solid = it.solid_prev; + it.solid_prev = 0; }); entity e = trace_ent; int i = etof(e); @@ -403,7 +406,7 @@ CLASS(DebugText3d, Object) CONSTRUCT(DebugText3d); this.origin = pos; this.message = strzone(msg); - this.health = align; + SetResource(this, RES_HEALTH, align); this.hit_time = time; this.fade_rate = fade_rate_; this.velocity = vel; @@ -423,16 +426,25 @@ CLASS(DebugText3d, Object) return; } - int size = 8; + int size = 11; vector screen_pos = project_3d_to_2d(this.origin) + since_created * this.velocity; - float align = this.health; - if (align > 0) - screen_pos.x -= stringwidth(this.message, true, size * '1 1 0') * min(1, align); if (screen_pos.z < 0) return; // behind camera + screen_pos.z = 0; + float align = GetResource(this, RES_HEALTH); + string msg; + vector msg_pos; - vector rgb = '1 1 0'; - drawcolorcodedstring2_builtin(screen_pos, this.message, size * '1 1 0', rgb, alpha_, DRAWFLAG_NORMAL); + int n = tokenizebyseparator(this.message, "\n"); + for(int k = 0; k < n; ++k) + { + msg = argv(k); + msg_pos = screen_pos + k * 1.25 * size * eY; + if (align > 0) + msg_pos.x -= stringwidth(msg, true, size * '1 1 0') * min(1, align); + + drawcolorcodedstring_builtin(msg_pos, msg, size * '1 1 0', alpha_, DRAWFLAG_NORMAL); + } } ATTRIB(DebugText3d, draw2d, void(DebugText3d), DebugText3d_draw2d); ENDCLASS(DebugText3d)