Пример #1
0
    // Token: 0x06001A29 RID: 6697 RVA: 0x000EAA18 File Offset: 0x000E8C18
    public static void amMotionSet(AMS_MOTION motion, int mbuf_id, int motion_id)
    {
        AMS_MOTION_BUF ams_MOTION_BUF = motion.mbuf[mbuf_id];

        ams_MOTION_BUF.motion_id = motion_id;
        ams_MOTION_BUF.frame     = motion.mtnfile[motion_id >> 16].motion[motion_id & 65535].StartFrame;
    }
Пример #2
0
    // Token: 0x06001A3A RID: 6714 RVA: 0x000EAE04 File Offset: 0x000E9004
    private void amMotionDraw(uint state, AMS_MOTION motion, NNS_TEXLIST texlist, uint drawflag,
                              NNS_MATERIALCALLBACK_FUNC func)
    {
        int node_num = motion.node_num;
        AMS_PARAM_DRAW_MOTION_TRS ams_PARAM_DRAW_MOTION_TRS = amDrawAlloc_AMS_PARAM_DRAW_MOTION_TRS();
        NNS_MATRIX nns_MATRIX = ams_PARAM_DRAW_MOTION_TRS.mtx = amDrawAlloc_NNS_MATRIX();

        nnCopyMatrix(nns_MATRIX, amMatrixGetCurrent());
        ams_PARAM_DRAW_MOTION_TRS._object       = motion._object;
        ams_PARAM_DRAW_MOTION_TRS.mtx           = nns_MATRIX;
        ams_PARAM_DRAW_MOTION_TRS.sub_obj_type  = 0U;
        ams_PARAM_DRAW_MOTION_TRS.flag          = drawflag;
        ams_PARAM_DRAW_MOTION_TRS.texlist       = texlist;
        ams_PARAM_DRAW_MOTION_TRS.trslist       = new NNS_TRS[node_num];
        ams_PARAM_DRAW_MOTION_TRS.material_func = func;
        for (int i = 0; i < node_num; i++)
        {
            ams_PARAM_DRAW_MOTION_TRS.trslist[i] = amDrawAlloc_NNS_TRS();
            ams_PARAM_DRAW_MOTION_TRS.trslist[i].Assign(motion.data[i]);
        }

        int motion_id = motion.mbuf[0].motion_id;

        ams_PARAM_DRAW_MOTION_TRS.motion = motion.mtnfile[motion_id >> 16].motion[motion_id & 65535];
        ams_PARAM_DRAW_MOTION_TRS.frame  = motion.mbuf[0].frame;
        amDrawRegistCommand(state, -11, ams_PARAM_DRAW_MOTION_TRS);
    }
Пример #3
0
    // Token: 0x06001A24 RID: 6692 RVA: 0x000EA598 File Offset: 0x000E8798
    public static void amMotionRegistFile(AMS_MOTION motion, int file_id, AMS_AMB_HEADER amb)
    {
        int                       num             = 0;
        AMS_MOTION_FILE           ams_MOTION_FILE = motion.mtnfile[0];
        ArrayPointer <NNS_MOTION> arrayPointer    = ams_MOTION_FILE.motion + ams_MOTION_FILE.motion_num;

        num++;
        int i = 1;

        while (i < 4)
        {
            ArrayPointer <NNS_MOTION> arrayPointer2 = motion.mtnfile[num].motion + motion.mtnfile[num].motion_num;
            if (arrayPointer < arrayPointer2)
            {
                arrayPointer = arrayPointer2;
            }

            i++;
            num++;
        }

        if (arrayPointer == null)
        {
            arrayPointer = new ArrayPointer <NNS_MOTION>(motion.mtnbuf, 0);
        }

        ams_MOTION_FILE            = motion.mtnfile[file_id];
        ams_MOTION_FILE.file       = amb;
        ams_MOTION_FILE.motion     = arrayPointer;
        ams_MOTION_FILE.motion_num = amMotionSetup(arrayPointer, amb);
    }
Пример #4
0
    // Token: 0x06001A46 RID: 6726 RVA: 0x000EB280 File Offset: 0x000E9480
    private void amMotionGetFrames(AMS_MOTION motion, int motion_id, out float start, out float end)
    {
        NNS_MOTION nns_MOTION = motion.mtnfile[motion_id >> 16].motion[motion_id & 65535];

        start = nns_MOTION.StartFrame;
        end   = nns_MOTION.EndFrame;
    }
