44 lines
916 B
C
44 lines
916 B
C
|
|
#pragma once
|
|
#include "event/eventlist.h"
|
|
|
|
typedef struct _entity_t entity_t;
|
|
|
|
typedef enum {
|
|
NPC_INTERACT_TYPE_NONE = 0,
|
|
NPC_INTERACT_TYPE_TEXT = 1,
|
|
NPC_INTERACT_TYPE_CONVO = 2,
|
|
NPC_INTERACT_TYPE_EVENT = 3,
|
|
} npcinteracttype_t;
|
|
|
|
typedef struct {
|
|
npcinteracttype_t interactType;
|
|
|
|
union {
|
|
const char_t* text;
|
|
const eventdata_t *eventData;
|
|
};
|
|
} npc_t;
|
|
|
|
/**
|
|
* Initializes the NPC entity.
|
|
*
|
|
* @param entity The entity to initialize.
|
|
* @param source The source entity to copy data from.
|
|
*/
|
|
void npcLoad(entity_t *entity, const entity_t *source);
|
|
|
|
/**
|
|
* Updates the NPC entity.
|
|
*
|
|
* @param entity The entity to update.
|
|
*/
|
|
void npcUpdate(entity_t *entity);
|
|
|
|
/**
|
|
* Handles interaction between the player and the NPC.
|
|
*
|
|
* @param player The player entity interacting with the NPC.
|
|
* @param self The NPC entity being interacted with.
|
|
*/
|
|
void npcInteract(entity_t *player, entity_t *self); |