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 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 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 DlmGraphicalElement ReadFromStream(DlmCell cell, BigEndianReader reader) { var element = new DlmGraphicalElement(cell); element.m_elementId = reader.ReadUInt(); element.m_hue = new ColorMultiplicator(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), false); element.m_shadow = new ColorMultiplicator(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), false); if (cell.Layer.Map.Version <= 4) { element.m_offset.X = reader.ReadByte(); element.m_offset.Y = reader.ReadByte(); element.m_pixelOffset.X = (int) (element.m_offset.X * CELL_HALF_WIDTH); element.m_pixelOffset.Y = (int) (element.m_offset.Y * CELL_HALF_HEIGHT); } else { element.m_pixelOffset.X = reader.ReadShort(); element.m_pixelOffset.Y = reader.ReadShort(); element.m_offset.X = (int)( element.m_pixelOffset.X / CELL_HALF_WIDTH ); element.m_offset.Y = (int)( element.m_pixelOffset.Y / CELL_HALF_HEIGHT ); } element.m_altitude = reader.ReadByte(); element.m_identifier = reader.ReadUInt(); element.CalculateFinalTeint(); return element; }
public static EntityGraphicalElementData ReadFromStream(EleInstance instance, int id, BigEndianReader reader) { var data = new EntityGraphicalElementData(instance, id); data.EntityLook = reader.ReadUTF7BitLength(); data.HorizontalSymmetry = reader.ReadBoolean(); if (instance.Version >= 7) { data.PlayAnimation = reader.ReadBoolean(); } if (instance.Version >= 6) { data.PlayAnimStatic = reader.ReadBoolean(); } if (instance.Version >= 5) { data.MinDelay = reader.ReadUInt(); data.MaxDelay = reader.ReadUInt(); } return data; }