гори, гори, моя звезда
Претензия на фикс вот
этой темы
Код:
void WINAPIV CMainThread__Load_ReturnPost_Complete(
ATF::CMainThread *pObj,
char *pData)
{
_qry_case_post_return_list_get* pInfo = (_qry_case_post_return_list_get *)pData;
do
{
if (pInfo->byProcRet == 1)
break;
CPlayer* pPlayer = GetPtrPlayerFromSerial(g_Player, MAX_PLAYER, pInfo->dwMasterSerial);
if (!pPlayer)
break;
if (!pPlayer->m_bLoad)
break;
if (pPlayer->m_bPostLoad)
break;
auto pReturnPostStorage = &pPlayer->m_Param.m_ReturnPostStorage;
for (unsigned int j = 0; j < pInfo->dwCount; ++j)
{
auto pPost = pReturnPostStorage->AddReturnPost(
pInfo->List[j].byErr,
pInfo->List[j].dwSerial,
pInfo->List[j].byState,
pInfo->List[j].wszRecvName,
pInfo->List[j].wszTitle,
pInfo->List[j].wszContent,
pInfo->List[j].key,
pInfo->List[j].dwDur,
pInfo->List[j].dwUpt,
pInfo->List[j].dwGold,
pInfo->List[j].lnUID);
if (!pPost) // это от краша
continue;
if (pPost->m_Key.IsFilled() || pPost->m_dwGold)
{
s_MgrItemHistory->post_returnreceive(
pPost,
pPlayer->m_szItemHistoryFileName);
}
}
s_MgrItemHistory->return_post_storage(
&pPlayer->m_Param.m_ReturnPostStorage,
pPlayer->m_szItemHistoryFileName);
pPlayer->m_bPostLoad = true;
if (!pInfo->dwCount)
break;
for (auto& PostData : pReturnPostStorage->m_PostData)
{
if (PostData.GetState() == -1)
continue;
pPlayer->SendMsg_PostReturn(
PostData.m_byErrCode,
PostData.m_dwPSSerial,
PostData.m_wszRecvName,
PostData.m_wszTitle,
PostData.m_wszContent,
PostData.m_Key.byTableCode,
PostData.m_Key.wItemIndex,
PostData.m_dwDur,
PostData.m_dwUpt,
PostData.m_dwGold);
}
} while (false);
}