//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $Workfile: $ // $Date: $ // //----------------------------------------------------------------------------- // $Log: $ // // $NoKeywords: $ //=============================================================================// #if !defined( IGAMEEVENTS_H ) #define IGAMEEVENTS_H #ifdef _WIN32 #pragma once #endif #include "tier1/interface.h" #define INTERFACEVERSION_GAMEEVENTSMANAGER "GAMEEVENTSMANAGER001" // old game event manager, don't use it! #define INTERFACEVERSION_GAMEEVENTSMANAGER2 "GAMEEVENTSMANAGER002" // new game event manager, #include "tier1/bitbuf.h" //----------------------------------------------------------------------------- // Purpose: Engine interface into global game event management //----------------------------------------------------------------------------- /* The GameEventManager keeps track and fires of all global game events. Game events are fired by game.dll for events like player death or team wins. Each event has a unique name and comes with a KeyValue structure providing informations about this event. Some events are generated also by the engine. Events are networked to connected clients and invoked there to. Therefore you have to specify all data fields and there data types in an public resource file which is parsed by server and broadcasted to it's clients. A typical game event is defined like this: "game_start" // a new game starts { "roundslimit" "long" // max round "timelimit" "long" // time limit "fraglimit" "long" // frag limit "objective" "string" // round objective } All events must have unique names (case sensitive) and may have a list of data fields. each data field must specify a data type, so the engine knows how to serialize/unserialize that event for network transmission. Valid data types are string, float, long, short, byte & bool. If a data field should not be broadcasted to clients, use the type "local". */ #define MAX_EVENT_NAME_LENGTH 32 // max game event name length #define MAX_EVENT_BITS 9 // max bits needed for an event index #define MAX_EVENT_NUMBER (1<