/***** All content © 2010 DigiPen (USA) Corporation, all rights reserved. ****/
/*! \file PluginInterface.h
** \author Nathan Williams
** \par email: nwilliam\@digipen.edu
** \date 04/05/2010
** \brief Common interface for all DIDCGAF plugins.
*******************************************************************************/
#ifndef DP_PLUGIN_INTERFACE_H
#define DP_PLUGIN_INTERFACE_H
/* Plugin functions must have undecorated names and cdecl calling convention. */
#ifdef __cplusplus
extern "C" {
#endif
/******************************************************************************/
/* BEGIN API 0.1 */
/******************************************************************************/
int Init(void);
void Shutdown(void);
const char* Name(void);
const char* Author(void);
const char* Type(void);
const char* Version(void);
const char* APIVersion(void);
int NumberOfPlayers(void);
void* CreateGame(void);
int SetGameOption(void* game, const char* option);
int AddPlayer(void* game, void* player);
int RemovePlayer(void* game, void* player);
void* GetPlayer(void* game, int playerNumber);
int GetPlayerNumber(void* game, void* player);
int PlayerCount(void* game);
int StartGame(void* game);
void* GetNextPlayer(void* game);
int ValidateMove(void* game, void* player, const char* move);
int GetGameStatus(void* game);
void DestroyGame(void* game);
/******************************************************************************/
/* END API 0.1 */
/******************************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* DP_PLUGIN_INTERFACE_H */