mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-09 02:09:35 +00:00
1
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// $Log: $
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
#if !defined( EVENT_SYSTEM_H )
|
||||
#define EVENT_SYSTEM_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "event_flags.h"
|
||||
#include "common.h"
|
||||
#include "enginesingleuserfilter.h"
|
||||
|
||||
|
||||
class SendTable;
|
||||
class ClientClass;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
class CEventInfo
|
||||
{
|
||||
public:
|
||||
enum
|
||||
{
|
||||
EVENT_INDEX_BITS = 8,
|
||||
EVENT_DATA_LEN_BITS = 11,
|
||||
MAX_EVENT_DATA = 192, // ( 1<<8 bits == 256, but only using 192 below )
|
||||
};
|
||||
|
||||
inline CEventInfo()
|
||||
{
|
||||
classID = 0;
|
||||
fire_delay = 0.0f;
|
||||
bits = 0;
|
||||
flags = 0;
|
||||
pSendTable = NULL;
|
||||
pClientClass = NULL;
|
||||
pData = NULL;
|
||||
}
|
||||
|
||||
~CEventInfo()
|
||||
{
|
||||
if ( pData )
|
||||
{
|
||||
delete pData;
|
||||
}
|
||||
}
|
||||
|
||||
CEventInfo( const CEventInfo& src )
|
||||
{
|
||||
classID = src.classID;
|
||||
fire_delay = src.fire_delay;
|
||||
bits = src.bits;
|
||||
flags = src.flags;
|
||||
pSendTable = src.pSendTable;
|
||||
pClientClass = src.pClientClass;
|
||||
filter.AddPlayersFromFilter( &src.filter );
|
||||
|
||||
if ( src.pData )
|
||||
{
|
||||
int size = Bits2Bytes( src.bits );
|
||||
pData = new byte[size];
|
||||
Q_memcpy( pData, src.pData, size );
|
||||
}
|
||||
else
|
||||
{
|
||||
pData = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 0 implies not in use
|
||||
short classID;
|
||||
|
||||
// If non-zero, the delay time when the event should be fired ( fixed up on the client )
|
||||
float fire_delay;
|
||||
|
||||
// send table pointer or NULL if send as full update
|
||||
const SendTable *pSendTable;
|
||||
const ClientClass *pClientClass;
|
||||
|
||||
// Length of data bits
|
||||
int bits;
|
||||
// Raw event data
|
||||
byte *pData;
|
||||
// CLIENT ONLY Reliable or not, etc.
|
||||
int flags;
|
||||
|
||||
// clients that see that event
|
||||
CEngineRecipientFilter filter;
|
||||
};
|
||||
|
||||
|
||||
#endif // EVENT_SYSTEM_H
|
||||
Reference in New Issue
Block a user