public static new BoundingBoxGraphicalElementData ReadFromStream(EleInstance instance, int id, BigEndianReader reader) { var data = new BoundingBoxGraphicalElementData(instance, id); data.Gfx = reader.ReadInt(); data.Height = reader.ReadUInt(); data.HorizontalSymmetry = reader.ReadBoolean(); data.Origin = new System.Drawing.Point(reader.ReadShort(), reader.ReadShort()); data.Size = new System.Drawing.Point(reader.ReadShort(), reader.ReadShort()); return data; }
public static DlmFixture ReadFromStream(DlmMap map, BigEndianReader reader) { var fixture = new DlmFixture(map); fixture.FixtureId = reader.ReadInt(); fixture.Offset = new System.Drawing.Point(reader.ReadShort(), reader.ReadShort()); fixture.Rotation = reader.ReadShort(); fixture.ScaleX = reader.ReadShort(); fixture.ScaleY = reader.ReadShort(); fixture.Hue = reader.ReadByte() << 16 | reader.ReadByte() << 8 | reader.ReadByte(); fixture.Alpha = reader.ReadByte(); return fixture; }
public static EleInstance ReadFromStream(BigEndianReader reader) { var instance = new EleInstance(); instance.Version = reader.ReadByte(); var count = reader.ReadUInt(); for (int i = 0; i < count; i++) { var elem = EleGraphicalData.ReadFromStream(instance, reader); instance.GraphicalDatas.Add(elem.Id, elem); } if (instance.Version >= 8) { var gfxCount = reader.ReadInt(); for (int i = 0; i < gfxCount; i++) { instance.GfxJpgMap.Add(reader.ReadInt(), true); } } return instance; }
public static new AnimatedGraphicalElementData ReadFromStream(EleInstance instance, int id, BigEndianReader reader) { var data = new AnimatedGraphicalElementData(instance, id); data.Gfx = reader.ReadInt(); data.Height = reader.ReadUInt(); data.HorizontalSymmetry = reader.ReadBoolean(); data.Origin = new System.Drawing.Point(reader.ReadShort(), reader.ReadShort()); data.Size = new System.Drawing.Point(reader.ReadShort(), reader.ReadShort()); if (instance.Version == 4) { data.MinDelay = reader.ReadUInt(); data.MaxDelay = reader.ReadUInt(); } return data; }
public static EleGraphicalData ReadFromStream(EleInstance instance, BigEndianReader reader) { var id = reader.ReadInt(); var type = (EleGraphicalElementTypes)reader.ReadByte(); switch (type) { case EleGraphicalElementTypes.ANIMATED: return AnimatedGraphicalElementData.ReadFromStream(instance, id, reader); case EleGraphicalElementTypes.BLENDED: return BlendedGraphicalElementData.ReadFromStream(instance, id, reader); case EleGraphicalElementTypes.BOUNDING_BOX: return BoundingBoxGraphicalElementData.ReadFromStream(instance, id, reader); case EleGraphicalElementTypes.ENTITY: return EntityGraphicalElementData.ReadFromStream(instance, id, reader); case EleGraphicalElementTypes.NORMAL: return NormalGraphicalElementData.ReadFromStream(instance, id, reader); case EleGraphicalElementTypes.PARTICLES: return ParticlesGraphicalElementData.ReadFromStream(instance, id, reader); default: throw new Exception("Unknown graphical data of type " + type); } }
private void Initialize() { using (var reader = new BigEndianReader(new StreamReader(m_uri).BaseStream)) { var indexPos = reader.ReadInt(); reader.Seek(indexPos, SeekOrigin.Begin); var indexLen = reader.ReadInt(); for (int i = 0; i < indexLen; i += 8) { var key = reader.ReadInt(); var dataPos = reader.ReadInt(); var pos = (int)reader.BaseStream.Position; reader.Seek(dataPos, SeekOrigin.Begin); m_indexes.Add(key, reader.ReadUTF()); reader.Seek(pos, SeekOrigin.Begin); } while (reader.BytesAvailable > 0) { var key = reader.ReadUTF(); var dataPos = reader.ReadInt(); var pos = (int)reader.BaseStream.Position; reader.Seek(dataPos, SeekOrigin.Begin); m_textIndexes.Add(key, reader.ReadUTF()); reader.Seek(pos, SeekOrigin.Begin); } } }