Removed fixed statement when accessing fixed fields.

This commit is contained in:
hondacrx
2019-12-07 11:45:28 -05:00
parent 9c83bc7e82
commit 56819e632d
6 changed files with 39 additions and 63 deletions
@@ -131,11 +131,8 @@ namespace Game.DataStorage
unsafe unsafe
{ {
fixed (float* b = areaTriggerTemplate.DefaultDatas.Data) for (byte i = 0; i < SharedConst.MaxAreatriggerEntityData; ++i)
{ areaTriggerTemplate.DefaultDatas.Data[i] = templates.Read<float>(3 + i);
for (byte i = 0; i < SharedConst.MaxAreatriggerEntityData; ++i)
b[i] = templates.Read<float>(3 + i);
}
} }
areaTriggerTemplate.ScriptId = Global.ObjectMgr.GetScriptId(templates.Read<string>(9)); areaTriggerTemplate.ScriptId = Global.ObjectMgr.GetScriptId(templates.Read<string>(9));
@@ -314,12 +314,9 @@ namespace Game.Entities
unsafe unsafe
{ {
fixed (float* ptr = GetTemplate().BoxDatas.Extents) extentsX = GetTemplate().BoxDatas.Extents[0];
{ extentsY = GetTemplate().BoxDatas.Extents[1];
extentsX = ptr[0]; extentsZ = GetTemplate().BoxDatas.Extents[2];
extentsY = ptr[1];
extentsZ = ptr[2];
}
} }
var check = new AnyUnitInObjectRangeCheck(this, GetTemplate().MaxSearchRadius, false); var check = new AnyUnitInObjectRangeCheck(this, GetTemplate().MaxSearchRadius, false);
@@ -182,39 +182,35 @@ namespace Game.Entities
switch (TriggerType) switch (TriggerType)
{ {
case AreaTriggerTypes.Sphere: case AreaTriggerTypes.Sphere:
{ {
MaxSearchRadius = Math.Max(SphereDatas.Radius, SphereDatas.RadiusTarget); MaxSearchRadius = Math.Max(SphereDatas.Radius, SphereDatas.RadiusTarget);
break; break;
} }
case AreaTriggerTypes.Box: case AreaTriggerTypes.Box:
{
fixed (float* ptr = BoxDatas.Extents)
{ {
MaxSearchRadius = (float) Math.Sqrt(ptr[0] * ptr[0] / 4 + ptr[1] * ptr[1] / 4); MaxSearchRadius = (float)Math.Sqrt(BoxDatas.Extents[0] * BoxDatas.Extents[0] / 4 + BoxDatas.Extents[1] * BoxDatas.Extents[1] / 4);
break;
} }
break;
}
case AreaTriggerTypes.Polygon: case AreaTriggerTypes.Polygon:
{
if (PolygonDatas.Height <= 0.0f)
PolygonDatas.Height = 1.0f;
foreach (Vector2 vertice in PolygonVertices)
{ {
float pointDist = vertice.GetLength(); if (PolygonDatas.Height <= 0.0f)
PolygonDatas.Height = 1.0f;
if (pointDist > MaxSearchRadius) foreach (Vector2 vertice in PolygonVertices)
MaxSearchRadius = pointDist; {
float pointDist = vertice.GetLength();
if (pointDist > MaxSearchRadius)
MaxSearchRadius = pointDist;
}
break;
} }
break;
}
case AreaTriggerTypes.Cylinder: case AreaTriggerTypes.Cylinder:
{ {
MaxSearchRadius = CylinderDatas.Radius; MaxSearchRadius = CylinderDatas.Radius;
break; break;
} }
default: default:
break; break;
} }
@@ -541,12 +541,10 @@ namespace Game.Entities
unsafe unsafe
{ {
fixed (int* ptr = Raw.data) for (int i = 0; i < SharedConst.MaxGOData; i++)
{ stats.Data[i] = Raw.data[i];
for (int i = 0; i < SharedConst.MaxGOData; i++)
stats.Data[i] = ptr[i];
}
} }
stats.RequiredLevel = (uint)RequiredLevel; stats.RequiredLevel = (uint)RequiredLevel;
QueryData.Stats = stats; QueryData.Stats = stats;
+6 -12
View File
@@ -509,19 +509,13 @@ namespace Game.Entities
{ {
unsafe unsafe
{ {
fixed (float* ptr = areaTriggerTemplate.BoxDatas.Extents) data.WriteFloat(areaTriggerTemplate.BoxDatas.Extents[0]);
{ data.WriteFloat(areaTriggerTemplate.BoxDatas.Extents[1]);
data.WriteFloat(ptr[0]); data.WriteFloat(areaTriggerTemplate.BoxDatas.Extents[2]);
data.WriteFloat(ptr[1]);
data.WriteFloat(ptr[2]);
}
fixed (float* ptr = areaTriggerTemplate.BoxDatas.ExtentsTarget) data.WriteFloat(areaTriggerTemplate.BoxDatas.ExtentsTarget[0]);
{ data.WriteFloat(areaTriggerTemplate.BoxDatas.ExtentsTarget[1]);
data.WriteFloat(ptr[0]); data.WriteFloat(areaTriggerTemplate.BoxDatas.ExtentsTarget[2]);
data.WriteFloat(ptr[1]);
data.WriteFloat(ptr[2]);
}
} }
} }
+4 -10
View File
@@ -3656,11 +3656,8 @@ namespace Game
unsafe unsafe
{ {
fixed (int* b = go.Raw.data) for (byte x = 0; x < db2go.PropValue.Length; ++x)
{ go.Raw.data[x] = db2go.PropValue[x];
for (byte x = 0; x < db2go.PropValue.Length; ++x)
b[x] = db2go.PropValue[x];
}
} }
go.RequiredLevel = 0; go.RequiredLevel = 0;
@@ -3702,11 +3699,8 @@ namespace Game
unsafe unsafe
{ {
fixed (int* b = got.Raw.data) for (byte x = 0; x < SharedConst.MaxGOData; ++x)
{ got.Raw.data[x] = result.Read<int>(8 + x);
for (byte x = 0; x < SharedConst.MaxGOData; ++x)
b[x] = result.Read<int>(8 + x);
}
} }
got.RequiredLevel = result.Read<int>(42); got.RequiredLevel = result.Read<int>(42);