0ad/source/gui/MiniMap.h
janwas 32cfc6d807 minimap: now use GUI event system instead of polling. fixes broken click feature.
textureentry: add performance note
list, text: fix mousewheel direction
input: was going to add a deque to allow registering handlers in back
and front. obviated by minimap fix, though. cleaned up a bit and renamed
stuff (again, sigh).
loaderthunks: fixed weird alignment/padding warning

This was SVN commit r2979.
2005-10-20 15:27:39 +00:00

70 lines
1.3 KiB
C++
Executable File

#ifndef __H_MINIMAP_H__
#define __H_MINIMAP_H__
#include "gui/GUI.h"
#include "ps/Vector2D.h"
#include "maths/Vector3D.h"
#include "graphics/Camera.h"
class CTerrain;
class CUnitManager;
extern bool g_TerrainModified;
class CMiniMap : public IGUIObject
{
GUI_OBJECT(CMiniMap)
public:
CMiniMap();
virtual ~CMiniMap();
protected:
virtual void Draw();
virtual void HandleMessage(const SGUIMessage &Message);
// create the minimap textures
void CreateTextures();
// rebuild the terrain texture map
void RebuildTerrainTexture();
// rebuild the LOS map
void RebuildLOSTexture();
// destroy and free any memory and textures
void Destroy();
// calculate the relative heightmap space coordinates
// for a units world position
CVector2D GetMapSpaceCoords(CVector3D worldPos);
// the terrain we are mini-mapping
const CTerrain* m_Terrain;
// the unit manager with unit positions
const CUnitManager* m_UnitManager;
// not const: camera is moved by clicking on minimap
CCamera* m_Camera;
// minimap texture handles
u32 m_TerrainTexture;
u32 m_LOSTexture;
// texture data
u32 *m_TerrainData;
u8 *m_LOSData;
u32 m_Width, m_Height;
// map size
u32 m_MapSize;
// texture size
u32 m_TextureSize;
void DrawViewRect(); // split out of Draw
};
#endif