if (j) LOG_INFOF("%d items have no nearest waypoint and cannot be walked to (marked with blue light)\n", j);
}
-vector waypoint_getSymmetricalOrigin(vector org, int ctf_flags)
+vector waypoint_getSymmetricalPoint(vector org, int ctf_flags)
{
vector new_org = org;
if (fabs(autocvar_g_waypointeditor_symmetrical) == 1)
|| (autocvar_g_waypointeditor_symmetrical < 0));
if(autocvar_g_waypointeditor_symmetrical_order >= 2)
ctf_flags = autocvar_g_waypointeditor_symmetrical_order;
+ if (sym && ctf_flags < 2)
+ ctf_flags = 2;
int wp_num = ctf_flags;
if(!PHYS_INPUT_BUTTON_CROUCH(pl))
bprint(strcat("Waypoint spawned at ", vtos(e.origin), "\n"));
if(sym)
{
- org = waypoint_getSymmetricalOrigin(e.origin, ctf_flags);
+ org = waypoint_getSymmetricalPoint(e.origin, ctf_flags);
if (vdist(org - pl.origin, >, 32))
{
if(wp_num > 2)
|| (autocvar_g_waypointeditor_symmetrical < 0));
if(autocvar_g_waypointeditor_symmetrical_order >= 2)
ctf_flags = autocvar_g_waypointeditor_symmetrical_order;
+ if (sym && ctf_flags < 2)
+ ctf_flags = 2;
int wp_num = ctf_flags;
LABEL(remove_wp);
entity wp_sym = NULL;
if (sym)
{
- vector org = waypoint_getSymmetricalOrigin(e.origin, ctf_flags);
+ vector org = waypoint_getSymmetricalPoint(e.origin, ctf_flags);
FOREACH_ENTITY_CLASS("waypoint", !(it.wpflags & WAYPOINTFLAG_GENERATED), {
if(vdist(org - it.origin, <, 3))
{
entity link = waypoint_get_link(it, j);
if(link)
{
+ // NOTE: vtos rounds vector components to 1 decimal place
string s = strcat(vtos(it.origin), "*", vtos(link.origin), "\n");
fputs(file, s);
++c;
continue;
string s;
+ // NOTE: vtos rounds vector components to 1 decimal place
s = strcat(vtos(it.origin + it.mins), "\n");
s = strcat(s, vtos(it.origin + it.maxs));
s = strcat(s, "\n");
vector waypoint_fixorigin_down_dir(vector position, entity tracetest_ent, vector down_dir)
{
- tracebox(position + '0 0 1', PL_MIN_CONST, PL_MAX_CONST, position + down_dir * 3000, MOVE_NOMONSTERS, tracetest_ent);
+ vector endpos = position + down_dir * 3000;
+ tracebox(position + '0 0 1', PL_MIN_CONST, PL_MAX_CONST, endpos, MOVE_NOMONSTERS, tracetest_ent);
if(trace_startsolid)
- tracebox(position + '0 0 1' * (1 - PL_MIN_CONST.z / 2), PL_MIN_CONST, PL_MAX_CONST, position + down_dir * 3000, MOVE_NOMONSTERS, tracetest_ent);
+ tracebox(position + '0 0 1' * (1 - PL_MIN_CONST.z / 2), PL_MIN_CONST, PL_MAX_CONST, endpos, MOVE_NOMONSTERS, tracetest_ent);
if(trace_startsolid)
- tracebox(position + '0 0 1' * (1 - PL_MIN_CONST.z), PL_MIN_CONST, PL_MAX_CONST, position + down_dir * 3000, MOVE_NOMONSTERS, tracetest_ent);
+ tracebox(position + '0 0 1' * (1 - PL_MIN_CONST.z), PL_MIN_CONST, PL_MAX_CONST, endpos, MOVE_NOMONSTERS, tracetest_ent);
if(trace_fraction < 1)
position = trace_endpos;
return position;