postpone the engine sound played from c++ on soundcontroller (via OnSound override)
1561 {
1564
1565 #ifndef SERVER
1566 #ifndef NO_GUI
1567 PlayerBase player = null;
1568 EffectSound sound = null;
1570
1571 bool doInside = false;
1572
1574
1575 switch (state)
1576 {
1577 case CarEngineSoundState.STARTING:
1578 sound = new EffectSound();
1579 sound.
SetSoundSet(
"Offroad_02_Starting_SoundSet");
1581
1583 break;
1584 case CarEngineSoundState.START_OK:
1585 doInside = true;
1586
1587 sound = new EffectSound();
1590
1593 break;
1594
1595 case CarEngineSoundState.START_NO_FUEL:
1596 sound = new EffectSound();
1597 sound.
SetSoundSet(
"offroad_engine_failed_start_fuel_SoundSet");
1599 break;
1600
1601 case CarEngineSoundState.START_NO_BATTERY:
1602 sound = new EffectSound();
1603 sound.
SetSoundSet(
"offroad_engine_failed_start_battery_SoundSet");
1605 break;
1606
1607 case CarEngineSoundState.START_NO_SPARKPLUG:
1608 sound = new EffectSound();
1609 sound.
SetSoundSet(
"offroad_engine_failed_start_sparkplugs_SoundSet");
1611 break;
1612
1613 case CarEngineSoundState.STOP_OK:
1614 doInside = true;
1615
1616 sound = new EffectSound();
1619 break;
1620 case CarEngineSoundState.STOP_NO_FUEL:
1621 doInside = true;
1622
1623 sound = new EffectSound();
1626 break;
1627
1628 default:
1629 break;
1630 }
1631
1632
1633 if (doInside && Class.CastTo(player,
g_Game.GetPlayer()))
1634 {
1635 if (player.IsCameraInsideVehicle())
1636 {
1638 }
1639 }
1640
1641 if (sound)
1642 {
1644
1646 sound.SetPosition(ModelToWorld(enginePos));
1647 sound.SetLocalPosition(enginePos);
1649 SEffectManager.EffectRegister(sound);
1650
1652 }
1653
1654 #endif
1655 #endif
1656 }
proto native vector GetEnginePos()
Get actual position of engine (model space)
string m_EngineStartOK
Sounds.
int m_CarEngineLastSoundState
void SetEngineStarted(bool started)
ref EffectSound m_PreStartSound
void SetCarEngineSoundState(CarEngineSoundState pState)
void SetSoundSet(string snd)
Set soundset for the sound.
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
void SetSoundWaveKind(WaveKind wave_kind)
Set WaveKind for the sound.
void SetSoundFadeOut(float fade_out)
Set the sound fade out duration.
override void SetParent(Object parent_obj, int pivot)
Set parent for the sound to follow.
bool SoundPlay()
Plays sound.