TransmitterBase.c
//TRANSMITTER BASE
class TransmitterBase extends ItemTransmitter
{
//Sounds
string SOUND_RADIO_TURNED_ON = "";
protected EffectSound m_SoundLoop;
// --- SYSTEM EVENTS
override void OnStoreSave( ParamsWriteContext ctx )
{
super.OnStoreSave( ctx );
//store tuned frequency
ctx.Write( GetTunedFrequencyIndex() );
}
override bool OnStoreLoad( ParamsReadContext ctx, int version )
{
if ( !super.OnStoreLoad( ctx, version ) )
return false;
//--- Transmitter data ---
//load and set tuned frequency
int tuned_frequency_idx;
if ( !ctx.Read( tuned_frequency_idx ) )
{
SetFrequencyByIndex( 0 ); //set default
return false;
}
SetFrequencyByIndex( tuned_frequency_idx );
//---
return true;
}
override bool IsTransmitter()
{
return true;
}
//--- ACTIONS
void SetNextFrequency( PlayerBase player = NULL )
{
SetNextChannel();
/*
if ( player )
{
DisplayRadioInfo( GetTunedFrequency().ToString(), player );
}
*/
}
//--- HUD
/*
protected Hud GetHud( PlayerBase player )
{
if ( !player )
{
return NULL;
}
return player.m_Hud;
}
void DisplayRadioInfo( string message, PlayerBase player )
{
Hud hud;
if ( player )
{
hud = GetHud( player );
}
if ( hud )
{
hud.SetWalkieTalkieText( message );
hud.ShowWalkieTalkie( 3 );
}
}
*/
//--- POWER EVENTS
override void OnSwitchOn()
{
if ( !GetCompEM().CanWork() )
{
GetCompEM().SwitchOff();
}
}
override void OnWorkStart()
{
//turn on broadcasting/receiving
EnableBroadcast ( true );
EnableReceive ( true );
SwitchOn ( true );
//play sound
SoundTurnedOnNoiseStart();
}
override void OnWorkStop()
{
//auto switch off (EM)
GetCompEM().SwitchOff();
//turn off broadcasting/receiving
EnableBroadcast ( false );
EnableReceive ( false );
SwitchOn ( false );
//stop sound
SoundTurnedOnNoiseStop();
}
//================================================================
// SOUNDS
//================================================================
//Static noise when the radio is turned on
protected void SoundTurnedOnNoiseStart()
{
PlaySoundSetLoop( m_SoundLoop, SOUND_RADIO_TURNED_ON, 1.0, 1.0 );
}
protected void SoundTurnedOnNoiseStop()
{
StopSoundSet( m_SoundLoop );
}
override void SetActions()
{
super.SetActions();
AddAction(ActionTurnOnTransmitter);
AddAction(ActionTurnOffTransmitter);
AddAction(ActionTuneFrequency);
}
}