85 lines
7.7 KiB
Plaintext
85 lines
7.7 KiB
Plaintext
/*
|
|
* Created by ScriptDevelop.
|
|
* User: dmendelsohn
|
|
* Date: 2/18/2015
|
|
* Time: 6:19 PM
|
|
*
|
|
* To change this template use Tools | Options | Coding | Edit Standard Headers.
|
|
*
|
|
* Debug functionality shared across all game modes.
|
|
*/
|
|
|
|
#using scripts\shared\array_shared;
|
|
#using scripts\shared\system_shared;
|
|
#using scripts\shared\util_shared;
|
|
|
|
|
|
|
|
|
|
|
|
#namespace debug;
|
|
|
|
/#
|
|
function autoexec __init__sytem__() { system::register("debug",&__init__,undefined,undefined); }
|
|
#/
|
|
|
|
/#
|
|
function __init__()
|
|
{
|
|
thread debug_draw_tuning_sphere();
|
|
}
|
|
|
|
|
|
// Draws a sphere out to a specified distance in front of the player.
|
|
// Lets designers visualize how far away specific distances are.
|
|
function debug_draw_tuning_sphere()
|
|
{
|
|
// How big the measured radius actually is.
|
|
n_sphere_radius = 0.0;
|
|
|
|
// Where we draw the text label and "bobber" sphere.
|
|
v_text_position = (0,0,0);
|
|
|
|
// How much to scale up the text based on distance.
|
|
n_text_scale = 1.0;
|
|
|
|
|
|
|
|
while(true)
|
|
{
|
|
// Only check every once a second to see if we should draw the debug sphere.
|
|
n_sphere_radius = GetDvarFloat("debug_measure_sphere_radius", 0.0);
|
|
|
|
// If we should be drawing the sphere, do it every frame.
|
|
while (n_sphere_radius >= 1.0)
|
|
{
|
|
players = GetPlayers();
|
|
|
|
// Draw the outer ring
|
|
if (isdefined(players[0]))
|
|
{
|
|
n_sphere_radius = GetDvarFloat("debug_measure_sphere_radius", 0.0);
|
|
|
|
Circle(players[0].origin, n_sphere_radius, (1, 0, 0), false, true, 16);
|
|
|
|
// Adjust the text and bobber size gradually so they can be read at distance.
|
|
n_text_scale = Sqrt(n_sphere_radius*2.5)/2;
|
|
|
|
// Draw the bobber sphere
|
|
vForward = Anglestoforward(players[0].angles);
|
|
v_text_position = players[0].origin + (vForward * n_sphere_radius);
|
|
sides = Int(10 * ( 1 + Int(n_text_scale) % 100 ));
|
|
sphere( v_text_position, n_text_scale, (1,0,0), 1, true, sides, 16 );
|
|
|
|
// Print the distance
|
|
print3d(v_text_position +(0, 0, 20), n_sphere_radius, (1, 0, 0), 1, n_text_scale/14, 16);
|
|
}
|
|
{wait(.05);};
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
#/
|
|
|