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

📄 skydialog.cpp

📁 3D游戏场景编辑器
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	
}

void CSkyDialog::OnSkybottom() 
{
	if (m_SkyBottom.GetCheck() == 0)
	{
		ResetSkySurface(m_SkyBottomCombo, SkyFace_Bottom);
	}

	UpdateSkyFaceUI (m_SkyBottom, m_SkyBottomCombo, SkyFace_Bottom);
}

void CSkyDialog::OnSkyfront() 
{
	if (m_SkyFront.GetCheck() == 0)
	{
		ResetSkySurface(m_SkyFrontCombo, SkyFace_Front);
	}

	UpdateSkyFaceUI (m_SkyFront, m_SkyFrontCombo, SkyFace_Front);
}

void CSkyDialog::OnSkyleft() 
{
	if (m_SkyLeft.GetCheck() == 0)
	{
		ResetSkySurface(m_SkyLeftCombo, SkyFace_Left);
	}

	UpdateSkyFaceUI (m_SkyLeft, m_SkyLeftCombo, SkyFace_Left);
}

void CSkyDialog::OnSkyright() 
{
	if (m_SkyRight.GetCheck() == 0)
	{
		ResetSkySurface(m_SkyRightCombo, SkyFace_Right);
	}

	UpdateSkyFaceUI (m_SkyRight, m_SkyRightCombo, SkyFace_Right);
}

void CSkyDialog::OnSkytop() 
{
	if (m_SkyTop.GetCheck() == 0)
	{
		ResetSkySurface(m_SkyTopCombo, SkyFace_Top);
	}
	
	UpdateSkyFaceUI (m_SkyTop, m_SkyTopCombo, SkyFace_Top);
}



void CSkyDialog::UpdateFaceTextureName (CComboBox &FaceCombo, int FaceIndex, bool bGotOne)
{
	int Index;

	assert (FaceIndex >= 0);
	assert (FaceIndex < 6);
	char *pFaceName = NULL;
	if (bGotOne == false)
	{
		SkyFaceTexture *SkyFaces;
		char *pFaceName;
		pFaceName = Util_Strdup ("");
		geVec3d Axis;
		geFloat Speed, Scale;
	
		SkyFaces = Level_GetSkyInfo (m_pGenEditDoc->pLevel, &Axis, &Speed, &Scale);

		SkyFaces[FaceIndex].TextureName = pFaceName;

		return;
	}

	Index = FaceCombo.GetCurSel ();
	if (Index != CB_ERR)
	{
		CString FaceString, AllSameString;

		FaceCombo.GetLBText (Index, FaceString);
		if (m_pGenEditDoc != NULL)
		{
			SkyFaceTexture *SkyFaces;
			geVec3d Axis;
			geFloat Speed, Scale;
	
			SkyFaces = Level_GetSkyInfo (m_pGenEditDoc->pLevel, &Axis, &Speed, &Scale);
			pFaceName = SkyFaces[FaceIndex].TextureName;
			if (pFaceName != NULL)
			{
				geRam_Free (pFaceName);
				pFaceName = NULL;
			}

			pFaceName = Util_Strdup (FaceString);
			SkyFaces[FaceIndex].TextureName = pFaceName;

			CString testString = (CString)pFaceName;
			FaceCombo.GetLBText (Index, FaceString);
			if (testString != FaceString)
				AfxMessageBox("Unable to correctly process sky texture");

								//	test to see if this face is different from AllTheSame
			if (m_SkyAlltheSameCombo.GetCurSel() != -1)	//	is it not blank?
			{					//	get a string for the current selection
				m_SkyAlltheSameCombo.GetLBText(m_SkyAlltheSameCombo.GetCurSel(), AllSameString);
								//	if this string don't match with the AllTheSame?
				if (FaceString != AllSameString)
				{				//	blank the AllTheSame combo
					m_SkyAlltheSameCombo.SetCurSel(-1);
				}
			}
		}
	}
	return;
}

	
void CSkyDialog::OnSelchangeCbskyleft() 
{
	UpdateFaceTextureName (m_SkyLeftCombo, SkyFace_Left, true);
}

void CSkyDialog::OnSelchangeCbskyright() 
{
	UpdateFaceTextureName (m_SkyRightCombo, SkyFace_Right, true);
}

void CSkyDialog::OnSelchangeCbskytop() 
{
	UpdateFaceTextureName (m_SkyTopCombo, SkyFace_Top, true);
}

void CSkyDialog::OnSelchangeCbskybottom() 
{
	UpdateFaceTextureName (m_SkyBottomCombo, SkyFace_Bottom, true);
}

void CSkyDialog::OnSelchangeCbskyfront() 
{
	UpdateFaceTextureName (m_SkyFrontCombo, SkyFace_Front, true);
}

void CSkyDialog::OnSelchangeCbskyback() 
{
	UpdateFaceTextureName (m_SkyBackCombo, SkyFace_Back, true);
}



