119 lines
5.1 KiB
C#
119 lines
5.1 KiB
C#
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<int, bool> m_TasksToConfirm = new Dictionary<int, bool>();
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|