コード例 #1
0
ファイル: VerbSlot.cs プロジェクト: scemino/nscumm
 public void SaveOrLoad(Serializer serializer)
 {
     var verbEntries = new[]
     {
         LoadAndSaveEntry.Create(reader => CurRect.Left = reader.ReadInt16(), writer => writer.WriteInt16(CurRect.Left), 8),
         LoadAndSaveEntry.Create(reader => CurRect.Top = reader.ReadInt16(), writer => writer.WriteInt16(CurRect.Top), 8),
         LoadAndSaveEntry.Create(reader => CurRect.Right = reader.ReadInt16(), writer => writer.WriteInt16(CurRect.Right), 8),
         LoadAndSaveEntry.Create(reader => CurRect.Bottom = reader.ReadInt16(), writer => writer.WriteInt16(CurRect.Bottom), 8),
         LoadAndSaveEntry.Create(reader => OldRect.Left = reader.ReadInt16(), writer => writer.WriteInt16(OldRect.Left), 8),
         LoadAndSaveEntry.Create(reader => OldRect.Top = reader.ReadInt16(), writer => writer.WriteInt16(OldRect.Top), 8),
         LoadAndSaveEntry.Create(reader => OldRect.Right = reader.ReadInt16(), writer => writer.WriteInt16(OldRect.Right), 8),
         LoadAndSaveEntry.Create(reader => OldRect.Bottom = reader.ReadInt16(), writer => writer.WriteInt16(OldRect.Bottom), 8),
                                        
         LoadAndSaveEntry.Create(reader => VerbId = reader.ReadByte(), writer => writer.WriteByte(VerbId), 8, 11),
         LoadAndSaveEntry.Create(reader => VerbId = reader.ReadUInt16(), writer => writer.WriteUInt16(VerbId), 12),
                                        
         LoadAndSaveEntry.Create(reader => Color = reader.ReadByte(), writer => writer.WriteByte(Color), 8),
         LoadAndSaveEntry.Create(reader => HiColor = reader.ReadByte(), writer => writer.WriteByte(HiColor), 8),
         LoadAndSaveEntry.Create(reader => DimColor = reader.ReadByte(), writer => writer.WriteByte(DimColor), 8),
         LoadAndSaveEntry.Create(reader => BkColor = reader.ReadByte(), writer => writer.WriteByte(BkColor), 8),
         LoadAndSaveEntry.Create(reader => Type = (VerbType)reader.ReadByte(), writer => writer.WriteByte((byte)Type), 8),
         LoadAndSaveEntry.Create(reader => CharsetNr = reader.ReadByte(), writer => writer.WriteByte(CharsetNr), 8),
         LoadAndSaveEntry.Create(reader => CurMode = reader.ReadByte(), writer => writer.WriteByte(CurMode), 8),
         LoadAndSaveEntry.Create(reader => SaveId = reader.ReadByte(), writer => writer.WriteByte(SaveId), 8),
         LoadAndSaveEntry.Create(reader => Key = reader.ReadByte(), writer => writer.WriteByte(Key), 8),
         LoadAndSaveEntry.Create(reader => Center = reader.ReadBoolean(), writer => writer.WriteByte(Center), 8),
         LoadAndSaveEntry.Create(reader => Prep = reader.ReadByte(), writer => writer.WriteByte(Prep), 8),
         LoadAndSaveEntry.Create(reader => ImgIndex = reader.ReadUInt16(), writer => writer.WriteUInt16(ImgIndex), 8),
     };
     verbEntries.ForEach(e => e.Execute(serializer));
 }
コード例 #2
0
ファイル: NestedScript.cs プロジェクト: scemino/nscumm
 public void SaveOrLoad(Serializer serializer)
 {
     var nestedScriptEntries = new[]
     {
         LoadAndSaveEntry.Create(reader => Number = reader.ReadUInt16(), writer => writer.WriteUInt16(Number), 8),
         LoadAndSaveEntry.Create(reader => Where = (WhereIsObject)reader.ReadByte(), writer => writer.WriteByte((byte)Where), 8),
         LoadAndSaveEntry.Create(reader => Slot = reader.ReadByte(), writer => writer.WriteByte(Slot), 8),
     };
     nestedScriptEntries.ForEach(e => e.Execute(serializer));
 }
コード例 #3
0
ファイル: ParameterFader.cs プロジェクト: scemino/nscumm
        public void SaveOrLoad(Serializer ser)
        {
            var parameterFaderEntries = new []  {
                LoadAndSaveEntry.Create(r => Param = (ParameterFaderType)r.ReadInt16(), w => w.WriteInt16((short)Param), 17),
                LoadAndSaveEntry.Create(r => Start = r.ReadInt16(), w => w.WriteInt16(Start), 17),
                LoadAndSaveEntry.Create(r => End = r.ReadInt16(), w => w.WriteInt16(End), 17),
                LoadAndSaveEntry.Create(r => TotalTime = r.ReadUInt32(), w => w.WriteUInt32(TotalTime), 17),
                LoadAndSaveEntry.Create(r => CurrentTime = r.ReadUInt32(), w => w.WriteUInt32(CurrentTime), 17)
            };

            parameterFaderEntries.ForEach(e => e.Execute(ser));
        }
