#pragma once #include <deque> #include <limits> #include "Common.h" #include "ReplayUnit.h" class ReplayUnit; class IDAReplayObserver : public sc2::ReplayObserver { void setUnits(); std::vector<ReplayUnit> m_allUnits; public: IDAReplayObserver(); void OnGameStart() override; void OnStep() override; 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*); ReplayUnit GetUnit(const CCUnitID tag) const; const std::vector<ReplayUnit> & GetAllUnits() const; CCRace GetPlayerRace(int player); std::string GetReplayPath(); sc2::GameResult GetResultForPlayer(int player); };