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 CECTaskInterface() { } public CECTaskInterface(CECHostPlayer pHost) { m_pHost = pHost; m_pActiveListBuf = null; m_pFinishedListBuf = null; m_pFinishedTimeListBuf = null; m_pFinishedCountListBuf = null; m_pStorageTaskListBuf = null; } 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? } private ATaskTemplMan GetTaskTemplMan() { //return g_pGame->GetTaskTemplateMan(); return null; } } }