From d3f2f192f0628279ab5618dabf47b87744f7c14e Mon Sep 17 00:00:00 2001 From: ineed bots Date: Mon, 25 Apr 2022 16:30:20 -0600 Subject: [PATCH] frontline waypoints --- main_shared/maps/mp/bots/_bot_utility.gsc | 47 +++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/main_shared/maps/mp/bots/_bot_utility.gsc b/main_shared/maps/mp/bots/_bot_utility.gsc index bdb0425..e054436 100644 --- a/main_shared/maps/mp/bots/_bot_utility.gsc +++ b/main_shared/maps/mp/bots/_bot_utility.gsc @@ -1199,6 +1199,45 @@ cac_init_patch() } } +/* + Parse frontlines type waypoints +*/ +FrontLinesWaypoints() +{ + waypoints = []; + + for ( i = 0;; i++ ) + { + dvar_answer = getDvar( "flwp_" + i ); + + if ( dvar_answer == "" || dvar_answer == "eof" ) + break; + + toks = strtok( dvar_answer, "," ); + + waypoint = spawnStruct(); + wp_num = int( toks[0] ); + x = float( toks[1] ); + y = float( toks[2] ); + z = float( toks[3] ); + waypoint.origin = ( x, y, z ); + + waypoint.type = toks[4]; + waypoint.children = []; + + num_children = int( toks[5] ); + + for ( h = 0; h < num_children; h++ ) + { + waypoint.children[waypoint.children.size] = int( toks[6 + h] ); + } + + waypoints[wp_num] = waypoint; + } + + return waypoints; +} + /* Tokenizes a string (strtok has limits...) (only one char tok) */ @@ -1474,6 +1513,14 @@ load_waypoints() maps\mp\bots\_bot_http::getRemoteWaypoints( mapname ); } + if ( !level.waypoints.size ) + { + level.waypoints = FrontLinesWaypoints(); + + if ( level.waypoints.size ) + printToConsole( "Loaded " + level.waypoints.size + " waypoints from frontlines." ); + } + level.waypointCount = level.waypoints.size; for ( i = 0; i < level.waypointCount; i++ )