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.
61 lines
1.4 KiB
61 lines
1.4 KiB
//========= Copyright 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
|
|
|