Fix for 1% chance to hit target when distance is > 52

Camo and other effects are taken into account when aiming at a body part
Max Distance Visible is more consistent in being calculated based on the soldier and direction rather than a fixed number

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1239 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
AalaarDB
2007-08-21 10:21:56 +00:00
parent c01ba3f6f1
commit 3f6ff281a3
31 changed files with 361 additions and 610 deletions
+3 -17
View File
@@ -4744,7 +4744,6 @@ UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent )
UINT16 usMapPos;
BOOLEAN fValidTalkableGuy = FALSE;
INT16 sTargetGridNo;
INT16 sDistVisible;
// Get soldier
if ( !GetSoldier( &pSoldier, gusSelectedSoldier ) )
@@ -4783,11 +4782,6 @@ UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent )
uiRange = GetRangeFromGridNoDiff( pSoldier->sGridNo, sTargetGridNo );
//ATE: Check if we have good LOS
// is he close enough to see that gridno if he turns his head?
sDistVisible = DistanceVisible( pSoldier, DIRECTION_IRRELEVANT, DIRECTION_IRRELEVANT, sTargetGridNo, pSoldier->bLevel, pSoldier );
if ( uiRange <= NPC_TALK_RADIUS )
{
if ( fValidTalkableGuy )
@@ -4814,7 +4808,7 @@ UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent )
if ( fValidTalkableGuy )
{
if ( !SoldierTo3DLocationLineOfSightTest( pSoldier, sTargetGridNo, pSoldier->bLevel, 3, (UINT8) sDistVisible, TRUE ) )
if ( !SoldierTo3DLocationLineOfSightTest( pSoldier, sTargetGridNo, pSoldier->bLevel, 3, TRUE ) )
{
//. ATE: Make range far, so we alternate cursors...
guiNewUICursor = TALK_OUT_RANGE_A_UICURSOR;
@@ -5573,7 +5567,6 @@ BOOLEAN HandleTalkInit( )
UINT8 ubNewDirection;
UINT8 ubQuoteNum;
UINT8 ubDiceRoll;
INT16 sDistVisible;
INT16 sActionGridNo;
UINT8 ubDirection;
UINT8 commandRange; //lal
@@ -5601,12 +5594,8 @@ BOOLEAN HandleTalkInit( )
{
if ( !(( pTSoldier->bTeam == MILITIA_TEAM ) && ( CheckIfRadioIsEquipped() )) ) //lal
{
//ATE: Check if we have good LOS
// is he close enough to see that gridno if he turns his head?
sDistVisible = DistanceVisible( pSoldier, DIRECTION_IRRELEVANT, DIRECTION_IRRELEVANT, pTSoldier->sGridNo, pTSoldier->bLevel, pTSoldier );
// Check LOS!
if ( !SoldierTo3DLocationLineOfSightTest( pSoldier, pTSoldier->sGridNo, pTSoldier->bLevel, 3, (UINT8) sDistVisible, TRUE ) )
if ( !SoldierTo3DLocationLineOfSightTest( pSoldier, pTSoldier->sGridNo, pTSoldier->bLevel, 3, TRUE ) )
{
if ( pTSoldier->ubProfile != NO_PROFILE )
{
@@ -6290,10 +6279,7 @@ BOOLEAN ValidQuickExchangePosition( )
{
if ( PythSpacesAway( pSoldier->sGridNo, pOverSoldier->sGridNo ) == 1 )
{
// Check if we have LOS to them....
sDistVisible = DistanceVisible( pSoldier, DIRECTION_IRRELEVANT, DIRECTION_IRRELEVANT, pOverSoldier->sGridNo, pOverSoldier->bLevel, pOverSoldier );
if ( SoldierTo3DLocationLineOfSightTest( pSoldier, pOverSoldier->sGridNo, pOverSoldier->bLevel, (UINT8)3, (UINT8) sDistVisible, TRUE ) )
if ( SoldierTo3DLocationLineOfSightTest( pSoldier, pOverSoldier->sGridNo, pOverSoldier->bLevel, 3, TRUE ) )
{
// ATE:
// Check that the path is good!