Пример #1
0
 public void SetEntry(int index, SRT0TextureEntry value)
 {
     *(SRT0TextureEntry*)(Address + GetOffset(index)) = value;
 }
Пример #2
0
 public void SetEntry(int index, SRT0TextureEntry value)
 {
     *(SRT0TextureEntry *)(Address + GetOffset(index)) = value;
 }
        public static KeyframeCollection DecodeSRT0Keyframes(SRT0TextureEntry* entry, int numFrames)
        {
            KeyframeCollection kf = new KeyframeCollection(numFrames);
            bfloat* sPtr = (bfloat*)entry->Data;
            SRT0Code code = entry->Code;

            if (!code.NoScale)
            {
                if (code.ScaleIsotropic)
                {
                    if (code.FixedScaleX)
                        kf[KeyFrameMode.ScaleXYZ, 0] = *sPtr++;
                    else
                        DecodeSRT0Frames(kf, (VoidPtr)sPtr + *(buint*)sPtr++, KeyFrameMode.ScaleXYZ);
                }
                else
                {
                    if (code.FixedScaleX)
                        kf[KeyFrameMode.ScaleX, 0] = *sPtr++;
                    else
                        DecodeSRT0Frames(kf, (VoidPtr)sPtr + *(buint*)sPtr++, KeyFrameMode.ScaleX);
                    if (code.FixedScaleY)
                        kf[KeyFrameMode.ScaleY, 0] = *sPtr++;
                    else
                        DecodeSRT0Frames(kf, (VoidPtr)sPtr + *(buint*)sPtr++, KeyFrameMode.ScaleY);
                }
            }
            if (!code.NoRotation)
                if (code.FixedRotation)
                    kf[KeyFrameMode.RotX, 0] = *sPtr++;
                else
                    DecodeSRT0Frames(kf, (VoidPtr)sPtr + *(buint*)sPtr++, KeyFrameMode.RotX);

            if (!code.NoTranslation)
            {
                if (code.FixedX)
                    kf[KeyFrameMode.TransX, 0] = *sPtr++;
                else
                    DecodeSRT0Frames(kf, (VoidPtr)sPtr + *(buint*)sPtr++, KeyFrameMode.TransX);
                if (code.FixedY)
                    kf[KeyFrameMode.TransY, 0] = *sPtr++;
                else
                    DecodeSRT0Frames(kf, (VoidPtr)sPtr + *(buint*)sPtr++, KeyFrameMode.TransY);
            }

            return kf;
        }