//FUN_40 (EXCELSR.DLL) public override uint UpdateW(int arg1, int arg2) { VigObject oVar1; VigTuple tVar2; if (arg1 == 4) { if ((flags & 0x2000000) == 0 && PDAT_78 != null) { if (((Lightning2)PDAT_78).DAT_88 == null) { flags |= 0x1000000; oVar1 = PDAT_78.FUN_2CCBC(); GameManager.instance.FUN_308C4(oVar1); PDAT_78 = null; } else { ((Lightning2)PDAT_78).DAT_94++; return(0); } } if (PDAT_74 != null) { tVar2 = GameManager.instance.FUN_30134(GameManager.instance.worldObjs, PDAT_74); if (tVar2 != null) { PDAT_74.flags &= 0xfbffffff; PDAT_74.FUN_30B78(); PDAT_74 = null; } } } return(0); }
//FUN_3B0 (GRBLDER.DLL) public override uint UpdateW(int arg1, int arg2) { sbyte sVar4; sbyte sVar5; short sVar6; VigTransform puVar7; Body bVar7; VigObject oVar7; int iVar8; VigObject oVar8; Vehicle vVar8; VigTransform tVar8; int iVar9; VigTransform tVar9; VigObject oVar9; ConfigContainer ccVar9; Vector3Int v3Var10; int iVar11; int iVar12; uint uVar12; int iVar13; int iVar16; VigObject oVar16; Vehicle vVar16; int iVar17; VigObject oVar17; int iVar18; Matrix3x3 local_68; Vector3Int local_58; Matrix3x3 auStack72; Matrix3x3 auStack40; switch (arg1) { case 0: iVar16 = FUN_42330(arg2); if (iVar16 < 1) { return(0); } if (arg2 < 0) { return(0); } oVar16 = child2; switch (DAT_19) { case 0: vr.x -= 64; sVar6 = (short)(oVar16.vr.x - 64); goto LAB_480; default: return(0); case 2: vr.x += 64; sVar6 = (short)(oVar16.vr.x + 64); LAB_480: oVar16.vr.x = sVar6; if (arg2 == 0) { return(0); } ApplyRotationMatrix(); oVar16.ApplyRotationMatrix(); return(0); case 3: oVar17 = PDAT_74; tVar8 = GameManager.instance.FUN_2CDF4(PDAT_78); Utilities.FUN_248C4(oVar17.vTransform.rotation, tVar8.rotation, out local_68); iVar16 = -local_68.V12; if (0 < local_68.V12) { iVar16 += 7; } iVar11 = local_68.V02 - local_68.V20; iVar16 >>= 3; if (iVar11 < 0) { iVar11 += 7; } iVar13 = local_68.V10; iVar11 >>= 3; goto LAB_9D8; case 4: vr.x += 32; oVar8 = PDAT_78; oVar16.vr.x += 32; oVar8.vr.x -= 32; if (arg2 == 0) { return(0); } ApplyRotationMatrix(); oVar16.ApplyRotationMatrix(); oVar8.ApplyRotationMatrix(); goto LAB_BA4; case 5: case 0x26: oVar8 = PDAT_78; iVar16 = oVar8.vTransform.rotation.V02 * 1525; if (iVar16 < 0) { iVar16 += 4095; } iVar17 = oVar8.vTransform.rotation.V12 * 1525; oVar8.vTransform.position.x += iVar16 >> 12; if (iVar17 < 0) { iVar17 += 4095; } iVar16 = oVar8.vTransform.rotation.V22 * 1525; oVar8.vTransform.position.y += iVar17 >> 12; if (iVar16 < 0) { iVar16 += 4095; } oVar8.vTransform.position.z += iVar16 >> 12; if (arg2 == 0) { return(0); } goto LAB_BA4; case 6: case 0x28: oVar16 = Utilities.FUN_2CD78(this); if ((oVar16.flags & 0x4000000) == 0) { uVar12 = GameManager.FUN_2AC5C(); if ((uVar12 & 7) == 0) { iVar8 = (int)GameManager.FUN_2AC5C(); oVar16.physics1.X += ((iVar8 * 1524 >> 15) - 762) * 128; iVar8 = (int)GameManager.FUN_2AC5C(); oVar16.physics1.Y += ((iVar8 * 1524 >> 15) - 762) * 128; iVar8 = (int)GameManager.FUN_2AC5C(); oVar16.physics1.Z += ((iVar8 * 1524 >> 15) - 762) * 128; } } ((Vehicle)PDAT_74).FUN_39DCC(-2, DAT_20, false); return(0); case 7: case 0x29: oVar8 = PDAT_74; iVar16 = oVar8.physics1.X; if (iVar16 < 0) { iVar16 += 127; } iVar17 = oVar8.physics1.Y; oVar8.vTransform.position.x += iVar16 >> 7; if (iVar17 < 0) { iVar17 += 127; } iVar16 = oVar8.physics1.Z; oVar8.vTransform.position.y += iVar17 >> 7; if (iVar16 < 0) { iVar16 += 127; } oVar8.vTransform.position.z += iVar16 >> 7; return(0); case 0x10: case 0x30: oVar17 = PDAT_74; tVar8 = GameManager.instance.FUN_2CDF4(PDAT_78); Utilities.FUN_248C4(oVar17.vTransform.rotation, tVar8.rotation, out auStack72); iVar16 = -auStack72.V12; if (0 < auStack72.V12) { iVar16 += 7; } iVar11 = auStack72.V02 - auStack72.V20; iVar16 >>= 3; if (iVar11 < 0) { iVar11 += 7; } iVar13 = auStack72.V10; iVar11 >>= 3; goto LAB_9D8; case 0x11: case 0x13: case 0x15: case 0x17: vr.x += 32; oVar16.vr.x += 32; if (arg2 == 0) { return(0); } ApplyTransformation(); oVar16.ApplyTransformation(); sVar5 = (sbyte)DAT_19; sVar4 = 23; break; case 0x12: case 0x14: case 0x16: vr.x -= 64; oVar16.vr.x -= 64; if (arg2 == 0) { return(0); } ApplyTransformation(); oVar16.ApplyTransformation(); sVar5 = (sbyte)DAT_19; sVar4 = 22; break; case 0x20: do { sVar6 = -21; if (oVar16.id != 0) { sVar6 = 21; } oVar16.vr.y += sVar6; oVar16.child2.vr.y += sVar6; if (arg2 != 0) { oVar16.ApplyTransformation(); oVar16.child2.ApplyTransformation(); } oVar16 = oVar16.child; } while (oVar16 != null); return(0); case 0x22: case 0x37: do { sVar6 = 21; if (oVar16.id != 0) { sVar6 = -21; } oVar16.vr.y += sVar6; oVar16.child2.vr.y += sVar6; if (arg2 != 0) { oVar16.ApplyTransformation(); oVar16.child2.ApplyTransformation(); } oVar16 = oVar16.child; } while (oVar16 != null); return(0); case 0x23: do { sVar6 = 21; if (oVar16.id != 0) { sVar6 = -21; } oVar16.vr.y += sVar6; oVar16.child2.vr.y += sVar6; if (arg2 != 0) { oVar16.ApplyTransformation(); oVar16.child2.ApplyTransformation(); } oVar16 = oVar16.child; } while (oVar16.type == 0); goto case 0x24; case 0x24: oVar17 = PDAT_74; tVar8 = GameManager.instance.FUN_2CDF4(PDAT_78); Utilities.FUN_248C4(oVar17.vTransform.rotation, tVar8.rotation, out auStack40); iVar16 = -auStack40.V12; if (0 < auStack40.V12) { iVar16 += 7; } iVar11 = auStack40.V02 - auStack40.V20; iVar16 >>= 3; if (iVar11 < 0) { iVar11 += 7; } iVar13 = auStack40.V10; iVar11 >>= 3; LAB_9D8: if (iVar13 < 0) { iVar13 += 7; } oVar17.FUN_24700((short)iVar16, (short)iVar11, (short)(iVar13 >> 3)); iVar16 = tVar8.position.x - oVar17.vTransform.position.x; if (iVar16 < 0) { iVar16 += 7; } iVar16 >>= 3; oVar17.vTransform.position.x += iVar16; iVar18 = tVar8.position.y - oVar17.vTransform.position.y; if (iVar18 < 0) { iVar18 += 7; } iVar18 >>= 3; oVar17.vTransform.position.y += iVar18; iVar8 = tVar8.position.z - oVar17.vTransform.position.z; if (iVar8 < 0) { iVar8 += 7; } iVar8 >>= 3; oVar17.vTransform.position.z += iVar8; if ((flags & 0x20000000) != 0) { if (iVar16 < 0) { iVar16 = -iVar16; } if (iVar16 < 0x800) { if (iVar18 < 0) { iVar18 = -iVar18; } if (iVar18 < 0x800) { if (iVar8 < 0) { iVar8 = -iVar8; } if (iVar8 < 0x800) { flags &= 0xdfffffff; iVar9 = GameManager.instance.FUN_1DD9C(); v3Var10 = GameManager.instance.FUN_2CE50(oVar17); GameManager.instance.FUN_1E628(iVar9, vData.sndList, 6, v3Var10); } } } } oVar17.vTransform.rotation = Utilities.MatrixNormal(oVar17.vTransform.rotation); return(0); case 0x25: oVar8 = PDAT_78; vr.x += 32; if (arg2 == 0) { return(0); } ApplyRotationMatrix(); goto LAB_BA4; case 0x27: vr.x -= 64; if (arg2 == 0) { return(0); } ApplyTransformation(); return(0); case 0x31: case 0x33: case 0x35: vr.x += 32; if (arg2 == 0) { return(0); } ApplyTransformation(); goto LAB_BA0; case 0x32: case 0x34: case 0x36: vr.x -= 64; if (arg2 == 0) { return(0); } ApplyTransformation(); sVar5 = (sbyte)DAT_19; sVar4 = 54; break; } if (sVar5 == sVar4) { return(0); } LAB_BA0: oVar8 = PDAT_78; LAB_BA4: puVar7 = GameManager.instance.FUN_2CDF4(oVar8); oVar16 = PDAT_74; oVar16.vTransform = puVar7; return(0); case 2: break; case 4: if (DAT_19 == 0) { return(0); } if (PDAT_78 != null) { oVar9 = PDAT_78.FUN_2CCBC(); Destroy(oVar9.gameObject); PDAT_78 = null; } oVar16 = PDAT_74; if (oVar16 != null) { vVar16 = (Vehicle)oVar16; vVar16.FUN_41FEC(); uVar12 = vVar16.flags; vVar16.flags = uVar12 & 0xffffffdd; if ((uVar12 & 0x80) == 0) { vVar16.FUN_30B78(); } if (vVar16.vCamera != null) { vVar16.vCamera.target = vVar16; vVar16.vCamera.FUN_4B898(); } PDAT_74 = null; } GameManager.instance.FUN_1DE78(DAT_18); return(0); default: return(0); } ApplyTransformation(); child2.ApplyTransformation(); sVar5 = (sbyte)(DAT_19 + 1); DAT_19 = (byte)sVar5; switch (sVar5) { case 1: case 0x21: FUN_30BA8(); GameManager.instance.FUN_30CB0(this, 128); flags &= 0xffffffdf; oVar16 = Utilities.FUN_2CD78(this); oVar16.flags |= 0x800; break; case 2: case 0x22: FUN_30B78(); GameManager.instance.FUN_30CB0(this, 16); flags |= 0x20; oVar16 = Utilities.FUN_2CD78(this); oVar16.flags &= 0xfffff7ff; iVar9 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E628(iVar9, vData.sndList, 4, oVar16.vTransform.position); break; case 3: case 0x23: FUN_30BA8(); DAT_19 = 0; if (maxHalfHealth == 0) { FUN_3A368(); return(0); } break; case 4: case 0x25: iVar9 = 32; goto LAB_11A0; case 5: case 0x26: LevelManager.instance.FUN_4DE54(PDAT_74.vTransform.position, 138); GameManager.instance.FUN_30CB0(this, 24); iVar9 = GameManager.instance.FUN_1DD9C(); v3Var10 = GameManager.instance.FUN_2CE50(this); GameManager.instance.FUN_1E580(iVar9, GameManager.instance.DAT_C2C, 36, v3Var10); break; case 6: case 0x28: oVar8 = PDAT_74; vVar16 = (Vehicle)Utilities.FUN_2CD78(this); oVar8.flags |= 2; sVar5 = (sbyte)GameManager.instance.FUN_1DD9C(); DAT_18 = sVar5; GameManager.instance.FUN_1E580(sVar5, vData.sndList, 3, oVar8.vTransform.position, true); if (oVar8.id < 0) { GameManager.instance.FUN_15AA8(~oVar8.id, 255, 255, 255, 64); } if (vVar16.id < 0) { GameManager.instance.FUN_15B00(~vVar16.id, 255, 255, 64); } oVar9 = PDAT_78.FUN_2CCBC(); Destroy(oVar9.gameObject); PDAT_78 = null; GameManager.instance.FUN_30CB0(this, 256); bVar7 = vVar16.body[1].child2 as Body; if (bVar7 != null) { do { if (bVar7.id - 16 < 2) { bVar7.state = _BODY_TYPE.Collector; bVar7.tags = (sbyte)((byte)bVar7.id & 1); GameManager.instance.FUN_30CB0(bVar7, 232); } bVar7 = bVar7.child as Body; } while (bVar7 != null); return(0); } break; case 7: case 0x29: oVar8 = PDAT_74; oVar8.flags &= 0xfffffffd; ccVar9 = FUN_2C5F4(0x8001); oVar8.vTransform = GameManager.instance.FUN_2CEAC(this, ccVar9); iVar16 = oVar8.vTransform.rotation.V02 * 4577; if (iVar16 < 0) { iVar16 += 31; } oVar8.physics1.X = iVar16 >> 5; iVar16 = oVar8.vTransform.rotation.V12 * 4577; if (iVar16 < 0) { iVar16 += 31; } oVar8.physics1.Y = iVar16 >> 5; iVar16 = oVar8.vTransform.rotation.V22 * 4577; if (iVar16 < 0) { iVar16 += 31; } oVar8.physics1.Z = iVar16 >> 5; GameManager.instance.FUN_30CB0(this, 24); GameManager.instance.FUN_1E580(DAT_18, GameManager.instance.DAT_C2C, 37, oVar8.vTransform.position); DAT_18 = 0; break; case 8: case 0x2A: vVar16 = (Vehicle)PDAT_74; vVar16.FUN_41FEC(); vVar16.flags &= 0xfdffffdf; vVar16.FUN_30B78(); PDAT_74 = null; goto LAB_1210; case 0x13: case 0x15: case 0x33: case 0x35: iVar9 = GameManager.instance.FUN_1DD9C(); v3Var10 = GameManager.instance.FUN_2CE50(this); GameManager.instance.FUN_1E628(iVar9, vData.sndList, 5, v3Var10); goto case 0x11; case 0x11: case 0x31: oVar9 = Utilities.FUN_2CD78(this); iVar9 = ((Vehicle)PDAT_74).FUN_3B078(oVar9, (ushort)DAT_1A, -150, 1); ((Vehicle)PDAT_74).FUN_3A020(iVar9, DAT_20, true); goto case 0x17; case 0x17: iVar9 = 32; goto LAB_11A0; case 0x16: case 0x36: oVar8 = PDAT_78; tVar9 = GameManager.instance.FUN_2CDF4(this); oVar16 = Utilities.FUN_2CD78(this); local_58 = new Vector3Int (0, oVar8.vTransform.position.z, -oVar8.vTransform.position.y); local_58 = Utilities.FUN_24094(tVar9.rotation, local_58); vVar8 = (Vehicle)PDAT_74; vVar8.FUN_41FEC(); vVar8.physics1.X = oVar16.physics1.X + local_58.x * 16; vVar8.physics1.Y = oVar16.physics1.Y + local_58.y * 16; vVar8.physics1.Z = oVar16.physics1.Z + local_58.z * 16; vVar8.physics2.Z = -0x40000; vVar8.flags &= 0xffffffdf; vVar8.FUN_30B78(); iVar9 = GameManager.instance.FUN_1DD9C(); v3Var10 = GameManager.instance.FUN_2CE50(this); GameManager.instance.FUN_1E628(iVar9, vData.sndList, 4, v3Var10); oVar9 = PDAT_78.FUN_2CCBC(); Destroy(oVar9.gameObject); PDAT_78 = null; iVar9 = vVar8.FUN_3B078(oVar16, (ushort)DAT_1A, -150, 1); vVar8.FUN_3A020(iVar9, DAT_20, true); goto case 0x12; case 0x12: case 0x14: case 0x32: case 0x34: iVar12 = PDAT_74.id; if (iVar12 < 0) { GameManager.instance.FUN_15B00(~iVar12, 255, 0, 64); } iVar9 = 16; goto LAB_11A0; case 0x18: case 0x38: vVar16 = (Vehicle)PDAT_74; PDAT_74 = null; vVar16.flags &= 0xfdffffdf; LAB_1210: DAT_19 = 0; FUN_30BA8(); if (maxHalfHealth == 0) { FUN_3A368(); } if (vVar16.vCamera != null) { vVar16.vCamera.target = vVar16; vVar16.vCamera.FUN_4B898(); } break; case 0x24: GameManager.instance.FUN_30CB0(this, 48); break; case 0x27: iVar9 = 16; PDAT_74.flags |= 2; LAB_11A0: GameManager.instance.FUN_30CB0(this, iVar9); iVar9 = GameManager.instance.FUN_1DD9C(); v3Var10 = GameManager.instance.FUN_2CE50(this); GameManager.instance.FUN_1E628(iVar9, vData.sndList, 4, v3Var10); break; case 0x37: GameManager.instance.FUN_30CB0(this, 16); break; } return(0); }
public override uint UpdateW(int arg1, VigObject arg2) { uint uVar1; int iVar2; ConfigContainer ccVar2; VigObject oVar2; Hook2 puVar3; int iVar4; VigObject oVar4; ConfigContainer ccVar4; Vehicle vVar5; VigObject oVar5; BufferedBinaryReader brVar5; VigTransform auStack112; Vector3Int auStack64; Vector3Int auStack48; Vector3Int local_28; Vector3Int local_50; if (arg1 == 1) { type = 3; maxHalfHealth = 6; flags |= 0x4000; oVar4 = vData.ini.FUN_2C17C(2, typeof(VigObject), 8); uVar1 = 0; if (oVar4 != null) { ccVar2 = FUN_2C5F4(0x8000); Utilities.FUN_2CA94(this, ccVar2, oVar4); Utilities.ParentChildren(this, this); oVar4.FUN_30BF0(); PDAT_78 = oVar4; uVar1 = 0; } } else { if (arg1 == 0) { FUN_42330(arg2); uVar1 = 0; } else { if (arg1 == 12) { vVar5 = (Vehicle)arg2; if (vVar5.target == null || (flags & 0x8000000) != 0 || (vVar5.target.flags & 0x4000) == 0) { //iVar2 = GameManager.instance.FUN_1DD9C(); //GameManager.instance.FUN_1E14C(iVar2, GameManager.instance.DAT_C2C, 1); return(0); } else { vVar5.tags = 3; vVar5.DAT_58 += 0xa0000; oVar2 = PDAT_78.FUN_2CCBC(); GameManager.instance.FUN_308C4(oVar2); DAT_19 = 1; PDAT_78 = null; maxHalfHealth--; puVar3 = vData.ini.FUN_2C17C(1, typeof(Hook2), 8) as Hook2; puVar3.DAT_80 = vVar5.target; ccVar4 = FUN_2C5F4(0x8000); puVar3.DAT_A4 = ccVar4; auStack112 = GameManager.instance.FUN_2CEAC(this, ccVar4); puVar3.DAT_84 = this; brVar5 = puVar3.DAT_80.vCollider.reader; puVar3.physics1.W = (brVar5.ReadInt32(4) + brVar5.ReadInt32(16)) / 2; puVar3.physics2.X = brVar5.ReadInt32(20); puVar3.physics2.Y = brVar5.ReadInt32(24); local_28 = Utilities.FUN_24148(puVar3.DAT_80.vTransform, new Vector3Int(puVar3.physics1.W, puVar3.physics2.X, puVar3.physics2.Y)); local_50 = new Vector3Int(); local_50.x = local_28.x - auStack112.position.x; local_50.y = local_28.y - auStack112.position.y; local_50.z = local_28.z - auStack112.position.z; auStack64 = Utilities.FUN_2426C(auStack112.rotation, new Matrix2x4(local_50.x, local_50.y, local_50.z, 0)); Utilities.FUN_29FC8(auStack64, out auStack48); puVar3.vTransform.rotation = Utilities.FUN_2A724(auStack48); iVar2 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E580(iVar2, vData.sndList, 4, auStack112.position); oVar5 = puVar3.child2; oVar5.vTransform.rotation.V11 = 0x1000; oVar5.vTransform.rotation.V00 = 0x1000; oVar5.vTransform.rotation.V22 = 0x400; puVar3.vTransform.position = ccVar4.v3_1; iVar4 = Utilities.FUN_29E84(auStack64); iVar4 /= 2; if (0x70000 < iVar4) { iVar4 = 0x70000; } puVar3.physics2.Z = iVar4; puVar3.physics2.W = 0x4000; puVar3.tags = 0; puVar3.DAT_A0_2 = (iVar4 - 0x4000) / 3; Utilities.FUN_2CC48(this, puVar3); Utilities.ParentChildren(this, this); puVar3.FUN_30B78(); puVar3.FUN_30BF0(); GameManager.instance.FUN_30CB0(puVar3, 2); oVar4 = vData.ini.FUN_2C17C(3, typeof(VigObject), 8); puVar3.DAT_88 = oVar4; oVar4.DAT_80 = puVar3; ccVar2 = puVar3.FUN_2C5F4(0x8000); Utilities.FUN_2CA94(puVar3, ccVar2, oVar4); Utilities.ParentChildren(puVar3, puVar3); flags |= 0x8000000; iVar2 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E188(iVar2, vData.sndList, 2); } uVar1 = 780; if (id < 0) { uVar1 = 480; } } else { uVar1 = 0; if (arg1 == 13 && GameManager.instance.DAT_1084 == 0) { vVar5 = (Vehicle)arg2; oVar5 = vVar5.target; iVar4 = vVar5.vTransform.position.x - oVar5.vTransform.position.x; if (iVar4 < 0) { iVar4 = -iVar4; } uVar1 = 0; if (iVar4 < 0x40000) { iVar4 = vVar5.vTransform.position.y - oVar5.vTransform.position.y; if (iVar4 < 0) { iVar4 = -iVar4; } uVar1 = 0; if (iVar4 < 0x40000) { iVar4 = vVar5.vTransform.position.z - oVar5.vTransform.position.z; if (iVar4 < 0) { iVar4 = -iVar4; } uVar1 = (0x3ffff < iVar4 ? 1U : 0) ^ 1; } } } } } } return(uVar1); }