naev 0.10.4
Macros | Functions | Variables
effect.c File Reference

Handles pilot effects. More...

#include "effect.h"
#include "array.h"
#include "conf.h"
#include "log.h"
#include "nxml.h"
#include "ndata.h"
#include "gui.h"
#include "nlua_pilot.h"

Go to the source code of this file.

Macros

#define MELEMENT(o, s)   if (o) WARN( _("Effect '%s' missing/invalid '%s' element"), efx->name, s)
 

Functions

static int effect_cmp (const void *p1, const void *p2)
 Compares effects based on name. More...
 
static int effect_cmpTimer (const void *p1, const void *p2)
 Compares effects based on timer. More...
 
static int effect_parse (EffectData *efx, const char *file)
 Parsess an effect. More...
 
int effect_load (void)
 Loads all the effects. More...
 
void effect_exit (void)
 Gets rid of all the effects. More...
 
const EffectDataeffect_get (const char *name)
 Gets an effect by name. More...
 
int effect_update (Effect **efxlist, double dt)
 Updates an effect list. More...
 
int effect_add (Effect **efxlist, const EffectData *efx, double duration, double scale, unsigned int parent)
 Adds an effect to an effect list. More...
 
int effect_rm (Effect **efxlist, const EffectData *efx, int all)
 Removes an effect from an effect list. More...
 
void effect_clear (Effect **efxlist)
 Clears an effect list, removing all active effects. More...
 
void effect_compute (ShipStats *s, const Effect *efxlist)
 Updates shipstats from effect list. More...
 
void effect_cleanup (Effect *efxlist)
 Cleans up an effect list freeing it. More...
 

Variables

static EffectDataeffect_list = NULL
 

Detailed Description

Handles pilot effects.

Definition in file effect.c.

Function Documentation

◆ effect_add()

int effect_add ( Effect **  efxlist,
const EffectData efx,
double  duration,
double  scale,
unsigned int  parent 
)

Adds an effect to an effect list.

Parameters
efxlistList of effects.
efxEffect to add.
durationDuration of the effect or set to negative for default.
scaleScaling effect.
parentPilot the effect is being added to.
Returns
0 on success.

Definition at line 277 of file effect.c.

◆ effect_cleanup()

void effect_cleanup ( Effect efxlist)

Cleans up an effect list freeing it.

Parameters
efxlistList to free.

Definition at line 423 of file effect.c.

◆ effect_clear()

void effect_clear ( Effect **  efxlist)

Clears an effect list, removing all active effects.

Parameters
efxlistList of effects.

Definition at line 387 of file effect.c.

◆ effect_cmp()

static int effect_cmp ( const void *  p1,
const void *  p2 
)
static

Compares effects based on name.

Definition at line 28 of file effect.c.

◆ effect_cmpTimer()

static int effect_cmpTimer ( const void *  p1,
const void *  p2 
)
static

Compares effects based on timer.

Definition at line 38 of file effect.c.

◆ effect_compute()

void effect_compute ( ShipStats s,
const Effect efxlist 
)

Updates shipstats from effect list.

Parameters
sStats to update.
efxlistList of effects.

Definition at line 410 of file effect.c.

◆ effect_exit()

void effect_exit ( void  )

Gets rid of all the effects.

Definition at line 202 of file effect.c.

◆ effect_get()

const EffectData * effect_get ( const char *  name)

Gets an effect by name.

Parameters
nameName of the base effect to get.
Returns
The base effect or NULL if not applicable.

Definition at line 222 of file effect.c.

◆ effect_load()

int effect_load ( void  )

Loads all the effects.

Returns
0 on success

Definition at line 168 of file effect.c.

◆ effect_parse()

static int effect_parse ( EffectData efx,
const char *  file 
)
static

Parsess an effect.

< Define to help check for data errors.

Definition at line 48 of file effect.c.

◆ effect_rm()

int effect_rm ( Effect **  efxlist,
const EffectData efx,
int  all 
)

Removes an effect from an effect list.

Parameters
efxlistList of effects.
efxEffect to remove.
allWhether or not to remove all instances.
Returns
Number of instances removed.

Definition at line 358 of file effect.c.

◆ effect_update()

int effect_update ( Effect **  efxlist,
double  dt 
)

Updates an effect list.

Parameters
efxlistThe effect list.
dtThe time update.
Returns
The number of effects that ended or changed.

Definition at line 238 of file effect.c.

Variable Documentation

◆ effect_list

EffectData* effect_list = NULL
static

Definition at line 23 of file effect.c.