Skip to content
Snippets Groups Projects
IDAReplayObserver.h 888 B
Newer Older
Rojikku98's avatar
Rojikku98 committed
#pragma once

#include <deque>
#include <limits>

#include "Common.h"

#include "MapTools.h"
#include "BaseLocationManager.h"
#include "UnitInfoManager.h"
#include "BuildingPlacer.h"
#include "TechTree.h"
#include "TechTreeImproved.h"
#include "MetaType.h"
#include "Unit.h"

class IDAReplayObserver : public sc2::ReplayObserver
{
	MapTools                m_map;
	BaseLocationManager     m_bases;
	UnitInfoManager         m_unitInfo;
	TechTree                m_techTree;
	BuildingPlacer          m_buildingPlacer;

	std::vector<Unit>       m_allUnits;
	std::vector<CCPosition> m_baseLocations;

	void setUnits();
	void OnError(const std::vector<sc2::ClientError> & client_errors,
		const std::vector<std::string> & protocol_errors = {}) override;

public:
	IDAReplayObserver();

	void OnGameStart() override;
	void OnStep() override;

	const std::vector<Unit> & GetAllUnits() const;

};