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.
156 lines
3.4 KiB
C++
156 lines
3.4 KiB
C++
// FeatureLibView.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "imagegrinder.h"
|
|
#include "FeatureLibView.h"
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CFeatureLibView
|
|
|
|
IMPLEMENT_DYNCREATE(CFeatureLibView, CView)
|
|
|
|
CFeatureLibView::CFeatureLibView()
|
|
{
|
|
DiagPanel=NULL;
|
|
MaxWid=-1;
|
|
}
|
|
|
|
CFeatureLibView::~CFeatureLibView()
|
|
{
|
|
if(DiagPanel) delete DiagPanel;
|
|
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CFeatureLibView, CView)
|
|
//{{AFX_MSG_MAP(CFeatureLibView)
|
|
ON_WM_SIZE()
|
|
ON_COMMAND(ID_FILE_EXPORT_FEATUREFILE, OnFileExportFeaturefile)
|
|
ON_COMMAND(ID_FILE_IMPORT_FEATURES, OnFileImportFeatures)
|
|
ON_COMMAND(ID_EDIT_SELECTUNUSEDFEATURES, OnEditSelectunusedfeatures)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CFeatureLibView drawing
|
|
|
|
void CFeatureLibView::OnDraw(CDC* pDC)
|
|
{
|
|
CDocument* pDoc = GetDocument();
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CFeatureLibView diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void CFeatureLibView::AssertValid() const
|
|
{
|
|
CView::AssertValid();
|
|
}
|
|
|
|
void CFeatureLibView::Dump(CDumpContext& dc) const
|
|
{
|
|
CView::Dump(dc);
|
|
}
|
|
#endif //_DEBUG
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CFeatureLibView message handlers
|
|
|
|
BOOL CFeatureLibView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
|
|
{
|
|
|
|
// CMDIChildWnd::Create(NULL,"Feature Library",WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_CHILD,rectDefault,pParentWnd);
|
|
BOOL res;
|
|
res= CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
|
|
|
|
CRect rct;
|
|
DiagPanel=new CFeatureLibDiag;
|
|
res=DiagPanel->Create(CFeatureLibDiag::IDD,this);
|
|
ASSERT(res);
|
|
DiagPanel->GetWindowRect(&rct);
|
|
SetWindowPos(NULL,0,0,
|
|
rct.Width()+GetSystemMetrics(SM_CXSIZEFRAME)*2,
|
|
rct.Height()+GetSystemMetrics(SM_CXSIZEFRAME)+GetSystemMetrics(SM_CYCAPTION),
|
|
SWP_NOZORDER|SWP_NOMOVE);
|
|
DiagPanel->ShowWindow(SW_SHOW);
|
|
DiagPanel->SetView(this);
|
|
|
|
return res;
|
|
}
|
|
|
|
void CFeatureLibView::OnSize(UINT nType, int cx, int cy)
|
|
{
|
|
|
|
if(DiagPanel)
|
|
{
|
|
CRect sze;
|
|
DiagPanel->ResizeVert(cy);
|
|
DiagPanel->ResizeHor(cx);
|
|
if(MaxWid==-1)
|
|
{
|
|
CRect rct;
|
|
GetClientRect(rct);
|
|
DiagPanel->GetWindowRect(&rct);
|
|
MaxWid=rct.Width();
|
|
}
|
|
|
|
}
|
|
|
|
CView::OnSize(nType, cx, cy);
|
|
|
|
|
|
|
|
}
|
|
|
|
int CFeatureLibView::GetMaxWidth()
|
|
{
|
|
return MaxWid;
|
|
}
|
|
|
|
void CFeatureLibView::OnInitialUpdate()
|
|
{
|
|
CView::OnInitialUpdate();
|
|
|
|
ASSERT(DiagPanel);
|
|
DiagPanel->SetView(this);
|
|
}
|
|
|
|
void CFeatureLibView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
|
|
{
|
|
// TODO: Add your specialized code here and/or call the base class
|
|
DiagPanel->RefreshList();
|
|
|
|
}
|
|
|
|
void CFeatureLibView::OnFileExportFeaturefile()
|
|
{
|
|
CFileDialog dlg(FALSE,"igf","List.igf",NULL,"Feature List (*.igf)|*.igf||",NULL);
|
|
|
|
if(dlg.DoModal()==IDOK)
|
|
{
|
|
DiagPanel->SaveSelectedFeatures(dlg.GetPathName());
|
|
}
|
|
|
|
}
|
|
|
|
void CFeatureLibView::OnFileImportFeatures()
|
|
{
|
|
CFileDialog dlg(TRUE,NULL,NULL,NULL,"Feature List (*.igf)|*.igf||",NULL);
|
|
|
|
if(dlg.DoModal()==IDOK)
|
|
{
|
|
DiagPanel->LoadFeatures(dlg.GetPathName());
|
|
}
|
|
|
|
}
|
|
|
|
void CFeatureLibView::OnEditSelectunusedfeatures()
|
|
{
|
|
DiagPanel->SelectUnsed();
|
|
|
|
}
|