public void Write(SR1_Writer writer)
        {
            NewStart = (uint)writer.BaseStream.Position;

            try
            {
                WriteMembers(writer);
                Register(writer);

                if (_padding != null)
                {
                    uint mod = (uint)writer.BaseStream.Position % (uint)_padding.Length;
                    if (mod > 0)
                    {
                        uint padding = (uint)_padding.Length - mod;
                        for (int i = 0; i < padding; i++)
                        {
                            writer.Write(_padding[i]);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                writer.LogError(exception.Message);
            }

            NewEnd = (uint)writer.BaseStream.Position;
        }
 public void Write(SR1_Writer writer, SR1_File.Version versionAdded, SR1_File.Version versionRemoved)
 {
     if (writer.File._Version >= versionAdded && writer.File._Version < versionRemoved)
     {
         Write(writer);
     }
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     Properties.Write(writer);
     conditions.Write(writer);
     auxConditions.Write(writer);
     action.Write(writer);
     auxAction.Write(writer);
     startAnim.Write(writer);
     endAnim.Write(writer);
     razielAnim.Write(writer);
     razielAuxAnim.Write(writer);
     frame.Write(writer);
     startAnimMode.Write(writer);
     distance.Write(writer);
     newType.Write(writer);
     newClass.Write(writer);
     mode.Write(writer);
     engageXYDistance.Write(writer);
     engageZMinDelta.Write(writer);
     engageZMaxDelta.Write(writer);
     engageYCone.Write(writer);
     engageZCone.Write(writer);
     pad.Write(writer);
     weapon.Write(writer);
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     count.Write(writer);
     point.Write(writer);
     dd.Write(writer);
     ds.Write(writer);
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     if (writer.File._Version >= SR1_File.Version.Jun01)
     {
         id.Write(writer);
         StartOnInit.Write(writer);
         startSegment.Write(writer);
         endSegment.Write(writer);
         type.Write(writer);
         use_child.Write(writer);
         ribbonLifeTime.Write(writer);
         faceLifeTime.Write(writer);
         startFadeValue.Write(writer);
         startColor.Write(writer);
         endColor.Write(writer);
     }
     else             // if (writer.File._Version >= SR1_File.Version.May12)
     {
         id_b.Write(writer);
         StartOnInit_b.Write(writer);
         startSegment_b.Write(writer);
         endSegment_b.Write(writer);
         type_b.Write(writer);
         ribbonLifeTime.Write(writer);
         faceLifeTime.Write(writer);
         startFadeValue.Write(writer);
         startColor.Write(writer);
         endColor.Write(writer);
     }
 }
示例#6
0
 public override void WriteMembers(SR1_Writer writer)
 {
     tvIdx.Write(writer);
     startIdx.Write(writer);
     endIdx.Write(writer);
     time.Write(writer);
 }
示例#7
0
 public override void WriteMembers(SR1_Writer writer)
 {
     pixSrcX.Write(writer);
     pixSrcY.Write(writer);
     clutSrcX.Write(writer);
     clutSrcY.Write(writer);
 }
示例#8
0
 public override void WriteMembers(SR1_Writer writer)
 {
     enemies.Write(writer);
     allies.Write(writer);
     food.Write(writer);
     gods.Write(writer);
 }
		public override void WriteMembers(SR1_Writer writer)
		{
			length.Write(writer);
			segment.Write(writer);
			speed.Write(writer);
			lightTable.Write(writer);
		}
示例#10
0
 public override void WriteMembers(SR1_Writer writer)
 {
     version.Write(writer);
     family.Write(writer);
     ID.Write(writer);
     Type.Write(writer);
 }
示例#11
0
 public override void WriteMembers(SR1_Writer writer)
 {
     topLeft.Write(writer);
     topRight.Write(writer);
     bottonLeft.Write(writer);
     bottomRight.Write(writer);
 }
示例#12
0
 public override void WriteMembers(SR1_Writer writer)
 {
     x.Write(writer);
     y.Write(writer);
     w.Write(writer);
     h.Write(writer);
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     alertness.Write(writer);
     idleFreq.Write(writer);
     numIdles.Write(writer);
     idleList.Write(writer);
 }
示例#14
0
 public override void WriteMembers(SR1_Writer writer)
 {
     oflags.Write(writer);
     id.Write(writer);
     sfxFileHandle.Write(writer);
     numModels.Write(writer);
     numAnims.Write(writer);
     modelList.Write(writer);
     animList.Write(writer);
     introDist.Write(writer);
     vvIntroDist.Write(writer);
     removeDist.Write(writer);
     vvRemoveDist.Write(writer);
     data.Write(writer);
     script.Write(writer);
     name.Write(writer);
     soundData.Write(writer);
     oflags2.Write(writer);
     sectionA.Write(writer);
     sectionB.Write(writer);
     sectionC.Write(writer);
     numberOfEffects.Write(writer);
     effectList.Write(writer);
     relocList.Write(writer);
     relocModule.Write(writer);
     vramSize.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
 }
示例#15
0
 public override void WriteMembers(SR1_Writer writer)
 {
     wave.Write(writer, SR1_File.Version.First, SR1_File.Version.May12);
     waveRate.Write(writer, SR1_File.Version.First, SR1_File.Version.May12);
     glowStartSegment.Write(writer, SR1_File.Version.First, SR1_File.Version.May12);
     glowNumberOfSegments.Write(writer, SR1_File.Version.First, SR1_File.Version.May12);
     glowWidth.Write(writer, SR1_File.Version.First, SR1_File.Version.May12);
     spectralGlowColor.Write(writer);
     materialGlowColor.Write(writer);
     sunlightGlowColor.Write(writer);
     waterGlowColor.Write(writer);
     stoneGlowColor.Write(writer);
     fireGlowColor.Write(writer);
     spiritGlowColor.Write(writer);
     soundGlowColor.Write(writer);
     spectralInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     materialInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     sunlightInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     waterInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     stoneInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     fireInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     spiritInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     soundInnerColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     spectralInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     materialInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     sunlightInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     waterInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     stoneInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     fireInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     spiritInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     soundInnerGlowColor.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     // Icon colors aren't used.
     // icon_colors.Write(writer);
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     Properties.Write(writer);
     Distance.Write(writer);
     Class.Write(writer);
     onAnim.Write(writer);
     offAnim.Write(writer);
     failedOnAnim.Write(writer);
     enableAnim.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     shutAnim.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     onWalkTimer.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     offWalkTimer.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     walkMode.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     razielOnAnim.Write(writer);
     razielOffAnim.Write(writer);
     razielFailedOnAnim.Write(writer);
     razielEnableAnim.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     startMode.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     startAnim.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     engageXYDistance.Write(writer);
     engageZMinDelta.Write(writer);
     engageZMaxDelta.Write(writer);
     engageYCone.Write(writer);
     engageZCone.Write(writer);
 }
示例#17
0
 public override void WriteMembers(SR1_Writer writer)
 {
     id.Write(writer);
     spad.Write(writer);
     unitID.Write(writer);
     vmoObjectName.Write(writer);
 }
示例#18
0
 public override void WriteMembers(SR1_Writer writer)
 {
     for (int i = 0; i < _List.Count; i++)
     {
         _List[i].Write(writer);
     }
 }
示例#19
0
 public override void WriteMembers(SR1_Writer writer)
 {
     a.Write(writer);
     b.Write(writer);
     c.Write(writer);
     d.Write(writer);
 }
示例#20
0
 public override void WriteMembers(SR1_Writer writer)
 {
     anim.Write(writer);
     alertMod.Write(writer);
     probability.Write(writer);
     pad.Write(writer);
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     r.Write(writer);
     g.Write(writer);
     b.Write(writer);
     radius.Write(writer);
 }
示例#22
0
 public override void WriteMembers(SR1_Writer writer)
 {
     anim.Write(writer);
     frame.Write(writer);
     frames.Write(writer);
     type.Write(writer);
 }
示例#23
0
 public override void WriteMembers(SR1_Writer writer)
 {
     x.Write(writer);
     y.Write(writer);
     z.Write(writer);
     pad.Write(writer);
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     UnitChangeFlags.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     spad.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     lpad2.Write(writer, SR1_File.Version.May12, SR1_File.Version.Next);
     vplLength.Write(writer, SR1_File.Version.Feb04, SR1_File.Version.May12);
     vpList.Write(writer, SR1_File.Version.Feb04, SR1_File.Version.May12);
     numIntros.Write(writer);
     introList.Write(writer);
     numVertices.Write(writer);
     numFaces.Write(writer);
     numNormals.Write(writer);
     vertexList.Write(writer);
     faceList.Write(writer);
     normalList.Write(writer);
     aniList.Write(writer);
     sbspRoot.Write(writer, SR1_File.Version.First, SR1_File.Version.Jun01);
     pad.Write(writer, SR1_File.Version.Jun01, SR1_File.Version.Next);
     StreamUnits.Write(writer);
     StartTextureList.Write(writer);
     EndTextureList.Write(writer);
     sbspStartLeaves.Write(writer, SR1_File.Version.First, SR1_File.Version.Jun01);
     sbspEndLeaves.Write(writer, SR1_File.Version.First, SR1_File.Version.Jun01);
     MorphDiffList.Write(writer);
     MorphColorList.Write(writer);
     numBSPTrees.Write(writer);
     BSPTreeArray.Write(writer);
     morphNormalIdx.Write(writer);
     signals.Write(writer);
     unknownPCList.Write(writer, SR1_File.Version.Retail_PC, SR1_File.Version.Next);
 }
示例#25
0
        public override void WriteMembers(SR1_Writer writer)
        {
            positional.Write(writer);
            rotational.Write(writer);
            scaling.Write(writer);
            color.Write(writer);
            curPositional.Write(writer);
            curRotational.Write(writer);
            curScaling.Write(writer);
            curColor.Write(writer);

            if (rotational.Offset != 0)
            {
                curRotMatrix.Write(writer);
            }
            if (positional.Offset != 0)
            {
                positionalSpline.Write(writer);
            }
            if (rotational.Offset != 0)
            {
                rotationalSpline.Write(writer);
            }
            if (scaling.Offset != 0)
            {
                scalingSpline.Write(writer);
            }
            if (color.Offset != 0)
            {
                colorSpline.Write(writer);
            }
        }
 public override void WriteMembers(SR1_Writer writer)
 {
     anim.Write(writer);
     framesIn.Write(writer);
     alphaIn.Write(writer);
     framesOut.Write(writer);
     switchDelay.Write(writer);
     ignoreDelay.Write(writer);
     segmentToGlow.Write(writer);
     startCollisionFrame.Write(writer);
     handsToCollide.Write(writer);
     endCollisionFrame.Write(writer);
     ribbonStartFrame.Write(writer);
     ribbonStartSegment.Write(writer);
     ribbonEndSegment.Write(writer);
     ribbonLifeTime.Write(writer);
     ribbonFaceLifeTime.Write(writer);
     knockBackFrames.Write(writer);
     glowFadeInFrames.Write(writer);
     glowFadeOutFrames.Write(writer);
     ribbonStartOpacity.Write(writer);
     ribbonStartColor.Write(writer);
     ribbonEndColor.Write(writer);
     glowColor.Write(writer);
     knockBackDistance.Write(writer);
     hitPowerScale.Write(writer);
 }
 public override void WriteMembers(SR1_Writer writer)
 {
     for (int i = 0; i < _array.Length; i++)
     {
         _array[i].Write(writer);
     }
 }
示例#28
0
        public override void WriteMembers(SR1_Writer writer)
        {
            face.Write(writer);
            attr.Write(writer);
            sortPush.Write(writer);
            normal.Write(writer);

            if (IsInSignalGroup && attr.Value != 0)
            {
                Level   level   = (Level)writer.File._Structures[0];
                Terrain terrain = (Terrain)writer.File._Structures[level.terrain.Offset];
                SR1_StructureSeries <MultiSignal> signals = (SR1_StructureSeries <MultiSignal>)writer.File._Structures[level.SignalListStart.Offset];
                MultiSignal terrainSignals = null;
                foreach (MultiSignal signal in signals)
                {
                    if (signal.Start == terrain.signals.Offset)
                    {
                        terrainSignals = signal;
                        break;
                    }
                }

                // Looks like there are other things triggered besides portals/signals.
                // TODO - Figure out what, and correct here.
                if (MultiSignal != null)
                {
                    textoff.Value = (ushort)(MultiSignal.NewStart - terrainSignals.NewStart);
                }
            }

            textoff.Write(writer);
        }
 public override void WriteMembers(SR1_Writer writer)
 {
     id.Write(writer);
     eventNumber.Write(writer);
     unitID.Write(writer);
     _event.Write(writer);
 }
示例#30
0
 public override void WriteMembers(SR1_Writer writer)
 {
     type.Write(writer);
     timeToColor.Write(writer);
     color.Write(writer);
     timeAtColor.Write(writer);
     timeFromColor.Write(writer);
 }