]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Move remaining waypoint code from impulse.qc to waypoints.qc
authorterencehill <piuntn@gmail.com>
Tue, 4 Apr 2017 19:27:31 +0000 (21:27 +0200)
committerterencehill <piuntn@gmail.com>
Tue, 4 Apr 2017 19:58:57 +0000 (21:58 +0200)
qcsrc/server/bot/api.qh
qcsrc/server/bot/default/waypoints.qc
qcsrc/server/bot/default/waypoints.qh
qcsrc/server/impulse.qc

index 1339b43ea9e3b5950c4cfec5c82ba8a21b6e5502..3cbf2d9d2333edc85c7d7a844a83b194b48562b9 100644 (file)
@@ -98,6 +98,7 @@ void waypoint_spawnforteleporter(entity e, vector destination, float timetaken);
 void waypoint_spawnforteleporter_v(entity e, vector org, vector destination, float timetaken);
 void waypoint_spawn_fromeditor(entity pl);
 entity waypoint_spawn(vector m1, vector m2, float f);
+void waypoint_unreachable(entity pl);
 
 .entity goalcurrent;
 void navigation_clearroute(entity this);
index 4af7fc4568b5df07e11ebb79d508fa49b4002bfd..4077a70a36c782dd0b9eebfbe9f8bc6b25f248e8 100644 (file)
 #include <lib/warpzone/common.qh>
 #include <lib/warpzone/util_server.qh>
 
