mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
Red, Black AI: try to use sidearm if not enough AP to shoot with main weapon.
Black AI: improved check to avoid friendly fire. FindAIUsableObjClass: by default search for weapon with longest range, if fSidearm = TRUE search for fastest weapon. AICalcChanceToHitGun: if AI_EXTRA_SUPPRESSION = TRUE, always return min 1% for AI. RangeChangeDesire: - civilians only want to run away - added small bonus to range change desire if soldier has no gun or short range weapon CalcBestShot, CheckIfShotPossible: always check if can shoot at target seen by another soldier. CalcBestShot, CalcBestThrow, CalcBestStab: initialize attack data. Removed obsolete code. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8782 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+11
-17
@@ -16,29 +16,23 @@ class SOLDIERTYPE;
|
||||
#define NIGHTSIGHTGOGGLES_BONUS 2 * STRAIGHT_RATIO
|
||||
#define UVGOGGLES_BONUS 4 * STRAIGHT_RATIO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
extern UINT8 SlotToPocket[7];
|
||||
|
||||
extern BOOLEAN WeaponInHand( SOLDIERTYPE * pSoldier );
|
||||
|
||||
INT8 FindAmmo( SOLDIERTYPE * pSoldier, UINT8 ubCalibre, UINT16 ubMagSize, UINT8 ubAmmoType, INT8 bExcludeSlot );
|
||||
|
||||
INT8 FindBestWeaponIfCurrentIsOutOfRange(SOLDIERTYPE * pSoldier, INT8 bCurrentWeaponIndex, UINT16 bWantedRange);
|
||||
|
||||
INT16 FindAttachmentSlot( OBJECTTYPE* pObj, UINT16 usItem, UINT8 subObject = 0);
|
||||
OBJECTTYPE* FindAttachment( OBJECTTYPE * pObj, UINT16 usItem, UINT8 subObject = 0 );
|
||||
extern INT8 FindObjClass( SOLDIERTYPE * pSoldier, UINT32 usItemClass );
|
||||
extern INT8 FindAIUsableObjClass( SOLDIERTYPE * pSoldier, UINT32 usItemClass );
|
||||
extern INT8 FindAIUsableObjClassWithin( SOLDIERTYPE * pSoldier, UINT32 usItemClass, INT8 bLower, INT8 bUpper );
|
||||
extern INT8 FindEmptySlotWithin( SOLDIERTYPE * pSoldier, INT8 bLower, INT8 bUpper );
|
||||
extern INT8 FindObjInObjRange( SOLDIERTYPE * pSoldier, UINT16 usItem1, UINT16 usItem2 );
|
||||
extern INT8 FindLaunchable( SOLDIERTYPE * pSoldier, UINT16 usWeapon );
|
||||
extern INT8 FindGLGrenade( SOLDIERTYPE * pSoldier );
|
||||
extern INT8 FindThrowableGrenade( SOLDIERTYPE * pSoldier );
|
||||
extern INT8 FindUsableObj( SOLDIERTYPE * pSoldier, UINT16 usItem );
|
||||
INT16 FindAttachmentSlot(OBJECTTYPE* pObj, UINT16 usItem, UINT8 subObject = 0);
|
||||
OBJECTTYPE* FindAttachment(OBJECTTYPE * pObj, UINT16 usItem, UINT8 subObject = 0);
|
||||
extern INT8 FindObjClass(SOLDIERTYPE * pSoldier, UINT32 usItemClass);
|
||||
extern INT8 FindAIUsableObjClass(SOLDIERTYPE * pSoldier, UINT32 usItemClass, BOOLEAN fSidearm = FALSE);
|
||||
extern INT8 FindAIUsableObjClassWithin(SOLDIERTYPE * pSoldier, UINT32 usItemClass, INT8 bLower, INT8 bUpper);
|
||||
extern INT8 FindEmptySlotWithin(SOLDIERTYPE * pSoldier, INT8 bLower, INT8 bUpper);
|
||||
extern INT8 FindObjInObjRange(SOLDIERTYPE * pSoldier, UINT16 usItem1, UINT16 usItem2);
|
||||
extern INT8 FindLaunchable(SOLDIERTYPE * pSoldier, UINT16 usWeapon);
|
||||
extern INT8 FindGLGrenade(SOLDIERTYPE * pSoldier);
|
||||
extern INT8 FindThrowableGrenade(SOLDIERTYPE * pSoldier);
|
||||
extern INT8 FindUsableObj(SOLDIERTYPE * pSoldier, UINT16 usItem);
|
||||
|
||||
void DeleteObj(OBJECTTYPE * pObj );
|
||||
void SwapObjs( OBJECTTYPE * pObj1, OBJECTTYPE * pObj2 );
|
||||
|
||||
Reference in New Issue
Block a user