Skip to content
Snippets Groups Projects
IDAReplayObserver.cpp 1.25 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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