5extern EvtScript N(EVS_NpcInteract_HeartPlant);
15EvtScript N(EVS_HeartPlant_RebindInteractAfterDelay) = {
22EvtScript N(EVS_NpcInteract_HeartPlant) = {
29 Call(N(HeartPlant_SpawnHeart))
33 Exec(N(EVS_HeartPlant_RebindInteractAfterDelay))
46 .level = ACTOR_LEVEL_NONE,
47 .otherAI = &N(EVS_NpcAuxAI_HeartPlant),
48 .onInteract = &N(EVS_NpcInteract_HeartPlant),
51#define HEART_PLANT_FLAGS \
52 ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | \
53 ENEMY_FLAG_FLYING | ENEMY_FLAG_USE_INSPECT_ICON | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER
ApiStatus PlaySoundAtNpc(Evt *script, b32 isInitialCall)
ApiStatus BindNpcInteract(Evt *script, b32 isInitialCall)
ApiStatus EnableNpcShadow(Evt *script, b32 isInitialCall)
ApiStatus SetNpcAnimation(Evt *script, b32 isInitialCall)
ApiStatus SetSelfVar(Evt *script, b32 isInitialCall)
ApiStatus GetSelfVar(Evt *script, b32 isInitialCall)
#define Ref(sym)
Address/pointer constant.
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
#define EndIf
Marks the end of an if statement or an else block.
#define Thread
Marks the start of a thread block.
#define EndThread
Marks the end of a thread block.
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
#define IfEq(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR == RVAR.
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
#define Exec(EVT_SOURCE)
Launches a new thread.
#define Return
Kills the current EVT thread.