public Bitmap GetSpriteBitmap(AnimSet set, Sprite sprite) { var mainSheet = set.GetSpriteSheetBitmaps(sprite.SpriteSheetIndex)[sprite.PaletteIndex]; Bitmap subSheet = null; if (sprite.Unknown0x00 != 0) { var subSetId = (ushort)(9001 + (sprite.Unknown0x00 * 100)); var subSet = GetAnimSet(subSetId); if (subSet != null) { subSheet = subSet.GetSpriteSheetBitmaps(0)[0]; } } return(GetSpriteBitmap(mainSheet, subSheet, sprite)); }
public override void ReadFromStream(Stream stream, Endian endianness) { EndianBinaryReader reader = new EndianBinaryReader(stream, endianness); NumAnimSets = reader.ReadUInt32(); AnimSetIDs = new ushort[NumAnimSets]; for (int i = 0; i < AnimSetIDs.Length; i++) { AnimSetIDs[i] = reader.ReadUInt16(); } stream.Position += ((reader.BaseStream.Position % 16) != 0 ? (16 - (reader.BaseStream.Position % 16)) : 16); AnimSets = new AnimSet[NumAnimSets]; for (int i = 0; i < AnimSets.Length; i++) { AnimSets[i] = new AnimSet(stream); } if (false) { // TEMP dump all spritesheets foreach (var s in AnimSetIDs) { TESTDumpSheets(s); } } if (false) { // TEMP dump stuff -- animations (tho they dont work right yet, herp derp!), spritesheets var id = (ushort)0; id = 09101; // 1st hit effect id = 09201; // 1st sword id = 01000; // battle ui stuff id = 01070; // female samurai //TESTDumpSheets(id); TESTDumpAnims(id); } }