public void SubactionGroupChanged() { if (_scriptType != ScriptType.Subactions) { return; } if (comboActionEntry.SelectedIndex == _subActionIndex) { comboBox1_SelectedIndexChanged(null, null); } else { comboActionEntry.SelectedIndex = _subActionIndex; } SubActionEntry grp = RunTime.CurrentSubaction; if (grp != null) { inTransTime.Value = grp._inTransTime; chkNoOutTrans.Checked = grp._flags.HasFlag(AnimationFlags.NoOutTransition); chkTransOutStart.Checked = grp._flags.HasFlag(AnimationFlags.TransitionOutFromStart); chkMovesChar.Checked = grp._flags.HasFlag(AnimationFlags.MovesCharacter); chkLoop.Checked = grp._flags.HasFlag(AnimationFlags.Loop); chkUnk.Checked = grp._flags.HasFlag(AnimationFlags.Unknown); chkFixedScale.Checked = grp._flags.HasFlag(AnimationFlags.FixedScale); chkFixedRot.Checked = grp._flags.HasFlag(AnimationFlags.FixedRotation); chkFixedTrans.Checked = grp._flags.HasFlag(AnimationFlags.FixedTranslation); lblActionName.Text = grp.Name; } }
private void ParseScripts(bint* hdr) { Script s = null; int size, count; bint* actionOffset; _subActions = new BindingList<SubActionEntry>(); _actions = new BindingList<ActionEntry>(); if (hdr[3] > 0) { ActionEntry ag; sActionFlags* aflags = (sActionFlags*)Address(hdr[3]); if (hdr[5] > 0) { actionOffset = (bint*)Address(hdr[5]); size = _root.GetSize(hdr[5]); for (int z = 0; z < size / 4; z++) { sActionFlags flag = aflags[z]; _actions.Add(ag = new ActionEntry(flag, z, z)); if (actionOffset[z] > 0) ag._entry = Parse<Script>(actionOffset[z], this); else ag._entry = new Script(this); } } } if (hdr[4] > 0) { SubActionEntry sg; sSubActionFlags* sflags = (sSubActionFlags*)Address(hdr[4]); size = _root.GetSize(hdr[6]); count = size / 4; for (int z = 0; z < count; z++) { sSubActionFlags flag = sflags[z]; _subActions.Add(sg = new SubActionEntry(flag, flag._stringOffset > 0 ? new String((sbyte*)Address(flag._stringOffset)) : "<null>", z)); } for (int i = 0; i < 3; i++) { int x = hdr[6 + i]; if (x <= 0) continue; actionOffset = (bint*)Address(x); for (int z = 0; z < count; z++) { if (actionOffset[z] > 0) s = Parse<Script>(actionOffset[z], this); else s = new Script(this); _subActions[z].SetWithType(i, s); } } } }