diff options
author | Michał Konopacki <konopacki.m@gmail.com> | 2012-09-15 16:35:48 +0200 |
---|---|---|
committer | Michał Konopacki <konopacki.m@gmail.com> | 2012-09-15 16:35:48 +0200 |
commit | d439f4fa93eb45175dcdfa773af8f68efa1bad9d (patch) | |
tree | a2620bee6aae9ee49726892c5d1ebe717ad88e33 /src/ui/map.h | |
parent | e57be247c2ddce796fd64e9f3c1b3bfa4759b74a (diff) | |
parent | e9fcec9de52471508933c9d90cc6041ce0af9752 (diff) | |
download | colobot-d439f4fa93eb45175dcdfa773af8f68efa1bad9d.tar.gz colobot-d439f4fa93eb45175dcdfa773af8f68efa1bad9d.tar.bz2 colobot-d439f4fa93eb45175dcdfa773af8f68efa1bad9d.zip |
Merge branch 'dev-ui' into dev
Conflicts:
src/CMakeLists.txt
src/common/misc.cpp
src/common/misc.h
src/object/robotmain.cpp
src/object/robotmain.h
src/script/cbottoken.cpp
src/script/cbottoken.h
src/ui/button.cpp
src/ui/button.h
src/ui/check.cpp
src/ui/check.h
src/ui/color.cpp
src/ui/color.h
src/ui/compass.cpp
src/ui/compass.h
src/ui/control.cpp
src/ui/control.h
src/ui/displayinfo.cpp
src/ui/displayinfo.h
src/ui/displaytext.cpp
src/ui/displaytext.h
src/ui/edit.cpp
src/ui/edit.h
src/ui/gauge.cpp
src/ui/gauge.h
src/ui/interface.cpp
src/ui/interface.h
src/ui/key.cpp
src/ui/map.h
src/ui/shortcut.h
src/ui/slider.h
src/ui/target.cpp
src/ui/target.h
src/ui/window.cpp
src/ui/window.h
Diffstat (limited to 'src/ui/map.h')
-rw-r--r-- | src/ui/map.h | 160 |
1 files changed, 86 insertions, 74 deletions
diff --git a/src/ui/map.h b/src/ui/map.h index 7e80e0a..18020af 100644 --- a/src/ui/map.h +++ b/src/ui/map.h @@ -1,5 +1,6 @@ // * This file is part of the COLOBOT source code // * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * Copyright (C) 2012 Polish Portal of Colobot (PPC) // * // * This program is free software: you can redistribute it and/or modify // * it under the terms of the GNU General Public License as published by @@ -22,11 +23,21 @@ #include <ui/control.h> #include <object/object.h> +#include <object/robotmain.h> #include <common/event.h> +#include <common/iman.h> -class CTerrain; -class CWater; +#include <graphics/engine/terrain.h> +#include <graphics/engine/water.h> +#include <graphics/engine/engine.h> +#include <graphics/core/device.h> +#include <graphics/core/vertex.h> + +#include <math/geometry.h> + + +namespace Ui { const int MAPMAXOBJECT = 100; @@ -51,7 +62,7 @@ struct MapObject CObject* object; MapColor color; ObjectType type; - Math::Point pos; + Math::Point pos; float dir; }; @@ -59,77 +70,78 @@ struct MapObject class CMap : public CControl { -public: - CMap(); - ~CMap(); - - bool Create(Math::Point pos, Math::Point dim, int icon, EventType 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(Gfx::Color color); - void SetWaterColor(Gfx::Color color); - - void FlushObject(); - void UpdateObject(CObject* pObj); - - CObject* DetectObject(Math::Point pos, bool &bInMap); - void SetHilite(CObject* pObj); - -protected: - Math::Point AdjustOffset(Math::Point offset); - void SelectObject(Math::Point pos); - Math::Point MapInter(Math::Point pos, float dir); - void DrawFocus(Math::Point pos, float dir, ObjectType type, MapColor color); - void DrawObject(Math::Point pos, float dir, ObjectType type, MapColor color, bool bSelect, bool bHilite); - void DrawObjectIcon(Math::Point pos, Math::Point dim, MapColor color, ObjectType type, bool bHilite); - void DrawHilite(Math::Point pos); - void DrawTriangle(Math::Point p1, Math::Point p2, Math::Point p3, Math::Point uv1, Math::Point uv2); - void DrawPenta(Math::Point p1, Math::Point p2, Math::Point p3, Math::Point p4, Math::Point p5, Math::Point uv1, Math::Point uv2); - void DrawVertex(Math::Point uv1, Math::Point 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; - Math::Point m_offset; - float m_angle; - Gfx::Color m_floorColor; - Gfx::Color m_waterColor; - MapObject m_map[MAPMAXOBJECT]; - int m_totalFix; - int m_totalMove; - int m_hiliteRank; - Math::Point m_mapPos; - Math::Point m_mapDim; - bool m_bRadar; - char m_fixImage[100]; - int m_mode; - bool m_bToy; - bool m_bDebug; + public: + CMap(); + ~CMap(); + + bool Create(Math::Point pos, Math::Point dim, int icon, EventType eventMsg); + bool EventProcess(const Event &event); + void Draw(); + + void UpdateTerrain(); + void UpdateTerrain(int bx, int by, int ex, int ey); + + void SetFixImage(const char *filename); + bool GetFixImage(); + + 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 GetZoom(); + + void SetEnable(bool bEnable); + bool GetEnable(); + + void SetFloorColor(Gfx::Color color); + void SetWaterColor(Gfx::Color color); + + void FlushObject(); + void UpdateObject(CObject* pObj); + + CObject* DetectObject(Math::Point pos, bool &bInMap); + void SetHighlight(CObject* pObj); + + protected: + Math::Point AdjustOffset(Math::Point offset); + void SelectObject(Math::Point pos); + Math::Point MapInter(Math::Point pos, float dir); + void DrawFocus(Math::Point pos, float dir, ObjectType type, MapColor color); + void DrawObject(Math::Point pos, float dir, ObjectType type, MapColor color, bool bSelect, bool bHilite); + void DrawObjectIcon(Math::Point pos, Math::Point dim, MapColor color, ObjectType type, bool bHilite); + void DrawHighlight(Math::Point pos); + void DrawTriangle(Math::Point p1, Math::Point p2, Math::Point p3, Math::Point uv1, Math::Point uv2); + void DrawPenta(Math::Point p1, Math::Point p2, Math::Point p3, Math::Point p4, Math::Point p5, Math::Point uv1, Math::Point uv2); + void DrawVertex(Math::Point uv1, Math::Point uv2, float zoom); + + protected: + Gfx::CTerrain* m_terrain; + Gfx::CWater* m_water; + CRobotMain* m_main; + + bool m_bEnable; + float m_time; + float m_half; + float m_zoom; + Math::Point m_offset; + float m_angle; + Gfx::Color m_floorColor; + Gfx::Color m_waterColor; + MapObject m_map[MAPMAXOBJECT]; + int m_totalFix; + int m_totalMove; + int m_highlightRank; + Math::Point m_mapPos; + Math::Point m_mapDim; + bool m_bRadar; + char m_fixImage[100]; + int m_mode; + bool m_bToy; + bool m_bDebug; }; +} |