Advertisement
Guest User

achievement_controller

a guest
Jun 29th, 2014
503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.14 KB | None | 0 0
  1. /****************************************************************
  2. This file is a part of Open IV dev team GTA V research project
  3. --------------------------------------------------------------
  4. Description : decompiled script achievement_controller.xsc (UP14)
  5. Copyright : (C) Alexander Blade, http://dev-c.com, 2014
  6. ****************************************************************/
  7.  
  8. void main()
  9. {
  10. l_2 = 1;
  11. l_3 = 134;
  12. l_4 = 134;
  13. l_5 = 1;
  14. l_6 = 1;
  15. l_7 = 1;
  16. l_8 = 134;
  17. l_9 = 1;
  18. l_10 = 12;
  19. l_11 = 12;
  20. l_14 = 0.001f;
  21. l_17 = "NULL";
  22. l_24 = 1000;
  23. l_25 = 3333;
  24. l_26 = 0f;
  25. GAMEPLAY::NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME();
  26. if (PLAYER::0x4B37333C(32) != 0)
  27. {
  28. SCRIPT::TERMINATE_THIS_THREAD();
  29. }
  30. l_19 = GAMEPLAY::GET_GAME_TIMER();
  31. l_28 = 0;
  32. sub_1E29(l_29);
  33. while (1 != 0)
  34. {
  35. if (g_19696 != l_28)
  36. {
  37. bool flag1 = l_28 == 0;
  38. if (flag1 & (g_19696 != 0))
  39. {
  40. var num1 = GAMEPLAY::IS_PS3_VERSION();
  41. if ((num1 | GAMEPLAY::IS_ORBIS_VERSION()) != 0)
  42. {
  43. sub_1E12("CHEAT_TROPHIE", -1);
  44. }
  45. else
  46. {
  47. sub_1E12("CHEAT_ACHIEVE", -1);
  48. }
  49. }
  50. bool flag2 = l_28 != 0;
  51. if (flag2 & (g_19696 == 0))
  52. {
  53. }
  54. }
  55. l_28 = g_19696;
  56. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(24) == 0)
  57. {
  58. sub_194D();
  59. }
  60. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(25) == 0)
  61. {
  62. sub_18AB();
  63. }
  64. if (g_19464 != 0)
  65. {
  66. if ((PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(12) == 0) && (sub_872(1) >= 70))
  67. {
  68. sub_815(12, 1);
  69. }
  70. g_19464 = 0;
  71. }
  72. if ((ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0) && (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0))
  73. {
  74. l_29++;
  75. if (GAMEPLAY::GET_GAME_TIMER() > l_19)
  76. {
  77. sub_1CF(0);
  78. l_19 = GAMEPLAY::GET_GAME_TIMER() + l_24;
  79. }
  80. if (GAMEPLAY::GET_GAME_TIMER() > l_20)
  81. {
  82. bool flag3 = PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(14) == 0;
  83. if ((flag3 | (l_27 == 1)) && (sub_1A3(53) != 0))
  84. {
  85. sub_16B();
  86. }
  87. l_20 = GAMEPLAY::GET_GAME_TIMER() + l_25;
  88. }
  89. }
  90. SYSTEM::WAIT(0);
  91. }
  92. }
  93.  
  94. var sub_16B()
  95. {
  96. if (((PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0) && (UI::0xA4098ACC() >= 0.975f)) && (PLAYER::IS_PLAYER_CONTROL_ON(PLAYER::PLAYER_ID()) != 0))
  97. {
  98. sub_815(14, 1);
  99. return 1;
  100. }
  101. return 0;
  102. }
  103.  
  104. var sub_1A3(var A_0)
  105. {
  106. bool flag1 = A_0 == 94;
  107. if (flag1 | (A_0 == -1))
  108. {
  109. return 0;
  110. }
  111. return getElem(A_0, ((&g_86838) + 6711) + 319, 24);
  112. }
  113.  
  114. void sub_1CF(var A_0)
  115. {
  116. if (g_59842 != 0)
  117. {
  118. if (A_0 != null)
  119. {
  120. sub_6EA(A_0);
  121. }
  122. sub_644(A_0);
  123. sub_503(A_0);
  124. }
  125. sub_48D(A_0);
  126. sub_258(A_0);
  127. sub_22D();
  128. if ((A_0 != null) && (sub_21D(&l_21) != 0))
  129. {
  130. }
  131. }
  132.  
  133. var sub_21D(var A_0)
  134. {
  135. return GAMEPLAY::IS_BIT_SET(rPtr(A_0), 1);
  136. }
  137.  
  138. var sub_22D()
  139. {
  140. if ((PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(22) == 0) && (GAMEPLAY::0x006F9BA2() >= 50))
  141. {
  142. sub_815(22, 1);
  143. return 1;
  144. }
  145. return 0;
  146. }
  147.  
  148. var sub_258(var A_0)
  149. {
  150. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(17) != 0)
  151. {
  152. return 0;
  153. }
  154. if (sub_45C() == 0)
  155. {
  156. return 0;
  157. }
  158. if (sub_429() == 0)
  159. {
  160. return 0;
  161. }
  162. if (sub_3F5() == 0)
  163. {
  164. return 0;
  165. }
  166. if (sub_3C1() == 0)
  167. {
  168. return 0;
  169. }
  170. if (sub_34E() == 0)
  171. {
  172. return 0;
  173. }
  174. if (sub_2E1() == 0)
  175. {
  176. return 0;
  177. }
  178. sub_815(17, 1);
  179. return 1;
  180. }
  181.  
  182. var sub_2E1()
  183. {
  184. var num3 = 0;
  185. for (num3 = 0; num3 < 12; num3++)
  186. {
  187. if (rPtr(getElemPtr(num3, getElemPtr(0, (&g_86838) + 1354, 484), 40) + 32) == 3)
  188. {
  189. return 1;
  190. }
  191. if (rPtr(getElemPtr(num3, getElemPtr(1, (&g_86838) + 1354, 484), 40) + 32) == 3)
  192. {
  193. return 1;
  194. }
  195. if (rPtr(getElemPtr(num3, getElemPtr(2, (&g_86838) + 1354, 484), 40) + 32) == 3)
  196. {
  197. return 1;
  198. }
  199. }
  200. return 0;
  201. }
  202.  
  203. var sub_34E()
  204. {
  205. var num3 = 0;
  206. for (num3 = 0; num3 < 18; num3++)
  207. {
  208. if (rPtr(getElemPtr(num3, getElemPtr(0, (&g_86838) + 16008, 892) + 12, 48) + 12) == 3)
  209. {
  210. return 1;
  211. }
  212. if (rPtr(getElemPtr(num3, getElemPtr(1, (&g_86838) + 16008, 892) + 12, 48) + 12) == 3)
  213. {
  214. return 1;
  215. }
  216. if (rPtr(getElemPtr(num3, getElemPtr(2, (&g_86838) + 16008, 892) + 12, 48) + 12) == 3)
  217. {
  218. return 1;
  219. }
  220. }
  221. return 0;
  222. }
  223.  
  224. var sub_3C1()
  225. {
  226. var num3 = 0;
  227. for (num3 = 0; num3 < 4; num3++)
  228. {
  229. if (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 23491) + 1), num3) != 0)
  230. {
  231. return 1;
  232. }
  233. }
  234. return 0;
  235. }
  236.  
  237. var sub_3F5()
  238. {
  239. var num3 = 0;
  240. for (num3 = 0; num3 < 5; num3++)
  241. {
  242. if (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 23494) + 2), num3) != 0)
  243. {
  244. return 1;
  245. }
  246. }
  247. return 0;
  248. }
  249.  
  250. var sub_429()
  251. {
  252. var num3 = 0;
  253. for (num3 = 0; num3 < 7; num3++)
  254. {
  255. if (getElem(num3, ((&g_86838) + 15877) + 19, 4) == 1)
  256. {
  257. return 1;
  258. }
  259. }
  260. return 0;
  261. }
  262.  
  263. var sub_45C()
  264. {
  265. var num3 = 0;
  266. for (num3 = 0; num3 < 3; num3++)
  267. {
  268. if (getElem(num3, (&g_86838) + 16728, 4) == 1)
  269. {
  270. return 1;
  271. }
  272. }
  273. return 0;
  274. }
  275.  
  276. var sub_48D(var A_0)
  277. {
  278. var num3;
  279. var num4 = 0;
  280. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(27) != 0)
  281. {
  282. return 0;
  283. }
  284. if (STATS::STAT_GET_INT(0xD8DDE3AC, &num3, -1) != 0)
  285. {
  286. num4 += num3;
  287. }
  288. if (STATS::STAT_GET_INT(0x82F04461, &num3, -1) != 0)
  289. {
  290. num4 += num3;
  291. }
  292. if (STATS::STAT_GET_INT(0x5E1032A2, &num3, -1) != 0)
  293. {
  294. num4 += num3;
  295. }
  296. if (num4 < 0xBEBC200)
  297. {
  298. return 0;
  299. }
  300. sub_815(27, 1);
  301. return 1;
  302. }
  303.  
  304. var sub_503(var A_0)
  305. {
  306. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(37) == 0)
  307. {
  308. if (sub_604() == 0)
  309. {
  310. return 0;
  311. }
  312. if (g_59842 == 0)
  313. {
  314. return 0;
  315. }
  316. if (A_0 != null)
  317. {
  318. var num3 = sub_5D8(21, -1) - sub_5D8(58, -1);
  319. num3 -= sub_5D8(57, -1);
  320. }
  321. if (sub_56C(8, -1) != 0)
  322. {
  323. sub_815(37, 1);
  324. return 1;
  325. }
  326. }
  327. return 0;
  328. }
  329.  
  330. var sub_56C(var A_0, var A_1)
  331. {
  332. var num4;
  333. if (STATS::STAT_GET_BOOL(getElem(sub_598(A_1), getElemPtr(A_0, &g_1373769, 24), 4), &num4, -1) != 0)
  334. {
  335. return num4;
  336. }
  337. return 0;
  338. }
  339.  
  340. var sub_598(var A_0)
  341. {
  342. var num3 = A_0;
  343. if (num3 == -1)
  344. {
  345. var num4 = sub_5CC();
  346. if (num4 > -1)
  347. {
  348. g_2404826 = 0;
  349. num3 = num4;
  350. }
  351. else
  352. {
  353. num3 = 0;
  354. g_2404826 = 1;
  355. }
  356. }
  357. return num3;
  358. }
  359.  
  360. var sub_5CC()
  361. {
  362. return g_1338478;
  363. }
  364.  
  365. var sub_5D8(var A_0, var A_1)
  366. {
  367. var num4;
  368. if (STATS::STAT_GET_INT(getElem(sub_598(A_1), getElemPtr(A_0, &g_1373371, 24), 4), &num4, -1) != 0)
  369. {
  370. return num4;
  371. }
  372. return 0;
  373. }
  374.  
  375. var sub_604()
  376. {
  377. var num1 = sub_632();
  378. if ((num1 & sub_622(0)) != 0)
  379. {
  380. return 1;
  381. }
  382. return 0;
  383. }
  384.  
  385. var sub_622(var A_0)
  386. {
  387. return getElem(A_0, &g_1332383, 4);
  388. }
  389.  
  390. var sub_632()
  391. {
  392. return sub_622(sub_5CC() + 1);
  393. }
  394.  
  395. var sub_644(var A_0)
  396. {
  397. if (sub_604() == 0)
  398. {
  399. return 0;
  400. }
  401. if (g_59842 == 0)
  402. {
  403. return 0;
  404. }
  405. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(49) != 0)
  406. {
  407. return 0;
  408. }
  409. if (sub_6BE(100, -1) == 0)
  410. {
  411. return 0;
  412. }
  413. if (sub_6BE(102, -1) == 0)
  414. {
  415. return 0;
  416. }
  417. if (sub_6BE(101, -1) == 0)
  418. {
  419. return 0;
  420. }
  421. sub_815(49, 1);
  422. return 1;
  423. }
  424.  
  425. var sub_6BE(var A_0, var A_1)
  426. {
  427. var num4;
  428. if (STATS::STAT_GET_BOOL(getElem(sub_598(A_1), getElemPtr(A_0, &g_2417579, 24), 4), &num4, -1) != 0)
  429. {
  430. return num4;
  431. }
  432. return 0;
  433. }
  434.  
  435. var sub_6EA(var A_0)
  436. {
  437. if (sub_604() != 0)
  438. {
  439. var num4;
  440. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(45) != 0)
  441. {
  442. return 0;
  443. }
  444. if (g_59842 == 0)
  445. {
  446. return 0;
  447. }
  448. var num5 = sub_7E3(742, -1, 0);
  449. var num3 = 0;
  450. while (true)
  451. {
  452. if (num3 >= 9)
  453. {
  454. break;
  455. }
  456. if (sub_75B(num5, num3, A_0) != 0)
  457. {
  458. num4++;
  459. }
  460. num3++;
  461. }
  462. if (num4 == 9)
  463. {
  464. sub_815(45, 1);
  465. return 1;
  466. }
  467. }
  468. return 0;
  469. }
  470.  
  471. var sub_75B(var A_0, var A_1, var A_2)
  472. {
  473. var num3 = GAMEPLAY::IS_BIT_SET(A_0, A_1);
  474. if (A_2 == 0)
  475. {
  476. return num3;
  477. }
  478. switch (A_1)
  479. {
  480. case 0:
  481. return num3;
  482. case 1:
  483. return num3;
  484. case 2:
  485. return num3;
  486. case 3:
  487. return num3;
  488. case 4:
  489. return num3;
  490. case 5:
  491. return num3;
  492. case 6:
  493. return num3;
  494. case 7:
  495. return num3;
  496. case 8:
  497. return num3;
  498. }
  499. return 0;
  500. }
  501.  
  502. var sub_7E3(var A_0, var A_1, var A_2)
  503. {
  504. var num4;
  505. if (STATS::STAT_GET_INT(getElem(sub_598(A_1), getElemPtr(A_0, &g_2405085, 24), 4), &num4, -1) != 0)
  506. {
  507. return num4;
  508. }
  509. return 0;
  510. }
  511.  
  512. var sub_815(var A_0, var A_1)
  513. {
  514. if (A_0 >= 50)
  515. {
  516. return 0;
  517. }
  518. return sub_830(A_0, A_1);
  519. }
  520.  
  521. var sub_830(var A_0, var A_1)
  522. {
  523. var num1 = PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(A_0);
  524. if ((num1 & (A_1 == 1)) != 0)
  525. {
  526. return 0;
  527. }
  528. bool flag1 = g_19696 != 0;
  529. if (flag1 & (g_59842 == 0))
  530. {
  531. return 0;
  532. }
  533. if (PLAYER::GIVE_ACHIEVEMENT_TO_PLAYER(A_0) == 0)
  534. {
  535. return 0;
  536. }
  537. return 1;
  538. }
  539.  
  540. var sub_872(var A_0)
  541. {
  542. var num3 = sub_177B(A_0) + sub_890(A_0);
  543. return num3;
  544. }
  545.  
  546. var sub_890(var A_0)
  547. {
  548. var num6 = 0;
  549. var num7 = 0;
  550. var num3 = 0;
  551. while (true)
  552. {
  553. var num4;
  554. if (num3 >= rPtr((&g_86838) + 15436))
  555. {
  556. return num4;
  557. }
  558. bool flag1 = rPtr(getElemPtr(num3, (&g_86838) + 15436, 24) + 12) != -1;
  559. if (flag1 & sub_13F4(num3, 7))
  560. {
  561. num6 = 0;
  562. num7 = 0;
  563. var num8 = 0;
  564. while (true)
  565. {
  566. if (num8 >= sub_1208(num3, 7))
  567. {
  568. break;
  569. }
  570. var num10 = sub_AE1(num3, 7, num8);
  571. if (rPtr(getElemPtr(num10, &g_46996, 52) + 28) == 0)
  572. {
  573. if (sub_A18(num10) == 1)
  574. {
  575. num7++;
  576. }
  577. num6++;
  578. }
  579. num8++;
  580. }
  581. var num9 = sub_9B9(num7, num6, 0);
  582. var num5 = sub_984(num9);
  583. bool flag2 = num3 >= 52;
  584. if (flag2 & (num3 <= 56))
  585. {
  586. num5 = getElem(num3 - 52, (&g_86838) + 1718, 8);
  587. num9 = 0f;
  588. }
  589. bool flag3 = num9 >= 100f;
  590. if (flag3 | (num5 == 3))
  591. {
  592. num4++;
  593. }
  594. }
  595. num3++;
  596. }
  597. }
  598.  
  599. var sub_984(var A_0)
  600. {
  601. if (A_0 == 0f)
  602. {
  603. return 0;
  604. }
  605. if (A_0 == 100f)
  606. {
  607. return 3;
  608. }
  609. if (A_0 > 50f)
  610. {
  611. return 2;
  612. }
  613. return 1;
  614. }
  615.  
  616. var sub_9B9(var A_0, var A_1, var A_2)
  617. {
  618. if (A_2 != null)
  619. {
  620. return 0f;
  621. }
  622. if (A_0 == A_1)
  623. {
  624. return 100f;
  625. }
  626. var num3 = SYSTEM::TO_FLOAT(A_0) / SYSTEM::TO_FLOAT(A_1);
  627. var num4 = ((50f * num3) + 50f);
  628. num4 = SYSTEM::TO_FLOAT(SYSTEM::CEIL(num4));
  629. if (num4 > 100f)
  630. {
  631. num4 = 100f;
  632. }
  633. return num4;
  634. }
  635.  
  636. var sub_A18(var A_0)
  637. {
  638. if (sub_A3B(A_0, sub_AB8(rPtr(getElemPtr(A_0, &g_46996, 52) + 16))) != 0)
  639. {
  640. return 1;
  641. }
  642. return 0;
  643. }
  644.  
  645. var sub_A3B(var A_0, var A_1)
  646. {
  647. if (A_1 >= 0)
  648. {
  649. var num3 = getElem(A_0, &g_46996, 52);
  650. if (((((num3 == 1) || (num3 == 2)) || ((num3 == 4) || (num3 == 5))) || (num3 == 17)) && (A_1 < 1))
  651. {
  652. return 0;
  653. }
  654. if (rPtr(getElemPtr(A_0, &g_46996, 52) + 12) != 0)
  655. {
  656. if (A_1 < rPtr(getElemPtr(A_0, &g_46996, 52) + 8))
  657. {
  658. return 1;
  659. }
  660. }
  661. else if (A_1 >= rPtr(getElemPtr(A_0, &g_46996, 52) + 8))
  662. {
  663. return 1;
  664. }
  665. }
  666. return 0;
  667. }
  668.  
  669. var sub_AB8(var A_0)
  670. {
  671. var num3;
  672. if ((A_0 != 0) && (STATS::STAT_GET_INT(A_0, &num3, -1) != 0))
  673. {
  674. return (num3 - 1);
  675. }
  676. return -1;
  677. }
  678.  
  679. var sub_AE1(var A_0, var A_1, var A_2)
  680. {
  681. switch ((A_1))
  682. {
  683. case 1:
  684. return getElem(A_2, getElemPtr(A_0, &g_72553, 136) + 68, 4);
  685. case 7:
  686. return sub_B24(A_0, A_2);
  687. }
  688. return 914;
  689. }
  690.  
  691. var sub_B24(var A_0, var A_1)
  692. {
  693. switch ((A_0))
  694. {
  695. case 2:
  696. switch (A_1)
  697. {
  698. case 0:
  699. return 741;
  700. case 1:
  701. return 742;
  702. }
  703. return -1;
  704. case 3:
  705. switch (A_1)
  706. {
  707. case 0:
  708. return 743;
  709. case 1:
  710. return 744;
  711. }
  712. return -1;
  713. case 5:
  714. switch (A_1)
  715. {
  716. case 0:
  717. return 745;
  718. case 1:
  719. return 746;
  720. }
  721. return -1;
  722. case 6:
  723. switch (A_1)
  724. {
  725. case 0:
  726. return 747;
  727. case 1:
  728. return 748;
  729. }
  730. return -1;
  731. case 8:
  732. switch (A_1)
  733. {
  734. case 0:
  735. return 749;
  736. }
  737. return -1;
  738. case 12:
  739. switch (A_1)
  740. {
  741. case 0:
  742. return 750;
  743. }
  744. return -1;
  745. case 14:
  746. switch (A_1)
  747. {
  748. case 0:
  749. return 751;
  750. case 1:
  751. return 752;
  752. }
  753. return -1;
  754. case 16:
  755. switch (A_1)
  756. {
  757. case 0:
  758. return 753;
  759. case 1:
  760. return 754;
  761. }
  762. return -1;
  763. case 17:
  764. switch (A_1)
  765. {
  766. case 0:
  767. return 755;
  768. case 1:
  769. return 756;
  770. case 2:
  771. return 757;
  772. }
  773. return -1;
  774. case 18:
  775. switch (A_1)
  776. {
  777. case 0:
  778. return 758;
  779. case 1:
  780. return 759;
  781. }
  782. return -1;
  783. case 19:
  784. switch (A_1)
  785. {
  786. case 0:
  787. return 760;
  788. case 1:
  789. return 761;
  790. }
  791. return -1;
  792. case 20:
  793. switch (A_1)
  794. {
  795. case 0:
  796. return 762;
  797. }
  798. return -1;
  799. case 21:
  800. switch (A_1)
  801. {
  802. case 0:
  803. return 763;
  804. }
  805. return -1;
  806. case 22:
  807. switch (A_1)
  808. {
  809. case 0:
  810. return 764;
  811. case 1:
  812. return 765;
  813. }
  814. return -1;
  815. case 23:
  816. switch (A_1)
  817. {
  818. case 0:
  819. return 766;
  820. }
  821. return -1;
  822. case 25:
  823. switch (A_1)
  824. {
  825. case 0:
  826. return 767;
  827. case 1:
  828. return 768;
  829. case 2:
  830. return 769;
  831. }
  832. return -1;
  833. case 26:
  834. switch (A_1)
  835. {
  836. case 0:
  837. return 770;
  838. case 1:
  839. return 771;
  840. }
  841. return -1;
  842. case 28:
  843. switch (A_1)
  844. {
  845. case 0:
  846. return 772;
  847. case 1:
  848. return 773;
  849. }
  850. return -1;
  851. case 29:
  852. switch (A_1)
  853. {
  854. case 0:
  855. return 774;
  856. case 1:
  857. return 775;
  858. }
  859. return -1;
  860. case 30:
  861. switch (A_1)
  862. {
  863. case 0:
  864. return 776;
  865. case 1:
  866. return 777;
  867. }
  868. return -1;
  869. case 32:
  870. switch (A_1)
  871. {
  872. case 0:
  873. return 778;
  874. case 1:
  875. return 779;
  876. }
  877. return -1;
  878. case 33:
  879. switch (A_1)
  880. {
  881. case 0:
  882. return 780;
  883. case 1:
  884. return 781;
  885. case 2:
  886. return 782;
  887. }
  888. return -1;
  889. case 34:
  890. switch (A_1)
  891. {
  892. case 0:
  893. return 783;
  894. case 1:
  895. return 784;
  896. }
  897. return -1;
  898. case 38:
  899. switch (A_1)
  900. {
  901. case 0:
  902. return 785;
  903. case 1:
  904. return 786;
  905. }
  906. return -1;
  907. case 39:
  908. switch (A_1)
  909. {
  910. case 0:
  911. return 787;
  912. case 1:
  913. return 788;
  914. }
  915. return -1;
  916. case 40:
  917. switch (A_1)
  918. {
  919. case 0:
  920. return 789;
  921. }
  922. return -1;
  923. case 41:
  924. switch (A_1)
  925. {
  926. case 0:
  927. return 790;
  928. case 1:
  929. return 791;
  930. case 2:
  931. return 792;
  932. }
  933. return -1;
  934. case 42:
  935. switch (A_1)
  936. {
  937. case 0:
  938. return 793;
  939. case 1:
  940. return 794;
  941. case 2:
  942. return 795;
  943. }
  944. return -1;
  945. case 43:
  946. switch (A_1)
  947. {
  948. case 0:
  949. return 796;
  950. case 1:
  951. return 797;
  952. }
  953. return -1;
  954. case 46:
  955. switch (A_1)
  956. {
  957. case 0:
  958. return 798;
  959. case 1:
  960. return 799;
  961. }
  962. return -1;
  963. case 47:
  964. switch (A_1)
  965. {
  966. case 0:
  967. return 800;
  968. case 1:
  969. return 801;
  970. }
  971. return -1;
  972. case 49:
  973. switch (A_1)
  974. {
  975. case 0:
  976. return 802;
  977. case 1:
  978. return 803;
  979. }
  980. return -1;
  981. case 50:
  982. switch (A_1)
  983. {
  984. case 0:
  985. return 804;
  986. case 1:
  987. return 805;
  988. }
  989. return -1;
  990. case 51:
  991. switch (A_1)
  992. {
  993. case 0:
  994. return 806;
  995. }
  996. return -1;
  997. case 57:
  998. switch (A_1)
  999. {
  1000. case 0:
  1001. return 807;
  1002. case 1:
  1003. return 808;
  1004. case 2:
  1005. return 809;
  1006. }
  1007. return -1;
  1008. case 58:
  1009. switch (A_1)
  1010. {
  1011. case 0:
  1012. return 828;
  1013. case 1:
  1014. return 829;
  1015. case 2:
  1016. return 830;
  1017. }
  1018. return -1;
  1019. case 59:
  1020. switch (A_1)
  1021. {
  1022. case 0:
  1023. return 831;
  1024. case 1:
  1025. return 832;
  1026. case 2:
  1027. return 833;
  1028. }
  1029. return -1;
  1030. case 60:
  1031. switch (A_1)
  1032. {
  1033. case 0:
  1034. return 834;
  1035. case 1:
  1036. return 835;
  1037. case 2:
  1038. return 836;
  1039. }
  1040. return -1;
  1041. case 61:
  1042. switch (A_1)
  1043. {
  1044. case 0:
  1045. return 837;
  1046. case 1:
  1047. return 838;
  1048. case 2:
  1049. return 839;
  1050. }
  1051. return -1;
  1052. case 62:
  1053. switch (A_1)
  1054. {
  1055. case 0:
  1056. return 840;
  1057. case 1:
  1058. return 841;
  1059. case 2:
  1060. return 842;
  1061. }
  1062. return -1;
  1063. case 24:
  1064. switch (A_1)
  1065. {
  1066. case 0:
  1067. return 843;
  1068. case 1:
  1069. return 844;
  1070. case 2:
  1071. return 845;
  1072. }
  1073. return -1;
  1074. }
  1075. return -1;
  1076. }
  1077.  
  1078. var sub_1208(var A_0, var A_1)
  1079. {
  1080. switch ((A_1))
  1081. {
  1082. case 1:
  1083. return rPtr(getElemPtr(A_0, &g_72553, 136) + 64);
  1084. case 7:
  1085. return sub_1243(A_0);
  1086. }
  1087. return 0;
  1088. }
  1089.  
  1090. var sub_1243(var A_0)
  1091. {
  1092. switch ((A_0))
  1093. {
  1094. case 2:
  1095. return 2;
  1096. case 3:
  1097. return 2;
  1098. case 5:
  1099. return 2;
  1100. case 6:
  1101. return 2;
  1102. case 8:
  1103. return 1;
  1104. case 12:
  1105. return 1;
  1106. case 14:
  1107. return 2;
  1108. case 16:
  1109. return 2;
  1110. case 17:
  1111. return 3;
  1112. case 18:
  1113. return 2;
  1114. case 19:
  1115. return 2;
  1116. case 20:
  1117. return 1;
  1118. case 21:
  1119. return 1;
  1120. case 22:
  1121. return 2;
  1122. case 23:
  1123. return 1;
  1124. case 25:
  1125. return 3;
  1126. case 26:
  1127. return 2;
  1128. case 28:
  1129. return 2;
  1130. case 29:
  1131. return 2;
  1132. case 30:
  1133. return 2;
  1134. case 32:
  1135. return 2;
  1136. case 33:
  1137. return 3;
  1138. case 34:
  1139. return 2;
  1140. case 38:
  1141. return 2;
  1142. case 39:
  1143. return 2;
  1144. case 40:
  1145. return 1;
  1146. case 41:
  1147. return 3;
  1148. case 42:
  1149. return 3;
  1150. case 43:
  1151. return 2;
  1152. case 46:
  1153. return 2;
  1154. case 47:
  1155. return 2;
  1156. case 49:
  1157. return 2;
  1158. case 50:
  1159. return 2;
  1160. case 51:
  1161. return 1;
  1162. case 57:
  1163. return 3;
  1164. case 58:
  1165. return 3;
  1166. case 59:
  1167. return 3;
  1168. case 60:
  1169. return 3;
  1170. case 61:
  1171. return 3;
  1172. case 62:
  1173. return 3;
  1174. case 24:
  1175. return 3;
  1176. }
  1177. return 0;
  1178. }
  1179.  
  1180. var sub_13F4(var A_0, var A_1)
  1181. {
  1182. switch ((A_1))
  1183. {
  1184. case 1:
  1185. return (GAMEPLAY::IS_BIT_SET(rPtr(getElemPtr(A_0, &g_72553, 136) + 60), 5) == 0);
  1186. case 7:
  1187. return sub_1435(A_0);
  1188. }
  1189. return 0;
  1190. }
  1191.  
  1192. var sub_1435(var A_0)
  1193. {
  1194. switch ((A_0))
  1195. {
  1196. case 0:
  1197. return 0;
  1198. case 1:
  1199. return 0;
  1200. case 2:
  1201. return 1;
  1202. case 3:
  1203. return 1;
  1204. case 4:
  1205. return 0;
  1206. case 5:
  1207. return 1;
  1208. case 6:
  1209. return 1;
  1210. case 7:
  1211. return 0;
  1212. case 8:
  1213. return 1;
  1214. case 9:
  1215. return 0;
  1216. case 10:
  1217. return 0;
  1218. case 11:
  1219. return 0;
  1220. case 12:
  1221. return 1;
  1222. case 13:
  1223. return 0;
  1224. case 14:
  1225. return 1;
  1226. case 15:
  1227. return 0;
  1228. case 16:
  1229. return 1;
  1230. case 17:
  1231. return 1;
  1232. case 18:
  1233. return 1;
  1234. case 19:
  1235. return 1;
  1236. case 20:
  1237. return 1;
  1238. case 21:
  1239. return 1;
  1240. case 22:
  1241. return 1;
  1242. case 23:
  1243. return 1;
  1244. case 24:
  1245. return 1;
  1246. case 25:
  1247. return 1;
  1248. case 26:
  1249. return 1;
  1250. case 27:
  1251. return 0;
  1252. case 28:
  1253. return 1;
  1254. case 29:
  1255. return 1;
  1256. case 30:
  1257. return 1;
  1258. case 31:
  1259. return 0;
  1260. case 32:
  1261. return 1;
  1262. case 33:
  1263. return 1;
  1264. case 34:
  1265. return 1;
  1266. case 35:
  1267. return 0;
  1268. case 36:
  1269. return 0;
  1270. case 37:
  1271. return 0;
  1272. case 38:
  1273. return 1;
  1274. case 39:
  1275. return 1;
  1276. case 40:
  1277. return 1;
  1278. case 41:
  1279. return 1;
  1280. case 42:
  1281. return 1;
  1282. case 43:
  1283. return 1;
  1284. case 44:
  1285. return 0;
  1286. case 45:
  1287. return 0;
  1288. case 46:
  1289. return 1;
  1290. case 47:
  1291. return 1;
  1292. case 48:
  1293. return 0;
  1294. case 49:
  1295. return 1;
  1296. case 50:
  1297. return 1;
  1298. case 51:
  1299. return 1;
  1300. case 52:
  1301. return 1;
  1302. case 54:
  1303. return 1;
  1304. case 55:
  1305. return 1;
  1306. case 56:
  1307. return 1;
  1308. case 53:
  1309. return 1;
  1310. case 57:
  1311. return 1;
  1312. case 58:
  1313. return 1;
  1314. case 59:
  1315. return 1;
  1316. case 60:
  1317. return 1;
  1318. case 61:
  1319. return 1;
  1320. case 62:
  1321. return 1;
  1322. }
  1323. return 0;
  1324. }
  1325.  
  1326. var sub_177B(var A_0)
  1327. {
  1328. var num6 = 0;
  1329. var num7 = 0;
  1330. var num3 = 0;
  1331. while (true)
  1332. {
  1333. var num4;
  1334. if (num3 >= rPtr(((&g_86838) + 6711) + 319))
  1335. {
  1336. return num4;
  1337. }
  1338. bool flag1 = rPtr(getElemPtr(num3, ((&g_86838) + 6711) + 319, 24) + 12) != -1;
  1339. if (flag1 & sub_13F4(num3, 1))
  1340. {
  1341. num6 = 0;
  1342. num7 = 0;
  1343. var num11 = -1;
  1344. var num8 = 0;
  1345. while (true)
  1346. {
  1347. if (num8 >= sub_1208(num3, 1))
  1348. {
  1349. break;
  1350. }
  1351. var num10 = sub_AE1(num3, 1, num8);
  1352. if (rPtr(getElemPtr(num10, &g_46996, 52) + 28) == 0)
  1353. {
  1354. if (sub_A18(num10) == 1)
  1355. {
  1356. num7++;
  1357. }
  1358. switch (num10)
  1359. {
  1360. case 42:
  1361. case 55:
  1362. case 85:
  1363. case 70:
  1364. case 101:
  1365. num11 = sub_1888(num10);
  1366. break;
  1367. }
  1368. num6++;
  1369. }
  1370. num8++;
  1371. }
  1372. var num9 = sub_9B9(num7, num6, 0);
  1373. var num5 = sub_984(num9);
  1374. if (num11 > -1)
  1375. {
  1376. num5 = num11;
  1377. }
  1378. bool flag2 = num9 >= 100f;
  1379. if (flag2 | (num5 == 3))
  1380. {
  1381. num4++;
  1382. }
  1383. }
  1384. num3++;
  1385. }
  1386. }
  1387.  
  1388. var sub_1888(var A_0)
  1389. {
  1390. var num3 = sub_AB8(rPtr(getElemPtr(A_0, &g_46996, 52) + 16));
  1391. if (num3 > -1)
  1392. {
  1393. return num3;
  1394. }
  1395. return 0;
  1396. }
  1397.  
  1398. void sub_18AB()
  1399. {
  1400. ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID());
  1401. if (ENTITY::IS_ENTITY_IN_WATER(PLAYER::PLAYER_PED_ID()) != 0)
  1402. {
  1403. if (ENTITY::IS_ENTITY_PLAYING_ANIM(PLAYER::PLAYER_PED_ID(), "creatures@shark@move", "attack_player", 3) != 0)
  1404. {
  1405. sub_815(25, 1);
  1406. }
  1407. else if (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) != 0)
  1408. {
  1409. var num3 = PED::0x84ADF9EB(PLAYER::PLAYER_PED_ID());
  1410. if (ENTITY::IS_ENTITY_A_PED(num3) != 0)
  1411. {
  1412. var num4 = ENTITY::0xC46F74AC(num3);
  1413. if ((sub_1930(num4) != 0) && (ENTITY::GET_ENTITY_MODEL(num4) == 0x6C3F072))
  1414. {
  1415. sub_815(25, 1);
  1416. }
  1417. }
  1418. }
  1419. }
  1420. }
  1421.  
  1422. var sub_1930(var A_0)
  1423. {
  1424. if (ENTITY::DOES_ENTITY_EXIST(A_0) == 0)
  1425. {
  1426. return 0;
  1427. }
  1428. return (ENTITY::IS_ENTITY_DEAD(A_0) == 0);
  1429. }
  1430.  
  1431. void sub_194D()
  1432. {
  1433. switch (l_18)
  1434. {
  1435. case 0:
  1436. l_26 = 0f;
  1437. if (ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0)
  1438. {
  1439. if (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) != 0)
  1440. {
  1441. return;
  1442. }
  1443. bool flag1 = PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) >= 3;
  1444. if ((flag1 & (GAMEPLAY::GET_MISSION_FLAG() == 0)) && (sub_1B6A() == 2))
  1445. {
  1446. sub_1B35(&l_21);
  1447. l_18++;
  1448. }
  1449. break;
  1450. }
  1451. return;
  1452. case 1:
  1453. {
  1454. var num1 = sub_1B19();
  1455. if ((num1 | STREAMING::STOP_PLAYER_REMAIN_ARCADE()) != 0)
  1456. {
  1457. return;
  1458. }
  1459. if (PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) < 3)
  1460. {
  1461. sub_1B03(&l_21);
  1462. l_18 = 0;
  1463. return;
  1464. }
  1465. if (GAMEPLAY::GET_MISSION_FLAG() == 1)
  1466. {
  1467. sub_1B03(&l_21);
  1468. l_18 = 0;
  1469. return;
  1470. }
  1471. if (sub_1B6A() < 2)
  1472. {
  1473. sub_1B03(&l_21);
  1474. l_18 = 0;
  1475. return;
  1476. }
  1477. if (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) != 0)
  1478. {
  1479. sub_1B03(&l_21);
  1480. l_18 = 0;
  1481. return;
  1482. }
  1483. l_26 = sub_1ACF(&l_21);
  1484. if (l_26 >= 180f)
  1485. {
  1486. sub_815(24, 1);
  1487. sub_1A5B(&l_21);
  1488. l_18++;
  1489. }
  1490. break;
  1491. }
  1492. case 2:
  1493. l_18++;
  1494. break;
  1495. }
  1496. }
  1497.  
  1498. void sub_1A5B(var A_0)
  1499. {
  1500. if ((sub_21D(A_0) != 0) && (sub_1ABF(A_0) == 0))
  1501. {
  1502. wPtr(sub_1A8D() - rPtr((A_0) + 4), (A_0) + 8);
  1503. GAMEPLAY::SET_BIT(A_0, 2);
  1504. }
  1505. }
  1506.  
  1507. var sub_1A8D()
  1508. {
  1509. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  1510. {
  1511. return (SYSTEM::TO_FLOAT(NETWORK::GET_NETWORK_TIME()) / 1000f);
  1512. }
  1513. return (SYSTEM::TO_FLOAT(GAMEPLAY::GET_GAME_TIMER()) / 1000f);
  1514. }
  1515.  
  1516. var sub_1ABF(var A_0)
  1517. {
  1518. return GAMEPLAY::IS_BIT_SET(rPtr(A_0), 2);
  1519. }
  1520.  
  1521. var sub_1ACF(var A_0)
  1522. {
  1523. if (sub_21D(A_0) != 0)
  1524. {
  1525. if (sub_1ABF(A_0) != 0)
  1526. {
  1527. return rPtr((A_0) + 8);
  1528. }
  1529. return (sub_1A8D() - rPtr((A_0) + 4));
  1530. }
  1531. return 0f;
  1532. }
  1533.  
  1534. void sub_1B03(var A_0)
  1535. {
  1536. wPtr(0f, (A_0) + 4);
  1537. wPtr(0f, (A_0) + 8);
  1538. wPtr(0, A_0);
  1539. }
  1540.  
  1541. var sub_1B19()
  1542. {
  1543. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0)
  1544. {
  1545. return (rPtr((&g_79091) + 44) == 1);
  1546. }
  1547. return 0;
  1548. }
  1549.  
  1550. void sub_1B35(var A_0)
  1551. {
  1552. sub_1B44(A_0, 0f);
  1553. }
  1554.  
  1555. void sub_1B44(var A_0, var A_1)
  1556. {
  1557. wPtr(sub_1A8D() - A_1, (A_0) + 4);
  1558. GAMEPLAY::SET_BIT(A_0, 1);
  1559. GAMEPLAY::CLEAR_BIT(A_0, 2);
  1560. wPtr(0f, (A_0) + 8);
  1561. }
  1562.  
  1563. var sub_1B6A()
  1564. {
  1565. var num3 = 0;
  1566. var num1 = sub_1BE9(sub_1CB8(2), 0);
  1567. if ((num1 | GAMEPLAY::IS_BIT_SET(g_77616, 2)) != 0)
  1568. {
  1569. num3++;
  1570. }
  1571. var num8 = sub_1BE9(sub_1CB8(1), 0);
  1572. if ((num8 | GAMEPLAY::IS_BIT_SET(g_77616, 1)) != 0)
  1573. {
  1574. num3++;
  1575. }
  1576. var num9 = sub_1BE9(sub_1CB8(0), 0);
  1577. if ((num9 | GAMEPLAY::IS_BIT_SET(g_77616, 0)) != 0)
  1578. {
  1579. num3++;
  1580. }
  1581. return num3;
  1582. }
  1583.  
  1584. var sub_1BE9(var A_0, var A_1)
  1585. {
  1586. var num3;
  1587. return 0;
  1588. if (sub_1CB8(num3) == A_0)
  1589. {
  1590. if ((A_1 == 0) && (A_0 == PLAYER::PLAYER_PED_ID()))
  1591. {
  1592. return 0;
  1593. }
  1594. if (GAMEPLAY::IS_BIT_SET(g_77618, num3) != 0)
  1595. {
  1596. return 1;
  1597. }
  1598. }
  1599. return 0;
  1600. }
  1601.  
  1602. var sub_1C45(var A_0)
  1603. {
  1604. if (ENTITY::DOES_ENTITY_EXIST(A_0) != 0)
  1605. {
  1606. var num4 = ENTITY::GET_ENTITY_MODEL(A_0);
  1607. for (var i = 0; i <= 2; i++)
  1608. {
  1609. if (sub_1C82(i) == num4)
  1610. {
  1611. return i;
  1612. }
  1613. }
  1614. }
  1615. return 143;
  1616. }
  1617.  
  1618. var sub_1C82(var A_0)
  1619. {
  1620. if (sub_1CAC(A_0) != 0)
  1621. {
  1622. return getElem(A_0, (&g_86838) + 23936, 116);
  1623. }
  1624. return 0;
  1625. }
  1626.  
  1627. var sub_1CAC(var A_0)
  1628. {
  1629. return (A_0 < 3);
  1630. }
  1631.  
  1632. var sub_1CB8(var A_0)
  1633. {
  1634. if (A_0 > 3)
  1635. {
  1636. return 0;
  1637. }
  1638. if (A_0 == sub_1D24())
  1639. {
  1640. return PLAYER::PLAYER_PED_ID();
  1641. }
  1642. return getElem(sub_1CE9(A_0), &g_79091, 4);
  1643. }
  1644.  
  1645. var sub_1CE9(var A_0)
  1646. {
  1647. if (A_0 == 0)
  1648. {
  1649. return 0;
  1650. }
  1651. if (A_0 == 2)
  1652. {
  1653. return 2;
  1654. }
  1655. if (A_0 == 1)
  1656. {
  1657. return 1;
  1658. }
  1659. if (A_0 == 143)
  1660. {
  1661. return 3;
  1662. }
  1663. return 4;
  1664. }
  1665.  
  1666. var sub_1D24()
  1667. {
  1668. sub_1D3D();
  1669. return rPtr((((&g_86838) + 1729) + 539) + 2659);
  1670. }
  1671.  
  1672. void sub_1D3D()
  1673. {
  1674. if (ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0)
  1675. {
  1676. if (sub_1C82(rPtr((((&g_86838) + 1729) + 539) + 2659)) == ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()))
  1677. {
  1678. wPtr(rPtr((((&g_86838) + 1729) + 539) + 2659), (((&g_86838) + 1729) + 539) + 2661);
  1679. return;
  1680. }
  1681. var num3 = sub_1C45(PLAYER::PLAYER_PED_ID());
  1682. if (sub_1CAC(num3) != 0)
  1683. {
  1684. bool flag1 = rPtr((((&g_86838) + 1729) + 539) + 2659) != num3;
  1685. if (flag1 & sub_1CAC(rPtr((((&g_86838) + 1729) + 539) + 2659)))
  1686. {
  1687. wPtr(rPtr((((&g_86838) + 1729) + 539) + 2659), (((&g_86838) + 1729) + 539) + 2660);
  1688. }
  1689. wPtr(num3, (((&g_86838) + 1729) + 539) + 2661);
  1690. wPtr(num3, (((&g_86838) + 1729) + 539) + 2659);
  1691. return;
  1692. }
  1693. }
  1694. wPtr(143, (((&g_86838) + 1729) + 539) + 2659);
  1695. }
  1696.  
  1697. void sub_1E12(var A_0, var A_1)
  1698. {
  1699. UI::0xB245FC10(A_0);
  1700. UI::0xB59B530D(0, 0, 1, A_1);
  1701. }
  1702.  
  1703. void sub_1E29(var A_0)
  1704. {
  1705. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement