/*->h.wos */


#define MAXI 12


#define INFO      1
#define SAVEFILE0 2
#define CONF      3
#define DRAWW     4
#define SELECTCOL 5
#define MAPSIZE   6
#define SATSIZE   7
#define ZOOM      8
#define CITYCOL   9
#define GRIDCOL   10
#define COORDS    11

#define CODE -1
#define DRAW    0xAFF
#define SPRITE  0xFF9


/************ File structure ***********************/ 

typedef struct
{
  int  object;
  int  length;
  int  load;
  int  exec;
  int  acc;
  int  type;
  char name[12];
} fstat;


extern wimp_eventstr wimpevent,wimpfirst;
extern int           icon;
extern int           ewindow;
extern int           buttons;
extern int           mousex,mousey,mhandle,micon;
extern int           x0,x1,y0,y1,bx,by,bhandle,scx,scy,wflags;
extern int           ix0,ix1,iy0,iy1;
extern int           chandle,cicon;
extern int           ox0,ox1,oy0,oy1;

extern int           draghandle;
extern int           dragtype;

extern void seti(int,int,int,int);
extern void select(int,int);
extern void deselect(int,int);
extern void shadeicon(int window,int icon);
extern void unshadeicon(int window,int icon);
extern void shadeicon2(int window,int icon);
extern void unshadeicon2(int window,int icon);
extern void shadeiconst(int window,int icon,int state);
extern void makemenust(int window,int icon,int state);
extern void makemenuicon(int window,int icon);
extern void unmakemenuicon(int window,int icon);
extern void writeableicon(int window,int icon);
extern void unwriteableicon(int window,int icon);
extern void setspa(int window,int icon,int len,char * name);
extern void setindirect(int window,int icon,int len,char * string);

extern void getpointer(void);
extern void getw(int);
extern void geti(int,int);
extern void dragicon(int mx,int my,int w,int i);
extern void geto(int);
extern char * iconaddr(int,int);

extern void caret(int,int,int,int,int,int);
extern void iecarrot(int,int);
extern void incarrot(int,int);
extern void setfocus(int handle);
extern void findcaret(void);
extern void writeicon(int,int,char *);
extern void writeiconf(int window,int icon,char * format, ...);
extern void radioon(int,int);
extern void radiooff(int,int);
extern void radiost(int window,int icon,int state);
extern void opton(int,int);
extern void optoff(int,int);
extern void optst(int window,int icon,int state);

extern int  confirm(char * string, ...);
extern int  doconfirm;

extern void conficon(void);
extern void confkey(int * key);

extern void centerwindow(wimp_wstate * wst,int handle,int i);
extern void popup(int handle,int i);
extern void popupc(int tag);
extern void menuwindow(int handle);
extern void openatscroll(int handle,int scx,int scy);
extern void clipwindow(wimp_openstr * wopen,int andscroll);

extern int  getcolnumber(int pal);
extern void seteorcol(int back,int front);
extern void seteorcolpal(int back,int front);
extern void setgcolour(int wcol,int eor);
extern int  setgcol(int pal);
extern int  setoppgcol(int pal);
extern os_error *selecttable(int sourcemode, int *sourcepal, int destmode,
                      int *destpal, char *transtab);

extern void errorbox(char *);
extern void messagebox(char * message);
extern void fatalerror(char *);
extern void report(os_error * e);

extern void closedown(int handle);
extern void closedownt(int tag);
extern int  createwindowsub(int tag,char * title);
extern int  createwindow(int tag);
extern int  whandle[MAXI];
extern wimp_wind * windpoi[MAXI];
extern void reopenw(int handle);
extern void open(int handle,int x0,int y0,int x1,int y1,int scx,int scy,
                                                                 int behind);
extern void extent(int handle,int x0,int y0,int x1,int y1);


extern void getdeltas(int mode,int * dx,int * dy);
extern void getcurdeltas(int * dx,int * dy);
extern void getbpp(int mode,int * rln2bpp,int * bitmask);

extern void vdumodevars(void);
extern void starttask(void);
extern void seticonbar(void);
extern void sethearsayicon(int which);
extern void loadsprites(void);
extern void loadtemps(void);
extern void writetitle(int tag,char * title);



extern int  screenx;
extern int  screeny;
extern int  deltax;
extern int  deltay;
extern int  maskx;
extern int  masky;
extern int  lndeltax;
extern int  lndeltay;
extern int  ncolours;
extern int  gcharsizex;
extern int  gcharsizey;
extern int  gcharspacex;
extern int  gcharspacey;
extern int  ln2bpp;

extern int  taskhandle;
extern int  iconbaricon;

extern void zapmenu(void);
extern char sprites[];

extern os_error * oscli(char * string);
extern void fx(int a,int x,int y);


extern int cstrcmp(char * first,char * second);
extern void setftype(char * filename,int type);
extern char * leaf(char *);


extern int        filetype(int load);
extern os_error * stat(char * name,fstat * f);
extern int        fexists(char * name);
extern os_error * createfile(char * name,int length,int type);
extern int filelength(char * filename);
extern char * kerror(void);

extern void startscan(void);
extern int  nextitem(char * dirname,fstat * f,char * wild);

extern void setmouse(int x,int y);
extern void refreshwindowtitle(int handle);
extern void refreshwindow(int handle);
extern void forward(int handle);

extern int hscrlbar;
extern int vscrlbar;

extern int  timeout;
extern int  monotonic(void);


extern void hourglassoff(void);
extern void hourglasson(void);

extern void savesignals(void);
extern void dprintf(int line,char * format, ...);



extern void dragasprite(int w,int i);
extern void dragaspritestop(void);

extern void setosversions(void);
               
