Files
Sun1602/Tools/WiseClient/Logic/S_ACTIVE/S_0000xx_MAIN_LF.cpp
T
2022-10-26 12:25:11 +08:00

184 lines
4.5 KiB
C++

#include "stdafx.h"
#include <Logic/Logic.PeriodicWork.h>
#include <Logic/Logic.Active.h>
LF_ACTIVE_HANDLER_IMPL(S_000000_START_MARK_LF)
{
DEBUGGING_CODE_L3("");
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000010_START_CONNECTION_LF)
{
DEBUGGING_CODE_L3("");
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
LogicFlowConnection* pWorkNode = new LogicFlowConnection(rCONTROLLER);
WORK_KEY wkWorkKey = WorkLoadManager::RegisterTask(pWorkNode);
if(WorkLoadManager::c_NotExistKey == wkWorkKey)
{
DEBUGGING_CODE_L1("Can't Register");
SAFE_DELETE(pWorkNode);
return LFRET_FAIL;
}
rCONTROLLER.WORK_LOAD().RegisterWork(wkWorkKey, (DWORD)(__int64)pWorkNode);
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000012_WAIT_NEXT_ACTION_LF)
{
DEBUGGING_CODE_L3("");
return LFRET_PENDING_UNTIL_PASSIVE;
}
LF_ACTIVE_HANDLER_IMPL(S_000020_START_ZONE_LF)
{
DEBUGGING_CODE_L3("");
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
LogicFlowZone* pWorkNode = new LogicFlowZone(rCONTROLLER);
WORK_KEY wkWorkKey = WorkLoadManager::RegisterTask(pWorkNode);
if(WorkLoadManager::c_NotExistKey == wkWorkKey)
{
DEBUGGING_CODE_L1("Can't Register");
SAFE_DELETE(pWorkNode);
return LFRET_FAIL;
}
rCONTROLLER.WORK_LOAD().RegisterWork(wkWorkKey, (DWORD)(__int64)pWorkNode);
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000022_WAIT_NEXT_ACTION_LF)
{
DEBUGGING_CODE_L3("");
//LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
//rCONTROLLER.GotoStep(S_000080_UPDATE_LOOP_LF, NULL);
//return LFRET_SUCCESS_JUMP;
return LFRET_PENDING_UNTIL_PASSIVE;
}
LF_ACTIVE_HANDLER_IMPL(S_000026_START_MOVE_LF)
{
DEBUGGING_CODE_L3("");
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
LogicFlowMove* pWorkNode = new LogicFlowMove(rCONTROLLER);
WORK_KEY wkWorkKey = WorkLoadManager::RegisterTask(pWorkNode);
if(WorkLoadManager::c_NotExistKey == wkWorkKey)
{
DEBUGGING_CODE_L1("Can't Register");
SAFE_DELETE(pWorkNode);
return LFRET_FAIL;
}
// MOVE 관련 처리 안하도록
rCONTROLLER.WORK_LOAD().RegisterWork(wkWorkKey, (DWORD)(__int64)pWorkNode);
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000028_WAIT_NEXT_ACTION_LF)
{
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
rCONTROLLER.GotoStep(S_000080_UPDATE_LOOP_LF, NULL);
return LFRET_SUCCESS_JUMP;
}
LF_ACTIVE_HANDLER_IMPL(S_000030_START_BATTLE_LF)
{
DEBUGGING_CODE_L3("");
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000032_WAIT_NEXT_ACTION_LF)
{
DEBUGGING_CODE_L3("");
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
rCONTROLLER.GotoStep(S_000080_UPDATE_LOOP_LF, NULL);
return LFRET_SUCCESS_JUMP;
}
LF_ACTIVE_HANDLER_IMPL(S_000040_START_AI_LF)
{
DEBUGGING_CODE_L3("");
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000042_WAIT_NEXT_ACTION_LF)
{
DEBUGGING_CODE_L3("");
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
rCONTROLLER.GotoStep(S_000080_UPDATE_LOOP_LF, NULL);
return LFRET_SUCCESS_JUMP;
}
LF_ACTIVE_HANDLER_IMPL(S_000050_START_CHAT_LF)
{
DEBUGGING_CODE_L3("");
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000052_WAIT_NEXT_ACTION_LF)
{
DEBUGGING_CODE_L3("");
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
rCONTROLLER.GotoStep(S_000080_UPDATE_LOOP_LF, NULL);
return LFRET_SUCCESS_JUMP;
}
LF_ACTIVE_HANDLER_IMPL(S_000080_UPDATE_LOOP_LF)
{
// Return Code추가가 필요하다. 해당 루틴으로 계속 들어올 수 있는...
// 아님 GotoStep을 사용할까?
// DEBUGGING_CODE_L3("");
//LogicFlowController* pController = (LogicFlowController*)pDelegator->REF();
//pController->GotoStep(S_000080_UPDATE_LOOP_LF, NULL);
//sSIG_STEP& rSIGNAL = sSIGNAL_BUFFER::InstanceOf<sSIG_STEP>();
//rSIGNAL.SUBTYPE() = sSIG_STEP::ACTIVATE_JUMP_STEP;
//sSIG_STEP_ARG& rARG = rSIGNAL.TypeOf<sSIG_STEP_ARG>();
//rARG.GROUP = LFG_MAX;
//rARG.STEP = S_000080_UPDATE_LOOP_LF;
return LFRET_SUCCESS_LOOP;
}
LF_ACTIVE_HANDLER_IMPL(S_000085_EOL_FLOW_CONTROL_LF)
{
DEBUGGING_CODE_L3("");
LogicFlowController& rCONTROLLER = *(LogicFlowController*)pDelegator->REF();
rCONTROLLER.GotoStep(S_000080_UPDATE_LOOP_LF, NULL);
return LFRET_SUCCESS_JUMP;
}
LF_ACTIVE_HANDLER_IMPL(S_000090_CLOSURE_EXCEPTION_LF)
{
DEBUGGING_CODE_L3("");
return LFRET_SUCCESS_DEFAULT;
}
LF_ACTIVE_HANDLER_IMPL(S_000099_CLOSURE_MARK_LF)
{
DEBUGGING_CODE_L3("");
return LFRET_SUCCESS_DEFAULT;
}