/* FinalSun/FinalAlert 2 Mission Editor Copyright (C) 1999-2024 Electronic Arts, Inc. Authored by Matthias Wagner 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 . */ // MapD.cpp: Implementierungsdatei // #include "stdafx.h" #include "FinalSun.h" #include "MapD.h" #include "resource.h" #include "mapdata.h" #include "variables.h" #include "functions.h" #include "changesizedlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // Eigenschaftenseite CMapD IMPLEMENT_DYNCREATE(CMapD, CDialog) CMapD::CMapD() : CDialog(CMapD::IDD) { //{{AFX_DATA_INIT(CMapD) m_Width = _T(""); m_Height = _T(""); //}}AFX_DATA_INIT } CMapD::~CMapD() { } void CMapD::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMapD) DDX_Control(pDX, IDC_USESIZE, m_LocalSize); DDX_Control(pDX, IDC_THEATER, m_Theater); DDX_Text(pDX, IDC__SIZEX, m_Width); DDX_Text(pDX, IDC__SIZEY, m_Height); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CMapD, CDialog) //{{AFX_MSG_MAP(CMapD) ON_EN_CHANGE(IDC_USESIZE, OnChangeUsesize) ON_CBN_EDITCHANGE(IDC_THEATER, OnEditchangeTheater) ON_BN_CLICKED(IDC_CHANGELOCAL, OnChangelocal) ON_CBN_SELCHANGE(IDC_THEATER, OnEditchangeTheater) ON_BN_CLICKED(IDC_CHANGE, OnChange) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // Behandlungsroutinen für Nachrichten CMapD void CMapD::UpdateDialog() { CIniFile& ini = Map->GetIniFile(); m_LocalSize.SetWindowText(ini.GetString("Map", "LocalSize")); //m_Size.SetWindowText( ini.sections["Map"].values["Size"] ); m_Theater.SetWindowText(ini.GetString("Map", "Theater")); char c[50]; itoa(Map->GetWidth(), c, 10); m_Width = c; itoa(Map->GetHeight(), c, 10); m_Height = c; CDialog::UpdateData(FALSE); } void CMapD::UpdateData() { //MessageBox("This function ( UpdateData() ) should not be called, please contact the author."); } void CMapD::OnChangeUsesize() { } void CMapD::OnEditchangeTheater() { CIniFile& ini = Map->GetIniFile(); ini.SetString("Map", "Theater", GetText(&m_Theater)); } void CMapD::UpdateStrings() { CString curCaption; GetWindowText(curCaption); SetWindowText(TranslateStringACP(curCaption)); GetDlgItem(IDC_DESC)->SetWindowText(GetLanguageStringACP("MapDesc")); GetDlgItem(IDC_SIZEFRAME)->SetWindowText(GetLanguageStringACP("MapSizeFrame")); GetDlgItem(IDC_LSIZE)->SetWindowText(GetLanguageStringACP("MapSize")); GetDlgItem(IDC_USEABLEFRAME)->SetWindowText(GetLanguageStringACP("MapVisibleSizeFrame")); GetDlgItem(IDC_LUSEABLE)->SetWindowText(GetLanguageStringACP("MapVisibleSize")); GetDlgItem(IDC_LTHEATER)->SetWindowText(GetLanguageStringACP("MapTheater")); GetDlgItem(IDC_MAP_D_WIDTH)->SetWindowText(GetLanguageStringACP("MapWidth")); GetDlgItem(IDC_MAP_D_HEIGHT)->SetWindowText(GetLanguageStringACP("MapHeight")); GetDlgItem(IDC_CHANGELOCAL)->SetWindowText(GetLanguageStringACP("MapChange")); GetDlgItem(IDC_CHANGE)->SetWindowText(GetLanguageStringACP("MapChange")); } void CMapD::OnChangelocal() { CIniFile& ini = Map->GetIniFile(); ini.SetString("Map", "LocalSize", GetText(&m_LocalSize)); Map->CalcMapRect(); ((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_isoview->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); } void CMapD::OnChange() { /* CDialog::UpdateData(TRUE); int width, height; width=atoi(m_Width); height=atoi(m_Height); Map->ResizeMap(width, height); ((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_isoview->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); */ CChangeSizeDlg dlg; if (dlg.DoModal() == IDCANCEL) return; if (dlg.m_Width < 16 || dlg.m_Width>400 || dlg.m_Height < 16 || dlg.m_Height>400 || (dlg.m_Width + dlg.m_Height) > 512) { MessageBox("Width and Height must both be between 16 and 400 and both added must be less than 512.", "Error"); return; } Map->ResizeMap(dlg.m_Left, dlg.m_Top, dlg.m_Width, dlg.m_Height); ((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_isoview->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); ((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_minimap.UpdateView(); char c[50]; itoa(dlg.m_Width, c, 10); m_Width = c; itoa(dlg.m_Height, c, 10); m_Height = c; CDialog::UpdateData(FALSE); }