本文整理汇总了C++中CSound::GetSoundReactOrigin方法的典型用法代码示例。如果您正苦于以下问题:C++ CSound::GetSoundReactOrigin方法的具体用法?C++ CSound::GetSoundReactOrigin怎么用?C++ CSound::GetSoundReactOrigin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CSound
的用法示例。
在下文中一共展示了CSound::GetSoundReactOrigin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SelectSchedule
//-----------------------------------------------------------------------------
// Purpose:
// Output : int
//-----------------------------------------------------------------------------
int CNPC_Bug_Warrior::SelectSchedule( void )
{
ClearCondition( COND_WBUG_STOP_FLEEING );
// Turn towards sounds
if ( HasCondition(COND_HEAR_DANGER) || HasCondition(COND_HEAR_COMBAT) )
{
CSound *pSound = GetBestSound();
if ( pSound)
{
if ( !HasCondition( COND_SEE_ENEMY ) && ( pSound->m_iType & (SOUND_PLAYER | SOUND_COMBAT) ) )
{
GetMotor()->SetIdealYawToTarget( pSound->GetSoundReactOrigin() );
}
}
}
switch ( m_NPCState )
{
case NPC_STATE_IDLE:
{
// If I have an enemy, but I don't have any nearby friends, flee
if ( HasCondition( COND_SEE_ENEMY ) && ShouldFlee() )
{
SetState( NPC_STATE_ALERT );
return SCHED_WBUG_FLEE_ENEMY;
}
// Fellow bug might be requesting assistance
if ( HasCondition( COND_WBUG_ASSIST_FELLOW_BUG ) )
return SCHED_WBUG_ASSIST_FELLOW_BUG;
// BugHole might be requesting help
if ( HasCondition( COND_WBUG_RETURN_TO_BUGHOLE ) )
return SCHED_WBUG_RETURN_TO_BUGHOLE;
// Return to my bughole
return SCHED_WBUG_RETURN_TO_BUGHOLE_AND_REMOVE;
break;
}
case NPC_STATE_ALERT:
{
// If I have an enemy, but I don't have any nearby friends, flee
if ( HasCondition( COND_SEE_ENEMY ) && ShouldFlee() )
{
SetState( NPC_STATE_ALERT );
return SCHED_WBUG_FLEE_ENEMY;
}
// Fellow bug might be requesting assistance
if ( HasCondition( COND_WBUG_ASSIST_FELLOW_BUG ) )
return SCHED_WBUG_ASSIST_FELLOW_BUG;
// BugHole might be requesting help
if ( HasCondition( COND_WBUG_RETURN_TO_BUGHOLE ) )
return SCHED_WBUG_RETURN_TO_BUGHOLE;
// If I have a patrol path, walk it
if ( m_iszPatrolPathName != NULL_STRING )
return SCHED_WBUG_PATROL;
break;
}
case NPC_STATE_COMBAT:
{
// Did I lose my enemy?
if ( HasCondition ( COND_LOST_ENEMY ) || HasCondition ( COND_ENEMY_UNREACHABLE ) )
{
SetEnemy( NULL );
m_bFightingToDeath = false;
SetState(NPC_STATE_IDLE);
return BaseClass::SelectSchedule();
}
// If I have an enemy, but I don't have any nearby friends, flee
if ( HasCondition( COND_SEE_ENEMY ) && ShouldFlee() )
return SCHED_WBUG_FLEE_ENEMY;
// If we're able to melee, do so
if ( HasCondition( COND_CAN_MELEE_ATTACK1 ) )
return BaseClass::SelectSchedule();
}
break;
}
return BaseClass::SelectSchedule();
}