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

📄 windowparticleemitter2dialog.cpp

📁 骨骼动画....把魔兽模型解出的代码..
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				case DialogParticleEmitter2ButtonVariation:
				{
					InterpolatorDialog.Display(Window, StaticData.Variation, "Variation");
					return TRUE;
				}

				case DialogParticleEmitter2ButtonWidth:
				{
					InterpolatorDialog.Display(Window, StaticData.Width, "Width");
					return TRUE;
				}

				case DialogParticleEmitter2ButtonLength:
				{
					InterpolatorDialog.Display(Window, StaticData.Length, "Length");
					return TRUE;
				}

				case DialogParticleEmitter2ButtonGravity:
				{
					InterpolatorDialog.Display(Window, StaticData.Gravity, "Gravity");
					return TRUE;
				}

				case DialogParticleEmitter2ButtonLatitude:
				{
					InterpolatorDialog.Display(Window, StaticData.Latitude, "Latitude");
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedVisibility:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonVisibility), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedVisibility)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditVisibility), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedVisibility)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedEmissionRate:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonEmissionRate), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedEmissionRate)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditEmissionRate), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedEmissionRate)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedSpeed:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonSpeed), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedSpeed)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditSpeed), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedSpeed)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedVariation:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonVariation), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedVariation)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditVariation), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedVariation)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedWidth:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonWidth), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedWidth)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditWidth), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedWidth)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedLength:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonLength), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedLength)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditLength), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedLength)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedGravity:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonGravity), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedGravity)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditGravity), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedGravity)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonAnimatedLatitude:
				{
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2ButtonLatitude), CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedLatitude)));
					EnableWindow(GetDlgItem(Window, DialogParticleEmitter2EditLatitude), !CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedLatitude)));
					return TRUE;
				}

				case DialogParticleEmitter2ButtonOk:
				{
					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedVisibility)))
					{
						StaticData.Visibility.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditVisibility)));
					}

					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedEmissionRate)))
					{
						StaticData.EmissionRate.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditEmissionRate)));
					}

					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedSpeed)))
					{
						StaticData.Speed.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditSpeed)));
					}

					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedVariation)))
					{
						StaticData.Variation.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditVariation)));
					}

					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedWidth)))
					{
						StaticData.Width.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditWidth)));
					}

					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedLength)))
					{
						StaticData.Length.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLength)));
					}

					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedGravity)))
					{
						StaticData.Gravity.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditGravity)));
					}

					if(!CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAnimatedLatitude)))
					{
						StaticData.Latitude.SetStaticScalar(GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLatitude)));
					}

					StaticData.SegmentColor1 = Common.ColorToVector3(StaticColor1);
					StaticData.SegmentColor2 = Common.ColorToVector3(StaticColor2);
					StaticData.SegmentColor3 = Common.ColorToVector3(StaticColor3);
					StaticData.Alpha.x = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditAlpha1));
					StaticData.Alpha.y = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditAlpha2));
					StaticData.Alpha.z = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditAlpha3));
					StaticData.ParticleScaling.x = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditScaling1));
					StaticData.ParticleScaling.y = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditScaling2));
					StaticData.ParticleScaling.z = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditScaling3));
					StaticData.HeadLifeSpan.x = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLifeSpan1));
					StaticData.HeadLifeSpan.y = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLifeSpan2));
					StaticData.HeadLifeSpan.z = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLifeSpan3));
					StaticData.HeadDecay.x = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditDecay1));
					StaticData.HeadDecay.y = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditDecay2));
					StaticData.HeadDecay.z = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditDecay3));
					StaticData.TailLifeSpan.x = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLifeSpanTail1));
					StaticData.TailLifeSpan.y = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLifeSpanTail2));
					StaticData.TailLifeSpan.z = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLifeSpanTail3));
					StaticData.TailDecay.x = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditDecayTail1));
					StaticData.TailDecay.y = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditDecayTail2));
					StaticData.TailDecay.z = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditDecayTail3));

					StaticData.Rows = GetInt(GetDlgItem(Window, DialogParticleEmitter2EditRows));
					StaticData.Columns = GetInt(GetDlgItem(Window, DialogParticleEmitter2EditColumns));
					StaticData.PriorityPlane = GetInt(GetDlgItem(Window, DialogParticleEmitter2EditPriorityPlane));
					StaticData.ReplaceableId = GetInt(GetDlgItem(Window, DialogParticleEmitter2EditReplaceableId));
					StaticData.Time = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditTime));
					StaticData.LifeSpan = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditLifeSpan));
					StaticData.TailLength = GetFloat(GetDlgItem(Window, DialogParticleEmitter2EditTailLength));

					StaticData.SortPrimitivesFarZ = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonSortPrimitivesFarZ));
					StaticData.LineEmitter = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonLineEmitter));
					StaticData.ModelSpace = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonModelSpace));
					StaticData.AlphaKey = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonAlphaKey));
					StaticData.Unshaded = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonUnshaded));
					StaticData.Unfogged = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonUnfogged));
					StaticData.XYQuad = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonXYQuad));
					StaticData.Squirt = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonSquirt));
					StaticData.Head = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonHead));
					StaticData.Tail = CheckStateToBool(IsDlgButtonChecked(Window, DialogParticleEmitter2ButtonTail));

					StaticTexture = reinterpret_cast<MODEL_TEXTURE*>(::SendMessage(GetDlgItem(Window, DialogParticleEmitter2ComboTextureId), CB_GETITEMDATA, ::SendMessage(GetDlgItem(Window, DialogParticleEmitter2ComboTextureId), CB_GETCURSEL, 0, 0), 0));
					StaticData.FilterMode = static_cast<FILTER_MODE>(::SendMessage(GetDlgItem(Window, DialogParticleEmitter2ComboFilterMode), CB_GETITEMDATA, ::SendMessage(GetDlgItem(Window, DialogParticleEmitter2ComboFilterMode), CB_GETCURSEL, 0, 0), 0));

					RemoveWindow(Window);
					EndDialog(Window, 1);
					return TRUE;
				}

				case DialogParticleEmitter2ButtonCancel:
				{
					RemoveWindow(Window);
					EndDialog(Window, 0);
					return TRUE;
				}
			}

			return FALSE;
		}

		case WM_CLOSE:
		{
			::SendMessage(Window, WM_COMMAND, DialogParticleEmitter2ButtonCancel, 0);
			return TRUE;
		}
	}

	return FALSE;
}


