mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
Initial commit - SVN checkpoint to git branch
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#pragma optimize("",off)
|
||||
#ifdef PRECOMPILEDHEADERS
|
||||
#include "Tactical All.h"
|
||||
#else
|
||||
@@ -15,6 +16,7 @@
|
||||
#include "Random.h"
|
||||
#include "Shopkeeper Interface.h"
|
||||
#include "connect.h"
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
//forward declarations of common classes to eliminate includes
|
||||
@@ -1008,8 +1010,8 @@ UINT8 GetCurrentSuitabilityForItem( INT8 bArmsDealer, UINT16 usItemIndex, BOOLEA
|
||||
// WDS - Improve Tony's and Devin's inventory like BR's
|
||||
// Tony has the better stuff sooner (than Bobby R's)
|
||||
if (bArmsDealer >= 0) {
|
||||
ubMinCoolness += armsDealerInfo[bArmsDealer].addToCoolness;
|
||||
ubMaxCoolness += armsDealerInfo[bArmsDealer].addToCoolness;
|
||||
ubMinCoolness += armsDealerInfo[bArmsDealer].addToCoolness + RebelCommand::GetMerchantCoolnessBonus();
|
||||
ubMaxCoolness += armsDealerInfo[bArmsDealer].addToCoolness + RebelCommand::GetMerchantCoolnessBonus();
|
||||
ubMinCoolness = max( armsDealerInfo[bArmsDealer].minCoolness, min( 9, ubMinCoolness ) );
|
||||
// silversurfer: max coolness should never be lower than min coolness!
|
||||
//ubMaxCoolness = max( 2, min( armsDealerInfo[bArmsDealer].maxCoolness, ubMaxCoolness ) );
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#pragma optimize("",off)
|
||||
#ifdef PRECOMPILEDHEADERS
|
||||
#include "AI All.h"
|
||||
#include "DisplayCover.h"
|
||||
@@ -34,6 +35,7 @@
|
||||
#include "UI Cursors.h"
|
||||
#include "soldier profile type.h"
|
||||
#include "Interface Cursors.h" // added by Flugente for UICursorDefines
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
//forward declarations of common classes to eliminate includes
|
||||
@@ -759,7 +761,7 @@ void CalculateCoverFromSoldier( SOLDIERTYPE* pFromSoldier, const INT32& sTargetG
|
||||
{
|
||||
const UINT8& ubStance = animArr[i];
|
||||
|
||||
INT32 usAdjustedSight;
|
||||
INT32 usAdjustedSight = 0;
|
||||
|
||||
if (pToSoldier == NULL) {
|
||||
usAdjustedSight = usSightLimit;
|
||||
@@ -767,6 +769,8 @@ void CalculateCoverFromSoldier( SOLDIERTYPE* pFromSoldier, const INT32& sTargetG
|
||||
usAdjustedSight = usSightLimit + usSightLimit * GetSightAdjustment( pToSoldier, GetStealth(pToSoldier), GetSightAdjustmentBasedOnLBE(pToSoldier), sTargetGridNo, (INT8) fRoof, ubStance ) /100;
|
||||
}
|
||||
|
||||
RebelCommand::ApplyVisionModifier(pFromSoldier, usAdjustedSight);
|
||||
|
||||
if ( SoldierToVirtualSoldierLineOfSightTest( pFromSoldier, sTargetGridNo, (INT8) fRoof, ubStance, FALSE, usAdjustedSight ) != 0 )
|
||||
{
|
||||
if ( bOverlayType > i ) bOverlayType = i;
|
||||
@@ -784,7 +788,7 @@ static void CalculateCoverFromEnemySoldier(SOLDIERTYPE* pFromSoldier, const INT3
|
||||
{
|
||||
const UINT8& ubStance = animArr[i];
|
||||
|
||||
INT32 usAdjustedSight;
|
||||
INT32 usAdjustedSight = 0;
|
||||
|
||||
if (pToSoldier == nullptr) {
|
||||
usAdjustedSight = usSightLimit;
|
||||
@@ -793,6 +797,8 @@ static void CalculateCoverFromEnemySoldier(SOLDIERTYPE* pFromSoldier, const INT3
|
||||
usAdjustedSight = usSightLimit + usSightLimit * GetSightAdjustment(pToSoldier, ToSoldierStealth, ToSoldierLBeSightAdjustment, sTargetGridNo, (INT8)fRoof, ubStance) / 100;
|
||||
}
|
||||
|
||||
RebelCommand::ApplyVisionModifier(pFromSoldier, usAdjustedSight);
|
||||
|
||||
if (SoldierToVirtualSoldierLineOfSightTest(pFromSoldier, sTargetGridNo, (INT8)fRoof, ubStance, FALSE, usAdjustedSight) != 0)
|
||||
{
|
||||
if (bOverlayType > i) bOverlayType = i;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "message.h"
|
||||
#include "Tactical Save.h" // added by Flugente
|
||||
#include "Soldier macros.h" // added by Flugente
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
extern WorldItems gAllWorldItems;
|
||||
|
||||
@@ -276,6 +277,10 @@ void GenerateRandomEquipment( SOLDIERCREATE_STRUCT *pp, INT8 bSoldierClass, INT8
|
||||
|
||||
// SANDRO - new behaviour of progress setting
|
||||
bEquipmentModifier = bEquipmentRating + ( ( CalcDifficultyModifier( bSoldierClass ) / 10 ) - 5 );
|
||||
|
||||
if (bSoldierClass >= SOLDIER_CLASS_ADMINISTRATOR && bSoldierClass <= SOLDIER_CLASS_ARMY)
|
||||
bEquipmentModifier += RebelCommand::GetEnemyEquipmentCoolnessModifier();
|
||||
|
||||
switch( gGameOptions.ubProgressSpeedOfItemsChoices )
|
||||
{
|
||||
case ITEM_PROGRESS_VERY_SLOW:
|
||||
@@ -943,6 +948,8 @@ void ChooseWeaponForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bWeaponC
|
||||
// don't allow it to be lower than marksmanship, we don't want it to affect their chances of hitting
|
||||
bStatus = (INT8)max( pp->bMarksmanship, bStatus );
|
||||
|
||||
// ... unless we've done something to ruin their gear
|
||||
bStatus = RebelCommand::GetEnemyEquipmentStatusModifier(bStatus);
|
||||
|
||||
CreateItem( usGunIndex, bStatus, &(pp->Inv[ HANDPOS ]) );
|
||||
pp->Inv[ HANDPOS ].fFlags |= OBJECT_UNDROPPABLE;
|
||||
@@ -1457,6 +1464,7 @@ void ChooseArmourForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bHelmetC
|
||||
//INVTYPE *pItem;
|
||||
//UINT16 usRandom;
|
||||
UINT16 usItem = 0, usHelmetItem = 0, usVestItem = 0, usLeggingsItem = 0;
|
||||
INT8 bStatus = 0;
|
||||
//UINT16 usNumMatches;
|
||||
//INT8 bOrigVestClass = bVestClass;
|
||||
|
||||
@@ -1494,7 +1502,8 @@ void ChooseArmourForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bHelmetC
|
||||
if(!gGameExternalOptions.fSoldiersWearAnyArmour) usHelmetItem = PickARandomItem(HELMET, pp->ubSoldierClass, bHelmetClass );
|
||||
if ( usHelmetItem > 0 && Item[usHelmetItem].usItemClass == IC_ARMOUR && !(pp->Inv[ HELMETPOS ].fFlags & OBJECT_NO_OVERWRITE) && Armour[ Item[usHelmetItem].ubClassIndex ].ubArmourClass == ARMOURCLASS_HELMET )
|
||||
{
|
||||
CreateItem( usHelmetItem, (INT8)(70+Random(31)), &(pp->Inv[ HELMETPOS ]) );
|
||||
bStatus = RebelCommand::GetEnemyEquipmentStatusModifier(70 + Random(31));
|
||||
CreateItem( usHelmetItem, bStatus, &(pp->Inv[ HELMETPOS ]) );
|
||||
pp->Inv[ HELMETPOS ].fFlags |= OBJECT_UNDROPPABLE;
|
||||
|
||||
// roll to see if he gets an attachment, too. Higher chance the higher his entitled helmet class is
|
||||
@@ -1503,7 +1512,8 @@ void ChooseArmourForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bHelmetC
|
||||
UINT16 usAttachment = PickARandomAttachment(ARMOURATTACHMENT, pp->ubSoldierClass, usHelmetItem, bHelmetClass, FALSE);
|
||||
if ( usAttachment > 0 )
|
||||
{
|
||||
CreateItem( usAttachment, (INT8)(70+Random(31)), &gTempObject );
|
||||
bStatus = RebelCommand::GetEnemyEquipmentStatusModifier(70 + Random(31));
|
||||
CreateItem( usAttachment, bStatus, &gTempObject );
|
||||
gTempObject.fFlags |= OBJECT_UNDROPPABLE;
|
||||
pp->Inv[ HELMETPOS ].AttachObject( NULL, &gTempObject, FALSE );
|
||||
}
|
||||
@@ -1567,7 +1577,8 @@ void ChooseArmourForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bHelmetC
|
||||
if(!gGameExternalOptions.fSoldiersWearAnyArmour) usVestItem = PickARandomItem(VEST, pp->ubSoldierClass, bVestClass );
|
||||
if ( usVestItem > 0 && Item[usVestItem].usItemClass == IC_ARMOUR && !(pp->Inv[ VESTPOS ].fFlags & OBJECT_NO_OVERWRITE) && Armour[ Item[usVestItem].ubClassIndex ].ubArmourClass == ARMOURCLASS_VEST )
|
||||
{
|
||||
CreateItem( usVestItem, (INT8)(70+Random(31)), &(pp->Inv[ VESTPOS ]) );
|
||||
bStatus = RebelCommand::GetEnemyEquipmentStatusModifier(70 + Random(31));
|
||||
CreateItem( usVestItem, bStatus, &(pp->Inv[ VESTPOS ]) );
|
||||
pp->Inv[ VESTPOS ].fFlags |= OBJECT_UNDROPPABLE;
|
||||
|
||||
// roll to see if he gets a CERAMIC PLATES, too. Higher chance the higher his entitled vest class is
|
||||
@@ -1576,7 +1587,8 @@ void ChooseArmourForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bHelmetC
|
||||
UINT16 usAttachment = PickARandomAttachment(ARMOURATTACHMENT, pp->ubSoldierClass, usVestItem, bVestClass, FALSE);
|
||||
if ( usAttachment > 0 )
|
||||
{
|
||||
CreateItem( usAttachment, (INT8)(70+Random(31)), &gTempObject );
|
||||
bStatus = RebelCommand::GetEnemyEquipmentStatusModifier(70 + Random(31));
|
||||
CreateItem( usAttachment, bStatus, &gTempObject );
|
||||
gTempObject.fFlags |= OBJECT_UNDROPPABLE;
|
||||
pp->Inv[ VESTPOS ].AttachObject( NULL, &gTempObject, FALSE );
|
||||
}
|
||||
@@ -1661,7 +1673,8 @@ void ChooseArmourForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bHelmetC
|
||||
if(!gGameExternalOptions.fSoldiersWearAnyArmour) usLeggingsItem = PickARandomItem(LEGS, pp->ubSoldierClass, bLeggingsClass );
|
||||
if ( usLeggingsItem > 0 && Item[usLeggingsItem].usItemClass == IC_ARMOUR && !(pp->Inv[ LEGPOS ].fFlags & OBJECT_NO_OVERWRITE) && Armour[ Item[usLeggingsItem].ubClassIndex ].ubArmourClass == ARMOURCLASS_LEGGINGS )
|
||||
{
|
||||
CreateItem( usLeggingsItem, (INT8)(70+Random(31)), &(pp->Inv[ LEGPOS ]) );
|
||||
bStatus = RebelCommand::GetEnemyEquipmentStatusModifier(70 + Random(31));
|
||||
CreateItem( usLeggingsItem, bStatus, &(pp->Inv[ LEGPOS ]) );
|
||||
pp->Inv[ LEGPOS ].fFlags |= OBJECT_UNDROPPABLE;
|
||||
|
||||
// roll to see if he gets an attachment, too. Higher chance the higher his entitled Leggings class is
|
||||
@@ -1670,7 +1683,8 @@ void ChooseArmourForSoldierCreateStruct( SOLDIERCREATE_STRUCT *pp, INT8 bHelmetC
|
||||
UINT16 usAttachment = PickARandomAttachment(ARMOURATTACHMENT, pp->ubSoldierClass, usLeggingsItem, bLeggingsClass, FALSE);
|
||||
if ( usAttachment > 0 )
|
||||
{
|
||||
CreateItem( usAttachment, (INT8)(70+Random(31)), &gTempObject );
|
||||
bStatus = RebelCommand::GetEnemyEquipmentStatusModifier(70 + Random(31));
|
||||
CreateItem( usAttachment, bStatus, &gTempObject );
|
||||
gTempObject.fFlags |= OBJECT_UNDROPPABLE;
|
||||
pp->Inv[ LEGPOS ].AttachObject( NULL, &gTempObject, FALSE);
|
||||
}
|
||||
|
||||
@@ -1837,6 +1837,8 @@ BOOLEAN TacticalCopySoldierFromCreateStruct( SOLDIERTYPE *pSoldier, SOLDIERCREAT
|
||||
RebelCommand::ApplyMilitiaBonuses(pSoldier);
|
||||
if ((SOLDIER_CLASS_ENEMY(pSoldier->ubSoldierClass) || pSoldier->ubSoldierClass == SOLDIER_CLASS_BANDIT))
|
||||
RebelCommand::ApplyEnemyPenalties(pSoldier);
|
||||
if (pCreateStruct->bTeam == ENEMY_TEAM && (ENEMYROBOT(pCreateStruct) || ARMED_VEHICLE(pCreateStruct)))
|
||||
RebelCommand::ApplyEnemyMechanicalUnitPenalties(pSoldier);
|
||||
|
||||
// Flugente: enemy roles
|
||||
if ( gGameExternalOptions.fEnemyRoles && gGameExternalOptions.fEnemyOfficers && SOLDIER_CLASS_ENEMY( pSoldier->ubSoldierClass ) )
|
||||
@@ -3223,6 +3225,8 @@ SOLDIERTYPE* TacticalCreateEnemyTank()
|
||||
// Flugente: why would a vehicle's armour depend on game progress? Always give them 100 HP
|
||||
pSoldier->stats.bLifeMax = 100;
|
||||
pSoldier->stats.bLife = pSoldier->stats.bLifeMax;
|
||||
|
||||
RebelCommand::ApplyEnemyMechanicalUnitPenalties(pSoldier);
|
||||
}
|
||||
|
||||
return( pSoldier );
|
||||
@@ -3263,6 +3267,8 @@ SOLDIERTYPE* TacticalCreateEnemyJeep( )
|
||||
// Flugente: why would a vehicle's armour depend on game progress? Always give them 100 HP
|
||||
pSoldier->stats.bLifeMax = 100;
|
||||
pSoldier->stats.bLife = pSoldier->stats.bLifeMax;
|
||||
|
||||
RebelCommand::ApplyEnemyMechanicalUnitPenalties(pSoldier);
|
||||
}
|
||||
|
||||
return(pSoldier);
|
||||
@@ -3303,6 +3309,8 @@ SOLDIERTYPE* TacticalCreateEnemyRobot()
|
||||
|
||||
pSoldier->stats.bLifeMax = 80;
|
||||
pSoldier->stats.bLife = pSoldier->stats.bLifeMax;
|
||||
|
||||
RebelCommand::ApplyEnemyMechanicalUnitPenalties(pSoldier);
|
||||
}
|
||||
|
||||
return(pSoldier);
|
||||
|
||||
Reference in New Issue
Block a user