Пример #5
0
    // Token: 0x06001A37 RID: 6711 RVA: 0x000EADB8 File Offset: 0x000E8FB8
    public static void amMotionMaterialCalc(AMS_MOTION motion)
    {
        if (!amThreadCheckDraw())
        {
            return;
        }

        nnCalcMaterialMotion(motion.mmobject, motion._object, motion.mmtn[motion.mmotion_id], motion.mmotion_frame);
    }
Пример #6
0
 // Token: 0x06001A34 RID: 6708 RVA: 0x000EAD20 File Offset: 0x000E8F20
 private static void amMotionMaterialRegistFile(AMS_MOTION motion, int file_id, object file)
 {
     motion.mmtn[file_id] = (NNS_MOTION)file;
     motion.mmotion_id    = file_id;
     motion.mmotion_frame = 0f;
     motion.mmobj_size    = 0U;
     motion.mmobject      = new NNS_OBJECT();
     nnInitMaterialMotionObject(motion.mmobject, motion._object, motion.mmtn[motion.mmotion_id]);
 }
Пример #7
0
    // Token: 0x06001A33 RID: 6707 RVA: 0x000EACA4 File Offset: 0x000E8EA4
    public static void amMotionMaterialRegistFile(AMS_MOTION motion, int file_id, AMS_AMB_HEADER amb)
    {
        int file_num = amb.file_num;

        for (int i = 0; i < file_num; i++)
        {
            motion.mmtn[file_id + i] = (NNS_MOTION)amb.buf[i];
        }

        motion.mmotion_id    = file_id;
        motion.mmotion_frame = 0f;
        motion.mmobj_size    = 0U;
        motion.mmobject      = new NNS_OBJECT();
        nnInitMaterialMotionObject(motion.mmobject, motion._object, motion.mmtn[motion.mmotion_id]);
    }
Пример #8
0
    // Token: 0x06001A2C RID: 6700 RVA: 0x000EAA84 File Offset: 0x000E8C84
    public static void amMotionCalc(AMS_MOTION motion, int mbuf_id)
    {
        int i = 0;

        while (i < 2)
        {
            if ((mbuf_id & 1) != 0 && !(motion.mbuf[i].mbuf == null))
            {
                int num  = motion.mbuf[i].motion_id;
                int num2 = num >> 16;
                num &= 65535;
                nnCalcTRSListMotion(motion.mbuf[i].mbuf.array, motion.mbuf[i].mbuf.offset, motion._object,
                                    motion.mtnfile[num2].motion[num], motion.mbuf[i].frame);
            }

            i++;
            mbuf_id >>= 1;
        }
    }
Пример #9
0
    // Token: 0x06001A3D RID: 6717 RVA: 0x000EAF10 File Offset: 0x000E9110
    private void amMotionMaterialDraw(uint state, AMS_MOTION motion, NNS_TEXLIST texlist, uint drawflag,
                                      NNS_MATERIALCALLBACK_FUNC func)
    {
        if (motion.mmobject == null)
        {
            amMotionDraw(state, motion, texlist, drawflag);
            return;
        }

        int node_num = motion.node_num;
        AMS_PARAM_DRAW_MOTION_TRS ams_PARAM_DRAW_MOTION_TRS = new AMS_PARAM_DRAW_MOTION_TRS();
        NNS_MATRIX nns_MATRIX = ams_PARAM_DRAW_MOTION_TRS.mtx = GlobalPool <NNS_MATRIX> .Alloc();

        nnCopyMatrix(nns_MATRIX, amMatrixGetCurrent());
        ams_PARAM_DRAW_MOTION_TRS.mtx           = nns_MATRIX;
        ams_PARAM_DRAW_MOTION_TRS.sub_obj_type  = 0U;
        ams_PARAM_DRAW_MOTION_TRS.flag          = drawflag;
        ams_PARAM_DRAW_MOTION_TRS.texlist       = texlist;
        ams_PARAM_DRAW_MOTION_TRS.trslist       = new NNS_TRS[node_num];
        ams_PARAM_DRAW_MOTION_TRS.material_func = func;
        for (int i = 0; i < node_num; i++)
        {
            ams_PARAM_DRAW_MOTION_TRS.trslist[i] = new NNS_TRS(motion.data[i]);
        }

        ams_PARAM_DRAW_MOTION_TRS._object = motion._object;
        ams_PARAM_DRAW_MOTION_TRS.mmotion = motion.mmtn[motion.mmotion_id];
        ams_PARAM_DRAW_MOTION_TRS.mframe  = motion.mmotion_frame;
        int motion_id = motion.mbuf[0].motion_id;

        if (motion.mtnfile[motion_id >> 16].file != null)
        {
            ams_PARAM_DRAW_MOTION_TRS.motion = motion.mtnfile[motion_id >> 16].motion[motion_id & 65535];
            ams_PARAM_DRAW_MOTION_TRS.frame  = motion.mbuf[0].frame;
        }
        else
        {
            ams_PARAM_DRAW_MOTION_TRS.motion = null;
            ams_PARAM_DRAW_MOTION_TRS.frame  = 0f;
        }

        amDrawRegistCommand(state, -12, ams_PARAM_DRAW_MOTION_TRS);
    }
