mirror of
https://github.com/ineedbots/t4_bot_warfare.git
synced 2025-04-22 07:55:43 +00:00
Added csv loading waypoints
This commit is contained in:
parent
6aab8690d4
commit
cb3d5d5776
@ -861,6 +861,16 @@ cac_init_patch()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
converts a string into a float
|
||||||
|
*/
|
||||||
|
float(num)
|
||||||
|
{
|
||||||
|
setdvar("temp_dvar_bot_util", num);
|
||||||
|
|
||||||
|
return GetDvarFloat("temp_dvar_bot_util");
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Tokenizes a string (strtok has limits...) (only one char tok)
|
Tokenizes a string (strtok has limits...) (only one char tok)
|
||||||
*/
|
*/
|
||||||
@ -887,6 +897,99 @@ tokenizeLine(line, tok)
|
|||||||
return tokens;
|
return tokens;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Parses tokens into a waypoint obj
|
||||||
|
*/
|
||||||
|
parseTokensIntoWaypoint(tokens)
|
||||||
|
{
|
||||||
|
waypoint = spawnStruct();
|
||||||
|
|
||||||
|
orgStr = tokens[0];
|
||||||
|
orgToks = strtok(orgStr, " ");
|
||||||
|
waypoint.origin = (float(orgToks[0]), float(orgToks[1]), float(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 = (float(anglesToks[0]), float(anglesToks[1]), float(anglesToks[2]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return waypoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Returns an array of each line
|
||||||
|
*/
|
||||||
|
getWaypointLinesFromFile(filename)
|
||||||
|
{
|
||||||
|
result = spawnStruct();
|
||||||
|
result.lines = [];
|
||||||
|
|
||||||
|
waypointStr = fileRead(filename);
|
||||||
|
|
||||||
|
if (!isDefined(waypointStr))
|
||||||
|
return result;
|
||||||
|
|
||||||
|
line = "";
|
||||||
|
for (i=0;i<waypointStr.size;i++)
|
||||||
|
{
|
||||||
|
c = waypointStr[i];
|
||||||
|
|
||||||
|
if (c == "\n")
|
||||||
|
{
|
||||||
|
result.lines[result.lines.size] = line;
|
||||||
|
|
||||||
|
line = "";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
line += c;
|
||||||
|
}
|
||||||
|
result.lines[result.lines.size] = line;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Read from file a csv, and returns an array of waypoints
|
||||||
|
*/
|
||||||
|
readWpsFromFile(mapname)
|
||||||
|
{
|
||||||
|
waypoints = [];
|
||||||
|
filename = "waypoints/" + mapname + "_wp.csv";
|
||||||
|
|
||||||
|
res = getWaypointLinesFromFile(filename);
|
||||||
|
|
||||||
|
if (!res.lines.size)
|
||||||
|
return waypoints;
|
||||||
|
|
||||||
|
println("Attempting to read waypoints from " + filename);
|
||||||
|
|
||||||
|
waypointCount = int(res.lines[0]);
|
||||||
|
|
||||||
|
for (i = 1; i <= waypointCount; i++)
|
||||||
|
{
|
||||||
|
tokens = tokenizeLine(res.lines[i], ",");
|
||||||
|
|
||||||
|
waypoint = parseTokensIntoWaypoint(tokens);
|
||||||
|
|
||||||
|
waypoints[i-1] = waypoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
return waypoints;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Loads the waypoints. Populating everything needed for the waypoints.
|
Loads the waypoints. Populating everything needed for the waypoints.
|
||||||
*/
|
*/
|
||||||
@ -897,6 +1000,15 @@ load_waypoints()
|
|||||||
level.waypointCount = 0;
|
level.waypointCount = 0;
|
||||||
level.waypoints = [];
|
level.waypoints = [];
|
||||||
|
|
||||||
|
wps = readWpsFromFile(mapname);
|
||||||
|
|
||||||
|
if (wps.size)
|
||||||
|
{
|
||||||
|
level.waypoints = wps;
|
||||||
|
println("Loaded " + wps.size + " waypoints from file.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
switch(mapname)
|
switch(mapname)
|
||||||
{
|
{
|
||||||
case "mp_airfield":
|
case "mp_airfield":
|
||||||
@ -974,6 +1086,7 @@ load_waypoints()
|
|||||||
|
|
||||||
if (level.waypoints.size)
|
if (level.waypoints.size)
|
||||||
println("Loaded " + level.waypoints.size + " waypoints from script.");
|
println("Loaded " + level.waypoints.size + " waypoints from script.");
|
||||||
|
}
|
||||||
|
|
||||||
level.waypointCount = level.waypoints.size;
|
level.waypointCount = level.waypoints.size;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user