From 25471acf1f9c17853fc743c9990a6e06dddabd3b Mon Sep 17 00:00:00 2001 From: Flugente Date: Sun, 17 Mar 2013 19:53:59 +0000 Subject: [PATCH] CalculateForceFromRange() takes an item number instead of an object git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5928 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- TileEngine/physics.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/TileEngine/physics.cpp b/TileEngine/physics.cpp index 26897a82..a31087d8 100644 --- a/TileEngine/physics.cpp +++ b/TileEngine/physics.cpp @@ -108,7 +108,7 @@ BOOLEAN PhysicsCheckForCollisions( REAL_OBJECT *pObject, INT32 *piCollisionI void PhysicsResolveCollision( REAL_OBJECT *pObject, vector_3 *pVelocity, vector_3 *pNormal, real CoefficientOfRestitution ); void PhysicsDeleteObject( REAL_OBJECT *pObject ); BOOLEAN PhysicsHandleCollisions( REAL_OBJECT *pObject, INT32 *piCollisionID, real DeltaTime ); -FLOAT CalculateForceFromRange( OBJECTTYPE *pItem, INT16 sRange, FLOAT dDegrees ); +FLOAT CalculateForceFromRange( UINT16 usItem, INT16 sRange, FLOAT dDegrees ); INT32 RandomGridFromRadius( INT32 sSweetGridNo, INT8 ubMinRadius, INT8 ubMaxRadius ); @@ -2034,7 +2034,7 @@ void CalculateLaunchItemBasicParams( SOLDIERTYPE *pSoldier, OBJECTTYPE *pItem, I if ( fMortar || fGLauncher ) { // find min force - dMinForce = CalculateForceFromRange( pItem, (INT16)( sMinRange / 10 ), (FLOAT)( PI / 4 ) ); + dMinForce = CalculateForceFromRange( pItem->usItem, (INT16)( sMinRange / 10 ), (FLOAT)( PI / 4 ) ); if ( dMagForce < dMinForce ) { @@ -2151,7 +2151,7 @@ BOOLEAN CalculateLaunchItemChanceToGetThrough( SOLDIERTYPE *pSoldier, OBJECTTYPE -FLOAT CalculateForceFromRange( OBJECTTYPE *pItem, INT16 sRange, FLOAT dDegrees ) +FLOAT CalculateForceFromRange(UINT16 usItem, INT16 sRange, FLOAT dDegrees ) { FLOAT dMagForce; INT32 sSrcGridNo, sDestGridNo; @@ -2169,7 +2169,7 @@ FLOAT CalculateForceFromRange( OBJECTTYPE *pItem, INT16 sRange, FLOAT dDegrees ) // Buggler: impact explosives requiring larger force to reach desired range due to no bounce // Please change the if conditions too when definition of OBJECT_DETONATE_ON_IMPACT( object ) changes - if ( ( Item[ pItem->usItem ].usItemClass == IC_BOMB ) || ( Explosive[ Item[ pItem->usItem ].ubClassIndex ].fExplodeOnImpact ) ) // && ( object->ubActionCode == THROW_ARM_ITEM || pObject->fTestObject ) ) + if ( ( Item[ usItem ].usItemClass == IC_BOMB ) || ( Explosive[ Item[ usItem ].ubClassIndex ].fExplodeOnImpact ) ) // && ( object->ubActionCode == THROW_ARM_ITEM || pObject->fTestObject ) ) // Use a mortar shell objecttype to simulate impact explosives CreateItem( MORTAR_SHELL, 100, &gTempObject ); else @@ -2196,7 +2196,7 @@ FLOAT CalculateSoldierMaxForce( SOLDIERTYPE *pSoldier, FLOAT dDegrees , OBJECTTY uiMaxRange = CalcMaxTossRange( pSoldier, pItem->usItem, fArmed ); - dMagForce = CalculateForceFromRange( pItem, (INT16) uiMaxRange, dDegrees ); + dMagForce = CalculateForceFromRange( pItem->usItem, (INT16) uiMaxRange, dDegrees ); DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"CalculateSoldierMaxForce: done"); return( dMagForce );