Пример #10
0
    // Token: 0x06001A40 RID: 6720 RVA: 0x000EB068 File Offset: 0x000E9268
    private void amMotionDraw(AMS_MOTION motion, NNS_TEXLIST texlist, uint drawflag, NNS_MATERIALCALLBACK_FUNC func)
    {
        AMS_COMMAND_HEADER        ams_COMMAND_HEADER        = new AMS_COMMAND_HEADER();
        AMS_PARAM_DRAW_MOTION_TRS ams_PARAM_DRAW_MOTION_TRS =
            (AMS_PARAM_DRAW_MOTION_TRS)(ams_COMMAND_HEADER.param = new AMS_PARAM_DRAW_MOTION_TRS());

        ams_COMMAND_HEADER.command_id           = -11;
        ams_COMMAND_HEADER.param                = ams_PARAM_DRAW_MOTION_TRS;
        ams_PARAM_DRAW_MOTION_TRS._object       = motion._object;
        ams_PARAM_DRAW_MOTION_TRS.mtx           = null;
        ams_PARAM_DRAW_MOTION_TRS.sub_obj_type  = 0U;
        ams_PARAM_DRAW_MOTION_TRS.flag          = drawflag;
        ams_PARAM_DRAW_MOTION_TRS.texlist       = texlist;
        ams_PARAM_DRAW_MOTION_TRS.trslist       = motion.data;
        ams_PARAM_DRAW_MOTION_TRS.material_func = func;
        int motion_id = motion.mbuf[0].motion_id;

        ams_PARAM_DRAW_MOTION_TRS.motion = motion.mtnfile[motion_id >> 16].motion[motion_id & 65535];
        ams_PARAM_DRAW_MOTION_TRS.frame  = motion.mbuf[0].frame;
        _amDrawMotionTRS(ams_COMMAND_HEADER, drawflag);
    }
Пример #11
0
    // Token: 0x06001A2F RID: 6703 RVA: 0x000EAB54 File Offset: 0x000E8D54
    public static void amMotionApply(AMS_MOTION motion, float marge, float per)
    {
        ArrayPointer <NNS_TRS> arrayPointer = motion.mbuf[0].mbuf;

        if (per <= 0f)
        {
            return;
        }

        if (motion.mbuf[1].mbuf != null)
        {
            if (marge >= 1f)
            {
                arrayPointer = motion.mbuf[1].mbuf;
            }
            else if (marge > 0f)
            {
                if (per >= 1f)
                {
                    nnLinkMotion(motion.data, motion.mbuf[0].mbuf, motion.mbuf[1].mbuf, motion.node_num, marge);
                    return;
                }

                arrayPointer = motion.mmbuf;
                nnLinkMotion(arrayPointer, motion.mbuf[0].mbuf, motion.mbuf[1].mbuf, motion.node_num, marge);
            }
        }

        if (per >= 1f)
        {
            for (int i = 0; i < motion.node_num; i++)
            {
                motion.data[i].Assign(arrayPointer[i]);
            }

            return;
        }

        nnLinkMotion(motion.data, motion.data, arrayPointer, motion.node_num, per);
    }
