/* dhelp.c */
#include <libraries/reqbase.h>
#include <proto/req.h>

extern struct RastPort *PlayRastPort;
extern struct Window *PlayWindow;

static struct ReqLib *ReqBase = NULL;

struct helptext {
   int x,y;
   char *t;
};

static struct  helptext hpt[] = {
   { 10,  15, "GOLF 12.10.92 by gum"},
   { 10,  60, "Spielidee:"},
   { 10,  69, "Alle Karten der oberen 7 Stapel sollen"},
   { 10,  78, "auf den rechten unteren Stapel (Ab-"},
   { 10,  87, "lagestapel) abgelegt werden."},
   { 10,  96, "Auf die oberste Karte des Ablagesta-"},
   { 10, 105, "pels dürfen Karten, die um eins höher"},
   { 10, 114, "oder niedriger sind abgelegt werden."},
   { 10, 123, "Also auf eine 7 eine 6 oder 8."},
   { 10, 132, "Nur auf einen König darf nichts mehr"},
   { 10, 141, "gelegt werden."},
   { -1,  -1, ""}
};

static struct  helptext aboutT[] = {
   { 10,  15, "GOLF 12.10.92 by gum"},
   {  9,  33, "habe ich aus dem Windows-Entertainment-"},
   { 10,  42, "Pack abgeguckt"},
   { 10,  60, "Danke an:"},
   { 10,  69, "Colin Fox und Bruce Dawson für"},
   { 10,  78, "die Requester-Library"},
   { 10,  87, "und Michael Hartmann für die"},
   { 10,  96, "Images der Spielkarten."},
   { 10, 123, "Dieses Spiel ist Public Domain!"},
   { -1,  -1, ""}
};

void displayHelp(int n)
{
   int i;
   struct helptext *ht;
   
   ht = (n)? aboutT : hpt;
   SetAPen(PlayRastPort,0);
   RectFill(PlayRastPort,0,12,320,149);
   SetAPen(PlayRastPort,1);
   for (i=0;ht[i].x >= 0;i++) {
      Move(PlayRastPort,ht[i].x,ht[i].y+4);
      Text(PlayRastPort,ht[i].t,strlen(ht[i].t));
   }
   warteMausclick();
   SetAPen(PlayRastPort,0);
   RectFill(PlayRastPort,0,11,320,149);
   DrawAllCards();
}

int showPalette(int f)
{
   struct Process	*myprocess;
   APTR	olderrorwindow;
   
	if (!(ReqBase = (struct ReqLib *)OpenLibrary("req.library", 0L))) return(-1);
	myprocess = (struct Process *)FindTask((char *)0);
	olderrorwindow = myprocess->pr_WindowPtr;
	myprocess->pr_WindowPtr = (APTR)PlayWindow;
   /* für die Req-Lib */
   f = ColorRequester((LONG)f);
   /* das war der eigentliche Aufruf */
   myprocess->pr_WindowPtr = olderrorwindow;
   CloseLibrary((struct Library *)ReqBase);
   return(f);
}
