From http://www.jwz.org/xscreensaver/xscreensaver-5.37.tar.gz
[xscreensaver] / hacks / lightning.c
index f8342f20f583109ad710e8704302d5c29997e048..1f5d70234231f58477f9181371d55d47e0980dc1 100644 (file)
@@ -28,22 +28,21 @@ static const char sccsid[] = "@(#)lightning.c       5.00 2000/11/01 xlockmore";
  */
 
 #ifdef STANDALONE
-#define MODE_lightning
-#define PROGCLASS "Lightning"
-#define HACK_INIT init_lightning
-#define HACK_DRAW draw_lightning
-#define lightning_opts xlockmore_opts
-#define DEFAULTS "*delay: 10000 \n" \
-                 "*ncolors: 64  \n"
-#define BRIGHT_COLORS
-#include "xlockmore.h"         /* in xscreensaver distribution */
+# define MODE_lightning
+# define DEFAULTS "*delay: 10000 \n" \
+                  "*ncolors: 64  \n"
+
+# define BRIGHT_COLORS
+# define reshape_lightning 0
+# define lightning_handle_event 0
+# include "xlockmore.h"                /* in xscreensaver distribution */
 #else /* STANDALONE */
-#include "xlock.h"             /* in xlockmore distribution */
+# include "xlock.h"            /* in xlockmore distribution */
 #endif /* STANDALONE */
 
 #ifdef MODE_lightning
 
-ModeSpecOpt lightning_opts =
+ENTRYPOINT ModeSpecOpt lightning_opts =
 {0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL};
 
 #ifdef USE_MODULES
@@ -514,16 +513,12 @@ wiggle_line(XPoint * p, int number, int amount)
 
 /*------------------------------------------------------------------------*/
 
-void
-init_lightning(ModeInfo * mi)
+ENTRYPOINT void
+init_lightning (ModeInfo * mi)
 {
        Storm      *st;
 
-       if (Helga == NULL) {
-               if ((Helga = (Storm *) calloc(MI_NUM_SCREENS(mi),
-                                             sizeof (Storm))) == NULL)
-                       return;
-       }
+       MI_INIT (mi, Helga, 0);
        st = &Helga[MI_SCREEN(mi)];
 
        st->scr_width = MI_WIDTH(mi);
@@ -536,8 +531,8 @@ init_lightning(ModeInfo * mi)
 
 /*------------------------------------------------------------------------*/
 
-void
-draw_lightning(ModeInfo * mi)
+ENTRYPOINT void
+draw_lightning (ModeInfo * mi)
 {
        int         i;
        Storm      *st;
@@ -594,7 +589,7 @@ draw_lightning(ModeInfo * mi)
        }
 }
 
-void
+ENTRYPOINT void
 release_lightning(ModeInfo * mi)
 {
        if (Helga != NULL) {
@@ -603,10 +598,13 @@ release_lightning(ModeInfo * mi)
        }
 }
 
-void
+ENTRYPOINT void
 refresh_lightning(ModeInfo * mi)
 {
        /* Do nothing, it will refresh by itself */
 }
 
+XSCREENSAVER_MODULE ("Lightning", lightning)
+
+
 #endif /* MODE_lightning */