コード例 #4
0
ファイル: ColorCycle.cs プロジェクト: scemino/nscumm
 public void SaveOrLoad(Serializer serializer)
 {
     var colorCycleEntries = new[]
     {
         LoadAndSaveEntry.Create(reader => Delay = reader.ReadUInt16(), writer => writer.WriteUInt16(Delay), 8),
         LoadAndSaveEntry.Create(reader => Counter = reader.ReadUInt16(), writer => writer.WriteUInt16(Counter), 8),
         LoadAndSaveEntry.Create(reader => Flags = reader.ReadUInt16(), writer => writer.WriteUInt16(Flags), 8),
         LoadAndSaveEntry.Create(reader => Start = reader.ReadByte(), writer => writer.WriteByte(Start), 8),
         LoadAndSaveEntry.Create(reader => End = reader.ReadByte(), writer => writer.WriteByte(End), 8),
     };
     colorCycleEntries.ForEach(e => e.Execute(serializer));
 }
コード例 #5
0
ファイル: Sentence.cs プロジェクト: scemino/nscumm
 public void SaveOrLoad(Serializer serializer)
 {
     var sentenceEntries = new[]
     {
         LoadAndSaveEntry.Create(reader => Verb = reader.ReadByte(), writer => writer.WriteByte(Verb), 8),
         LoadAndSaveEntry.Create(reader => Preposition = reader.ReadBoolean(), writer => writer.WriteByte(Preposition), 8),
         LoadAndSaveEntry.Create(reader => ObjectA = reader.ReadUInt16(), writer => writer.WriteUInt16(ObjectA), 8),
         LoadAndSaveEntry.Create(reader => ObjectB = reader.ReadUInt16(), writer => writer.WriteUInt16(ObjectB), 8),
         LoadAndSaveEntry.Create(reader => freezeCount = reader.ReadByte(), writer => writer.WriteByte(freezeCount), 8),
     };
     sentenceEntries.ForEach(e => e.Execute(serializer));
 }
コード例 #6
0
ファイル: ScaleSlot.cs プロジェクト: scemino/nscumm
 public void SaveOrLoad(Serializer serializer)
 {
     var scaleSlotsEntries = new[]
     {
         LoadAndSaveEntry.Create(reader => X1 = reader.ReadInt16(), writer => writer.WriteInt16(X1), 13),
         LoadAndSaveEntry.Create(reader => Y1 = reader.ReadInt16(), writer => writer.WriteInt16(Y1), 13),
         LoadAndSaveEntry.Create(reader => Scale1 = reader.ReadInt16(), writer => writer.WriteInt16(Scale1), 13),
         LoadAndSaveEntry.Create(reader => X2 = reader.ReadInt16(), writer => writer.WriteInt16(X2), 13),
         LoadAndSaveEntry.Create(reader => Y2 = reader.ReadInt16(), writer => writer.WriteInt16(Y2), 13),
         LoadAndSaveEntry.Create(reader => Scale2 = reader.ReadInt16(), writer => writer.WriteInt16(Scale2), 13),
     };
     scaleSlotsEntries.ForEach(e => e.Execute(serializer));
 }
コード例 #7
0
ファイル: TextSlot.cs プロジェクト: scemino/nscumm
 public void SaveOrLoad(Serializer serializer)
 {
     var stringTabEntries = new[]
     {
         LoadAndSaveEntry.Create(reader =>
             {
                 var xPos = reader.ReadInt16(); 
                 var defaultXPos = reader.ReadInt16();
                 var yPos = reader.ReadInt16();
                 var defaultYPos = reader.ReadInt16();
                 Position = new Point(xPos, yPos);
                 _default.Position = new Point(defaultXPos, defaultYPos);
             }, writer =>
             {
                 writer.WriteInt16(Position.X);
                 writer.WriteInt16(_default.Position.X);
                 writer.WriteInt16(Position.Y);
                 writer.WriteInt16(_default.Position.Y);
             }, 8),
         LoadAndSaveEntry.Create(reader => Right = reader.ReadInt16(), writer => writer.WriteInt16(Right), 8),
         LoadAndSaveEntry.Create(reader => _default.Right = reader.ReadInt16(), writer => writer.WriteInt16(_default.Right), 8),
         LoadAndSaveEntry.Create(reader => Color = reader.ReadByte(), writer => writer.WriteByte(Color), 8),
         LoadAndSaveEntry.Create(reader => _default.Color = reader.ReadByte(), writer => writer.WriteByte(_default.Color), 8),
         LoadAndSaveEntry.Create(reader => Charset = reader.ReadByte(), writer => writer.WriteByte(Charset), 8),
         LoadAndSaveEntry.Create(reader => _default.Charset = reader.ReadByte(), writer => writer.WriteByte(_default.Charset), 8),
         LoadAndSaveEntry.Create(reader => Center = reader.ReadBoolean(), writer => writer.WriteByte(Center), 8),
         LoadAndSaveEntry.Create(reader => _default.Center = reader.ReadBoolean(), writer => writer.WriteByte(_default.Center), 8),
         LoadAndSaveEntry.Create(reader => Overhead = reader.ReadBoolean(), writer => writer.WriteByte(Overhead), 8),
         LoadAndSaveEntry.Create(reader => _default.Overhead = reader.ReadBoolean(), writer => writer.WriteByte(_default.Overhead), 8),
         LoadAndSaveEntry.Create(reader => NoTalkAnim = reader.ReadBoolean(), writer => writer.WriteByte(NoTalkAnim), 8),
         LoadAndSaveEntry.Create(reader => _default.NoTalkAnim = reader.ReadBoolean(), writer => writer.WriteByte(_default.NoTalkAnim), 8),
         LoadAndSaveEntry.Create(reader => Wrapping = reader.ReadBoolean(), writer => writer.WriteByte(Wrapping), 71),
         LoadAndSaveEntry.Create(reader => _default.Wrapping = reader.ReadBoolean(), writer => writer.WriteByte(_default.Wrapping), 71)
     };
     stringTabEntries.ForEach(e => e.Execute(serializer));
 }
