KeenSoftwareHouse / SpaceEngineers

2.93k stars 896 forks source link

Serialization bug with autopilot? #522

Open AlonzoTG opened 8 years ago

AlonzoTG commented 8 years ago

Hey, I mashed keys on my keyboard until I had a fork of Space Engineers (which github seems to require) and had it running in a C# 4.6.2 compiled with VS'15...

Okay, I made a hell of a lot of changes, (check my repo) but an issue, which I suspect is latent in your version but was exposed by the newer libraries I was using... The error message has to do with an XML serialization messup with regards to the "simple auto pilot". I think this is related to the "Autopilot Enabled" bug that affects the released game. I don't know enough C# to fix it. All I know is that VS was reporting about 7,000 warnings, many of which are trivial...

AlonzoTG commented 8 years ago

I started from scratch, got clobbered by this morning's update, but was much more cognizant of the issues in this codebase this time. However, I'm still getting autopilot issues, here's the exception dump:

System.InvalidOperationException was unhandled by user code HResult=-2146233079 Message=There was an error generating the XML document. Source=System.Xml StackTrace: at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o) at VRage.Game.MyAbstractXmlSerializer1.WriteXml(XmlWriter writer) in C:\Users\atg\Documents\GitHub\SpaceEngineers\Sources\VRage.Game\ObjectBuilder\MyAbstractXmlSerializer.cs:line 257 at System.Xml.Serialization.XmlSerializationWriter.WriteSerializable(IXmlSerializable serializable, String name, String ns, Boolean isNullable, Boolean wrapped) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write549_MyObjectBuilder_Sector(String n, String ns, MyObjectBuilder_Sector o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1134_MyObjectBuilder_Sector(Object o) InnerException: HResult=-2146233079 Message=There was an error generating the XML document. Source=System.Xml StackTrace: at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o) at VRage.Game.MyAbstractXmlSerializer1.WriteXml(XmlWriter writer) in C:\Users\atg\Documents\GitHub\SpaceEngineers\Sources\VRage.Game\ObjectBuilder\MyAbstractXmlSerializer.cs:line 257 at System.Xml.Serialization.XmlSerializationWriter.WriteSerializable(IXmlSerializable serializable, String name, String ns, Boolean isNullable, Boolean wrapped) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write364_MyObjectBuilder_CubeGrid(String n, String ns, MyObjectBuilder_CubeGrid o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1026_MyObjectBuilder_CubeGrid(Object o) InnerException: HResult=-2146233079 Message=The type Sandbox.Common.ObjectBuilders.MyObjectBuilder_SimpleAutopilot was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically. Source=SpaceEngineers.ObjectBuilders.XmlSerializers StackTrace: at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write5033_MyObjectBuilder_AutopilotBase(String n, String ns, MyObjectBuilder_AutopilotBase o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write5034_MyObjectBuilder_Cockpit(String n, String ns, MyObjectBuilder_Cockpit o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write12528_MyObjectBuilder_Cockpit(Object o) InnerException:

Also, is it just me or have the roll-buttons in spectator mode stopped working? Roll works just fine in suit or large ship mode. Are there any hot-spots I should look at that would kill just roll input?

My cleanup pack does contain a dozen or so major bug-fixes that could fix null-ref exceptions and other strange behaviors so I want to bundle the pull asap, but I also want to do a much better job of it than my last attempt.