This commit is contained in:
JohnCorby 2022-01-13 23:51:06 -08:00
parent e338b84aaf
commit 4f8ad18f22
3 changed files with 6 additions and 4 deletions

View File

@ -360,7 +360,7 @@ namespace Mirror.Weaver
continue;
// todo does this even work?
Log.Error($"read using {method}", klass);
Log.Error($"! read using {method}", klass);
// mismatched ldloca/ldloc for struct/class combinations is invalid IL, which causes crash at runtime
var opcode = klass.IsValueType ? OpCodes.Ldloca : OpCodes.Ldloc;
worker.Emit(opcode, 0); // the klass
@ -388,6 +388,7 @@ namespace Mirror.Weaver
if (readFunc != null)
{
worker.Emit(OpCodes.Ldarg_0);
Log.Error($"! read field {field}", variable);
worker.Emit(OpCodes.Call, readFunc);
}
else

View File

@ -276,7 +276,7 @@ namespace Mirror.Weaver
continue;
// todo does this even work?
Log.Error($"write using {method}", klass);
Log.Error($"! write using {method}", klass);
worker.Emit(OpCodes.Ldarg_1); // the klass
worker.Emit(OpCodes.Ldarg_0); // the writer
worker.Emit(OpCodes.Callvirt, method);
@ -307,6 +307,7 @@ namespace Mirror.Weaver
worker.Emit(OpCodes.Ldarg_0);
worker.Emit(OpCodes.Ldarg_1);
worker.Emit(OpCodes.Ldfld, fieldRef);
Log.Error($"! write field {field}", variable);
worker.Emit(OpCodes.Call, writeFunc);
}

View File

@ -22,13 +22,13 @@ namespace QSB.AuthoritySync
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(NetId);
writer.WriteUInt(NetId.Value);
}
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
NetId = reader.Read<QNetworkInstanceId>();
NetId = new QNetworkInstanceId(reader.ReadUInt());
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;