Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
120 lines
2.5 KiB
C++
120 lines
2.5 KiB
C++
// LoadingLogDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "loadinglogdlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CLoadingLogDlg dialog
|
|
|
|
|
|
CLoadingLogDlg::CLoadingLogDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CLoadingLogDlg::IDD, pParent)
|
|
{
|
|
count = 0;
|
|
maxCount = -1;
|
|
stopProcess = FALSE;
|
|
loading = FALSE;
|
|
//{{AFX_DATA_INIT(CLoadingLogDlg)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CLoadingLogDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CLoadingLogDlg)
|
|
// NOTE: the ClassWizard will add DDX and DDV calls here
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CLoadingLogDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CLoadingLogDlg)
|
|
ON_WM_TIMER()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CLoadingLogDlg message handlers
|
|
|
|
void CLoadingLogDlg::OnCancel()
|
|
{
|
|
//afxDump << "CLoadingLogDlg::OnCancel" << "\n";
|
|
// TODO: Add extra cleanup here
|
|
stopProcess = TRUE;
|
|
//CDialog::OnCancel();
|
|
}
|
|
|
|
void CLoadingLogDlg::CancelRecived()
|
|
{
|
|
//afxDump << "CLoadingLogDlg::CancelRecived" << "\n";
|
|
CDialog::OnCancel();
|
|
}
|
|
|
|
void CLoadingLogDlg::OnTimer(UINT nIDEvent)
|
|
{
|
|
if (!loading)
|
|
{
|
|
loading = TRUE;
|
|
document->LoadResource(*ar, this);
|
|
KillTimer(1);
|
|
loading = FALSE;
|
|
CancelRecived();
|
|
|
|
return;
|
|
}
|
|
|
|
CProgressCtrl* pBar = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS);
|
|
pBar->SetPos(count * 100 / maxCount);
|
|
|
|
|
|
CDialog::OnTimer(nIDEvent);
|
|
}
|
|
|
|
void CLoadingLogDlg::AddString(CString message)
|
|
{
|
|
|
|
CListBox* pList = (CListBox*)GetDlgItem(IDC_EDIT_BOX);
|
|
pList->AddString(message);
|
|
}
|
|
|
|
void CLoadingLogDlg::SetTopIndex(int index)
|
|
{
|
|
|
|
CListBox* pList = (CListBox*)GetDlgItem(IDC_EDIT_BOX);
|
|
pList->SetTopIndex(index);
|
|
}
|
|
|
|
int CLoadingLogDlg::DoModal(CArchive& t_ar, CLabRatDoc *t_document)
|
|
{
|
|
//TRACE("CLoadingLogDlg::DoModal\n");
|
|
ar = &t_ar;
|
|
document = t_document;
|
|
|
|
return CDialog::DoModal();
|
|
}
|
|
|
|
BOOL CLoadingLogDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
//TRACE("CLoadingLogDlg::OnInitDialog\n");
|
|
|
|
loading_timer = SetTimer(1, 100, NULL);
|
|
|
|
CProgressCtrl* pBar = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS);
|
|
pBar->SetRange(0, 100);
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|