From a4c804b49ec872b71bd5a0167c3ad45704a3cc30 Mon Sep 17 00:00:00 2001 From: adiblol Date: Thu, 8 Mar 2012 19:32:05 +0100 Subject: Initial commit, Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch --- src/map.h | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 src/map.h (limited to 'src/map.h') diff --git a/src/map.h b/src/map.h new file mode 100644 index 0000000..f5c9b31 --- /dev/null +++ b/src/map.h @@ -0,0 +1,126 @@ +// map.h + +#ifndef _MAP_H_ +#define _MAP_H_ + + +#include "control.h" + + +class CD3DEngine; +class CTerrain; +class CWater; +class CObject; +class CRobotMain; + +enum ObjectType; + + + +#define MAPMAXOBJECT 100 + +enum MapColor +{ + MAPCOLOR_NULL, + MAPCOLOR_BASE, + MAPCOLOR_FIX, + MAPCOLOR_MOVE, + MAPCOLOR_ALIEN, + MAPCOLOR_WAYPOINTb, + MAPCOLOR_WAYPOINTr, + MAPCOLOR_WAYPOINTg, + MAPCOLOR_WAYPOINTy, + MAPCOLOR_WAYPOINTv, + MAPCOLOR_BBOX, +}; + +typedef struct +{ + char bUsed; + CObject* object; + MapColor color; + ObjectType type; + FPOINT pos; + float dir; +} +MapObject; + + + +class CMap : public CControl +{ +public: + CMap(CInstanceManager* iMan); + ~CMap(); + + BOOL Create(FPOINT pos, FPOINT dim, int icon, EventMsg eventMsg); + BOOL EventProcess(const Event &event); + void Draw(); + + void UpdateTerrain(); + void UpdateTerrain(int bx, int by, int ex, int ey); + + void SetFixImage(char *filename); + BOOL RetFixImage(); + + void SetOffset(float ox, float oy); + void SetAngle(float angle); + void SetMode(int mode); + void SetToy(BOOL bToy); + void SetDebug(BOOL bDebug); + + void SetZoom(float value); + float RetZoom(); + + void SetEnable(BOOL bEnable); + BOOL RetEnable(); + + void SetFloorColor(D3DCOLORVALUE color); + void SetWaterColor(D3DCOLORVALUE color); + + void FlushObject(); + void UpdateObject(CObject* pObj); + + CObject* DetectObject(FPOINT pos, BOOL &bInMap); + void SetHilite(CObject* pObj); + +protected: + FPOINT AdjustOffset(FPOINT offset); + void SelectObject(FPOINT pos); + FPOINT MapInter(FPOINT pos, float dir); + void DrawFocus(FPOINT pos, float dir, ObjectType type, MapColor color); + void DrawObject(FPOINT pos, float dir, ObjectType type, MapColor color, BOOL bSelect, BOOL bHilite); + void DrawObjectIcon(FPOINT pos, FPOINT dim, MapColor color, ObjectType type, BOOL bHilite); + void DrawHilite(FPOINT pos); + void DrawTriangle(FPOINT p1, FPOINT p2, FPOINT p3, FPOINT uv1, FPOINT uv2); + void DrawPenta(FPOINT p1, FPOINT p2, FPOINT p3, FPOINT p4, FPOINT p5, FPOINT uv1, FPOINT uv2); + void DrawVertex(FPOINT uv1, FPOINT uv2, float zoom); + +protected: + CTerrain* m_terrain; + CWater* m_water; + CRobotMain* m_main; + + BOOL m_bEnable; + float m_time; + float m_half; + float m_zoom; + FPOINT m_offset; + float m_angle; + D3DCOLORVALUE m_floorColor; + D3DCOLORVALUE m_waterColor; + MapObject m_map[MAPMAXOBJECT]; + int m_totalFix; + int m_totalMove; + int m_hiliteRank; + FPOINT m_mapPos; + FPOINT m_mapDim; + BOOL m_bRadar; + char m_fixImage[100]; + int m_mode; + BOOL m_bToy; + BOOL m_bDebug; +}; + + +#endif //_MAP_H_ -- cgit v1.2.3-1-g7c22