
/*->h.cross */

extern int maxx;
extern int maxy;

extern int saveupper;

extern void crossboot(void);
extern void crossopenup(void);

extern void gridredraw(wimp_redrawstr * redrawstr,int more);
extern void solredraw(wimp_redrawstr * redrawstr,int more);

extern void opencross(wimp_openstr * openstr);
extern void closecross(void);

extern void crossicon(void);
extern void cross2icon(void);
extern void cross3icon(void);

extern void cross2key(int * key);

extern void setsize(int x,int y);

extern int  saveasgrid(char * filename);
extern int  saveasdraw(char * filename);
extern int  saveclues(char * filename);

extern int  loadgridopen(char * filename);
extern int  loadgrid(char * filename);


extern void cross2zero(void);


extern void reflectvert(void);
extern void reflecthoriz(void);
extern void reflectdiag1(void);
extern void reflectdiag2(void);
extern void clear_screen(void);
extern void clear_words(void);

extern void savedefaultgrid(void);
extern void loaddefaultgrid(void);

extern void addsolution(int s,int word);


typedef struct cluestruct
{
 int  x;                     /* coords of clue                     */
 int  y;
 int  dcdata;                /* location in dictionary of solution */
 char down;                  /* does it run down ?                 */
 char len;                   /* length of text                     */
} cluestruct;


#define MAXCLUE 128

extern cluestruct cluestr[MAXCLUE];      /* big list of things to solve */

extern void fillinstring(int clue,char * string);
extern void gridgetstring(int clue,char * string);

extern int solwidth;

extern int nextclue(char * string,int clue);

extern char loadname[256];