コード例 #8
0
ファイル: Actor0.cs プロジェクト: scemino/nscumm
        public override void SaveOrLoad(Serializer serializer)
        {
            base.SaveOrLoad(serializer);

            var actorEntries = new[]
            {
                LoadAndSaveEntry.Create(reader => CostCommand = reader.ReadByte(), writer => writer.WriteByte(CostCommand), 84),
                LoadAndSaveEntry.Create(reader => MiscFlags = (ActorV0MiscFlags)reader.ReadByte(), writer => writer.WriteByte((byte)MiscFlags), 84),
                LoadAndSaveEntry.Create(reader => Speaking = reader.ReadByte(), writer => writer.WriteByte(Speaking), 84),
                LoadAndSaveEntry.Create(reader => AnimFrameRepeat = reader.ReadSByte(), writer => writer.WriteByte(AnimFrameRepeat), 89),
                LoadAndSaveEntry.Create(reader => LimbFrameRepeatNew = reader.ReadSBytes(8), writer => writer.WriteSBytes(LimbFrameRepeatNew, 8), 89),
                LoadAndSaveEntry.Create(reader => LimbFrameRepeat = reader.ReadSBytes(8), writer => writer.WriteSBytes(LimbFrameRepeat, 8), 90),
                LoadAndSaveEntry.Create(reader =>
                    {
                        CurrentWalkTo = new Point(reader.ReadInt16(), reader.ReadInt16());
                    }, writer =>
                    {
                        writer.WriteInt16(CurrentWalkTo.X);
                        writer.WriteInt16(CurrentWalkTo.Y);
                    }, 97),
                LoadAndSaveEntry.Create(reader =>
                    {
                        NewWalkTo = new Point(reader.ReadInt16(), reader.ReadInt16());
                    }, writer =>
                    {
                        writer.WriteInt16(NewWalkTo.X);
                        writer.WriteInt16(NewWalkTo.Y);
                    }, 97),
                LoadAndSaveEntry.Create(reader => _walkCountModulo = reader.ReadByte(), writer => writer.WriteByte(_walkCountModulo), 97),
                LoadAndSaveEntry.Create(reader => _walkDirX = reader.ReadByte(), writer => writer.WriteByte(_walkDirX), 97),
                LoadAndSaveEntry.Create(reader => _walkDirY = reader.ReadByte(), writer => writer.WriteByte(_walkDirY), 97),
                LoadAndSaveEntry.Create(reader => _walkYCountGreaterThanXCount = reader.ReadByte(), writer => writer.WriteByte(_walkYCountGreaterThanXCount), 97),
                LoadAndSaveEntry.Create(reader => _walkXCount = reader.ReadByte(), writer => writer.WriteByte(_walkXCount), 97),
                LoadAndSaveEntry.Create(reader => _walkXCountInc = reader.ReadByte(), writer => writer.WriteByte(_walkXCountInc), 97),
                LoadAndSaveEntry.Create(reader => _walkYCount = reader.ReadByte(), writer => writer.WriteByte(_walkYCount), 97),
                LoadAndSaveEntry.Create(reader => _walkYCountInc = reader.ReadByte(), writer => writer.WriteByte(_walkYCountInc), 97),
                LoadAndSaveEntry.Create(reader => _walkMaxXYCountInc = reader.ReadByte(), writer => writer.WriteByte(_walkMaxXYCountInc), 97)
            };

            actorEntries.ForEach(e => e.Execute(serializer));
        }