using System.Collections.Generic; namespace PerfectWorld.Scripts.Task { public class CECTaskInterface : TaskInterface { CECHostPlayer m_pHost; object[] m_pActiveListBuf; // Active task list buffer object[] m_pFinishedListBuf; // Finished task list buffer object[] m_pFinishedTimeListBuf; // Finished time list buffer object[] m_pFinishedCountListBuf;// Finished count list buffer object[] m_pStorageTaskListBuf; // Storage tasks list buffer private Dictionary m_TasksToConfirm = new Dictionary(); public bool Init(object[] pActiveListBuf, int iActiveListLen, object[] pFinishedListBuf, int iFinishedListLen, object[] pFinishedTimeListBuf, int iFinishedTimeListLen, object[] pFinishedCountListBuf, int iFinishedCountListLen, object[] pStorageTaskListBuf, int iStorageTaskListLen) { //if (!(m_pActiveListBuf = a_malloc(TASK_ACTIVE_LIST_BUF_SIZE))) //{ // glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__); // return false; //} //if (!(m_pFinishedListBuf = a_malloc(TASK_FINISHED_LIST_BUF_SIZE))) //{ // a_free(m_pActiveListBuf); // m_pFinishedListBuf = NULL; // glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__); // return false; //} //if (!(m_pFinishedTimeListBuf = a_malloc(TASK_FINISH_TIME_LIST_BUF_SIZE))) //{ // a_free(m_pActiveListBuf); // a_free(m_pFinishedListBuf); // glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__); // return false; //} //if (!(m_pFinishedCountListBuf = a_malloc(TASK_FINISH_COUNT_LIST_BUF_SIZE))) //{ // a_free(m_pActiveListBuf); // a_free(m_pFinishedListBuf); // a_free(m_pFinishedCountListBuf); // glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__); // return false; //} //if (!(m_pStorageTaskListBuf = a_malloc(TASK_STORAGE_LIST_BUF_SIZE))) //{ // a_free(m_pActiveListBuf); // a_free(m_pFinishedListBuf); // a_free(m_pFinishedCountListBuf); // a_free(m_pStorageTaskListBuf); // glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__); // return false; //} //ASSERT(pActiveListBuf && pFinishedListBuf && pFinishedTimeListBuf && pFinishedCountListBuf); //memcpy(m_pActiveListBuf, pActiveListBuf, iActiveListLen); //memcpy(m_pFinishedListBuf, pFinishedListBuf, iFinishedListLen); //memcpy(m_pFinishedTimeListBuf, pFinishedTimeListBuf, iFinishedTimeListLen); //memcpy(m_pFinishedCountListBuf, pFinishedCountListBuf, iFinishedCountListLen); //memcpy(m_pStorageTaskListBuf, pStorageTaskListBuf, iStorageTaskListLen); //// Clear rest buffer //if (iActiveListLen < TASK_ACTIVE_LIST_BUF_SIZE) // memset((BYTE*)m_pActiveListBuf + iActiveListLen, 0, TASK_ACTIVE_LIST_BUF_SIZE - iActiveListLen); //if (iFinishedListLen < TASK_FINISHED_LIST_BUF_SIZE) // memset((BYTE*)m_pFinishedListBuf + iFinishedListLen, 0, TASK_FINISHED_LIST_BUF_SIZE - iFinishedListLen); //if (iFinishedTimeListLen < TASK_FINISH_TIME_LIST_BUF_SIZE) // memset((BYTE*)m_pFinishedTimeListBuf + iFinishedTimeListLen, 0, TASK_FINISH_TIME_LIST_BUF_SIZE - iFinishedTimeListLen); //if (iFinishedCountListLen < TASK_FINISH_COUNT_LIST_BUF_SIZE) // memset((BYTE*)m_pFinishedCountListBuf + iFinishedCountListLen, 0, TASK_FINISH_COUNT_LIST_BUF_SIZE - iFinishedCountListLen); //if (iStorageTaskListLen < TASK_STORAGE_LIST_BUF_SIZE) // memset((BYTE*)m_pStorageTaskListBuf + iStorageTaskListLen, 0, TASK_STORAGE_LIST_BUF_SIZE - iStorageTaskListLen); //ATaskTemplMan* pTaskMan = GetTaskTemplMan(); //pTaskMan->Release(); //pTaskMan->LoadTasksFromPack("data\\tasks.data", true); //pTaskMan->LoadNPCInfoFromPack("data\\task_npc.data"); //pTaskMan->VerifyDynTasksPack("userdata\\dyn_tasks.data"); //InitActiveTaskList(); //m_bForceNavigateFinish = false; return true; } public static void WriteLog(int nPlayerId, int nTaskId, int nType, string szLog) { //do something? } } }