X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fdebug.qh;h=0200883b8dbbc89867e6c888b7489889bb606f54;hb=4faf95050c3c1a7a6963ff7fa768d6c87b3e7bc6;hp=113019a7c7d125bf69a03b215e67739438220b3a;hpb=46a44942030ee6350c6847bf0efe75a1e0d54c6b;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/debug.qh b/qcsrc/common/debug.qh index 113019a7c7..0200883b8d 100644 --- a/qcsrc/common/debug.qh +++ b/qcsrc/common/debug.qh @@ -1,6 +1,10 @@ #pragma once -#ifndef MENUQC +#ifdef CSQC +.entity tag_entity; +#endif + +#ifdef GAMEQC .bool debug; .int sv_entnum; REGISTER_NET_TEMP(net_debug) @@ -43,7 +47,8 @@ REGISTER_NET_TEMP(net_debug) } #endif -#ifndef MENUQC +#if ENABLE_DEBUGDRAW +#ifdef GAMEQC /** * 0: off * 1: on @@ -96,7 +101,7 @@ bool autocvar_debugdraw; // if (it.entnum) break; // if (it.drawmask) break; // if (it.predraw) break; -// if (it.movetype) break; +// if (it.move_movetype) break; if (it.solid) break; // if (it.origin) break; // if (it.oldorigin) break; @@ -138,7 +143,7 @@ bool autocvar_debugdraw; if (pos.z < 0) continue; pos.z = 0; pos.y += ofs * sz; - drawcolorcodedstring2(pos, + drawcolorcodedstring2_builtin(pos, sprintf("%d: '%s'@%s", (it.debug ? it.sv_entnum : etof(it)), it.classname, it.sourceLoc), sz * '1 1 0', rgb, 0.5, DRAWFLAG_NORMAL); @@ -165,19 +170,20 @@ bool autocvar_debugdraw; e.debug = true; --rem; } - LOG_INFOF("%d server entities sent\n", n - rem); + LOG_INFOF("%d server entities sent", n - rem); return; } default: case CMD_REQUEST_USAGE: { - LOG_INFO(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " debugdraw_sv")); + LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " debugdraw_sv"); return; } } } #endif +#endif GENERIC_COMMAND(bufstr_get, "Examine a string buffer object") { @@ -188,14 +194,14 @@ 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\n", s); + LOG_INFOF("%s", s); return; } default: case CMD_REQUEST_USAGE: { - LOG_INFO(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " bufstr_get bufhandle string_index")); + LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " bufstr_get bufhandle string_index"); return; } } @@ -207,18 +213,53 @@ GENERIC_COMMAND(version, "Print the current version") { case CMD_REQUEST_COMMAND: { - LOG_INFO(WATERMARK "\n"); + LOG_INFO(WATERMARK); + return; + } + default: + case CMD_REQUEST_USAGE: + { + LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " version"); + return; + } + } +} + +#ifdef CSQC +void(float bufhandle, string pattern, string antipattern) buf_cvarlist = #517; +#endif +GENERIC_COMMAND(cvar_localchanges, "Print locally changed cvars") +{ + switch (request) + { + case CMD_REQUEST_COMMAND: + { + string s = ""; + int h = buf_create(); + buf_cvarlist(h, "", "_"); // exclude all _ cvars as they are temporary + int n = buf_getsize(h); + for (int i = 0; i < n; ++i) { + string k = bufstr_get(h, i); + string v = cvar_string(k); + string d = cvar_defstring(k); + if (v == d) + continue; + s = strcat(s, k, " \"", v, "\" // \"", d, "\"\n"); + } + buf_del(h); + LOG_INFO(s); return; } default: case CMD_REQUEST_USAGE: { - LOG_INFO(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " version")); + LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " cvar_localchanges"); return; } } } +#if ENABLE_DEBUGTRACE REGISTER_STAT(TRACE_ENT, int) #ifdef SVQC bool autocvar_debugtrace; @@ -239,10 +280,10 @@ MUTATOR_HOOKFUNCTION(trace, SV_StartFrame) it.solid_prev = it.solid; it.solid = SOLID_BBOX; }); - vector forward; vector right; vector up; + vector forward = '0 0 0'; vector right = '0 0 0'; vector up = '0 0 0'; MAKEVECTORS(makevectors, it.v_angle, forward, right, up); vector pos = it.origin + it.view_ofs; - traceline(pos, pos + forward * MAX_SHOT_DISTANCE, MOVE_NORMAL, it); + traceline(pos, pos + forward * max_shot_distance, MOVE_NORMAL, it); FOREACH_ENTITY(true, { it.solid = it.solid_prev; it.solid_prev = 0; @@ -271,8 +312,10 @@ STATIC_INIT(TRACE_ENT) { entity e = TRACE_ENT = new_pure(TRACE_ENT); e.draw2d = Trace_draw2d; + IL_PUSH(g_drawables_2d, e); } #endif +#endif GENERIC_COMMAND(find, "Search through entities for matching classname") { @@ -280,18 +323,25 @@ GENERIC_COMMAND(find, "Search through entities for matching classname") { case CMD_REQUEST_COMMAND: { - FOREACH_ENTITY_CLASS_ORDERED(argv(1), true, LOG_INFOF("%i (%s)\n", it, it.classname)); + int entcnt = 0; + FOREACH_ENTITY_CLASS_ORDERED(argv(1), true, + { + LOG_INFOF("%i (%s)", it, it.classname); + ++entcnt; + }); + if(entcnt) + LOG_INFOF("Found %d entities", entcnt); return; } default: { - LOG_INFO("Incorrect parameters for ^2find^7\n"); + LOG_INFO("Incorrect parameters for ^2find^7"); } case CMD_REQUEST_USAGE: { - LOG_INFO("\nUsage:^3 " GetProgramCommandPrefix() " find classname\n"); - LOG_INFO(" Where 'classname' is the classname to search for.\n"); + LOG_INFO("Usage:^3 " GetProgramCommandPrefix() " find classname"); + LOG_INFO(" Where 'classname' is the classname to search for."); return; } } @@ -304,15 +354,15 @@ GENERIC_COMMAND(findat, "Search through entities for matching origin") case CMD_REQUEST_COMMAND: { vector match = stov(argv(1)); - FOREACH_ENTITY_ORDERED(it.origin == match, LOG_INFOF("%i (%s)\n", it, it.classname)); + FOREACH_ENTITY_ORDERED(it.origin == match, LOG_INFOF("%i (%s)", it, it.classname)); return; } default: - LOG_INFO("Incorrect parameters for ^2findat^7\n"); + LOG_INFO("Incorrect parameters for ^2findat^7"); case CMD_REQUEST_USAGE: { - LOG_INFO("\nUsage:^3 " GetProgramCommandPrefix() " findat \"0 0 0\"\n"); + LOG_INFO("Usage:^3 " GetProgramCommandPrefix() " findat \"0 0 0\""); return; } }