void CSkyDialog::OnSelchangeCBallsame() 
{
	int		currSel = m_SkyAlltheSameCombo.GetCurSel();

	m_SkyLeftCombo.SetCurSel(currSel);
	m_SkyRightCombo.SetCurSel(currSel);
	m_SkyTopCombo.SetCurSel(currSel);	
	m_SkyBottomCombo.SetCurSel(currSel);
	m_SkyFrontCombo.SetCurSel(currSel);
	m_SkyBackCombo.SetCurSel(currSel);

	UpdateFaceTextureName (m_SkyLeftCombo, SkyFace_Left, true);
	UpdateFaceTextureName (m_SkyRightCombo, SkyFace_Right, true);
	UpdateFaceTextureName (m_SkyTopCombo, SkyFace_Top, true);
	UpdateFaceTextureName (m_SkyBottomCombo, SkyFace_Bottom, true);
	UpdateFaceTextureName (m_SkyFrontCombo, SkyFace_Front, true);
	UpdateFaceTextureName (m_SkyBackCombo, SkyFace_Back, true);
	
	m_SkyLeftCombo.EnableWindow();
	m_SkyRightCombo.EnableWindow();
	m_SkyTopCombo.EnableWindow();
	m_SkyBottomCombo.EnableWindow();
	m_SkyFrontCombo.EnableWindow();
	m_SkyBackCombo.EnableWindow();

	m_SkyLeft.SetCheck(1);
	m_SkyRight.SetCheck(1);
	m_SkyTop.SetCheck(1);
	m_SkyBottom.SetCheck(1);
	m_SkyFront.SetCheck(1);
	m_SkyBack.SetCheck(1);

	OnSkyleft();
	OnSkyright();
	OnSkytop();
	OnSkybottom();
	OnSkyfront();
	OnSkyback();

	UpdateData(TRUE);
	
}


void CSkyDialog::OnClearAllBtn() 
{
	m_SkyLeftCombo.SetCurSel(-1);
	m_SkyRightCombo.SetCurSel(-1);
	m_SkyTopCombo.SetCurSel(-1);
	m_SkyBottomCombo.SetCurSel(-1);
	m_SkyFrontCombo.SetCurSel(-1);
	m_SkyBackCombo.SetCurSel(-1);
	m_SkyAlltheSameCombo.SetCurSel(-1);

	UpdateFaceTextureName (m_SkyLeftCombo, SkyFace_Left, false);
	UpdateFaceTextureName (m_SkyRightCombo, SkyFace_Right, false);
	UpdateFaceTextureName (m_SkyTopCombo, SkyFace_Top, false);
	UpdateFaceTextureName (m_SkyBottomCombo, SkyFace_Bottom, false);
	UpdateFaceTextureName (m_SkyFrontCombo, SkyFace_Front, false);
	UpdateFaceTextureName (m_SkyBackCombo, SkyFace_Back, false);

	m_SkyLeftCombo.EnableWindow(FALSE);
	m_SkyRightCombo.EnableWindow(FALSE);
	m_SkyTopCombo.EnableWindow(FALSE);
	m_SkyBottomCombo.EnableWindow(FALSE);
	m_SkyFrontCombo.EnableWindow(FALSE);
	m_SkyBackCombo.EnableWindow(FALSE);

	m_SkyLeft.SetCheck(0);
	m_SkyRight.SetCheck(0);
	m_SkyTop.SetCheck(0);
	m_SkyBottom.SetCheck(0);
	m_SkyFront.SetCheck(0);
	m_SkyBack.SetCheck(0);

	OnSkyleft();
	OnSkyright();
	OnSkytop();
	OnSkybottom();
	OnSkyfront();
	OnSkyback();
	UpdateData(TRUE);
	
}




static const geVec3d AxisVectors[3] =
	{
		{1.0f, 0.0f, 0.0f},
		{0.0f, 1.0f, 0.0f},
		{0.0f, 0.0f, 1.0f}
	};

void CSkyDialog::OnAxisButton() 
{
	UpdateData (TRUE);
	Level_SetSkyRotationAxis (m_pGenEditDoc->pLevel, &AxisVectors[m_RotationAxis]);
}

void CSkyDialog::OnKillfocusEditspeed() 
{
	UpdateData (TRUE);

	Level_SetSkyRotationSpeed (m_pGenEditDoc->pLevel, m_RotationSpeed);
}

void CSkyDialog::OnKillfocusEditscale() 
{
	UpdateData (TRUE);

	Level_SetSkyTextureScale(m_pGenEditDoc->pLevel, m_RotationSpeed);
}

void CSkyDialog::OnOK() 
{
	UpdateData(TRUE);

						//	post 0.5 release
						//	set command panel to the templates tab
	if (m_pGenEditDoc->mpMainFrame->m_CommandDialogBar)
	{
		CTabCtrl*	pCommandPanelTabCtrl = 
		(CTabCtrl*)m_pGenEditDoc->mpMainFrame->m_CommandDialogBar.GetDlgItem(IDC_COMMAND_TAB);
		pCommandPanelTabCtrl->SetCurSel((MAINFRM_COMMANDPANEL_TAB)MAINFRM_COMMANDPANEL_TEMPLATES);
		m_pGenEditDoc->mpMainFrame->SetCommandPanelTab(MAINFRM_COMMANDPANEL_TEMPLATES);
	}

	this->DestroyWindow();	// post 0.5 release
//	CDialog::OnOK(); //for modal dialog
}

			//	post 0.5 release
void CSkyDialog::OnClose() 
{
	OnOK();	
	CDialog::OnClose();
}

			//	post 0.5 release
void CSkyDialog::OnMouseMove(UINT nFlags, CPoint point) 
{
	if (GetFocus() != this)
		SetFocus();
	
	CDialog::OnMouseMove(nFlags, point);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -