forked from valve/halflife-sdk
282 lines
7.4 KiB
C
282 lines
7.4 KiB
C
//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================
|
|
|
|
// Author: Michael S. Booth (mike@turtlerockstudios.com), 2003
|
|
// Author: Matthew D. Campbell (matt@turtlerockstudios.com), 2003
|
|
|
|
#ifndef GAME_EVENT_H
|
|
#define GAME_EVENT_H
|
|
|
|
//
|
|
// NOTE: This enum is used by both the client and server, so only add events to the
|
|
// end of the list to remain maximally compatible with existing clients.
|
|
//
|
|
|
|
// Define some event types used in various places (CZ bot code, career mode, and tutor, initially)
|
|
enum GameEventType
|
|
{
|
|
EVENT_INVALID = 0,
|
|
|
|
EVENT_WEAPON_FIRED,
|
|
EVENT_WEAPON_FIRED_ON_EMPTY,
|
|
EVENT_WEAPON_RELOADED,
|
|
EVENT_HE_GRENADE_EXPLODED,
|
|
EVENT_FLASHBANG_GRENADE_EXPLODED,
|
|
EVENT_SMOKE_GRENADE_EXPLODED,
|
|
EVENT_GRENADE_BOUNCED,
|
|
EVENT_BEING_SHOT_AT, ///< this will only trigger for the local player in single player games.
|
|
EVENT_PLAYER_BLINDED_BY_FLASHBANG,
|
|
|
|
EVENT_PLAYER_FOOTSTEP,
|
|
EVENT_PLAYER_JUMPED,
|
|
EVENT_PLAYER_DIED,
|
|
EVENT_PLAYER_LANDED_FROM_HEIGHT,
|
|
EVENT_PLAYER_TOOK_DAMAGE,
|
|
|
|
EVENT_HOSTAGE_DAMAGED,
|
|
EVENT_HOSTAGE_KILLED,
|
|
|
|
EVENT_DOOR,
|
|
EVENT_BREAK_GLASS,
|
|
EVENT_BREAK_WOOD,
|
|
EVENT_BREAK_METAL,
|
|
EVENT_BREAK_FLESH,
|
|
EVENT_BREAK_CONCRETE,
|
|
|
|
EVENT_BOMB_PLANTED,
|
|
EVENT_BOMB_DROPPED,
|
|
EVENT_BOMB_PICKED_UP,
|
|
EVENT_BOMB_BEEP, ///< timer beep when counting down to detonation
|
|
EVENT_BOMB_DEFUSING,
|
|
EVENT_BOMB_DEFUSE_ABORTED,
|
|
EVENT_BOMB_DEFUSED,
|
|
EVENT_BOMB_EXPLODED,
|
|
|
|
EVENT_HOSTAGE_USED,
|
|
EVENT_HOSTAGE_RESCUED,
|
|
EVENT_ALL_HOSTAGES_RESCUED,
|
|
|
|
EVENT_VIP_ESCAPED,
|
|
EVENT_VIP_ASSASSINATED,
|
|
|
|
EVENT_TERRORISTS_WIN,
|
|
EVENT_CTS_WIN,
|
|
EVENT_ROUND_DRAW,
|
|
EVENT_ROUND_WIN, ///< win/loss relative to the client
|
|
EVENT_ROUND_LOSS, ///< win/loss relative to the client
|
|
EVENT_ROUND_START,
|
|
EVENT_PLAYER_SPAWNED,
|
|
EVENT_CLIENT_CORPSE_SPAWNED,
|
|
EVENT_BUY_TIME_START,
|
|
EVENT_PLAYER_LEFT_BUY_ZONE, ///< triggered by tutor system when the local player leaves the buy zone/buy time expires for the first time.
|
|
EVENT_DEATH_CAMERA_START,
|
|
EVENT_KILL_ALL, ///< everybody on one team has been killed
|
|
EVENT_ROUND_TIME,
|
|
|
|
// client-relative events for career mode: has the player killed with certain weapons, etc?
|
|
|
|
EVENT_DIE,
|
|
EVENT_KILL, ///< someone has been killed
|
|
EVENT_HEADSHOT, ///< subset of EVENT_KILL
|
|
EVENT_KILL_FLASHBANGED,
|
|
|
|
// Tutor Buy menu events
|
|
EVENT_TUTOR_BUY_MENU_OPENNED,
|
|
EVENT_TUTOR_AUTOBUY,
|
|
EVENT_PLAYER_BOUGHT_SOMETHING,
|
|
EVENT_TUTOR_NOT_BUYING_ANYTHING,
|
|
EVENT_TUTOR_NEED_TO_BUY_PRIMARY_WEAPON,
|
|
EVENT_TUTOR_NEED_TO_BUY_PRIMARY_AMMO,
|
|
EVENT_TUTOR_NEED_TO_BUY_SECONDARY_AMMO,
|
|
EVENT_TUTOR_NEED_TO_BUY_ARMOR,
|
|
EVENT_TUTOR_NEED_TO_BUY_DEFUSE_KIT,
|
|
EVENT_TUTOR_NEED_TO_BUY_GRENADE,
|
|
|
|
EVENT_CAREER_TASK_DONE,
|
|
|
|
// radio messages (these must be kept in sync with actual radio) -------------------------------------
|
|
|
|
EVENT_START_RADIO_1, ///< radio messages between this and RADIO_2 and part of Radio1()
|
|
|
|
EVENT_RADIO_COVER_ME,
|
|
EVENT_RADIO_YOU_TAKE_THE_POINT,
|
|
EVENT_RADIO_HOLD_THIS_POSITION,
|
|
EVENT_RADIO_REGROUP_TEAM,
|
|
EVENT_RADIO_FOLLOW_ME,
|
|
EVENT_RADIO_TAKING_FIRE,
|
|
|
|
EVENT_START_RADIO_2, ///< radio messages between this and RADIO_3 are part of Radio2()
|
|
|
|
EVENT_RADIO_GO_GO_GO,
|
|
EVENT_RADIO_TEAM_FALL_BACK,
|
|
EVENT_RADIO_STICK_TOGETHER_TEAM,
|
|
EVENT_RADIO_GET_IN_POSITION_AND_WAIT,
|
|
EVENT_RADIO_STORM_THE_FRONT,
|
|
EVENT_RADIO_REPORT_IN_TEAM,
|
|
|
|
EVENT_START_RADIO_3, ///< radio messages above this are part of Radio3()
|
|
|
|
EVENT_RADIO_AFFIRMATIVE,
|
|
EVENT_RADIO_ENEMY_SPOTTED,
|
|
EVENT_RADIO_NEED_BACKUP,
|
|
EVENT_RADIO_SECTOR_CLEAR,
|
|
EVENT_RADIO_IN_POSITION,
|
|
EVENT_RADIO_REPORTING_IN,
|
|
EVENT_RADIO_GET_OUT_OF_THERE,
|
|
EVENT_RADIO_NEGATIVE,
|
|
EVENT_RADIO_ENEMY_DOWN,
|
|
|
|
EVENT_END_RADIO,
|
|
|
|
EVENT_NEW_MATCH, ///< sent at the start of a new map/match.
|
|
EVENT_PLAYER_CHANGED_TEAM, ///< sent when a player changes teams.
|
|
EVENT_BULLET_IMPACT,
|
|
EVENT_GAME_COMMENCE,
|
|
EVENT_WEAPON_ZOOMED,
|
|
|
|
EVENT_HOSTAGE_CALLED_FOR_HELP, ///< hostage yelled to a CT
|
|
|
|
NUM_GAME_EVENTS
|
|
};
|
|
|
|
#ifdef DEFINE_EVENT_NAMES
|
|
// NOTE: These must be kept in sync with the GameEventType enum
|
|
const char *GameEventName[ NUM_GAME_EVENTS+1 ] =
|
|
{
|
|
"EVENT_INVALID",
|
|
|
|
"EVENT_WEAPON_FIRED",
|
|
"EVENT_WEAPON_FIRED_ON_EMPTY",
|
|
"EVENT_WEAPON_RELOADED",
|
|
"EVENT_HE_GRENADE_EXPLODED",
|
|
"EVENT_FLASHBANG_GRENADE_EXPLODED",
|
|
"EVENT_SMOKE_GRENADE_EXPLODED",
|
|
"EVENT_GRENADE_BOUNCED",
|
|
"EVENT_BEING_SHOT_AT",
|
|
"EVENT_PLAYER_BLINDED_BY_FLASHBANG",
|
|
|
|
"EVENT_PLAYER_FOOTSTEP",
|
|
"EVENT_PLAYER_JUMPED",
|
|
"EVENT_PLAYER_DIED",
|
|
"EVENT_PLAYER_LANDED_FROM_HEIGHT",
|
|
"EVENT_PLAYER_TOOK_DAMAGE",
|
|
|
|
"EVENT_HOSTAGE_DAMAGED",
|
|
"EVENT_HOSTAGE_KILLED",
|
|
|
|
"EVENT_DOOR",
|
|
"EVENT_BREAK_GLASS",
|
|
"EVENT_BREAK_WOOD",
|
|
"EVENT_BREAK_METAL",
|
|
"EVENT_BREAK_FLESH",
|
|
"EVENT_BREAK_CONCRETE",
|
|
|
|
"EVENT_BOMB_PLANTED",
|
|
"EVENT_BOMB_DROPPED",
|
|
"EVENT_BOMB_PICKED_UP",
|
|
"EVENT_BOMB_BEEP",
|
|
"EVENT_BOMB_DEFUSING",
|
|
"EVENT_BOMB_DEFUSE_ABORTED",
|
|
"EVENT_BOMB_DEFUSED",
|
|
"EVENT_BOMB_EXPLODED",
|
|
|
|
"EVENT_HOSTAGE_USED",
|
|
"EVENT_HOSTAGE_RESCUED",
|
|
|
|
"EVENT_ALL_HOSTAGES_RESCUED",
|
|
|
|
"EVENT_VIP_ESCAPED",
|
|
"EVENT_VIP_ASSASSINATED",
|
|
|
|
"EVENT_TERRORISTS_WIN",
|
|
"EVENT_CTS_WIN",
|
|
"EVENT_ROUND_DRAW",
|
|
|
|
"EVENT_ROUND_WIN",
|
|
"EVENT_ROUND_LOSS",
|
|
"EVENT_ROUND_START",
|
|
"EVENT_PLAYER_SPAWNED",
|
|
"EVENT_CLIENT_CORPSE_SPAWNED",
|
|
"EVENT_BUY_TIME_START",
|
|
"EVENT_PLAYER_LEFT_BUY_ZONE",
|
|
"EVENT_DEATH_CAMERA_START",
|
|
"EVENT_KILL_ALL",
|
|
"EVENT_ROUND_TIME",
|
|
|
|
// client-relative events for career mode: has the player killed with certain weapons, etc?
|
|
|
|
"EVENT_DIE",
|
|
"EVENT_KILL",
|
|
"EVENT_HEADSHOT",
|
|
"EVENT_KILL_FLASHBANGED",
|
|
|
|
// Tutor Buy menu events
|
|
"EVENT_TUTOR_BUY_MENU_OPENNED",
|
|
"EVENT_TUTOR_AUTOBUY",
|
|
"EVENT_PLAYER_BOUGHT_SOMETHING",
|
|
"EVENT_TUTOR_NOT_BUYING_ANYTHING",
|
|
"EVENT_TUTOR_NEED_TO_BUY_PRIMARY_WEAPON",
|
|
"EVENT_TUTOR_NEED_TO_BUY_PRIMARY_AMMO",
|
|
"EVENT_TUTOR_NEED_TO_BUY_SECONDARY_AMMO",
|
|
"EVENT_TUTOR_NEED_TO_BUY_ARMOR",
|
|
"EVENT_TUTOR_NEED_TO_BUY_DEFUSE_KIT",
|
|
"EVENT_TUTOR_NEED_TO_BUY_GRENADE",
|
|
|
|
"EVENT_CAREER_TASK_DONE",
|
|
|
|
// radio messages (these must be kept in sync with actual radio) -------------------------------------
|
|
|
|
"EVENT_START_RADIO_1",
|
|
|
|
"EVENT_RADIO_COVER_ME",
|
|
"EVENT_RADIO_YOU_TAKE_THE_POINT",
|
|
"EVENT_RADIO_HOLD_THIS_POSITION",
|
|
"EVENT_RADIO_REGROUP_TEAM",
|
|
"EVENT_RADIO_FOLLOW_ME",
|
|
"EVENT_RADIO_TAKING_FIRE",
|
|
|
|
"EVENT_START_RADIO_2",
|
|
|
|
"EVENT_RADIO_GO_GO_GO",
|
|
"EVENT_RADIO_TEAM_FALL_BACK",
|
|
"EVENT_RADIO_STICK_TOGETHER_TEAM",
|
|
"EVENT_RADIO_GET_IN_POSITION_AND_WAIT",
|
|
"EVENT_RADIO_STORM_THE_FRONT",
|
|
"EVENT_RADIO_REPORT_IN_TEAM",
|
|
|
|
"EVENT_START_RADIO_3",
|
|
|
|
"EVENT_RADIO_AFFIRMATIVE",
|
|
"EVENT_RADIO_ENEMY_SPOTTED",
|
|
"EVENT_RADIO_NEED_BACKUP",
|
|
"EVENT_RADIO_SECTOR_CLEAR",
|
|
"EVENT_RADIO_IN_POSITION",
|
|
"EVENT_RADIO_REPORTING_IN",
|
|
"EVENT_RADIO_GET_OUT_OF_THERE",
|
|
"EVENT_RADIO_NEGATIVE",
|
|
"EVENT_RADIO_ENEMY_DOWN",
|
|
|
|
"EVENT_END_RADIO",
|
|
|
|
"EVENT_NEW_MATCH",
|
|
"EVENT_PLAYER_CHANGED_TEAM",
|
|
"EVENT_BULLET_IMPACT",
|
|
"EVENT_GAME_COMMENCE",
|
|
"EVENT_WEAPON_ZOOMED",
|
|
|
|
"EVENT_HOSTAGE_CALLED_FOR_HELP",
|
|
|
|
NULL // must be NULL-terminated
|
|
};
|
|
#else
|
|
extern const char *GameEventName[ NUM_GAME_EVENTS ];
|
|
#endif
|
|
|
|
/// convert name to GameEventType
|
|
extern GameEventType NameToGameEvent( const char *name );
|
|
|
|
#endif // GAME_EVENT_H
|