📄 terraineffecteditordlg.cpp
字号:
int nAmount = m_setUnit.size();
fwrite(&nAmount, sizeof(int), 1, fp);
for(int i = 0; i < nAmount; i ++)
{
TerrainEffectUnitInfo* pInfo= m_setUnit[i];
MYASSERT(pInfo);
fwrite(pInfo, sizeof(TerrainEffectUnitInfo), 1, fp);
}
fclose(fp);
this->SetTimer(WM_TIMER, 30, NULL);
}
//-------------------------------------------------
void CTerrainEffectEditorDlg::OnButtonSave()
{
// TODO: Add your control notification handler code here
this->OnSave();
}
//-------------------------------------------------
void CTerrainEffectEditorDlg::OnButtonLoad()
{
// TODO: Add your control notification handler code here
this->OnLoad();
}
//-------------------------------------------------
void CTerrainEffectEditorDlg::OnButtonNew()
{
// TODO: Add your control notification handler code here
CDialogNew dialogNew;
if(IDOK == dialogNew.DoModal())
{
this->DestroyUnit();
this->FlashEditList();
}
else
{
return;
}
}
void CTerrainEffectEditorDlg::OnDblclkList()
{
// TODO: Add your control notification handler code here
}
void CTerrainEffectEditorDlg::OnEditchangeComboD()
{
// TODO: Add your control notification handler code here
this->UpdateData(true);
int nS = m_ctlS.GetCurSel();
int nD = m_ctlD.GetCurSel();
if(m_bPreview)
{
if(m_ctlPart.GetCurSel() > 0)
{
if(m_p3DMapEffect)
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, m_ctlPart.GetCurSel() - 1, nS, nD);
}
if(m_ctlPart.GetCurSel() == 0)
{
if(m_p3DMapEffect)
for(int i = 0; i < m_p3DMapEffect->QueryGame3DEffectEx()->GetPartAmount(0); i++)
{
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, i, nS, nD);
}
}
}
this->Update();
}
void CTerrainEffectEditorDlg::OnEditchangeComboS()
{
// TODO: Add your control notification handler code here
this->UpdateData(true);
int nS = m_ctlS.GetCurSel();
int nD = m_ctlD.GetCurSel();
if(m_bPreview)
{
if(m_ctlPart.GetCurSel() > 0)
{
if(m_p3DMapEffect)
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, m_ctlPart.GetCurSel() - 1, nS, nD);
}
if(m_ctlPart.GetCurSel() == 0)
{
if(m_p3DMapEffect)
for(int i = 0; i < m_p3DMapEffect->QueryGame3DEffectEx()->GetPartAmount(0); i++)
{
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, i, nS, nD);
}
}
}
this->Update();
}
void CTerrainEffectEditorDlg::OnSelchangeComboD()
{
// TODO: Add your control notification handler code here
int nSelect = m_ctlPart.GetCurSel();
this->UpdateData(true);
int nS = m_ctlS.GetCurSel()+1;
int nD = m_ctlD.GetCurSel()+1;
if(m_bPreview)
{
if(m_ctlPart.GetCurSel() > 0)
{
if(m_p3DMapEffect)
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, m_ctlPart.GetCurSel() - 1, nS, nD);
}
if(m_ctlPart.GetCurSel() == 0)
{
if(m_p3DMapEffect)
for(int i = 0; i < m_p3DMapEffect->QueryGame3DEffectEx()->GetPartAmount(0); i++)
{
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, i, nS, nD);
}
}
}
this->Update();
m_ctlPart.SetCurSel(nSelect);
}
void CTerrainEffectEditorDlg::OnSelchangeComboS()
{
// TODO: Add your control notification handler code here
int nSelect = m_ctlPart.GetCurSel();
this->UpdateData(true);
int nS = m_ctlS.GetCurSel()+1;
int nD = m_ctlD.GetCurSel()+1;
if(m_bPreview)
{
if(m_ctlPart.GetCurSel() > 0)
{
if(m_p3DMapEffect)
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, m_ctlPart.GetCurSel() - 1, nS, nD);
}
if(m_ctlPart.GetCurSel() == 0)
{
if(m_p3DMapEffect)
for(int i = 0; i < m_p3DMapEffect->QueryGame3DEffectEx()->GetPartAmount(0); i++)
{
m_p3DMapEffect->QueryGame3DEffectEx()->SetBlend(0, i, nS, nD);
}
}
}
this->Update();
m_ctlPart.SetCurSel(nSelect);
}
void CTerrainEffectEditorDlg::OnButtonM1()
{
// TODO: Add your control notification handler code here
int nSelect = m_ctlPart.GetCurSel();
m_ctlS.SetCurSel(5-1);
m_ctlD.SetCurSel(6-1);
this->UpdateData(false);
this->OnSelchangeComboS();
m_ctlPart.SetCurSel(nSelect);
}
void CTerrainEffectEditorDlg::OnButtonM2()
{
// TODO: Add your control notification handler code here
int nSelect = m_ctlPart.GetCurSel();
m_ctlS.SetCurSel(1);
m_ctlD.SetCurSel(1);
this->UpdateData(false);
this->OnSelchangeComboS();
m_ctlPart.SetCurSel(nSelect);
}
void CTerrainEffectEditorDlg::OnButtonM3()
{
// TODO: Add your control notification handler code here
int nSelect = m_ctlPart.GetCurSel();
m_ctlS.SetCurSel(1);
m_ctlD.SetCurSel(9);
this->UpdateData(false);
this->OnSelchangeComboS();
m_ctlPart.SetCurSel(nSelect);
}
void CTerrainEffectEditorDlg::OnButtonM4()
{
// TODO: Add your control notification handler code here
int nSelect = m_ctlPart.GetCurSel();
m_ctlS.SetCurSel(8);
m_ctlD.SetCurSel(9);
this->UpdateData(false);
this->OnSelchangeComboS();
m_ctlPart.SetCurSel(nSelect);
}
void CTerrainEffectEditorDlg::Update()
{
int nIndex = this->m_ctrlList.GetCurSel();
if(nIndex<0)
return;
CString m_objStr;
this->m_ctrlList.GetText(nIndex, m_objStr);
CMy3DEffectInfo* pInfo = (CMy3DEffectInfo*)g_obj3DRoleData.GetMy3DEffectInfo(m_objStr.GetBuffer(255));
if(pInfo)
{
if(m_ctlPart.GetCurSel() > 0)
{
pInfo->nASB[m_ctlPart.GetCurSel()-1] = m_ctlS.GetCurSel()+1;
pInfo->nADB[m_ctlPart.GetCurSel()-1] = m_ctlD.GetCurSel()+1;
}
if(m_ctlPart.GetCurSel() == 0)
{
for(int i = 0; i < pInfo->nAmount; i ++)
{
pInfo->nASB[i] = m_ctlS.GetCurSel()+1;
pInfo->nADB[i] = m_ctlD.GetCurSel()+1;
}
}
}
this->Preview();
}
void CTerrainEffectEditorDlg::OnButtonUpdatetofile()
{
// TODO: Add your control notification handler code here
g_obj3DRoleData.UpdateMy3DEffectInfo();
}
void CTerrainEffectEditorDlg::OnButtonWeapon()
{
// TODO: Add your control notification handler code here
}
void CTerrainEffectEditorDlg::OnSelchangeListPart()
{
// TODO: Add your control notification handler code here
int nIndex = this->m_ctrlList.GetCurSel();
if(nIndex<0)
return;
CString m_objStr;
this->m_ctrlList.GetText(nIndex, m_objStr);
CMy3DEffectInfo* pInfo = (CMy3DEffectInfo*)g_obj3DRoleData.GetMy3DEffectInfo(m_objStr.GetBuffer(255));
int nS, nD;
if(pInfo)
{
if(m_ctlPart.GetCurSel() > 0 && (m_ctlPart.GetCurSel()-1) <= pInfo->nAmount)
{
nD = pInfo->nADB[m_ctlPart.GetCurSel()-1];
nS = pInfo->nASB[m_ctlPart.GetCurSel()-1];
}
else
{
nS = 5;
nD = 6;
}
}
m_ctlS.SetCurSel(nS-1);
m_ctlD.SetCurSel(nD-1);
}
void CTerrainEffectEditorDlg::OnRadioG()
{
// TODO: Add your control notification handler code here
this->UpdateData();
this->Preview();
}
void CTerrainEffectEditorDlg::OnRadioH()
{
// TODO: Add your control notification handler code here
this->UpdateData();
this->Preview();
}
void CTerrainEffectEditorDlg::OnRadioW()
{
// TODO: Add your control notification handler code here
this->UpdateData();
this->Preview();
}
void CTerrainEffectEditorDlg::OnButtonHero()
{
// TODO: Add your control notification handler code here
static bShow = false;
if(!bShow)
m_dlgHero.ShowWindow(SW_SHOW);
else
m_dlgHero.ShowWindow(SW_HIDE);
bShow = !bShow;
}
void CTerrainEffectEditorDlg::OnButtonSelect()
{
// TODO: Add your control notification handler code here
this->FlashList();
}
void CTerrainEffectEditorDlg::OnButtonAll()
{
// TODO: Add your control notification handler code here
const char szFile[]="ini/3Deffect.ini";
this->m_ctrlList.ResetContent();
FILE* fp = fopen(szFile, "r");
if(!fp)
return;
char szLine[256];
char szIndex[256];
int nIndex = 0;
while(true)
{
if(NULL == fgets(szLine, 255, fp))
break;
if(1 == sscanf(szLine, "[%s]", szIndex))
{
szIndex[strlen(szIndex)-1] = '\0';
m_ctrlList.InsertString(nIndex, szIndex);
nIndex ++;
}
}
fclose(fp);
}
void CTerrainEffectEditorDlg::OnButtonLoaddmap()
{
// TODO: Add your control notification handler code here
this->KillTimer(WM_TIMER);
static TCHAR strFileName[MAX_PATH] = TEXT("");
static TCHAR strPath[MAX_PATH] = TEXT("");
// Setup the OPENFILENAME structure
OPENFILENAME ofn = { sizeof(OPENFILENAME), this->GetSafeHwnd(), NULL,
TEXT("DMAP文件1.0\0*.DMAP\0所有文件\0*.*\0\0"), NULL,
0, 1, strFileName, MAX_PATH, NULL, 0, strPath,
TEXT("打开DMAP文件文件"),
OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_NOCHANGEDIR|OFN_OVERWRITEPROMPT,
0, 0,
TEXT(".DMAP"), 0, NULL, NULL };
// Display the OpenFileName dialog. Then, try to load the specified file
try
{
if( TRUE != GetOpenFileName( &ofn ) )
{
this->SetTimer(WM_TIMER, 30, NULL);
return;
}
}
catch(...)
{
}
g_objGameMap.LoadDataMap(strFileName);
g_objGameMap.GetInteractiveLayer()->AddMapObj(&g_objHero);
this->OnButtonTocentel();
this->SetTimer(WM_TIMER, 30, NULL);
}
void CTerrainEffectEditorDlg::OnOutofmemorySliderZoom(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CTerrainEffectEditorDlg::OnReleasedcaptureSliderZoom(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
this->UpdateData(true);
int nPos = m_ctlZoom.GetPos();
g_objHero.SetZoomPercent(nPos);
sprintf(m_strZoom.GetBuffer(0), "%d", nPos);
this->UpdateData(false);
*pResult = 0;
}
void CTerrainEffectEditorDlg::OnButtonCloneplyaer()
{
// TODO: Add your control notification handler code here
static OBJID s_idPlayer = 1;
CMyPos posHero;
g_objHero.GetPos(posHero);
CPlayer* pPlayer = CGamePlayerSet::CreateNewPlayer();
if(pPlayer)
{
pPlayer->SetID(s_idPlayer ++);
pPlayer->SetRoleType(_ROLE_PLAYER);
pPlayer->Create(g_objHero.GetLook());
pPlayer->SetRWeapon(g_objHero.GetRWeapon());
pPlayer->SetHair(g_objHero.GetHair());
pPlayer->SetArmor(g_objHero.GetArmor());
pPlayer->SetPos(posHero);
pPlayer->SetDir(g_objHero.GetDir());
}
//g_objPlayerSet.AddPlayer(pPlayer);
g_objGameMap.GetInteractiveLayer()->AddMapObj(pPlayer);
}
void CTerrainEffectEditorDlg::OnButtonEditrecover()
{
// TODO: Add your control notification handler code here
int nIndex = this->m_ctrlList.GetCurSel();
if(nIndex<0)
return;
CString m_objStr;
this->m_ctrlList.GetText(nIndex, m_objStr);
CMy3DEffectInfo* pInfo = (CMy3DEffectInfo*)g_obj3DRoleData.GetMy3DEffectInfo(m_objStr.GetBuffer(255));
if(pInfo)
{
// 清除后缀
char szIdex[64];
for(int i = 0; i < 64; i ++)
{
szIdex[i] = pInfo->szIndex[i];
if(szIdex[i] == '+')
szIdex[i] = '\0';
}
if(m_ctlVMesh.GetCurSel() > 0)
{
CString m_objMesh;
this->m_ctlVMesh.GetText(m_ctlVMesh.GetCurSel(), m_objMesh);
sprintf(pInfo->szIndex, "%s+%s", szIdex, m_objMesh.GetBuffer(255));
m_ctrlList.DeleteString(nIndex);
m_ctrlList.InsertString(nIndex, pInfo->szIndex);
m_ctrlList.SetCurSel(nIndex);
}
if(m_ctlVMesh.GetCurSel() == 0)
{
strcpy(pInfo->szIndex, szIdex);
m_ctrlList.DeleteString(nIndex);
m_ctrlList.InsertString(nIndex, pInfo->szIndex);
m_ctrlList.SetCurSel(nIndex);
}
}
this->Preview();
}
void CTerrainEffectEditorDlg::OnButtonEditcpoy()
{
// TODO: Add your control notification handler code here
int nIndex = this->m_ctrlList.GetCurSel();
if(nIndex<0)
return;
CString m_objStr;
this->m_ctrlList.GetText(nIndex, m_objStr);
CMy3DEffectInfo* pInfo = (CMy3DEffectInfo*)g_obj3DRoleData.GetMy3DEffectInfo(m_objStr.GetBuffer(255));
if(pInfo)
{
// 清除后缀
char szIdex[64];
for(int i = 0; i < 64; i ++)
{
szIdex[i] = pInfo->szIndex[i];
if(szIdex[i] == '+')
szIdex[i] = '\0';
}
if(m_ctlVMesh.GetCurSel() > 0)
{
CString m_objMesh;
this->m_ctlVMesh.GetText(m_ctlVMesh.GetCurSel(), m_objMesh);
sprintf(pInfo->szIndex, "%s+%s", szIdex, m_objMesh.GetBuffer(255));
m_ctrlList.DeleteString(nIndex);
m_ctrlList.InsertString(nIndex, pInfo->szIndex);
m_ctrlList.SetCurSel(nIndex);
}
if(m_ctlVMesh.GetCurSel() == 0)
{
strcpy(pInfo->szIndex, szIdex);
m_ctrlList.DeleteString(nIndex);
m_ctrlList.InsertString(nIndex, pInfo->szIndex);
m_ctrlList.SetCurSel(nIndex);
}
}
this->Preview();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -