mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
************************************************************
* Merged Source Code from Development Trunk: Revision 4063 * ************************************************************ - Source Code is merged from: https://81.169.133.124/source/ja2/branches/Wanne/JA2%201.13%20MP - This will be the Source for the Beta 2011 Test git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@4064 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+234
-36
@@ -88,10 +88,21 @@
|
||||
#include "Map Information.h"
|
||||
#include "Soldier Control.h"
|
||||
#include "DisplayCover.h"
|
||||
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
||||
#include "aiinternals.h"
|
||||
//#include "los.h"
|
||||
//#include "structure wrap.h"
|
||||
//#include "DisplayCover.h"
|
||||
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
||||
#endif
|
||||
|
||||
#include "teamturns.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// SANDRO - In this file, all APBPConstants[AP_CROUCH] and APBPConstants[AP_PRONE] were changed to GetAPsCrouch() and GetAPsProne()
|
||||
// On the bottom here, there are these functions made
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
//extern BOOLEAN gfDisplayFullCountRingBurst;
|
||||
extern UINT16 PickSoldierReadyAnimation( SOLDIERTYPE *pSoldier, BOOLEAN fEndReady );
|
||||
|
||||
@@ -231,6 +242,8 @@ INT16 gsTreeRevealYPos;
|
||||
|
||||
// taken out of header to remove multiple symbol definitions (jonathanl)
|
||||
BOOLEAN gfUICtHBar;
|
||||
// HEADROCK HAM 4: A new Struct to contain all CTH display data
|
||||
CTHDISPLAY gCTHDisplay;
|
||||
// HEADROCK HAM B1/2: Created an array to hold CTH of different bullets for Burst/Auto CTH Bar.
|
||||
UINT8 gbCtH[ 10 ];
|
||||
UINT8 gbCtHBurstCount;
|
||||
@@ -396,6 +409,10 @@ BOOLEAN gfUserTurnRegionActive = FALSE;
|
||||
BOOLEAN fRightButtonDown = FALSE;
|
||||
BOOLEAN fLeftButtonDown = FALSE;
|
||||
BOOLEAN fIgnoreLeftUp = FALSE;
|
||||
///*** dddd
|
||||
BOOLEAN fMiddleButtonDown = FALSE;
|
||||
BOOLEAN fX1ButtonDown = FALSE;
|
||||
BOOLEAN fX2ButtonDown = FALSE;
|
||||
|
||||
BOOLEAN gUITargetReady = FALSE;
|
||||
BOOLEAN gUITargetShotWaiting = FALSE;
|
||||
@@ -477,6 +494,54 @@ void SetUIMouseCursor( );
|
||||
void ClearEvent( UI_EVENT *pUIEvent );
|
||||
UINT8 GetAdjustedAnimHeight( UINT8 ubAnimHeight, INT8 bChange );
|
||||
|
||||
|
||||
//-------------------------Legion 2 okno-----------------------------------------------------------
|
||||
void GetMercOknoDirection( UINT8 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp )
|
||||
{
|
||||
INT8 bNewDirection;
|
||||
SOLDIERTYPE *pSoldier;
|
||||
|
||||
*pfGoDown = FALSE;
|
||||
*pfGoUp = FALSE;
|
||||
|
||||
if ( !GetSoldier( &pSoldier, ubSoldierID ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( pSoldier->pathing.bLevel == 0 && ( pSoldier->ubDirection == NORTH || pSoldier->ubDirection == EAST || pSoldier->ubDirection == SOUTH || pSoldier->ubDirection == WEST ))
|
||||
{
|
||||
if ( FindHeigherLevelOkno( pSoldier, pSoldier->sGridNo, pSoldier->ubDirection, &bNewDirection ) )
|
||||
{
|
||||
*pfGoUp = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GetMercFenceDirection( UINT8 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp )
|
||||
{
|
||||
INT8 bNewDirection;
|
||||
SOLDIERTYPE *pSoldier;
|
||||
|
||||
*pfGoDown = FALSE;
|
||||
*pfGoUp = FALSE;
|
||||
|
||||
if ( !GetSoldier( &pSoldier, ubSoldierID ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( pSoldier->pathing.bLevel == 0 )
|
||||
{
|
||||
if ( FindHeigherLevelFence( pSoldier, pSoldier->sGridNo, pSoldier->ubDirection, &bNewDirection ) )
|
||||
{
|
||||
*pfGoUp = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
void PreventFromTheFreezingBug(SOLDIERTYPE* pSoldier)
|
||||
{
|
||||
gfUIInterfaceSetBusy = FALSE;
|
||||
@@ -1207,6 +1272,59 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
|
||||
SaveGame( SAVE__END_TURN_NUM, L"End Turn Auto Save" );
|
||||
}
|
||||
|
||||
////ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ
|
||||
if ( (gTacticalStatus.uiFlags & TURNBASED) && (gTacticalStatus.uiFlags & INCOMBAT ) )
|
||||
{
|
||||
//UINT32 uiStartTime, uiEndTime;
|
||||
//uiStartTime = GetJA2Clock();
|
||||
|
||||
|
||||
memset( gubWorldTileInLight, FALSE, sizeof( gubWorldTileInLight ) );
|
||||
memset( gubIsCorpseThere, FALSE, sizeof( gubIsCorpseThere ) );
|
||||
memset( gubMerkCanSeeThisTile, FALSE, sizeof( gubMerkCanSeeThisTile ) );
|
||||
//ðàçâåðòêà öèêëà. ïðè èçìåíåíèè WORLD_MAX íà äð.çíà÷. íåîáõîäèìî áóäåò ïîä÷èùàòü õâîñòû! èáî îïàñíûé êîä!!! ;)
|
||||
for(INT32 i=0; i<WORLD_MAX ;i+=4)
|
||||
{
|
||||
gubWorldTileInLight[i] = InLightAtNight(i, gpWorldLevelData[ i ].sHeight);
|
||||
gubIsCorpseThere[i] = IsCorpseAtGridNo( i, gpWorldLevelData[ i ].sHeight );
|
||||
gubWorldTileInLight[i+1] = InLightAtNight(i+1, gpWorldLevelData[ i+1 ].sHeight);
|
||||
gubIsCorpseThere[i+1] = IsCorpseAtGridNo( i+1, gpWorldLevelData[ i+1 ].sHeight );
|
||||
gubWorldTileInLight[i+2] = InLightAtNight(i+2, gpWorldLevelData[ i+2 ].sHeight);
|
||||
gubIsCorpseThere[i+2] = IsCorpseAtGridNo( i+2, gpWorldLevelData[ i+2 ].sHeight );
|
||||
gubWorldTileInLight[i+3] = InLightAtNight(i+3, gpWorldLevelData[ i+3 ].sHeight);
|
||||
gubIsCorpseThere[i+3] = IsCorpseAtGridNo( i+3, gpWorldLevelData[ i+3 ].sHeight );
|
||||
}
|
||||
|
||||
INT32 tcnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
SOLDIERTYPE *tS;
|
||||
|
||||
INT16 sXOffset, sYOffset;
|
||||
INT32 sGridNo;UINT16 usSightLimit=0;
|
||||
|
||||
for ( tS = MercPtrs[ tcnt ]; tcnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; tcnt++,tS++ )
|
||||
if ( tS->stats.bLife >= OKLIFE && tS->sGridNo != NOWHERE && tS->bInSector )
|
||||
{
|
||||
//loop through all the gridnos that we are interested in
|
||||
for (sYOffset = -30; sYOffset <= 30; sYOffset++)
|
||||
for (sXOffset = -30; sXOffset <= 30; sXOffset++)
|
||||
{
|
||||
sGridNo = tS->sGridNo + sXOffset + (MAXCOL * sYOffset);
|
||||
if ( sGridNo <= 0 || sGridNo >= WORLD_MAX ) continue;
|
||||
//usSightLimit = tS->GetMaxDistanceVisible(sGridNo, FALSE, CALC_FROM_WANTED_DIR);
|
||||
if(gubMerkCanSeeThisTile[sGridNo]==0)
|
||||
gubMerkCanSeeThisTile[sGridNo]=//SoldierToVirtualSoldierLineOfSightTest( tS, sGridNo, FALSE, ANIM_STAND, TRUE, usSightLimit );
|
||||
SoldierToVirtualSoldierLineOfSightTest( tS, sGridNo, tS->pathing.bLevel,
|
||||
ANIM_STAND, TRUE, CALC_FROM_WANTED_DIR);
|
||||
|
||||
}//fo
|
||||
}//if
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//uiEndTime = GetJA2Clock();
|
||||
//ScreenMsg( 144,0, L"t=%d",uiEndTime - uiStartTime );
|
||||
//
|
||||
}
|
||||
//ddd îïòèìèçàöèÿ äëÿ õîäà äðàíèêîâ**
|
||||
|
||||
// End our turn!
|
||||
if (is_server || !is_client)
|
||||
{
|
||||
@@ -2100,7 +2218,7 @@ UINT32 UIHandleMCycleMovement( UI_EVENT *pUIEvent )
|
||||
else if ( pSoldier->usUIMovementMode == SWATTING )
|
||||
{
|
||||
pSoldier->usUIMovementMode = CRAWLING;
|
||||
if ( IsValidMovementMode( pSoldier, CRAWLING ) )
|
||||
if ( IsValidMovementMode( pSoldier, CRAWLING ) && IsValidStance(pSoldier, ANIM_PRONE) )
|
||||
{
|
||||
fGoodMode = TRUE;
|
||||
}
|
||||
@@ -2567,6 +2685,30 @@ void AttackRequesterCallback( UINT8 bExitValue )
|
||||
}
|
||||
}
|
||||
|
||||
// SANDRO - added function
|
||||
void SurgeryRequesterCallback( UINT8 bExitValue )
|
||||
{
|
||||
if( bExitValue == MSG_BOX_RETURN_YES )
|
||||
{
|
||||
//gpRequesterMerc->ubSurgeryApprovalMerc = gpRequesterTargetMerc->ubID;
|
||||
gTacticalStatus.ubLastRequesterSurgeryTargetID = gpRequesterTargetMerc->ubID;
|
||||
|
||||
UIHandleMercAttack( gpRequesterMerc , gpRequesterTargetMerc, gsRequesterGridNo );
|
||||
}
|
||||
else if( bExitValue == MSG_BOX_RETURN_NO )
|
||||
{
|
||||
gTacticalStatus.ubLastRequesterSurgeryTargetID = NOBODY;
|
||||
|
||||
if (!gpRequesterTargetMerc->bBleeding && gpRequesterTargetMerc->stats.bLife >= OKLIFE)
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ CANNOT_NO_NEED_FIRST_AID_STR ], gpRequesterTargetMerc->name );
|
||||
}
|
||||
else
|
||||
{
|
||||
UIHandleMercAttack( gpRequesterMerc , gpRequesterTargetMerc, gsRequesterGridNo );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UINT32 UIHandleCAMercShoot( UI_EVENT *pUIEvent )
|
||||
{
|
||||
@@ -2611,6 +2753,30 @@ UINT32 UIHandleCAMercShoot( UI_EVENT *pUIEvent )
|
||||
DoMessageBox( MSG_BOX_BASIC_STYLE, zStr, GAME_SCREEN, ( UINT8 )MSG_BOX_FLAG_YESNO, AttackRequesterCallback, NULL );
|
||||
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// SANDRO - Should we ask if we really want to do the surgery?
|
||||
else if (Item[ pSoldier->inv[ HANDPOS ].usItem ].medicalkit && (NUM_SKILL_TRAITS( pSoldier, DOCTOR_NT ) >= gSkillTraitValues.ubDONumberTraitsNeededForSurgery)
|
||||
&& (pTSoldier->bTeam == OUR_TEAM || pTSoldier->bTeam == MILITIA_TEAM)
|
||||
&& (IS_MERC_BODY_TYPE( pTSoldier ) || IS_CIV_BODY_TYPE( pTSoldier ))
|
||||
&& gGameOptions.fNewTraitSystem && pTSoldier->iHealableInjury >= 100
|
||||
&& pTSoldier->ubID != pSoldier->ubID && gTacticalStatus.ubLastRequesterSurgeryTargetID != pTSoldier->ubID )
|
||||
{
|
||||
CHAR16 zStr[200];
|
||||
|
||||
gpRequesterMerc = pSoldier;
|
||||
gpRequesterTargetMerc = pTSoldier;
|
||||
gsRequesterGridNo = usMapPos;
|
||||
|
||||
fDidRequester = TRUE;
|
||||
|
||||
if (pTSoldier->bBleeding)
|
||||
swprintf( zStr, New113Message[ MSG113_DO_WE_WANT_SURGERY_FIRST ], pTSoldier->name, (pTSoldier->iHealableInjury * (gSkillTraitValues.ubDOSurgeryHealPercentBase + gSkillTraitValues.ubDOSurgeryHealPercentOnTop * NUM_SKILL_TRAITS( pSoldier, DOCTOR_NT )) / 10000) );
|
||||
else
|
||||
swprintf( zStr, New113Message[ MSG113_DO_WE_WANT_SURGERY ], pTSoldier->name, (pTSoldier->iHealableInjury * (gSkillTraitValues.ubDOSurgeryHealPercentBase + gSkillTraitValues.ubDOSurgeryHealPercentOnTop * NUM_SKILL_TRAITS( pSoldier, DOCTOR_NT )) / 10000) );
|
||||
|
||||
DoMessageBox( MSG_BOX_BASIC_STYLE, zStr, GAME_SCREEN, ( UINT8 )MSG_BOX_FLAG_YESNO, SurgeryRequesterCallback, NULL );
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
|
||||
if ( !fDidRequester )
|
||||
@@ -3801,7 +3967,7 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags )
|
||||
{
|
||||
sActionGridNo = sIntTileGridNo;
|
||||
}
|
||||
CalcInteractiveObjectAPs( sIntTileGridNo, pStructure, &sAPCost, &sBPCost );
|
||||
CalcInteractiveObjectAPs( pSoldier, sIntTileGridNo, pStructure, &sAPCost, &sBPCost ); // SANDRO - added argument
|
||||
//sAPCost += UIPlotPath( pSoldier, sActionGridNo, NO_COPYROUTE, PLOT, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints);
|
||||
sAPCost += UIPlotPath( pSoldier, sActionGridNo, NO_COPYROUTE, fPlot, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints);
|
||||
|
||||
@@ -4033,7 +4199,23 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags )
|
||||
{
|
||||
sActionGridNo = sAdjustedGridNo;
|
||||
}
|
||||
sAPCost += APBPConstants[AP_STEAL_ITEM];
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// CHANGED BY SANDRO - REDUCE AP COST TO STEAL FOR MARTIAL ARTS AND HAND TO HAND NEW TRAITS
|
||||
if (MercPtrs[ gusUIFullTargetID ]->bCollapsed && gGameExternalOptions.fEnhancedCloseCombatSystem)
|
||||
{
|
||||
sAPCost += (GetBasicAPsToPickupItem( pSoldier )); // stealing from collapsed soldiers is treated differently
|
||||
}
|
||||
else if ((HAS_SKILL_TRAIT( pSoldier, MARTIAL_ARTS_NT )) && ( gGameOptions.fNewTraitSystem ))
|
||||
{
|
||||
sAPCost += max( 1, (INT16)((APBPConstants[AP_STEAL_ITEM] * (100 - gSkillTraitValues.ubMAReducedAPsToSteal * NUM_SKILL_TRAITS( pSoldier, MARTIAL_ARTS_NT ))/ 100) + 0.5));
|
||||
}
|
||||
else
|
||||
{
|
||||
sAPCost += APBPConstants[AP_STEAL_ITEM];
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CJC August 13 2002: take into account stance in AP prediction
|
||||
if (!(PTR_STANDING))
|
||||
{
|
||||
@@ -4097,12 +4279,12 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags )
|
||||
sAPCost += UIPlotPath( pSoldier, sActionGridNo, NO_COPYROUTE, fPlot, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints);
|
||||
if ( sAPCost != 0 )
|
||||
{
|
||||
sAPCost += APBPConstants[AP_PICKUP_ITEM];
|
||||
sAPCost += GetBasicAPsToPickupItem( pSoldier ); // SANDRO
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sAPCost += APBPConstants[AP_PICKUP_ITEM];
|
||||
sAPCost += GetBasicAPsToPickupItem( pSoldier ); // SANDRO
|
||||
}
|
||||
|
||||
if ( sActionGridNo != pSoldier->sGridNo )
|
||||
@@ -4145,19 +4327,21 @@ INT16 APsToTurnAround(SOLDIERTYPE *pSoldier, INT16 sAdjustedGridNo)
|
||||
{
|
||||
if ( gAnimControl[ pSoldier->usAnimState ].uiFlags & ( ANIM_BREATH | ANIM_OK_CHARGE_AP_FOR_TURN | ANIM_FIREREADY ) && !fInitalMove && !pSoldier->flags.fDontChargeTurningAPs )
|
||||
{
|
||||
// Which position has the soldier?
|
||||
switch( gAnimControl[ pSoldier->usAnimState ].ubEndHeight )
|
||||
{
|
||||
case ANIM_STAND:
|
||||
sAPCost += APBPConstants[AP_LOOK_STANDING];
|
||||
break;
|
||||
case ANIM_CROUCH:
|
||||
sAPCost += APBPConstants[AP_LOOK_CROUCHED];
|
||||
break;
|
||||
case ANIM_PRONE:
|
||||
sAPCost += APBPConstants[AP_LOOK_PRONE];
|
||||
break;
|
||||
}
|
||||
// SANDRO - hey, we have a function for this, why not to use it, huh?
|
||||
sAPCost += GetAPsToLook( pSoldier );
|
||||
//// Which position has the soldier?
|
||||
//switch( gAnimControl[ pSoldier->usAnimState ].ubEndHeight )
|
||||
//{
|
||||
//case ANIM_STAND:
|
||||
// sAPCost += APBPConstants[AP_LOOK_STANDING];
|
||||
// break;
|
||||
//case ANIM_CROUCH:
|
||||
// sAPCost += APBPConstants[AP_LOOK_CROUCHED];
|
||||
// break;
|
||||
//case ANIM_PRONE:
|
||||
// sAPCost += APBPConstants[AP_LOOK_PRONE];
|
||||
// break;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4312,18 +4496,27 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if ( pTSoldier->bBleeding == 0 && pTSoldier->stats.bLife != pTSoldier->stats.bLifeMax )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 19 ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if ( pTSoldier->bBleeding == 0 && pTSoldier->stats.bLife >= OKLIFE )
|
||||
// SANDRO - doctor with medical bag trying to do the surgery
|
||||
if ((NUM_SKILL_TRAITS( pSoldier, DOCTOR_NT ) >= gSkillTraitValues.ubDONumberTraitsNeededForSurgery) && Item[pSoldier->inv[ HANDPOS ].usItem].medicalkit && gGameOptions.fNewTraitSystem
|
||||
&& (pTSoldier->stats.bLife != pTSoldier->stats.bLifeMax) && (pTSoldier->iHealableInjury >= 100))
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ CANNOT_NO_NEED_FIRST_AID_STR ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
// should come a question first if you really want to do the surgery
|
||||
return( TRUE );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( pTSoldier->bBleeding == 0 && pTSoldier->stats.bLife != pTSoldier->stats.bLifeMax )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, gzLateLocalizedString[ 19 ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
if ( pTSoldier->bBleeding == 0 && pTSoldier->stats.bLife >= OKLIFE )
|
||||
{
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ CANNOT_NO_NEED_FIRST_AID_STR ], pTSoldier->name );
|
||||
return( FALSE );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return( TRUE );
|
||||
@@ -4377,42 +4570,42 @@ BOOLEAN SoldierCanAffordNewStance( SOLDIERTYPE *pSoldier, UINT8 ubDesiredStance
|
||||
if((UsingNewInventorySystem() == true))
|
||||
if(pSoldier->inv[BPACKPOCKPOS].exists() == true && !pSoldier->flags.ZipperFlag)
|
||||
bAP = bBP = 1;
|
||||
bAP += APBPConstants[AP_CROUCH];
|
||||
bAP += GetAPsCrouch(pSoldier, FALSE);
|
||||
bBP += APBPConstants[BP_CROUCH];
|
||||
break;
|
||||
case ANIM_CROUCH - ANIM_STAND:
|
||||
if((UsingNewInventorySystem() == true))
|
||||
if(pSoldier->inv[BPACKPOCKPOS].exists() == true && !pSoldier->flags.ZipperFlag)
|
||||
bAP = bBP = 2;
|
||||
bAP += APBPConstants[AP_CROUCH];
|
||||
bAP += GetAPsCrouch(pSoldier, FALSE);
|
||||
bBP += APBPConstants[BP_CROUCH];
|
||||
break;
|
||||
case ANIM_STAND - ANIM_PRONE:
|
||||
if((UsingNewInventorySystem() == true))
|
||||
if(pSoldier->inv[BPACKPOCKPOS].exists() == true && !pSoldier->flags.ZipperFlag)
|
||||
bAP = bBP = 2;
|
||||
bAP += APBPConstants[AP_CROUCH] + APBPConstants[AP_PRONE];
|
||||
bAP += GetAPsCrouch(pSoldier, FALSE) + GetAPsProne(pSoldier, FALSE);
|
||||
bBP += APBPConstants[BP_CROUCH] + APBPConstants[BP_PRONE];
|
||||
break;
|
||||
case ANIM_PRONE - ANIM_STAND:
|
||||
if((UsingNewInventorySystem() == true))
|
||||
if(pSoldier->inv[BPACKPOCKPOS].exists() == true && !pSoldier->flags.ZipperFlag)
|
||||
bAP = bBP = 4;
|
||||
bAP += APBPConstants[AP_CROUCH] + APBPConstants[AP_PRONE];
|
||||
bAP += GetAPsCrouch(pSoldier, FALSE) + GetAPsProne(pSoldier, FALSE);
|
||||
bBP += APBPConstants[BP_CROUCH] + APBPConstants[BP_PRONE];
|
||||
break;
|
||||
case ANIM_CROUCH - ANIM_PRONE:
|
||||
if((UsingNewInventorySystem() == true))
|
||||
if(pSoldier->inv[BPACKPOCKPOS].exists() == true && !pSoldier->flags.ZipperFlag)
|
||||
bAP = bBP = 1;
|
||||
bAP += APBPConstants[AP_PRONE];
|
||||
bAP += GetAPsProne(pSoldier, FALSE);
|
||||
bBP += APBPConstants[BP_PRONE];
|
||||
break;
|
||||
case ANIM_PRONE - ANIM_CROUCH:
|
||||
if((UsingNewInventorySystem() == true))
|
||||
if(pSoldier->inv[BPACKPOCKPOS].exists() == true && !pSoldier->flags.ZipperFlag)
|
||||
bAP = bBP = 2;
|
||||
bAP += APBPConstants[AP_PRONE];
|
||||
bAP += GetAPsProne(pSoldier, FALSE);
|
||||
bBP += APBPConstants[BP_PRONE];
|
||||
break;
|
||||
|
||||
@@ -4466,6 +4659,9 @@ void SetMovementModeCursor( SOLDIERTYPE *pSoldier )
|
||||
break;
|
||||
|
||||
case SWATTING:
|
||||
///ddd quick fix for losed cursor {
|
||||
case SWATTING_WK:
|
||||
///ddd quick fix for losed cursor }
|
||||
guiNewUICursor = MOVE_SWAT_UICURSOR;
|
||||
break;
|
||||
|
||||
@@ -5590,7 +5786,9 @@ BOOLEAN IsValidTalkableNPC( UINT8 ubSoldierID, BOOLEAN fGive , BOOLEAN fAllowMer
|
||||
}
|
||||
}
|
||||
|
||||
if ( pSoldier->ubProfile != NO_PROFILE && pSoldier->ubProfile >= FIRST_RPC && pSoldier->ubProfile < GASTON && !RPC_RECRUITED( pSoldier ) && !AM_AN_EPC( pSoldier ) )
|
||||
// if ( pSoldier->ubProfile != NO_PROFILE && pSoldier->ubProfile >= FIRST_RPC && pSoldier->ubProfile < GASTON && !RPC_RECRUITED( pSoldier ) && !AM_AN_EPC( pSoldier ) )
|
||||
//new profiles by Jazz
|
||||
if ( pSoldier->ubProfile != NO_PROFILE && ( gProfilesRPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile || gProfilesNPC[pSoldier->ubProfile].ProfilId == pSoldier->ubProfile ) && !RPC_RECRUITED( pSoldier ) && !AM_AN_EPC( pSoldier ) )
|
||||
{
|
||||
fValidGuy = TRUE;
|
||||
}
|
||||
@@ -5739,7 +5937,7 @@ BOOLEAN HandleTalkInit( )
|
||||
|
||||
case 1:
|
||||
|
||||
if ( QuoteExp_PassingDislike[ pTSoldier->ubProfile ] )
|
||||
if ( QuoteExp[ pTSoldier->ubProfile ].QuoteExpPassingDislike )
|
||||
{
|
||||
ubQuoteNum = QUOTE_PASSING_DISLIKE;
|
||||
}
|
||||
@@ -6469,4 +6667,4 @@ BOOLEAN IsValidJumpLocation( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fChec
|
||||
}
|
||||
|
||||
return( FALSE );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user