Пример #12
0
    // Token: 0x06001A25 RID: 6693 RVA: 0x000EA644 File Offset: 0x000E8844
    public static void amMotionRegistFile(AMS_MOTION motion, int file_id, object buf)
    {
        int                       num             = 0;
        AMS_MOTION_FILE           ams_MOTION_FILE = motion.mtnfile[0];
        ArrayPointer <NNS_MOTION> arrayPointer    = ams_MOTION_FILE.motion + ams_MOTION_FILE.motion_num;

        num++;
        int i = 1;

        while (i < 4)
        {
            ArrayPointer <NNS_MOTION> arrayPointer2 = motion.mtnfile[num].motion + motion.mtnfile[num].motion_num;
            if (arrayPointer < arrayPointer2)
            {
                arrayPointer = arrayPointer2;
            }

            i++;
            num++;
        }

        if (arrayPointer == null)
        {
            arrayPointer = new ArrayPointer <NNS_MOTION>(motion.mtnbuf, 0);
        }

        ams_MOTION_FILE        = motion.mtnfile[file_id];
        ams_MOTION_FILE.file   = buf;
        ams_MOTION_FILE.motion = arrayPointer;
        if (buf is NNS_MOTION)
        {
            ams_MOTION_FILE.motion_num = 1;
            motion.mtnbuf[0]           = (NNS_MOTION)buf;
            return;
        }

        ams_MOTION_FILE.motion_num = amMotionSetup(arrayPointer, buf);
    }
Пример #13
0
 // Token: 0x06001A39 RID: 6713 RVA: 0x000EADF3 File Offset: 0x000E8FF3
 private void amMotionDraw(uint state, AMS_MOTION motion, NNS_TEXLIST texlist, uint drawflag)
 {
     amMotionDraw(state, motion, texlist, drawflag, null);
 }
Пример #14
0
 // Token: 0x06001A38 RID: 6712 RVA: 0x000EADE6 File Offset: 0x000E8FE6
 private void amMotionDraw(uint state, AMS_MOTION motion, NNS_TEXLIST texlist)
 {
     amMotionDraw(state, motion, texlist, 0U, null);
 }
Пример #15
0
    // Token: 0x06001A2A RID: 6698 RVA: 0x000EAA5C File Offset: 0x000E8C5C
    public static void amMotionSetFrame(AMS_MOTION motion, int mbuf_id, float frame)
    {
        AMS_MOTION_BUF ams_MOTION_BUF = motion.mbuf[mbuf_id];

        ams_MOTION_BUF.frame = frame;
    }
Пример #16
0
 // Token: 0x06001A2D RID: 6701 RVA: 0x000EAB34 File Offset: 0x000E8D34
 private void amMotionApply(AMS_MOTION motion)
 {
     amMotionApply(motion, 0f, 1f);
 }
Пример #17
0
 // Token: 0x06001A42 RID: 6722 RVA: 0x000EB129 File Offset: 0x000E9329
 private void amMotionMaterialDraw(AMS_MOTION motion, NNS_TEXLIST texlist, uint drawflag)
 {
     amMotionMaterialDraw(motion, texlist, drawflag, null);
 }
Пример #18
0
 // Token: 0x06001A23 RID: 6691 RVA: 0x000EA595 File Offset: 0x000E8795
 public static void amMotionDelete(AMS_MOTION motion)
 {
 }
Пример #19
0
 // Token: 0x06001A2B RID: 6699 RVA: 0x000EAA79 File Offset: 0x000E8C79
 public static void amMotionCalc(AMS_MOTION motion)
 {
     amMotionCalc(motion, -1);
 }
Пример #20
0
 // Token: 0x06001A32 RID: 6706 RVA: 0x000EAC92 File Offset: 0x000E8E92
 public static void amMotionGet(AMS_MOTION motion, float marge, float per)
 {
     amMotionCalc(motion);
     amMotionApply(motion, marge, per);
 }
Пример #21
0
 // Token: 0x06001A31 RID: 6705 RVA: 0x000EAC84 File Offset: 0x000E8E84
 public static void amMotionGet(AMS_MOTION motion, float marge)
 {
     amMotionGet(motion, marge, 1f);
 }
Пример #22
0
 // Token: 0x06001A30 RID: 6704 RVA: 0x000EAC72 File Offset: 0x000E8E72
 public static void amMotionGet(AMS_MOTION motion)
 {
     amMotionGet(motion, 0f, 1f);
 }
