62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
|
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
|||
|
//
|
|||
|
// Purpose:
|
|||
|
//
|
|||
|
// $NoKeywords: $
|
|||
|
//=============================================================================//
|
|||
|
|
|||
|
#ifndef UPDATEHINT_H
|
|||
|
#define UPDATEHINT_H
|
|||
|
#ifdef _WIN32
|
|||
|
#pragma once
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|
|||
|
class CUpdateHint : public CObject
|
|||
|
{
|
|||
|
#define MAX_NOTIFY_CODES 16
|
|||
|
|
|||
|
struct NotifyList_t
|
|||
|
{
|
|||
|
int nCode;
|
|||
|
CMapObjectList Objects;
|
|||
|
};
|
|||
|
|
|||
|
public:
|
|||
|
|
|||
|
CUpdateHint(void) {}
|
|||
|
|
|||
|
//
|
|||
|
// Called by the code that modifies map objects:
|
|||
|
//
|
|||
|
inline void PreUpdateObject(CMapClass *pObject);
|
|||
|
inline void PreUpdateObjects(CMapObjectList *pObjects);
|
|||
|
|
|||
|
inline void PostUpdateObject(CMapClass *pObject, int nNotifyCode);
|
|||
|
inline void PostUpdateObjects(CMapObjectList *pObjects, int nNotifyCode);
|
|||
|
|
|||
|
inline BoundBox const &GetUpdateRegion(void);
|
|||
|
inline void Reset(void);
|
|||
|
inline void UpdateBounds(BoundBox &bbox);
|
|||
|
|
|||
|
//
|
|||
|
// Called by the document when processing an update:
|
|||
|
//
|
|||
|
inline int GetNotifyCodeCount(void);
|
|||
|
inline int GetNotifyCode(int nIndex);
|
|||
|
|
|||
|
inline POSITION GetHeadPosition(int nIndex);
|
|||
|
inline CMapClass *GetNext(int nIndex, POSITION &pos);
|
|||
|
|
|||
|
protected:
|
|||
|
|
|||
|
NotifyList_t m_NotifyList[MAX_NOTIFY_CODES]; // Lists of objects with common notification codes.
|
|||
|
int m_nListEntries; // Number of items in the notify list.
|
|||
|
|
|||
|
BoundBox m_UpdateRegion; // 3D map extents that were affected by the change.
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
#endif // UPDATEHINT_H
|