Editor/Decompiler/MapDecompiler.Lumps.cs
namespace BspImport.Decompiler;
public partial class MapDecompiler
{
protected virtual BaseLump? ParseLump( LumpType lumpType, byte[] data, int version )
{
return lumpType switch
{
LumpType.Entity => new EntityLump( Context, data ),
LumpType.Plane => new PlaneLump( Context, data ),
LumpType.TexData => new TexDataLump( Context, data ),
LumpType.Vertex => new VertexLump( Context, data ),
LumpType.Node => new NodeLump( Context, data ),
LumpType.TexInfo => new TexInfoLump( Context, data ),
LumpType.Face => new FaceLump( Context, data ),
LumpType.Leaf => new LeafLump( Context, data ),
LumpType.Edge => new EdgeLump( Context, data ),
LumpType.SurfaceEdge => new SurfaceEdgeLump( Context, data ),
LumpType.Model => new ModelLump( Context, data ),
LumpType.LeafFace => new LeafFaceLump( Context, data ),
LumpType.Brush => new BrushLump( Context, data ),
LumpType.BrushSide => new BrushSideLump( Context, data ),
LumpType.DisplacementInfo => new DisplacementInfoLump( Context, data ),
LumpType.OriginalFace => new OriginalFaceLump( Context, data ),
LumpType.DisplacementVertices => new DisplacementVertexLump( Context, data ),
LumpType.Game => new GameLumpHeader( Context, data ),
LumpType.TexDataStringData => new TexDataStringDataLump( Context, data ),
LumpType.TexDataStringTable => new TexDataStringTableLump( Context, data ),
_ => throw new ArgumentException( $"Tried parsing Lump with unknown type!" )
};
}
}
public enum LumpType
{
Entity = 0,
Plane = 1,
TexData = 2,
Vertex = 3,
Node = 5,
TexInfo = 6,
Face = 7,
Leaf = 10,
Edge = 12,
SurfaceEdge = 13,
Model = 14,
LeafFace = 16,
Brush = 18,
BrushSide = 19,
DisplacementInfo = 26,
OriginalFace = 27,
DisplacementVertices = 33,
Game = 35,
TexDataStringData = 43,
TexDataStringTable = 44,
}