mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-02-03 02:24:28 +00:00
Merge pull request #381 from FreeSlave/opfor-m249-link-fix
Fixes for M249
This commit is contained in:
commit
129522f32c
@ -1984,7 +1984,8 @@ void EV_FireM249( event_args_t *args )
|
|||||||
|
|
||||||
AngleVectors( angles, forward, right, up );
|
AngleVectors( angles, forward, right, up );
|
||||||
|
|
||||||
shell = gEngfuncs.pEventAPI->EV_FindModelIndex( "models/saw_shell.mdl" );// brass shell
|
const bool bAlternatingEject = args->bparam1 != 0;
|
||||||
|
shell = bAlternatingEject ? gEngfuncs.pEventAPI->EV_FindModelIndex("models/saw_link.mdl") : gEngfuncs.pEventAPI->EV_FindModelIndex( "models/saw_shell.mdl" );// brass shell
|
||||||
|
|
||||||
if( EV_IsLocal( idx ) )
|
if( EV_IsLocal( idx ) )
|
||||||
{
|
{
|
||||||
@ -1999,18 +2000,7 @@ void EV_FireM249( event_args_t *args )
|
|||||||
|
|
||||||
EV_EjectBrass( ShellOrigin, ShellVelocity, angles[YAW], shell, TE_BOUNCE_SHELL );
|
EV_EjectBrass( ShellOrigin, ShellVelocity, angles[YAW], shell, TE_BOUNCE_SHELL );
|
||||||
|
|
||||||
switch( gEngfuncs.pfnRandomLong( 0, 2 ) )
|
gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/saw_fire1.wav", 1, ATTN_NORM, 0, PITCH_NORM);
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/saw_fire1.wav", 1, ATTN_NORM, 0, PITCH_NORM);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/saw_fire2.wav", 1, ATTN_NORM, 0, PITCH_NORM);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/saw_fire3.wav", 1, ATTN_NORM, 0, PITCH_NORM);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
EV_GetGunPosition( args, vecSrc, origin );
|
EV_GetGunPosition( args, vecSrc, origin );
|
||||||
VectorCopy( forward, vecAiming );
|
VectorCopy( forward, vecAiming );
|
||||||
|
@ -51,6 +51,7 @@ void CM249::Spawn()
|
|||||||
m_iDefaultAmmo = M249_DEFAULT_GIVE;
|
m_iDefaultAmmo = M249_DEFAULT_GIVE;
|
||||||
|
|
||||||
m_fInSpecialReload = 0;
|
m_fInSpecialReload = 0;
|
||||||
|
m_bAlternatingEject = false;
|
||||||
|
|
||||||
FallInit();// get ready to fall down.
|
FallInit();// get ready to fall down.
|
||||||
}
|
}
|
||||||
@ -63,13 +64,12 @@ void CM249::Precache(void)
|
|||||||
PRECACHE_MODEL("models/p_saw.mdl");
|
PRECACHE_MODEL("models/p_saw.mdl");
|
||||||
|
|
||||||
m_iShell = PRECACHE_MODEL("models/saw_shell.mdl");// brass shellTE_MODEL
|
m_iShell = PRECACHE_MODEL("models/saw_shell.mdl");// brass shellTE_MODEL
|
||||||
|
m_iLink = PRECACHE_MODEL("models/saw_link.mdl");
|
||||||
|
|
||||||
PRECACHE_MODEL("models/w_saw_clip.mdl");
|
PRECACHE_MODEL("models/w_saw_clip.mdl");
|
||||||
PRECACHE_SOUND("items/9mmclip1.wav");
|
PRECACHE_SOUND("items/9mmclip1.wav");
|
||||||
|
|
||||||
PRECACHE_SOUND("weapons/saw_fire1.wav");
|
PRECACHE_SOUND("weapons/saw_fire1.wav");
|
||||||
PRECACHE_SOUND("weapons/saw_fire2.wav");
|
|
||||||
PRECACHE_SOUND("weapons/saw_fire3.wav");
|
|
||||||
|
|
||||||
PRECACHE_SOUND("weapons/saw_reload.wav");
|
PRECACHE_SOUND("weapons/saw_reload.wav");
|
||||||
PRECACHE_SOUND("weapons/saw_reload2.wav");
|
PRECACHE_SOUND("weapons/saw_reload2.wav");
|
||||||
@ -146,6 +146,7 @@ void CM249::PrimaryAttack()
|
|||||||
|
|
||||||
m_iClip--;
|
m_iClip--;
|
||||||
UpdateTape();
|
UpdateTape();
|
||||||
|
m_bAlternatingEject = !m_bAlternatingEject;
|
||||||
m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
|
m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;
|
||||||
|
|
||||||
// player "shoot" animation
|
// player "shoot" animation
|
||||||
@ -177,7 +178,7 @@ void CM249::PrimaryAttack()
|
|||||||
flags = 0;
|
flags = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PLAYBACK_EVENT_FULL(flags, m_pPlayer->edict(), m_usM249, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, pev->body, 0, 0);
|
PLAYBACK_EVENT_FULL(flags, m_pPlayer->edict(), m_usM249, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, pev->body, m_bAlternatingEject ? 1 : 0, 0);
|
||||||
|
|
||||||
|
|
||||||
#if !CLIENT_DLL
|
#if !CLIENT_DLL
|
||||||
@ -295,7 +296,7 @@ int CM249::BodyFromClip(int clip)
|
|||||||
{
|
{
|
||||||
if (clip == 0) {
|
if (clip == 0) {
|
||||||
return 8;
|
return 8;
|
||||||
} else if (clip > 0 && clip < 8) {
|
} else if (clip > 0 && clip <= 8) {
|
||||||
return 9 - clip;
|
return 9 - clip;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1252,6 +1252,8 @@ public:
|
|||||||
virtual BOOL ShouldWeaponIdle(void) { return TRUE; }
|
virtual BOOL ShouldWeaponIdle(void) { return TRUE; }
|
||||||
float m_flNextAnimTime;
|
float m_flNextAnimTime;
|
||||||
int m_iShell;
|
int m_iShell;
|
||||||
|
int m_iLink;
|
||||||
|
bool m_bAlternatingEject;
|
||||||
|
|
||||||
virtual BOOL UseDecrement(void)
|
virtual BOOL UseDecrement(void)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user