Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 90.83 KB | None | 0 0
  1. public class Model extends Animable {
  2.  
  3. public static void nullLoader() {
  4. aClass21Array1661 = null;
  5. aBooleanArray1663 = null;
  6. aBooleanArray1664 = null;
  7. anIntArray1665 = null;
  8. anIntArray1666 = null;
  9. anIntArray1667 = null;
  10. anIntArray1668 = null;
  11. anIntArray1669 = null;
  12. anIntArray1670 = null;
  13. anIntArray1671 = null;
  14. anIntArrayArray1672 = null;
  15. anIntArray1673 = null;
  16. anIntArrayArray1674 = null;
  17. anIntArray1675 = null;
  18. anIntArray1676 = null;
  19. anIntArray1677 = null;
  20. modelIntArray1 = null;
  21. modelIntArray2 = null;
  22. modelIntArray3 = null;
  23. modelIntArray4 = null;
  24. }
  25.  
  26. public static void method459(int i, OnDemandFetcherParent onDemandFetcherParent) {
  27. aClass21Array1661 = new Class21[i + 500000];
  28. aOnDemandFetcherParent_1662 = onDemandFetcherParent;
  29. }
  30.  
  31. private Model(int modelId) {
  32. byte[] is = aClass21Array1661[modelId].aByteArray368;
  33. if (is[is.length - 1] == -1 && is[is.length - 2] == -1)
  34. readNewModel(is, modelId);
  35. else
  36. readOldModel(modelId);
  37. }
  38.  
  39. public static void method460(byte abyte0[], int j) {
  40. if (abyte0 == null) {
  41. Class21 class21 = aClass21Array1661[j] = new Class21();
  42. class21.anInt369 = 0;
  43. class21.anInt370 = 0;
  44. class21.anInt371 = 0;
  45. return;
  46. }
  47. Buffer stream = new Buffer(abyte0);
  48. stream.currentOffset = abyte0.length - 18;
  49. Class21 class21_1 = aClass21Array1661[j] = new Class21();
  50. class21_1.aByteArray368 = abyte0;
  51. class21_1.anInt369 = stream.readShort();
  52. class21_1.anInt370 = stream.readShort();
  53. class21_1.anInt371 = stream.readUnsignedByte();
  54. int k = stream.readUnsignedByte();
  55. int l = stream.readUnsignedByte();
  56. int i1 = stream.readUnsignedByte();
  57. int j1 = stream.readUnsignedByte();
  58. int k1 = stream.readUnsignedByte();
  59. int l1 = stream.readShort();
  60. int i2 = stream.readShort();
  61. int j2 = stream.readShort();
  62. int k2 = stream.readShort();
  63. int l2 = 0;
  64. class21_1.anInt372 = l2;
  65. l2 += class21_1.anInt369;
  66. class21_1.anInt378 = l2;
  67. l2 += class21_1.anInt370;
  68. class21_1.anInt381 = l2;
  69. if (l == 255)
  70. l2 += class21_1.anInt370;
  71. else
  72. class21_1.anInt381 = -l - 1;
  73. class21_1.anInt383 = l2;
  74. if (j1 == 1)
  75. l2 += class21_1.anInt370;
  76. else
  77. class21_1.anInt383 = -1;
  78. class21_1.anInt380 = l2;
  79. if (k == 1)
  80. l2 += class21_1.anInt370;
  81. else
  82. class21_1.anInt380 = -1;
  83. class21_1.anInt376 = l2;
  84. if (k1 == 1)
  85. l2 += class21_1.anInt369;
  86. else
  87. class21_1.anInt376 = -1;
  88. class21_1.anInt382 = l2;
  89. if (i1 == 1)
  90. l2 += class21_1.anInt370;
  91. else
  92. class21_1.anInt382 = -1;
  93. class21_1.anInt377 = l2;
  94. l2 += k2;
  95. class21_1.anInt379 = l2;
  96. l2 += class21_1.anInt370 * 2;
  97. class21_1.anInt384 = l2;
  98. l2 += class21_1.anInt371 * 6;
  99. class21_1.anInt373 = l2;
  100. l2 += l1;
  101. class21_1.anInt374 = l2;
  102. l2 += i2;
  103. class21_1.anInt375 = l2;
  104. l2 += j2;
  105. }
  106.  
  107. private void readOldModel(int i) {
  108. aBoolean1659 = false;
  109. Class21 class21 = aClass21Array1661[i];
  110. anInt1626 = class21.anInt369;
  111. anInt1630 = class21.anInt370;
  112. anInt1642 = class21.anInt371;
  113. anIntArray1627 = new int[anInt1626];
  114. anIntArray1628 = new int[anInt1626];
  115. anIntArray1629 = new int[anInt1626];
  116. anIntArray1631 = new int[anInt1630];
  117. anIntArray1632 = new int[anInt1630];
  118. anIntArray1633 = new int[anInt1630];
  119. anIntArray1643 = new int[anInt1642];
  120. anIntArray1644 = new int[anInt1642];
  121. anIntArray1645 = new int[anInt1642];
  122. if (class21.anInt376 >= 0)
  123. anIntArray1655 = new int[anInt1626];
  124. if (class21.anInt380 >= 0)
  125. anIntArray1637 = new int[anInt1630];
  126. if (class21.anInt381 >= 0)
  127. anIntArray1638 = new int[anInt1630];
  128. else
  129. anInt1641 = -class21.anInt381 - 1;
  130. if (class21.anInt382 >= 0)
  131. anIntArray1639 = new int[anInt1630];
  132. if (class21.anInt383 >= 0)
  133. anIntArray1656 = new int[anInt1630];
  134. anIntArray1640 = new int[anInt1630];
  135. Buffer stream = new Buffer(class21.aByteArray368);
  136. stream.currentOffset = class21.anInt372;
  137. Buffer stream_1 = new Buffer(class21.aByteArray368);
  138. stream_1.currentOffset = class21.anInt373;
  139. Buffer stream_2 = new Buffer(class21.aByteArray368);
  140. stream_2.currentOffset = class21.anInt374;
  141. Buffer stream_3 = new Buffer(class21.aByteArray368);
  142. stream_3.currentOffset = class21.anInt375;
  143. Buffer stream_4 = new Buffer(class21.aByteArray368);
  144. stream_4.currentOffset = class21.anInt376;
  145. int k = 0;
  146. int l = 0;
  147. int i1 = 0;
  148. for (int j1 = 0; j1 < anInt1626; j1++) {
  149. int k1 = stream.readUnsignedByte();
  150. int i2 = 0;
  151. if ((k1 & 1) != 0)
  152. i2 = stream_1.method421();
  153. int k2 = 0;
  154. if ((k1 & 2) != 0)
  155. k2 = stream_2.method421();
  156. int i3 = 0;
  157. if ((k1 & 4) != 0)
  158. i3 = stream_3.method421();
  159. anIntArray1627[j1] = k + i2;
  160. anIntArray1628[j1] = l + k2;
  161. anIntArray1629[j1] = i1 + i3;
  162. k = anIntArray1627[j1];
  163. l = anIntArray1628[j1];
  164. i1 = anIntArray1629[j1];
  165. if (anIntArray1655 != null)
  166. anIntArray1655[j1] = stream_4.readUnsignedByte();
  167. }
  168. stream.currentOffset = class21.anInt379;
  169. stream_1.currentOffset = class21.anInt380;
  170. stream_2.currentOffset = class21.anInt381;
  171. stream_3.currentOffset = class21.anInt382;
  172. stream_4.currentOffset = class21.anInt383;
  173. for (int l1 = 0; l1 < anInt1630; l1++) {
  174. anIntArray1640[l1] = stream.readShort();
  175. if (anIntArray1637 != null)
  176. anIntArray1637[l1] = stream_1.readUnsignedByte();
  177. if (anIntArray1638 != null)
  178. anIntArray1638[l1] = stream_2.readUnsignedByte();
  179. if (anIntArray1639 != null)
  180. anIntArray1639[l1] = stream_3.readUnsignedByte();
  181. if (anIntArray1656 != null)
  182. anIntArray1656[l1] = stream_4.readUnsignedByte();
  183. }
  184. stream.currentOffset = class21.anInt377;
  185. stream_1.currentOffset = class21.anInt378;
  186. int j2 = 0;
  187. int l2 = 0;
  188. int j3 = 0;
  189. int k3 = 0;
  190. for (int l3 = 0; l3 < anInt1630; l3++) {
  191. int i4 = stream_1.readUnsignedByte();
  192. if (i4 == 1) {
  193. j2 = stream.method421() + k3;
  194. k3 = j2;
  195. l2 = stream.method421() + k3;
  196. k3 = l2;
  197. j3 = stream.method421() + k3;
  198. k3 = j3;
  199. anIntArray1631[l3] = j2;
  200. anIntArray1632[l3] = l2;
  201. anIntArray1633[l3] = j3;
  202. }
  203. if (i4 == 2) {
  204. j2 = j2;
  205. l2 = j3;
  206. j3 = stream.method421() + k3;
  207. k3 = j3;
  208. anIntArray1631[l3] = j2;
  209. anIntArray1632[l3] = l2;
  210. anIntArray1633[l3] = j3;
  211. }
  212. if (i4 == 3) {
  213. j2 = j3;
  214. l2 = l2;
  215. j3 = stream.method421() + k3;
  216. k3 = j3;
  217. anIntArray1631[l3] = j2;
  218. anIntArray1632[l3] = l2;
  219. anIntArray1633[l3] = j3;
  220. }
  221. if (i4 == 4) {
  222. int k4 = j2;
  223. j2 = l2;
  224. l2 = k4;
  225. j3 = stream.method421() + k3;
  226. k3 = j3;
  227. anIntArray1631[l3] = j2;
  228. anIntArray1632[l3] = l2;
  229. anIntArray1633[l3] = j3;
  230. }
  231. }
  232. stream.currentOffset = class21.anInt384;
  233. for (int j4 = 0; j4 < anInt1642; j4++) {
  234. anIntArray1643[j4] = stream.readShort();
  235. anIntArray1644[j4] = stream.readShort();
  236. anIntArray1645[j4] = stream.readShort();
  237. }
  238. }
  239.  
  240.  
  241. public void readNewModel(byte[] is, int modelId) {
  242. Buffer nc1 = new Buffer(is);
  243. Buffer nc2 = new Buffer(is);
  244. Buffer nc3 = new Buffer(is);
  245. Buffer nc4 = new Buffer(is);
  246. Buffer nc5 = new Buffer(is);
  247. Buffer nc6 = new Buffer(is);
  248. Buffer nc7 = new Buffer(is);
  249. nc1.currentOffset = is.length - 23;
  250. int numVertices = nc1.readShort();
  251. int numTriangles = nc1.readShort();
  252. int numTexTriangles = nc1.readUnsignedByte();
  253. Class21 ModelDef_1 = aClass21Array1661[modelId] = new Class21();
  254. ModelDef_1.aByteArray368 = is;
  255. ModelDef_1.anInt369 = numVertices;
  256. ModelDef_1.anInt370 = numTriangles;
  257. ModelDef_1.anInt371 = numTexTriangles;
  258. int i_12_ = nc1.readUnsignedByte();
  259. int i_13_ = nc1.readUnsignedByte();
  260. int i_14_ = nc1.readUnsignedByte();
  261. int i_15_ = nc1.readUnsignedByte();
  262. int i_16_ = nc1.readUnsignedByte();
  263. int i_17_ = nc1.readUnsignedByte();
  264. int i_18_ = nc1.readShort();
  265. int i_19_ = nc1.readShort();
  266. int i_20_ = nc1.readShort();
  267. int i_21_ = nc1.readShort();
  268. int i_22_ = nc1.readShort();
  269. int i_23_ = 0;
  270. int i_24_ = 0;
  271. int i_25_ = 0;
  272. int v = 0;
  273. int hb = 0;
  274. int P = 0;
  275. byte G = 0;
  276. byte[] x = null;
  277. byte[] O = null;
  278. byte[] J = null;
  279. byte[] F = null;
  280. byte[] cb = null;
  281. byte[] gb = null;
  282. byte[] lb = null;
  283. int[] ab = null;
  284. int[] kb = null;
  285. int[] y = null;
  286. int[] N = null;
  287. short[] D = null;
  288. int[] texTrianglesPoint1 = null;
  289. int[] texTrianglesPoint2 = null;
  290. int[] texTrianglesPoint3 = null;
  291. int[] vertexX = new int[numVertices];
  292. int[] vertexY = new int[numVertices];
  293. int[] vertexZ = new int[numVertices];
  294. int[] facePoint1 = new int[numTriangles];
  295. int[] facePoint2 = new int[numTriangles];
  296. int[] facePoint3 = new int[numTriangles];
  297. int[] triangleColours2 = new int[numTriangles];
  298. if (numTexTriangles > 0) {
  299. O = new byte[numTexTriangles];
  300. nc1.currentOffset = 0;
  301. for (int i_26_ = 0; i_26_ < numTexTriangles; i_26_++) {
  302. byte i_27_ = O[i_26_] = nc1.readByte();
  303. if (i_27_ == 0)
  304. i_23_++;
  305. if (i_27_ >= 1 && i_27_ <= 3)
  306. i_24_++;
  307. if (i_27_ == 2)
  308. i_25_++;
  309. }
  310. }
  311. int i_28_ = numTexTriangles;
  312. int i_29_ = i_28_;
  313. i_28_ += numVertices;
  314. int i_30_ = i_28_;
  315. if (i_12_ == 1)
  316. i_28_ += numTriangles;
  317. int i_31_ = i_28_;
  318. i_28_ += numTriangles;
  319. int i_32_ = i_28_;
  320. if (i_13_ == 255)
  321. i_28_ += numTriangles;
  322. int i_33_ = i_28_;
  323. if (i_15_ == 1)
  324. i_28_ += numTriangles;
  325. int i_34_ = i_28_;
  326. if (i_17_ == 1)
  327. i_28_ += numVertices;
  328. int i_35_ = i_28_;
  329. if (i_14_ == 1)
  330. i_28_ += numTriangles;
  331. int i_36_ = i_28_;
  332. i_28_ += i_21_;
  333. int i_37_ = i_28_;
  334. if (i_16_ == 1)
  335. i_28_ += numTriangles * 2;
  336. int i_38_ = i_28_;
  337. i_28_ += i_22_;
  338. int i_39_ = i_28_;
  339. i_28_ += numTriangles * 2;
  340. int i_40_ = i_28_;
  341. i_28_ += i_18_;
  342. int i_41_ = i_28_;
  343. i_28_ += i_19_;
  344. int i_42_ = i_28_;
  345. i_28_ += i_20_;
  346. int i_43_ = i_28_;
  347. i_28_ += i_23_ * 6;
  348. int i_44_ = i_28_;
  349. i_28_ += i_24_ * 6;
  350. int i_45_ = i_28_;
  351. i_28_ += i_24_ * 6;
  352. int i_46_ = i_28_;
  353. i_28_ += i_24_;
  354. int i_47_ = i_28_;
  355. i_28_ += i_24_;
  356. int i_48_ = i_28_;
  357. i_28_ += i_24_ + i_25_ * 2;
  358. v = numVertices;
  359. hb = numTriangles;
  360. P = numTexTriangles;
  361. vertexX = new int[numVertices];
  362. vertexY = new int[numVertices];
  363. vertexZ = new int[numVertices];
  364. facePoint1 = new int[numTriangles];
  365. facePoint2 = new int[numTriangles];
  366. facePoint3 = new int[numTriangles];
  367. if (i_17_ == 1)
  368. anIntArray1655 = new int[numVertices];
  369. if (i_12_ == 1)
  370. anIntArray1637 = new int[numTriangles];
  371. if (i_13_ == 255)
  372. anIntArray1638 = new int[numTriangles];
  373. else
  374. G = (byte) i_13_;
  375. if (i_14_ == 1)
  376. anIntArray1639 = new int[numTriangles];
  377. if (i_15_ == 1)
  378. anIntArray1656 = new int[numTriangles];
  379. if (i_16_ == 1)
  380. D = new short[numTriangles];
  381. if (i_16_ == 1 && numTexTriangles > 0)
  382. x = new byte[numTriangles];
  383. triangleColours2 = new int[numTriangles];
  384. if (numTexTriangles > 0) {
  385. texTrianglesPoint1 = new int[numTexTriangles];
  386. texTrianglesPoint2 = new int[numTexTriangles];
  387. texTrianglesPoint3 = new int[numTexTriangles];
  388. if (i_24_ > 0) {
  389. kb = new int[i_24_];
  390. N = new int[i_24_];
  391. y = new int[i_24_];
  392. gb = new byte[i_24_];
  393. lb = new byte[i_24_];
  394. F = new byte[i_24_];
  395. }
  396. if (i_25_ > 0) {
  397. cb = new byte[i_25_];
  398. J = new byte[i_25_];
  399. }
  400. }
  401. nc1.currentOffset = i_29_;
  402. nc2.currentOffset = i_40_;
  403. nc3.currentOffset = i_41_;
  404. nc4.currentOffset = i_42_;
  405. nc5.currentOffset = i_34_;
  406. int i_49_ = 0;
  407. int i_50_ = 0;
  408. int i_51_ = 0;
  409. for (int i_52_ = 0; i_52_ < numVertices; i_52_++) {
  410. int i_53_ = nc1.readUnsignedByte();
  411. int i_54_ = 0;
  412. if ((i_53_ & 0x1) != 0)
  413. i_54_ = nc2.method421();
  414. int i_55_ = 0;
  415. if ((i_53_ & 0x2) != 0)
  416. i_55_ = nc3.method421();
  417. int i_56_ = 0;
  418. if ((i_53_ & 0x4) != 0)
  419. i_56_ = nc4.method421();
  420. vertexX[i_52_] = i_49_ + i_54_;
  421. vertexY[i_52_] = i_50_ + i_55_;
  422. vertexZ[i_52_] = i_51_ + i_56_;
  423. i_49_ = vertexX[i_52_];
  424. i_50_ = vertexY[i_52_];
  425. i_51_ = vertexZ[i_52_];
  426. if (i_17_ == 1)
  427. anIntArray1655[i_52_] = nc5.readUnsignedByte();
  428. }
  429. nc1.currentOffset = i_39_;
  430. nc2.currentOffset = i_30_;
  431. nc3.currentOffset = i_32_;
  432. nc4.currentOffset = i_35_;
  433. nc5.currentOffset = i_33_;
  434. nc6.currentOffset = i_37_;
  435. nc7.currentOffset = i_38_;
  436. for (int i_57_ = 0; i_57_ < numTriangles; i_57_++) {
  437. triangleColours2[i_57_] = (short) nc1.readShort();
  438. if (i_12_ == 1)
  439. anIntArray1637[i_57_] = nc2.readByte();
  440. if (i_13_ == 255)
  441. anIntArray1638[i_57_] = nc3.readByte();
  442. if (i_14_ == 1)
  443. anIntArray1639[i_57_] = nc4.readByte();
  444. if (i_15_ == 1)
  445. anIntArray1656[i_57_] = nc5.readUnsignedByte();
  446. if (i_16_ == 1)
  447. D[i_57_] = (short) (nc6.readShort() - 1);
  448. if (x != null) {
  449. if (D[i_57_] != -1)
  450. x[i_57_] = (byte) (nc7.readUnsignedByte() - 1);
  451. else
  452. x[i_57_] = (byte) -1;
  453. }
  454. }
  455. nc1.currentOffset = i_36_;
  456. nc2.currentOffset = i_31_;
  457. int i_58_ = 0;
  458. int i_59_ = 0;
  459. int i_60_ = 0;
  460. int i_61_ = 0;
  461. for (int i_62_ = 0; i_62_ < numTriangles; i_62_++) {
  462. int i_63_ = nc2.readUnsignedByte();
  463. if (i_63_ == 1) {
  464. i_58_ = nc1.method421() + i_61_;
  465. i_61_ = i_58_;
  466. i_59_ = nc1.method421() + i_61_;
  467. i_61_ = i_59_;
  468. i_60_ = nc1.method421() + i_61_;
  469. i_61_ = i_60_;
  470. facePoint1[i_62_] = i_58_;
  471. facePoint2[i_62_] = i_59_;
  472. facePoint3[i_62_] = i_60_;
  473. }
  474. if (i_63_ == 2) {
  475. i_59_ = i_60_;
  476. i_60_ = nc1.method421() + i_61_;
  477. i_61_ = i_60_;
  478. facePoint1[i_62_] = i_58_;
  479. facePoint2[i_62_] = i_59_;
  480. facePoint3[i_62_] = i_60_;
  481. }
  482. if (i_63_ == 3) {
  483. i_58_ = i_60_;
  484. i_60_ = nc1.method421() + i_61_;
  485. i_61_ = i_60_;
  486. facePoint1[i_62_] = i_58_;
  487. facePoint2[i_62_] = i_59_;
  488. facePoint3[i_62_] = i_60_;
  489. }
  490. if (i_63_ == 4) {
  491. int i_64_ = i_58_;
  492. i_58_ = i_59_;
  493. i_59_ = i_64_;
  494. i_60_ = nc1.method421() + i_61_;
  495. i_61_ = i_60_;
  496. facePoint1[i_62_] = i_58_;
  497. facePoint2[i_62_] = i_59_;
  498. facePoint3[i_62_] = i_60_;
  499. }
  500. }
  501. nc1.currentOffset = i_43_;
  502. nc2.currentOffset = i_44_;
  503. nc3.currentOffset = i_45_;
  504. nc4.currentOffset = i_46_;
  505. nc5.currentOffset = i_47_;
  506. nc6.currentOffset = i_48_;
  507. for (int i_65_ = 0; i_65_ < numTexTriangles; i_65_++) {
  508. int i_66_ = O[i_65_] & 0xff;
  509. if (i_66_ == 0) {
  510. texTrianglesPoint1[i_65_] = (short) nc1.readShort();
  511. texTrianglesPoint2[i_65_] = (short) nc1.readShort();
  512. texTrianglesPoint3[i_65_] = (short) nc1.readShort();
  513. }
  514. if (i_66_ == 1) {
  515. texTrianglesPoint1[i_65_] = (short) nc2.readShort();
  516. texTrianglesPoint2[i_65_] = (short) nc2.readShort();
  517. texTrianglesPoint3[i_65_] = (short) nc2.readShort();
  518. kb[i_65_] = (short) nc3.readShort();
  519. N[i_65_] = (short) nc3.readShort();
  520. y[i_65_] = (short) nc3.readShort();
  521. gb[i_65_] = nc4.readByte();
  522. lb[i_65_] = nc5.readByte();
  523. F[i_65_] = nc6.readByte();
  524. }
  525. if (i_66_ == 2) {
  526. texTrianglesPoint1[i_65_] = (short) nc2.readShort();
  527. texTrianglesPoint2[i_65_] = (short) nc2.readShort();
  528. texTrianglesPoint3[i_65_] = (short) nc2.readShort();
  529. kb[i_65_] = (short) nc3.readShort();
  530. N[i_65_] = (short) nc3.readShort();
  531. y[i_65_] = (short) nc3.readShort();
  532. gb[i_65_] = nc4.readByte();
  533. lb[i_65_] = nc5.readByte();
  534. F[i_65_] = nc6.readByte();
  535. cb[i_65_] = nc6.readByte();
  536. J[i_65_] = nc6.readByte();
  537. }
  538. if (i_66_ == 3) {
  539. texTrianglesPoint1[i_65_] = (short) nc2.readShort();
  540. texTrianglesPoint2[i_65_] = (short) nc2.readShort();
  541. texTrianglesPoint3[i_65_] = (short) nc2.readShort();
  542. kb[i_65_] = (short) nc3.readShort();
  543. N[i_65_] = (short) nc3.readShort();
  544. y[i_65_] = (short) nc3.readShort();
  545. gb[i_65_] = nc4.readByte();
  546. lb[i_65_] = nc5.readByte();
  547. F[i_65_] = nc6.readByte();
  548. }
  549. }
  550. }
  551.  
  552. /*public void readNewModel(byte abyte0[], int modelID) {
  553. Buffer nc1 = new Buffer(abyte0);
  554. Buffer nc2 = new Buffer(abyte0);
  555. Buffer nc3 = new Buffer(abyte0);
  556. Buffer nc4 = new Buffer(abyte0);
  557. Buffer nc5 = new Buffer(abyte0);
  558. Buffer nc6 = new Buffer(abyte0);
  559. Buffer nc7 = new Buffer(abyte0);
  560. nc1.currentOffset = abyte0.length - 23;
  561. int numVertices = nc1.readShort();
  562. int numTriangles = nc1.readShort();
  563. int numTexTriangles = nc1.readUnsignedByte();
  564. Class21 ModelDef_1 = aClass21Array1661[modelID] = new Class21();
  565. ModelDef_1.aByteArray368 = abyte0;
  566. ModelDef_1.anInt369 = numVertices;
  567. ModelDef_1.anInt370 = numTriangles;
  568. ModelDef_1.anInt371 = numTexTriangles;
  569. int l1 = nc1.readUnsignedByte();
  570. boolean bool = (0x1 & l1 ^ 0xffffffff) == -2;
  571. boolean bool_78_ = (l1 & 0x2 ^ 0xffffffff) == -3;
  572. int i2 = nc1.readUnsignedByte();
  573. int j2 = nc1.readUnsignedByte();
  574. int k2 = nc1.readUnsignedByte();
  575. int l2 = nc1.readUnsignedByte();
  576. int i3 = nc1.readUnsignedByte();
  577. int j3 = nc1.readShort();
  578. int k3 = nc1.readShort();
  579. int l3 = nc1.readShort();
  580. int i4 = nc1.readShort();
  581. int j4 = nc1.readShort();
  582. int k4 = 0;
  583. int l4 = 0;
  584. int i5 = 0;
  585. int v = 0;
  586. int hb = 0;
  587. int P = 0;
  588. byte G = 0;
  589. byte[] x = null;
  590. byte[] O = null;
  591. byte[] J = null;
  592. byte[] F = null;
  593. byte[] cb = null;
  594. byte[] gb = null;
  595. byte[] lb = null;
  596. int[] ab = null;
  597. int[] kb = null;
  598. int[] y = null;
  599. int[] N = null;
  600. short[] D = null;
  601. int[] triangleColours2 = new int[numTriangles];
  602. if (numTexTriangles > 0) {
  603. O = new byte[numTexTriangles];
  604. nc1.currentOffset = 0;
  605. for (int j5 = 0; j5 < numTexTriangles; j5++) {
  606. byte byte0 = O[j5] = nc1.readByte();
  607. if (byte0 == 0)
  608. k4++;
  609. if (byte0 >= 1 && byte0 <= 3)
  610. l4++;
  611. if (byte0 == 2)
  612. i5++;
  613. }
  614. }
  615. int k5 = numTexTriangles;
  616. int l5 = k5;
  617. k5 += numVertices;
  618. int i6 = k5;
  619. if (l1 == 1)
  620. k5 += numTriangles;
  621. int j6 = k5;
  622. k5 += numTriangles;
  623. int k6 = k5;
  624. if (i2 == 255)
  625. k5 += numTriangles;
  626. int l6 = k5;
  627. if (k2 == 1)
  628. k5 += numTriangles;
  629. int i7 = k5;
  630. if (i3 == 1)
  631. k5 += numVertices;
  632. int j7 = k5;
  633. if (j2 == 1)
  634. k5 += numTriangles;
  635. int k7 = k5;
  636. k5 += i4;
  637. int l7 = k5;
  638. if (l2 == 1)
  639. k5 += numTriangles * 2;
  640. int i8 = k5;
  641. k5 += j4;
  642. int j8 = k5;
  643. k5 += numTriangles * 2;
  644. int k8 = k5;
  645. k5 += j3;
  646. int l8 = k5;
  647. k5 += k3;
  648. int i9 = k5;
  649. k5 += l3;
  650. int j9 = k5;
  651. k5 += k4 * 6;
  652. int k9 = k5;
  653. k5 += l4 * 6;
  654. int l9 = k5;
  655. k5 += l4 * 6;
  656. int i10 = k5;
  657. k5 += l4;
  658. int j10 = k5;
  659. k5 += l4;
  660. int k10 = k5;
  661. k5 += l4 + i5 * 2;
  662. v = numVertices;
  663. hb = numTriangles;
  664. P = numTexTriangles;
  665. int[] vertexX = new int[numVertices];
  666. int[] vertexY = new int[numVertices];
  667. int[] vertexZ = new int[numVertices];
  668. int[] facePoint1 = new int[numTriangles];
  669. int[] facePoint2 = new int[numTriangles];
  670. int[] facePoint3 = new int[numTriangles];
  671. anIntArray1655 = new int[numVertices];
  672. anIntArray1637 = new int[numTriangles];
  673. anIntArray1638 = new int[numTriangles];
  674. anIntArray1639 = new int[numTriangles];
  675. anIntArray1656 = new int[numTriangles];
  676. if (i3 == 1)
  677. anIntArray1655 = new int[numVertices];
  678. if (bool)
  679. anIntArray1637 = new int[numTriangles];
  680. if (i2 == 255)
  681. anIntArray1638 = new int[numTriangles];
  682. else
  683. G = (byte) i2;
  684. if (j2 == 1)
  685. anIntArray1639 = new int[numTriangles];
  686. if (k2 == 1)
  687. anIntArray1656 = new int[numTriangles];
  688. if (l2 == 1)
  689. D = new short[numTriangles];
  690. if (l2 == 1 && numTexTriangles > 0)
  691. x = new byte[numTriangles];
  692. triangleColours2 = new int[numTriangles];
  693. int[] texTrianglesPoint1 = null;
  694. int[] texTrianglesPoint2 = null;
  695. int[] texTrianglesPoint3 = null;
  696. if (numTexTriangles > 0) {
  697. texTrianglesPoint1 = new int[numTexTriangles];
  698. texTrianglesPoint2 = new int[numTexTriangles];
  699. texTrianglesPoint3 = new int[numTexTriangles];
  700. if (l4 > 0) {
  701. kb = new int[l4];
  702. N = new int[l4];
  703. y = new int[l4];
  704. gb = new byte[l4];
  705. lb = new byte[l4];
  706. F = new byte[l4];
  707. }
  708. if (i5 > 0) {
  709. cb = new byte[i5];
  710. J = new byte[i5];
  711. }
  712. }
  713. nc1.currentOffset = l5;
  714. nc2.currentOffset = k8;
  715. nc3.currentOffset = l8;
  716. nc4.currentOffset = i9;
  717. nc5.currentOffset = i7;
  718. int l10 = 0;
  719. int i11 = 0;
  720. int j11 = 0;
  721. for (int k11 = 0; k11 < numVertices; k11++) {
  722. int l11 = nc1.readUnsignedByte();
  723. int j12 = 0;
  724. if ((l11 & 1) != 0)
  725. j12 = nc2.method421();
  726. int l12 = 0;
  727. if ((l11 & 2) != 0)
  728. l12 = nc3.method421();
  729. int j13 = 0;
  730. if ((l11 & 4) != 0)
  731. j13 = nc4.method421();
  732. vertexX[k11] = l10 + j12;
  733. vertexY[k11] = i11 + l12;
  734. vertexZ[k11] = j11 + j13;
  735. l10 = vertexX[k11];
  736. i11 = vertexY[k11];
  737. j11 = vertexZ[k11];
  738. if (anIntArray1655 != null)
  739. anIntArray1655[k11] = nc5.readUnsignedByte();
  740. }
  741. nc1.currentOffset = j8;
  742. nc2.currentOffset = i6;
  743. nc3.currentOffset = k6;
  744. nc4.currentOffset = j7;
  745. nc5.currentOffset = l6;
  746. nc6.currentOffset = l7;
  747. nc7.currentOffset = i8;
  748. for (int i12 = 0; i12 < numTriangles; i12++) {
  749. triangleColours2[i12] = nc1.readShort();
  750. if (l1 == 1) {
  751. anIntArray1637[i12] = nc2.readByte();
  752. if (anIntArray1637[i12] == 2)
  753. triangleColours2[i12] = 65535;
  754. anIntArray1637[i12] = 0;
  755. }
  756. if (i2 == 255) {
  757. anIntArray1638[i12] = nc3.readByte();
  758. }
  759. if (j2 == 1) {
  760. anIntArray1639[i12] = nc4.readByte();
  761. if (anIntArray1639[i12] < 0)
  762. anIntArray1639[i12] = (256 + anIntArray1639[i12]);
  763. }
  764. if (k2 == 1)
  765. anIntArray1656[i12] = nc5.readUnsignedByte();
  766. if (l2 == 1)
  767. D[i12] = (short) (nc6.readShort() - 1);
  768. if (x != null)
  769. if (D[i12] != -1)
  770. x[i12] = (byte) (nc7.readUnsignedByte() - 1);
  771. else
  772. x[i12] = -1;
  773. }
  774. nc1.currentOffset = k7;
  775. nc2.currentOffset = j6;
  776. int k12 = 0;
  777. int i13 = 0;
  778. int k13 = 0;
  779. int l13 = 0;
  780. for (int i14 = 0; i14 < numTriangles; i14++) {
  781. int j14 = nc2.readUnsignedByte();
  782. if (j14 == 1) {
  783. k12 = nc1.method421() + l13;
  784. l13 = k12;
  785. i13 = nc1.method421() + l13;
  786. l13 = i13;
  787. k13 = nc1.method421() + l13;
  788. l13 = k13;
  789. facePoint1[i14] = k12;
  790. facePoint2[i14] = i13;
  791. facePoint3[i14] = k13;
  792. }
  793. if (j14 == 2) {
  794. i13 = k13;
  795. k13 = nc1.method421() + l13;
  796. l13 = k13;
  797. facePoint1[i14] = k12;
  798. facePoint2[i14] = i13;
  799. facePoint3[i14] = k13;
  800. }
  801. if (j14 == 3) {
  802. k12 = k13;
  803. k13 = nc1.method421() + l13;
  804. l13 = k13;
  805. facePoint1[i14] = k12;
  806. facePoint2[i14] = i13;
  807. facePoint3[i14] = k13;
  808. }
  809. if (j14 == 4) {
  810. int l14 = k12;
  811. k12 = i13;
  812. i13 = l14;
  813. k13 = nc1.method421() + l13;
  814. l13 = k13;
  815. facePoint1[i14] = k12;
  816. facePoint2[i14] = i13;
  817. facePoint3[i14] = k13;
  818. }
  819. }
  820. nc1.currentOffset = j9;
  821. nc2.currentOffset = k9;
  822. nc3.currentOffset = l9;
  823. nc4.currentOffset = i10;
  824. nc5.currentOffset = j10;
  825. nc6.currentOffset = k10;
  826. for (int k14 = 0; k14 < numTexTriangles; k14++) {
  827. int i15 = O[k14] & 0xff;
  828. if (i15 == 0) {
  829. texTrianglesPoint1[k14] = nc1.readShort();
  830. texTrianglesPoint2[k14] = nc1.readShort();
  831. texTrianglesPoint3[k14] = nc1.readShort();
  832. }
  833. if (i15 == 1) {
  834. texTrianglesPoint1[k14] = nc2.readShort();
  835. texTrianglesPoint2[k14] = nc2.readShort();
  836. texTrianglesPoint3[k14] = nc2.readShort();
  837. kb[k14] = nc3.readShort();
  838. N[k14] = nc3.readShort();
  839. y[k14] = nc3.readShort();
  840. gb[k14] = nc4.readByte();
  841. lb[k14] = nc5.readByte();
  842. F[k14] = nc6.readByte();
  843. }
  844. if (i15 == 2) {
  845. texTrianglesPoint1[k14] = nc2.readShort();
  846. texTrianglesPoint2[k14] = nc2.readShort();
  847. texTrianglesPoint3[k14] = nc2.readShort();
  848. kb[k14] = nc3.readShort();
  849. N[k14] = nc3.readShort();
  850. y[k14] = nc3.readShort();
  851. gb[k14] = nc4.readByte();
  852. lb[k14] = nc5.readByte();
  853. F[k14] = nc6.readByte();
  854. cb[k14] = nc6.readByte();
  855. J[k14] = nc6.readByte();
  856. }
  857. if (i15 == 3) {
  858. texTrianglesPoint1[k14] = nc2.readShort();
  859. texTrianglesPoint2[k14] = nc2.readShort();
  860. texTrianglesPoint3[k14] = nc2.readShort();
  861. kb[k14] = nc3.readShort();
  862. N[k14] = nc3.readShort();
  863. y[k14] = nc3.readShort();
  864. gb[k14] = nc4.readByte();
  865. lb[k14] = nc5.readByte();
  866. F[k14] = nc6.readByte();
  867. }
  868. }
  869. if (i2 != 255) {
  870. for (int i12 = 0; i12 < numTriangles; i12++)
  871. anIntArray1638[i12] = i2;
  872. }
  873. anIntArray1640 = triangleColours2;
  874. anInt1626 = numVertices;
  875. anInt1630 = numTriangles;
  876. anIntArray1627 = vertexX;
  877. anIntArray1628 = vertexY;
  878. anIntArray1629 = vertexZ;
  879. anIntArray1631 = facePoint1;
  880. anIntArray1632 = facePoint2;
  881. anIntArray1633 = facePoint3;
  882. }*/
  883.  
  884. public static void method461(int j) {
  885. aClass21Array1661[j] = null;
  886. }
  887.  
  888. public static Model method462(int j) {
  889. if (aClass21Array1661 == null)
  890. return null;
  891. Class21 class21 = aClass21Array1661[j];
  892. if (class21 == null) {
  893. aOnDemandFetcherParent_1662.method548(j);
  894. return null;
  895. } else {
  896. return new Model(j);
  897. }
  898. }
  899.  
  900. public static boolean method463(int i) {
  901. if (aClass21Array1661 == null)
  902. return false;
  903. Class21 class21 = aClass21Array1661[i];
  904. if (class21 == null) {
  905. aOnDemandFetcherParent_1662.method548(i);
  906. return false;
  907. } else {
  908. return true;
  909. }
  910. }
  911.  
  912. private Model() {
  913. aBoolean1659 = false;
  914. }
  915.  
  916. public Model(int i, Model aclass30_sub2_sub4_sub6s[]) {
  917. aBoolean1659 = false;
  918. boolean flag = false;
  919. boolean flag1 = false;
  920. boolean flag2 = false;
  921. boolean flag3 = false;
  922. anInt1626 = 0;
  923. anInt1630 = 0;
  924. anInt1642 = 0;
  925. anInt1641 = -1;
  926. for (int k = 0; k < i; k++) {
  927. Model model = aclass30_sub2_sub4_sub6s[k];
  928. if (model != null) {
  929. anInt1626 += model.anInt1626;
  930. anInt1630 += model.anInt1630;
  931. anInt1642 += model.anInt1642;
  932. flag |= model.anIntArray1637 != null;
  933. if (model.anIntArray1638 != null) {
  934. flag1 = true;
  935. } else {
  936. if (anInt1641 == -1)
  937. anInt1641 = model.anInt1641;
  938. if (anInt1641 != model.anInt1641)
  939. flag1 = true;
  940. }
  941. flag2 |= model.anIntArray1639 != null;
  942. flag3 |= model.anIntArray1656 != null;
  943. }
  944. }
  945. anIntArray1627 = new int[anInt1626];
  946. anIntArray1628 = new int[anInt1626];
  947. anIntArray1629 = new int[anInt1626];
  948. anIntArray1655 = new int[anInt1626];
  949. anIntArray1631 = new int[anInt1630];
  950. anIntArray1632 = new int[anInt1630];
  951. anIntArray1633 = new int[anInt1630];
  952. anIntArray1643 = new int[anInt1642];
  953. anIntArray1644 = new int[anInt1642];
  954. anIntArray1645 = new int[anInt1642];
  955. if (flag)
  956. anIntArray1637 = new int[anInt1630];
  957. if (flag1)
  958. anIntArray1638 = new int[anInt1630];
  959. if (flag2)
  960. anIntArray1639 = new int[anInt1630];
  961. if (flag3)
  962. anIntArray1656 = new int[anInt1630];
  963. anIntArray1640 = new int[anInt1630];
  964. anInt1626 = 0;
  965. anInt1630 = 0;
  966. anInt1642 = 0;
  967. int l = 0;
  968. for (int i1 = 0; i1 < i; i1++) {
  969. Model model_1 = aclass30_sub2_sub4_sub6s[i1];
  970. if (model_1 != null) {
  971. for (int j1 = 0; j1 < model_1.anInt1630; j1++) {
  972. if (flag)
  973. if (model_1.anIntArray1637 == null) {
  974. anIntArray1637[anInt1630] = 0;
  975. } else {
  976. int k1 = model_1.anIntArray1637[j1];
  977. if ((k1 & 2) == 2)
  978. k1 += l << 2;
  979. anIntArray1637[anInt1630] = k1;
  980. }
  981. if (flag1)
  982. if (model_1.anIntArray1638 == null)
  983. anIntArray1638[anInt1630] = model_1.anInt1641;
  984. else
  985. anIntArray1638[anInt1630] = model_1.anIntArray1638[j1];
  986. if (flag2)
  987. if (model_1.anIntArray1639 == null)
  988. anIntArray1639[anInt1630] = 0;
  989. else
  990. anIntArray1639[anInt1630] = model_1.anIntArray1639[j1];
  991. if (flag3 && model_1.anIntArray1656 != null)
  992. anIntArray1656[anInt1630] = model_1.anIntArray1656[j1];
  993. anIntArray1640[anInt1630] = model_1.anIntArray1640[j1];
  994. anIntArray1631[anInt1630] = method465(model_1, model_1.anIntArray1631[j1]);
  995. anIntArray1632[anInt1630] = method465(model_1, model_1.anIntArray1632[j1]);
  996. anIntArray1633[anInt1630] = method465(model_1, model_1.anIntArray1633[j1]);
  997. anInt1630++;
  998. }
  999. for (int l1 = 0; l1 < model_1.anInt1642; l1++) {
  1000. anIntArray1643[anInt1642] = method465(model_1, model_1.anIntArray1643[l1]);
  1001. anIntArray1644[anInt1642] = method465(model_1, model_1.anIntArray1644[l1]);
  1002. anIntArray1645[anInt1642] = method465(model_1, model_1.anIntArray1645[l1]);
  1003. anInt1642++;
  1004. }
  1005. l += model_1.anInt1642;
  1006. }
  1007. }
  1008. }
  1009.  
  1010. public Model(Model aclass30_sub2_sub4_sub6s[]) {
  1011. int i = 2;// was parameter
  1012. aBoolean1659 = false;
  1013. boolean flag1 = false;
  1014. boolean flag2 = false;
  1015. boolean flag3 = false;
  1016. boolean flag4 = false;
  1017. anInt1626 = 0;
  1018. anInt1630 = 0;
  1019. anInt1642 = 0;
  1020. anInt1641 = -1;
  1021. for (int k = 0; k < i; k++) {
  1022. Model model = aclass30_sub2_sub4_sub6s[k];
  1023. if (model != null) {
  1024. anInt1626 += model.anInt1626;
  1025. anInt1630 += model.anInt1630;
  1026. anInt1642 += model.anInt1642;
  1027. flag1 |= model.anIntArray1637 != null;
  1028. if (model.anIntArray1638 != null) {
  1029. flag2 = true;
  1030. } else {
  1031. if (anInt1641 == -1)
  1032. anInt1641 = model.anInt1641;
  1033. if (anInt1641 != model.anInt1641)
  1034. flag2 = true;
  1035. }
  1036. flag3 |= model.anIntArray1639 != null;
  1037. flag4 |= model.anIntArray1640 != null;
  1038. }
  1039. }
  1040. anIntArray1627 = new int[anInt1626];
  1041. anIntArray1628 = new int[anInt1626];
  1042. anIntArray1629 = new int[anInt1626];
  1043. anIntArray1631 = new int[anInt1630];
  1044. anIntArray1632 = new int[anInt1630];
  1045. anIntArray1633 = new int[anInt1630];
  1046. anIntArray1634 = new int[anInt1630];
  1047. anIntArray1635 = new int[anInt1630];
  1048. anIntArray1636 = new int[anInt1630];
  1049. anIntArray1643 = new int[anInt1642];
  1050. anIntArray1644 = new int[anInt1642];
  1051. anIntArray1645 = new int[anInt1642];
  1052. if (flag1)
  1053. anIntArray1637 = new int[anInt1630];
  1054. if (flag2)
  1055. anIntArray1638 = new int[anInt1630];
  1056. if (flag3)
  1057. anIntArray1639 = new int[anInt1630];
  1058. if (flag4)
  1059. anIntArray1640 = new int[anInt1630];
  1060. anInt1626 = 0;
  1061. anInt1630 = 0;
  1062. anInt1642 = 0;
  1063. int i1 = 0;
  1064. for (int j1 = 0; j1 < i; j1++) {
  1065. Model model_1 = aclass30_sub2_sub4_sub6s[j1];
  1066. if (model_1 != null) {
  1067. int k1 = anInt1626;
  1068. for (int l1 = 0; l1 < model_1.anInt1626; l1++) {
  1069. anIntArray1627[anInt1626] = model_1.anIntArray1627[l1];
  1070. anIntArray1628[anInt1626] = model_1.anIntArray1628[l1];
  1071. anIntArray1629[anInt1626] = model_1.anIntArray1629[l1];
  1072. anInt1626++;
  1073. }
  1074. for (int i2 = 0; i2 < model_1.anInt1630; i2++) {
  1075. anIntArray1631[anInt1630] = model_1.anIntArray1631[i2] + k1;
  1076. anIntArray1632[anInt1630] = model_1.anIntArray1632[i2] + k1;
  1077. anIntArray1633[anInt1630] = model_1.anIntArray1633[i2] + k1;
  1078. anIntArray1634[anInt1630] = model_1.anIntArray1634[i2];
  1079. anIntArray1635[anInt1630] = model_1.anIntArray1635[i2];
  1080. anIntArray1636[anInt1630] = model_1.anIntArray1636[i2];
  1081. if (flag1)
  1082. if (model_1.anIntArray1637 == null) {
  1083. anIntArray1637[anInt1630] = 0;
  1084. } else {
  1085. int j2 = model_1.anIntArray1637[i2];
  1086. if ((j2 & 2) == 2)
  1087. j2 += i1 << 2;
  1088. anIntArray1637[anInt1630] = j2;
  1089. }
  1090. if (flag2)
  1091. if (model_1.anIntArray1638 == null)
  1092. anIntArray1638[anInt1630] = model_1.anInt1641;
  1093. else
  1094. anIntArray1638[anInt1630] = model_1.anIntArray1638[i2];
  1095. if (flag3)
  1096. if (model_1.anIntArray1639 == null)
  1097. anIntArray1639[anInt1630] = 0;
  1098. else
  1099. anIntArray1639[anInt1630] = model_1.anIntArray1639[i2];
  1100. if (flag4 && model_1.anIntArray1640 != null)
  1101. anIntArray1640[anInt1630] = model_1.anIntArray1640[i2];
  1102. anInt1630++;
  1103. }
  1104. for (int k2 = 0; k2 < model_1.anInt1642; k2++) {
  1105. anIntArray1643[anInt1642] = model_1.anIntArray1643[k2] + k1;
  1106. anIntArray1644[anInt1642] = model_1.anIntArray1644[k2] + k1;
  1107. anIntArray1645[anInt1642] = model_1.anIntArray1645[k2] + k1;
  1108. anInt1642++;
  1109. }
  1110. i1 += model_1.anInt1642;
  1111. }
  1112. }
  1113. method466();
  1114. }
  1115.  
  1116. public Model(boolean flag, boolean flag1, boolean flag2, Model model) {
  1117. aBoolean1659 = false;
  1118. anInt1626 = model.anInt1626;
  1119. anInt1630 = model.anInt1630;
  1120. anInt1642 = model.anInt1642;
  1121. if (flag2) {
  1122. anIntArray1627 = model.anIntArray1627;
  1123. anIntArray1628 = model.anIntArray1628;
  1124. anIntArray1629 = model.anIntArray1629;
  1125. } else {
  1126. anIntArray1627 = new int[anInt1626];
  1127. anIntArray1628 = new int[anInt1626];
  1128. anIntArray1629 = new int[anInt1626];
  1129. for (int j = 0; j < anInt1626; j++) {
  1130. anIntArray1627[j] = model.anIntArray1627[j];
  1131. anIntArray1628[j] = model.anIntArray1628[j];
  1132. anIntArray1629[j] = model.anIntArray1629[j];
  1133. }
  1134. }
  1135. if (flag) {
  1136. anIntArray1640 = model.anIntArray1640;
  1137. } else {
  1138. anIntArray1640 = new int[anInt1630];
  1139. System.arraycopy(model.anIntArray1640, 0, anIntArray1640, 0, anInt1630);
  1140. }
  1141. if (flag1) {
  1142. anIntArray1639 = model.anIntArray1639;
  1143. } else {
  1144. anIntArray1639 = new int[anInt1630];
  1145. if (model.anIntArray1639 == null) {
  1146. for (int l = 0; l < anInt1630; l++)
  1147. anIntArray1639[l] = 0;
  1148. } else {
  1149. System.arraycopy(model.anIntArray1639, 0, anIntArray1639, 0, anInt1630);
  1150. }
  1151. }
  1152. anIntArray1655 = model.anIntArray1655;
  1153. anIntArray1656 = model.anIntArray1656;
  1154. anIntArray1637 = model.anIntArray1637;
  1155. anIntArray1631 = model.anIntArray1631;
  1156. anIntArray1632 = model.anIntArray1632;
  1157. anIntArray1633 = model.anIntArray1633;
  1158. anIntArray1638 = model.anIntArray1638;
  1159. anInt1641 = model.anInt1641;
  1160. anIntArray1643 = model.anIntArray1643;
  1161. anIntArray1644 = model.anIntArray1644;
  1162. anIntArray1645 = model.anIntArray1645;
  1163. }
  1164.  
  1165. public Model(boolean flag, boolean flag1, Model model) {
  1166. aBoolean1659 = false;
  1167. anInt1626 = model.anInt1626;
  1168. anInt1630 = model.anInt1630;
  1169. anInt1642 = model.anInt1642;
  1170. if (flag) {
  1171. anIntArray1628 = new int[anInt1626];
  1172. System.arraycopy(model.anIntArray1628, 0, anIntArray1628, 0, anInt1626);
  1173. } else {
  1174. anIntArray1628 = model.anIntArray1628;
  1175. }
  1176. if (flag1) {
  1177. anIntArray1634 = new int[anInt1630];
  1178. anIntArray1635 = new int[anInt1630];
  1179. anIntArray1636 = new int[anInt1630];
  1180. for (int k = 0; k < anInt1630; k++) {
  1181. anIntArray1634[k] = model.anIntArray1634[k];
  1182. anIntArray1635[k] = model.anIntArray1635[k];
  1183. anIntArray1636[k] = model.anIntArray1636[k];
  1184. }
  1185. anIntArray1637 = new int[anInt1630];
  1186. if (model.anIntArray1637 == null) {
  1187. for (int l = 0; l < anInt1630; l++)
  1188. anIntArray1637[l] = 0;
  1189. } else {
  1190. System.arraycopy(model.anIntArray1637, 0, anIntArray1637, 0, anInt1630);
  1191. }
  1192. super.aClass33Array1425 = new VertexNormal[anInt1626];
  1193. for (int j1 = 0; j1 < anInt1626; j1++) {
  1194. VertexNormal class33 = super.aClass33Array1425[j1] = new VertexNormal();
  1195. VertexNormal class33_1 = model.aClass33Array1425[j1];
  1196. class33.x = class33_1.x;
  1197. class33.y = class33_1.y;
  1198. class33.z = class33_1.z;
  1199. class33.magnitude = class33_1.magnitude;
  1200. }
  1201. aClass33Array1660 = model.aClass33Array1660;
  1202. } else {
  1203. anIntArray1634 = model.anIntArray1634;
  1204. anIntArray1635 = model.anIntArray1635;
  1205. anIntArray1636 = model.anIntArray1636;
  1206. anIntArray1637 = model.anIntArray1637;
  1207. }
  1208. anIntArray1627 = model.anIntArray1627;
  1209. anIntArray1629 = model.anIntArray1629;
  1210. anIntArray1640 = model.anIntArray1640;
  1211. anIntArray1639 = model.anIntArray1639;
  1212. anIntArray1638 = model.anIntArray1638;
  1213. anInt1641 = model.anInt1641;
  1214. anIntArray1631 = model.anIntArray1631;
  1215. anIntArray1632 = model.anIntArray1632;
  1216. anIntArray1633 = model.anIntArray1633;
  1217. anIntArray1643 = model.anIntArray1643;
  1218. anIntArray1644 = model.anIntArray1644;
  1219. anIntArray1645 = model.anIntArray1645;
  1220. super.modelHeight = model.modelHeight;
  1221. anInt1651 = model.anInt1651;
  1222. anInt1650 = model.anInt1650;
  1223. anInt1653 = model.anInt1653;
  1224. anInt1652 = model.anInt1652;
  1225. anInt1646 = model.anInt1646;
  1226. anInt1648 = model.anInt1648;
  1227. anInt1649 = model.anInt1649;
  1228. anInt1647 = model.anInt1647;
  1229. }
  1230.  
  1231. public void method464(Model model, boolean flag) {
  1232. anInt1626 = model.anInt1626;
  1233. anInt1630 = model.anInt1630;
  1234. anInt1642 = model.anInt1642;
  1235. if (anIntArray1622.length < anInt1626) {
  1236. anIntArray1622 = new int[anInt1626 + 100];
  1237. anIntArray1623 = new int[anInt1626 + 100];
  1238. anIntArray1624 = new int[anInt1626 + 100];
  1239. }
  1240. anIntArray1627 = anIntArray1622;
  1241. anIntArray1628 = anIntArray1623;
  1242. anIntArray1629 = anIntArray1624;
  1243. for (int k = 0; k < anInt1626; k++) {
  1244. anIntArray1627[k] = model.anIntArray1627[k];
  1245. anIntArray1628[k] = model.anIntArray1628[k];
  1246. anIntArray1629[k] = model.anIntArray1629[k];
  1247. }
  1248. if (flag) {
  1249. anIntArray1639 = model.anIntArray1639;
  1250. } else {
  1251. if (anIntArray1625.length < anInt1630)
  1252. anIntArray1625 = new int[anInt1630 + 100];
  1253. anIntArray1639 = anIntArray1625;
  1254. if (model.anIntArray1639 == null) {
  1255. for (int l = 0; l < anInt1630; l++)
  1256. anIntArray1639[l] = 0;
  1257. } else {
  1258. System.arraycopy(model.anIntArray1639, 0, anIntArray1639, 0, anInt1630);
  1259. }
  1260. }
  1261. anIntArray1637 = model.anIntArray1637;
  1262. anIntArray1640 = model.anIntArray1640;
  1263. anIntArray1638 = model.anIntArray1638;
  1264. anInt1641 = model.anInt1641;
  1265. anIntArrayArray1658 = model.anIntArrayArray1658;
  1266. anIntArrayArray1657 = model.anIntArrayArray1657;
  1267. anIntArray1631 = model.anIntArray1631;
  1268. anIntArray1632 = model.anIntArray1632;
  1269. anIntArray1633 = model.anIntArray1633;
  1270. anIntArray1634 = model.anIntArray1634;
  1271. anIntArray1635 = model.anIntArray1635;
  1272. anIntArray1636 = model.anIntArray1636;
  1273. anIntArray1643 = model.anIntArray1643;
  1274. anIntArray1644 = model.anIntArray1644;
  1275. anIntArray1645 = model.anIntArray1645;
  1276. }
  1277.  
  1278. private int method465(Model model, int i) {
  1279. int j = -1;
  1280. int k = model.anIntArray1627[i];
  1281. int l = model.anIntArray1628[i];
  1282. int i1 = model.anIntArray1629[i];
  1283. for (int j1 = 0; j1 < anInt1626; j1++) {
  1284. if (k != anIntArray1627[j1] || l != anIntArray1628[j1] || i1 != anIntArray1629[j1])
  1285. continue;
  1286. j = j1;
  1287. break;
  1288. }
  1289. if (j == -1) {
  1290. anIntArray1627[anInt1626] = k;
  1291. anIntArray1628[anInt1626] = l;
  1292. anIntArray1629[anInt1626] = i1;
  1293. if (model.anIntArray1655 != null)
  1294. anIntArray1655[anInt1626] = model.anIntArray1655[i];
  1295. j = anInt1626++;
  1296. }
  1297. return j;
  1298. }
  1299.  
  1300. public void method466() {
  1301. super.modelHeight = 0;
  1302. anInt1650 = 0;
  1303. anInt1651 = 0;
  1304. for (int i = 0; i < anInt1626; i++) {
  1305. int j = anIntArray1627[i];
  1306. int k = anIntArray1628[i];
  1307. int l = anIntArray1629[i];
  1308. if (-k > super.modelHeight)
  1309. super.modelHeight = -k;
  1310. if (k > anInt1651)
  1311. anInt1651 = k;
  1312. int i1 = j * j + l * l;
  1313. if (i1 > anInt1650)
  1314. anInt1650 = i1;
  1315. }
  1316. anInt1650 = (int) (Math.sqrt(anInt1650) + 0.98999999999999999D);
  1317. anInt1653 = (int) (Math.sqrt(anInt1650 * anInt1650 + super.modelHeight * super.modelHeight) + 0.98999999999999999D);
  1318. anInt1652 = anInt1653 + (int) (Math.sqrt(anInt1650 * anInt1650 + anInt1651 * anInt1651) + 0.98999999999999999D);
  1319. }
  1320.  
  1321. public void method467() {
  1322. super.modelHeight = 0;
  1323. anInt1651 = 0;
  1324. for (int i = 0; i < anInt1626; i++) {
  1325. int j = anIntArray1628[i];
  1326. if (-j > super.modelHeight)
  1327. super.modelHeight = -j;
  1328. if (j > anInt1651)
  1329. anInt1651 = j;
  1330. }
  1331. anInt1653 = (int) (Math.sqrt(anInt1650 * anInt1650 + super.modelHeight * super.modelHeight) + 0.98999999999999999D);
  1332. anInt1652 = anInt1653 + (int) (Math.sqrt(anInt1650 * anInt1650 + anInt1651 * anInt1651) + 0.98999999999999999D);
  1333. }
  1334.  
  1335. private void method468() {
  1336. super.modelHeight = 0;
  1337. anInt1650 = 0;
  1338. anInt1651 = 0;
  1339. anInt1646 = 0xf423f;
  1340. anInt1647 = 0xfff0bdc1;
  1341. anInt1648 = 0xfffe7961;
  1342. anInt1649 = 0x1869f;
  1343. for (int j = 0; j < anInt1626; j++) {
  1344. int k = anIntArray1627[j];
  1345. int l = anIntArray1628[j];
  1346. int i1 = anIntArray1629[j];
  1347. if (k < anInt1646)
  1348. anInt1646 = k;
  1349. if (k > anInt1647)
  1350. anInt1647 = k;
  1351. if (i1 < anInt1649)
  1352. anInt1649 = i1;
  1353. if (i1 > anInt1648)
  1354. anInt1648 = i1;
  1355. if (-l > super.modelHeight)
  1356. super.modelHeight = -l;
  1357. if (l > anInt1651)
  1358. anInt1651 = l;
  1359. int j1 = k * k + i1 * i1;
  1360. if (j1 > anInt1650)
  1361. anInt1650 = j1;
  1362. }
  1363. anInt1650 = (int) Math.sqrt(anInt1650);
  1364. anInt1653 = (int) Math.sqrt(anInt1650 * anInt1650 + super.modelHeight * super.modelHeight);
  1365. anInt1652 = anInt1653 + (int) Math.sqrt(anInt1650 * anInt1650 + anInt1651 * anInt1651);
  1366. }
  1367.  
  1368. public void method469() {
  1369. if (anIntArray1655 != null) {
  1370. int ai[] = new int[256];
  1371. int j = 0;
  1372. for (int l = 0; l < anInt1626; l++) {
  1373. int j1 = anIntArray1655[l];
  1374. ai[j1]++;
  1375. if (j1 > j)
  1376. j = j1;
  1377. }
  1378. anIntArrayArray1657 = new int[j + 1][];
  1379. for (int k1 = 0; k1 <= j; k1++) {
  1380. anIntArrayArray1657[k1] = new int[ai[k1]];
  1381. ai[k1] = 0;
  1382. }
  1383. for (int j2 = 0; j2 < anInt1626; j2++) {
  1384. int l2 = anIntArray1655[j2];
  1385. anIntArrayArray1657[l2][ai[l2]++] = j2;
  1386. }
  1387. anIntArray1655 = null;
  1388. }
  1389. if (anIntArray1656 != null) {
  1390. int ai1[] = new int[256];
  1391. int k = 0;
  1392. for (int i1 = 0; i1 < anInt1630; i1++) {
  1393. int l1 = anIntArray1656[i1];
  1394. ai1[l1]++;
  1395. if (l1 > k)
  1396. k = l1;
  1397. }
  1398. anIntArrayArray1658 = new int[k + 1][];
  1399. for (int i2 = 0; i2 <= k; i2++) {
  1400. anIntArrayArray1658[i2] = new int[ai1[i2]];
  1401. ai1[i2] = 0;
  1402. }
  1403. for (int k2 = 0; k2 < anInt1630; k2++) {
  1404. int i3 = anIntArray1656[k2];
  1405. anIntArrayArray1658[i3][ai1[i3]++] = k2;
  1406. }
  1407. anIntArray1656 = null;
  1408. }
  1409. }
  1410.  
  1411. public void method470(int i) {
  1412. if (anIntArrayArray1657 == null)
  1413. return;
  1414. if (i == -1)
  1415. return;
  1416. Class36 class36 = Class36.method531(i);
  1417. if (class36 == null)
  1418. return;
  1419. Class18 class18 = class36.aClass18_637;
  1420. anInt1681 = 0;
  1421. anInt1682 = 0;
  1422. anInt1683 = 0;
  1423. for (int k = 0; k < class36.anInt638; k++) {
  1424. int l = class36.anIntArray639[k];
  1425. method472(class18.anIntArray342[l], class18.anIntArrayArray343[l], class36.anIntArray640[k], class36.anIntArray641[k], class36.anIntArray642[k]);
  1426. }
  1427. }
  1428.  
  1429. public void method471(int ai[], int j, int k) {
  1430. if (k == -1)
  1431. return;
  1432. if (ai == null || j == -1) {
  1433. method470(k);
  1434. return;
  1435. }
  1436. Class36 class36 = Class36.method531(k);
  1437. if (class36 == null)
  1438. return;
  1439. Class36 class36_1 = Class36.method531(j);
  1440. if (class36_1 == null) {
  1441. method470(k);
  1442. return;
  1443. }
  1444. Class18 class18 = class36.aClass18_637;
  1445. anInt1681 = 0;
  1446. anInt1682 = 0;
  1447. anInt1683 = 0;
  1448. int l = 0;
  1449. int i1 = ai[l++];
  1450. for (int j1 = 0; j1 < class36.anInt638; j1++) {
  1451. int k1;
  1452. for (k1 = class36.anIntArray639[j1]; k1 > i1; i1 = ai[l++])
  1453. ;
  1454. if (k1 != i1 || class18.anIntArray342[k1] == 0)
  1455. method472(class18.anIntArray342[k1], class18.anIntArrayArray343[k1], class36.anIntArray640[j1], class36.anIntArray641[j1], class36.anIntArray642[j1]);
  1456. }
  1457. anInt1681 = 0;
  1458. anInt1682 = 0;
  1459. anInt1683 = 0;
  1460. l = 0;
  1461. i1 = ai[l++];
  1462. for (int l1 = 0; l1 < class36_1.anInt638; l1++) {
  1463. int i2;
  1464. for (i2 = class36_1.anIntArray639[l1]; i2 > i1; i1 = ai[l++])
  1465. ;
  1466. if (i2 == i1 || class18.anIntArray342[i2] == 0)
  1467. method472(class18.anIntArray342[i2], class18.anIntArrayArray343[i2], class36_1.anIntArray640[l1], class36_1.anIntArray641[l1], class36_1.anIntArray642[l1]);
  1468. }
  1469. }
  1470.  
  1471. private void method472(int i, int ai[], int j, int k, int l) {
  1472. int i1 = ai.length;
  1473. if (i == 0) {
  1474. int j1 = 0;
  1475. anInt1681 = 0;
  1476. anInt1682 = 0;
  1477. anInt1683 = 0;
  1478. for (int k2 = 0; k2 < i1; k2++) {
  1479. int l3 = ai[k2];
  1480. if (l3 < anIntArrayArray1657.length) {
  1481. int ai5[] = anIntArrayArray1657[l3];
  1482. for (int i5 = 0; i5 < ai5.length; i5++) {
  1483. int j6 = ai5[i5];
  1484. anInt1681 += anIntArray1627[j6];
  1485. anInt1682 += anIntArray1628[j6];
  1486. anInt1683 += anIntArray1629[j6];
  1487. j1++;
  1488. }
  1489. }
  1490. }
  1491. if (j1 > 0) {
  1492. anInt1681 = anInt1681 / j1 + j;
  1493. anInt1682 = anInt1682 / j1 + k;
  1494. anInt1683 = anInt1683 / j1 + l;
  1495. return;
  1496. } else {
  1497. anInt1681 = j;
  1498. anInt1682 = k;
  1499. anInt1683 = l;
  1500. return;
  1501. }
  1502. }
  1503. if (i == 1) {
  1504. for (int k1 = 0; k1 < i1; k1++) {
  1505. int l2 = ai[k1];
  1506. if (l2 < anIntArrayArray1657.length) {
  1507. int ai1[] = anIntArrayArray1657[l2];
  1508. for (int i4 = 0; i4 < ai1.length; i4++) {
  1509. int j5 = ai1[i4];
  1510. anIntArray1627[j5] += j;
  1511. anIntArray1628[j5] += k;
  1512. anIntArray1629[j5] += l;
  1513. }
  1514. }
  1515. }
  1516. return;
  1517. }
  1518. if (i == 2) {
  1519. for (int l1 = 0; l1 < i1; l1++) {
  1520. int i3 = ai[l1];
  1521. if (i3 < anIntArrayArray1657.length) {
  1522. int ai2[] = anIntArrayArray1657[i3];
  1523. for (int j4 = 0; j4 < ai2.length; j4++) {
  1524. int k5 = ai2[j4];
  1525. anIntArray1627[k5] -= anInt1681;
  1526. anIntArray1628[k5] -= anInt1682;
  1527. anIntArray1629[k5] -= anInt1683;
  1528. int k6 = (j & 0xff) * 8;
  1529. int l6 = (k & 0xff) * 8;
  1530. int i7 = (l & 0xff) * 8;
  1531. if (i7 != 0) {
  1532. int j7 = modelIntArray1[i7];
  1533. int i8 = modelIntArray2[i7];
  1534. int l8 = anIntArray1628[k5] * j7 + anIntArray1627[k5] * i8 >> 16;
  1535. anIntArray1628[k5] = anIntArray1628[k5] * i8 - anIntArray1627[k5] * j7 >> 16;
  1536. anIntArray1627[k5] = l8;
  1537. }
  1538. if (k6 != 0) {
  1539. int k7 = modelIntArray1[k6];
  1540. int j8 = modelIntArray2[k6];
  1541. int i9 = anIntArray1628[k5] * j8 - anIntArray1629[k5] * k7 >> 16;
  1542. anIntArray1629[k5] = anIntArray1628[k5] * k7 + anIntArray1629[k5] * j8 >> 16;
  1543. anIntArray1628[k5] = i9;
  1544. }
  1545. if (l6 != 0) {
  1546. int l7 = modelIntArray1[l6];
  1547. int k8 = modelIntArray2[l6];
  1548. int j9 = anIntArray1629[k5] * l7 + anIntArray1627[k5] * k8 >> 16;
  1549. anIntArray1629[k5] = anIntArray1629[k5] * k8 - anIntArray1627[k5] * l7 >> 16;
  1550. anIntArray1627[k5] = j9;
  1551. }
  1552. anIntArray1627[k5] += anInt1681;
  1553. anIntArray1628[k5] += anInt1682;
  1554. anIntArray1629[k5] += anInt1683;
  1555. }
  1556. }
  1557. }
  1558. return;
  1559. }
  1560. if (i == 3) {
  1561. for (int i2 = 0; i2 < i1; i2++) {
  1562. int j3 = ai[i2];
  1563. if (j3 < anIntArrayArray1657.length) {
  1564. int ai3[] = anIntArrayArray1657[j3];
  1565. for (int k4 = 0; k4 < ai3.length; k4++) {
  1566. int l5 = ai3[k4];
  1567. anIntArray1627[l5] -= anInt1681;
  1568. anIntArray1628[l5] -= anInt1682;
  1569. anIntArray1629[l5] -= anInt1683;
  1570. anIntArray1627[l5] = (anIntArray1627[l5] * j) / 128;
  1571. anIntArray1628[l5] = (anIntArray1628[l5] * k) / 128;
  1572. anIntArray1629[l5] = (anIntArray1629[l5] * l) / 128;
  1573. anIntArray1627[l5] += anInt1681;
  1574. anIntArray1628[l5] += anInt1682;
  1575. anIntArray1629[l5] += anInt1683;
  1576. }
  1577. }
  1578. }
  1579. return;
  1580. }
  1581. if (i == 5 && anIntArrayArray1658 != null && anIntArray1639 != null) {
  1582. for (int j2 = 0; j2 < i1; j2++) {
  1583. int k3 = ai[j2];
  1584. if (k3 < anIntArrayArray1658.length) {
  1585. int ai4[] = anIntArrayArray1658[k3];
  1586. for (int l4 = 0; l4 < ai4.length; l4++) {
  1587. int i6 = ai4[l4];
  1588. anIntArray1639[i6] += j * 8;
  1589. if (anIntArray1639[i6] < 0)
  1590. anIntArray1639[i6] = 0;
  1591. if (anIntArray1639[i6] > 255)
  1592. anIntArray1639[i6] = 255;
  1593. }
  1594. }
  1595. }
  1596. }
  1597. }
  1598.  
  1599. public void method473() {
  1600. for (int j = 0; j < anInt1626; j++) {
  1601. int k = anIntArray1627[j];
  1602. anIntArray1627[j] = anIntArray1629[j];
  1603. anIntArray1629[j] = -k;
  1604. }
  1605. }
  1606.  
  1607. public void method474(int i) {
  1608. int k = modelIntArray1[i];
  1609. int l = modelIntArray2[i];
  1610. for (int i1 = 0; i1 < anInt1626; i1++) {
  1611. int j1 = anIntArray1628[i1] * l - anIntArray1629[i1] * k >> 16;
  1612. anIntArray1629[i1] = anIntArray1628[i1] * k + anIntArray1629[i1] * l >> 16;
  1613. anIntArray1628[i1] = j1;
  1614. }
  1615. }
  1616.  
  1617. public void method475(int i, int j, int l) {
  1618. for (int i1 = 0; i1 < anInt1626; i1++) {
  1619. anIntArray1627[i1] += i;
  1620. anIntArray1628[i1] += j;
  1621. anIntArray1629[i1] += l;
  1622. }
  1623. }
  1624.  
  1625. public void method476(int i, int j) {
  1626. for (int k = 0; k < anInt1630; k++)
  1627. if (anIntArray1640[k] == i)
  1628. anIntArray1640[k] = j;
  1629. }
  1630.  
  1631. public void method477() {
  1632. for (int j = 0; j < anInt1626; j++)
  1633. anIntArray1629[j] = -anIntArray1629[j];
  1634. for (int k = 0; k < anInt1630; k++) {
  1635. int l = anIntArray1631[k];
  1636. anIntArray1631[k] = anIntArray1633[k];
  1637. anIntArray1633[k] = l;
  1638. }
  1639. }
  1640.  
  1641. public void method478(int i, int j, int l) {
  1642. for (int i1 = 0; i1 < anInt1626; i1++) {
  1643. anIntArray1627[i1] = (anIntArray1627[i1] * i) / 128;
  1644. anIntArray1628[i1] = (anIntArray1628[i1] * l) / 128;
  1645. anIntArray1629[i1] = (anIntArray1629[i1] * j) / 128;
  1646. }
  1647. }
  1648.  
  1649. public void method479(int i, int j, int k, int l, int i1, boolean flag) {
  1650. int j1 = (int) Math.sqrt(k * k + l * l + i1 * i1);
  1651. int k1 = j * j1 >> 8;
  1652. if (anIntArray1634 == null) {
  1653. anIntArray1634 = new int[anInt1630];
  1654. anIntArray1635 = new int[anInt1630];
  1655. anIntArray1636 = new int[anInt1630];
  1656. }
  1657. if (super.aClass33Array1425 == null) {
  1658. super.aClass33Array1425 = new VertexNormal[anInt1626];
  1659. for (int l1 = 0; l1 < anInt1626; l1++)
  1660. super.aClass33Array1425[l1] = new VertexNormal();
  1661. }
  1662. for (int i2 = 0; i2 < anInt1630; i2++) {
  1663. int j2 = anIntArray1631[i2];
  1664. int l2 = anIntArray1632[i2];
  1665. int i3 = anIntArray1633[i2];
  1666. int j3 = anIntArray1627[l2] - anIntArray1627[j2];
  1667. int k3 = anIntArray1628[l2] - anIntArray1628[j2];
  1668. int l3 = anIntArray1629[l2] - anIntArray1629[j2];
  1669. int i4 = anIntArray1627[i3] - anIntArray1627[j2];
  1670. int j4 = anIntArray1628[i3] - anIntArray1628[j2];
  1671. int k4 = anIntArray1629[i3] - anIntArray1629[j2];
  1672. int l4 = k3 * k4 - j4 * l3;
  1673. int i5 = l3 * i4 - k4 * j3;
  1674. int j5;
  1675. for (j5 = j3 * j4 - i4 * k3; l4 > 8192 || i5 > 8192 || j5 > 8192 || l4 < -8192 || i5 < -8192 || j5 < -8192; j5 >>= 1) {
  1676. l4 >>= 1;
  1677. i5 >>= 1;
  1678. }
  1679. int k5 = (int) Math.sqrt(l4 * l4 + i5 * i5 + j5 * j5);
  1680. if (k5 <= 0)
  1681. k5 = 1;
  1682. l4 = (l4 * 256) / k5;
  1683. i5 = (i5 * 256) / k5;
  1684. j5 = (j5 * 256) / k5;
  1685. if (anIntArray1637 == null || (anIntArray1637[i2] & 1) == 0) {
  1686. VertexNormal class33_2 = super.aClass33Array1425[j2];
  1687. class33_2.x += l4;
  1688. class33_2.y += i5;
  1689. class33_2.z += j5;
  1690. class33_2.magnitude++;
  1691. class33_2 = super.aClass33Array1425[l2];
  1692. class33_2.x += l4;
  1693. class33_2.y += i5;
  1694. class33_2.z += j5;
  1695. class33_2.magnitude++;
  1696. class33_2 = super.aClass33Array1425[i3];
  1697. class33_2.x += l4;
  1698. class33_2.y += i5;
  1699. class33_2.z += j5;
  1700. class33_2.magnitude++;
  1701. } else {
  1702. int l5 = i + (k * l4 + l * i5 + i1 * j5) / (k1 + k1 / 2);
  1703. anIntArray1634[i2] = method481(anIntArray1640[i2], l5, anIntArray1637[i2]);
  1704. }
  1705. }
  1706. if (flag) {
  1707. method480(i, k1, k, l, i1);
  1708. } else {
  1709. aClass33Array1660 = new VertexNormal[anInt1626];
  1710. for (int k2 = 0; k2 < anInt1626; k2++) {
  1711. VertexNormal class33 = super.aClass33Array1425[k2];
  1712. VertexNormal class33_1 = aClass33Array1660[k2] = new VertexNormal();
  1713. class33_1.x = class33.x;
  1714. class33_1.y = class33.y;
  1715. class33_1.z = class33.z;
  1716. class33_1.magnitude = class33.magnitude;
  1717. }
  1718. }
  1719. if (flag) {
  1720. method466();
  1721. } else {
  1722. method468();
  1723. }
  1724. }
  1725.  
  1726. public void method480(int i, int j, int k, int l, int i1) {
  1727. for (int j1 = 0; j1 < anInt1630; j1++) {
  1728. int k1 = anIntArray1631[j1];
  1729. int i2 = anIntArray1632[j1];
  1730. int j2 = anIntArray1633[j1];
  1731. if (anIntArray1637 == null) {
  1732. int i3 = anIntArray1640[j1];
  1733. VertexNormal class33 = super.aClass33Array1425[k1];
  1734. int k2 = i + (k * class33.x + l * class33.y + i1 * class33.z) / (j * class33.magnitude);
  1735. anIntArray1634[j1] = method481(i3, k2, 0);
  1736. class33 = super.aClass33Array1425[i2];
  1737. k2 = i + (k * class33.x + l * class33.y + i1 * class33.z) / (j * class33.magnitude);
  1738. anIntArray1635[j1] = method481(i3, k2, 0);
  1739. class33 = super.aClass33Array1425[j2];
  1740. k2 = i + (k * class33.x + l * class33.y + i1 * class33.z) / (j * class33.magnitude);
  1741. anIntArray1636[j1] = method481(i3, k2, 0);
  1742. } else if ((anIntArray1637[j1] & 1) == 0) {
  1743. int j3 = anIntArray1640[j1];
  1744. int k3 = anIntArray1637[j1];
  1745. VertexNormal class33_1 = super.aClass33Array1425[k1];
  1746. int l2 = i + (k * class33_1.x + l * class33_1.y + i1 * class33_1.z) / (j * class33_1.magnitude);
  1747. anIntArray1634[j1] = method481(j3, l2, k3);
  1748. class33_1 = super.aClass33Array1425[i2];
  1749. l2 = i + (k * class33_1.x + l * class33_1.y + i1 * class33_1.z) / (j * class33_1.magnitude);
  1750. anIntArray1635[j1] = method481(j3, l2, k3);
  1751. class33_1 = super.aClass33Array1425[j2];
  1752. l2 = i + (k * class33_1.x + l * class33_1.y + i1 * class33_1.z) / (j * class33_1.magnitude);
  1753. anIntArray1636[j1] = method481(j3, l2, k3);
  1754. }
  1755. }
  1756. super.aClass33Array1425 = null;
  1757. aClass33Array1660 = null;
  1758. anIntArray1655 = null;
  1759. anIntArray1656 = null;
  1760. if (anIntArray1637 != null) {
  1761. for (int l1 = 0; l1 < anInt1630; l1++)
  1762. if ((anIntArray1637[l1] & 2) == 2)
  1763. return;
  1764. }
  1765. anIntArray1640 = null;
  1766. }
  1767.  
  1768. private static int method481(int i, int j, int k) {
  1769. if ((k & 2) == 2) {
  1770. if (j < 0)
  1771. j = 0;
  1772. else if (j > 127)
  1773. j = 127;
  1774. j = 127 - j;
  1775. return j;
  1776. }
  1777. j = j * (i & 0x7f) >> 7;
  1778. if (j < 2)
  1779. j = 2;
  1780. else if (j > 126)
  1781. j = 126;
  1782. return (i & 0xff80) + j;
  1783. }
  1784.  
  1785. public void method482(int j, int k, int l, int i1, int j1, int k1) {
  1786. int i = 0; // was a parameter
  1787. int l1 = Texture.textureInt1;
  1788. int i2 = Texture.textureInt2;
  1789. int j2 = modelIntArray1[i];
  1790. int k2 = modelIntArray2[i];
  1791. int l2 = modelIntArray1[j];
  1792. int i3 = modelIntArray2[j];
  1793. int j3 = modelIntArray1[k];
  1794. int k3 = modelIntArray2[k];
  1795. int l3 = modelIntArray1[l];
  1796. int i4 = modelIntArray2[l];
  1797. int j4 = j1 * l3 + k1 * i4 >> 16;
  1798. for (int k4 = 0; k4 < anInt1626; k4++) {
  1799. int l4 = anIntArray1627[k4];
  1800. int i5 = anIntArray1628[k4];
  1801. int j5 = anIntArray1629[k4];
  1802. if (k != 0) {
  1803. int k5 = i5 * j3 + l4 * k3 >> 16;
  1804. i5 = i5 * k3 - l4 * j3 >> 16;
  1805. l4 = k5;
  1806. }
  1807. if (i != 0) {
  1808. int l5 = i5 * k2 - j5 * j2 >> 16;
  1809. j5 = i5 * j2 + j5 * k2 >> 16;
  1810. i5 = l5;
  1811. }
  1812. if (j != 0) {
  1813. int i6 = j5 * l2 + l4 * i3 >> 16;
  1814. j5 = j5 * i3 - l4 * l2 >> 16;
  1815. l4 = i6;
  1816. }
  1817. l4 += i1;
  1818. i5 += j1;
  1819. j5 += k1;
  1820. int j6 = i5 * i4 - j5 * l3 >> 16;
  1821. j5 = i5 * l3 + j5 * i4 >> 16;
  1822. i5 = j6;
  1823. anIntArray1667[k4] = j5 - j4;
  1824. anIntArray1665[k4] = l1 + (l4 << 9) / j5;
  1825. anIntArray1666[k4] = i2 + (i5 << 9) / j5;
  1826. if (anInt1642 > 0) {
  1827. anIntArray1668[k4] = l4;
  1828. anIntArray1669[k4] = i5;
  1829. anIntArray1670[k4] = j5;
  1830. }
  1831. }
  1832. try {
  1833. method483(false, false, 0);
  1834. } catch (Exception _ex) {
  1835. }
  1836. }
  1837.  
  1838. public void renderAtPoint(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2) {
  1839. int j2 = l1 * i1 - j1 * l >> 16;
  1840. int k2 = k1 * j + j2 * k >> 16;
  1841. int l2 = anInt1650 * k >> 16;
  1842. int i3 = k2 + l2;
  1843. if (i3 <= 50 || k2 >= 3500)
  1844. return;
  1845. int j3 = l1 * l + j1 * i1 >> 16;
  1846. int k3 = j3 - anInt1650 << 9;
  1847. if (k3 / i3 >= DrawingArea.maxHeight)
  1848. return;
  1849. int l3 = j3 + anInt1650 << 9;
  1850. if (l3 / i3 <= -DrawingArea.maxHeight)
  1851. return;
  1852. int i4 = k1 * k - j2 * j >> 16;
  1853. int j4 = anInt1650 * j >> 16;
  1854. int k4 = i4 + j4 << 9;
  1855. if (k4 / i3 <= -DrawingArea.center)
  1856. return;
  1857. int l4 = j4 + (super.modelHeight * k >> 16);
  1858. int i5 = i4 - l4 << 9;
  1859. if (i5 / i3 >= DrawingArea.center)
  1860. return;
  1861. int j5 = l2 + (super.modelHeight * j >> 16);
  1862. boolean flag = false;
  1863. if (k2 - j5 <= 50)
  1864. flag = true;
  1865. boolean flag1 = false;
  1866. if (i2 > 0 && aBoolean1684) {
  1867. int k5 = k2 - l2;
  1868. if (k5 <= 50)
  1869. k5 = 50;
  1870. if (j3 > 0) {
  1871. k3 /= i3;
  1872. l3 /= k5;
  1873. } else {
  1874. l3 /= i3;
  1875. k3 /= k5;
  1876. }
  1877. if (i4 > 0) {
  1878. i5 /= i3;
  1879. k4 /= k5;
  1880. } else {
  1881. k4 /= i3;
  1882. i5 /= k5;
  1883. }
  1884. int i6 = anInt1685 - Texture.textureInt1;
  1885. int k6 = anInt1686 - Texture.textureInt2;
  1886. if (i6 > k3 && i6 < l3 && k6 > i5 && k6 < k4)
  1887. if (aBoolean1659)
  1888. anIntArray1688[anInt1687++] = i2;
  1889. else
  1890. flag1 = true;
  1891. }
  1892. int l5 = Texture.textureInt1;
  1893. int j6 = Texture.textureInt2;
  1894. int l6 = 0;
  1895. int i7 = 0;
  1896. if (i != 0) {
  1897. l6 = modelIntArray1[i];
  1898. i7 = modelIntArray2[i];
  1899. }
  1900. for (int j7 = 0; j7 < anInt1626; j7++) {
  1901. int k7 = anIntArray1627[j7];
  1902. int l7 = anIntArray1628[j7];
  1903. int i8 = anIntArray1629[j7];
  1904. if (i != 0) {
  1905. int j8 = i8 * l6 + k7 * i7 >> 16;
  1906. i8 = i8 * i7 - k7 * l6 >> 16;
  1907. k7 = j8;
  1908. }
  1909. k7 += j1;
  1910. l7 += k1;
  1911. i8 += l1;
  1912. int k8 = i8 * l + k7 * i1 >> 16;
  1913. i8 = i8 * i1 - k7 * l >> 16;
  1914. k7 = k8;
  1915. k8 = l7 * k - i8 * j >> 16;
  1916. i8 = l7 * j + i8 * k >> 16;
  1917. l7 = k8;
  1918. anIntArray1667[j7] = i8 - k2;
  1919. if (i8 >= 50) {
  1920. anIntArray1665[j7] = l5 + (k7 << 9) / i8;
  1921. anIntArray1666[j7] = j6 + (l7 << 9) / i8;
  1922. } else {
  1923. anIntArray1665[j7] = -5000;
  1924. flag = true;
  1925. }
  1926. if (flag || anInt1642 > 0) {
  1927. anIntArray1668[j7] = k7;
  1928. anIntArray1669[j7] = l7;
  1929. anIntArray1670[j7] = i8;
  1930. }
  1931. }
  1932. try {
  1933. method483(flag, flag1, i2);
  1934. } catch (Exception _ex) {
  1935. }
  1936. }
  1937.  
  1938. private void method483(boolean flag, boolean flag1, int i) {
  1939. for (int j = 0; j < anInt1652; j++)
  1940. anIntArray1671[j] = 0;
  1941. for (int k = 0; k < anInt1630; k++)
  1942. if (anIntArray1637 == null || anIntArray1637[k] != -1) {
  1943. int l = anIntArray1631[k];
  1944. int k1 = anIntArray1632[k];
  1945. int j2 = anIntArray1633[k];
  1946. int i3 = anIntArray1665[l];
  1947. int l3 = anIntArray1665[k1];
  1948. int k4 = anIntArray1665[j2];
  1949. if (flag && (i3 == -5000 || l3 == -5000 || k4 == -5000)) {
  1950. aBooleanArray1664[k] = true;
  1951. int j5 = (anIntArray1667[l] + anIntArray1667[k1] + anIntArray1667[j2]) / 3 + anInt1653;
  1952. anIntArrayArray1672[j5][anIntArray1671[j5]++] = k;
  1953. } else {
  1954. if (flag1 && method486(anInt1685, anInt1686, anIntArray1666[l], anIntArray1666[k1], anIntArray1666[j2], i3, l3, k4)) {
  1955. anIntArray1688[anInt1687++] = i;
  1956. flag1 = false;
  1957. }
  1958. if ((i3 - l3) * (anIntArray1666[j2] - anIntArray1666[k1]) - (anIntArray1666[l] - anIntArray1666[k1]) * (k4 - l3) > 0) {
  1959. aBooleanArray1664[k] = false;
  1960. aBooleanArray1663[k] = i3 < 0 || l3 < 0 || k4 < 0 || i3 > DrawingArea.maxWidth || l3 > DrawingArea.maxWidth || k4 > DrawingArea.maxWidth;
  1961. int k5 = (anIntArray1667[l] + anIntArray1667[k1] + anIntArray1667[j2]) / 3 + anInt1653;
  1962. anIntArrayArray1672[k5][anIntArray1671[k5]++] = k;
  1963. }
  1964. }
  1965. }
  1966. if (anIntArray1638 == null) {
  1967. for (int i1 = anInt1652 - 1; i1 >= 0; i1--) {
  1968. int l1 = anIntArray1671[i1];
  1969. if (l1 > 0) {
  1970. int ai[] = anIntArrayArray1672[i1];
  1971. for (int j3 = 0; j3 < l1; j3++)
  1972. method484(ai[j3]);
  1973. }
  1974. }
  1975. return;
  1976. }
  1977. for (int j1 = 0; j1 < 12; j1++) {
  1978. anIntArray1673[j1] = 0;
  1979. anIntArray1677[j1] = 0;
  1980. }
  1981. for (int i2 = anInt1652 - 1; i2 >= 0; i2--) {
  1982. int k2 = anIntArray1671[i2];
  1983. if (k2 > 0) {
  1984. int ai1[] = anIntArrayArray1672[i2];
  1985. for (int i4 = 0; i4 < k2; i4++) {
  1986. int l4 = ai1[i4];
  1987. int l5 = anIntArray1638[l4];
  1988. int j6 = anIntArray1673[l5]++;
  1989. anIntArrayArray1674[l5][j6] = l4;
  1990. if (l5 < 10)
  1991. anIntArray1677[l5] += i2;
  1992. else if (l5 == 10)
  1993. anIntArray1675[j6] = i2;
  1994. else
  1995. anIntArray1676[j6] = i2;
  1996. }
  1997. }
  1998. }
  1999. int l2 = 0;
  2000. if (anIntArray1673[1] > 0 || anIntArray1673[2] > 0)
  2001. l2 = (anIntArray1677[1] + anIntArray1677[2]) / (anIntArray1673[1] + anIntArray1673[2]);
  2002. int k3 = 0;
  2003. if (anIntArray1673[3] > 0 || anIntArray1673[4] > 0)
  2004. k3 = (anIntArray1677[3] + anIntArray1677[4]) / (anIntArray1673[3] + anIntArray1673[4]);
  2005. int j4 = 0;
  2006. if (anIntArray1673[6] > 0 || anIntArray1673[8] > 0)
  2007. j4 = (anIntArray1677[6] + anIntArray1677[8]) / (anIntArray1673[6] + anIntArray1673[8]);
  2008. int i6 = 0;
  2009. int k6 = anIntArray1673[10];
  2010. int ai2[] = anIntArrayArray1674[10];
  2011. int ai3[] = anIntArray1675;
  2012. if (i6 == k6) {
  2013. i6 = 0;
  2014. k6 = anIntArray1673[11];
  2015. ai2 = anIntArrayArray1674[11];
  2016. ai3 = anIntArray1676;
  2017. }
  2018. int i5;
  2019. if (i6 < k6)
  2020. i5 = ai3[i6];
  2021. else
  2022. i5 = -1000;
  2023. for (int l6 = 0; l6 < 10; l6++) {
  2024. while (l6 == 0 && i5 > l2) {
  2025. method484(ai2[i6++]);
  2026. if (i6 == k6 && ai2 != anIntArrayArray1674[11]) {
  2027. i6 = 0;
  2028. k6 = anIntArray1673[11];
  2029. ai2 = anIntArrayArray1674[11];
  2030. ai3 = anIntArray1676;
  2031. }
  2032. if (i6 < k6)
  2033. i5 = ai3[i6];
  2034. else
  2035. i5 = -1000;
  2036. }
  2037. while (l6 == 3 && i5 > k3) {
  2038. method484(ai2[i6++]);
  2039. if (i6 == k6 && ai2 != anIntArrayArray1674[11]) {
  2040. i6 = 0;
  2041. k6 = anIntArray1673[11];
  2042. ai2 = anIntArrayArray1674[11];
  2043. ai3 = anIntArray1676;
  2044. }
  2045. if (i6 < k6)
  2046. i5 = ai3[i6];
  2047. else
  2048. i5 = -1000;
  2049. }
  2050. while (l6 == 5 && i5 > j4) {
  2051. method484(ai2[i6++]);
  2052. if (i6 == k6 && ai2 != anIntArrayArray1674[11]) {
  2053. i6 = 0;
  2054. k6 = anIntArray1673[11];
  2055. ai2 = anIntArrayArray1674[11];
  2056. ai3 = anIntArray1676;
  2057. }
  2058. if (i6 < k6)
  2059. i5 = ai3[i6];
  2060. else
  2061. i5 = -1000;
  2062. }
  2063. int i7 = anIntArray1673[l6];
  2064. int ai4[] = anIntArrayArray1674[l6];
  2065. for (int j7 = 0; j7 < i7; j7++)
  2066. method484(ai4[j7]);
  2067. }
  2068. while (i5 != -1000) {
  2069. method484(ai2[i6++]);
  2070. if (i6 == k6 && ai2 != anIntArrayArray1674[11]) {
  2071. i6 = 0;
  2072. ai2 = anIntArrayArray1674[11];
  2073. k6 = anIntArray1673[11];
  2074. ai3 = anIntArray1676;
  2075. }
  2076. if (i6 < k6)
  2077. i5 = ai3[i6];
  2078. else
  2079. i5 = -1000;
  2080. }
  2081. }
  2082.  
  2083. private void method484(int i) {
  2084. if (aBooleanArray1664[i]) {
  2085. method485(i);
  2086. return;
  2087. }
  2088. int j = anIntArray1631[i];
  2089. int k = anIntArray1632[i];
  2090. int l = anIntArray1633[i];
  2091. Texture.aBoolean1462 = aBooleanArray1663[i];
  2092. if (anIntArray1639 == null)
  2093. Texture.anInt1465 = 0;
  2094. else
  2095. Texture.anInt1465 = anIntArray1639[i];
  2096. int i1;
  2097. if (anIntArray1637 == null)
  2098. i1 = 0;
  2099. else
  2100. i1 = anIntArray1637[i] & 3;
  2101. if (i1 == 0) {
  2102. Texture.method374(anIntArray1666[j], anIntArray1666[k], anIntArray1666[l], anIntArray1665[j], anIntArray1665[k], anIntArray1665[l], anIntArray1634[i], anIntArray1635[i], anIntArray1636[i]);
  2103. return;
  2104. }
  2105. if (i1 == 1) {
  2106. Texture.method376(anIntArray1666[j], anIntArray1666[k], anIntArray1666[l], anIntArray1665[j], anIntArray1665[k], anIntArray1665[l], modelIntArray3[anIntArray1634[i]]);
  2107. return;
  2108. }
  2109. if (i1 == 2) {
  2110. int j1 = anIntArray1637[i] >> 2;
  2111. int l1 = anIntArray1643[j1];
  2112. int j2 = anIntArray1644[j1];
  2113. int l2 = anIntArray1645[j1];
  2114. Texture.method378(anIntArray1666[j], anIntArray1666[k], anIntArray1666[l], anIntArray1665[j], anIntArray1665[k], anIntArray1665[l], anIntArray1634[i], anIntArray1635[i], anIntArray1636[i], anIntArray1668[l1], anIntArray1668[j2], anIntArray1668[l2], anIntArray1669[l1], anIntArray1669[j2], anIntArray1669[l2], anIntArray1670[l1], anIntArray1670[j2], anIntArray1670[l2], anIntArray1640[i]);
  2115. return;
  2116. }
  2117. if (i1 == 3) {
  2118. int k1 = anIntArray1637[i] >> 2;
  2119. int i2 = anIntArray1643[k1];
  2120. int k2 = anIntArray1644[k1];
  2121. int i3 = anIntArray1645[k1];
  2122. Texture.method378(anIntArray1666[j], anIntArray1666[k], anIntArray1666[l], anIntArray1665[j], anIntArray1665[k], anIntArray1665[l], anIntArray1634[i], anIntArray1634[i], anIntArray1634[i], anIntArray1668[i2], anIntArray1668[k2], anIntArray1668[i3], anIntArray1669[i2], anIntArray1669[k2], anIntArray1669[i3], anIntArray1670[i2], anIntArray1670[k2], anIntArray1670[i3], anIntArray1640[i]);
  2123. }
  2124. }
  2125.  
  2126. private void method485(int i) {
  2127. int j = Texture.textureInt1;
  2128. int k = Texture.textureInt2;
  2129. int l = 0;
  2130. int i1 = anIntArray1631[i];
  2131. int j1 = anIntArray1632[i];
  2132. int k1 = anIntArray1633[i];
  2133. int l1 = anIntArray1670[i1];
  2134. int i2 = anIntArray1670[j1];
  2135. int j2 = anIntArray1670[k1];
  2136. if (l1 >= 50) {
  2137. anIntArray1678[l] = anIntArray1665[i1];
  2138. anIntArray1679[l] = anIntArray1666[i1];
  2139. anIntArray1680[l++] = anIntArray1634[i];
  2140. } else {
  2141. int k2 = anIntArray1668[i1];
  2142. int k3 = anIntArray1669[i1];
  2143. int k4 = anIntArray1634[i];
  2144. if (j2 >= 50) {
  2145. int k5 = (50 - l1) * modelIntArray4[j2 - l1];
  2146. anIntArray1678[l] = j + (k2 + ((anIntArray1668[k1] - k2) * k5 >> 16) << 9) / 50;
  2147. anIntArray1679[l] = k + (k3 + ((anIntArray1669[k1] - k3) * k5 >> 16) << 9) / 50;
  2148. anIntArray1680[l++] = k4 + ((anIntArray1636[i] - k4) * k5 >> 16);
  2149. }
  2150. if (i2 >= 50) {
  2151. int l5 = (50 - l1) * modelIntArray4[i2 - l1];
  2152. anIntArray1678[l] = j + (k2 + ((anIntArray1668[j1] - k2) * l5 >> 16) << 9) / 50;
  2153. anIntArray1679[l] = k + (k3 + ((anIntArray1669[j1] - k3) * l5 >> 16) << 9) / 50;
  2154. anIntArray1680[l++] = k4 + ((anIntArray1635[i] - k4) * l5 >> 16);
  2155. }
  2156. }
  2157. if (i2 >= 50) {
  2158. anIntArray1678[l] = anIntArray1665[j1];
  2159. anIntArray1679[l] = anIntArray1666[j1];
  2160. anIntArray1680[l++] = anIntArray1635[i];
  2161. } else {
  2162. int l2 = anIntArray1668[j1];
  2163. int l3 = anIntArray1669[j1];
  2164. int l4 = anIntArray1635[i];
  2165. if (l1 >= 50) {
  2166. int i6 = (50 - i2) * modelIntArray4[l1 - i2];
  2167. anIntArray1678[l] = j + (l2 + ((anIntArray1668[i1] - l2) * i6 >> 16) << 9) / 50;
  2168. anIntArray1679[l] = k + (l3 + ((anIntArray1669[i1] - l3) * i6 >> 16) << 9) / 50;
  2169. anIntArray1680[l++] = l4 + ((anIntArray1634[i] - l4) * i6 >> 16);
  2170. }
  2171. if (j2 >= 50) {
  2172. int j6 = (50 - i2) * modelIntArray4[j2 - i2];
  2173. anIntArray1678[l] = j + (l2 + ((anIntArray1668[k1] - l2) * j6 >> 16) << 9) / 50;
  2174. anIntArray1679[l] = k + (l3 + ((anIntArray1669[k1] - l3) * j6 >> 16) << 9) / 50;
  2175. anIntArray1680[l++] = l4 + ((anIntArray1636[i] - l4) * j6 >> 16);
  2176. }
  2177. }
  2178. if (j2 >= 50) {
  2179. anIntArray1678[l] = anIntArray1665[k1];
  2180. anIntArray1679[l] = anIntArray1666[k1];
  2181. anIntArray1680[l++] = anIntArray1636[i];
  2182. } else {
  2183. int i3 = anIntArray1668[k1];
  2184. int i4 = anIntArray1669[k1];
  2185. int i5 = anIntArray1636[i];
  2186. if (i2 >= 50) {
  2187. int k6 = (50 - j2) * modelIntArray4[i2 - j2];
  2188. anIntArray1678[l] = j + (i3 + ((anIntArray1668[j1] - i3) * k6 >> 16) << 9) / 50;
  2189. anIntArray1679[l] = k + (i4 + ((anIntArray1669[j1] - i4) * k6 >> 16) << 9) / 50;
  2190. anIntArray1680[l++] = i5 + ((anIntArray1635[i] - i5) * k6 >> 16);
  2191. }
  2192. if (l1 >= 50) {
  2193. int l6 = (50 - j2) * modelIntArray4[l1 - j2];
  2194. anIntArray1678[l] = j + (i3 + ((anIntArray1668[i1] - i3) * l6 >> 16) << 9) / 50;
  2195. anIntArray1679[l] = k + (i4 + ((anIntArray1669[i1] - i4) * l6 >> 16) << 9) / 50;
  2196. anIntArray1680[l++] = i5 + ((anIntArray1634[i] - i5) * l6 >> 16);
  2197. }
  2198. }
  2199. int j3 = anIntArray1678[0];
  2200. int j4 = anIntArray1678[1];
  2201. int j5 = anIntArray1678[2];
  2202. int i7 = anIntArray1679[0];
  2203. int j7 = anIntArray1679[1];
  2204. int k7 = anIntArray1679[2];
  2205. if ((j3 - j4) * (k7 - j7) - (i7 - j7) * (j5 - j4) > 0) {
  2206. Texture.aBoolean1462 = false;
  2207. if (l == 3) {
  2208. if (j3 < 0 || j4 < 0 || j5 < 0 || j3 > DrawingArea.maxWidth || j4 > DrawingArea.maxWidth || j5 > DrawingArea.maxWidth)
  2209. Texture.aBoolean1462 = true;
  2210. int l7;
  2211. if (anIntArray1637 == null)
  2212. l7 = 0;
  2213. else
  2214. l7 = anIntArray1637[i] & 3;
  2215. if (l7 == 0)
  2216. Texture.method374(i7, j7, k7, j3, j4, j5, anIntArray1680[0], anIntArray1680[1], anIntArray1680[2]);
  2217. else if (l7 == 1)
  2218. Texture.method376(i7, j7, k7, j3, j4, j5, modelIntArray3[anIntArray1634[i]]);
  2219. else if (l7 == 2) {
  2220. int j8 = anIntArray1637[i] >> 2;
  2221. int k9 = anIntArray1643[j8];
  2222. int k10 = anIntArray1644[j8];
  2223. int k11 = anIntArray1645[j8];
  2224. Texture.method378(i7, j7, k7, j3, j4, j5, anIntArray1680[0], anIntArray1680[1], anIntArray1680[2], anIntArray1668[k9], anIntArray1668[k10], anIntArray1668[k11], anIntArray1669[k9], anIntArray1669[k10], anIntArray1669[k11], anIntArray1670[k9], anIntArray1670[k10], anIntArray1670[k11], anIntArray1640[i]);
  2225. } else if (l7 == 3) {
  2226. int k8 = anIntArray1637[i] >> 2;
  2227. int l9 = anIntArray1643[k8];
  2228. int l10 = anIntArray1644[k8];
  2229. int l11 = anIntArray1645[k8];
  2230. Texture.method378(i7, j7, k7, j3, j4, j5, anIntArray1634[i], anIntArray1634[i], anIntArray1634[i], anIntArray1668[l9], anIntArray1668[l10], anIntArray1668[l11], anIntArray1669[l9], anIntArray1669[l10], anIntArray1669[l11], anIntArray1670[l9], anIntArray1670[l10], anIntArray1670[l11], anIntArray1640[i]);
  2231. }
  2232. }
  2233. if (l == 4) {
  2234. if (j3 < 0 || j4 < 0 || j5 < 0 || j3 > DrawingArea.maxWidth || j4 > DrawingArea.maxWidth || j5 > DrawingArea.maxWidth || anIntArray1678[3] < 0 || anIntArray1678[3] > DrawingArea.maxWidth)
  2235. Texture.aBoolean1462 = true;
  2236. int i8;
  2237. if (anIntArray1637 == null)
  2238. i8 = 0;
  2239. else
  2240. i8 = anIntArray1637[i] & 3;
  2241. if (i8 == 0) {
  2242. Texture.method374(i7, j7, k7, j3, j4, j5, anIntArray1680[0], anIntArray1680[1], anIntArray1680[2]);
  2243. Texture.method374(i7, k7, anIntArray1679[3], j3, j5, anIntArray1678[3], anIntArray1680[0], anIntArray1680[2], anIntArray1680[3]);
  2244. return;
  2245. }
  2246. if (i8 == 1) {
  2247. int l8 = modelIntArray3[anIntArray1634[i]];
  2248. Texture.method376(i7, j7, k7, j3, j4, j5, l8);
  2249. Texture.method376(i7, k7, anIntArray1679[3], j3, j5, anIntArray1678[3], l8);
  2250. return;
  2251. }
  2252. if (i8 == 2) {
  2253. int i9 = anIntArray1637[i] >> 2;
  2254. int i10 = anIntArray1643[i9];
  2255. int i11 = anIntArray1644[i9];
  2256. int i12 = anIntArray1645[i9];
  2257. Texture.method378(i7, j7, k7, j3, j4, j5, anIntArray1680[0], anIntArray1680[1], anIntArray1680[2], anIntArray1668[i10], anIntArray1668[i11], anIntArray1668[i12], anIntArray1669[i10], anIntArray1669[i11], anIntArray1669[i12], anIntArray1670[i10], anIntArray1670[i11], anIntArray1670[i12], anIntArray1640[i]);
  2258. Texture.method378(i7, k7, anIntArray1679[3], j3, j5, anIntArray1678[3], anIntArray1680[0], anIntArray1680[2], anIntArray1680[3], anIntArray1668[i10], anIntArray1668[i11], anIntArray1668[i12], anIntArray1669[i10], anIntArray1669[i11], anIntArray1669[i12], anIntArray1670[i10], anIntArray1670[i11], anIntArray1670[i12], anIntArray1640[i]);
  2259. return;
  2260. }
  2261. if (i8 == 3) {
  2262. int j9 = anIntArray1637[i] >> 2;
  2263. int j10 = anIntArray1643[j9];
  2264. int j11 = anIntArray1644[j9];
  2265. int j12 = anIntArray1645[j9];
  2266. Texture.method378(i7, j7, k7, j3, j4, j5, anIntArray1634[i], anIntArray1634[i], anIntArray1634[i], anIntArray1668[j10], anIntArray1668[j11], anIntArray1668[j12], anIntArray1669[j10], anIntArray1669[j11], anIntArray1669[j12], anIntArray1670[j10], anIntArray1670[j11], anIntArray1670[j12], anIntArray1640[i]);
  2267. Texture.method378(i7, k7, anIntArray1679[3], j3, j5, anIntArray1678[3], anIntArray1634[i], anIntArray1634[i], anIntArray1634[i], anIntArray1668[j10], anIntArray1668[j11], anIntArray1668[j12], anIntArray1669[j10], anIntArray1669[j11], anIntArray1669[j12], anIntArray1670[j10], anIntArray1670[j11], anIntArray1670[j12], anIntArray1640[i]);
  2268. }
  2269. }
  2270. }
  2271. }
  2272.  
  2273. private boolean method486(int i, int j, int k, int l, int i1, int j1, int k1, int l1) {
  2274. if (j < k && j < l && j < i1)
  2275. return false;
  2276. if (j > k && j > l && j > i1)
  2277. return false;
  2278. return !(i < j1 && i < k1 && i < l1) && (i <= j1 || i <= k1 || i <= l1);
  2279. }
  2280.  
  2281. public static Model aModel_1621 = new Model();
  2282. private static int[] anIntArray1622 = new int[2000];
  2283. private static int[] anIntArray1623 = new int[2000];
  2284. private static int[] anIntArray1624 = new int[2000];
  2285. private static int[] anIntArray1625 = new int[2000];
  2286. public int anInt1626;
  2287. public int anIntArray1627[];
  2288. public int anIntArray1628[];
  2289. public int anIntArray1629[];
  2290. public int anInt1630;
  2291. public int anIntArray1631[];
  2292. public int anIntArray1632[];
  2293. public int anIntArray1633[];
  2294. private int[] anIntArray1634;
  2295. private int[] anIntArray1635;
  2296. private int[] anIntArray1636;
  2297. public int anIntArray1637[];
  2298. private int[] anIntArray1638;
  2299. private int[] anIntArray1639;
  2300. public int anIntArray1640[];
  2301. private int anInt1641;
  2302. private int anInt1642;
  2303. private int[] anIntArray1643;
  2304. private int[] anIntArray1644;
  2305. private int[] anIntArray1645;
  2306. public int anInt1646;
  2307. public int anInt1647;
  2308. public int anInt1648;
  2309. public int anInt1649;
  2310. public int anInt1650;
  2311. public int anInt1651;
  2312. private int anInt1652;
  2313. private int anInt1653;
  2314. public int anInt1654;
  2315. private int[] anIntArray1655;
  2316. private int[] anIntArray1656;
  2317. public int anIntArrayArray1657[][];
  2318. public int anIntArrayArray1658[][];
  2319. public boolean aBoolean1659;
  2320. public VertexNormal aClass33Array1660[];
  2321. private static Class21[] aClass21Array1661;
  2322. private static OnDemandFetcherParent aOnDemandFetcherParent_1662;
  2323. private static boolean[] aBooleanArray1663 = new boolean[4096];
  2324. private static boolean[] aBooleanArray1664 = new boolean[4096];
  2325. private static int[] anIntArray1665 = new int[4096];
  2326. private static int[] anIntArray1666 = new int[4096];
  2327. private static int[] anIntArray1667 = new int[4096];
  2328. private static int[] anIntArray1668 = new int[4096];
  2329. private static int[] anIntArray1669 = new int[4096];
  2330. private static int[] anIntArray1670 = new int[4096];
  2331. private static int[] anIntArray1671 = new int[1500];
  2332. private static int[][] anIntArrayArray1672 = new int[1500][512];
  2333. private static int[] anIntArray1673 = new int[12];
  2334. private static int[][] anIntArrayArray1674 = new int[12][2000];
  2335. private static int[] anIntArray1675 = new int[2000];
  2336. private static int[] anIntArray1676 = new int[2000];
  2337. private static int[] anIntArray1677 = new int[12];
  2338. private static int[] anIntArray1678 = new int[10];
  2339. private static int[] anIntArray1679 = new int[10];
  2340. private static int[] anIntArray1680 = new int[10];
  2341. private static int anInt1681;
  2342. private static int anInt1682;
  2343. private static int anInt1683;
  2344. public static boolean aBoolean1684;
  2345. public static int anInt1685;
  2346. public static int anInt1686;
  2347. public static int anInt1687;
  2348. public static int[] anIntArray1688 = new int[1000];
  2349. public static int modelIntArray1[];
  2350. public static int modelIntArray2[];
  2351. private static int[] modelIntArray3;
  2352. private static int[] modelIntArray4;
  2353. static {
  2354. modelIntArray1 = Texture.anIntArray1470;
  2355. modelIntArray2 = Texture.anIntArray1471;
  2356. modelIntArray3 = Texture.anIntArray1482;
  2357. modelIntArray4 = Texture.anIntArray1469;
  2358. }
  2359. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement