/// <summary> /// Creates a new Collision with values copied from another. /// </summary> public Collision(Collision clone) : base(clone) { HitFilterID = clone.HitFilterID; SoundSpaceType = clone.SoundSpaceType; EnvLightMapSpotIndex = clone.EnvLightMapSpotIndex; ReflectPlaneHeight = clone.ReflectPlaneHeight; MapNameID = clone.MapNameID; UnkT08b = clone.UnkT08b; DisableBonfireEntityID = clone.DisableBonfireEntityID; UnkHitName = clone.UnkHitName; PlayRegionID = clone.PlayRegionID; LockCamID1 = clone.LockCamID1; LockCamID2 = clone.LockCamID2; UnkT14 = clone.UnkT14; UnkT18 = clone.UnkT18; UnkT1C = clone.UnkT1C; UnkT20 = clone.UnkT20; UnkT24 = clone.UnkT24; UnkT38 = clone.UnkT38; UnkT40 = clone.UnkT40; UnkT44 = clone.UnkT44; UnkT48 = clone.UnkT48; UnkT4C = clone.UnkT4C; UnkT70 = clone.UnkT70; UnkT74 = clone.UnkT74; }
/// <summary> /// Creates a new Collision with the given ID and name. /// </summary> public Collision(int id, string name) : base(id, name, 80, 112) { HitFilterID = 0; SoundSpaceType = SoundSpace.NoReverb; EnvLightMapSpotIndex = 0; ReflectPlaneHeight = 0; MapNameID = -1; UnkT08b = 0; DisableBonfireEntityID = -1; UnkHitName = null; PlayRegionID = -1; LockCamID1 = 0; LockCamID2 = 0; UnkT14 = 0; UnkT18 = 0; UnkT1C = 0; UnkT20 = 0; UnkT24 = 0; UnkT38 = 0; UnkT40 = 0; UnkT44 = 0; UnkT48 = 0; UnkT4C = 0; UnkT70 = 0; UnkT74 = 0; }
internal override void Read(BinaryReaderEx br) { HitFilterID = br.ReadByte(); SoundSpaceType = br.ReadEnum8 <SoundSpace>(); EnvLightMapSpotIndex = br.ReadInt16(); ReflectPlaneHeight = br.ReadSingle(); MapNameID = br.ReadInt16(); UnkT08b = br.ReadInt16(); DisableBonfireEntityID = br.ReadInt32(); LockCamID1 = br.ReadInt16(); LockCamID2 = br.ReadInt16(); UnkT14 = br.ReadInt32(); UnkT18 = br.ReadInt32(); UnkT1C = br.ReadInt32(); UnkT20 = br.ReadInt32(); UnkT24 = br.ReadInt32(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); UnkT38 = br.ReadInt32(); br.AssertInt32(0); UnkT40 = br.ReadInt32(); UnkT44 = br.ReadInt32(); UnkT48 = br.ReadInt32(); UnkT4C = br.ReadInt32(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); UnkT70 = br.ReadInt32(); UnkT74 = br.ReadInt32(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); }
internal override void Read(BinaryReaderEx br) { HitFilterID = br.ReadByte(); SoundSpaceType = br.ReadEnum8 <SoundSpace>(); EnvLightMapSpotIndex = br.ReadInt16(); ReflectPlaneHeight = br.ReadSingle(); br.AssertInt32(0); // Navmesh Group (4) br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(-1); // Vagrant Entity ID (3) br.AssertInt32(-1); br.AssertInt32(-1); MapNameID = br.ReadInt16(); DisableStart = br.AssertInt16(0, 1) == 1; DisableBonfireEntityID = br.ReadInt32(); UnkT2C = br.ReadInt32(); UnkHitIndex = br.ReadInt32(); UnkT34 = br.ReadInt32(); PlayRegionID = br.ReadInt32(); LockCamID1 = br.ReadInt16(); LockCamID2 = br.ReadInt16(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); UnkT50 = br.ReadInt32(); UnkT54 = br.ReadInt32(); UnkT58 = br.ReadInt32(); UnkT5C = br.ReadInt32(); for (int i = 0; i < 19; i++) { br.AssertInt32(0); } UnkT74 = br.ReadInt32(); UnkT78 = br.ReadSingle(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); }
internal override void Read(BinaryReaderEx br, MSBVersion version) { HitFilterID = br.ReadByte(); SoundSpaceType = br.ReadEnum8 <SoundSpace>(); EnvLightMapSpotIndex = br.ReadInt16(); ReflectPlaneHeight = br.ReadSingle(); if (version == MSBVersion.MSBVersionDS3) { br.AssertInt32(0); // Navmesh Group (4) br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(-1); // Vagrant Entity ID (3) br.AssertInt32(-1); br.AssertInt32(-1); MapNameID = br.ReadInt16(); DisableStart = br.AssertInt16(0, 1) == 1; DisableBonfireEntityID = br.ReadInt32(); UnkT2C = br.ReadInt32(); UnkT30 = br.ReadInt32(); UnkT34 = br.ReadInt32(); PlayRegionID = br.ReadInt32(); LockCamID1 = br.ReadInt16(); LockCamID2 = br.ReadInt16(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); UnkT50 = br.ReadInt32(); UnkT54 = br.ReadInt32(); UnkT58 = br.ReadInt32(); UnkT5C = br.ReadInt32(); for (int i = 0; i < 19; i++) { br.AssertInt32(0); } UnkT74 = br.ReadInt32(); UnkT78 = br.ReadSingle(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); } else { // BB collision format much different (and simpler) so bullshit some values MapNameID = br.ReadInt16(); MapNameID = -3000; //DisableStart = br.AssertInt16(0, 1) == 1; br.ReadInt16(); DisableStart = false; DisableBonfireEntityID = br.ReadInt32(); UnkT2C = -1; UnkT30 = -1; UnkT34 = 0; PlayRegionID = br.ReadInt32(); PlayRegionID = 300000; LockCamID1 = br.ReadInt16(); LockCamID2 = br.ReadInt16(); UnkT50 = br.ReadInt32(); UnkT54 = br.ReadInt32(); UnkT58 = br.ReadInt32(); UnkT5C = br.ReadInt32(); for (int i = 0; i < 19; i++) { br.ReadInt32(); } //br.AssertInt32(0); UnkT74 = br.ReadInt32(); UnkT78 = br.ReadSingle(); br.AssertInt32(0); br.AssertInt32(0); br.AssertInt32(0); } }