mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
************************************************************
* Merged Source Code from Development Trunk: Revision 4063 * ************************************************************ - Source Code is merged from: https://81.169.133.124/source/ja2/branches/Wanne/JA2%201.13%20MP - This will be the Source for the Beta 2011 Test git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@4064 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+27
-5
@@ -65,12 +65,14 @@ INT32 CheckForCollision( FLOAT dX, FLOAT dY, FLOAT dZ, FLOAT dDeltaX, FLOAT dDel
|
||||
|
||||
INT8 ChanceToGetThrough( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ );
|
||||
INT8 FireBulletGivenTarget( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usHandItem, INT16 sHitBy, BOOLEAN fBuckshot, BOOLEAN fFake );
|
||||
// HEADROCK HAM 4: Changed the name of one argument to avoid confusion with the new CTH system.
|
||||
INT8 FireBulletGivenTargetNCTH( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, UINT16 usHandItem, INT16 sApertureRatio, BOOLEAN fBuckshot, BOOLEAN fFake );
|
||||
|
||||
#define CALC_FROM_ALL_DIRS -1
|
||||
#define CALC_FROM_WANTED_DIR -2
|
||||
#define NO_DISTANCE_LIMIT -3
|
||||
|
||||
INT32 SoldierToSoldierLineOfSightTest( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, INT8 bAware, int iTileSightLimit = CALC_FROM_ALL_DIRS, UINT8 ubAimLocation = LOS_POS, bool adjustForSight = true );
|
||||
INT32 SoldierToSoldierLineOfSightTest( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, INT8 bAware, int iTileSightLimit = CALC_FROM_ALL_DIRS, UINT8 ubAimLocation = LOS_POS, bool adjustForSight = true, bool cthCalc = false );
|
||||
INT32 SoldierTo3DLocationLineOfSightTest( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, INT8 bAware, int ubSightLimit = CALC_FROM_ALL_DIRS, bool adjustForSight = true );
|
||||
INT32 SoldierToVirtualSoldierLineOfSightTest( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bStance, INT8 bAware, int iTileSightLimit = CALC_FROM_ALL_DIRS );
|
||||
UINT8 SoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier );
|
||||
@@ -170,16 +172,14 @@ extern LOSResults gLOSTestResults;
|
||||
void MoveBullet( INT32 iBullet );
|
||||
//BOOLEAN FireBullet2( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOAT dEndZ, INT16 sHitBy );
|
||||
|
||||
// TODO: public but at the wrong place, the original function deletes the important parts, not sure what it could brake
|
||||
// to be used in conjunction with the camo thing and the "F" key
|
||||
INT8 GetTerrainTypeForGrid( const INT32& uGridNo );
|
||||
INT8 GetTerrainTypeForGrid( const INT32& uGridNo, const INT16& bLevel );
|
||||
|
||||
// check the flat distance adjustment based on your stance
|
||||
// use this to test your view on your surroundings based on your stance
|
||||
INT8 GetSightAdjustmentThroughStance( const UINT8& ubStance );
|
||||
|
||||
// quick way to get all. should be used for all sight line tests with target soldier known
|
||||
INT16 GetSightAdjustment( SOLDIERTYPE* pSoldier, INT32 sGridNo = -1, INT8 bStance = -1 );
|
||||
INT16 GetSightAdjustment( SOLDIERTYPE* pSoldier, INT32 sGridNo = -1, INT16 bLevel = -1, INT8 bStance = -1 );
|
||||
|
||||
//zilpin: pellet spread patterns externalized in XML
|
||||
#define SPREADPATTERN_NAME_SIZE 32
|
||||
@@ -210,4 +210,26 @@ extern t_SpreadPattern *gpSpreadPattern;
|
||||
extern INT32 giSpreadPatternCount;
|
||||
extern INT32 GetSpreadPattern( OBJECTTYPE * pObj );
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HEADROCK HAM 4: The following functions are all part of the NCTH project,
|
||||
// which completely redesigns the way we calculate and handle CTH for the purposes of firing weapons.
|
||||
void AdjustTargetCenterPoint( SOLDIERTYPE *pShooter, INT32 iTargetGridNo, FLOAT *dEndX, FLOAT *dEndY, FLOAT *dEndZ, OBJECTTYPE *pWeapon, UINT32 uiMuzzleSway, INT16 *sApertureRatio );
|
||||
FLOAT CalcMagFactor( SOLDIERTYPE *pShooter, OBJECTTYPE *pWeapon, FLOAT d2DDistance, UINT8 ubAimTime );
|
||||
FLOAT CalcBasicAperture();
|
||||
void CalcTargetMovementOffset( SOLDIERTYPE *pShooter, SOLDIERTYPE *pTarget, OBJECTTYPE *pWeapon, FLOAT *dMuzzleOffsetX, DOUBLE ddShootingAngle, INT32 iAperture );
|
||||
void CalcRangeCompensationOffset( SOLDIERTYPE *pShooter, FLOAT *dMuzzleOffsetY, INT32 iRangeToTarget, OBJECTTYPE *pWeapon );
|
||||
void CalcMuzzleSway( SOLDIERTYPE *pShooter, FLOAT *dMuzzleOffsetX, FLOAT *dMuzzleOffsetY, FLOAT iAperture );
|
||||
void CalcBulletDeviation( SOLDIERTYPE *pShooter, FLOAT *dShotOffsetX, FLOAT *dShotOffsetY, OBJECTTYPE *pWeapon, UINT32 uiRange );
|
||||
void LimitImpactPointToMaxAperture( FLOAT *dShotOffsetX, FLOAT *dShotOffsetY, FLOAT dDistanceAperture );
|
||||
void CalcPreRecoilOffset( SOLDIERTYPE *pShooter, OBJECTTYPE *pWeapon, FLOAT *dMuzzleOffsetX, FLOAT *dMuzzleOffsetY, UINT32 uiRange );
|
||||
void CalcRecoilOffset( SOLDIERTYPE *pShooter, FLOAT *dMuzzleOffsetX, FLOAT *dMuzzleOffsetY, OBJECTTYPE *pWeapon, UINT32 uiRange );
|
||||
|
||||
// HEADROCK HAM 4: Required for shooting mechanic
|
||||
extern INT8 EffectiveMarksmanship( SOLDIERTYPE * pSoldier );
|
||||
extern INT8 EffectiveWisdom( SOLDIERTYPE * pSoldier );
|
||||
extern INT8 EffectiveExpLevel( SOLDIERTYPE * pSoldier );
|
||||
extern INT8 EffectiveDexterity( SOLDIERTYPE * pSoldier );
|
||||
extern INT8 EffectiveStrength( SOLDIERTYPE * pSoldier );
|
||||
extern INT8 EffectiveAgility( SOLDIERTYPE * pSoldier );
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user