From ebed57aa22b772211387a5561f995eee8f5faed1 Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Tue, 26 Jun 2012 22:23:05 +0200 Subject: 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 in d3dengine.h --- src/ui/mainmap.cpp | 804 ++++++++++++++++++++++++++--------------------------- 1 file changed, 402 insertions(+), 402 deletions(-) (limited to 'src/ui/mainmap.cpp') 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 -#include -#include - -#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 +#include +#include + +#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); + } +} + + -- cgit v1.2.3-1-g7c22