Exemple #1
0
//jhefty - only apply settings that are different
void CLightDlg::OnApplyDifferences () {
	idDict differences, modified, original;

	UpdateLightInfoFromDialog();

	lightInfo.ToDict( &modified );
	lightInfoOriginal.ToDictWriteAllInfo( &original );

	differences = modified;

	// jhefty - compile a set of modified values to apply
	for ( int i = 0; i < modified.GetNumKeyVals (); i ++ ) {
		const idKeyValue* valModified = modified.GetKeyVal ( i );
		const idKeyValue* valOriginal = original.FindKey ( valModified->GetKey() );

		//if it hasn't changed, remove it from the list of values to apply
		if ( !valOriginal || ( valModified->GetValue() == valOriginal->GetValue() ) ) {
			differences.Delete ( valModified->GetKey() );
		}
	}

	SaveLightInfo( &differences );

	lightInfoOriginal.FromDict( &modified );

	Sys_UpdateWindows( W_ALL );
}
void CLightDlg::OnOK()
{
	UpdateLightInfoFromDialog();
	SaveLightInfo(NULL);
	Sys_UpdateWindows(W_ALL);
	CDialog::OnOK();
}
Exemple #3
0
void CLightDlg::UpdateColor( float r, float g, float b, float a ) {
	color[0] = a * r;
	color[1] = a * g;
	color[2] = a * b;
	ColorButtons();
	UpdateLightInfoFromDialog();
	SaveLightInfo( NULL );
	Sys_UpdateWindows( W_CAMERA );
}