mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
- New Feature: Allow attaching and using underbarrel weapons (by Flugente & JMich)
o You can now attach weapons to other weapons (only one at a time). Comes with additional fire modes (by cycling in tactical with key 'b') o A new item, the KAC masterkey, demonstrates this. Raider and Kelly have one in their starting kit 4. (pics by smeagol) o works both in OCTh and NCTH. Aiming is done via the main gun, but all physical values of the attached gun are considered. o reload an underbarrel gun while it is attached by dropping the ammo on the main gun while an underbarrel fire mode is active. Cycle firemodes in tactical by pressing 'b' o Attachments to underbarrel weapons are inseparable while weapon is attached, but they do work. - Overheating weapons additions (by Flugente) o New option OVERHEATING_DISPLAY_THERMOMETER_RED_OFFSET controls how red the temperature bar is at the beginning. o New option OVERHEATING_SET_ZERO_UPON_NEW_SECTOR sets temperature of items on the floor to zero if loading a new sector git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5133 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -12911,7 +12911,7 @@ void SOLDIERTYPE::SoldierInventoryCoolDown(void)
|
||||
attachmentList::iterator iterend = (*pObj)[i]->attachments.end();
|
||||
for (attachmentList::iterator iter = (*pObj)[i]->attachments.begin(); iter != iterend; ++iter)
|
||||
{
|
||||
if ( iter->exists() && Item[ iter->usItem ].usItemClass & (IC_LAUNCHER|IC_LAUNCHER) )
|
||||
if ( iter->exists() && Item[ iter->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) )
|
||||
{
|
||||
FLOAT temperature = (*iter)[i]->data.bTemperature; // ... get temperature of item ...
|
||||
|
||||
@@ -12934,11 +12934,19 @@ void SOLDIERTYPE::SoldierInventoryCoolDown(void)
|
||||
}
|
||||
}
|
||||
|
||||
// Flugente: determien if we can rest our weapon on something. This can only happen when STANDING/CROUCHED. As a result, we get superior handling modifiers (we apply the PRONE modfiers)
|
||||
// Flugente: determine if we can rest our weapon on something. This can only happen when STANDING/CROUCHED. As a result, we get superior handling modifiers (we apply the PRONE modfiers)
|
||||
BOOLEAN SOLDIERTYPE::IsWeaponMounted( void )
|
||||
{
|
||||
BOOLEAN applybipod = FALSE;
|
||||
|
||||
// we must be active
|
||||
if ( !bActive)
|
||||
return( FALSE );
|
||||
|
||||
// we must be in a sector (not travelling)
|
||||
if ( !bInSector )
|
||||
return( FALSE );
|
||||
|
||||
// not possible if already prone
|
||||
if ( gAnimControl[ this->usAnimState ].ubEndHeight == ANIM_PRONE )
|
||||
return( FALSE );
|
||||
@@ -13022,6 +13030,33 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void )
|
||||
return( applybipod );
|
||||
}
|
||||
|
||||
// Flugente: return weapon currently used
|
||||
OBJECTTYPE* SOLDIERTYPE::GetUsedWeapon( OBJECTTYPE * pObj )
|
||||
{
|
||||
if ( bWeaponMode == WM_ATTACHED_UB || bWeaponMode == WM_ATTACHED_UB_BURST || bWeaponMode == WM_ATTACHED_UB_AUTO )
|
||||
{
|
||||
OBJECTTYPE* pObjUnderBarrel = FindAttachment_UnderBarrel(pObj);
|
||||
|
||||
if ( pObjUnderBarrel )
|
||||
return( pObjUnderBarrel );
|
||||
}
|
||||
|
||||
return( pObj );
|
||||
}
|
||||
|
||||
UINT16 SOLDIERTYPE::GetUsedWeaponNumber( OBJECTTYPE * pObj )
|
||||
{
|
||||
if ( bWeaponMode == WM_ATTACHED_UB || bWeaponMode == WM_ATTACHED_UB_BURST || bWeaponMode == WM_ATTACHED_UB_AUTO )
|
||||
{
|
||||
UINT16 weaponnr = GetAttachedUnderBarrel(pObj);
|
||||
|
||||
if ( weaponnr != NONE )
|
||||
return( weaponnr );
|
||||
}
|
||||
|
||||
return( pObj->usItem );
|
||||
}
|
||||
|
||||
INT32 CheckBleeding( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
INT8 bBandaged; //,savedOurTurn;
|
||||
|
||||
Reference in New Issue
Block a user