summaryrefslogtreecommitdiffstats
path: root/src/ui/mainmap.cpp
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2012-06-26 22:23:05 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2012-06-26 22:23:05 +0200
commitebed57aa22b772211387a5561f995eee8f5faed1 (patch)
tree9a0b08371df54c125957e63c7ecff81c001d4eaf /src/ui/mainmap.cpp
parentfc5389d18816799ba2698914384cd099ba8a7a6c (diff)
downloadcolobot-ebed57aa22b772211387a5561f995eee8f5faed1.tar.gz
colobot-ebed57aa22b772211387a5561f995eee8f5faed1.tar.bz2
colobot-ebed57aa22b772211387a5561f995eee8f5faed1.zip
Whitespace and language change
- changed tabs to spaces and DOS line endings to Unix (except in CBot and metafile) - changed language to English - fixed #include <d3d.h> in d3dengine.h
Diffstat (limited to 'src/ui/mainmap.cpp')
-rw-r--r--src/ui/mainmap.cpp804
1 files changed, 402 insertions, 402 deletions
diff --git a/src/ui/mainmap.cpp b/src/ui/mainmap.cpp
index ad0ed58..76e3627 100644
--- a/src/ui/mainmap.cpp
+++ b/src/ui/mainmap.cpp
@@ -1,402 +1,402 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
-// *
-// * 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
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-// mainmap.cpp
-
-
-#include <windows.h>
-#include <stdio.h>
-#include <d3d.h>
-
-#include "common/struct.h"
-#include "old/d3dengine.h"
-#include "old/d3dmath.h"
-#include "common/global.h"
-#include "common/event.h"
-#include "common/iman.h"
-#include "ui/interface.h"
-#include "ui/map.h"
-#include "ui/image.h"
-#include "ui/group.h"
-#include "ui/slider.h"
-#include "ui/scroll.h"
-#include "ui/window.h"
-#include "ui/mainmap.h"
-
-
-
-const float ZOOM_MIN = 1.0f;
-const float ZOOM_MAX = 16.0f;
-
-
-
-// Constructor of the application card.
-
-CMainMap::CMainMap(CInstanceManager* iMan)
-{
- m_iMan = iMan;
- m_iMan->AddInstance(CLASS_MAP, this);
-
- m_interface = (CInterface*)m_iMan->SearchInstance(CLASS_INTERFACE);
- m_event = (CEvent*)m_iMan->SearchInstance(CLASS_EVENT);
- m_engine = (CD3DEngine*)m_iMan->SearchInstance(CLASS_ENGINE);
-
- m_mapMode = 1;
- m_bFixImage = false;
-}
-
-// Destructor of the application card.
-
-CMainMap::~CMainMap()
-{
-}
-
-
-// Created the mini-map and the corresponding buttons.
-
-void CMainMap::CreateMap()
-{
- CWindow* pw;
- Math::Point pos, dim;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 )
- {
- pos.x = 0.0f;
- pos.y = 0.0f;
- dim.x = 0.0f;
- dim.y = 0.0f;
- pw = m_interface->CreateWindows(pos, dim, 10, EVENT_WINDOW1);
- }
-
- dim.x = 10.0f/640.0f;
- dim.y = 10.0f/480.0f;
- pos.x = 10.0f/640.0f;
- pos.y = 10.0f/480.0f;
- pw->CreateMap (pos, dim, 2, EVENT_OBJECT_MAP);
- pw->CreateSlider(pos, dim, 0, EVENT_OBJECT_MAPZOOM);
-
- DimMap();
-}
-
-// Indicates whether the mini-map should display a still image.
-
-void CMainMap::SetFixImage(char *filename)
-{
- CWindow* pw;
- CMap* pm;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return;
-
- pw->DeleteControl(EVENT_OBJECT_MAPZOOM);
- m_bFixImage = true;
-
- pm->SetFixImage(filename);
-}
-
-// Choosing colors of soil and water for the mini-map.
-
-void CMainMap::FloorColorMap(D3DCOLORVALUE floor, D3DCOLORVALUE water)
-{
- CWindow* pw;
- CMap* pm;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm != 0 )
- {
- pm->SetFloorColor(floor);
- pm->SetWaterColor(water);
- }
-}
-
-// Shows or hides the minimap.
-
-void CMainMap::ShowMap(bool bShow)
-{
- CWindow* pw;
- CMap* pm;
- CSlider* ps;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- if ( bShow )
- {
- DimMap();
- }
- else
- {
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm != 0 )
- {
- pm->ClearState(STATE_VISIBLE);
- }
-
- ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
- if ( ps != 0 )
- {
- ps->ClearState(STATE_VISIBLE);
- }
- }
-}
-
-// Dimensions of the mini-map.
-
-void CMainMap::DimMap()
-{
- CWindow* pw;
- CMap* pm;
- CSlider* ps;
- Math::Point pos, dim;
- float value;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return;
-
- pm->SetState(STATE_VISIBLE, (m_mapMode != 0));
-
- dim.x = 100.0f/640.0f;
- dim.y = 100.0f/480.0f;
- pos.x = 540.0f/640.0f;
- pos.y = 0.0f/480.0f;
- pm->SetPos(pos);
- pm->SetDim(dim);
-
- ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
- if ( ps != 0 )
- {
- ps->SetState(STATE_VISIBLE, (m_mapMode != 0));
-
- dim.x = SCROLL_WIDTH;
- dim.y = 66.0f/480.0f;
- pos.x = 523.0f/640.0f;
- pos.y = 3.0f/480.0f;
- ps->SetPos(pos);
- ps->SetDim(dim);
-
- value = pm->RetZoom();
- value = (value-ZOOM_MIN)/(ZOOM_MAX-ZOOM_MIN);
- value = powf(value, 0.5f);
- ps->SetVisibleValue(value);
- ps->SetArrowStep(0.2f);
- }
-}
-
-// Returns the current zoom of the minimap.
-
-float CMainMap::RetZoomMap()
-{
- CWindow* pw;
- CMap* pm;
- CSlider* ps;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return ZOOM_MIN;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return ZOOM_MIN;
-
- ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
- if ( ps == 0 ) return ZOOM_MIN;
-
- return pm->RetZoom();
-}
-
-// Zoom the mini-map of any factor.
-
-void CMainMap::ZoomMap(float zoom)
-{
- CWindow* pw;
- CMap* pm;
- CSlider* ps;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return;
-
- ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
- if ( ps == 0 ) return;
-
- if ( zoom < ZOOM_MIN ) zoom = ZOOM_MIN;
- if ( zoom > ZOOM_MAX ) zoom = ZOOM_MAX;
- pm->SetZoom(zoom);
-
- DimMap();
-}
-
-// The mini-map zoom depending on the slider.
-
-void CMainMap::ZoomMap()
-{
- CWindow* pw;
- CMap* pm;
- CSlider* ps;
- float zoom;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return;
-
- ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
- if ( ps == 0 ) return;
-
- zoom = ps->RetVisibleValue();
- zoom = powf(zoom, 2.0f);
- zoom = ZOOM_MIN+zoom*(ZOOM_MAX-ZOOM_MIN);
- pm->SetZoom(zoom);
-
- DimMap();
-}
-
-// Enables or disables the card.
-
-void CMainMap::MapEnable(bool bEnable)
-{
- CWindow* pw;
- CMap* pm;
- CSlider* ps;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm != 0 )
- {
- pm->SetEnable(bEnable);
- }
-
- ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
- if ( ps != 0 )
- {
- ps->SetState(STATE_ENABLE, bEnable);
- }
-}
-
-// Specifies the type of icon for the selected object.
-
-void CMainMap::SetToy(bool bToy)
-{
- CWindow* pw;
- CMap* pm;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return;
-
- pm->SetToy(bToy);
-}
-
-// Specifies the parameters when using a still image.
-
-void CMainMap::SetFixParam(float zoom, float ox, float oy, float angle,
- int mode, bool bDebug)
-{
- CWindow* pw;
- CMap* pm;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return;
-
- pm->SetZoom(zoom);
- pm->SetOffset(ox, oy);
- pm->SetAngle(angle);
- pm->SetMode(mode);
- pm->SetDebug(bDebug);
-}
-
-// Updates the mini-map following to a change of terrain.
-
-void CMainMap::UpdateMap()
-{
- CWindow* pw;
- CMap* pm;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm != 0 )
- {
- pm->UpdateTerrain();
- }
-}
-
-// Indicates if the mini-map is visible.
-
-bool CMainMap::RetShowMap()
-{
- return ( m_mapMode != 0 );
-}
-
-// Indicates whether the mini-map displays a still image.
-
-bool CMainMap::RetFixImage()
-{
- return m_bFixImage;
-}
-
-
-// The object is detected in the mini-map.
-
-CObject* CMainMap::DetectMap(Math::Point pos, bool &bInMap)
-{
- CWindow* pw;
- CMap* pm;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return 0;
-
- bInMap = false;
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm == 0 ) return 0;
- return pm->DetectObject(pos, bInMap);
-}
-
-
-// Indicates the object with the mouse hovers over.
-
-void CMainMap::SetHilite(CObject* pObj)
-{
- CWindow* pw;
- CMap* pm;
-
- pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
- if ( pw == 0 ) return;
-
- pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
- if ( pm != 0 )
- {
- pm->SetHilite(pObj);
- }
-}
-
-
+// * This file is part of the COLOBOT source code
+// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
+// *
+// * 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
+// * the Free Software Foundation, either version 3 of the License, or
+// * (at your option) any later version.
+// *
+// * This program is distributed in the hope that it will be useful,
+// * but WITHOUT ANY WARRANTY; without even the implied warranty of
+// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// * GNU General Public License for more details.
+// *
+// * You should have received a copy of the GNU General Public License
+// * along with this program. If not, see http://www.gnu.org/licenses/.
+
+// mainmap.cpp
+
+
+#include <windows.h>
+#include <stdio.h>
+#include <d3d.h>
+
+#include "common/struct.h"
+#include "old/d3dengine.h"
+#include "old/d3dmath.h"
+#include "common/global.h"
+#include "common/event.h"
+#include "common/iman.h"
+#include "ui/interface.h"
+#include "ui/map.h"
+#include "ui/image.h"
+#include "ui/group.h"
+#include "ui/slider.h"
+#include "ui/scroll.h"
+#include "ui/window.h"
+#include "ui/mainmap.h"
+
+
+
+const float ZOOM_MIN = 1.0f;
+const float ZOOM_MAX = 16.0f;
+
+
+
+// Constructor of the application card.
+
+CMainMap::CMainMap(CInstanceManager* iMan)
+{
+ m_iMan = iMan;
+ m_iMan->AddInstance(CLASS_MAP, this);
+
+ m_interface = (CInterface*)m_iMan->SearchInstance(CLASS_INTERFACE);
+ m_event = (CEvent*)m_iMan->SearchInstance(CLASS_EVENT);
+ m_engine = (CD3DEngine*)m_iMan->SearchInstance(CLASS_ENGINE);
+
+ m_mapMode = 1;
+ m_bFixImage = false;
+}
+
+// Destructor of the application card.
+
+CMainMap::~CMainMap()
+{
+}
+
+
+// Created the mini-map and the corresponding buttons.
+
+void CMainMap::CreateMap()
+{
+ CWindow* pw;
+ Math::Point pos, dim;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 )
+ {
+ pos.x = 0.0f;
+ pos.y = 0.0f;
+ dim.x = 0.0f;
+ dim.y = 0.0f;
+ pw = m_interface->CreateWindows(pos, dim, 10, EVENT_WINDOW1);
+ }
+
+ dim.x = 10.0f/640.0f;
+ dim.y = 10.0f/480.0f;
+ pos.x = 10.0f/640.0f;
+ pos.y = 10.0f/480.0f;
+ pw->CreateMap (pos, dim, 2, EVENT_OBJECT_MAP);
+ pw->CreateSlider(pos, dim, 0, EVENT_OBJECT_MAPZOOM);
+
+ DimMap();
+}
+
+// Indicates whether the mini-map should display a still image.
+
+void CMainMap::SetFixImage(char *filename)
+{
+ CWindow* pw;
+ CMap* pm;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return;
+
+ pw->DeleteControl(EVENT_OBJECT_MAPZOOM);
+ m_bFixImage = true;
+
+ pm->SetFixImage(filename);
+}
+
+// Choosing colors of soil and water for the mini-map.
+
+void CMainMap::FloorColorMap(D3DCOLORVALUE floor, D3DCOLORVALUE water)
+{
+ CWindow* pw;
+ CMap* pm;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm != 0 )
+ {
+ pm->SetFloorColor(floor);
+ pm->SetWaterColor(water);
+ }
+}
+
+// Shows or hides the minimap.
+
+void CMainMap::ShowMap(bool bShow)
+{
+ CWindow* pw;
+ CMap* pm;
+ CSlider* ps;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ if ( bShow )
+ {
+ DimMap();
+ }
+ else
+ {
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm != 0 )
+ {
+ pm->ClearState(STATE_VISIBLE);
+ }
+
+ ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
+ if ( ps != 0 )
+ {
+ ps->ClearState(STATE_VISIBLE);
+ }
+ }
+}
+
+// Dimensions of the mini-map.
+
+void CMainMap::DimMap()
+{
+ CWindow* pw;
+ CMap* pm;
+ CSlider* ps;
+ Math::Point pos, dim;
+ float value;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return;
+
+ pm->SetState(STATE_VISIBLE, (m_mapMode != 0));
+
+ dim.x = 100.0f/640.0f;
+ dim.y = 100.0f/480.0f;
+ pos.x = 540.0f/640.0f;
+ pos.y = 0.0f/480.0f;
+ pm->SetPos(pos);
+ pm->SetDim(dim);
+
+ ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
+ if ( ps != 0 )
+ {
+ ps->SetState(STATE_VISIBLE, (m_mapMode != 0));
+
+ dim.x = SCROLL_WIDTH;
+ dim.y = 66.0f/480.0f;
+ pos.x = 523.0f/640.0f;
+ pos.y = 3.0f/480.0f;
+ ps->SetPos(pos);
+ ps->SetDim(dim);
+
+ value = pm->RetZoom();
+ value = (value-ZOOM_MIN)/(ZOOM_MAX-ZOOM_MIN);
+ value = powf(value, 0.5f);
+ ps->SetVisibleValue(value);
+ ps->SetArrowStep(0.2f);
+ }
+}
+
+// Returns the current zoom of the minimap.
+
+float CMainMap::RetZoomMap()
+{
+ CWindow* pw;
+ CMap* pm;
+ CSlider* ps;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return ZOOM_MIN;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return ZOOM_MIN;
+
+ ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
+ if ( ps == 0 ) return ZOOM_MIN;
+
+ return pm->RetZoom();
+}
+
+// Zoom the mini-map of any factor.
+
+void CMainMap::ZoomMap(float zoom)
+{
+ CWindow* pw;
+ CMap* pm;
+ CSlider* ps;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return;
+
+ ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
+ if ( ps == 0 ) return;
+
+ if ( zoom < ZOOM_MIN ) zoom = ZOOM_MIN;
+ if ( zoom > ZOOM_MAX ) zoom = ZOOM_MAX;
+ pm->SetZoom(zoom);
+
+ DimMap();
+}
+
+// The mini-map zoom depending on the slider.
+
+void CMainMap::ZoomMap()
+{
+ CWindow* pw;
+ CMap* pm;
+ CSlider* ps;
+ float zoom;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return;
+
+ ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
+ if ( ps == 0 ) return;
+
+ zoom = ps->RetVisibleValue();
+ zoom = powf(zoom, 2.0f);
+ zoom = ZOOM_MIN+zoom*(ZOOM_MAX-ZOOM_MIN);
+ pm->SetZoom(zoom);
+
+ DimMap();
+}
+
+// Enables or disables the card.
+
+void CMainMap::MapEnable(bool bEnable)
+{
+ CWindow* pw;
+ CMap* pm;
+ CSlider* ps;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm != 0 )
+ {
+ pm->SetEnable(bEnable);
+ }
+
+ ps = (CSlider*)pw->SearchControl(EVENT_OBJECT_MAPZOOM);
+ if ( ps != 0 )
+ {
+ ps->SetState(STATE_ENABLE, bEnable);
+ }
+}
+
+// Specifies the type of icon for the selected object.
+
+void CMainMap::SetToy(bool bToy)
+{
+ CWindow* pw;
+ CMap* pm;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return;
+
+ pm->SetToy(bToy);
+}
+
+// Specifies the parameters when using a still image.
+
+void CMainMap::SetFixParam(float zoom, float ox, float oy, float angle,
+ int mode, bool bDebug)
+{
+ CWindow* pw;
+ CMap* pm;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return;
+
+ pm->SetZoom(zoom);
+ pm->SetOffset(ox, oy);
+ pm->SetAngle(angle);
+ pm->SetMode(mode);
+ pm->SetDebug(bDebug);
+}
+
+// Updates the mini-map following to a change of terrain.
+
+void CMainMap::UpdateMap()
+{
+ CWindow* pw;
+ CMap* pm;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm != 0 )
+ {
+ pm->UpdateTerrain();
+ }
+}
+
+// Indicates if the mini-map is visible.
+
+bool CMainMap::RetShowMap()
+{
+ return ( m_mapMode != 0 );
+}
+
+// Indicates whether the mini-map displays a still image.
+
+bool CMainMap::RetFixImage()
+{
+ return m_bFixImage;
+}
+
+
+// The object is detected in the mini-map.
+
+CObject* CMainMap::DetectMap(Math::Point pos, bool &bInMap)
+{
+ CWindow* pw;
+ CMap* pm;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return 0;
+
+ bInMap = false;
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm == 0 ) return 0;
+ return pm->DetectObject(pos, bInMap);
+}
+
+
+// Indicates the object with the mouse hovers over.
+
+void CMainMap::SetHilite(CObject* pObj)
+{
+ CWindow* pw;
+ CMap* pm;
+
+ pw = (CWindow*)m_interface->SearchControl(EVENT_WINDOW1);
+ if ( pw == 0 ) return;
+
+ pm = (CMap*)pw->SearchControl(EVENT_OBJECT_MAP);
+ if ( pm != 0 )
+ {
+ pm->SetHilite(pObj);
+ }
+}
+
+