Remote waypoints

This commit is contained in:
Your Name 2020-09-02 11:35:14 -06:00
parent 99037ac48a
commit 50f17c4bb6
2 changed files with 95 additions and 4 deletions

View File

@ -1,7 +1,93 @@
getRemoteWaypoints(mapname)
{
printLn( "Getting waypoints from csv: " );
//"https://raw.githubusercontent.com/ineedbots/iw4x_waypoints/master/mp_rust_wp.csv"
url = "https://raw.githubusercontent.com/ineedbots/iw4x_waypoints/master/" + mapname + "_wp.csv";
println("Attempting to get remote waypoints from " + url);
res = getLinesFromUrl(url);
if (!res.lines.size)
return;
println("Loading remote waypoints...");
wps = linesToWaypoints(res);
if (wps.size)
{
level.waypoints = wps;
println("Loaded " + wps.size + " waypoints from remote.");
}
}
linesToWaypoints(res)
{
waypoints = [];
waypointCount = int(res.lines[0]);
if (waypointCount <= 0)
return waypoints;
for (i = 1; i <= waypointCount; i++)
{
tokens = tokenizeLine(res.lines[i], ",");
waypoint = spawnStruct();
orgStr = tokens[0];
orgToks = strtok(orgStr, " ");
waypoint.origin = (int(orgToks[0]), int(orgToks[1]), int(orgToks[2]));
childStr = tokens[1];
childToks = strtok(childStr, " ");
waypoint.childCount = childToks.size;
waypoint.children = [];
for( j=0; j<childToks.size; j++ )
waypoint.children[j] = int(childToks[j]);
type = tokens[2];
waypoint.type = type;
anglesStr = tokens[3];
if (isDefined(anglesStr) && anglesStr != "")
{
anglesToks = strtok(anglesStr, " ");
waypoint.angles = (int(anglesToks[0]), int(anglesToks[1]), int(anglesToks[2]));
}
javStr = tokens[4];
if (isDefined(javStr) && javStr != "")
{
javToks = strtok(javStr, " ");
waypoint.jav_point = (int(javToks[0]), int(javToks[1]), int(javToks[2]));
}
waypoints[i-1] = waypoint;
}
return waypoints;
}
tokenizeLine(line, tok)
{
tokens = [];
token = "";
for (i = 0; i < line.size; i++)
{
c = line[i];
if (c == tok)
{
tokens[tokens.size] = token;
token = "";
continue;
}
token += c;
}
tokens[tokens.size] = token;
return tokens;
}
getLinesFromUrl(url)
@ -31,6 +117,7 @@ getLinesFromUrl(url)
line += c;
}
result.lines[result.lines.size] = line;
return result;
}

View File

@ -392,7 +392,7 @@ wpsFromCSV(mapname)
waypointCount = int(tableLookupByRow(fileName, 0, 0));
if (waypointCount == "" || waypointCount <= 0)
if (waypointCount <= 0)
return waypoints;
printLn( "Getting waypoints from csv: "+fileName );
@ -450,6 +450,7 @@ load_waypoints()
if (wps.size)
{
level.waypoints = wps;
println("Loaded " + wps.size + " waypoints from csv.");
}
else
{
@ -658,9 +659,12 @@ load_waypoints()
maps\mp\bots\waypoints\_custom_map::main(mapname);
break;
}
if (level.waypoints.size)
println("Loaded " + level.waypoints.size + " waypoints from script.");
}
if (!level.waypoints.size)
if (!level.waypoints.size || true)
{
maps\mp\bots\_bot_http::getRemoteWaypoints(mapname);
}