mirror of
https://github.com/tbamud/tbamud.git
synced 2026-01-08 02:18:49 +01:00
61 lines
1.8 KiB
C
61 lines
1.8 KiB
C
/**
|
|
* @file mud_event.h
|
|
* Mud_Event Header file.
|
|
*
|
|
* Part of the core tbaMUD source code distribution, which is a derivative
|
|
* of, and continuation of, CircleMUD.
|
|
*
|
|
* This source code, which was not part of the CircleMUD legacy code,
|
|
* is attributed to:
|
|
* Copyright 2012 by Joseph Arnusch.
|
|
*/
|
|
|
|
#ifndef _MUD_EVENT_H_
|
|
#define _MUD_EVENT_H_
|
|
|
|
#include "dg_event.h"
|
|
|
|
#define EVENT_WORLD 0
|
|
#define EVENT_DESC 1
|
|
#define EVENT_CHAR 2
|
|
#define EVENT_ROOM 3
|
|
|
|
#define NEW_EVENT(event_id, struct, var, time) (attach_mud_event(new_mud_event(event_id, struct, var), time))
|
|
|
|
typedef enum {
|
|
eNULL,
|
|
ePROTOCOLS, /* The Protocol Detection Event */
|
|
eWHIRLWIND, /* The Whirlwind Attack */
|
|
eSPL_DARKNESS, /* Darkness Spell */
|
|
} event_id;
|
|
|
|
struct mud_event_list {
|
|
const char * event_name;
|
|
EVENTFUNC(*func);
|
|
int iEvent_Type;
|
|
};
|
|
|
|
struct mud_event_data {
|
|
struct event * pEvent; /***< Pointer reference to the event */
|
|
event_id iId; /***< General ID reference */
|
|
void * pStruct; /***< Pointer to NULL, Descriptor, Character .... */
|
|
char * sVariables; /***< String variable */
|
|
};
|
|
|
|
/* Externals */
|
|
extern struct list_data * world_events;
|
|
extern struct mud_event_list mud_event_index[];
|
|
/* Local Functions */
|
|
void init_events(void);
|
|
struct mud_event_data *new_mud_event(event_id iId, void *pStruct, char *sVariables);
|
|
void attach_mud_event(struct mud_event_data *pMudEvent, long time);
|
|
void free_mud_event(struct mud_event_data *pMudEvent);
|
|
struct mud_event_data * char_has_mud_event(struct char_data * ch, event_id iId);
|
|
void clear_char_event_list(struct char_data * ch);
|
|
|
|
/* Events */
|
|
EVENTFUNC(event_countdown);
|
|
EVENTFUNC(get_protocols);
|
|
EVENTFUNC(event_whirlwind);
|
|
|
|
#endif /* _MUD_EVENT_H_ */
|