00001 #ifndef __ENTITYLIST
00002 #define __ENTITYLIST
00003
00004
00005 #include "GXStandardDefines.h"
00006 #include "GXSizeableArray.h"
00007 #include "GXVector.h"
00008 #include "GXEntityWaypoint.h"
00009 #include "GXModelManager.h"
00010 #include "GXDeviceContainer.h"
00011 #include "GXBitmapLand.h"
00012
00013
00014
00015
00016 struct SGXEntityEntry
00017 {
00018 SGXEntityWaypoints Waypoint;
00019 bool bAssigned;
00020 };
00021
00022
00023
00024
00025 class CGXEntityList
00026 {
00027 public:
00028 CGXEntityList();
00029 ~CGXEntityList();
00030
00031 void Cleanup();
00032
00033 int CreateEntity(UINT nModel);
00034 bool DeleteEntity(UINT nEntityID);
00035
00036 bool GetEntityWaypoint(UINT uID, SGXEntityWaypoints* pOut);
00037 bool SetEntityWaypoint(UINT uID, SGXEntityWaypoints* pIn);
00038
00039 bool RenderModels(CGXModelManager* pModels,
00040 UINT uTime,
00041 CGXBitmapLand* pLand,
00042 D3DXVECTOR4* pEye,
00043 D3DXVECTOR4* pLightDir,
00044 D3DXMATRIX* pViewProj);
00045
00046 void GetEntitiesInScreenBox(D3DXVECTOR2& vUpperLeft, D3DXVECTOR2& vLowerRight,
00047 float fMaxZ, UINT uTime,
00048 CGXBitmapLand* pLand,
00049 D3DVIEWPORT8* pViewPort, D3DXMATRIX* pProj,
00050 D3DXMATRIX* pViewMatrix, D3DXMATRIX* pWorldMatrix,
00051 void (*pCallBack)(UINT));
00052
00053 bool GetEntityScreenSpaceCoord(UINT uEntity, UINT uTime,
00054 CGXBitmapLand* pLand, D3DXVECTOR3* pOut,
00055 D3DVIEWPORT8* pViewPort, D3DXMATRIX* pProj,
00056 D3DXMATRIX* pViewMatrix, D3DXMATRIX* pWorldMatrix);
00057
00058 bool GetEntityPos(UINT uEntity, UINT uTime,
00059 CGXBitmapLand* pLand, D3DXVECTOR3* pOut,
00060 UINT* pModel);
00061
00062
00063 protected:
00064 CGXSizeableArray<SGXEntityEntry> m_Entities;
00065
00066 };
00067
00068
00069 void GXWaypointZeroer(SGXEntityEntry* pInOut);
00070
00071
00072
00073
00074
00075
00076
00077 #endif