mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +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:
@@ -5693,6 +5693,13 @@ void RenderTEAMPanel( BOOLEAN fDirty )
|
||||
// clear pStr value
|
||||
swprintf( pStr, L"");
|
||||
|
||||
INT8 bSeatIndex = GetSeatIndexFromSoldier( pSoldier );
|
||||
if( bSeatIndex != (-1) )
|
||||
{
|
||||
swprintf( sTemp, L"%s\n", gNewVehicle[ pVehicleList[ pSoldier->iVehicleId ].ubVehicleType ].VehicleSeats[ bSeatIndex ].zSeatName );
|
||||
wcscat( pStr, sTemp );
|
||||
}
|
||||
|
||||
if (gGameOptions.fNewTraitSystem) // SANDRO - old/new traits check
|
||||
{
|
||||
UINT8 ubTempSkillArray[30];
|
||||
@@ -5716,7 +5723,8 @@ void RenderTEAMPanel( BOOLEAN fDirty )
|
||||
|
||||
if ( bNumSkillTraits == 0 )
|
||||
{
|
||||
swprintf( pStr, L"%s", pPersonnelScreenStrings[ PRSNL_TXT_NOSKILLS ] );
|
||||
swprintf( sTemp, L"%s", pPersonnelScreenStrings[ PRSNL_TXT_NOSKILLS ] );
|
||||
wcscat( pStr, sTemp );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -6974,8 +6982,8 @@ void AddPlayerToInterfaceTeamSlot( UINT8 ubID )
|
||||
return;
|
||||
}
|
||||
|
||||
//if ( !( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
|
||||
//{
|
||||
if ( !( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) )
|
||||
{
|
||||
if ( !PlayerExistsInSlot( ubID ) )
|
||||
{
|
||||
// Find a free slot
|
||||
@@ -6999,38 +7007,38 @@ void AddPlayerToInterfaceTeamSlot( UINT8 ubID )
|
||||
}
|
||||
}
|
||||
}
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// // anv: for passengers, position on team panel will be linked with seat in vehicle
|
||||
// if ( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
||||
// {
|
||||
// SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubID ]->iVehicleId );
|
||||
// if( pVehicle != NULL )
|
||||
// {
|
||||
// for( UINT8 iCounter = 0; iCounter < gNewVehicle[ pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].ubVehicleType ].iNewSeatingCapacities; iCounter++ )
|
||||
// {
|
||||
// SOLDIERTYPE *pPassenger = pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].pPassengers[ iCounter ];
|
||||
// if( pPassenger != NULL && pPassenger->ubID == ubID )
|
||||
// {
|
||||
// gTeamPanel[ iCounter ].fOccupied = TRUE;
|
||||
// gTeamPanel[ iCounter ].ubID = ubID;
|
||||
}
|
||||
else
|
||||
{
|
||||
// anv: for passengers, position on team panel will be linked with seat in vehicle
|
||||
if ( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
|
||||
{
|
||||
SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubID ]->iVehicleId );
|
||||
if( pVehicle != NULL )
|
||||
{
|
||||
for( UINT8 iCounter = 0; iCounter < gNewVehicle[ pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].ubVehicleType ].iNewSeatingCapacities; iCounter++ )
|
||||
{
|
||||
SOLDIERTYPE *pPassenger = pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].pPassengers[ iCounter ];
|
||||
if( pPassenger != NULL && pPassenger->ubID == ubID )
|
||||
{
|
||||
gTeamPanel[ iCounter ].fOccupied = TRUE;
|
||||
gTeamPanel[ iCounter ].ubID = ubID;
|
||||
|
||||
// MSYS_SetRegionUserData( &gTEAM_FirstHandInv[ iCounter ], 0, iCounter );
|
||||
// MSYS_SetRegionUserData( &gTEAM_FaceRegions[ iCounter ], 0, iCounter );
|
||||
MSYS_SetRegionUserData( &gTEAM_FirstHandInv[ iCounter ], 0, iCounter );
|
||||
MSYS_SetRegionUserData( &gTEAM_FaceRegions[ iCounter ], 0, iCounter );
|
||||
|
||||
// // DIRTY INTERFACE
|
||||
// fInterfacePanelDirty = DIRTYLEVEL2;
|
||||
// DIRTY INTERFACE
|
||||
fInterfacePanelDirty = DIRTYLEVEL2;
|
||||
|
||||
// // Set ID to do open anim
|
||||
// MercPtrs[ ubID ]->flags.fUInewMerc = TRUE;
|
||||
//
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
// Set ID to do open anim
|
||||
MercPtrs[ ubID ]->flags.fUInewMerc = TRUE;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOLEAN InitTEAMSlots( )
|
||||
|
||||
Reference in New Issue
Block a user