mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-06-27 14:41:49 +00:00
csv
This commit is contained in:
@ -384,219 +384,277 @@ RoundUp( floatVal )
|
||||
return i;
|
||||
}
|
||||
|
||||
wpsFromCSV(mapname)
|
||||
{
|
||||
fileName = "waypoints/"+ toLower(mapname) + "_wp.csv";
|
||||
printLn( "Getting waypoints from csv: "+fileName );
|
||||
|
||||
waypoints = [];
|
||||
|
||||
waypointCount = int(tableLookupByRow(fileName, 0, 0));
|
||||
|
||||
if (waypointCount == "" || waypointCount <= 0)
|
||||
return waypoints;
|
||||
|
||||
for (i = 1; i <= waypointCount; i++)
|
||||
{
|
||||
waypoint = spawnStruct();
|
||||
|
||||
orgStr = tableLookupByRow(fileName, i, 0);
|
||||
orgToks = strtok(orgStr, " ");
|
||||
waypoint.origin = (int(orgToks[0]), int(orgToks[1]), int(orgToks[2]));
|
||||
|
||||
childStr = tableLookupByRow(fileName, i, 1);
|
||||
childToks = strtok(childStr, " ");
|
||||
waypoint.childCount = childToks.size;
|
||||
waypoint.children = [];
|
||||
for( j=0; j<childToks.size; j++ )
|
||||
waypoint.children[j] = int(childToks[j]);
|
||||
|
||||
type = tableLookupByRow(fileName, i, 2);
|
||||
waypoint.type = type;
|
||||
|
||||
anglesStr = tableLookupByRow(fileName, i, 3);
|
||||
if (anglesStr != "")
|
||||
{
|
||||
anglesToks = strtok(anglesStr, " ");
|
||||
waypoint.angles = (int(anglesToks[0]), int(anglesToks[1]), int(anglesToks[2]));
|
||||
}
|
||||
|
||||
javStr = tableLookupByRow(fileName, i, 4);
|
||||
if (javStr != "")
|
||||
{
|
||||
javToks = strtok(javStr, " ");
|
||||
waypoint.jav_point = (int(javToks[0]), int(javToks[1]), int(javToks[2]));
|
||||
}
|
||||
|
||||
waypoints[i-1] = waypoint;
|
||||
}
|
||||
|
||||
return waypoints;
|
||||
}
|
||||
|
||||
/*
|
||||
Loads the waypoints. Populating everything needed for the waypoints.
|
||||
*/
|
||||
load_waypoints()
|
||||
{
|
||||
mapname = getDvar("mapname");
|
||||
|
||||
level.waypoints = [];
|
||||
|
||||
switch(mapname)
|
||||
{
|
||||
case "mp_afghan":
|
||||
level.waypoints = maps\mp\bots\waypoints\afghan::Afghan();
|
||||
break;
|
||||
case "mp_derail":
|
||||
level.waypoints = maps\mp\bots\waypoints\derail::Derail();
|
||||
break;
|
||||
case "mp_estate":
|
||||
case "mp_estate_trop":
|
||||
case "mp_estate_tropical":
|
||||
level.waypoints = maps\mp\bots\waypoints\estate::Estate();
|
||||
break;
|
||||
case "mp_favela":
|
||||
case "mp_fav_tropical":
|
||||
level.waypoints = maps\mp\bots\waypoints\favela::Favela();
|
||||
break;
|
||||
case "mp_highrise":
|
||||
level.waypoints = maps\mp\bots\waypoints\highrise::Highrise();
|
||||
break;
|
||||
case "mp_invasion":
|
||||
level.waypoints = maps\mp\bots\waypoints\invasion::Invasion();
|
||||
break;
|
||||
case "mp_checkpoint":
|
||||
level.waypoints = maps\mp\bots\waypoints\karachi::Karachi();
|
||||
break;
|
||||
case "mp_quarry":
|
||||
level.waypoints = maps\mp\bots\waypoints\quarry::Quarry();
|
||||
break;
|
||||
case "mp_rundown":
|
||||
level.waypoints = maps\mp\bots\waypoints\rundown::Rundown();
|
||||
break;
|
||||
case "mp_rust":
|
||||
level.waypoints = maps\mp\bots\waypoints\rust::Rust();
|
||||
break;
|
||||
case "mp_boneyard":
|
||||
level.waypoints = maps\mp\bots\waypoints\scrapyard::Scrapyard();
|
||||
break;
|
||||
case "mp_nightshift":
|
||||
level.waypoints = maps\mp\bots\waypoints\skidrow::Skidrow();
|
||||
break;
|
||||
case "mp_subbase":
|
||||
level.waypoints = maps\mp\bots\waypoints\subbase::Subbase();
|
||||
break;
|
||||
case "mp_terminal":
|
||||
level.waypoints = maps\mp\bots\waypoints\terminal::Terminal();
|
||||
break;
|
||||
case "mp_underpass":
|
||||
level.waypoints = maps\mp\bots\waypoints\underpass::Underpass();
|
||||
break;
|
||||
case "mp_brecourt":
|
||||
level.waypoints = maps\mp\bots\waypoints\wasteland::Wasteland();
|
||||
break;
|
||||
|
||||
case "mp_complex":
|
||||
level.waypoints = maps\mp\bots\waypoints\bailout::Bailout();
|
||||
break;
|
||||
case "mp_crash":
|
||||
case "mp_crash_trop":
|
||||
case "mp_crash_tropical":
|
||||
level.waypoints = maps\mp\bots\waypoints\crash::Crash();
|
||||
break;
|
||||
case "mp_overgrown":
|
||||
level.waypoints = maps\mp\bots\waypoints\overgrown::Overgrown();
|
||||
break;
|
||||
case "mp_compact":
|
||||
level.waypoints = maps\mp\bots\waypoints\salvage::Salvage();
|
||||
break;
|
||||
case "mp_storm":
|
||||
case "mp_storm_spring":
|
||||
level.waypoints = maps\mp\bots\waypoints\storm::Storm();
|
||||
break;
|
||||
|
||||
case "mp_abandon":
|
||||
level.waypoints = maps\mp\bots\waypoints\carnival::Carnival();
|
||||
break;
|
||||
case "mp_fuel2":
|
||||
level.waypoints = maps\mp\bots\waypoints\fuel::Fuel();
|
||||
break;
|
||||
case "mp_strike":
|
||||
level.waypoints = maps\mp\bots\waypoints\strike::Strike();
|
||||
break;
|
||||
case "mp_trailerpark":
|
||||
level.waypoints = maps\mp\bots\waypoints\trailerPark::TrailerPark();
|
||||
break;
|
||||
case "mp_vacant":
|
||||
level.waypoints = maps\mp\bots\waypoints\vacant::Vacant();
|
||||
break;
|
||||
|
||||
case "mp_nuked":
|
||||
level.waypoints = maps\mp\bots\waypoints\nuketown::Nuketown();
|
||||
break;
|
||||
|
||||
case "mp_cross_fire":
|
||||
level.waypoints = maps\mp\bots\waypoints\crossfire::Crossfire();
|
||||
break;
|
||||
case "mp_bloc":
|
||||
case "mp_bloc_sh":
|
||||
level.waypoints = maps\mp\bots\waypoints\bloc::Bloc();
|
||||
break;
|
||||
case "mp_cargoship":
|
||||
case "mp_cargoship_sh":
|
||||
level.waypoints = maps\mp\bots\waypoints\wetwork::Wetwork();
|
||||
break;
|
||||
|
||||
case "mp_killhouse":
|
||||
level.waypoints = maps\mp\bots\waypoints\killhouse::Killhouse();
|
||||
break;
|
||||
|
||||
case "mp_bog_sh":
|
||||
level.waypoints = maps\mp\bots\waypoints\bog::Bog();
|
||||
break;
|
||||
|
||||
case "mp_firingrange":
|
||||
level.waypoints = maps\mp\bots\waypoints\firingrange::Firingrange();
|
||||
break;
|
||||
case "mp_shipment":
|
||||
level.waypoints = maps\mp\bots\waypoints\shipment::Shipment();
|
||||
break;
|
||||
case "mp_shipment_long":
|
||||
level.waypoints = maps\mp\bots\waypoints\shipmentlong::ShipmentLong();
|
||||
break;
|
||||
case "mp_rust_long":
|
||||
level.waypoints = maps\mp\bots\waypoints\rustlong::Rustlong();
|
||||
break;
|
||||
|
||||
case "invasion":
|
||||
level.waypoints = maps\mp\bots\waypoints\burgertown::Burgertown();
|
||||
break;
|
||||
case "iw4_credits":
|
||||
level.waypoints = maps\mp\bots\waypoints\testmap::Testmap();
|
||||
break;
|
||||
case "oilrig":
|
||||
level.waypoints = maps\mp\bots\waypoints\oilrig::Oilrig();
|
||||
break;
|
||||
case "co_hunted":
|
||||
level.waypoints = maps\mp\bots\waypoints\hunted::Hunted();
|
||||
break;
|
||||
case "contingency":
|
||||
level.waypoints = maps\mp\bots\waypoints\contingency::Contingency();
|
||||
break;
|
||||
case "gulag":
|
||||
level.waypoints = maps\mp\bots\waypoints\gulag::Gulag();
|
||||
break;
|
||||
case "so_ghillies":
|
||||
level.waypoints = maps\mp\bots\waypoints\pripyat::Pripyat();
|
||||
break;
|
||||
|
||||
case "airport":
|
||||
level.waypoints = maps\mp\bots\waypoints\airport::Airport();
|
||||
break;
|
||||
case "ending":
|
||||
level.waypoints = maps\mp\bots\waypoints\museum::Museum();
|
||||
break;
|
||||
case "af_chase":
|
||||
level.waypoints = maps\mp\bots\waypoints\afghanchase::AfghanChase();
|
||||
break;
|
||||
case "trainer":
|
||||
level.waypoints = maps\mp\bots\waypoints\trainer::Trainer();
|
||||
break;
|
||||
case "roadkill":
|
||||
level.waypoints = maps\mp\bots\waypoints\roadkill::Roadkill();
|
||||
break;
|
||||
case "dcemp":
|
||||
level.waypoints = maps\mp\bots\waypoints\dcemp::DCEMP();
|
||||
break;
|
||||
|
||||
case "dcburning":
|
||||
level.waypoints = maps\mp\bots\waypoints\dcburning::DCBurning();
|
||||
break;
|
||||
case "af_caves":
|
||||
level.waypoints = maps\mp\bots\waypoints\afghancaves::AfghanCaves();
|
||||
break;
|
||||
case "arcadia":
|
||||
level.waypoints = maps\mp\bots\waypoints\arcadia::Arcadia();
|
||||
break;
|
||||
case "boneyard":
|
||||
level.waypoints = maps\mp\bots\waypoints\boneyard::Boneyard();
|
||||
break;
|
||||
case "cliffhanger":
|
||||
level.waypoints = maps\mp\bots\waypoints\cliffhanger::Cliffhanger();
|
||||
break;
|
||||
case "downtown":
|
||||
level.waypoints = maps\mp\bots\waypoints\downtown::Downtown();
|
||||
break;
|
||||
case "estate":
|
||||
level.waypoints = maps\mp\bots\waypoints\estatesp::EstateSP();
|
||||
break;
|
||||
case "favela":
|
||||
level.waypoints = maps\mp\bots\waypoints\favelasp::FavelaSP();
|
||||
break;
|
||||
case "favela_escape":
|
||||
level.waypoints = maps\mp\bots\waypoints\favelaescape::FavelaEscape();
|
||||
break;
|
||||
case "so_bridge":
|
||||
level.waypoints = maps\mp\bots\waypoints\bridge::Bridge();
|
||||
break;
|
||||
case "dc_whitehouse":
|
||||
level.waypoints = maps\mp\bots\waypoints\whitehouse::Whitehouse();
|
||||
break;
|
||||
|
||||
default:
|
||||
maps\mp\bots\waypoints\_custom_map::main(mapname);
|
||||
break;
|
||||
wps = wpsFromCSV(mapname);
|
||||
|
||||
if (wps.size)
|
||||
{
|
||||
level.waypoints = wps;
|
||||
}
|
||||
else
|
||||
{
|
||||
level.waypoints = [];
|
||||
switch(mapname)
|
||||
{
|
||||
case "mp_afghan":
|
||||
level.waypoints = maps\mp\bots\waypoints\afghan::Afghan();
|
||||
break;
|
||||
case "mp_derail":
|
||||
level.waypoints = maps\mp\bots\waypoints\derail::Derail();
|
||||
break;
|
||||
case "mp_estate":
|
||||
case "mp_estate_trop":
|
||||
case "mp_estate_tropical":
|
||||
level.waypoints = maps\mp\bots\waypoints\estate::Estate();
|
||||
break;
|
||||
case "mp_favela":
|
||||
case "mp_fav_tropical":
|
||||
level.waypoints = maps\mp\bots\waypoints\favela::Favela();
|
||||
break;
|
||||
case "mp_highrise":
|
||||
level.waypoints = maps\mp\bots\waypoints\highrise::Highrise();
|
||||
break;
|
||||
case "mp_invasion":
|
||||
level.waypoints = maps\mp\bots\waypoints\invasion::Invasion();
|
||||
break;
|
||||
case "mp_checkpoint":
|
||||
level.waypoints = maps\mp\bots\waypoints\karachi::Karachi();
|
||||
break;
|
||||
case "mp_quarry":
|
||||
level.waypoints = maps\mp\bots\waypoints\quarry::Quarry();
|
||||
break;
|
||||
case "mp_rundown":
|
||||
level.waypoints = maps\mp\bots\waypoints\rundown::Rundown();
|
||||
break;
|
||||
case "mp_rust":
|
||||
level.waypoints = maps\mp\bots\waypoints\rust::Rust();
|
||||
break;
|
||||
case "mp_boneyard":
|
||||
level.waypoints = maps\mp\bots\waypoints\scrapyard::Scrapyard();
|
||||
break;
|
||||
case "mp_nightshift":
|
||||
level.waypoints = maps\mp\bots\waypoints\skidrow::Skidrow();
|
||||
break;
|
||||
case "mp_subbase":
|
||||
level.waypoints = maps\mp\bots\waypoints\subbase::Subbase();
|
||||
break;
|
||||
case "mp_terminal":
|
||||
level.waypoints = maps\mp\bots\waypoints\terminal::Terminal();
|
||||
break;
|
||||
case "mp_underpass":
|
||||
level.waypoints = maps\mp\bots\waypoints\underpass::Underpass();
|
||||
break;
|
||||
case "mp_brecourt":
|
||||
level.waypoints = maps\mp\bots\waypoints\wasteland::Wasteland();
|
||||
break;
|
||||
|
||||
case "mp_complex":
|
||||
level.waypoints = maps\mp\bots\waypoints\bailout::Bailout();
|
||||
break;
|
||||
case "mp_crash":
|
||||
case "mp_crash_trop":
|
||||
case "mp_crash_tropical":
|
||||
level.waypoints = maps\mp\bots\waypoints\crash::Crash();
|
||||
break;
|
||||
case "mp_overgrown":
|
||||
level.waypoints = maps\mp\bots\waypoints\overgrown::Overgrown();
|
||||
break;
|
||||
case "mp_compact":
|
||||
level.waypoints = maps\mp\bots\waypoints\salvage::Salvage();
|
||||
break;
|
||||
case "mp_storm":
|
||||
case "mp_storm_spring":
|
||||
level.waypoints = maps\mp\bots\waypoints\storm::Storm();
|
||||
break;
|
||||
|
||||
case "mp_abandon":
|
||||
level.waypoints = maps\mp\bots\waypoints\carnival::Carnival();
|
||||
break;
|
||||
case "mp_fuel2":
|
||||
level.waypoints = maps\mp\bots\waypoints\fuel::Fuel();
|
||||
break;
|
||||
case "mp_strike":
|
||||
level.waypoints = maps\mp\bots\waypoints\strike::Strike();
|
||||
break;
|
||||
case "mp_trailerpark":
|
||||
level.waypoints = maps\mp\bots\waypoints\trailerPark::TrailerPark();
|
||||
break;
|
||||
case "mp_vacant":
|
||||
level.waypoints = maps\mp\bots\waypoints\vacant::Vacant();
|
||||
break;
|
||||
|
||||
case "mp_nuked":
|
||||
level.waypoints = maps\mp\bots\waypoints\nuketown::Nuketown();
|
||||
break;
|
||||
|
||||
case "mp_cross_fire":
|
||||
level.waypoints = maps\mp\bots\waypoints\crossfire::Crossfire();
|
||||
break;
|
||||
case "mp_bloc":
|
||||
case "mp_bloc_sh":
|
||||
level.waypoints = maps\mp\bots\waypoints\bloc::Bloc();
|
||||
break;
|
||||
case "mp_cargoship":
|
||||
case "mp_cargoship_sh":
|
||||
level.waypoints = maps\mp\bots\waypoints\wetwork::Wetwork();
|
||||
break;
|
||||
|
||||
case "mp_killhouse":
|
||||
level.waypoints = maps\mp\bots\waypoints\killhouse::Killhouse();
|
||||
break;
|
||||
|
||||
case "mp_bog_sh":
|
||||
level.waypoints = maps\mp\bots\waypoints\bog::Bog();
|
||||
break;
|
||||
|
||||
case "mp_firingrange":
|
||||
level.waypoints = maps\mp\bots\waypoints\firingrange::Firingrange();
|
||||
break;
|
||||
case "mp_shipment":
|
||||
level.waypoints = maps\mp\bots\waypoints\shipment::Shipment();
|
||||
break;
|
||||
case "mp_shipment_long":
|
||||
level.waypoints = maps\mp\bots\waypoints\shipmentlong::ShipmentLong();
|
||||
break;
|
||||
case "mp_rust_long":
|
||||
level.waypoints = maps\mp\bots\waypoints\rustlong::Rustlong();
|
||||
break;
|
||||
|
||||
case "invasion":
|
||||
level.waypoints = maps\mp\bots\waypoints\burgertown::Burgertown();
|
||||
break;
|
||||
case "iw4_credits":
|
||||
level.waypoints = maps\mp\bots\waypoints\testmap::Testmap();
|
||||
break;
|
||||
case "oilrig":
|
||||
level.waypoints = maps\mp\bots\waypoints\oilrig::Oilrig();
|
||||
break;
|
||||
case "co_hunted":
|
||||
level.waypoints = maps\mp\bots\waypoints\hunted::Hunted();
|
||||
break;
|
||||
case "contingency":
|
||||
level.waypoints = maps\mp\bots\waypoints\contingency::Contingency();
|
||||
break;
|
||||
case "gulag":
|
||||
level.waypoints = maps\mp\bots\waypoints\gulag::Gulag();
|
||||
break;
|
||||
case "so_ghillies":
|
||||
level.waypoints = maps\mp\bots\waypoints\pripyat::Pripyat();
|
||||
break;
|
||||
|
||||
case "airport":
|
||||
level.waypoints = maps\mp\bots\waypoints\airport::Airport();
|
||||
break;
|
||||
case "ending":
|
||||
level.waypoints = maps\mp\bots\waypoints\museum::Museum();
|
||||
break;
|
||||
case "af_chase":
|
||||
level.waypoints = maps\mp\bots\waypoints\afghanchase::AfghanChase();
|
||||
break;
|
||||
case "trainer":
|
||||
level.waypoints = maps\mp\bots\waypoints\trainer::Trainer();
|
||||
break;
|
||||
case "roadkill":
|
||||
level.waypoints = maps\mp\bots\waypoints\roadkill::Roadkill();
|
||||
break;
|
||||
case "dcemp":
|
||||
level.waypoints = maps\mp\bots\waypoints\dcemp::DCEMP();
|
||||
break;
|
||||
|
||||
case "dcburning":
|
||||
level.waypoints = maps\mp\bots\waypoints\dcburning::DCBurning();
|
||||
break;
|
||||
case "af_caves":
|
||||
level.waypoints = maps\mp\bots\waypoints\afghancaves::AfghanCaves();
|
||||
break;
|
||||
case "arcadia":
|
||||
level.waypoints = maps\mp\bots\waypoints\arcadia::Arcadia();
|
||||
break;
|
||||
case "boneyard":
|
||||
level.waypoints = maps\mp\bots\waypoints\boneyard::Boneyard();
|
||||
break;
|
||||
case "cliffhanger":
|
||||
level.waypoints = maps\mp\bots\waypoints\cliffhanger::Cliffhanger();
|
||||
break;
|
||||
case "downtown":
|
||||
level.waypoints = maps\mp\bots\waypoints\downtown::Downtown();
|
||||
break;
|
||||
case "estate":
|
||||
level.waypoints = maps\mp\bots\waypoints\estatesp::EstateSP();
|
||||
break;
|
||||
case "favela":
|
||||
level.waypoints = maps\mp\bots\waypoints\favelasp::FavelaSP();
|
||||
break;
|
||||
case "favela_escape":
|
||||
level.waypoints = maps\mp\bots\waypoints\favelaescape::FavelaEscape();
|
||||
break;
|
||||
case "so_bridge":
|
||||
level.waypoints = maps\mp\bots\waypoints\bridge::Bridge();
|
||||
break;
|
||||
case "dc_whitehouse":
|
||||
level.waypoints = maps\mp\bots\waypoints\whitehouse::Whitehouse();
|
||||
break;
|
||||
|
||||
default:
|
||||
maps\mp\bots\waypoints\_custom_map::main(mapname);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
level.waypointCount = level.waypoints.size;
|
||||
|
@ -24,13 +24,13 @@ init()
|
||||
setdvar("bots_manage_fill_kick", 1);
|
||||
|
||||
if (getDvar("bots_main_debug_distance") == "")
|
||||
setDvar("bots_main_debug_distance", 500.0);
|
||||
setDvar("bots_main_debug_distance", 512.0);
|
||||
|
||||
if (getDvar("bots_main_debug_cone") == "")
|
||||
setDvar("bots_main_debug_cone", 0.65);
|
||||
|
||||
if (getDvar("bots_main_debug_minDist") == "")
|
||||
setDvar("bots_main_debug_minDist", 500.0);
|
||||
setDvar("bots_main_debug_minDist", 32.0);
|
||||
|
||||
if (getDvar("bots_main_debug_drawThrough") == "")
|
||||
setDvar("bots_main_debug_drawThrough", false);
|
||||
@ -312,6 +312,37 @@ watchSaveWaypointsCommand()
|
||||
logprint("*/waypoints["+i+"].jav_point = "+level.waypoints[i].jav_point+";\n/*");
|
||||
}
|
||||
logprint("*/return waypoints;\n}\n\n\n\n");
|
||||
|
||||
PrintLn(level.waypointCount);
|
||||
for(i = 0; i < level.waypointCount; i++)
|
||||
{
|
||||
str = "";
|
||||
wp = level.waypoints[i];
|
||||
|
||||
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
|
||||
|
||||
for(h = 0; h < wp.childCount; h++)
|
||||
{
|
||||
str += wp.children[h];
|
||||
|
||||
if (h < wp.childCount - 1)
|
||||
str += " ";
|
||||
}
|
||||
str += "," + wp.type + ",";
|
||||
|
||||
if (isDefined(wp.angles))
|
||||
str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ",";
|
||||
else
|
||||
str += ",";
|
||||
|
||||
if (isDefined(wp.jav_point))
|
||||
str += wp.jav_point[0] + " " + wp.jav_point[1] + " " + wp.jav_point[2] + ",";
|
||||
else
|
||||
str += ",";
|
||||
|
||||
PrintLn(str);
|
||||
}
|
||||
|
||||
self iprintln("Saved!!!");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user