diff --git a/JA2.suo b/JA2.suo index e6f5f2d31..08184f806 100644 Binary files a/JA2.suo and b/JA2.suo differ diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp index 847b190f9..d59583bf5 100644 --- a/Tactical/LOS.cpp +++ b/Tactical/LOS.cpp @@ -48,6 +48,8 @@ UINT16 gusLOSEndSoldier = NOBODY; extern UINT32 guiSoldierFlags; extern INT16 DirIncrementer[8]; +extern BOOLEAN fTracer; + static FIXEDPT gqStandardWallHeight = INT32_TO_FIXEDPT( WALL_HEIGHT_UNITS ); static FIXEDPT gqStandardWindowBottomHeight = INT32_TO_FIXEDPT( WINDOW_BOTTOM_HEIGHT_UNITS ); static FIXEDPT gqStandardWindowTopHeight = INT32_TO_FIXEDPT( WINDOW_TOP_HEIGHT_UNITS ); @@ -3563,6 +3565,7 @@ INT8 FireBulletGivenTarget( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOA ddOrigVerticAngle = atan2( dDeltaZ, (d2DDistance * 2.56f) ); ubShots = 1; + fTracer = FALSE; // Check if we have spit as a weapon! if ( Weapon[ usHandItem ].ubWeaponClass == MONSTERCLASS ) @@ -3592,7 +3595,8 @@ INT8 FireBulletGivenTarget( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOA } else if ( AmmoTypes[ pFirer->inv[pFirer->ubAttackingHand].ubGunAmmoType ].tracerEffect && (pFirer->bDoBurst || gGameSettings.fOptions[ TOPTION_TRACERS_FOR_SINGLE_FIRE ]) ) { - usBulletFlags |= BULLET_FLAG_TRACER; + //usBulletFlags |= BULLET_FLAG_TRACER; + fTracer = TRUE; } ubImpact =(UINT8) GetDamage(&pFirer->inv[pFirer->ubAttackingHand]); @@ -4256,7 +4260,7 @@ void MoveBullet( INT32 iBullet ) return; } - if ( pBullet->usFlags & ( BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_TRACER ) ) + if (( pBullet->usFlags & ( BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT /*| BULLET_FLAG_TRACER*/ ) ) || fTracer == TRUE) { INT8 bStepsPerMove = STEPS_FOR_BULLET_MOVE_TRAILS; @@ -4541,11 +4545,11 @@ void MoveBullet( INT32 iBullet ) pBullet->iCurrCubesZ = CONVERT_HEIGHTUNITS_TO_INDEX( FIXEDPT_TO_INT32( pBullet->qCurrZ ) ); pBullet->iLoop++; - if ( pBullet->usFlags & ( BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_TRACER ) ) + if (( pBullet->usFlags & ( BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT /*| BULLET_FLAG_TRACER */) ) || fTracer == TRUE) { INT8 bStepsPerMove = STEPS_FOR_BULLET_MOVE_TRAILS; - if ( pBullet->usFlags & ( BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TRACER ) ) + if (( pBullet->usFlags & ( BULLET_FLAG_SMALL_MISSILE /*| BULLET_FLAG_TRACER*/ ) ) || fTracer == TRUE) { bStepsPerMove = STEPS_FOR_BULLET_MOVE_SMALL_TRAILS; } diff --git a/Tactical/bullets.cpp b/Tactical/bullets.cpp index e418517d3..9879d2d4a 100644 --- a/Tactical/bullets.cpp +++ b/Tactical/bullets.cpp @@ -35,6 +35,7 @@ // GLOBAL FOR FACES LISTING BULLET gBullets[ NUM_BULLET_SLOTS ]; UINT32 guiNumBullets = 0; +BOOLEAN fTracer = FALSE; INT32 GetFreeBullet(void) @@ -255,7 +256,7 @@ void UpdateBullets( ) { // ALRIGHTY, CHECK WHAT TYPE OF BULLET WE ARE - if ( gBullets[ uiCount ].usFlags & ( BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_KNIFE | BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_TRACER ) ) + if ( gBullets[ uiCount ].usFlags & ( BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_KNIFE | BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME /*| BULLET_FLAG_TRACER*/ ) ) { } else @@ -302,10 +303,18 @@ void UpdateBullets( ) else if ( gBullets[ uiCount ].usFlags & ( BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT ) ) { } + /* else if ( gBullets[ uiCount ].usFlags & ( BULLET_FLAG_TRACER ) ) { ManLooksForOtherTeams(gBullets[ uiCount ].pFirer); } + */ + /* + else if (fTracer == TRUE) + { + ManLooksForOtherTeams(gBullets[ uiCount ].pFirer); + } + */ else { pNode = AddStructToTail( gBullets[ uiCount ].sGridNo, BULLETTILE1 ); @@ -363,7 +372,15 @@ void AddMissileTrail( BULLET *pBullet, FIXEDPT qCurrX, FIXEDPT qCurrY, FIXEDPT q ANITILE_PARAMS AniParams; // If we are a small missle, don't show - if ( pBullet->usFlags & ( BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_TRACER ) ) + if ( pBullet->usFlags & ( BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT /*| BULLET_FLAG_TRACER*/ ) ) + { + if ( pBullet->iLoop < 5 ) + { + return; + } + } + + if (fTracer == TRUE) { if ( pBullet->iLoop < 5 ) { @@ -409,7 +426,8 @@ void AddMissileTrail( BULLET *pBullet, FIXEDPT qCurrX, FIXEDPT qCurrY, FIXEDPT q strcpy( AniParams.zCachedFile, "TILECACHE\\FLMTHR2.STI" ); AniParams.sDelay = (INT16)( 100 ); } - else if ( pBullet->usFlags & ( BULLET_FLAG_TRACER ) ) + //else if ( pBullet->usFlags & ( BULLET_FLAG_TRACER ) ) + else if (fTracer == TRUE) { strcpy( AniParams.zCachedFile, "TILECACHE\\BULLET_TRACER.STI" ); AniParams.uiFlags |= ANITILE_LIGHT;