naev 0.12.5
event.c File Reference

Handles internal events. More...

#include "event.h"
#include "array.h"
#include "cond.h"
#include "conf.h"
#include "hook.h"
#include "land.h"
#include "log.h"
#include "ndata.h"
#include "nlua.h"
#include "nlua_bkg.h"
#include "nlua_camera.h"
#include "nlua_evt.h"
#include "nlua_hook.h"
#include "nlua_music.h"
#include "nlua_tex.h"
#include "nlua_tk.h"
#include "npc.h"
#include "nxml.h"
#include "nxml_lua.h"
#include "player.h"
#include "rng.h"
Include dependency graph for event.c:

Go to the source code of this file.

Data Structures

struct  EventData
 Event data structure. More...

Macros

#define XML_EVENT_ID   "Events"
#define XML_EVENT_TAG   "event"
#define EVENT_FLAG_UNIQUE   ( 1 << 0 )
#define MELEMENT(o, s)

Functions

static unsigned int event_genID (void)
 Generates a new event ID.
static int event_cmp (const void *a, const void *b)
static int event_parseFile (const char *file, EventData *temp)
 Parses an event file.
static int event_parseXML (EventData *temp, const xmlNodePtr parent)
 Loads up an event from an XML node.
static void event_freeData (EventData *event)
 Frees an EventData structure.
static int event_create (int dataid, unsigned int *id)
 Creates an event.
int events_saveActive (xmlTextWriterPtr writer)
 Saves the player's active events.
int events_loadActive (xmlNodePtr parent)
 Loads the player's active events from a save.
static int events_parseActive (xmlNodePtr parent)
 Parses the actual individual event nodes.
Event_tevent_get (unsigned int eventid)
 Gets an event.
int event_start (const char *name, unsigned int *id)
 Starts an event.
const char * event_getData (unsigned int eventid)
 Gets the name of the event data.
int event_isUnique (unsigned int eventid)
 Checks to see if an event is unique.
static void event_cleanup (Event_t *ev)
 Cleans up an event.
void event_remove (unsigned int eventid)
 Removes an event by ID.
int event_save (unsigned int eventid)
 Checks to see if an event should be saved.
int event_alreadyRunning (int data)
 Check to see if an event is already running.
void events_trigger (EventTrigger_t trigger)
 Runs all the events matching a trigger.
int events_load (void)
 Loads all the events.
void events_cleanup (void)
 Cleans up and removes active events.
void events_exit (void)
 Exits the event subsystem.
int event_dataID (const char *evdata)
 Gets the event data id from name.
const char * event_dataName (int dataid)
 Gets the event data name from id.
void event_activateClaims (void)
 Activates all the active event claims.
int event_testClaims (unsigned int eventid, int sys)
 Tests to see if an event has claimed a system.
void event_checkValidity (void)
 Checks the event validity and cleans up after them.
int event_reload (const char *name)
void event_toLuaTable (lua_State *L, int eventid)

Variables

static EventDataevent_data = NULL
static unsigned int event_genid = 0
static Event_tevent_active = NULL

Detailed Description

Handles internal events.

Events are a lot like events except the player has no control over when or how they happen. They can simple do something simple or actually lead up to and open an entire set of events.

Definition in file event.c.

Macro Definition Documentation

◆ EVENT_FLAG_UNIQUE

#define EVENT_FLAG_UNIQUE   ( 1 << 0 )

Unique event.

Definition at line 48 of file event.c.

◆ MELEMENT

#define MELEMENT ( o,
s )
Value:
if ( o ) \
WARN( _( "Event '%s' missing/invalid '%s' element" ), temp->name, s )

◆ XML_EVENT_ID

#define XML_EVENT_ID   "Events"

XML document identifier

Definition at line 45 of file event.c.

◆ XML_EVENT_TAG

#define XML_EVENT_TAG   "event"

XML event tag.

Definition at line 46 of file event.c.

Function Documentation

◆ event_activateClaims()

void event_activateClaims ( void )

Activates all the active event claims.

Definition at line 789 of file event.c.

◆ event_alreadyRunning()

int event_alreadyRunning ( int data)

Check to see if an event is already running.

Parameters
dataID of data event to check if is already running.

Definition at line 302 of file event.c.

◆ event_checkValidity()

void event_checkValidity ( void )

Checks the event validity and cleans up after them.

Definition at line 814 of file event.c.

◆ event_cleanup()

void event_cleanup ( Event_t * ev)
static

Cleans up an event.

Parameters
evEvent to clean up.

Definition at line 247 of file event.c.

◆ event_cmp()

