mirror of
https://github.com/1dot13/source.git
synced 2026-08-26 14:30:26 +02:00
*********************************************************
* 2006/05/01 * * Madd Mugsy * * Developed in VS 2003 * ********************************************************* Source: - Added bullet tracers (& tracerEffect to AmmoTypes.xml) - Remedied IMP name saving, which didn't seem to upload properly Data: - Add bullet_tracer.sti to tilecache (will upload a full data folder w/new images at some point) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@45 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#define BULLET_FLAG_TANK_CANNON 0x0020
|
||||
#define BULLET_FLAG_BUCKSHOT 0x0040
|
||||
#define BULLET_FLAG_FLAME 0x0080
|
||||
#define BULLET_FLAG_TRACER 0x0100
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
||||
@@ -5677,6 +5677,8 @@ BOOLEAN LoadTileGraphicForItem( INVTYPE *pItem, UINT32 *puiVo )
|
||||
VOBJECT_DESC VObjectDesc;
|
||||
UINT16 ubGraphic;
|
||||
|
||||
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("LoadTileGraphicForItem"));
|
||||
|
||||
// CHECK SUBCLASS
|
||||
ubGraphic = pItem->ubGraphicNum;
|
||||
|
||||
@@ -5735,6 +5737,8 @@ BOOLEAN LoadTileGraphicForItem( INVTYPE *pItem, UINT32 *puiVo )
|
||||
|
||||
*puiVo = uiVo;
|
||||
|
||||
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("LoadTileGraphicForItem: done"));
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
@@ -7298,7 +7302,7 @@ void GetHelpTextForItem( INT16 * pzStr, OBJECTTYPE *pObject, SOLDIERTYPE *pSoldi
|
||||
// The next is for ammunition which gets the measurement 'rnds'
|
||||
else if (Item[ usItem ].usItemClass == IC_AMMO)
|
||||
{
|
||||
swprintf( (wchar_t *)pStr, L"%s [%d rnds]", ItemNames[ usItem ], sValue );
|
||||
swprintf( (wchar_t *)pStr, L"%s [%d rnds]", ItemNames[ usItem ], pObject->ubShotsLeft[0] );
|
||||
}
|
||||
// The final, and typical case, is that of an item with a percent status
|
||||
else
|
||||
|
||||
+7
-3
@@ -3534,6 +3534,10 @@ INT8 FireBulletGivenTarget( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOA
|
||||
usBulletFlags |= BULLET_FLAG_FLAME;
|
||||
ubSpreadIndex = 2;
|
||||
}
|
||||
else if ( AmmoTypes[ pFirer->inv[pFirer->ubAttackingHand].ubGunAmmoType ].tracerEffect && pFirer->bDoBurst )
|
||||
{
|
||||
usBulletFlags |= BULLET_FLAG_TRACER;
|
||||
}
|
||||
|
||||
ubImpact =(UINT8) GetDamage(&pFirer->inv[pFirer->ubAttackingHand]);
|
||||
// if (!fFake)
|
||||
@@ -4196,7 +4200,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 ) )
|
||||
if ( pBullet->usFlags & ( BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_TRACER ) )
|
||||
{
|
||||
INT8 bStepsPerMove = STEPS_FOR_BULLET_MOVE_TRAILS;
|
||||
|
||||
@@ -4481,11 +4485,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 ) )
|
||||
if ( pBullet->usFlags & ( BULLET_FLAG_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_TRACER ) )
|
||||
{
|
||||
INT8 bStepsPerMove = STEPS_FOR_BULLET_MOVE_TRAILS;
|
||||
|
||||
if ( pBullet->usFlags & ( BULLET_FLAG_SMALL_MISSILE ) )
|
||||
if ( pBullet->usFlags & ( BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TRACER ) )
|
||||
{
|
||||
bStepsPerMove = STEPS_FOR_BULLET_MOVE_SMALL_TRAILS;
|
||||
}
|
||||
|
||||
@@ -166,6 +166,7 @@ typedef struct
|
||||
BOOLEAN ignoreArmour;
|
||||
BOOLEAN acidic;
|
||||
INT16 lockBustingPower;
|
||||
BOOLEAN tracerEffect;
|
||||
|
||||
} AMMOTYPE;
|
||||
|
||||
|
||||
@@ -110,6 +110,7 @@ ammotypeStartElementHandle(void *userData, const char *name, const char **atts)
|
||||
strcmp(name, "ignoreArmour") == 0 ||
|
||||
strcmp(name, "lockBustingPower") == 0 ||
|
||||
strcmp(name, "acidic") == 0 ||
|
||||
strcmp(name, "tracerEffect") == 0 ||
|
||||
strcmp(name, "monsterSpit") == 0 ))
|
||||
{
|
||||
pData->curElement = ELEMENT_PROPERTY;
|
||||
@@ -297,6 +298,11 @@ ammotypeEndElementHandle(void *userData, const char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curAmmoType.acidic = (BOOLEAN) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "tracerEffect") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
pData->curAmmoType.tracerEffect = (BOOLEAN) atol(pData->szCharData);
|
||||
}
|
||||
|
||||
pData->maxReadDepth--;
|
||||
}
|
||||
@@ -417,6 +423,7 @@ BOOLEAN WriteAmmoTypeStats()
|
||||
FilePrintf(hFile,"\t\t<acidic>%d</acidic>\r\n", AmmoTypes[cnt].acidic );
|
||||
FilePrintf(hFile,"\t\t<ignoreArmour>%d</ignoreArmour>\r\n", AmmoTypes[cnt].ignoreArmour );
|
||||
FilePrintf(hFile,"\t\t<lockBustingPower>%d</lockBustingPower>\r\n", AmmoTypes[cnt].lockBustingPower );
|
||||
FilePrintf(hFile,"\t\t<tracerEffect>%d</tracerEffect>\r\n", AmmoTypes[cnt].tracerEffect );
|
||||
|
||||
|
||||
FilePrintf(hFile,"\t</AMMOTYPE>\r\n");
|
||||
|
||||
@@ -256,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 ) )
|
||||
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
|
||||
@@ -300,7 +300,7 @@ void UpdateBullets( )
|
||||
}
|
||||
}
|
||||
// Are we a missle?
|
||||
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_MISSILE | BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_TANK_CANNON | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_TRACER ) )
|
||||
{
|
||||
}
|
||||
else
|
||||
@@ -360,7 +360,7 @@ 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 ) )
|
||||
if ( pBullet->usFlags & ( BULLET_FLAG_SMALL_MISSILE | BULLET_FLAG_FLAME | BULLET_FLAG_CREATURE_SPIT | BULLET_FLAG_TRACER ) )
|
||||
{
|
||||
if ( pBullet->iLoop < 5 )
|
||||
{
|
||||
@@ -406,6 +406,10 @@ 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 ) )
|
||||
{
|
||||
strcpy( AniParams.zCachedFile, "TILECACHE\\BULLET_TRACER.STI" );
|
||||
}
|
||||
|
||||
CreateAnimationTile( &AniParams );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user