#pragma once
#include <string>

struct file {
	unsigned char* file;
	unsigned int len;
	const char* suffix;
};

class Steam
{
public:
	static Steam* Get();

	bool StartSteam();
	bool IsSteamRunning();
	bool KillSteam();
	const std::string& GetSteamPath() const;

	file gameoverlayui();
	file gameoverlayui64();
	file GameOverlayRenderer();
	file GameOverlayRenderer64();

	bool ReplaceOverlayFiles();
private:
	Steam();
	~Steam();
	Steam(const Steam&) = delete;
	Steam& operator=(const Steam&) = delete;

	bool IsProcessRunning(const wchar_t* exeName) const;
	bool TerminateProcessByName(const wchar_t* exeName) const;

	mutable std::string m_SteamPath;

};