66 lines
No EOL
1.6 KiB
C++
66 lines
No EOL
1.6 KiB
C++
//
|
|
// Yet Another POD-Bot, based on PODBot by Markus Klinge ("CountFloyd").
|
|
// Copyright (c) YaPB Development Team.
|
|
//
|
|
// This software is licensed under the BSD-style license.
|
|
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
|
|
// http://yapb.jeefo.net/license
|
|
//
|
|
// Purpose: Represents Counter-Strike Game.
|
|
//
|
|
|
|
#pragma once
|
|
|
|
// netmessage handler class
|
|
class NetworkMsg
|
|
{
|
|
private:
|
|
Bot *m_bot;
|
|
int m_state;
|
|
int m_message;
|
|
int m_registerdMessages[NETMSG_NUM];
|
|
|
|
public:
|
|
NetworkMsg (void);
|
|
~NetworkMsg (void) { };
|
|
|
|
void Execute (void *p);
|
|
inline void Reset (void) { m_message = NETMSG_UNDEFINED; m_state = 0; m_bot = NULL; };
|
|
void HandleMessageIfRequired (int messageType, int requiredType);
|
|
|
|
inline void SetMessage (int message) { m_message = message; }
|
|
inline void SetBot (Bot *bot) { m_bot = bot; }
|
|
|
|
inline int GetId (int messageType) { return m_registerdMessages[messageType]; }
|
|
inline void SetId (int messageType, int messsageIdentifier) { m_registerdMessages[messageType] = messsageIdentifier; }
|
|
};
|
|
|
|
// game events
|
|
class IGameEvents
|
|
{
|
|
public:
|
|
|
|
// called when new round occurs
|
|
virtual void OnNewRound (void) = 0;
|
|
};
|
|
|
|
class Game
|
|
{
|
|
private:
|
|
IGameEvents *m_listener;
|
|
|
|
public:
|
|
Game (void) : m_listener (NULL) { }
|
|
~Game (void) { }
|
|
|
|
public:
|
|
|
|
// we have only one listener, so register it here
|
|
void RegisterEventListener (IGameEvents *listener) { m_listener = listener; }
|
|
|
|
// get events interface
|
|
IGameEvents *GetGameEventListener (void) { return m_listener; }
|
|
};
|
|
|
|
// helper macros
|
|
#define events game.GetGameEventListener () |