SpelunkyRemake / Hud.h
Hud.h
Raw
#pragma once
#include "Texture.h"
#include "Player.h"
#include <unordered_map>

class Hud
{
public:
	Hud(const Point2f& topLeft, int totalPowerUps);
	~Hud();

	void Draw() const;

	void Update(float elapsedSec, const std::vector<Player::Info>& playersInfo, const Level::Info& levelInfo);

private:
	float m_Score;

	Texture m_Texture;

	Point2f m_ItemsBarPos;
	Point2f m_ItemsBarIconsPos;
	Point2f m_LivesTextPos;
	Point2f m_BombsTextPos;
	Point2f m_RopesTextPos;

	Point2f m_ScoreBarPos;
	Point2f m_ScoreTextPos;

	Point2f m_TimerBarPos;
	Point2f m_TimerTextPos;

	Point2f m_LevelBarPos;
	Point2f m_LevelTextPos;

	const Rectf m_ItemsBarSrc;
	const Rectf m_ItemsIconsSrc;

	const Rectf m_ScoreBarSrc;
	const Rectf m_TimerBarSrc;
	const Rectf m_LevelBarSrc;

	const std::unordered_map<char, Texture*> m_FontTextures;
	const std::unordered_map<char, Texture*> m_FontOutlineTextures;

	std::string m_LivesStr;
	std::string m_BombsStr;
	std::string m_RopesStr;

	std::string m_ScoreStr;

	std::string m_TimerStr;
	std::string m_LevelStr;

	void DrawFont(Point2f pos, const std::string& text) const;
};