use filesystem func

This commit is contained in:
INeedBots 2020-12-16 12:48:07 -06:00
parent 26acc1c792
commit a7cd272b90
2 changed files with 50 additions and 19 deletions

View File

@ -73,7 +73,7 @@ getRemoteVersion()
request = httpGet( "https://raw.githubusercontent.com/ineedbots/iw4x_waypoints/master/version.txt" ); request = httpGet( "https://raw.githubusercontent.com/ineedbots/iw4x_waypoints/master/version.txt" );
if (!isDefined(request)) if (!isDefined(request))
return result; return undefined;
request waittill( "done", success, data ); request waittill( "done", success, data );

View File

@ -702,34 +702,65 @@ parseTokensIntoWaypoint(tokens)
} }
/* /*
Loads waypoints from tables (iw4x will insert csv's into the game's filesystem, no need for them to be in a ff) Returns an array of each line
*/ */
// https://github.com/leiizko/cod4x_lua_plugin/blob/master/LuaScripts/Rotu-R/waypoints.gsc getWaypointLinesFromFile(filename)
wpsFromCSV(mapname)
{ {
fileName = "waypoints/"+ toLower(mapname) + "_wp.csv"; 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;
}
/*
Loads waypoints from file
*/
readWpsFromFile(mapname)
{
waypoints = []; waypoints = [];
filename = "waypoints/" + mapname + "_wp.csv";
waypointCount = int(tableLookupByRow(fileName, 0, 0)); if (!fileExists(filename))
if (waypointCount <= 0)
return waypoints; return waypoints;
printLn( "Getting waypoints from csv: "+fileName ); 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++) for (i = 1; i <= waypointCount; i++)
{ {
tokens = []; tokens = tokenizeLine(res.lines[i], ",");
tokens[tokens.size] = tableLookupByRow(fileName, i, 0);
tokens[tokens.size] = tableLookupByRow(fileName, i, 1); waypoint = parseTokensIntoWaypoint(tokens);
tokens[tokens.size] = tableLookupByRow(fileName, i, 2);
tokens[tokens.size] = tableLookupByRow(fileName, i, 3);
tokens[tokens.size] = tableLookupByRow(fileName, i, 4);
waypoint = parseTokensIntoWaypoint(tokens);
waypoints[i-1] = waypoint; waypoints[i-1] = waypoint;
} }
return waypoints; return waypoints;
@ -745,7 +776,7 @@ load_waypoints()
mapname = getDvar("mapname"); mapname = getDvar("mapname");
wps = wpsFromCSV(mapname); wps = readWpsFromFile(mapname);
if (wps.size) if (wps.size)
{ {