Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.7 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef EVENTLIST_H
  8. #define EVENTLIST_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. #define AE_TYPE_SERVER ( 1 << 0 )
  13. #define AE_TYPE_SCRIPTED ( 1 << 1 ) // see scriptevent.h
  14. #define AE_TYPE_SHARED ( 1 << 2 )
  15. #define AE_TYPE_WEAPON ( 1 << 3 )
  16. #define AE_TYPE_CLIENT ( 1 << 4 )
  17. #define AE_TYPE_FACEPOSER ( 1 << 5 )
  18. #define AE_TYPE_NEWEVENTSYSTEM ( 1 << 10 ) //Temporary flag.
  19. #define AE_NOT_AVAILABLE -1
  20. typedef enum
  21. {
  22. AE_INVALID = -1, // So we have something more succint to check for than '-1'
  23. AE_EMPTY,
  24. AE_NPC_LEFTFOOT, // #define NPC_EVENT_LEFTFOOT 2050
  25. AE_NPC_RIGHTFOOT, // #define NPC_EVENT_RIGHTFOOT 2051
  26. AE_NPC_BODYDROP_LIGHT, //#define NPC_EVENT_BODYDROP_LIGHT 2001
  27. AE_NPC_BODYDROP_HEAVY, //#define NPC_EVENT_BODYDROP_HEAVY 2002
  28. AE_NPC_SWISHSOUND, //#define NPC_EVENT_SWISHSOUND 2010
  29. AE_NPC_180TURN, //#define NPC_EVENT_180TURN 2020
  30. AE_NPC_ITEM_PICKUP, //#define NPC_EVENT_ITEM_PICKUP 2040
  31. AE_NPC_WEAPON_DROP, //#define NPC_EVENT_WEAPON_DROP 2041
  32. AE_NPC_WEAPON_SET_SEQUENCE_NAME, //#define NPC_EVENT_WEAPON_SET_SEQUENCE_NAME 2042
  33. AE_NPC_WEAPON_SET_SEQUENCE_NUMBER, //#define NPC_EVENT_WEAPON_SET_SEQUENCE_NUMBER 2043
  34. AE_NPC_WEAPON_SET_ACTIVITY, //#define NPC_EVENT_WEAPON_SET_ACTIVITY 2044
  35. AE_NPC_HOLSTER,
  36. AE_NPC_DRAW,
  37. AE_NPC_WEAPON_FIRE,
  38. AE_CL_PLAYSOUND, // #define CL_EVENT_SOUND 5004 // Emit a sound
  39. AE_SV_PLAYSOUND,
  40. AE_CL_STOPSOUND,
  41. AE_START_SCRIPTED_EFFECT,
  42. AE_STOP_SCRIPTED_EFFECT,
  43. AE_CLIENT_EFFECT_ATTACH,
  44. AE_MUZZLEFLASH, // Muzzle flash from weapons held by the player
  45. AE_NPC_MUZZLEFLASH, // Muzzle flash from weapons held by NPCs
  46. AE_THUMPER_THUMP, //Thumper Thump!
  47. AE_AMMOCRATE_PICKUP_AMMO, //Ammo crate pick up ammo!
  48. AE_NPC_RAGDOLL,
  49. AE_NPC_ADDGESTURE,
  50. AE_NPC_RESTARTGESTURE,
  51. AE_NPC_ATTACK_BROADCAST,
  52. AE_NPC_HURT_INTERACTION_PARTNER,
  53. AE_NPC_SET_INTERACTION_CANTDIE,
  54. AE_SV_DUSTTRAIL,
  55. AE_CL_CREATE_PARTICLE_EFFECT,
  56. AE_RAGDOLL,
  57. AE_CL_ENABLE_BODYGROUP,
  58. AE_CL_DISABLE_BODYGROUP,
  59. AE_CL_BODYGROUP_SET_VALUE,
  60. AE_CL_BODYGROUP_SET_VALUE_CMODEL_WPN,
  61. AE_WPN_PRIMARYATTACK, // Used by weapons that want their primary attack to occur during an attack anim (i.e. grenade throwing)
  62. AE_WPN_INCREMENTAMMO,
  63. AE_WPN_HIDE, // Used to hide player weapons
  64. AE_WPN_UNHIDE, // Used to unhide player weapons
  65. AE_WPN_PLAYWPNSOUND, // Play a weapon sound from the weapon script file
  66. AE_RD_ROBOT_POP_PANELS_OFF,
  67. AE_TAUNT_ENABLE_MOVE,
  68. AE_TAUNT_DISABLE_MOVE,
  69. AE_CL_REMOVE_PARTICLE_EFFECT,
  70. LAST_SHARED_ANIMEVENT,
  71. } Animevent;
  72. typedef struct evententry_s evententry_t;
  73. //=========================================================
  74. //=========================================================
  75. extern void EventList_Init( void );
  76. extern void EventList_Free( void );
  77. extern bool EventList_RegisterSharedEvent( const char *pszEventName, int iEventIndex, int iType = 0 );
  78. extern Animevent EventList_RegisterPrivateEvent( const char *pszEventName );
  79. extern int EventList_IndexForName( const char *pszEventName );
  80. extern const char *EventList_NameForIndex( int iEventIndex );
  81. Animevent EventList_RegisterPrivateEvent( const char *pszEventName );
  82. // This macro guarantees that the names of each event and the constant used to
  83. // reference it in the code are identical.
  84. #define REGISTER_SHARED_ANIMEVENT( _n, b ) EventList_RegisterSharedEvent(#_n, _n, b );
  85. #define REGISTER_PRIVATE_ANIMEVENT( _n ) _n = EventList_RegisterPrivateEvent( #_n );
  86. // Implemented in shared code
  87. extern void EventList_RegisterSharedEvents( void );
  88. extern int EventList_GetEventType( int eventIndex );
  89. #endif // EVENTLIST_H