int event_cmp ( const void * a,
const void * b )
static

Definition at line 550 of file event.c.

◆ event_create()

int event_create ( int dataid,
unsigned int * id )
static

Creates an event.

Parameters
dataidData to base event off of.
idID to use (0 to generate).
Returns
0 on success.

Definition at line 186 of file event.c.

◆ event_dataID()

int event_dataID ( const char * evdata)

Gets the event data id from name.

Parameters
evdataName of the data.
Returns
ID matching dataname.

Definition at line 766 of file event.c.

◆ event_dataName()

const char * event_dataName ( int dataid)

Gets the event data name from id.

Parameters
dataidID of the event data to get name of.
Returns
Name of the event data.

Definition at line 781 of file event.c.

◆ event_freeData()

void event_freeData ( EventData * event)
static

Frees an EventData structure.

Parameters
eventEvent Data to free.

Definition at line 703 of file event.c.

◆ event_genID()

unsigned int event_genID ( void )
static

Generates a new event ID.

Definition at line 170 of file event.c.

◆ event_get()

Event_t * event_get ( unsigned int eventid)

Gets an event.

Definition at line 104 of file event.c.

◆ event_getData()

const char * event_getData ( unsigned int eventid)

Gets the name of the event data.

Parameters
eventidEvent to get name of data from.
Returns
Name of data ev has.

Definition at line 145 of file event.c.

◆ event_isUnique()

int event_isUnique ( unsigned int eventid)

Checks to see if an event is unique.

Parameters
eventidID of event to see if is unique.
Returns
0 if isn't unique, 1 if is.

Definition at line 159 of file event.c.

◆ event_parseFile()

int event_parseFile ( const char * file,
EventData * temp )
static

Parses an event file.

Parameters
fileSource file path.
tempData to load into, or NULL for initial load.

Definition at line 618 of file event.c.

◆ event_parseXML()

int event_parseXML ( EventData * temp,
const xmlNodePtr parent )
static

Loads up an event from an XML node.

Parameters
tempEvent to load up.
parentEvent parent node.
Returns
0 on success.

Definition at line 425 of file event.c.

◆ event_reload()

int event_reload ( const char * name)

Definition at line 969 of file event.c.

◆ event_remove()

void event_remove ( unsigned int eventid)

Removes an event by ID.

Parameters
eventidID of the event to remove.

Definition at line 268 of file event.c.

◆ event_save()

int event_save ( unsigned int eventid)

Checks to see if an event should be saved.

Definition at line 289 of file event.c.

◆ event_start()

int event_start ( const char * name,
unsigned int * id )

Starts an event.

Parameters
nameName of the event to start.
[out]idID of the newly created event.
Returns
0 on success, <0 on error.

Definition at line 123 of file event.c.

◆ event_testClaims()

int event_testClaims ( unsigned int eventid,
int sys )

Tests to see if an event has claimed a system.

Definition at line 800 of file event.c.

◆ event_toLuaTable()

void event_toLuaTable ( lua_State * L,
int eventid )

Definition at line 984 of file event.c.

◆ events_cleanup()

void events_cleanup ( void )

Cleans up and removes active events.

Definition at line 737 of file event.c.

◆ events_exit()

void events_exit ( void )

Exits the event subsystem.

Definition at line 749 of file event.c.

◆ events_load()

int events_load ( void )

Loads all the events.

Returns
0 on success.

Definition at line 567 of file event.c.

◆ events_loadActive()

int events_loadActive ( xmlNodePtr parent)

Loads the player's active events from a save.

Parameters
parentNode containing the player's active events.
Returns
0 on success.

Definition at line 877 of file event.c.

◆ events_parseActive()

int events_parseActive ( xmlNodePtr parent)
static

Parses the actual individual event nodes.

Parameters
parentParent node to parse.
Returns
0 on success.

Definition at line 901 of file event.c.

◆ events_saveActive()

int events_saveActive ( xmlTextWriterPtr writer)

Saves the player's active events.

Parameters
writerXML Write to use to save events.
Returns
0 on success.

Definition at line 839 of file event.c.

◆ events_trigger()

void events_trigger ( EventTrigger_t trigger)

Runs all the events matching a trigger.

Parameters
triggerTrigger to match.

Definition at line 319 of file event.c.

Variable Documentation

◆ event_active

Event_t* event_active = NULL
static

Active events.

Definition at line 86 of file event.c.

◆ event_data

EventData* event_data = NULL
static

Allocated event data.

Definition at line 80 of file event.c.

◆ event_genid

unsigned int event_genid = 0
static

Event ID generator.

Definition at line 85 of file event.c.