From cb5375586144f6ed9cb3d9007dc571b74931dd32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Bergstr=C3=B6m?= <davbe125@student.liu.se> Date: Fri, 24 Aug 2018 14:24:08 +0200 Subject: [PATCH] Add ability to manually specify the path for the SC2 binary --- python-api-src/library.cpp | 1 + python-api-src/library.h | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/python-api-src/library.cpp b/python-api-src/library.cpp index efa1fe9..1ce12d9 100644 --- a/python-api-src/library.cpp +++ b/python-api-src/library.cpp @@ -19,6 +19,7 @@ PYBIND11_MODULE(library, m) py::class_<Coordinator>(m, "Coordinator") .def(py::init()) + .def(py::init<std::string>()) .def("set_participants", &sc2::Coordinator::SetParticipants, "participants"_a) .def("launch_starcraft", &sc2::Coordinator::LaunchStarcraft) .def("start_game", &sc2::Coordinator::StartGame, "map_path"_a) diff --git a/python-api-src/library.h b/python-api-src/library.h index ec250c5..fb671e1 100644 --- a/python-api-src/library.h +++ b/python-api-src/library.h @@ -14,12 +14,26 @@ using namespace pybind11::literals; class Coordinator : public sc2::Coordinator { public: - // TODO: We might not always want default value when we run on Linux Coordinator() : sc2::Coordinator() { - char *argv[] = { "executable", NULL}; - int argc = sizeof(argv) / sizeof(char*) - 1; - LoadSettings(argc, argv); + std::vector<std::string> arguments = { "pycommandcenter" }; + CustomLoadSettings(arguments); + } + + Coordinator(std::string path) : sc2::Coordinator() + { + std::vector<std::string> arguments = { "pycommandcenter", "-e", path }; + CustomLoadSettings(arguments); + } + + void CustomLoadSettings(std::vector<std::string> arguments) + { + std::vector<char*> argv; + for (const auto& arg : arguments) + argv.push_back((char*)arg.data()); + argv.push_back(nullptr); + LoadSettings(argv.size() - 1, argv.data()); + } }; -- GitLab