Advertisement
Guest User

ObjectDefinitions source folder

a guest
Apr 19th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.34 KB | None | 0 0
  1. package com.rs.cache.loaders;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.lang.reflect.Field;
  7. import java.util.Arrays;
  8. import java.util.concurrent.ConcurrentHashMap;
  9.  
  10. import com.rs.cache.Cache;
  11. import com.rs.io.InputStream;
  12.  
  13. public class ObjectDefinitions {
  14.  
  15. public boolean aBoolean2651;
  16. public int[] anIntArray2653;
  17. public int anInt2654 = 0;
  18. public int[] anIntArray2655;
  19. public short[] aShortArray2656;
  20. public int[] anIntArray2657;
  21. public int anInt2659;
  22. public boolean aBoolean2660;
  23. public short[] originalColours;
  24. public int anInt2663;
  25. public boolean aBoolean2664;
  26. public int[] anIntArray2665;
  27. public int varbit;
  28. public int anInt2667;
  29. public int sizeY;
  30. public int objectAnimation;
  31. public boolean aBoolean2671 = false;
  32. public int anInt2672 = 0;
  33. public boolean aBoolean2673;
  34. public short[] aShortArray2675;
  35. public boolean aBoolean2676 = true;
  36. public boolean aBoolean2678;
  37. public boolean aBoolean2680;
  38. public String[] options;
  39. public int[] anIntArray2684;
  40. public int anInt2685;
  41. public int anInt2686;
  42. public boolean aBoolean2687;
  43. public int anInt2688;
  44. public int anInt2689;
  45. public int anInt2690;
  46. public boolean projectileClipped;
  47. public short[] modifiedColours;
  48. public int clipType;
  49. public int anInt2694;
  50. public int anInt2695;
  51. public int anInt2696;
  52. public int anInt2697;
  53. public int anInt2698;
  54. public int anInt2699;
  55. public int[] anIntArray2700;
  56. public int anInt2701;
  57. public int sizeX;
  58. public int anInt2703;
  59. public int anInt2705;
  60. public int anInt2708;
  61. public int anInt2710;
  62. public int anInt2712;
  63. public int anInt2713;
  64. public short aShort2716;
  65. public int anInt2718;
  66. public boolean aBoolean2719;
  67. public int[] modelsIds;
  68. public boolean aBoolean2721;
  69. public boolean aBoolean2722;
  70. public boolean notClipped;
  71. public byte[] aByteArray2725;
  72. public int anInt2726;
  73. public String name;
  74. public int varp;
  75. public int anInt2733;
  76. public boolean aBoolean2735;
  77. public int anInt2736;
  78. public byte aByte2737;
  79.  
  80. public ObjectDefinitions() {
  81. objectAnimation = 16;
  82. aBoolean2664 = true;
  83. options = new String[5];
  84. aBoolean2678 = false;
  85. aBoolean2687 = false;
  86. anInt2685 = 0;
  87. anInt2667 = 128;
  88. anInt2695 = 0;
  89. aBoolean2673 = false;
  90. anInt2697 = 0;
  91. aBoolean2660 = false;
  92. projectileClipped = true;
  93. anInt2696 = 255;
  94. varbit = -1;
  95. anInt2659 = -1;
  96. anIntArray2657 = null;
  97. anInt2663 = -1;
  98. anInt2698 = 0;
  99. aBoolean2680 = false;
  100. sizeX = 1;
  101. anInt2686 = 0;
  102. anInt2694 = -1;
  103. anIntArray2700 = null;
  104. notClipped = false;
  105. anInt2699 = 128;
  106. anInt2703 = -1;
  107. aBoolean2719 = false;
  108. anInt2689 = 0;
  109. sizeY = 1;
  110. clipType = 2;
  111. anInt2710 = 0;
  112. anInt2726 = -1;
  113. aShort2716 = (short) -1;
  114. aBoolean2721 = false;
  115. anInt2708 = -1;
  116. anInt2688 = -1;
  117. anInt2701 = 128;
  118. aBoolean2722 = false;
  119. aBoolean2651 = false;
  120. anInt2712 = -1;
  121. anInt2718 = -1;
  122. anInt2733 = 0;
  123. anInt2705 = 0;
  124. anInt2690 = -1;
  125. varp = -1;
  126. aBoolean2735 = true;
  127. anInt2736 = -1;
  128. name = "null";
  129. aByte2737 = (byte) 0;
  130. }
  131.  
  132. public int id;
  133.  
  134. private static final ConcurrentHashMap<Integer, ObjectDefinitions> OBJECT_DEFINITIONS = new ConcurrentHashMap<Integer, ObjectDefinitions>();
  135.  
  136. public void printFields() throws IOException {
  137. BufferedWriter writer = new BufferedWriter(new FileWriter(id + ".txt", true));
  138. for (Field field : getClass().getDeclaredFields()) {
  139. if ((field.getModifiers() & 8) != 0) {
  140. continue;
  141. }
  142. try {
  143. writer.flush();
  144. writer.write(field.getName() + ": " + getValue(field));
  145. writer.newLine();
  146. } catch (Throwable e) {
  147. e.printStackTrace();
  148. }
  149. }
  150. writer.close();
  151. }
  152.  
  153. private Object getValue(Field field) throws Throwable {
  154. field.setAccessible(true);
  155. Class<?> type = field.getType();
  156. if (type == int[][].class) {
  157. return Arrays.toString((int[][]) field.get(this));
  158. } else if (type == int[].class) {
  159. return Arrays.toString((int[]) field.get(this));
  160. } else if (type == byte[].class) {
  161. return Arrays.toString((byte[]) field.get(this));
  162. } else if (type == short[].class) {
  163. return Arrays.toString((short[]) field.get(this));
  164. } else if (type == double[].class) {
  165. return Arrays.toString((double[]) field.get(this));
  166. } else if (type == float[].class) {
  167. return Arrays.toString((float[]) field.get(this));
  168. } else if (type == Object[].class) {
  169. return Arrays.toString((Object[]) field.get(this));
  170. }
  171. return field.get(this);
  172. }
  173.  
  174. public boolean containsOption(int i, String option) {
  175. if (options == null || options[i] == null || options.length <= i)
  176. return false;
  177. return options[i].equals(option);
  178. }
  179.  
  180. public boolean containsOption(String o) {
  181. if (options == null)
  182. return false;
  183. for (String option : options) {
  184. if (option == null)
  185. continue;
  186. if (option.equalsIgnoreCase(o))
  187. return true;
  188. }
  189. return false;
  190. }
  191.  
  192. public String getOption(int option) {
  193. if (options == null || options.length < option || option == 0)
  194. return "";
  195. return options[option - 1];
  196. }
  197.  
  198. public static ObjectDefinitions getObjectDefinitions(int id) {
  199. ObjectDefinitions def = OBJECT_DEFINITIONS.get(id);
  200. if (def == null) {
  201. def = new ObjectDefinitions();
  202. def.id = id;
  203. byte[] data = Cache.getCacheFileManagers()[16].getFileData(id >>> 1998118472, id & 0xff);
  204. if (data != null)
  205. def.readValueLoop(new InputStream(data));
  206. if (def.notClipped) {
  207. def.projectileClipped = false;
  208. def.clipType = 0;
  209. }
  210. OBJECT_DEFINITIONS.put(id, def);
  211. }
  212. return def;
  213. }
  214.  
  215. private void readValueLoop(InputStream stream) {
  216. for (;;) {
  217. int opcode = stream.readUnsignedByte();
  218. if (opcode == 0)
  219. break;
  220. method2567(stream, opcode);
  221. }
  222. }
  223.  
  224. public void method2567(InputStream arg0, int arg2) {
  225. if ((arg2 ^ 0xffffffff) == -2) {
  226. int i = arg0.readUnsignedByte();
  227. if (i > 0) {
  228. if (modelsIds == null) {
  229. modelsIds = new int[i];
  230. anIntArray2665 = new int[i];
  231. for (int i_0_ = 0; (i_0_ ^ 0xffffffff) > (i ^ 0xffffffff); i_0_++) {
  232. modelsIds[i_0_] = arg0.readUnsignedShort();
  233. anIntArray2665[i_0_] = arg0.readUnsignedByte();
  234. }
  235. } else
  236. arg0.skip(i * 3);
  237. }
  238. } else if (arg2 != 2) {
  239. if ((arg2 ^ 0xffffffff) == -6) {
  240. int i = arg0.readUnsignedByte();
  241. if (i > 0) {
  242. if (modelsIds == null) {
  243. anIntArray2665 = null;
  244. modelsIds = new int[i];
  245. for (int i_1_ = 0; i > i_1_; i_1_++)
  246. modelsIds[i_1_] = arg0.readUnsignedShort();
  247. } else
  248. arg0.skip(i * 2);
  249. }
  250. } else if ((arg2 ^ 0xffffffff) == -15)
  251. sizeX = arg0.readUnsignedByte();
  252. else if ((arg2 ^ 0xffffffff) == -16)
  253. sizeY = arg0.readUnsignedByte();
  254. else if ((arg2 ^ 0xffffffff) == -18) {
  255. projectileClipped = false;
  256. clipType = 0;
  257. } else if (arg2 == 18)
  258. projectileClipped = false;
  259. else if (arg2 != 19) {
  260. if (arg2 == 21)
  261. aByte2737 = (byte) 1;
  262. else if (arg2 == 22)
  263. aBoolean2673 = true;
  264. else if (arg2 != 23) {
  265. if (arg2 != 24) {
  266. if (arg2 == 27)
  267. clipType = 1;
  268. else if ((arg2 ^ 0xffffffff) != -29) {
  269. if (arg2 == 29)
  270. anInt2705 = arg0.readByte();
  271. else if (arg2 == 39)
  272. anInt2697 = arg0.readByte() * 5;
  273. else if ((arg2 ^ 0xffffffff) > -31 || arg2 >= 35) {
  274. if ((arg2 ^ 0xffffffff) != -41) {
  275. if ((arg2 ^ 0xffffffff) != -42) {
  276. if ((arg2 ^ 0xffffffff) == -43) {
  277. int i = arg0.readUnsignedByte();
  278. aByteArray2725 = new byte[i];
  279. for (int i_2_ = 0; i > i_2_; i_2_++)
  280. aByteArray2725[i_2_] = (byte) (arg0.readByte());
  281. } else if ((arg2 ^ 0xffffffff) != -63) {
  282. if (arg2 == 64)
  283. aBoolean2664 = false;
  284. else if ((arg2 ^ 0xffffffff) != -66) {
  285. if ((arg2 ^ 0xffffffff) == -67)
  286. anInt2699 = (arg0.readUnsignedShort());
  287. else if (arg2 != 67) {
  288. if ((arg2 ^ 0xffffffff) == -70)
  289. anInt2698 = (arg0.readUnsignedByte());
  290. else if (arg2 == 70)
  291. anInt2710 = (arg0.readShort());
  292. else if (arg2 == 71)
  293. anInt2686 = (arg0.readShort());
  294. else if ((arg2 ^ 0xffffffff) != -73) {
  295. if ((arg2 ^ 0xffffffff) == -74)
  296. aBoolean2651 = true;
  297. else if ((arg2 ^ 0xffffffff) == -75)
  298. notClipped = true;
  299. else if ((arg2 ^ 0xffffffff) != -76) {
  300. if (((arg2 ^ 0xffffffff) != -78) && (arg2 != 92)) {
  301. if (arg2 == 78) {
  302. anInt2726 = (arg0.readUnsignedShort());
  303. anInt2689 = (arg0.readUnsignedByte());
  304. } else if (arg2 == 79) {
  305. anInt2672 = (arg0.readUnsignedShort());
  306. anInt2685 = (arg0.readUnsignedShort());
  307. anInt2689 = (arg0.readUnsignedByte());
  308. int i = (arg0.readUnsignedByte());
  309. anIntArray2684 = (new int[i]);
  310. for (int i_3_ = 0; (i_3_ < i); i_3_++)
  311. anIntArray2684[i_3_] = arg0.readUnsignedShort();
  312. } else if (arg2 == 81) {
  313. aByte2737 = (byte) 2;
  314. aShort2716 = (short) (256 * arg0.readUnsignedByte());
  315. } else if (arg2 != 82) {
  316. if ((arg2 ^ 0xffffffff) != -89) {
  317. if ((arg2 ^ 0xffffffff) != -90) {
  318. if ((arg2 ^ 0xffffffff) == -91)
  319. aBoolean2678 = true;
  320. else if ((arg2 ^ 0xffffffff) != -92) {
  321. if (arg2 != 93) {
  322. if (arg2 == 94)
  323. aByte2737 = (byte) 4;
  324. else if ((arg2 ^ 0xffffffff) == -96)
  325. aByte2737 = (byte) 5;
  326. else if ((arg2 ^ 0xffffffff) == -97)
  327. aBoolean2680 = true;
  328. else if (arg2 != 97) {
  329. if (arg2 != 98) {
  330. if ((arg2 ^ 0xffffffff) == -100) {
  331. anInt2712 = arg0.readUnsignedByte();
  332. anInt2659 = arg0.readUnsignedShort();
  333. } else if (arg2 != 100) {
  334. if ((arg2 ^ 0xffffffff) == -102)
  335. anInt2695 = arg0.readUnsignedByte();
  336. else if ((arg2 ^ 0xffffffff) != -103) {
  337. if (arg2 == 103)
  338. anInt2690 = 0;
  339. else if ((arg2 ^ 0xffffffff) != -105) {
  340. if ((arg2 ^ 0xffffffff) == -106)
  341. aBoolean2722 = true;
  342. else if ((arg2 ^ 0xffffffff) != -107) {
  343. if (arg2 != 107) {
  344. if (arg2 < 150 || (arg2 ^ 0xffffffff) <= -156) {
  345. if (arg2 != 160) {
  346. if (arg2 == 249) {
  347. int i = arg0.readUnsignedByte();
  348.  
  349. for (int i_5_ = 0; i_5_ < i; i_5_++) {
  350. boolean bool = arg0.readUnsignedByte() == 1;
  351. arg0.read24BitInt();
  352. if (!bool)
  353. arg0.readInt();
  354. else
  355. arg0.readString();
  356. }
  357. }
  358. } else {
  359. int i = arg0.readUnsignedByte();
  360. anIntArray2655 = new int[i];
  361. for (int i_7_ = 0; (i_7_ ^ 0xffffffff) > (i ^ 0xffffffff); i_7_++)
  362. anIntArray2655[i_7_] = arg0.readUnsignedShort();
  363. }
  364. } else {
  365. options[-150 + arg2] = arg0.readString();
  366. }
  367. } else
  368. anInt2688 = arg0.readUnsignedShort();
  369. } else {
  370. int i = arg0.readUnsignedByte();
  371. anIntArray2700 = new int[i];
  372. anIntArray2657 = new int[i];
  373. for (int i_8_ = 0; (i_8_ ^ 0xffffffff) > (i ^ 0xffffffff); i_8_++) {
  374. anIntArray2657[i_8_] = arg0.readUnsignedShort();
  375. int i_9_ = arg0.readUnsignedByte();
  376. anIntArray2700[i_8_] = i_9_;
  377. anInt2733 += i_9_;
  378. }
  379. }
  380. } else
  381. anInt2696 = arg0.readUnsignedByte();
  382. } else
  383. anInt2708 = arg0.readUnsignedShort();
  384. } else {
  385. anInt2694 = arg0.readUnsignedByte();
  386. anInt2736 = arg0.readUnsignedShort();
  387. }
  388. } else
  389. aBoolean2660 = true;
  390. } else
  391. aBoolean2719 = true;
  392. } else {
  393. aByte2737 = (byte) 3;
  394. aShort2716 = (short) arg0.readUnsignedShort();
  395. }
  396. } else
  397. aBoolean2721 = true;
  398. } else
  399. aBoolean2676 = false;
  400. } else
  401. aBoolean2735 = false;
  402. } else
  403. aBoolean2671 = true;
  404. } else {
  405. varbit = (arg0.readUnsignedShort());
  406. if (varbit == 65535)
  407. varbit = -1;
  408. varp = (arg0.readUnsignedShort());
  409. if (varp == 65535)
  410. varp = -1;
  411. int i = -1;
  412. if ((arg2 ^ 0xffffffff) == -93) {
  413. i = (arg0.readUnsignedShort());
  414. if (i == 65535)
  415. i = -1;
  416. }
  417. int i_10_ = (arg0.readUnsignedByte());
  418. anIntArray2653 = (new int[2 + i_10_]);
  419. for (int i_11_ = 0; (i_10_ >= i_11_); i_11_++) {
  420. anIntArray2653[i_11_] = (arg0.readUnsignedShort());
  421. if ((anIntArray2653[i_11_]) == 65535)
  422. anIntArray2653[i_11_] = -1;
  423. }
  424. anIntArray2653[1 + i_10_] = i;
  425. }
  426. } else
  427. anInt2703 = (arg0.readUnsignedByte());
  428. } else
  429. anInt2654 = (arg0.readShort());
  430. } else
  431. anInt2701 = (arg0.readUnsignedShort());
  432. } else
  433. anInt2667 = arg0.readUnsignedShort();
  434. } else
  435. aBoolean2687 = true;
  436. } else {
  437. int i = arg0.readUnsignedByte();
  438. aShortArray2675 = new short[i];
  439. aShortArray2656 = new short[i];
  440. for (int i_12_ = 0; ((i_12_ ^ 0xffffffff) > (i ^ 0xffffffff)); i_12_++) {
  441. aShortArray2656[i_12_] = (short) (arg0.readUnsignedShort());
  442. aShortArray2675[i_12_] = (short) (arg0.readUnsignedShort());
  443. }
  444. }
  445. } else {
  446. int i = arg0.readUnsignedByte();
  447. originalColours = new short[i];
  448. modifiedColours = new short[i];
  449. for (int i_13_ = 0; ((i_13_ ^ 0xffffffff) > (i ^ 0xffffffff)); i_13_++) {
  450. modifiedColours[i_13_] = (short) arg0.readUnsignedShort();
  451. originalColours[i_13_] = (short) arg0.readUnsignedShort();
  452. }
  453. }
  454. } else {
  455. options[arg2 + -30] = arg0.readString();
  456. }
  457. } else {
  458. objectAnimation = arg0.readUnsignedByte() << 2;
  459. }
  460. } else {
  461. anInt2718 = arg0.readUnsignedShort();
  462. if ((anInt2718 ^ 0xffffffff) == -65536)
  463. anInt2718 = -1;
  464. }
  465. } else
  466. anInt2690 = 1;
  467. } else
  468. anInt2663 = arg0.readUnsignedByte();
  469. } else
  470. name = arg0.readString();
  471. }
  472.  
  473. public static void clearObjectDefinitions() {
  474. OBJECT_DEFINITIONS.clear();
  475. }
  476.  
  477. public int getClipType() {
  478. return clipType;
  479. }
  480.  
  481. public boolean isProjectileClipped() {
  482. return projectileClipped;
  483. }
  484.  
  485. public int getSizeX() {
  486. return sizeX;
  487. }
  488.  
  489. public int getSizeY() {
  490. return sizeY;
  491. }
  492.  
  493. public String getName() {
  494. return name;
  495. }
  496. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement