Aw object data particles

From ActiveWiki
Jump to navigation Jump to search
aw_object_data_particles

Description

Defines the data structure in AW_OBJECT_DATA of a particle emmitter object.

Notes

(This is preliminary documentation and is subject to change)

// AW_OBJECT_TYPE_PARTICLES
typedef struct aw_object_data_particles {
  aw_type_vector_range  volume;           // BBox, MUST be first item in struct!
  unsigned char         version;          // structure version (set by SDK)
  aw_type_vector_range  speed;
  aw_type_vector_range  accel;
  aw_type_vector_range  angle;
  aw_type_vector_range  spin;
  aw_type_vector_range  size;
  unsigned long         release_min;      // time in ms
  unsigned long         release_max;      // time in ms
  unsigned short        release_size;     // # of particles released
  unsigned long         lifespan;         // time in ms
  unsigned long         emitter_lifespan; // time in ms
  unsigned long         fade_in;          // time in ms
  unsigned long         fade_out;         // time in ms
  unsigned long         color_start;      // COLORREF
  unsigned long         color_end;        // COLORREF
  float                 opacity;
  unsigned char         render_style;
  unsigned short        flags;            // boolean flags (interp, collide, gravity)
  unsigned char         style;
  unsigned short        asset_list_len;   // length of 1st string in str_data
  unsigned char         name_len;         // length of 2nd string in str_data
  char                  reserved[12];     // Bytes reserverd for future use
  // note: increase the strucure's total size
  // by the length of the strings
  // when allocating memory for this structure!
  // (str_data is the reference to the first byte)
  char                  str_data[1];
} aw_object_data_particles;


The total length of the data is calculated as:

len = sizeof (aw_object_data_particles) + 
      particles->asset_list_len + particles->name_len;


See also

aw_data, aw_type_vector_range, AW_OBJECT_DATA, AW_OBJECT_TYPE, AW_EVENT_OBJECT_ADD