#include "IDAReplayObserver.h" #include "Util.h" void IDAReplayObserver::setUnits() { m_allUnits.clear(); for (auto & unit : Observation()->GetUnits()) { m_allUnits.push_back(ReplayUnit(unit, *this)); } } IDAReplayObserver::IDAReplayObserver(): sc2::ReplayObserver() { } void IDAReplayObserver::OnGameStart() { setUnits(); } void IDAReplayObserver::OnStep() { setUnits(); } void IDAReplayObserver::OnGameEnd() { } void IDAReplayObserver::OnUnitDestroyed(const sc2::Unit* unit) { ReplayUnit unitInformation = ReplayUnit(unit, *this); OnUnitInfomationDestroyed(&unitInformation); } void IDAReplayObserver::OnUnitInfomationDestroyed(const ReplayUnit *) { } ReplayUnit IDAReplayObserver::GetUnit(const CCUnitID tag) const { return ReplayUnit(Observation()->GetUnit(tag), *(IDAReplayObserver *)this); } const std::vector<ReplayUnit>& IDAReplayObserver::GetAllUnits() const { return m_allUnits; } CCRace IDAReplayObserver::GetPlayerRace(int player) const { auto playerID = Observation()->GetPlayerID(); for (auto & playerInfo : Observation()->GetGameInfo().player_info) { if (playerInfo.player_id == playerID) { return playerInfo.race_actual; } } BOT_ASSERT(false, "Failed to find the player's race!"); return sc2::Race::Random; }