public void AddSceneTransData(SceneTransferData data) { if (nPos < m_nMaxData) { m_pTransferData[nPos++] = data; if (data.nSceneID < m_nMaxScene) { if (m_pSceneWayInfo[data.nSceneID] == null) { m_pSceneWayInfo[data.nSceneID] = new SceneWayInfo(); } if (!m_pSceneWayInfo[data.nSceneID].Add(nPos - 1)) { LogManager.LogError("ShortestPath::AddSceneTransData m_pSceneWayInfo[data.nSceneID].Add return false"); } m_pSceneWayInfo[data.nSceneID].SetValid(true); } else { LogManager.LogError("ShortestPath::AddSceneTransData "); } } else { LogManager.LogError("ShortestPath::AddSceneTransData out bound of m_pTransferData"); } }
//接口函数 public void Initailize(int maxData, int maxScene) { if (maxData > 0 && maxScene > 0) { m_pTransferData = new SceneTransferData[maxData]; m_pSceneWayInfo = new SceneWayInfo[maxScene]; m_nMaxScene = maxScene; m_nMaxData = maxData; } else { LogManager.LogError("ShortestPath::Initailize Invalid Params"); } }
void InitSceneTransportData() { // 初始化传送点数据 [8/3/2011 ivan edit] if (!alreadyLoad) { DBC.COMMON_DBC <_DBC_SCENE_POS_DEFINE> allPos = CDataBaseSystem.Instance.GetDataBase <_DBC_SCENE_POS_DEFINE>((int)DataBaseStruct.DBC_SCENE_POS_DEFINE); SceneTransportPath.Instance.Initailize(allPos.StructDict.Count * 2 + 1, GAMEDEFINE.MAX_SCENE); foreach (_DBC_SCENE_POS_DEFINE scene in allPos.StructDict.Values) { SceneTransferData data = new SceneTransferData(); data.nSceneID = scene.nSceneID; data.xPos = scene.nXPos; data.yPos = scene.nZPos; data.nDestSceneID = scene.nDestSceneID; SceneTransportPath.Instance.AddSceneTransData(data); } alreadyLoad = true; } }