+void waypoint_unreachable(entity pl)
+{
+       IL_EACH(g_waypoints, true,
+       {
+               it.colormod = '0.5 0.5 0.5';
+               it.effects &= ~(EF_NODEPTHTEST | EF_RED | EF_BLUE);
+       });
+       entity e2 = navigation_findnearestwaypoint(pl, false);
+       navigation_markroutes(pl, e2);
+
+       int j = 0;
+       int m = 0;
+       IL_EACH(g_waypoints, it.wpcost >= 10000000,
+       {
+               LOG_INFO("unreachable: ", etos(it), " ", vtos(it.origin), "\n");
+               it.colormod_z = 8;
+               it.effects |= EF_NODEPTHTEST | EF_BLUE;
+               j++;
+               m++;
+       });
+       if (j) LOG_INFOF("%d waypoints cannot be reached from here in any way (marked with blue light)\n", j);
+       navigation_markroutes_inverted(e2);
+
+       j = 0;
+       IL_EACH(g_waypoints, it.wpcost >= 10000000,
+       {
+               LOG_INFO("cannot reach me: ", etos(it), " ", vtos(it.origin), "\n");
+               it.colormod_x = 8;
+               if (!(it.effects & EF_NODEPTHTEST))  // not already reported before
+                       m++;
+               it.effects |= EF_NODEPTHTEST | EF_RED;
+               j++;
+       });
+       if (j) LOG_INFOF("%d waypoints cannot walk to here in any way (marked with red light)\n", j);
+       if (m) LOG_INFOF("%d waypoints have been marked total\n", m);
+
+       j = 0;
+       IL_EACH(g_spawnpoints, true,
+       {
+               vector org = it.origin;
+               tracebox(it.origin, PL_MIN_CONST, PL_MAX_CONST, it.origin - '0 0 512', MOVE_NOMONSTERS, NULL);
+               setorigin(it, trace_endpos);
+               if (navigation_findnearestwaypoint(it, false))
+               {
+                       setorigin(it, org);
+                       it.effects &= ~EF_NODEPTHTEST;
+                       it.model = "";
+               }
+               else
+               {
+                       setorigin(it, org);
+                       LOG_INFO("spawn without waypoint: ", etos(it), " ", vtos(it.origin), "\n");
+                       it.effects |= EF_NODEPTHTEST;
+                       _setmodel(it, pl.model);
+                       it.frame = pl.frame;
+                       it.skin = pl.skin;
+                       it.colormod = '8 0.5 8';
+                       setsize(it, '0 0 0', '0 0 0');
+                       j++;
+               }
+       });
+       if (j) LOG_INFOF("%d spawnpoints have no nearest waypoint (marked by player model)\n", j);
+
+       j = 0;
+       IL_EACH(g_items, true,
+       {
+               it.effects &= ~(EF_NODEPTHTEST | EF_RED | EF_BLUE);
+               it.colormod = '0.5 0.5 0.5';
+       });
+       IL_EACH(g_items, true,
+       {
+               if (navigation_findnearestwaypoint(it, false))
+                       continue;
+               LOG_INFO("item without waypoint: ", etos(it), " ", vtos(it.origin), "\n");
+               it.effects |= EF_NODEPTHTEST | EF_RED;
+               it.colormod_x = 8;
+               j++;
+       });
+       if (j) LOG_INFOF("%d items have no nearest waypoint and cannot be walked away from (marked with red light)\n", j);
+
+       j = 0;
+       IL_EACH(g_items, true,
+       {
+               if (navigation_findnearestwaypoint(it, true))
+                       continue;
+               LOG_INFO("item without waypoint: ", etos(it), " ", vtos(it.origin), "\n");
+               it.effects |= EF_NODEPTHTEST | EF_BLUE;
+               it.colormod_z = 8;
+               j++;
+       });
+       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 new_org = org;
index b8ac83f7c6d7c11a6e86463558ee2bb7c0fe6b7f..8cd76d7f5d5dd4521ce519f1c34de1bd8ef11f8b 100644 (file)
@@ -56,6 +56,8 @@ void waypoint_spawn_fromeditor(entity pl);
 entity waypoint_spawn(vector m1, vector m2, float f);
 entity waypoint_spawnpersonal(entity this, vector position);
 
+void waypoint_unreachable(entity pl);
+
 vector waypoint_fixorigin(vector position);
 
 void botframe_autowaypoints();
index 8bc28e3dc69943d2247b5c7ebb91f80842f165f5..efa0f8425b86cb89413b834e6fcfeadbbbbfbf2c 100644 (file)
@@ -598,93 +598,5 @@ IMPULSE(navwaypoint_save)
 IMPULSE(navwaypoint_unreachable)
 {
        if (!autocvar_g_waypointeditor) return;
-       IL_EACH(g_waypoints, true,
-       {
-               it.colormod = '0.5 0.5 0.5';
-               it.effects &= ~(EF_NODEPTHTEST | EF_RED | EF_BLUE);
-       });
-       entity e2 = navigation_findnearestwaypoint(this, false);
-       navigation_markroutes(this, e2);
-
-       int j, m;
-
-       j = 0;
-       m = 0;
-       IL_EACH(g_waypoints, it.wpcost >= 10000000,
-       {
-               LOG_INFO("unreachable: ", etos(it), " ", vtos(it.origin), "\n");
-               it.colormod_z = 8;
-               it.effects |= EF_NODEPTHTEST | EF_BLUE;
-               ++j;
-               ++m;
-       });
-       if (j) LOG_INFOF("%d waypoints cannot be reached from here in any way (marked with blue light)\n", j);
-       navigation_markroutes_inverted(e2);
-
-       j = 0;
-       IL_EACH(g_waypoints, it.wpcost >= 10000000,
-       {
-               LOG_INFO("cannot reach me: ", etos(it), " ", vtos(it.origin), "\n");
-               it.colormod_x = 8;
-               if (!(it.effects & EF_NODEPTHTEST))  // not already reported before
-                       ++m;
-               it.effects |= EF_NODEPTHTEST | EF_RED;
-               ++j;
-       });
-       if (j) LOG_INFOF("%d waypoints cannot walk to here in any way (marked with red light)\n", j);
-       if (m) LOG_INFOF("%d waypoints have been marked total\n", m);
-
-       j = 0;
-       IL_EACH(g_spawnpoints, true,
-       {
-               vector org = it.origin;
-               tracebox(it.origin, PL_MIN_CONST, PL_MAX_CONST, it.origin - '0 0 512', MOVE_NOMONSTERS, NULL);
-               setorigin(it, trace_endpos);
-               if (navigation_findnearestwaypoint(it, false))
-               {
-                       setorigin(it, org);
-                       it.effects &= ~EF_NODEPTHTEST;
-                       it.model = "";
-               }
-               else
-               {
-                       setorigin(it, org);
-                       LOG_INFO("spawn without waypoint: ", etos(it), " ", vtos(it.origin), "\n");
-                       it.effects |= EF_NODEPTHTEST;
-                       _setmodel(it, this.model);
-                       it.frame = this.frame;
-                       it.skin = this.skin;
-                       it.colormod = '8 0.5 8';
-                       setsize(it, '0 0 0', '0 0 0');
-                       ++j;
-               }
-       });
-       if (j) LOG_INFOF("%d spawnpoints have no nearest waypoint (marked by player model)\n", j);
-
-       j = 0;
-       IL_EACH(g_items, true,
-       {
-               it.effects &= ~(EF_NODEPTHTEST | EF_RED | EF_BLUE);
-               it.colormod = '0.5 0.5 0.5';
-       });
-       IL_EACH(g_items, true,
-       {
-               if (navigation_findnearestwaypoint(it, false)) continue;
-               LOG_INFO("item without waypoint: ", etos(it), " ", vtos(it.origin), "\n");
-               it.effects |= EF_NODEPTHTEST | EF_RED;
-               it.colormod_x = 8;
-               ++j;
-       });
-       if (j) LOG_INFOF("%d items have no nearest waypoint and cannot be walked away from (marked with red light)\n", j);
-
-       j = 0;
-       IL_EACH(g_items, true,
-       {
-               if (navigation_findnearestwaypoint(it, true)) continue;
-               LOG_INFO("item without waypoint: ", etos(it), " ", vtos(it.origin), "\n");
-               it.effects |= EF_NODEPTHTEST | EF_BLUE;
-               it.colormod_z = 8;
-               ++j;
-       });
-       if (j) LOG_INFOF("%d items have no nearest waypoint and cannot be walked to (marked with blue light)\n", j);
+       waypoint_unreachable(this);
 }