mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-06-01 00:17:43 +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 SelectAlertSchedule();
|
||||||
virtual int SelectCombatSchedule();
|
virtual int SelectCombatSchedule();
|
||||||
virtual bool CanPickkUpWeapons() { return true; }
|
virtual bool CanPickkUpWeapons() { return true; }
|
||||||
|
virtual float GetSequenceGroundSpeed(CStudioHdr *pStudioHdr, int iSequence);
|
||||||
Activity NPC_TranslateActivity(Activity eNewActivity);
|
Activity NPC_TranslateActivity(Activity eNewActivity);
|
||||||
|
|
||||||
// Sounds
|
// Sounds
|
||||||
@ -62,7 +63,7 @@ public:
|
|||||||
void FixupWeapon();
|
void FixupWeapon();
|
||||||
|
|
||||||
// Inputs
|
// Inputs
|
||||||
virtual void InputSetSpeed(inputdata_t &inputdata);
|
virtual void InputSetSpeedModifier(inputdata_t &inputdata);
|
||||||
virtual void InputEnableOpenDoors(inputdata_t &inputdata);
|
virtual void InputEnableOpenDoors(inputdata_t &inputdata);
|
||||||
virtual void InputDisableOpenDoors(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_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
|
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_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_bWanderToggle, FIELD_BOOLEAN),
|
||||||
DEFINE_FIELD(m_flNextSoundTime, FIELD_TIME),
|
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, "EnableOpenDoors", InputEnableOpenDoors),
|
||||||
DEFINE_INPUTFUNC(FIELD_VOID, "DisableOpenDoors", InputDisableOpenDoors)
|
DEFINE_INPUTFUNC(FIELD_VOID, "DisableOpenDoors", InputDisableOpenDoors)
|
||||||
END_DATADESC()
|
END_DATADESC()
|
||||||
@ -204,6 +207,7 @@ void CNPC_ShadowWalker::Spawn( void )
|
|||||||
m_flFieldOfView = 0.5;
|
m_flFieldOfView = 0.5;
|
||||||
m_flNextSoundTime = gpGlobals->curtime;
|
m_flNextSoundTime = gpGlobals->curtime;
|
||||||
m_NPCState = NPC_STATE_NONE;
|
m_NPCState = NPC_STATE_NONE;
|
||||||
|
m_flSpeedModifier = 1.0f;
|
||||||
|
|
||||||
CapabilitiesClear();
|
CapabilitiesClear();
|
||||||
|
|
||||||
@ -576,12 +580,29 @@ void CNPC_ShadowWalker::PrecacheNPCSoundScript(string_t * SoundName, string_t de
|
|||||||
PrecacheScriptSound(STRING(*SoundName));
|
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
|
// 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)
|
void CNPC_ShadowWalker::InputEnableOpenDoors(inputdata_t &inputdata)
|
||||||
{
|
{
|
||||||
m_bCannotOpenDoors = true;
|
m_bCannotOpenDoors = false;
|
||||||
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
|
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
|
||||||
{
|
{
|
||||||
CapabilitiesAdd(bits_CAP_DOORS_GROUP);
|
CapabilitiesAdd(bits_CAP_DOORS_GROUP);
|
||||||
@ -601,7 +622,7 @@ void CNPC_ShadowWalker::InputEnableOpenDoors(inputdata_t &inputdata)
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CNPC_ShadowWalker::InputDisableOpenDoors(inputdata_t &inputdata)
|
void CNPC_ShadowWalker::InputDisableOpenDoors(inputdata_t &inputdata)
|
||||||
{
|
{
|
||||||
m_bCannotOpenDoors = false;
|
m_bCannotOpenDoors = true;
|
||||||
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
|
if (!HasSpawnFlags(SF_NPC_START_EFFICIENT))
|
||||||
{
|
{
|
||||||
CapabilitiesRemove(bits_CAP_DOORS_GROUP);
|
CapabilitiesRemove(bits_CAP_DOORS_GROUP);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user