mirror of
https://github.com/ineedbots/iw3_bot_warfare.git
synced 2025-04-23 10:45:44 +00:00
138 lines
2.5 KiB
Plaintext
138 lines
2.5 KiB
Plaintext
/*
|
|
_bot_http
|
|
Author: INeedGames
|
|
Date: 12/16/2020
|
|
The HTTP module
|
|
*/
|
|
|
|
#include maps\mp\bots\_bot_utility;
|
|
|
|
/*
|
|
Will attempt to retreive waypoints from the internet
|
|
*/
|
|
getRemoteWaypoints( mapname )
|
|
{
|
|
url = "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/" + mapname + "_wp.csv";
|
|
filename = "waypoints/" + mapname + "_wp.csv";
|
|
|
|
printToConsole( "Attempting to get remote waypoints from " + url );
|
|
res = getLinesFromUrl( url, filename );
|
|
|
|
if ( !res.lines.size )
|
|
return;
|
|
|
|
waypointCount = int( res.lines[0] );
|
|
|
|
waypoints = [];
|
|
printToConsole( "Loading remote waypoints..." );
|
|
|
|
for ( i = 1; i <= waypointCount; i++ )
|
|
{
|
|
tokens = tokenizeLine( res.lines[i], "," );
|
|
|
|
waypoint = parseTokensIntoWaypoint( tokens );
|
|
|
|
waypoints[i - 1] = waypoint;
|
|
}
|
|
|
|
if ( waypoints.size )
|
|
{
|
|
level.waypoints = waypoints;
|
|
printToConsole( "Loaded " + waypoints.size + " waypoints from remote." );
|
|
}
|
|
}
|
|
|
|
/*
|
|
Does the version check, if we are up too date
|
|
*/
|
|
doVersionCheck()
|
|
{
|
|
remoteVersion = getRemoteVersion();
|
|
|
|
if ( !isDefined( remoteVersion ) )
|
|
{
|
|
printToConsole( "Error getting remote version of Bot Warfare." );
|
|
return false;
|
|
}
|
|
|
|
if ( level.bw_VERSION != remoteVersion )
|
|
{
|
|
printToConsole( "There is a new version of Bot Warfare!" );
|
|
printToConsole( "You are on version " + level.bw_VERSION + " but " + remoteVersion + " is available!" );
|
|
return false;
|
|
}
|
|
|
|
printToConsole( "You are on the latest version of Bot Warfare!" );
|
|
return true;
|
|
}
|
|
|
|
/*
|
|
Returns the version of bot warfare found on the internet
|
|
*/
|
|
getRemoteVersion()
|
|
{
|
|
#if isSyscallDefined HTTPS_GetString
|
|
data = HTTPS_GetString( "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/version.txt" );
|
|
#else
|
|
data = undefined;
|
|
#endif
|
|
|
|
if ( !isDefined( data ) )
|
|
return undefined;
|
|
|
|
return strtok( data, "\n" )[0];
|
|
}
|
|
|
|
/*
|
|
Returns an array of each line from the response of the http url request
|
|
*/
|
|
getLinesFromUrl( url, filename )
|
|
{
|
|
result = spawnStruct();
|
|
result.lines = [];
|
|
|
|
#if isSyscallDefined HTTPS_GetString
|
|
data = HTTPS_GetString( url );
|
|
#else
|
|
data = undefined;
|
|
#endif
|
|
|
|
if ( !isDefined( data ) )
|
|
return result;
|
|
|
|
fd = FS_FOpen( filename, "write" );
|
|
|
|
line = "";
|
|
|
|
for ( i = 0; i < data.size; i++ )
|
|
{
|
|
c = data[i];
|
|
|
|
if ( c == "\n" )
|
|
{
|
|
result.lines[result.lines.size] = line;
|
|
|
|
if ( fd > 0 )
|
|
{
|
|
if ( !FS_WriteLine( fd, line ) )
|
|
{
|
|
FS_FClose( fd );
|
|
fd = 0;
|
|
}
|
|
}
|
|
|
|
line = "";
|
|
continue;
|
|
}
|
|
|
|
line += c;
|
|
}
|
|
|
|
result.lines[result.lines.size] = line;
|
|
|
|
if ( fd > 0 )
|
|
FS_FClose( fd );
|
|
|
|
return result;
|
|
}
|