mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-04-20 16:32:30 +03:00
Shadow Walker: Replaced nonfunctioning SetSpeed input with SetSpeedModifier input
This commit is contained in:
parent
b8fb4ba435
commit
a66998cc9c
@ -46,6 +46,7 @@ public:
|
||||
virtual int SelectAlertSchedule();
|
||||
virtual int SelectCombatSchedule();
|
||||
virtual bool CanPickkUpWeapons() { return true; }
|
||||
virtual float GetSequenceGroundSpeed(CStudioHdr *pStudioHdr, int iSequence);
|
||||
Activity NPC_TranslateActivity(Activity eNewActivity);
|
||||
|
||||
// Sounds
|
||||
@ -62,7 +63,7 @@ public:
|
||||
void FixupWeapon();
|
||||
|
||||
// Inputs
|
||||
virtual void InputSetSpeed(inputdata_t &inputdata);
|
||||
virtual void InputSetSpeedModifier(inputdata_t &inputdata);
|
||||
virtual void InputEnableOpenDoors(inputdata_t &inputdata);
|
||||
virtual void InputDisableOpenDoors(inputdata_t &inputdata);
|
||||
|
||||
@ -89,6 +90,7 @@ private:
|
||||
bool m_bCannotOpenDoors; // If true, this NPC cannot open doors. The condition is reversed because originally it could.
|
||||
bool m_bWanderToggle; // Boolean to toggle wandering / standing every think cycle
|
||||
float m_flNextSoundTime; // Next time at which this NPC is allowed to play an NPC sound
|
||||
float m_flSpeedModifier; // Modifier to apply to move distance
|
||||
};
|
||||
|
||||
|
||||
@ -114,8 +116,9 @@ BEGIN_DATADESC(CNPC_ShadowWalker)
|
||||
|
||||
DEFINE_FIELD(m_bWanderToggle, FIELD_BOOLEAN),
|
||||
DEFINE_FIELD(m_flNextSoundTime, FIELD_TIME),
|
||||
DEFINE_FIELD(m_flSpeedModifier, FIELD_TIME),
|
||||
|
||||
DEFINE_INPUTFUNC(FIELD_FLOAT, "SetSpeed", InputSetSpeed),
|
||||
DEFINE_INPUTFUNC(FIELD_FLOAT, "SetSpeedModifier", InputSetSpeedModifier),
|
||||
DEFINE_INPUTFUNC(FIELD_VOID, "EnableOpenDoors", InputEnableOpenDoors),
|
||||
DEFINE_INPUTFUNC(FIELD_VOID, "DisableOpenDoors", InputDisableOpenDoors)
|
||||
END_DATADESC()
|
||||
@ -204,6 +207,7 @@ void CNPC_ShadowWalker::Spawn( void )
|
||||
m_flFieldOfView = 0.5;
|
||||
m_flNextSoundTime = gpGlobals->curtime;
|
||||
m_NPCState = NPC_STATE_NONE;
|
||||
m_flSpeedModifier = 1.0f;
|
||||
|
||||
CapabilitiesClear();
|
||||
|
||||
@ -576,12 +580,29 @@ void CNPC_ShadowWalker::PrecacheNPCSoundScript(string_t * SoundName, string_t de
|
||||
PrecacheScriptSound(STRING(*SoundName));
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Get movement speed, multipled by modifier
|
||||
//-----------------------------------------------------------------------------
|
||||
float CNPC_ShadowWalker::GetSequenceGroundSpeed(CStudioHdr *pStudioHdr, int iSequence)
|
||||
{
|
||||
float t = SequenceDuration(pStudioHdr, iSequence);
|
||||
|
||||
if (t > 0)
|
||||
{
|
||||
return (GetSequenceMoveDist(pStudioHdr, iSequence) * m_flSpeedModifier / t);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Hammer input to change the speed of the NPC
|
||||
//-----------------------------------------------------------------------------
|
||||
void CNPC_ShadowWalker::InputSetSpeed(inputdata_t &inputdata)
|
||||
void CNPC_ShadowWalker::InputSetSpeedModifier(inputdata_t &inputdata)
|
||||
{
|
||||
this->m_flSpeed = inputdata.value.Float();
|
||||
this->m_flSpeedModifier = inputdata.value.Float();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -589,7 +610,7 @@ void CNPC_ShadowWalker::InputSetSpeed(inputdata_t &inputdata)
|
||||
//-----------------------------------------------------------------------------
|
||||
void CNPC_ShadowWalker::InputEnableOpenDoors(inputdata_t &inputdata)
|
||||
{
|
||||
m_bCannotOpenDoors = true;
|
||||
m_bCannotOpenDoors = false;
|
||||
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
|
||||
{
|
||||
CapabilitiesAdd(bits_CAP_DOORS_GROUP);
|
||||
@ -601,7 +622,7 @@ void CNPC_ShadowWalker::InputEnableOpenDoors(inputdata_t &inputdata)
|
||||
//-----------------------------------------------------------------------------
|
||||
void CNPC_ShadowWalker::InputDisableOpenDoors(inputdata_t &inputdata)
|
||||
{
|
||||
m_bCannotOpenDoors = false;
|
||||
m_bCannotOpenDoors = true;
|
||||
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
|
||||
{
|
||||
CapabilitiesRemove(bits_CAP_DOORS_GROUP);
|
||||
|
Loading…
x
Reference in New Issue
Block a user