class Hat_AnimNotify_PawnPlayVoice extends AnimNotify_Scripted; /* AnimNotify that calls PlayVoice function if Owner is Hat_Pawn. */ enum EPlayerVoice { PlayerVoice_Jump, PlayerVoice_WallImpact, PlayerVoice_Attack, PlayerVoice_Hurt, PlayerVoice_HookshotCling, PlayerVoice_MonitorClick, PlayerVoice_Counting, PlayerVoice_CollectedAll, PlayerVoice_FreeCitizen, PlayerVoice_LongFallNoDmg, PlayerVoice_HelpAbilityHmm, PlayerVoice_HatStitch, PlayerVoice_MurderClueGotcha, PlayerVoice_HurtPant, PlayerVoice_NPCTease, PlayerVoice_VacuumSpin, PlayerVoice_ShopItemExamine, PlayerVoice_ShopLeave, PlayerVoice_ChemicalExplosion, PlayerVoice_HatStolen, PlayerVoice_DivaGreet, PlayerVoice_TakePainting, PlayerVoice_BurnPainting }; var() SoundCue Voice; var(Player) bool UsePlayerScriptVoice; var(Player) EPlayerVoice PlayerVoice; var(Player) int PlayerVoiceArrayPosition; var() float RelaxTime; var() bool IgnoreRelax; var() bool IsConversation; event Notify(Actor Owner, AnimNodeSequence AnimSeqInstigator) { local SoundCue c; local Hat_Pawn p; local Hat_Player ply; p = Hat_Pawn(Owner); if (p == None) return; if (!UsePlayerScriptVoice || Hat_Player(p) == None) c = Voice; else { ply = Hat_Player(p); switch(PlayerVoice) { case PlayerVoice_Jump: c = ply.VoiceJump; break; case PlayerVoice_WallImpact: c = ply.VoiceWallImpact; break; case PlayerVoice_Attack: c = ply.VoiceAttack; break; case PlayerVoice_Hurt: c = ply.VoiceHurt; break; case PlayerVoice_HookshotCling: c = ply.VoiceHookshotCling; break; case PlayerVoice_MonitorClick: c = ply.VoiceMonitorClick; break; case PlayerVoice_Counting: c = ply.VoiceCounting[Min(Max(PlayerVoiceArrayPosition, 0), ArrayCount(ply.VoiceCounting)-1)]; break; case PlayerVoice_CollectedAll: c = ply.VoiceCollectedAll; break; case PlayerVoice_LongFallNoDmg: c = ply.VoiceLongFallNoDmg; break; case PlayerVoice_HelpAbilityHmm: c = ply.HelpAbilityHmm; break; case PlayerVoice_HatStitch: c = ply.VoiceHatStitch[Min(Max(PlayerVoiceArrayPosition, 0), ArrayCount(ply.VoiceHatStitch)-1)]; break; case PlayerVoice_MurderClueGotcha: c = ply.VoiceMurderClueGotcha; break; case PlayerVoice_HurtPant: c = ply.VoiceHurtPant; break; case PlayerVoice_NPCTease: c = ply.VoiceNPCTease; break; case PlayerVoice_VacuumSpin: c = ply.VoiceVacuumSpin; break; case PlayerVoice_ShopItemExamine: c = ply.VoiceShopItemExamine; break; case PlayerVoice_ShopLeave: c = ply.VoiceShopLeave; break; case PlayerVoice_ShopLeave: c = ply.VoiceShopLeave; break; case PlayerVoice_ChemicalExplosion: c = ply.VoiceChemicalExplosion; break; case PlayerVoice_HatStolen: c = ply.VoiceHatStolen; break; case PlayerVoice_DivaGreet: c = ply.VoiceDivaGreet; break; case PlayerVoice_TakePainting: c = ply.VoiceTakePainting; break; case PlayerVoice_BurnPainting: c = ply.VoiceBurnPainting; break; default: break; } } if (c != None) p.PlayVoice(c, RelaxTime, IgnoreRelax, IsConversation); }