Skip to content
Snippets Groups Projects
IDAReplayObserver.cpp 1.25 KiB
Newer Older
Rojikku98's avatar
Rojikku98 committed
#include "IDAReplayObserver.h"
Rojikku98's avatar
Rojikku98 committed
#include "Util.h"

void IDAReplayObserver::setUnits()
{
	m_allUnits.clear();
	for (auto & unit : Observation()->GetUnits())
	{
Rojikku98's avatar
Rojikku98 committed
		m_allUnits.push_back(ReplayUnit(unit, *this));
Rojikku98's avatar
Rojikku98 committed
	}
}

IDAReplayObserver::IDAReplayObserver():
	sc2::ReplayObserver()
{
}

void IDAReplayObserver::OnGameStart()
{
	setUnits();
}

void IDAReplayObserver::OnStep()
{
	setUnits();
Rojikku98's avatar
Rojikku98 committed
}

void IDAReplayObserver::OnGameEnd()
{
}
Rojikku98's avatar
Rojikku98 committed

void IDAReplayObserver::OnUnitDestroyed(const sc2::Unit* unit)
{
Rojikku98's avatar
Rojikku98 committed
	ReplayUnit unitInformation = ReplayUnit(unit, *this);
	OnUnitInfomationDestroyed(&unitInformation);
}

Rojikku98's avatar
Rojikku98 committed
void IDAReplayObserver::OnUnitInfomationDestroyed(const ReplayUnit *)
{
}

Rojikku98's avatar
Rojikku98 committed
ReplayUnit IDAReplayObserver::GetUnit(const CCUnitID tag) const
Rojikku98's avatar
Rojikku98 committed
	return ReplayUnit(Observation()->GetUnit(tag), *(IDAReplayObserver *)this);
Rojikku98's avatar
Rojikku98 committed
}

Rojikku98's avatar
Rojikku98 committed
const std::vector<ReplayUnit>& IDAReplayObserver::GetAllUnits() const
Rojikku98's avatar
Rojikku98 committed
{
Rojikku98's avatar
Rojikku98 committed

Rojikku98's avatar
Rojikku98 committed
	return m_allUnits;
}

Rojikku98's avatar
Rojikku98 committed
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;
}

Rojikku98's avatar
Rojikku98 committed