public Model(bool flag, bool flag1, Model model) { aBoolean1659 = false; VertexCount = model.VertexCount; TriangleCount = model.TriangleCount; anInt1642 = model.anInt1642; if (flag) { vertices_y = new int[VertexCount]; Array.Copy(model.vertices_y, 0, vertices_y, 0, VertexCount); } else { vertices_y = model.vertices_y; } if (flag1) { anIntArray1634 = new int[TriangleCount]; anIntArray1635 = new int[TriangleCount]; anIntArray1636 = new int[TriangleCount]; for (int k = 0; k < TriangleCount; k++) { anIntArray1634[k] = model.anIntArray1634[k]; anIntArray1635[k] = model.anIntArray1635[k]; anIntArray1636[k] = model.anIntArray1636[k]; } anIntArray1637 = new int[TriangleCount]; if (model.anIntArray1637 == null) { for (int l = 0; l < TriangleCount; l++) anIntArray1637[l] = 0; } else { Array.Copy(model.anIntArray1637, 0, anIntArray1637, 0, TriangleCount); } base.aVertexNormalArray1425 = new VertexNormal[VertexCount]; for (int j1 = 0; j1 < VertexCount; j1++) { VertexNormal class33 = base.aVertexNormalArray1425[j1] = new VertexNormal(); VertexNormal class33_1 = model.aVertexNormalArray1425[j1]; class33.anInt602 = class33_1.anInt602; class33.anInt603 = class33_1.anInt603; class33.anInt604 = class33_1.anInt604; class33.anInt605 = class33_1.anInt605; } aVertexNormalArray1660 = model.aVertexNormalArray1660; } else { anIntArray1634 = model.anIntArray1634; anIntArray1635 = model.anIntArray1635; anIntArray1636 = model.anIntArray1636; anIntArray1637 = model.anIntArray1637; } vertices_x = model.vertices_x; vertices_z = model.vertices_z; anIntArray1640 = model.anIntArray1640; anIntArray1639 = model.anIntArray1639; anIntArray1638 = model.anIntArray1638; anInt1641 = model.anInt1641; anIntArray1631 = model.anIntArray1631; anIntArray1632 = model.anIntArray1632; anIntArray1633 = model.anIntArray1633; anIntArray1643 = model.anIntArray1643; anIntArray1644 = model.anIntArray1644; anIntArray1645 = model.anIntArray1645; base.modelHeight = model.modelHeight; anInt1651 = model.anInt1651; anInt1650 = model.anInt1650; anInt1653 = model.anInt1653; anInt1652 = model.anInt1652; anInt1646 = model.anInt1646; anInt1648 = model.anInt1648; anInt1649 = model.anInt1649; anInt1647 = model.anInt1647; }
public void method464(Model model, bool flag) { VertexCount = model.VertexCount; TriangleCount = model.TriangleCount; anInt1642 = model.anInt1642; if (anIntArray1622.Length < VertexCount) { anIntArray1622 = new int[VertexCount + 100]; anIntArray1623 = new int[VertexCount + 100]; anIntArray1624 = new int[VertexCount + 100]; } vertices_x = anIntArray1622; vertices_y = anIntArray1623; vertices_z = anIntArray1624; for (int k = 0; k < VertexCount; k++) { vertices_x[k] = model.vertices_x[k]; vertices_y[k] = model.vertices_y[k]; vertices_z[k] = model.vertices_z[k]; } if (flag) { anIntArray1639 = model.anIntArray1639; } else { if (anIntArray1625.Length < TriangleCount) anIntArray1625 = new int[TriangleCount + 100]; anIntArray1639 = anIntArray1625; if (model.anIntArray1639 == null) { for (int l = 0; l < TriangleCount; l++) anIntArray1639[l] = 0; } else { Array.Copy(model.anIntArray1639, 0, anIntArray1639, 0, TriangleCount); } } anIntArray1637 = model.anIntArray1637; anIntArray1640 = model.anIntArray1640; anIntArray1638 = model.anIntArray1638; anInt1641 = model.anInt1641; anIntArrayArray1658 = model.anIntArrayArray1658; anIntArrayArray1657 = model.anIntArrayArray1657; anIntArray1631 = model.anIntArray1631; anIntArray1632 = model.anIntArray1632; anIntArray1633 = model.anIntArray1633; anIntArray1634 = model.anIntArray1634; anIntArray1635 = model.anIntArray1635; anIntArray1636 = model.anIntArray1636; anIntArray1643 = model.anIntArray1643; anIntArray1644 = model.anIntArray1644; anIntArray1645 = model.anIntArray1645; }
public Model(Model[] aclass30_sub2_sub4_sub6s) { int i = 2;//was parameter aBoolean1659 = false; bool flag1 = false; bool flag2 = false; bool flag3 = false; bool flag4 = false; VertexCount = 0; TriangleCount = 0; anInt1642 = 0; anInt1641 = -1; for (int k = 0; k < i; k++) { Model model = aclass30_sub2_sub4_sub6s[k]; if (model != null) { VertexCount += model.VertexCount; TriangleCount += model.TriangleCount; anInt1642 += model.anInt1642; flag1 |= model.anIntArray1637 != null; if (model.anIntArray1638 != null) { flag2 = true; } else { if (anInt1641 == -1) anInt1641 = model.anInt1641; if (anInt1641 != model.anInt1641) flag2 = true; } flag3 |= model.anIntArray1639 != null; flag4 |= model.anIntArray1640 != null; } } vertices_x = new int[VertexCount]; vertices_y = new int[VertexCount]; vertices_z = new int[VertexCount]; anIntArray1631 = new int[TriangleCount]; anIntArray1632 = new int[TriangleCount]; anIntArray1633 = new int[TriangleCount]; anIntArray1634 = new int[TriangleCount]; anIntArray1635 = new int[TriangleCount]; anIntArray1636 = new int[TriangleCount]; anIntArray1643 = new int[anInt1642]; anIntArray1644 = new int[anInt1642]; anIntArray1645 = new int[anInt1642]; if (flag1) anIntArray1637 = new int[TriangleCount]; if (flag2) anIntArray1638 = new int[TriangleCount]; if (flag3) anIntArray1639 = new int[TriangleCount]; if (flag4) anIntArray1640 = new int[TriangleCount]; VertexCount = 0; TriangleCount = 0; anInt1642 = 0; int i1 = 0; for (int j1 = 0; j1 < i; j1++) { Model model_1 = aclass30_sub2_sub4_sub6s[j1]; if (model_1 != null) { int k1 = VertexCount; for (int l1 = 0; l1 < model_1.VertexCount; l1++) { vertices_x[VertexCount] = model_1.vertices_x[l1]; vertices_y[VertexCount] = model_1.vertices_y[l1]; vertices_z[VertexCount] = model_1.vertices_z[l1]; VertexCount++; } for (int i2 = 0; i2 < model_1.TriangleCount; i2++) { anIntArray1631[TriangleCount] = model_1.anIntArray1631[i2] + k1; anIntArray1632[TriangleCount] = model_1.anIntArray1632[i2] + k1; anIntArray1633[TriangleCount] = model_1.anIntArray1633[i2] + k1; anIntArray1634[TriangleCount] = model_1.anIntArray1634[i2]; anIntArray1635[TriangleCount] = model_1.anIntArray1635[i2]; anIntArray1636[TriangleCount] = model_1.anIntArray1636[i2]; if (flag1) if (model_1.anIntArray1637 == null) { anIntArray1637[TriangleCount] = 0; } else { int j2 = model_1.anIntArray1637[i2]; if ((j2 & 2) == 2) j2 += i1 << 2; anIntArray1637[TriangleCount] = j2; } if (flag2) if (model_1.anIntArray1638 == null) anIntArray1638[TriangleCount] = model_1.anInt1641; else anIntArray1638[TriangleCount] = model_1.anIntArray1638[i2]; if (flag3) if (model_1.anIntArray1639 == null) anIntArray1639[TriangleCount] = 0; else anIntArray1639[TriangleCount] = model_1.anIntArray1639[i2]; if (flag4 && model_1.anIntArray1640 != null) anIntArray1640[TriangleCount] = model_1.anIntArray1640[i2]; TriangleCount++; } for (int k2 = 0; k2 < model_1.anInt1642; k2++) { anIntArray1643[anInt1642] = model_1.anIntArray1643[k2] + k1; anIntArray1644[anInt1642] = model_1.anIntArray1644[k2] + k1; anIntArray1645[anInt1642] = model_1.anIntArray1645[k2] + k1; anInt1642++; } i1 += model_1.anInt1642; } } method466(); }
public Model(bool flag, bool flag1, bool flag2, Model model) { aBoolean1659 = false; VertexCount = model.VertexCount; TriangleCount = model.TriangleCount; anInt1642 = model.anInt1642; if (flag2) { vertices_x = model.vertices_x; vertices_y = model.vertices_y; vertices_z = model.vertices_z; } else { vertices_x = new int[VertexCount]; vertices_y = new int[VertexCount]; vertices_z = new int[VertexCount]; for (int j = 0; j < VertexCount; j++) { vertices_x[j] = model.vertices_x[j]; vertices_y[j] = model.vertices_y[j]; vertices_z[j] = model.vertices_z[j]; } } if (flag) { anIntArray1640 = model.anIntArray1640; } else { anIntArray1640 = new int[TriangleCount]; Array.Copy(model.anIntArray1640, 0, anIntArray1640, 0, TriangleCount); } if (flag1) { anIntArray1639 = model.anIntArray1639; } else { anIntArray1639 = new int[TriangleCount]; if (model.anIntArray1639 == null) { for (int l = 0; l < TriangleCount; l++) anIntArray1639[l] = 0; } else { Array.Copy(model.anIntArray1639, 0, anIntArray1639, 0, TriangleCount); } } anIntArray1655 = model.anIntArray1655; anIntArray1656 = model.anIntArray1656; anIntArray1637 = model.anIntArray1637; anIntArray1631 = model.anIntArray1631; anIntArray1632 = model.anIntArray1632; anIntArray1633 = model.anIntArray1633; anIntArray1638 = model.anIntArray1638; anInt1641 = model.anInt1641; anIntArray1643 = model.anIntArray1643; anIntArray1644 = model.anIntArray1644; anIntArray1645 = model.anIntArray1645; }
public Model(int i, Model[] aclass30_sub2_sub4_sub6s) { aBoolean1659 = false; bool flag = false; bool flag1 = false; bool flag2 = false; bool flag3 = false; VertexCount = 0; TriangleCount = 0; anInt1642 = 0; anInt1641 = -1; for (int k = 0; k < i; k++) { Model model = aclass30_sub2_sub4_sub6s[k]; if (model != null) { VertexCount += model.VertexCount; TriangleCount += model.TriangleCount; anInt1642 += model.anInt1642; flag |= model.anIntArray1637 != null; if (model.anIntArray1638 != null) { flag1 = true; } else { if (anInt1641 == -1) anInt1641 = model.anInt1641; if (anInt1641 != model.anInt1641) flag1 = true; } flag2 |= model.anIntArray1639 != null; flag3 |= model.anIntArray1656 != null; } } vertices_x = new int[VertexCount]; vertices_y = new int[VertexCount]; vertices_z = new int[VertexCount]; anIntArray1655 = new int[VertexCount]; anIntArray1631 = new int[TriangleCount]; anIntArray1632 = new int[TriangleCount]; anIntArray1633 = new int[TriangleCount]; anIntArray1643 = new int[anInt1642]; anIntArray1644 = new int[anInt1642]; anIntArray1645 = new int[anInt1642]; if (flag) anIntArray1637 = new int[TriangleCount]; if (flag1) anIntArray1638 = new int[TriangleCount]; if (flag2) anIntArray1639 = new int[TriangleCount]; if (flag3) anIntArray1656 = new int[TriangleCount]; anIntArray1640 = new int[TriangleCount]; VertexCount = 0; TriangleCount = 0; anInt1642 = 0; int l = 0; for (int i1 = 0; i1 < i; i1++) { Model model_1 = aclass30_sub2_sub4_sub6s[i1]; if (model_1 != null) { for (int j1 = 0; j1 < model_1.TriangleCount; j1++) { if (flag) if (model_1.anIntArray1637 == null) { anIntArray1637[TriangleCount] = 0; } else { int k1 = model_1.anIntArray1637[j1]; if ((k1 & 2) == 2) k1 += l << 2; anIntArray1637[TriangleCount] = k1; } if (flag1) if (model_1.anIntArray1638 == null) anIntArray1638[TriangleCount] = model_1.anInt1641; else anIntArray1638[TriangleCount] = model_1.anIntArray1638[j1]; if (flag2) if (model_1.anIntArray1639 == null) anIntArray1639[TriangleCount] = 0; else anIntArray1639[TriangleCount] = model_1.anIntArray1639[j1]; if (flag3 && model_1.anIntArray1656 != null) anIntArray1656[TriangleCount] = model_1.anIntArray1656[j1]; anIntArray1640[TriangleCount] = model_1.anIntArray1640[j1]; anIntArray1631[TriangleCount] = method465(model_1, model_1.anIntArray1631[j1]); anIntArray1632[TriangleCount] = method465(model_1, model_1.anIntArray1632[j1]); anIntArray1633[TriangleCount] = method465(model_1, model_1.anIntArray1633[j1]); TriangleCount++; } for (int l1 = 0; l1 < model_1.anInt1642; l1++) { anIntArray1643[anInt1642] = method465(model_1, model_1.anIntArray1643[l1]); anIntArray1644[anInt1642] = method465(model_1, model_1.anIntArray1644[l1]); anIntArray1645[anInt1642] = method465(model_1, model_1.anIntArray1645[l1]); anInt1642++; } l += model_1.anInt1642; } } }
private int method465(Model model, int i) { int j = -1; int k = model.vertices_x[i]; int l = model.vertices_y[i]; int i1 = model.vertices_z[i]; for (int j1 = 0; j1 < VertexCount; j1++) { if (k != vertices_x[j1] || l != vertices_y[j1] || i1 != vertices_z[j1]) continue; j = j1; break; } if (j == -1) { vertices_x[VertexCount] = k; vertices_y[VertexCount] = l; vertices_z[VertexCount] = i1; if (model.anIntArray1655 != null) anIntArray1655[VertexCount] = model.anIntArray1655[i]; j = VertexCount++; } return j; }
private void method308(Model model, Model model_1, int i, int j, int k, bool flag) { anInt488++; int l = 0; int[] ai = model_1.vertices_x; int i1 = model_1.VertexCount; for (int j1 = 0; j1 < model.VertexCount; j1++) { VertexNormal class33 = model.aVertexNormalArray1425[j1]; VertexNormal class33_1 = model.aVertexNormalArray1660[j1]; if (class33_1.anInt605 != 0) { int i2 = model.vertices_y[j1] - j; if (i2 <= model_1.anInt1651) { int j2 = model.vertices_x[j1] - i; if (j2 >= model_1.anInt1646 && j2 <= model_1.anInt1647) { int k2 = model.vertices_z[j1] - k; if (k2 >= model_1.anInt1649 && k2 <= model_1.anInt1648) { for (int l2 = 0; l2 < i1; l2++) { VertexNormal class33_2 = model_1.aVertexNormalArray1425[l2]; VertexNormal class33_3 = model_1.aVertexNormalArray1660[l2]; if (j2 == ai[l2] && k2 == model_1.vertices_z[l2] && i2 == model_1.vertices_y[l2] && class33_3.anInt605 != 0) { class33.anInt602 += class33_3.anInt602; class33.anInt603 += class33_3.anInt603; class33.anInt604 += class33_3.anInt604; class33.anInt605 += class33_3.anInt605; class33_2.anInt602 += class33_1.anInt602; class33_2.anInt603 += class33_1.anInt603; class33_2.anInt604 += class33_1.anInt604; class33_2.anInt605 += class33_1.anInt605; l++; anIntArray486[j1] = anInt488; anIntArray487[l2] = anInt488; } } } } } } } if (l < 3 || !flag) return; for (int k1 = 0; k1 < model.TriangleCount; k1++) if (anIntArray486[model.anIntArray1631[k1]] == anInt488 && anIntArray486[model.anIntArray1632[k1]] == anInt488 && anIntArray486[model.anIntArray1633[k1]] == anInt488) model.anIntArray1637[k1] = -1; for (int l1 = 0; l1 < model_1.TriangleCount; l1++) if (anIntArray487[model_1.anIntArray1631[l1]] == anInt488 && anIntArray487[model_1.anIntArray1632[l1]] == anInt488 && anIntArray487[model_1.anIntArray1633[l1]] == anInt488) model_1.anIntArray1637[l1] = -1; }
private void method307(int i, int j, int k, int l, int i1, Model model) { bool flag = true; int j1 = l; int k1 = l + j; int l1 = i1 - 1; int i2 = i1 + k; for (int j2 = i; j2 <= i + 1; j2++) if (j2 != anInt437) { for (int k2 = j1; k2 <= k1; k2++) if (k2 >= 0 && k2 < anInt438) { for (int l2 = l1; l2 <= i2; l2++) if (l2 >= 0 && l2 < anInt439 && (!flag || k2 >= k1 || l2 >= i2 || l2 < i1 && k2 != l)) { Ground class30_sub3 = groundArray[j2][k2][l2]; if (class30_sub3 != null) { int i3 = (anIntArrayArrayArray440[j2][k2][l2] + anIntArrayArrayArray440[j2][k2 + 1][l2] + anIntArrayArrayArray440[j2][k2][l2 + 1] + anIntArrayArrayArray440[j2][k2 + 1][l2 + 1]) / 4 - (anIntArrayArrayArray440[i][l][i1] + anIntArrayArrayArray440[i][l + 1][i1] + anIntArrayArrayArray440[i][l][i1 + 1] + anIntArrayArrayArray440[i][l + 1][i1 + 1]) / 4; Object1 class10 = class30_sub3.obj1; if (class10 != null && class10.aClass30_Sub2_Sub4_278 != null && class10.aClass30_Sub2_Sub4_278.aVertexNormalArray1425 != null) method308(model, (Model)class10.aClass30_Sub2_Sub4_278, (k2 - l) * 128 + (1 - j) * 64, i3, (l2 - i1) * 128 + (1 - k) * 64, flag); if (class10 != null && class10.aClass30_Sub2_Sub4_279 != null && class10.aClass30_Sub2_Sub4_279.aVertexNormalArray1425 != null) method308(model, (Model)class10.aClass30_Sub2_Sub4_279, (k2 - l) * 128 + (1 - j) * 64, i3, (l2 - i1) * 128 + (1 - k) * 64, flag); for (int j3 = 0; j3 < class30_sub3.anInt1317; j3++) { Object5 class28 = class30_sub3.obj5Array[j3]; if (class28 != null && class28.aClass30_Sub2_Sub4_521 != null && class28.aClass30_Sub2_Sub4_521.aVertexNormalArray1425 != null) { int k3 = (class28.anInt524 - class28.anInt523) + 1; int l3 = (class28.anInt526 - class28.anInt525) + 1; method308(model, (Model)class28.aClass30_Sub2_Sub4_521, (class28.anInt523 - l) * 128 + (k3 - j) * 64, i3, (class28.anInt525 - i1) * 128 + (l3 - k) * 64, flag); } } } } } j1--; flag = false; } }
private void method306(int i, int j, Model model, int k) { if (i < anInt438) { Ground class30_sub3 = groundArray[j][i + 1][k]; if (class30_sub3 != null && class30_sub3.obj3 != null && class30_sub3.obj3.aClass30_Sub2_Sub4_814.aVertexNormalArray1425 != null) method308(model, (Model)class30_sub3.obj3.aClass30_Sub2_Sub4_814, 128, 0, 0, true); } if (k < anInt438) { Ground class30_sub3_1 = groundArray[j][i][k + 1]; if (class30_sub3_1 != null && class30_sub3_1.obj3 != null && class30_sub3_1.obj3.aClass30_Sub2_Sub4_814.aVertexNormalArray1425 != null) method308(model, (Model)class30_sub3_1.obj3.aClass30_Sub2_Sub4_814, 0, 0, 128, true); } if (i < anInt438 && k < anInt439) { Ground class30_sub3_2 = groundArray[j][i + 1][k + 1]; if (class30_sub3_2 != null && class30_sub3_2.obj3 != null && class30_sub3_2.obj3.aClass30_Sub2_Sub4_814.aVertexNormalArray1425 != null) method308(model, (Model)class30_sub3_2.obj3.aClass30_Sub2_Sub4_814, 128, 0, 128, true); } if (i < anInt438 && k > 0) { Ground class30_sub3_3 = groundArray[j][i + 1][k - 1]; if (class30_sub3_3 != null && class30_sub3_3.obj3 != null && class30_sub3_3.obj3.aClass30_Sub2_Sub4_814.aVertexNormalArray1425 != null) method308(model, (Model)class30_sub3_3.obj3.aClass30_Sub2_Sub4_814, 128, 0, -128, true); } }