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
@@ -130,12 +130,9 @@ namespace Game.DataStorage
areaTriggerTemplate.Flags = (AreaTriggerFlags)templates.Read<uint>(2); areaTriggerTemplate.Flags = (AreaTriggerFlags)templates.Read<uint>(2);
unsafe unsafe
{
fixed (float* b = areaTriggerTemplate.DefaultDatas.Data)
{ {
for (byte i = 0; i < SharedConst.MaxAreatriggerEntityData; ++i) for (byte i = 0; i < SharedConst.MaxAreatriggerEntityData; ++i)
b[i] = templates.Read<float>(3 + i); areaTriggerTemplate.DefaultDatas.Data[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);
@@ -188,11 +188,7 @@ namespace Game.Entities
} }
case AreaTriggerTypes.Box: case AreaTriggerTypes.Box:
{ {
fixed (float* ptr = BoxDatas.Extents) MaxSearchRadius = (float)Math.Sqrt(BoxDatas.Extents[0] * BoxDatas.Extents[0] / 4 + BoxDatas.Extents[1] * BoxDatas.Extents[1] / 4);
{
MaxSearchRadius = (float) Math.Sqrt(ptr[0] * ptr[0] / 4 + ptr[1] * ptr[1] / 4);
}
break; break;
} }
case AreaTriggerTypes.Polygon: case AreaTriggerTypes.Polygon:
@@ -540,13 +540,11 @@ namespace Game.Entities
stats.QuestItems.Add(item); stats.QuestItems.Add(item);
unsafe unsafe
{
fixed (int* ptr = Raw.data)
{ {
for (int i = 0; i < SharedConst.MaxGOData; i++) for (int i = 0; i < SharedConst.MaxGOData; i++)
stats.Data[i] = ptr[i]; stats.Data[i] = Raw.data[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]);
}
} }
} }
+2 -8
View File
@@ -3655,12 +3655,9 @@ namespace Game
go.size = db2go.Scale; go.size = db2go.Scale;
unsafe unsafe
{
fixed (int* b = go.Raw.data)
{ {
for (byte x = 0; x < db2go.PropValue.Length; ++x) for (byte x = 0; x < db2go.PropValue.Length; ++x)
b[x] = db2go.PropValue[x]; go.Raw.data[x] = db2go.PropValue[x];
}
} }
go.RequiredLevel = 0; go.RequiredLevel = 0;
@@ -3701,12 +3698,9 @@ namespace Game
got.size = result.Read<float>(7); got.size = result.Read<float>(7);
unsafe unsafe
{
fixed (int* b = got.Raw.data)
{ {
for (byte x = 0; x < SharedConst.MaxGOData; ++x) for (byte x = 0; x < SharedConst.MaxGOData; ++x)
b[x] = result.Read<int>(8 + x); got.Raw.data[x] = result.Read<int>(8 + x);
}
} }
got.RequiredLevel = result.Read<int>(42); got.RequiredLevel = result.Read<int>(42);