//+-----------------------------------------------------------------------------
//| Builds the texture ID list
//+-----------------------------------------------------------------------------
VOID WINDOW_PARTICLE_EMITTER_2_DIALOG::BuildTextureIdList(HWND Window)
{
	INT i;
	INT Index;
	HWND ComboBox;

	ComboBox = GetDlgItem(Window, DialogParticleEmitter2ComboTextureId);
	if(ComboBox == NULL) return;

	Index = static_cast<INT>(::SendMessage(ComboBox, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(NAME_NO_ID.c_str())));
	::SendMessage(ComboBox, CB_SETITEMDATA, Index, 0);
	::SendMessage(ComboBox, CB_SETCURSEL, 0, 0);

	for(i = 0; i < Model.Data().TextureContainer.GetTotalSize(); i++)
	{
		if(Model.Data().TextureContainer.ValidIndex(i))
		{
			std::stringstream Stream;

			if(Model.Data().TextureContainer[i]->Data().FileName == "")
			{
				Stream << "Replaceable ID " << Model.Data().TextureContainer[i]->Data().ReplaceableId;
			}
			else
			{
				Stream << Model.Data().TextureContainer[i]->Data().FileName;
			}

			Index = static_cast<INT>(::SendMessage(ComboBox, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(Stream.str().c_str())));
			::SendMessage(ComboBox, CB_SETITEMDATA, Index, reinterpret_cast<LPARAM>(Model.Data().TextureContainer[i]));

			if(Model.Data().TextureContainer[i] == StaticTexture)
			{
				::SendMessage(ComboBox, CB_SETCURSEL, Index, 0);
			}
		}
	}
}

⌨️ 快捷键说明

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