mirror of
https://github.com/celisej567/LibBSP.git
synced 2026-09-04 15:35:12 +03:00
Fill out more CoD4 structures.
This commit is contained in:
@@ -497,8 +497,8 @@ namespace LibBSP {
|
||||
case MapType.Quake3: {
|
||||
return 2;
|
||||
}
|
||||
case MapType.CoD4:
|
||||
case MapType.CoD2: {
|
||||
case MapType.CoD2:
|
||||
case MapType.CoD4: {
|
||||
return 4;
|
||||
}
|
||||
default: {
|
||||
|
||||
@@ -119,7 +119,8 @@ namespace LibBSP {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MapType.CoD2: {
|
||||
case MapType.CoD2:
|
||||
case MapType.CoD4: {
|
||||
result.normal = new Vector3d(BitConverter.ToSingle(data, 12), BitConverter.ToSingle(data, 16), BitConverter.ToSingle(data, 20));
|
||||
result.color = ColorExtensions.FromArgb(data[27], data[24], data[25], data[26]);
|
||||
result.uv0 = new Vector2d(BitConverter.ToSingle(data, 28), BitConverter.ToSingle(data, 32));
|
||||
@@ -131,7 +132,6 @@ namespace LibBSP {
|
||||
}
|
||||
case MapType.MOHAA:
|
||||
case MapType.Quake3:
|
||||
case MapType.CoD4:
|
||||
case MapType.FAKK: {
|
||||
result.uv0 = new Vector2d(BitConverter.ToSingle(data, 12), BitConverter.ToSingle(data, 16));
|
||||
result.uv1 = new Vector2d(BitConverter.ToSingle(data, 20), BitConverter.ToSingle(data, 24));
|
||||
@@ -147,7 +147,7 @@ namespace LibBSP {
|
||||
result.normal = new Vector3d(BitConverter.ToSingle(data, 52), BitConverter.ToSingle(data, 56), BitConverter.ToSingle(data, 60));
|
||||
result.color = ColorExtensions.FromArgb(data[67], data[64], data[65], data[66]);
|
||||
// Use for two more float fields and two more colors.
|
||||
// There's actually another field that seems to be color but I've only ever seen it be FFFFFFFF.
|
||||
// There's actually another field that seems to be color but I've only ever seen it be 0xFFFFFFFF.
|
||||
result.tangent = new Vector4d(BitConverter.ToSingle(data, 44), BitConverter.ToSingle(data, 48), BitConverter.ToSingle(data, 68), BitConverter.ToSingle(data, 72));
|
||||
goto case MapType.Quake;
|
||||
}
|
||||
@@ -259,6 +259,7 @@ namespace LibBSP {
|
||||
case MapType.CoD2: {
|
||||
return 8;
|
||||
}
|
||||
case MapType.CoD4:
|
||||
case MapType.Raven:
|
||||
case MapType.Quake3: {
|
||||
return 10;
|
||||
@@ -324,7 +325,8 @@ namespace LibBSP {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MapType.CoD2: {
|
||||
case MapType.CoD2:
|
||||
case MapType.CoD4: {
|
||||
structLength = 68;
|
||||
break;
|
||||
}
|
||||
@@ -391,7 +393,8 @@ namespace LibBSP {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MapType.CoD2: {
|
||||
case MapType.CoD2:
|
||||
case MapType.CoD4: {
|
||||
v.normal.GetBytes().CopyTo(bytes, 12);
|
||||
v.color.GetBytes().CopyTo(bytes, 24);
|
||||
v.uv0.GetBytes().CopyTo(bytes, 28);
|
||||
@@ -403,7 +406,6 @@ namespace LibBSP {
|
||||
}
|
||||
case MapType.MOHAA:
|
||||
case MapType.Quake3:
|
||||
case MapType.CoD4:
|
||||
case MapType.FAKK: {
|
||||
v.uv0.GetBytes().CopyTo(bytes, 12);
|
||||
v.uv1.GetBytes().CopyTo(bytes, 20);
|
||||
|
||||
@@ -463,8 +463,8 @@ namespace LibBSP {
|
||||
case MapType.CoD: {
|
||||
return 3;
|
||||
}
|
||||
case MapType.CoD4:
|
||||
case MapType.CoD2: {
|
||||
case MapType.CoD2:
|
||||
case MapType.CoD4: {
|
||||
return 5;
|
||||
}
|
||||
case MapType.Raven:
|
||||
|
||||
@@ -299,7 +299,8 @@ namespace LibBSP {
|
||||
get {
|
||||
switch (type) {
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2: {
|
||||
case MapType.CoD2:
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt16(data, 0);
|
||||
}
|
||||
case MapType.Quake3:
|
||||
@@ -329,7 +330,8 @@ namespace LibBSP {
|
||||
byte[] bytes = BitConverter.GetBytes(value);
|
||||
switch (type) {
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2: {
|
||||
case MapType.CoD2:
|
||||
case MapType.CoD4: {
|
||||
data[0] = bytes[0];
|
||||
data[1] = bytes[1];
|
||||
break;
|
||||
@@ -373,7 +375,8 @@ namespace LibBSP {
|
||||
case MapType.STEF2:
|
||||
case MapType.STEF2Demo:
|
||||
case MapType.MOHAA:
|
||||
case MapType.FAKK: {
|
||||
case MapType.FAKK:
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt32(data, 12);
|
||||
}
|
||||
default: {
|
||||
@@ -395,7 +398,8 @@ namespace LibBSP {
|
||||
case MapType.STEF2:
|
||||
case MapType.STEF2Demo:
|
||||
case MapType.MOHAA:
|
||||
case MapType.FAKK: {
|
||||
case MapType.FAKK:
|
||||
case MapType.CoD4: {
|
||||
bytes.CopyTo(data, 12);
|
||||
break;
|
||||
}
|
||||
@@ -421,6 +425,9 @@ namespace LibBSP {
|
||||
case MapType.FAKK: {
|
||||
return BitConverter.ToInt32(data, 16);
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt16(data, 16);
|
||||
}
|
||||
default: {
|
||||
return -1;
|
||||
}
|
||||
@@ -448,6 +455,11 @@ namespace LibBSP {
|
||||
bytes.CopyTo(data, 16);
|
||||
break;
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
data[16] = bytes[0];
|
||||
data[17] = bytes[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -709,7 +721,8 @@ namespace LibBSP {
|
||||
case MapType.STEF2:
|
||||
case MapType.STEF2Demo:
|
||||
case MapType.MOHAA:
|
||||
case MapType.FAKK: {
|
||||
case MapType.FAKK:
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt32(data, 20);
|
||||
}
|
||||
default: {
|
||||
@@ -731,7 +744,8 @@ namespace LibBSP {
|
||||
case MapType.STEF2:
|
||||
case MapType.STEF2Demo:
|
||||
case MapType.MOHAA:
|
||||
case MapType.FAKK: {
|
||||
case MapType.FAKK:
|
||||
case MapType.CoD4: {
|
||||
bytes.CopyTo(data, 20);
|
||||
break;
|
||||
}
|
||||
@@ -749,6 +763,9 @@ namespace LibBSP {
|
||||
case MapType.Nightfire: {
|
||||
return BitConverter.ToInt32(data, 16);
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt16(data, 18);
|
||||
}
|
||||
case MapType.Quake3:
|
||||
case MapType.Raven:
|
||||
case MapType.STEF2:
|
||||
@@ -775,6 +792,11 @@ namespace LibBSP {
|
||||
bytes.CopyTo(data, 16);
|
||||
break;
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
data[18] = bytes[0];
|
||||
data[19] = bytes[1];
|
||||
return;
|
||||
}
|
||||
case MapType.Quake3:
|
||||
case MapType.Raven:
|
||||
case MapType.STEF2:
|
||||
@@ -788,28 +810,6 @@ namespace LibBSP {
|
||||
}
|
||||
}
|
||||
|
||||
public int unknown {
|
||||
get {
|
||||
switch (type) {
|
||||
case MapType.Nightfire: {
|
||||
return BitConverter.ToInt32(data, 36);
|
||||
}
|
||||
default: {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
set {
|
||||
byte[] bytes = BitConverter.GetBytes(value);
|
||||
switch (type) {
|
||||
case MapType.Nightfire: {
|
||||
bytes.CopyTo(data, 36);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int lightStyles {
|
||||
get {
|
||||
switch (type) {
|
||||
@@ -930,6 +930,10 @@ namespace LibBSP {
|
||||
structLength = 20;
|
||||
break;
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
structLength = 24;
|
||||
break;
|
||||
}
|
||||
case MapType.SiN: {
|
||||
structLength = 36;
|
||||
break;
|
||||
@@ -1021,9 +1025,7 @@ namespace LibBSP {
|
||||
case MapType.CoD: {
|
||||
return 6;
|
||||
}
|
||||
case MapType.CoD2: {
|
||||
return 7;
|
||||
}
|
||||
case MapType.CoD2:
|
||||
case MapType.Vindictus:
|
||||
case MapType.TacticalInterventionEncrypted:
|
||||
case MapType.Source17:
|
||||
@@ -1039,7 +1041,8 @@ namespace LibBSP {
|
||||
case MapType.Quake: {
|
||||
return 7;
|
||||
}
|
||||
case MapType.Nightfire: {
|
||||
case MapType.Nightfire:
|
||||
case MapType.CoD4: {
|
||||
return 9;
|
||||
}
|
||||
case MapType.Raven:
|
||||
@@ -1073,6 +1076,10 @@ namespace LibBSP {
|
||||
case MapType.DMoMaM: {
|
||||
return 27;
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
// Not sure where else to put this. This is the simple surfaces lump?
|
||||
return 47;
|
||||
}
|
||||
default: {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -69,6 +69,9 @@ namespace LibBSP {
|
||||
[Index("markBrushes")] public int firstMarkBrush {
|
||||
get {
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt32(data, 12);
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2: {
|
||||
return BitConverter.ToInt32(data, 16);
|
||||
@@ -112,6 +115,10 @@ namespace LibBSP {
|
||||
set {
|
||||
byte[] bytes = BitConverter.GetBytes(value);
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
bytes.CopyTo(data, 12);
|
||||
break;
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2: {
|
||||
bytes.CopyTo(data, 16);
|
||||
@@ -161,6 +168,9 @@ namespace LibBSP {
|
||||
[Count("markBrushes")] public int numMarkBrushes {
|
||||
get {
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt32(data, 16);
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2: {
|
||||
return BitConverter.ToInt32(data, 20);
|
||||
@@ -204,6 +214,10 @@ namespace LibBSP {
|
||||
set {
|
||||
byte[] bytes = BitConverter.GetBytes(value);
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
bytes.CopyTo(data, 16);
|
||||
break;
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2: {
|
||||
bytes.CopyTo(data, 20);
|
||||
@@ -491,6 +505,10 @@ namespace LibBSP {
|
||||
}
|
||||
int structLength = 0;
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
structLength = 24;
|
||||
break;
|
||||
}
|
||||
case MapType.Quake:
|
||||
case MapType.Quake2:
|
||||
case MapType.SiN: {
|
||||
@@ -511,10 +529,6 @@ namespace LibBSP {
|
||||
structLength = 32;
|
||||
break;
|
||||
}
|
||||
case MapType.Vindictus: {
|
||||
structLength = 56;
|
||||
break;
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2: {
|
||||
structLength = 36;
|
||||
@@ -530,7 +544,8 @@ namespace LibBSP {
|
||||
break;
|
||||
}
|
||||
case MapType.Source18:
|
||||
case MapType.Source19: {
|
||||
case MapType.Source19:
|
||||
case MapType.Vindictus: {
|
||||
structLength = 56;
|
||||
break;
|
||||
}
|
||||
@@ -597,6 +612,9 @@ namespace LibBSP {
|
||||
case MapType.CoD2: {
|
||||
return 26;
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
return 28;
|
||||
}
|
||||
default: {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -212,6 +212,9 @@ namespace LibBSP {
|
||||
[Index("faces")] public int firstFace {
|
||||
get {
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt16(data, 24);
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2:
|
||||
case MapType.STEF2:
|
||||
@@ -256,6 +259,11 @@ namespace LibBSP {
|
||||
set {
|
||||
byte[] bytes = BitConverter.GetBytes(value);
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
data[24] = bytes[0];
|
||||
data[25] = bytes[1];
|
||||
break;
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2:
|
||||
case MapType.STEF2:
|
||||
@@ -304,6 +312,9 @@ namespace LibBSP {
|
||||
[Count("faces")] public int numFaces {
|
||||
get {
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
return BitConverter.ToInt16(data, 28);
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2:
|
||||
case MapType.STEF2:
|
||||
@@ -348,6 +359,11 @@ namespace LibBSP {
|
||||
set {
|
||||
byte[] bytes = BitConverter.GetBytes(value);
|
||||
switch (type) {
|
||||
case MapType.CoD4: {
|
||||
data[28] = bytes[0];
|
||||
data[29] = bytes[1];
|
||||
break;
|
||||
}
|
||||
case MapType.CoD:
|
||||
case MapType.CoD2:
|
||||
case MapType.STEF2:
|
||||
|
||||
@@ -67,18 +67,18 @@ namespace LibBSP {
|
||||
switch (type) {
|
||||
case DataType.Byte:
|
||||
case DataType.SByte: {
|
||||
return 1;
|
||||
return sizeof(sbyte);
|
||||
}
|
||||
case DataType.UInt16:
|
||||
case DataType.Int16: {
|
||||
return 2;
|
||||
return sizeof(short);
|
||||
}
|
||||
case DataType.UInt32:
|
||||
case DataType.Int32: {
|
||||
return 4;
|
||||
return sizeof(int);
|
||||
}
|
||||
case DataType.Int64: {
|
||||
return 8;
|
||||
return sizeof(long);
|
||||
}
|
||||
default: {
|
||||
return 0;
|
||||
@@ -245,6 +245,10 @@ namespace LibBSP {
|
||||
dataType = DataType.UInt32;
|
||||
return 27;
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
dataType = DataType.UInt32;
|
||||
return 29;
|
||||
}
|
||||
}
|
||||
dataType = DataType.Invalid;
|
||||
return -1;
|
||||
@@ -280,6 +284,10 @@ namespace LibBSP {
|
||||
dataType = DataType.UInt16;
|
||||
return 9;
|
||||
}
|
||||
case MapType.CoD4: {
|
||||
dataType = DataType.UInt16;
|
||||
return 11;
|
||||
}
|
||||
case MapType.Raven:
|
||||
case MapType.Quake3: {
|
||||
dataType = DataType.UInt32;
|
||||
|
||||
Reference in New Issue
Block a user