From bf2f7d2c58afaaf6a6295778a77dcbad7a848013 Mon Sep 17 00:00:00 2001 From: GabrielTofvesson <gabriel.tofvesson@gmail.com> Date: Mon, 10 Dec 2018 20:41:44 +0100 Subject: [PATCH] Added search count to building placer (default is 1000: same as it was before) --- python-api-src/lib_building_placer.cpp | 2 +- src/BuildingPlacer.cpp | 4 ++-- src/BuildingPlacer.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/python-api-src/lib_building_placer.cpp b/python-api-src/lib_building_placer.cpp index 6cb1b3e..b925c74 100644 --- a/python-api-src/lib_building_placer.cpp +++ b/python-api-src/lib_building_placer.cpp @@ -7,7 +7,7 @@ void define_building_placer(py::module & m) py::class_<BuildingPlacer>(m, "BuildingPlacer") .def("can_build_here", &BuildingPlacer::canBuildHere, "x"_a, "y"_a, "unit_type"_a) .def("can_build_here_with_spaces", &BuildingPlacer::canBuildHereWithSpace, "x"_a, "y"_a, "unit_type"_a, "build_distance"_a) - .def("get_build_location_near", &BuildingPlacer::getBuildLocationNear, "point2di"_a, "unit_type"_a, "build_distance"_a = 2) + .def("get_build_location_near", &BuildingPlacer::getBuildLocationNear, "point2di"_a, "unit_type"_a, "build_distance"_a = 2, "search_count"_a = 1000) .def("reserve_tiles", &BuildingPlacer::reserveTiles, "x"_a, "y"_a, "width"_a, "height"_a) .def("free_tiles", &BuildingPlacer::freeTiles, "x"_a, "y"_a, "width"_a, "height"_a); } \ No newline at end of file diff --git a/src/BuildingPlacer.cpp b/src/BuildingPlacer.cpp index c3d1432..3369845 100644 --- a/src/BuildingPlacer.cpp +++ b/src/BuildingPlacer.cpp @@ -95,7 +95,7 @@ bool BuildingPlacer::canBuildHereWithSpace(int bx, int by, const UnitType & type return true; } -CCTilePosition BuildingPlacer::getBuildLocationNear(const CCTilePosition & p, const UnitType & t, int buildDist) const +CCTilePosition BuildingPlacer::getBuildLocationNear(const CCTilePosition & p, const UnitType & t, int buildDist, int search_count) const { //Timer t; //t.start(); @@ -106,7 +106,7 @@ CCTilePosition BuildingPlacer::getBuildLocationNear(const CCTilePosition & p, co //double ms1 = t.getElapsedTimeInMilliSec(); // iterate through the list until we've found a suitable location - for (size_t i(0); i < closestToBuilding.size() && i < 1000; ++i) + for (size_t i(0); i < closestToBuilding.size() && (i < 0 or i < search_count); ++i) { auto & pos = closestToBuilding[i]; diff --git a/src/BuildingPlacer.h b/src/BuildingPlacer.h index 7e762b5..ce4c960 100644 --- a/src/BuildingPlacer.h +++ b/src/BuildingPlacer.h @@ -29,7 +29,7 @@ public: bool canBuildHereWithSpace(int bx, int by, const UnitType & type, int buildDist) const; // returns a build location near a building's desired location - CCTilePosition getBuildLocationNear(const CCTilePosition & p, const UnitType & type, int buildDist) const; + CCTilePosition getBuildLocationNear(const CCTilePosition & p, const UnitType & type, int buildDist, int search_count) const; void drawReservedTiles(); -- GitLab