Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
248 lines
5.8 KiB
C++
248 lines
5.8 KiB
C++
// CharEffect.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "worldcreator.h"
|
|
#include "CharEffect.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CCharEffect dialog
|
|
|
|
|
|
CCharEffect::CCharEffect(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CCharEffect::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CCharEffect)
|
|
m_strEsfName = _T("");
|
|
m_fWRot = 0.0f;
|
|
m_fXPos = 0.0f;
|
|
m_fXRot = 0.0f;
|
|
m_fYPos = 0.0f;
|
|
m_fYRot = 0.0f;
|
|
m_fZPos = 0.0f;
|
|
m_fZRot = 0.0f;
|
|
m_strPivotName = _T("");
|
|
m_iPosUpdate = 1;
|
|
m_iRotUpdate = 1;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CCharEffect::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CCharEffect)
|
|
DDX_Text(pDX, IDC_ESF, m_strEsfName);
|
|
DDX_Text(pDX, IDC_WROT, m_fWRot);
|
|
DDX_Text(pDX, IDC_XPOS, m_fXPos);
|
|
DDX_Text(pDX, IDC_XROT, m_fXRot);
|
|
DDX_Text(pDX, IDC_YPOS, m_fYPos);
|
|
DDX_Text(pDX, IDC_YROT, m_fYRot);
|
|
DDX_Text(pDX, IDC_ZPOS, m_fZPos);
|
|
DDX_Text(pDX, IDC_ZROT, m_fZRot);
|
|
DDX_Text(pDX, IDC_PIVOTNAME, m_strPivotName);
|
|
DDX_Radio(pDX, IDC_RADIO1, m_iPosUpdate);
|
|
DDX_Radio(pDX, IDC_RADIO3, m_iRotUpdate);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CCharEffect, CDialog)
|
|
//{{AFX_MSG_MAP(CCharEffect)
|
|
ON_BN_CLICKED(IDC_ESFSEARCH, OnEsfsearch)
|
|
ON_BN_CLICKED(IDC_AUTO, OnAuto)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CCharEffect message handlers
|
|
|
|
void CCharEffect::OnEsfsearch()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
char str[] = "Esf ÆÄÀÏ(*.esf) |*.esf| ¸ðµçÆÄÀÏ(*.*)|*.*||";
|
|
CString strFilter = str;
|
|
|
|
CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this);
|
|
filedia.DoModal();
|
|
m_strEsfName = filedia.GetFileName();
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CCharEffect::OnOK()
|
|
{
|
|
// TODO: Add extra validation here
|
|
UpdateData(TRUE);
|
|
if(m_strEsfName.GetLength() <= 1 && m_strPivotName.GetLength() <= 1)
|
|
{
|
|
MessageBox("ÀÔ·ÂÀÌ À߸øµÇ¾ú½À´Ï´Ù.");
|
|
return;
|
|
}
|
|
PushCharEffectToEsf();
|
|
MessageBox("¼º°ø");
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CCharEffect::OnCancel()
|
|
{
|
|
// TODO: Add extra cleanup here
|
|
|
|
CDialog::OnCancel();
|
|
}
|
|
void CCharEffect::PushCharEffectToEsf()
|
|
{
|
|
char strBuffer[80][256];
|
|
int i;
|
|
|
|
memset(strBuffer,0,sizeof(char) * 256 * 80);
|
|
FILE *fp = fopen(m_strEsfName.LockBuffer(),"rt");
|
|
int iReadCount = 0;
|
|
while(!feof(fp))
|
|
{
|
|
fgets(strBuffer[iReadCount++],256,fp);
|
|
}
|
|
fclose(fp);
|
|
|
|
fp = fopen(m_strEsfName.LockBuffer(),"wt");
|
|
if( fp == NULL)
|
|
{
|
|
MessageBox("File ¿±â ½ÇÆÐ");
|
|
return;
|
|
}
|
|
for(i = 0; i < iReadCount; i++)
|
|
{
|
|
char tmpBuf[256];
|
|
strcpy(tmpBuf,strBuffer[i]);
|
|
char *token = strtok(tmpBuf,"\n\t ");
|
|
if(token != NULL)
|
|
{
|
|
if(!strcmp(token,"FIN:"))
|
|
continue;
|
|
if(!strcmp(token,"CHARACTER:"))
|
|
continue;
|
|
}
|
|
fputs(strBuffer[i],fp);
|
|
|
|
}
|
|
fprintf(fp,"\nCHARACTER: %s [ %f %f %f ] [ %f %f %f %f ] %d %d\n", m_strPivotName.LockBuffer(),m_fXPos,m_fYPos,m_fZPos,
|
|
m_fXRot,m_fYRot,m_fZRot,m_fWRot,m_iPosUpdate,m_iRotUpdate);
|
|
fprintf(fp,"FIN:\n");
|
|
fclose(fp);
|
|
|
|
}
|
|
|
|
void CCharEffect::OnAuto()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
// ÀÚµ¿À¸·Î Ŭ¸³º¸µå¿¡¼ Data Àоî¿È.
|
|
BOOL bActiveClipBoard = IsClipboardFormatAvailable (CF_TEXT) ;
|
|
if(bActiveClipBoard)
|
|
{
|
|
OpenClipboard ();
|
|
GLOBALHANDLE hGlobal = GetClipboardData (CF_TEXT) ;
|
|
if(hGlobal == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
char *pClipText = (char *) malloc(GlobalSize (hGlobal));
|
|
char *pGlobal;
|
|
pGlobal = (char *)GlobalLock (hGlobal) ;
|
|
if(pGlobal == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
strcpy (pClipText, pGlobal) ;
|
|
GlobalUnlock (hGlobal) ;
|
|
CloseClipboard () ;
|
|
|
|
char *token = strtok(pClipText,"\n\t ");
|
|
if(token == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
m_fXPos = atof(token);
|
|
token = strtok(NULL,"\n\t ");
|
|
if(token == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
m_fYPos = atof(token);
|
|
token = strtok(NULL,"\n\t ");
|
|
if(token == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
m_fZPos = atof(token);
|
|
|
|
token = strtok(NULL,"\n\t ");
|
|
if(token == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
m_fXRot = atof(token);
|
|
token = strtok(NULL,"\n\t ");
|
|
if(token == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
m_fYRot = atof(token);
|
|
token = strtok(NULL,"\n\t ");
|
|
if(token == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
m_fZRot = atof(token);
|
|
token = strtok(NULL,"\n\t ");
|
|
if(token == NULL)
|
|
{
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
m_fWRot = atof(token);
|
|
|
|
free(pClipText);
|
|
UpdateData(FALSE);
|
|
}
|
|
else
|
|
{
|
|
m_fXPos = m_fYPos = m_fZPos = m_fXRot = m_fYRot = m_fZRot = m_fWRot = 0.0f;
|
|
UpdateData(FALSE);
|
|
MessageBox("ClipBoard°¡ ¿ÇÁö ¾Ê½À´Ï´Ù.");
|
|
}
|
|
//
|
|
|
|
}
|