#ifndef _DEFINES_H_
#define _DEFINES_H_

// Class includes
#include "list.h"
#include "character.h"
#include "interpret.h"

#define MAX_STRING 4096
#define VERSION	   "0.11"

#define PLAYER_DIR "../player/"
#define WORLD_DIR "../world/"

//
// Loop Shortcuts 
//
#define CLOOP_START for (int count = 1; count <= c_list.listLength(); count++) { c_list.listRetrieve(count, ch);
#define CLOOP_END c_list.listReplace(count, ch); }

//
// Global declarations
//
extern List < Character > c_list;
extern List < BaseInterpret * >i_list;
extern bool running;

//
// Global functions
//

// In handle.cpp
void handleActions();

// In helper.cpp
void writeChar(Character & d, string buf);
string stripCarriageReturn(string str);
char makeLower(char c);
char makeUpper(char c);
string argument(string str, int n);

//
// Macro Functions
//
#define LOAD_INTERPRET(A) iClassBasePtr = new A; i_list.listInsert(1, iClassBasePtr);

#endif				// _DEFINES_H_