Counter Strike : Global Offensive Source Code
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.
|
|
//===== Copyright � 1996-2009, Valve Corporation, All rights reserved. ======//
//
// Purpose:
//
//===========================================================================//
#ifndef IMATCHEVENTS_H
#define IMATCHEVENTS_H
#ifdef _WIN32
#pragma once
#endif
abstract_class IMatchEventsSink { public: virtual void OnEvent( KeyValues *pEvent ) {} //
// List of events
//
/*
"OnSysStorageDevicesChanged" Signalled when system storage device change is detected. params: void
"OnSysSigninChange" Signalled when one or more users sign out. params: string "action" - signin change event: "signin", "signout" int "numUsers" - how many users signed in/out (defines valid user0 - userN-1 fields) int "mask" - bitmask of controllers affected int "user%d" - controller index affected
"OnSysXUIEvent" Signalled when an XUI event occurs. params: string "action" - XUI action type: "opening", "closed"
"OnSysMuteListChanged" Signalled when system mute list change occurs. params: void
"OnSysInputDevicesChanged" Signalled when input device disconnection is detected. params: int "mask" - bitmask of which slot's controller was disconnected [0-1]
"OnEngineLevelLoadingStarted" Signalled when a level starts loading. params: string "name" - level name
"OnEngineListenServerStarted" Signalled when a listen server level loads enough to accept client connections. params: void
"OnEngineLevelLoadingTick" Signalled periodically while a level is loading, after loading started and before loading finished. params: void
"OnEngineLevelLoadingFinished" Signalled when a level is finished loading. params: int "error" - whether an extended error occurred string "reason" - reason description
"OnEngineClientSignonStateChange" Signalled when client's signon state is changing. params: int "slot" - client ss slot int "old" - old state int "new" - new state int "count" - count
"OnEngineDisconnectReason" Signalled before a disconnect is going to occur and a reason for disconnect is available. params: string "reason" - reason description
"OnEngineEndGame" Signalled before a disconnect is going to occur and notifies the members of the game that the game has reached a conclusion or a vote to end the game has passed and the game should terminate and return to lobby if possible. params: string "reason" - reason description
"OnMatchPlayerMgrUpdate" Signalled when a player manager update occurs. params: string "update" = - update type "searchstarted" - search started "searchfinished" - search finished "friend" - friend details updated uint64 "xuid" - xuid of a player if applicable
"OnMatchPlayerMgrReset" Signalled when the game needs to go into attract mode. params: string "reason" - one of the following reasons: "GuestSignedIn" - guest user signed in "GameUserSignedOut" - user involved in game has signed out
"OnMatchServerMgrUpdate" Signalled when a server manager update occurs. params: string "update" = - update type "searchstarted" - search started "searchfinished" - search finished "server" - server details updated uint64 "xuid" - xuid of a server if applicable
"OnMatchSessionUpdate" Signalled when a session changes. params: strings "state" = - new state of the session "ready" - session is completely initialized and ready "updated" - session settings have been updated
"OnNetLanConnectionlessPacket" Signalled when a lan network packet is received. params: string "from" - netadr of sender as recorded by network layer subkey - packet message
"OnProfilesChanged" Signalled when new number of game users are set for the game. params: int "numProfiles" - number of game users set for the game
"OnProfileDataLoaded" Signalled when a user profile title data is loaded. params: int "iController" - index of controller whose title data is now loaded
"OnProfileStorageAvailable" Signalled when a user profile storage device is selected. params: int "iController" - index of controller whose storage device is now selected
"OnProfileUnavailable" Signalled when a user profile is detected as unavailable. params: int "iController" - index of controller whose profile was detected as unavailable
"OnPlayerUpdated" Signalled when information about a player changes. params: uint64 "xuid" - XUID of the player updated
"OnPlayerRemoved" Signalled when a player is removed from the game. params: uint64 "xuid" - XUID of the player removed
"OnPlayerMachinesConnected" Signalled when new machines become part of the session, they will be last in the list of connected machines. params: int "numMachines" - number of new machines connected
"OnPlayerActivity" Signalled when a player activity is detected. params: uint64 "xuid" - XUID of the player string "act" - type of activity: "voice" - player is voice chatting
"OnMuteChanged" Signalled when a mute list is updated. params: void
"OnInvite" Signalled when game invite event occurs. params: int "user" - controller index accepting the invite or causing invite error string "sessioninfo" - session info of the invite host string "action" = - invite action "accepted" - when an invite is accepted by user "storage" - when a storage device needs to be validated "error" - when an error occurs that prevents invite from being accepted "join" - when destructive actions or storage devices are confirmed by user "deny" - when invite is rejected by user string "error" - error description: "NotOnline", "NoMultiplayer", etc. ptr int "confirmed" - handler should set pointed int to 0 if confirmation is pending and send a "join" action OnInvite event after destructive actions are confirmed by user, storage devices are mounted, etc. */
};
abstract_class IMatchEventsSubscription { public: virtual void Subscribe( IMatchEventsSink *pSink ) = 0; virtual void Unsubscribe( IMatchEventsSink *pSink ) = 0;
virtual void BroadcastEvent( KeyValues *pEvent ) = 0;
virtual void RegisterEventData( KeyValues *pEventData ) = 0; virtual KeyValues * GetEventData( char const *szEventDataKey ) = 0; };
//
// Renamer for the match events event-handler function
// Usage:
// class MyClass : public CMatchEventsSinkFn< MyClass >
// {
// public:
// MyClass() : MatchEventsSinkFnClass( &MyClass::HandleMatchSinkEvent ) {}
// void HandleMatchSinkEvent( KeyValues *pEvent );
// };
//
template < typename TDerived > class CMatchEventsSinkFn : public IMatchEventsSink { protected: typedef TDerived DerivedClass; typedef void ( TDerived::*PFnDerivedHandler_t )( KeyValues *pEvent ); typedef CMatchEventsSinkFn< TDerived > MatchEventsSinkFnClass;
protected: explicit CMatchEventsSinkFn( PFnDerivedHandler_t pfn ) : m_pfnDerived( pfn ) {}
public: virtual void OnEvent( KeyValues *pEvent ) { ( static_cast< TDerived * >( this )->*m_pfnDerived )( pEvent ); }
private: PFnDerivedHandler_t m_pfnDerived; };
#endif // IMATCHEVENTS_H
|