Пример #23
0
 // Token: 0x06001A41 RID: 6721 RVA: 0x000EB11D File Offset: 0x000E931D
 private void amMotionMaterialDraw(AMS_MOTION motion, NNS_TEXLIST texlist)
 {
     amMotionMaterialDraw(motion, texlist, 0U, null);
 }
Пример #24
0
 // Token: 0x06001A35 RID: 6709 RVA: 0x000EAD7D File Offset: 0x000E8F7D
 public static void amMotionMaterialSet(AMS_MOTION motion, int motion_id)
 {
     motion.mmotion_id    = motion_id;
     motion.mmotion_frame = 0f;
     nnInitMaterialMotionObject(motion.mmobject, motion._object, motion.mmtn[motion.mmotion_id]);
 }
Пример #25
0
 // Token: 0x06001A45 RID: 6725 RVA: 0x000EB25A File Offset: 0x000E945A
 public static float amMotionGetEndFrame(AMS_MOTION motion, int motion_id)
 {
     return(motion.mtnfile[motion_id >> 16].motion[motion_id & 65535].EndFrame);
 }
Пример #26
0
 // Token: 0x06001A36 RID: 6710 RVA: 0x000EADAF File Offset: 0x000E8FAF
 public static void amMotionMaterialSetFrame(AMS_MOTION motion, float frame)
 {
     motion.mmotion_frame = frame;
 }
Пример #27
0
 // Token: 0x06001A48 RID: 6728 RVA: 0x000EB2CF File Offset: 0x000E94CF
 public static float amMotionMaterialGetEndFrame(AMS_MOTION motion, int motion_id)
 {
     return(motion.mmtn[motion.mmotion_id].EndFrame);
 }
Пример #28
0
    // Token: 0x06001A22 RID: 6690 RVA: 0x000EA3A4 File Offset: 0x000E85A4
    public static AMS_MOTION amMotionCreate(NNS_OBJECT _object, int motion_num, int mmotion_num, int flag)
    {
        motion_num  = (motion_num + 3 & -4);
        mmotion_num = (mmotion_num + 3 & -4);
        int        nNode      = _object.nNode;
        AMS_MOTION ams_MOTION = new AMS_MOTION();

        ams_MOTION.mtnbuf   = new NNS_MOTION[motion_num];
        ams_MOTION.mmtn     = new NNS_MOTION[mmotion_num];
        ams_MOTION.data     = New <NNS_TRS>(((flag & 1) != 0) ? (4 * nNode) : (2 * nNode));
        ams_MOTION._object  = _object;
        ams_MOTION.node_num = nNode;
        int i;

        for (i = 0; i < 4; i++)
        {
            ams_MOTION.mtnfile[i].file       = null;
            ams_MOTION.mtnfile[i].motion     = null;
            ams_MOTION.mtnfile[i].motion_num = 0;
        }

        ams_MOTION.motion_num = motion_num;
        for (i = 0; i < motion_num; i++)
        {
            ams_MOTION.mtnbuf[i] = null;
        }

        ArrayPointer <AMS_MOTION_BUF> pointer = ams_MOTION.mbuf;

        i = 0;
        while (i < 2)
        {
            (~pointer).motion_id = 0;
            (~pointer).frame     = 0f;
            if (i == 0)
            {
                (~pointer).mbuf = new ArrayPointer <NNS_TRS>(ams_MOTION.data, nNode);
            }
            else if ((flag & 1) != 0)
            {
                (~pointer).mbuf  = ams_MOTION.mbuf[0].mbuf + nNode;
                ams_MOTION.mmbuf = ams_MOTION.mbuf[1].mbuf + nNode;
                nnCalcTRSList(ams_MOTION.mbuf[1].mbuf.array, ams_MOTION.mbuf[1].mbuf.offset, _object);
            }
            else
            {
                (~pointer).mbuf  = null;
                ams_MOTION.mmbuf = null;
            }

            i++;
            pointer = ++pointer;
        }

        nnCalcTRSList(ams_MOTION.mbuf[0].mbuf.array, ams_MOTION.mbuf[0].mbuf.offset, _object);
        nnCalcTRSList(ams_MOTION.data, 0, _object);
        ams_MOTION.mmobject    = null;
        ams_MOTION.mmobj_size  = 0U;
        ams_MOTION.mmotion_num = mmotion_num;
        return(ams_MOTION);
    }