/* ** Command & Conquer Renegade(tm) ** Copyright 2025 Electronic Arts Inc. ** ** 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 . */ // GeneratingPathfindDialog.cpp : implementation file // #include "stdafx.h" #include "leveledit.h" #include "GeneratingPathfindDialog.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // // GeneratingPathfindDialogClass // ///////////////////////////////////////////////////////////////////////////// GeneratingPathfindDialogClass::GeneratingPathfindDialogClass(CWnd *parent) : m_Cancelled (false), CDialog(GeneratingPathfindDialogClass::IDD, parent) { //{{AFX_DATA_INIT(GeneratingPathfindDialogClass) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT Create (GeneratingPathfindDialogClass::IDD, parent); return ; } ///////////////////////////////////////////////////////////////////////////// // // DoDataExchange // ///////////////////////////////////////////////////////////////////////////// void GeneratingPathfindDialogClass::DoDataExchange (CDataExchange *pDX) { CDialog::DoDataExchange (pDX); //{{AFX_DATA_MAP(GeneratingPathfindDialogClass) DDX_Control(pDX, IDC_PROGRESS_BAR, m_ProgressBar); //}}AFX_DATA_MAP return ; } BEGIN_MESSAGE_MAP(GeneratingPathfindDialogClass, CDialog) //{{AFX_MSG_MAP(GeneratingPathfindDialogClass) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // // OnInitDialog // ///////////////////////////////////////////////////////////////////////////// BOOL GeneratingPathfindDialogClass::OnInitDialog (void) { CDialog::OnInitDialog (); Set_State (STATE_FLOODFILL); m_ProgressBar.SetRange (0, 100); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // // OnCancel // ///////////////////////////////////////////////////////////////////////////// void GeneratingPathfindDialogClass::OnCancel (void) { m_Cancelled = true; ::EnableWindow (::GetDlgItem (m_hWnd, IDCANCEL), FALSE); CWaitCursor wait_cursor; Set_Status ("Operation Cancelled!", -1); return ; } ///////////////////////////////////////////////////////////////////////////// // // Set_State // ///////////////////////////////////////////////////////////////////////////// void GeneratingPathfindDialogClass::Set_State (STATE state) { if (state == STATE_FLOODFILL) { ::ShowWindow (::GetDlgItem (m_hWnd, IDC_FLOODFILL_MARK), SW_SHOW); ::ShowWindow (::GetDlgItem (m_hWnd, IDC_COMPRESSING_MARK), SW_HIDE); } else if (state == STATE_COMPRESS) { ::ShowWindow (::GetDlgItem (m_hWnd, IDC_FLOODFILL_MARK), SW_HIDE); ::ShowWindow (::GetDlgItem (m_hWnd, IDC_COMPRESSING_MARK), SW_SHOW); } return ; } ///////////////////////////////////////////////////////////////////////////// // // Set_Status // ///////////////////////////////////////////////////////////////////////////// void GeneratingPathfindDialogClass::Set_Status (LPCTSTR text, float percent) { if (percent > 0) { m_ProgressBar.SetPos (percent * 100); } SetDlgItemText (IDC_STATUS_TEXT, text); return ; } ///////////////////////////////////////////////////////////////////////////// // // WindowProc // ///////////////////////////////////////////////////////////////////////////// LRESULT GeneratingPathfindDialogClass::WindowProc ( UINT message, WPARAM wParam, LPARAM lParam ) { if (message == WM_USER + 101) { ::DestroyWindow (m_hWnd); ::PostQuitMessage (0); } return CDialog::WindowProc (message, wParam, lParam); }