naev 0.10.4
Data Structures | Macros | Functions | Variables
damagetype.c File Reference

Handles damage types. More...

#include "damagetype.h"
#include "array.h"
#include "log.h"
#include "ndata.h"
#include "nxml.h"
#include "pause.h"
#include "pilot.h"
#include "rng.h"
#include "shipstats.h"

Go to the source code of this file.

Data Structures

struct  DTYPE
 A damage type. More...
 

Macros

#define DTYPE_XML_ID   "dtype"
 
#define MELEMENT(o, s)    if (o) WARN(_("DTYPE '%s' invalid '"s"' element"), temp->name)
 

Functions

static int DTYPE_parse (DTYPE *temp, const char *file)
 Parses an XML file containing a DTYPE. More...
 
static void DTYPE_free (DTYPE *damtype)
 Frees a DTYPE. More...
 
static DTYPEdtype_validType (int type)
 Gets the damage type. More...
 
int dtype_get (const char *name)
 Gets the id of a dtype based on name. More...
 
const char * dtype_damageTypeToStr (int type)
 Gets the human readable string from damage type. More...
 
int dtype_load (void)
 Loads the dtype stack. More...
 
void dtype_free (void)
 Frees the dtype stack. More...
 
int dtype_raw (int type, double *shield, double *armour, double *knockback)
 Gets the raw modulation stats of a damage type. More...
 
void dtype_calcDamage (double *dshield, double *darmour, double absorb, double *knockback, const Damage *dmg, const ShipStats *s)
 Gives the real shield damage, armour damage and knockback modifier. More...
 

Variables

static DTYPEdtype_types = NULL
 

Detailed Description

Handles damage types.

Definition in file damagetype.c.

Macro Definition Documentation

◆ DTYPE_XML_ID

#define DTYPE_XML_ID   "dtype"

XML Document tag.

Definition at line 27 of file damagetype.c.

Function Documentation

◆ dtype_calcDamage()

void dtype_calcDamage ( double *  dshield,
double *  darmour,
double  absorb,
double *  knockback,
const Damage dmg,
const ShipStats s 
)

Gives the real shield damage, armour damage and knockback modifier.

Parameters
[out]dshieldReal shield damage.
[out]darmourReal armour damage.
[out]knockbackKnockback modifier.
[in]absorbAbsorption value.
[in]dmgDamage information.
[in]sShip stats to use.

Definition at line 257 of file damagetype.c.

◆ dtype_damageTypeToStr()

const char * dtype_damageTypeToStr ( int  type)

Gets the human readable string from damage type.

Definition at line 168 of file damagetype.c.

◆ DTYPE_free()

static void DTYPE_free ( DTYPE damtype)
static

Frees a DTYPE.

Parameters
damtypeDTYPE to free.

Definition at line 132 of file damagetype.c.

◆ dtype_free()

void dtype_free ( void  )

Frees the dtype stack.

Definition at line 215 of file damagetype.c.

◆ dtype_get()

int dtype_get ( const char *  name)

Gets the id of a dtype based on name.

Parameters
nameName to match.
Returns
ID of the damage type or -1 on error.

Definition at line 144 of file damagetype.c.

◆ dtype_load()

int dtype_load ( void  )

Loads the dtype stack.

Returns
0 on success.

Definition at line 181 of file damagetype.c.

◆ DTYPE_parse()

static int DTYPE_parse ( DTYPE temp,
const char *  file 
)
static

Parses an XML file containing a DTYPE.

Parameters
tempAddress to load DTYPE into.
fileFile to parse.
Returns
0 on success.

< Define to help check for data errors.

Definition at line 59 of file damagetype.c.

◆ dtype_raw()

int dtype_raw ( int  type,
double *  shield,
double *  armour,
double *  knockback 
)

Gets the raw modulation stats of a damage type.

Parameters
typeType to get stats of.
[out]shieldShield damage modulator.
[out]armourArmour damage modulator.
[out]knockbackKnockback modulator.
Returns
0 on success.

Definition at line 233 of file damagetype.c.

◆ dtype_validType()

static DTYPE * dtype_validType ( int  type)
static

Gets the damage type.

Definition at line 156 of file damagetype.c.

Variable Documentation

◆ dtype_types

DTYPE* dtype_types = NULL
static

Total damage types.

Definition at line 43 of file damagetype.c.