public static bool cb(CSVReader csv_reader, PortalTableData data, ref uint key)
        {
            data.portalID = key;
            csv_reader.Pop(ref data.linkPortalId);
            csv_reader.Pop(ref data.srcMapID);
            csv_reader.Pop(ref data.srcX);
            csv_reader.Pop(ref data.srcZ);
            csv_reader.Pop(ref data.dstMapID);
            csv_reader.Pop(ref data.dstX);
            csv_reader.Pop(ref data.dstZ);
            csv_reader.Pop(ref data.dstDir);
            csv_reader.Pop(ref data.mapX);
            csv_reader.Pop(ref data.mapY);
            csv_reader.Pop(ref data.dstQuestID);
            csv_reader.Pop(ref data.showDeliveryId);
            csv_reader.Pop(ref data.hideQuestId);
            csv_reader.Pop(ref data.appearQuestId);
            csv_reader.Pop(ref data.appearDeliveryId);
            csv_reader.Pop(ref data.travelMapId);
            csv_reader.Pop(ref data.openPriority);
            csv_reader.Pop(ref data.portalPoint);
            csv_reader.Pop(ref data.notAppearText);
            csv_reader.Pop(ref data.placeText);
            string value = string.Empty;

            csv_reader.Pop(ref value);
            if (!string.IsNullOrEmpty(value))
            {
                DateTime.TryParse(value, out data.startAt);
            }
            csv_reader.Pop(ref data.banEnemy);
            csv_reader.Pop(ref data.appearRegionId);
            return(true);
        }
    public List <PortalTableData> GetDeliveryRelationPortalData(uint delivery_id)
    {
        if (!Singleton <FieldMapTable> .IsValid())
        {
            return(null);
        }
        List <PortalTableData> ret = new List <PortalTableData>();

        portalTable.ForEach(delegate(PortalTableData data)
        {
            if (data.appearDeliveryId == delivery_id)
            {
                ret.Add(data);
            }
        });
        List <PortalTableData> remove_list = new List <PortalTableData>();

        ret.ForEach(delegate(PortalTableData data)
        {
            if (MonoBehaviourSingleton <WorldMapManager> .I.IsTraveledMap((int)data.srcMapID))
            {
                if (data.linkPortalId != 0)
                {
                    PortalTableData portalTableData = portalTable.Get(data.linkPortalId);
                    if (portalTableData != null)
                    {
                        remove_list.Add(portalTableData);
                    }
                }
            }
            else
            {
                remove_list.Add(data);
            }
        });
        remove_list.ForEach(delegate(PortalTableData remove_portal)
        {
            ret.RemoveAll((PortalTableData data) => data.portalID == remove_portal.portalID);
        });
        return(ret);
    }