-continuation of last update

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@157 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
MaddMugsy
2006-06-03 06:23:46 +00:00
parent c8ea22735d
commit 2d005563a2
10 changed files with 181 additions and 35 deletions
+1 -1
View File
@@ -613,7 +613,7 @@ void DisplayRangeToTarget( SOLDIERTYPE *pSoldier, INT16 sTargetGridNo )
if( WeaponInHand( pSoldier ) ) if( WeaponInHand( pSoldier ) )
{ {
UINT32 uiHitChance; UINT32 uiHitChance;
uiHitChance = CalcChanceToHitGun( pSoldier, sTargetGridNo, (INT8)(pSoldier->bShownAimTime / 2), pSoldier->bAimShotLocation ); uiHitChance = CalcChanceToHitGun( pSoldier, sTargetGridNo, (INT8)(pSoldier->bShownAimTime ), pSoldier->bAimShotLocation );
swprintf( zOutputString, zNewTacticalMessages[ TCTL_MSG__GUN_RANGE_AND_CTH ], Weapon[ pSoldier->inv[HANDPOS].usItem ].usRange / 10, uiHitChance ); swprintf( zOutputString, zNewTacticalMessages[ TCTL_MSG__GUN_RANGE_AND_CTH ], Weapon[ pSoldier->inv[HANDPOS].usItem ].usRange / 10, uiHitChance );
+1 -1
View File
@@ -142,7 +142,7 @@ BOOLEAN AddUIPlan( UINT16 sGridNo, UINT8 ubPlanID )
} }
else if ( ubPlanID == UIPLAN_ACTION_FIRE ) else if ( ubPlanID == UIPLAN_ACTION_FIRE )
{ {
sAPCost = CalcTotalAPsToAttack( gpUIPlannedSoldier, sGridNo, TRUE, (INT8)(gpUIPlannedSoldier->bShownAimTime /2) ); sAPCost = CalcTotalAPsToAttack( gpUIPlannedSoldier, sGridNo, TRUE, (INT8)(gpUIPlannedSoldier->bShownAimTime ) );
// Get XY from Gridno // Get XY from Gridno
ConvertGridNoToCenterCellXY( sGridNo, &sXPos, &sYPos ); ConvertGridNoToCenterCellXY( sGridNo, &sXPos, &sYPos );
+2 -2
View File
@@ -2390,7 +2390,7 @@ void UIHandleMercAttack( SOLDIERTYPE *pSoldier , SOLDIERTYPE *pTargetSoldier, UI
} }
// Set aim time to one in UI // Set aim time to one in UI
pSoldier->bAimTime = (pSoldier->bShownAimTime/2); pSoldier->bAimTime = (pSoldier->bShownAimTime );
usItem = pSoldier->inv[ HANDPOS ].usItem; usItem = pSoldier->inv[ HANDPOS ].usItem;
// ATE: Check if we are targeting an interactive tile, and adjust gridno accordingly... // ATE: Check if we are targeting an interactive tile, and adjust gridno accordingly...
@@ -2893,7 +2893,7 @@ BOOLEAN SelectedMercCanAffordAttack( )
sTargetGridNo = usMapPos; sTargetGridNo = usMapPos;
} }
sAPCost = CalcTotalAPsToAttack( pSoldier, sTargetGridNo, TRUE, (INT8)(pSoldier->bShownAimTime / 2) ); sAPCost = CalcTotalAPsToAttack( pSoldier, sTargetGridNo, TRUE, (INT8)(pSoldier->bShownAimTime ) );
if ( EnoughPoints( pSoldier, sAPCost, 0, TRUE ) ) if ( EnoughPoints( pSoldier, sAPCost, 0, TRUE ) )
{ {
+5 -5
View File
@@ -885,12 +885,12 @@ UINT8 CalcAPsToBurst( INT8 bBaseActionPoints, OBJECTTYPE * pObj )
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("CalcAPsToBurst: before bonus aps = %d, std bonus = %d, burst bonus = %d", aps,GetPercentAPReduction(pObj),GetPercentBurstFireAPReduction(pObj))); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("CalcAPsToBurst: before bonus aps = %d, std bonus = %d, burst bonus = %d", aps,GetPercentAPReduction(pObj),GetPercentBurstFireAPReduction(pObj)));
// Snap: do this a little differently: % reduction means // Snap: do this a little differently: % reduction means
// aps <- aps * ( 100 - red ) / 100 // aps <- aps * ( 100 - red ) / 100
aps = ( aps * ( 100 - GetPercentAPReduction(pObj) ) + 50 ) / 100; aps = ( aps * ( 100 - GetPercentAPReduction(pObj) ) ) / 100;
// Snap: moved this up to allow burst AP reduction up to 100% // Snap: moved this up to allow burst AP reduction up to 100%
aps = __max( aps, ( Weapon[ pObj->usItem ].bBurstAP + 1 ) / 2 ); aps = __max( aps, ( Weapon[ pObj->usItem ].bBurstAP + 1 ) / 2 );
aps = ( aps * ( 100 - GetPercentBurstFireAPReduction(pObj) ) + 50 ) / 100; aps = ( aps * ( 100 - GetPercentBurstFireAPReduction(pObj) ) ) / 100;
if ( aps < 0 ) aps = 0; if ( aps < 0 ) aps = 0;
else if ( aps > AP_MAXIMUM ) aps = AP_MAXIMUM; else if ( aps > AP_MAXIMUM ) aps = AP_MAXIMUM;
@@ -933,12 +933,12 @@ UINT8 CalcAPsToAutofire( INT8 bBaseActionPoints, OBJECTTYPE * pObj, UINT8 bDoAut
//} //}
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("CalcAPsToAutoFire: before bonus aps = %d, std bonus = %d, auto bonus = %d", aps,GetPercentAPReduction(pObj),GetPercentAutofireAPReduction(pObj))); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("CalcAPsToAutoFire: before bonus aps = %d, std bonus = %d, auto bonus = %d", aps,GetPercentAPReduction(pObj),GetPercentAutofireAPReduction(pObj)));
aps = ( aps * ( 100 - GetPercentAPReduction(pObj) ) + 50 ) / 100; aps = ( aps * ( 100 - GetPercentAPReduction(pObj) ) ) / 100;
aps = __max( aps, ( autofireaps + 1 ) / 2 ); aps = __max( aps, ( autofireaps + 1 ) / 2 );
// Snap: extend the burst bonus to autofire as well? // Snap: extend the burst bonus to autofire as well?
aps = ( aps * ( 100 - GetPercentAutofireAPReduction(pObj) ) + 50 ) / 100; aps = ( aps * ( 100 - GetPercentAutofireAPReduction(pObj) ) ) / 100;
if ( aps < 0 ) aps = 0; if ( aps < 0 ) aps = 0;
else if ( aps > AP_MAXIMUM ) aps = AP_MAXIMUM; else if ( aps > AP_MAXIMUM ) aps = AP_MAXIMUM;
@@ -2033,7 +2033,7 @@ INT16 GetAPsToReadyWeapon( SOLDIERTYPE *pSoldier, UINT16 usAnimState )
if ( Item[ usItem ].usItemClass == IC_GUN ) if ( Item[ usItem ].usItemClass == IC_GUN )
{ {
return ( Weapon[ usItem ].ubReadyTime return ( Weapon[ usItem ].ubReadyTime
* ( 100 - GetPercentReadyTimeAPReduction(&pSoldier->inv[ HANDPOS ]) ) + 50 ) / 100; * ( 100 - GetPercentReadyTimeAPReduction(&pSoldier->inv[ HANDPOS ]) ) ) / 100;
} }
} }
+12
View File
@@ -2563,6 +2563,18 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_DROP_ALL_ON ] ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_DROP_ALL_ON ] );
} }
break; break;
case 'q':
if ( gGameSettings.fOptions[TOPTION_GL_HIGH_ANGLE] )
{
gGameSettings.fOptions[TOPTION_GL_HIGH_ANGLE] = FALSE;
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_GL_LOW_ANGLE ] );
}
else
{
gGameSettings.fOptions[TOPTION_GL_HIGH_ANGLE] = TRUE;
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_GL_HIGH_ANGLE ] );
}
break;
case 'G': case 'G':
if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] ) if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] )
{ {
+148 -22
View File
@@ -321,6 +321,7 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos, BOOLE
BOOLEAN fMaxPointLimitHit = FALSE; BOOLEAN fMaxPointLimitHit = FALSE;
UINT16 usInHand; UINT16 usInHand;
UINT8 maxAimLevels = AllowedAimingLevels(pSoldier);
usInHand = pSoldier->inv[ HANDPOS ].usItem; usInHand = pSoldier->inv[ HANDPOS ].usItem;
@@ -390,7 +391,7 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos, BOOLE
else else
gfUIAutofireBulletCount = FALSE; gfUIAutofireBulletCount = FALSE;
gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(pSoldier->bShownAimTime / 2) ); gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(pSoldier->bShownAimTime ) );
gfUIDisplayActionPoints = TRUE; gfUIDisplayActionPoints = TRUE;
gfUIDisplayActionPointsCenter = TRUE; gfUIDisplayActionPointsCenter = TRUE;
@@ -398,7 +399,7 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos, BOOLE
while(!EnoughPoints( pSoldier, gsCurrentActionPoints, 0 , FALSE ) && pSoldier->bDoAutofire > 1) //oops, we don't have enough points if we are in auto-fire try to decrease bulletcount while(!EnoughPoints( pSoldier, gsCurrentActionPoints, 0 , FALSE ) && pSoldier->bDoAutofire > 1) //oops, we don't have enough points if we are in auto-fire try to decrease bulletcount
{ {
pSoldier->bDoAutofire--; pSoldier->bDoAutofire--;
gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(pSoldier->bShownAimTime / 2) ); gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(pSoldier->bShownAimTime ) );
} }
// If we don't have any points and we are at the first refine, do nothing but warn! // If we don't have any points and we are at the first refine, do nothing but warn!
@@ -410,11 +411,11 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos, BOOLE
} }
else else
{ {
bFutureAim = (INT8)( pSoldier->bShownAimTime + 2 ); bFutureAim = (INT8)( pSoldier->bShownAimTime + 1 );
if ( bFutureAim <= REFINE_AIM_5 ) if ( bFutureAim <= maxAimLevels )
{ {
sAPCosts = MinAPsToAttack( pSoldier, usMapPos, TRUE ) + ( bFutureAim / 2 ); sAPCosts = MinAPsToAttack( pSoldier, usMapPos, TRUE ) + ( bFutureAim );
// Determine if we can afford! // Determine if we can afford!
if ( !EnoughPoints( pSoldier, (INT16)sAPCosts, 0 , FALSE ) ) if ( !EnoughPoints( pSoldier, (INT16)sAPCosts, 0 , FALSE ) )
@@ -443,9 +444,9 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos, BOOLE
{ {
pSoldier->bShownAimTime++; pSoldier->bShownAimTime++;
if ( pSoldier->bShownAimTime > REFINE_AIM_5 ) if ( pSoldier->bShownAimTime > maxAimLevels )
{ {
pSoldier->bShownAimTime = REFINE_AIM_5; pSoldier->bShownAimTime = maxAimLevels;
} }
else else
{ {
@@ -551,7 +552,7 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos, BOOLE
if(gGameSettings.fOptions[ TOPTION_CTH_CURSOR ]) if(gGameSettings.fOptions[ TOPTION_CTH_CURSOR ])
{ {
UINT32 uiHitChance; UINT32 uiHitChance;
uiHitChance = CalcChanceToHitGun( pSoldier, usMapPos, (INT8)(pSoldier->bShownAimTime / 2), pSoldier->bAimShotLocation ); uiHitChance = CalcChanceToHitGun( pSoldier, usMapPos, (INT8)(pSoldier->bShownAimTime ), pSoldier->bAimShotLocation );
gfUICtHBar = TRUE; gfUICtHBar = TRUE;
gbCtH = (gbCtH+uiHitChance)/2; gbCtH = (gbCtH+uiHitChance)/2;
@@ -733,21 +734,144 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos, BOOLE
case REFINE_AIM_MID1: case REFINE_AIM_MID1:
usCursor = ACTION_TARGETAIM2_UICURSOR; //usCursor = ACTION_TARGETAIM2_UICURSOR;
if ( Item[ usInHand ].usItemClass == IC_THROWING_KNIFE )
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_THROWAIMYELLOW1_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_THROWAIM2_UICURSOR;
}
else
{
usCursor = ACTION_THROWAIMCANT1_UICURSOR;
}
}
else
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_TARGETAIMYELLOW1_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_TARGETAIM2_UICURSOR;
}
else
{
usCursor = ACTION_TARGETAIMCANT1_UICURSOR;
}
}
break; break;
case REFINE_AIM_MID2: case REFINE_AIM_MID2:
usCursor = ACTION_TARGETAIM4_UICURSOR; //usCursor = ACTION_TARGETAIM4_UICURSOR;
if ( Item[ usInHand ].usItemClass == IC_THROWING_KNIFE )
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_THROWAIMYELLOW3_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_THROWAIM4_UICURSOR;
}
else
{
usCursor = ACTION_THROWAIMCANT3_UICURSOR;
}
}
else
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_TARGETAIMYELLOW3_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_TARGETAIM4_UICURSOR;
}
else
{
usCursor = ACTION_TARGETAIMCANT3_UICURSOR;
}
}
break; break;
case REFINE_AIM_MID3: case REFINE_AIM_MID3:
usCursor = ACTION_TARGETAIM6_UICURSOR; //usCursor = ACTION_TARGETAIM6_UICURSOR;
if ( Item[ usInHand ].usItemClass == IC_THROWING_KNIFE )
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_THROWAIMYELLOW4_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_THROWAIM6_UICURSOR;
}
else
{
usCursor = ACTION_THROWAIMCANT4_UICURSOR;
}
}
else
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_TARGETAIMYELLOW4_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_TARGETAIM6_UICURSOR;
}
else
{
usCursor = ACTION_TARGETAIMCANT4_UICURSOR;
}
}
break; break;
case REFINE_AIM_MID4: case REFINE_AIM_MID4:
usCursor = ACTION_TARGETAIM8_UICURSOR; //usCursor = ACTION_TARGETAIM8_UICURSOR;
if ( Item[ usInHand ].usItemClass == IC_THROWING_KNIFE )
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_THROWAIMFULL_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_THROWAIM8_UICURSOR;
}
else
{
usCursor = ACTION_THROWAIMCANT5_UICURSOR;
}
}
else
{
if ( gfDisplayFullCountRing )
{
usCursor = ACTION_TARGETAIMFULL_UICURSOR;
}
else if ( fEnoughPoints )
{
usCursor = ACTION_TARGETAIM8_UICURSOR;
}
else
{
usCursor = ACTION_TARGETAIMCANT5_UICURSOR;
}
}
break; break;
} }
} }
@@ -829,7 +953,7 @@ UINT8 HandleNonActivatedTargetCursor( SOLDIERTYPE *pSoldier, UINT16 usMapPos , B
{ {
DetermineCursorBodyLocation( (UINT8)gusSelectedSoldier, fShowAPs, fRecalc ); DetermineCursorBodyLocation( (UINT8)gusSelectedSoldier, fShowAPs, fRecalc );
gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(pSoldier->bShownAimTime / 2) ); gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(pSoldier->bShownAimTime ) );
gfUIDisplayActionPoints = TRUE; gfUIDisplayActionPoints = TRUE;
gfUIDisplayActionPointsCenter = TRUE; gfUIDisplayActionPointsCenter = TRUE;
@@ -1180,7 +1304,7 @@ UINT8 HandleKnifeCursor( SOLDIERTYPE *pSoldier, UINT16 sGridNo, BOOLEAN fActivat
// Calculate action points // Calculate action points
if ( gTacticalStatus.uiFlags & TURNBASED && (gTacticalStatus.uiFlags & INCOMBAT) ) if ( gTacticalStatus.uiFlags & TURNBASED && (gTacticalStatus.uiFlags & INCOMBAT) )
{ {
gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, sGridNo, TRUE, (INT8)(pSoldier->bShownAimTime / 2) ); gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, sGridNo, TRUE, (INT8)(pSoldier->bShownAimTime ) );
gfUIDisplayActionPoints = TRUE; gfUIDisplayActionPoints = TRUE;
gfUIDisplayActionPointsCenter = TRUE; gfUIDisplayActionPointsCenter = TRUE;
@@ -1308,7 +1432,7 @@ UINT8 HandlePunchCursor( SOLDIERTYPE *pSoldier, UINT16 sGridNo, BOOLEAN fActivat
// Calculate action points // Calculate action points
if ( gTacticalStatus.uiFlags & TURNBASED ) if ( gTacticalStatus.uiFlags & TURNBASED )
{ {
gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, sGridNo, TRUE, (INT8)(pSoldier->bShownAimTime / 2) ); gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, sGridNo, TRUE, (INT8)(pSoldier->bShownAimTime ) );
gfUIDisplayActionPoints = TRUE; gfUIDisplayActionPoints = TRUE;
gfUIDisplayActionPointsCenter = TRUE; gfUIDisplayActionPointsCenter = TRUE;
@@ -1487,7 +1611,7 @@ UINT8 HandleNonActivatedTossCursor( SOLDIERTYPE *pSoldier, UINT16 sGridNo, BOOLE
{ {
if ( ubItemCursor == TRAJECTORYCURS ) if ( ubItemCursor == TRAJECTORYCURS )
{ {
gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, sGridNo, TRUE, (INT8)(pSoldier->bShownAimTime / 2) ); gsCurrentActionPoints = CalcTotalAPsToAttack( pSoldier, sGridNo, TRUE, (INT8)(pSoldier->bShownAimTime ) );
} }
else else
{ {
@@ -1864,6 +1988,8 @@ void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT16 usMapPos )
ubCursor = GetActionModeCursor( pSoldier ); ubCursor = GetActionModeCursor( pSoldier );
UINT8 maxAimLevels = AllowedAimingLevels(pSoldier);
// 'snap' cursor to target tile.... // 'snap' cursor to target tile....
if ( gfUIFullTargetFound ) if ( gfUIFullTargetFound )
{ {
@@ -1949,19 +2075,19 @@ void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT16 usMapPos )
} }
} }
bFutureAim = (INT8)( pSoldier->bShownAimTime + 2 ); bFutureAim = (INT8)( pSoldier->bShownAimTime + 1 );
if ( bFutureAim <= REFINE_AIM_5 ) if ( bFutureAim <= maxAimLevels )
{ {
sAPCosts = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(bFutureAim / 2) ); sAPCosts = CalcTotalAPsToAttack( pSoldier, usMapPos, TRUE, (INT8)(bFutureAim ) );
// Determine if we can afford! // Determine if we can afford!
if ( EnoughPoints( pSoldier, sAPCosts, 0, FALSE ) ) if ( EnoughPoints( pSoldier, sAPCosts, 0, FALSE ) )
{ {
pSoldier->bShownAimTime+= 2; pSoldier->bShownAimTime+= 1;
if ( pSoldier->bShownAimTime > REFINE_AIM_5 ) if ( pSoldier->bShownAimTime > maxAimLevels )
{ {
pSoldier->bShownAimTime = REFINE_AIM_5; pSoldier->bShownAimTime = maxAimLevels;
} }
} }
// Else - goto first level! // Else - goto first level!
+1 -1
View File
@@ -5535,7 +5535,7 @@ INT8 GetAPsToReload( OBJECTTYPE *pObj )
// DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("GetAPsToReload")); // DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("GetAPsToReload"));
return ( Weapon[ pObj->usItem ].APsToReload * return ( Weapon[ pObj->usItem ].APsToReload *
( 100 - GetPercentReloadTimeAPReduction(pObj) ) + 50 ) / 100; ( 100 - GetPercentReloadTimeAPReduction(pObj) ) ) / 100;
} }
+5 -3
View File
@@ -42,7 +42,7 @@
#define INDOORS_START_ANGLE (FLOAT)( PI/30 ) #define INDOORS_START_ANGLE (FLOAT)( PI/30 )
//#define INDOORS_START_ANGLE (FLOAT)( 0 ) //#define INDOORS_START_ANGLE (FLOAT)( 0 )
#define GLAUNCHER_START_ANGLE (FLOAT)( PI/8 ) #define GLAUNCHER_START_ANGLE (FLOAT)( PI/8 )
#define GLAUNCHER_HIGHER_LEVEL_START_ANGLE (FLOAT)( PI/6 ) #define GLAUNCHER_HIGHER_LEVEL_START_ANGLE (FLOAT)( PI/6 )
#define GET_THROW_HEIGHT( l ) (INT16)( ( l * 256 ) ) #define GET_THROW_HEIGHT( l ) (INT16)( ( l * 256 ) )
//#define GET_SOLDIER_THROW_HEIGHT( l ) (INT16)( ( l * 256 ) + STANDING_HEIGHT ) //#define GET_SOLDIER_THROW_HEIGHT( l ) (INT16)( ( l * 256 ) + STANDING_HEIGHT )
@@ -1837,7 +1837,6 @@ DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("physics.cpp line 1750"));
// OK, look at target level and decide angle to use... // OK, look at target level and decide angle to use...
if ( ubLevel == 1 ) if ( ubLevel == 1 )
{ {
//dDegrees = GLAUNCHER_START_ANGLE;
dDegrees = GLAUNCHER_HIGHER_LEVEL_START_ANGLE; dDegrees = GLAUNCHER_HIGHER_LEVEL_START_ANGLE;
} }
else else
@@ -1845,7 +1844,10 @@ DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("physics.cpp line 1750"));
dDegrees = GLAUNCHER_START_ANGLE; dDegrees = GLAUNCHER_START_ANGLE;
} }
fGLauncher = TRUE; fGLauncher = TRUE;
sMinRange = MIN_MORTAR_RANGE; sMinRange = MIN_MORTAR_RANGE/2;
if (gGameSettings.fOptions[TOPTION_GL_HIGH_ANGLE])
dDegrees *= 2;
//fLauncher = TRUE; //fLauncher = TRUE;
} }
+2
View File
@@ -249,6 +249,8 @@ enum
MSG_GL_BURST_CURSOR_OFF, MSG_GL_BURST_CURSOR_OFF,
MSG_DROP_ALL_ON, MSG_DROP_ALL_ON,
MSG_DROP_ALL_OFF, MSG_DROP_ALL_OFF,
MSG_GL_LOW_ANGLE,
MSG_GL_HIGH_ANGLE,
#ifdef JA2BETAVERSION #ifdef JA2BETAVERSION
MSG_END_TURN_AUTO_SAVE, MSG_END_TURN_AUTO_SAVE,
#endif #endif
+4
View File
@@ -3414,6 +3414,7 @@ STR16 zOptionsToggleText[] =
L"Show Chance to Hit on the cursor", L"Show Chance to Hit on the cursor",
L"GL Burst Uses Burst Cursor", L"GL Burst Uses Burst Cursor",
L"Enemies Drop All Items", L"Enemies Drop All Items",
L"High Angle Grenade Launching",
}; };
//This is the help text associated with the above toggles. //This is the help text associated with the above toggles.
@@ -3482,6 +3483,7 @@ STR16 zOptionsScreenHelpText[] =
L"When ON, the chance to hit is shown on the cursor.", L"When ON, the chance to hit is shown on the cursor.",
L"GL Burst uses burst cursor.", L"GL Burst uses burst cursor.",
L"Enemies drop all items on death.", L"Enemies drop all items on death.",
L"Grenade launchers fire grenades at more vertical angles.",
}; };
@@ -3691,6 +3693,8 @@ STR16 pMessageStrings[] =
L"Grenade Bursts - Using Trajectory Cursor (Spread fire disabled)", L"Grenade Bursts - Using Trajectory Cursor (Spread fire disabled)",
L"Drop All Enabled", L"Drop All Enabled",
L"Drop All Disabled", L"Drop All Disabled",
L"Grenade Launchers - Fire at standard angles",
L"Grenade Launchers - Fire at high angles",
#ifdef JA2BETAVERSION #ifdef JA2BETAVERSION
L"Successfully Saved the Game into the End Turn Auto Save slot.", L"Successfully Saved the Game into the End Turn Auto Save slot.",
#endif #endif