home *** CD-ROM | disk | FTP | other *** search
- /*
- * Module: BB.Guru.c
- *
- * Aktion: Zeigt den gefürchteten Guru.
- *
- * Version:
- * 1.1 (27.01.95) Portierung nach BlitzBlank
- * 1.0 Originalimplementation für SuperDark
- *
- * Autor:
- * Dirk Farin
- * Kapellenweg 15
- * 72070 Tübingen
- * Germany
- *
- * EMail: farindk@trick.informatik.uni-stuttgart.de
- *
- * Copyright:
- * Dieses Programm ist Freeware, es darf nur
- * unentgeltlich und unverändert kopiert werden.
- */
-
- #define __USE_SYSBASE 1
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include <dos.h>
- #include <dos/dos.h>
- #include <exec/memory.h>
- #include <intuition/intuitionbase.h>
- #include <intuition/screens.h>
- #include <intuition/intuition.h>
- #include <proto/exec.h>
- #include <proto/intuition.h>
- #include <proto/graphics.h>
- #include <proto/dos.h>
- #include <blitzblank_pragmas.h>
- #include <BlitzBlank.h>
-
- struct Library *BlitzBlankBase;
-
- char *VersionString="$VER: BB.Guru 1.1 (27.01.95)";
-
-
- #define TXTBASE 430
-
- #define TXT_INFO 0
-
- char *text[]={ "\33c\33uGuru\33n\n\nVersion 1.1\n\nCopyright 1995\nby\nDirk Farin"
- };
-
- char* StandardGuru[2] = { "Software failure. Press left mouse button to continue.",
- "Error: 8000 0002 Task: 07D829E0" };
-
- int BlinkDelay = 50; // Wartezeit zwischen den Blinkphasen
-
- char* txt[2]; // Verweis auf den Text des Gurus
-
- struct TextFont* topaz80;
- struct TextAttr topaz80attr = { "topaz.font",8,NULL,NULL };
-
- struct BB_Object object[]={ {NULL,BB_Dummy,0,0,0,NULL,NULL} };
-
- struct BB_Message message;
-
- struct BB_Screeninfo *screeninfo;
-
- struct Screen* scr;
- struct RastPort* rp;
- struct ViewPort* vp;
-
- int ytxtstart[2] = { 15,30 }; // Y-Baseline-Position der beiden Textzeilen
-
-
- //----------------------
- void blank (void)
- //----------------------
- {
- int guruon=FALSE; // ob Guru gerade an oder aus ist.
- int i;
- struct Window* nomousehandle;
-
-
-
- // Texte auswählen
-
- txt[0] = StandardGuru[0];
- txt[1] = StandardGuru[1];
-
-
- // Bildschirm und Zeichensatz öffnen und initialisieren
-
- scr=OpenScreenTags(NULL,
- SA_Width ,640,
- SA_Height, 40,
- SA_Depth,2,
- SA_DisplayID, HIRES_KEY,
- SA_Behind,TRUE,
- SA_Quiet,TRUE,TAG_DONE);
-
- if (!scr) goto cleanexit;
-
- nomousehandle = BBL_BlankMouse( scr,0 );
-
- vp = &scr->ViewPort;
- rp = &scr->RastPort;
-
- SetRGB4(vp,0,0,0,0);
- SetRGB4(vp,1,0,0,0);
- SetRGB4(vp,2,15,0,0);
-
- topaz80 = OpenFont(&topaz80attr);
- if (!topaz80) goto cleanexit;
-
- SetFont(rp,topaz80);
-
-
- // Rahmen malen
-
- SetAPen(rp,1);
- RectFill(rp,0,0,scr->Width-1,scr->Height-1);
-
- SetAPen(rp,0);
- RectFill(rp,5,3,scr->Width-6,scr->Height-4);
-
-
- // Text (zentriert) schreiben
-
- SetAPen(rp,2);
-
- for (i=0;i<2;i++)
- {
- int xpos;
-
- xpos = scr->Width - TextLength(rp,txt[i],strlen(txt[i]));
- xpos /= 2;
-
- Move(rp,xpos,ytxtstart[i]);
- Text(rp,txt[i],strlen(txt[i]));
- }
-
-
-
- // Blankerschleife: Rahmen blinken
-
- if (!CheckSignal (SIGBREAKF_CTRL_C))
- {
- screeninfo->bbscreen=scr;
- ScreenToFront(scr);
- BBL_ModuleRunning ();
-
- do
- {
- Delay(BlinkDelay);
- if (guruon) { guruon=FALSE; SetRGB4(vp,1, 0,0,0); }
- else { guruon=TRUE; SetRGB4(vp,1,15,0,0); }
- }
- while (!CheckSignal (SIGBREAKF_CTRL_C));
- }
-
- cleanexit:
- if (topaz80) CloseFont(topaz80);
- if (scr) { BBL_UnBlankMouse(nomousehandle);
- CloseScreen(scr);
- }
- return;
- }
-
-
- //-----------------------------------
- void main(int argc,char **argv)
- //-----------------------------------
- {
- if (!(BlitzBlankBase=OpenLibrary ("blitzblank.library",BLITZBLANKLIB_VER)))
- exit (0);
-
- message.flags=BBF_NoScreen;
- message.first=&object[0];
-
-
- if (strcmp (argv[1],"BLANK")==0)
- {
- StrToLong (argv[3],(long *) &screeninfo);
- BBL_SendMessage (&message,argv[2]);
- blank ();
- BBL_BlankDone ();
- }
- else
- {
- message.infotext=BBL_GetString (TXT_INFO+TXTBASE,text[TXT_INFO]);
-
- if (strcmp (argv[1],"CONFIG")==0)
- {
- BBL_SendMessage (&message,argv[2]);
- }
- else
- {
- message.first=NULL;
- BBL_SendMessage (&message,argv[2]);
- }
- }
- CloseLibrary (BlitzBlankBase);
- exit (0);
- }
-
-
-