Shadow Walker: Added new key field for open / close doors and corresponding inputs.

This commit is contained in:
Derek Dik 2018-10-17 17:09:39 -04:00
parent 3ef753b341
commit 1007a6434a

View File

@ -60,7 +60,12 @@ public:
void Activate();
void FixupWeapon();
// Inputs
virtual void InputSetSpeed(inputdata_t &inputdata);
virtual void InputEnableOpenDoors(inputdata_t &inputdata);
virtual void InputDisableOpenDoors(inputdata_t &inputdata);
DECLARE_DATADESC();
string_t m_iszWeaponModelName; // Path/filename of model to override weapon model.
@ -108,7 +113,11 @@ BEGIN_DATADESC(CNPC_ShadowWalker)
DEFINE_KEYFIELD(m_bCannotOpenDoors, FIELD_BOOLEAN, "CannotOpenDoors"),
DEFINE_FIELD(m_bWanderToggle, FIELD_BOOLEAN),
DEFINE_FIELD(m_flNextSoundTime, FIELD_TIME)
DEFINE_FIELD(m_flNextSoundTime, FIELD_TIME),
DEFINE_INPUTFUNC(FIELD_FLOAT, "SetSpeed", InputSetSpeed),
DEFINE_INPUTFUNC(FIELD_VOID, "EnableOpenDoors", InputEnableOpenDoors),
DEFINE_INPUTFUNC(FIELD_VOID, "DisableOpenDoors", InputDisableOpenDoors)
END_DATADESC()
//-----------------------------------------------------------------------------
@ -567,6 +576,38 @@ void CNPC_ShadowWalker::PrecacheNPCSoundScript(string_t * SoundName, string_t de
PrecacheScriptSound(STRING(*SoundName));
}
//-----------------------------------------------------------------------------
// Purpose: Hammer input to change the speed of the NPC
//-----------------------------------------------------------------------------
void CNPC_ShadowWalker::InputSetSpeed(inputdata_t &inputdata)
{
this->m_flSpeed = inputdata.value.Float();
}
//-----------------------------------------------------------------------------
// Purpose: Hammer input to enable opening doors
//-----------------------------------------------------------------------------
void CNPC_ShadowWalker::InputEnableOpenDoors(inputdata_t &inputdata)
{
m_bCannotOpenDoors = true;
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
{
CapabilitiesAdd(bits_CAP_DOORS_GROUP);
}
}
//-----------------------------------------------------------------------------
// Purpose: Hammer input to enable opening doors
//-----------------------------------------------------------------------------
void CNPC_ShadowWalker::InputDisableOpenDoors(inputdata_t &inputdata)
{
m_bCannotOpenDoors = false;
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
{
CapabilitiesRemove(bits_CAP_DOORS_GROUP);
}
}
//-----------------------------------------------------------------------------
// Purpose:
//