Fix: Add QUEST_CANCEL packet to manage state reset upon client quest dialog cancelation

This commit is contained in:
Simone Romano
2025-12-25 21:55:41 +01:00
parent 2663bb4c9c
commit 6ac3d1a00f
6 changed files with 36 additions and 0 deletions

View File

@@ -2056,6 +2056,12 @@ void CInputMain::QuestConfirm(LPCHARACTER ch, const void* c_pData)
}
}
void CInputMain::QuestCancel(LPCHARACTER ch)
{
sys_log(0, "QuestCancel from %s pid %u", ch->GetName(), ch->GetPlayerID());
quest::CQuestManager::Instance().Cancel(ch->GetPlayerID());
}
void CInputMain::Target(LPCHARACTER ch, const char * pcData)
{
TPacketCGTarget * p = (TPacketCGTarget *) pcData;
@@ -3272,6 +3278,10 @@ int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
QuestConfirm(ch, c_pData);
break;
case HEADER_CG_QUEST_CANCEL:
QuestCancel(ch);
break;
case HEADER_CG_TARGET:
Target(ch, c_pData);
break;