/// <summary> /// Loads the file from the specified stream. /// </summary> /// <param name="stream">The stream to read from.</param> public override void Load(Stream stream) { BinaryReader reader = new BinaryReader(stream, CodePagesEncodingProvider.Instance.GetEncoding("EUC-KR")); short skeletonFileCount = reader.ReadInt16(); for (int i = 0; i < skeletonFileCount; i++) { string skeletonFile = reader.ReadNullTerminatedString(); SkeletonFiles.Add(skeletonFile); } short motionFileCount = reader.ReadInt16(); for (int i = 0; i < motionFileCount; i++) { string motionFile = reader.ReadNullTerminatedString(); MotionFiles.Add(motionFile); } short effectFileCount = reader.ReadInt16(); for (int i = 0; i < effectFileCount; i++) { string effectFile = reader.ReadNullTerminatedString(); EffectFiles.Add(effectFile); } short characterCount = reader.ReadInt16(); for (int i = 0; i < characterCount; i++) { Character character = new Character(); character.IsEnabled = reader.ReadBoolean(); if (character.IsEnabled) { character.ID = reader.ReadInt16(); character.Name = reader.ReadNullTerminatedString(); short objectCount = reader.ReadInt16(); for (int j = 0; j < objectCount; j++) { CharacterObject @object = new CharacterObject(); @object.Object = reader.ReadInt16(); character.Objects.Add(@object); } short animationCount = reader.ReadInt16(); for (int j = 0; j < animationCount; j++) { CharacterAnimation animation = new CharacterAnimation(); animation.Type = (AnimationType)reader.ReadInt16(); animation.Animation = reader.ReadInt16(); character.Animations.Add(animation); } short effectCount = reader.ReadInt16(); for (int j = 0; j < effectCount; j++) { CharacterEffect effect = new CharacterEffect(); effect.Bone = reader.ReadInt16(); effect.Effect = reader.ReadInt16(); character.Effects.Add(effect); } } Characters.Add(character); } }
public void Load(string filePath) { var fh = new FileHandler(filePath, FileHandler.FileOpenMode.Reading, Encoding.UTF8); short skeletonFileCount = fh.Read <short>(); for (int i = 0; i < skeletonFileCount; i++) { string skeletonFile = fh.Read <ZString>(); SkeletonFiles.Add(skeletonFile); } short motionFileCount = fh.Read <short>(); for (int i = 0; i < motionFileCount; i++) { string motionFile = fh.Read <ZString>(); MotionFiles.Add(motionFile); } short effectFileCount = fh.Read <short>(); for (int i = 0; i < effectFileCount; i++) { string effectFile = fh.Read <ZString>(); EffectFiles.Add(effectFile); } short characterCount = fh.Read <short>(); for (int i = 0; i < characterCount; i++) { Character character = new Character(); character.IsEnabled = fh.Read <char>() != 0; if (character.IsEnabled) { character.ID = fh.Read <short>(); character.Name = fh.Read <ZString>(); short objectCount = fh.Read <short>(); for (int j = 0; j < objectCount; j++) { CharacterObject @object = new CharacterObject(); @object.Object = fh.Read <short>(); character.Objects.Add(@object); } short animationCount = fh.Read <short>(); for (int j = 0; j < animationCount; j++) { CharacterAnimation animation = new CharacterAnimation(); animation.Type = (AnimationType)fh.Read <short>(); animation.Animation = fh.Read <short>(); character.Animations.Add(animation); } short effectCount = fh.Read <short>(); for (int j = 0; j < effectCount; j++) { CharacterEffect effect = new CharacterEffect(); effect.Bone = fh.Read <short>(); effect.Effect = fh.Read <short>(); character.Effects.Add(effect); } } Characters.Add(character); } }