public void PostLoad(GMProject proj) { if (_ParentInd > -1) { Parent = proj.Objects[_ParentInd]; } }
public GMObject(ProjectReader reader, GMProject proj) { Name = reader.ReadString(); LastChanged = reader.ReadDate(); Version = reader.ReadInt32(); if (Version != 430) { throw new InvalidDataException("Invalid Object version, got " + Version); } Sprite = null; int spr = reader.ReadInt32(); if (spr > -1) { Sprite = proj.Sprites[spr]; } Solid = reader.ReadBoolean(); Visible = reader.ReadBoolean(); Depth = reader.ReadInt32(); Persistent = reader.ReadBoolean(); Parent = null; _ParentInd = reader.ReadInt32(); Mask = null; int mask = reader.ReadInt32(); if (mask > -1) { Mask = proj.Sprites[mask]; } int ev_count = reader.ReadInt32(); Events = new List <List <GMEvent> >(ev_count + 1); for (int i = 0; i <= ev_count; i++) { var l = new List <GMEvent>(); bool done = false; while (!done) { int first = reader.ReadInt32(); if (first != -1) { var ev = new GMEvent(reader); ev.Key = first; l.Add(ev); } else { done = true; } } Events.Add(l); } reader.Dispose(); }