Exemplo n.º 1
0
        public WeenieError PerformMovement(MovementStruct mvs, Sequence seq)
        {
            if (Table == null)
            {
                return(WeenieError.NoAnimationTable);
            }

            uint counter = 0;

            switch (mvs.Type)
            {
            case MovementType.InterpretedCommand:
                if (!Table.DoObjectMotion(mvs.Motion, State, seq, mvs.Params.Speed, ref counter))
                {
                    return(WeenieError.NoMtableData);
                }

                add_to_queue(mvs.Motion, counter, seq);
                return(WeenieError.None);

            case MovementType.StopInterpretedCommand:
                if (!Table.StopObjectMotion(mvs.Motion, mvs.Params.Speed, State, seq, ref counter))
                {
                    return(WeenieError.NoMtableData);
                }

                add_to_queue((uint)MotionCommand.Ready, counter, seq);
                return(WeenieError.None);

            case MovementType.StopCompletely:
                Table.StopObjectCompletely(State, seq, ref counter);
                add_to_queue((uint)MotionCommand.Ready, counter, seq);
                return(WeenieError.None);

            default:
                return(WeenieError.None);       // ??
            }
        }
Exemplo n.º 2
0
        public Sequence PerformMovement(MovementStruct mvs, Sequence seq)
        {
            if (Table == null)
            {
                return(new Sequence(0x7));
            }

            uint counter = 0;

            switch (mvs.Type)
            {
            case MovementType.InterpretedCommand:
                if (!Table.DoObjectMotion((uint)mvs.Motion, State, seq, mvs.Params.Speed, ref counter))
                {
                    return(new Sequence(0x43));
                }

                add_to_queue((uint)mvs.Motion, counter, seq);
                return(null);

            case MovementType.StopInterpretedCommand:
                if (!Table.StopObjectMotion((uint)mvs.Motion, mvs.Params.Speed, State, seq, ref counter))
                {
                    return(new Sequence(0x43));
                }

                add_to_queue(0x41000003, counter, seq);
                return(null);

            case MovementType.StopCompletely:
                Table.StopObjectCompletely(State, seq, ref counter);
                add_to_queue(0x41000003, counter, seq);
                return(null);;

            default:
                return(seq);
            }
        }