349 lines
12 KiB
C#
349 lines
12 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using Cpp2IlInjected;
|
|
using UnityEngine;
|
|
|
|
// Token: 0x020001FE RID: 510
|
|
[Token(Token = "0x20001FE")]
|
|
[StructLayout(3)]
|
|
public class CollisionAudio : MonoBehaviour
|
|
{
|
|
// Token: 0x06000FFB RID: 4091 RVA: 0x00045EA0 File Offset: 0x000440A0
|
|
[Token(Token = "0x6000FFB")]
|
|
[Address(RVA = "0x1B04990", Offset = "0x1B03390", VA = "0x181B04990")]
|
|
private IEnumerator Start()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06000FFB)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator CollisionAudio::Start()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
call:void(FDCKCECMGFL::System.IDisposable.Dispose, ldloc:FDCKCECMGFL(var_0))
|
|
stfld:int32(FDCKCECMGFL::<>1__state, ldloc:FDCKCECMGFL(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
|
|
stfld:CollisionAudio(FDCKCECMGFL::<>4__this, ldloc:FDCKCECMGFL(var_0), ldloc:CollisionAudio(this))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x06000FFC RID: 4092 RVA: 0x00045EC4 File Offset: 0x000440C4
|
|
[Token(Token = "0x6000FFC")]
|
|
[Address(RVA = "0x1B048C0", Offset = "0x1B032C0", VA = "0x181B048C0")]
|
|
private void OnEnable()
|
|
{
|
|
MeleeWeaponCollider[] array = this.meleeWeaponColliders;
|
|
int num = 0;
|
|
int length = array.Length;
|
|
if (num < length)
|
|
{
|
|
MeleeWeaponCollider meleeWeaponCollider = array[num];
|
|
MeleeWeaponCollider.MMFFGBGIAAD mmffgbgiaad = new MeleeWeaponCollider.MMFFGBGIAAD(this.DHOMIDPOPJB);
|
|
meleeWeaponCollider.HJKPKBBLGOJ += mmffgbgiaad;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000FFD RID: 4093 RVA: 0x00045F10 File Offset: 0x00044110
|
|
[Token(Token = "0x6000FFD")]
|
|
[Address(RVA = "0x1B047E0", Offset = "0x1B031E0", VA = "0x181B047E0")]
|
|
private void OnDisable()
|
|
{
|
|
MeleeWeaponCollider[] array = this.meleeWeaponColliders;
|
|
int num = 0;
|
|
this.ELCODMMONJB = true;
|
|
int length = array.Length;
|
|
if (num < length)
|
|
{
|
|
MeleeWeaponCollider meleeWeaponCollider = array[num];
|
|
MeleeWeaponCollider.MMFFGBGIAAD mmffgbgiaad = new MeleeWeaponCollider.MMFFGBGIAAD(this.DHOMIDPOPJB);
|
|
meleeWeaponCollider.HJKPKBBLGOJ -= mmffgbgiaad;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000FFE RID: 4094 RVA: 0x00045F60 File Offset: 0x00044160
|
|
[Token(Token = "0x6000FFE")]
|
|
[Address(RVA = "0x1B04630", Offset = "0x1B03030", VA = "0x181B04630")]
|
|
private void OnCollisionEnter(Collision GBJHLKOJGPB)
|
|
{
|
|
if (this.ELCODMMONJB && GBJHLKOJGPB.contacts.Length != 0)
|
|
{
|
|
GameObject gameObject = GBJHLKOJGPB.collider.gameObject;
|
|
ContactPoint[] contacts = GBJHLKOJGPB.contacts;
|
|
ContactPoint[] contacts2 = GBJHLKOJGPB.contacts;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000FFF RID: 4095 RVA: 0x00045FAC File Offset: 0x000441AC
|
|
[Token(Token = "0x6000FFF")]
|
|
[Address(RVA = "0x1B04080", Offset = "0x1B02A80", VA = "0x181B04080")]
|
|
private void DHOMIDPOPJB(MeleeWeaponCollider BCFFGDFHJMK, GHMDIDJLFMC KNLMJBAKCGF)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06001000 RID: 4096 RVA: 0x00045FBC File Offset: 0x000441BC
|
|
[Token(Token = "0x6001000")]
|
|
[Address(RVA = "0x1B04120", Offset = "0x1B02B20", VA = "0x181B04120")]
|
|
private void JJALMFBIPKL(GameObject PGPKHKFMPLD, Vector3 BEOPNIAIJOM, Vector3 CPINMDMJAMO, Vector3 GJFAEGPLDAB)
|
|
{
|
|
int num;
|
|
int num2;
|
|
do
|
|
{
|
|
num = 0;
|
|
if ((this.ELCODMMONJB ? 1 : 0) == num)
|
|
{
|
|
return;
|
|
}
|
|
List<CollisionAudio.PGCONDHMCGB> jlgaahnomjm = this.JLGAAHNOMJM;
|
|
List.Enumerator enumerator;
|
|
if (enumerator != 0)
|
|
{
|
|
bool flag;
|
|
while (!flag)
|
|
{
|
|
}
|
|
}
|
|
num2 = 0;
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
if (num != 0)
|
|
{
|
|
float time = Time.time;
|
|
float time2 = Time.time;
|
|
if (num2 == 0)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
CollisionAudio.PGCONDHMCGB pgcondhmcgb = new CollisionAudio.PGCONDHMCGB();
|
|
pgcondhmcgb.FKJEIHGOADP = PGPKHKFMPLD;
|
|
float time3 = Time.time;
|
|
pgcondhmcgb.IGJBBOHEJHL = time3;
|
|
this.JLGAAHNOMJM.Add(pgcondhmcgb);
|
|
CollisionAudio.AudioClipsToLayer[] array = this.audioMappings;
|
|
int length = array.Length;
|
|
if (num2 < length)
|
|
{
|
|
CollisionAudio.AudioClipsToLayer audioClipsToLayer = array[num2];
|
|
int layer = PGPKHKFMPLD.layer;
|
|
float time4 = Time.time;
|
|
float num3 = audioClipsToLayer.InstanceLimitDuration;
|
|
if ((num3 >= time4 || Time.time > audioClipsToLayer.InstanceLimitDuration) && (uint)1 != (uint)layer)
|
|
{
|
|
string tag = audioClipsToLayer.Tag;
|
|
if (layer != 0)
|
|
{
|
|
goto IL_FC;
|
|
}
|
|
string tag2 = audioClipsToLayer.Tag;
|
|
if (PGPKHKFMPLD.CompareTag(tag2))
|
|
{
|
|
goto IL_FC;
|
|
}
|
|
}
|
|
num2++;
|
|
IL_FC:
|
|
float time5 = Time.time;
|
|
audioClipsToLayer.<LastInstanceTime>k__BackingField = time5;
|
|
AnimationCurve velocityToVolumeCurve = audioClipsToLayer.velocityToVolumeCurve;
|
|
float num4;
|
|
if (velocityToVolumeCurve != 0 && velocityToVolumeCurve.length > 0)
|
|
{
|
|
AnimationCurve velocityToVolumeCurve2 = audioClipsToLayer.velocityToVolumeCurve;
|
|
num3 = Mathf.Clamp01(time5);
|
|
num4 = velocityToVolumeCurve2.Evaluate(num3);
|
|
}
|
|
int num5 = 0;
|
|
float num6;
|
|
num4 = num6;
|
|
num6 = Mathf.Clamp01(num4);
|
|
RecRoomAudioClip[] clips = audioClipsToLayer.Clips;
|
|
if (this.useCustomRolloff)
|
|
{
|
|
throw new NullReferenceException();
|
|
}
|
|
int num7 = 0;
|
|
int num8 = 0;
|
|
SFXAudioSource sfxaudioSource = AudioManager.PlayRandom3DSFX(clips, num5, num8, num7 != 0, num6, num2);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06001001 RID: 4097 RVA: 0x00046154 File Offset: 0x00044354
|
|
[Token(Token = "0x6001001")]
|
|
[Address(RVA = "0x1B049F0", Offset = "0x1B033F0", VA = "0x181B049F0")]
|
|
public CollisionAudio()
|
|
{
|
|
List<CollisionAudio.PGCONDHMCGB> list = new List();
|
|
this.JLGAAHNOMJM = list;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x04000CC5 RID: 3269
|
|
[Token(Token = "0x4000CC5")]
|
|
private const float CBPIPLAFEIK = 25f;
|
|
|
|
// Token: 0x04000CC6 RID: 3270
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4000CC6")]
|
|
private float KDHLFJAAMFJ = 0.1f;
|
|
|
|
// Token: 0x04000CC7 RID: 3271
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4000CC7")]
|
|
[SerializeField]
|
|
private CollisionAudio.AudioClipsToLayer[] audioMappings;
|
|
|
|
// Token: 0x04000CC8 RID: 3272
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4000CC8")]
|
|
[SerializeField]
|
|
private bool useCustomRolloff;
|
|
|
|
// Token: 0x04000CC9 RID: 3273
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4000CC9")]
|
|
[SerializeField]
|
|
private AudioRolloff customRolloff;
|
|
|
|
// Token: 0x04000CCA RID: 3274
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4000CCA")]
|
|
[SerializeField]
|
|
[Tooltip("MeleeWeaponColliders that can trigger the collision audio in addition to normal physics collisions.")]
|
|
private MeleeWeaponCollider[] meleeWeaponColliders;
|
|
|
|
// Token: 0x04000CCB RID: 3275
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4000CCB")]
|
|
private List<CollisionAudio.PGCONDHMCGB> JLGAAHNOMJM;
|
|
|
|
// Token: 0x04000CCC RID: 3276
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x4000CCC")]
|
|
private bool ELCODMMONJB;
|
|
|
|
// Token: 0x020001FF RID: 511
|
|
[Token(Token = "0x20001FF")]
|
|
private class PGCONDHMCGB
|
|
{
|
|
// Token: 0x06001002 RID: 4098 RVA: 0x00046180 File Offset: 0x00044380
|
|
[Token(Token = "0x6001002")]
|
|
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
|
public PGCONDHMCGB()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04000CCD RID: 3277
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4000CCD")]
|
|
public GameObject FKJEIHGOADP;
|
|
|
|
// Token: 0x04000CCE RID: 3278
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4000CCE")]
|
|
public float IGJBBOHEJHL;
|
|
}
|
|
|
|
// Token: 0x02000200 RID: 512
|
|
[Token(Token = "0x2000200")]
|
|
[Serializable]
|
|
public class AudioClipsToLayer
|
|
{
|
|
// Token: 0x17000260 RID: 608
|
|
// (get) Token: 0x06001003 RID: 4099 RVA: 0x00046194 File Offset: 0x00044394
|
|
// (set) Token: 0x06001004 RID: 4100 RVA: 0x000461A8 File Offset: 0x000443A8
|
|
[Token(Token = "0x17000260")]
|
|
public float LastInstanceTime
|
|
{
|
|
[Token(Token = "0x6001003")]
|
|
[Address(RVA = "0x621D80", Offset = "0x620780", VA = "0x180621D80")]
|
|
get;
|
|
[Token(Token = "0x6001004")]
|
|
[Address(RVA = "0x9E8110", Offset = "0x9E6B10", VA = "0x1809E8110")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x06001005 RID: 4101 RVA: 0x000461BC File Offset: 0x000443BC
|
|
[Token(Token = "0x6001005")]
|
|
[Address(RVA = "0x1B03D90", Offset = "0x1B02790", VA = "0x181B03D90")]
|
|
public bool BOBJDACCBKO(GameObject NNNMGKGMIFG)
|
|
{
|
|
int layer = NNNMGKGMIFG.layer;
|
|
float time = Time.time;
|
|
if ((this.InstanceLimitDuration >= time || Time.time > this.InstanceLimitDuration) && (uint)1 != (uint)layer)
|
|
{
|
|
string tag = this.Tag;
|
|
if (layer == 0)
|
|
{
|
|
string tag2 = this.Tag;
|
|
if (!NNNMGKGMIFG.CompareTag(tag2))
|
|
{
|
|
goto IL_5F;
|
|
}
|
|
}
|
|
float time2 = Time.time;
|
|
this.<LastInstanceTime>k__BackingField = time2;
|
|
return true;
|
|
}
|
|
IL_5F:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06001006 RID: 4102 RVA: 0x00046230 File Offset: 0x00044430
|
|
[Token(Token = "0x6001006")]
|
|
[Address(RVA = "0x1B03E50", Offset = "0x1B02850", VA = "0x181B03E50")]
|
|
public AudioClipsToLayer()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04000CCF RID: 3279
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4000CCF")]
|
|
public string Name;
|
|
|
|
// Token: 0x04000CD0 RID: 3280
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4000CD0")]
|
|
public LayerMask Layers;
|
|
|
|
// Token: 0x04000CD1 RID: 3281
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4000CD1")]
|
|
public string Tag = "";
|
|
|
|
// Token: 0x04000CD2 RID: 3282
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4000CD2")]
|
|
public AnimationCurve velocityToVolumeCurve;
|
|
|
|
// Token: 0x04000CD3 RID: 3283
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4000CD3")]
|
|
public RecRoomAudioClip[] Clips;
|
|
|
|
// Token: 0x04000CD4 RID: 3284
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4000CD4")]
|
|
[Tooltip("Per clip cooldown to limit the number of consecutive audios. Set it to 0 for most clips")]
|
|
public float InstanceLimitDuration;
|
|
}
|
|
}
|