/*****************************************************************************
 * $Id: mod_base.hh,v 1.1 2006/11/24 21:56:57 devel Exp $
 * @file
 * @author	Jim E. Brooks  http://www.jimbrooks.org
 * @brief	Module base classes.
 *//*
 * LEGAL:	COPYRIGHT (C) 2004 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE (GPL).
 *****************************************************************************/

#if COMPILING_MODULE
#ifndef MOD_BASE_HH
#define MOD_BASE_HH 1

#include "mod_base_defs.hh"
#include "gfx.hh"
#include "gfx_config_file.hh"
using namespace gfx;
#include "input_queue.hh"
using namespace gfxInput;
#include "eng.hh"
#include "eng_dyna.hh"
#include "mod_base_config.hh"
#include "mod_base_craft.hh"
#include "mod_base_joystick.hh"
#include "mod_base_debug.hh"		// some of it needed for release
#include "mod_base_stats.hh"

/// Type signatures.
enum
{
	TYPESIG_CRAFT = TYPESIG_AFTER_ENGINE,
	// Following modules should start with this.
	TYPESIG_AFTER_MODULE_BASE,
};

// Animation enums.
// Let other modules add eAnimation enums.
#undef  eAnimation
#define eAnimation int
enum //eAnimation
{
	eAnimation_EXPLOSION = eAnimation_AFTER_DYNA_ENUMS,

	// Pilot modes:
	eAnimation_PILOT_TERRAIN_FOLLOW,
	eAnimation_PILOT_PURSUE,

	// Derived Modules should start their enums from this.
	eAnimation_AFTER_MODULE_BASE_ENUMS
};

////////////////////////////////////////////////////////////////////////////////
/// @brief Team class.
class Team
{
	PREVENT_COPYING(Team)
public:
	Team( void ) { }
	std::list<Craft*>	mPlayerList;
	std::list<Team*>	mAllyList;
};

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