⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 terraineffecteditordlg.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	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 + -