#ifndef _CCOURT_HPP_
#define _CCOURT_HPP_

/*** SDL Header Files ***/
#include <SDL.h>

/*** TrooperEngine DLL Header Files ***/
#include "TrooperEngine.hpp"

/*** Custom Header Files ***/
#include "cBall.hpp"
#include "cPaddle.hpp"

namespace Equipment {
	class cCourt : public VideoEngine::cSprite
	{
	public:
		cCourt( cBall* ball = nullptr, cPaddle* player1 = nullptr, cPaddle* player2 = nullptr, VideoEngine::cImage** image = nullptr );
		~cCourt();

		///Functions
		void CheckCollision();
		void Quit();

		const bool isPause() const;
		void Pause();

		void Reset();
		
	private:		
		void CheckPaddles();

		void CheckWall(const MathEngine::Vector4& wall);
		void CheckWalls();

		const bool CheckOffCourt(const MathEngine::Vector4& offside);
		void CheckOffCourt();

	private:
		MathEngine::Vector4 m_topWall;
		MathEngine::Vector4 m_bottomWall;

		MathEngine::Vector4 m_leftOff;
		MathEngine::Vector4 m_rightOff;

		MathEngine::Vector4 m_court;

		cBall* mp_ball;// = nullptr;
		cPaddle* mp_player[2];// = nullptr;
		//cPaddle* mp_player2;// = nullptr;

		bool m_pause;// = false
	};/// END CLASS DEFINITION cCourt
}/// END NAMESPACE DEFINITION Equipment
#endif/// END IFNDEF _CCOURT_HPP_