public void CopyLevel(Level src, CopyGuidControl guid_control)
        {
            for (int i = 0; i < MAX_VERTICES; i++)
            {
                vertex[i].alive = false;

                if (src.vertex[i].alive)
                {
                    vertex[i].Copy(src.vertex[i], true);
                }
            }

            for (int i = 0; i < MAX_SEGMENTS; i++)
            {
                segment[i].Alive = false;

                if (src.segment[i].Alive)
                {
                    segment[i].Copy(src.segment[i], true);
                }
            }

            for (int i = 0; i < MAX_ENTITIES; i++)
            {
                entity[i].alive = false;

                if (src.entity[i].alive)
                {
                    entity[i].Copy(src.entity[i], true, guid_control);
                }
            }

            CopyLevelProperties(src);
        }
        public void Copy(Entity src, bool full, CopyGuidControl guid_control)
        {
            Guid new_guid = Guid.Empty;

            if (src.alive)
            {
                switch (guid_control)
                {
                case CopyGuidControl.CloneGuid:
                    new_guid = src.guid;
                    break;

                case CopyGuidControl.GenerateNewGuid:
                    new_guid = Guid.NewGuid();
                    break;
                }
            }

            Copy(src, full, new_guid);
        }