This commit is contained in:
Your Name
2020-09-02 03:34:57 -06:00
parent 5930b66483
commit 7d02640dfb
3 changed files with 476 additions and 208 deletions

View File

@ -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;

View File

@ -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!!!");
}
}