/* :ts=8 * stars.c: An attmept to fight boredom (yet again). * by Leo L. Schwab 8606.30 */ #include #include #define NSTARS 64 extern void *OpenLibrary(), *OpenScreen(), *OpenWindow(), *GetMsg(); extern short rnd(); long *IntuitionBase, *GfxBase; struct NewScreen scrdef = { 0, 0, 320, 200, 4, /* # planes */ -1, -1, NULL, CUSTOMSCREEN, NULL, NULL, NULL, NULL }; struct NewWindow windef = { 0, 0, 320, 200, -1, -1, CLOSEWINDOW, WINDOWCLOSE, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, CUSTOMSCREEN }; struct Window *win; struct Screen *scr; struct RastPort *rp; short x[NSTARS], y[NSTARS], z[NSTARS]; short xo[NSTARS], yo[NSTARS]; main (ac, av) char *av[]; int ac; { long xs, ys; long *msg; short magic; register short i, inc; if (ac > 1) magic = atoi (av[1]); else magic = 256; if (ac > 2) inc = atoi (av[2]); else inc = 3; openstuff (); rnd (-5286); SetRast (rp, 0L); for (xs=0; xs<16; xs++) SetRGB4 (&(scr -> ViewPort), xs, xs, xs, xs); for (i=0; i 319 || ys < 0 || ys > 199) mkpoint (i); else { SetAPen (rp, (long) (256-z[i] >> 4)); WritePixel (rp, xs, ys); xo[i] = xs; yo[i] = ys; } } if (msg = GetMsg (win -> UserPort)) { ReplyMsg (msg); break; } } closestuff (); } mkpoint (i) register short i; { x[i] = rnd (256) - 128; y[i] = rnd (150) - 75; z[i] = 255; } openstuff () { if (!(IntuitionBase = OpenLibrary ("intuition.library", 0L))) { printf ("Intuition open failed.\n"); die (); } if (!(GfxBase = OpenLibrary ("graphics.library", 0L))) { printf ("graphics open failed.\n"); die (); } if (!(scr = OpenScreen (&scrdef))) { printf ("Can't open screen.\n"); die (); } windef.Screen = scr; if (!(win = OpenWindow (&windef))) { printf ("Window painted shut.\n"); die (); } rp = &(scr -> RastPort); } closestuff () { if (win) CloseWindow (win); if (scr) CloseScreen (scr); if (GfxBase) CloseLibrary (GfxBase); if (IntuitionBase) CloseLibrary (IntuitionBase); } die () { closestuff (); exit (-1); }