Files
2026-04-08 23:40:05 +02:00

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;
}
}