📄 ai_shared.cpp
字号:
void AI_Shared::ResetNodes(HOBJECT hObject)
{
CServerDE* pServerDE = BaseClass::GetServerDE();
for(int i = 0; i < NUM_ALL_NODES; i++)
{
HideNodeAndSubNodes(hObject,i,DFALSE);
}
}
// ----------------------------------------------------------------------- //
//
// ROUTINE: AI_Shared::SetAnimation
//
// PURPOSE: Set the current animation
//
// ----------------------------------------------------------------------- //
//void AI_Shared::SetAnimation(HOBJECT m_hObject, int nAni)
//{
// CServerDE* pServerDE = BaseClass::GetServerDE();
// if (!pServerDE || !m_hObject) return;
//
// // only set the animation if it has not been set yet...
// if (m_nCurAnimation != nAni)
// {
// m_nCurAnimation = nAni;
// pServerDE->SetModelAnimation(m_hObject, m_nCurAnimation);
// }
//}
//void AI_Shared::ForceAnimation(HOBJECT m_hObject, int nAni)
//{
// CServerDE* pServerDE = BaseClass::GetServerDE();
// if (!pServerDE || !m_hObject) return;
//
// // Force to different animation
// pServerDE->SetModelAnimation(m_hObject, 0);
//
// m_nCurAnimation = nAni;
// pServerDE->SetModelAnimation(m_hObject, m_nCurAnimation);
//}
//
//
//
// Do we still need these functions????????????
//
//
// ****************************************************************
// ****************************************************************
// ****************************************************************
//void AI_Shared::GotoIdleAnimation()
//{
// m_nState = STATE_INANIMATE;
// SetAnimation(m_nAnim_IDLE);
//}
//void AI_Shared::GotoNextAnimation()
//{
// m_nCurAnimation++;
// if(m_nCurAnimation > m_nAnim_VICTORY1)
// m_nCurAnimation = m_nAnim_IDLE;
//
// SetAnimation(m_nCurAnimation);
//}
//void AI_Shared::GotoPrevAnimation()
//{
// m_nCurAnimation--;
// if(m_nCurAnimation < m_nAnim_IDLE)
// m_nCurAnimation = m_nAnim_VICTORY1;
//
// SetAnimation(m_nCurAnimation);
//}
// ****************************************************************
// ****************************************************************
// ****************************************************************
// ----------------------------------------------------------------------- //
//
// ROUTINE: AI_Shared::
//
// PURPOSE:
//
// ----------------------------------------------------------------------- //
DBOOL AI_Shared::LoadBrains(char* pfilename)
{
// Load in the valid behavior states
//
// FILE *infile;
// char line[128];
//
// DBOOL b_begin_state = DFALSE;
// DBOOL b_begin_substate = DFALSE;
// DBOOL b_begin_ppscore = DFALSE;
//
// int m_slot;
//
// AIState m_estate;
// AISubState m_esubstate;
// AIMetaCommand m_emetacmd;
//
//
// infile = fopen(pfilename, "r");
//
// if (infile == NULL)
// return DFALSE;
//
// while (!feof(infile))
// {
// if (NULL != fgets(line, 128, infile))
// {
//
// BPrint(line);
// // remove spaces and tabs from the beginning!
// while ( _mbsncmp((const unsigned char*)line,(const unsigned char*)" ",1) == 0)
// {
// _mbscpy((unsigned char*)line, (const unsigned char*)&line[1]);
// }
//
// // Check for comments
// if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)";", 1) != 0 || _mbsncmp((const unsigned char*)line, "//", 2) != 0 )
// {
// if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"BEGIN_STATE", 11) == 0)
// {
// b_begin_state = DTRUE;
// b_begin_substate = DFALSE;
// b_begin_ppscore = DFALSE;
// m_slot = 0;
//
// _mbscpy((unsigned char*)line, (const unsigned char*)&line[12]); // only want the Name
//
// BPrint(line);
// m_estate = BrainState(line);
// }
// else if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"BEGIN_SUBSTATE", 14) == 0)
// {
// b_begin_substate = DTRUE;
// b_begin_state = DFALSE;
// b_begin_ppscore = DFALSE;
// m_slot = 0;
//
// _mbscpy((unsigned char*)line, (const unsigned char*)&line[15]); // only want the Name
// m_esubstate = BrainSubState(line);
// }
// else if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"BEGIN_PPSCORE", 13) == 0)
// {
// b_begin_ppscore = DTRUE;
// b_begin_substate = DFALSE;
// b_begin_state = DFALSE;
// m_slot = 0;
// }
// else if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"END", _mbstrlen("END")) == 0)
// {
// if (b_begin_state == DTRUE)
// {
// b_begin_state = DFALSE;
// }
// else if (b_begin_substate == DTRUE)
// {
// b_begin_substate = DFALSE;
// }
// else if (b_begin_ppscore == DTRUE)
// {
// b_begin_ppscore = DFALSE;
// }
//
// m_slot = 0;
// m_estate = STATE_INANIMATE;
// m_esubstate = SS_DONOTHING;
// }
// // Load the SubStates into the State Array
// else if (b_begin_state)
// {
// if (m_slot < 6) // Only load up to 6 SubStates
// {
// m_esubstate = BrainSubState(line);
// m_Brain.m_eStateArray[m_estate][m_slot] = m_esubstate;
//
// char buf[80];
// sprintf(buf,"Set State(%d), with SubState(%d) in slot(%d)",(int)m_estate,(int)m_esubstate, m_slot);
// BPrint(buf);
//
// m_slot++;
// }
// else
// {
// char buf[80];
// sprintf(buf,"MAX SubStates set for State(%d)",(int)m_estate);
// BPrint(buf);
// }
// }
// // Load the MetaCommands into the SubStates Array
// else if (b_begin_substate)
// {
// if (m_slot < 4) // Only load up to 4 MetaCommands
// {
// m_emetacmd = BrainMetaCommand(line);
// m_Brain.m_eSSCmdArray[m_esubstate][m_slot] = m_emetacmd;
//
// char buf[80];
// sprintf(buf,"Set SubState(%d), with MetaCmd(%d) in slot(%d)",(int)m_esubstate,(int)m_emetacmd, m_slot);
// BPrint(buf);
//
// m_slot++;
// }
// else
// {
// char buf[80];
// sprintf(buf,"MAX Metacmds set for SubState(%d)",(int)m_esubstate);
// BPrint(buf);
// }
//
// }
// // Load the PPScore
// else if (b_begin_ppscore)
// {
// if (m_slot < 3) // Only load up to 3 Scores
// {
//
// DFLOAT m_ppvalue = (float)atof(line);
// m_Brain.m_PP_Score[m_slot] = m_ppvalue;
//
// char buf[80];
// sprintf(buf,"Set PPScore with(%f) in slot(%d)",m_ppvalue, m_slot);
// BPrint(buf);
//
// m_slot++;
// }
// else
// {
// char buf[80];
// sprintf(buf,"MAX PPScores");
// BPrint(buf);
// }
//
// }
//
//
// } // comment
//
//
// }
// }
//
// fclose(infile);
//
return DTRUE;
}
// ----------------------------------------------------------------------- //
//
// ROUTINE: AI_Shared::
//
// PURPOSE: Lookup States by NAME
//
// ----------------------------------------------------------------------- //
//AIState AI_Shared::BrainState(char* sName)
//{
//typedef struct StateData_t
//{
// char m_sStateName[64];
// AIState m_eState;
//
//} StateData;
//
//static StateData StateArray[STATE_MAX] =
//{
// { "STATE_INANIMATE", STATE_INANIMATE },
// { "STATE_IDLE", STATE_IDLE},
// { "STATE_WORKING", STATE_WORKING},
// { "STATE_DEFENDING", STATE_DEFENDING},
// { "STATE_ATTACKING", STATE_ATTACKING},
// { "STATE_RETREATING", STATE_RETREATING},
// { "STATE_GUARDING", STATE_GUARDING},
// { "STATE_SCROUNGING", STATE_SCROUNGING},
// { "STATE_HITWALL", STATE_HITWALL},
// { "STATE_H_SHOTAT", STATE_H_SHOTAT},
// { "STATE_M_SHOTAT", STATE_M_SHOTAT},
// { "STATE_L_SHOTAT", STATE_L_SHOTAT},
// { "STATE_DYING", STATE_DYING},
// { "STATE_TREATASSESSMENT", STATE_TREATASSESSMENT},
// { "STATE_GETHELP", STATE_GETHELP}
//
//};
// AIState m_return = STATE_INANIMATE;
//
// for ( int m_index=0; m_index< STATE_MAX; m_index++)
// {
// if ( _mbsncmp((const unsigned char*)sName, (const unsigned char*)StateArray[m_index].m_sStateName, _mbstrlen(StateArray[m_index].m_sStateName) ) == 0)
// {
// m_return = StateArray[m_index].m_eState;
// }
// }
//
//
// return m_return;
// return (AIState)0;
//}
// ----------------------------------------------------------------------- //
//
// ROUTINE: AI_Shared::
//
// PURPOSE: Lookup Substates by NAME
//
// ----------------------------------------------------------------------- //
//AISubState AI_Shared::BrainSubState(char* sName)
//{
//typedef struct SubStateData_t
//{
// char m_sSubStateName[64];
// AISubState m_eSubState;
//
//} SubStateData;
//
//static SubStateData SubStateArray[SS_MAX] =
//{
// { "SS_DONOTHING", SS_DONOTHING},
// { "SS_IDLE", SS_IDLE},
// { "SS_IDLEJUMP", SS_IDLEJUMP},
// { "SS_WALK", SS_WALK},
// { "SS_RUN", SS_RUN},
// { "SS_WORKING", SS_WORKING},
// { "SS_DEFENDING", SS_DEFENDING},
// { "SS_ATTACKING", SS_ATTACKING},
// { "SS_SHOOTTARGET", SS_SHOOTTARGET},
// { "SS_ATTACKING_JUMP", SS_ATTACKING_JUMP},
// { "SS_ATTACKING_ROLL", SS_ATTACKING_ROLL},
// { "SS_SMARTCORNER", SS_SMARTCORNER},
// { "SS_FOLLOWPLAYER", SS_FOLLOWPLAYER},
// { "SS_FIREATLASTLOCATION", SS_FIREATLASTLOCATION},
// { "SS_WAITATLASTLOCATION", SS_WAITATLASTLOCATION},
// { "SS_ATTACKMORPH", SS_ATTACKMORPH},
// { "SS_KILLEDMORPH", SS_KILLEDMORPH},
// { "SS_IGNORETREAT", SS_IGNORETREAT},
// { "SS_SIMULANTPACK", SS_SIMULANTPACK},
// { "SS_RETREATING", SS_RETREATING},
// { "SS_FINDCOVER", SS_FINDCOVER},
// { "SS_GUARDING", SS_GUARDING},
// { "SS_SCROUNGING", SS_SCROUNGING},
// { "SS_HITWALL", SS_HITWALL},
// { "SS_SHOTAT", SS_SHOTAT},
// { "SS_DYING", SS_DYING},
// { "SS_TREATASSESSMENT", SS_TREATASSESSMENT},
// { "SS_FRIENDSDEAD", SS_FRIENDSDEAD},
// { "SS_GETHELP", SS_GETHELP},
// { "SS_TRIGGEROTHERS", SS_TRIGGEROTHERS},
// { "SS_TRIGGERSOUNDS", SS_TRIGGERSOUNDS},
// { "SS_TRIGGERDOORS", SS_TRIGGERDOORS}
//
//};
// AISubState m_return = SS_DONOTHING;
// for ( int m_index=0; m_index< SS_MAX; m_index++)
// {
// if ( _mbsncmp((const unsigned char*)sName, (const unsigned char*)SubStateArray[m_index].m_sSubStateName, _mbstrlen(SubStateArray[m_index].m_sSubStateName) ) == 0)
// {
// m_return = SubStateArray[m_index].m_eSubState;
// }
// }
// return m_return;
//}
// ----------------------------------------------------------------------- //
//
// ROUTINE: AI_Shared::
//
// PURPOSE: Lookup MetaCommands by NAME
//
// ----------------------------------------------------------------------- //
//AIMetaCommand AI_Shared::BrainMetaCommand(char* sName)
//{
//typedef struct MetaCommandData_t
//{
// char m_sMetaCmdName[64];
// AIMetaCommand m_eMetaCmd;
//
//} MetaCmdData;
//
//static MetaCmdData MetaCmdArray[MC_MAX] =
//{
// // Basic Movements
// { "MC_DONOTHING", MC_DONOTHING},
// { "MC_IDLE", MC_IDLE},
// { "MC_WALK", MC_WALK},
// { "MC_RUN", MC_RUN},
// { "MC_TURNL", MC_TURNL},
// { "MC_TURNR", MC_TURNR},
// { "MC_TURNLR", MC_TURNLR},
// { "MC_ROLL", MC_ROLL},
// { "MC_DODGE", MC_DODGE},
// { "MC_STRAFE", MC_STRAFE},
// { "MC_JUMP", MC_JUMP},
//// Attacking
// { "MC_BESTWEAPON", MC_BESTWEAPON},
// { "MC_CHOOSETARGET", MC_CHOOSETARGET},
// { "MC_SHOT_TARGET", MC_SHOT_TARGET},
// { "MC_CHECKFORCOVER", MC_CHECKFORCOVER},
//// Getting Help
// { "MC_FINDTRIGGER", MC_FINDTRIGGER},
// { "MC_GO_TRIGGER", MC_GO_TRIGGER},
//// PathPoints
// { "MC_FINDNEARPATH", MC_FINDNEARPATH},
// { "MC_GO_PATH", MC_GO_PATH},
//// Behavior change
// { "MC_STOP", MC_STOP},
// { "MC_EAT", MC_EAT},
// { "MC_SLEEP", MC_SLEEP},
// { "MC_WAIT", MC_WAIT},
//// Set Moods
// { "MC_MOOD_FRIEND", MC_MOOD_FRIEND},
// { "MC_MO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -