/*
 * Everyone should use .h file for the WordGameInterface.
 *
 *    written by J Dean Brock, Nov 2010
 *
 */

#ifndef _WORDGAMEINTERFACE_H
#define _WORDGAMEINTERFACE_H

/*
 * Initialize the Word Game Interface
 * Return an empty WordGame cast as an opaque pointer
 */
void *CreateWGI(void) ;

/*
 * Add a word to the WordList for key.
 * opaqP is the opaque pointer to the WordGame
 * key is the word class to be replaced, that is the "variable"
 *   between the *'s -- as in "cat" for *cat*
 * word is a word to be added to key's class, that is the
 *   words that can be substituted for *cat*
 * This routine will be called when reading the "map" file.
 */
int AddWordToKeyWGI(void *opaqP, const char *word, const char *key) ;

/*
 * Lookup the next work for a key.
 * opaqP is the opaque pointer to the WordGame
 * key is the word class to be replaced, that is the "variable"
 *   between the *'s -- as in "cat" for *cat*
 * The returned value is the next word in the list.
 * Return NULL is there is no list for the key.
 * This routine will be called when processing the "input" file.
 */
const char * LookupNextWordWGI(void *opaqP, const char *key) ;

#endif

