302 lines
8.9 KiB
C++
302 lines
8.9 KiB
C++
|
|
// EtActionToolDoc.cpp : CEtActionToolDoc Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#include "stdafx.h"
|
|||
|
|
#include "EtActionTool.h"
|
|||
|
|
|
|||
|
|
#include "EtActionToolDoc.h"
|
|||
|
|
#include "GlobalValue.h"
|
|||
|
|
#include "SkinPrevDlg.h"
|
|||
|
|
#include "SignalReportDlg.h"
|
|||
|
|
|
|||
|
|
#include "SignalManager.h"
|
|||
|
|
#include "ActionSignal.h"
|
|||
|
|
#include "SignalItem.h"
|
|||
|
|
#include "ActionElement.h"
|
|||
|
|
#include "MainFrm.h"
|
|||
|
|
#include "PaneDefine.h"
|
|||
|
|
#include "ActionPaneView.h"
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new DEBUG_NEW
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEtActionToolDoc
|
|||
|
|
|
|||
|
|
IMPLEMENT_DYNCREATE(CEtActionToolDoc, CDocument)
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CEtActionToolDoc, CDocument)
|
|||
|
|
ON_COMMAND(ID_FILE_OPEN, &CEtActionToolDoc::OnFileOpen)
|
|||
|
|
ON_COMMAND(ID_FILE_SAVE, &CEtActionToolDoc::OnFileSave)
|
|||
|
|
ON_COMMAND(ID_FILE_NEW, &CEtActionToolDoc::OnFileNew)
|
|||
|
|
ON_COMMAND(ID_SIGNAL_REPORT, &CEtActionToolDoc::OnSignalReport)
|
|||
|
|
ON_COMMAND(ID_SAVE_SIGNAL_REPORT, &CEtActionToolDoc::OnSaveSignalReport)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_SIGNAL_REPORT, &CEtActionToolDoc::OnUpdateSignalReport)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_SAVE_SIGNAL_REPORT, &CEtActionToolDoc::OnUpdateSaveSignalReport)
|
|||
|
|
ON_COMMAND(ID_FILE_EXPORT, &CEtActionToolDoc::OnFileExport)
|
|||
|
|
ON_COMMAND(ID_FILE_IMPORT, &CEtActionToolDoc::OnFileImport)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_FILE_EXPORT, &CEtActionToolDoc::OnUpdateOnFileExport)
|
|||
|
|
ON_UPDATE_COMMAND_UI(ID_FILE_IMPORT, &CEtActionToolDoc::OnUpdateOnFileImport)
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEtActionToolDoc <20><><EFBFBD><EFBFBD>/<2F>Ҹ<EFBFBD>
|
|||
|
|
|
|||
|
|
CEtActionToolDoc::CEtActionToolDoc()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><>ȸ<EFBFBD><C8B8> <20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CEtActionToolDoc::~CEtActionToolDoc()
|
|||
|
|
{
|
|||
|
|
CGlobalValue::GetInstance().CheckIn();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BOOL CEtActionToolDoc::OnNewDocument()
|
|||
|
|
{
|
|||
|
|
if (!CDocument::OnNewDocument())
|
|||
|
|
return FALSE;
|
|||
|
|
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD>ʱ<EFBFBD>ȭ <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
// SDI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
|||
|
|
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEtActionToolDoc serialization
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::Serialize(CArchive& ar)
|
|||
|
|
{
|
|||
|
|
if (ar.IsStoring())
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
/*
|
|||
|
|
DWORD dwAttr = GetFileAttributes( szFileName );
|
|||
|
|
if( dwAttr & FILE_ATTRIBUTE_READONLY ) {
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD> <20>Ӽ<EFBFBD><D3BC>Դϴ<D4B4>.\n\n%s", szFileName );
|
|||
|
|
MessageBox( ((CMainFrame*)AfxGetMainWnd())->m_hWnd, szStr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
*/
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20>ε<EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
CFile *pFile = ar.GetFile();
|
|||
|
|
CString szFileName = pFile->GetFilePath();
|
|||
|
|
|
|||
|
|
while(1) {
|
|||
|
|
CString szError;
|
|||
|
|
szError = CGlobalValue::GetInstance().IsCanCheckOut( szFileName );
|
|||
|
|
if( !szError.IsEmpty() ) {
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "<EFBFBD>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD> : %s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : %s", szFileName, szError );
|
|||
|
|
|
|||
|
|
int nResult = MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, szStr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_ABORTRETRYIGNORE );
|
|||
|
|
bool bStop = false;
|
|||
|
|
switch( nResult ) {
|
|||
|
|
case IDABORT: return;
|
|||
|
|
case IDRETRY: break;
|
|||
|
|
case IDIGNORE:
|
|||
|
|
bStop = true;
|
|||
|
|
CGlobalValue::GetInstance().IgnoreCheckOut( szFileName );
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
if( bStop == true ) break;
|
|||
|
|
}
|
|||
|
|
else break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().CheckIn();
|
|||
|
|
if( CGlobalValue::GetInstance().CheckOut( szFileName ) == false ) {
|
|||
|
|
MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, "üũ<EFBFBD>ƿ<EFBFBD> <20><><EFBFBD><EFBFBD>!! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if( CGlobalValue::GetInstance().OpenAction( szFileName ) == false ) {
|
|||
|
|
CGlobalValue::GetInstance().CheckIn();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEtActionToolDoc <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
void CEtActionToolDoc::AssertValid() const
|
|||
|
|
{
|
|||
|
|
CDocument::AssertValid();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::Dump(CDumpContext& dc) const
|
|||
|
|
{
|
|||
|
|
CDocument::Dump(dc);
|
|||
|
|
}
|
|||
|
|
#endif //_DEBUG
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEtActionToolDoc <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnFileOpen()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
TCHAR szFilter[] = _T( "Eternity Support File (*.skn;*.act)|*.skn;*.act|Eternity Skin File (*.skn)|*.skn|Eternity Action File (*.act)|*.act|All Files (*.*)|*.*||" );
|
|||
|
|
CSkinPrevDlg dlg( TRUE, _T("skn;act"), _T("*.skn;*.act"), OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_ENABLESIZING , szFilter, CGlobalValue::GetInstance().GetView() );
|
|||
|
|
|
|||
|
|
dlg.m_ofn.lpstrTitle = "Open Eternity Engine File";
|
|||
|
|
|
|||
|
|
if( IDOK != dlg.DoModal() ) return;
|
|||
|
|
|
|||
|
|
while(1) {
|
|||
|
|
CString szError;
|
|||
|
|
szError = CGlobalValue::GetInstance().IsCanCheckOut( dlg.GetPathName() );
|
|||
|
|
if( !szError.IsEmpty() ) {
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "<EFBFBD>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD> : %s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : %s", dlg.GetPathName(), szError );
|
|||
|
|
|
|||
|
|
int nResult = MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, szStr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_ABORTRETRYIGNORE );
|
|||
|
|
bool bStop = false;
|
|||
|
|
switch( nResult ) {
|
|||
|
|
case IDABORT: return;
|
|||
|
|
case IDRETRY: break;
|
|||
|
|
case IDIGNORE:
|
|||
|
|
CGlobalValue::GetInstance().IgnoreCheckOut( dlg.GetPathName() );
|
|||
|
|
bStop = true;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
if( bStop == true ) break;
|
|||
|
|
}
|
|||
|
|
else break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().CheckIn();
|
|||
|
|
if( CGlobalValue::GetInstance().CheckOut( dlg.GetPathName() ) == false ) {
|
|||
|
|
MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, "üũ<EFBFBD>ƿ<EFBFBD> <20><><EFBFBD><EFBFBD>!! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if( CGlobalValue::GetInstance().OpenAction( dlg.GetPathName() ) == false ) {
|
|||
|
|
CGlobalValue::GetInstance().CheckIn();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnFileSave()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
if( CGlobalValue::GetInstance().SaveAction() == false ) {
|
|||
|
|
MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, "<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnFileNew()
|
|||
|
|
{
|
|||
|
|
CGlobalValue::GetInstance().CheckIn();
|
|||
|
|
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
if( CGlobalValue::GetInstance().IsOpenAction() ) {
|
|||
|
|
CGlobalValue::GetInstance().Reset();
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
TCHAR szFilter[] = _T( "Eternity Action File (*.act)|*.act|All Files (*.*)|*.*||" );
|
|||
|
|
CSkinPrevDlg dlg( FALSE, _T("act"), _T("*.act"), OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_ENABLESIZING , szFilter, CGlobalValue::GetInstance().GetView() );
|
|||
|
|
|
|||
|
|
if( dlg.DoModal() != IDOK ) return;
|
|||
|
|
if( CGlobalValue::GetInstance().CreateAction( dlg.GetPathName() ) == true ) {
|
|||
|
|
if( CGlobalValue::GetInstance().CheckOut( dlg.GetPathName() ) == false ) {
|
|||
|
|
MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, "üũ<EFBFBD>ƿ<EFBFBD> <20><><EFBFBD><EFBFBD>!! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnSignalReport()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
CSignalReportDlg Dlg;
|
|||
|
|
|
|||
|
|
Dlg.DoModal();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnSaveSignalReport()
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command handler code here
|
|||
|
|
TCHAR szFilter[] = _T( "CSV File (*.csv)|*.csv|All Files (*.*)|*.*||" );
|
|||
|
|
CFileDialog dlg( FALSE, _T("csv"), _T("*.csv"), OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_ENABLESIZING , szFilter, CGlobalValue::GetInstance().GetView() );
|
|||
|
|
|
|||
|
|
if( dlg.DoModal() != IDOK ) return;
|
|||
|
|
CString szBuffer;
|
|||
|
|
CGlobalValue::GetInstance().CalcSignalReport( szBuffer );
|
|||
|
|
FILE *fp;
|
|||
|
|
fopen_s( &fp, dlg.GetPathName(), "w" );
|
|||
|
|
fprintf_s( fp, szBuffer );
|
|||
|
|
fclose(fp);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnUpdateSignalReport(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command update UI handler code here
|
|||
|
|
pCmdUI->Enable( CGlobalValue::GetInstance().IsOpenAction() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnUpdateSaveSignalReport(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your command update UI handler code here
|
|||
|
|
pCmdUI->Enable( CGlobalValue::GetInstance().IsOpenAction() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnFileExport()
|
|||
|
|
{
|
|||
|
|
std::vector<std::string> szVecActionList;
|
|||
|
|
CWnd *pWnd = GetPaneWnd( ACTION_PANE );
|
|||
|
|
if( pWnd ) ((CActionPaneView*)pWnd)->GetSelectActionList( szVecActionList );
|
|||
|
|
|
|||
|
|
if( szVecActionList.empty() ) {
|
|||
|
|
MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, "<EFBFBD>ͽ<EFBFBD><EFBFBD><EFBFBD>Ʈ <20><> <20><EFBFBD><D7BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TCHAR szFilter[] = _T( "actexport File (*.actexport)|*.actexport|All Files (*.*)|*.*||" );
|
|||
|
|
CFileDialog dlg( FALSE, _T("actexport"), _T("*.actexport"), OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_ENABLESIZING , szFilter, CGlobalValue::GetInstance().GetView() );
|
|||
|
|
|
|||
|
|
if( dlg.DoModal() != IDOK ) return;
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().ExportAction( dlg.GetPathName(), szVecActionList );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnFileImport()
|
|||
|
|
{
|
|||
|
|
TCHAR szFilter[] = _T( "actexport File (*.actexport)|*.actexport|All Files (*.*)|*.*||" );
|
|||
|
|
CFileDialog dlg( TRUE, _T("actexport"), _T("*.actexport"), OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_ENABLESIZING , szFilter, CGlobalValue::GetInstance().GetView() );
|
|||
|
|
|
|||
|
|
if( IDOK != dlg.DoModal() ) return;
|
|||
|
|
|
|||
|
|
CGlobalValue::GetInstance().ImportAction( dlg.GetPathName() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnUpdateOnFileImport(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
pCmdUI->Enable( CGlobalValue::GetInstance().IsOpenAction() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnUpdateOnFileExport(CCmdUI *pCmdUI)
|
|||
|
|
{
|
|||
|
|
pCmdUI->Enable( CGlobalValue::GetInstance().IsOpenAction() );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtActionToolDoc::OnCheckWalkfront()
|
|||
|
|
{
|
|||
|
|
int nResult = MessageBox( CGlobalValue::GetInstance().GetView()->m_hWnd, "Monster <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> act <20><><EFBFBD><EFBFBD> <20><> Walk_Front <20><EFBFBD><D7BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> üũ<C3BC>մϴ<D5B4>.\nȮ<EFBFBD>ο<EFBFBD> <20>ټ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20>ɸ<EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.(<28><><EFBFBD><EFBFBD> 5<><35>)\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻðڽ<EFBFBD><EFBFBD>ϱ<EFBFBD>?", "Ȯ<EFBFBD><EFBFBD>", MB_YESNO );
|
|||
|
|
if (nResult == IDYES)
|
|||
|
|
{
|
|||
|
|
CGlobalValue::GetInstance().CheckActionHasWalkFront();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|