mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
- bugfix: Tracer bullets animation starts some tiles away of where the shooter is
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@648 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+8
-4
@@ -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;
|
||||
}
|
||||
|
||||
+21
-3
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user