X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fdefault%2Fwaypoints.qc;h=7a40f18e8df56f6e1eacf6e0f242b08b316ee9e6;hb=87390523a589c3bb63ee6826efe4a261544d7241;hp=ee847bc6de4dac58a5017a8b2ec1a1f4d28c788f;hpb=7225542c271470021b0006aadce6d7db255ec2af;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/bot/default/waypoints.qc b/qcsrc/server/bot/default/waypoints.qc index ee847bc6d..7a40f18e8 100644 --- a/qcsrc/server/bot/default/waypoints.qc +++ b/qcsrc/server/bot/default/waypoints.qc @@ -341,6 +341,18 @@ void waypoint_unmark_hardwiredlink(entity wp_from, entity wp_to) return; } +void waypoint_restore_hardwiredlinks(entity wp) +{ + if (wp.wphw00) waypoint_addlink(wp, wp.wphw00); + if (wp.wphw01) waypoint_addlink(wp, wp.wphw01); + if (wp.wphw02) waypoint_addlink(wp, wp.wphw02); + if (wp.wphw03) waypoint_addlink(wp, wp.wphw03); + if (wp.wphw04) waypoint_addlink(wp, wp.wphw04); + if (wp.wphw05) waypoint_addlink(wp, wp.wphw05); + if (wp.wphw06) waypoint_addlink(wp, wp.wphw06); + if (wp.wphw07) waypoint_addlink(wp, wp.wphw07); +} + void waypoint_setupmodel(entity wp) { if (autocvar_g_waypointeditor) @@ -1219,6 +1231,11 @@ void waypoint_think(entity this) } } }); + + // waypoint_clearlinks preserves references to old hardwired links (.wphwXX links) + // so they can be restored here when a wp is spawned over an existing one + waypoint_restore_hardwiredlinks(this); + navigation_testtracewalk = 0; this.wplinked = true; this.dphitcontentsmask = dphitcontentsmask_save; @@ -1241,6 +1258,8 @@ void waypoint_clearlinks(entity wp) wp.wp16mincost = wp.wp17mincost = wp.wp18mincost = wp.wp19mincost = wp.wp20mincost = wp.wp21mincost = wp.wp22mincost = wp.wp23mincost = f; wp.wp24mincost = wp.wp25mincost = wp.wp26mincost = wp.wp27mincost = wp.wp28mincost = wp.wp29mincost = wp.wp30mincost = wp.wp31mincost = f; + // don't remove references to hardwired links (.wphwXX fields) + wp.wplinked = false; }