public void WriteRGBAColor8(RGBAColor8 color) { base.Write(color.r); base.Write(color.g); base.Write(color.b); base.Write(color.a); }
public PIC1(ref EndianBinaryReader reader) : base(ref reader) { base.setType("Picture"); byte numParams = reader.ReadByte(); byte resourceType = reader.ReadByte(); mTextureName = reader.ReadStringLengthPrefix(); resourceType = reader.ReadByte(); mPaletteName = reader.ReadStringLengthPrefix(); mBinding = reader.ReadByte(); numParams -= 3; if (numParams > 0) { byte src = reader.ReadByte(); mMirror = (byte)(src & 0x3); mRotate90 = (byte)(src & 0x4); numParams--; } if (numParams > 0) { byte src = reader.ReadByte(); mWrapS = (byte)((src >> 2) & 0x3); mWrapT = (byte)(src & 0x3); numParams--; } if (numParams > 0) { mFromColor = reader.ReadRGBAColor8(); numParams--; } if (numParams > 0) { mToColor = reader.ReadRGBAColor8(); numParams--; } mColors = new RGBAColor8[4]; for (int i = 0; i < 4; ++i) { if (numParams > 0) { mColors[i] = reader.ReadRGBAColor8(); numParams--; } } reader.ReadAligned(0x4); }
public RGBAColor8 ReadRGBAColor8() { RGBAColor8 ret = new RGBAColor8 { r = ReadByte(), g = ReadByte(), b = ReadByte(), a = ReadByte() }; return(ret); }
public Material(ref EndianBinaryReader reader) { base.setType(Type._3DS); mName = reader.ReadString(0x14).Replace("\0", ""); mTevColor = reader.ReadRGBAColor8(); mTevConstantColors = new RGBAColor8[0x6]; for (int i = 0; i < 6; i++) { mTevConstantColors[i] = reader.ReadRGBAColor8(); } mFlags = reader.ReadUInt32(); mTexMapCount = ExtractBits(mFlags, 2, 0); mTexMtxCount = ExtractBits(mFlags, 2, 2); mTexCoordGenCount = ExtractBits(mFlags, 2, 4); mTevStageCount = ExtractBits(mFlags, 2, 6); mHasAlphaCompare = Convert.ToBoolean(ExtractBits(mFlags, 1, 9)); mHasBlendMode = Convert.ToBoolean(ExtractBits(mFlags, 1, 10)); mUseTextureOnly = Convert.ToBoolean(ExtractBits(mFlags, 1, 11)); mSeperateBlendMode = Convert.ToBoolean(ExtractBits(mFlags, 1, 12)); mHasIndParam = Convert.ToBoolean(ExtractBits(mFlags, 1, 14)); mProjTexGenParamCount = ExtractBits(mFlags, 2, 15); mHasFontShadowParam = Convert.ToBoolean(ExtractBits(mFlags, 1, 17)); mTexMaps = new List <TexMap>(); for (int i = 0; i < mTexMapCount; i++) { mTexMaps.Add(new TexMap(ref reader)); } mTexSRTs = new List <TexSRT>(); for (int i = 0; i < mTexMtxCount; i++) { mTexSRTs.Add(new TexSRT(ref reader)); } mTexCoords = new List <TexCoordGen>(); for (int i = 0; i < mTexCoordGenCount; i++) { mTexCoords.Add(new TexCoordGen(ref reader)); } mTevStages = new List <TevStage>(); for (int i = 0; i < mTevStageCount; i++) { mTevStages.Add(new TevStage(ref reader)); } if (mHasAlphaCompare) { mAlphaCompare = new AlphaCompare(ref reader); } if (mHasBlendMode) { mBlendMode_Blend = new BlendMode(ref reader); } if (mSeperateBlendMode) { mBlendMode_Logic = new BlendMode(ref reader); } if (mHasIndParam) { mIndParameter = new IndirectParameter(ref reader); } mProjTexGenParams = new List <ProjectionTexGenParam>(); for (int i = 0; i < mProjTexGenParamCount; i++) { mProjTexGenParams.Add(new ProjectionTexGenParam(ref reader)); } if (mHasFontShadowParam) { mFontShadowParam = new FontShadowParameter(ref reader); } }