Esempio n. 1
0
        public static void EditSubactionData(ref byte[] data, EditSubaction edit, SubactionGroup group)
        {
            for (int i = 0; i < data.Length;)
            {
                var sa = SubactionManager.GetSubaction(data[i], group);

                if (data[i] == 0)
                {
                    break;
                }

                // get parameters
                var p = sa.GetParameters(data, i);

                // make changes
                edit(sa, ref p);

                // recompile
                var test = sa.Compile(p);
                for (int j = 0; j < test.Length; j++)
                {
                    data[i + j] = test[j];
                }

                // advance to next action
                i += sa.ByteSize;
            }
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ftdat"></param>
        /// <param name="ajdat"></param>
        /// <param name="editAnim"></param>
        public static void EditFighterActions(string ftdat, EditSubaction editAction)
        {
            HSDRawFile ftfile = new HSDRawFile(ftdat);

            if (ftfile.Roots[0].Data is SBM_FighterData data)
            {
                var sa = data.FighterActionTable.Commands;

                foreach (var action in sa)
                {
                    editAction(action);
                }

                data.FighterActionTable.Commands = sa;

                ftfile.TrimData();
                ftfile.Save(ftdat);
            }
        }