/*****************************************************************************
 * $Id: eng.hh,v 1.149 2006/04/30 23:25:38 devel Exp $
 * @file
 * @author	Jim E. Brooks  http://www.jimbrooks.org
 * @brief	Main header file.
 *//*
 * LEGAL:	COPYRIGHT (C) 2004 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE (GPL).
 *****************************************************************************/

#ifndef ENG_HH
#define ENG_HH 1

#ifndef NO_PYTHON
// Kludge to suppress "_POSIX_C_SOURCE redefined" warning.
#	define SAVED_POSIX_C_SOURCE		_POSIX_C_SOURCE
#	undef _POSIX_C_SOURCE
#include <Python.h>
#	undef  _POSIX_C_SOURCE
#	define _POSIX_C_SOURCE			SAVED_POSIX_C_SOURCE
#endif

#include <stdlib.h>
#include <stdio.h>
#ifndef _WIN32
#include <unistd.h>
#endif
#include <string.h>
#include <ctype.h>
#include <math.h>

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <queue>

// STATS and DEBUG are tied together (debug and stats code reside at eng_debug).
#if DEBUG
#define STATS 1
#else
#define STATS 0
#endif

#include "gfx.hh"
#include "gfx_gfxsys.hh"
#include "gfx_os.hh"
#include "gfx_defs.hh"
#include "gfx_funcs.hh"
#include "gfx_typesig_defs.hh"
#include "gfx_typesig.hh"
#include "gfx_types.hh"
#include "gfx_math.hh"
#include "gfx_event.hh"
#include "gfx_shared_ptr.hh"
#include "gfx_shared_val.hh"
using namespace gfx;

// These header files are usually included.
#include "meta_eng.hh"
#include "eng_types.hh"
#include "eng_defs.hh"
#if GFXSYS_OPENGL
#include "eng_opengl.hh"
#else
#error
#endif
#include "eng_debug.hh"		// some of it needed for release
#include "eng_funcs.hh"
#include "eng_poly16.hh"
#include "eng_lod.hh"
#include "eng_object.hh"
#include "eng_class.hh"
#ifndef NO_PYTHON
#include "eng_python.hh"
#endif
#include "eng_globals.hh"
#include "eng_funcs2.hh"	// has functions that depend on prior declarations
#include "meta_world.hh"

#endif // ENG_HH
 
// For public release (release_palomino.sh)
#ifndef PUBLIC_RELEASE
#define PUBLIC_RELEASE 1
#endif
