예제 #1
0
void CClientHandling::SetHeadLight ( CHandlingEntry::eLightType Style, bool bRestore )
{ 
    // Set the property
    m_ucHeadLight = Style;
    m_bHeadLightChanged = !bRestore; 

    // Loop through the vehicles we're default for
    std::list < eVehicleTypes > ::const_iterator iter = m_DefaultTo.begin ();
    for ( ; iter != m_DefaultTo.end (); iter++ )
    {
        // Grab the handling for this car
        CHandlingEntry* pEntry = g_pGame->GetHandlingManager ()->GetHandlingData ( *iter );
        if ( pEntry )
        {
            // Grab the handlings attached to that car
            std::vector < CClientHandling* > List;
            m_pHandlingManager->GetDefaultHandlings ( *iter, List );

            // Update the property for this vehicle kind
            pEntry->SetHeadLight ( m_pHandlingManager->GetHeadLight ( List, *iter ) );
            pEntry->Recalculate ();
        }
    }
}
예제 #2
0
void CHandlingRPCs::RestoreVehicleHandlingProperty ( CClientEntity* pSource, NetBitStreamInterface& bitStream )
{
    // Read out the property id
    unsigned char ucProperty;
    if ( bitStream.Read ( ucProperty ) )
    {
        // Check its type
        if ( pSource && pSource->GetType () == CCLIENTVEHICLE )
        {
            // Grab the vehicle handling entry and the original handling
            CClientVehicle& Vehicle = static_cast < CClientVehicle& > ( *pSource );
            CHandlingEntry* pHandlingEntry = Vehicle.GetHandlingData ();
            const CHandlingEntry* pOriginalEntry = Vehicle.GetOriginalHandlingData ();
            if ( ucProperty >= HANDLING_SUSPENSION_FORCELEVEL && ucProperty <= HANDLING_SUSPENSION_ANTIDIVEMULTIPLIER &&
                ( Vehicle.GetModelInfo()->IsCar ( ) || Vehicle.GetModelInfo()->IsMonsterTruck ( ) ) )
            {
                return;
            }
            if ( pOriginalEntry )
            {
                // Depending on what property
                switch ( ucProperty )
                {
                    case HANDLING_MASS:
                        pHandlingEntry->SetMass ( pOriginalEntry->GetMass () );
                        break;

                    case HANDLING_TURNMASS:
                        pHandlingEntry->SetTurnMass ( pOriginalEntry->GetTurnMass () );
                        break;

                    case HANDLING_DRAGCOEFF:
                        pHandlingEntry->SetDragCoeff ( pOriginalEntry->GetDragCoeff () );
                        break;

                    case HANDLING_CENTEROFMASS:
                        pHandlingEntry->SetCenterOfMass ( pOriginalEntry->GetCenterOfMass () );
                        break;

                    case HANDLING_PERCENTSUBMERGED:
                        pHandlingEntry->SetPercentSubmerged ( pOriginalEntry->GetPercentSubmerged () );
                        break;

                    case HANDLING_TRACTIONMULTIPLIER:
                        pHandlingEntry->SetTractionMultiplier ( pOriginalEntry->GetTractionMultiplier () );
                        break;

                    case HANDLING_DRIVETYPE:
                        pHandlingEntry->SetCarDriveType ( pOriginalEntry->GetCarDriveType () );
                        break;

                    case HANDLING_ENGINETYPE:
                        pHandlingEntry->SetCarEngineType ( pOriginalEntry->GetCarEngineType () );
                        break;

                    case HANDLING_NUMOFGEARS:
                        pHandlingEntry->SetNumberOfGears ( pOriginalEntry->GetNumberOfGears () );
                        break;

                    case HANDLING_ENGINEACCELERATION:
                        pHandlingEntry->SetEngineAcceleration ( pOriginalEntry->GetEngineAcceleration () );
                        break;

                    case HANDLING_ENGINEINERTIA:
                        pHandlingEntry->SetEngineInertia ( pOriginalEntry->GetEngineInertia () );
                        break;

                    case HANDLING_MAXVELOCITY:
                        pHandlingEntry->SetMaxVelocity ( pOriginalEntry->GetMaxVelocity () );
                        break;

                    case HANDLING_BRAKEDECELERATION:
                        pHandlingEntry->SetBrakeDeceleration ( pOriginalEntry->GetBrakeDeceleration () );
                        break;

                    case HANDLING_BRAKEBIAS:
                        pHandlingEntry->SetBrakeBias ( pOriginalEntry->GetBrakeBias () );
                        break;

                    case HANDLING_ABS:
                        pHandlingEntry->SetABS ( pOriginalEntry->GetABS () );
                        break;

                    case HANDLING_STEERINGLOCK:
                        pHandlingEntry->SetSteeringLock ( pOriginalEntry->GetSteeringLock () );
                        break;

                    case HANDLING_TRACTIONLOSS:
                        pHandlingEntry->SetTractionLoss ( pOriginalEntry->GetTractionLoss () );
                        break;

                    case HANDLING_TRACTIONBIAS:
                        pHandlingEntry->SetTractionBias ( pOriginalEntry->GetTractionBias () );
                        break;

                    case HANDLING_SUSPENSION_FORCELEVEL:
                        pHandlingEntry->SetSuspensionForceLevel ( pOriginalEntry->GetSuspensionForceLevel () );
                        break;

                    case HANDLING_SUSPENSION_DAMPING:
                        pHandlingEntry->SetSuspensionDamping ( pOriginalEntry->GetSuspensionDamping () );
                        break;

                    case HANDLING_SUSPENSION_HIGHSPEEDDAMPING:
                        pHandlingEntry->SetSuspensionHighSpeedDamping ( pOriginalEntry->GetSuspensionHighSpeedDamping () );
                        break;

                    case HANDLING_SUSPENSION_UPPER_LIMIT:
                        pHandlingEntry->SetSuspensionUpperLimit ( pOriginalEntry->GetSuspensionUpperLimit () );
                        break;

                    case HANDLING_SUSPENSION_LOWER_LIMIT:
                        pHandlingEntry->SetSuspensionLowerLimit ( pOriginalEntry->GetSuspensionLowerLimit () );
                        break;

                    case HANDLING_SUSPENSION_FRONTREARBIAS:
                        pHandlingEntry->SetSuspensionFrontRearBias ( pOriginalEntry->GetSuspensionFrontRearBias () );
                        break;

                    case HANDLING_SUSPENSION_ANTIDIVEMULTIPLIER:
                        pHandlingEntry->SetSuspensionAntiDiveMultiplier ( pOriginalEntry->GetSuspensionAntiDiveMultiplier () );
                        break;

                    case HANDLING_COLLISIONDAMAGEMULTIPLIER:
                        pHandlingEntry->SetCollisionDamageMultiplier ( pOriginalEntry->GetCollisionDamageMultiplier () );
                        break;

                    case HANDLING_SEATOFFSETDISTANCE:
                        pHandlingEntry->SetSeatOffsetDistance ( pOriginalEntry->GetSeatOffsetDistance () );
                        break;

                    case HANDLING_HANDLINGFLAGS:
                        pHandlingEntry->SetHandlingFlags ( pOriginalEntry->GetHandlingFlags () );
                        break;

                    case HANDLING_MODELFLAGS:
                        pHandlingEntry->SetModelFlags ( pOriginalEntry->GetModelFlags () );
                        break;

                    case HANDLING_HEADLIGHT:
                        pHandlingEntry->SetHeadLight ( pOriginalEntry->GetHeadLight () );
                        break;

                    case HANDLING_TAILLIGHT:
                        pHandlingEntry->SetTailLight ( pOriginalEntry->GetTailLight () );
                        break;

                    case HANDLING_ANIMGROUP:
                        pHandlingEntry->SetAnimGroup ( pOriginalEntry->GetAnimGroup () );
                        break;
                }

                Vehicle.ApplyHandling();
            }
        }
    }
}