#pragma once

struct IDirect3DDevice8;



class CGameState
{

  public:

    int                     m_ButtonUnderMouse;

    bool                    m_ButtonReleased;


    CGameState();
    virtual ~CGameState();


    virtual void            Display( IDirect3DDevice8* pDevice ) = 0;

    virtual void            UpdateFrame( const float fElapsedTime ) = 0;

    virtual void            OnChar( int iChar )
    {
    }

    virtual void            OnKeyDown( int iChar )
    {
    }

    virtual void            OnMouse( int iX, int iY, int iButtons )
    {
    }

    virtual void            OnMouseWheel( int Delta )
    {
    }

    bool                    HandleButton( int iX, int iY, int iButtons, int X, int Y, int W, int H, int Button );

};
