More weapon system changes

git-svn-id: https://svn.eduke32.com/eduke32@170 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2006-05-16 02:37:37 +00:00
parent ac14852079
commit 85452ab0d5

View file

@ -4968,46 +4968,62 @@ SHOOTINCODE:
else if ( *kb >= aplWeaponFireDelay[p->curr_weapon][snum] && (*kb) < aplWeaponTotalTime[p->curr_weapon][snum] else if ( *kb >= aplWeaponFireDelay[p->curr_weapon][snum] && (*kb) < aplWeaponTotalTime[p->curr_weapon][snum]
&& ((aplWeaponWorksLike[p->curr_weapon][snum] & KNEE_WEAPON)?1:p->ammo_amount[p->curr_weapon] > 0)) && ((aplWeaponWorksLike[p->curr_weapon][snum] & KNEE_WEAPON)?1:p->ammo_amount[p->curr_weapon] > 0))
{ {
if ( aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_AUTOMATIC) if ( aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_AUTOMATIC )
{ {
if(( sb_snum&(1<<2) ) == 0 ) if(!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_SEMIAUTO))
{ {
*kb = 0; if(( sb_snum&(1<<2) ) == 0 )
} {
if ( aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_FIREEVERYTHIRD) *kb = 0;
{ }
if( ((*(kb))%3) == 0 ) if ( aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_FIREEVERYTHIRD)
{
if( ((*(kb))%3) == 0 )
{
DoFire(p);
DoSpawn(p);
}
}
else if( aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_FIREEVERYOTHER)
{ {
DoFire(p); DoFire(p);
DoSpawn(p); DoSpawn(p);
} }
} else
else if( aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_FIREEVERYOTHER) {
{ if(*kb == aplWeaponFireDelay[p->curr_weapon][snum])
DoFire(p); {
DoSpawn(p); DoFire(p);
DoSpawn(p);
}
}
if(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_RESET &&
(*kb) > aplWeaponTotalTime[p->curr_weapon][snum]-aplWeaponHoldDelay[p->curr_weapon][snum] &&
((aplWeaponWorksLike[p->curr_weapon][snum] & KNEE_WEAPON)?1:p->ammo_amount[p->curr_weapon] > 0))
{
if( sb_snum&(1<<2) ) *kb = 1;
else *kb = 0;
}
} }
else else
{ {
if(*kb == aplWeaponFireDelay[p->curr_weapon][snum]) if( aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_FIREEVERYOTHER)
{ {
DoFire(p); DoFire(p);
DoSpawn(p); DoSpawn(p);
} }
} else
if(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_RESET && {
(*kb) > aplWeaponTotalTime[p->curr_weapon][snum]-aplWeaponHoldDelay[p->curr_weapon][snum] && if(*kb == aplWeaponFireDelay[p->curr_weapon][snum])
((aplWeaponWorksLike[p->curr_weapon][snum] & KNEE_WEAPON)?1:p->ammo_amount[p->curr_weapon] > 0)) {
{ DoFire(p);
if( sb_snum&(1<<2) ) *kb = 1; DoSpawn(p);
else *kb = 0; }
}
} }
} }
else else if(*kb == aplWeaponFireDelay[p->curr_weapon][snum])
{ DoFire(p);
if(*kb == aplWeaponFireDelay[p->curr_weapon][snum])
DoFire(p);
}
} }
} }
} }