/*private VigObject FUN_2BF44(ConfigContainer container, Type component) * { * obj[currentID].flags = (uint)((configContainers[container].flag & 0x800) != 0 ? 1 : 0) << 4; * obj[currentID].vr = configContainers[container].v3_2; * obj[currentID].screen = configContainers[container].v3_1; * obj[currentID].vData = this; * * if ((configContainers[container].flag & 0x7FF) < 0x7FF) * { * //apply 3d model; not necessery since it's been applied from the inspector * } * * if (-1 < configContainers[container].colliderID) * { * //apply collider; not necessery since it's been applied from the inspector * } * * return obj[currentID]; * }*/ public VigObject FUN_2BF44(ConfigContainer container, Type component) { ushort uVar2; VigObject oVar3; VigMesh mVar4; GameObject obj = new GameObject(); oVar3 = obj.AddComponent(component) as VigObject; uVar2 = container.flag; oVar3.flags = (uint)((uVar2 & 0x800) != 0 ? 1 : 0) << 4; oVar3.vr = container.v3_2; oVar3.screen = container.v3_1; oVar3.vData = xobf; if ((uVar2 & 0x7ff) < 0x7ff) { mVar4 = xobf.FUN_1FD18(obj, (uint)(uVar2 & 0x7ff), true); oVar3.vMesh = mVar4; } if (-1 < container.colliderID) { VigCollider vCollider = xobf.cbbList[container.colliderID]; oVar3.vCollider = new VigCollider(vCollider.buffer); } return(oVar3); }
private static void FUN_1E78() { VigObject oVar1; ConfigContainer ccVar2; LaunchRocket3 ppcVar3; VigCollider pcVar4; int iVar5; oVar1 = GameManager.instance.FUN_318D0(49); iVar5 = 0; if (oVar1 != null) { do { ccVar2 = oVar1.FUN_2C5F4((ushort)(iVar5 - 0x8000 & 0xffff)); if (ccVar2 != null) { GameObject obj = new GameObject(); ppcVar3 = obj.AddComponent <LaunchRocket3>(); if (ppcVar3 != null) { pcVar4 = null; if (-1 < ccVar2.colliderID) { pcVar4 = new VigCollider(oVar1.vData.cbbList[ccVar2.colliderID].buffer); } ppcVar3.vCollider = pcVar4; ppcVar3.vTransform = GameManager.instance.FUN_2CEAC(oVar1, ccVar2); ppcVar3.flags = 0x182; ppcVar3.type = 3; ppcVar3.FUN_305FC(); ppcVar3.DAT_58 = 0xd0000; GameManager.instance.FUN_30CB0(ppcVar3, 180); } } iVar5++; } while (iVar5 < 2); } }
public override uint UpdateW(VigObject arg1, int arg2, int arg3) { sbyte sVar1; int iVar2; TileData tVar2; VigObject oVar2; VigCamera cVar2; VigObject oVar3; Spark puVar4; VigObject oVar5; int iVar6; ConfigContainer ccVar6; VigCollider cVar6; Vehicle vVar7; VigCamera cVar8; Vector3Int local_18; switch (arg2) { case 18: if (arg3 != 0 && arg1.type == 8) { tVar2 = GameManager.instance.terrain.GetTileByPosition((uint)arg1.vTransform.position.x, (uint)arg1.vTransform.position.z); if (tVar2.DAT_10[3] == 1) { GameObject obj = new GameObject(); puVar4 = obj.AddComponent <Spark>(); oVar2 = LevelManager.instance.xobfList[19].ini.FUN_2C17C(153, typeof(VigObject), 8); Utilities.ParentChildren(oVar2, oVar2); oVar3 = LevelManager.instance.xobfList[19].ini.FUN_2C17C(51, typeof(VigObject), 8); Utilities.ParentChildren(oVar3, oVar3); oVar5 = GameManager.instance.FUN_320DC(arg1.vTransform.position, 0); oVar3.vTransform = GameManager.FUN_2A39C(); oVar2.vTransform = GameManager.FUN_2A39C(); oVar2.flags = 0x10; Utilities.FUN_2CC9C(puVar4, oVar2); oVar2.transform.parent = puVar4.transform; Utilities.FUN_2CC9C(puVar4, oVar3); oVar3.transform.parent = puVar4.transform; puVar4.flags = 0x84; puVar4.type = 3; puVar4.screen = arg1.vTransform.position; cVar6 = new VigCollider(oVar2.vCollider.reader.GetBuffer()); puVar4.physics1.M6 = 0x1000; puVar4.vCollider = cVar6; Utilities.FUN_2A168(out local_18, arg1.vTransform.position, oVar5.vTransform.position); //originally - oVar5.screen iVar2 = local_18.x * 3051; if (iVar2 < 0) { iVar2 += 4095; } puVar4.physics1.X = iVar2 >> 12; puVar4.physics1.Y = 0; iVar2 = local_18.z * 3051; if (iVar2 < 0) { iVar2 += 4095; } puVar4.physics1.Z = iVar2 >> 12; puVar4.FUN_3066C(); sVar1 = (sbyte)GameManager.instance.FUN_1DD9C(); puVar4.DAT_18 = sVar1; GameManager.instance.FUN_1E580(sVar1, LevelManager.instance.xobfList[42].sndList, 0, arg1.vTransform.position, true); return(0); } } GameManager.instance.FUN_327CC(arg1); return(0); case 19: iVar2 = (int)GameManager.FUN_2AC5C(); oVar3 = GameManager.instance.FUN_318D0((iVar2 * 3 >> 15) + 40); ccVar6 = oVar3.FUN_2C5F4(0x8000); arg1.vTransform = GameManager.instance.FUN_2CEAC(oVar3, ccVar6); arg1.screen = arg1.vTransform.position; iVar2 = arg1.vTransform.rotation.V02 * 7629; arg1.flags |= 0x20; if (iVar2 < 0) { iVar2 += 31; } arg1.physics1.X = iVar2 >> 5; iVar2 = arg1.vTransform.rotation.V12 * 7629; if (iVar2 < 0) { iVar2 += 31; } arg1.physics1.Y = iVar2 >> 5; iVar2 = arg1.vTransform.rotation.V22 * 7629; if (iVar2 < 0) { iVar2 += 31; } arg1.physics1.Z = iVar2 >> 5; arg1.physics2.X = 0; arg1.physics2.Y = 0; arg1.physics2.Z = 0; iVar6 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E580(iVar6, GameManager.instance.DAT_C2C, 37, arg1.vTransform.position); vVar7 = (Vehicle)arg1; cVar2 = vVar7.vCamera; if (cVar2 != null) { oVar3 = GameManager.instance.FUN_30250(GameManager.instance.DAT_1078, oVar3.id + 472); oVar3.tags = 90; oVar3.maxHalfHealth = 0x100; GameManager.instance.FUN_30CB0(cVar2, oVar3.tags); cVar2.screen = oVar3.screen; cVar8 = LevelManager.instance.FUN_4B984(vVar7, oVar3); vVar7.vCamera = cVar8; LevelManager.instance.defaultCamera.transform.SetParent(cVar8.transform, false); cVar8.FUN_30B78(); } vVar7.state = _VEHICLE_TYPE.MilTunnel; GameManager.instance.FUN_30CB0(vVar7, 30); return(0xffffffff); } return(0); }
public new VigObject FUN_2C344(XOBF_DB param1, ushort param2, uint param3) { VigMesh mVar1; int iVar2; VigObject oVar3; BufferedBinaryReader brVar4; ConfigContainer puVar5; puVar5 = param1.ini.configContainers[param2]; if ((puVar5.flag & 0x7ff) == 0x7ff) { vMesh = null; } else { mVar1 = param1.FUN_1FD18(gameObject, puVar5.flag & 0x7ffU, true); vMesh = mVar1; } if (puVar5.colliderID < 0) { vCollider = null; } else { VigCollider collider = param1.cbbList[puVar5.colliderID]; vCollider = new VigCollider(collider.buffer); } vData = param1; DAT_1A = (short)param2; if ((param3 & 8) == 0) { vAnim = null; } else { brVar4 = new BufferedBinaryReader(param1.animations); if (brVar4.GetBuffer() != null) { iVar2 = brVar4.ReadInt32(param2 * 4 + 4); if (iVar2 != 0) { brVar4.Seek(iVar2, SeekOrigin.Begin); } else { brVar4 = null; } } else { brVar4 = null; } vAnim = brVar4; } DAT_4A = GameManager.instance.timer; if ((param3 & 2) == 0 && puVar5.next != 0xffff) { oVar3 = param1.ini.FUN_2C17C_3(puVar5.next, typeof(WheelChild), param3 | 0x21); child2 = oVar3; if (oVar3 != null) { oVar3.ApplyTransformation(); child2.parent = this; } } else { child2 = null; } return(this); }
private void FUN_1BB4() { sbyte sVar1; VigTransform puVar2; LaunchRocket ppcVar3; LaunchRocket2 ppcVar4; ConfigContainer ccVar5; VigCollider pcVar6; LaunchRocket3 ppcVar6; sbyte sVar7; VigObject oVar11; ConfigContainer ccVar11; int iVar12; oVar11 = child2; if (oVar11 != null) { do { if (oVar11.id == 1) { break; } oVar11 = oVar11.child; } while (oVar11 != null); if (oVar11 != null) { puVar2 = GameManager.instance.FUN_2CDF4(oVar11); oVar11.vTransform = puVar2; oVar11.FUN_2CCBC(); ppcVar3 = Utilities.FUN_52188(oVar11, typeof(LaunchRocket)) as LaunchRocket; ppcVar3.flags |= 0x80; sVar7 = 0; if (tags == 5) { sVar7 = 10; } ppcVar3.tags = sVar7; ppcVar3.FUN_305FC(); GameManager.instance.FUN_30CB0(ppcVar3, 60); sVar1 = (sbyte)GameManager.instance.FUN_1DD9C(); ppcVar3.DAT_18 = sVar1; GameManager.instance.FUN_1E628(sVar1, ppcVar3.vData.sndList, 2, vTransform.position, true); ccVar11 = ppcVar3.FUN_2C5F4(0x8000); if (ccVar11 != null) { ppcVar4 = ppcVar3.vData.ini.FUN_2C17C(25, typeof(LaunchRocket2), 8) as LaunchRocket2; if (ppcVar4 != null) { ppcVar4.type = 3; Utilities.FUN_2CA94(ppcVar3, ccVar11, ppcVar4); Utilities.ParentChildren(ppcVar3, ppcVar3); ppcVar4.FUN_30BF0(); sVar1 = (sbyte)GameManager.instance.FUN_1DD9C(); ppcVar4.DAT_18 = sVar1; GameManager.instance.FUN_1E580(sVar1, ppcVar4.vData.sndList, 2, ppcVar4.vTransform.position, true); } } if (tags != 5) { oVar11 = GameManager.instance.FUN_318D0(49); iVar12 = 0; if (oVar11 != null) { do { ccVar5 = oVar11.FUN_2C5F4((ushort)(iVar12 - 0x8000 & 0xffff)); if (ccVar5 != null) { GameObject obj = new GameObject(); ppcVar6 = obj.AddComponent <LaunchRocket3>(); if (ppcVar6 != null) { pcVar6 = null; if (-1 < ccVar5.colliderID) { pcVar6 = new VigCollider(oVar11.vData.cbbList[ccVar5.colliderID].buffer); } ppcVar6.vCollider = pcVar6; ppcVar6.vTransform = GameManager.instance.FUN_2CEAC(oVar11, ccVar5); ppcVar6.flags = 0x182; ppcVar6.type = 3; ppcVar6.FUN_305FC(); ppcVar6.DAT_58 = 0xd0000; GameManager.instance.FUN_30CB0(ppcVar6, 180); } } iVar12++; } while (iVar12 < 2); } } //FUN_326B0 //FUN_32758 } } }
public override uint UpdateW(int arg1, int arg2) { short sVar1; short sVar2; ushort uVar2; uint uVar3; int iVar4; ConfigContainer ccVar4; Laser2 ppcVar5; Vector3Int local_88; if (arg1 < 4) { uVar3 = 0; if (arg1 == 0) { vTransform.position.x += physics1.Z; vTransform.position.y += physics1.W; vTransform.position.z += physics2.X; screen = vTransform.position; sVar1 = physics2.M3; physics2.M3 = (short)(sVar1 - 1); uVar3 = 0; if (sVar1 == 1) { if (physics2.M2 == 0) { uVar3 = 0; } else { local_88 = Utilities.FUN_24148(vTransform, new Vector3Int(0xf, 0x16, 0x18b81)); iVar4 = GameManager.instance.terrain.FUN_1B750((uint)local_88.x, (uint)local_88.z); if (local_88.y < iVar4) { ppcVar5 = vData.ini.FUN_2C17C((ushort)DAT_1A, typeof(Laser2), 8) as Laser2; sVar2 = id; ppcVar5.type = 8; ppcVar5.flags = 0x84; ppcVar5.id = sVar2; uVar2 = maxHalfHealth; ppcVar5.maxHalfHealth = uVar2; ppcVar5.FUN_3066C(); sVar1 = physics2.M2; ppcVar5.physics2.M3 = 3; ppcVar5.physics2.M2 = (short)(sVar1 - 1); ppcVar5.physics1.Z = physics1.Z; ppcVar5.physics1.W = physics1.W; ppcVar5.physics2.X = physics2.X; ppcVar5.DAT_80 = DAT_80; ppcVar5.vTransform = vTransform; ppcVar5.vTransform.position = local_88; uVar3 = 0; } else { local_88.y = iVar4; LevelManager.instance.FUN_4DE54(local_88, 143); uVar3 = 0; } } } } if (arg1 == 1) { vCollider = new VigCollider(COLLDR); } } else { uVar3 = 0; } return(uVar3); }
public override uint UpdateW(int arg1, VigObject arg2) { VigTransform tVar1; int iVar2; VigMesh mVar2; VigObject oVar3; Vector3Int iStack24; Vector3Int sStack8; if (arg1 == 5) { tVar1 = GameManager.instance.FUN_2CDF4(this); GameObject obj = new GameObject(); oVar3 = obj.AddComponent <VigObject>(); Utilities.FUN_2CC9C(this, oVar3); Utilities.ParentChildren(this, this); mVar2 = vMesh; oVar3.flags |= 0x410; //oVar3.vMesh = mVar2; oVar3.vTransform.rotation = vTransform.rotation; oVar3.vMesh = vData.FUN_1FD18(obj, mVar2.tmdID, true); Destroy(vMesh.GetRenderer()); vMesh = null; vCollider = new VigCollider(DAT_20); flags |= 0x80; FUN_30C20(); vTransform = GameManager.FUN_2A39C(); vTransform.position = tVar1.position; oVar3 = DAT_84; if (oVar3 == null) { Vector3Int v3 = Utilities.FUN_24094(tVar1.rotation, screen); physics1.Z = v3.x; physics1.W = v3.y; physics2.X = v3.z; physics1.Z = (physics1.Z << 9) >> 12; physics1.W = (physics1.W << 9) >> 12; physics2.X = (physics2.X << 9) >> 12; } else { iStack24 = new Vector3Int(); iStack24.x = oVar3.screen.x - tVar1.position.x; iStack24.y = oVar3.screen.y - tVar1.position.y; iStack24.z = oVar3.screen.z - tVar1.position.z; Utilities.FUN_29FC8(iStack24, out sStack8); physics1.Z = sStack8.x * 0x5968 >> 12; physics1.W = sStack8.y * 0x5968 >> 12; physics2.X = sStack8.z * 0x5968 >> 12; } FUN_2CCBC(); transform.parent = null; FUN_305FC(); iVar2 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E628(iVar2, vData.sndList, 3, tVar1.position); UIManager.instance.FUN_4E414(tVar1.position, DAT_950[tags]); return(0xffffffff); } return(0); }