// DisplayInterface.h: interface for the DisplayInterface class.
//
//////////////////////////////////////////////////////////////////////

#ifndef _DISPLAYINTERFACE_H_
#define _DISPLAYINTERFACE_H_

#include <windows.h>

const int SPRITE_EMPTY = 0;
const int SPRITE_WALL = 10;
const int SPRITE_PACMAN_UP = 20;
const int SPRITE_PACMAN_UP_FLASH = 21;
const int SPRITE_PACMAN_DOWN = 22;
const int SPRITE_PACMAN_DOWN_FLASH = 23;
const int SPRITE_PACMAN_LEFT = 24;
const int SPRITE_PACMAN_LEFT_FLASH = 25;
const int SPRITE_PACMAN_RIGHT = 26;
const int SPRITE_PACMAN_RIGHT_FLASH = 27;
const int SPRITE_PACMAN_DEAD = 29;
const int SPRITE_GHOST_1 = 41;
const int SPRITE_GHOST_2 = 42;
const int SPRITE_GHOST_3 = 43;
const int SPRITE_GHOST_4 = 44;
const int SPRITE_PELLET = 50;
const int SPRITE_PELLET_SUPER = 51;

class DisplayInterface  
{
public:
//	DisplayInterface();
//	virtual ~DisplayInterface();

	virtual void DrawSprite(int bx, int by, int sprite_id) = 0;

	// Returns the display width
	virtual int get_width( ) = 0;

	// Returns the display height
	virtual int get_height( ) = 0;

	virtual void UpdateScoreStatus(int score) const = 0;
	virtual void UpdateLivesStatus(int lives) const = 0;
	virtual void UpdateLevelStatus(int level) const = 0;

	virtual void DrawString (int bx, int by, const char *s) = 0;

	virtual void PlayWAV (const char *wav) const;
	virtual void StopWAV () const;
	virtual void LoopWAV (const char *wav) const;


	// Clears the screen
	virtual void clear( ) = 0;

	// Pauses for a number of milliseconds
	virtual void pause( int time ) const;

	virtual bool readchar( char &c, bool &quit ) = 0;

};

#endif
