internal Samples(SBR block) { block.VerifyID(TokenID.Terrain_Samples); while (!block.EndOfBlock()) { using (SBR subBlock = block.ReadSubBlock()) { switch (subBlock.ID) { case TokenID.Terrain_NSamples: SampleCount = subBlock.ReadInt(); break; case TokenID.Terrain_Sample_Rotation: SampleRotation = subBlock.ReadFloat(); break; case TokenID.Terrain_Sample_Floor: SampleFloor = subBlock.ReadFloat(); break; case TokenID.Terrain_Sample_Scale: SampleScale = subBlock.ReadFloat(); break; case TokenID.Terrain_Sample_Size: SampleSize = subBlock.ReadFloat(); break; case TokenID.Terrain_Sample_YBuffer: SampleBufferY = subBlock.ReadString(); break; case TokenID.Terrain_Sample_EBuffer: SampleBufferE = subBlock.ReadString(); break; case TokenID.Terrain_Sample_NBuffer: SampleBufferN = subBlock.ReadString(); break; case TokenID.Terrain_Sample_AsBuffer: subBlock.Skip(); // TODO parse this break; case TokenID.Terrain_Sample_FBuffer: subBlock.Skip(); // TODO parse this break; case (TokenID)282: // TODO figure out what this is and handle it subBlock.Skip(); break; default: throw new InvalidDataException("Unknown token " + subBlock.ID.ToString()); } } } }
protected virtual void AddOrModifyObj(SBR subBlock, PositionHolder holder) { switch (subBlock.ID) { case TokenID.FileName: FileName = subBlock.ReadString(); break; case TokenID.Position: //Position = new STFPositionItem(subBlock); ReadLocation(subBlock, holder); break; case TokenID.QDirection: //QDirection = new STFQDirectionItem(subBlock); ReadDirection(subBlock, holder); break; case TokenID.Matrix3x3: //Matrix3x3 = ReadMatrix3x3(subBlock); ReadPosition(subBlock, holder); break; case TokenID.VDbId: ViewDbId = subBlock.ReadUInt(); break; case TokenID.StaticFlags: StaticFlags = subBlock.ReadFlags(); break; default: subBlock.Skip(); break; } }
public terrain_shader(SBR block) { block.VerifyID(TokenID.terrain_shader); ShaderName = block.ReadString(); while (!block.EndOfBlock()) { using (var subBlock = block.ReadSubBlock()) { switch (subBlock.ID) { case TokenID.terrain_texslots: terrain_texslots = new terrain_texslot[subBlock.ReadUInt()]; for (var i = 0; i < terrain_texslots.Length; ++i) { terrain_texslots[i] = new terrain_texslot(subBlock.ReadSubBlock()); } break; case TokenID.terrain_uvcalcs: terrain_uvcalcs = new terrain_uvcalc[subBlock.ReadUInt()]; for (var i = 0; i < terrain_uvcalcs.Length; ++i) { terrain_uvcalcs[i] = new terrain_uvcalc(subBlock.ReadSubBlock()); } break; default: break; } } } }
internal Shader(SBR block) { block.VerifyID(TokenID.Terrain_Shader); Name = block.ReadString(); while (!block.EndOfBlock()) { using (SBR subBlock = block.ReadSubBlock()) { switch (subBlock.ID) { case TokenID.Terrain_TexSlots: int size = (int)subBlock.ReadUInt(); Textureslots = new List <TextureSlot>(size); for (int i = 0; i < size; ++i) { Textureslots.Add(new TextureSlot(subBlock.ReadSubBlock())); } break; case TokenID.Terrain_UVCalcs: size = (int)subBlock.ReadUInt(); UVCalcs = new List <UVCalc>(size); for (int i = 0; i < size; ++i) { UVCalcs.Add(new UVCalc(subBlock.ReadSubBlock())); } break; default: break; } } } }
public Shader(SBR block) { block.VerifyID(TokenID.Terrain_Shader); Name = block.ReadString(); while (!block.EndOfBlock()) { using (var subBlock = block.ReadSubBlock()) { switch (subBlock.ID) { case TokenID.Terrain_TexSlots: Textureslots = new TextureSlot[subBlock.ReadUInt()]; for (var i = 0; i < Textureslots.Length; ++i) { Textureslots[i] = new TextureSlot(subBlock.ReadSubBlock()); } break; case TokenID.Terrain_UVCalcs: UVCalcs = new UVCalc[subBlock.ReadUInt()]; for (var i = 0; i < UVCalcs.Length; ++i) { UVCalcs[i] = new UVCalc(subBlock.ReadSubBlock()); } break; default: break; } } } }
public terrain_texslot(SBR block) { block.VerifyID(TokenID.terrain_texslot); Filename = block.ReadString(); A = block.ReadInt(); B = block.ReadInt(); block.Skip(); }
internal TextureSlot(SBR block) { block.VerifyID(TokenID.Terrain_TexSlot); FileName = block.ReadString(); A = block.ReadInt(); B = block.ReadInt(); block.Skip(); }
internal ImageNames(SBR block) { block.VerifyID(TokenID.Images); int count = Capacity = block.ReadInt(); while (count-- > 0) { SBR subBlock = block.ReadSubBlock(); subBlock.VerifyID(TokenID.Image); Add(subBlock.ReadString()); subBlock.VerifyEndOfBlock(); } block.VerifyEndOfBlock(); }
internal TextureFilterNames(SBR block) { block.VerifyID(TokenID.Texture_Filter_Names); int count = Capacity = block.ReadInt(); while (count-- > 0) { SBR subBlock = block.ReadSubBlock(); subBlock.VerifyID(TokenID.Named_Filter_Mode); Add(subBlock.ReadString()); subBlock.VerifyEndOfBlock(); } block.VerifyEndOfBlock(); }
internal ShaderNames(SBR block) { block.VerifyID(TokenID.Shader_Names); int count = Capacity = block.ReadInt(); while (count-- > 0) { SBR subBlock = block.ReadSubBlock(); subBlock.VerifyID(TokenID.Named_Shader); Add(subBlock.ReadString()); subBlock.VerifyEndOfBlock(); } block.VerifyEndOfBlock(); }
protected override void AddOrModifyObj(SBR subBlock, PositionHolder holder) { switch (subBlock.ID) { case TokenID.Speed_Digit_Tex: TextureFile = subBlock.ReadString(); break; case TokenID.Speed_Sign_Shape: ReadSpeedSignShape(subBlock); break; case TokenID.Speed_Text_Size: TextSize = new TextData(subBlock); break; case TokenID.TrItemId: TrackItemIds.Add(subBlock); break; default: base.AddOrModifyObj(subBlock, holder); break; } }
protected override void AddOrModifyObj(SBR subBlock, PositionHolder holder) { switch (subBlock.ID) { case TokenID.CarFrequency: CarFrequency = subBlock.ReadFloat(); break; case TokenID.CarAvSpeed: CarAverageSpeed = subBlock.ReadFloat(); break; case TokenID.OrtsListName: ListName = subBlock.ReadString(); break; case TokenID.TrItemId: TrackItemIds.Add(subBlock); break; default: base.AddOrModifyObj(subBlock, holder); break; } }
protected override void AddOrModifyObj(SBR subBlock, PositionHolder holder) { switch (subBlock.ID) { case TokenID.TreeTexture: TreeTexture = subBlock.ReadString(); break; case TokenID.ScaleRange: ScaleRange = new Range(subBlock, subBlock.ID); break; case TokenID.Area: ForestArea = new Size2D(subBlock, subBlock.ID); break; case TokenID.Population: Population = subBlock.ReadInt(); break; case TokenID.TreeSize: TreeSize = new Size2D(subBlock, subBlock.ID); break; default: base.AddOrModifyObj(subBlock, holder); break; } }
protected override void AddOrModifyObj(SBR subBlock, PositionHolder holder) { switch (subBlock.ID) { case TokenID.LevelCrParameters: ReadCrossingParameters(subBlock); break; case TokenID.CrashProbability: CrashProbability = subBlock.ReadInt(); break; case TokenID.LevelCrData: ReadCrossingData(subBlock); break; case TokenID.LevelCrTiming: ReadCrossingTiming(subBlock); break; case TokenID.TrItemId: TrackItemIds.Add(subBlock); break; case TokenID.OrtsSoundFileName: SoundFileName = subBlock.ReadString(); break; default: base.AddOrModifyObj(subBlock, holder); break; } }