You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.5 KiB
88 lines
3.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose: Base combat character with no AI
|
|
//
|
|
// $Workfile: $
|
|
// $Date: $
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
// $Log: $
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#include "cbase.h"
|
|
#include "ai_squadslot.h"
|
|
#include "ai_basenpc.h"
|
|
#include "stringregistry.h"
|
|
|
|
// memdbgon must be the last include file in a .cpp file!!!
|
|
#include "tier0/memdbgon.h"
|
|
|
|
//=============================================================================
|
|
// Init static variables
|
|
//=============================================================================
|
|
CAI_GlobalNamespace CAI_BaseNPC::gm_SquadSlotNamespace;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Given and SquadSlot name, return the SquadSlot ID
|
|
//-----------------------------------------------------------------------------
|
|
int CAI_BaseNPC::GetSquadSlotID(const char* slotName)
|
|
{
|
|
return gm_SquadSlotNamespace.SymbolToId(slotName);
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Given and SquadSlot name, return the SquadSlot ID
|
|
//-----------------------------------------------------------------------------
|
|
const char* CAI_BaseNPC::GetSquadSlotDebugName( int iSquadSlot )
|
|
{
|
|
switch( iSquadSlot )
|
|
{
|
|
case SQUAD_SLOT_NONE: return "None";
|
|
break;
|
|
case SQUAD_SLOT_ATTACK1: return "SQUAD_SLOT_ATTACK1";
|
|
break;
|
|
case SQUAD_SLOT_ATTACK2: return "SQUAD_SLOT_ATTACK2";
|
|
break;
|
|
case SQUAD_SLOT_INVESTIGATE_SOUND: return "SQUAD_SLOT_INVESTIGATE_SOUND";
|
|
break;
|
|
case SQUAD_SLOT_EXCLUSIVE_HANDSIGN: return "SQUAD_SLOT_EXCLUSIVE_HANDSIGN";
|
|
break;
|
|
case SQUAD_SLOT_EXCLUSIVE_RELOAD: return "SQUAD_SLOT_EXCLUSIVE_RELOAD";
|
|
break;
|
|
case SQUAD_SLOT_PICKUP_WEAPON1: return "SQUAD_SLOT_PICKUP_WEAPON1";
|
|
break;
|
|
case SQUAD_SLOT_PICKUP_WEAPON2: return "SQUAD_SLOT_PICKUP_WEAPON2";
|
|
break;
|
|
case SQUAD_SLOT_SPECIAL_ATTACK: return "SQUAD_SLOT_SPECIAL_ATTACK";
|
|
break;
|
|
|
|
default:
|
|
// If we default, that means that our derived class (which has already been called)
|
|
// didn't provide text for a squad slot that isn't part of the base ai squad slots.
|
|
// OR someone added a squad slot to base AI and didn't update here.
|
|
return "Failed to specify!";
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose:
|
|
// Input :
|
|
// Output :
|
|
//-----------------------------------------------------------------------------
|
|
void CAI_BaseNPC::InitDefaultSquadSlotSR(void)
|
|
{
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_ATTACK1", AI_RemapToGlobal(SQUAD_SLOT_ATTACK1) );
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_ATTACK2", AI_RemapToGlobal(SQUAD_SLOT_ATTACK2) );
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_INVESTIGATE_SOUND", AI_RemapToGlobal(SQUAD_SLOT_INVESTIGATE_SOUND) );
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_EXCLUSIVE_HANDSIGN", AI_RemapToGlobal(SQUAD_SLOT_EXCLUSIVE_HANDSIGN) );
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_EXCLUSIVE_RELOAD", AI_RemapToGlobal(SQUAD_SLOT_EXCLUSIVE_RELOAD) );
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_PICKUP_WEAPON1", AI_RemapToGlobal(SQUAD_SLOT_PICKUP_WEAPON1) );
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_PICKUP_WEAPON2", AI_RemapToGlobal(SQUAD_SLOT_PICKUP_WEAPON2) );
|
|
gm_SquadSlotNamespace.AddSymbol( "SQUAD_SLOT_SPECIAL_ATTACK", AI_RemapToGlobal(SQUAD_SLOT_SPECIAL_ATTACK) );
|
|
}
|
|
|