Some more work towards player animations
This commit is contained in:
parent
2a8cb32326
commit
47932e57a0
34 changed files with 236 additions and 45 deletions
|
@ -186,6 +186,7 @@ typedef struct {
|
|||
int iCrosshairMinDistance; // Some weapons just are inaccurate by design...
|
||||
int iCrosshairDeltaDistance; // Scale factor of sorts
|
||||
float fWeaponArmorRatio; // Some weapons seem to do more damage to the kevlar than others I guess
|
||||
float fAnimType;
|
||||
} weaponinfo_t;
|
||||
|
||||
typedef struct {
|
||||
|
@ -246,6 +247,21 @@ enum {
|
|||
IMPACT_ROCK,
|
||||
};
|
||||
|
||||
// Animation types
|
||||
enum {
|
||||
ATYPE_ONEHAND,
|
||||
ATYPE_DUALPISTOLS,
|
||||
ATYPE_CARBINE,
|
||||
ATYPE_RIFLE,
|
||||
ATYPE_MP5,
|
||||
ATYPE_SHOTGUN,
|
||||
ATYPE_PARA,
|
||||
ATYPE_GRENADE,
|
||||
ATYPE_C4,
|
||||
ATYPE_KNIFE,
|
||||
ATYPE_AK47
|
||||
};
|
||||
|
||||
// Actually used by input_button etc.
|
||||
#define INPUT_BUTTON0 1
|
||||
#define INPUT_BUTTON2 2
|
||||
|
|
|
@ -19,6 +19,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
*/
|
||||
|
||||
.float baseframe_time;
|
||||
.float baseframe_old;
|
||||
.float fWasCrouching;
|
||||
|
||||
enum {
|
||||
ANIM_DUMMY1,
|
||||
|
@ -94,7 +96,7 @@ enum {
|
|||
ANIM_DUPLICATE6,
|
||||
ANIM_DUPLICATE7,
|
||||
ANIM_DUPLICATE8,
|
||||
ANIM_AIM_KNIFE9,
|
||||
ANIM_CROUCH_AIM_KNIFE,
|
||||
ANIM_CROUCH_SHOOT_KNIFE,
|
||||
ANIM_AIM_KNIFE,
|
||||
ANIM_SHOOT_KNIFE,
|
||||
|
@ -129,8 +131,44 @@ depending on what the player is doing
|
|||
void Animation_PlayerUpdate( void ) {
|
||||
self.basebone = 40;
|
||||
|
||||
// TODO: Make this faster
|
||||
if ( self.baseframe_time < time ) {
|
||||
self.baseframe = ANIM_AIM_SHOTGUN;
|
||||
switch ( Weapon_GetAnimType( self.weapon ) && self.baseframe != self.baseframe_old ) {
|
||||
case ATYPE_AK47:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_AK47 : ANIM_AIM_AK47;
|
||||
break;
|
||||
case ATYPE_C4:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_C4 : ANIM_AIM_C4;
|
||||
break;
|
||||
case ATYPE_CARBINE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_CARBINE : ANIM_AIM_CARBINE;
|
||||
break;
|
||||
case ATYPE_DUALPISTOLS:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_DUALPISTOLS : ANIM_AIM_DUALPISTOLS;
|
||||
break;
|
||||
case ATYPE_GRENADE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_GRENADE : ANIM_AIM_GRENADE;
|
||||
break;
|
||||
case ATYPE_KNIFE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_KNIFE : ANIM_AIM_KNIFE;
|
||||
break;
|
||||
case ATYPE_MP5:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_MP5 : ANIM_AIM_MP5;
|
||||
break;
|
||||
case ATYPE_ONEHAND:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_ONEHAND : ANIM_AIM_ONEHAND;
|
||||
break;
|
||||
case ATYPE_PARA:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_PARA : ANIM_AIM_PARA;
|
||||
break;
|
||||
case ATYPE_RIFLE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_RIFLE : ANIM_AIM_RIFLE;
|
||||
break;
|
||||
case ATYPE_SHOTGUN:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_SHOTGUN : ANIM_AIM_SHOTGUN;
|
||||
break;
|
||||
}
|
||||
self.baseframe_old = self.baseframe;
|
||||
}
|
||||
|
||||
if ( vlen( self.velocity ) == 0 ) {
|
||||
|
@ -156,6 +194,13 @@ void Animation_PlayerUpdate( void ) {
|
|||
if ( !( self.flags & FL_ONGROUND ) ) {
|
||||
self.frame = ANIM_JUMP;
|
||||
}
|
||||
|
||||
// Force the code above to update if we switched positions
|
||||
if ( self.fWasCrouching != ( self.flags & FL_CROUCHING ) ) {
|
||||
self.baseframe_old = 0;
|
||||
self.baseframe_time = 0;
|
||||
self.fWasCrouching = ( self.flags & FL_CROUCHING );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -165,7 +210,92 @@ Animation_PlayerTop
|
|||
Changes the animation sequence for the upper body part
|
||||
=================
|
||||
*/
|
||||
void Animation_PlayerTop( float fFrame, float fTime ) {
|
||||
void Animation_PlayerTop( float fFrame ) {
|
||||
self.baseframe = fFrame;
|
||||
self.baseframe_old = fFrame;
|
||||
}
|
||||
|
||||
void Animation_PlayerTopTemp( float fFrame, float fTime ) {
|
||||
self.baseframe = fFrame;
|
||||
self.baseframe_time = time + fTime;
|
||||
}
|
||||
|
||||
void Animation_ShootWeapon( void ) {
|
||||
switch ( Weapon_GetAnimType( self.weapon ) ) {
|
||||
case ATYPE_AK47:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_AK47 : ANIM_SHOOT_AK47;
|
||||
break;
|
||||
case ATYPE_C4:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_C4 : ANIM_SHOOT_C4;
|
||||
break;
|
||||
case ATYPE_CARBINE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_CARBINE : ANIM_SHOOT_CARBINE;
|
||||
break;
|
||||
case ATYPE_DUALPISTOLS:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_DUALPISTOLS : ANIM_SHOOT_DUALPISTOLS;
|
||||
break;
|
||||
case ATYPE_GRENADE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_GRENADE : ANIM_SHOOT_GRENADE;
|
||||
break;
|
||||
case ATYPE_KNIFE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_KNIFE : ANIM_SHOOT_KNIFE;
|
||||
break;
|
||||
case ATYPE_MP5:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_MP5 : ANIM_SHOOT_MP5;
|
||||
break;
|
||||
case ATYPE_ONEHAND:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_ONEHAND : ANIM_SHOOT_ONEHAND;
|
||||
break;
|
||||
case ATYPE_PARA:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_PARA : ANIM_SHOOT_PARA;
|
||||
break;
|
||||
case ATYPE_RIFLE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_RIFLE : ANIM_SHOOT_RIFLE;
|
||||
break;
|
||||
case ATYPE_SHOTGUN:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_SHOOT_SHOTGUN : ANIM_SHOOT_SHOTGUN;
|
||||
break;
|
||||
}
|
||||
|
||||
self.baseframe_time = time + Weapon_GetFireRate( self.weapon );
|
||||
}
|
||||
|
||||
void Animation_ReloadWeapon( void ) {
|
||||
switch ( Weapon_GetAnimType( self.weapon ) ) {
|
||||
case ATYPE_AK47:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_AK47 : ANIM_RELOAD_AK47;
|
||||
break;
|
||||
case ATYPE_C4:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_C4 : ANIM_AIM_C4;
|
||||
break;
|
||||
case ATYPE_CARBINE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_CARBINE : ANIM_RELOAD_CARBINE;
|
||||
break;
|
||||
case ATYPE_DUALPISTOLS:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_DUALPISTOLS : ANIM_RELOAD_DUALPISTOLS;
|
||||
break;
|
||||
case ATYPE_GRENADE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_GRENADE : ANIM_AIM_GRENADE;
|
||||
break;
|
||||
case ATYPE_KNIFE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_AIM_KNIFE : ANIM_AIM_KNIFE;
|
||||
break;
|
||||
case ATYPE_MP5:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_MP5 : ANIM_RELOAD_MP5;
|
||||
break;
|
||||
case ATYPE_ONEHAND:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_ONEHAND : ANIM_RELOAD_ONEHAND;
|
||||
break;
|
||||
case ATYPE_PARA:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_PARA : ANIM_RELOAD_PARA;
|
||||
break;
|
||||
case ATYPE_RIFLE:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_RIFLE : ANIM_RELOAD_RIFLE;
|
||||
break;
|
||||
case ATYPE_SHOTGUN:
|
||||
self.baseframe = self.flags & FL_CROUCHING ? ANIM_CROUCH_RELOAD_SHOTGUN : ANIM_RELOAD_SHOTGUN;
|
||||
break;
|
||||
}
|
||||
|
||||
self.baseframe_time = time + Weapon_GetReloadTime( self.weapon );
|
||||
}
|
||||
|
|
|
@ -121,6 +121,9 @@ void Client_SendEvent( entity eClient, float fEVType );
|
|||
void Client_TriggerCamera( entity eTarget, vector vPos, vector vEndPos, float fResetTime );
|
||||
void Weapon_SwitchBest( void );
|
||||
void Weapon_UpdateCurrents( void );
|
||||
float Weapon_GetAnimType( float fWeapon );
|
||||
float Weapon_GetFireRate( float fWeapon );
|
||||
float Weapon_GetReloadTime( float fWeapon );
|
||||
|
||||
void OpenCSGunBase_AccuracyCalc( void );
|
||||
void OpenCSGunBase_Draw( void );
|
||||
|
@ -146,6 +149,9 @@ void Ammo_BuySecondary( float fFree );
|
|||
|
||||
void Input_Handle( void );
|
||||
|
||||
void Animation_PlayerTop( float fFrame );
|
||||
void Animation_PlayerTopTemp( float fFrame, float fTime );
|
||||
|
||||
// WIP
|
||||
string __fullspawndata;
|
||||
hashtable hashMaterials;
|
||||
|
|
|
@ -53,9 +53,9 @@ Player_Pain
|
|||
*/
|
||||
void Player_Pain( int iHitBody ) {
|
||||
if ( iHitBody == BODY_HEAD ) {
|
||||
Animation_PlayerTop( ANIM_HEAD_FLINCH, 0.1f );
|
||||
Animation_PlayerTopTemp( ANIM_HEAD_FLINCH, 0.1f );
|
||||
} else {
|
||||
Animation_PlayerTop( ANIM_GUT_FLINCH, 0.1f );
|
||||
Animation_PlayerTopTemp( ANIM_GUT_FLINCH, 0.1f );
|
||||
}
|
||||
|
||||
sound( self, CHAN_VOICE, sPainSounds[ floor( random() * 5 ) ], 1, ATTN_IDLE );
|
||||
|
|
|
@ -37,7 +37,6 @@ void Timer_Begin( float fTime, float fMode) {
|
|||
}
|
||||
|
||||
fGameTime = fTime;
|
||||
bprint( sprintf( "Setting Timer to Mode %d, Time %d\n", fMode, fTime ) );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
Defs.h
|
||||
|
||||
Money.c
|
||||
Animations.c
|
||||
|
||||
../Shared/Radio.c
|
||||
../Shared/WeaponAK47.c
|
||||
|
@ -64,7 +65,6 @@ FuncDoor.c
|
|||
FuncDoorRotating.c
|
||||
AmbientSound.c
|
||||
|
||||
Animations.c
|
||||
Light.c
|
||||
Main.c
|
||||
Player.c
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptAK47 = {
|
|||
1.25, // Max Inaccuracy
|
||||
4, // Minimum Crosshair Distance
|
||||
4, // Crosshair Movement Delta
|
||||
1.55 // Armor penetration ratio
|
||||
1.55, // Armor penetration ratio
|
||||
ATYPE_AK47 // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptAUG = {
|
|||
1.0, // Max Inaccuracy
|
||||
3, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.4 // Armor penetration ratio
|
||||
1.4, // Armor penetration ratio
|
||||
ATYPE_RIFLE // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptAWP = {
|
|||
0, // Max Inaccuracy
|
||||
8, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.95 // Armor penetration ratio
|
||||
1.95, // Armor penetration ratio
|
||||
ATYPE_CARBINE // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -105,6 +105,7 @@ float OpenCSGunBase_PrimaryFire( void ) {
|
|||
OpenCSGunBase_ShotMultiplierHandle( wptTable[ self.weapon ].iBullets );
|
||||
OpenCSGunBase_AccuracyCalc();
|
||||
TraceAttack_FireBullets( wptTable[ self.weapon ].iBullets, ( self.origin + self.view_ofs ) );
|
||||
Animation_ShootWeapon();
|
||||
|
||||
self.(wptTable[ self.weapon ].iMagfld) -= 1;
|
||||
self.fAttackFinished = time + wptTable[ self.weapon ].fAttackFinished;
|
||||
|
@ -142,6 +143,7 @@ float OpenCSGunBase_Reload( void ) {
|
|||
self.nextthink = time + wptTable[ self.weapon ].fReloadFinished;
|
||||
self.fAttackFinished = self.nextthink;
|
||||
|
||||
Animation_ReloadWeapon();
|
||||
Client_SendEvent( self, EV_WEAPON_RELOAD );
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -45,8 +45,10 @@ weaponinfo_t wptC4BOMB = {
|
|||
1, // Accuracy Divisor
|
||||
1, // Accuracy Offset
|
||||
1, // Max Inaccuracy
|
||||
8,
|
||||
4
|
||||
8, // Minimum Crosshair Distance
|
||||
4, // Crosshair Movement Delta
|
||||
1.0, // Armor penetration ratio
|
||||
ATYPE_C4 // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
@ -198,6 +200,7 @@ void WeaponC4BOMB_PrimaryFire( void ) {
|
|||
|
||||
// If we aren't aiming at a place or look in the wrong location... stop it
|
||||
if ( trace_fraction == 1 || self.fInBombZone == FALSE ) {
|
||||
Animation_ReloadWeapon();
|
||||
WeaponC4BOMB_Release();
|
||||
self.fAttackFinished = time + 1.0;
|
||||
return;
|
||||
|
@ -206,6 +209,7 @@ void WeaponC4BOMB_PrimaryFire( void ) {
|
|||
// Play the sequence at the start
|
||||
if ( self.fBombProgress == 0 ) {
|
||||
Client_SendEvent( self, EV_WEAPON_PRIMARYATTACK );
|
||||
Animation_ShootWeapon();
|
||||
}
|
||||
|
||||
// Add onto the planting-time thing
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptDEAGLE = {
|
|||
1.4, // Max Inaccuracy
|
||||
8, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.5 // Armor penetration ratio
|
||||
1.5, // Armor penetration ratio
|
||||
ATYPE_ONEHAND // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
@ -91,7 +92,7 @@ void WeaponDEAGLE_PrimaryFire( void ) {
|
|||
void WeaponDEAGLE_Reload( void ) {
|
||||
#ifdef SSQC
|
||||
if ( OpenCSGunBase_Reload() == TRUE ) {
|
||||
// Play Sound
|
||||
|
||||
}
|
||||
#else
|
||||
View_PlayAnimation( ANIM_DEAGLE_RELOAD );
|
||||
|
|
|
@ -49,7 +49,8 @@ weaponinfo_t wptELITES = {
|
|||
1.4, // Max Inaccuracy
|
||||
4, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.05 // Armor penetration ratio
|
||||
1.05, // Armor penetration ratio
|
||||
ATYPE_DUALPISTOLS // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptFIVESEVEN = {
|
|||
1.4, // Max Inaccuracy
|
||||
8, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.5 // Armor penetration ratio
|
||||
1.5, // Armor penetration ratio
|
||||
ATYPE_ONEHAND // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
@ -57,21 +58,21 @@ enum {
|
|||
};
|
||||
|
||||
void WeaponFIVESEVEN_Draw( void ) {
|
||||
#ifdef SSQC
|
||||
#ifdef SSQC
|
||||
OpenCSGunBase_Draw();
|
||||
#else
|
||||
#else
|
||||
View_PlayAnimation( ANIM_FIVESEVEN_DRAW );
|
||||
Sound_Delayed( "weapons/fiveseven_slidepull.wav", 1.0, 0.5 );
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void WeaponFIVESEVEN_PrimaryFire( void ) {
|
||||
#ifdef SSQC
|
||||
#ifdef SSQC
|
||||
if ( OpenCSGunBase_PrimaryFire() == TRUE ) {
|
||||
// Play Sound
|
||||
sound( self, CHAN_WEAPON, "weapons/fiveseven-1.wav", 1, ATTN_NORM );
|
||||
}
|
||||
#else
|
||||
#else
|
||||
if ( getstatf( STAT_CURRENT_MAG ) == 0 ) {
|
||||
View_PlayAnimation( ANIM_FIVESEVEN_SHOOT_EMPTY );
|
||||
} else {
|
||||
|
@ -82,19 +83,18 @@ void WeaponFIVESEVEN_PrimaryFire( void ) {
|
|||
}
|
||||
}
|
||||
OpenCSGunBase_ShotMultiplierHandle( 1 );
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void WeaponFIVESEVEN_Reload( void ) {
|
||||
#ifdef SSQC
|
||||
#ifdef SSQC
|
||||
if ( OpenCSGunBase_Reload() == TRUE ) {
|
||||
// Play Sound
|
||||
}
|
||||
#else
|
||||
#else
|
||||
View_PlayAnimation( ANIM_FIVESEVEN_RELOAD );
|
||||
|
||||
Sound_Delayed( "weapons/p228_clipout.wav", 1.0, 0.5 );
|
||||
Sound_Delayed( "weapons/p228_clipin.wav", 1.0, 1.5 );
|
||||
Sound_Delayed( "weapons/p228_sliderelease.wav", 1.0, 2.4 );
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptG3SG1 = {
|
|||
1.4, // Max Inaccuracy
|
||||
6, // Minimum Crosshair Distance
|
||||
4, // Crosshair Movement Delta
|
||||
1.65 // Armor penetration ratio
|
||||
1.65, // Armor penetration ratio
|
||||
ATYPE_CARBINE // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -49,7 +49,8 @@ weaponinfo_t wptGLOCK18 = {
|
|||
1.4, // Max Inaccuracyy
|
||||
8, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.05 // Armor penetration ratio
|
||||
1.05, // Armor penetration ratio
|
||||
ATYPE_ONEHAND // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -41,7 +41,8 @@ weaponinfo_t wptKNIFE = {
|
|||
1.0, // Max Inaccuracy
|
||||
7, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.7 // Armor penetration ratio
|
||||
1.7, // Armor penetration ratio
|
||||
ATYPE_KNIFE // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
@ -77,6 +78,7 @@ void WeaponKNIFE_PrimaryFire( void ) {
|
|||
}
|
||||
}
|
||||
|
||||
Animation_ShootWeapon();
|
||||
self.fAttackFinished = time + wptKNIFE.fAttackFinished;
|
||||
#else
|
||||
if ( random() <= 0.5 ) {
|
||||
|
|
|
@ -49,7 +49,8 @@ weaponinfo_t wptM3 = {
|
|||
1.25, // Max Inaccuracy
|
||||
8, // Minimum Crosshair Distance
|
||||
6, // Crosshair Movement Delta
|
||||
1.0 // Armor penetration ratio
|
||||
1.0, // Armor penetration ratio
|
||||
ATYPE_SHOTGUN // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -49,7 +49,8 @@ weaponinfo_t wptM4A1 = {
|
|||
1.0, // Max Inaccuracy
|
||||
4, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.4 // Armor penetration ratio
|
||||
1.4, // Armor penetration ratio
|
||||
ATYPE_RIFLE // Animation Type
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptMP5 = {
|
|||
0.75, // Max Inaccuracy
|
||||
6, // Minimum Crosshair Distance
|
||||
2, // Crosshair Movement Delta
|
||||
1.0 // Armor penetration ratio
|
||||
1.0, // Armor penetration ratio
|
||||
ATYPE_MP5 // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptMAC10 = {
|
|||
1.65, // Max Inaccuracy
|
||||
9, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
0.95 // Armor penetration ratio
|
||||
0.95, // Armor penetration ratio
|
||||
ATYPE_MP5 // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -42,7 +42,8 @@ weaponinfo_t wptP228 = {
|
|||
1.4, // Max Inaccuracy
|
||||
8, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.25 // Armor penetration ratio
|
||||
1.25, // Armor penetration ratio
|
||||
ATYPE_ONEHAND // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
@ -93,7 +94,6 @@ void WeaponP228_PrimaryFire( void ) {
|
|||
void WeaponP228_Reload( void ) {
|
||||
#ifdef SSQC
|
||||
if ( OpenCSGunBase_Reload() == TRUE ) {
|
||||
// Play Sound
|
||||
}
|
||||
#else
|
||||
View_PlayAnimation( ANIM_P228_RELOAD );
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptP90 = {
|
|||
1.0, // Max Inaccuracy
|
||||
7, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.5 // Armor penetration ratio
|
||||
1.5, // Armor penetration ratio
|
||||
ATYPE_MP5 // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptPARA = {
|
|||
0.9, // Max Inaccuracy
|
||||
6, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.6 // Armor penetration ratio
|
||||
1.6, // Armor penetration ratio
|
||||
ATYPE_PARA // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptSG550 = {
|
|||
1.4, // Max Inaccuracy
|
||||
5, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.45 // Armor penetration ratio
|
||||
1.45, // Armor penetration ratio
|
||||
ATYPE_RIFLE // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptSG552 = {
|
|||
1.0, // Max Inaccuracy
|
||||
5, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.4 // Armor penetration ratio
|
||||
1.4, // Armor penetration ratio
|
||||
ATYPE_RIFLE // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptSCOUT = {
|
|||
1.4, // Max Inaccuracy
|
||||
5, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.7 // Armor penetration ratio
|
||||
1.7, // Armor penetration ratio
|
||||
ATYPE_CARBINE // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptTMP = {
|
|||
1.4, // Max Inaccuracy
|
||||
7, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.0 // Armor penetration ratio
|
||||
1.0, // Armor penetration ratio
|
||||
ATYPE_MP5 // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -43,7 +43,8 @@ weaponinfo_t wptUMP45 = {
|
|||
1, // Max Inaccuracy
|
||||
6, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.0 // Armor penetration ratio
|
||||
1.0, // Armor penetration ratio
|
||||
ATYPE_MP5 // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -49,7 +49,8 @@ weaponinfo_t wptUSP45 = {
|
|||
1.4, // Max Inaccuracy
|
||||
8, // Minimum Crosshair Distance
|
||||
3, // Crosshair Movement Delta
|
||||
1.0 // Armor penetration ratio
|
||||
1.0, // Armor penetration ratio
|
||||
ATYPE_ONEHAND // Animation Type
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -157,7 +158,7 @@ void WeaponUSP45_Secondary( void ) {
|
|||
void WeaponUSP45_Reload( void ) {
|
||||
#ifdef SSQC
|
||||
if ( OpenCSGunBase_Reload() == TRUE ) {
|
||||
// Play Sound
|
||||
|
||||
}
|
||||
#else
|
||||
if ( iWeaponMode_USP45 == TRUE ) {
|
||||
|
|
|
@ -49,7 +49,8 @@ weaponinfo_t wptXM1014 = {
|
|||
1.25, // Max Inaccuracy
|
||||
9, // Minimum Crosshair Distance
|
||||
4, // Crosshair Movement Delta
|
||||
1.0 // Armor penetration ratio
|
||||
1.0, // Armor penetration ratio
|
||||
ATYPE_SHOTGUN // Animation Type
|
||||
};
|
||||
|
||||
// Anim Table
|
||||
|
|
|
@ -208,4 +208,16 @@ void CSEv_PlayerSwitchWeapon_f( float fWeapon ) {
|
|||
|
||||
self.fAttackFinished = time + 1.0;
|
||||
}
|
||||
|
||||
float Weapon_GetAnimType( float fWeapon ) {
|
||||
return wptTable[ fWeapon ].fAnimType;
|
||||
}
|
||||
|
||||
float Weapon_GetFireRate( float fWeapon ) {
|
||||
return wptTable[ fWeapon ].fAttackFinished;
|
||||
}
|
||||
|
||||
float Weapon_GetReloadTime( float fWeapon ) {
|
||||
return wptTable[ fWeapon ].fReloadFinished;
|
||||
}
|
||||
#endif
|
||||
|
|
Binary file not shown.
BIN
opencs/progs.dat
BIN
opencs/progs.dat
Binary file not shown.
Loading…
Reference in a new issue