diff --git a/Tactical/Interface Enhanced.cpp b/Tactical/Interface Enhanced.cpp
index 76439a95..acac39f6 100644
--- a/Tactical/Interface Enhanced.cpp
+++ b/Tactical/Interface Enhanced.cpp
@@ -2414,6 +2414,24 @@ void InternalInitEDBTooltipRegion( OBJECTTYPE * gpItemDescObject, UINT32 guiCurr
MSYS_EnableRegion( &gUDBFasthelpRegions[ iFirstDataRegion + cnt ] );
cnt++;
}
+
+ ////////////////// Ammo with white smoke trail
+ if ( AmmoTypes[Magazine[Item[gpItemDescObject->usItem].ubClassIndex].ubAmmoType].ammoflag & AMMO_TRAIL_WHITESMOKE )
+ {
+ swprintf( pStr, L"%s%s", szUDBGenSecondaryStatsTooltipText[49], szUDBGenSecondaryStatsExplanationsTooltipText[49] );
+ SetRegionFastHelpText( &( gUDBFasthelpRegions[iFirstDataRegion + cnt] ), pStr );
+ MSYS_EnableRegion( &gUDBFasthelpRegions[iFirstDataRegion + cnt] );
+ cnt++;
+ }
+
+ ////////////////// Ammo with fire trail
+ if ( AmmoTypes[Magazine[Item[gpItemDescObject->usItem].ubClassIndex].ubAmmoType].ammoflag & AMMO_TRAIL_FIRE )
+ {
+ swprintf( pStr, L"%s%s", szUDBGenSecondaryStatsTooltipText[50], szUDBGenSecondaryStatsExplanationsTooltipText[50] );
+ SetRegionFastHelpText( &( gUDBFasthelpRegions[iFirstDataRegion + cnt] ), pStr );
+ MSYS_EnableRegion( &gUDBFasthelpRegions[iFirstDataRegion + cnt] );
+ cnt++;
+ }
}
if (Item[ gpItemDescObject->usItem ].usItemClass & IC_EXPLOSV)
@@ -6108,6 +6126,22 @@ void DrawSecondaryStats( OBJECTTYPE * gpItemDescObject )
BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoSecondaryIcon, 36, gItemDescGenSecondaryRegions[cnt].sLeft+sOffsetX, gItemDescGenSecondaryRegions[cnt].sTop+sOffsetY, VO_BLT_SRCTRANSPARENCY, NULL );
cnt++;
}
+
+ ////////////////// Ammo with white smoke trail
+ if ( ( AmmoTypes[Magazine[Item[gpItemDescObject->usItem].ubClassIndex].ubAmmoType].ammoflag & AMMO_TRAIL_WHITESMOKE && !fComparisonMode ) ||
+ ( fComparisonMode && AmmoTypes[Magazine[Item[gpComparedItemDescObject->usItem].ubClassIndex].ubAmmoType].ammoflag & AMMO_TRAIL_WHITESMOKE ) )
+ {
+ BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoSecondaryIcon, 46, gItemDescGenSecondaryRegions[cnt].sLeft + sOffsetX, gItemDescGenSecondaryRegions[cnt].sTop + sOffsetY, VO_BLT_SRCTRANSPARENCY, NULL );
+ cnt++;
+ }
+
+ ////////////////// Ammo with fire trail
+ if ( ( AmmoTypes[Magazine[Item[gpItemDescObject->usItem].ubClassIndex].ubAmmoType].ammoflag & AMMO_TRAIL_FIRE && !fComparisonMode ) ||
+ ( fComparisonMode && AmmoTypes[Magazine[Item[gpComparedItemDescObject->usItem].ubClassIndex].ubAmmoType].ammoflag & AMMO_TRAIL_FIRE ) )
+ {
+ BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoSecondaryIcon, 47, gItemDescGenSecondaryRegions[cnt].sLeft + sOffsetX, gItemDescGenSecondaryRegions[cnt].sTop + sOffsetY, VO_BLT_SRCTRANSPARENCY, NULL );
+ cnt++;
+ }
}
if (Item[ gpItemDescObject->usItem ].usItemClass & (IC_EXPLOSV))
diff --git a/Tactical/Item Types.h b/Tactical/Item Types.h
index 5f43bce5..dfe3bd19 100644
--- a/Tactical/Item Types.h
+++ b/Tactical/Item Types.h
@@ -779,7 +779,6 @@ extern OBJECTTYPE gTempObject;
// extended flagmask to UINT64
#define EMPTY_BLOOD_BAG 0x0000000100000000 // this item is a empty blood bag
#define MEDICAL_SPLINT 0x0000000200000000 // this item is a medical splint that can be applied to some diseases
-#define FIREEXTINGUISHER 0x0000000400000000 // this item is a fire extinguisher, which results in a white trail of smoke when firing
// ----------------------------------------------------------------
diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp
index bd01e092..5d4ba884 100644
--- a/Tactical/LOS.cpp
+++ b/Tactical/LOS.cpp
@@ -4819,16 +4819,16 @@ INT8 FireBulletGivenTargetNCTH( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY,
{
usBulletFlags |= BULLET_FLAG_SMALL_MISSILE;
}
- else if ( usHandItem == FLAMETHROWER )
- {
- usBulletFlags |= BULLET_FLAG_FLAME;
- ubSpreadIndex = 2;
- }
- else if ( Item[usHandItem].usItemFlag & FIREEXTINGUISHER )
+ else if ( AmmoTypes[( *pObjAttHand )[0]->data.gun.ubGunAmmoType].ammoflag & AMMO_TRAIL_WHITESMOKE )
{
usBulletFlags |= BULLET_FLAG_WHITESMOKE;
ubSpreadIndex = 2;
}
+ else if ( AmmoTypes[( *pObjAttHand )[0]->data.gun.ubGunAmmoType].ammoflag & AMMO_TRAIL_FIRE )
+ {
+ usBulletFlags |= BULLET_FLAG_FLAME;
+ ubSpreadIndex = 2;
+ }
// HEADROCK HAM B2.5: Set tracer effect on/off for individual bullets in a Tracer Magazine, as part of the
// New Tracer System.
else if (gGameExternalOptions.ubRealisticTracers > 0 && gGameExternalOptions.ubNumBulletsPerTracer > 0 && (pFirer->bDoAutofire > 0 || pFirer->bDoBurst > 0)
@@ -5318,16 +5318,16 @@ INT8 FireBulletGivenTarget( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY, FLOA
{
usBulletFlags |= BULLET_FLAG_SMALL_MISSILE;
}
- else if ( usHandItem == FLAMETHROWER )
- {
- usBulletFlags |= BULLET_FLAG_FLAME;
- ubSpreadIndex = 2;
- }
- else if ( Item[usHandItem].usItemFlag & FIREEXTINGUISHER )
+ else if ( AmmoTypes[( *pObjAttHand )[0]->data.gun.ubGunAmmoType].ammoflag & AMMO_TRAIL_WHITESMOKE )
{
usBulletFlags |= BULLET_FLAG_WHITESMOKE;
ubSpreadIndex = 2;
}
+ else if ( AmmoTypes[( *pObjAttHand )[0]->data.gun.ubGunAmmoType].ammoflag & AMMO_TRAIL_FIRE )
+ {
+ usBulletFlags |= BULLET_FLAG_FLAME;
+ ubSpreadIndex = 2;
+ }
// HEADROCK HAM B2.5: Set tracer effect on/off for individual bullets in a Tracer Magazine, as part of the
// New Tracer System.
else if (gGameExternalOptions.ubRealisticTracers > 0 && gGameExternalOptions.ubNumBulletsPerTracer > 0 && (pFirer->bDoAutofire > 0 || pFirer->bDoBurst > 0)
@@ -6004,16 +6004,16 @@ INT8 FireBulletGivenTargetTrapOnly( SOLDIERTYPE* pThrower, OBJECTTYPE* pObj, INT
{
usBulletFlags |= BULLET_FLAG_SMALL_MISSILE;
}
- else if ( usItem == FLAMETHROWER )
- {
- usBulletFlags |= BULLET_FLAG_FLAME;
- ubSpreadIndex = 2;
- }
- else if ( Item[usItem].usItemFlag & FIREEXTINGUISHER )
+ else if ( AmmoTypes[ammotype].ammoflag & AMMO_TRAIL_WHITESMOKE )
{
usBulletFlags |= BULLET_FLAG_WHITESMOKE;
ubSpreadIndex = 2;
}
+ else if ( AmmoTypes[ammotype].ammoflag & AMMO_TRAIL_FIRE )
+ {
+ usBulletFlags |= BULLET_FLAG_FLAME;
+ ubSpreadIndex = 2;
+ }
// Flugente: anti-materiel ammo
if ( AmmoTypes[ammotype].ammoflag & AMMO_ANTIMATERIEL )
@@ -6589,16 +6589,16 @@ INT8 FireBulletGivenTarget_NoObjectNoSoldier( UINT16 usItem, UINT8 ammotype, UIN
{
usBulletFlags |= BULLET_FLAG_SMALL_MISSILE;
}
- else if ( usItem == FLAMETHROWER )
- {
- usBulletFlags |= BULLET_FLAG_FLAME;
- ubSpreadIndex = 2;
- }
- else if ( Item[usItem].usItemFlag & FIREEXTINGUISHER )
+ else if ( AmmoTypes[ammotype].ammoflag & AMMO_TRAIL_WHITESMOKE )
{
usBulletFlags |= BULLET_FLAG_WHITESMOKE;
ubSpreadIndex = 2;
}
+ else if ( AmmoTypes[ammotype].ammoflag & AMMO_TRAIL_FIRE )
+ {
+ usBulletFlags |= BULLET_FLAG_FLAME;
+ ubSpreadIndex = 2;
+ }
// Flugente: anti-materiel ammo
if ( AmmoTypes[ammotype].ammoflag & AMMO_ANTIMATERIEL )
diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp
index 17f5d35f..72e5e8e7 100644
--- a/Tactical/Soldier Control.cpp
+++ b/Tactical/Soldier Control.cpp
@@ -5959,8 +5959,10 @@ void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT1
{
ubReason = TAKE_DAMAGE_VEHICLE_TRAUMA;
}
- // Flugente: it would be more reasonable to check for the ammo or gun details, but that's what is used in other locations
- else if ( usWeaponIndex == FLAMETHROWER )
+ // Flugente: check the ammo
+ else if ( ubAttackerID != NOBODY
+ && MercPtrs[ubAttackerID]->inv[HANDPOS].exists()
+ && AmmoTypes[*&( MercPtrs[ubAttackerID]->inv[HANDPOS] )[0]->data.gun.ubGunAmmoType].ammoflag & AMMO_TRAIL_FIRE )
{
ubReason = TAKE_DAMAGE_GAS_FIRE;
diff --git a/Tactical/Weapons.h b/Tactical/Weapons.h
index d6d4e54e..f879b969 100644
--- a/Tactical/Weapons.h
+++ b/Tactical/Weapons.h
@@ -165,10 +165,10 @@ enum
#define AMMO_CRYO 0x00000001 //1 // this ammo shock-freezes target
#define AMMO_BLIND 0x00000002 //2 // this ammo will blind if it hits the head
#define AMMO_ANTIMATERIEL 0x00000004 //4 // this ammo is anti-materiel, bullets can destroy structures
-/*#define CONCERTINA 0x00000008 //8
+#define AMMO_TRAIL_WHITESMOKE 0x00000008 //8 // this ammo leaves a trail of white smoke
-#define WATER_DRUM 0x00000010 //16 // water drums allow to refill canteens in the sector they are in
-#define MEAT_BLOODCAT 0x00000020 //32 // retrieve this by gutting a bloodcat
+#define AMMO_TRAIL_FIRE 0x00000010 //16 // this ammo leaves a trail of fire
+/*#define MEAT_BLOODCAT 0x00000020 //32 // retrieve this by gutting a bloodcat
#define COW_MEAT 0x00000040 //64 // retrieve this by gutting a cow
#define BELT_FED 0x00000080 //128 // item can be fed externally
diff --git a/Utils/XML_Items.cpp b/Utils/XML_Items.cpp
index e2591279..ff8c850d 100644
--- a/Utils/XML_Items.cpp
+++ b/Utils/XML_Items.cpp
@@ -298,7 +298,6 @@ itemStartElementHandle(void *userData, const XML_Char *name, const XML_Char **at
strcmp(name, "bloodbag" ) == 0 ||
strcmp(name, "emptybloodbag" ) == 0 ||
strcmp(name, "medicalsplint" ) == 0 ||
- strcmp(name, "fireextinguisher" ) == 0 ||
strcmp(name, "sFireResistance" ) == 0 ||
strcmp(name, "usAdministrationModifier" ) == 0))
{
@@ -1544,13 +1543,6 @@ itemEndElementHandle(void *userData, const XML_Char *name)
if ( (BOOLEAN)atol( pData->szCharData ) )
pData->curItem.usItemFlag |= MEDICAL_SPLINT;
}
- else if ( strcmp( name, "fireextinguisher" ) == 0 )
- {
- pData->curElement = ELEMENT;
-
- if ( (BOOLEAN)atol( pData->szCharData ) )
- pData->curItem.usItemFlag |= FIREEXTINGUISHER;
- }
else if ( strcmp( name, "sFireResistance" ) == 0 )
{
pData->curElement = ELEMENT;
@@ -2200,7 +2192,6 @@ BOOLEAN WriteItemStats()
if ( HasItemFlag( cnt, BLOOD_BAG) ) FilePrintf( hFile, "\t\t%d\r\n", 1 );
if ( HasItemFlag( cnt, EMPTY_BLOOD_BAG ) ) FilePrintf( hFile, "\t\t%d\r\n", 1 );
if ( HasItemFlag( cnt, MEDICAL_SPLINT ) ) FilePrintf( hFile, "\t\t%d\r\n", 1 );
- if ( HasItemFlag( cnt, FIREEXTINGUISHER ) ) FilePrintf( hFile, "\t\t%d\r\n", 1 );
FilePrintf(hFile,"\t\t%d\r\n", Item[cnt].usRiotShieldStrength );
FilePrintf(hFile,"\t\t%d\r\n", Item[cnt].usRiotShieldGraphic );
diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp
index 550ff241..42be2ca7 100644
--- a/Utils/_ChineseText.cpp
+++ b/Utils/_ChineseText.cpp
@@ -8501,7 +8501,9 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|防|火|护|甲", //L"|R|e|s|i|s|t|a|n|t |t|o |F|i|r|e",
L"|管|理|能|力|增|益|器", //L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|间|谍|能|力|增|益|器", //L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
- L"|医|用|夹|板", //L"|M|e|d|i|c|a|l |S|p|l|i|n|t", TODO.Translate
+ L"|医|用|夹|板", //L"|M|e|d|i|c|a|l |S|p|l|i|n|t",
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49 TODO.Translate
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8554,7 +8556,9 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \n可以降低%i%%的火焰伤害。", //L"\n \nThis armor lowers fire damage by %i%%.",
L"\n \n这个工具可以\n提高%i%%的管理工作的效率。", //L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \n这个工具可以\n提高%i%%的间谍能力。", //L"\n \nThis item improves your hacking skills by %i%%.",
- L"\n \n一旦应用, 这个物品可以提高对你的手臂\n或者腿部重伤的治疗速率。", //L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.", TODO.Translate
+ L"\n \n一旦应用, 这个物品可以提高对你的手臂\n或者腿部重伤的治疗速率。", //L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.",
+ L"\n \nThis ammo can extinguish fire.", // 49 TODO.Translate
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=
diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp
index b08f0540..5690a5b7 100644
--- a/Utils/_DutchText.cpp
+++ b/Utils/_DutchText.cpp
@@ -8504,6 +8504,8 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
L"|M|e|d|i|c|a|l |S|p|l|i|n|t", // TODO.Translate
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49 TODO.Translate
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8557,6 +8559,8 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \nThis item improves your hacking skills by %i%%.",
L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.", // TODO.Translate
+ L"\n \nThis ammo can extinguish fire.", // 49 TODO.Translate
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=
diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp
index 70919308..308dc41b 100644
--- a/Utils/_EnglishText.cpp
+++ b/Utils/_EnglishText.cpp
@@ -8502,6 +8502,8 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
L"|M|e|d|i|c|a|l |S|p|l|i|n|t",
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8555,6 +8557,8 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \nThis item improves your hacking skills by %i%%.",
L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.",
+ L"\n \nThis ammo can extinguish fire.", // 49
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=
diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp
index 92eecfb5..72d64c7a 100644
--- a/Utils/_FrenchText.cpp
+++ b/Utils/_FrenchText.cpp
@@ -8491,6 +8491,8 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
L"|M|e|d|i|c|a|l |S|p|l|i|n|t", // TODO.Translate
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49 TODO.Translate
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8544,6 +8546,8 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \nThis item improves your hacking skills by %i%%.",
L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.", // TODO.Translate
+ L"\n \nThis ammo can extinguish fire.", // 49 TODO.Translate
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=
diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp
index 103ad090..c87ce249 100644
--- a/Utils/_GermanText.cpp
+++ b/Utils/_GermanText.cpp
@@ -8346,6 +8346,8 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
L"|M|e|d|i|c|a|l |S|p|l|i|n|t", // TODO.Translate
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49 TODO.Translate
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8399,6 +8401,8 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \nThis item improves your hacking skills by %i%%.",
L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.", // TODO.Translate
+ L"\n \nThis ammo can extinguish fire.", // 49 TODO.Translate
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=
diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp
index dc2b9e14..c4d9c224 100644
--- a/Utils/_ItalianText.cpp
+++ b/Utils/_ItalianText.cpp
@@ -8494,6 +8494,8 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
L"|M|e|d|i|c|a|l |S|p|l|i|n|t", // TODO.Translate
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49 TODO.Translate
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8547,6 +8549,8 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \nThis item improves your hacking skills by %i%%.",
L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.", // TODO.Translate
+ L"\n \nThis ammo can extinguish fire.", // 49 TODO.Translate
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=
diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp
index 189c1122..c41cc3fe 100644
--- a/Utils/_PolishText.cpp
+++ b/Utils/_PolishText.cpp
@@ -8506,6 +8506,8 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
L"|M|e|d|i|c|a|l |S|p|l|i|n|t", // TODO.Translate
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49 TODO.Translate
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8559,6 +8561,8 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \nThis item improves your hacking skills by %i%%.",
L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.", // TODO.Translate
+ L"\n \nThis ammo can extinguish fire.", // 49 TODO.Translate
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=
diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp
index 1a455181..9f01d442 100644
--- a/Utils/_RussianText.cpp
+++ b/Utils/_RussianText.cpp
@@ -8502,6 +8502,8 @@ STR16 szUDBGenSecondaryStatsTooltipText[]=
L"|A|d|m|i|n|i|s|t|r|a|t|i|o|n |M|o|d|i|f|i|e|r",
L"|H|a|c|k|i|n|g |M|o|d|i|f|i|e|r",
L"|M|e|d|i|c|a|l |S|p|l|i|n|t", // TODO.Translate
+ L"|F|i|r|e |R|e|t|a|r|d|a|n|t |A|m|m|o", // 49 TODO.Translate
+ L"|I|n|c|e|n|d|i|a|r|y |A|m|m|o",
};
STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
@@ -8555,6 +8557,8 @@ STR16 szUDBGenSecondaryStatsExplanationsTooltipText[]=
L"\n \nThis item makes you more effective at\nadministrative work by %i%%.",
L"\n \nThis item improves your hacking skills by %i%%.",
L"\n \nOnce applied, this item increases the healing\nspeed of severe wounds to either your arms or legs.", // TODO.Translate
+ L"\n \nThis ammo can extinguish fire.", // 49 TODO.Translate
+ L"\n \nThis ammo can cause fire.",
};
STR16 szUDBAdvStatsTooltipText[]=