From e132326a98c92219602ff2ee2d6c261c9cd36fcc Mon Sep 17 00:00:00 2001 From: Rojikku98 <be.edvin@gmail.com> Date: Mon, 27 Jul 2020 16:29:12 +0200 Subject: [PATCH] Added player info --- python-api-src/library.cpp | 10 ++++++++++ src/IDAReplayObserver.cpp | 22 +++++++++++----------- src/IDAReplayObserver.h | 4 +++- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/python-api-src/library.cpp b/python-api-src/library.cpp index 29d5c9653..a7459c8a1 100644 --- a/python-api-src/library.cpp +++ b/python-api-src/library.cpp @@ -100,8 +100,18 @@ PYBIND11_MODULE(library, m) .def("on_game_end", &IDAReplayObserver::OnGameEnd) .def("get_all_units", &IDAReplayObserver::GetAllUnits, "Returns a list of all units") .def("get_player_race", &IDAReplayObserver::GetPlayerRace,"player_id"_a) + .def("get_replay_path", &IDAReplayObserver::GetReplayPath) + .def("get_result_for_player", &IDAReplayObserver::GetResultForPlayer, "player_id"_a) ; + + + py::enum_<sc2::GameResult>(m, "GameResult") + .value("Win", sc2::GameResult::Win) + .value("Loss", sc2::GameResult::Loss) + .value("Tie", sc2::GameResult::Tie) + .value("Undecided", sc2::GameResult::Undecided); + py::class_<sc2::PlayerSetup>(m, "PlayerSetup"); py::enum_<sc2::Difficulty>(m, "Difficulty") diff --git a/src/IDAReplayObserver.cpp b/src/IDAReplayObserver.cpp index 491818b30..d2b5c61cf 100644 --- a/src/IDAReplayObserver.cpp +++ b/src/IDAReplayObserver.cpp @@ -57,19 +57,19 @@ const std::vector<ReplayUnit>& IDAReplayObserver::GetAllUnits() const return m_allUnits; } -CCRace IDAReplayObserver::GetPlayerRace(int player) const +CCRace IDAReplayObserver::GetPlayerRace(int player) +{ + return ReplayControl()->GetReplayInfo().players[player].race; +} + +std::string IDAReplayObserver::GetReplayPath() { - auto playerID = Observation()->GetPlayerID(); - for (auto & playerInfo : Observation()->GetGameInfo().player_info) - { - if (playerInfo.player_id == playerID) - { - return playerInfo.race_actual; - } - } + return ReplayControl()->GetReplayInfo().replay_path; +} - BOT_ASSERT(false, "Failed to find the player's race!"); - return sc2::Race::Random; +sc2::GameResult IDAReplayObserver::GetResultForPlayer(int player) +{ + return ReplayControl()->GetReplayInfo().players[player].game_result; } diff --git a/src/IDAReplayObserver.h b/src/IDAReplayObserver.h index d340fb1af..8791b180e 100644 --- a/src/IDAReplayObserver.h +++ b/src/IDAReplayObserver.h @@ -25,7 +25,9 @@ public: ReplayUnit GetUnit(const CCUnitID tag) const; const std::vector<ReplayUnit> & GetAllUnits() const; - CCRace GetPlayerRace(int player) const; + CCRace GetPlayerRace(int player); + std::string GetReplayPath(); + sc2::GameResult GetResultForPlayer(int player); }; -- GitLab