title: incompatible types when initializing type
body: <p>I don't see why this error is coming up. Maybe someone else sees it.</p>
  
  <p>Here's the error.</p>
  
  <pre><code>actor_plazma.c:92: error: incompatible types when initializing type ‘int (*)(struct VisObject *)’ using type ‘float’
  actor_plazma.c:92: error: incompatible types when initializing type ‘void *’ using type ‘float’
  make: *** [actor_plazma.lo] Error 1
  </code></pre>
  
  <p>Here's the related code.</p>
  
  <pre><code>#define VISUAL_PARAM_LIST_ENTRY_FLOAT(name, val, lim)       { name, VISUAL_PARAM_ENTRY_TYPE_FLOAT, 0, val, lim }
  
  
  #define VISUAL_PARAM_LIMIT_FLOAT(min, max)          { VISUAL_PARAM_ENTRY_LIMIT_TYPE_FLOAT, 0, min, 0, 0, max, 0 }
  
  typedef enum {
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_NULL,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_INTEGER,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_FLOAT,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_DOUBLE,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_END
  } VisParamEntryLimitType;
  
  static VisParamEntryProxy params[] = {
      VISUAL_PARAM_LIST_ENTRY_INTEGER ("bass sensitivity",    0,  VISUAL_PARAM_LIMIT_NONE),
      VISUAL_PARAM_LIST_ENTRY_INTEGER ("plazma effect",   TRUE,   VISUAL_PARAM_LIMIT_BOOLEAN),
      VISUAL_PARAM_LIST_ENTRY_INTEGER ("3d effect option",    FALSE,  VISUAL_PARAM_LIMIT_BOOLEAN),
      VISUAL_PARAM_LIST_ENTRY_INTEGER ("lines",       TRUE,   VISUAL_PARAM_LIMIT_BOOLEAN),
      VISUAL_PARAM_LIST_ENTRY_INTEGER ("spectrum",        TRUE,   VISUAL_PARAM_LIMIT_BOOLEAN),
      VISUAL_PARAM_LIST_ENTRY_INTEGER ("3d effect",       TRUE,   VISUAL_PARAM_LIMIT_BOOLEAN),
      VISUAL_PARAM_LIST_ENTRY_FLOAT   ("rotation speed",  0.4,    VISUAL_PARAM_LIMIT_FLOAT(0.0f, 1000.0f)), // line 92
      VISUAL_PARAM_LIST_END
  };
  </code></pre>
  
  <p>Edit: Oops, didn't include everything:</p>
  
  <pre><code>typedef enum {
      VISUAL_PARAM_ENTRY_TYPE_NULL,       /**&lt; No parameter. */
      VISUAL_PARAM_ENTRY_TYPE_STRING,     /**&lt; String parameter. */
      VISUAL_PARAM_ENTRY_TYPE_INTEGER,    /**&lt; Integer parameter. */
      VISUAL_PARAM_ENTRY_TYPE_FLOAT,      /**&lt; Floating point parameter. */
      VISUAL_PARAM_ENTRY_TYPE_DOUBLE,     /**&lt; Double floating point parameter. */
      VISUAL_PARAM_ENTRY_TYPE_COLOR,      /**&lt; VisColor parameter. */
      VISUAL_PARAM_ENTRY_TYPE_PALETTE,    /**&lt; VisPalette parameter. */
      VISUAL_PARAM_ENTRY_TYPE_OBJECT,     /**&lt; VisObject parameter. */
      VISUAL_PARAM_ENTRY_TYPE_END     /**&lt; List end, and used as terminator for VisParamEntry lists. */
  } VisParamEntryType;
  
  typedef enum {
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_NULL,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_INTEGER,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_FLOAT,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_DOUBLE,
      VISUAL_PARAM_ENTRY_LIMIT_TYPE_END
  } VisParamEntryLimitType;
  
  struct _VisParamEntryLimitProxy {
      VisParamEntryLimitType  type;
  
      struct {
          int      integer;       /**&lt; Integer data. */
          float        floating;      /**&lt; Floating point data. */
          double       doubleflt;     /**&lt; Double floating point data. */
      } min;
  
      struct {
          int      integer;       /**&lt; Integer data. */
          float        floating;      /**&lt; Floating point data. */
          double       doubleflt;     /**&lt; Double floating point data. */
      } max;
  };
  
  struct _VisParamEntryProxy {
      const char      *name;
  
      VisParamEntryType    type;
  
      char            *string;
      double           value;
  
      VisColor         color;
  
      VisParamEntryLimitProxy  limit;
  };
  </code></pre>