Skip to content
Snippets Groups Projects
IDAReplayObserver.h 1.19 KiB
Newer Older
  • Learn to ignore specific revisions
  • Rojikku98's avatar
    Rojikku98 committed
    #pragma once
    
    #include <deque>
    #include <limits>
    
    #include "Common.h"
    
    Rojikku98's avatar
    Rojikku98 committed
    #include "ReplayUnit.h"
    
    Edvin Bergström's avatar
    Edvin Bergström committed
    #include "TechTree.h"
    
    
    Rojikku98's avatar
    Rojikku98 committed
    class ReplayUnit;
    
    Rojikku98's avatar
    Rojikku98 committed
    
    class IDAReplayObserver : public sc2::ReplayObserver
    {
    	void setUnits();
    
    Rojikku98's avatar
    Rojikku98 committed
    	std::vector<ReplayUnit>       m_allUnits;
    
    Edvin Bergström's avatar
    Edvin Bergström committed
    	std::set<CCUnitID>         m_allUnitsID;
    
    Edvin Bergström's avatar
    Edvin Bergström committed
    	TechTree                m_techTree;
    
    
    
    Rojikku98's avatar
    Rojikku98 committed
    
    public:
    	IDAReplayObserver();
    
    Rojikku98's avatar
    Rojikku98 committed
    	void OnGameStart() override;
    	void OnStep() override;
    
    Rojikku98's avatar
    Rojikku98 committed
    	void OnGameEnd() override;
    
    	void OnUnitDestroyed(const sc2::Unit*) override;
    
    	virtual void OnReplayUnitDestroyed(const ReplayUnit*);
    	void OnUnitCreated(const sc2::Unit*);
    	virtual void OnReplayUnitCreated(const ReplayUnit*);
    	void OnBuildingConstructionComplete(const sc2::Unit*);
    
    Rojikku98's avatar
    Rojikku98 committed
    	ReplayUnit GetUnit(const CCUnitID tag) const;
    
    Edvin Bergström's avatar
    Edvin Bergström committed
    	bool UnitExists(const CCUnitID tag) const;
    
    Edvin Bergström's avatar
    Edvin Bergström committed
    
    
    Rojikku98's avatar
    Rojikku98 committed
    	const std::vector<ReplayUnit> & GetAllUnits() const;
    
    Rojikku98's avatar
    Rojikku98 committed
    	CCRace GetPlayerRace(int player);
    	std::string GetReplayPath();
    	sc2::GameResult GetResultForPlayer(int player);
    
    Edvin Bergström's avatar
    Edvin Bergström committed
    	const TechTree & GetTechTree() const;
    
    	const TypeData & Data(const UnitType & type) const;
    	const TypeData & Data(const CCUpgrade & type) const;
    	const TypeData & Data(const MetaType & type) const;
    	const TypeData & Data(const Unit & unit) const;