
//

//CConsole.h


/*******************************************************
//
//	Name: CConsole.h
//
//	Author: Dave Ratti
//
//	Date:6-09-01
//
//	Modified: Constantly
//
//	Notes: The console. sweet eh?
//
//
//
//
//
*********************************************************/

#ifndef CCONSOLE_H_
#define CCONSOLE_H_

#include "stringc.h"
#include "CGraphicSystem.h"
#include "Assert.h"
#include "CImage.h"
#include "CCommand.h"


#include <list>

using namespace std;

typedef list<STRINGC> StringList;
typedef StringList::iterator StringListIterator;

///////////////////////////////////////////////

#define g_Console CConsole::GetSingleton()
#define println( exp ) g_Console.AddMessage(exp)


class CConsole: public Singleton <CConsole>
{

public:

	CConsole(){ Clear(); }
	~CConsole(){ }
	void Clear();
	bool Init();

	void Draw();
	void Activate();
	void Update();
	void AddMessage(STRINGC msg);
	void AddMessage(STRINGC msg, int lvl);

	CCommand ActivateCommand;
	int DebugLevel;

	void setY(int _y){y = _y; }


protected:

	CImage* Image;
	int x,y,yv;
	int MaxY;
	int Speed;

	void drawText();
	StringList Strings;


};



#endif