mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Driveable vehicle Update: Externalized vehicle seats (by anv)
- externalised vehicle seats (TableData\Vehicles.xml) influence position of passenger, field of view, ability to shoot and being hidden, - seat can chosen by using ctrl+RMB on vehicle (ctrl + LMB just takes the first visible seat) - seats can be changed or swapped while inside vehicle, - remade JSD files for cars, - vehicles aren't transparent anymore, - vehicles are louder than people, depending how fast they move. see: http://www.bears-pit.com/board/ubbthreads.php/topics/332790/5.html git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7212 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+41
-3
@@ -1083,6 +1083,17 @@ void PopupMovementMenu( UI_EVENT *pUIEvent )
|
||||
fDisableAction = TRUE;
|
||||
}
|
||||
|
||||
// anv: don't switch if passengers are blocked from attacking
|
||||
if( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
||||
{
|
||||
SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( pSoldier->iVehicleId );
|
||||
INT8 bSeatIndex = GetSeatIndexFromSoldier( pSoldier );
|
||||
if( gNewVehicle[ pVehicleList[ pSoldier->iVehicleId ].ubVehicleType ].VehicleSeats[bSeatIndex].fBlockedShots == TRUE )
|
||||
{
|
||||
fDisableAction = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
iActionIcons[ ACTIONC_ICON ] = QuickCreateButton( iIconImages[ uiActionImages ], (INT16)(iMenuAnchorX ), (INT16)(iMenuAnchorY + 20 ),
|
||||
BUTTON_NO_TOGGLE, MSYS_PRIORITY_HIGHEST - 1,
|
||||
DEFAULT_MOVE_CALLBACK, (GUI_CALLBACK)BtnMovementCallback );
|
||||
@@ -1776,7 +1787,16 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
|
||||
//if ( pSoldier->flags.fShowLocator )
|
||||
{
|
||||
// Render the beastie
|
||||
GetSoldierAboveGuyPositions( pSoldier, &sXPos, &sYPos, TRUE );
|
||||
// anv: if soldier is in vehicle, draw above middle of the vehicle
|
||||
if( !(pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
|
||||
{
|
||||
GetSoldierAboveGuyPositions( pSoldier, &sXPos, &sYPos, TRUE );
|
||||
}
|
||||
else
|
||||
{
|
||||
SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( pSoldier->iVehicleId );
|
||||
GetSoldierAboveGuyPositions( pVehicle, &sXPos, &sYPos, TRUE );
|
||||
}
|
||||
|
||||
// Adjust for bars!
|
||||
sXPos += 25;
|
||||
@@ -1833,7 +1853,16 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
|
||||
if ( gGameExternalOptions.ubShowHealthBarsOnHead )
|
||||
{
|
||||
// Render the beastie
|
||||
GetSoldierAboveGuyPositions( pSoldier, &sXPos, &sYPos, TRUE );
|
||||
// anv: if soldier is in vehicle, draw above middle of the vehicle
|
||||
if( !(pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
|
||||
{
|
||||
GetSoldierAboveGuyPositions( pSoldier, &sXPos, &sYPos, TRUE );
|
||||
}
|
||||
else
|
||||
{
|
||||
SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( pSoldier->iVehicleId );
|
||||
GetSoldierAboveGuyPositions( pVehicle, &sXPos, &sYPos, TRUE );
|
||||
}
|
||||
|
||||
// Adjust for bars!
|
||||
sXPos += 25;
|
||||
@@ -1901,7 +1930,16 @@ void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
|
||||
return;
|
||||
}
|
||||
|
||||
GetSoldierAboveGuyPositions( pSoldier, &sXPos, &sYPos, FALSE );
|
||||
// anv: if soldier is in vehicle, draw above middle of the vehicle
|
||||
if( !(pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
|
||||
{
|
||||
GetSoldierAboveGuyPositions( pSoldier, &sXPos, &sYPos, FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( pSoldier->iVehicleId );
|
||||
GetSoldierAboveGuyPositions( pVehicle, &sXPos, &sYPos, FALSE );
|
||||
}
|
||||
|
||||
// Display name
|
||||
SetFont( TINYFONT1 );
|
||||
|
||||
Reference in New Issue
Block a user