mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
- Tank have superior surrender strength, making it much harder to get the enemy to surrender when he has tanks
Overheating: - OVERHEATING_DISPLAY_JAMPERCENTAGE controls wether the temperature bar shows temperature/jam threshold(true) or temperature/damage threshold (false) - OVERHEATING_TEMPERATURE_GLOBAL_MODIFIER is obsolete and this removed, as the same effect can be achieved by OVERHEATING_TEMPERATURE_PISTOL_gunclass git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6531 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+1
-1
@@ -1487,9 +1487,9 @@ void LoadGameExternalOptions()
|
||||
// Flugente: These settings control the behavior of Weapon Overheating, its severity, and its display.
|
||||
gGameExternalOptions.fWeaponOverheating = iniReader.ReadBoolean("Tactical Weapon Overheating Settings","OVERHEATING",FALSE);
|
||||
gGameExternalOptions.fDisplayOverheatThermometer = iniReader.ReadBoolean("Tactical Weapon Overheating Settings","OVERHEATING_DISPLAY_THERMOMETER",TRUE);
|
||||
gGameExternalOptions.fDisplayOverheatJamPercentage = iniReader.ReadBoolean("Tactical Weapon Overheating Settings","OVERHEATING_DISPLAY_JAMPERCENTAGE",TRUE);
|
||||
gGameExternalOptions.ubOverheatThermometerRedOffset = iniReader.ReadInteger("Tactical Weapon Overheating Settings","OVERHEATING_DISPLAY_THERMOMETER_RED_OFFSET", 100, 0, 255);
|
||||
gGameExternalOptions.iCooldownModificatorLonelyBarrel = iniReader.ReadFloat ("Tactical Weapon Overheating Settings","OVERHEATING_COOLDOWN_MODIFICATOR_LONELYBARREL", 1.15f, 1.0f, 10.0f);
|
||||
gGameExternalOptions.iOverheatTemperatureGlobalModfier = iniReader.ReadFloat ("Tactical Weapon Overheating Settings","OVERHEATING_TEMPERATURE_GLOBAL_MODIFIER", 1.0f, 0.1f, 10.0f);
|
||||
|
||||
#ifdef ENABLE_ZOMBIES
|
||||
//################# Tactical Zombie Settings ##################
|
||||
|
||||
+1
-1
@@ -1215,9 +1215,9 @@ typedef struct
|
||||
// Flugente: Weapon Overheating
|
||||
BOOLEAN fWeaponOverheating; // Should weapons overheat, thus increasing the chance of malfunction?
|
||||
BOOLEAN fDisplayOverheatThermometer; // Should a 'thermometer' for guns and replacable barrels be displayed?
|
||||
BOOLEAN fDisplayOverheatJamPercentage; // Should we display temperature/jam threshold (true) or temperature/damage threshold (false)?
|
||||
UINT8 ubOverheatThermometerRedOffset; // amount of red colour while temperature is below threshold
|
||||
FLOAT iCooldownModificatorLonelyBarrel; // Cooldown modificator for barrels left alone in the landscape ;-)
|
||||
FLOAT iOverheatTemperatureGlobalModfier; // a global modifier to the single shot temperature value, if one feels that all values should be lower/higher
|
||||
|
||||
// Flugente: Weapon Mounting
|
||||
BOOLEAN fWeaponResting; // Should it be possible to rest your weapon on structures in crouched position?
|
||||
|
||||
@@ -11577,7 +11577,7 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject )
|
||||
sTop = gItemDescAdvRegions[cnt-sFirstLine][1].sTop;
|
||||
sHeight = gItemDescAdvRegions[cnt-sFirstLine][1].sBottom - sTop;
|
||||
|
||||
iFloatModifier[0] = Weapon[ gpItemDescObject->usItem ].usOverheatingSingleShotTemperature * gGameExternalOptions.iOverheatTemperatureGlobalModfier;
|
||||
iFloatModifier[0] = Weapon[ gpItemDescObject->usItem ].usOverheatingSingleShotTemperature;
|
||||
if ( Item[gpItemDescObject->usItem].usItemClass & IC_GUN )
|
||||
iFloatModifier[0] *= gItemSettings.fOverheatTemperatureModifierGun[ Weapon[ gpItemDescObject->usItem ].ubWeaponType ];
|
||||
else if ( Item[gpItemDescObject->usItem].usItemClass & IC_LAUNCHER )
|
||||
|
||||
@@ -3918,7 +3918,7 @@ void INVRenderItem( UINT32 uiBuffer, SOLDIERTYPE * pSoldier, OBJECTTYPE *pObjec
|
||||
if ( pSoldier )
|
||||
pObjShown = pSoldier->GetUsedWeapon(pObject);
|
||||
|
||||
FLOAT overheatjampercentage = GetGunOverheatJamPercentage( pObjShown );
|
||||
FLOAT overheatjampercentage = GetGunOverheatDisplayPercentage( pObjShown );
|
||||
|
||||
UINT32 red, green, blue;
|
||||
UINT8 TemperatureStringNum = GetTemperatureString( overheatjampercentage, &red, &green, &blue );
|
||||
@@ -6750,7 +6750,8 @@ void RenderItemDescriptionBox( )
|
||||
iter != (*gpItemDescObject)[gubItemDescStatusIndex]->attachments.end(); ++iter, ++cnt) {
|
||||
|
||||
//Madd: again, only do this if the slot isn't hidden
|
||||
if( iter->exists() && gItemDescAttachmentsXY[cnt].sHeight > 0 && gItemDescAttachmentsXY[cnt].sWidth > 0 ){
|
||||
if( iter->exists() && gItemDescAttachmentsXY[cnt].sHeight > 0 && gItemDescAttachmentsXY[cnt].sWidth > 0 )
|
||||
{
|
||||
sCenX = gsInvDescX + gItemDescAttachmentsXY[cnt].sX;
|
||||
sCenY = gsInvDescY + gItemDescAttachmentsXY[cnt].sY;
|
||||
INVRenderItem( guiSAVEBUFFER, NULL, gpItemDescObject, sCenX, sCenY, gItemDescAttachmentsXY[cnt].sWidth, gItemDescAttachmentsXY[cnt].sHeight, DIRTYLEVEL2, NULL, (UINT8)(RENDER_ITEM_ATTACHMENT1 + cnt), FALSE, 0, gubItemDescStatusIndex );
|
||||
@@ -6759,9 +6760,9 @@ void RenderItemDescriptionBox( )
|
||||
DrawItemUIBarEx( gpItemDescObject, (UINT8)(DRAW_ITEM_STATUS_ATTACHMENT1 + cnt), sCenX, sCenY, ITEM_BAR_WIDTH, ITEM_BAR_HEIGHT, Get16BPPColor( STATUS_BAR ), Get16BPPColor( STATUS_BAR_SHADOW ), TRUE , guiSAVEBUFFER, gubItemDescStatusIndex );
|
||||
|
||||
// Flugente: overheating
|
||||
if ( gGameExternalOptions.fWeaponOverheating && ( Item[ (iter)->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) || Item[ (iter)->usItem ].barrel == TRUE) ) // Flugente FTW 1.1
|
||||
if ( gGameExternalOptions.fWeaponOverheating && ( Item[ (iter)->usItem ].usItemClass & (IC_GUN|IC_LAUNCHER) || Item[ (iter)->usItem ].barrel == TRUE) ) // Flugente
|
||||
{
|
||||
FLOAT overheatjampercentage = GetGunOverheatJamPercentage( &(*iter));
|
||||
FLOAT overheatjampercentage = GetGunOverheatDisplayPercentage( &(*iter));
|
||||
|
||||
UINT32 red, green, blue;
|
||||
UINT8 TemperatureStringNum = GetTemperatureString( overheatjampercentage, &red, &green, &blue );
|
||||
@@ -6940,7 +6941,7 @@ void RenderItemDescriptionBox( )
|
||||
// Record length
|
||||
INT16 indent = StringPixLength( gTemperatureDesc[0], ITEMDESC_FONT );
|
||||
|
||||
FLOAT overheatjampercentage = GetGunOverheatJamPercentage( gpItemDescObject);
|
||||
FLOAT overheatjampercentage = GetGunOverheatDisplayPercentage( gpItemDescObject);
|
||||
|
||||
UINT32 red, green, blue;
|
||||
UINT8 TemperatureStringNum = GetTemperatureString( overheatjampercentage, &red, &green, &blue );
|
||||
|
||||
@@ -15749,6 +15749,10 @@ UINT32 SOLDIERTYPE::GetSurrenderStrength()
|
||||
else if ( this->ubSoldierClass == SOLDIER_CLASS_ADMINISTRATOR || this->ubSoldierClass == SOLDIER_CLASS_GREEN_MILITIA )
|
||||
value *= 0.75f;
|
||||
|
||||
// tanks won't surrender that easy
|
||||
if ( TANK(this) )
|
||||
value *= 10;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
+11
-5
@@ -1452,7 +1452,7 @@ BOOLEAN OKFireWeapon( SOLDIERTYPE *pSoldier )
|
||||
}
|
||||
|
||||
|
||||
// Flugente FTW 1: Get percentage: temperature/damagethreshold
|
||||
// Flugente: Get percentage: temperature/damagethreshold
|
||||
FLOAT GetGunOverheatDamagePercentage( FLOAT usTemperature, UINT16 usIndx )
|
||||
{
|
||||
FLOAT damagethreshold = Weapon[Item[ usIndx ].ubClassIndex].usOverheatingDamageThreshold;
|
||||
@@ -1465,7 +1465,7 @@ FLOAT GetGunOverheatDamagePercentage( FLOAT usTemperature, UINT16 usIndx )
|
||||
return usTemperature/ damagethreshold ;
|
||||
}
|
||||
|
||||
// Flugente FTW 1: Get percentage: temperature/jamthreshold
|
||||
// Flugente: Get percentage: temperature/jamthreshold
|
||||
FLOAT GetGunOverheatJamPercentage( FLOAT usTemperature, UINT16 usIndx )
|
||||
{
|
||||
FLOAT jamthreshold = Weapon[Item[ usIndx ].ubClassIndex].usOverheatingJamThreshold;
|
||||
@@ -12159,9 +12159,6 @@ FLOAT GetSingleShotTemperature( OBJECTTYPE *pObj )
|
||||
modificator += AmmoTypes[(*pObj)[0]->data.gun.ubGunAmmoType].temperatureModificator;
|
||||
|
||||
singleshottemperature *= modificator;
|
||||
|
||||
// multiply again for global modifer
|
||||
singleshottemperature *= gGameExternalOptions.iOverheatTemperatureGlobalModfier;
|
||||
}
|
||||
|
||||
return singleshottemperature;
|
||||
@@ -12193,6 +12190,15 @@ FLOAT GetGunOverheatJamPercentage( OBJECTTYPE * pObj )
|
||||
return temperature/ jamthreshold ;
|
||||
}
|
||||
|
||||
// Flugente: Get displyed overheat percentage - either GetGunOverheatDamagePercentage or GetGunOverheatJamPercentage
|
||||
FLOAT GetGunOverheatDisplayPercentage( OBJECTTYPE * pObj )
|
||||
{
|
||||
if ( !gGameExternalOptions.fDisplayOverheatJamPercentage )
|
||||
return GetGunOverheatDamagePercentage(pObj);
|
||||
|
||||
return GetGunOverheatJamPercentage(pObj);
|
||||
}
|
||||
|
||||
FLOAT GetOverheatJamThresholdModifier( OBJECTTYPE *pObj )
|
||||
{
|
||||
// determine modificator according to attachments
|
||||
|
||||
+3
-2
@@ -486,8 +486,8 @@ extern void GetTargetWorldPositions( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo,
|
||||
|
||||
extern BOOLEAN OKFireWeapon( SOLDIERTYPE *pSoldier );
|
||||
extern BOOLEAN CheckForGunJam( SOLDIERTYPE * pSoldier );
|
||||
extern FLOAT GetGunOverheatDamagePercentage( FLOAT usTemperature, UINT16 usIndx ); // Flugente FTW 1: Get percentage: temperature/damagethreshold
|
||||
extern FLOAT GetGunOverheatJamPercentage( FLOAT usTemperature, UINT16 usIndx ); // Flugente FTW 1: Get percentage: temperature/jamthreshold
|
||||
extern FLOAT GetGunOverheatDamagePercentage( FLOAT usTemperature, UINT16 usIndx ); // Flugente: Get percentage: temperature/damagethreshold
|
||||
extern FLOAT GetGunOverheatJamPercentage( FLOAT usTemperature, UINT16 usIndx ); // Flugente: Get percentage: temperature/jamthreshold
|
||||
|
||||
extern INT32 CalcMaxTossRange( SOLDIERTYPE * pSoldier, UINT16 usItem, BOOLEAN fArmed );
|
||||
extern UINT32 CalcThrownChanceToHit(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 ubAimTime, UINT8 ubAimPos );
|
||||
@@ -533,6 +533,7 @@ FLOAT GetTemperatureModifier( OBJECTTYPE *pObj );
|
||||
FLOAT GetSingleShotTemperature( OBJECTTYPE *pObj );
|
||||
FLOAT GetGunOverheatDamagePercentage( OBJECTTYPE * pObj ); // Flugente: Get percentage: temperature/damagethreshold
|
||||
FLOAT GetGunOverheatJamPercentage( OBJECTTYPE * pObj ); // Flugente: Get percentage: temperature/jamthreshold
|
||||
FLOAT GetGunOverheatDisplayPercentage( OBJECTTYPE * pObj ); // Flugente: Get displyed overheat percentage - either GetGunOverheatDamagePercentage or GetGunOverheatJamPercentage
|
||||
FLOAT GetOverheatJamThresholdModifier( OBJECTTYPE *pObj );
|
||||
FLOAT GetOverheatJamThreshold( OBJECTTYPE *pObj );
|
||||
FLOAT GetOverheatDamageThresholdModifier( OBJECTTYPE *pObj );
|
||||
|
||||
Reference in New Issue
Block a user