// stub KFPlayerController for hooks
class stub_PC extends KFPlayerController_Story;


// empty function stub
simulated function noop(){}


// always true bool
simulated function bool bTrue()
{
  return true;
}


// =========================================================
// zed time sound effect switch
simulated function CheckZEDMessage()
{
  if (!bHadZED && !class'Settings'.default.bHideZedTimeSounds)
  {
    ReceiveLocalizedMessage(class'KFMod.WaitingMessage', 5);
    bHadZED = true;
    SaveConfig();
  }
}


simulated function ClientEnterZedTime()
{
  if (class'Settings'.default.bHideZedTimeSounds)
    return;

  CheckZEDMessage();

  if ( Pawn != none && Pawn.Weapon != none )
    Pawn.Weapon.PlaySound(Sound'KF_PlayerGlobalSnd.Zedtime_Enter', SLOT_Talk, 2.0,false,500.0,1.1/Level.TimeDilation,false);
  else
    PlaySound(Sound'KF_PlayerGlobalSnd.Zedtime_Enter', SLOT_Talk, 2.0,false,500.0,1.1/Level.TimeDilation,false);
}


simulated function ClientExitZedTime()
{
  if (class'Settings'.default.bHideZedTimeSounds)
    return;

  if ( Pawn != none && Pawn.Weapon != none )
    Pawn.Weapon.PlaySound(Sound'KF_PlayerGlobalSnd.Zedtime_Exit', SLOT_Talk, 2.0,false,500.0,1.1/Level.TimeDilation,false);
  else
    PlaySound(Sound'KF_PlayerGlobalSnd.Zedtime_Exit', SLOT_Talk, 2.0,false,500.0,1.1/Level.TimeDilation,false);
}


// =========================================================
// show lobby menu if we press Esc during pending game state
exec function ShowMenu()
{
  if (Level.GRI.bMatchHasBegun || PlayerReplicationInfo.bOnlySpectator)
    super.ShowMenu();
  else
    ShowLobbyMenu();
}


// Steam Workshop
simulated function SyncSteamWorkshop()
{
  log("> IM TRYING TO GET STEAM WORKSHOP FILES!!!!!");
  EnumerateSubscribedSteamWorkshopFiles();
}


// The player wants to switch to weapon group number F.
exec function SwitchWeapon(byte F)
{
  if (!class'a_WeaponManager'.static.checkVanillaSys(self, F))
    return;
  if (Pawn != none)
    Pawn.SwitchWeapon(F);
}