//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef EVENTLIST_H #define EVENTLIST_H #ifdef _WIN32 #pragma once #endif #define AE_TYPE_SERVER (1 << 0) #define AE_TYPE_SCRIPTED (1 << 1) // see scriptevent.h #define AE_TYPE_SHARED (1 << 2) #define AE_TYPE_WEAPON (1 << 3) #define AE_TYPE_CLIENT (1 << 4) #define AE_TYPE_FACEPOSER (1 << 5) #define AE_TYPE_NEWEVENTSYSTEM (1 << 10) // Temporary flag. #define AE_NOT_AVAILABLE -1 typedef enum { AE_INVALID = -1, // So we have something more succint to check for than '-1' AE_EMPTY, AE_NPC_LEFTFOOT, // #define NPC_EVENT_LEFTFOOT // 2050 AE_NPC_RIGHTFOOT, // #define NPC_EVENT_RIGHTFOOT 2051 AE_NPC_BODYDROP_LIGHT, //#define NPC_EVENT_BODYDROP_LIGHT 2001 AE_NPC_BODYDROP_HEAVY, //#define NPC_EVENT_BODYDROP_HEAVY 2002 AE_NPC_SWISHSOUND, //#define NPC_EVENT_SWISHSOUND 2010 AE_NPC_180TURN, //#define NPC_EVENT_180TURN 2020 AE_NPC_ITEM_PICKUP, //#define NPC_EVENT_ITEM_PICKUP //2040 AE_NPC_WEAPON_DROP, //#define NPC_EVENT_WEAPON_DROP //2041 AE_NPC_WEAPON_SET_SEQUENCE_NAME, //#define //NPC_EVENT_WEAPON_SET_SEQUENCE_NAME //2042 AE_NPC_WEAPON_SET_SEQUENCE_NUMBER, //#define //NPC_EVENT_WEAPON_SET_SEQUENCE_NUMBER //2043 AE_NPC_WEAPON_SET_ACTIVITY, //#define NPC_EVENT_WEAPON_SET_ACTIVITY //2044 AE_NPC_HOLSTER, AE_NPC_DRAW, AE_NPC_WEAPON_FIRE, AE_CL_PLAYSOUND, // #define CL_EVENT_SOUND 5004 // // Emit a sound AE_SV_PLAYSOUND, AE_CL_STOPSOUND, AE_START_SCRIPTED_EFFECT, AE_STOP_SCRIPTED_EFFECT, AE_CLIENT_EFFECT_ATTACH, AE_MUZZLEFLASH, // Muzzle flash from weapons held by the player AE_NPC_MUZZLEFLASH, // Muzzle flash from weapons held by NPCs AE_THUMPER_THUMP, // Thumper Thump! AE_AMMOCRATE_PICKUP_AMMO, // Ammo crate pick up ammo! AE_NPC_RAGDOLL, AE_NPC_ADDGESTURE, AE_NPC_RESTARTGESTURE, AE_NPC_ATTACK_BROADCAST, AE_NPC_HURT_INTERACTION_PARTNER, AE_NPC_SET_INTERACTION_CANTDIE, AE_SV_DUSTTRAIL, AE_CL_CREATE_PARTICLE_EFFECT, AE_RAGDOLL, AE_CL_ENABLE_BODYGROUP, AE_CL_DISABLE_BODYGROUP, AE_CL_BODYGROUP_SET_VALUE, AE_CL_BODYGROUP_SET_VALUE_CMODEL_WPN, AE_WPN_PRIMARYATTACK, // Used by weapons that want their primary attack to // occur during an attack anim (i.e. grenade // throwing) AE_WPN_INCREMENTAMMO, AE_WPN_HIDE, // Used to hide player weapons AE_WPN_UNHIDE, // Used to unhide player weapons AE_WPN_PLAYWPNSOUND, // Play a weapon sound from the weapon script file AE_RD_ROBOT_POP_PANELS_OFF, AE_TAUNT_ENABLE_MOVE, AE_TAUNT_DISABLE_MOVE, LAST_SHARED_ANIMEVENT, } Animevent; typedef struct evententry_s evententry_t; //========================================================= //========================================================= extern void EventList_Init(void); extern void EventList_Free(void); extern bool EventList_RegisterSharedEvent(const char *pszEventName, int iEventIndex, int iType = 0); extern Animevent EventList_RegisterPrivateEvent(const char *pszEventName); extern int EventList_IndexForName(const char *pszEventName); extern const char *EventList_NameForIndex(int iEventIndex); Animevent EventList_RegisterPrivateEvent(const char *pszEventName); // This macro guarantees that the names of each event and the constant used to // reference it in the code are identical. #define REGISTER_SHARED_ANIMEVENT(_n, b) \ EventList_RegisterSharedEvent(#_n, _n, b); #define REGISTER_PRIVATE_ANIMEVENT(_n) _n = EventList_RegisterPrivateEvent(#_n); // Implemented in shared code extern void EventList_RegisterSharedEvents(void); extern int EventList_GetEventType(int eventIndex); #endif // EVENTLIST_H