rott/kf_sources/GamePlay/Classes/Action_PLAYANNOUNCEMENT.uc
2026-07-14 20:27:09 +07:00

74 lines
1.9 KiB
Ucode

class ACTION_PlayAnnouncement extends ScriptedAction;
var(Action) sound Sound;
var bool bSoundsPrecached;
function bool InitActionFor(ScriptedController C)
{
local PlayerController P;
local name SoundName;
if ( C.Level.NetMode == NM_StandAlone )
SoundName = LastMinuteHack_ShipIt( C );
else
SoundName = Sound.Name;
//log("ACTION_PlayAnnouncement Sound:" @ Sound @ "SoundName:" @ SoundName @ "Title:" @ C.Level.Title @ "Tag:" @ C.Tag @ "C.MyScript.Tag:" @ C.MyScript.Tag );
ForEach C.DynamicActors(class'PlayerController', P)
P.QueueAnnouncement( SoundName, 1, AP_Normal);
return false;
}
/* beautiful... */
function Name LastMinuteHack_ShipIt( ScriptedController C )
{
local PlayerController LocalPlayer;
local name SoundName;
LocalPlayer = C.Level.GetLocalPlayerController();
if ( Sound != None )
SoundName = Sound.Name;
// MotherShip Hack for Spanish translation (viva Madrid!)
if ( Sound == None && C.Tag == 'Play_Intro3' && C.MyScript.Tag == 'Hack_RIP_Epic_MegaCar' )
SoundName = 'MotherShip_intro';
else if ( C.MyScript.Tag == 'Hack_I_Love_Mina' )
{
if ( C.Tag == 'Play_Brief4' && LocalPlayer.StatusAnnouncer.GetSound('Junkyard_brief4a') != None )
SoundName = 'Junkyard_brief4a';
else if ( Sound == None )
{
if ( C.Tag == 'Play_Brief5' )
SoundName = 'Junkyard_brief5a';
else if ( C.Tag == 'Play_Brief6' )
SoundName = 'Junkyard_brief6a';
else if ( C.Tag == 'Play_Brief7' )
SoundName = 'Junkyard_brief7a';
}
}
return SoundName;
}
function string GetActionString()
{
return ActionString@Sound;
}
simulated function PrecacheAnnouncer(AnnouncerVoice V, bool bRewardSounds)
{
if ( !bRewardSounds && !bSoundsPrecached )
{
bSoundsPrecached = true;
if ( Sound != None )
V.PrecacheSound(Sound.Name);
}
}
defaultproperties
{
ActionString="play announcement"
}