Advertisement
Guest User

pb_prostitute

a guest
Jun 29th, 2014
1,310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 387.71 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 pb_prostitute.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_18 = 0f;
  23. l_22 = -0.0375f;
  24. l_23 = 0.17f;
  25. l_24 = 3;
  26. l_27 = 80f;
  27. l_28 = 140f;
  28. l_29 = 180f;
  29. l_35 = 1;
  30. l_36 = 65;
  31. l_37 = 49;
  32. l_38 = 64;
  33. l_80 = ((0.05f + 0.275f) - 0.01f);
  34. setStruct(0f, 0f, 0f, 3, &l_89);
  35. l_107 = -1;
  36. l_109 = -1;
  37. l_110 = -1;
  38. l_111 = -1;
  39. l_112 = -1;
  40. l_113 = -1;
  41. l_114 = -1;
  42. l_115 = -1;
  43. l_117 = -1;
  44. l_119 = -1;
  45. l_120 = -1;
  46. l_324 = -1;
  47. if (g_3 != 0)
  48. {
  49. SCRIPT::TERMINATE_THIS_THREAD();
  50. }
  51. if ((NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0) && (sub_10C7F(PLAYER::PLAYER_ID(), 1) != 0))
  52. {
  53. SCRIPT::TERMINATE_THIS_THREAD();
  54. }
  55. SYSTEM::WAIT(0);
  56. l_127 = l_373;
  57. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  58. {
  59. sub_10C72();
  60. NETWORK::NETWORK_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT(2, 0, PLAYER::PLAYER_ID());
  61. sub_10B51(0, -1, 0);
  62. GAMEPLAY::SET_THIS_SCRIPT_CAN_BE_PAUSED(0);
  63. }
  64. else if ((sub_10B44() == 0) && (PLAYER::0x4B37333C(35) != 0))
  65. {
  66. sub_10666();
  67. sub_105F7(1);
  68. sub_104E0();
  69. }
  70. sub_1047E();
  71. sub_10463(128);
  72. Label_0262:
  73. if (l_95 == 0)
  74. {
  75. if (sub_F6B7(l_85, 2) != 0)
  76. {
  77. }
  78. sub_F6C6(" Something forced this exit!!!!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  79. sub_10666();
  80. sub_104E0();
  81. }
  82. else
  83. {
  84. var num3 = 1;
  85. if (sub_10B44() != 0)
  86. {
  87. if (ENTITY::DOES_ENTITY_EXIST(l_127) == 0)
  88. {
  89. num3 = 0;
  90. }
  91. else if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) == 0)
  92. {
  93. num3 = 0;
  94. NETWORK::NETWORK_REQUEST_CONTROL_OF_ENTITY(l_127);
  95. }
  96. }
  97. sub_10202();
  98. if (sub_10B44() != 0)
  99. {
  100. sub_101B1();
  101. if (sub_101A1(128) != 0)
  102. {
  103. l_95 = 0;
  104. }
  105. }
  106. if (sub_FE7D() == 0)
  107. {
  108. sub_2B3(0);
  109. }
  110. else if (num3 != 0)
  111. {
  112. if (l_325 > 0)
  113. {
  114. sub_FB99();
  115. }
  116. sub_FAAB();
  117. sub_F9BA();
  118. switch (l_325)
  119. {
  120. case 0:
  121. if (l_324 != -1)
  122. {
  123. if (sub_F704() != 0)
  124. {
  125. if (sub_F6CE() != 0)
  126. {
  127. if (sub_10B44() != 0)
  128. {
  129. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) != 0)
  130. {
  131. AI::TASK_START_SCENARIO_IN_PLACE(l_127, "WORLD_HUMAN_PROSTITUTE_HIGH_CLASS", 0, 0);
  132. }
  133. else
  134. {
  135. NETWORK::NETWORK_REQUEST_CONTROL_OF_ENTITY(l_127);
  136. }
  137. }
  138. else
  139. {
  140. AI::TASK_START_SCENARIO_IN_PLACE(l_127, "WORLD_HUMAN_PROSTITUTE_HIGH_CLASS", 0, 0);
  141. }
  142. }
  143. l_325 = 1;
  144. sub_F6C6("Prostitue: moving to PROS_PB_CUSTOMER_DETERMINE_TYPE");
  145. }
  146. break;
  147. }
  148. if (AI::IS_PED_ACTIVE_IN_SCENARIO(l_127) == 0)
  149. {
  150. if (sub_F8A8() != 0)
  151. {
  152. l_324 = 4;
  153. }
  154. break;
  155. }
  156. l_324 = sub_F941();
  157. break;
  158. case 1:
  159. if (sub_F6B7(l_85, 4096) != 0)
  160. {
  161. sub_F655();
  162. }
  163. if (sub_F611() != 0)
  164. {
  165. l_325 = 2;
  166. sub_F6C6("Prostitue: moving to PROS_PB_CUSTOMER_PLAYER");
  167. }
  168. if (sub_F4CE() != 0)
  169. {
  170. l_325 = 3;
  171. sub_F4AD(&l_85, 64);
  172. g_19605 = 1;
  173. sub_F6C6("Prostitue: moving to PROS_PB_CUSTOMER_OTHER");
  174. }
  175. break;
  176. case 2:
  177. sub_2D58();
  178. break;
  179. case 3:
  180. sub_2C9();
  181. break;
  182. }
  183. }
  184. sub_2AB();
  185. SYSTEM::WAIT(0);
  186. goto Label_0262;
  187. }
  188. }
  189.  
  190. void sub_2AB()
  191. {
  192. }
  193.  
  194. void sub_2B3(var A_0)
  195. {
  196. if (A_0 != null)
  197. {
  198. l_95 = 1;
  199. }
  200. else
  201. {
  202. l_95 = 0;
  203. }
  204. }
  205.  
  206. void sub_2C9()
  207. {
  208. if (((l_326 > 0) && (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)) && ((PED::IS_PED_INJURED(l_128) == 0) && (PED::IS_PED_IN_VEHICLE(l_128, l_129, 0) == 0)))
  209. {
  210. sub_2CEB();
  211. }
  212. bool flag1 = ENTITY::DOES_ENTITY_EXIST(l_128) == 0;
  213. if (flag1 | ENTITY::IS_ENTITY_DEAD(l_128))
  214. {
  215. sub_2CDE(15);
  216. }
  217. switch (l_326)
  218. {
  219. case 0:
  220. if (l_327 != 0)
  221. {
  222. l_326 = 1;
  223. }
  224. break;
  225. case 1:
  226. sub_290D();
  227. break;
  228. case 2:
  229. sub_27BA();
  230. break;
  231. case 3:
  232. sub_2318();
  233. break;
  234. case 4:
  235. sub_1DB2();
  236. break;
  237. case 5:
  238. sub_1908();
  239. break;
  240. case 6:
  241. if (PED::IS_PED_INJURED(l_128) != 0)
  242. {
  243. sub_2CEB();
  244. break;
  245. }
  246. if (AI::GET_SCRIPT_TASK_STATUS(l_127, 0xE763797) == 7)
  247. {
  248. l_98 = GAMEPLAY::GET_GAME_TIMER();
  249. l_99 = l_98 - l_97;
  250. bool flag2 = l_99 >= 10000;
  251. if (flag2 | (ENTITY::IS_ENTITY_AT_ENTITY(l_127, l_128, 12f, 12f, 5f, 0, 1, 0) == 0))
  252. {
  253. sub_F6C6("prostitute WAITING TO END");
  254. sub_2CEB();
  255. }
  256. }
  257. break;
  258. case 7:
  259. if (PATHFIND::0x86E80A17(sub_1841(0), sub_1841(1), sub_1841(2), sub_1841(3)) == 0)
  260. {
  261. PATHFIND::0x2CDA5012(sub_1841(0), sub_1841(1), sub_1841(2), sub_1841(3));
  262. }
  263. else
  264. {
  265. struct _s = &l_121;
  266. AI::TASK_VEHICLE_DRIVE_TO_COORD(l_128, l_129, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), (VEHICLE::0x7D1A0616(l_129) * 0.65f), 0, 0, 0xC01AB, 4f, -1f);
  267. l_326 = 8;
  268. }
  269. break;
  270. case 8:
  271. {
  272. struct _s = &l_121;
  273. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  274. bool flag3 = SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) < 25f;
  275. if (flag3 & (AI::GET_SCRIPT_TASK_STATUS(l_128, 0x93A5526E) != 1))
  276. {
  277. l_328 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(1, 3);
  278. l_326 = 11;
  279. }
  280. if (sub_1755(l_128) != 0)
  281. {
  282. sub_2CDE(15);
  283. }
  284. break;
  285. }
  286. case 11:
  287. sub_507();
  288. break;
  289. case 12:
  290. sub_2CDE(15);
  291. break;
  292. case 15:
  293. {
  294. var num1 = ENTITY::DOES_ENTITY_EXIST(l_127);
  295. if ((num1 & ENTITY::DOES_ENTITY_EXIST(l_129)) != 0)
  296. {
  297. if (PED::IS_PED_IN_VEHICLE(l_127, l_129, 0) != 0)
  298. {
  299. if ((ENTITY::IS_ENTITY_DEAD(l_128) == 0) && (AI::GET_SCRIPT_TASK_STATUS(l_128, 0xCE98FBB3) != 1))
  300. {
  301. AI::TASK_LEAVE_ANY_VEHICLE(l_127, 0, 0x1000000);
  302. }
  303. }
  304. else
  305. {
  306. sub_2B3(0);
  307. }
  308. }
  309. break;
  310. }
  311. }
  312. }
  313.  
  314. void sub_507()
  315. {
  316. switch (l_333)
  317. {
  318. case 0:
  319. PED::SET_SCRIPTED_ANIM_SEAT_OFFSET(l_127, 0.916f);
  320. if (sub_EB3(l_128) != 0)
  321. {
  322. sub_E7E(&l_150);
  323. l_333 = 1;
  324. }
  325. break;
  326. case 1:
  327. sub_E06(l_129);
  328. if (sub_DC6(l_128) != 0)
  329. {
  330. sub_662(&l_153, "pbproau", "pbpro_pic", 4, 0, 0, 0);
  331. sub_2CDE(15);
  332. }
  333. if ((sub_5D9(&l_150) > 1f) && (AI::GET_SCRIPT_TASK_STATUS(l_127, 0xE763797) == 7))
  334. {
  335. sub_5B4(&l_85, 512);
  336. l_333 = 3;
  337. }
  338. break;
  339. case 3:
  340. sub_2CDE(15);
  341. break;
  342. case 5:
  343. sub_2CDE(15);
  344. break;
  345. }
  346. }
  347.  
  348. void sub_5B4(var A_0, var A_1)
  349. {
  350. sub_5C4(A_0, A_1);
  351. }
  352.  
  353. void sub_5C4(var A_0, var A_1)
  354. {
  355. wPtr(rPtr(A_0) - (rPtr(A_0) & A_1), A_0);
  356. }
  357.  
  358. var sub_5D9(var A_0)
  359. {
  360. if (sub_652(A_0) != 0)
  361. {
  362. if (sub_642(A_0) != 0)
  363. {
  364. return rPtr((A_0) + 8);
  365. }
  366. return (sub_610() - rPtr((A_0) + 4));
  367. }
  368. return rPtr((A_0) + 4);
  369. }
  370.  
  371. var sub_610()
  372. {
  373. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  374. {
  375. return (SYSTEM::TO_FLOAT(NETWORK::GET_NETWORK_TIME()) / 1000f);
  376. }
  377. return (SYSTEM::TO_FLOAT(GAMEPLAY::GET_GAME_TIMER()) / 1000f);
  378. }
  379.  
  380. var sub_642(var A_0)
  381. {
  382. return GAMEPLAY::IS_BIT_SET(rPtr(A_0), 2);
  383. }
  384.  
  385. var sub_652(var A_0)
  386. {
  387. return GAMEPLAY::IS_BIT_SET(rPtr(A_0), 1);
  388. }
  389.  
  390. var sub_662(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6)
  391. {
  392. sub_D70(A_0, 143, A_1, A_4, A_5, A_6);
  393. if ((A_3 > 7) && (A_3 < 12))
  394. {
  395. A_3 = 7;
  396. }
  397. g_11735 = 0;
  398. g_11737 = 0;
  399. g_11742 = 0;
  400. g_12699 = 0;
  401. g_12701 = 0;
  402. g_12705 = 0;
  403. g_2621441 = 0;
  404. return sub_6B0(A_2, A_3, 0);
  405. }
  406.  
  407. var sub_6B0(var A_0, var A_1, var A_2)
  408. {
  409. g_11729 = 0;
  410. bool flag1 = g_11728 == 0;
  411. if (!(flag1 | (g_11730 == 2)))
  412. {
  413. if (g_11728 != 5)
  414. {
  415. bool flag2 = A_1 < g_11730;
  416. if (flag2 | (A_1 == g_11730))
  417. {
  418. return 0;
  419. }
  420. if (A_1 != 2)
  421. {
  422. sub_D19();
  423. }
  424. }
  425. return 0;
  426. }
  427. if (g_11728 != 0)
  428. {
  429. if (A_1 <= g_11730)
  430. {
  431. return 0;
  432. }
  433. if (g_11735 != 0)
  434. {
  435. sub_D19();
  436. return 0;
  437. }
  438. AUDIO::STOP_SCRIPTED_CONVERSATION(0);
  439. wPtr(3, (&g_10433) + 1);
  440. g_11728 = 0;
  441. g_11729 = 1;
  442. g_11761 = 0;
  443. g_11724 = 0;
  444. g_11725 = 0;
  445. g_11739 = 0;
  446. }
  447. if (AUDIO::IS_SCRIPTED_CONVERSATION_ONGOING() != 0)
  448. {
  449. return 0;
  450. }
  451. if (sub_CDE(8, -1) != 0)
  452. {
  453. return 0;
  454. }
  455. struct _s = &g_11778;
  456. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11784);
  457. sub_C86();
  458. struct _s = &g_11182;
  459. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), rPtrOfs(_s, 24), rPtrOfs(_s, 28), rPtrOfs(_s, 32), rPtrOfs(_s, 36), rPtrOfs(_s, 40), rPtrOfs(_s, 44), rPtrOfs(_s, 48), rPtrOfs(_s, 52), rPtrOfs(_s, 56), rPtrOfs(_s, 60), rPtrOfs(_s, 64), rPtrOfs(_s, 68), rPtrOfs(_s, 72), rPtrOfs(_s, 76), rPtrOfs(_s, 80), rPtrOfs(_s, 84), rPtrOfs(_s, 88), rPtrOfs(_s, 92), rPtrOfs(_s, 96), rPtrOfs(_s, 100), rPtrOfs(_s, 104), rPtrOfs(_s, 108), rPtrOfs(_s, 112), rPtrOfs(_s, 116), rPtrOfs(_s, 120), rPtrOfs(_s, 124), rPtrOfs(_s, 128), rPtrOfs(_s, 132), rPtrOfs(_s, 136), rPtrOfs(_s, 140), rPtrOfs(_s, 144), rPtrOfs(_s, 148), rPtrOfs(_s, 152), rPtrOfs(_s, 156), rPtrOfs(_s, 160), rPtrOfs(_s, 164), rPtrOfs(_s, 168), rPtrOfs(_s, 172), rPtrOfs(_s, 176), rPtrOfs(_s, 180), rPtrOfs(_s, 184), rPtrOfs(_s, 188), rPtrOfs(_s, 192), rPtrOfs(_s, 196), rPtrOfs(_s, 200), rPtrOfs(_s, 204), rPtrOfs(_s, 208), rPtrOfs(_s, 212), rPtrOfs(_s, 216), rPtrOfs(_s, 220), rPtrOfs(_s, 224), rPtrOfs(_s, 228), rPtrOfs(_s, 232), rPtrOfs(_s, 236), rPtrOfs(_s, 240), rPtrOfs(_s, 244), rPtrOfs(_s, 248), rPtrOfs(_s, 252), rPtrOfs(_s, 256), rPtrOfs(_s, 260), rPtrOfs(_s, 264), rPtrOfs(_s, 268), rPtrOfs(_s, 272), rPtrOfs(_s, 276), rPtrOfs(_s, 280), rPtrOfs(_s, 284), rPtrOfs(_s, 288), rPtrOfs(_s, 292), rPtrOfs(_s, 296), rPtrOfs(_s, 300), rPtrOfs(_s, 304), rPtrOfs(_s, 308), rPtrOfs(_s, 312), rPtrOfs(_s, 316), rPtrOfs(_s, 320), rPtrOfs(_s, 324), rPtrOfs(_s, 328), rPtrOfs(_s, 332), rPtrOfs(_s, 336), rPtrOfs(_s, 340), rPtrOfs(_s, 344), rPtrOfs(_s, 348), rPtrOfs(_s, 352), rPtrOfs(_s, 356), rPtrOfs(_s, 360), rPtrOfs(_s, 364), rPtrOfs(_s, 368), rPtrOfs(_s, 372), rPtrOfs(_s, 376), rPtrOfs(_s, 380), rPtrOfs(_s, 384), rPtrOfs(_s, 388), rPtrOfs(_s, 392), rPtrOfs(_s, 396), rPtrOfs(_s, 400), rPtrOfs(_s, 404), rPtrOfs(_s, 408), rPtrOfs(_s, 412), rPtrOfs(_s, 416), rPtrOfs(_s, 420), rPtrOfs(_s, 424), rPtrOfs(_s, 428), rPtrOfs(_s, 432), rPtrOfs(_s, 436), rPtrOfs(_s, 440), rPtrOfs(_s, 444), rPtrOfs(_s, 448), rPtrOfs(_s, 452), rPtrOfs(_s, 456), rPtrOfs(_s, 460), rPtrOfs(_s, 464), rPtrOfs(_s, 468), rPtrOfs(_s, 472), rPtrOfs(_s, 476), rPtrOfs(_s, 480), rPtrOfs(_s, 484), rPtrOfs(_s, 488), rPtrOfs(_s, 492), rPtrOfs(_s, 496), rPtrOfs(_s, 500), rPtrOfs(_s, 504), rPtrOfs(_s, 508), rPtrOfs(_s, 512), rPtrOfs(_s, 516), rPtrOfs(_s, 520), rPtrOfs(_s, 524), rPtrOfs(_s, 528), rPtrOfs(_s, 532), rPtrOfs(_s, 536), rPtrOfs(_s, 540), rPtrOfs(_s, 544), rPtrOfs(_s, 548), rPtrOfs(_s, 552), rPtrOfs(_s, 556), rPtrOfs(_s, 560), rPtrOfs(_s, 564), rPtrOfs(_s, 568), rPtrOfs(_s, 572), rPtrOfs(_s, 576), rPtrOfs(_s, 580), rPtrOfs(_s, 584), rPtrOfs(_s, 588), rPtrOfs(_s, 592), rPtrOfs(_s, 596), rPtrOfs(_s, 600), rPtrOfs(_s, 604), rPtrOfs(_s, 608), rPtrOfs(_s, 612), rPtrOfs(_s, 616), rPtrOfs(_s, 620), rPtrOfs(_s, 624), rPtrOfs(_s, 628), rPtrOfs(_s, 632), rPtrOfs(_s, 636), rPtrOfs(_s, 640), rPtrOfs(_s, 644), rPtrOfs(_s, 648), rPtrOfs(_s, 652), rPtrOfs(_s, 656), 165, &g_11017);
  460. g_11734 = g_11735;
  461. g_11741 = g_11742;
  462. g_2621442 = g_2621441;
  463. struct _s = &g_11749;
  464. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11743);
  465. g_11736 = g_11737;
  466. g_12698 = g_12699;
  467. struct _s = &g_12712;
  468. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_12706);
  469. g_12700 = g_12701;
  470. g_12702 = g_12703;
  471. g_12704 = g_12705;
  472. wPtr(g_12697, (&g_11347) + 370);
  473. wPtr(g_12695, (&g_11347) + 368);
  474. wPtr(g_12696, (&g_11347) + 369);
  475. g_11724 = g_11725;
  476. if (g_11734 != 0)
  477. {
  478. GAMEPLAY::CLEAR_BIT(&g_1686, 20);
  479. GAMEPLAY::CLEAR_BIT(&g_1687, 17);
  480. GAMEPLAY::CLEAR_BIT(&g_1688, 0);
  481. if (A_2 != null)
  482. {
  483. sub_AF5();
  484. if ((rPtr(getElemPtr(0, getElemPtr(g_10433, &g_2480, 7872), 1124) + 1036) == 2) && (A_1 != 13))
  485. {
  486. return 0;
  487. }
  488. if (rPtr((&g_10433) + 1) > 3)
  489. {
  490. return 0;
  491. }
  492. }
  493. if (g_10399 == 1)
  494. {
  495. return 0;
  496. }
  497. if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)
  498. {
  499. if (PED::IS_PED_IN_MELEE_COMBAT(PLAYER::PLAYER_PED_ID()) != 0)
  500. {
  501. return 0;
  502. }
  503. if (sub_A5D() != 0)
  504. {
  505. return 0;
  506. }
  507. if (AI::IS_PED_SPRINTING(PLAYER::PLAYER_PED_ID()) != 0)
  508. {
  509. return 0;
  510. }
  511. if (PED::IS_PED_RAGDOLL(PLAYER::PLAYER_PED_ID()) != 0)
  512. {
  513. return 0;
  514. }
  515. if (PED::0xCD71F11B(PLAYER::PLAYER_PED_ID()) != 0)
  516. {
  517. return 0;
  518. }
  519. if (WEAPON::0x8DDD0B5B(PLAYER::PLAYER_PED_ID(), 0xFBAB5776) != 0)
  520. {
  521. return 0;
  522. }
  523. if (g_59842 == 0)
  524. {
  525. if (ENTITY::IS_ENTITY_IN_WATER(PLAYER::PLAYER_PED_ID()) != 0)
  526. {
  527. return 0;
  528. }
  529. if (PLAYER::IS_PLAYER_CLIMBING(PLAYER::PLAYER_ID()) != 0)
  530. {
  531. return 0;
  532. }
  533. if (PED::IS_PED_PLANTING_BOMB(PLAYER::PLAYER_PED_ID()) != 0)
  534. {
  535. return 0;
  536. }
  537. if (PLAYER::IS_SPECIAL_ABILITY_ACTIVE(PLAYER::PLAYER_ID()) != 0)
  538. {
  539. return 0;
  540. }
  541. }
  542. }
  543. if (sub_A36() != 0)
  544. {
  545. return 0;
  546. }
  547. switch (rPtr((&g_10433) + 1))
  548. {
  549. case 7:
  550. return 0;
  551. case 8:
  552. return 0;
  553. }
  554. if (GAMEPLAY::IS_BIT_SET(g_1686, 9) != 0)
  555. {
  556. return 0;
  557. }
  558. sub_9A3();
  559. g_11738 = A_2;
  560. }
  561. g_11730 = A_1;
  562. strcpy(A_0, &g_11347, 24);
  563. g_10594 = 0;
  564. sub_971();
  565. return 1;
  566. }
  567.  
  568. void sub_971()
  569. {
  570. var num3 = 0;
  571. while (true)
  572. {
  573. if (num3 > 69)
  574. {
  575. break;
  576. }
  577. strcpy("", getElemPtr(num3, &g_10596, 24), 24);
  578. num3++;
  579. }
  580. AUDIO::STOP_SCRIPTED_CONVERSATION(0);
  581. g_11728 = 1;
  582. }
  583.  
  584. void sub_9A3()
  585. {
  586. g_11761 = g_11760;
  587. g_11755 = g_11756;
  588. struct _s = &g_11790;
  589. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11802);
  590. struct _s = &g_11796;
  591. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11808);
  592. g_11763 = g_11762;
  593. struct _s = &g_11814;
  594. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11832);
  595. struct _s = &g_11820;
  596. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11838);
  597. struct _s = &g_11826;
  598. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11844);
  599. struct _s = &g_11856;
  600. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11850);
  601. g_1477 = g_1478;
  602. g_1479 = g_1480;
  603. g_11739 = g_11740;
  604. g_11741 = g_11742;
  605. struct _s = &g_11749;
  606. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, &g_11743);
  607. g_11732 = g_11733;
  608. g_12724 = 0;
  609. g_11757 = 0;
  610. g_11758 = 0;
  611. GAMEPLAY::CLEAR_BIT(&g_1687, 16);
  612. }
  613.  
  614. var sub_A36()
  615. {
  616. bool flag1 = rPtr((&g_10433) + 1) == 1;
  617. if (flag1 | (rPtr((&g_10433) + 1) == 0))
  618. {
  619. return 1;
  620. }
  621. return 0;
  622. }
  623.  
  624. var sub_A5D()
  625. {
  626. if (g_59842 != 0)
  627. {
  628. var num4;
  629. var num3 = 0;
  630. WEAPON::GET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), &num4, 1);
  631. if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)
  632. {
  633. bool flag1 = num4 == 0x5FC3C11;
  634. bool flag2 = flag1 | (num4 == 0xC472FE2);
  635. if (flag2 | (num4 == 0x33058E22))
  636. {
  637. num3 = 1;
  638. }
  639. }
  640. var num1 = CAM::IS_AIM_CAM_ACTIVE();
  641. if ((num1 & (num3 == 1)) != 0)
  642. {
  643. return 1;
  644. }
  645. return 0;
  646. }
  647. if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)
  648. {
  649. if (PED::GET_PED_CONFIG_FLAG(PLAYER::PLAYER_PED_ID(), 78, 1) != 0)
  650. {
  651. return 1;
  652. }
  653. return 0;
  654. }
  655. return 1;
  656. }
  657.  
  658. void sub_AF5()
  659. {
  660. g_10433 = sub_B25();
  661. if (g_10433 == 143)
  662. {
  663. g_10433 = 3;
  664. }
  665. if (g_59842 != 0)
  666. {
  667. g_10433 = 3;
  668. }
  669. if (g_10433 > 3)
  670. {
  671. g_10433 = 3;
  672. }
  673. }
  674.  
  675. var sub_B25()
  676. {
  677. sub_B3E();
  678. return rPtr((((&g_86838) + 1729) + 539) + 2659);
  679. }
  680.  
  681. void sub_B3E()
  682. {
  683. if (ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0)
  684. {
  685. if (sub_C5C(rPtr((((&g_86838) + 1729) + 539) + 2659)) == ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()))
  686. {
  687. wPtr(rPtr((((&g_86838) + 1729) + 539) + 2659), (((&g_86838) + 1729) + 539) + 2661);
  688. return;
  689. }
  690. var num3 = sub_C1F(PLAYER::PLAYER_PED_ID());
  691. if (sub_C13(num3) != 0)
  692. {
  693. bool flag1 = rPtr((((&g_86838) + 1729) + 539) + 2659) != num3;
  694. if (flag1 & sub_C13(rPtr((((&g_86838) + 1729) + 539) + 2659)))
  695. {
  696. wPtr(rPtr((((&g_86838) + 1729) + 539) + 2659), (((&g_86838) + 1729) + 539) + 2660);
  697. }
  698. wPtr(num3, (((&g_86838) + 1729) + 539) + 2661);
  699. wPtr(num3, (((&g_86838) + 1729) + 539) + 2659);
  700. return;
  701. }
  702. }
  703. wPtr(143, (((&g_86838) + 1729) + 539) + 2659);
  704. }
  705.  
  706. var sub_C13(var A_0)
  707. {
  708. return (A_0 < 3);
  709. }
  710.  
  711. var sub_C1F(var A_0)
  712. {
  713. if (ENTITY::DOES_ENTITY_EXIST(A_0) != 0)
  714. {
  715. var num4 = ENTITY::GET_ENTITY_MODEL(A_0);
  716. for (var i = 0; i <= 2; i++)
  717. {
  718. if (sub_C5C(i) == num4)
  719. {
  720. return i;
  721. }
  722. }
  723. }
  724. return 143;
  725. }
  726.  
  727. var sub_C5C(var A_0)
  728. {
  729. if (sub_C13(A_0) != 0)
  730. {
  731. return getElem(A_0, (&g_86838) + 23936, 116);
  732. }
  733. return 0;
  734. }
  735.  
  736. void sub_C86()
  737. {
  738. var num3 = 0;
  739. while (true)
  740. {
  741. if (num3 > 15)
  742. {
  743. break;
  744. }
  745. setElem(0, num3, &g_11017, 40);
  746. strcpy("", getElemPtr(num3, &g_11017, 40) + 4, 24);
  747. wPtr(0, getElemPtr(num3, &g_11017, 40) + 28);
  748. wPtr(0, getElemPtr(num3, &g_11017, 40) + 32);
  749. num3++;
  750. }
  751. wPtr(-99, (&g_11017) + 161);
  752. setStruct(0f, 0f, 0f, 3, (&g_11017) + 162);
  753. }
  754.  
  755. var sub_CDE(var A_0, var A_1)
  756. {
  757. switch (A_0)
  758. {
  759. case 5:
  760. if (A_1 <= -1)
  761. {
  762. break;
  763. }
  764. return getElem(A_1, (&g_1355279) + 147, 4);
  765. }
  766. return GAMEPLAY::IS_BIT_SET(rPtr((&g_1355279) + 566), A_0);
  767. }
  768.  
  769. void sub_D19()
  770. {
  771. AUDIO::RESTART_SCRIPTED_CONVERSATION();
  772. g_12719 = 0;
  773. var num1 = AUDIO::IS_MOBILE_PHONE_CALL_ONGOING();
  774. var num6 = num1 | (rPtr((&g_10433) + 1) == 9);
  775. if ((num6 | (g_10432 == 1)) != 0)
  776. {
  777. AUDIO::STOP_SCRIPTED_CONVERSATION(0);
  778. g_11728 = 6;
  779. wPtr(3, (&g_10433) + 1);
  780. }
  781. else if (AUDIO::IS_SCRIPTED_CONVERSATION_ONGOING() != 0)
  782. {
  783. AUDIO::STOP_SCRIPTED_CONVERSATION(1);
  784. g_11728 = 6;
  785. }
  786. }
  787.  
  788. void sub_D70(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  789. {
  790. struct _s = A_0;
  791. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), rPtrOfs(_s, 24), rPtrOfs(_s, 28), rPtrOfs(_s, 32), rPtrOfs(_s, 36), rPtrOfs(_s, 40), rPtrOfs(_s, 44), rPtrOfs(_s, 48), rPtrOfs(_s, 52), rPtrOfs(_s, 56), rPtrOfs(_s, 60), rPtrOfs(_s, 64), rPtrOfs(_s, 68), rPtrOfs(_s, 72), rPtrOfs(_s, 76), rPtrOfs(_s, 80), rPtrOfs(_s, 84), rPtrOfs(_s, 88), rPtrOfs(_s, 92), rPtrOfs(_s, 96), rPtrOfs(_s, 100), rPtrOfs(_s, 104), rPtrOfs(_s, 108), rPtrOfs(_s, 112), rPtrOfs(_s, 116), rPtrOfs(_s, 120), rPtrOfs(_s, 124), rPtrOfs(_s, 128), rPtrOfs(_s, 132), rPtrOfs(_s, 136), rPtrOfs(_s, 140), rPtrOfs(_s, 144), rPtrOfs(_s, 148), rPtrOfs(_s, 152), rPtrOfs(_s, 156), rPtrOfs(_s, 160), rPtrOfs(_s, 164), rPtrOfs(_s, 168), rPtrOfs(_s, 172), rPtrOfs(_s, 176), rPtrOfs(_s, 180), rPtrOfs(_s, 184), rPtrOfs(_s, 188), rPtrOfs(_s, 192), rPtrOfs(_s, 196), rPtrOfs(_s, 200), rPtrOfs(_s, 204), rPtrOfs(_s, 208), rPtrOfs(_s, 212), rPtrOfs(_s, 216), rPtrOfs(_s, 220), rPtrOfs(_s, 224), rPtrOfs(_s, 228), rPtrOfs(_s, 232), rPtrOfs(_s, 236), rPtrOfs(_s, 240), rPtrOfs(_s, 244), rPtrOfs(_s, 248), rPtrOfs(_s, 252), rPtrOfs(_s, 256), rPtrOfs(_s, 260), rPtrOfs(_s, 264), rPtrOfs(_s, 268), rPtrOfs(_s, 272), rPtrOfs(_s, 276), rPtrOfs(_s, 280), rPtrOfs(_s, 284), rPtrOfs(_s, 288), rPtrOfs(_s, 292), rPtrOfs(_s, 296), rPtrOfs(_s, 300), rPtrOfs(_s, 304), rPtrOfs(_s, 308), rPtrOfs(_s, 312), rPtrOfs(_s, 316), rPtrOfs(_s, 320), rPtrOfs(_s, 324), rPtrOfs(_s, 328), rPtrOfs(_s, 332), rPtrOfs(_s, 336), rPtrOfs(_s, 340), rPtrOfs(_s, 344), rPtrOfs(_s, 348), rPtrOfs(_s, 352), rPtrOfs(_s, 356), rPtrOfs(_s, 360), rPtrOfs(_s, 364), rPtrOfs(_s, 368), rPtrOfs(_s, 372), rPtrOfs(_s, 376), rPtrOfs(_s, 380), rPtrOfs(_s, 384), rPtrOfs(_s, 388), rPtrOfs(_s, 392), rPtrOfs(_s, 396), rPtrOfs(_s, 400), rPtrOfs(_s, 404), rPtrOfs(_s, 408), rPtrOfs(_s, 412), rPtrOfs(_s, 416), rPtrOfs(_s, 420), rPtrOfs(_s, 424), rPtrOfs(_s, 428), rPtrOfs(_s, 432), rPtrOfs(_s, 436), rPtrOfs(_s, 440), rPtrOfs(_s, 444), rPtrOfs(_s, 448), rPtrOfs(_s, 452), rPtrOfs(_s, 456), rPtrOfs(_s, 460), rPtrOfs(_s, 464), rPtrOfs(_s, 468), rPtrOfs(_s, 472), rPtrOfs(_s, 476), rPtrOfs(_s, 480), rPtrOfs(_s, 484), rPtrOfs(_s, 488), rPtrOfs(_s, 492), rPtrOfs(_s, 496), rPtrOfs(_s, 500), rPtrOfs(_s, 504), rPtrOfs(_s, 508), rPtrOfs(_s, 512), rPtrOfs(_s, 516), rPtrOfs(_s, 520), rPtrOfs(_s, 524), rPtrOfs(_s, 528), rPtrOfs(_s, 532), rPtrOfs(_s, 536), rPtrOfs(_s, 540), rPtrOfs(_s, 544), rPtrOfs(_s, 548), rPtrOfs(_s, 552), rPtrOfs(_s, 556), rPtrOfs(_s, 560), rPtrOfs(_s, 564), rPtrOfs(_s, 568), rPtrOfs(_s, 572), rPtrOfs(_s, 576), rPtrOfs(_s, 580), rPtrOfs(_s, 584), rPtrOfs(_s, 588), rPtrOfs(_s, 592), rPtrOfs(_s, 596), rPtrOfs(_s, 600), rPtrOfs(_s, 604), rPtrOfs(_s, 608), rPtrOfs(_s, 612), rPtrOfs(_s, 616), rPtrOfs(_s, 620), rPtrOfs(_s, 624), rPtrOfs(_s, 628), rPtrOfs(_s, 632), rPtrOfs(_s, 636), rPtrOfs(_s, 640), rPtrOfs(_s, 644), rPtrOfs(_s, 648), rPtrOfs(_s, 652), rPtrOfs(_s, 656), 165, &g_11182);
  792. g_1478 = A_1;
  793. strcpy(A_2, &g_11778, 24);
  794. g_12697 = A_5;
  795. if (A_3 == 0)
  796. {
  797. g_12695 = 1;
  798. g_12693 = 0;
  799. }
  800. else
  801. {
  802. g_12695 = 0;
  803. g_12693 = 1;
  804. }
  805. if (A_4 == 0)
  806. {
  807. g_12696 = 1;
  808. g_12694 = 0;
  809. }
  810. else
  811. {
  812. g_12696 = 0;
  813. g_12694 = 1;
  814. }
  815. }
  816.  
  817. var sub_DC6(var A_0)
  818. {
  819. if (sub_DF0() != 0)
  820. {
  821. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  822. if (ENTITY::0xEA127CBC(ENTITY::GET_ENTITY_MODEL(A_0), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1) == 0)
  823. {
  824. return 1;
  825. }
  826. }
  827. return 0;
  828. }
  829.  
  830. var sub_DF0()
  831. {
  832. if (g_12744 != 0)
  833. {
  834. return 1;
  835. }
  836. return 0;
  837. }
  838.  
  839. void sub_E06(var A_0)
  840. {
  841. bool flag1 = l_328 != 1;
  842. if (!(flag1 & (l_328 != 2)) && (sub_E6B() != 0))
  843. {
  844. sub_E30(&A_0);
  845. }
  846. }
  847.  
  848. void sub_E30(var A_0)
  849. {
  850. if (VEHICLE::IS_VEHICLE_DRIVEABLE(rPtr(A_0), 0) != 0)
  851. {
  852. var num3;
  853. var num6;
  854. setStruct(0f, 0f, -0.25f, 3, &num3);
  855. setStruct(0f, 0f, 0f, 3, &num6);
  856. struct _s = &num3;
  857. struct _s = &num6;
  858. ENTITY::APPLY_FORCE_TO_ENTITY(rPtr(A_0), 1, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0, 1, 1, 1, 1, 0);
  859. }
  860. }
  861.  
  862. var sub_E6B()
  863. {
  864. return ENTITY::0x66571CA0(l_127, 0x3438B9BD);
  865. }
  866.  
  867. void sub_E7E(var A_0)
  868. {
  869. sub_E8D(A_0, 0f);
  870. }
  871.  
  872. void sub_E8D(var A_0, var A_1)
  873. {
  874. wPtr(sub_610() - A_1, (A_0) + 4);
  875. GAMEPLAY::SET_BIT(A_0, 1);
  876. GAMEPLAY::CLEAR_BIT(A_0, 2);
  877. wPtr(0f, (A_0) + 8);
  878. }
  879.  
  880. var sub_EB3(var A_0)
  881. {
  882. if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(l_96) != 0)
  883. {
  884. l_96 = sub_16FB(A_0);
  885. return 0;
  886. }
  887. if (STREAMING::HAS_ANIM_DICT_LOADED(l_96) == 0)
  888. {
  889. return 0;
  890. }
  891. sub_F3E(l_127, sub_16EE(), 1, SYSTEM::FLOOR((15000f * (1f + (SYSTEM::TO_FLOAT(l_105) / 2f)))));
  892. if (A_0 == PLAYER::PLAYER_PED_ID())
  893. {
  894. sub_F3E(A_0, sub_16EE(), 0, SYSTEM::FLOOR((15000f * (1f + (SYSTEM::TO_FLOAT(l_105) / 2f)))));
  895. }
  896. sub_F6C6("anim_dict has loaded, triggering anims?");
  897. sub_F4AD(&l_85, 512);
  898. return 1;
  899. }
  900.  
  901. void sub_F3E(var A_0, var A_1, var A_2, var A_3)
  902. {
  903. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  904. {
  905. var num3 = PED::GET_VEHICLE_PED_IS_IN(A_0, 1);
  906. if (VEHICLE::IS_VEHICLE_DRIVEABLE(num3, 0) != 0)
  907. {
  908. var num4 = sub_16AB(num3);
  909. var num5 = sub_16FB(A_0);
  910. if (STREAMING::HAS_ANIM_DICT_LOADED(num5) == 0)
  911. {
  912. STREAMING::REQUEST_ANIM_DICT(num5);
  913. }
  914. else
  915. {
  916. var num6;
  917. AI::OPEN_SEQUENCE_TASK(&num6);
  918. AI::TASK_PLAY_ANIM(0, num5, sub_104D(0, A_2, A_1, num4), 8f, -8f, -1, 0, 0, 0, 0, 0);
  919. AI::TASK_PLAY_ANIM(0, num5, sub_104D(1, A_2, A_1, num4), 8f, -4f, -1, 0, 0, 0, 0, 0);
  920. AI::TASK_PLAY_ANIM(0, num5, sub_104D(2, A_2, A_1, num4), 8f, -4f, A_3, 1, 0, 0, 0, 0);
  921. AI::TASK_PLAY_ANIM(0, num5, sub_104D(3, A_2, A_1, num4), 8f, -4f, -1, 0, 0, 0, 0, 0);
  922. AI::TASK_PLAY_ANIM(0, num5, sub_104D(4, A_2, A_1, num4), 4f, -2f, -1, 0, 0, 0, 0, 0);
  923. AI::CLOSE_SEQUENCE_TASK(num6);
  924. AI::TASK_PERFORM_SEQUENCE(A_0, num6);
  925. AI::CLEAR_SEQUENCE_TASK(&num6);
  926. }
  927. }
  928. }
  929. }
  930.  
  931. var sub_104D(var A_0, var A_1, var A_2, var A_3)
  932. {
  933. var num3 = "";
  934. switch (A_0)
  935. {
  936. case 0:
  937. if (A_3 == null)
  938. {
  939. if (A_2 != null)
  940. {
  941. if (A_1 != null)
  942. {
  943. num3 = sub_132F(18);
  944. }
  945. else
  946. {
  947. num3 = sub_132F(23);
  948. }
  949. }
  950. else if (A_1 != null)
  951. {
  952. num3 = sub_132F(8);
  953. }
  954. else
  955. {
  956. num3 = sub_132F(13);
  957. }
  958. break;
  959. }
  960. if (A_2 == null)
  961. {
  962. if (A_1 != null)
  963. {
  964. num3 = sub_14ED(8);
  965. }
  966. else
  967. {
  968. num3 = sub_14ED(13);
  969. }
  970. break;
  971. }
  972. if (A_1 == null)
  973. {
  974. num3 = sub_14ED(23);
  975. break;
  976. }
  977. num3 = sub_14ED(18);
  978. break;
  979. case 1:
  980. if (A_3 == null)
  981. {
  982. if (A_2 != null)
  983. {
  984. if (A_1 != null)
  985. {
  986. num3 = sub_132F(19);
  987. }
  988. else
  989. {
  990. num3 = sub_132F(24);
  991. }
  992. }
  993. else if (A_1 != null)
  994. {
  995. num3 = sub_132F(9);
  996. }
  997. else
  998. {
  999. num3 = sub_132F(14);
  1000. }
  1001. break;
  1002. }
  1003. if (A_2 == null)
  1004. {
  1005. if (A_1 != null)
  1006. {
  1007. num3 = sub_14ED(9);
  1008. }
  1009. else
  1010. {
  1011. num3 = sub_14ED(14);
  1012. }
  1013. break;
  1014. }
  1015. if (A_1 == null)
  1016. {
  1017. num3 = sub_14ED(24);
  1018. break;
  1019. }
  1020. num3 = sub_14ED(19);
  1021. break;
  1022. case 2:
  1023. if (A_3 == null)
  1024. {
  1025. if (A_2 != null)
  1026. {
  1027. if (A_1 != null)
  1028. {
  1029. num3 = sub_132F(20);
  1030. }
  1031. else
  1032. {
  1033. num3 = sub_132F(25);
  1034. }
  1035. }
  1036. else if (A_1 != null)
  1037. {
  1038. num3 = sub_132F(10);
  1039. }
  1040. else
  1041. {
  1042. num3 = sub_132F(15);
  1043. }
  1044. break;
  1045. }
  1046. if (A_2 == null)
  1047. {
  1048. if (A_1 != null)
  1049. {
  1050. num3 = sub_14ED(10);
  1051. }
  1052. else
  1053. {
  1054. num3 = sub_14ED(15);
  1055. }
  1056. break;
  1057. }
  1058. if (A_1 == null)
  1059. {
  1060. num3 = sub_14ED(25);
  1061. break;
  1062. }
  1063. num3 = sub_14ED(20);
  1064. break;
  1065. case 3:
  1066. if (A_3 == null)
  1067. {
  1068. if (A_2 != null)
  1069. {
  1070. if (A_1 != null)
  1071. {
  1072. num3 = sub_132F(21);
  1073. }
  1074. else
  1075. {
  1076. num3 = sub_132F(26);
  1077. }
  1078. }
  1079. else if (A_1 != null)
  1080. {
  1081. num3 = sub_132F(11);
  1082. }
  1083. else
  1084. {
  1085. num3 = sub_132F(16);
  1086. }
  1087. break;
  1088. }
  1089. if (A_2 == null)
  1090. {
  1091. if (A_1 != null)
  1092. {
  1093. num3 = sub_14ED(11);
  1094. }
  1095. else
  1096. {
  1097. num3 = sub_14ED(16);
  1098. }
  1099. break;
  1100. }
  1101. if (A_1 == null)
  1102. {
  1103. num3 = sub_14ED(26);
  1104. break;
  1105. }
  1106. num3 = sub_14ED(21);
  1107. break;
  1108. case 4:
  1109. if (A_3 == null)
  1110. {
  1111. if (A_2 != null)
  1112. {
  1113. if (A_1 != null)
  1114. {
  1115. num3 = sub_132F(22);
  1116. }
  1117. else
  1118. {
  1119. num3 = sub_132F(27);
  1120. }
  1121. }
  1122. else if (A_1 != null)
  1123. {
  1124. num3 = sub_132F(12);
  1125. }
  1126. else
  1127. {
  1128. num3 = sub_132F(17);
  1129. }
  1130. break;
  1131. }
  1132. if (A_2 == null)
  1133. {
  1134. if (A_1 != null)
  1135. {
  1136. num3 = sub_14ED(12);
  1137. }
  1138. else
  1139. {
  1140. num3 = sub_14ED(17);
  1141. }
  1142. break;
  1143. }
  1144. if (A_1 == null)
  1145. {
  1146. num3 = sub_14ED(27);
  1147. break;
  1148. }
  1149. num3 = sub_14ED(22);
  1150. break;
  1151. case 5:
  1152. if (A_3 == null)
  1153. {
  1154. if (A_1 != null)
  1155. {
  1156. num3 = sub_132F(3);
  1157. }
  1158. else
  1159. {
  1160. num3 = sub_132F(2);
  1161. }
  1162. break;
  1163. }
  1164. if (A_1 == null)
  1165. {
  1166. num3 = sub_14ED(2);
  1167. break;
  1168. }
  1169. num3 = sub_14ED(3);
  1170. break;
  1171. }
  1172. return num3;
  1173. }
  1174.  
  1175. var sub_132F(var A_0)
  1176. {
  1177. var num3;
  1178. switch (A_0)
  1179. {
  1180. case 0:
  1181. num3 = "into_proposition_male";
  1182. break;
  1183. case 1:
  1184. num3 = "into_proposition_prostitute";
  1185. break;
  1186. case 2:
  1187. num3 = "proposition_loop_male";
  1188. break;
  1189. case 3:
  1190. num3 = "proposition_loop_prostitute";
  1191. break;
  1192. case 4:
  1193. num3 = "proposition_to_exit_male";
  1194. break;
  1195. case 5:
  1196. num3 = "prop_to_sit_alt_prostitute";
  1197. break;
  1198. case 6:
  1199. num3 = "prop_to_sit_male";
  1200. break;
  1201. case 7:
  1202. num3 = "prop_to_sit_prostitute";
  1203. break;
  1204. case 8:
  1205. num3 = "proposition_to_sex_p1_prostitute";
  1206. break;
  1207. case 9:
  1208. num3 = "proposition_to_sex_p2_prostitute";
  1209. break;
  1210. case 10:
  1211. num3 = "sex_loop_prostitute";
  1212. break;
  1213. case 11:
  1214. num3 = "sex_to_proposition_p1_prostitute";
  1215. break;
  1216. case 12:
  1217. num3 = "sex_to_proposition_p2_prostitute";
  1218. break;
  1219. case 13:
  1220. num3 = "proposition_to_sex_p1_male";
  1221. break;
  1222. case 14:
  1223. num3 = "proposition_to_sex_p2_male";
  1224. break;
  1225. case 15:
  1226. num3 = "sex_loop_male";
  1227. break;
  1228. case 16:
  1229. num3 = "sex_to_proposition_p1_male";
  1230. break;
  1231. case 17:
  1232. num3 = "sex_to_proposition_p2_male";
  1233. break;
  1234. case 18:
  1235. num3 = "proposition_to_BJ_p1_prostitute";
  1236. break;
  1237. case 19:
  1238. num3 = "proposition_to_BJ_p2_prostitute";
  1239. break;
  1240. case 20:
  1241. num3 = "BJ_loop_prostitute";
  1242. break;
  1243. case 21:
  1244. num3 = "BJ_to_proposition_p1_prostitute";
  1245. break;
  1246. case 22:
  1247. num3 = "BJ_to_proposition_p2_prostitute";
  1248. break;
  1249. case 23:
  1250. num3 = "proposition_to_BJ_p1_male";
  1251. break;
  1252. case 24:
  1253. num3 = "proposition_to_BJ_p2_male";
  1254. break;
  1255. case 25:
  1256. num3 = "BJ_loop_male";
  1257. break;
  1258. case 26:
  1259. num3 = "BJ_to_proposition_p1_male";
  1260. break;
  1261. case 27:
  1262. num3 = "BJ_to_proposition_p2_male";
  1263. break;
  1264. default:
  1265. num3 = "";
  1266. break;
  1267. }
  1268. return num3;
  1269. }
  1270.  
  1271. var sub_14ED(var A_0)
  1272. {
  1273. var num3;
  1274. switch (A_0)
  1275. {
  1276. case 0:
  1277. num3 = "low_car_sit_to_prop_player";
  1278. break;
  1279. case 1:
  1280. num3 = "low_car_sit_to_prop_female";
  1281. break;
  1282. case 2:
  1283. num3 = "low_car_prop_loop_player";
  1284. break;
  1285. case 3:
  1286. num3 = "low_car_prop_loop_female";
  1287. break;
  1288. case 4:
  1289. num3 = "low_car_prop_to_leave_player";
  1290. break;
  1291. case 5:
  1292. num3 = "low_car_prop_to_sit_alt_female";
  1293. break;
  1294. case 6:
  1295. num3 = "low_car_prop_to_sit_player";
  1296. break;
  1297. case 7:
  1298. num3 = "low_car_prop_to_sit_female";
  1299. break;
  1300. case 8:
  1301. num3 = "low_car_prop_to_sex_p1_female";
  1302. break;
  1303. case 9:
  1304. num3 = "low_car_prop_to_sex_p2_female";
  1305. break;
  1306. case 10:
  1307. num3 = "low_car_sex_loop_female";
  1308. break;
  1309. case 11:
  1310. num3 = "low_car_sex_to_prop_p1_female";
  1311. break;
  1312. case 12:
  1313. num3 = "low_car_sex_to_prop_p2_female";
  1314. break;
  1315. case 13:
  1316. num3 = "low_car_prop_to_sex_p1_player";
  1317. break;
  1318. case 14:
  1319. num3 = "low_car_prop_to_sex_p2_player";
  1320. break;
  1321. case 15:
  1322. num3 = "low_car_sex_loop_player";
  1323. break;
  1324. case 16:
  1325. num3 = "low_car_sex_to_prop_p1_player";
  1326. break;
  1327. case 17:
  1328. num3 = "low_car_sex_to_prop_p2_player";
  1329. break;
  1330. case 18:
  1331. num3 = "low_car_prop_to_bj_p1_female";
  1332. break;
  1333. case 19:
  1334. num3 = "low_car_prop_to_bj_p2_female";
  1335. break;
  1336. case 20:
  1337. num3 = "low_car_bj_loop_female";
  1338. break;
  1339. case 21:
  1340. num3 = "low_car_bj_to_prop_p1_female";
  1341. break;
  1342. case 22:
  1343. num3 = "low_car_bj_to_prop_p2_female";
  1344. break;
  1345. case 23:
  1346. num3 = "low_car_prop_to_bj_p1_player";
  1347. break;
  1348. case 24:
  1349. num3 = "low_car_prop_to_bj_p2_player";
  1350. break;
  1351. case 25:
  1352. num3 = "low_car_bj_loop_player";
  1353. break;
  1354. case 26:
  1355. num3 = "low_car_bj_to_prop_p1_player";
  1356. break;
  1357. case 27:
  1358. num3 = "low_car_bj_to_prop_p2_player";
  1359. break;
  1360. default:
  1361. num3 = "";
  1362. break;
  1363. }
  1364. return num3;
  1365. }
  1366.  
  1367. var sub_16AB(var A_0)
  1368. {
  1369. if (VEHICLE::IS_VEHICLE_DRIVEABLE(A_0, 0) != 0)
  1370. {
  1371. switch (VEHICLE::GET_VEHICLE_LAYOUT_HASH(A_0))
  1372. {
  1373. case 0x84D77E93:
  1374. case 0xFDB5DC9C:
  1375. case 0xD158A20D:
  1376. case 0x205A6F50:
  1377. case 0x4163EC9:
  1378. return 1;
  1379. }
  1380. }
  1381. return 0;
  1382. }
  1383.  
  1384. var sub_16EE()
  1385. {
  1386. return (l_328 == 0);
  1387. }
  1388.  
  1389. var sub_16FB(var A_0)
  1390. {
  1391. if ((ENTITY::IS_ENTITY_DEAD(A_0) == 0) && (PED::IS_PED_SITTING_IN_ANY_VEHICLE(A_0) != 0))
  1392. {
  1393. var num3 = PED::GET_VEHICLE_PED_IS_IN(A_0, 1);
  1394. if ((VEHICLE::IS_VEHICLE_DRIVEABLE(num3, 0) != 0) && (sub_16AB(num3) != 0))
  1395. {
  1396. return sub_1749();
  1397. }
  1398. }
  1399. return sub_173D();
  1400. }
  1401.  
  1402. var sub_173D()
  1403. {
  1404. return "mini@prostitutes@sexnorm_veh";
  1405. }
  1406.  
  1407. var sub_1749()
  1408. {
  1409. return "mini@prostitutes@sexlow_veh";
  1410. }
  1411.  
  1412. var sub_1755(var A_0)
  1413. {
  1414. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  1415. {
  1416. var num1 = PED::IS_PED_BEING_JACKED(A_0);
  1417. if ((num1 | (sub_1806(A_0, l_129, -1) == 0)) != 0)
  1418. {
  1419. var num3;
  1420. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  1421. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  1422. PED::SET_PED_FLEE_ATTRIBUTES(A_0, 0x30010, 1);
  1423. if (sub_17E5() != 0)
  1424. {
  1425. struct _s = &num3;
  1426. AI::TASK_SMART_FLEE_COORD(A_0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 250f, -1, 1, 1);
  1427. }
  1428. else if (ENTITY::IS_ENTITY_DEAD(PED::GET_PEDS_JACKER(A_0)) == 0)
  1429. {
  1430. AI::TASK_COMBAT_PED(A_0, PED::GET_PEDS_JACKER(A_0), 0, 16);
  1431. }
  1432. else
  1433. {
  1434. struct _s = &num3;
  1435. AI::TASK_SMART_FLEE_COORD(A_0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 250f, -1, 1, 1);
  1436. }
  1437. }
  1438. }
  1439. return 0;
  1440. }
  1441.  
  1442. var sub_17E5()
  1443. {
  1444. if (GAMEPLAY::IS_BIT_SET(GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 0xFFFF), 0) != 0)
  1445. {
  1446. return 1;
  1447. }
  1448. return 0;
  1449. }
  1450.  
  1451. var sub_1806(var A_0, var A_1, var A_2)
  1452. {
  1453. bool flag1 = ENTITY::IS_ENTITY_DEAD(A_0) == 0;
  1454. if (((flag1 & (ENTITY::IS_ENTITY_DEAD(A_1) == 0)) && (PED::IS_PED_SITTING_IN_VEHICLE(A_0, A_1) != 0)) && (VEHICLE::GET_PED_IN_VEHICLE_SEAT(A_1, A_2) == A_0))
  1455. {
  1456. return 1;
  1457. }
  1458. return 0;
  1459. }
  1460.  
  1461. var sub_1841(var A_0)
  1462. {
  1463. var num3;
  1464. var num6;
  1465. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  1466. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  1467. struct _s = &l_121;
  1468. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  1469. if (A_0 == 0)
  1470. {
  1471. if (num3 < num6)
  1472. {
  1473. return (num3 - 20f);
  1474. }
  1475. return (num6 - 20f);
  1476. }
  1477. if (A_0 == 1)
  1478. {
  1479. if (rPtr((&num3) + 1) < rPtr((&num6) + 1))
  1480. {
  1481. return (rPtr((&num3) + 1) - 20f);
  1482. }
  1483. return (rPtr((&num6) + 1) - 20f);
  1484. }
  1485. if (A_0 == 2)
  1486. {
  1487. if (num3 > num6)
  1488. {
  1489. return (num3 + 20f);
  1490. }
  1491. return (num6 + 20f);
  1492. }
  1493. if (rPtr((&num3) + 1) > rPtr((&num6) + 1))
  1494. {
  1495. return (rPtr((&num3) + 1) + 20f);
  1496. }
  1497. return (rPtr((&num6) + 1) + 20f);
  1498. }
  1499.  
  1500. void sub_1908()
  1501. {
  1502. if (PED::IS_PED_INJURED(l_128) == 0)
  1503. {
  1504. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)
  1505. {
  1506. if (PED::IS_PED_IN_VEHICLE(l_128, l_129, 0) != 0)
  1507. {
  1508. if (((AI::GET_SCRIPT_TASK_STATUS(l_127, 0xE763797) == 1) && (AI::GET_SEQUENCE_PROGRESS(l_127) > 0)) && (PED::IS_PED_IN_VEHICLE(l_127, l_129, 0) != 0))
  1509. {
  1510. sub_F6C6("prostitute WAITING TO END - DRIVING OFF (WANDER)");
  1511. AI::OPEN_SEQUENCE_TASK(&l_132);
  1512. AI::TASK_VEHICLE_DRIVE_WANDER(0, l_129, 10f, 0xC00AB);
  1513. AI::CLOSE_SEQUENCE_TASK(l_132);
  1514. AI::TASK_PERFORM_SEQUENCE(l_128, l_132);
  1515. AI::CLEAR_SEQUENCE_TASK(&l_132);
  1516. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  1517. struct _s = sub_19D7(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  1518. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_121);
  1519. STREAMING::REQUEST_ANIM_DICT(sub_16FB(l_127));
  1520. l_326 = 7;
  1521. l_97 = GAMEPLAY::GET_GAME_TIMER();
  1522. }
  1523. }
  1524. else
  1525. {
  1526. sub_F6C6("EXIT - OTHER OUT OF THE VEHICLE");
  1527. sub_2CEB();
  1528. }
  1529. }
  1530. else
  1531. {
  1532. sub_F6C6("EXIT - OTHER VEHICLE DEAD");
  1533. sub_2CEB();
  1534. }
  1535. }
  1536. else
  1537. {
  1538. sub_F6C6("EXIT - OTHER ped INJURED");
  1539. sub_2CEB();
  1540. }
  1541. }
  1542.  
  1543. var sub_19D7(var A_0, var A_1, var A_2)
  1544. {
  1545. var num3 = 0;
  1546. var num4 = 0;
  1547. while (true)
  1548. {
  1549. if (num4 >= 32)
  1550. {
  1551. break;
  1552. }
  1553. struct _s = &A_0;
  1554. struct _s = sub_1A1F(num4);
  1555. struct _s = &A_0;
  1556. struct _s = sub_1A1F(num3);
  1557. if (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) < SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)))
  1558. {
  1559. num3 = num4;
  1560. }
  1561. num4++;
  1562. }
  1563. struct _s = sub_1A1F(num3);
  1564. return buildStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  1565. }
  1566.  
  1567. var sub_1A1F(var A_0)
  1568. {
  1569. var num3;
  1570. switch (A_0)
  1571. {
  1572. case 0:
  1573. setStruct(-1449.075f, -634.0139f, 29.094f, 3, &num3);
  1574. break;
  1575. case 1:
  1576. setStruct(-1266.291f, -1361.175f, 3.222f, 3, &num3);
  1577. break;
  1578. case 2:
  1579. setStruct(-227.0429f, 311.6679f, 91.1655f, 3, &num3);
  1580. break;
  1581. case 3:
  1582. setStruct(-1310.978f, -235.9881f, 41.1789f, 3, &num3);
  1583. break;
  1584. case 4:
  1585. setStruct(-545.299f, -874.6625f, 26.1981f, 3, &num3);
  1586. break;
  1587. case 5:
  1588. setStruct(-192.1116f, -1332.385f, 30.3304f, 3, &num3);
  1589. break;
  1590. case 6:
  1591. setStruct(196.6188f, -1850.396f, 26.2005f, 3, &num3);
  1592. break;
  1593. case 7:
  1594. setStruct(322.9744f, -1000.23f, 28.2401f, 3, &num3);
  1595. break;
  1596. case 8:
  1597. setStruct(38.824f, -98.3984f, 55.2507f, 3, &num3);
  1598. break;
  1599. case 9:
  1600. setStruct(-1800.76f, -404.1213f, 43.8109f, 3, &num3);
  1601. break;
  1602. case 10:
  1603. setStruct(1421.334f, -1618.83f, 58.3324f, 3, &num3);
  1604. break;
  1605. case 11:
  1606. setStruct(983.5914f, -2360.14f, 29.5098f, 3, &num3);
  1607. break;
  1608. case 12:
  1609. setStruct(97.9046f, -2501.28f, 5.0001f, 3, &num3);
  1610. break;
  1611. case 13:
  1612. setStruct(1591.921f, 6516.841f, 16.3155f, 3, &num3);
  1613. break;
  1614. case 14:
  1615. setStruct(1278.73f, 3624.059f, 32.0408f, 3, &num3);
  1616. break;
  1617. case 15:
  1618. setStruct(2464.667f, 5526.815f, 44.2143f, 3, &num3);
  1619. break;
  1620. case 16:
  1621. setStruct(2052.58f, 4637.477f, 39.642f, 3, &num3);
  1622. break;
  1623. case 17:
  1624. setStruct(1435.608f, 4483.951f, 49.2513f, 3, &num3);
  1625. break;
  1626. case 18:
  1627. setStruct(218.214f, 4439.288f, 66.9056f, 3, &num3);
  1628. break;
  1629. case 19:
  1630. setStruct(16.9496f, 3632.35f, 39.2848f, 3, &num3);
  1631. break;
  1632. case 20:
  1633. setStruct(2.0464f, 3293.74f, 40.2594f, 3, &num3);
  1634. break;
  1635. case 21:
  1636. setStruct(-1195.701f, 2639.13f, 15.1653f, 3, &num3);
  1637. break;
  1638. case 22:
  1639. setStruct(-1663.641f, 2477.778f, 30.9941f, 3, &num3);
  1640. break;
  1641. case 23:
  1642. setStruct(-2505.643f, 3677.825f, 12.1719f, 3, &num3);
  1643. break;
  1644. case 24:
  1645. setStruct(-2179.209f, 4264.236f, 47.9904f, 3, &num3);
  1646. break;
  1647. case 25:
  1648. setStruct(-758.9616f, 5612.78f, 29.4536f, 3, &num3);
  1649. break;
  1650. case 26:
  1651. setStruct(-276.8032f, 6327.188f, 31.4262f, 3, &num3);
  1652. break;
  1653. case 27:
  1654. setStruct(1483.839f, 6366.199f, 22.6875f, 3, &num3);
  1655. break;
  1656. case 28:
  1657. setStruct(949.013f, 3551.753f, 32.9687f, 3, &num3);
  1658. break;
  1659. case 29:
  1660. setStruct(180.9372f, 3051.781f, 42.1131f, 3, &num3);
  1661. break;
  1662. case 30:
  1663. setStruct(-462.9046f, 6115.419f, 28.8805f, 3, &num3);
  1664. break;
  1665. case 31:
  1666. setStruct(-256.3564f, 6056.516f, 30.9808f, 3, &num3);
  1667. break;
  1668. }
  1669. struct _s = &num3;
  1670. return buildStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  1671. }
  1672.  
  1673. void sub_1DB2()
  1674. {
  1675. if (PED::IS_PED_INJURED(l_128) == 0)
  1676. {
  1677. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)
  1678. {
  1679. if (PED::IS_PED_IN_VEHICLE(l_128, l_129, 0) != 0)
  1680. {
  1681. var num3 = ENTITY::GET_ENTITY_SPEED(l_129);
  1682. var num1 = ENTITY::IS_ENTITY_AT_ENTITY(l_128, l_127, 15f, 15f, 5f, 0, 1, 0);
  1683. if ((num1 & (num3 <= 1f)) != 0)
  1684. {
  1685. sub_2295(l_127);
  1686. l_98 = GAMEPLAY::GET_GAME_TIMER();
  1687. l_99 = l_98 - l_97;
  1688. if (l_99 >= l_101)
  1689. {
  1690. if (sub_10B44() != 0)
  1691. {
  1692. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_128) != 0)
  1693. {
  1694. AI::TASK_CLEAR_LOOK_AT(l_128);
  1695. }
  1696. }
  1697. else
  1698. {
  1699. AI::TASK_CLEAR_LOOK_AT(l_128);
  1700. }
  1701. l_101 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 10000);
  1702. if (l_101 > 2500)
  1703. {
  1704. AI::CLEAR_PED_TASKS(l_127);
  1705. AI::CLEAR_SEQUENCE_TASK(&l_132);
  1706. AI::OPEN_SEQUENCE_TASK(&l_132);
  1707. AI::TASK_ENTER_VEHICLE(0, l_129, -1, 0, 1f, 0x800001, 0);
  1708. AI::TASK_STAND_STILL(0, -1);
  1709. AI::CLOSE_SEQUENCE_TASK(l_132);
  1710. AI::TASK_PERFORM_SEQUENCE(l_127, l_132);
  1711. AI::CLEAR_SEQUENCE_TASK(&l_132);
  1712. sub_F6C6("other GIVES MONEY");
  1713. l_326 = 5;
  1714. }
  1715. else
  1716. {
  1717. sub_2250();
  1718. sub_1FA3();
  1719. if (((PED::IS_PED_INJURED(l_128) == 0) && (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)) && (PED::IS_PED_IN_VEHICLE(l_128, l_129, 0) != 0))
  1720. {
  1721. AI::CLEAR_SEQUENCE_TASK(&l_132);
  1722. AI::OPEN_SEQUENCE_TASK(&l_132);
  1723. AI::TASK_STAND_STILL(0, GAMEPLAY::GET_RANDOM_INT_IN_RANGE(500, 2000));
  1724. AI::TASK_VEHICLE_DRIVE_WANDER(0, l_129, 10f, 0xC00AB);
  1725. AI::CLOSE_SEQUENCE_TASK(l_132);
  1726. AI::TASK_PERFORM_SEQUENCE(l_128, l_132);
  1727. AI::CLEAR_SEQUENCE_TASK(&l_132);
  1728. l_97 = GAMEPLAY::GET_GAME_TIMER();
  1729. }
  1730. sub_F6C6("prostitute REFUSED MONEY 2");
  1731. if (sub_10B44() != 0)
  1732. {
  1733. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_128) != 0)
  1734. {
  1735. AI::TASK_CLEAR_LOOK_AT(l_128);
  1736. }
  1737. }
  1738. else
  1739. {
  1740. AI::TASK_CLEAR_LOOK_AT(l_128);
  1741. }
  1742. l_326 = 6;
  1743. }
  1744. }
  1745. }
  1746. else
  1747. {
  1748. if (sub_10B44() != 0)
  1749. {
  1750. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_128) != 0)
  1751. {
  1752. AI::TASK_CLEAR_LOOK_AT(l_128);
  1753. }
  1754. }
  1755. else
  1756. {
  1757. AI::TASK_CLEAR_LOOK_AT(l_128);
  1758. }
  1759. sub_2CEB();
  1760. }
  1761. }
  1762. else
  1763. {
  1764. sub_F6C6("EXIT - OTHER OUT OF THE VEHICLE");
  1765. if (sub_10B44() != 0)
  1766. {
  1767. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_128) != 0)
  1768. {
  1769. AI::TASK_CLEAR_LOOK_AT(l_128);
  1770. }
  1771. }
  1772. else
  1773. {
  1774. AI::TASK_CLEAR_LOOK_AT(l_128);
  1775. }
  1776. sub_2CEB();
  1777. }
  1778. }
  1779. else
  1780. {
  1781. sub_F6C6("EXIT - OTHER VEHICLE DEAD");
  1782. sub_2CEB();
  1783. }
  1784. }
  1785. else
  1786. {
  1787. sub_F6C6("EXIT - OTHER ped INJURED");
  1788. sub_2CEB();
  1789. }
  1790. }
  1791.  
  1792. void sub_1FA3()
  1793. {
  1794. bool flag1 = ENTITY::DOES_ENTITY_EXIST(l_127) == 0;
  1795. if (!(flag1 | PED::IS_PED_INJURED(l_127)))
  1796. {
  1797. if (PED::IS_PED_IN_ANY_VEHICLE(l_127, 1) != 0)
  1798. {
  1799. AI::TASK_WANDER_STANDARD(l_127, 0x471C4000, 0);
  1800. }
  1801. else if (sub_F6B7(l_85, 0x400000) != 0)
  1802. {
  1803. var num3;
  1804. AI::OPEN_SEQUENCE_TASK(&num3);
  1805. if (sub_F6B7(l_108, 0x80000) != 0)
  1806. {
  1807. AI::TASK_PLAY_ANIM(0, sub_21FD(l_324), sub_212A(7), 8f, -1.5f, -1, 0, 0, 0, 0, 0);
  1808. }
  1809. sub_2049(1);
  1810. AI::CLOSE_SEQUENCE_TASK(num3);
  1811. AI::TASK_PERFORM_SEQUENCE(l_127, num3);
  1812. AI::CLEAR_SEQUENCE_TASK(&num3);
  1813. sub_F4AD(&l_85, 16384);
  1814. sub_E7E(&l_144);
  1815. }
  1816. }
  1817. }
  1818.  
  1819. void sub_2049(var A_0)
  1820. {
  1821. var num1 = AI::0x9BE9C691(l_127);
  1822. var num10 = num1 | AI::IS_PED_ACTIVE_IN_SCENARIO(l_127);
  1823. var num11 = num10 | PED::IS_PED_USING_SCENARIO(l_127, sub_2110(0));
  1824. if ((num11 | PED::IS_PED_USING_SCENARIO(l_127, sub_2110(1))) == 0)
  1825. {
  1826. var num3;
  1827. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  1828. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  1829. struct _s = &num3;
  1830. bool flag1 = AI::0x0FB138A5(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), sub_2110(0), 20f, 1) == 0;
  1831. if (flag1)
  1832. {
  1833. struct _s = &num3;
  1834. }
  1835. if (flag1 & (AI::0x0FB138A5(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), sub_2110(1), 20f, 1) == 0))
  1836. {
  1837. if (A_0 != null)
  1838. {
  1839. AI::TASK_WANDER_STANDARD(0, 0x471C4000, 0);
  1840. }
  1841. else
  1842. {
  1843. AI::TASK_WANDER_STANDARD(l_127, 0x471C4000, 0);
  1844. }
  1845. }
  1846. else if (A_0 == 0)
  1847. {
  1848. struct _s = &num3;
  1849. AI::TASK_USE_NEAREST_SCENARIO_TO_COORD(l_127, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 20f, 0);
  1850. }
  1851. else
  1852. {
  1853. struct _s = &num3;
  1854. AI::TASK_USE_NEAREST_SCENARIO_TO_COORD(0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 20f, 0);
  1855. }
  1856. }
  1857. }
  1858.  
  1859. var sub_2110(var A_0)
  1860. {
  1861. if (A_0 == 0)
  1862. {
  1863. return "WORLD_HUMAN_PROSTITUTE_LOW_CLASS";
  1864. }
  1865. return "WORLD_HUMAN_PROSTITUTE_HIGH_CLASS";
  1866. }
  1867.  
  1868. var sub_212A(var A_0)
  1869. {
  1870. switch ((A_0))
  1871. {
  1872. case 0:
  1873. return "idle_intro";
  1874. case 1:
  1875. return "idle_a";
  1876. case 2:
  1877. return "idle_b";
  1878. case 3:
  1879. return "idle_c";
  1880. case 4:
  1881. return "idle_wait";
  1882. case 5:
  1883. return "idle_reject";
  1884. case 8:
  1885. return "idle_reject_loop_a";
  1886. case 9:
  1887. return "idle_reject_loop_b";
  1888. case 10:
  1889. return "idle_reject_loop_c";
  1890. case 11:
  1891. return "idle_outro";
  1892. case 6:
  1893. return "reject_2_idle";
  1894. case 7:
  1895. return "reject_outro";
  1896. }
  1897. return "";
  1898. }
  1899.  
  1900. var sub_21FD(var A_0)
  1901. {
  1902. var num3;
  1903. switch ((A_0))
  1904. {
  1905. case 0:
  1906. num3 = "mini@hookers_spcrackhead";
  1907. break;
  1908. case 1:
  1909. num3 = "mini@hookers_spcokehead";
  1910. break;
  1911. case 3:
  1912. case 4:
  1913. num3 = "mini@hookers_spfrench";
  1914. break;
  1915. default:
  1916. num3 = "mini@hookers_spvanilla";
  1917. break;
  1918. }
  1919. return num3;
  1920. }
  1921.  
  1922. void sub_2250()
  1923. {
  1924. if ((PED::IS_PED_INJURED(l_127) == 0) && (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0))
  1925. {
  1926. if (sub_B25() == 2)
  1927. {
  1928. AUDIO::0x5C57B85D(l_127, "HOOKER_DECLINED_TREVOR", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  1929. }
  1930. else
  1931. {
  1932. AUDIO::0x5C57B85D(l_127, "HOOKER_DECLINED", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  1933. }
  1934. }
  1935. }
  1936.  
  1937. void sub_2295(var A_0)
  1938. {
  1939. if ((PED::IS_PED_INJURED(A_0) == 0) && (sub_22B9(A_0) != 0))
  1940. {
  1941. PED::SET_PED_RESET_FLAG(A_0, 109, 1);
  1942. }
  1943. }
  1944.  
  1945. var sub_22B9(var A_0)
  1946. {
  1947. if (PED::IS_PED_INJURED(A_0) == 0)
  1948. {
  1949. var num1 = ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_21FD(l_324), sub_212A(1), 3);
  1950. var num7 = num1 | ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_21FD(l_324), sub_212A(2), 3);
  1951. if ((num7 | ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_21FD(l_324), sub_212A(3), 3)) != 0)
  1952. {
  1953. return 1;
  1954. }
  1955. }
  1956. return 0;
  1957. }
  1958.  
  1959. void sub_2318()
  1960. {
  1961. if (PED::IS_PED_INJURED(l_128) == 0)
  1962. {
  1963. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)
  1964. {
  1965. if (PED::IS_PED_IN_VEHICLE(l_128, l_129, 0) != 0)
  1966. {
  1967. if ((AI::GET_SCRIPT_TASK_STATUS(l_127, 0xE763797) == 1) && (AI::GET_SEQUENCE_PROGRESS(l_127) > 1))
  1968. {
  1969. if (ENTITY::IS_ENTITY_AT_ENTITY(l_127, l_128, 20f, 20f, 10f, 0, 1, 0) != 0)
  1970. {
  1971. if (ENTITY::GET_ENTITY_SPEED(l_129) <= 1f)
  1972. {
  1973. sub_23E4(0);
  1974. l_97 = GAMEPLAY::GET_GAME_TIMER();
  1975. l_101 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(4000, 8000);
  1976. sub_F6C6("prostitute proposition other in VEHICLE VEHICLE");
  1977. l_326 = 4;
  1978. }
  1979. }
  1980. else
  1981. {
  1982. sub_F6C6("EXIT - OTHER IN VEHICLE OUT OF RANGE");
  1983. sub_2CEB();
  1984. }
  1985. }
  1986. }
  1987. else
  1988. {
  1989. sub_F6C6("EXIT - OTHER OUT OF THE VEHICLE");
  1990. sub_2CEB();
  1991. }
  1992. }
  1993. else
  1994. {
  1995. sub_F6C6("EXIT - OTHER VEHICLE DEAD");
  1996. sub_2CEB();
  1997. }
  1998. }
  1999. else
  2000. {
  2001. sub_F6C6("EXIT - OTHER ped INJURED");
  2002. sub_2CEB();
  2003. }
  2004. }
  2005.  
  2006. void sub_23E4(var A_0)
  2007. {
  2008. if (A_0 != null)
  2009. {
  2010. AUDIO::0x2BC93264(l_127, "PROSTITUTE_GROUP", 0);
  2011. sub_27A1("PROSTITUTES_SOLICIT_SCENE");
  2012. }
  2013. sub_248F();
  2014. if (sub_F6B7(l_85, 0x400000) != 0)
  2015. {
  2016. var num3;
  2017. var num4 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(1, 4);
  2018. AI::OPEN_SEQUENCE_TASK(&num3);
  2019. AI::TASK_PLAY_ANIM(0, sub_21FD(l_324), sub_212A(0), 2f, -2f, -1, 0, 0, 0, 0, 0);
  2020. AI::TASK_PLAY_ANIM(0, sub_21FD(l_324), sub_212A(num4), 2f, -2f, -1, 0, 0, 0, 0, 0);
  2021. AI::TASK_PLAY_ANIM(0, sub_21FD(l_324), sub_212A(4), 2f, -2f, -1, 1, 0, 0, 0, 0);
  2022. AI::CLOSE_SEQUENCE_TASK(num3);
  2023. AI::TASK_PERFORM_SEQUENCE(l_127, num3);
  2024. AI::CLEAR_SEQUENCE_TASK(&num3);
  2025. }
  2026. }
  2027.  
  2028. void sub_248F()
  2029. {
  2030. if ((PED::IS_PED_INJURED(l_127) == 0) && (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0))
  2031. {
  2032. switch (sub_B25())
  2033. {
  2034. case 0:
  2035. if (sub_254C(l_127) != 0)
  2036. {
  2037. AUDIO::0x5C57B85D(l_127, "SOLICIT_MICHAEL_RETURN", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2038. break;
  2039. }
  2040. AUDIO::0x5C57B85D(l_127, "SOLICIT_MICHAEL", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2041. break;
  2042. case 1:
  2043. if (sub_254C(l_127) != 0)
  2044. {
  2045. AUDIO::0x5C57B85D(l_127, "SOLICIT_FRANKLIN_RETURN", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2046. break;
  2047. }
  2048. AUDIO::0x5C57B85D(l_127, "SOLICIT_FRANKLIN", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2049. break;
  2050. case 2:
  2051. if (sub_254C(l_127) != 0)
  2052. {
  2053. AUDIO::0x5C57B85D(l_127, "SOLICIT_TREVOR_RETURN", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2054. break;
  2055. }
  2056. AUDIO::0x5C57B85D(l_127, "SOLICIT_TREVOR", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2057. break;
  2058. }
  2059. }
  2060. }
  2061.  
  2062. var sub_254C(var A_0)
  2063. {
  2064. return sub_2562(sub_25E4(A_0));
  2065. }
  2066.  
  2067. var sub_2562(var A_0)
  2068. {
  2069. if (sub_2579(A_0) > 0)
  2070. {
  2071. return 1;
  2072. }
  2073. return 0;
  2074. }
  2075.  
  2076. var sub_2579(var A_0)
  2077. {
  2078. var num3 = 0;
  2079. if (A_0 == -1)
  2080. {
  2081. return 0;
  2082. }
  2083. if (sub_B25() == 0)
  2084. {
  2085. num3 = getElem(0, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4);
  2086. }
  2087. else if (sub_B25() == 1)
  2088. {
  2089. num3 = getElem(1, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4);
  2090. }
  2091. else if (sub_B25() == 2)
  2092. {
  2093. num3 = getElem(2, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4);
  2094. }
  2095. return num3;
  2096. }
  2097.  
  2098. var sub_25E4(var A_0)
  2099. {
  2100. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  2101. {
  2102. for (var i = 0; i < 8; i++)
  2103. {
  2104. if (sub_2579(i) > 0)
  2105. {
  2106. var num1 = sub_2702(A_0, i);
  2107. var num8 = num1 & sub_2663(A_0, i);
  2108. if ((num8 & sub_263E(A_0, i)) != 0)
  2109. {
  2110. return i;
  2111. }
  2112. }
  2113. }
  2114. }
  2115. return -1;
  2116. }
  2117.  
  2118. var sub_263E(var A_0, var A_1)
  2119. {
  2120. if (PED::IS_PED_MODEL(A_0, rPtr(getElemPtr(A_1, ((&g_86838) + 7661) + 1, 44) + 40)) != 0)
  2121. {
  2122. return 1;
  2123. }
  2124. return 0;
  2125. }
  2126.  
  2127. var sub_2663(var A_0, var A_1)
  2128. {
  2129. for (var i = 0; i < 2; i++)
  2130. {
  2131. if (sub_2690(A_0, A_1, i) == 0)
  2132. {
  2133. return 0;
  2134. }
  2135. }
  2136. return 1;
  2137. }
  2138.  
  2139. var sub_2690(var A_0, var A_1, var A_2)
  2140. {
  2141. var num3 = sub_26D9(A_2);
  2142. return (PED::GET_PED_TEXTURE_VARIATION(A_0, num3) == sub_26B1(A_1, A_2));
  2143. }
  2144.  
  2145. var sub_26B1(var A_0, var A_1)
  2146. {
  2147. if (sub_2562(A_0) != 0)
  2148. {
  2149. return getElem(A_1, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44) + 28, 4);
  2150. }
  2151. return -1;
  2152. }
  2153.  
  2154. var sub_26D9(var A_0)
  2155. {
  2156. var num3;
  2157. switch (A_0)
  2158. {
  2159. case 0:
  2160. num3 = 0;
  2161. break;
  2162. case 1:
  2163. num3 = 2;
  2164. break;
  2165. }
  2166. return num3;
  2167. }
  2168.  
  2169. var sub_2702(var A_0, var A_1)
  2170. {
  2171. for (var i = 0; i < 2; i++)
  2172. {
  2173. if (sub_272F(A_0, A_1, i) == 0)
  2174. {
  2175. return 0;
  2176. }
  2177. }
  2178. return 1;
  2179. }
  2180.  
  2181. var sub_272F(var A_0, var A_1, var A_2)
  2182. {
  2183. var num3 = sub_2778(A_2);
  2184. return (PED::GET_PED_DRAWABLE_VARIATION(A_0, num3) == sub_2750(A_1, A_2));
  2185. }
  2186.  
  2187. var sub_2750(var A_0, var A_1)
  2188. {
  2189. if (sub_2562(A_0) != 0)
  2190. {
  2191. return getElem(A_1, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44) + 16, 4);
  2192. }
  2193. return -1;
  2194. }
  2195.  
  2196. var sub_2778(var A_0)
  2197. {
  2198. var num3;
  2199. switch (A_0)
  2200. {
  2201. case 0:
  2202. num3 = 0;
  2203. break;
  2204. case 1:
  2205. num3 = 2;
  2206. break;
  2207. }
  2208. return num3;
  2209. }
  2210.  
  2211. void sub_27A1(var A_0)
  2212. {
  2213. if (AUDIO::IS_AUDIO_SCENE_ACTIVE(A_0) == 0)
  2214. {
  2215. AUDIO::START_AUDIO_SCENE(A_0);
  2216. }
  2217. }
  2218.  
  2219. void sub_27BA()
  2220. {
  2221. if (PED::IS_PED_INJURED(l_128) == 0)
  2222. {
  2223. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)
  2224. {
  2225. if (PED::IS_PED_IN_VEHICLE(l_128, l_129, 0) != 0)
  2226. {
  2227. var num3 = ENTITY::GET_ENTITY_SPEED(l_129);
  2228. bool flag1 = AI::GET_SCRIPT_TASK_STATUS(l_128, 0xEFC8537E) == 7;
  2229. if (flag1 | (num3 <= 1f))
  2230. {
  2231. var num4;
  2232. var num7;
  2233. var num10;
  2234. var num13;
  2235. var num16;
  2236. var num19;
  2237. GAMEPLAY::GET_MODEL_DIMENSIONS(ENTITY::GET_ENTITY_MODEL(l_129), &num7, &num4);
  2238. struct _s = &num4;
  2239. struct _s = &num7;
  2240. struct _s = vsub(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  2241. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num10);
  2242. struct _s = &num10;
  2243. struct _s = ftov(2f);
  2244. struct _s = vdiv(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  2245. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num10);
  2246. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_129, 0.2f, 0.2f, 0f);
  2247. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num13);
  2248. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_129, 0.2f, 0.2f, 0f);
  2249. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num16);
  2250. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  2251. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num19);
  2252. struct _s = &num19;
  2253. struct _s = &num16;
  2254. struct _s = &num19;
  2255. struct _s = &num13;
  2256. if (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) < SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)))
  2257. {
  2258. struct _s = &num16;
  2259. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num13);
  2260. }
  2261. AI::OPEN_SEQUENCE_TASK(&l_132);
  2262. var i25 = rPtr((&num13) + 1);
  2263. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(0, num13, i25, rPtr((&num13) + 2), 1f, -1, 0.5f, 8192, 0x471C4000);
  2264. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, l_128, 0);
  2265. AI::TASK_STAND_STILL(0, -1);
  2266. AI::CLOSE_SEQUENCE_TASK(l_132);
  2267. AI::TASK_PERFORM_SEQUENCE(l_127, l_132);
  2268. AI::CLEAR_SEQUENCE_TASK(&l_132);
  2269. sub_F6C6("prostitute ASKING OTHER FOR MONEY BY VEHICLE");
  2270. l_326 = 3;
  2271. }
  2272. else
  2273. {
  2274. sub_F6C6("WAITING FOR CUTSTOMER FINSIH TASK OR STOP");
  2275. }
  2276. }
  2277. else
  2278. {
  2279. sub_F6C6("EXIT - OTHER OUT OF VEHICLE");
  2280. sub_2CEB();
  2281. }
  2282. }
  2283. else
  2284. {
  2285. sub_F6C6("EXIT - OTHER VEHICLE DEAD");
  2286. sub_2CEB();
  2287. }
  2288. }
  2289. else
  2290. {
  2291. sub_F6C6("EXIT - OTHER ped INJURED");
  2292. sub_2CEB();
  2293. }
  2294. }
  2295.  
  2296. void sub_290D()
  2297. {
  2298. if (PED::IS_PED_INJURED(l_128) == 0)
  2299. {
  2300. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)
  2301. {
  2302. if (PED::IS_PED_IN_VEHICLE(l_128, l_129, 0) != 0)
  2303. {
  2304. if (sub_2A44(&l_129) != 0)
  2305. {
  2306. struct _s = ENTITY::GET_ENTITY_COORDS(l_128, 1);
  2307. if (sub_2A02(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0x41F00000) == 0)
  2308. {
  2309. var num3;
  2310. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  2311. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  2312. struct _s = &num3;
  2313. if (PATHFIND::GET_CLOSEST_VEHICLE_NODE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), &num3, 8, 0x40400000, 0) != 0)
  2314. {
  2315. PED::SET_DRIVER_ABILITY(l_128, 1f);
  2316. PED::0x6D55B3B3(l_128, 0.2f);
  2317. PED::SET_DRIVER_AGGRESSIVENESS(l_128, 0.05f);
  2318. struct _s = &num3;
  2319. AI::TASK_VEHICLE_PARK(l_128, l_129, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0f, 3, 360f, 1);
  2320. AI::TASK_LOOK_AT_ENTITY(l_128, l_127, -1, 2048, 4);
  2321. sub_F6C6("OTHER TOLD TO PULL OVER");
  2322. l_326 = 2;
  2323. }
  2324. }
  2325. }
  2326. else
  2327. {
  2328. sub_F6C6("EXIT - Vehicle is not suitable");
  2329. sub_2CDE(15);
  2330. }
  2331. }
  2332. else
  2333. {
  2334. sub_F6C6("EXIT - OTHER OUT OF THE VEHICLE");
  2335. sub_2CDE(15);
  2336. }
  2337. }
  2338. else
  2339. {
  2340. sub_F6C6("EXIT - OTHER VEHICLE DEAD");
  2341. sub_2CDE(15);
  2342. }
  2343. }
  2344. else
  2345. {
  2346. sub_F6C6("EXIT - OTHER ped INJURED");
  2347. sub_2CDE(15);
  2348. }
  2349. }
  2350.  
  2351. var sub_2A02(var A_0, var A_1, var A_2, var A_3)
  2352. {
  2353. struct _s = &A_0;
  2354. struct _s = vsub(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_3, A_3, A_3);
  2355. struct _s = &A_0;
  2356. struct _s = vadd(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_3, A_3, A_3);
  2357. var num1 = VEHICLE::IS_COP_VEHICLE_IN_AREA_3D(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  2358. if (num1 == 0)
  2359. {
  2360. struct _s = &A_0;
  2361. struct _s = vsub(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_3, A_3, A_3);
  2362. struct _s = &A_0;
  2363. struct _s = vadd(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_3, A_3, A_3);
  2364. }
  2365. return (num1 | PED::IS_COP_PED_IN_AREA_3D(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)));
  2366. }
  2367.  
  2368. var sub_2A44(var A_0)
  2369. {
  2370. if (VEHICLE::IS_VEHICLE_DRIVEABLE(rPtr(A_0), 0) != 0)
  2371. {
  2372. var num1 = sub_2BE8(ENTITY::GET_ENTITY_MODEL(rPtr(A_0)), 0);
  2373. if (((num1 & sub_2B5D(rPtr(A_0))) != 0) && (VEHICLE::GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(rPtr(A_0)) > 0))
  2374. {
  2375. bool flag3;
  2376. bool flag1 = VEHICLE::GET_VEHICLE_NUMBER_OF_PASSENGERS(rPtr(A_0)) == 0;
  2377. bool flag2 = flag1 & VEHICLE::IS_VEHICLE_SEAT_FREE(rPtr(A_0), 0);
  2378. if (flag2)
  2379. {
  2380. flag3 = VEHICLE::IS_VEHICLE_DOOR_DAMAGED(rPtr(A_0), 1) == 0;
  2381. }
  2382. bool flag4 = flag2 & (flag3 & (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(rPtr(A_0), 0) == 0));
  2383. if (flag4 | (VEHICLE::GET_PED_IN_VEHICLE_SEAT(rPtr(A_0), 0) == l_127))
  2384. {
  2385. if (sub_16AB(rPtr(A_0)) != 0)
  2386. {
  2387. if (sub_F6B7(l_85, 32768) == 0)
  2388. {
  2389. sub_F4AD(&l_85, 32768);
  2390. if (sub_F6B7(l_85, 8) == 0)
  2391. {
  2392. STREAMING::REQUEST_CLIP_SET(sub_2B51());
  2393. sub_F4AD(&l_85, 8);
  2394. }
  2395. }
  2396. }
  2397. else
  2398. {
  2399. if (sub_F6B7(l_85, 32768) != 0)
  2400. {
  2401. sub_5B4(&l_85, 32768);
  2402. }
  2403. if ((sub_F6B7(l_85, 8) != 0) && (STREAMING::HAS_CLIP_SET_LOADED(sub_2B51()) != 0))
  2404. {
  2405. STREAMING::REMOVE_CLIP_SET(sub_2B51());
  2406. sub_5B4(&l_85, 8);
  2407. }
  2408. }
  2409. return 1;
  2410. }
  2411. }
  2412. }
  2413. return 0;
  2414. }
  2415.  
  2416. var sub_2B51()
  2417. {
  2418. return "clipset@veh@low@ps@female@base";
  2419. }
  2420.  
  2421. var sub_2B5D(var A_0)
  2422. {
  2423. if (VEHICLE::IS_VEHICLE_DRIVEABLE(A_0, 0) != 0)
  2424. {
  2425. switch (VEHICLE::GET_VEHICLE_LAYOUT_HASH(A_0))
  2426. {
  2427. case 0x84D77E93:
  2428. case 0xD158A20D:
  2429. case 0x205A6F50:
  2430. case 0x4163EC9:
  2431. case 0x589D7B2F:
  2432. case 0x8DB2A5D9:
  2433. case 0xAC3C0E50:
  2434. case 0xF69542B7:
  2435. case 0xEF4E5E35:
  2436. case 0x65FA4F90:
  2437. case 0x19E59D55:
  2438. case 0x6C40A6DC:
  2439. case 0x36CE3DC4:
  2440. case 0x3854C58D:
  2441. case 0x5128863:
  2442. case 0x73950148:
  2443. case 0x6F727ECC:
  2444. return 1;
  2445. }
  2446. }
  2447. return 0;
  2448. }
  2449.  
  2450. var sub_2BE8(var A_0, var A_1)
  2451. {
  2452. var num1 = VEHICLE::IS_THIS_MODEL_A_BOAT(A_0);
  2453. var num8 = num1 | VEHICLE::IS_THIS_MODEL_A_PLANE(A_0);
  2454. var num9 = num8 | VEHICLE::IS_THIS_MODEL_A_HELI(A_0);
  2455. var num10 = num9 | VEHICLE::IS_THIS_MODEL_A_TRAIN(A_0);
  2456. if ((num10 | VEHICLE::IS_THIS_MODEL_A_BIKE(A_0)) != 0)
  2457. {
  2458. return 0;
  2459. }
  2460. if (A_1 == 0)
  2461. {
  2462. bool flag1 = A_0 == 0x79FBB0C5;
  2463. bool flag2 = flag1 | (A_0 == 0x9F05F101);
  2464. bool flag3 = flag2 | (A_0 == 0x71FA16EA);
  2465. bool flag4 = flag3 | (A_0 == 0x8A63C7B9);
  2466. bool flag5 = flag4 | (A_0 == 0x432EA949);
  2467. bool flag6 = flag5 | (A_0 == 0x9DC66994);
  2468. bool flag7 = flag6 | (A_0 == 0x44623884);
  2469. if (flag7 | (A_0 == 0xDFF0594C))
  2470. {
  2471. return 0;
  2472. }
  2473. }
  2474. bool flag8 = A_0 == 0xB9CB3B69;
  2475. bool flag9 = flag8 | (A_0 == 0x239E390);
  2476. bool flag10 = flag9 | (A_0 == 0x3EAB5555);
  2477. if (flag10 | (A_0 == 0xB2A716A3))
  2478. {
  2479. return 0;
  2480. }
  2481. return 1;
  2482. }
  2483.  
  2484. void sub_2CDE(var A_0)
  2485. {
  2486. l_326 = A_0;
  2487. }
  2488.  
  2489. void sub_2CEB()
  2490. {
  2491. if (sub_10B44() != 0)
  2492. {
  2493. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) != 0)
  2494. {
  2495. AI::CLEAR_PED_TASKS(l_127);
  2496. AI::TASK_CLEAR_LOOK_AT(l_127);
  2497. }
  2498. }
  2499. else
  2500. {
  2501. AI::CLEAR_PED_TASKS(l_127);
  2502. AI::TASK_CLEAR_LOOK_AT(l_127);
  2503. }
  2504. l_128 = 0;
  2505. l_129 = 0;
  2506. AI::TASK_PLAY_ANIM(l_127, sub_21FD(l_324), sub_212A(4), 2f, -2f, -1, 1, GAMEPLAY::GET_RANDOM_FLOAT_IN_RANGE(0f, 0.9f), 0, 0, 0);
  2507. sub_2CDE(0);
  2508. l_327 = 0;
  2509. l_325 = 1;
  2510. }
  2511.  
  2512. void sub_2D58()
  2513. {
  2514. if (sub_F6B7(l_85, 32) == 0)
  2515. {
  2516. l_325 = 1;
  2517. }
  2518. bool flag1 = l_326 > 1;
  2519. if ((flag1 & (l_326 != 12)) && (sub_F6B7(l_85, 0x2000000) == 0))
  2520. {
  2521. if ((sub_10B44() != 0) && (g_1617061 != 0))
  2522. {
  2523. sub_F46B(0);
  2524. sub_F4AD(&l_85, 0x2000000);
  2525. }
  2526. if (PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) > 0)
  2527. {
  2528. var num1 = sub_F6B7(l_85, 0x100000);
  2529. if ((num1 | sub_F6B7(l_85, 8192)) != 0)
  2530. {
  2531. sub_F46B(0);
  2532. sub_F4AD(&l_85, 0x2000000);
  2533. }
  2534. }
  2535. }
  2536. switch (l_326)
  2537. {
  2538. case 0:
  2539. {
  2540. var num6 = sub_F6B7(l_85, 16384);
  2541. if ((num6 | sub_F6B7(l_85, 0x800000)) == 0)
  2542. {
  2543. bool flag2 = l_327 != 0;
  2544. if (flag2 & (sub_F422("PROS_NO_MONEY") == 0))
  2545. {
  2546. sub_2049(0);
  2547. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  2548. {
  2549. sub_F388(&l_153, 0, PLAYER::PLAYER_PED_ID(), "TREVOR", 0, 1);
  2550. }
  2551. else if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  2552. {
  2553. sub_F388(&l_153, 0, PLAYER::PLAYER_PED_ID(), "MICHAEL", 0, 1);
  2554. }
  2555. else if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  2556. {
  2557. sub_F388(&l_153, 0, PLAYER::PLAYER_PED_ID(), "FRANKLIN", 0, 1);
  2558. }
  2559. l_326 = 1;
  2560. }
  2561. else
  2562. {
  2563. sub_F374();
  2564. l_327 = 2;
  2565. }
  2566. break;
  2567. }
  2568. if (sub_652(&l_144) == 0)
  2569. {
  2570. sub_F453(&l_144);
  2571. }
  2572. if (sub_F435(&l_144, 25f) != 0)
  2573. {
  2574. sub_5B4(&l_85, 16384);
  2575. sub_5B4(&l_85, 0x800000);
  2576. }
  2577. break;
  2578. }
  2579. case 1:
  2580. sub_F1B3();
  2581. break;
  2582. case 2:
  2583. sub_EF49();
  2584. break;
  2585. case 3:
  2586. sub_EEEA();
  2587. break;
  2588. case 4:
  2589. sub_E846();
  2590. break;
  2591. case 5:
  2592. sub_E545();
  2593. break;
  2594. case 6:
  2595. sub_E522();
  2596. break;
  2597. case 7:
  2598. sub_D7AD();
  2599. sub_D3CA();
  2600. break;
  2601. case 8:
  2602. sub_D1FE();
  2603. PLAYER::SPECIAL_ABILITY_DEACTIVATE(PLAYER::PLAYER_ID());
  2604. sub_6DD5();
  2605. sub_6D66();
  2606. sub_6D15();
  2607. sub_6CC8();
  2608. if (sub_10B44() != 0)
  2609. {
  2610. sub_6C14();
  2611. }
  2612. break;
  2613. case 9:
  2614. sub_6B3F();
  2615. break;
  2616. case 10:
  2617. sub_6A2A();
  2618. break;
  2619. case 11:
  2620. PLAYER::SPECIAL_ABILITY_DEACTIVATE(PLAYER::PLAYER_ID());
  2621. sub_38FB();
  2622. sub_6D66();
  2623. sub_6D15();
  2624. sub_6CC8();
  2625. sub_37B9();
  2626. if (sub_10B44() != 0)
  2627. {
  2628. sub_6C14();
  2629. }
  2630. break;
  2631. case 12:
  2632. sub_F655();
  2633. break;
  2634. case 13:
  2635. sub_308D();
  2636. break;
  2637. case 14:
  2638. sub_303B();
  2639. break;
  2640. case 15:
  2641. sub_2FE9();
  2642. break;
  2643. }
  2644. }
  2645.  
  2646. void sub_2FE9()
  2647. {
  2648. if ((sub_F6B7(l_85, 16) != 0) && (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0))
  2649. {
  2650. PLAYER::SET_PLAYER_CAN_DO_DRIVE_BY(PLAYER::PLAYER_ID(), 1);
  2651. sub_5B4(&l_85, 16);
  2652. }
  2653. if (sub_F6B7(l_85, 2) != 0)
  2654. {
  2655. sub_3033(1);
  2656. sub_F6C6("RESETTING INTERFACE FLAG TO FALSE - PROSTITUTE SCRIPT TERMINATING");
  2657. }
  2658. sub_10666();
  2659. }
  2660.  
  2661. void sub_3033(var A_0)
  2662. {
  2663. }
  2664.  
  2665. void sub_303B()
  2666. {
  2667. if ((AUDIO::IS_ANY_SPEECH_PLAYING(PLAYER::PLAYER_PED_ID()) == 0) && (l_105 == 0))
  2668. {
  2669. if (sub_F6B7(l_85, 0x8000000) != 0)
  2670. {
  2671. PED::SET_PED_FLEE_ATTRIBUTES(l_127, 32768, 0);
  2672. PED::SET_PED_FLEE_ATTRIBUTES(l_127, 0x30010, 1);
  2673. }
  2674. AUDIO::0x5C57B85D(l_127, "HOOKER_LEAVES_ANGRY", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2675. sub_2CDE(15);
  2676. }
  2677. }
  2678.  
  2679. void sub_308D()
  2680. {
  2681. switch (l_334)
  2682. {
  2683. case 0:
  2684. {
  2685. bool flag1 = AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0;
  2686. if (flag1 | (sub_3785(&l_138) > 4f))
  2687. {
  2688. sub_3628(l_127);
  2689. if (sub_2579(sub_25E4(l_127)) == 1)
  2690. {
  2691. l_334 = 2;
  2692. }
  2693. else
  2694. {
  2695. sub_3612(&l_138);
  2696. sub_35FC("PROS_RESPONSE");
  2697. l_334 = 1;
  2698. }
  2699. }
  2700. break;
  2701. }
  2702. case 1:
  2703. {
  2704. sub_3558();
  2705. var num1 = AUDIO::IS_ANY_SPEECH_PLAYING(l_127);
  2706. if ((num1 | sub_3536()) != 0)
  2707. {
  2708. PLAYER::SET_PLAYER_CONTROL(PLAYER::PLAYER_ID(), 0, 256);
  2709. sub_F4AD(&l_85, 2048);
  2710. }
  2711. else
  2712. {
  2713. if (sub_652(&l_138) == 0)
  2714. {
  2715. sub_E7E(&l_138);
  2716. }
  2717. bool flag2 = sub_3785(&l_138) > 15f;
  2718. if (flag2 | (l_337 != 0))
  2719. {
  2720. UI::CLEAR_HELP(1);
  2721. sub_3494();
  2722. l_334 = 2;
  2723. }
  2724. }
  2725. break;
  2726. }
  2727. case 2:
  2728. if (sub_3536() == 0)
  2729. {
  2730. l_334 = 3;
  2731. }
  2732. break;
  2733. case 3:
  2734. sub_31E2(0);
  2735. sub_3188();
  2736. sub_2CDE(15);
  2737. break;
  2738. }
  2739. }
  2740.  
  2741. var sub_3188()
  2742. {
  2743. if (sub_31D2() != 0)
  2744. {
  2745. return 0;
  2746. }
  2747. if (rPtr((&g_80916) + 8) != 0)
  2748. {
  2749. if (rPtr((&g_80916) + 10) > 0)
  2750. {
  2751. return 0;
  2752. }
  2753. }
  2754. else if (rPtr((&g_80916) + 10) > 1)
  2755. {
  2756. return 0;
  2757. }
  2758. wPtr(rPtr((&g_80916) + 10) + 1, (&g_80916) + 10);
  2759. return 1;
  2760. }
  2761.  
  2762. var sub_31D2()
  2763. {
  2764. return GAMEPLAY::IS_BIT_SET(g_60090, 0);
  2765. }
  2766.  
  2767. void sub_31E2(var A_0)
  2768. {
  2769. if (PED::IS_PED_INJURED(l_127) == 0)
  2770. {
  2771. if (CAM::IS_SCREEN_FADED_OUT() != 0)
  2772. {
  2773. PED::DELETE_PED(&l_127);
  2774. }
  2775. else
  2776. {
  2777. sub_320C(l_127, A_0);
  2778. }
  2779. }
  2780. }
  2781.  
  2782. void sub_320C(var A_0, var A_1)
  2783. {
  2784. if (ENTITY::IS_ENTITY_PLAYING_ANIM(PLAYER::PLAYER_PED_ID(), sub_16FB(PLAYER::PLAYER_PED_ID()), sub_344E(1), 3) != 0)
  2785. {
  2786. AI::TASK_PLAY_ANIM(PLAYER::PLAYER_PED_ID(), sub_16FB(PLAYER::PLAYER_PED_ID()), sub_3408(1), 4f, -8f, -1, 0, 0, 0, 0, 0);
  2787. }
  2788. if (PED::IS_PED_INJURED(A_0) == 0)
  2789. {
  2790. PED::RESET_PED_IN_VEHICLE_CONTEXT(A_0);
  2791. if (sub_F6B7(l_85, 0x2000000) != 0)
  2792. {
  2793. AI::CLEAR_PED_TASKS(A_0);
  2794. }
  2795. if ((A_1 != null) && (GAMEPLAY::GET_RANDOM_FLOAT_IN_RANGE(0.1f, 2f) <= 0.25f))
  2796. {
  2797. sub_F4AD(&l_85, 0x8000000);
  2798. }
  2799. if (sub_F6B7(l_85, 0x8000000) != 0)
  2800. {
  2801. PED::SET_PED_FLEE_ATTRIBUTES(A_0, 32768, 1);
  2802. AI::TASK_SMART_FLEE_PED(A_0, PLAYER::PLAYER_PED_ID(), 300f, -1, 1, 0);
  2803. }
  2804. else
  2805. {
  2806. var num3;
  2807. PED::SET_PED_FLEE_ATTRIBUTES(A_0, 0x30010, 1);
  2808. AI::CLEAR_SEQUENCE_TASK(&num3);
  2809. AI::OPEN_SEQUENCE_TASK(&num3);
  2810. AI::TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(0, 1);
  2811. if (PED::IS_PED_IN_ANY_VEHICLE(A_0, 0) != 0)
  2812. {
  2813. if (VEHICLE::IS_VEHICLE_STOPPED(PED::GET_VEHICLE_PED_IS_IN(A_0, 0)) == 0)
  2814. {
  2815. sub_33D6(A_0, 1);
  2816. }
  2817. else
  2818. {
  2819. if (ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_16FB(A_0), sub_344E(0), 3) != 0)
  2820. {
  2821. if (l_105 > 0)
  2822. {
  2823. AI::TASK_PLAY_ANIM(0, sub_16FB(A_0), sub_3408(0), 4f, -4f, -1, 0, 0, 0, 0, 0);
  2824. }
  2825. else
  2826. {
  2827. AI::TASK_PLAY_ANIM(0, sub_16FB(A_0), sub_3390(0), 4f, -4f, -1, 0, 0, 0, 0, 0);
  2828. }
  2829. }
  2830. sub_33D6(A_0, 1);
  2831. }
  2832. }
  2833. AI::TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(0, 0);
  2834. AI::TASK_WANDER_STANDARD(0, 0x471C4000, 0);
  2835. AI::CLOSE_SEQUENCE_TASK(num3);
  2836. AI::TASK_PERFORM_SEQUENCE(A_0, num3);
  2837. AI::CLEAR_SEQUENCE_TASK(&num3);
  2838. }
  2839. PED::SET_PED_KEEP_TASK(A_0, 1);
  2840. }
  2841. }
  2842.  
  2843. var sub_3390(var A_0)
  2844. {
  2845. if (sub_F6B7(l_85, 32768) == 0)
  2846. {
  2847. if (A_0 != null)
  2848. {
  2849. return sub_132F(4);
  2850. }
  2851. return sub_132F(5);
  2852. }
  2853. if (A_0 != null)
  2854. {
  2855. return sub_14ED(4);
  2856. }
  2857. return sub_14ED(5);
  2858. }
  2859.  
  2860. void sub_33D6(var A_0, var A_1)
  2861. {
  2862. if (VEHICLE::0xAB0E79EB(A_0, PED::GET_VEHICLE_PED_IS_IN(A_0, 0), 0, 0, 0) == 0)
  2863. {
  2864. AI::TASK_LEAVE_ANY_VEHICLE(0, 0, 0x1000000);
  2865. }
  2866. else
  2867. {
  2868. AI::TASK_LEAVE_ANY_VEHICLE(0, 0, A_1);
  2869. }
  2870. }
  2871.  
  2872. var sub_3408(var A_0)
  2873. {
  2874. if (sub_F6B7(l_85, 32768) == 0)
  2875. {
  2876. if (A_0 != null)
  2877. {
  2878. return sub_132F(6);
  2879. }
  2880. return sub_132F(7);
  2881. }
  2882. if (A_0 != null)
  2883. {
  2884. return sub_14ED(6);
  2885. }
  2886. return sub_14ED(7);
  2887. }
  2888.  
  2889. var sub_344E(var A_0)
  2890. {
  2891. if (sub_F6B7(l_85, 32768) == 0)
  2892. {
  2893. if (A_0 != null)
  2894. {
  2895. return sub_132F(2);
  2896. }
  2897. return sub_132F(3);
  2898. }
  2899. if (A_0 != null)
  2900. {
  2901. return sub_14ED(2);
  2902. }
  2903. return sub_14ED(3);
  2904. }
  2905.  
  2906. void sub_3494()
  2907. {
  2908. var num3 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 1000);
  2909. bool flag1 = num3 <= 333;
  2910. bool flag2 = flag1 & (l_337 == 0);
  2911. if (flag2 | (l_337 == 3))
  2912. {
  2913. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "HOOKER_STORY_REVULSION_RESP", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2914. }
  2915. else
  2916. {
  2917. bool flag3 = num3 > 333;
  2918. bool flag4 = flag3 & (num3 <= 666);
  2919. bool flag5 = flag4 & (l_337 == 0);
  2920. if (flag5 | (l_337 == 1))
  2921. {
  2922. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "HOOKER_STORY_SARCASTIC_RESP", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2923. }
  2924. else
  2925. {
  2926. bool flag6 = l_337 == 0;
  2927. if (flag6 | (l_337 == 2))
  2928. {
  2929. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "HOOKER_STORY_SYMPATHETIC_RESP", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  2930. }
  2931. }
  2932. }
  2933. }
  2934.  
  2935. var sub_3536()
  2936. {
  2937. bool flag1 = g_11728 != 0;
  2938. if (flag1 | AUDIO::IS_SCRIPTED_CONVERSATION_ONGOING())
  2939. {
  2940. return 1;
  2941. }
  2942. return 0;
  2943. }
  2944.  
  2945. void sub_3558()
  2946. {
  2947. if (l_337 == 0)
  2948. {
  2949. CAM::SET_CINEMATIC_BUTTON_ACTIVE(0);
  2950. CONTROLS::DISABLE_CONTROL_ACTION(0, 90);
  2951. CONTROLS::DISABLE_CONTROL_ACTION(0, 69);
  2952. CONTROLS::DISABLE_CONTROL_ACTION(0, 73);
  2953. CONTROLS::SET_INPUT_EXCLUSIVE(2, 176);
  2954. CONTROLS::SET_INPUT_EXCLUSIVE(2, 174);
  2955. CONTROLS::SET_INPUT_EXCLUSIVE(2, 175);
  2956. if (CONTROLS::IS_CONTROL_JUST_RELEASED(2, 176) != 0)
  2957. {
  2958. UI::CLEAR_HELP(1);
  2959. AUDIO::PLAY_SOUND_FRONTEND(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET");
  2960. l_337 = 3;
  2961. }
  2962. else if (CONTROLS::IS_CONTROL_JUST_RELEASED(2, 174) != 0)
  2963. {
  2964. UI::CLEAR_HELP(1);
  2965. AUDIO::PLAY_SOUND_FRONTEND(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET");
  2966. l_337 = 1;
  2967. }
  2968. else if (CONTROLS::IS_CONTROL_JUST_RELEASED(2, 175) != 0)
  2969. {
  2970. UI::CLEAR_HELP(1);
  2971. AUDIO::PLAY_SOUND_FRONTEND(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET");
  2972. l_337 = 2;
  2973. }
  2974. }
  2975. }
  2976.  
  2977. void sub_35FC(var A_0)
  2978. {
  2979. UI::0xB245FC10(A_0);
  2980. UI::0xB59B530D(0, 1, 1, -1);
  2981. }
  2982.  
  2983. void sub_3612(var A_0)
  2984. {
  2985. wPtr(0f, (A_0) + 4);
  2986. wPtr(0f, (A_0) + 8);
  2987. wPtr(0, A_0);
  2988. }
  2989.  
  2990. void sub_3628(var A_0)
  2991. {
  2992. var num3 = sub_25E4(A_0);
  2993. if (num3 > -1)
  2994. {
  2995. if (AUDIO::IS_ANY_SPEECH_PLAYING(A_0) != 0)
  2996. {
  2997. AUDIO::STOP_CURRENT_PLAYING_AMBIENT_SPEECH(A_0);
  2998. }
  2999. if (AUDIO::IS_ANY_SPEECH_PLAYING(A_0) == 0)
  3000. {
  3001. sub_36AB(A_0);
  3002. sub_3663(num3);
  3003. }
  3004. }
  3005. }
  3006.  
  3007. void sub_3663(var A_0)
  3008. {
  3009. var num3 = sub_2579(A_0);
  3010. if (num3 < 6)
  3011. {
  3012. var num4;
  3013. strcpy("pbpro_H", &num4, 24);
  3014. saddi((A_0) + 1, &num4, 24);
  3015. sadd("V", &num4, 24);
  3016. saddi(num3, &num4, 24);
  3017. sub_662(&l_153, "pbproau", &num4, 4, 0, 0, 0);
  3018. }
  3019. }
  3020.  
  3021. void sub_36AB(var A_0)
  3022. {
  3023. var num3 = sub_25E4(A_0);
  3024. if (num3 > -1)
  3025. {
  3026. sub_3768(&l_153, 4);
  3027. sub_F388(&l_153, 6, A_0, sub_36D9(num3), 0, 1);
  3028. }
  3029. }
  3030.  
  3031. var sub_36D9(var A_0)
  3032. {
  3033. var num3;
  3034. switch (A_0)
  3035. {
  3036. case 0:
  3037. num3 = "Hooker1";
  3038. break;
  3039. case 1:
  3040. num3 = "Hooker2";
  3041. break;
  3042. case 2:
  3043. num3 = "Hooker3";
  3044. break;
  3045. case 3:
  3046. num3 = "Hooker4";
  3047. break;
  3048. case 4:
  3049. num3 = "Hooker5";
  3050. break;
  3051. case 5:
  3052. num3 = "Hooker6";
  3053. break;
  3054. case 6:
  3055. num3 = "Hooker7";
  3056. break;
  3057. case 7:
  3058. num3 = "Hooker8";
  3059. break;
  3060. default:
  3061. num3 = "UPRO N/A";
  3062. break;
  3063. }
  3064. return num3;
  3065. }
  3066.  
  3067. void sub_3768(var A_0, var A_1)
  3068. {
  3069. if (rPtr(getElemPtr(A_1, A_0, 40) + 28) == 1)
  3070. {
  3071. wPtr(0, getElemPtr(A_1, A_0, 40) + 28);
  3072. }
  3073. }
  3074.  
  3075. var sub_3785(var A_0)
  3076. {
  3077. if (sub_652(A_0) != 0)
  3078. {
  3079. if (sub_642(A_0) != 0)
  3080. {
  3081. return rPtr((A_0) + 8);
  3082. }
  3083. return (sub_610() - rPtr((A_0) + 4));
  3084. }
  3085. return 0f;
  3086. }
  3087.  
  3088. void sub_37B9()
  3089. {
  3090. if (sub_10B44() != 0)
  3091. {
  3092. var num3 = 0;
  3093. if ((ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0) && (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0))
  3094. {
  3095. var num4 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  3096. if (ENTITY::DOES_ENTITY_EXIST(num4) != 0)
  3097. {
  3098. if (VEHICLE::GET_PED_IN_VEHICLE_SEAT(num4, -1) != PLAYER::PLAYER_PED_ID())
  3099. {
  3100. num3 = 1;
  3101. }
  3102. if (VEHICLE::GET_PED_IN_VEHICLE_SEAT(num4, 0) != l_127)
  3103. {
  3104. num3 = 1;
  3105. }
  3106. if (VEHICLE::GET_VEHICLE_NUMBER_OF_PASSENGERS(num4) > 2)
  3107. {
  3108. num3 = 1;
  3109. }
  3110. if (num3 != 0)
  3111. {
  3112. sub_3841(0);
  3113. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  3114. sub_10666();
  3115. sub_104E0();
  3116. }
  3117. }
  3118. }
  3119. }
  3120. }
  3121.  
  3122. void sub_3841(var A_0)
  3123. {
  3124. if (A_0 != null)
  3125. {
  3126. var num3;
  3127. struct _s = ENTITY::GET_ENTITY_ROTATION(l_130, 2);
  3128. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  3129. CAM::SET_GAMEPLAY_CAM_RELATIVE_HEADING(180f);
  3130. CAM::SET_GAMEPLAY_CAM_RELATIVE_PITCH((-5.5f) - num3, 0x3F800000);
  3131. }
  3132. CAM::RENDER_SCRIPT_CAMS(0, 0, 3000, 1, 0);
  3133. sub_38C4(getElemPtr(0, &l_344, 28));
  3134. sub_38C4(getElemPtr(3, &l_344, 28));
  3135. sub_38C4(getElemPtr(2, &l_344, 28));
  3136. sub_38C4(getElemPtr(1, &l_344, 28));
  3137. var num1 = sub_F422("PROS_CAM_TOG");
  3138. if ((num1 | sub_F422("PROS_CAM_OC")) != 0)
  3139. {
  3140. UI::CLEAR_HELP(1);
  3141. }
  3142. }
  3143.  
  3144. void sub_38C4(var A_0)
  3145. {
  3146. if (CAM::DOES_CAM_EXIST(rPtr(A_0)) != 0)
  3147. {
  3148. CAM::RENDER_SCRIPT_CAMS(0, 0, 3000, 1, 0);
  3149. if (CAM::IS_CAM_ACTIVE(rPtr(A_0)) != 0)
  3150. {
  3151. CAM::SET_CAM_ACTIVE(rPtr(A_0), 0);
  3152. }
  3153. CAM::DESTROY_CAM(rPtr(A_0), 0);
  3154. }
  3155. }
  3156.  
  3157. void sub_38FB()
  3158. {
  3159. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_130, 0) != 0)
  3160. {
  3161. VEHICLE::SET_VEHICLE_BRAKE_LIGHTS(l_130, 1);
  3162. }
  3163. if (l_333 != 5)
  3164. {
  3165. bool flag1 = sub_6A02(l_109) == 0;
  3166. bool flag2 = flag1 & (sub_6A02(l_110) == 0);
  3167. bool flag3 = flag2 & (sub_6A02(l_111) == 0);
  3168. bool flag4 = flag3 & (sub_6A02(l_112) == 0);
  3169. bool flag5 = flag4 & (sub_6A02(l_113) == 0);
  3170. bool flag6 = flag5 & (sub_6A02(l_114) == 0);
  3171. if (flag6 & (sub_6A02(l_115) == 0))
  3172. {
  3173. bool flag7 = PED::IS_PED_SITTING_IN_ANY_VEHICLE(l_127) == 0;
  3174. if (flag7 | ENTITY::HAS_ENTITY_BEEN_DAMAGED_BY_ANY_PED(PLAYER::PLAYER_PED_ID()))
  3175. {
  3176. l_333 = 5;
  3177. }
  3178. if ((PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0) && (VEHICLE::IS_VEHICLE_DRIVEABLE(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 0) == 0))
  3179. {
  3180. l_333 = 5;
  3181. }
  3182. }
  3183. }
  3184. UI::HIDE_HUD_COMPONENT_THIS_FRAME(2);
  3185. CONTROLS::DISABLE_CONTROL_ACTION(2, 19);
  3186. CONTROLS::DISABLE_CONTROL_ACTION(2, 37);
  3187. sub_689C();
  3188. switch (l_333)
  3189. {
  3190. case 0:
  3191. if (sub_10B44() != 0)
  3192. {
  3193. sub_6551(1074, -1);
  3194. }
  3195. sub_E7E(&l_150);
  3196. sub_6516(sub_16EE(), sub_F6B7(l_85, 32768));
  3197. l_333 = 1;
  3198. sub_F6C6("Moving to PROSTITUTE_SERVICE_LOOPING");
  3199. break;
  3200. case 1:
  3201. CONTROLS::DISABLE_CONTROL_ACTION(0, 46);
  3202. sub_6281();
  3203. sub_5DB8();
  3204. sub_3C87();
  3205. sub_3C77();
  3206. if ((sub_5D9(&l_150) > 1f) && (sub_3C63() != 0))
  3207. {
  3208. sub_5B4(&l_85, 512);
  3209. l_336 = 0;
  3210. sub_3C4C("PROSTITUTES_SOLICIT_SCENE");
  3211. sub_3C4C("PROSTITUTES_SEX_SCENE");
  3212. sub_3C4C("PROSTITUTES_BJ_SCENE");
  3213. sub_3C4C("PROSTITUTES_BJ_SPEECH_SCENE");
  3214. if (l_105 >= 3)
  3215. {
  3216. sub_3C20();
  3217. l_333 = 5;
  3218. }
  3219. else
  3220. {
  3221. sub_3BF4();
  3222. l_333 = 3;
  3223. }
  3224. }
  3225. break;
  3226. case 2:
  3227. CONTROLS::DISABLE_CONTROL_ACTION(0, 46);
  3228. sub_6281();
  3229. sub_3C77();
  3230. if ((sub_5D9(&l_150) > 1f) && (sub_3C63() != 0))
  3231. {
  3232. sub_5B4(&l_85, 512);
  3233. l_336 = 0;
  3234. sub_3C4C("PROSTITUTES_SOLICIT_SCENE");
  3235. sub_3C4C("PROSTITUTES_SEX_SCENE");
  3236. sub_3C4C("PROSTITUTES_BJ_SCENE");
  3237. sub_3C4C("PROSTITUTES_BJ_SPEECH_SCENE");
  3238. l_105 = 3;
  3239. if (l_105 >= 3)
  3240. {
  3241. sub_3C20();
  3242. l_333 = 5;
  3243. sub_3612(&l_135);
  3244. }
  3245. }
  3246. break;
  3247. case 3:
  3248. if (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0)
  3249. {
  3250. sub_3C4C("PROSTITUTES_SOLICIT_SCENE");
  3251. sub_3C4C("PROSTITUTES_BJ_SPEECH_SCENE");
  3252. l_332 = 0;
  3253. l_333 = 0;
  3254. sub_3BE2();
  3255. l_326 = 8;
  3256. }
  3257. break;
  3258. case 5:
  3259. if (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0)
  3260. {
  3261. if (l_105 <= 0)
  3262. {
  3263. sub_F6C6("PROSTITUTE CANCEL PROS NO LONGER IN VEHICLE");
  3264. sub_F46B(1);
  3265. break;
  3266. }
  3267. if (sub_3BC0(l_127) != 0)
  3268. {
  3269. sub_3B5E();
  3270. }
  3271. else
  3272. {
  3273. sub_F46B(0);
  3274. }
  3275. }
  3276. break;
  3277. }
  3278. }
  3279.  
  3280. void sub_3B5E()
  3281. {
  3282. if ((PED::IS_PED_INJURED(l_127) == 0) && (AUDIO::IS_ANY_SPEECH_PLAYING(PLAYER::PLAYER_PED_ID()) == 0))
  3283. {
  3284. if (l_105 == 0)
  3285. {
  3286. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "HOOKER_DECLINE_SERVICE", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  3287. }
  3288. else if (sub_3BC0(l_127) != 0)
  3289. {
  3290. sub_E7E(&l_138);
  3291. PLAYER::SET_PLAYER_CONTROL(PLAYER::PLAYER_ID(), 0, 256);
  3292. sub_F4AD(&l_85, 2048);
  3293. l_326 = 13;
  3294. }
  3295. }
  3296. }
  3297.  
  3298. var sub_3BC0(var A_0)
  3299. {
  3300. var num3 = sub_25E4(A_0);
  3301. if (num3 == -1)
  3302. {
  3303. return 0;
  3304. }
  3305. return (sub_2579(num3) < 6);
  3306. }
  3307.  
  3308. void sub_3BE2()
  3309. {
  3310. wPtr(1, ((&g_2390986) + 549) + 10);
  3311. }
  3312.  
  3313. void sub_3BF4()
  3314. {
  3315. if ((PED::IS_PED_INJURED(l_127) == 0) && (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0))
  3316. {
  3317. AUDIO::0x5C57B85D(l_127, "SEX_FINISHED", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  3318. }
  3319. }
  3320.  
  3321. void sub_3C20()
  3322. {
  3323. if ((PED::IS_PED_INJURED(l_127) == 0) && (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0))
  3324. {
  3325. AUDIO::0x5C57B85D(l_127, "HOOKER_HAD_ENOUGH", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  3326. }
  3327. }
  3328.  
  3329. void sub_3C4C(var A_0)
  3330. {
  3331. if (AUDIO::IS_AUDIO_SCENE_ACTIVE(A_0) != 0)
  3332. {
  3333. AUDIO::STOP_AUDIO_SCENE(A_0);
  3334. }
  3335. }
  3336.  
  3337. var sub_3C63()
  3338. {
  3339. if (l_336 == 6)
  3340. {
  3341. return 1;
  3342. }
  3343. return 0;
  3344. }
  3345.  
  3346. void sub_3C77()
  3347. {
  3348. CAM::0x5AC6DAC9();
  3349. CAM::0x837F8581();
  3350. }
  3351.  
  3352. void sub_3C87()
  3353. {
  3354. var num3;
  3355. if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(l_96) != 0)
  3356. {
  3357. return;
  3358. }
  3359. if (STREAMING::HAS_ANIM_DICT_LOADED(l_96) == 0)
  3360. {
  3361. return;
  3362. }
  3363. if (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0)
  3364. {
  3365. ENTITY::SET_ENTITY_INVINCIBLE(PLAYER::PLAYER_PED_ID(), 0);
  3366. }
  3367. var num4 = sub_16EE();
  3368. var num5 = sub_F6B7(l_85, 32768);
  3369. sub_5A29(&l_116);
  3370. CONTROLS::DISABLE_CONTROL_ACTION(2, 19);
  3371. CONTROLS::DISABLE_CONTROL_ACTION(2, 37);
  3372. sub_5A07(23, 1);
  3373. switch (l_336)
  3374. {
  3375. case 0:
  3376. sub_5B4(&l_85, 256);
  3377. sub_56F6(&l_116);
  3378. sub_56B0(l_127, 0);
  3379. if (sub_10B44() == 0)
  3380. {
  3381. sub_563F(num4, num5);
  3382. }
  3383. sub_55D6(num4, num5);
  3384. l_336 = 1;
  3385. return;
  3386. case 1:
  3387. sub_55C1(l_109);
  3388. if ((sub_6A02(l_110) == 0) || (sub_F6B7(l_86, 4) != 0))
  3389. {
  3390. goto Label_01AF;
  3391. }
  3392. if (sub_10B44() != 0)
  3393. {
  3394. num3 = 0.986f;
  3395. break;
  3396. }
  3397. num3 = 0.925f;
  3398. break;
  3399. case 2:
  3400. sub_55C1(l_111);
  3401. if ((sub_6A02(l_111) != 0) && (sub_F6B7(l_86, 16) == 0))
  3402. {
  3403. if (sub_10B44() != 0)
  3404. {
  3405. num3 = 0.986f;
  3406. }
  3407. else
  3408. {
  3409. num3 = 0.98f;
  3410. }
  3411. if (sub_5599(l_111) >= num3)
  3412. {
  3413. sub_F4AD(&l_86, 16);
  3414. }
  3415. }
  3416. if (sub_F6B7(l_86, 16) != 0)
  3417. {
  3418. if (sub_10B44() == 0)
  3419. {
  3420. sub_5450(num4, num5);
  3421. }
  3422. sub_53E7(num4, num5);
  3423. l_336 = 3;
  3424. }
  3425. return;
  3426. case 3:
  3427. sub_55C1(l_112);
  3428. if ((sub_6A02(l_112) != 0) && (sub_F6B7(l_86, 64) == 0))
  3429. {
  3430. if (sub_F6B7(l_85, 0x1000000) != 0)
  3431. {
  3432. if (sub_10B44() == 0)
  3433. {
  3434. num3 = 0.975f;
  3435. }
  3436. else
  3437. {
  3438. num3 = 0.986f;
  3439. }
  3440. if (sub_5599(l_112) < num3)
  3441. {
  3442. sub_5B4(&l_85, 0x1000000);
  3443. }
  3444. }
  3445. else
  3446. {
  3447. if (sub_10B44() != 0)
  3448. {
  3449. num3 = 0.986f;
  3450. }
  3451. else
  3452. {
  3453. num3 = 0.975f;
  3454. }
  3455. if (sub_5599(l_112) >= num3)
  3456. {
  3457. sub_F4AD(&l_85, 0x1000000);
  3458. l_106++;
  3459. }
  3460. }
  3461. if (l_106 >= sub_5099(sub_10B44(), sub_539D(), sub_50B0()))
  3462. {
  3463. sub_F4AD(&l_86, 64);
  3464. sub_5B4(&l_85, 0x1000000);
  3465. }
  3466. }
  3467. if (sub_F6B7(l_86, 64) != 0)
  3468. {
  3469. if (sub_10B44() == 0)
  3470. {
  3471. sub_5029(num4, num5);
  3472. }
  3473. sub_4FC0(num4, num5);
  3474. l_336 = 4;
  3475. }
  3476. return;
  3477. case 4:
  3478. sub_55C1(l_113);
  3479. if ((sub_6A02(l_113) != 0) && (sub_F6B7(l_86, 256) == 0))
  3480. {
  3481. if (sub_10B44() != 0)
  3482. {
  3483. num3 = 0.986f;
  3484. }
  3485. else
  3486. {
  3487. num3 = 0.925f;
  3488. }
  3489. if (sub_5599(l_113) >= num3)
  3490. {
  3491. sub_F4AD(&l_86, 256);
  3492. }
  3493. }
  3494. if (sub_F6B7(l_86, 256) != 0)
  3495. {
  3496. if (sub_10B44() == 0)
  3497. {
  3498. sub_4E15(num4, num5);
  3499. }
  3500. sub_4D7C(num4, num5);
  3501. l_336 = 5;
  3502. }
  3503. return;
  3504. case 5:
  3505. {
  3506. sub_55C1(l_114);
  3507. if (sub_6A02(l_114) == 0)
  3508. {
  3509. if (sub_F6B7(l_86, 1024) == 0)
  3510. {
  3511. sub_F4AD(&l_86, 1024);
  3512. }
  3513. }
  3514. else if (sub_F6B7(l_86, 1024) == 0)
  3515. {
  3516. if (sub_10B44() != 0)
  3517. {
  3518. num3 = 0.986f;
  3519. }
  3520. else
  3521. {
  3522. num3 = 0.975f;
  3523. }
  3524. if (sub_5599(l_114) >= num3)
  3525. {
  3526. sub_F4AD(&l_86, 1024);
  3527. }
  3528. }
  3529. if (sub_6A02(l_115) != 0)
  3530. {
  3531. if (sub_F6B7(l_86, 2048) == 0)
  3532. {
  3533. if (sub_10B44() == 0)
  3534. {
  3535. num3 = 0.975f;
  3536. }
  3537. else
  3538. {
  3539. num3 = 0.986f;
  3540. }
  3541. if (sub_5599(l_115) >= num3)
  3542. {
  3543. sub_F4AD(&l_86, 2048);
  3544. }
  3545. }
  3546. }
  3547. else if (sub_F6B7(l_86, 2048) == 0)
  3548. {
  3549. sub_F4AD(&l_86, 2048);
  3550. }
  3551. var num9 = sub_F6B7(l_86, 1024);
  3552. if ((num9 & sub_F6B7(l_86, 2048)) != 0)
  3553. {
  3554. sub_56B0(l_127, 0);
  3555. AI::TASK_PLAY_ANIM(l_127, l_96, sub_104D(l_336, 1, num4, num5), 4f, -4f, -1, 1, 0, 0, 0, 0);
  3556. sub_56B0(PLAYER::PLAYER_PED_ID(), -1);
  3557. AI::TASK_PLAY_ANIM(PLAYER::PLAYER_PED_ID(), l_96, sub_104D(l_336, 0, num4, num5), 4f, -4f, -1, 1, 0, 0, 0, 0);
  3558. sub_3841(1);
  3559. l_86 = 0;
  3560. l_106 = 0;
  3561. l_94 = 0;
  3562. sub_411A();
  3563. l_336 = 6;
  3564. }
  3565. return;
  3566. }
  3567. default:
  3568. return;
  3569. }
  3570. if (sub_5599(l_110) >= num3)
  3571. {
  3572. sub_F4AD(&l_86, 4);
  3573. }
  3574. Label_01AF:
  3575. if ((sub_6A02(l_109) != 0) && (sub_F6B7(l_86, 8) == 0))
  3576. {
  3577. if (sub_10B44() == 0)
  3578. {
  3579. num3 = 0.925f;
  3580. }
  3581. else
  3582. {
  3583. num3 = 0.986f;
  3584. }
  3585. if (sub_5599(l_109) >= num3)
  3586. {
  3587. sub_F4AD(&l_86, 8);
  3588. }
  3589. }
  3590. var num1 = sub_F6B7(l_86, 4);
  3591. if ((num1 & sub_F6B7(l_86, 8)) != 0)
  3592. {
  3593. if (sub_10B44() == 0)
  3594. {
  3595. sub_5529(num4, num5);
  3596. }
  3597. sub_54C0(num4, num5);
  3598. l_336 = 2;
  3599. }
  3600. }
  3601.  
  3602. void sub_411A()
  3603. {
  3604. bool flag1 = l_105 == 0;
  3605. if (flag1 & (sub_10B44() == 0))
  3606. {
  3607. if (sub_C1F(PLAYER::PLAYER_PED_ID()) == 0)
  3608. {
  3609. sub_4D3B();
  3610. }
  3611. sub_4608(296, 0, 0);
  3612. var num3 = sub_25E4(l_127);
  3613. if (num3 > -1)
  3614. {
  3615. sub_4576(num3);
  3616. }
  3617. else
  3618. {
  3619. sub_43A2(l_127);
  3620. }
  3621. }
  3622. l_105++;
  3623. sub_4173();
  3624. }
  3625.  
  3626. void sub_4173()
  3627. {
  3628. switch (sub_C1F(PLAYER::PLAYER_PED_ID()))
  3629. {
  3630. case 0:
  3631. setElem(getElem(0, ((&g_86838) + 7661) + 90, 4) + 1, 0, ((&g_86838) + 7661) + 90, 4);
  3632. sub_4216(0, 1, 1);
  3633. break;
  3634. case 1:
  3635. setElem(getElem(1, ((&g_86838) + 7661) + 90, 4) + 1, 1, ((&g_86838) + 7661) + 90, 4);
  3636. sub_4216(1, 1, 1);
  3637. break;
  3638. case 2:
  3639. setElem(getElem(2, ((&g_86838) + 7661) + 90, 4) + 1, 2, ((&g_86838) + 7661) + 90, 4);
  3640. sub_4216(2, 1, 1);
  3641. break;
  3642. case 3:
  3643. sub_4216(3, 1, 1);
  3644. break;
  3645. }
  3646. }
  3647.  
  3648. void sub_4216(var A_0, var A_1, var A_2)
  3649. {
  3650. var num4;
  3651. switch (A_0)
  3652. {
  3653. case 0:
  3654. case 1:
  3655. case 2:
  3656. setElem(getElem(A_0, getElemPtr(A_1, (((&g_86838) + 1729) + 539) + 1033, 16), 4) + A_2, A_0, getElemPtr(A_1, (((&g_86838) + 1729) + 539) + 1033, 16), 4);
  3657. return;
  3658. case 3:
  3659. num4 = 1948;
  3660. switch ((A_1))
  3661. {
  3662. case 1:
  3663. num4 = 72;
  3664. goto Label_0168;
  3665. case 3:
  3666. num4 = 74;
  3667. goto Label_0168;
  3668. case 2:
  3669. num4 = 73;
  3670. goto Label_0168;
  3671. case 4:
  3672. num4 = 75;
  3673. goto Label_0168;
  3674. case 5:
  3675. num4 = 76;
  3676. goto Label_0168;
  3677. case 6:
  3678. num4 = 77;
  3679. goto Label_0168;
  3680. case 7:
  3681. num4 = 78;
  3682. goto Label_0168;
  3683. }
  3684. break;
  3685. default:
  3686. return;
  3687. }
  3688. Label_0168:
  3689. if (num4 != 1948)
  3690. {
  3691. var num3 = sub_4370(num4, -1, 0) + A_2;
  3692. if (num3 > 100)
  3693. {
  3694. num3 = 100;
  3695. }
  3696. sub_4305(num4, num3, -1, 1);
  3697. }
  3698. }
  3699.  
  3700. void sub_4305(var A_0, var A_1, var A_2, var A_3)
  3701. {
  3702. var num3 = getElem(sub_4330(A_2), getElemPtr(A_0, &g_2405085, 24), 4);
  3703. if (num3 != 0)
  3704. {
  3705. STATS::STAT_SET_INT(num3, A_1, A_3);
  3706. }
  3707. }
  3708.  
  3709. var sub_4330(var A_0)
  3710. {
  3711. var num3 = A_0;
  3712. if (num3 == -1)
  3713. {
  3714. var num4 = sub_4364();
  3715. if (num4 > -1)
  3716. {
  3717. g_2404826 = 0;
  3718. num3 = num4;
  3719. }
  3720. else
  3721. {
  3722. num3 = 0;
  3723. g_2404826 = 1;
  3724. }
  3725. }
  3726. return num3;
  3727. }
  3728.  
  3729. var sub_4364()
  3730. {
  3731. return g_1338478;
  3732. }
  3733.  
  3734. var sub_4370(var A_0, var A_1, var A_2)
  3735. {
  3736. var num4;
  3737. if (STATS::STAT_GET_INT(getElem(sub_4330(A_1), getElemPtr(A_0, &g_2405085, 24), 4), &num4, -1) != 0)
  3738. {
  3739. return num4;
  3740. }
  3741. return 0;
  3742. }
  3743.  
  3744. void sub_43A2(var A_0)
  3745. {
  3746. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  3747. {
  3748. var num3 = sub_454B();
  3749. if (num3 != -1)
  3750. {
  3751. var num6;
  3752. sub_4576(num3);
  3753. PED::SET_PED_NAME_DEBUG(A_0, sub_44AE(num3));
  3754. wPtr(ENTITY::GET_ENTITY_MODEL(A_0), getElemPtr(num3, ((&g_86838) + 7661) + 1, 44) + 40);
  3755. var num5 = 0;
  3756. while (true)
  3757. {
  3758. if (num5 >= 2)
  3759. {
  3760. break;
  3761. }
  3762. var num4 = num5;
  3763. num6 = sub_449A(A_0, num4);
  3764. sub_4477(num3, num4, num6);
  3765. num5++;
  3766. }
  3767. num5 = 0;
  3768. while (true)
  3769. {
  3770. if (num5 >= 2)
  3771. {
  3772. break;
  3773. }
  3774. var num7 = num5;
  3775. num6 = sub_4463(A_0, num7);
  3776. sub_4440(num3, num7, num6);
  3777. num5++;
  3778. }
  3779. }
  3780. }
  3781. }
  3782.  
  3783. void sub_4440(var A_0, var A_1, var A_2)
  3784. {
  3785. if (A_0 > -1)
  3786. {
  3787. setElem(A_2, A_1, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44) + 28, 4);
  3788. }
  3789. }
  3790.  
  3791. var sub_4463(var A_0, var A_1)
  3792. {
  3793. return PED::GET_PED_TEXTURE_VARIATION(A_0, sub_26D9(A_1));
  3794. }
  3795.  
  3796. void sub_4477(var A_0, var A_1, var A_2)
  3797. {
  3798. if (A_0 > -1)
  3799. {
  3800. setElem(A_2, A_1, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44) + 16, 4);
  3801. }
  3802. }
  3803.  
  3804. var sub_449A(var A_0, var A_1)
  3805. {
  3806. return PED::GET_PED_DRAWABLE_VARIATION(A_0, sub_2778(A_1));
  3807. }
  3808.  
  3809. var sub_44AE(var A_0)
  3810. {
  3811. return sub_44BC(A_0);
  3812. }
  3813.  
  3814. var sub_44BC(var A_0)
  3815. {
  3816. var num3;
  3817. switch (A_0)
  3818. {
  3819. case 0:
  3820. num3 = "UPRO BABS";
  3821. break;
  3822. case 1:
  3823. num3 = "UPRO DANA";
  3824. break;
  3825. case 2:
  3826. num3 = "UPRO LIZZIE";
  3827. break;
  3828. case 3:
  3829. num3 = "UPRO AMANDA";
  3830. break;
  3831. case 4:
  3832. num3 = "UPRO ASHLEY";
  3833. break;
  3834. case 5:
  3835. num3 = "UPRO KRISTEN";
  3836. break;
  3837. case 6:
  3838. num3 = "UPRO SASHA";
  3839. break;
  3840. case 7:
  3841. num3 = "UPRO JACQUELINE";
  3842. break;
  3843. default:
  3844. num3 = "UPRO N/A";
  3845. break;
  3846. }
  3847. return num3;
  3848. }
  3849.  
  3850. var sub_454B()
  3851. {
  3852. for (var i = 0; i < 8; i++)
  3853. {
  3854. if (sub_2579(i) == 0)
  3855. {
  3856. return i;
  3857. }
  3858. }
  3859. return -1;
  3860. }
  3861.  
  3862. void sub_4576(var A_0)
  3863. {
  3864. if (A_0 > -1)
  3865. {
  3866. if (sub_B25() == 0)
  3867. {
  3868. setElem(getElem(0, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4) + 1, 0, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4);
  3869. }
  3870. else if (sub_B25() == 1)
  3871. {
  3872. setElem(getElem(1, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4) + 1, 1, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4);
  3873. }
  3874. else if (sub_B25() == 2)
  3875. {
  3876. setElem(getElem(2, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4) + 1, 2, getElemPtr(A_0, ((&g_86838) + 7661) + 1, 44), 4);
  3877. }
  3878. }
  3879. }
  3880.  
  3881. void sub_4608(var A_0, var A_1, var A_2)
  3882. {
  3883. bool flag1 = A_0 == 318;
  3884. if (!(flag1 | (A_0 > 318)))
  3885. {
  3886. sub_4B79(891 + A_0, 1, -1, 1);
  3887. }
  3888. var num3 = 1;
  3889. if (rPtr(getElemPtr(A_0, (&g_86838) + 7793, 48) + 20) == 1)
  3890. {
  3891. bool flag2 = rPtr(getElemPtr(A_0, (&g_86838) + 7793, 48) + 24) == 11;
  3892. if (flag2 | (rPtr(getElemPtr(A_0, (&g_86838) + 7793, 48) + 24) == 12))
  3893. {
  3894. num3 = 0;
  3895. }
  3896. }
  3897. else
  3898. {
  3899. wPtr(1, getElemPtr(A_0, (&g_86838) + 7793, 48) + 20);
  3900. wPtr(A_1, getElemPtr(A_0, (&g_86838) + 7793, 48) + 40);
  3901. wPtr(A_2, getElemPtr(A_0, (&g_86838) + 7793, 48) + 44);
  3902. if (A_0 == 287)
  3903. {
  3904. STATS::0x4AC39C6C(0x86267624, 50, 0);
  3905. }
  3906. if (A_0 == 286)
  3907. {
  3908. STATS::0x4AC39C6C(0x52AF42B, 50, 0);
  3909. }
  3910. if (A_0 == 299)
  3911. {
  3912. STATS::0x4AC39C6C(0xE99D3D10, 50, 0);
  3913. }
  3914. }
  3915. if (num3 != 0)
  3916. {
  3917. sub_46F0();
  3918. }
  3919. }
  3920.  
  3921. void sub_46F0()
  3922. {
  3923. var num3 = 0;
  3924. g_86617 = 0;
  3925. g_86618 = 0;
  3926. g_86619 = 0;
  3927. g_86620 = 0;
  3928. g_86621 = 0;
  3929. g_86622 = 0;
  3930. g_86623 = 0;
  3931. var num4 = 0f;
  3932. var num5 = 0f;
  3933. var num6 = 0f;
  3934. var num7 = 0f;
  3935. var num8 = 0f;
  3936. var num9 = 0f;
  3937. var num10 = 0f;
  3938. wPtr(0f, ((&g_86838) + 7793) + 3817);
  3939. Label_00A9:
  3940. if (num3 >= 318)
  3941. {
  3942. var num11;
  3943. if ((g_86600 > 0) && (g_86617 == g_86600))
  3944. {
  3945. num4 = 55f;
  3946. }
  3947. if ((g_86601 > 0) && (g_86618 == g_86601))
  3948. {
  3949. num5 = 10f;
  3950. }
  3951. if ((g_86602 > 0) && (g_86619 == g_86602))
  3952. {
  3953. num6 = 0f;
  3954. }
  3955. if ((g_86603 > 0) && (g_86620 == g_86603))
  3956. {
  3957. num7 = 10f;
  3958. }
  3959. if (g_86604 > 0)
  3960. {
  3961. bool flag1 = g_86621 == g_86604;
  3962. bool flag2 = flag1 | (((g_86604 * 10) / g_86621) < 41);
  3963. bool flag3 = flag2 | (g_86621 > g_86607);
  3964. if (flag3 | (g_86621 == g_86607))
  3965. {
  3966. if ((GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7793) + 3820), 14) == 0) && (g_86621 == g_86604))
  3967. {
  3968. STATS::0x4AC39C6C(0x817B5488, g_86604, 0);
  3969. GAMEPLAY::SET_BIT(((&g_86838) + 7793) + 3820, 14);
  3970. }
  3971. num8 = 5f;
  3972. }
  3973. }
  3974. if ((g_86605 > 0) && (g_86622 == g_86605))
  3975. {
  3976. num9 = 15f;
  3977. }
  3978. if ((g_86606 > 0) && (g_86623 == g_86606))
  3979. {
  3980. num10 = 5f;
  3981. }
  3982. wPtr((((((num4 + num5) + num6) + num7) + num8) + num9) + num10, ((&g_86838) + 7793) + 3817);
  3983. bool flag4 = g_86621 > g_86607;
  3984. if (flag4 | (g_86621 == g_86607))
  3985. {
  3986. num11 = g_86607;
  3987. }
  3988. else
  3989. {
  3990. num11 = g_86621;
  3991. }
  3992. STATS::STAT_SET_INT(0xC115F6B0, g_86617, 1);
  3993. STATS::STAT_SET_INT(0xE6FB1EBC, g_86600, 1);
  3994. STATS::STAT_SET_INT(0x4F5B53BA, g_86618, 1);
  3995. STATS::STAT_SET_INT(0x2053B0A0, g_86601, 1);
  3996. STATS::STAT_SET_INT(0x5D0E88A9, g_86619, 1);
  3997. STATS::STAT_SET_INT(0x214A068C, g_86602, 1);
  3998. STATS::STAT_SET_INT(0xCD2D71F9, g_86620, 1);
  3999. STATS::STAT_SET_INT(0xFEC8B0D8, g_86603, 1);
  4000. STATS::STAT_SET_INT(0x817B5488, num11, 1);
  4001. STATS::STAT_SET_INT(0xF32498EA, g_86607, 1);
  4002. STATS::STAT_SET_INT(0xF82362EF, g_86623 + g_86622, 1);
  4003. STATS::STAT_SET_INT(0x83A486E8, g_86606 + g_86605, 1);
  4004. g_86624 = (g_86617 * 100) / g_86600;
  4005. g_86626 = ((g_86619 + g_86618) * 100) / (g_86602 + g_86601);
  4006. g_86625 = ((g_86620 + num11) * 100) / (g_86603 + g_86607);
  4007. g_86627 = ((g_86622 + g_86623) * 100) / (g_86605 + g_86606);
  4008. STATS::STAT_SET_FLOAT(0x486CDCFF, rPtr(((&g_86838) + 7793) + 3817), 1);
  4009. STATS::STAT_SET_INT(0x6C11A0FD, g_86624, 1);
  4010. STATS::STAT_SET_INT(0xB82247AC, g_86625, 1);
  4011. STATS::STAT_SET_INT(0x1CA274FA, g_86626, 1);
  4012. if ((DATAFILE::0x5DCD0796() == 0) && (g_59842 == 0))
  4013. {
  4014. bool flag5 = sub_4B6E() != 2;
  4015. if (flag5 & (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0))
  4016. {
  4017. if (NETWORK::NETWORK_IS_CLOUD_AVAILABLE() != 0)
  4018. {
  4019. g_86615 = 0;
  4020. }
  4021. if (g_46771 == 0)
  4022. {
  4023. sub_3188();
  4024. }
  4025. }
  4026. }
  4027. }
  4028. else
  4029. {
  4030. if (rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 20) == 1)
  4031. {
  4032. switch (rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 24))
  4033. {
  4034. case 1:
  4035. g_86617++;
  4036. num4 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  4037. break;
  4038. case 3:
  4039. g_86618++;
  4040. num5 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  4041. break;
  4042. case 5:
  4043. g_86619++;
  4044. num6 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  4045. break;
  4046. case 7:
  4047. g_86620++;
  4048. num7 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  4049. break;
  4050. case 9:
  4051. g_86621++;
  4052. num8 += (rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16) * 4f);
  4053. break;
  4054. case 11:
  4055. g_86622++;
  4056. num9 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  4057. break;
  4058. case 13:
  4059. g_86623++;
  4060. num10 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  4061. break;
  4062. }
  4063. }
  4064. num3++;
  4065. goto Label_00A9;
  4066. }
  4067. }
  4068.  
  4069. var sub_4B6E()
  4070. {
  4071. return g_19455;
  4072. }
  4073.  
  4074. var sub_4B79(var A_0, var A_1, var A_2, var A_3)
  4075. {
  4076. if (A_2 == -1)
  4077. {
  4078. A_2 = sub_4364();
  4079. }
  4080. var num3 = 0;
  4081. bool flag1 = A_0 >= 0;
  4082. if (flag1 & (A_0 < 192))
  4083. {
  4084. var num4 = STATS::0xB5BF87B2((A_0) - 0, 0, 1, A_2);
  4085. var num5 = ((A_0) - 0) - (STATS::0xDFC25D66((A_0) - 0) * 64);
  4086. num3 = STATS::STAT_SET_BOOL_MASKED(num4, A_1, num5, A_3);
  4087. }
  4088. else
  4089. {
  4090. bool flag2 = A_0 >= 192;
  4091. if (flag2 & (A_0 < 384))
  4092. {
  4093. var num6 = STATS::0xB5BF87B2((A_0) - 192, 1, 1, A_2);
  4094. var num7 = ((A_0) - 192) - (STATS::0xDFC25D66((A_0) - 192) * 64);
  4095. num3 = STATS::STAT_SET_BOOL_MASKED(num6, A_1, num7, A_3);
  4096. }
  4097. else
  4098. {
  4099. bool flag3 = A_0 >= 513;
  4100. if (flag3 & (A_0 < 705))
  4101. {
  4102. var num8 = STATS::0xB5BF87B2((A_0) - 513, 0, 0, 0);
  4103. var num9 = ((A_0) - 513) - (STATS::0xDFC25D66((A_0) - 513) * 64);
  4104. num3 = STATS::STAT_SET_BOOL_MASKED(num8, A_1, num9, A_3);
  4105. }
  4106. else
  4107. {
  4108. bool flag4 = A_0 >= 705;
  4109. if (flag4 & (A_0 < 1281))
  4110. {
  4111. var num10 = STATS::0xB5BF87B2((A_0) - 705, 1, 0, 0);
  4112. var num11 = ((A_0) - 705) - (STATS::0xDFC25D66((A_0) - 705) * 64);
  4113. num3 = STATS::STAT_SET_BOOL_MASKED(num10, A_1, num11, A_3);
  4114. }
  4115. else
  4116. {
  4117. bool flag5 = A_0 >= 2598;
  4118. if (flag5 & (A_0 < 2790))
  4119. {
  4120. var num12 = STATS::0x3F8E893B((A_0) - 2598, 0, 1, A_2);
  4121. var num13 = ((A_0) - 2598) - (STATS::0xDFC25D66((A_0) - 2598) * 64);
  4122. num3 = STATS::STAT_SET_BOOL_MASKED(num12, A_1, num13, A_3);
  4123. }
  4124. else
  4125. {
  4126. bool flag6 = A_0 >= 2406;
  4127. if (flag6 & (A_0 < 2598))
  4128. {
  4129. var num14 = STATS::0x3F8E893B((A_0) - 2406, 0, 0, 0);
  4130. var num15 = ((A_0) - 2406) - (STATS::0xDFC25D66((A_0) - 2406) * 64);
  4131. num3 = STATS::STAT_SET_BOOL_MASKED(num14, A_1, num15, A_3);
  4132. }
  4133. }
  4134. }
  4135. }
  4136. }
  4137. }
  4138. return num3;
  4139. }
  4140.  
  4141. void sub_4D3B()
  4142. {
  4143. for (var i = 0; i < 2; i++)
  4144. {
  4145. if (i < 1)
  4146. {
  4147. setElem(getElem(i + 1, &g_78226, 4), i, &g_78226, 4);
  4148. }
  4149. else
  4150. {
  4151. setElem(GAMEPLAY::GET_GAME_TIMER(), i, &g_78226, 4);
  4152. }
  4153. }
  4154. }
  4155.  
  4156. void sub_4D7C(var A_0, var A_1)
  4157. {
  4158. var num3 = 2052;
  4159. if (sub_10B44() != 0)
  4160. {
  4161. num3 = 2056;
  4162. }
  4163. sub_4DE5(l_127, l_114, l_96, sub_104D(4, 1, A_0, A_1), 0.7f, 0.7f, num3, 0, 0.7f, 0);
  4164. sub_4DE5(PLAYER::PLAYER_PED_ID(), l_115, l_96, sub_104D(4, 0, A_0, A_1), 0.7f, 0.7f, num3, 0, 0.7f, 0);
  4165. }
  4166.  
  4167. void sub_4DE5(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6, var A_7, var A_8, var A_9)
  4168. {
  4169. if (sub_10B44() != 0)
  4170. {
  4171. NETWORK::NETWORK_START_SYNCHRONISED_SCENE(A_1);
  4172. }
  4173. else
  4174. {
  4175. AI::TASK_SYNCHRONIZED_SCENE(A_0, A_1, A_2, A_3, A_4, A_5, A_6, A_7, A_8, A_9);
  4176. }
  4177. }
  4178.  
  4179. void sub_4E15(var A_0, var A_1)
  4180. {
  4181. var num3 = 2052;
  4182. if (sub_10B44() != 0)
  4183. {
  4184. num3 = 2056;
  4185. }
  4186. sub_4EB3(&l_114, 1, 0, 0);
  4187. sub_4E8E(l_127, l_114, l_96, sub_104D(4, 1, A_0, A_1), 0.7f, 0.7f, num3, 0, 0.7f);
  4188. sub_4EB3(&l_115, 0, 0, 0);
  4189. sub_4E8E(PLAYER::PLAYER_PED_ID(), l_115, l_96, sub_104D(4, 0, A_0, A_1), 0.7f, 0.7f, num3, 0, 0.7f);
  4190. }
  4191.  
  4192. void sub_4E8E(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6, var A_7, var A_8)
  4193. {
  4194. if (sub_10B44() != 0)
  4195. {
  4196. NETWORK::NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(A_0, A_1, A_2, A_3, A_4, A_5, A_6, A_7, A_8);
  4197. }
  4198. }
  4199.  
  4200. void sub_4EB3(var A_0, var A_1, var A_2, var A_3)
  4201. {
  4202. var num3;
  4203. setStruct(0f, 0f, 0f, 3, &num3);
  4204. struct _s = &num3;
  4205. wPtr(sub_4F6B(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0f, 0f, 0f, A_3, A_2, 2), A_0);
  4206. if (A_1 == 0)
  4207. {
  4208. sub_4F39(rPtr(A_0), l_130, ENTITY::0xE4ECAC22(l_130, "seat_dside_f"));
  4209. }
  4210. else if (A_1 == 1)
  4211. {
  4212. sub_4F39(rPtr(A_0), l_130, ENTITY::0xE4ECAC22(l_130, "seat_pside_f"));
  4213. }
  4214. struct _s = &num3;
  4215. sub_4F19(rPtr(A_0), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0f, 0f, 0f, 0);
  4216. }
  4217.  
  4218. void sub_4F19(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6, var A_7)
  4219. {
  4220. if (sub_10B44() == 0)
  4221. {
  4222. struct _s = &A_1;
  4223. struct _s = &A_4;
  4224. PED::SET_SYNCHRONIZED_SCENE_ORIGIN(A_0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_7);
  4225. }
  4226. }
  4227.  
  4228. void sub_4F39(var A_0, var A_1, var A_2)
  4229. {
  4230. if (ENTITY::IS_ENTITY_DEAD(A_1) == 0)
  4231. {
  4232. if (sub_10B44() != 0)
  4233. {
  4234. NETWORK::NETWORK_ATTACH_SYNCHRONISED_SCENE_TO_ENTITY(A_0, A_1, A_2);
  4235. }
  4236. else
  4237. {
  4238. PED::ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(A_0, A_1, A_2);
  4239. }
  4240. }
  4241. }
  4242.  
  4243. var sub_4F6B(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6, var A_7, var A_8)
  4244. {
  4245. var num3;
  4246. if (sub_10B44() != 0)
  4247. {
  4248. if (A_6 != null)
  4249. {
  4250. A_7 = 0;
  4251. }
  4252. struct _s = &A_0;
  4253. struct _s = &A_3;
  4254. num3 = NETWORK::NETWORK_CREATE_SYNCHRONISED_SCENE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_8, A_6, A_7, 0x3F800000);
  4255. }
  4256. else
  4257. {
  4258. struct _s = &A_0;
  4259. struct _s = &A_3;
  4260. num3 = PED::CREATE_SYNCHRONIZED_SCENE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_8);
  4261. PED::0x2DE48DA1(num3, A_6);
  4262. PED::SET_SYNCHRONIZED_SCENE_LOOPED(num3, A_7);
  4263. }
  4264. return num3;
  4265. }
  4266.  
  4267. void sub_4FC0(var A_0, var A_1)
  4268. {
  4269. var num3 = 2052;
  4270. if (sub_10B44() != 0)
  4271. {
  4272. num3 = 2056;
  4273. }
  4274. sub_4DE5(l_127, l_113, l_96, sub_104D(3, 1, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f, 0);
  4275. sub_4DE5(PLAYER::PLAYER_PED_ID(), l_113, l_96, sub_104D(3, 0, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f, 0);
  4276. }
  4277.  
  4278. void sub_5029(var A_0, var A_1)
  4279. {
  4280. var num3 = 2052;
  4281. if (sub_10B44() != 0)
  4282. {
  4283. num3 = 2056;
  4284. }
  4285. sub_4EB3(&l_113, 0, 0, 1);
  4286. sub_4E8E(l_127, l_113, l_96, sub_104D(3, 1, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f);
  4287. sub_4E8E(PLAYER::PLAYER_PED_ID(), l_113, l_96, sub_104D(3, 0, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f);
  4288. }
  4289.  
  4290. var sub_5099(var A_0, var A_1, var A_2)
  4291. {
  4292. if (A_0 != null)
  4293. {
  4294. return A_1;
  4295. }
  4296. return A_2;
  4297. }
  4298.  
  4299. var sub_50B0()
  4300. {
  4301. var num4;
  4302. var num3 = sub_50E8();
  4303. if (num3 < 48)
  4304. {
  4305. num4 = 2;
  4306. }
  4307. else
  4308. {
  4309. bool flag1 = num3 >= 48;
  4310. if (flag1 & (num3 < 85))
  4311. {
  4312. num4 = 3;
  4313. }
  4314. else
  4315. {
  4316. num4 = 4;
  4317. }
  4318. }
  4319. return num4;
  4320. }
  4321.  
  4322. var sub_50E8()
  4323. {
  4324. if (sub_10B44() != 0)
  4325. {
  4326. return sub_4370(65, -1, 0);
  4327. }
  4328. return sub_5112(sub_C1F(PLAYER::PLAYER_PED_ID()), 1);
  4329. }
  4330.  
  4331. var sub_5112(var A_0, var A_1)
  4332. {
  4333. var num3;
  4334. STATS::STAT_GET_INT(sub_5130(A_0, A_1), &num3, -1);
  4335. return num3;
  4336. }
  4337.  
  4338. var sub_5130(var A_0, var A_1)
  4339. {
  4340. var num3;
  4341. var num4;
  4342. sub_5146(A_0, A_1, &num3, &num4);
  4343. return num3;
  4344. }
  4345.  
  4346. void sub_5146(var A_0, var A_1, var A_2, var A_3)
  4347. {
  4348. switch (A_0)
  4349. {
  4350. case 0:
  4351. switch ((A_1))
  4352. {
  4353. case 0:
  4354. wPtr(0x4ECD9F81, A_2);
  4355. return;
  4356. case 1:
  4357. wPtr(0x22C8AAA2, A_2);
  4358. return;
  4359. case 3:
  4360. wPtr(0x73968EBD, A_2);
  4361. return;
  4362. case 2:
  4363. wPtr(0x906B2799, A_2);
  4364. return;
  4365. case 4:
  4366. wPtr(0x11B47270, A_2);
  4367. return;
  4368. case 5:
  4369. wPtr(0x78ABE4E6, A_2);
  4370. return;
  4371. case 6:
  4372. wPtr(0xB4892709, A_2);
  4373. return;
  4374. case 7:
  4375. wPtr(0x2268B791, A_2);
  4376. return;
  4377. }
  4378. break;
  4379. case 1:
  4380. switch ((A_1))
  4381. {
  4382. case 0:
  4383. wPtr(0x51CCFBA3, A_2);
  4384. return;
  4385. case 1:
  4386. wPtr(0x255EFFB5, A_2);
  4387. return;
  4388. case 3:
  4389. wPtr(0x6C3BBB1A, A_2);
  4390. return;
  4391. case 2:
  4392. wPtr(0xB82874E3, A_2);
  4393. return;
  4394. case 4:
  4395. wPtr(0x7DD80AC8, A_2);
  4396. return;
  4397. case 5:
  4398. wPtr(0xE98BEE3D, A_2);
  4399. return;
  4400. case 6:
  4401. wPtr(0xCB261497, A_2);
  4402. return;
  4403. case 7:
  4404. wPtr(0xE76D0C23, A_2);
  4405. return;
  4406. }
  4407. break;
  4408. case 2:
  4409. switch ((A_1))
  4410. {
  4411. case 0:
  4412. wPtr(0x5B06442, A_2);
  4413. return;
  4414. case 1:
  4415. wPtr(0x7D8246AE, A_2);
  4416. return;
  4417. case 3:
  4418. wPtr(0x7E9487B3, A_2);
  4419. return;
  4420. case 2:
  4421. wPtr(0x4F19E159, A_2);
  4422. return;
  4423. case 4:
  4424. wPtr(0x6BEF592F, A_2);
  4425. return;
  4426. case 5:
  4427. wPtr(0x77CF9710, A_2);
  4428. return;
  4429. case 6:
  4430. wPtr(0x2A3A74EA, A_2);
  4431. return;
  4432. case 7:
  4433. wPtr(0xD03B7EEB, A_2);
  4434. return;
  4435. }
  4436. break;
  4437. case 3:
  4438. switch ((A_1))
  4439. {
  4440. case 0:
  4441. wPtr(64, A_3);
  4442. return;
  4443. case 1:
  4444. wPtr(65, A_3);
  4445. return;
  4446. case 3:
  4447. wPtr(67, A_3);
  4448. return;
  4449. case 2:
  4450. wPtr(66, A_3);
  4451. return;
  4452. case 4:
  4453. wPtr(68, A_3);
  4454. return;
  4455. case 5:
  4456. wPtr(69, A_3);
  4457. return;
  4458. case 6:
  4459. wPtr(70, A_3);
  4460. return;
  4461. case 7:
  4462. wPtr(71, A_3);
  4463. return;
  4464. }
  4465. break;
  4466. }
  4467. }
  4468.  
  4469. var sub_539D()
  4470. {
  4471. var num3;
  4472. if (l_328 != 0)
  4473. {
  4474. if (l_94 < 2)
  4475. {
  4476. num3 = 3;
  4477. }
  4478. else if (l_94 == 2)
  4479. {
  4480. num3 = 4;
  4481. }
  4482. else if (l_94 == 3)
  4483. {
  4484. num3 = 5;
  4485. }
  4486. else
  4487. {
  4488. num3 = 6;
  4489. }
  4490. }
  4491. else if (l_94 < 3)
  4492. {
  4493. num3 = 2;
  4494. }
  4495. else
  4496. {
  4497. num3 = 3;
  4498. }
  4499. return num3;
  4500. }
  4501.  
  4502. void sub_53E7(var A_0, var A_1)
  4503. {
  4504. var num3 = 2052;
  4505. if (sub_10B44() != 0)
  4506. {
  4507. num3 = 2056;
  4508. }
  4509. sub_4DE5(l_127, l_112, l_96, sub_104D(2, 1, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f, 0);
  4510. sub_4DE5(PLAYER::PLAYER_PED_ID(), l_112, l_96, sub_104D(2, 0, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f, 0);
  4511. }
  4512.  
  4513. void sub_5450(var A_0, var A_1)
  4514. {
  4515. var num3 = 2052;
  4516. if (sub_10B44() != 0)
  4517. {
  4518. num3 = 2056;
  4519. }
  4520. sub_4EB3(&l_112, 0, 1, 0);
  4521. sub_4E8E(l_127, l_112, l_96, sub_104D(2, 1, A_0, A_1), 1000f, -1000f, num3, 0, 0x447A0000);
  4522. sub_4E8E(PLAYER::PLAYER_PED_ID(), l_112, l_96, sub_104D(2, 0, A_0, A_1), 1000f, -1000f, num3, 0, 0x447A0000);
  4523. }
  4524.  
  4525. void sub_54C0(var A_0, var A_1)
  4526. {
  4527. var num3 = 2052;
  4528. if (sub_10B44() != 0)
  4529. {
  4530. num3 = 2056;
  4531. }
  4532. sub_4DE5(l_127, l_111, l_96, sub_104D(1, 1, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f, 0);
  4533. sub_4DE5(PLAYER::PLAYER_PED_ID(), l_111, l_96, sub_104D(1, 0, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f, 0);
  4534. }
  4535.  
  4536. void sub_5529(var A_0, var A_1)
  4537. {
  4538. var num3 = 2052;
  4539. if (sub_10B44() != 0)
  4540. {
  4541. num3 = 2056;
  4542. }
  4543. sub_4EB3(&l_111, 0, 0, 1);
  4544. sub_4E8E(l_127, l_111, l_96, sub_104D(1, 1, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f);
  4545. sub_4E8E(PLAYER::PLAYER_PED_ID(), l_111, l_96, sub_104D(1, 0, A_0, A_1), 0.7f, -0.7f, num3, 0, 0.7f);
  4546. }
  4547.  
  4548. var sub_5599(var A_0)
  4549. {
  4550. var num3;
  4551. if (sub_10B44() != 0)
  4552. {
  4553. num3 = PED::GET_SYNCHRONIZED_SCENE_PHASE(NETWORK::0x16AED87B(A_0));
  4554. }
  4555. else
  4556. {
  4557. num3 = PED::GET_SYNCHRONIZED_SCENE_PHASE(A_0);
  4558. }
  4559. return num3;
  4560. }
  4561.  
  4562. void sub_55C1(var A_0)
  4563. {
  4564. if (sub_6A02(A_0) == 0)
  4565. {
  4566. }
  4567. }
  4568.  
  4569. void sub_55D6(var A_0, var A_1)
  4570. {
  4571. var num3 = 2052;
  4572. if (sub_10B44() != 0)
  4573. {
  4574. num3 = 2056;
  4575. }
  4576. sub_4DE5(l_127, l_109, l_96, sub_104D(0, 1, A_0, A_1), 8f, -0.7f, num3, 0, 1000f, 0);
  4577. sub_4DE5(PLAYER::PLAYER_PED_ID(), l_110, l_96, sub_104D(0, 0, A_0, A_1), 8f, -0.7f, num3, 0, 1000f, 0);
  4578. }
  4579.  
  4580. void sub_563F(var A_0, var A_1)
  4581. {
  4582. var num3 = 2052;
  4583. if (sub_10B44() != 0)
  4584. {
  4585. num3 = 2056;
  4586. }
  4587. sub_4EB3(&l_109, 1, 0, 1);
  4588. sub_4E8E(l_127, l_109, l_96, sub_104D(0, 1, A_0, A_1), 4f, -1000f, num3, 0, 0x447A0000);
  4589. sub_4EB3(&l_110, 0, 0, 1);
  4590. sub_4E8E(PLAYER::PLAYER_PED_ID(), l_110, l_96, sub_104D(0, 0, A_0, A_1), 4f, -1000f, num3, 0, 0x447A0000);
  4591. }
  4592.  
  4593. void sub_56B0(var A_0, var A_1)
  4594. {
  4595. if (PED::IS_PED_IN_VEHICLE(A_0, l_130, 0) == 0)
  4596. {
  4597. if (sub_10B44() == 0)
  4598. {
  4599. PED::SET_PED_INTO_VEHICLE(A_0, l_130, A_1);
  4600. }
  4601. else if (PED::IS_PED_IN_VEHICLE(A_0, l_130, 0) == 0)
  4602. {
  4603. AI::TASK_ENTER_VEHICLE(A_0, l_130, -1, A_1, 2f, 16, 0);
  4604. }
  4605. }
  4606. }
  4607.  
  4608. void sub_56F6(var A_0)
  4609. {
  4610. var num5;
  4611. var num9;
  4612. struct _s = sub_58CB(2);
  4613. struct _s = ENTITY::0x7C6339DF(l_130, ENTITY::0xE4ECAC22(l_130, "windscreen"));
  4614. var num3 = sub_58B1(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  4615. struct _s = sub_58CB(1);
  4616. struct _s = ENTITY::0x7C6339DF(l_130, ENTITY::0xE4ECAC22(l_130, "windscreen"));
  4617. var num4 = sub_58B1(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  4618. struct _s = ENTITY::GET_ENTITY_ROTATION(l_130, 2);
  4619. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num5);
  4620. var num8 = ENTITY::GET_ENTITY_HEADING(l_130);
  4621. if (num8 >= 180f)
  4622. {
  4623. num9 = num8 - (180f);
  4624. }
  4625. else
  4626. {
  4627. num9 = num8 + (180f);
  4628. }
  4629. var num10 = (-7f) - rPtr((&num5) + 1);
  4630. var num11 = (-5f) - num5;
  4631. var num12 = (-2.5f) + num5;
  4632. var num13 = ((0f - (0.7f * num5)) + (0.3f * rPtr((&num5) + 1)));
  4633. if (CAM::DOES_CAM_EXIST(getElem(2, &l_344, 28)) == 0)
  4634. {
  4635. struct _s = sub_58CB(2);
  4636. sub_5860(getElemPtr(2, &l_344, 28), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), num10, num5, num3, 50f);
  4637. }
  4638. if (CAM::DOES_CAM_EXIST(getElem(1, &l_344, 28)) == 0)
  4639. {
  4640. struct _s = sub_58CB(1);
  4641. sub_5860(getElemPtr(1, &l_344, 28), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), num13, -rPtr((&num5) + 1), num4, 37.3f);
  4642. }
  4643. if (CAM::DOES_CAM_EXIST(getElem(0, &l_344, 28)) == 0)
  4644. {
  4645. struct _s = sub_58CB(0);
  4646. sub_5860(getElemPtr(0, &l_344, 28), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), num11, -rPtr((&num5) + 1), num9, 50f);
  4647. }
  4648. if (CAM::DOES_CAM_EXIST(getElem(3, &l_344, 28)) == 0)
  4649. {
  4650. struct _s = sub_58CB(3);
  4651. sub_5860(getElemPtr(3, &l_344, 28), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), num12, rPtr((&num5) + 1), num8, 45f);
  4652. }
  4653. CAM::RENDER_SCRIPT_CAMS(1, 0, 3000, 1, 0);
  4654. CAM::SET_CAM_ACTIVE(getElem(rPtr(A_0), &l_344, 28), 1);
  4655. }
  4656.  
  4657. void sub_5860(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6, var A_7)
  4658. {
  4659. struct _s = &A_4;
  4660. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, (A_0) + 4);
  4661. setStruct(0f, 0f, 0f, 3, (A_0) + 16);
  4662. wPtr(CAM::CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", 0), A_0);
  4663. CAM::SET_CAM_ACTIVE(rPtr(A_0), 1);
  4664. struct _s = &A_1;
  4665. struct _s = (A_0) + 4;
  4666. CAM::SET_CAM_PARAMS(rPtr(A_0), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_7, 0, 1, 1, 2);
  4667. CAM::RENDER_SCRIPT_CAMS(1, 0, 3000, 1, 0);
  4668. }
  4669.  
  4670. var sub_58B1(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  4671. {
  4672. return GAMEPLAY::GET_HEADING_FROM_VECTOR_2D((A_3 - A_0), rPtr((&A_3) + 4) - rPtr((&A_0) + 4));
  4673. }
  4674.  
  4675. var sub_58CB(var A_0)
  4676. {
  4677. var num3;
  4678. var num6;
  4679. var num9;
  4680. var num12;
  4681. var num15;
  4682. if (ENTITY::IS_ENTITY_DEAD(l_127) == 0)
  4683. {
  4684. }
  4685. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_130, 0) == 0)
  4686. {
  4687. }
  4688. GAMEPLAY::GET_MODEL_DIMENSIONS(ENTITY::GET_ENTITY_MODEL(l_130), &num6, &num9);
  4689. struct _s = ENTITY::0x7C6339DF(l_130, ENTITY::0xE4ECAC22(l_130, "windscreen"));
  4690. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num12);
  4691. struct _s = &num12;
  4692. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(l_130, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  4693. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num15);
  4694. switch (A_0)
  4695. {
  4696. case 0:
  4697. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_130, 0f, rPtr((&num9) + 1) + (1.4f), rPtr((&num15) + 2));
  4698. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  4699. break;
  4700. case 1:
  4701. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_130, 1.5f, rPtr((&num9) + 1) + (1.2f), rPtr((&num15) + 2) - (0.1f));
  4702. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  4703. break;
  4704. case 2:
  4705. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_130, -3.7f, 0.7f, rPtr((&num15) + 2));
  4706. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  4707. break;
  4708. case 3:
  4709. struct _s = sub_59A3();
  4710. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  4711. break;
  4712. }
  4713. struct _s = &num3;
  4714. return buildStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  4715. }
  4716.  
  4717. var sub_59A3()
  4718. {
  4719. var num3;
  4720. var num6;
  4721. var num9;
  4722. var num12;
  4723. GAMEPLAY::GET_MODEL_DIMENSIONS(ENTITY::GET_ENTITY_MODEL(l_130), &num9, &num12);
  4724. struct _s = ENTITY::0x7C6339DF(l_130, ENTITY::0xE4ECAC22(l_130, "windscreen"));
  4725. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  4726. struct _s = &num3;
  4727. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(l_130, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  4728. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  4729. wPtr(rPtr((&num6) + 2) + (0.09f), (&num6) + 2);
  4730. wPtr(rPtr((&num9) + 1) - (1f), (&num9) + 1);
  4731. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_130, 0f, -GAMEPLAY::ABSF(rPtr((&num9) + 1)), rPtr((&num6) + 2));
  4732. return buildStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  4733. }
  4734.  
  4735. void sub_5A07(var A_0, var A_1)
  4736. {
  4737. if (A_1 != null)
  4738. {
  4739. GAMEPLAY::SET_BIT(&g_19694, A_0);
  4740. }
  4741. else
  4742. {
  4743. GAMEPLAY::CLEAR_BIT(&g_19694, A_0);
  4744. }
  4745. }
  4746.  
  4747. void sub_5A29(var A_0)
  4748. {
  4749. if ((CAM::DOES_CAM_EXIST(getElem(rPtr(A_0), &l_344, 28)) != 0) && (CAM::IS_CAM_RENDERING(getElem(rPtr(A_0), &l_344, 28)) != 0))
  4750. {
  4751. CAM::SHAKE_CAM(getElem(rPtr(A_0), &l_344, 28), "HAND_SHAKE", 0.25f);
  4752. if (UI::IS_PAUSE_MENU_ACTIVE() == 0)
  4753. {
  4754. sub_5B8B(getElemPtr(rPtr(A_0), &l_344, 28));
  4755. }
  4756. if (sub_5B59() != 0)
  4757. {
  4758. if ((sub_10B44() == 0) && (sub_F422("PROS_CAM_OC") == 0))
  4759. {
  4760. sub_35FC("PROS_CAM_OC");
  4761. }
  4762. }
  4763. else
  4764. {
  4765. if ((sub_10B44() == 0) && (sub_F422("PROS_CAM_TOG") == 0))
  4766. {
  4767. sub_35FC("PROS_CAM_TOG");
  4768. }
  4769. CONTROLS::SET_INPUT_EXCLUSIVE(2, 184);
  4770. if (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 184) != 0)
  4771. {
  4772. sub_5AE6(A_0);
  4773. CAM::SET_CAM_ACTIVE(getElem(rPtr(A_0), &l_344, 28), 1);
  4774. }
  4775. }
  4776. }
  4777. }
  4778.  
  4779. void sub_5AE6(var A_0)
  4780. {
  4781. if (rPtr(A_0) < 3)
  4782. {
  4783. wPtr(rPtr(A_0) + 1, A_0);
  4784. }
  4785. else if (rPtr(A_0) == 3)
  4786. {
  4787. wPtr(0, A_0);
  4788. }
  4789. if ((rPtr(A_0) == 0) && (sub_F6B7(l_87, 16) != 0))
  4790. {
  4791. wPtr(rPtr(A_0) + 1, A_0);
  4792. }
  4793. if ((rPtr(A_0) == 1) && (sub_F6B7(l_87, 128) != 0))
  4794. {
  4795. wPtr(rPtr(A_0) + 1, A_0);
  4796. }
  4797. if ((rPtr(A_0) == 2) && (sub_F6B7(l_87, 64) != 0))
  4798. {
  4799. wPtr(rPtr(A_0) + 1, A_0);
  4800. }
  4801. }
  4802.  
  4803. var sub_5B59()
  4804. {
  4805. var num1 = sub_F6B7(l_87, 16);
  4806. var num6 = num1 & sub_F6B7(l_87, 64);
  4807. if ((num6 & sub_F6B7(l_87, 128)) != 0)
  4808. {
  4809. return 1;
  4810. }
  4811. return 0;
  4812. }
  4813.  
  4814. void sub_5B8B(var A_0)
  4815. {
  4816. var num3;
  4817. var num8;
  4818. var num12;
  4819. initArray(&num3, 4);
  4820. CONTROLS::0x2CEDE6C5(2);
  4821. sub_5CE3(getElemPtr(0, &num3, 4), getElemPtr(1, &num3, 4), getElemPtr(2, &num3, 4), getElemPtr(3, &num3, 4), 0);
  4822. wPtr((-(SYSTEM::TO_FLOAT(getElem(2, &num3, 4)) / 127f) * 10f), (&num8) + 2);
  4823. wPtr(((-rPtr((&num8) + 2) * 3f) / 10f), (&num8) + 1);
  4824. if (CONTROLS::IS_LOOK_INVERTED() != 0)
  4825. {
  4826. num8 = ((SYSTEM::TO_FLOAT(getElem(3, &num3, 4)) / 127f) * 10f);
  4827. }
  4828. else
  4829. {
  4830. num8 = (-(SYSTEM::TO_FLOAT(getElem(3, &num3, 4)) / 127f) * 10f);
  4831. }
  4832. var num11 = (30f * SYSTEM::TIMESTEP());
  4833. struct _s = &num8;
  4834. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num12);
  4835. wPtr(rPtr((A_0) + 16) + sub_5CBC((((num12 - rPtr((A_0) + 16)) * 0.05f) * num11), -3f, 3f), (A_0) + 16);
  4836. wPtr(rPtr(((A_0) + 16) + 4) + sub_5CBC((((rPtr((&num12) + 1) - rPtr(((A_0) + 16) + 4)) * 0.05f) * num11), -3f, 3f), ((A_0) + 16) + 4);
  4837. wPtr(rPtr(((A_0) + 16) + 8) + sub_5CBC((((rPtr((&num12) + 2) - rPtr(((A_0) + 16) + 8)) * 0.05f) * num11), -3f, 3f), ((A_0) + 16) + 8);
  4838. struct _s = (A_0) + 4;
  4839. struct _s = (A_0) + 16;
  4840. struct _s = vadd(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  4841. CAM::SET_CAM_ROT(rPtr(A_0), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2);
  4842. }
  4843.  
  4844. var sub_5CBC(var A_0, var A_1, var A_2)
  4845. {
  4846. if (A_0 > A_2)
  4847. {
  4848. return A_2;
  4849. }
  4850. if (A_0 < A_1)
  4851. {
  4852. return A_1;
  4853. }
  4854. return A_0;
  4855. }
  4856.  
  4857. void sub_5CE3(var A_0, var A_1, var A_2, var A_3, var A_4)
  4858. {
  4859. wPtr(SYSTEM::FLOOR((CONTROLS::GET_CONTROL_NORMAL(2, 185) * 127f)), A_0);
  4860. wPtr(SYSTEM::FLOOR((CONTROLS::GET_CONTROL_NORMAL(2, 186) * 127f)), A_1);
  4861. wPtr(SYSTEM::FLOOR((CONTROLS::GET_CONTROL_NORMAL(2, 187) * 127f)), A_2);
  4862. wPtr(SYSTEM::FLOOR((CONTROLS::GET_CONTROL_NORMAL(2, 188) * 127f)), A_3);
  4863. if (A_4 != null)
  4864. {
  4865. bool flag1 = itof(rPtr(A_0)) == 0f;
  4866. if (flag1 & (itof(rPtr(A_1)) == 0f))
  4867. {
  4868. wPtr(SYSTEM::FLOOR((CONTROLS::GET_DISABLED_CONTROL_NORMAL(2, 185) * 127f)), A_0);
  4869. wPtr(SYSTEM::FLOOR((CONTROLS::GET_DISABLED_CONTROL_NORMAL(2, 186) * 127f)), A_1);
  4870. }
  4871. bool flag2 = itof(rPtr(A_2)) == 0f;
  4872. if (flag2 & (itof(rPtr(A_3)) == 0f))
  4873. {
  4874. wPtr(SYSTEM::FLOOR((CONTROLS::GET_DISABLED_CONTROL_NORMAL(2, 187) * 127f)), A_2);
  4875. wPtr(SYSTEM::FLOOR((CONTROLS::GET_DISABLED_CONTROL_NORMAL(2, 188) * 127f)), A_3);
  4876. }
  4877. }
  4878. }
  4879.  
  4880. void sub_5DB8()
  4881. {
  4882. if (sub_61BC() == 0)
  4883. {
  4884. if ((sub_615E(l_127) != 0) && (sub_F6B7(l_85, 256) == 0))
  4885. {
  4886. AUDIO::STOP_CURRENT_PLAYING_AMBIENT_SPEECH(PLAYER::PLAYER_PED_ID());
  4887. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "SEX_CLIMAX", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  4888. if (l_105 == 1)
  4889. {
  4890. if (sub_10B44() == 0)
  4891. {
  4892. PLAYER::0x72429998(PLAYER::PLAYER_ID(), 15, 1);
  4893. }
  4894. CONTROLS::SET_PAD_SHAKE(0, 4000, 252);
  4895. }
  4896. else if (l_105 == 2)
  4897. {
  4898. if (sub_10B44() == 0)
  4899. {
  4900. PLAYER::0x72429998(PLAYER::PLAYER_ID(), 10, 1);
  4901. }
  4902. CONTROLS::SET_PAD_SHAKE(0, 4000, 210);
  4903. }
  4904. else
  4905. {
  4906. if (sub_10B44() == 0)
  4907. {
  4908. PLAYER::0x72429998(PLAYER::PLAYER_ID(), 5, 1);
  4909. }
  4910. CONTROLS::SET_PAD_SHAKE(0, 3000, 168);
  4911. }
  4912. sub_F4AD(&l_85, 256);
  4913. }
  4914. }
  4915. else
  4916. {
  4917. switch (l_329)
  4918. {
  4919. case 0:
  4920. if (ENTITY::0x66571CA0(l_127, 0x3438B9BD) != 0)
  4921. {
  4922. CONTROLS::SET_PAD_SHAKE(0, 200, 84);
  4923. ENTITY::APPLY_FORCE_TO_ENTITY(l_130, 1, 0f, 0f, -0.05f, 0f, 0f, 0f, 0, 1, 1, 1, 1, 0);
  4924. sub_60F5();
  4925. }
  4926. break;
  4927. case 1:
  4928. case 2:
  4929. var num3;
  4930. if (sub_F6B7(l_85, 32768) == 0)
  4931. {
  4932. if (ENTITY::0x66571CA0(l_127, 0x3438B9BD) != 0)
  4933. {
  4934. CONTROLS::SET_PAD_SHAKE(0, 200, 252);
  4935. ENTITY::APPLY_FORCE_TO_ENTITY(l_130, 1, 0f, 0f, -0.25f, 0f, 0f, 0f, 0, 1, 1, 1, 1, 0);
  4936. sub_60F5();
  4937. }
  4938. break;
  4939. }
  4940. if (sub_10B44() == 0)
  4941. {
  4942. num3 = l_112;
  4943. }
  4944. else
  4945. {
  4946. num3 = NETWORK::0x16AED87B(l_112);
  4947. }
  4948. if (PED::IS_SYNCHRONIZED_SCENE_RUNNING(num3) != 0)
  4949. {
  4950. bool flag27;
  4951. bool flag25;
  4952. bool flag23;
  4953. bool flag21;
  4954. bool flag19;
  4955. bool flag17;
  4956. bool flag15;
  4957. bool flag13;
  4958. bool flag11;
  4959. bool flag9;
  4960. bool flag7;
  4961. bool flag5;
  4962. bool flag3;
  4963. var num4 = PED::GET_SYNCHRONIZED_SCENE_PHASE(num3);
  4964. bool flag1 = num4 > 0.01f;
  4965. bool flag2 = flag1 & (num4 < 0.019f);
  4966. if (!flag2)
  4967. {
  4968. flag3 = num4 > 0.093f;
  4969. }
  4970. bool flag4 = flag2 | (flag3 & (num4 < 0.1f));
  4971. if (!flag4)
  4972. {
  4973. flag5 = num4 > 0.165f;
  4974. }
  4975. bool flag6 = flag4 | (flag5 & (num4 < 0.172f));
  4976. if (!flag6)
  4977. {
  4978. flag7 = num4 > 0.231f;
  4979. }
  4980. bool flag8 = flag6 | (flag7 & (num4 < 0.239f));
  4981. if (!flag8)
  4982. {
  4983. flag9 = num4 > 0.308f;
  4984. }
  4985. bool flag10 = flag8 | (flag9 & (num4 < 0.317f));
  4986. if (!flag10)
  4987. {
  4988. flag11 = num4 > 0.37f;
  4989. }
  4990. bool flag12 = flag10 | (flag11 & (num4 < 0.378f));
  4991. if (!flag12)
  4992. {
  4993. flag13 = num4 > 0.437f;
  4994. }
  4995. bool flag14 = flag12 | (flag13 & (num4 < 0.443f));
  4996. if (!flag14)
  4997. {
  4998. flag15 = num4 > 0.507f;
  4999. }
  5000. bool flag16 = flag14 | (flag15 & (num4 < 0.518f));
  5001. if (!flag16)
  5002. {
  5003. flag17 = num4 > 0.58f;
  5004. }
  5005. bool flag18 = flag16 | (flag17 & (num4 < 0.587f));
  5006. if (!flag18)
  5007. {
  5008. flag19 = num4 > 0.651f;
  5009. }
  5010. bool flag20 = flag18 | (flag19 & (num4 < 0.659f));
  5011. if (!flag20)
  5012. {
  5013. flag21 = num4 > 0.72f;
  5014. }
  5015. bool flag22 = flag20 | (flag21 & (num4 < 0.729f));
  5016. if (!flag22)
  5017. {
  5018. flag23 = num4 > 0.788f;
  5019. }
  5020. bool flag24 = flag22 | (flag23 & (num4 < 0.794f));
  5021. if (!flag24)
  5022. {
  5023. flag25 = num4 > 0.862f;
  5024. }
  5025. bool flag26 = flag24 | (flag25 & (num4 < 0.87f));
  5026. if (!flag26)
  5027. {
  5028. flag27 = num4 > 0.937f;
  5029. }
  5030. if (flag26 | (flag27 & (num4 < 0.946f)))
  5031. {
  5032. if (sub_101A1(512) == 0)
  5033. {
  5034. CONTROLS::SET_PAD_SHAKE(0, 200, 252);
  5035. ENTITY::APPLY_FORCE_TO_ENTITY(l_130, 1, 0f, 0f, -0.25f, 0f, 0f, 0f, 0, 1, 1, 1, 1, 0);
  5036. sub_60F5();
  5037. sub_60D9(512);
  5038. }
  5039. }
  5040. else
  5041. {
  5042. sub_10463(512);
  5043. }
  5044. }
  5045. return;
  5046. }
  5047. }
  5048. }
  5049.  
  5050. void sub_60D9(var A_0)
  5051. {
  5052. if (sub_F6B7(l_88, A_0) == 0)
  5053. {
  5054. sub_F4AD(&l_88, A_0);
  5055. }
  5056. }
  5057.  
  5058. void sub_60F5()
  5059. {
  5060. var num3 = ENTITY::GET_ENTITY_HEALTH(PLAYER::PLAYER_PED_ID()) + (1 + l_328);
  5061. if (num3 > ENTITY::GET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID()))
  5062. {
  5063. num3 = ENTITY::GET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID());
  5064. }
  5065. ENTITY::SET_ENTITY_HEALTH(PLAYER::PLAYER_PED_ID(), num3);
  5066. sub_6136();
  5067. }
  5068.  
  5069. void sub_6136()
  5070. {
  5071. if ((sub_10B44() != 0) && (ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0))
  5072. {
  5073. l_92 = ENTITY::GET_ENTITY_HEALTH(PLAYER::PLAYER_PED_ID());
  5074. }
  5075. }
  5076.  
  5077. var sub_615E(var A_0)
  5078. {
  5079. var num1 = ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_1749(), sub_14ED(11), 3);
  5080. var num7 = num1 | ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_1749(), sub_14ED(21), 3);
  5081. var num8 = num7 | ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_173D(), sub_132F(11), 3);
  5082. return (num8 | ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, sub_173D(), sub_132F(21), 3));
  5083. }
  5084.  
  5085. var sub_61BC()
  5086. {
  5087. return ENTITY::IS_ENTITY_PLAYING_ANIM(l_127, l_96, sub_61D8(l_127, sub_16EE(), 1), 3);
  5088. }
  5089.  
  5090. var sub_61D8(var A_0, var A_1, var A_2)
  5091. {
  5092. var num3 = "";
  5093. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  5094. {
  5095. var num4 = PED::GET_VEHICLE_PED_IS_IN(A_0, 1);
  5096. if (VEHICLE::IS_VEHICLE_DRIVEABLE(num4, 0) != 0)
  5097. {
  5098. if (sub_16AB(num4) != 0)
  5099. {
  5100. if (A_1 != null)
  5101. {
  5102. if (A_2 != null)
  5103. {
  5104. num3 = sub_14ED(20);
  5105. }
  5106. else
  5107. {
  5108. num3 = sub_14ED(25);
  5109. }
  5110. }
  5111. else if (A_2 != null)
  5112. {
  5113. num3 = sub_14ED(10);
  5114. }
  5115. else
  5116. {
  5117. num3 = sub_14ED(15);
  5118. }
  5119. }
  5120. else if (A_1 != null)
  5121. {
  5122. if (A_2 != null)
  5123. {
  5124. num3 = sub_132F(20);
  5125. }
  5126. else
  5127. {
  5128. num3 = sub_132F(25);
  5129. }
  5130. }
  5131. else if (A_2 != null)
  5132. {
  5133. num3 = sub_132F(10);
  5134. }
  5135. else
  5136. {
  5137. num3 = sub_132F(15);
  5138. }
  5139. }
  5140. }
  5141. return num3;
  5142. }
  5143.  
  5144. void sub_6281()
  5145. {
  5146. if (sub_61BC() != 0)
  5147. {
  5148. if (sub_10B44() != 0)
  5149. {
  5150. sub_640F();
  5151. }
  5152. var num1 = AUDIO::IS_ANY_SPEECH_PLAYING(l_127);
  5153. if (((num1 | AUDIO::IS_ANY_SPEECH_PLAYING(PLAYER::PLAYER_PED_ID())) == 0) && (GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 5000) > 2500))
  5154. {
  5155. sub_62CB();
  5156. }
  5157. }
  5158. }
  5159.  
  5160. void sub_62CB()
  5161. {
  5162. if (PED::IS_PED_INJURED(l_127) == 0)
  5163. {
  5164. bool flag1 = AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0;
  5165. if (flag1 & (AUDIO::IS_ANY_SPEECH_PLAYING(PLAYER::PLAYER_PED_ID()) == 0))
  5166. {
  5167. if (l_328 == 0)
  5168. {
  5169. sub_3C4C("PROSTITUTES_BJ_SPEECH_SCENE");
  5170. }
  5171. if (sub_652(&l_138) == 0)
  5172. {
  5173. sub_F453(&l_138);
  5174. }
  5175. else if (sub_5D9(&l_138) > GAMEPLAY::GET_RANDOM_FLOAT_IN_RANGE(2f, 5f))
  5176. {
  5177. if (sub_F6B7(l_85, 0x10000) == 0)
  5178. {
  5179. sub_F4AD(&l_85, 0x10000);
  5180. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "SEX_GENERIC", "SPEECH_PARAMS_FORCE_NORMAL_CLEAR");
  5181. sub_636B(l_329);
  5182. }
  5183. else
  5184. {
  5185. sub_5B4(&l_85, 0x10000);
  5186. sub_E7E(&l_138);
  5187. }
  5188. }
  5189. }
  5190. }
  5191. }
  5192.  
  5193. void sub_636B(var A_0)
  5194. {
  5195. switch (A_0)
  5196. {
  5197. case 0:
  5198. sub_27A1("PROSTITUTES_BJ_SPEECH_SCENE");
  5199. if (sub_63EE(PLAYER::PLAYER_ID()) == 0)
  5200. {
  5201. AUDIO::0x5C57B85D(l_127, "SEX_ORAL_FEM", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  5202. break;
  5203. }
  5204. AUDIO::0x5C57B85D(l_127, "SEX_ORAL", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  5205. break;
  5206. case 1:
  5207. case 2:
  5208. if (sub_63EE(PLAYER::PLAYER_ID()) == 0)
  5209. {
  5210. AUDIO::0x5C57B85D(l_127, "SEX_GENERIC_FEM", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  5211. break;
  5212. }
  5213. AUDIO::0x5C57B85D(l_127, "SEX_GENERIC", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  5214. break;
  5215. }
  5216. }
  5217.  
  5218. var sub_63EE(var A_0)
  5219. {
  5220. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0)
  5221. {
  5222. return 1;
  5223. }
  5224. return rPtr(getElemPtr(A_0, &g_2387077, 868) + 788);
  5225. }
  5226.  
  5227. void sub_640F()
  5228. {
  5229. if (PED::IS_PED_INJURED(l_127) == 0)
  5230. {
  5231. if (sub_64A6(0.4f) != 0)
  5232. {
  5233. sub_60D9(4);
  5234. }
  5235. if (sub_101A1(4) != 0)
  5236. {
  5237. if (sub_652(&l_141) == 0)
  5238. {
  5239. sub_F453(&l_141);
  5240. }
  5241. else if (sub_5D9(&l_141) > 2f)
  5242. {
  5243. bool flag1 = sub_101A1(16) == 0;
  5244. if (flag1 & (sub_64A6(0.4f) == 0))
  5245. {
  5246. sub_60D9(16);
  5247. l_94++;
  5248. }
  5249. else if ((sub_101A1(16) != 0) && (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0))
  5250. {
  5251. sub_10463(4);
  5252. sub_10463(16);
  5253. sub_E7E(&l_141);
  5254. }
  5255. }
  5256. }
  5257. }
  5258. }
  5259.  
  5260. var sub_64A6(var A_0)
  5261. {
  5262. if ((sub_64D2(PLAYER::PLAYER_ID(), 1, 1) != 0) && (NETWORK::NETWORK_GET_PLAYER_LOUDNESS(PLAYER::PLAYER_ID()) > A_0))
  5263. {
  5264. return 1;
  5265. }
  5266. return 0;
  5267. }
  5268.  
  5269. var sub_64D2(var A_0, var A_1, var A_2)
  5270. {
  5271. var num3 = A_0;
  5272. if (NETWORK::NETWORK_IS_PLAYER_ACTIVE(A_0) == 0)
  5273. {
  5274. return 0;
  5275. }
  5276. if ((A_1 != null) && (PLAYER::IS_PLAYER_PLAYING(A_0) == 0))
  5277. {
  5278. return 0;
  5279. }
  5280. if ((A_2 != null) && (getElem(num3, (&g_2390986) + 3, 4) == 0))
  5281. {
  5282. return 0;
  5283. }
  5284. return 1;
  5285. }
  5286.  
  5287. void sub_6516(var A_0, var A_1)
  5288. {
  5289. if (sub_10B44() != 0)
  5290. {
  5291. sub_563F(A_0, A_1);
  5292. sub_5529(A_0, A_1);
  5293. sub_5450(A_0, A_1);
  5294. sub_5029(A_0, A_1);
  5295. sub_4E15(A_0, A_1);
  5296. }
  5297. }
  5298.  
  5299. void sub_6551(var A_0, var A_1)
  5300. {
  5301. var num3 = sub_4370(A_0, sub_4330(A_1), 0) + 1;
  5302. if (sub_67EE(A_0) == 0)
  5303. {
  5304. sub_4305(A_0, num3, A_1, 1);
  5305. }
  5306. else
  5307. {
  5308. sub_6591(A_0, num3, A_1, 1);
  5309. }
  5310. }
  5311.  
  5312. void sub_6591(var A_0, var A_1, var A_2, var A_3)
  5313. {
  5314. var num3 = getElem(sub_4330(A_2), getElemPtr(A_0, &g_2405085, 24), 4);
  5315. if (num3 != 0)
  5316. {
  5317. STATS::STAT_SET_INT(num3, A_1, A_3);
  5318. }
  5319. switch ((A_0))
  5320. {
  5321. case 773:
  5322. setElem(A_1, sub_4330(A_2), &g_1374032, 4);
  5323. break;
  5324. case 774:
  5325. setElem(A_1, sub_4330(A_2), &g_1374038, 4);
  5326. break;
  5327. case 775:
  5328. setElem(A_1, sub_4330(A_2), &g_1374044, 4);
  5329. break;
  5330. case 776:
  5331. setElem(A_1, sub_4330(A_2), &g_1374050, 4);
  5332. break;
  5333. case 763:
  5334. setElem(A_1, sub_4330(A_2), &g_1374008, 4);
  5335. break;
  5336. case 764:
  5337. setElem(A_1, sub_4330(A_2), &g_1374014, 4);
  5338. break;
  5339. case 765:
  5340. setElem(A_1, sub_4330(A_2), &g_1374020, 4);
  5341. break;
  5342. case 766:
  5343. setElem(A_1, sub_4330(A_2), &g_1374026, 4);
  5344. break;
  5345. case 753:
  5346. setElem(A_1, sub_4330(A_2), &g_1373984, 4);
  5347. break;
  5348. case 754:
  5349. setElem(A_1, sub_4330(A_2), &g_1373990, 4);
  5350. break;
  5351. case 755:
  5352. setElem(A_1, sub_4330(A_2), &g_1373996, 4);
  5353. break;
  5354. case 756:
  5355. setElem(A_1, sub_4330(A_2), &g_1374002, 4);
  5356. break;
  5357. case 743:
  5358. setElem(A_1, sub_4330(A_2), &g_1374056, 4);
  5359. break;
  5360. case 744:
  5361. setElem(A_1, sub_4330(A_2), &g_1374062, 4);
  5362. break;
  5363. case 745:
  5364. setElem(A_1, sub_4330(A_2), &g_1374068, 4);
  5365. break;
  5366. case 746:
  5367. setElem(A_1, sub_4330(A_2), &g_1374074, 4);
  5368. break;
  5369. case 1287:
  5370. setElem(A_1, sub_4330(A_2), &g_1374080, 4);
  5371. break;
  5372. case 625:
  5373. setElem(A_1, sub_4330(A_2), &g_1374086, 4);
  5374. break;
  5375. case 1262:
  5376. setElem(A_1, sub_4330(A_2), &g_1374092, 4);
  5377. break;
  5378. case 1848:
  5379. setElem(A_1, sub_4330(A_2), &g_2418843, 4);
  5380. break;
  5381. case 750:
  5382. setElem(A_1, sub_4330(A_2), &g_1374098, 4);
  5383. break;
  5384. case 751:
  5385. setElem(A_1, sub_4330(A_2), &g_1374104, 4);
  5386. break;
  5387. case 752:
  5388. setElem(A_1, sub_4330(A_2), &g_1374110, 4);
  5389. break;
  5390. case 1220:
  5391. setElem(A_1, sub_4330(A_2), &g_1374116, 4);
  5392. break;
  5393. }
  5394. }
  5395.  
  5396. var sub_67EE(var A_0)
  5397. {
  5398. if (g_1373965 != 0)
  5399. {
  5400. switch ((A_0))
  5401. {
  5402. case 773:
  5403. case 774:
  5404. case 775:
  5405. case 776:
  5406. case 763:
  5407. case 764:
  5408. case 765:
  5409. case 766:
  5410. case 753:
  5411. case 754:
  5412. case 755:
  5413. case 756:
  5414. case 743:
  5415. case 744:
  5416. case 745:
  5417. case 746:
  5418. case 1287:
  5419. case 625:
  5420. case 1262:
  5421. case 750:
  5422. case 751:
  5423. case 752:
  5424. case 1220:
  5425. case 1848:
  5426. return 1;
  5427. }
  5428. }
  5429. return 0;
  5430. }
  5431.  
  5432. void sub_689C()
  5433. {
  5434. if (rPtr((&g_10433) + 1) != 1)
  5435. {
  5436. if (sub_69A8(0) != 0)
  5437. {
  5438. sub_68C4(0);
  5439. }
  5440. GAMEPLAY::SET_BIT(&g_1687, 2);
  5441. }
  5442. }
  5443.  
  5444. void sub_68C4(var A_0)
  5445. {
  5446. if (g_10588 != 0)
  5447. {
  5448. sub_6934(0, 0);
  5449. }
  5450. bool flag1 = rPtr((&g_10433) + 1) == 10;
  5451. if (flag1 | (rPtr((&g_10433) + 1) == 9))
  5452. {
  5453. GAMEPLAY::SET_BIT(&g_1687, 16);
  5454. }
  5455. if (AUDIO::IS_MOBILE_PHONE_CALL_ONGOING() != 0)
  5456. {
  5457. AUDIO::STOP_SCRIPTED_CONVERSATION(0);
  5458. }
  5459. g_11728 = 5;
  5460. if (A_0 == 1)
  5461. {
  5462. GAMEPLAY::SET_BIT(&g_1686, 30);
  5463. }
  5464. else
  5465. {
  5466. GAMEPLAY::CLEAR_BIT(&g_1686, 30);
  5467. }
  5468. if (sub_A36() == 0)
  5469. {
  5470. wPtr(3, (&g_10433) + 1);
  5471. }
  5472. }
  5473.  
  5474. void sub_6934(var A_0, var A_1)
  5475. {
  5476. if (A_0 != null)
  5477. {
  5478. if (sub_69A8(0) != 0)
  5479. {
  5480. g_10588 = 1;
  5481. if (A_1 != null)
  5482. {
  5483. MOBILE::GET_MOBILE_PHONE_POSITION(&g_10370);
  5484. }
  5485. struct _s = getElemPtr(g_10378, &g_10379, 12);
  5486. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &g_10361);
  5487. struct _s = &g_10361;
  5488. MOBILE::SET_MOBILE_PHONE_POSITION(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  5489. }
  5490. }
  5491. else if (g_10588 == 1)
  5492. {
  5493. g_10588 = 0;
  5494. struct _s = getElemPtr(g_10378, &g_10386, 12);
  5495. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &g_10361);
  5496. if (A_1 != null)
  5497. {
  5498. struct _s = &g_10370;
  5499. MOBILE::SET_MOBILE_PHONE_POSITION(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  5500. }
  5501. else
  5502. {
  5503. struct _s = &g_10361;
  5504. MOBILE::SET_MOBILE_PHONE_POSITION(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  5505. }
  5506. }
  5507. }
  5508.  
  5509. var sub_69A8(var A_0)
  5510. {
  5511. if (A_0 == 1)
  5512. {
  5513. if ((rPtr((&g_10433) + 1) > 3) && (GAMEPLAY::IS_BIT_SET(g_1686, 14) != 0))
  5514. {
  5515. return 1;
  5516. }
  5517. return 0;
  5518. }
  5519. if (SCRIPT::0x029D3841(0xD30D3AEF) > 0)
  5520. {
  5521. return 1;
  5522. }
  5523. if (rPtr((&g_10433) + 1) > 3)
  5524. {
  5525. return 1;
  5526. }
  5527. return 0;
  5528. }
  5529.  
  5530. var sub_6A02(var A_0)
  5531. {
  5532. var num3;
  5533. if (sub_10B44() != 0)
  5534. {
  5535. num3 = PED::IS_SYNCHRONIZED_SCENE_RUNNING(NETWORK::0x16AED87B(A_0));
  5536. }
  5537. else
  5538. {
  5539. num3 = PED::IS_SYNCHRONIZED_SCENE_RUNNING(A_0);
  5540. }
  5541. return num3;
  5542. }
  5543.  
  5544. void sub_6A2A()
  5545. {
  5546. if (CAM::IS_SCREEN_FADED_OUT() != 0)
  5547. {
  5548. CAM::DO_SCREEN_FADE_IN(1000);
  5549. struct _s = sub_6AC8();
  5550. ENTITY::SET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1, 0, 0, 1);
  5551. ENTITY::SET_ENTITY_HEADING(PLAYER::PLAYER_PED_ID(), sub_6A71());
  5552. sub_10666();
  5553. CAM::RENDER_SCRIPT_CAMS(0, 0, 3000, 1, 0);
  5554. PED::DELETE_PED(&l_127);
  5555. }
  5556. }
  5557.  
  5558. var sub_6A71()
  5559. {
  5560. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  5561. {
  5562. return 299.5673f;
  5563. }
  5564. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  5565. {
  5566. return 116.6356f;
  5567. }
  5568. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  5569. {
  5570. return 175.0504f;
  5571. }
  5572. return 0f;
  5573. }
  5574.  
  5575. var sub_6AC8()
  5576. {
  5577. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  5578. {
  5579. return buildStruct(1979.961f, 3816.018f, 31.3641f);
  5580. }
  5581. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  5582. {
  5583. return buildStruct(-820.4975f, 176.9618f, 70.6166f);
  5584. }
  5585. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  5586. {
  5587. return buildStruct(-14.6005f, -1444.624f, 29.6472f);
  5588. }
  5589. return buildStruct(0f, 0f, 0f);
  5590. }
  5591.  
  5592. void sub_6B3F()
  5593. {
  5594. var num1 = sub_6BF2(&l_135, 3f);
  5595. if ((num1 & (CAM::IS_CAM_ACTIVE(l_134) == 0)) != 0)
  5596. {
  5597. var num3 = SYSTEM::FLOOR(((sub_6B9B() - 2f) * 1000f));
  5598. CAM::SET_CAM_ACTIVE(l_133, 0);
  5599. CAM::SET_CAM_ACTIVE_WITH_INTERP(l_134, l_133, num3, 1, 1);
  5600. }
  5601. if (sub_6BF2(&l_135, sub_6B9B()) != 0)
  5602. {
  5603. CAM::DO_SCREEN_FADE_OUT(1000);
  5604. l_326 = 10;
  5605. }
  5606. }
  5607.  
  5608. var sub_6B9B()
  5609. {
  5610. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  5611. {
  5612. return 10f;
  5613. }
  5614. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  5615. {
  5616. return 10f;
  5617. }
  5618. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  5619. {
  5620. return 12f;
  5621. }
  5622. return 0f;
  5623. }
  5624.  
  5625. var sub_6BF2(var A_0, var A_1)
  5626. {
  5627. if ((sub_652(A_0) != 0) && (sub_5D9(A_0) > A_1))
  5628. {
  5629. return 1;
  5630. }
  5631. return 0;
  5632. }
  5633.  
  5634. void sub_6C14()
  5635. {
  5636. var num3 = 0;
  5637. while (true)
  5638. {
  5639. if (num3 >= SCRIPT::GET_NUMBER_OF_EVENTS(1))
  5640. {
  5641. return;
  5642. }
  5643. switch (SCRIPT::GET_EVENT_AT_INDEX(1, num3))
  5644. {
  5645. case 176:
  5646. sub_6C51(num3);
  5647. break;
  5648. }
  5649. num3++;
  5650. }
  5651. }
  5652.  
  5653. void sub_6C51(var A_0)
  5654. {
  5655. var num3;
  5656. if (SCRIPT::GET_EVENT_DATA(1, A_0, &num3, 10) != 0)
  5657. {
  5658. sub_6C6D(&num3);
  5659. }
  5660. }
  5661.  
  5662. void sub_6C6D(var A_0)
  5663. {
  5664. if ((((ENTITY::DOES_ENTITY_EXIST(rPtr(A_0)) != 0) && (ENTITY::IS_ENTITY_A_VEHICLE(rPtr(A_0)) != 0)) && ((ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0) && (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0))) && (PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0) == ENTITY::0xC69CF43D(rPtr(A_0))))
  5665. {
  5666. sub_3841(0);
  5667. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  5668. sub_10666();
  5669. sub_104E0();
  5670. }
  5671. }
  5672.  
  5673. void sub_6CC8()
  5674. {
  5675. if ((sub_10B44() != 0) && (((ENTITY::DOES_ENTITY_EXIST(l_127) != 0) && (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)) && ((ENTITY::GET_ENTITY_HEALTH(l_127) - l_93) < 0)))
  5676. {
  5677. sub_3841(0);
  5678. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  5679. sub_10666();
  5680. sub_104E0();
  5681. }
  5682. }
  5683.  
  5684. void sub_6D15()
  5685. {
  5686. if ((sub_10B44() != 0) && (((ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0) && (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)) && ((ENTITY::GET_ENTITY_HEALTH(PLAYER::PLAYER_PED_ID()) - l_92) < 0)))
  5687. {
  5688. sub_3841(0);
  5689. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  5690. sub_10666();
  5691. sub_104E0();
  5692. }
  5693. }
  5694.  
  5695. void sub_6D66()
  5696. {
  5697. if ((sub_10B44() != 0) && ((ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0) && (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)))
  5698. {
  5699. var num3 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  5700. if (ENTITY::DOES_ENTITY_EXIST(num3) != 0)
  5701. {
  5702. var num4;
  5703. struct _s = ENTITY::GET_ENTITY_COORDS(num3, 1);
  5704. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num4);
  5705. struct _s = &l_89;
  5706. struct _s = &num4;
  5707. if (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) >= 4f)
  5708. {
  5709. sub_3841(0);
  5710. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  5711. sub_10666();
  5712. sub_104E0();
  5713. }
  5714. }
  5715. }
  5716. }
  5717.  
  5718. void sub_6DD5()
  5719. {
  5720. if (sub_F6B7(l_85, 16) == 0)
  5721. {
  5722. if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)
  5723. {
  5724. PLAYER::SET_PLAYER_CAN_DO_DRIVE_BY(PLAYER::PLAYER_ID(), 0);
  5725. }
  5726. sub_F4AD(&l_85, 16);
  5727. }
  5728. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)
  5729. {
  5730. l_130 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  5731. if (sub_10B44() != 0)
  5732. {
  5733. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_130) != 0)
  5734. {
  5735. VEHICLE::SET_VEHICLE_HANDBRAKE(l_130, 1);
  5736. VEHICLE::SET_VEHICLE_LIGHTS(l_130, 4);
  5737. VEHICLE::SET_VEHICLE_INTERIORLIGHT(l_130, 1);
  5738. }
  5739. }
  5740. else
  5741. {
  5742. VEHICLE::SET_VEHICLE_HANDBRAKE(l_130, 1);
  5743. VEHICLE::SET_VEHICLE_LIGHTS(l_130, 4);
  5744. VEHICLE::SET_VEHICLE_INTERIORLIGHT(l_130, 1);
  5745. }
  5746. bool flag1 = sub_D189() == 0;
  5747. if (flag1 | (PED::IS_PED_IN_VEHICLE(l_127, l_130, 0) == 0))
  5748. {
  5749. sub_F46B(0);
  5750. return;
  5751. }
  5752. }
  5753. else
  5754. {
  5755. sub_F46B(0);
  5756. return;
  5757. }
  5758. sub_689C();
  5759. bool flag2 = VEHICLE::IS_VEHICLE_STOPPED(l_130) == 0;
  5760. bool flag3 = flag2 & PLAYER::IS_PLAYER_CONTROL_ON(PLAYER::PLAYER_ID());
  5761. if (flag3 & (sub_F6B7(l_85, 1024) == 0))
  5762. {
  5763. l_326 = 7;
  5764. sub_D0C2(1, -1);
  5765. AUDIO::REQUEST_SCRIPT_AUDIO_BANK("SCRIPTHUD_321_GO", 1);
  5766. l_332 = 0;
  5767. sub_F6C6("WAITING FOR VEHICLE TO STOP ");
  5768. }
  5769. else
  5770. {
  5771. UI::HIDE_HUD_COMPONENT_THIS_FRAME(2);
  5772. switch (l_332)
  5773. {
  5774. case 0:
  5775. case 1:
  5776. if (((sub_10B44() != 0) && (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)) && (ENTITY::DOES_ENTITY_EXIST(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0))
  5777. {
  5778. if (NETWORK::0xD7F934F4(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) == 0)
  5779. {
  5780. NETWORK::0x31A630A4(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0));
  5781. return;
  5782. }
  5783. if (VEHICLE::GET_PED_IN_VEHICLE_SEAT(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), -1) != PLAYER::PLAYER_PED_ID())
  5784. {
  5785. break;
  5786. }
  5787. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) == 0)
  5788. {
  5789. NETWORK::NETWORK_REQUEST_CONTROL_OF_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0));
  5790. return;
  5791. }
  5792. if (ENTITY::IS_ENTITY_A_MISSION_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0)
  5793. {
  5794. break;
  5795. }
  5796. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 0, 0);
  5797. }
  5798. break;
  5799. case 2:
  5800. if (sub_CD9C(l_335) != 0)
  5801. {
  5802. sub_CD8E(&l_335);
  5803. sub_5B4(&l_108, 2);
  5804. }
  5805. sub_CBD8(l_127, 0);
  5806. if (sub_CBD8(PLAYER::PLAYER_PED_ID(), 1) != 0)
  5807. {
  5808. if (sub_CBC5(0) != 0)
  5809. {
  5810. sub_BD33();
  5811. l_332 = 3;
  5812. sub_F6C6("Moving to SERVICE_MENU_CHOOSE");
  5813. }
  5814. else
  5815. {
  5816. sub_BD1C("PROS_NO_MONEY", -1);
  5817. sub_E7E(&l_144);
  5818. l_328 = 3;
  5819. l_332 = 4;
  5820. }
  5821. }
  5822. return;
  5823. case 3:
  5824. if (UI::IS_PAUSE_MENU_ACTIVE() == 0)
  5825. {
  5826. var num3;
  5827. var num4;
  5828. var num5;
  5829. var num6;
  5830. UI::SHOW_HUD_COMPONENT_THIS_FRAME(3);
  5831. sub_B6AE();
  5832. sub_838D(1, -1, 1, 0, 1, 0x3E666666);
  5833. sub_5CE3(&num3, &num4, &num5, &num6, 0);
  5834. CONTROLS::DISABLE_CONTROL_ACTION(0, 46);
  5835. CONTROLS::SET_INPUT_EXCLUSIVE(2, 161);
  5836. CONTROLS::SET_INPUT_EXCLUSIVE(2, 162);
  5837. CONTROLS::SET_INPUT_EXCLUSIVE(2, 174);
  5838. if (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 161) != 0)
  5839. {
  5840. AUDIO::PLAY_SOUND_FRONTEND(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET");
  5841. sub_F6C6("DOWN pressed!");
  5842. if (l_103 < l_104)
  5843. {
  5844. l_103++;
  5845. }
  5846. else
  5847. {
  5848. l_103 = 0;
  5849. }
  5850. }
  5851. else if (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 162) != 0)
  5852. {
  5853. AUDIO::PLAY_SOUND_FRONTEND(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET");
  5854. sub_F6C6("UP pressed!");
  5855. if (l_103 > 0)
  5856. {
  5857. l_103--;
  5858. }
  5859. else
  5860. {
  5861. l_103 = l_104;
  5862. }
  5863. }
  5864. else if (CONTROLS::IS_CONTROL_JUST_RELEASED(2, 174) != 0)
  5865. {
  5866. AUDIO::PLAY_SOUND_FRONTEND(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET");
  5867. UI::HIDE_HUD_COMPONENT_THIS_FRAME(3);
  5868. sub_82CE();
  5869. ENTITY::CLEAR_ENTITY_LAST_DAMAGE_ENTITY(PLAYER::PLAYER_PED_ID());
  5870. l_332 = 4;
  5871. }
  5872. sub_8188(l_103, 1, 1);
  5873. return;
  5874. }
  5875. return;
  5876. case 4:
  5877. {
  5878. var num7 = PED::GET_PED_MONEY(l_127);
  5879. if (l_328 != 3)
  5880. {
  5881. if (STREAMING::HAS_ANIM_DICT_LOADED(l_96) != 0)
  5882. {
  5883. sub_D0C2(1, -1);
  5884. sub_817A();
  5885. if (GAMEPLAY::IS_AUSSIE_VERSION() != 0)
  5886. {
  5887. sub_F4AD(&l_85, 1024);
  5888. l_328 = 3;
  5889. sub_F6C6("AUSSIE VERSION IS TRUE!?!?!");
  5890. }
  5891. if (l_328 != 3)
  5892. {
  5893. if (sub_805E() > sub_7293(l_328))
  5894. {
  5895. sub_72FE(sub_7293(l_328));
  5896. num7 += sub_7293(l_328);
  5897. }
  5898. sub_E8D(&l_138, (14f - 4f));
  5899. sub_F6C6("eCurrentProstituteState = PROSTITUTE_CUSTOMER_GETTING_SERVICED ");
  5900. sub_3BE2();
  5901. l_326 = 11;
  5902. }
  5903. PED::SET_PED_MONEY(l_127, num7);
  5904. l_97 = GAMEPLAY::GET_GAME_TIMER();
  5905. }
  5906. return;
  5907. }
  5908. sub_D0C2(1, -1);
  5909. sub_817A();
  5910. sub_815D(0);
  5911. l_97 = GAMEPLAY::GET_GAME_TIMER();
  5912. sub_3C4C("PROSTITUTES_PARKED_SCENE");
  5913. sub_F6C6("eCurrentProstituteState = prostitute_REFUSED ");
  5914. l_326 = 6;
  5915. if (l_105 <= 0)
  5916. {
  5917. if (sub_805E() >= 20)
  5918. {
  5919. num7 += 20;
  5920. sub_72FE(20);
  5921. PED::SET_PED_MONEY(l_127, num7);
  5922. }
  5923. sub_F46B(1);
  5924. return;
  5925. }
  5926. if (sub_3BC0(l_127) == 0)
  5927. {
  5928. sub_F46B(0);
  5929. return;
  5930. }
  5931. sub_3B5E();
  5932. return;
  5933. }
  5934. default:
  5935. return;
  5936. }
  5937. sub_D079();
  5938. sub_D055();
  5939. sub_6136();
  5940. if (sub_CEC1() != 0)
  5941. {
  5942. sub_3C4C("PROSTITUTES_DRIVE_SCENE");
  5943. sub_27A1("PROSTITUTES_PARKED_SCENE");
  5944. sub_CE78();
  5945. if (sub_10B44() != 0)
  5946. {
  5947. sub_60D9(2);
  5948. if (((sub_10B44() != 0) && (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)) && ((NETWORK::0xD7F934F4(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0) && (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0)))
  5949. {
  5950. VEHICLE::SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 1);
  5951. VEHICLE::SET_VEHICLE_DOORS_LOCKED(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 4);
  5952. VEHICLE::0x758C5E2E(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 1);
  5953. }
  5954. }
  5955. PED::RESET_PED_IN_VEHICLE_CONTEXT(l_127);
  5956. l_332 = 2;
  5957. }
  5958. }
  5959. }
  5960.  
  5961. var sub_7293(var A_0)
  5962. {
  5963. if (GAMEPLAY::IS_AUSSIE_VERSION() != 0)
  5964. {
  5965. if (A_0 == 0)
  5966. {
  5967. return 70;
  5968. }
  5969. if (A_0 == 1)
  5970. {
  5971. return 70;
  5972. }
  5973. if (A_0 == 2)
  5974. {
  5975. return 70;
  5976. }
  5977. return 0;
  5978. }
  5979. if (A_0 == 0)
  5980. {
  5981. return 50;
  5982. }
  5983. if (A_0 == 1)
  5984. {
  5985. return 70;
  5986. }
  5987. if (A_0 == 2)
  5988. {
  5989. return 100;
  5990. }
  5991. return 0;
  5992. }
  5993.  
  5994. void sub_72FE(var A_0)
  5995. {
  5996. if (sub_10B44() == 0)
  5997. {
  5998. sub_7325(sub_B25(), 1, A_0);
  5999. }
  6000. else
  6001. {
  6002. NETWORKCASH::0x78436D07(A_0, 0, 0);
  6003. }
  6004. }
  6005.  
  6006. var sub_7325(var A_0, var A_1, var A_2)
  6007. {
  6008. if (rPtr(getElemPtr(A_0, (&g_86838) + 23936, 116) + 68) == 3)
  6009. {
  6010. return 0;
  6011. }
  6012. if (rPtr(getElemPtr(A_0, (&g_86838) + 23936, 116) + 68) == 4)
  6013. {
  6014. return 0;
  6015. }
  6016. return sub_736E(rPtr(getElemPtr(A_0, (&g_86838) + 23936, 116) + 68), 0, A_1, A_2, 0);
  6017. }
  6018.  
  6019. var sub_736E(var A_0, var A_1, var A_2, var A_3, var A_4)
  6020. {
  6021. var num4;
  6022. sub_7FB6();
  6023. if (A_3 < 1)
  6024. {
  6025. return 0;
  6026. }
  6027. var num3 = 1f;
  6028. switch (A_1)
  6029. {
  6030. case 0:
  6031. switch (A_0)
  6032. {
  6033. case 0:
  6034. sub_7F5A(99, 1);
  6035. sub_7F37(0xD8DDE3AC, A_3);
  6036. goto Label_009A;
  6037. case 1:
  6038. sub_7F37(0x82F04461, A_3);
  6039. goto Label_009A;
  6040. case 2:
  6041. sub_7F37(0x5E1032A2, A_3);
  6042. goto Label_009A;
  6043. }
  6044. break;
  6045. case 1:
  6046. switch (A_0)
  6047. {
  6048. case 0:
  6049. sub_7F5A(95, A_3);
  6050. break;
  6051. case 1:
  6052. sub_7F5A(97, A_3);
  6053. break;
  6054. case 2:
  6055. sub_7F5A(96, A_3);
  6056. break;
  6057. }
  6058. goto Label_077F;
  6059. default:
  6060. goto Label_0792;
  6061. }
  6062. Label_009A:
  6063. sub_7E64(0);
  6064. switch ((A_2))
  6065. {
  6066. case 125:
  6067. case 127:
  6068. case 123:
  6069. case 124:
  6070. case 126:
  6071. if (sub_7E28(5) != 0)
  6072. {
  6073. num3 = 0.9f;
  6074. num4 = 5;
  6075. }
  6076. goto Label_0792;
  6077. case 63:
  6078. case 64:
  6079. case 65:
  6080. case 66:
  6081. case 67:
  6082. case 68:
  6083. switch (A_0)
  6084. {
  6085. case 0:
  6086. sub_7F37(0xB90A1501, A_3);
  6087. goto Label_04C7;
  6088. case 1:
  6089. sub_7F37(0x1D36FFE4, A_3);
  6090. goto Label_04C7;
  6091. case 2:
  6092. sub_7F37(0x7375F79, A_3);
  6093. goto Label_04C7;
  6094. }
  6095. break;
  6096. case 41:
  6097. case 42:
  6098. case 43:
  6099. case 44:
  6100. case 45:
  6101. case 46:
  6102. case 47:
  6103. switch (A_0)
  6104. {
  6105. case 0:
  6106. sub_7F37(0x79818787, A_3);
  6107. break;
  6108. case 1:
  6109. sub_7F37(0xDDDA2F69, A_3);
  6110. break;
  6111. case 2:
  6112. sub_7F37(0xC723E8EC, A_3);
  6113. break;
  6114. }
  6115. if (sub_7E28(0) != 0)
  6116. {
  6117. num3 = 0f;
  6118. num4 = 0;
  6119. }
  6120. goto Label_0792;
  6121. case 21:
  6122. switch (A_0)
  6123. {
  6124. case 0:
  6125. sub_7F37(0xD156803, A_3);
  6126. break;
  6127. case 1:
  6128. sub_7F37(0x6F8CE97A, A_3);
  6129. break;
  6130. case 2:
  6131. sub_7F37(0x87561C19, A_3);
  6132. break;
  6133. }
  6134. goto Label_0792;
  6135. case 48:
  6136. case 49:
  6137. case 50:
  6138. case 51:
  6139. case 52:
  6140. case 53:
  6141. case 54:
  6142. case 55:
  6143. case 56:
  6144. case 57:
  6145. case 58:
  6146. case 59:
  6147. case 60:
  6148. case 61:
  6149. case 62:
  6150. switch (A_0)
  6151. {
  6152. case 0:
  6153. sub_7F37(0x185B8F46, A_3);
  6154. break;
  6155. case 1:
  6156. sub_7F37(0xE6AE13D3, A_3);
  6157. break;
  6158. case 2:
  6159. sub_7F37(0xDEBB7D4A, A_3);
  6160. break;
  6161. }
  6162. goto Label_0792;
  6163. case 25:
  6164. switch (A_0)
  6165. {
  6166. case 0:
  6167. sub_7F37(0x1A5C0A6, A_3);
  6168. break;
  6169. case 1:
  6170. sub_7F37(0x192B26BC, A_3);
  6171. break;
  6172. case 2:
  6173. sub_7F37(0x12D8DFD0, A_3);
  6174. break;
  6175. }
  6176. goto Label_0792;
  6177. case 69:
  6178. case 70:
  6179. case 71:
  6180. case 72:
  6181. case 73:
  6182. case 74:
  6183. case 75:
  6184. case 76:
  6185. case 77:
  6186. case 78:
  6187. case 79:
  6188. switch (A_0)
  6189. {
  6190. case 0:
  6191. sub_7F37(0xE56D46F6, A_3);
  6192. break;
  6193. case 1:
  6194. sub_7F37(0xAD57C3A1, A_3);
  6195. break;
  6196. case 2:
  6197. sub_7F37(0xD49E38CD, A_3);
  6198. break;
  6199. }
  6200. goto Label_0792;
  6201. case 80:
  6202. case 81:
  6203. case 82:
  6204. case 83:
  6205. case 84:
  6206. case 101:
  6207. sub_7E08(A_3);
  6208. goto Label_06CF;
  6209. case 97:
  6210. case 98:
  6211. case 99:
  6212. case 100:
  6213. case 102:
  6214. case 103:
  6215. case 104:
  6216. case 105:
  6217. case 106:
  6218. case 107:
  6219. case 108:
  6220. case 109:
  6221. case 110:
  6222. case 111:
  6223. goto Label_06CF;
  6224. default:
  6225. goto Label_0792;
  6226. }
  6227. Label_04C7:
  6228. if (sub_7E28(1) != 0)
  6229. {
  6230. num3 = 0f;
  6231. num4 = 1;
  6232. }
  6233. goto Label_0792;
  6234. Label_06CF:
  6235. switch (A_0)
  6236. {
  6237. case 0:
  6238. sub_7F37(0x6BB0A613, A_3);
  6239. goto Label_0792;
  6240. case 1:
  6241. sub_7F37(0x5DFBC6D0, A_3);
  6242. goto Label_0792;
  6243. case 2:
  6244. sub_7F37(0x280C1BD4, A_3);
  6245. goto Label_0792;
  6246. default:
  6247. goto Label_0792;
  6248. }
  6249. Label_077F:
  6250. sub_7F5A(98, A_3);
  6251. Label_0792:
  6252. if (A_3 < 1)
  6253. {
  6254. return 0;
  6255. }
  6256. var num5 = A_0;
  6257. A_3 = SYSTEM::FLOOR(num3 * SYSTEM::TO_FLOAT(A_3));
  6258. var num6 = 0;
  6259. var num7 = A_3;
  6260. if (num3 == 0f)
  6261. {
  6262. sub_7CD3(num4);
  6263. return 1;
  6264. }
  6265. if (num3 != 1f)
  6266. {
  6267. sub_7CD3(num4);
  6268. }
  6269. var num8 = getElem(num5, &g_43946, 4) + A_3;
  6270. num6 = A_1;
  6271. switch (num6)
  6272. {
  6273. case 1:
  6274. {
  6275. bool flag1 = getElem(num5, &g_43946, 4) >= 0;
  6276. if (flag1 & (A_3 > 0))
  6277. {
  6278. if (num8 <= 0)
  6279. {
  6280. setElem(0x7FFFFFFF, num5, &g_43946, 4);
  6281. }
  6282. else
  6283. {
  6284. setElem(getElem(num5, &g_43946, 4) + A_3, num5, &g_43946, 4);
  6285. }
  6286. }
  6287. switch (A_0)
  6288. {
  6289. case 0:
  6290. sub_7F37(0xEC4F6A3C, A_3);
  6291. goto Label_09D5;
  6292. case 1:
  6293. sub_7F37(0x652EC70D, A_3);
  6294. goto Label_09D5;
  6295. case 2:
  6296. sub_7F37(0x63D3C8A1, A_3);
  6297. goto Label_09D5;
  6298. }
  6299. break;
  6300. }
  6301. case 0:
  6302. if ((A_4 == 0) && ((getElem(num5, &g_43946, 4) - A_3) < 0))
  6303. {
  6304. return 0;
  6305. }
  6306. num6 = getElem(num5, &g_43946, 4);
  6307. setElem(getElem(num5, &g_43946, 4) - A_3, num5, &g_43946, 4);
  6308. if (A_4 != null)
  6309. {
  6310. num7 = num6;
  6311. }
  6312. break;
  6313. }
  6314. Label_09D5:
  6315. if (A_2 == 1)
  6316. {
  6317. }
  6318. else
  6319. {
  6320. setElem(A_1, rPtr(getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 4), getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 8, 24);
  6321. wPtr(A_2, getElemPtr(rPtr(getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 4), getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 8, 24) + 4);
  6322. wPtr(A_3, getElemPtr(rPtr(getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 4), getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 8, 24) + 8);
  6323. setElem(getElem(num5, ((&g_86838) + 19911) + 233, 276) + 1, num5, ((&g_86838) + 19911) + 233, 276);
  6324. wPtr(rPtr(getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 4) + 1, getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 4);
  6325. if (rPtr(getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 4) > 10)
  6326. {
  6327. wPtr(0, getElemPtr(num5, ((&g_86838) + 19911) + 233, 276) + 4);
  6328. }
  6329. }
  6330. sub_7C79(A_0);
  6331. if (g_29814 == 12)
  6332. {
  6333. sub_79F7(0);
  6334. }
  6335. return 1;
  6336. }
  6337.  
  6338. void sub_79F7(var A_0)
  6339. {
  6340. var num3 = 0;
  6341. var num4 = 0;
  6342. num3 = 0;
  6343. Label_001B:
  6344. if (num3 >= 3)
  6345. {
  6346. num3 = 0;
  6347. while (num3 < 10)
  6348. {
  6349. setElem(getElem(num3, (&g_86838) + 19911, 4), 0, getElemPtr(num3, &g_43954, 12), 4);
  6350. setElem(getElem(num3, ((&g_86838) + 19911) + 11, 4), 0, getElemPtr(num3, (&g_43954) + 31, 12), 4);
  6351. setElem(getElem(num3, ((&g_86838) + 19911) + 22, 4), 0, getElemPtr(num3, (&g_43954) + 62, 12), 4);
  6352. setElem(getElem(num3, ((&g_86838) + 19911) + 33, 4), 0, getElemPtr(num3, (&g_43954) + 93, 12), 4);
  6353. setElem(getElem(num3, ((&g_86838) + 19911) + 44, 4), 0, getElemPtr(num3, (&g_43954) + 124, 12), 4);
  6354. setElem(getElem(num3, ((&g_86838) + 19911) + 55, 4), 0, getElemPtr(num3, (&g_43954) + 155, 12), 4);
  6355. setElem(getElem(num3, ((&g_86838) + 19911) + 66, 4), 0, getElemPtr(num3, (&g_43954) + 186, 12), 4);
  6356. setElem(getElem(num3, ((&g_86838) + 19911) + 77, 4), 0, getElemPtr(num3, (&g_43954) + 217, 12), 4);
  6357. setElem(getElem(num3, ((&g_86838) + 19911) + 88, 4), 0, getElemPtr(num3, (&g_43954) + 248, 12), 4);
  6358. if (A_0 == 0)
  6359. {
  6360. setElem(getElem(num3, (&g_86838) + 19911, 4), 1, getElemPtr(num3, &g_43954, 12), 4);
  6361. setElem(getElem(num3, ((&g_86838) + 19911) + 11, 4), 1, getElemPtr(num3, (&g_43954) + 31, 12), 4);
  6362. setElem(getElem(num3, ((&g_86838) + 19911) + 22, 4), 1, getElemPtr(num3, (&g_43954) + 62, 12), 4);
  6363. setElem(getElem(num3, ((&g_86838) + 19911) + 33, 4), 1, getElemPtr(num3, (&g_43954) + 93, 12), 4);
  6364. setElem(getElem(num3, ((&g_86838) + 19911) + 44, 4), 1, getElemPtr(num3, (&g_43954) + 124, 12), 4);
  6365. setElem(getElem(num3, ((&g_86838) + 19911) + 55, 4), 1, getElemPtr(num3, (&g_43954) + 155, 12), 4);
  6366. setElem(getElem(num3, ((&g_86838) + 19911) + 66, 4), 1, getElemPtr(num3, (&g_43954) + 186, 12), 4);
  6367. setElem(getElem(num3, ((&g_86838) + 19911) + 77, 4), 1, getElemPtr(num3, (&g_43954) + 217, 12), 4);
  6368. setElem(getElem(num3, ((&g_86838) + 19911) + 88, 4), 1, getElemPtr(num3, (&g_43954) + 248, 12), 4);
  6369. }
  6370. num3++;
  6371. }
  6372. }
  6373. else
  6374. {
  6375. num4 = 0;
  6376. while (true)
  6377. {
  6378. if (num4 >= 11)
  6379. {
  6380. break;
  6381. }
  6382. wPtr(getElem(num4, getElemPtr(num3, ((&g_86838) + 19911) + 233, 276) + 8, 24), getElemPtr(num4, getElemPtr(num3, ((&g_86838) + 19911) + 233, 276) + 8, 24) + 12);
  6383. wPtr(rPtr(getElemPtr(num4, getElemPtr(num3, ((&g_86838) + 19911) + 233, 276) + 8, 24) + 4), getElemPtr(num4, getElemPtr(num3, ((&g_86838) + 19911) + 233, 276) + 8, 24) + 16);
  6384. wPtr(rPtr(getElemPtr(num4, getElemPtr(num3, ((&g_86838) + 19911) + 233, 276) + 8, 24) + 8), getElemPtr(num4, getElemPtr(num3, ((&g_86838) + 19911) + 233, 276) + 8, 24) + 20);
  6385. num4++;
  6386. }
  6387. num3++;
  6388. goto Label_001B;
  6389. }
  6390. }
  6391.  
  6392. void sub_7C79(var A_0)
  6393. {
  6394. var num3 = getElem(A_0, &g_43946, 4);
  6395. switch (A_0)
  6396. {
  6397. case 0:
  6398. STATS::STAT_SET_INT(0x324C31D, num3, 1);
  6399. break;
  6400. case 1:
  6401. STATS::STAT_SET_INT(0x44BD6982, num3, 1);
  6402. break;
  6403. case 2:
  6404. STATS::STAT_SET_INT(0x8D75047D, num3, 1);
  6405. break;
  6406. }
  6407. }
  6408.  
  6409. void sub_7CD3(var A_0)
  6410. {
  6411. var num3 = 0;
  6412. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0)
  6413. {
  6414. if (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 19911) + 471), A_0) != 0)
  6415. {
  6416. num3 = 1;
  6417. GAMEPLAY::CLEAR_BIT(((&g_86838) + 19911) + 471, A_0);
  6418. }
  6419. }
  6420. else if (GAMEPLAY::IS_BIT_SET(rPtr((getElemPtr(sub_7DFB(), &g_2097152, 16748) + 12348) + 40), A_0) != 0)
  6421. {
  6422. num3 = 1;
  6423. GAMEPLAY::CLEAR_BIT(((&g_86838) + 19911) + 471, A_0);
  6424. GAMEPLAY::CLEAR_BIT((getElemPtr(sub_7DFB(), &g_2097152, 16748) + 12348) + 40, A_0);
  6425. }
  6426. if (num3 != 0)
  6427. {
  6428. var num4;
  6429. strcpy("CHAR_LIFEINVADER", &num4, 64);
  6430. UI::0x574EE85C("COUP_RED");
  6431. UI::0xDCE05406(sub_7D80(A_0));
  6432. UI::0xE7E3C98B(&num4, &num4, 1, 0, "", 0);
  6433. }
  6434. }
  6435.  
  6436. var sub_7D80(var A_0)
  6437. {
  6438. switch (A_0)
  6439. {
  6440. case 0:
  6441. return "COUP_HAIRC";
  6442. case 1:
  6443. return "COUP_TATTOO";
  6444. case 2:
  6445. return "COUP_WARSTOCK";
  6446. case 3:
  6447. return "COUP_MOSPORT";
  6448. case 4:
  6449. return "COUP_ELITAS";
  6450. case 5:
  6451. return "COUP_MEDSPENS";
  6452. case 6:
  6453. return "COUP_SPRUNK";
  6454. case 7:
  6455. return "COUP_RESPRAY";
  6456. }
  6457. return "";
  6458. }
  6459.  
  6460. var sub_7DFB()
  6461. {
  6462. var num3 = 0;
  6463. return num3;
  6464. }
  6465.  
  6466. void sub_7E08(var A_0)
  6467. {
  6468. sub_7F5A(93, A_0);
  6469. sub_7F5A(29, A_0);
  6470. sub_7F5A(30, A_0);
  6471. }
  6472.  
  6473. var sub_7E28(var A_0)
  6474. {
  6475. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0)
  6476. {
  6477. return GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 19911) + 471), A_0);
  6478. }
  6479. return GAMEPLAY::IS_BIT_SET(rPtr((getElemPtr(sub_7DFB(), &g_2097152, 16748) + 12348) + 40), A_0);
  6480. }
  6481.  
  6482. var sub_7E64(var A_0)
  6483. {
  6484. var num3;
  6485. var num4 = 0;
  6486. if (PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(27) != 0)
  6487. {
  6488. return 0;
  6489. }
  6490. if (STATS::STAT_GET_INT(0xD8DDE3AC, &num3, -1) != 0)
  6491. {
  6492. num4 += num3;
  6493. }
  6494. if (STATS::STAT_GET_INT(0x82F04461, &num3, -1) != 0)
  6495. {
  6496. num4 += num3;
  6497. }
  6498. if (STATS::STAT_GET_INT(0x5E1032A2, &num3, -1) != 0)
  6499. {
  6500. num4 += num3;
  6501. }
  6502. if (num4 < 0xBEBC200)
  6503. {
  6504. return 0;
  6505. }
  6506. sub_7EDA(27, 1);
  6507. return 1;
  6508. }
  6509.  
  6510. var sub_7EDA(var A_0, var A_1)
  6511. {
  6512. if (A_0 >= 50)
  6513. {
  6514. return 0;
  6515. }
  6516. return sub_7EF5(A_0, A_1);
  6517. }
  6518.  
  6519. var sub_7EF5(var A_0, var A_1)
  6520. {
  6521. var num1 = PLAYER::HAS_ACHIEVEMENT_BEEN_PASSED(A_0);
  6522. if ((num1 & (A_1 == 1)) != 0)
  6523. {
  6524. return 0;
  6525. }
  6526. bool flag1 = g_19696 != 0;
  6527. if (flag1 & (g_59842 == 0))
  6528. {
  6529. return 0;
  6530. }
  6531. if (PLAYER::GIVE_ACHIEVEMENT_TO_PLAYER(A_0) == 0)
  6532. {
  6533. return 0;
  6534. }
  6535. return 1;
  6536. }
  6537.  
  6538. void sub_7F37(var A_0, var A_1)
  6539. {
  6540. var num3;
  6541. STATS::STAT_GET_INT(A_0, &num3, -1);
  6542. num3 += A_1;
  6543. STATS::STAT_SET_INT(A_0, num3, 1);
  6544. }
  6545.  
  6546. void sub_7F5A(var A_0, var A_1)
  6547. {
  6548. if ((A_1 >= 1) && (rPtr(getElemPtr(A_0, &g_42515, 28) + 8) == 0))
  6549. {
  6550. if (getElem(A_0, &g_42515, 28) != 0)
  6551. {
  6552. var num3;
  6553. STATS::STAT_GET_INT(rPtr(getElemPtr(A_0, &g_42515, 28) + 4), &num3, -1);
  6554. num3++;
  6555. STATS::STAT_SET_INT(rPtr(getElemPtr(A_0, &g_42515, 28) + 4), num3, 1);
  6556. }
  6557. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  6558. {
  6559. }
  6560. }
  6561. }
  6562.  
  6563. void sub_7FB6()
  6564. {
  6565. var num3;
  6566. STATS::STAT_GET_INT(0x324C31D, &num3, -1);
  6567. if (getElem(0, &g_43946, 4) != num3)
  6568. {
  6569. sub_803D("BANK_CHECK_FOR_CODE_DEPOSITS: Updating value in BANK_ACCOUNT_MICHAEL to match stats");
  6570. setElem(num3, 0, &g_43946, 4);
  6571. }
  6572. STATS::STAT_GET_INT(0x44BD6982, &num3, -1);
  6573. if (getElem(1, &g_43946, 4) != num3)
  6574. {
  6575. sub_803D("BANK_CHECK_FOR_CODE_DEPOSITS: Updating value in BANK_ACCOUNT_FRANKLIN to match stats");
  6576. setElem(num3, 1, &g_43946, 4);
  6577. }
  6578. STATS::STAT_GET_INT(0x8D75047D, &num3, -1);
  6579. if (getElem(2, &g_43946, 4) != num3)
  6580. {
  6581. sub_803D("BANK_CHECK_FOR_CODE_DEPOSITS: Updating value in BANK_ACCOUNT_TREVOR to match stats");
  6582. setElem(num3, 2, &g_43946, 4);
  6583. }
  6584. }
  6585.  
  6586. void sub_803D(var A_0)
  6587. {
  6588. sub_804B(A_0);
  6589. }
  6590.  
  6591. void sub_804B(var A_0)
  6592. {
  6593. if (GAMEPLAY::ARE_STRINGS_EQUAL(A_0, A_0) != 0)
  6594. {
  6595. }
  6596. }
  6597.  
  6598. var sub_805E()
  6599. {
  6600. if (sub_10B44() != 0)
  6601. {
  6602. return sub_80E3(PLAYER::PLAYER_ID());
  6603. }
  6604. return sub_8083(sub_B25());
  6605. }
  6606.  
  6607. var sub_8083(var A_0)
  6608. {
  6609. var num3;
  6610. switch (A_0)
  6611. {
  6612. case 0:
  6613. STATS::STAT_GET_INT(0x324C31D, &num3, -1);
  6614. return num3;
  6615. case 1:
  6616. STATS::STAT_GET_INT(0x44BD6982, &num3, -1);
  6617. return num3;
  6618. case 2:
  6619. STATS::STAT_GET_INT(0x8D75047D, &num3, -1);
  6620. return num3;
  6621. }
  6622. sub_803D("GET_TOTAL_CASH: enum doesn't have an account");
  6623. return 0;
  6624. }
  6625.  
  6626. var sub_80E3(var A_0)
  6627. {
  6628. return sub_80F5(A_0);
  6629. }
  6630.  
  6631. var sub_80F5(var A_0)
  6632. {
  6633. if (A_0 > -1)
  6634. {
  6635. if (A_0 == PLAYER::PLAYER_ID())
  6636. {
  6637. return NETWORKCASH::0x4F5B781C(-1);
  6638. }
  6639. if (sub_8138(A_0) != 0)
  6640. {
  6641. return rPtr((getElemPtr(A_0, &g_1574052, 1136) + 712) + 12);
  6642. }
  6643. return 0;
  6644. }
  6645. return 0;
  6646. }
  6647.  
  6648. var sub_8138(var A_0)
  6649. {
  6650. if (A_0 == -1)
  6651. {
  6652. return 0;
  6653. }
  6654. return GAMEPLAY::IS_BIT_SET(rPtr((&g_2390986) + 1), A_0);
  6655. }
  6656.  
  6657. void sub_815D(var A_0)
  6658. {
  6659. if (AUDIO::GET_PLAYER_RADIO_STATION_INDEX() != 255)
  6660. {
  6661. AUDIO::SET_MOBILE_RADIO_ENABLED_DURING_GAMEPLAY(A_0);
  6662. AUDIO::SET_MOBILE_PHONE_RADIO_STATE(A_0);
  6663. }
  6664. }
  6665.  
  6666. void sub_817A()
  6667. {
  6668. wPtr(0, (&g_13109) + 5);
  6669. }
  6670.  
  6671. void sub_8188(var A_0, var A_1, var A_2)
  6672. {
  6673. bool flag3;
  6674. bool flag1;
  6675. var num4;
  6676. wPtr(A_0, (&g_13241) + 4485);
  6677. wPtr(A_2, (&g_13241) + 4617);
  6678. if (rPtr((&g_13241) + 4485) < rPtr((&g_13241) + 4484))
  6679. {
  6680. wPtr(rPtr((&g_13241) + 4485), (&g_13241) + 4484);
  6681. goto Label_02B7;
  6682. }
  6683. var num1 = rPtr((&g_13241) + 4478);
  6684. var num11 = num1 & (rPtr((&g_13241) + 4485) > rPtr((&g_13241) + 4486));
  6685. if (num11 == 0)
  6686. {
  6687. flag1 = rPtr((&g_13241) + 4478) == 0;
  6688. }
  6689. if ((num11 | (flag1 & (rPtr((&g_13241) + 4485) >= (rPtr((&g_13241) + 4484) + rPtr((&g_13241) + 3990))))) == 0)
  6690. {
  6691. goto Label_02B7;
  6692. }
  6693. var num3 = rPtr((&g_13241) + 4484);
  6694. while (true)
  6695. {
  6696. if (num3 > rPtr((&g_13241) + 4485))
  6697. {
  6698. break;
  6699. }
  6700. bool flag2 = num3 >= 0;
  6701. if ((flag2 & (num3 < 124)) && (getElem(num3, (&g_13241) + 3857, 4) != 0))
  6702. {
  6703. num4++;
  6704. }
  6705. num3++;
  6706. }
  6707. Label_01B0:
  6708. flag3 = num4 > rPtr((&g_13241) + 3990);
  6709. if (flag3 & (rPtr((&g_13241) + 4484) < 125))
  6710. {
  6711. wPtr(rPtr((&g_13241) + 4484) + 1, (&g_13241) + 4484);
  6712. num4 = 0;
  6713. for (num3 = rPtr((&g_13241) + 4484); num3 <= rPtr((&g_13241) + 4485); num3++)
  6714. {
  6715. bool flag4 = num3 >= 0;
  6716. if ((flag4 & (num3 < 124)) && (getElem(num3, (&g_13241) + 3857, 4) != 0))
  6717. {
  6718. num4++;
  6719. }
  6720. }
  6721. goto Label_01B0;
  6722. }
  6723. Label_02B7:
  6724. wPtr(0, (&g_13241) + 4477);
  6725. wPtr(0, (&g_13241) + 4478);
  6726. if (A_1 != null)
  6727. {
  6728. strcpy("", (&g_13241) + 3697, 16);
  6729. }
  6730. }
  6731.  
  6732. void sub_82CE()
  6733. {
  6734. if (l_103 == l_104)
  6735. {
  6736. l_328 = 3;
  6737. }
  6738. else
  6739. {
  6740. l_329 = getElem(l_103, &l_320, 4);
  6741. sub_833B();
  6742. if (l_329 == 0)
  6743. {
  6744. sub_27A1("PROSTITUTES_BJ_SCENE");
  6745. AUDIO::REQUEST_SCRIPT_AUDIO_BANK("PROSTITUTE_BLOWJOB", 0);
  6746. l_328 = 0;
  6747. }
  6748. else if (l_329 == 1)
  6749. {
  6750. sub_27A1("PROSTITUTES_SEX_SCENE");
  6751. l_328 = 1;
  6752. }
  6753. else if (l_329 == 2)
  6754. {
  6755. sub_27A1("PROSTITUTES_SEX_SCENE");
  6756. l_328 = 2;
  6757. }
  6758. }
  6759. }
  6760.  
  6761. void sub_833B()
  6762. {
  6763. switch (l_329)
  6764. {
  6765. case 0:
  6766. sub_837C();
  6767. break;
  6768. case 1:
  6769. case 2:
  6770. sub_836B();
  6771. break;
  6772. }
  6773. }
  6774.  
  6775. void sub_836B()
  6776. {
  6777. l_83++;
  6778. l_84 = 1;
  6779. }
  6780.  
  6781. void sub_837C()
  6782. {
  6783. l_82++;
  6784. l_84 = 1;
  6785. }
  6786.  
  6787. void sub_838D(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  6788. {
  6789. var num3;
  6790. var num9;
  6791. var num12;
  6792. var num17;
  6793. var num27;
  6794. var num28;
  6795. var num29;
  6796. var num30;
  6797. var num31;
  6798. var num32;
  6799. var num37;
  6800. var num38;
  6801. var num39;
  6802. var num44;
  6803. var num45;
  6804. var num46;
  6805. var num47;
  6806. var num48;
  6807. var num49;
  6808. var num50;
  6809. var num51;
  6810. var num52;
  6811. var num53;
  6812. var num54;
  6813. var num55;
  6814. var num57;
  6815. var num59;
  6816. var num60;
  6817. var num61;
  6818. if (sub_B611(&num3, 0, A_1) == 0)
  6819. {
  6820. return;
  6821. }
  6822. if (sub_B574(0) == 0)
  6823. {
  6824. return;
  6825. }
  6826. GRAPHICS::0x228A2598(76, 84);
  6827. GRAPHICS::0x76C641E4(-0.05f, -0.05f, 0f, 0f);
  6828. var num58 = 0f;
  6829. if (g_13241 != 0)
  6830. {
  6831. if (sub_B4C6(29, 1, 1, &num38, &num39) != 0)
  6832. {
  6833. num58 = num39;
  6834. num58 += 0f;
  6835. }
  6836. else
  6837. {
  6838. g_13241 = 0;
  6839. }
  6840. }
  6841. if (GAMEPLAY::GET_HASH_KEY((&g_13241) + 1) == GAMEPLAY::GET_HASH_KEY("HIDE"))
  6842. {
  6843. num59 = g_13240;
  6844. }
  6845. else
  6846. {
  6847. num59 = (((g_13240 + num58) + 0.034722f) + 0f);
  6848. }
  6849. GRAPHICS::GET_SCREEN_RESOLUTION(&num60, &num61);
  6850. var num8 = 0;
  6851. Label_0122:
  6852. if (num8 >= 2)
  6853. {
  6854. if (rPtr((&g_13241) + 4478) == 0)
  6855. {
  6856. wPtr(num12, (&g_13241) + 4481);
  6857. wPtr(1, (&g_13241) + 4478);
  6858. }
  6859. wPtr(num52, (&g_13241) + 4619);
  6860. wPtr(GAMEPLAY::GET_GAME_TIMER(), (&g_13241) + 4621);
  6861. UI::0x1DA7E41A(rPtr((&g_13241) + 4619));
  6862. if (rPtr((&g_13241) + 6183) == 0)
  6863. {
  6864. sub_689C();
  6865. }
  6866. wPtr(0, (&g_13241) + 6183);
  6867. if (A_2 != null)
  6868. {
  6869. UI::HIDE_HUD_COMPONENT_THIS_FRAME(10);
  6870. }
  6871. UI::HIDE_HUD_COMPONENT_THIS_FRAME(6);
  6872. UI::HIDE_HUD_COMPONENT_THIS_FRAME(7);
  6873. UI::HIDE_HUD_COMPONENT_THIS_FRAME(9);
  6874. UI::HIDE_HUD_COMPONENT_THIS_FRAME(8);
  6875. if (A_0 != null)
  6876. {
  6877. sub_A56E(1);
  6878. }
  6879. GRAPHICS::0x3FE33BD6();
  6880. return;
  6881. }
  6882. bool flag1 = num8 == 1;
  6883. if (flag1 & rPtr((&g_13241) + 4477))
  6884. {
  6885. var num4;
  6886. var num5;
  6887. var num6;
  6888. var num7;
  6889. var num18;
  6890. var num19;
  6891. var num20;
  6892. if (GAMEPLAY::GET_HASH_KEY((&g_13241) + 1) == GAMEPLAY::GET_HASH_KEY("HIDE"))
  6893. {
  6894. num52 = g_13240;
  6895. }
  6896. else
  6897. {
  6898. if (g_13241 != 0)
  6899. {
  6900. GRAPHICS::DRAW_SPRITE(sub_B468(29), sub_B062(29, 1), g_13239 + ((A_5 * 0.5f)), g_13240 + (((num58 - 0f) * 0.5f)), A_5, num58 - (0f), 0f, 255, 255, 255, 255);
  6901. }
  6902. if (rPtr((&g_13241) + 6188) != 0)
  6903. {
  6904. num4 = rPtr((&g_13241) + 6184);
  6905. num5 = rPtr((&g_13241) + 6185);
  6906. num6 = rPtr((&g_13241) + 6186);
  6907. num7 = rPtr((&g_13241) + 6187);
  6908. }
  6909. else
  6910. {
  6911. num4 = 0;
  6912. num5 = 0;
  6913. num6 = 0;
  6914. num7 = 204;
  6915. }
  6916. sub_B034(g_13239, g_13240 + num58, A_5, 0.034722f, num4, num5, num6, num7);
  6917. num52 = (((g_13240 + num58) + 0.034722f) + 0f);
  6918. if (GAMEPLAY::GET_HASH_KEY((&g_13241) + 1) != 0)
  6919. {
  6920. sub_AFD1();
  6921. UI::0x3E35563E((&g_13241) + 1);
  6922. num18 = 0;
  6923. num19 = 0;
  6924. num20 = 0;
  6925. var num21 = 0;
  6926. num17 = 0;
  6927. while (true)
  6928. {
  6929. if (num17 >= rPtr((&g_13241) + 52))
  6930. {
  6931. break;
  6932. }
  6933. if (getElem(num17, (&g_13241) + 5, 4) == 2)
  6934. {
  6935. UI::ADD_TEXT_COMPONENT_INTEGER(getElem(num18, (&g_13241) + 10, 4));
  6936. num18++;
  6937. }
  6938. else if (getElem(num17, (&g_13241) + 5, 4) == 3)
  6939. {
  6940. UI::ADD_TEXT_COMPONENT_FLOAT(getElem(num19, (&g_13241) + 14, 4), getElem(num19, (&g_13241) + 18, 4));
  6941. num19++;
  6942. }
  6943. else if (getElem(num17, (&g_13241) + 5, 4) == 1)
  6944. {
  6945. UI::0xDCE05406(getElemPtr(num20, (&g_13241) + 22, 16));
  6946. num20++;
  6947. }
  6948. else if (getElem(num17, (&g_13241) + 5, 4) == 5)
  6949. {
  6950. UI::0x27A244D8(getElemPtr(num21, (&g_13241) + 35, 32));
  6951. num21++;
  6952. }
  6953. else if (getElem(num17, (&g_13241) + 5, 4) == 6)
  6954. {
  6955. UI::0xDCE05406(getElemPtr(num21, (&g_13241) + 35, 32));
  6956. num21++;
  6957. }
  6958. else if (getElem(num17, (&g_13241) + 5, 4) == 7)
  6959. {
  6960. UI::0x27A244D8(getElemPtr(num21, (&g_13241) + 35, 32));
  6961. num21++;
  6962. }
  6963. num17++;
  6964. }
  6965. UI::0x6F8350CE(g_13239 + (0.00390625f), (g_13240 + num58) + (0.00416664f));
  6966. }
  6967. if ((rPtr((&g_13241) + 4480) > rPtr((&g_13241) + 3990)) && (rPtr((&g_13241) + 4483) != 0))
  6968. {
  6969. sub_AFD1();
  6970. sub_AF6D(((g_13239 + A_5) - (0.00390625f)) - sub_AF8F("CM_ITEM_COUNT", rPtr((&g_13241) + 4483), rPtr((&g_13241) + 4482)), (g_13240 + num58) + (0.00416664f), "CM_ITEM_COUNT", rPtr((&g_13241) + 4483), rPtr((&g_13241) + 4482));
  6971. }
  6972. }
  6973. num9 = rPtr((&g_13241) + 4484);
  6974. num12 = 0;
  6975. if (rPtr((&g_13241) + 6193) != 0)
  6976. {
  6977. num4 = rPtr((&g_13241) + 6189);
  6978. num5 = rPtr((&g_13241) + 6190);
  6979. num6 = rPtr((&g_13241) + 6191);
  6980. num7 = rPtr((&g_13241) + 6192);
  6981. }
  6982. else
  6983. {
  6984. UI::GET_HUD_COLOUR(140, &num4, &num5, &num6, &num7);
  6985. }
  6986. while (true)
  6987. {
  6988. bool flag2 = num12 < rPtr((&g_13241) + 3990);
  6989. if (!(flag2 & (num9 <= rPtr((&g_13241) + 3983))))
  6990. {
  6991. break;
  6992. }
  6993. if ((num9 >= 0) && (getElem(num9, (&g_13241) + 4244, 4) != 0))
  6994. {
  6995. var num1 = getElem(num9, (&g_13241) + 4118, 4);
  6996. if ((num1 & (num9 != rPtr((&g_13241) + 4484))) != 0)
  6997. {
  6998. num52 += 0.00277776f;
  6999. }
  7000. num57 = 0.034722f;
  7001. if (getElem(num9, (&g_13241) + 4491, 4) != 0f)
  7002. {
  7003. num57 = getElem(num9, (&g_13241) + 4491, 4);
  7004. }
  7005. sub_B034(g_13239, num52, A_5, num57, num4, num5, num6, num7);
  7006. num52 += num57;
  7007. num12++;
  7008. }
  7009. num9++;
  7010. }
  7011. if ((A_3 != null) && (num12 <= 1))
  7012. {
  7013. num57 = 0.034722f;
  7014. sub_B034(g_13239, num52, A_5, num57, num4, num5, num6, num7);
  7015. num52 += num57;
  7016. num12++;
  7017. if (rPtr((&g_13241) + 3983) <= 1)
  7018. {
  7019. wPtr(rPtr((&g_13241) + 3983) + 1, (&g_13241) + 3983);
  7020. }
  7021. num55 = 1;
  7022. }
  7023. if (rPtr((&g_13241) + 4480) > rPtr((&g_13241) + 3990))
  7024. {
  7025. var num40;
  7026. if (rPtr((&g_13241) + 6198) != 0)
  7027. {
  7028. num4 = rPtr((&g_13241) + 6194);
  7029. num5 = rPtr((&g_13241) + 6195);
  7030. num6 = rPtr((&g_13241) + 6196);
  7031. num7 = rPtr((&g_13241) + 6197);
  7032. }
  7033. else
  7034. {
  7035. num4 = 0;
  7036. num5 = 0;
  7037. num6 = 0;
  7038. num7 = 204;
  7039. }
  7040. sub_B034(g_13239, num52 + (0f), A_5, 0.034722f, num4, num5, num6, num7);
  7041. struct _s = GRAPHICS::GET_TEXTURE_RESOLUTION("CommonMenu", "shop_arrows_upANDdown");
  7042. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num40);
  7043. if (rPtr((&g_13241) + 6211) != 0)
  7044. {
  7045. num4 = 0;
  7046. num5 = 0;
  7047. num6 = 0;
  7048. num7 = 255;
  7049. }
  7050. else
  7051. {
  7052. UI::GET_HUD_COLOUR(1, &num4, &num5, &num6, &num7);
  7053. }
  7054. GRAPHICS::DRAW_SPRITE("CommonMenu", "shop_arrows_upANDdown", g_13239 + ((A_5 * 0.5f)), ((num52 + 0f) + (0.034722f * 0.5f)), num40 / itof(num60), rPtr((&num40) + 1) / itof(num61), 0f, num4, num5, num6, num7);
  7055. num52 += (0f + 0.034722f);
  7056. }
  7057. bool flag3 = GAMEPLAY::GET_HASH_KEY((&g_13241) + 3697) != 0;
  7058. if (flag3 & (rPtr((&g_13241) + 3741) != -1))
  7059. {
  7060. num52 += (0.00277776f * 2f);
  7061. num44 = g_13239 + (0.0046875f);
  7062. if (rPtr((&g_13241) + 3743) != 0)
  7063. {
  7064. sub_B4C6(rPtr((&g_13241) + 3743), 1, 1, &num38, &num39);
  7065. num44 = (((g_13239 + num38) + (0.00078125f * 4f)) - (0.00078125f * 1f));
  7066. }
  7067. sub_AF0C(num44);
  7068. UI::0x94B82066((&g_13241) + 3697);
  7069. num18 = 0;
  7070. num19 = 0;
  7071. num20 = 0;
  7072. num17 = 0;
  7073. while (true)
  7074. {
  7075. if (num17 >= rPtr((&g_13241) + 3737))
  7076. {
  7077. break;
  7078. }
  7079. if (getElem(num17, (&g_13241) + 3701, 4) == 2)
  7080. {
  7081. UI::ADD_TEXT_COMPONENT_INTEGER(getElem(num18, (&g_13241) + 3706, 4));
  7082. num18++;
  7083. }
  7084. else if (getElem(num17, (&g_13241) + 3701, 4) == 3)
  7085. {
  7086. UI::ADD_TEXT_COMPONENT_FLOAT(getElem(num19, (&g_13241) + 3710, 4), getElem(num19, (&g_13241) + 3714, 4));
  7087. num19++;
  7088. }
  7089. else if (getElem(num17, (&g_13241) + 3701, 4) == 1)
  7090. {
  7091. UI::0xDCE05406(getElemPtr(num20, (&g_13241) + 3718, 24));
  7092. num20++;
  7093. }
  7094. else if (getElem(num17, (&g_13241) + 3701, 4) == 5)
  7095. {
  7096. UI::0x27A244D8(getElemPtr(num20, (&g_13241) + 3718, 24));
  7097. num20++;
  7098. }
  7099. else if (getElem(num17, (&g_13241) + 3701, 4) == 6)
  7100. {
  7101. UI::0xDCE05406(getElemPtr(num20, (&g_13241) + 3718, 24));
  7102. num20++;
  7103. }
  7104. else if (getElem(num17, (&g_13241) + 3701, 4) == 7)
  7105. {
  7106. UI::0x27A244D8(getElemPtr(num20, (&g_13241) + 3718, 24));
  7107. num20++;
  7108. }
  7109. num17++;
  7110. }
  7111. num9 = UI::0xAA318785(num44, num52 + (0.00277776f));
  7112. UI::GET_HUD_COLOUR(1, &num4, &num5, &num6, &num7);
  7113. sub_B034(g_13239, num52 - (0.00277776f), A_5, 0.00277776f, num4, num5, num6, num7);
  7114. if (rPtr((&g_13241) + 6203) != 0)
  7115. {
  7116. num4 = rPtr((&g_13241) + 6199);
  7117. num5 = rPtr((&g_13241) + 6200);
  7118. num6 = rPtr((&g_13241) + 6201);
  7119. num7 = rPtr((&g_13241) + 6202);
  7120. }
  7121. else
  7122. {
  7123. UI::GET_HUD_COLOUR(140, &num4, &num5, &num6, &num7);
  7124. }
  7125. sub_B034(g_13239, num52, A_5, (((UI::0x3330175B(0.35f, 0) * itof(num9)) + (0.00138888f * 13f)) + ((0.00138888f * 5f) * itof(num9 - 1))), num4, num5, num6, num7);
  7126. sub_AF0C(num44);
  7127. UI::0x3E35563E((&g_13241) + 3697);
  7128. num18 = 0;
  7129. num19 = 0;
  7130. num20 = 0;
  7131. num17 = 0;
  7132. while (true)
  7133. {
  7134. if (num17 >= rPtr((&g_13241) + 3737))
  7135. {
  7136. break;
  7137. }
  7138. if (getElem(num17, (&g_13241) + 3701, 4) == 2)
  7139. {
  7140. UI::ADD_TEXT_COMPONENT_INTEGER(getElem(num18, (&g_13241) + 3706, 4));
  7141. num18++;
  7142. }
  7143. else if (getElem(num17, (&g_13241) + 3701, 4) == 3)
  7144. {
  7145. UI::ADD_TEXT_COMPONENT_FLOAT(getElem(num19, (&g_13241) + 3710, 4), getElem(num19, (&g_13241) + 3714, 4));
  7146. num19++;
  7147. }
  7148. else if (getElem(num17, (&g_13241) + 3701, 4) == 1)
  7149. {
  7150. UI::0xDCE05406(getElemPtr(num20, (&g_13241) + 3718, 24));
  7151. num20++;
  7152. }
  7153. else if (getElem(num17, (&g_13241) + 3701, 4) == 5)
  7154. {
  7155. UI::0x27A244D8(getElemPtr(num20, (&g_13241) + 3718, 24));
  7156. num20++;
  7157. }
  7158. else if (getElem(num17, (&g_13241) + 3701, 4) == 6)
  7159. {
  7160. UI::0xDCE05406(getElemPtr(num20, (&g_13241) + 3718, 24));
  7161. num20++;
  7162. }
  7163. else if (getElem(num17, (&g_13241) + 3701, 4) == 7)
  7164. {
  7165. UI::0x27A244D8(getElemPtr(num20, (&g_13241) + 3718, 24));
  7166. num20++;
  7167. }
  7168. num17++;
  7169. }
  7170. UI::0x6F8350CE(num44, num52 + (0.00277776f));
  7171. if (rPtr((&g_13241) + 3743) != 0)
  7172. {
  7173. sub_B4C6(rPtr((&g_13241) + 3743), 1, 1, &num38, &num39);
  7174. sub_AE64(rPtr((&g_13241) + 3743), 1, &num49, &num50, &num51);
  7175. GRAPHICS::DRAW_SPRITE(sub_B468(rPtr((&g_13241) + 3743)), sub_B062(rPtr((&g_13241) + 3743), 1), ((g_13239 + (num38 * 0.5f)) + (0.00078125f * 2f)), ((num52 + (num39 * 0.5f)) - (0.00138888f * 4f)), num38, num39, 0f, num49, num50, num51, 255);
  7176. }
  7177. num52 += (((UI::0x3330175B(0.35f, 0) * itof(num9)) + (0.00138888f * 13f)) + ((0.00138888f * 5f) * itof(num9 - 1)));
  7178. if ((rPtr((&g_13241) + 3741) > 0) && ((GAMEPLAY::GET_GAME_TIMER() - rPtr((&g_13241) + 3742)) > rPtr((&g_13241) + 3741)))
  7179. {
  7180. strcpy("", (&g_13241) + 3697, 16);
  7181. wPtr(-1, (&g_13241) + 3741);
  7182. }
  7183. }
  7184. sub_AA73(num60, A_1, 0, 0, 0, 0, A_4, 0);
  7185. GRAPHICS::0x228A2598(76, 84);
  7186. GRAPHICS::0x76C641E4(-0.05f, -0.05f, 0f, 0f);
  7187. }
  7188. bool flag4 = num8 == 1;
  7189. if (!(flag4 | (rPtr((&g_13241) + 4477) == 0)))
  7190. {
  7191. goto Label_4762;
  7192. }
  7193. var num22 = 0;
  7194. var num26 = 0;
  7195. var num23 = 0;
  7196. var num24 = 0;
  7197. var num25 = 0;
  7198. num12 = 0;
  7199. var num13 = 0;
  7200. var num14 = 0;
  7201. var num15 = 0;
  7202. var num16 = 0;
  7203. var num62 = rPtr((&g_13241) + 3983);
  7204. if (rPtr((&g_13241) + 4478) != 0)
  7205. {
  7206. num62 = rPtr((&g_13241) + 4481) - 1;
  7207. }
  7208. var num63 = 0f;
  7209. var num64 = 0f;
  7210. var num10 = 0;
  7211. Label_14F6:
  7212. if (num10 > num62)
  7213. {
  7214. if (rPtr((&g_13241) + 4477) == 0)
  7215. {
  7216. wPtr((num59 + num63) + ((0.00277776f * itof(num15))), (&g_13241) + 4479);
  7217. wPtr(num14, (&g_13241) + 4482);
  7218. wPtr(num13, (&g_13241) + 4480);
  7219. wPtr(1, (&g_13241) + 4477);
  7220. }
  7221. goto Label_4762;
  7222. }
  7223. num57 = 0.034722f;
  7224. if (getElem(num9, (&g_13241) + 4491, 4) != 0f)
  7225. {
  7226. num57 = getElem(num9, (&g_13241) + 4491, 4);
  7227. }
  7228. if (rPtr((&g_13241) + 4478) != 0)
  7229. {
  7230. num9 = getElem(num10, (&g_13241) + 5844, 4);
  7231. }
  7232. else
  7233. {
  7234. num9 = num10;
  7235. }
  7236. num15 = num16;
  7237. var num35 = 0;
  7238. bool flag5 = num9 >= rPtr((&g_13241) + 4484);
  7239. if (flag5 & (num12 < rPtr((&g_13241) + 3990)))
  7240. {
  7241. num35 = 1;
  7242. if (rPtr((&g_13241) + 4485) == num9)
  7243. {
  7244. num64 = num63;
  7245. }
  7246. if (getElem(num9, (&g_13241) + 4118, 4) != 0)
  7247. {
  7248. num15++;
  7249. }
  7250. num37 = (((num59 + num63) + (0.00277776f * itof(num15))) + 0.00277776f);
  7251. }
  7252. setElem(num37, num9, (&g_13241) + 4622, 4);
  7253. var num36 = g_13239 + (0.0046875f);
  7254. var num43 = 0;
  7255. var num34 = (rPtr((&g_13241) + 4485) == num9);
  7256. var num79 = num34 & (num8 == 1);
  7257. if ((num79 & num35) != 0)
  7258. {
  7259. var num65 = 255;
  7260. var num66 = 255;
  7261. var num67 = 255;
  7262. var num68 = 255;
  7263. if (rPtr((&g_13241) + 6205) != 0)
  7264. {
  7265. UI::GET_HUD_COLOUR(rPtr((&g_13241) + 6204), &num65, &num66, &num67, &num68);
  7266. }
  7267. else
  7268. {
  7269. UI::GET_HUD_COLOUR(1, &num65, &num66, &num67, &num68);
  7270. }
  7271. sub_B034(g_13239, (num59 + num64) + ((0.00277776f * itof(num15))), A_5, num57, num65, num66, num67, num68);
  7272. wPtr(num37, (&g_13241) + 4620);
  7273. }
  7274. if ((num55 & (num10 == num62)) != 0)
  7275. {
  7276. sub_A65C(num34, 1, 0, 0, 0, 0);
  7277. UI::0x3E35563E("DFLT_MNU_OPT");
  7278. UI::0x6F8350CE(num36, num37);
  7279. num43 = 1;
  7280. goto Label_453B;
  7281. }
  7282. var num11 = 0;
  7283. Label_1808:
  7284. if (num11 >= rPtr((&g_13241) + 3991))
  7285. {
  7286. goto Label_453B;
  7287. }
  7288. var num80 = GAMEPLAY::IS_BIT_SET(getElem(num9, (&g_13241) + 3857, 4), num11);
  7289. if ((num80 | (getElem(num11, (&g_13241) + 3824, 4) == 5)) == 0)
  7290. {
  7291. num36 += getElem(num11, (&g_13241) + 3836, 4);
  7292. goto Label_4528;
  7293. }
  7294. if (rPtr((&g_13241) + 4478) != 0)
  7295. {
  7296. num22 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5855, 4);
  7297. num23 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5896, 4);
  7298. num24 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5937, 4);
  7299. num25 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5978, 4);
  7300. num26 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6019, 4);
  7301. }
  7302. else
  7303. {
  7304. setElem(num22, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5855, 4);
  7305. setElem(num23, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5896, 4);
  7306. setElem(num24, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5937, 4);
  7307. setElem(num25, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 5978, 4);
  7308. setElem(num26, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6019, 4);
  7309. }
  7310. var num69 = 0;
  7311. var num56 = 0;
  7312. if ((getElem(0, (&g_13241) + 4751, 4) != -1) && (((num9 * 5) + num11) == getElem(0, (&g_13241) + 4748, 4)))
  7313. {
  7314. num56 = 1;
  7315. num69 = 0;
  7316. }
  7317. if ((getElem(1, (&g_13241) + 4751, 4) != -1) && (((num9 * 5) + num11) == getElem(1, (&g_13241) + 4748, 4)))
  7318. {
  7319. num56 = 1;
  7320. num69 = 1;
  7321. }
  7322. if (getElem(num11, (&g_13241) + 3830, 4) != -1f)
  7323. {
  7324. num36 = (g_13239 + (0.0046875f)) + getElem(num11, (&g_13241) + 3830, 4);
  7325. }
  7326. bool flag6 = num11 < 4;
  7327. bool flag7 = flag6 & (getElem(num11 + 1, (&g_13241) + 3830, 4) != -1f);
  7328. if (flag7 & (num36 < getElem(num11 + 1, (&g_13241) + 3830, 4)))
  7329. {
  7330. num48 = getElem(num11 + 1, (&g_13241) + 3830, 4) - num36;
  7331. }
  7332. else
  7333. {
  7334. num48 = (((g_13239 + 0.225f) - 0.0046875f)) - num36;
  7335. }
  7336. var num81 = getElem(num11, (&g_13241) + 3843, 4);
  7337. var num82 = num81 & rPtr((&g_13241) + 4617);
  7338. if ((num82 & num34) != 0)
  7339. {
  7340. num54 = 1;
  7341. }
  7342. else
  7343. {
  7344. num54 = 0;
  7345. }
  7346. switch (getElem(num11, (&g_13241) + 3824, 4))
  7347. {
  7348. case 1:
  7349. {
  7350. num27 = num22;
  7351. bool flag8 = num8 == 1;
  7352. if (!(flag8 & num35))
  7353. {
  7354. goto Label_32FD;
  7355. }
  7356. if (rPtr((&g_13241) + 4478) != 0)
  7357. {
  7358. num44 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7359. num45 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6101, 4);
  7360. num46 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6142, 4);
  7361. goto Label_2539;
  7362. }
  7363. num45 = 0f;
  7364. num46 = 0f;
  7365. num28 = 0;
  7366. num29 = 0;
  7367. num30 = 0;
  7368. num31 = 0;
  7369. num32 = 0;
  7370. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) == 0)
  7371. {
  7372. goto Label_1E83;
  7373. }
  7374. num53 = 0;
  7375. num17 = 0;
  7376. while (true)
  7377. {
  7378. if (num17 >= 4)
  7379. {
  7380. break;
  7381. }
  7382. if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 5)
  7383. {
  7384. num53 = 1;
  7385. }
  7386. num17++;
  7387. }
  7388. }
  7389. case 2:
  7390. {
  7391. bool flag10 = num8 == 1;
  7392. if (!(flag10 & num35))
  7393. {
  7394. goto Label_39D4;
  7395. }
  7396. if (rPtr((&g_13241) + 4478) != 0)
  7397. {
  7398. goto Label_370B;
  7399. }
  7400. sub_A65C(num34, getElem(num27, (&g_13241) + 1058, 4), getElem(num27, (&g_13241) + 1309, 4), num56, 0, 0);
  7401. var num84 = rPtr((&g_13241) + 6209);
  7402. if ((num84 & (rPtr((&g_13241) + 6210) == num9)) != 0)
  7403. {
  7404. sub_A616(num34);
  7405. }
  7406. UI::0x51E7A037("NUMBER");
  7407. UI::ADD_TEXT_COMPONENT_INTEGER(getElem(num23, (&g_13241) + 3068, 4));
  7408. num45 = UI::0xD12A643A(1);
  7409. num44 = 0f;
  7410. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7411. {
  7412. num44 += (num48 - num45) + ((0.00078125f * 1f));
  7413. }
  7414. else if (getElem(num11, (&g_13241) + 3851, 4) == 0)
  7415. {
  7416. num44 += (((num48 - num36) * 0.5f) - (num45 * 0.5f));
  7417. }
  7418. setElem(num44, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7419. setElem(num45, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6101, 4);
  7420. goto Label_3771;
  7421. }
  7422. case 3:
  7423. {
  7424. bool flag11 = num8 == 1;
  7425. if (flag11 & num35)
  7426. {
  7427. if (rPtr((&g_13241) + 4478) != 0)
  7428. {
  7429. num44 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7430. num45 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6101, 4);
  7431. }
  7432. else
  7433. {
  7434. sub_A65C(num34, getElem(num27, (&g_13241) + 1058, 4), getElem(num27, (&g_13241) + 1309, 4), num56, 0, 0);
  7435. var num85 = rPtr((&g_13241) + 6209);
  7436. if ((num85 & (rPtr((&g_13241) + 6210) == num9)) != 0)
  7437. {
  7438. sub_A616(num34);
  7439. }
  7440. UI::0x51E7A037("NUMBER");
  7441. UI::ADD_TEXT_COMPONENT_FLOAT(getElem(num24, (&g_13241) + 3319, 4), getElem(num24, (&g_13241) + 3445, 4));
  7442. num45 = UI::0xD12A643A(1);
  7443. num44 = 0f;
  7444. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7445. {
  7446. num44 += (num48 - num45) + ((0.00078125f * 1f));
  7447. }
  7448. else if (getElem(num11, (&g_13241) + 3851, 4) == 0)
  7449. {
  7450. num44 += (((num48 - num36) * 0.5f) - (num45 * 0.5f));
  7451. }
  7452. setElem(num44, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7453. setElem(num45, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6101, 4);
  7454. }
  7455. if (num54 != 0)
  7456. {
  7457. if (sub_B4C6(26, 1, 0, &num38, &num39) != 0)
  7458. {
  7459. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7460. {
  7461. num44 -= (num38 * 2f);
  7462. }
  7463. num47 = (num38 * 0.5f);
  7464. if (sub_B4C6(26, 1, 1, &num38, &num39) != 0)
  7465. {
  7466. sub_AE64(26, 1, &num49, &num50, &num51);
  7467. GRAPHICS::DRAW_SPRITE(sub_B468(26), sub_B062(26, 1), (num36 + num44) + num47, ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7468. }
  7469. }
  7470. if (sub_B4C6(27, 1, 0, &num38, &num39) != 0)
  7471. {
  7472. num44 += num38;
  7473. num47 = (num38 * 0.5f);
  7474. if (sub_B4C6(27, 1, 1, &num38, &num39) != 0)
  7475. {
  7476. sub_AE64(27, 1, &num49, &num50, &num51);
  7477. GRAPHICS::DRAW_SPRITE(sub_B468(27), sub_B062(27, 1), ((num36 + num44) + num47) + (num45 + num46), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7478. }
  7479. }
  7480. }
  7481. sub_A65C(num34, getElem(num27, (&g_13241) + 1058, 4), getElem(num27, (&g_13241) + 1309, 4), num56, 0, 0);
  7482. sub_A5DC(num36 + num44, num37, "NUMBER", getElem(num24, (&g_13241) + 3319, 4), getElem(num24, (&g_13241) + 3445, 4));
  7483. }
  7484. num43 = 1;
  7485. num24++;
  7486. goto Label_4411;
  7487. }
  7488. case 4:
  7489. {
  7490. bool flag12 = num8 == 1;
  7491. if ((flag12 & num35) && (sub_B4C6(getElem(num25, (&g_13241) + 3571, 4), num34, 0, &num38, &num39) != 0))
  7492. {
  7493. if (rPtr((&g_13241) + 4478) != 0)
  7494. {
  7495. num44 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7496. num46 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6142, 4);
  7497. }
  7498. else
  7499. {
  7500. num46 = num38;
  7501. num44 = 0f;
  7502. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7503. {
  7504. num44 += (num48 - num46) + ((0.00078125f * 1f));
  7505. }
  7506. else if (getElem(num11, (&g_13241) + 3851, 4) == 0)
  7507. {
  7508. num44 += (((num48 - num36) * 0.5f) - (num46 * 0.5f));
  7509. }
  7510. setElem(num44, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7511. setElem(num46, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6142, 4);
  7512. }
  7513. if (num54 != 0)
  7514. {
  7515. if (sub_B4C6(26, 1, 0, &num38, &num39) != 0)
  7516. {
  7517. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7518. {
  7519. num44 -= (num38 * 2f);
  7520. }
  7521. num47 = (num38 * 0.5f);
  7522. if (sub_B4C6(26, 1, 1, &num38, &num39) != 0)
  7523. {
  7524. sub_AE64(26, 1, &num49, &num50, &num51);
  7525. GRAPHICS::DRAW_SPRITE(sub_B468(26), sub_B062(26, 1), (num36 + num44) + num47, ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7526. }
  7527. }
  7528. if (sub_B4C6(27, 1, 0, &num38, &num39) != 0)
  7529. {
  7530. num44 += num38;
  7531. num47 = (num38 * 0.5f);
  7532. if (sub_B4C6(27, 1, 1, &num38, &num39) != 0)
  7533. {
  7534. sub_AE64(27, 1, &num49, &num50, &num51);
  7535. GRAPHICS::DRAW_SPRITE(sub_B468(27), sub_B062(27, 1), ((num36 + num44) + num47) + (num45 + num46), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7536. }
  7537. }
  7538. }
  7539. if (sub_B4C6(getElem(num25, (&g_13241) + 3571, 4), num34, 1, &num38, &num39) != 0)
  7540. {
  7541. sub_AE64(getElem(num25, (&g_13241) + 3571, 4), num34, &num49, &num50, &num51);
  7542. GRAPHICS::DRAW_SPRITE(sub_B468(getElem(num25, (&g_13241) + 3571, 4)), sub_B062(getElem(num25, (&g_13241) + 3571, 4), num34), (num36 + num44) + ((num38 * 0.5f)), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38 * sub_A57F(getElem(num25, (&g_13241) + 3571, 4)), num39 * sub_A57F(getElem(num25, (&g_13241) + 3571, 4)), 0f, num49, num50, num51, 255);
  7543. }
  7544. }
  7545. num43 = 1;
  7546. num25++;
  7547. goto Label_4411;
  7548. }
  7549. case 5:
  7550. num43 = 1;
  7551. goto Label_4411;
  7552. default:
  7553. goto Label_4411;
  7554. }
  7555. sub_A65C(num34, getElem(num27, (&g_13241) + 1058, 4), getElem(num27, (&g_13241) + 1309, 4), num56, num69, num53);
  7556. UI::0x51E7A037(getElemPtr(num27, (&g_13241) + 57, 16));
  7557. Label_1E83:
  7558. num17 = 0;
  7559. while (true)
  7560. {
  7561. if (num17 >= 4)
  7562. {
  7563. break;
  7564. }
  7565. if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 1)
  7566. {
  7567. num28++;
  7568. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7569. {
  7570. UI::0xDCE05406(getElemPtr(num27 + num28, (&g_13241) + 57, 16));
  7571. }
  7572. }
  7573. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 5)
  7574. {
  7575. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7576. {
  7577. UI::0x27A244D8(getElemPtr(num26 + num32, &g_2398722, 64));
  7578. }
  7579. num32++;
  7580. }
  7581. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 6)
  7582. {
  7583. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7584. {
  7585. UI::0xDCE05406(getElemPtr(num26 + num32, &g_2398722, 64));
  7586. }
  7587. num32++;
  7588. }
  7589. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 7)
  7590. {
  7591. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7592. {
  7593. UI::0x27A244D8(getElemPtr(num26 + num32, &g_2398722, 64));
  7594. }
  7595. num32++;
  7596. }
  7597. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 2)
  7598. {
  7599. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7600. {
  7601. UI::ADD_TEXT_COMPONENT_INTEGER(getElem(num23 + num29, (&g_13241) + 3068, 4));
  7602. }
  7603. num29++;
  7604. }
  7605. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 3)
  7606. {
  7607. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7608. {
  7609. UI::ADD_TEXT_COMPONENT_FLOAT(getElem(num24 + num30, (&g_13241) + 3319, 4), getElem(num24 + num30, (&g_13241) + 3445, 4));
  7610. }
  7611. num30++;
  7612. }
  7613. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 4)
  7614. {
  7615. num31++;
  7616. }
  7617. num17++;
  7618. }
  7619. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7620. {
  7621. num45 = UI::0xD12A643A(1);
  7622. }
  7623. if (num31 > 0)
  7624. {
  7625. for (num17 = 0; num17 < num31; num17++)
  7626. {
  7627. if (sub_B4C6(getElem(num25 + num17, (&g_13241) + 3571, 4), num34, 0, &num38, &num39) != 0)
  7628. {
  7629. num46 += num38;
  7630. if (num17 > 0)
  7631. {
  7632. num46 -= (0.00078125f * 4f);
  7633. }
  7634. if (getElem(num25 + num17, (&g_13241) + 3571, 4) == 2)
  7635. {
  7636. num46 -= (0.00078125f * 5f);
  7637. }
  7638. }
  7639. }
  7640. }
  7641. num44 = 0f;
  7642. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7643. {
  7644. num44 += (num48 - (num45 + num46)) + ((0.00078125f * 1f));
  7645. }
  7646. else if (getElem(num11, (&g_13241) + 3851, 4) == 0)
  7647. {
  7648. num44 += (((num48 - num36) * 0.5f) - ((num45 + num46) * 0.5f));
  7649. }
  7650. setElem(num44, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7651. setElem(num45, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6101, 4);
  7652. setElem(num46, (num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6142, 4);
  7653. Label_2539:
  7654. if (num54 != 0)
  7655. {
  7656. if (sub_B4C6(26, 1, 0, &num38, &num39) != 0)
  7657. {
  7658. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7659. {
  7660. num44 -= (num38 * 2f);
  7661. }
  7662. num47 = (num38 * 0.5f);
  7663. if (sub_B4C6(26, 1, 1, &num38, &num39) != 0)
  7664. {
  7665. sub_AE64(26, 1, &num49, &num50, &num51);
  7666. GRAPHICS::DRAW_SPRITE(sub_B468(26), sub_B062(26, 1), (num36 + num44) + num47, ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7667. }
  7668. }
  7669. if (sub_B4C6(27, 1, 0, &num38, &num39) != 0)
  7670. {
  7671. num44 += num38;
  7672. num47 = (num38 * 0.5f);
  7673. if (sub_B4C6(27, 1, 1, &num38, &num39) != 0)
  7674. {
  7675. sub_AE64(27, 1, &num49, &num50, &num51);
  7676. GRAPHICS::DRAW_SPRITE(sub_B468(27), sub_B062(27, 1), ((num36 + num44) + num47) + (num45 + num46), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7677. }
  7678. }
  7679. }
  7680. num28 = 0;
  7681. num29 = 0;
  7682. num30 = 0;
  7683. num31 = 0;
  7684. num32 = 0;
  7685. var num33 = 0;
  7686. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7687. {
  7688. num53 = 0;
  7689. num17 = 0;
  7690. while (true)
  7691. {
  7692. if (num17 >= 4)
  7693. {
  7694. break;
  7695. }
  7696. if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 5)
  7697. {
  7698. num53 = 1;
  7699. }
  7700. num17++;
  7701. }
  7702. sub_A65C(num34, getElem(num27, (&g_13241) + 1058, 4), getElem(num27, (&g_13241) + 1309, 4), num56, 0, num53);
  7703. var num83 = rPtr((&g_13241) + 6209);
  7704. if ((num83 & (rPtr((&g_13241) + 6210) == num9)) != 0)
  7705. {
  7706. sub_A616(num34);
  7707. }
  7708. UI::0x3E35563E(getElemPtr(num27, (&g_13241) + 57, 16));
  7709. }
  7710. num17 = 0;
  7711. while (true)
  7712. {
  7713. if (num17 >= 4)
  7714. {
  7715. break;
  7716. }
  7717. if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 1)
  7718. {
  7719. num28++;
  7720. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7721. {
  7722. UI::0xDCE05406(getElemPtr(num27 + num28, (&g_13241) + 57, 16));
  7723. }
  7724. num33 = 1;
  7725. }
  7726. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 5)
  7727. {
  7728. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7729. {
  7730. UI::0x27A244D8(getElemPtr(num26 + num32, &g_2398722, 64));
  7731. }
  7732. num32++;
  7733. num33 = 5;
  7734. }
  7735. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 6)
  7736. {
  7737. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7738. {
  7739. UI::0xDCE05406(getElemPtr(num26 + num32, &g_2398722, 64));
  7740. }
  7741. num32++;
  7742. num33 = 6;
  7743. }
  7744. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 7)
  7745. {
  7746. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7747. {
  7748. UI::0x27A244D8(getElemPtr(num26 + num32, &g_2398722, 64));
  7749. }
  7750. num32++;
  7751. num33 = 6;
  7752. }
  7753. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 2)
  7754. {
  7755. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7756. {
  7757. UI::ADD_TEXT_COMPONENT_INTEGER(getElem(num23 + num29, (&g_13241) + 3068, 4));
  7758. }
  7759. num29++;
  7760. num33 = 2;
  7761. }
  7762. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 3)
  7763. {
  7764. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7765. {
  7766. UI::ADD_TEXT_COMPONENT_FLOAT(getElem(num24 + num30, (&g_13241) + 3319, 4), getElem(num24 + num30, (&g_13241) + 3445, 4));
  7767. }
  7768. num30++;
  7769. num33 = 3;
  7770. }
  7771. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 4)
  7772. {
  7773. if ((getElem(num25 + num31, (&g_13241) + 3571, 4) == 2) && (sub_B4C6(getElem(num25 + num31, (&g_13241) + 3571, 4), num34, 0, &num38, &num39) != 0))
  7774. {
  7775. num44 += (num38 * 0.5f);
  7776. if (sub_B4C6(getElem(num25 + num31, (&g_13241) + 3571, 4), num34, 1, &num38, &num39) != 0)
  7777. {
  7778. sub_AE64(getElem(num25 + num31, (&g_13241) + 3571, 4), num34, &num49, &num50, &num51);
  7779. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7780. {
  7781. GRAPHICS::DRAW_SPRITE(sub_B468(getElem(num25 + num31, (&g_13241) + 3571, 4)), sub_B062(getElem(num25 + num31, (&g_13241) + 3571, 4), num34), (((num36 + num44) - (0.00078125f * 8f)) + (0.00078125f * 4f)), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7782. }
  7783. else
  7784. {
  7785. GRAPHICS::DRAW_SPRITE(sub_B468(getElem(num25 + num31, (&g_13241) + 3571, 4)), sub_B062(getElem(num25 + num31, (&g_13241) + 3571, 4), num34), (num36 + num44) - ((0.00078125f * 8f)), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7786. }
  7787. num44 += (0.00078125f * 3f);
  7788. }
  7789. }
  7790. num31++;
  7791. num33 = 4;
  7792. }
  7793. num17++;
  7794. }
  7795. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num27, (&g_13241) + 57, 16)) != 0)
  7796. {
  7797. bool flag9 = num33 == 4;
  7798. if (flag9 & (getElem(num11, (&g_13241) + 3851, 4) == 2))
  7799. {
  7800. UI::0x6F8350CE((num36 + num44) + ((0.00078125f * 7f)), num37);
  7801. }
  7802. else
  7803. {
  7804. UI::0x6F8350CE(num36 + num44, num37);
  7805. }
  7806. }
  7807. if (num31 > 0)
  7808. {
  7809. num44 += (6f * 0.00078125f);
  7810. for (num17 = 0; num17 < num31; num17++)
  7811. {
  7812. if ((getElem(num25 + num17, (&g_13241) + 3571, 4) != 2) && (sub_B4C6(getElem(num25 + num17, (&g_13241) + 3571, 4), num34, 0, &num38, &num39) != 0))
  7813. {
  7814. num44 += (num38 * 0.5f);
  7815. if (sub_B4C6(getElem(num25 + num17, (&g_13241) + 3571, 4), num34, 1, &num38, &num39) != 0)
  7816. {
  7817. sub_AE64(getElem(num25 + num17, (&g_13241) + 3571, 4), num34, &num49, &num50, &num51);
  7818. if (getElem(num25 + num17, (&g_13241) + 3571, 4) == 30)
  7819. {
  7820. GRAPHICS::DRAW_SPRITE(sub_B468(getElem(num25 + num17, (&g_13241) + 3571, 4)), sub_B062(getElem(num25 + num17, (&g_13241) + 3571, 4), num34), g_13239 + ((num38 * 0.5f)), (((num37 + 0.00277776f) + (num39 * 0.5f)) - (0.00078125f * 11f)), num38, num39, 0f, num49, num50, num51, 255);
  7821. }
  7822. else if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7823. {
  7824. GRAPHICS::DRAW_SPRITE(sub_B468(getElem(num25 + num17, (&g_13241) + 3571, 4)), sub_B062(getElem(num25 + num17, (&g_13241) + 3571, 4), num34), ((((num36 + num44) + num45) - (0.00078125f * 8f)) + (0.00078125f * 4f)), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7825. }
  7826. else
  7827. {
  7828. GRAPHICS::DRAW_SPRITE(sub_B468(getElem(num25 + num17, (&g_13241) + 3571, 4)), sub_B062(getElem(num25 + num17, (&g_13241) + 3571, 4), num34), ((num36 + num44) + num45) - ((0.00078125f * 12f)), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7829. }
  7830. }
  7831. num44 += (12f * 0.00078125f);
  7832. }
  7833. }
  7834. }
  7835. Label_32FD:
  7836. num43 = 1;
  7837. num22++;
  7838. num17 = 0;
  7839. while (true)
  7840. {
  7841. if (num17 >= 4)
  7842. {
  7843. goto Label_4411;
  7844. }
  7845. if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 1)
  7846. {
  7847. num22++;
  7848. }
  7849. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 2)
  7850. {
  7851. num23++;
  7852. }
  7853. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 3)
  7854. {
  7855. num24++;
  7856. }
  7857. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 4)
  7858. {
  7859. num25++;
  7860. }
  7861. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 5)
  7862. {
  7863. num26++;
  7864. }
  7865. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 6)
  7866. {
  7867. num26++;
  7868. }
  7869. else if (getElem(num17, getElemPtr(num27, (&g_13241) + 1560, 20), 4) == 7)
  7870. {
  7871. num26++;
  7872. }
  7873. num17++;
  7874. }
  7875. Label_370B:
  7876. num44 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6060, 4);
  7877. num45 = getElem((num12 * rPtr((&g_13241) + 3991)) + num11, (&g_13241) + 6101, 4);
  7878. Label_3771:
  7879. if (num54 != 0)
  7880. {
  7881. if (sub_B4C6(26, 1, 0, &num38, &num39) != 0)
  7882. {
  7883. if (getElem(num11, (&g_13241) + 3851, 4) == 2)
  7884. {
  7885. num44 -= (num38 * 2f);
  7886. }
  7887. num47 = (num38 * 0.5f);
  7888. if (sub_B4C6(26, 1, 1, &num38, &num39) != 0)
  7889. {
  7890. sub_AE64(26, 1, &num49, &num50, &num51);
  7891. GRAPHICS::DRAW_SPRITE(sub_B468(26), sub_B062(26, 1), (num36 + num44) + num47, ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7892. }
  7893. }
  7894. if (sub_B4C6(27, 1, 0, &num38, &num39) != 0)
  7895. {
  7896. num44 += num38;
  7897. num47 = (num38 * 0.5f);
  7898. if (sub_B4C6(27, 1, 1, &num38, &num39) != 0)
  7899. {
  7900. sub_AE64(27, 1, &num49, &num50, &num51);
  7901. GRAPHICS::DRAW_SPRITE(sub_B468(27), sub_B062(27, 1), ((num36 + num44) + num47) + (num45 + num46), ((num37 - 0.00277776f) + (num57 * 0.5f)), num38, num39, 0f, num49, num50, num51, 255);
  7902. }
  7903. }
  7904. }
  7905. sub_A65C(num34, getElem(num27, (&g_13241) + 1058, 4), getElem(num27, (&g_13241) + 1309, 4), num56, 0, 0);
  7906. sub_A5FA(num36 + num44, num37, "NUMBER", getElem(num23, (&g_13241) + 3068, 4));
  7907. Label_39D4:
  7908. num43 = 1;
  7909. num23++;
  7910. Label_4411:
  7911. if (getElem(num11, (&g_13241) + 3824, 4) == 5)
  7912. {
  7913. if (getElem(num11, (&g_13241) + 3836, 4) > 0.05f)
  7914. {
  7915. num36 += getElem(num11, (&g_13241) + 3836, 4);
  7916. }
  7917. else
  7918. {
  7919. num36 += 0.05f;
  7920. }
  7921. }
  7922. else
  7923. {
  7924. num36 += getElem(num11, (&g_13241) + 3836, 4);
  7925. if ((getElem(num11, (&g_13241) + 3843, 4) != 0) && (sub_B4C6(26, 1, 1, &num38, &num39) != 0))
  7926. {
  7927. num36 -= num38;
  7928. }
  7929. }
  7930. Label_4528:
  7931. num11++;
  7932. goto Label_1808;
  7933. Label_453B:
  7934. if (num43 != 0)
  7935. {
  7936. if (num35 != 0)
  7937. {
  7938. setElem(num9, num12, (&g_13241) + 5844, 4);
  7939. wPtr(num9, (&g_13241) + 4486);
  7940. num12++;
  7941. if (getElem(num9, (&g_13241) + 4118, 4) != 0)
  7942. {
  7943. num16++;
  7944. }
  7945. if (getElem(num9, (&g_13241) + 4491, 4) != 0f)
  7946. {
  7947. num63 += getElem(num9, (&g_13241) + 4491, 4);
  7948. }
  7949. else
  7950. {
  7951. num63 += 0.034722f;
  7952. }
  7953. }
  7954. if (rPtr((&g_13241) + 4477) == 0)
  7955. {
  7956. setElem(1, num9, (&g_13241) + 4244, 4);
  7957. if (getElem(num9, (&g_13241) + 3992, 4) != 0)
  7958. {
  7959. if (num34 != 0)
  7960. {
  7961. wPtr(0, (&g_13241) + 4483);
  7962. }
  7963. }
  7964. else
  7965. {
  7966. num14++;
  7967. if (num34 != 0)
  7968. {
  7969. wPtr(num14, (&g_13241) + 4483);
  7970. }
  7971. }
  7972. num13++;
  7973. }
  7974. }
  7975. num10++;
  7976. goto Label_14F6;
  7977. Label_4762:
  7978. num8++;
  7979. goto Label_0122;
  7980. }
  7981.  
  7982. void sub_A56E(var A_0)
  7983. {
  7984. wPtr(A_0, (&g_1356045) + 404);
  7985. }
  7986.  
  7987. var sub_A57F(var A_0)
  7988. {
  7989. var num2 = A_0;
  7990. if (((((num2 != 35) && (num2 != 34)) && ((num2 != 42) && (num2 != 36))) && (((num2 != 37) && (num2 != 39)) && ((num2 != 40) && (num2 != 38)))) && (((num2 != 43) && (num2 != 44)) && (num2 != 45)))
  7991. {
  7992. return 1f;
  7993. }
  7994. return 0.85f;
  7995. }
  7996.  
  7997. void sub_A5DC(var A_0, var A_1, var A_2, var A_3, var A_4)
  7998. {
  7999. UI::0x3E35563E(A_2);
  8000. UI::ADD_TEXT_COMPONENT_FLOAT(A_3, A_4);
  8001. UI::0x6F8350CE(A_0, A_1);
  8002. }
  8003.  
  8004. void sub_A5FA(var A_0, var A_1, var A_2, var A_3)
  8005. {
  8006. UI::0x3E35563E(A_2);
  8007. UI::ADD_TEXT_COMPONENT_INTEGER(A_3);
  8008. UI::0x6F8350CE(A_0, A_1);
  8009. }
  8010.  
  8011. void sub_A616(var A_0)
  8012. {
  8013. var num3;
  8014. var num4;
  8015. var num5;
  8016. var num6;
  8017. if (A_0 != null)
  8018. {
  8019. UI::GET_HUD_COLOUR(getElem(0, (&g_13241) + 6206, 4), &num3, &num4, &num5, &num6);
  8020. }
  8021. else
  8022. {
  8023. UI::GET_HUD_COLOUR(getElem(1, (&g_13241) + 6206, 4), &num3, &num4, &num5, &num6);
  8024. }
  8025. UI::SET_TEXT_COLOUR(num3, num4, num5, 255);
  8026. }
  8027.  
  8028. void sub_A65C(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  8029. {
  8030. var num3;
  8031. var num4;
  8032. var num5;
  8033. var num6;
  8034. if (A_2 != null)
  8035. {
  8036. if (A_3 != null)
  8037. {
  8038. sub_A7E9(getElem(A_4, (&g_13241) + 4751, 4), &num3, &num4, &num5);
  8039. bool flag1 = num3 < 20;
  8040. bool flag2 = flag1 & (num4 < 20);
  8041. if (flag2 & (num5 < 20))
  8042. {
  8043. if (A_0 == 0)
  8044. {
  8045. UI::GET_HUD_COLOUR(1, &num3, &num4, &num5, &num6);
  8046. }
  8047. }
  8048. else
  8049. {
  8050. bool flag3 = num3 > 230;
  8051. bool flag4 = flag3 & (num4 > 230);
  8052. if ((flag4 & (num5 > 230)) && (A_0 != null))
  8053. {
  8054. num3 = 0;
  8055. num4 = 0;
  8056. num5 = 0;
  8057. }
  8058. }
  8059. UI::SET_TEXT_COLOUR(num3, num4, num5, 255);
  8060. }
  8061. else if (A_1 != null)
  8062. {
  8063. if (A_0 != null)
  8064. {
  8065. UI::GET_HUD_COLOUR(14, &num3, &num4, &num5, &num6);
  8066. UI::SET_TEXT_COLOUR(num3, num4, num5, 255);
  8067. }
  8068. else
  8069. {
  8070. UI::GET_HUD_COLOUR(12, &num3, &num4, &num5, &num6);
  8071. UI::SET_TEXT_COLOUR(num3, num4, num5, 255);
  8072. }
  8073. }
  8074. else if (A_0 != null)
  8075. {
  8076. UI::SET_TEXT_COLOUR(155, 155, 155, 255);
  8077. }
  8078. else
  8079. {
  8080. UI::SET_TEXT_COLOUR(155, 155, 155, 255);
  8081. }
  8082. }
  8083. else if (A_1 != null)
  8084. {
  8085. if (A_0 != null)
  8086. {
  8087. UI::SET_TEXT_COLOUR(0, 0, 0, SYSTEM::FLOOR((255f * 0.8f)));
  8088. }
  8089. else
  8090. {
  8091. UI::GET_HUD_COLOUR(1, &num3, &num4, &num5, &num6);
  8092. UI::SET_TEXT_COLOUR(num3, num4, num5, num6);
  8093. }
  8094. }
  8095. else if (A_0 != null)
  8096. {
  8097. UI::SET_TEXT_COLOUR(155, 155, 155, 255);
  8098. }
  8099. else
  8100. {
  8101. UI::SET_TEXT_COLOUR(155, 155, 155, 255);
  8102. }
  8103. UI::SET_TEXT_SCALE(0f, 0.35f);
  8104. UI::0x68CDFA60(1);
  8105. if (A_5 != null)
  8106. {
  8107. UI::SET_TEXT_FONT(4);
  8108. }
  8109. else
  8110. {
  8111. UI::SET_TEXT_FONT(0);
  8112. }
  8113. UI::SET_TEXT_WRAP(0f, 1f);
  8114. UI::SET_TEXT_CENTRE(0);
  8115. UI::SET_TEXT_DROPSHADOW(0, 0, 0, 0, 0);
  8116. UI::SET_TEXT_EDGE(0, 0, 0, 0, 0);
  8117. }
  8118.  
  8119. void sub_A7E9(var A_0, var A_1, var A_2, var A_3)
  8120. {
  8121. switch ((A_0))
  8122. {
  8123. case 0:
  8124. wPtr(8, A_1);
  8125. wPtr(8, A_2);
  8126. wPtr(8, A_3);
  8127. break;
  8128. case 1:
  8129. wPtr(37, A_1);
  8130. wPtr(37, A_2);
  8131. wPtr(39, A_3);
  8132. break;
  8133. case 22:
  8134. wPtr(140, A_1);
  8135. wPtr(146, A_2);
  8136. wPtr(154, A_3);
  8137. break;
  8138. case 23:
  8139. wPtr(91, A_1);
  8140. wPtr(93, A_2);
  8141. wPtr(94, A_3);
  8142. break;
  8143. case 6:
  8144. wPtr(81, A_1);
  8145. wPtr(84, A_2);
  8146. wPtr(89, A_3);
  8147. break;
  8148. case 111:
  8149. wPtr(240, A_1);
  8150. wPtr(240, A_2);
  8151. wPtr(240, A_3);
  8152. break;
  8153. case 28:
  8154. wPtr(150, A_1);
  8155. wPtr(8, A_2);
  8156. wPtr(0, A_3);
  8157. break;
  8158. case 34:
  8159. wPtr(38, A_1);
  8160. wPtr(3, A_2);
  8161. wPtr(6, A_3);
  8162. break;
  8163. case 88:
  8164. wPtr(245, A_1);
  8165. wPtr(137, A_2);
  8166. wPtr(15, A_3);
  8167. break;
  8168. case 45:
  8169. wPtr(74, A_1);
  8170. wPtr(22, A_2);
  8171. wPtr(7, A_3);
  8172. break;
  8173. case 56:
  8174. wPtr(45, A_1);
  8175. wPtr(58, A_2);
  8176. wPtr(53, A_3);
  8177. break;
  8178. case 58:
  8179. wPtr(71, A_1);
  8180. wPtr(120, A_2);
  8181. wPtr(60, A_3);
  8182. break;
  8183. case 54:
  8184. wPtr(77, A_1);
  8185. wPtr(98, A_2);
  8186. wPtr(104, A_3);
  8187. break;
  8188. case 73:
  8189. wPtr(14, A_1);
  8190. wPtr(49, A_2);
  8191. wPtr(109, A_3);
  8192. break;
  8193. case 68:
  8194. wPtr(22, A_1);
  8195. wPtr(34, A_2);
  8196. wPtr(72, A_3);
  8197. break;
  8198. case 140:
  8199. wPtr(0, A_1);
  8200. wPtr(174, A_2);
  8201. wPtr(239, A_3);
  8202. break;
  8203. case 131:
  8204. wPtr(255, A_1);
  8205. wPtr(183, A_2);
  8206. wPtr(0, A_3);
  8207. break;
  8208. case 90:
  8209. wPtr(142, A_1);
  8210. wPtr(140, A_2);
  8211. wPtr(70, A_3);
  8212. break;
  8213. case 97:
  8214. wPtr(156, A_1);
  8215. wPtr(141, A_2);
  8216. wPtr(113, A_3);
  8217. break;
  8218. case 89:
  8219. wPtr(145, A_1);
  8220. wPtr(115, A_2);
  8221. wPtr(71, A_3);
  8222. break;
  8223. case 105:
  8224. wPtr(98, A_1);
  8225. wPtr(68, A_2);
  8226. wPtr(40, A_3);
  8227. break;
  8228. case 100:
  8229. wPtr(124, A_1);
  8230. wPtr(27, A_2);
  8231. wPtr(68, A_3);
  8232. break;
  8233. case 99:
  8234. wPtr(114, A_1);
  8235. wPtr(42, A_2);
  8236. wPtr(63, A_3);
  8237. break;
  8238. case 136:
  8239. wPtr(246, A_1);
  8240. wPtr(151, A_2);
  8241. wPtr(153, A_3);
  8242. break;
  8243. case 49:
  8244. wPtr(32, A_1);
  8245. wPtr(32, A_2);
  8246. wPtr(44, A_3);
  8247. break;
  8248. case 146:
  8249. wPtr(26, A_1);
  8250. wPtr(1, A_2);
  8251. wPtr(23, A_3);
  8252. break;
  8253. default:
  8254. wPtr(255, A_1);
  8255. wPtr(255, A_2);
  8256. wPtr(255, A_3);
  8257. break;
  8258. }
  8259. }
  8260.  
  8261. void sub_AA73(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6, var A_7)
  8262. {
  8263. bool flag1;
  8264. var num3;
  8265. if (sub_B611(&num3, 0, A_1) == 0)
  8266. {
  8267. return;
  8268. }
  8269. A_0 = A_0;
  8270. if ((A_3 & (sub_B574(A_4) == 0)) != null)
  8271. {
  8272. return;
  8273. }
  8274. if (sub_ADF0() != 0)
  8275. {
  8276. return;
  8277. }
  8278. if ((A_7 == 0) && (sub_AD7D(PLAYER::PLAYER_ID()) != 0))
  8279. {
  8280. return;
  8281. }
  8282. if (rPtr((&g_13241) + 3744) == 0)
  8283. {
  8284. return;
  8285. }
  8286. if (rPtr((&g_13241) + 3745) != 0)
  8287. {
  8288. goto Label_0397;
  8289. }
  8290. GRAPHICS::0x215ABBE8(getElem(num3, (&g_13241) + 4409, 40), "CLEAR_ALL");
  8291. GRAPHICS::0x02DBF2D7();
  8292. GRAPHICS::0x215ABBE8(getElem(num3, (&g_13241) + 4409, 40), "SET_MAX_WIDTH");
  8293. GRAPHICS::0x9A01FFDA((1f - (rPtr((&g_13241) + 3849) / 100f)));
  8294. GRAPHICS::0x02DBF2D7();
  8295. var num4 = 0;
  8296. Label_0123:
  8297. if (num4 >= rPtr((&g_13241) + 3744))
  8298. {
  8299. GRAPHICS::0x215ABBE8(getElem(num3, (&g_13241) + 4409, 40), "SET_BACKGROUND_COLOUR");
  8300. GRAPHICS::0x716777CB(0);
  8301. GRAPHICS::0x716777CB(0);
  8302. GRAPHICS::0x716777CB(0);
  8303. GRAPHICS::0x716777CB(80);
  8304. GRAPHICS::0x02DBF2D7();
  8305. GRAPHICS::0x215ABBE8(getElem(num3, (&g_13241) + 4409, 40), "DRAW_INSTRUCTIONAL_BUTTONS");
  8306. if (rPtr((&g_13241) + 3850) != 0)
  8307. {
  8308. GRAPHICS::0x716777CB(1);
  8309. }
  8310. else
  8311. {
  8312. GRAPHICS::0x716777CB(0);
  8313. }
  8314. GRAPHICS::0x02DBF2D7();
  8315. wPtr(1, (&g_13241) + 3745);
  8316. goto Label_0397;
  8317. }
  8318. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(num4, (&g_13241) + 3759, 16)) == GAMEPLAY::GET_HASH_KEY("PREV"))
  8319. {
  8320. goto Label_02C7;
  8321. }
  8322. GRAPHICS::0x215ABBE8(getElem(num3, (&g_13241) + 4409, 40), "SET_DATA_SLOT");
  8323. GRAPHICS::0x716777CB(num4);
  8324. GRAPHICS::0x716777CB(getElem(num4, (&g_13241) + 3746, 4));
  8325. var num5 = num4 + 1;
  8326. Label_01C2:
  8327. flag1 = num5 < 12;
  8328. if (flag1 & (GAMEPLAY::GET_HASH_KEY(getElemPtr(num5, (&g_13241) + 3759, 16)) == GAMEPLAY::GET_HASH_KEY("PREV")))
  8329. {
  8330. GRAPHICS::0x716777CB(getElem(num5, (&g_13241) + 3746, 4));
  8331. num5++;
  8332. goto Label_01C2;
  8333. }
  8334. if (getElem(num4, (&g_13241) + 3808, 4) == -1)
  8335. {
  8336. sub_AD6B(getElemPtr(num4, (&g_13241) + 3759, 16));
  8337. }
  8338. else
  8339. {
  8340. GRAPHICS::0x3AC9CB55(getElemPtr(num4, (&g_13241) + 3759, 16));
  8341. if (A_5 != null)
  8342. {
  8343. UI::0x135B3CD0(A_2, 70);
  8344. }
  8345. else
  8346. {
  8347. UI::ADD_TEXT_COMPONENT_INTEGER(A_2);
  8348. }
  8349. GRAPHICS::0x386CE0B8();
  8350. }
  8351. GRAPHICS::0x02DBF2D7();
  8352. Label_02C7:
  8353. num4++;
  8354. goto Label_0123;
  8355. Label_0397:
  8356. num4 = 0;
  8357. while (true)
  8358. {
  8359. if (num4 >= rPtr((&g_13241) + 3744))
  8360. {
  8361. break;
  8362. }
  8363. if ((getElem(num4, (&g_13241) + 3808, 4) != -1) && (A_2 > 0))
  8364. {
  8365. GRAPHICS::0x215ABBE8(getElem(num3, (&g_13241) + 4409, 40), "OVERRIDE_RESPAWN_TEXT");
  8366. GRAPHICS::0x716777CB(num4);
  8367. GRAPHICS::0x3AC9CB55(getElemPtr(num4, (&g_13241) + 3759, 16));
  8368. if (A_5 != null)
  8369. {
  8370. UI::0x135B3CD0(A_2, 70);
  8371. }
  8372. else
  8373. {
  8374. UI::ADD_TEXT_COMPONENT_INTEGER(A_2);
  8375. }
  8376. GRAPHICS::0x386CE0B8();
  8377. GRAPHICS::0x02DBF2D7();
  8378. }
  8379. num4++;
  8380. }
  8381. GRAPHICS::0x228A2598(76, 66);
  8382. GRAPHICS::0x76C641E4(0f, 0f, 0f, 0f);
  8383. if (A_6 != null)
  8384. {
  8385. if (rPtr((&g_13241) + 6213) == 0)
  8386. {
  8387. UI::SET_HUD_COMPONENT_POSITION(15, 0f, -0.0375f);
  8388. wPtr(1, (&g_13241) + 6213);
  8389. }
  8390. }
  8391. else if (rPtr((&g_13241) + 6213) != 0)
  8392. {
  8393. UI::RESET_HUD_COMPONENT_VALUES(15);
  8394. wPtr(0, (&g_13241) + 6213);
  8395. }
  8396. GRAPHICS::0x3FE33BD6();
  8397. if (rPtr((&g_13241) + 3823) != 0)
  8398. {
  8399. GRAPHICS::0x228A2598(82, 66);
  8400. GRAPHICS::0x76C641E4(0f, 0f, 0f, 0f);
  8401. GRAPHICS::DRAW_SCALEFORM_MOVIE(getElem(num3, (&g_13241) + 4409, 40), rPtr((&g_13241) + 3821), rPtr((&g_13241) + 3822), 1f, 1f, 255, 255, 255, 255);
  8402. GRAPHICS::0x3FE33BD6();
  8403. }
  8404. else
  8405. {
  8406. GRAPHICS::0x7B48E696(getElem(num3, (&g_13241) + 4409, 40), 255, 255, 255, 255);
  8407. }
  8408. }
  8409.  
  8410. void sub_AD6B(var A_0)
  8411. {
  8412. GRAPHICS::0x3AC9CB55(A_0);
  8413. GRAPHICS::0x386CE0B8();
  8414. }
  8415.  
  8416. var sub_AD7D(var A_0)
  8417. {
  8418. if (A_0 == PLAYER::PLAYER_ID())
  8419. {
  8420. return (sub_ADAF(-1, 0) == 8);
  8421. }
  8422. return (rPtr(getElemPtr(A_0, &g_1574052, 1136) + 712) == 8);
  8423. }
  8424.  
  8425. var sub_ADAF(var A_0, var A_1)
  8426. {
  8427. var num3;
  8428. var num4 = A_0;
  8429. if (num4 == -1)
  8430. {
  8431. num4 = sub_4364();
  8432. }
  8433. if (getElem(num4, &g_1344079, 4) == 1)
  8434. {
  8435. num3 = 8;
  8436. }
  8437. else
  8438. {
  8439. num3 = getElem(num4, &g_1338472, 4);
  8440. }
  8441. return num3;
  8442. }
  8443.  
  8444. var sub_ADF0()
  8445. {
  8446. if (rPtr((&g_10433) + 1) > 3)
  8447. {
  8448. return 1;
  8449. }
  8450. if (SCRIPT::0x029D3841(0xD30D3AEF) > 0)
  8451. {
  8452. var num3;
  8453. setStruct(0f, -500f, 0f, 3, &num3);
  8454. MOBILE::GET_MOBILE_PHONE_POSITION(&num3);
  8455. if (g_10378 == 0)
  8456. {
  8457. if (rPtr((&num3) + 1) > -119f)
  8458. {
  8459. return 1;
  8460. }
  8461. return 0;
  8462. }
  8463. if (rPtr((&num3) + 1) > -101f)
  8464. {
  8465. return 1;
  8466. }
  8467. }
  8468. return 0;
  8469. }
  8470.  
  8471. void sub_AE64(var A_0, var A_1, var A_2, var A_3, var A_4)
  8472. {
  8473. var num3;
  8474. UI::GET_HUD_COLOUR(1, A_2, A_3, A_4, &num3);
  8475. switch ((A_0))
  8476. {
  8477. case 28:
  8478. wPtr(194, A_2);
  8479. wPtr(80, A_3);
  8480. wPtr(80, A_4);
  8481. break;
  8482. case 15:
  8483. case 4:
  8484. case 16:
  8485. case 26:
  8486. case 27:
  8487. case 35:
  8488. case 34:
  8489. case 42:
  8490. case 36:
  8491. case 37:
  8492. case 39:
  8493. case 40:
  8494. case 38:
  8495. case 43:
  8496. case 44:
  8497. case 45:
  8498. if (A_1 != null)
  8499. {
  8500. wPtr(0, A_2);
  8501. wPtr(0, A_3);
  8502. wPtr(0, A_4);
  8503. }
  8504. break;
  8505. }
  8506. }
  8507.  
  8508. void sub_AF0C(var A_0)
  8509. {
  8510. var num3;
  8511. var num4;
  8512. var num5;
  8513. var num6;
  8514. UI::GET_HUD_COLOUR(1, &num3, &num4, &num5, &num6);
  8515. UI::SET_TEXT_FONT(0);
  8516. UI::SET_TEXT_SCALE(0f, 0.35f);
  8517. UI::SET_TEXT_LEADING(2);
  8518. UI::SET_TEXT_COLOUR(num3, num4, num5, num6);
  8519. UI::SET_TEXT_WRAP(A_0, ((g_13239 + 0.225f) - 0.0046875f));
  8520. UI::SET_TEXT_CENTRE(0);
  8521. UI::SET_TEXT_DROPSHADOW(0, 0, 0, 0, 0);
  8522. UI::SET_TEXT_EDGE(0, 0, 0, 0, 0);
  8523. }
  8524.  
  8525. void sub_AF6D(var A_0, var A_1, var A_2, var A_3, var A_4)
  8526. {
  8527. UI::0x3E35563E(A_2);
  8528. UI::ADD_TEXT_COMPONENT_INTEGER(A_3);
  8529. UI::ADD_TEXT_COMPONENT_INTEGER(A_4);
  8530. UI::0x6F8350CE(A_0, A_1);
  8531. }
  8532.  
  8533. var sub_AF8F(var A_0, var A_1, var A_2)
  8534. {
  8535. if (GAMEPLAY::IS_STRING_NULL(A_0) == 0)
  8536. {
  8537. if (GAMEPLAY::GET_HASH_KEY(A_0) == 0)
  8538. {
  8539. return 0f;
  8540. }
  8541. }
  8542. else
  8543. {
  8544. return 0f;
  8545. }
  8546. sub_AFD1();
  8547. UI::0x51E7A037(A_0);
  8548. UI::ADD_TEXT_COMPONENT_INTEGER(A_1);
  8549. UI::ADD_TEXT_COMPONENT_INTEGER(A_2);
  8550. return UI::0xD12A643A(1);
  8551. }
  8552.  
  8553. void sub_AFD1()
  8554. {
  8555. var num3;
  8556. var num4;
  8557. var num5;
  8558. var num6;
  8559. UI::GET_HUD_COLOUR(1, &num3, &num4, &num5, &num6);
  8560. UI::SET_TEXT_FONT(0);
  8561. UI::SET_TEXT_SCALE(0f, 0.35f);
  8562. UI::SET_TEXT_COLOUR(num3, num4, num5, num6);
  8563. UI::SET_TEXT_WRAP(g_13239 + (0.0046875f), ((g_13239 + 0.225f) - 0.0046875f));
  8564. UI::SET_TEXT_CENTRE(0);
  8565. UI::SET_TEXT_DROPSHADOW(0, 0, 0, 0, 0);
  8566. UI::SET_TEXT_EDGE(0, 0, 0, 0, 0);
  8567. }
  8568.  
  8569. void sub_B034(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6, var A_7)
  8570. {
  8571. GRAPHICS::DRAW_RECT((A_0 + (A_2 * 0.5f)), (A_1 + (A_3 * 0.5f)), A_2, A_3, A_4, A_5, A_6, A_7);
  8572. }
  8573.  
  8574. var sub_B062(var A_0, var A_1)
  8575. {
  8576. var num3;
  8577. initArray(&num3, 2);
  8578. if (A_0 < 34)
  8579. {
  8580. if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(getElemPtr(A_0, (&g_13241) + 5299, 64)) == 0)
  8581. {
  8582. return sub_B45E(getElemPtr(A_0, (&g_13241) + 5299, 64));
  8583. }
  8584. }
  8585. else if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(getElemPtr((A_0) - 34, (&g_2455136) + 545, 64)) == 0)
  8586. {
  8587. return sub_B45E(getElemPtr((A_0) - 34, (&g_2455136) + 545, 64));
  8588. }
  8589. num3 = A_0;
  8590. switch (num3)
  8591. {
  8592. case 3:
  8593. setElem("MP_hostCrown", 0, &num3, 4);
  8594. setElem("MP_hostCrown", 1, &num3, 4);
  8595. break;
  8596. case 21:
  8597. setElem("MP_SpecItem_Coke", 0, &num3, 4);
  8598. setElem("MP_SpecItem_Coke", 1, &num3, 4);
  8599. break;
  8600. case 22:
  8601. setElem("MP_SpecItem_Heroin", 0, &num3, 4);
  8602. setElem("MP_SpecItem_Heroin", 1, &num3, 4);
  8603. break;
  8604. case 23:
  8605. setElem("MP_SpecItem_Weed", 0, &num3, 4);
  8606. setElem("MP_SpecItem_Weed", 1, &num3, 4);
  8607. break;
  8608. case 24:
  8609. setElem("MP_SpecItem_Meth", 0, &num3, 4);
  8610. setElem("MP_SpecItem_Meth", 1, &num3, 4);
  8611. break;
  8612. case 25:
  8613. setElem("MP_SpecItem_Cash", 0, &num3, 4);
  8614. setElem("MP_SpecItem_Cash", 1, &num3, 4);
  8615. break;
  8616. case 1:
  8617. setElem("shop_NEW_Star", 0, &num3, 4);
  8618. setElem("shop_NEW_Star", 1, &num3, 4);
  8619. break;
  8620. case 2:
  8621. setElem("shop_NEW_Star", 0, &num3, 4);
  8622. setElem("shop_NEW_Star", 1, &num3, 4);
  8623. break;
  8624. case 4:
  8625. setElem("Shop_Tick_Icon", 0, &num3, 4);
  8626. setElem("Shop_Tick_Icon", 1, &num3, 4);
  8627. break;
  8628. case 6:
  8629. setElem("Shop_Box_CrossB", 0, &num3, 4);
  8630. setElem("Shop_Box_Cross", 1, &num3, 4);
  8631. break;
  8632. case 7:
  8633. setElem("Shop_Box_BlankB", 0, &num3, 4);
  8634. setElem("Shop_Box_Blank", 1, &num3, 4);
  8635. break;
  8636. case 5:
  8637. setElem("Shop_Box_TickB", 0, &num3, 4);
  8638. setElem("Shop_Box_Tick", 1, &num3, 4);
  8639. break;
  8640. case 8:
  8641. setElem("shop_NEW_Star", 0, &num3, 4);
  8642. setElem("shop_NEW_Star", 1, &num3, 4);
  8643. break;
  8644. case 9:
  8645. setElem("Shop_Clothing_Icon_B", 0, &num3, 4);
  8646. setElem("Shop_Clothing_Icon_A", 1, &num3, 4);
  8647. break;
  8648. case 10:
  8649. setElem("Shop_GunClub_Icon_B", 0, &num3, 4);
  8650. setElem("Shop_GunClub_Icon_A", 1, &num3, 4);
  8651. break;
  8652. case 17:
  8653. setElem("Shop_Ammo_Icon_B", 0, &num3, 4);
  8654. setElem("Shop_Ammo_Icon_A", 1, &num3, 4);
  8655. break;
  8656. case 18:
  8657. setElem("Shop_Armour_Icon_B", 0, &num3, 4);
  8658. setElem("Shop_Armour_Icon_A", 1, &num3, 4);
  8659. break;
  8660. case 19:
  8661. setElem("Shop_Health_Icon_B", 0, &num3, 4);
  8662. setElem("Shop_Health_Icon_A", 1, &num3, 4);
  8663. break;
  8664. case 20:
  8665. setElem("Shop_MakeUp_Icon_B", 0, &num3, 4);
  8666. setElem("Shop_MakeUp_Icon_A", 1, &num3, 4);
  8667. break;
  8668. case 11:
  8669. setElem("Shop_Tattoos_Icon_B", 0, &num3, 4);
  8670. setElem("Shop_Tattoos_Icon_A", 1, &num3, 4);
  8671. break;
  8672. case 12:
  8673. setElem("Shop_Garage_Icon_B", 0, &num3, 4);
  8674. setElem("Shop_Garage_Icon_A", 1, &num3, 4);
  8675. break;
  8676. case 13:
  8677. setElem("Shop_Garage_Bike_Icon_B", 0, &num3, 4);
  8678. setElem("Shop_Garage_Bike_Icon_A", 1, &num3, 4);
  8679. break;
  8680. case 14:
  8681. setElem("Shop_Barber_Icon_B", 0, &num3, 4);
  8682. setElem("Shop_Barber_Icon_A", 1, &num3, 4);
  8683. break;
  8684. case 15:
  8685. setElem("shop_Lock", 0, &num3, 4);
  8686. setElem("shop_Lock", 1, &num3, 4);
  8687. break;
  8688. case 16:
  8689. setElem("Shop_Tick_Icon", 0, &num3, 4);
  8690. setElem("Shop_Tick_Icon", 1, &num3, 4);
  8691. break;
  8692. case 26:
  8693. setElem("arrowleft", 0, &num3, 4);
  8694. setElem("arrowleft", 1, &num3, 4);
  8695. break;
  8696. case 27:
  8697. setElem("arrowright", 0, &num3, 4);
  8698. setElem("arrowright", 1, &num3, 4);
  8699. break;
  8700. case 28:
  8701. setElem("MP_AlertTriangle", 0, &num3, 4);
  8702. setElem("MP_AlertTriangle", 1, &num3, 4);
  8703. break;
  8704. case 29:
  8705. setElem("shop_NEW_Star", 0, &num3, 4);
  8706. setElem("shop_NEW_Star", 1, &num3, 4);
  8707. break;
  8708. case 31:
  8709. setElem("Shop_Michael_Icon_B", 0, &num3, 4);
  8710. setElem("Shop_Michael_Icon_A", 1, &num3, 4);
  8711. break;
  8712. case 32:
  8713. setElem("Shop_Franklin_Icon_B", 0, &num3, 4);
  8714. setElem("Shop_Franklin_Icon_A", 1, &num3, 4);
  8715. break;
  8716. case 33:
  8717. setElem("Shop_Trevor_Icon_B", 0, &num3, 4);
  8718. setElem("Shop_Trevor_Icon_A", 1, &num3, 4);
  8719. break;
  8720. case 0:
  8721. setElem("", 0, &num3, 4);
  8722. setElem("", 1, &num3, 4);
  8723. break;
  8724. }
  8725. if (A_1 != null)
  8726. {
  8727. return getElem(0, &num3, 4);
  8728. }
  8729. return getElem(1, &num3, 4);
  8730. }
  8731.  
  8732. var sub_B45E(var A_0)
  8733. {
  8734. return A_0;
  8735. }
  8736.  
  8737. var sub_B468(var A_0)
  8738. {
  8739. if (A_0 < 34)
  8740. {
  8741. if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(getElemPtr(A_0, (&g_13241) + 4754, 64)) == 0)
  8742. {
  8743. return sub_B45E(getElemPtr(A_0, (&g_13241) + 4754, 64));
  8744. }
  8745. }
  8746. else if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(getElemPtr((A_0) - 34, &g_2455136, 64)) == 0)
  8747. {
  8748. return sub_B45E(getElemPtr((A_0) - 34, &g_2455136, 64));
  8749. }
  8750. return "CommonMenu";
  8751. }
  8752.  
  8753. var sub_B4C6(var A_0, var A_1, var A_2, var A_3, var A_4)
  8754. {
  8755. var num5;
  8756. var num6;
  8757. var num7;
  8758. var num3 = sub_B468(A_0);
  8759. var num4 = sub_B062(A_0, A_1);
  8760. if (GAMEPLAY::GET_HASH_KEY(num4) == 0)
  8761. {
  8762. return 0;
  8763. }
  8764. GRAPHICS::GET_SCREEN_RESOLUTION(&num5, &num6);
  8765. struct _s = GRAPHICS::GET_TEXTURE_RESOLUTION(num3, num4);
  8766. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num7);
  8767. if (A_2 == 0)
  8768. {
  8769. num7 -= 2f;
  8770. wPtr(rPtr((&num7) + 1) - (2f), (&num7) + 1);
  8771. }
  8772. if (A_0 == 30)
  8773. {
  8774. num7 = 288f;
  8775. wPtr(106f, (&num7) + 1);
  8776. }
  8777. wPtr((num7 / itof(num5)) * itof(num5 / num6), A_3);
  8778. wPtr(((rPtr((&num7) + 1) / itof(num6)) / (num7 / itof(num5))) * rPtr(A_3), A_4);
  8779. bool flag1 = GRAPHICS::GET_IS_WIDESCREEN() == 0;
  8780. if (flag1 & (A_0 != 30))
  8781. {
  8782. wPtr((rPtr(A_3) * 1.33f), A_3);
  8783. }
  8784. return 1;
  8785. }
  8786.  
  8787. var sub_B574(var A_0)
  8788. {
  8789. if (rPtr(((&g_2390986) + 1237) + 244) == 0)
  8790. {
  8791. var num7;
  8792. var num1;
  8793. bool flag1 = CAM::IS_SCREEN_FADED_IN() == 0;
  8794. if (!flag1)
  8795. {
  8796. num1 = sub_CDE(8, -1);
  8797. }
  8798. bool flag2 = flag1 | (num1 & (sub_B605() != 65));
  8799. bool flag3 = flag2 | UI::IS_PAUSE_MENU_ACTIVE();
  8800. if (!flag3)
  8801. {
  8802. num7 = STREAMING::STOP_PLAYER_REMAIN_ARCADE();
  8803. }
  8804. bool flag4 = flag3 | (num7 & (A_0 == 0));
  8805. bool flag5 = flag4 | NETWORK::0x25E2DBA9();
  8806. bool flag6 = flag5 | g_60102;
  8807. bool flag7 = flag6 | rPtr((&g_13241) + 6212);
  8808. bool flag8 = flag7 | UI::0x94C834AD();
  8809. if (flag8 | rPtr((&g_80929) + 1066))
  8810. {
  8811. return 0;
  8812. }
  8813. }
  8814. return 1;
  8815. }
  8816.  
  8817. var sub_B605()
  8818. {
  8819. return g_1344034;
  8820. }
  8821.  
  8822. var sub_B611(var A_0, var A_1, var A_2)
  8823. {
  8824. var num3;
  8825. if (A_2 == -1)
  8826. {
  8827. var num1 = NETWORK::NETWORK_IS_GAME_IN_PROGRESS();
  8828. if ((num1 & NETWORK::NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT()) != 0)
  8829. {
  8830. A_2 = NETWORK::0xDB8B5D71();
  8831. }
  8832. }
  8833. strcpy(SCRIPT::GET_THIS_SCRIPT_NAME(), &num3, 64);
  8834. saddi(A_2, &num3, 64);
  8835. var num19 = GAMEPLAY::GET_HASH_KEY(&num3);
  8836. var num21 = -1;
  8837. var num20 = 0;
  8838. while (true)
  8839. {
  8840. if (num20 >= 6)
  8841. {
  8842. break;
  8843. }
  8844. if (getElem(num20, (&g_13241) + 4470, 4) == num19)
  8845. {
  8846. wPtr(num20, A_0);
  8847. return 1;
  8848. }
  8849. if (getElem(num20, (&g_13241) + 4470, 4) == 0)
  8850. {
  8851. num21 = num20;
  8852. }
  8853. num20++;
  8854. }
  8855. if ((A_1 != null) && (num21 != -1))
  8856. {
  8857. setElem(num19, num21, (&g_13241) + 4470, 4);
  8858. wPtr(num21, A_0);
  8859. return 1;
  8860. }
  8861. return 0;
  8862. }
  8863.  
  8864. void sub_B6AE()
  8865. {
  8866. if (sub_CD9C(l_335) == 0)
  8867. {
  8868. l_335 = sub_BCD6();
  8869. sub_B8BF(&l_335, 0, 0, GAMEPLAY::GET_RANDOM_INT_IN_RANGE(1, 2), 0, 0, 0);
  8870. }
  8871. else if (sub_F6B7(l_108, 2) == 0)
  8872. {
  8873. if (sub_B724(l_335) != 0)
  8874. {
  8875. l_335 = sub_BCD6();
  8876. sub_B8BF(&l_335, 0, 0, GAMEPLAY::GET_RANDOM_INT_IN_RANGE(1, 2), 0, 0, 0);
  8877. sub_F4AD(&l_108, 2);
  8878. }
  8879. }
  8880. else if (sub_B724(l_335) != 0)
  8881. {
  8882. sub_F46B(0);
  8883. }
  8884. }
  8885.  
  8886. var sub_B724(var A_0)
  8887. {
  8888. return sub_B736(sub_BCD6(), A_0);
  8889. }
  8890.  
  8891. var sub_B736(var A_0, var A_1)
  8892. {
  8893. bool flag1 = sub_CD9C(A_1) == 0;
  8894. if (flag1 | (sub_CD9C(A_0) == 0))
  8895. {
  8896. return 1;
  8897. }
  8898. var num3 = sub_B89A(A_0);
  8899. var num4 = sub_B89A(A_1);
  8900. if (num3 > num4)
  8901. {
  8902. return 1;
  8903. }
  8904. if (num3 >= num4)
  8905. {
  8906. num3 = sub_B88D(A_0);
  8907. num4 = sub_B88D(A_1);
  8908. if (num3 > num4)
  8909. {
  8910. return 1;
  8911. }
  8912. if (num3 < num4)
  8913. {
  8914. return 0;
  8915. }
  8916. num3 = sub_B87B(A_0);
  8917. num4 = sub_B87B(A_1);
  8918. if (num3 > num4)
  8919. {
  8920. return 1;
  8921. }
  8922. if (num3 < num4)
  8923. {
  8924. return 0;
  8925. }
  8926. num3 = sub_B868(A_0);
  8927. num4 = sub_B868(A_1);
  8928. if (num3 > num4)
  8929. {
  8930. return 1;
  8931. }
  8932. if (num3 < num4)
  8933. {
  8934. return 0;
  8935. }
  8936. num3 = sub_B855(A_0);
  8937. num4 = sub_B855(A_1);
  8938. if (num3 > num4)
  8939. {
  8940. return 1;
  8941. }
  8942. if (num3 < num4)
  8943. {
  8944. return 0;
  8945. }
  8946. num3 = sub_B842(A_0);
  8947. num4 = sub_B842(A_1);
  8948. if (num3 > num4)
  8949. {
  8950. return 1;
  8951. }
  8952. }
  8953. return 0;
  8954. }
  8955.  
  8956. var sub_B842(var A_0)
  8957. {
  8958. return (SYSTEM::SHIFT_RIGHT(A_0, 20) & 63);
  8959. }
  8960.  
  8961. var sub_B855(var A_0)
  8962. {
  8963. return (SYSTEM::SHIFT_RIGHT(A_0, 14) & 63);
  8964. }
  8965.  
  8966. var sub_B868(var A_0)
  8967. {
  8968. return (SYSTEM::SHIFT_RIGHT(A_0, 9) & 31);
  8969. }
  8970.  
  8971. var sub_B87B(var A_0)
  8972. {
  8973. return (SYSTEM::SHIFT_RIGHT(A_0, 4) & 31);
  8974. }
  8975.  
  8976. var sub_B88D(var A_0)
  8977. {
  8978. return (A_0 & 15);
  8979. }
  8980.  
  8981. var sub_B89A(var A_0)
  8982. {
  8983. return (((SYSTEM::SHIFT_RIGHT(A_0, 26) & 31) * sub_5099(GAMEPLAY::IS_BIT_SET(A_0, 31), -1, 1)) + 2011);
  8984. }
  8985.  
  8986. void sub_B8BF(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6)
  8987. {
  8988. var num3 = sub_B89A(rPtr(A_0));
  8989. var num4 = sub_B88D(rPtr(A_0));
  8990. var num5 = sub_B87B(rPtr(A_0));
  8991. var num6 = sub_B868(rPtr(A_0));
  8992. var num7 = sub_B855(rPtr(A_0));
  8993. var num8 = sub_B842(rPtr(A_0));
  8994. bool flag1 = A_6 == 0;
  8995. bool flag2 = flag1 & (A_5 == 0);
  8996. bool flag3 = flag2 & (A_4 == 0);
  8997. bool flag4 = flag3 & (A_3 == 0);
  8998. bool flag5 = flag4 & (A_2 == 0);
  8999. if ((((((!(flag5 & (A_1 == 0)) && (A_1 >= 0)) && (A_2 >= 0)) && (A_3 >= 0)) && (A_4 >= 0)) && (A_5 >= 0)) && (A_6 >= 0))
  9000. {
  9001. num8 += A_1;
  9002. while (true)
  9003. {
  9004. if (num8 < 60)
  9005. {
  9006. break;
  9007. }
  9008. A_2 += 1;
  9009. num8 -= 60;
  9010. }
  9011. num7 += A_2;
  9012. while (true)
  9013. {
  9014. if (num7 < 60)
  9015. {
  9016. break;
  9017. }
  9018. A_3 += 1;
  9019. num7 -= 60;
  9020. }
  9021. num6 += A_3;
  9022. while (true)
  9023. {
  9024. if (num6 < 24)
  9025. {
  9026. break;
  9027. }
  9028. A_4 += 1;
  9029. num6 -= 24;
  9030. }
  9031. num5 += A_4;
  9032. var num9 = sub_BC34(num4, num3);
  9033. while (true)
  9034. {
  9035. if (num5 <= num9)
  9036. {
  9037. break;
  9038. }
  9039. A_5 += 1;
  9040. num5 -= num9;
  9041. if (num4 > 11)
  9042. {
  9043. A_6 += 1;
  9044. num4 -= 12;
  9045. }
  9046. num9 = sub_BC34(num4, num3);
  9047. }
  9048. num4 += A_5;
  9049. while (true)
  9050. {
  9051. if (num4 <= 11)
  9052. {
  9053. break;
  9054. }
  9055. A_6 += 1;
  9056. num4 -= 12;
  9057. }
  9058. num3 += A_6;
  9059. sub_BA41(A_0, num8, num7, num6, num5, num4, num3);
  9060. }
  9061. }
  9062.  
  9063. void sub_BA41(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6)
  9064. {
  9065. sub_BBF8(A_0, A_1);
  9066. sub_BBBD(A_0, A_2);
  9067. sub_BB83(A_0, A_3);
  9068. sub_BB32(A_0, A_4);
  9069. sub_BAFF(A_0, A_5);
  9070. sub_BA79(A_0, A_6);
  9071. }
  9072.  
  9073. void sub_BA79(var A_0, var A_1)
  9074. {
  9075. if (A_1 > 0)
  9076. {
  9077. bool flag1 = A_1 > 2043;
  9078. if (!(flag1 | (A_1 < 1979)))
  9079. {
  9080. wPtr(rPtr(A_0) - (rPtr(A_0) & 0x7C000000), A_0);
  9081. if (A_1 < 2011)
  9082. {
  9083. wPtr(rPtr(A_0) | SYSTEM::SHIFT_LEFT(2011 - A_1, 26), A_0);
  9084. wPtr(rPtr(A_0) | 0x80000000, A_0);
  9085. }
  9086. else
  9087. {
  9088. wPtr(rPtr(A_0) | SYSTEM::SHIFT_LEFT((A_1) - 2011, 26), A_0);
  9089. wPtr(rPtr(A_0) - (rPtr(A_0) & 0x80000000), A_0);
  9090. }
  9091. }
  9092. }
  9093. }
  9094.  
  9095. void sub_BAFF(var A_0, var A_1)
  9096. {
  9097. bool flag1 = A_1 < 0;
  9098. if (!(flag1 | (A_1 > 11)))
  9099. {
  9100. wPtr(rPtr(A_0) - (rPtr(A_0) & 15), A_0);
  9101. wPtr(rPtr(A_0) | A_1, A_0);
  9102. }
  9103. }
  9104.  
  9105. void sub_BB32(var A_0, var A_1)
  9106. {
  9107. var num3 = sub_B88D(rPtr(A_0));
  9108. var num4 = sub_B89A(rPtr(A_0));
  9109. bool flag1 = A_1 < 1;
  9110. if (!(flag1 | (A_1 > sub_BC34(num3, num4))))
  9111. {
  9112. wPtr(rPtr(A_0) - (rPtr(A_0) & 496), A_0);
  9113. wPtr(rPtr(A_0) | SYSTEM::SHIFT_LEFT(A_1, 4), A_0);
  9114. }
  9115. }
  9116.  
  9117. void sub_BB83(var A_0, var A_1)
  9118. {
  9119. bool flag1 = A_1 < 0;
  9120. if (!(flag1 | (A_1 > 23)))
  9121. {
  9122. wPtr(rPtr(A_0) - (rPtr(A_0) & 15872), A_0);
  9123. wPtr(rPtr(A_0) | SYSTEM::SHIFT_LEFT(A_1, 9), A_0);
  9124. }
  9125. }
  9126.  
  9127. void sub_BBBD(var A_0, var A_1)
  9128. {
  9129. bool flag1 = A_1 < 0;
  9130. if (!(flag1 | (A_1 >= 60)))
  9131. {
  9132. wPtr(rPtr(A_0) - (rPtr(A_0) & 0xFC000), A_0);
  9133. wPtr(rPtr(A_0) | SYSTEM::SHIFT_LEFT(A_1, 14), A_0);
  9134. }
  9135. }
  9136.  
  9137. void sub_BBF8(var A_0, var A_1)
  9138. {
  9139. bool flag1 = A_1 < 0;
  9140. if (!(flag1 | (A_1 >= 60)))
  9141. {
  9142. wPtr(rPtr(A_0) - (rPtr(A_0) & 0x3F00000), A_0);
  9143. wPtr(rPtr(A_0) | SYSTEM::SHIFT_LEFT(A_1, 20), A_0);
  9144. }
  9145. }
  9146.  
  9147. var sub_BC34(var A_0, var A_1)
  9148. {
  9149. if (A_1 < 0)
  9150. {
  9151. A_1 = 0;
  9152. }
  9153. switch ((A_0))
  9154. {
  9155. case 0:
  9156. case 2:
  9157. case 4:
  9158. case 6:
  9159. case 7:
  9160. case 9:
  9161. case 11:
  9162. return 31;
  9163. case 3:
  9164. case 5:
  9165. case 8:
  9166. case 10:
  9167. return 30;
  9168. case 1:
  9169. if ((A_1 % 4) == 0)
  9170. {
  9171. if ((A_1 % 100) != 0)
  9172. {
  9173. return 29;
  9174. }
  9175. if ((A_1 % 400) == 0)
  9176. {
  9177. return 29;
  9178. }
  9179. }
  9180. return 28;
  9181. }
  9182. return 30;
  9183. }
  9184.  
  9185. var sub_BCD6()
  9186. {
  9187. var num3;
  9188. sub_BBF8(&num3, TIME::GET_CLOCK_SECONDS());
  9189. sub_BBBD(&num3, TIME::GET_CLOCK_MINUTES());
  9190. sub_BB83(&num3, TIME::GET_CLOCK_HOURS());
  9191. sub_BB32(&num3, TIME::GET_CLOCK_DAY_OF_MONTH());
  9192. sub_BAFF(&num3, TIME::GET_CLOCK_MONTH());
  9193. sub_BA79(&num3, TIME::GET_CLOCK_YEAR());
  9194. return num3;
  9195. }
  9196.  
  9197. void sub_BD1C(var A_0, var A_1)
  9198. {
  9199. UI::0xB245FC10(A_0);
  9200. UI::0xB59B530D(0, 0, 1, A_1);
  9201. }
  9202.  
  9203. void sub_BD33()
  9204. {
  9205. sub_CBA7(1);
  9206. sub_815D(1);
  9207. UI::DISPLAY_RADAR(0);
  9208. sub_C7CA();
  9209. sub_C720(1, 1, 0, 0, 0);
  9210. sub_C6E1(1, 2, 1, 1, 1);
  9211. sub_C696("PROS_OPTS");
  9212. sub_C640(30, "PROS_SELECT", -1);
  9213. l_104 = 0;
  9214. var num3 = sub_7293(0);
  9215. var num4 = sub_7293(1);
  9216. var num5 = sub_7293(2);
  9217. if (sub_805E() >= num3)
  9218. {
  9219. sub_C429(l_104, "PROS_DOLLAR", 1, 1, 0, 0);
  9220. sub_BEC6(num3, 0);
  9221. setElem(0, l_104, &l_320, 4);
  9222. l_104++;
  9223. }
  9224. bool flag1 = sub_805E() >= num4;
  9225. if (flag1 & sub_BE56(l_130))
  9226. {
  9227. sub_C429(l_104, "PROS_DOLLAR", 1, 1, 0, 0);
  9228. sub_BEC6(num4, 0);
  9229. setElem(1, l_104, &l_320, 4);
  9230. l_104++;
  9231. }
  9232. bool flag2 = sub_805E() >= num5;
  9233. if (flag2 & sub_BE56(l_130))
  9234. {
  9235. sub_C429(l_104, "PROS_DOLLAR", 1, 1, 0, 0);
  9236. sub_BEC6(num5, 0);
  9237. setElem(2, l_104, &l_320, 4);
  9238. l_104++;
  9239. }
  9240. sub_C429(l_104, "PROS_QUIT", 0, 1, 0, 0);
  9241. l_103 = 0;
  9242. sub_8188(l_103, 1, 1);
  9243. sub_BE48();
  9244. l_332 = 3;
  9245. }
  9246.  
  9247. void sub_BE48()
  9248. {
  9249. wPtr(1, (&g_13109) + 5);
  9250. }
  9251.  
  9252. var sub_BE56(var A_0)
  9253. {
  9254. if (VEHICLE::IS_VEHICLE_DRIVEABLE(A_0, 0) != 0)
  9255. {
  9256. var num3 = ENTITY::GET_ENTITY_MODEL(A_0);
  9257. bool flag1 = num3 == 0x18F25AC7;
  9258. bool flag2 = flag1 | (num3 == 0x9F4B77BE);
  9259. bool flag3 = flag2 | (num3 == 0x82E499FA);
  9260. bool flag4 = flag3 | (num3 == 0x5C23AF9B);
  9261. bool flag5 = flag4 | (num3 == 0x9AE6DDA1);
  9262. if (flag5 | (num3 == 0xB2FE5CF9))
  9263. {
  9264. return 0;
  9265. }
  9266. }
  9267. return 1;
  9268. }
  9269.  
  9270. void sub_BEC6(var A_0, var A_1)
  9271. {
  9272. if ((((rPtr((&g_13241) + 3987) < 250) && (rPtr((&g_13241) + 4489) < 4)) && (rPtr((&g_13241) + 4490) == 1)) && (rPtr((&g_13241) + 4489) < rPtr((&g_13241) + 4487)))
  9273. {
  9274. setElem(A_0, rPtr((&g_13241) + 3987), (&g_13241) + 3068, 4);
  9275. wPtr(rPtr((&g_13241) + 3987) + 1, (&g_13241) + 3987);
  9276. setElem(2, rPtr((&g_13241) + 4489), getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4);
  9277. wPtr(rPtr((&g_13241) + 4489) + 1, (&g_13241) + 4489);
  9278. if (rPtr((&g_13241) + 4489) >= rPtr((&g_13241) + 4487))
  9279. {
  9280. var num3 = sub_C0B2();
  9281. var num1 = getElem(rPtr((&g_13241) + 3984), (&g_13241) + 3843, 4);
  9282. if ((num1 & (rPtr((&g_13241) + 4489) == rPtr((&g_13241) + 4487))) != 0)
  9283. {
  9284. var num4;
  9285. var num5;
  9286. sub_B4C6(26, 1, 0, &num4, &num5);
  9287. num3 += (num4 * 2f);
  9288. }
  9289. if (num3 > getElem(rPtr((&g_13241) + 3984) - 1, (&g_13241) + 3836, 4))
  9290. {
  9291. setElem(num3, rPtr((&g_13241) + 3984) - 1, (&g_13241) + 3836, 4);
  9292. }
  9293. }
  9294. if ((A_1 != null) && (rPtr((&g_13241) + 4489) >= rPtr((&g_13241) + 4487)))
  9295. {
  9296. var num6 = sub_C000();
  9297. if (num6 > getElem(rPtr((&g_13241) + 3983), (&g_13241) + 4491, 4))
  9298. {
  9299. setElem(num6, rPtr((&g_13241) + 3983), (&g_13241) + 4491, 4);
  9300. }
  9301. }
  9302. }
  9303. }
  9304.  
  9305. var sub_C000()
  9306. {
  9307. var num4;
  9308. var num5;
  9309. var num3 = 0;
  9310. while (true)
  9311. {
  9312. if (num3 >= rPtr((&g_13241) + 4489))
  9313. {
  9314. break;
  9315. }
  9316. if (getElem(num3, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 4)
  9317. {
  9318. num4++;
  9319. }
  9320. num3++;
  9321. }
  9322. num3 = 0;
  9323. while (true)
  9324. {
  9325. var num6;
  9326. var num7;
  9327. if (num3 >= num4)
  9328. {
  9329. break;
  9330. }
  9331. if (((getElem((rPtr((&g_13241) + 3989) - num4) + num3, (&g_13241) + 3571, 4) != 0) && (sub_B4C6(getElem((rPtr((&g_13241) + 3989) - num4) + num3, (&g_13241) + 3571, 4), 1, 0, &num6, &num7) != 0)) && (num7 > num5))
  9332. {
  9333. num5 = num7;
  9334. }
  9335. num3++;
  9336. }
  9337. if (num5 > UI::0x3330175B(0.35f, 0))
  9338. {
  9339. return num5;
  9340. }
  9341. return UI::0x3330175B(0.35f, 0);
  9342. }
  9343.  
  9344. var sub_C0B2()
  9345. {
  9346. var num3;
  9347. var num6;
  9348. var num7;
  9349. var num8;
  9350. var num9;
  9351. var num10 = 0;
  9352. while (true)
  9353. {
  9354. if (num10 >= rPtr((&g_13241) + 4489))
  9355. {
  9356. break;
  9357. }
  9358. if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) != 1)
  9359. {
  9360. if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 2)
  9361. {
  9362. num6++;
  9363. }
  9364. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 3)
  9365. {
  9366. num7++;
  9367. }
  9368. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 4)
  9369. {
  9370. num8++;
  9371. }
  9372. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 5)
  9373. {
  9374. num9++;
  9375. }
  9376. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 6)
  9377. {
  9378. num9++;
  9379. }
  9380. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 7)
  9381. {
  9382. num9++;
  9383. }
  9384. }
  9385. num10++;
  9386. }
  9387. sub_A65C(0, 1, 0, 0, 0, (num9 > 0));
  9388. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9389. {
  9390. UI::0x51E7A037(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16));
  9391. }
  9392. num10 = 0;
  9393. while (true)
  9394. {
  9395. if (num10 >= rPtr((&g_13241) + 4489))
  9396. {
  9397. break;
  9398. }
  9399. if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 1)
  9400. {
  9401. var num11;
  9402. num11++;
  9403. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9404. {
  9405. UI::0xDCE05406(getElemPtr(rPtr((&g_13241) + 4488) + num11, (&g_13241) + 57, 16));
  9406. }
  9407. }
  9408. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 2)
  9409. {
  9410. var num12;
  9411. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9412. {
  9413. UI::ADD_TEXT_COMPONENT_INTEGER(getElem((rPtr((&g_13241) + 3987) - num6) + num12, (&g_13241) + 3068, 4));
  9414. }
  9415. num12++;
  9416. }
  9417. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 3)
  9418. {
  9419. var num13;
  9420. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9421. {
  9422. UI::ADD_TEXT_COMPONENT_FLOAT(getElem((rPtr((&g_13241) + 3988) - num7) + num13, (&g_13241) + 3319, 4), getElem((rPtr((&g_13241) + 3988) - num7) + num13, (&g_13241) + 3445, 4));
  9423. }
  9424. num13++;
  9425. }
  9426. else
  9427. {
  9428. var num14;
  9429. if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 5)
  9430. {
  9431. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9432. {
  9433. UI::0x27A244D8(getElemPtr((rPtr((&g_13241) + 3986) - num9) + num14, &g_2398722, 64));
  9434. }
  9435. num14++;
  9436. }
  9437. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 6)
  9438. {
  9439. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9440. {
  9441. UI::0xDCE05406(getElemPtr((rPtr((&g_13241) + 3986) - num9) + num14, &g_2398722, 64));
  9442. }
  9443. num14++;
  9444. }
  9445. else if (getElem(num10, getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 1560, 20), 4) == 7)
  9446. {
  9447. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9448. {
  9449. UI::0x27A244D8(getElemPtr((rPtr((&g_13241) + 3986) - num9) + num14, &g_2398722, 64));
  9450. }
  9451. num14++;
  9452. }
  9453. }
  9454. num10++;
  9455. }
  9456. if (GAMEPLAY::GET_HASH_KEY(getElemPtr(rPtr((&g_13241) + 4488), (&g_13241) + 57, 16)) != 0)
  9457. {
  9458. num3 = UI::0xD12A643A(1);
  9459. }
  9460. for (num10 = 0; num10 < num8; num10++)
  9461. {
  9462. if (getElem((rPtr((&g_13241) + 3989) - num8) + num10, (&g_13241) + 3571, 4) != 0)
  9463. {
  9464. var num4;
  9465. var num5;
  9466. sub_B4C6(getElem((rPtr((&g_13241) + 3989) - num8) + num10, (&g_13241) + 3571, 4), 1, 0, &num4, &num5);
  9467. num3 += num4;
  9468. }
  9469. }
  9470. return num3;
  9471. }
  9472.  
  9473. void sub_C429(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  9474. {
  9475. bool flag1;
  9476. if (rPtr((&g_13241) + 3983) > A_0)
  9477. {
  9478. return;
  9479. }
  9480. if (rPtr((&g_13241) + 3983) >= 125)
  9481. {
  9482. return;
  9483. }
  9484. if (rPtr((&g_13241) + 3985) >= 250)
  9485. {
  9486. return;
  9487. }
  9488. if (rPtr((&g_13241) + 4489) < rPtr((&g_13241) + 4487))
  9489. {
  9490. return;
  9491. }
  9492. if (rPtr((&g_13241) + 3983) != A_0)
  9493. {
  9494. wPtr(A_0, (&g_13241) + 3983);
  9495. wPtr(0, (&g_13241) + 3984);
  9496. }
  9497. var num3 = getElem(rPtr((&g_13241) + 3984), (&g_13241) + 3824, 4);
  9498. if (num3 == 1)
  9499. {
  9500. goto Label_0187;
  9501. }
  9502. Label_00EF:
  9503. flag1 = rPtr((&g_13241) + 3984) < 4;
  9504. if (flag1 & (num3 != 1))
  9505. {
  9506. wPtr(rPtr((&g_13241) + 3984) + 1, (&g_13241) + 3984);
  9507. num3 = getElem(rPtr((&g_13241) + 3984), (&g_13241) + 3824, 4);
  9508. goto Label_00EF;
  9509. }
  9510. if (num3 != 1)
  9511. {
  9512. return;
  9513. }
  9514. Label_0187:
  9515. strcpy(A_1, getElemPtr(rPtr((&g_13241) + 3985), (&g_13241) + 57, 16), 16);
  9516. setElem(A_3, rPtr((&g_13241) + 3985), (&g_13241) + 1058, 4);
  9517. setElem(A_4, rPtr((&g_13241) + 3985), (&g_13241) + 1309, 4);
  9518. wPtr(rPtr((&g_13241) + 3985) + 1, (&g_13241) + 3985);
  9519. if (A_2 == 0)
  9520. {
  9521. var num4 = sub_C604(A_1);
  9522. if (getElem(rPtr((&g_13241) + 3984), (&g_13241) + 3843, 4) != 0)
  9523. {
  9524. var num5;
  9525. var num6;
  9526. sub_B4C6(26, 1, 0, &num5, &num6);
  9527. num4 += (num5 * 2f);
  9528. }
  9529. if (num4 > getElem(rPtr((&g_13241) + 3984), (&g_13241) + 3836, 4))
  9530. {
  9531. setElem(num4, rPtr((&g_13241) + 3984), (&g_13241) + 3836, 4);
  9532. }
  9533. }
  9534. if ((A_5 != null) && (A_2 == 0))
  9535. {
  9536. var num7 = sub_C5E8(A_1);
  9537. if (num7 > getElem(A_0, (&g_13241) + 4491, 4))
  9538. {
  9539. setElem(num7, A_0, (&g_13241) + 4491, 4);
  9540. }
  9541. }
  9542. GAMEPLAY::SET_BIT(getElemPtr(A_0, (&g_13241) + 3857, 4), rPtr((&g_13241) + 3984));
  9543. wPtr(rPtr((&g_13241) + 3984) + 1, (&g_13241) + 3984);
  9544. wPtr(1, (&g_13241) + 4490);
  9545. wPtr(rPtr((&g_13241) + 3985) - 1, (&g_13241) + 4488);
  9546. wPtr(0, (&g_13241) + 4489);
  9547. wPtr(A_2, (&g_13241) + 4487);
  9548. }
  9549.  
  9550. var sub_C5E8(var A_0)
  9551. {
  9552. if (UI::DOES_TEXT_LABEL_EXIST(A_0) == 0)
  9553. {
  9554. }
  9555. return UI::0x3330175B(0.35f, 0);
  9556. }
  9557.  
  9558. var sub_C604(var A_0)
  9559. {
  9560. if (GAMEPLAY::IS_STRING_NULL(A_0) == 0)
  9561. {
  9562. if (GAMEPLAY::GET_HASH_KEY(A_0) == 0)
  9563. {
  9564. return 0f;
  9565. }
  9566. }
  9567. else
  9568. {
  9569. return 0f;
  9570. }
  9571. sub_A65C(0, 1, 0, 0, 0, 0);
  9572. UI::0x51E7A037(A_0);
  9573. return UI::0xD12A643A(1);
  9574. }
  9575.  
  9576. void sub_C640(var A_0, var A_1, var A_2)
  9577. {
  9578. if (rPtr((&g_13241) + 3744) < 12)
  9579. {
  9580. setElem(A_0, rPtr((&g_13241) + 3744), (&g_13241) + 3746, 4);
  9581. strcpy(A_1, getElemPtr(rPtr((&g_13241) + 3744), (&g_13241) + 3759, 16), 16);
  9582. setElem(A_2, rPtr((&g_13241) + 3744), (&g_13241) + 3808, 4);
  9583. wPtr(rPtr((&g_13241) + 3744) + 1, (&g_13241) + 3744);
  9584. }
  9585. }
  9586.  
  9587. void sub_C696(var A_0)
  9588. {
  9589. strcpy(A_0, (&g_13241) + 1, 16);
  9590. wPtr(0, (&g_13241) + 52);
  9591. wPtr(0, (&g_13241) + 53);
  9592. wPtr(0, (&g_13241) + 54);
  9593. wPtr(0, (&g_13241) + 55);
  9594. wPtr(0, (&g_13241) + 56);
  9595. var num3 = 0;
  9596. while (true)
  9597. {
  9598. if (num3 >= 4)
  9599. {
  9600. break;
  9601. }
  9602. setElem(0, num3, (&g_13241) + 5, 4);
  9603. num3++;
  9604. }
  9605. }
  9606.  
  9607. void sub_C6E1(var A_0, var A_1, var A_2, var A_3, var A_4)
  9608. {
  9609. setElem(A_0, 0, (&g_13241) + 3851, 4);
  9610. setElem(A_1, 1, (&g_13241) + 3851, 4);
  9611. setElem(A_2, 2, (&g_13241) + 3851, 4);
  9612. setElem(A_3, 3, (&g_13241) + 3851, 4);
  9613. setElem(A_4, 4, (&g_13241) + 3851, 4);
  9614. }
  9615.  
  9616. void sub_C720(var A_0, var A_1, var A_2, var A_3, var A_4)
  9617. {
  9618. setElem(A_0, 0, (&g_13241) + 3824, 4);
  9619. setElem(A_1, 1, (&g_13241) + 3824, 4);
  9620. setElem(A_2, 2, (&g_13241) + 3824, 4);
  9621. setElem(A_3, 3, (&g_13241) + 3824, 4);
  9622. setElem(A_4, 4, (&g_13241) + 3824, 4);
  9623. wPtr(0, (&g_13241) + 3991);
  9624. if (A_0 != 0)
  9625. {
  9626. wPtr(rPtr((&g_13241) + 3991) + 1, (&g_13241) + 3991);
  9627. }
  9628. if (A_1 != 0)
  9629. {
  9630. wPtr(rPtr((&g_13241) + 3991) + 1, (&g_13241) + 3991);
  9631. }
  9632. if (A_2 != 0)
  9633. {
  9634. wPtr(rPtr((&g_13241) + 3991) + 1, (&g_13241) + 3991);
  9635. }
  9636. if (A_3 != 0)
  9637. {
  9638. wPtr(rPtr((&g_13241) + 3991) + 1, (&g_13241) + 3991);
  9639. }
  9640. if (A_4 != 0)
  9641. {
  9642. wPtr(rPtr((&g_13241) + 3991) + 1, (&g_13241) + 3991);
  9643. }
  9644. }
  9645.  
  9646. void sub_C7CA()
  9647. {
  9648. var num3 = 0;
  9649. while (true)
  9650. {
  9651. if (num3 >= 250)
  9652. {
  9653. num3 = 0;
  9654. while (num3 < 32)
  9655. {
  9656. strcpy("", getElemPtr(num3, &g_2398722, 64), 64);
  9657. num3++;
  9658. }
  9659. break;
  9660. }
  9661. strcpy("", getElemPtr(num3, (&g_13241) + 57, 16), 16);
  9662. var num4 = 0;
  9663. while (true)
  9664. {
  9665. if (num4 >= 4)
  9666. {
  9667. break;
  9668. }
  9669. setElem(0, num4, getElemPtr(num3, (&g_13241) + 1560, 20), 4);
  9670. num4++;
  9671. }
  9672. num3++;
  9673. }
  9674. num3 = 0;
  9675. while (true)
  9676. {
  9677. if (num3 >= 250)
  9678. {
  9679. break;
  9680. }
  9681. setElem(0, num3, (&g_13241) + 3068, 4);
  9682. num3++;
  9683. }
  9684. num3 = 0;
  9685. while (true)
  9686. {
  9687. if (num3 >= 125)
  9688. {
  9689. break;
  9690. }
  9691. setElem(0f, num3, (&g_13241) + 3319, 4);
  9692. num3++;
  9693. }
  9694. num3 = 0;
  9695. while (true)
  9696. {
  9697. if (num3 >= 125)
  9698. {
  9699. break;
  9700. }
  9701. setElem(0, num3, (&g_13241) + 3571, 4);
  9702. num3++;
  9703. }
  9704. num3 = 0;
  9705. while (true)
  9706. {
  9707. if (num3 >= 125)
  9708. {
  9709. break;
  9710. }
  9711. setElem(0, num3, (&g_13241) + 3857, 4);
  9712. setElem(0, num3, (&g_13241) + 3992, 4);
  9713. setElem(0, num3, (&g_13241) + 4118, 4);
  9714. setElem(0f, num3, (&g_13241) + 4622, 4);
  9715. setElem(0, num3, (&g_13241) + 4244, 4);
  9716. setElem(0f, num3, (&g_13241) + 4491, 4);
  9717. num3++;
  9718. }
  9719. num3 = 0;
  9720. while (true)
  9721. {
  9722. if (num3 >= 5)
  9723. {
  9724. break;
  9725. }
  9726. setElem(0, num3, (&g_13241) + 3824, 4);
  9727. setElem(0f, num3, (&g_13241) + 3836, 4);
  9728. setElem(-1f, num3, (&g_13241) + 3830, 4);
  9729. setElem(0, num3, (&g_13241) + 3843, 4);
  9730. setElem(1, num3, (&g_13241) + 3851, 4);
  9731. num3++;
  9732. }
  9733. num3 = 0;
  9734. while (true)
  9735. {
  9736. if (num3 >= 12)
  9737. {
  9738. break;
  9739. }
  9740. strcpy("", getElemPtr(num3, (&g_13241) + 3759, 16), 16);
  9741. setElem(-1, num3, (&g_13241) + 3808, 4);
  9742. num3++;
  9743. }
  9744. num3 = 0;
  9745. while (true)
  9746. {
  9747. if (num3 >= 34)
  9748. {
  9749. break;
  9750. }
  9751. strcpy("", getElemPtr(num3, (&g_13241) + 4754, 64), 64);
  9752. strcpy("", getElemPtr(num3, (&g_13241) + 5299, 64), 64);
  9753. num3++;
  9754. }
  9755. num3 = 0;
  9756. while (true)
  9757. {
  9758. if (num3 >= 12)
  9759. {
  9760. break;
  9761. }
  9762. strcpy("", getElemPtr(num3, &g_2455136, 64), 64);
  9763. strcpy("", getElemPtr(num3, (&g_2455136) + 545, 64), 64);
  9764. num3++;
  9765. }
  9766. g_13241 = 0;
  9767. wPtr(0, (&g_13241) + 3983);
  9768. wPtr(0, (&g_13241) + 3984);
  9769. wPtr(0, (&g_13241) + 3985);
  9770. wPtr(0, (&g_13241) + 3987);
  9771. wPtr(0, (&g_13241) + 3988);
  9772. wPtr(0, (&g_13241) + 3989);
  9773. wPtr(0, (&g_13241) + 3986);
  9774. wPtr(0, (&g_13241) + 4617);
  9775. wPtr(0, (&g_13241) + 4485);
  9776. wPtr(0, (&g_13241) + 4484);
  9777. wPtr(0, (&g_13241) + 4486);
  9778. strcpy("", (&g_13241) + 3697, 16);
  9779. wPtr(0, (&g_13241) + 3737);
  9780. wPtr(0, (&g_13241) + 3738);
  9781. wPtr(0, (&g_13241) + 3739);
  9782. wPtr(0, (&g_13241) + 3740);
  9783. wPtr(0, (&g_13241) + 3741);
  9784. wPtr(0, (&g_13241) + 3742);
  9785. num3 = 0;
  9786. while (true)
  9787. {
  9788. if (num3 >= 4)
  9789. {
  9790. break;
  9791. }
  9792. setElem(0, num3, (&g_13241) + 3701, 4);
  9793. num3++;
  9794. }
  9795. wPtr(0, (&g_13241) + 3743);
  9796. strcpy("", (&g_13241) + 1, 16);
  9797. wPtr(0f, (&g_13241) + 3842);
  9798. wPtr(0, (&g_13241) + 52);
  9799. wPtr(0, (&g_13241) + 53);
  9800. wPtr(0, (&g_13241) + 54);
  9801. wPtr(0, (&g_13241) + 55);
  9802. wPtr(0, (&g_13241) + 56);
  9803. num3 = 0;
  9804. while (true)
  9805. {
  9806. if (num3 >= 4)
  9807. {
  9808. break;
  9809. }
  9810. setElem(0, num3, (&g_13241) + 5, 4);
  9811. num3++;
  9812. }
  9813. wPtr(0, (&g_13241) + 4490);
  9814. wPtr(0, (&g_13241) + 4489);
  9815. wPtr(0, (&g_13241) + 4487);
  9816. wPtr(0, (&g_13241) + 4488);
  9817. wPtr(0, (&g_13241) + 3744);
  9818. wPtr(0, (&g_13241) + 3745);
  9819. wPtr(10, (&g_13241) + 3990);
  9820. wPtr(0, (&g_13241) + 3991);
  9821. wPtr(0f, (&g_13241) + 4619);
  9822. wPtr(0f, (&g_13241) + 4620);
  9823. wPtr(0, (&g_13241) + 4477);
  9824. wPtr(0, (&g_13241) + 4478);
  9825. wPtr(0f, (&g_13241) + 4479);
  9826. wPtr(0, (&g_13241) + 4480);
  9827. wPtr(0, (&g_13241) + 4482);
  9828. wPtr(0, (&g_13241) + 4481);
  9829. wPtr(0, (&g_13241) + 4483);
  9830. wPtr(0, (&g_13241) + 6209);
  9831. num3 = 0;
  9832. while (true)
  9833. {
  9834. if (num3 >= 2)
  9835. {
  9836. break;
  9837. }
  9838. setElem(-1, num3, (&g_13241) + 4748, 4);
  9839. setElem(-1, num3, (&g_13241) + 4751, 4);
  9840. num3++;
  9841. }
  9842. wPtr(0f, (&g_13241) + 3849);
  9843. wPtr(0, (&g_13241) + 3850);
  9844. wPtr(0, (&g_13241) + 6188);
  9845. wPtr(0, (&g_13241) + 6193);
  9846. wPtr(0, (&g_13241) + 6198);
  9847. wPtr(0, (&g_13241) + 6203);
  9848. wPtr(0, (&g_13241) + 6205);
  9849. wPtr(0, (&g_13241) + 6211);
  9850. g_13239 = 0.05f;
  9851. g_13240 = 0.05f;
  9852. }
  9853.  
  9854. void sub_CBA7(var A_0)
  9855. {
  9856. if (A_0 == 0)
  9857. {
  9858. g_85576 = GAMEPLAY::GET_GAME_TIMER() + 250;
  9859. }
  9860. g_85573 = A_0;
  9861. }
  9862.  
  9863. var sub_CBC5(var A_0)
  9864. {
  9865. return (sub_805E() >= sub_7293(A_0));
  9866. }
  9867.  
  9868. var sub_CBD8(var A_0, var A_1)
  9869. {
  9870. if (STREAMING::HAS_ANIM_DICT_LOADED(l_96) != 0)
  9871. {
  9872. bool flag1 = ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, l_96, sub_344E(A_1), 3) == 0;
  9873. if (flag1 & (AI::GET_SCRIPT_TASK_STATUS(A_0, 0x87B9A382) != 1))
  9874. {
  9875. if (sub_10B44() != 0)
  9876. {
  9877. if (A_0 == PLAYER::PLAYER_PED_ID())
  9878. {
  9879. if (sub_63EE(PLAYER::PLAYER_ID()) == 0)
  9880. {
  9881. var num3 = PED::GET_PED_DRAWABLE_VARIATION(PLAYER::PLAYER_PED_ID(), 6);
  9882. switch (num3)
  9883. {
  9884. case 0:
  9885. case 6:
  9886. case 7:
  9887. case 8:
  9888. case 12:
  9889. case 14:
  9890. sub_60D9(256);
  9891. break;
  9892. }
  9893. if (sub_101A1(256) != 0)
  9894. {
  9895. l_119 = num3;
  9896. l_120 = PED::GET_PED_TEXTURE_VARIATION(PLAYER::PLAYER_PED_ID(), 6);
  9897. PED::SET_PED_COMPONENT_VARIATION(PLAYER::PLAYER_PED_ID(), 6, 1, 0, 0);
  9898. }
  9899. }
  9900. AI::TASK_PLAY_ANIM(A_0, l_96, sub_CD48(A_1), 2f, -8f, -1, 0, 0, 0, 0, 0);
  9901. }
  9902. else
  9903. {
  9904. AI::TASK_PLAY_ANIM(A_0, l_96, sub_CD48(A_1), 2f, -8f, -1, 0, 0, 0, 0, 0);
  9905. }
  9906. }
  9907. else
  9908. {
  9909. AI::TASK_PLAY_ANIM(A_0, l_96, sub_CD48(A_1), 2f, -8f, -1, 0, 0, 0, 0, 0);
  9910. }
  9911. }
  9912. else
  9913. {
  9914. if ((ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, l_96, sub_CD48(A_1), 3) != 0) && (ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(A_0, l_96, sub_CD48(A_1)) >= 0.95f))
  9915. {
  9916. AI::TASK_PLAY_ANIM(A_0, l_96, sub_344E(A_1), 8f, -2f, -1, 1, 0, 0, 0, 0);
  9917. }
  9918. if (ENTITY::IS_ENTITY_PLAYING_ANIM(A_0, l_96, sub_344E(A_1), 3) != 0)
  9919. {
  9920. return 1;
  9921. }
  9922. }
  9923. }
  9924. return 0;
  9925. }
  9926.  
  9927. var sub_CD48(var A_0)
  9928. {
  9929. if (sub_F6B7(l_85, 32768) == 0)
  9930. {
  9931. if (A_0 != null)
  9932. {
  9933. return sub_132F(0);
  9934. }
  9935. return sub_132F(1);
  9936. }
  9937. if (A_0 != null)
  9938. {
  9939. return sub_14ED(0);
  9940. }
  9941. return sub_14ED(1);
  9942. }
  9943.  
  9944. void sub_CD8E(var A_0)
  9945. {
  9946. wPtr(-15, A_0);
  9947. }
  9948.  
  9949. var sub_CD9C(var A_0)
  9950. {
  9951. if (A_0 == -15)
  9952. {
  9953. return 0;
  9954. }
  9955. var num3 = sub_B842(A_0);
  9956. bool flag1 = num3 < 0;
  9957. if (flag1 | (num3 >= 60))
  9958. {
  9959. return 0;
  9960. }
  9961. var num4 = sub_B855(A_0);
  9962. bool flag2 = num4 < 0;
  9963. if (flag2 | (num4 >= 60))
  9964. {
  9965. return 0;
  9966. }
  9967. var num5 = sub_B868(A_0);
  9968. bool flag3 = num5 < 0;
  9969. if (flag3 | (num5 > 23))
  9970. {
  9971. return 0;
  9972. }
  9973. var num6 = sub_B89A(A_0);
  9974. bool flag4 = num6 <= 0;
  9975. bool flag5 = flag4 | (num6 > 2043);
  9976. if (flag5 | (num6 < 1979))
  9977. {
  9978. return 0;
  9979. }
  9980. var num7 = sub_B88D(A_0);
  9981. bool flag6 = num7 < 0;
  9982. if (flag6 | (num7 > 11))
  9983. {
  9984. return 0;
  9985. }
  9986. var num8 = sub_B87B(A_0);
  9987. bool flag7 = num8 < 1;
  9988. if (flag7 | (num8 > sub_BC34(num7, num6)))
  9989. {
  9990. return 0;
  9991. }
  9992. return 1;
  9993. }
  9994.  
  9995. void sub_CE78()
  9996. {
  9997. if (PED::IS_PED_INJURED(l_127) == 0)
  9998. {
  9999. AUDIO::STOP_CURRENT_PLAYING_AMBIENT_SPEECH(l_127);
  10000. if (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0)
  10001. {
  10002. if (l_105 < 1)
  10003. {
  10004. AUDIO::0x5C57B85D(l_127, "HOOKER_OFFER_SERVICE", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  10005. }
  10006. else
  10007. {
  10008. AUDIO::0x5C57B85D(l_127, "HOOKER_OFFER_AGAIN", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  10009. }
  10010. }
  10011. }
  10012. }
  10013.  
  10014. var sub_CEC1()
  10015. {
  10016. var num1 = sub_CEE5(0, -1);
  10017. if ((num1 & AUDIO::REQUEST_SCRIPT_AUDIO_BANK("SCRIPTHUD_321_GO", 1)) != 0)
  10018. {
  10019. return 1;
  10020. }
  10021. return 0;
  10022. }
  10023.  
  10024. var sub_CEE5(var A_0, var A_1)
  10025. {
  10026. var num3;
  10027. if (sub_B611(&num3, 1, A_1) == 0)
  10028. {
  10029. return 0;
  10030. }
  10031. var num4 = 1;
  10032. strcpy(A_0, getElemPtr(num3, (&g_13241) + 4384, 16), 16);
  10033. if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(getElemPtr(num3, (&g_13241) + 4384, 16)) == 0)
  10034. {
  10035. UI::REQUEST_ADDITIONAL_TEXT(getElemPtr(num3, (&g_13241) + 4384, 16), 9);
  10036. setElem(1, num3, (&g_13241) + 4377, 4);
  10037. if (UI::HAS_THIS_ADDITIONAL_TEXT_LOADED(getElemPtr(num3, (&g_13241) + 4384, 16), 9) == 0)
  10038. {
  10039. num4 = 0;
  10040. }
  10041. }
  10042. GRAPHICS::REQUEST_STREAMED_TEXTURE_DICT("CommonMenu", 0);
  10043. setElem(1, num3, (&g_13241) + 4370, 4);
  10044. if (GRAPHICS::HAS_STREAMED_TEXTURE_DICT_LOADED("CommonMenu") == 0)
  10045. {
  10046. num4 = 0;
  10047. }
  10048. var num5 = 0;
  10049. strcpy("instructional_buttons", getElemPtr(num3, (&g_13241) + 4409, 40) + 4, 24);
  10050. num5 = sub_CFB3(getElemPtr(num3, (&g_13241) + 4409, 40));
  10051. bool flag1 = num4 == 0;
  10052. if (flag1 | (num5 == 0))
  10053. {
  10054. }
  10055. return (num4 & num5);
  10056. }
  10057.  
  10058. var sub_CFB3(var A_0)
  10059. {
  10060. switch (rPtr((A_0) + 36))
  10061. {
  10062. case 0:
  10063. if (GRAPHICS::HAS_SCALEFORM_MOVIE_LOADED(rPtr(A_0)) != 0)
  10064. {
  10065. wPtr(GAMEPLAY::GET_GAME_TIMER(), (A_0) + 32);
  10066. wPtr(2, (A_0) + 36);
  10067. break;
  10068. }
  10069. wPtr(GRAPHICS::REQUEST_SCALEFORM_MOVIE((A_0) + 4), A_0);
  10070. wPtr(1, (A_0) + 36);
  10071. if ((rPtr((A_0) + 28) != 0) && (GRAPHICS::HAS_SCALEFORM_MOVIE_LOADED(rPtr(A_0)) != 0))
  10072. {
  10073. wPtr(GAMEPLAY::GET_GAME_TIMER(), (A_0) + 32);
  10074. wPtr(2, (A_0) + 36);
  10075. }
  10076. break;
  10077. case 1:
  10078. if (GRAPHICS::HAS_SCALEFORM_MOVIE_LOADED(rPtr(A_0)) != 0)
  10079. {
  10080. wPtr(GAMEPLAY::GET_GAME_TIMER(), (A_0) + 32);
  10081. wPtr(2, (A_0) + 36);
  10082. }
  10083. break;
  10084. case 2:
  10085. if (GRAPHICS::HAS_SCALEFORM_MOVIE_LOADED(rPtr(A_0)) == 0)
  10086. {
  10087. wPtr(0, (A_0) + 36);
  10088. }
  10089. break;
  10090. }
  10091. return (rPtr((A_0) + 36) == 2);
  10092. }
  10093.  
  10094. void sub_D055()
  10095. {
  10096. if ((sub_10B44() != 0) && (ENTITY::DOES_ENTITY_EXIST(l_127) != 0))
  10097. {
  10098. l_93 = ENTITY::GET_ENTITY_HEALTH(l_127);
  10099. }
  10100. }
  10101.  
  10102. void sub_D079()
  10103. {
  10104. if ((sub_10B44() != 0) && ((ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0) && (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)))
  10105. {
  10106. var num3 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  10107. if (ENTITY::DOES_ENTITY_EXIST(num3) != 0)
  10108. {
  10109. struct _s = ENTITY::GET_ENTITY_COORDS(num3, 1);
  10110. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_89);
  10111. }
  10112. }
  10113. }
  10114.  
  10115. void sub_D0C2(var A_0, var A_1)
  10116. {
  10117. var num3;
  10118. if (sub_B611(&num3, 0, A_1) != 0)
  10119. {
  10120. if (rPtr((&g_13241) + 6213) != 0)
  10121. {
  10122. UI::RESET_HUD_COMPONENT_VALUES(15);
  10123. wPtr(0, (&g_13241) + 6213);
  10124. }
  10125. UI::0x1DA7E41A(0f);
  10126. if (getElem(num3, (&g_13241) + 4377, 4) != 0)
  10127. {
  10128. UI::CLEAR_ADDITIONAL_TEXT(9, 0);
  10129. setElem(0, num3, (&g_13241) + 4377, 4);
  10130. }
  10131. if (getElem(num3, (&g_13241) + 4370, 4) != 0)
  10132. {
  10133. GRAPHICS::SET_STREAMED_TEXTURE_DICT_AS_NO_LONGER_NEEDED("CommonMenu");
  10134. setElem(0, num3, (&g_13241) + 4370, 4);
  10135. }
  10136. if (A_0 != null)
  10137. {
  10138. sub_D160(getElemPtr(num3, (&g_13241) + 4409, 40));
  10139. setElem(0, num3, (&g_13241) + 4470, 4);
  10140. }
  10141. else
  10142. {
  10143. setElem(0, num3, (&g_13241) + 4470, 4);
  10144. }
  10145. }
  10146. }
  10147.  
  10148. void sub_D160(var A_0)
  10149. {
  10150. if (rPtr((A_0) + 36) != 0)
  10151. {
  10152. if (GRAPHICS::HAS_SCALEFORM_MOVIE_LOADED(rPtr(A_0)) != 0)
  10153. {
  10154. GRAPHICS::SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(A_0);
  10155. }
  10156. wPtr(0, A_0);
  10157. wPtr(0, (A_0) + 36);
  10158. }
  10159. }
  10160.  
  10161. var sub_D189()
  10162. {
  10163. if (((PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) == 0) && (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)) && (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0))
  10164. {
  10165. l_130 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  10166. if (l_130 != 0)
  10167. {
  10168. var num1 = VEHICLE::IS_VEHICLE_DRIVEABLE(l_130, 0);
  10169. var num6 = num1 & (FIRE::IS_ENTITY_ON_FIRE(l_130) == 0);
  10170. if (((num6 & (ENTITY::IS_ENTITY_UPSIDEDOWN(l_130) == 0)) != 0) && (sub_2A44(&l_130) != 0))
  10171. {
  10172. sub_5B4(&l_85, 1);
  10173. return 1;
  10174. }
  10175. }
  10176. }
  10177. return 0;
  10178. }
  10179.  
  10180. void sub_D1FE()
  10181. {
  10182. if (l_105 == 0)
  10183. {
  10184. bool flag1 = sub_F6B7(l_87, 1) == 0;
  10185. if ((flag1 & (sub_F6B7(l_87, 16) == 0)) && (sub_D286(0) != 0))
  10186. {
  10187. sub_F4AD(&l_87, 1);
  10188. }
  10189. bool flag2 = sub_F6B7(l_87, 4) == 0;
  10190. if ((flag2 & (sub_F6B7(l_87, 64) == 0)) && (sub_D286(2) != 0))
  10191. {
  10192. sub_F4AD(&l_87, 4);
  10193. }
  10194. bool flag3 = sub_F6B7(l_87, 8) == 0;
  10195. if ((flag3 & (sub_F6B7(l_87, 128) == 0)) && (sub_D286(1) != 0))
  10196. {
  10197. sub_F4AD(&l_87, 8);
  10198. }
  10199. }
  10200. }
  10201.  
  10202. var sub_D286(var A_0)
  10203. {
  10204. var num3;
  10205. var num6;
  10206. struct _s = sub_58CB(A_0);
  10207. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  10208. struct _s = ENTITY::GET_ENTITY_COORDS(l_130, 1);
  10209. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  10210. if (getElem(A_0, &l_339, 4) == 0)
  10211. {
  10212. struct _s = &num3;
  10213. struct _s = &num6;
  10214. setElem(WORLDPROBE::0x4559460A(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0.25f, 511, l_130, 3), A_0, &l_339, 4);
  10215. }
  10216. else
  10217. {
  10218. var num9;
  10219. var num10;
  10220. var num13;
  10221. var num16;
  10222. var num2 = WORLDPROBE::0xF3C2875A(getElem(A_0, &l_339, 4), &num9, &num10, &num13, &num16);
  10223. if (num2 == 2)
  10224. {
  10225. setElem(0, A_0, &l_339, 4);
  10226. if (num9 != 0)
  10227. {
  10228. sub_D32A(A_0);
  10229. return 0;
  10230. }
  10231. return 1;
  10232. }
  10233. if ((num2 != 1) && (num2 == 0))
  10234. {
  10235. setElem(0, A_0, &l_339, 4);
  10236. }
  10237. }
  10238. return 0;
  10239. }
  10240.  
  10241. void sub_D32A(var A_0)
  10242. {
  10243. switch (A_0)
  10244. {
  10245. case 0:
  10246. if (sub_F6B7(l_87, 16) == 0)
  10247. {
  10248. sub_F4AD(&l_87, 16);
  10249. sub_5B4(&l_87, 1);
  10250. }
  10251. break;
  10252. case 1:
  10253. if (sub_F6B7(l_87, 128) == 0)
  10254. {
  10255. sub_F4AD(&l_87, 128);
  10256. sub_5B4(&l_87, 8);
  10257. }
  10258. break;
  10259. case 2:
  10260. if (sub_F6B7(l_87, 64) == 0)
  10261. {
  10262. sub_F4AD(&l_87, 64);
  10263. sub_5B4(&l_87, 4);
  10264. }
  10265. break;
  10266. case 3:
  10267. if (sub_F6B7(l_87, 32) == 0)
  10268. {
  10269. sub_F4AD(&l_87, 32);
  10270. sub_5B4(&l_87, 2);
  10271. }
  10272. break;
  10273. }
  10274. }
  10275.  
  10276. void sub_D3CA()
  10277. {
  10278. var num1 = sub_D6BC();
  10279. if ((num1 & (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) == 0)) != 0)
  10280. {
  10281. l_326 = 9;
  10282. sub_D5E6(l_127);
  10283. sub_D5E6(PLAYER::PLAYER_PED_ID());
  10284. sub_D405();
  10285. sub_E7E(&l_135);
  10286. }
  10287. }
  10288.  
  10289. void sub_D405()
  10290. {
  10291. var num3;
  10292. var num10;
  10293. if (CAM::DOES_CAM_EXIST(l_133) == 0)
  10294. {
  10295. l_133 = CAM::CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", 1);
  10296. }
  10297. if (CAM::DOES_CAM_EXIST(l_134) == 0)
  10298. {
  10299. l_134 = CAM::CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", 1);
  10300. }
  10301. sub_D49A(&num3, &num10);
  10302. struct _s = &num3;
  10303. CAM::SET_CAM_COORD(l_133, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  10304. struct _s = (&num3) + 3;
  10305. CAM::SET_CAM_ROT(l_133, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2);
  10306. CAM::SET_CAM_FOV(l_133, rPtr((&num3) + 6));
  10307. struct _s = &num10;
  10308. CAM::SET_CAM_COORD(l_134, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  10309. struct _s = (&num10) + 3;
  10310. CAM::SET_CAM_ROT(l_134, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2);
  10311. CAM::SET_CAM_FOV(l_134, rPtr((&num10) + 6));
  10312. CAM::SET_CAM_ACTIVE(l_133, 1);
  10313. CAM::SET_CAM_ACTIVE(l_134, 0);
  10314. CAM::RENDER_SCRIPT_CAMS(1, 0, 3000, 1, 0);
  10315. }
  10316.  
  10317. void sub_D49A(var A_0, var A_1)
  10318. {
  10319. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  10320. {
  10321. setStruct(1972.248f, 3804.805f, 36.7174f, 3, A_0);
  10322. setStruct(-19.6476f, 0f, -45.6158f, 3, (A_0) + 12);
  10323. wPtr(50f, (A_0) + 24);
  10324. setStruct(1970.194f, 3807.541f, 35.5247f, 3, A_1);
  10325. setStruct(-15.8717f, 0f, 41.6556f, 3, (A_1) + 12);
  10326. wPtr(50f, (A_1) + 24);
  10327. }
  10328. else if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  10329. {
  10330. setStruct(-823.9435f, 186.8976f, 75.5221f, 3, A_0);
  10331. setStruct(-18.973f, 0f, -179.5878f, 3, (A_0) + 12);
  10332. wPtr(50f, (A_0) + 24);
  10333. setStruct(-828.0038f, 179.5113f, 75.7418f, 3, A_1);
  10334. setStruct(14.0219f, 0f, -107.3339f, 3, (A_1) + 12);
  10335. wPtr(50f, (A_1) + 24);
  10336. }
  10337. else if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  10338. {
  10339. setStruct(-20.162f, -1443.916f, 31.9468f, 3, A_0);
  10340. setStruct(-12.0736f, 0f, -130.562f, 3, (A_0) + 12);
  10341. wPtr(50f, (A_0) + 24);
  10342. setStruct(-15.925f, -1446.92f, 31.9534f, 3, A_1);
  10343. setStruct(-10.3101f, 0f, 34.3879f, 3, (A_1) + 12);
  10344. wPtr(50f, (A_1) + 24);
  10345. }
  10346. }
  10347.  
  10348. void sub_D5E6(var A_0)
  10349. {
  10350. if (PED::IS_PED_INJURED(A_0) == 0)
  10351. {
  10352. var num3;
  10353. AI::CLEAR_SEQUENCE_TASK(&num3);
  10354. AI::OPEN_SEQUENCE_TASK(&num3);
  10355. if (PED::IS_PED_IN_ANY_VEHICLE(A_0, 0) != 0)
  10356. {
  10357. AI::TASK_LEAVE_ANY_VEHICLE(0, 0, 0x1000000);
  10358. }
  10359. struct _s = sub_D645();
  10360. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1f, -1, 0.5f, 8192, 0x471C4000);
  10361. AI::CLOSE_SEQUENCE_TASK(num3);
  10362. AI::TASK_PERFORM_SEQUENCE(A_0, num3);
  10363. AI::CLEAR_SEQUENCE_TASK(&num3);
  10364. }
  10365. }
  10366.  
  10367. var sub_D645()
  10368. {
  10369. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  10370. {
  10371. return buildStruct(1972.16f, 3817.47f, 32.43f);
  10372. }
  10373. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  10374. {
  10375. return buildStruct(-819.88f, 177.47f, 70.63f);
  10376. }
  10377. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  10378. {
  10379. return buildStruct(-14.57f, -1437.56f, 30.12f);
  10380. }
  10381. return buildStruct(0f, 0f, 0f);
  10382. }
  10383.  
  10384. var sub_D6BC()
  10385. {
  10386. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  10387. struct _s = sub_D736();
  10388. return (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) < (sub_D6DF() * sub_D6DF()));
  10389. }
  10390.  
  10391. var sub_D6DF()
  10392. {
  10393. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  10394. {
  10395. return 14f;
  10396. }
  10397. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  10398. {
  10399. return 20.75f;
  10400. }
  10401. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  10402. {
  10403. return 10f;
  10404. }
  10405. return 0f;
  10406. }
  10407.  
  10408. var sub_D736()
  10409. {
  10410. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(2)) != 0)
  10411. {
  10412. return buildStruct(1983.22f, 3820.64f, 31.37f);
  10413. }
  10414. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(0)) != 0)
  10415. {
  10416. return buildStruct(-827.04f, 172.26f, 69.48f);
  10417. }
  10418. if (PED::IS_PED_MODEL(PLAYER::PLAYER_PED_ID(), sub_C5C(1)) != 0)
  10419. {
  10420. return buildStruct(-16.98f, -1451.59f, 29.57f);
  10421. }
  10422. return buildStruct(0f, 0f, 0f);
  10423. }
  10424.  
  10425. void sub_D7AD()
  10426. {
  10427. sub_B6AE();
  10428. sub_E0D3();
  10429. if (sub_652(&l_138) == 0)
  10430. {
  10431. sub_F453(&l_138);
  10432. }
  10433. bool flag1 = SCRIPT::0x029D3841(0x9F4E8127) > 0;
  10434. if (!(flag1 | (SCRIPT::0x029D3841(0xB618AEBB) > 0)))
  10435. {
  10436. if (sub_652(&l_147) == 0)
  10437. {
  10438. sub_F453(&l_147);
  10439. }
  10440. var num1 = sub_D189();
  10441. if ((num1 & PED::IS_PED_IN_VEHICLE(l_127, l_130, 0)) != 0)
  10442. {
  10443. var num6 = VEHICLE::IS_VEHICLE_STOPPED(l_130);
  10444. if ((num6 & VEHICLE::IS_VEHICLE_ON_ALL_WHEELS(l_130)) != 0)
  10445. {
  10446. var num7 = sub_DB0F();
  10447. var num8 = num7 & (sub_D6BC() == 0);
  10448. if ((num8 & (sub_DAC4() == 0)) != 0)
  10449. {
  10450. sub_D9FB();
  10451. if (sub_5D9(&l_147) > 2.5f)
  10452. {
  10453. struct _s = ENTITY::GET_ENTITY_COORDS(l_130, 0);
  10454. l_118 = PATHFIND::ADD_NAVMESH_BLOCKING_OBJECT(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 40f, 40f, 40f, ENTITY::GET_ENTITY_HEADING(l_130), 0, 7);
  10455. PLAYER::SET_PLAYER_CONTROL(PLAYER::PLAYER_ID(), 0, 256);
  10456. sub_F4AD(&l_85, 2048);
  10457. l_131 = 0;
  10458. PED::ADD_RELATIONSHIP_GROUP("ProstituteInPlay", &l_338);
  10459. PED::SET_RELATIONSHIP_BETWEEN_GROUPS(1, l_338, 0x6F0783F5);
  10460. PED::SET_PED_RELATIONSHIP_GROUP_HASH(l_127, l_338);
  10461. sub_F6C6("Moving into sex state eCurrentProstituteState = PROSTITUTE_CHOOSING_SERVICE ");
  10462. sub_5B4(&l_85, 1024);
  10463. l_335 = -15;
  10464. sub_3BE2();
  10465. sub_D9CA();
  10466. l_116 = 3;
  10467. l_326 = 8;
  10468. }
  10469. }
  10470. else
  10471. {
  10472. bool flag2 = AUDIO::IS_ANY_SPEECH_PLAYING(PLAYER::PLAYER_PED_ID()) == 0;
  10473. bool flag3 = flag2 & (sub_5D9(&l_138) > 15f);
  10474. if (flag3 & sub_D9A9())
  10475. {
  10476. if (sub_F6B7(l_86, 4096) == 0)
  10477. {
  10478. sub_BD1C("PROS_SPOT", -1);
  10479. sub_F4AD(&l_86, 4096);
  10480. }
  10481. sub_D97D();
  10482. sub_E7E(&l_138);
  10483. }
  10484. sub_E7E(&l_147);
  10485. }
  10486. }
  10487. else
  10488. {
  10489. sub_E7E(&l_147);
  10490. sub_D956();
  10491. }
  10492. }
  10493. else if (sub_D6BC() == 0)
  10494. {
  10495. AI::CLEAR_PED_TASKS(l_127);
  10496. sub_F46B(0);
  10497. }
  10498. }
  10499. }
  10500.  
  10501. void sub_D956()
  10502. {
  10503. l_87 = 0;
  10504. setElem(0, 0, &l_339, 4);
  10505. setElem(0, 1, &l_339, 4);
  10506. setElem(0, 2, &l_339, 4);
  10507. setElem(0, 3, &l_339, 4);
  10508. }
  10509.  
  10510. void sub_D97D()
  10511. {
  10512. if ((PED::IS_PED_INJURED(l_127) == 0) && (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0))
  10513. {
  10514. AUDIO::0x5C57B85D(l_127, "HOOKER_SECLUDED", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  10515. }
  10516. }
  10517.  
  10518. var sub_D9A9()
  10519. {
  10520. if (sub_F6B7(l_87, 256) == 0)
  10521. {
  10522. return 1;
  10523. }
  10524. return sub_F6B7(l_87, 32);
  10525. }
  10526.  
  10527. void sub_D9CA()
  10528. {
  10529. if (sub_10B44() != 0)
  10530. {
  10531. PED::SET_PED_CONFIG_FLAG(l_127, 229, 1);
  10532. PED::SET_PED_CONFIG_FLAG(l_127, 26, 1);
  10533. PED::SET_PED_CONFIG_FLAG(l_127, 115, 1);
  10534. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_127, 1);
  10535. }
  10536. }
  10537.  
  10538. void sub_D9FB()
  10539. {
  10540. if ((sub_F6B7(l_85, 0x200000) == 0) && (GAMEPLAY::GET_GAME_TIMER() > l_117))
  10541. {
  10542. if (l_131 == 0)
  10543. {
  10544. var num3;
  10545. var num6;
  10546. var num9;
  10547. struct _s = ENTITY::GET_ENTITY_COORDS(l_130, 1);
  10548. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  10549. struct _s = &num3;
  10550. GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), &num9);
  10551. wPtr(num9 + (0.15f), (&num3) + 2);
  10552. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_130, 0f, 0f, -2f);
  10553. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  10554. struct _s = &num3;
  10555. struct _s = &num6;
  10556. l_131 = WORLDPROBE::0x591EA833(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2f, 511, l_130, 7);
  10557. }
  10558. else
  10559. {
  10560. var num10;
  10561. var num11;
  10562. var num12;
  10563. var num15;
  10564. var num18;
  10565. if (WORLDPROBE::0x4301E10C(l_131, &num11, &num12, &num15, &num10, &num18) == 2)
  10566. {
  10567. if (num11 != 0)
  10568. {
  10569. bool flag1 = num10 == 0xA9BC4217;
  10570. bool flag2 = flag1 | (num10 == 0x72C668B6);
  10571. if (flag2 | (num10 == 0x7EDC5571))
  10572. {
  10573. sub_E7E(&l_147);
  10574. }
  10575. }
  10576. l_117 = GAMEPLAY::GET_GAME_TIMER() + 1500;
  10577. l_131 = 0;
  10578. }
  10579. }
  10580. }
  10581. }
  10582.  
  10583. var sub_DAC4()
  10584. {
  10585. var num3 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  10586. if ((VEHICLE::IS_VEHICLE_DRIVEABLE(num3, 0) != 0) && (VEHICLE::IS_VEHICLE_SEAT_FREE(num3, 0) == 0))
  10587. {
  10588. var num1 = ENTITY::IS_ENTITY_IN_WATER(PLAYER::PLAYER_PED_ID());
  10589. if ((num1 | ENTITY::IS_ENTITY_IN_WATER(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0))) != 0)
  10590. {
  10591. return 1;
  10592. }
  10593. }
  10594. return 0;
  10595. }
  10596.  
  10597. var sub_DB0F()
  10598. {
  10599. if (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0)
  10600. {
  10601. var num3;
  10602. var num4;
  10603. var num7;
  10604. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)
  10605. {
  10606. l_130 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  10607. }
  10608. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  10609. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num4);
  10610. struct _s = &num4;
  10611. var num1 = AI::0x0FB138A5(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), sub_2110(0), 12f, 0);
  10612. if (num1 == 0)
  10613. {
  10614. struct _s = &num4;
  10615. }
  10616. if ((num1 | AI::0x0FB138A5(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), sub_2110(1), 12f, 0)) != 0)
  10617. {
  10618. return 0;
  10619. }
  10620. if (sub_E0C8() != 0)
  10621. {
  10622. return 0;
  10623. }
  10624. if (sub_E001(l_130, &num7) != 0)
  10625. {
  10626. struct _s = &num7;
  10627. if (sub_DF1B(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) == 0)
  10628. {
  10629. struct _s = &num4;
  10630. bool flag1 = sub_DE08(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) == 0;
  10631. if (!flag1)
  10632. {
  10633. struct _s = &num4;
  10634. }
  10635. if (flag1 | sub_DCA0(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)))
  10636. {
  10637. return 0;
  10638. }
  10639. }
  10640. }
  10641. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  10642. if (sub_2A02(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), (30f * 0.5f)) != 0)
  10643. {
  10644. return 0;
  10645. }
  10646. if (VEHICLE::0xAB0E79EB(l_127, l_130, 0, 0, 0) == 0)
  10647. {
  10648. return 0;
  10649. }
  10650. PED::SET_SCENARIO_PEDS_TO_BE_RETURNED_BY_NEXT_COMMAND(1);
  10651. struct _s = &num4;
  10652. if (PED::GET_CLOSEST_PED(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 20f, 1, 1, &num3, 0, 1, -1) != 0)
  10653. {
  10654. if (ENTITY::DOES_ENTITY_EXIST(num3) != 0)
  10655. {
  10656. if ((ENTITY::IS_ENTITY_DEAD(num3) == 0) && (ENTITY::HAS_ENTITY_CLEAR_LOS_TO_ENTITY(num3, l_130, 17) != 0))
  10657. {
  10658. return 0;
  10659. }
  10660. }
  10661. else
  10662. {
  10663. sub_F6C6("NO VEHICLES FOUND");
  10664. }
  10665. }
  10666. if (INTERIOR::GET_INTERIOR_FROM_ENTITY(PLAYER::PLAYER_PED_ID()) != 0)
  10667. {
  10668. sub_F6C6("IN AN INTERIOR");
  10669. return 0;
  10670. }
  10671. if (sub_DC61() != 0)
  10672. {
  10673. return 0;
  10674. }
  10675. }
  10676. return 1;
  10677. }
  10678.  
  10679. var sub_DC61()
  10680. {
  10681. sub_F4AD(&l_87, 256);
  10682. if (sub_F6B7(l_87, 2) == 0)
  10683. {
  10684. if (sub_D286(3) != 0)
  10685. {
  10686. sub_F4AD(&l_87, 2);
  10687. sub_5B4(&l_87, 32);
  10688. }
  10689. return 1;
  10690. }
  10691. sub_D1FE();
  10692. return 0;
  10693. }
  10694.  
  10695. var sub_DCA0(var A_0, var A_1, var A_2)
  10696. {
  10697. struct _s = &A_0;
  10698. bool flag1 = SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 491.76f, -515.73f, 29.51f) <= 12f;
  10699. if (!flag1)
  10700. {
  10701. struct _s = &A_0;
  10702. }
  10703. bool flag2 = flag1 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1453.385f, -594.2627f, 29.7966f) <= 12f);
  10704. if (!flag2)
  10705. {
  10706. struct _s = &A_0;
  10707. }
  10708. bool flag3 = flag2 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -633.6086f, -332.3337f, 33.81f) <= 25f);
  10709. if (!flag3)
  10710. {
  10711. struct _s = &A_0;
  10712. }
  10713. bool flag4 = flag3 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1493.191f, -693.9906f, 26.0665f) <= 25f);
  10714. if (!flag4)
  10715. {
  10716. struct _s = &A_0;
  10717. }
  10718. bool flag5 = flag4 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1512.938f, -675.6082f, 27.4202f) <= 25f);
  10719. if (!flag5)
  10720. {
  10721. struct _s = &A_0;
  10722. }
  10723. bool flag6 = flag5 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1388.642f, -1342.266f, 3.1626f) <= 25f);
  10724. if (!flag6)
  10725. {
  10726. struct _s = &A_0;
  10727. }
  10728. bool flag7 = flag6 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 50.2024f, -1392.306f, 28.4166f) <= 12f);
  10729. if (!flag7)
  10730. {
  10731. struct _s = &A_0;
  10732. }
  10733. bool flag8 = flag7 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 25.9811f, -1392.289f, 28.3356f) <= 12f);
  10734. if (!flag8)
  10735. {
  10736. struct _s = &A_0;
  10737. }
  10738. bool flag9 = flag8 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 10.0435f, -1391.596f, 28.3074f) <= 12f);
  10739. if (!flag9)
  10740. {
  10741. struct _s = &A_0;
  10742. }
  10743. if (flag9 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1196.6f, -519.6772f, 31.9742f) <= 12f))
  10744. {
  10745. return 1;
  10746. }
  10747. return 0;
  10748. }
  10749.  
  10750. var sub_DE08(var A_0, var A_1, var A_2)
  10751. {
  10752. struct _s = &A_0;
  10753. bool flag1 = SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1582.782f, 5168.163f, 18.5615f) <= 15f;
  10754. if (!flag1)
  10755. {
  10756. struct _s = &A_0;
  10757. }
  10758. bool flag2 = flag1 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1445.73f, -640.8375f, 28.7804f) <= 15f);
  10759. if (!flag2)
  10760. {
  10761. struct _s = &A_0;
  10762. }
  10763. bool flag3 = flag2 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -348.7544f, 292.5813f, 83.9843f) <= 15f);
  10764. if (!flag3)
  10765. {
  10766. struct _s = &A_0;
  10767. }
  10768. bool flag4 = flag3 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -273f, 317.8898f, 92.2549f) <= 15f);
  10769. if (!flag4)
  10770. {
  10771. struct _s = &A_0;
  10772. }
  10773. bool flag5 = flag4 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1627.935f, -1083.443f, 3.2819f) <= 40f);
  10774. if (!flag5)
  10775. {
  10776. struct _s = &A_0;
  10777. }
  10778. bool flag6 = flag5 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1661.098f, -1057.73f, 2.5729f) <= 40f);
  10779. if (!flag6)
  10780. {
  10781. struct _s = &A_0;
  10782. }
  10783. if (flag6 | (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -1518.358f, -553.8981f, 32.1463f) <= 15f))
  10784. {
  10785. sub_F4AD(&l_85, 0x200000);
  10786. return 1;
  10787. }
  10788. sub_5B4(&l_85, 0x200000);
  10789. return 0;
  10790. }
  10791.  
  10792. var sub_DF1B(var A_0, var A_1, var A_2)
  10793. {
  10794. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 0);
  10795. var num3 = PATHFIND::GET_NTH_CLOSEST_VEHICLE_NODE_ID(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1, 1, 0x40400000, 0);
  10796. PATHFIND::GET_VEHICLE_NODE_POSITION(num3, &A_0);
  10797. if (PATHFIND::0xEE4B1219(num3) != 0)
  10798. {
  10799. if (PATHFIND::0x56737A3C(num3) == 0)
  10800. {
  10801. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 0);
  10802. struct _s = &A_0;
  10803. if (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) > 400f)
  10804. {
  10805. return 1;
  10806. }
  10807. }
  10808. else
  10809. {
  10810. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 0);
  10811. struct _s = &A_0;
  10812. if (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) > 56.25f)
  10813. {
  10814. return 1;
  10815. }
  10816. }
  10817. }
  10818. else if (PATHFIND::0x56737A3C(num3) == 0)
  10819. {
  10820. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 0);
  10821. struct _s = &A_0;
  10822. if (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) > 400f)
  10823. {
  10824. return 1;
  10825. }
  10826. }
  10827. else
  10828. {
  10829. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 0);
  10830. PATHFIND::GET_VEHICLE_NODE_POSITION(PATHFIND::GET_NTH_CLOSEST_VEHICLE_NODE_ID(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1, 8, 0x40400000, 0), &A_0);
  10831. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 0);
  10832. struct _s = &A_0;
  10833. if (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) > 400f)
  10834. {
  10835. return 1;
  10836. }
  10837. }
  10838. return 0;
  10839. }
  10840.  
  10841. var sub_E001(var A_0, var A_1)
  10842. {
  10843. var num3;
  10844. initArray(&num3, 4);
  10845. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(A_0, 2f, 0f, 0f);
  10846. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(0, &num3, 12));
  10847. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(A_0, -2f, 0f, 0f);
  10848. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(1, &num3, 12));
  10849. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(A_0, 0f, 2f, 0f);
  10850. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(2, &num3, 12));
  10851. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(A_0, 0f, -2f, 0f);
  10852. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(3, &num3, 12));
  10853. struct _s = getElemPtr(0, &num3, 12);
  10854. if (PATHFIND::GET_CLOSEST_MAJOR_VEHICLE_NODE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_1, 0x40400000, 0) != 0)
  10855. {
  10856. return 1;
  10857. }
  10858. struct _s = getElemPtr(1, &num3, 12);
  10859. if (PATHFIND::GET_CLOSEST_MAJOR_VEHICLE_NODE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_1, 0x40400000, 0) != 0)
  10860. {
  10861. return 1;
  10862. }
  10863. struct _s = getElemPtr(2, &num3, 12);
  10864. if (PATHFIND::GET_CLOSEST_MAJOR_VEHICLE_NODE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_1, 0x40400000, 0) != 0)
  10865. {
  10866. return 1;
  10867. }
  10868. struct _s = getElemPtr(3, &num3, 12);
  10869. if (PATHFIND::GET_CLOSEST_MAJOR_VEHICLE_NODE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_1, 0x40400000, 0) != 0)
  10870. {
  10871. return 1;
  10872. }
  10873. return 0;
  10874. }
  10875.  
  10876. var sub_E0C8()
  10877. {
  10878. return g_59079;
  10879. }
  10880.  
  10881. void sub_E0D3()
  10882. {
  10883. if (sub_F6B7(l_85, 128) == 0)
  10884. {
  10885. sub_E112(39, 1);
  10886. sub_E112(40, 1);
  10887. sub_E112(41, 1);
  10888. sub_E112(42, 1);
  10889. sub_E112(43, 1);
  10890. sub_F4AD(&l_85, 128);
  10891. }
  10892. }
  10893.  
  10894. void sub_E112(var A_0, var A_1)
  10895. {
  10896. if (A_1 != null)
  10897. {
  10898. if (sub_E4C2(A_0, 2, 1) == 0)
  10899. {
  10900. sub_E45A(A_0, 2, 1);
  10901. }
  10902. }
  10903. else if (sub_E4C2(A_0, 2, 1) != 0)
  10904. {
  10905. sub_E149(A_0, 2, 1);
  10906. }
  10907. }
  10908.  
  10909. void sub_E149(var A_0, var A_1, var A_2)
  10910. {
  10911. if (A_2 != null)
  10912. {
  10913. GAMEPLAY::CLEAR_BIT(getElemPtr(A_0, (&g_80929) + 1015, 4), A_1);
  10914. }
  10915. else if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  10916. {
  10917. if (sub_4B6E() == 0)
  10918. {
  10919. var num3 = sub_4370(sub_E1B1(A_0), -1, 0);
  10920. GAMEPLAY::CLEAR_BIT(&num3, A_1);
  10921. sub_4305(sub_E1B1(A_0), num3, -1, 1);
  10922. }
  10923. }
  10924. else
  10925. {
  10926. GAMEPLAY::CLEAR_BIT(getElemPtr(A_0, (&g_86838) + 668, 4), A_1);
  10927. }
  10928. }
  10929.  
  10930. var sub_E1B1(var A_0)
  10931. {
  10932. switch (A_0)
  10933. {
  10934. case 0:
  10935. return 813;
  10936. case 1:
  10937. return 814;
  10938. case 2:
  10939. return 815;
  10940. case 3:
  10941. return 816;
  10942. case 4:
  10943. return 817;
  10944. case 5:
  10945. return 818;
  10946. case 6:
  10947. return 819;
  10948. case 7:
  10949. return 820;
  10950. case 8:
  10951. return 821;
  10952. case 9:
  10953. return 822;
  10954. case 10:
  10955. return 823;
  10956. case 11:
  10957. return 824;
  10958. case 12:
  10959. return 825;
  10960. case 13:
  10961. return 826;
  10962. case 14:
  10963. return 827;
  10964. case 15:
  10965. return 829;
  10966. case 16:
  10967. return 830;
  10968. case 17:
  10969. return 831;
  10970. case 18:
  10971. return 832;
  10972. case 19:
  10973. return 833;
  10974. case 20:
  10975. return 834;
  10976. case 21:
  10977. return 835;
  10978. case 22:
  10979. return 836;
  10980. case 23:
  10981. return 837;
  10982. case 24:
  10983. return 838;
  10984. case 25:
  10985. return 839;
  10986. case 26:
  10987. return 840;
  10988. case 27:
  10989. return 841;
  10990. case 28:
  10991. return 842;
  10992. case 29:
  10993. return 843;
  10994. case 30:
  10995. return 844;
  10996. case 31:
  10997. return 845;
  10998. case 32:
  10999. return 846;
  11000. case 33:
  11001. return 847;
  11002. case 34:
  11003. return 848;
  11004. case 35:
  11005. return 849;
  11006. case 36:
  11007. return 850;
  11008. case 37:
  11009. return 851;
  11010. case 38:
  11011. return 852;
  11012. case 39:
  11013. return 853;
  11014. case 40:
  11015. return 857;
  11016. case 41:
  11017. return 858;
  11018. case 42:
  11019. return 859;
  11020. case 43:
  11021. return 860;
  11022. }
  11023. return 1948;
  11024. }
  11025.  
  11026. void sub_E45A(var A_0, var A_1, var A_2)
  11027. {
  11028. if (A_2 != null)
  11029. {
  11030. GAMEPLAY::SET_BIT(getElemPtr(A_0, (&g_80929) + 1015, 4), A_1);
  11031. }
  11032. else if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  11033. {
  11034. if (sub_4B6E() == 0)
  11035. {
  11036. var num3 = sub_4370(sub_E1B1(A_0), -1, 0);
  11037. GAMEPLAY::SET_BIT(&num3, A_1);
  11038. sub_4305(sub_E1B1(A_0), num3, -1, 1);
  11039. }
  11040. }
  11041. else
  11042. {
  11043. GAMEPLAY::SET_BIT(getElemPtr(A_0, (&g_86838) + 668, 4), A_1);
  11044. }
  11045. }
  11046.  
  11047. var sub_E4C2(var A_0, var A_1, var A_2)
  11048. {
  11049. if (A_2 != null)
  11050. {
  11051. return GAMEPLAY::IS_BIT_SET(getElem(A_0, (&g_80929) + 1015, 4), A_1);
  11052. }
  11053. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  11054. {
  11055. if (sub_4B6E() == 0)
  11056. {
  11057. return GAMEPLAY::IS_BIT_SET(sub_4370(sub_E1B1(A_0), -1, 0), A_1);
  11058. }
  11059. }
  11060. else
  11061. {
  11062. return GAMEPLAY::IS_BIT_SET(getElem(A_0, (&g_86838) + 668, 4), A_1);
  11063. }
  11064. return 0;
  11065. }
  11066.  
  11067. void sub_E522()
  11068. {
  11069. if (sub_F6B7(l_85, 2) != 0)
  11070. {
  11071. sub_1FA3();
  11072. sub_3033(1);
  11073. }
  11074. sub_2250();
  11075. sub_10666();
  11076. }
  11077.  
  11078. void sub_E545()
  11079. {
  11080. if (ENTITY::IS_ENTITY_DEAD(l_127) == 0)
  11081. {
  11082. var num1 = ENTITY::IS_ENTITY_AT_ENTITY(l_127, PLAYER::PLAYER_PED_ID(), 5f, 5f, 5f, 0, 1, 0);
  11083. if ((num1 | sub_F6B7(l_85, 8192)) != 0)
  11084. {
  11085. CONTROLS::DISABLE_CONTROL_ACTION(0, 92);
  11086. CONTROLS::DISABLE_CONTROL_ACTION(0, 67);
  11087. CONTROLS::SET_INPUT_EXCLUSIVE(0, 49);
  11088. var num6 = PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0);
  11089. if ((num6 & PED::IS_PED_IN_ANY_VEHICLE(l_127, 0)) != 0)
  11090. {
  11091. ENTITY::SET_ENTITY_LOD_DIST(l_127, 50);
  11092. PED::SET_PED_LOD_MULTIPLIER(l_127, 5f);
  11093. if ((sub_F6B7(l_85, 16) != 0) && (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0))
  11094. {
  11095. PLAYER::SET_PLAYER_CAN_DO_DRIVE_BY(PLAYER::PLAYER_ID(), 1);
  11096. sub_5B4(&l_85, 16);
  11097. }
  11098. l_130 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  11099. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_130, 0) != 0)
  11100. {
  11101. var num7 = PED::IS_PED_SITTING_IN_VEHICLE(l_127, l_130);
  11102. if ((num7 & PED::IS_PED_IN_VEHICLE(PLAYER::PLAYER_PED_ID(), l_130, 0)) != 0)
  11103. {
  11104. sub_F6C6("***** prostitute IN VEHICLE****** ");
  11105. if ((sub_F6B7(l_85, 8) != 0) && (STREAMING::HAS_CLIP_SET_LOADED(sub_2B51()) != 0))
  11106. {
  11107. if (sub_E809(l_130) != 0)
  11108. {
  11109. PED::SET_PED_IN_VEHICLE_CONTEXT(l_127, GAMEPLAY::GET_HASH_KEY("MINI_PROSTITUTE_LOW_RESTRICTED_PASSENGER"));
  11110. }
  11111. else
  11112. {
  11113. PED::SET_PED_IN_VEHICLE_CONTEXT(l_127, GAMEPLAY::GET_HASH_KEY("MINI_PROSTITUTE_LOW_PASSENGER"));
  11114. }
  11115. }
  11116. if (sub_10B44() != 0)
  11117. {
  11118. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_127, 0, 0);
  11119. }
  11120. else
  11121. {
  11122. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_127, 1, 1);
  11123. }
  11124. sub_56B0(l_127, 0);
  11125. sub_D97D();
  11126. l_97 = GAMEPLAY::GET_GAME_TIMER();
  11127. sub_E7E(&l_138);
  11128. l_326 = 7;
  11129. }
  11130. else
  11131. {
  11132. sub_F6C6("SOMETHINGS GONE WRONGWITH PROS GETTING INTO VEHICLE , either her or player");
  11133. }
  11134. }
  11135. }
  11136. else
  11137. {
  11138. bool flag1 = sub_E7AD(l_127, PLAYER::PLAYER_PED_ID(), 1) > 11f;
  11139. bool flag2 = flag1 | sub_E78C(20f);
  11140. if (flag2 | (PED::IS_PED_IN_VEHICLE(PLAYER::PLAYER_PED_ID(), l_130, 0) == 0))
  11141. {
  11142. sub_3612(&l_144);
  11143. if (PED::IS_PED_IN_ANY_VEHICLE(l_127, 0) == 0)
  11144. {
  11145. AI::CLEAR_PED_TASKS(l_127);
  11146. sub_F46B(0);
  11147. sub_F6C6("PROS FINISHED SEQUENCE TASK BUT NOT IN VEHICLE");
  11148. sub_2CDE(15);
  11149. }
  11150. }
  11151. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)
  11152. {
  11153. if (VEHICLE::IS_VEHICLE_DRIVEABLE(l_130, 0) == 0)
  11154. {
  11155. l_130 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  11156. }
  11157. else if ((VEHICLE::0xAB0E79EB(l_127, l_130, 0, 0, 0) == 0) && (sub_3536() == 0))
  11158. {
  11159. if (sub_F6B7(l_108, 1) == 0)
  11160. {
  11161. sub_E7E(&l_150);
  11162. sub_F4AD(&l_108, 1);
  11163. }
  11164. else if (sub_5D9(&l_150) > 20f)
  11165. {
  11166. sub_3B5E();
  11167. sub_F6C6("prostitute couldn't get into the car");
  11168. l_326 = 6;
  11169. }
  11170. }
  11171. }
  11172. }
  11173. }
  11174. else if (sub_F6B7(l_108, 1) == 0)
  11175. {
  11176. sub_F6C6("PLAYER out of range for entering VEHICLE or wanted level");
  11177. AI::CLEAR_PED_TASKS(l_127);
  11178. sub_2CDE(15);
  11179. }
  11180. }
  11181. }
  11182.  
  11183. var sub_E78C(var A_0)
  11184. {
  11185. if (sub_652(&l_144) == 0)
  11186. {
  11187. sub_E7E(&l_144);
  11188. }
  11189. return (sub_3785(&l_144) > A_0);
  11190. }
  11191.  
  11192. var sub_E7AD(var A_0, var A_1, var A_2)
  11193. {
  11194. var num3;
  11195. var num6;
  11196. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  11197. {
  11198. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  11199. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  11200. }
  11201. else
  11202. {
  11203. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 0);
  11204. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  11205. }
  11206. if (ENTITY::IS_ENTITY_DEAD(A_1) == 0)
  11207. {
  11208. struct _s = ENTITY::GET_ENTITY_COORDS(A_1, 1);
  11209. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  11210. }
  11211. else
  11212. {
  11213. struct _s = ENTITY::GET_ENTITY_COORDS(A_1, 0);
  11214. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  11215. }
  11216. struct _s = &num3;
  11217. struct _s = &num6;
  11218. return GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_2);
  11219. }
  11220.  
  11221. var sub_E809(var A_0)
  11222. {
  11223. if (VEHICLE::IS_VEHICLE_DRIVEABLE(A_0, 0) != 0)
  11224. {
  11225. switch (VEHICLE::GET_VEHICLE_LAYOUT_HASH(A_0))
  11226. {
  11227. case 0xD158A20D:
  11228. case 0xFDB5DC9C:
  11229. case 0x205A6F50:
  11230. case 0x4163EC9:
  11231. return 1;
  11232. }
  11233. }
  11234. return 0;
  11235. }
  11236.  
  11237. void sub_E846()
  11238. {
  11239. if (sub_EDBC(0) != 0)
  11240. {
  11241. if (sub_F6B7(l_85, 16) == 0)
  11242. {
  11243. PLAYER::SET_PLAYER_CAN_DO_DRIVE_BY(PLAYER::PLAYER_ID(), 0);
  11244. sub_F4AD(&l_85, 16);
  11245. }
  11246. if (sub_652(&l_144) == 0)
  11247. {
  11248. sub_F453(&l_144);
  11249. }
  11250. bool flag1 = sub_3785(&l_144) >= 20f;
  11251. if (flag1 | (ENTITY::IS_ENTITY_AT_ENTITY(l_127, PLAYER::PLAYER_PED_ID(), 3f, 3f, 3f, 0, 1, 0) == 0))
  11252. {
  11253. sub_E7E(&l_144);
  11254. if (sub_F6B7(l_108, 0x80000) != 0)
  11255. {
  11256. sub_3612(&l_144);
  11257. l_326 = 6;
  11258. }
  11259. else
  11260. {
  11261. sub_2250();
  11262. sub_ED13();
  11263. sub_F4AD(&l_108, 0x80000);
  11264. }
  11265. }
  11266. sub_2295(l_127);
  11267. var num1 = ENTITY::IS_ENTITY_AT_ENTITY(l_127, PLAYER::PLAYER_PED_ID(), 3f, 3f, 3f, 0, 1, 0);
  11268. var num6 = num1 | sub_F6B7(l_108, 1);
  11269. var num7 = num6 & (sub_69A8(0) == 0);
  11270. if ((num7 & (sub_E0C8() == 0)) != 0)
  11271. {
  11272. if (VEHICLE::0xAB0E79EB(l_127, l_130, 0, 0, 0) == 0)
  11273. {
  11274. if (sub_3536() == 0)
  11275. {
  11276. if (sub_F6B7(l_108, 1) == 0)
  11277. {
  11278. sub_E7E(&l_150);
  11279. sub_F4AD(&l_108, 1);
  11280. }
  11281. else if (sub_5D9(&l_150) > 10f)
  11282. {
  11283. sub_2250();
  11284. AI::CLEAR_PED_TASKS(l_127);
  11285. sub_F6C6("prostitute couldn't get into the car");
  11286. l_326 = 6;
  11287. }
  11288. }
  11289. }
  11290. else
  11291. {
  11292. sub_E995();
  11293. }
  11294. }
  11295. else if (sub_F422("PROS_ACCEPT") != 0)
  11296. {
  11297. sub_5B4(&l_85, 0x100000);
  11298. UI::CLEAR_HELP(1);
  11299. }
  11300. }
  11301. }
  11302.  
  11303. void sub_E995()
  11304. {
  11305. bool flag1 = l_326 != 5;
  11306. if (flag1 & sub_CBC5(0))
  11307. {
  11308. sub_EB5D();
  11309. var num1 = sub_EA6A(l_107, 1);
  11310. if ((num1 | PLAYER::IS_PLAYER_PRESSING_HORN(PLAYER::PLAYER_ID())) != 0)
  11311. {
  11312. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "HOOKER_REQUEST", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  11313. sub_F4AD(&l_85, 8192);
  11314. sub_E7E(&l_144);
  11315. }
  11316. if (sub_F6B7(l_85, 8192) != 0)
  11317. {
  11318. sub_F374();
  11319. g_19604 = 1;
  11320. sub_3C4C("PROSTITUTES_SOLICIT_SCENE");
  11321. sub_27A1("PROSTITUTES_DRIVE_SCENE");
  11322. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)
  11323. {
  11324. bool flag2 = AI::GET_SCRIPT_TASK_STATUS(l_127, 0x950B6492) != 1;
  11325. if (flag2 & (PED::IS_PED_IN_VEHICLE(l_127, PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 1) == 0))
  11326. {
  11327. AI::TASK_ENTER_VEHICLE(l_127, l_130, -1, 0, 1f, 0x800001, 0);
  11328. }
  11329. }
  11330. l_96 = sub_16FB(PLAYER::PLAYER_PED_ID());
  11331. STREAMING::REQUEST_ANIM_DICT(l_96);
  11332. sub_E7E(&l_138);
  11333. l_326 = 5;
  11334. }
  11335. }
  11336. }
  11337.  
  11338. var sub_EA6A(var A_0, var A_1)
  11339. {
  11340. var num3 = sub_EB22(A_0);
  11341. if (num3 != -1)
  11342. {
  11343. if (PLAYER::IS_PLAYER_PLAYING(PLAYER::GET_PLAYER_INDEX()) == 0)
  11344. {
  11345. return 0;
  11346. }
  11347. if (sub_69A8(0) != 0)
  11348. {
  11349. return 0;
  11350. }
  11351. if (CUTSCENE::IS_CUTSCENE_PLAYING() != 0)
  11352. {
  11353. return 0;
  11354. }
  11355. bool flag1 = num3 > -1;
  11356. if (flag1 & (num3 < 6))
  11357. {
  11358. bool flag2 = getElem(num3, &g_30491, 72) == 1;
  11359. if (flag2 & (rPtr(getElemPtr(num3, &g_30491, 72) + 12) == 1))
  11360. {
  11361. if ((A_1 != null) && (rPtr(getElemPtr(num3, &g_30491, 72) + 64) != 0))
  11362. {
  11363. return 0;
  11364. }
  11365. wPtr(1, getElemPtr(num3, &g_30491, 72) + 16);
  11366. wPtr(1, getElemPtr(num3, &g_30491, 72) + 64);
  11367. return 1;
  11368. }
  11369. if (getElem(num3, &g_30491, 72) == 0)
  11370. {
  11371. }
  11372. if (rPtr(getElemPtr(num3, &g_30491, 72) + 24) == 0)
  11373. {
  11374. }
  11375. }
  11376. }
  11377. return 0;
  11378. }
  11379.  
  11380. var sub_EB22(var A_0)
  11381. {
  11382. if (A_0 >= 0)
  11383. {
  11384. var num3 = 0;
  11385. for (num3 = 0; num3 < 6; num3++)
  11386. {
  11387. if (rPtr(getElemPtr(num3, &g_30491, 72) + 4) == A_0)
  11388. {
  11389. return num3;
  11390. }
  11391. }
  11392. }
  11393. return -1;
  11394. }
  11395.  
  11396. void sub_EB5D()
  11397. {
  11398. if (g_19604 != 0)
  11399. {
  11400. if (UI::IS_PAUSE_MENU_ACTIVE() == 0)
  11401. {
  11402. CONTROLS::DISABLE_CONTROL_ACTION(0, 92);
  11403. CONTROLS::DISABLE_CONTROL_ACTION(0, 67);
  11404. CONTROLS::SET_INPUT_EXCLUSIVE(0, 49);
  11405. if ((sub_F6B7(l_85, 8192) == 0) && (l_107 == -1))
  11406. {
  11407. sub_EBB1(&l_107, 5, "PROS_ACCEPT", 0, 0);
  11408. }
  11409. }
  11410. }
  11411. else
  11412. {
  11413. sub_F374();
  11414. }
  11415. }
  11416.  
  11417. void sub_EBB1(var A_0, var A_1, var A_2, var A_3, var A_4)
  11418. {
  11419. if (SCRIPT::0x029D3841(0x75B7261C) < 1)
  11420. {
  11421. }
  11422. if (STREAMING::STOP_PLAYER_REMAIN_ARCADE() != 0)
  11423. {
  11424. if (rPtr(A_0) != -1)
  11425. {
  11426. sub_ECBC(A_0);
  11427. }
  11428. return;
  11429. }
  11430. if (rPtr(A_0) != -1)
  11431. {
  11432. return;
  11433. }
  11434. var num3 = 0;
  11435. num3 = 0;
  11436. Label_0073:
  11437. if (num3 >= 6)
  11438. {
  11439. return;
  11440. }
  11441. if (getElem(num3, &g_30491, 72) == 0)
  11442. {
  11443. setElem(1, num3, &g_30491, 72);
  11444. wPtr(g_30608, getElemPtr(num3, &g_30491, 72) + 4);
  11445. g_30608++;
  11446. wPtr(0, getElemPtr(num3, &g_30491, 72) + 12);
  11447. wPtr(0, getElemPtr(num3, &g_30491, 72) + 64);
  11448. wPtr(0, getElemPtr(num3, &g_30491, 72) + 16);
  11449. wPtr(A_1, getElemPtr(num3, &g_30491, 72) + 8);
  11450. strcpy(A_2, getElemPtr(num3, &g_30491, 72) + 28, 16);
  11451. wPtr(A_3, getElemPtr(num3, &g_30491, 72) + 20);
  11452. wPtr(SCRIPT::GET_ID_OF_THIS_THREAD(), getElemPtr(num3, &g_30491, 72) + 68);
  11453. wPtr(0, getElemPtr(num3, &g_30491, 72) + 24);
  11454. if (GAMEPLAY::IS_STRING_NULL_OR_EMPTY(A_4) == 0)
  11455. {
  11456. wPtr(1, getElemPtr(num3, &g_30491, 72) + 44);
  11457. strcpy(A_4, getElemPtr(num3, &g_30491, 72) + 48, 16);
  11458. }
  11459. else
  11460. {
  11461. wPtr(0, getElemPtr(num3, &g_30491, 72) + 44);
  11462. }
  11463. wPtr(rPtr(getElemPtr(num3, &g_30491, 72) + 4), A_0);
  11464. }
  11465. else
  11466. {
  11467. num3++;
  11468. goto Label_0073;
  11469. }
  11470. }
  11471.  
  11472. void sub_ECBC(var A_0)
  11473. {
  11474. if (rPtr(A_0) != -1)
  11475. {
  11476. var num3 = sub_EB22(rPtr(A_0));
  11477. if (num3 == -1)
  11478. {
  11479. wPtr(-1, A_0);
  11480. }
  11481. else
  11482. {
  11483. bool flag1 = num3 > -1;
  11484. if ((flag1 & (num3 < 6)) && (getElem(num3, &g_30491, 72) != 0))
  11485. {
  11486. wPtr(1, getElemPtr(num3, &g_30491, 72) + 24);
  11487. wPtr(-1, A_0);
  11488. }
  11489. else
  11490. {
  11491. wPtr(-1, A_0);
  11492. }
  11493. }
  11494. }
  11495. }
  11496.  
  11497. void sub_ED13()
  11498. {
  11499. bool flag1 = ENTITY::DOES_ENTITY_EXIST(l_127) == 0;
  11500. if (!(flag1 | PED::IS_PED_INJURED(l_127)))
  11501. {
  11502. if (PED::IS_PED_IN_ANY_VEHICLE(l_127, 1) != 0)
  11503. {
  11504. AI::TASK_WANDER_STANDARD(l_127, 0x471C4000, 0);
  11505. }
  11506. else if (sub_F6B7(l_85, 0x400000) != 0)
  11507. {
  11508. var num3;
  11509. var num4 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(8, 11);
  11510. AI::OPEN_SEQUENCE_TASK(&num3);
  11511. AI::TASK_PLAY_ANIM(0, sub_21FD(l_324), sub_212A(5), 2f, -2f, -1, 0, 0, 0, 0, 0);
  11512. AI::TASK_PLAY_ANIM(0, sub_21FD(l_324), sub_212A(num4), 8f, -8f, -1, 1, 0, 0, 0, 0);
  11513. AI::CLOSE_SEQUENCE_TASK(num3);
  11514. AI::TASK_PERFORM_SEQUENCE(l_127, num3);
  11515. AI::CLEAR_SEQUENCE_TASK(&num3);
  11516. }
  11517. }
  11518. }
  11519.  
  11520. var sub_EDBC(var A_0)
  11521. {
  11522. if (ENTITY::IS_ENTITY_DEAD(l_127) == 0)
  11523. {
  11524. if (sub_F6B7(l_85, 8192) != 0)
  11525. {
  11526. }
  11527. if (sub_E7AD(l_127, PLAYER::PLAYER_PED_ID(), 1) > 11f)
  11528. {
  11529. return 0;
  11530. }
  11531. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) == 0)
  11532. {
  11533. return 0;
  11534. }
  11535. if ((sub_10B44() != 0) && (VEHICLE::GET_VEHICLE_NUMBER_OF_PASSENGERS(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) > 1))
  11536. {
  11537. return 0;
  11538. }
  11539. if ((A_0 != null) && (ENTITY::GET_ENTITY_SPEED(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) > 2f))
  11540. {
  11541. return 0;
  11542. }
  11543. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  11544. if (sub_2A02(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0x41F00000) != 0)
  11545. {
  11546. bool flag1 = sub_F6B7(l_86, 8192) == 0;
  11547. if (flag1 & (PED::IS_PED_IN_ANY_POLICE_VEHICLE(PLAYER::PLAYER_PED_ID()) == 0))
  11548. {
  11549. sub_BD1C("PROS_COPS", -1);
  11550. sub_F4AD(&l_86, 8192);
  11551. }
  11552. return 0;
  11553. }
  11554. if (sub_D189() != 0)
  11555. {
  11556. return 1;
  11557. }
  11558. if (sub_10B44() == 0)
  11559. {
  11560. sub_EE9A();
  11561. }
  11562. }
  11563. return 0;
  11564. }
  11565.  
  11566. void sub_EE9A()
  11567. {
  11568. if ((PED::IS_PED_INJURED(PLAYER::PLAYER_PED_ID()) == 0) && (sub_F6B7(l_85, 1) == 0))
  11569. {
  11570. bool flag1 = AUDIO::IS_ANY_SPEECH_PLAYING(PLAYER::PLAYER_PED_ID()) == 0;
  11571. if (flag1 & (AUDIO::IS_ANY_SPEECH_PLAYING(l_127) == 0))
  11572. {
  11573. AUDIO::0x5C57B85D(PLAYER::PLAYER_PED_ID(), "HOOKER_CAR_INCORRECT", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");
  11574. sub_F4AD(&l_85, 1);
  11575. }
  11576. }
  11577. }
  11578.  
  11579. void sub_EEEA()
  11580. {
  11581. if (sub_EDBC(0) != 0)
  11582. {
  11583. sub_E995();
  11584. bool flag1 = AI::GET_SCRIPT_TASK_STATUS(l_127, 0xE763797) == 7;
  11585. if (flag1 & (sub_F6B7(l_85, 8192) == 0))
  11586. {
  11587. sub_23E4(1);
  11588. sub_3612(&l_144);
  11589. l_97 = GAMEPLAY::GET_GAME_TIMER();
  11590. sub_F6C6("prostitute proposition player VEHICLE");
  11591. l_326 = 4;
  11592. }
  11593. }
  11594. else
  11595. {
  11596. AI::CLEAR_PED_TASKS(l_127);
  11597. sub_2CDE(15);
  11598. }
  11599. }
  11600.  
  11601. void sub_EF49()
  11602. {
  11603. if (sub_EDBC(0) != 0)
  11604. {
  11605. sub_E995();
  11606. bool flag1 = AI::GET_SCRIPT_TASK_STATUS(l_127, 0xE763797) == 7;
  11607. if (flag1 | sub_F6B7(l_85, 8192))
  11608. {
  11609. l_326 = 3;
  11610. }
  11611. else if (sub_E78C(20f) != 0)
  11612. {
  11613. sub_3612(&l_144);
  11614. sub_F46B(0);
  11615. }
  11616. else
  11617. {
  11618. sub_EFB0();
  11619. }
  11620. }
  11621. else
  11622. {
  11623. AI::CLEAR_PED_TASKS(l_127);
  11624. sub_2CDE(15);
  11625. }
  11626. }
  11627.  
  11628. void sub_EFB0()
  11629. {
  11630. if (ENTITY::DOES_ENTITY_EXIST(l_130) != 0)
  11631. {
  11632. var num3;
  11633. var num6;
  11634. var num9;
  11635. var num12;
  11636. var num15;
  11637. var num18;
  11638. GAMEPLAY::GET_MODEL_DIMENSIONS(ENTITY::GET_ENTITY_MODEL(l_130), &num9, &num6);
  11639. struct _s = &num6;
  11640. struct _s = &num9;
  11641. struct _s = vsub(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  11642. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  11643. struct _s = &num3;
  11644. struct _s = ftov(2f);
  11645. struct _s = vdiv(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  11646. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  11647. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_130, -(num3 + 0.2f), 0f, 0f);
  11648. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num12);
  11649. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_130, num3 + (0.2f), 0f, 0f);
  11650. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num15);
  11651. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  11652. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num18);
  11653. struct _s = &num18;
  11654. struct _s = &num15;
  11655. struct _s = &num18;
  11656. struct _s = &num12;
  11657. if (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) < SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)))
  11658. {
  11659. struct _s = &num15;
  11660. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num12);
  11661. }
  11662. bool flag1 = AI::GET_SCRIPT_TASK_STATUS(l_127, 0x950B6492) != 1;
  11663. bool flag2 = flag1 | (sub_F6B7(l_85, 8192) == 0);
  11664. if (flag2)
  11665. {
  11666. struct _s = &l_124;
  11667. struct _s = &num12;
  11668. }
  11669. if (flag2 & (SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) > 0f))
  11670. {
  11671. var num21;
  11672. if (sub_10B44() != 0)
  11673. {
  11674. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_127, 0, 1);
  11675. sub_F11F(&l_318, sub_21FD(l_324));
  11676. sub_F0EB(&l_318);
  11677. }
  11678. AI::OPEN_SEQUENCE_TASK(&num21);
  11679. var i26 = rPtr((&num12) + 1);
  11680. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(0, num12, i26, rPtr((&num12) + 2), 1f, -1, 1f, 8192, 0x471C4000);
  11681. struct _s = PED::GET_PED_BONE_COORDS(PLAYER::PLAYER_PED_ID(), 31086, 0f, 0f, 0f);
  11682. AI::TASK_TURN_PED_TO_FACE_COORD(0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0);
  11683. AI::CLOSE_SEQUENCE_TASK(num21);
  11684. AI::TASK_PERFORM_SEQUENCE(l_127, num21);
  11685. AI::CLEAR_SEQUENCE_TASK(&num21);
  11686. struct _s = &num12;
  11687. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_124);
  11688. }
  11689. }
  11690. }
  11691.  
  11692. void sub_F0EB(var A_0)
  11693. {
  11694. for (var i = 0; i < rPtr(A_0); i++)
  11695. {
  11696. if (GAMEPLAY::IS_STRING_NULL(getElem(i, A_0, 4)) == 0)
  11697. {
  11698. STREAMING::REQUEST_ANIM_DICT(getElem(i, A_0, 4));
  11699. }
  11700. }
  11701. }
  11702.  
  11703. var sub_F11F(var A_0, var A_1)
  11704. {
  11705. var num3 = 0;
  11706. while (true)
  11707. {
  11708. if (num3 >= rPtr(A_0))
  11709. {
  11710. break;
  11711. }
  11712. if ((GAMEPLAY::IS_STRING_NULL(getElem(num3, A_0, 4)) == 0) && (GAMEPLAY::ARE_STRINGS_EQUAL(getElem(num3, A_0, 4), A_1) != 0))
  11713. {
  11714. return 0;
  11715. }
  11716. num3++;
  11717. }
  11718. var num4 = sub_F184(A_0);
  11719. bool flag1 = num4 < 0;
  11720. if (flag1 | (num4 >= rPtr(A_0)))
  11721. {
  11722. return 0;
  11723. }
  11724. setElem(A_1, num4, A_0, 4);
  11725. return 1;
  11726. }
  11727.  
  11728. var sub_F184(var A_0)
  11729. {
  11730. for (var i = 0; i < rPtr(A_0); i++)
  11731. {
  11732. if (GAMEPLAY::IS_STRING_NULL(getElem(i, A_0, 4)) != 0)
  11733. {
  11734. return i;
  11735. }
  11736. }
  11737. return -1;
  11738. }
  11739.  
  11740. void sub_F1B3()
  11741. {
  11742. if (sub_EDBC(1) != 0)
  11743. {
  11744. if (sub_652(&l_144) == 0)
  11745. {
  11746. sub_F453(&l_144);
  11747. }
  11748. sub_E995();
  11749. var num1 = sub_F435(&l_144, 2f);
  11750. if ((num1 | sub_F6B7(l_85, 8192)) != 0)
  11751. {
  11752. sub_F4AD(&l_85, 2);
  11753. if (sub_CBC5(0) != 0)
  11754. {
  11755. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(PLAYER::PLAYER_PED_ID(), 0);
  11756. PED::SET_PED_CAN_PLAY_AMBIENT_BASE_ANIMS(PLAYER::PLAYER_PED_ID(), 0);
  11757. AI::TASK_LOOK_AT_ENTITY(PLAYER::PLAYER_PED_ID(), l_127, -1, 2048, 4);
  11758. sub_EFB0();
  11759. VEHICLE::REMOVE_VEHICLE_WINDOW(l_130, 0);
  11760. sub_F4AD(&l_85, 4);
  11761. g_19604 = 1;
  11762. l_326 = 2;
  11763. }
  11764. else
  11765. {
  11766. sub_BD1C("PROS_NO_MONEY", -1);
  11767. sub_F268();
  11768. sub_2CDE(0);
  11769. l_327 = 0;
  11770. sub_F4AD(&l_85, 0x800000);
  11771. sub_5B4(&l_85, 4);
  11772. g_19604 = 0;
  11773. }
  11774. }
  11775. }
  11776. }
  11777.  
  11778. void sub_F268()
  11779. {
  11780. if (sub_101A1(64) == 0)
  11781. {
  11782. sub_F287(0, 31);
  11783. sub_60D9(64);
  11784. }
  11785. }
  11786.  
  11787. void sub_F287(var A_0, var A_1)
  11788. {
  11789. if (NETWORK::0xD32FA11F() != 0)
  11790. {
  11791. var num1 = NETWORK::NETWORK_IS_GAME_IN_PROGRESS();
  11792. if ((num1 & sub_F320(PLAYER::PLAYER_ID(), 1)) == 0)
  11793. {
  11794. var num9 = NETWORK::NETWORK_IS_GAME_IN_PROGRESS();
  11795. if ((num9 | A_0) != 0)
  11796. {
  11797. bool flag1 = rPtr((&g_80929) + 1066) == 0;
  11798. if (flag1 & (NETWORK::0x25E2DBA9() == 0))
  11799. {
  11800. var num3 = 18;
  11801. if (GAMEPLAY::IS_XBOX360_VERSION() != 0)
  11802. {
  11803. UI::0x2DB9EAB5("BRSCRWTEX", "BRDISTEX", num3, "BRSHETEXBOX", 0, -1, 0, 0, 1);
  11804. }
  11805. else
  11806. {
  11807. UI::0x2DB9EAB5("BRSCRWTEX", "BRDISTEX", num3, "BRSHETEX", 0, -1, 0, 0, 1);
  11808. }
  11809. g_2399236 = A_1;
  11810. wPtr(1, (&g_80929) + 1066);
  11811. }
  11812. }
  11813. }
  11814. }
  11815. }
  11816.  
  11817. var sub_F320(var A_0, var A_1)
  11818. {
  11819. if (((A_1 == null) || (sub_F34C(A_0) == 0)) && (getElem(A_0, &g_1574052, 1136) == -1))
  11820. {
  11821. return 0;
  11822. }
  11823. return 1;
  11824. }
  11825.  
  11826. var sub_F34C(var A_0)
  11827. {
  11828. return sub_F35A(A_0);
  11829. }
  11830.  
  11831. var sub_F35A(var A_0)
  11832. {
  11833. return GAMEPLAY::IS_BIT_SET(rPtr((getElemPtr(A_0, &g_1574052, 1136) + 52) + 4), 0);
  11834. }
  11835.  
  11836. void sub_F374()
  11837. {
  11838. if (l_107 != -1)
  11839. {
  11840. sub_ECBC(&l_107);
  11841. }
  11842. }
  11843.  
  11844. void sub_F388(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  11845. {
  11846. if (rPtr(getElemPtr(A_1, A_0, 40) + 28) == 1)
  11847. {
  11848. }
  11849. setElem(A_2, A_1, A_0, 40);
  11850. strcpy(A_3, getElemPtr(A_1, A_0, 40) + 4, 24);
  11851. wPtr(1, getElemPtr(A_1, A_0, 40) + 28);
  11852. wPtr(A_4, getElemPtr(A_1, A_0, 40) + 32);
  11853. wPtr(A_5, getElemPtr(A_1, A_0, 40) + 36);
  11854. if (g_59842 == 0)
  11855. {
  11856. if (PED::IS_PED_INJURED(A_2) == 0)
  11857. {
  11858. if (rPtr(getElemPtr(A_1, A_0, 40) + 32) == 0)
  11859. {
  11860. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(A_2, 0);
  11861. }
  11862. else
  11863. {
  11864. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(A_2, 1);
  11865. }
  11866. }
  11867. if (PED::IS_PED_INJURED(A_2) == 0)
  11868. {
  11869. if (rPtr(getElemPtr(A_1, A_0, 40) + 36) == 0)
  11870. {
  11871. PED::SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT(A_2, 0);
  11872. }
  11873. else
  11874. {
  11875. PED::SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT(A_2, 1);
  11876. }
  11877. }
  11878. }
  11879. }
  11880.  
  11881. var sub_F422(var A_0)
  11882. {
  11883. UI::0x00E20F2D(A_0);
  11884. return UI::0xF63A13EC(0);
  11885. }
  11886.  
  11887. var sub_F435(var A_0, var A_1)
  11888. {
  11889. if (sub_6BF2(A_0, A_1) != 0)
  11890. {
  11891. sub_3612(A_0);
  11892. return 1;
  11893. }
  11894. return 0;
  11895. }
  11896.  
  11897. void sub_F453(var A_0)
  11898. {
  11899. if (sub_652(A_0) == 0)
  11900. {
  11901. sub_E7E(A_0);
  11902. }
  11903. }
  11904.  
  11905. void sub_F46B(var A_0)
  11906. {
  11907. sub_3B5E();
  11908. if ((A_0 | (l_105 == 0)) != null)
  11909. {
  11910. var num3 = 1;
  11911. if (sub_10B44() != 0)
  11912. {
  11913. num3 = 0;
  11914. }
  11915. sub_31E2(num3);
  11916. sub_2CDE(14);
  11917. }
  11918. else
  11919. {
  11920. sub_31E2(0);
  11921. sub_2CDE(15);
  11922. }
  11923. }
  11924.  
  11925. void sub_F4AD(var A_0, var A_1)
  11926. {
  11927. sub_F4BD(A_0, A_1);
  11928. }
  11929.  
  11930. void sub_F4BD(var A_0, var A_1)
  11931. {
  11932. wPtr(rPtr(A_0) | A_1, A_0);
  11933. }
  11934.  
  11935. var sub_F4CE()
  11936. {
  11937. if (g_19605 == 0)
  11938. {
  11939. if (sub_10B44() != 0)
  11940. {
  11941. return 0;
  11942. }
  11943. if (sub_F5ED() == 0)
  11944. {
  11945. return 0;
  11946. }
  11947. if (sub_F507() != 0)
  11948. {
  11949. l_327 = 4;
  11950. return 1;
  11951. }
  11952. }
  11953. return 0;
  11954. }
  11955.  
  11956. var sub_F507()
  11957. {
  11958. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  11959. l_129 = VEHICLE::GET_RANDOM_VEHICLE_IN_SPHERE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 15f, 0, 6);
  11960. var num1 = ENTITY::DOES_ENTITY_EXIST(l_129);
  11961. if ((((num1 & (ENTITY::IS_ENTITY_DEAD(l_129) == 0)) != 0) && (VEHICLE::IS_VEHICLE_DRIVEABLE(l_129, 0) != 0)) && (sub_2A44(&l_129) != 0))
  11962. {
  11963. l_128 = VEHICLE::GET_PED_IN_VEHICLE_SEAT(l_129, -1);
  11964. if ((l_128 != 0) && (sub_F5CB(&l_128) != 0))
  11965. {
  11966. var num3 = ENTITY::GET_ENTITY_MODEL(l_129);
  11967. bool flag1 = num3 != 0xC703DB5F;
  11968. if (flag1 & (num3 != 0xC703DB5F))
  11969. {
  11970. if (ENTITY::IS_ENTITY_A_MISSION_ENTITY(l_128) == 0)
  11971. {
  11972. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_128, 1, 0);
  11973. }
  11974. if (ENTITY::IS_ENTITY_A_MISSION_ENTITY(l_129) == 0)
  11975. {
  11976. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_129, 1, 0);
  11977. }
  11978. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_128, 1);
  11979. ENTITY::SET_ENTITY_LOAD_COLLISION_FLAG(l_128, 0);
  11980. ENTITY::SET_ENTITY_LOAD_COLLISION_FLAG(l_129, 0);
  11981. return 1;
  11982. }
  11983. }
  11984. }
  11985. l_129 = 0;
  11986. l_128 = 0;
  11987. return 0;
  11988. }
  11989.  
  11990. var sub_F5CB(var A_0)
  11991. {
  11992. if ((PED::IS_PED_INJURED(rPtr(A_0)) == 0) && (PED::IS_PED_MALE(rPtr(A_0)) != 0))
  11993. {
  11994. return 1;
  11995. }
  11996. return 0;
  11997. }
  11998.  
  11999. var sub_F5ED()
  12000. {
  12001. var num1 = ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID());
  12002. if ((num1 | ENTITY::IS_ENTITY_DEAD(l_127)) != 0)
  12003. {
  12004. return 0;
  12005. }
  12006. return 1;
  12007. }
  12008.  
  12009. var sub_F611()
  12010. {
  12011. bool flag1 = sub_F5ED() == 0;
  12012. if (!(flag1 | sub_F6B7(l_85, 4096)) && (sub_F6B7(l_85, 32) != 0))
  12013. {
  12014. l_327 = 2;
  12015. sub_3033(2);
  12016. sub_F6C6("IS_CUSTOMER_A_PLAYER is TRUE");
  12017. return 1;
  12018. }
  12019. return 0;
  12020. }
  12021.  
  12022. void sub_F655()
  12023. {
  12024. if (((ENTITY::IS_ENTITY_DEAD(l_127) == 0) && (PED::IS_PED_FLEEING(l_127) == 0)) && (AI::GET_SCRIPT_TASK_STATUS(l_127, 0x6BA30179) != 1))
  12025. {
  12026. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_127, 0);
  12027. PED::SET_PED_FLEE_ATTRIBUTES(l_127, 0x30014, 1);
  12028. PED::0x4C684C81(l_127);
  12029. AI::TASK_SMART_FLEE_PED(l_127, PLAYER::PLAYER_PED_ID(), 300f, -1, 1, 0);
  12030. PED::SET_PED_KEEP_TASK(l_127, 1);
  12031. sub_2CDE(15);
  12032. }
  12033. }
  12034.  
  12035. var sub_F6B7(var A_0, var A_1)
  12036. {
  12037. return ((A_0 & A_1) != 0);
  12038. }
  12039.  
  12040. void sub_F6C6(var A_0)
  12041. {
  12042. }
  12043.  
  12044. var sub_F6CE()
  12045. {
  12046. if (PED::IS_PED_INJURED(l_127) != 0)
  12047. {
  12048. return 0;
  12049. }
  12050. if (AI::GET_SCRIPT_TASK_STATUS(l_127, 0x55966344) == 1)
  12051. {
  12052. return 0;
  12053. }
  12054. if (PED::IS_PED_USING_ANY_SCENARIO(l_127) != 0)
  12055. {
  12056. return 0;
  12057. }
  12058. return 1;
  12059. }
  12060.  
  12061. var sub_F704()
  12062. {
  12063. switch (l_331)
  12064. {
  12065. case 0:
  12066. if (sub_10B44() == 0)
  12067. {
  12068. sub_F11F(&l_318, sub_21FD(l_324));
  12069. sub_F0EB(&l_318);
  12070. sub_F6C6("Moving to PROSTITUTE_INIT_STREAMING");
  12071. }
  12072. if (sub_10B44() != 0)
  12073. {
  12074. NETWORK::RESERVE_NETWORK_MISSION_PEDS(1);
  12075. NETWORK::RESERVE_NETWORK_MISSION_VEHICLES(1);
  12076. NETWORK::NETWORK_REQUEST_CONTROL_OF_ENTITY(l_127);
  12077. }
  12078. l_331 = 1;
  12079. break;
  12080. case 1:
  12081. if (sub_10B44() != 0)
  12082. {
  12083. if (sub_10B44() != 0)
  12084. {
  12085. sub_F4AD(&l_85, 0x400000);
  12086. sub_F6C6("Moving to PROSTITUTE_INIT_INIT");
  12087. l_331 = 2;
  12088. }
  12089. break;
  12090. }
  12091. if (sub_F865(&l_318) != 0)
  12092. {
  12093. sub_F4AD(&l_85, 0x400000);
  12094. sub_F6C6("Moving to PROSTITUTE_INIT_INIT");
  12095. l_331 = 2;
  12096. }
  12097. break;
  12098. case 2:
  12099. l_328 = 0;
  12100. l_102 = l_328;
  12101. sub_5B4(&l_85, 512);
  12102. sub_5B4(&l_85, 1024);
  12103. l_327 = 0;
  12104. l_128 = 0;
  12105. l_129 = 0;
  12106. sub_F6C6("Moving to PROSTITUTE_INIT_COMPLETE");
  12107. l_331 = 3;
  12108. break;
  12109. case 3:
  12110. if (PED::IS_PED_INJURED(l_127) != 0)
  12111. {
  12112. break;
  12113. }
  12114. if (sub_10B44() != 0)
  12115. {
  12116. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) == 0)
  12117. {
  12118. NETWORK::NETWORK_REQUEST_CONTROL_OF_ENTITY(l_127);
  12119. }
  12120. else
  12121. {
  12122. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_127, 0);
  12123. sub_F388(&l_153, 4, l_127, "Prostitutes", 0, 1);
  12124. PED::SET_PED_CAN_EVASIVE_DIVE(l_127, 0);
  12125. PED::0x033F43FA(l_127);
  12126. return 1;
  12127. }
  12128. break;
  12129. }
  12130. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_127, 0);
  12131. PED::SET_PED_CAN_EVASIVE_DIVE(l_127, 0);
  12132. sub_F388(&l_153, 4, l_127, "Prostitutes", 0, 1);
  12133. return 1;
  12134. }
  12135. return 0;
  12136. }
  12137.  
  12138. var sub_F865(var A_0)
  12139. {
  12140. for (var i = 0; i < rPtr(A_0); i++)
  12141. {
  12142. if ((GAMEPLAY::IS_STRING_NULL(getElem(i, A_0, 4)) == 0) && (STREAMING::HAS_ANIM_DICT_LOADED(getElem(i, A_0, 4)) == 0))
  12143. {
  12144. return 0;
  12145. }
  12146. }
  12147. return 1;
  12148. }
  12149.  
  12150. var sub_F8A8()
  12151. {
  12152. if (((STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0) || (sub_B25() != 0)) || (sub_F908(l_127, 537.0014f, 119.0252f, 96.0997f, 1) > 8f))
  12153. {
  12154. return 0;
  12155. }
  12156. if (ENTITY::0xACFEB3F9(l_127, 1) == 0)
  12157. {
  12158. if (sub_10B44() != 0)
  12159. {
  12160. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_127, 0, 0);
  12161. }
  12162. else
  12163. {
  12164. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_127, 1, 1);
  12165. }
  12166. }
  12167. return 1;
  12168. }
  12169.  
  12170. var sub_F908(var A_0, var A_1, var A_2, var A_3, var A_4)
  12171. {
  12172. var num3;
  12173. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  12174. {
  12175. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  12176. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  12177. }
  12178. else
  12179. {
  12180. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 0);
  12181. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  12182. }
  12183. struct _s = &num3;
  12184. struct _s = &A_1;
  12185. return GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_4);
  12186. }
  12187.  
  12188. var sub_F941()
  12189. {
  12190. if (PED::IS_PED_USING_SCENARIO(l_127, sub_2110(0)) != 0)
  12191. {
  12192. if (PED::0x3C30B447(l_127, "amb@world_human_prostitute@crackhooker@base", "base") != 0)
  12193. {
  12194. return 0;
  12195. }
  12196. if (PED::0x3C30B447(l_127, "amb@world_human_prostitute@cokehead@base", "base") != 0)
  12197. {
  12198. return 1;
  12199. }
  12200. }
  12201. if (PED::IS_PED_USING_SCENARIO(l_127, sub_2110(1)) != 0)
  12202. {
  12203. if (PED::0x3C30B447(l_127, "amb@world_human_prostitute@french@base", "base") != 0)
  12204. {
  12205. return 3;
  12206. }
  12207. if (PED::0x3C30B447(l_127, "amb@world_human_prostitute@hooker@base", "base") != 0)
  12208. {
  12209. return 2;
  12210. }
  12211. }
  12212. return -1;
  12213. }
  12214.  
  12215. void sub_F9BA()
  12216. {
  12217. if (ENTITY::IS_ENTITY_DEAD(l_127) == 0)
  12218. {
  12219. bool flag1 = l_325 != 3;
  12220. if (flag1 & (l_325 != 4))
  12221. {
  12222. sub_F9F8(PLAYER::PLAYER_PED_ID());
  12223. }
  12224. else if (l_325 == 3)
  12225. {
  12226. sub_F9F8(l_128);
  12227. }
  12228. }
  12229. }
  12230.  
  12231. void sub_F9F8(var A_0)
  12232. {
  12233. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  12234. {
  12235. if ((sub_10B44() != 0) && (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(A_0) == 0))
  12236. {
  12237. NETWORK::NETWORK_REQUEST_CONTROL_OF_ENTITY(A_0);
  12238. }
  12239. else if (sub_E7AD(A_0, l_127, 1) < 30f)
  12240. {
  12241. if (PED::IS_PED_HEADTRACKING_PED(l_127, A_0) == 0)
  12242. {
  12243. if (sub_10B44() != 0)
  12244. {
  12245. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) != 0)
  12246. {
  12247. AI::TASK_CLEAR_LOOK_AT(l_127);
  12248. AI::TASK_LOOK_AT_ENTITY(l_127, A_0, -1, 2048, 4);
  12249. }
  12250. }
  12251. else
  12252. {
  12253. AI::TASK_CLEAR_LOOK_AT(l_127);
  12254. AI::TASK_LOOK_AT_ENTITY(l_127, A_0, -1, 2048, 4);
  12255. }
  12256. }
  12257. }
  12258. else if (PED::IS_PED_HEADTRACKING_PED(l_127, A_0) != 0)
  12259. {
  12260. if (sub_10B44() != 0)
  12261. {
  12262. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) != 0)
  12263. {
  12264. AI::TASK_CLEAR_LOOK_AT(l_127);
  12265. }
  12266. }
  12267. else
  12268. {
  12269. AI::TASK_CLEAR_LOOK_AT(l_127);
  12270. }
  12271. }
  12272. }
  12273. }
  12274.  
  12275. void sub_FAAB()
  12276. {
  12277. if (g_19604 != 0)
  12278. {
  12279. if ((VEHICLE::IS_VEHICLE_DRIVEABLE(l_130, 0) != 0) && (PED::IS_PED_IN_VEHICLE(l_127, l_130, 0) != 0))
  12280. {
  12281. sub_FB6A();
  12282. }
  12283. }
  12284. else if (PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) <= 0)
  12285. {
  12286. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  12287. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  12288. bool flag1 = SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) < g_19606;
  12289. bool flag2 = flag1 | (g_19606 == 0f);
  12290. if (flag2 & (l_327 != 4))
  12291. {
  12292. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  12293. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  12294. g_19606 = SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  12295. g_19607 = SCRIPT::GET_ID_OF_THIS_THREAD();
  12296. sub_F4AD(&l_85, 32);
  12297. }
  12298. else if (g_19607 == SCRIPT::GET_ID_OF_THIS_THREAD())
  12299. {
  12300. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  12301. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  12302. g_19606 = SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  12303. }
  12304. else
  12305. {
  12306. sub_5B4(&l_85, 32);
  12307. }
  12308. }
  12309. }
  12310.  
  12311. void sub_FB6A()
  12312. {
  12313. if (sub_10B44() != 0)
  12314. {
  12315. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) != 0)
  12316. {
  12317. PED::SET_PED_RESET_FLAG(l_127, 323, 1);
  12318. }
  12319. }
  12320. else
  12321. {
  12322. PED::SET_PED_RESET_FLAG(l_127, 323, 1);
  12323. }
  12324. }
  12325.  
  12326. void sub_FB99()
  12327. {
  12328. if (l_326 != 12)
  12329. {
  12330. bool flag1 = ENTITY::IS_ENTITY_DEAD(l_127) == 0;
  12331. if (flag1 & (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0))
  12332. {
  12333. if (sub_FD99() != 0)
  12334. {
  12335. if (sub_10B44() != 0)
  12336. {
  12337. sub_3841(0);
  12338. PED::SET_PED_FLEE_ATTRIBUTES(l_127, 0x30010, 1);
  12339. if (ENTITY::IS_ENTITY_A_MISSION_ENTITY(l_127) == 0)
  12340. {
  12341. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_127, 1, 0);
  12342. }
  12343. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  12344. AI::TASK_SMART_FLEE_COORD(l_127, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 200f, -1, 0, 0);
  12345. PED::SET_PED_KEEP_TASK(l_127, 1);
  12346. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  12347. sub_10666();
  12348. sub_104E0();
  12349. }
  12350. else
  12351. {
  12352. sub_2CDE(12);
  12353. }
  12354. }
  12355. else if (ENTITY::HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(l_127, PLAYER::PLAYER_PED_ID(), 1) != 0)
  12356. {
  12357. l_100++;
  12358. if (l_100 >= 2)
  12359. {
  12360. sub_F6C6("prostitute CLASSED AS UNDER ATTACK");
  12361. l_326 = 12;
  12362. }
  12363. else
  12364. {
  12365. sub_F6C6("prostitute BEEN HIT BY PLAYER");
  12366. ENTITY::CLEAR_ENTITY_LAST_DAMAGE_ENTITY(l_127);
  12367. }
  12368. }
  12369. else if (sub_FCA0() != 0)
  12370. {
  12371. sub_FC78();
  12372. l_326 = 12;
  12373. }
  12374. }
  12375. }
  12376. }
  12377.  
  12378. void sub_FC78()
  12379. {
  12380. if (PED::IS_PED_INJURED(l_127) == 0)
  12381. {
  12382. AUDIO::STOP_CURRENT_PLAYING_AMBIENT_SPEECH(l_127);
  12383. AUDIO::0x5C57B85D(l_127, "APOLOGY_NO_TROUBLE", "SPEECH_PARAMS_FORCE_SHOUTED_CRITICAL");
  12384. }
  12385. }
  12386.  
  12387. var sub_FCA0()
  12388. {
  12389. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)
  12390. {
  12391. if (sub_FCF4() == 0)
  12392. {
  12393. return 0;
  12394. }
  12395. var num3 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  12396. if (VEHICLE::IS_VEHICLE_DRIVEABLE(num3, 0) == 0)
  12397. {
  12398. return 0;
  12399. }
  12400. if (PED::IS_PED_IN_ANY_POLICE_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  12401. {
  12402. return VEHICLE::IS_VEHICLE_SIREN_ON(num3);
  12403. }
  12404. }
  12405. return 0;
  12406. }
  12407.  
  12408. var sub_FCF4()
  12409. {
  12410. if (sub_10B44() == 0)
  12411. {
  12412. return 1;
  12413. }
  12414. if (ENTITY::DOES_ENTITY_EXIST(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0)
  12415. {
  12416. if (NETWORK::0xD7F934F4(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0)
  12417. {
  12418. if (VEHICLE::GET_PED_IN_VEHICLE_SEAT(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), -1) == PLAYER::PLAYER_PED_ID())
  12419. {
  12420. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0)
  12421. {
  12422. if (ENTITY::IS_ENTITY_A_MISSION_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) == 0)
  12423. {
  12424. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 0, 0);
  12425. }
  12426. return 1;
  12427. }
  12428. NETWORK::NETWORK_REQUEST_CONTROL_OF_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0));
  12429. }
  12430. }
  12431. else
  12432. {
  12433. NETWORK::0x31A630A4(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0));
  12434. }
  12435. }
  12436. return 0;
  12437. }
  12438.  
  12439. var sub_FD99()
  12440. {
  12441. if ((sub_F6B7(l_85, 4096) == 0) && (sub_E7AD(l_127, PLAYER::PLAYER_PED_ID(), 1) < 30f))
  12442. {
  12443. var num13;
  12444. var num3;
  12445. struct _s = ENTITY::GET_ENTITY_COORDS(l_127, 1);
  12446. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  12447. struct _s = &num3;
  12448. var num1 = DECISIONEVENT::IS_SHOCKING_EVENT_IN_SPHERE(85, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 30f);
  12449. if (num1 == 0)
  12450. {
  12451. struct _s = &num3;
  12452. }
  12453. var num9 = num1 | DECISIONEVENT::IS_SHOCKING_EVENT_IN_SPHERE(88, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 30f);
  12454. if (num9 == 0)
  12455. {
  12456. struct _s = &num3;
  12457. }
  12458. var num10 = num9 | DECISIONEVENT::IS_SHOCKING_EVENT_IN_SPHERE(87, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 30f);
  12459. if (num10 == 0)
  12460. {
  12461. struct _s = &num3;
  12462. }
  12463. var num11 = num10 | DECISIONEVENT::IS_SHOCKING_EVENT_IN_SPHERE(101, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 30f);
  12464. if (num11 == 0)
  12465. {
  12466. struct _s = &num3;
  12467. }
  12468. var num12 = num11 | DECISIONEVENT::IS_SHOCKING_EVENT_IN_SPHERE(113, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 30f);
  12469. if (num12 == 0)
  12470. {
  12471. struct _s = &num3;
  12472. num13 = DECISIONEVENT::IS_SHOCKING_EVENT_IN_SPHERE(111, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 30f);
  12473. }
  12474. var num14 = num12 | (num13 & (sub_10B44() == 0));
  12475. if ((num14 | PED::IS_PED_SHOOTING(PLAYER::PLAYER_PED_ID())) != 0)
  12476. {
  12477. if (sub_10B44() == 0)
  12478. {
  12479. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_127, 0);
  12480. }
  12481. sub_F4AD(&l_85, 4096);
  12482. return 1;
  12483. }
  12484. }
  12485. return 0;
  12486. }
  12487.  
  12488. var sub_FE7D()
  12489. {
  12490. var num1 = ENTITY::DOES_ENTITY_EXIST(l_127);
  12491. var num6 = num1 & (ENTITY::IS_ENTITY_DEAD(l_127) == 0);
  12492. if ((num6 & (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0)) != 0)
  12493. {
  12494. if (PED::IS_PED_INJURED(l_127) == 0)
  12495. {
  12496. if (PED::IS_PED_IN_ANY_VEHICLE(l_127, 0) != 0)
  12497. {
  12498. if (l_326 != 0)
  12499. {
  12500. bool flag2 = sub_FFF6(8) == 0;
  12501. if (!(flag2 & (sub_FFF6(5) == 0)))
  12502. {
  12503. var num8 = sub_FFDC();
  12504. if ((num8 | STREAMING::STOP_PLAYER_REMAIN_ARCADE()) == 0)
  12505. {
  12506. sub_F6C6("prostitute SCRIPT SHOULD EXIT - PLAYER ON MISSION");
  12507. sub_31E2(0);
  12508. sub_2CDE(15);
  12509. goto Label_0205;
  12510. }
  12511. }
  12512. return 1;
  12513. }
  12514. sub_F6C6("prostitute SCRIPT SHOULD EXIT - prostitute IN VEHICLE");
  12515. }
  12516. else if (sub_FFF6(8) != 0)
  12517. {
  12518. var num7 = sub_FFDC();
  12519. if ((num7 | STREAMING::STOP_PLAYER_REMAIN_ARCADE()) != 0)
  12520. {
  12521. return 1;
  12522. }
  12523. sub_F6C6("prostitute SCRIPT SHOULD EXIT - PLAYER ON MISSION");
  12524. sub_2CDE(15);
  12525. }
  12526. else
  12527. {
  12528. bool flag1 = ENTITY::IS_ENTITY_DEAD(l_127) == 0;
  12529. if (flag1 & (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0))
  12530. {
  12531. if (ENTITY::IS_ENTITY_AT_ENTITY(l_127, PLAYER::PLAYER_PED_ID(), 100f, 100f, 50f, 0, 1, 0) != 0)
  12532. {
  12533. return 1;
  12534. }
  12535. sub_F6C6("prostitute SCRIPT SHOULD EXIT - PLAYER WALKED AWAY FROM CAR");
  12536. sub_2CDE(15);
  12537. }
  12538. }
  12539. }
  12540. else
  12541. {
  12542. sub_F6C6("prostitute SCRIPT SHOULD EXIT - INJURED");
  12543. }
  12544. }
  12545. Label_0205:
  12546. if (ENTITY::DOES_ENTITY_EXIST(l_127) == 0)
  12547. {
  12548. sub_F6C6("prostitute SCRIPT SHOULD EXIT - Prostitute doesn't exist");
  12549. }
  12550. if (ENTITY::IS_ENTITY_DEAD(l_127) != 0)
  12551. {
  12552. sub_F6C6("prostitute SCRIPT SHOULD EXIT - Prostitute is dead");
  12553. }
  12554. if (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) != 0)
  12555. {
  12556. sub_F6C6("prostitute SCRIPT SHOULD EXIT - Player is dead");
  12557. }
  12558. return 0;
  12559. }
  12560.  
  12561. var sub_FFDC()
  12562. {
  12563. if (SCRIPT::0x029D3841(0xAB140056) > 0)
  12564. {
  12565. return 1;
  12566. }
  12567. return 0;
  12568. }
  12569.  
  12570. var sub_FFF6(var A_0)
  12571. {
  12572. if (g_29814 == 12)
  12573. {
  12574. return 0;
  12575. }
  12576. if (sub_1001A(A_0) != 0)
  12577. {
  12578. return 0;
  12579. }
  12580. return 1;
  12581. }
  12582.  
  12583. var sub_1001A(var A_0)
  12584. {
  12585. return sub_1002B(A_0, g_29814);
  12586. }
  12587.  
  12588. var sub_1002B(var A_0, var A_1)
  12589. {
  12590. if (A_1 == 12)
  12591. {
  12592. return 1;
  12593. }
  12594. if (A_0 != 12)
  12595. {
  12596. var num3 = A_0;
  12597. switch (num3)
  12598. {
  12599. case 13:
  12600. {
  12601. bool flag1 = A_1 == 8;
  12602. if (flag1 | (A_1 == 9))
  12603. {
  12604. return 0;
  12605. }
  12606. return 1;
  12607. }
  12608. case 0:
  12609. num3 = A_1;
  12610. if ((num3 != 5) && (num3 != 14))
  12611. {
  12612. break;
  12613. }
  12614. return 1;
  12615. case 2:
  12616. case 3:
  12617. num3 = A_1;
  12618. if (((num3 != 5) && (num3 != 6)) && ((num3 != 7) && (num3 != 14)))
  12619. {
  12620. break;
  12621. }
  12622. return 1;
  12623. case 4:
  12624. switch (A_1)
  12625. {
  12626. case 14:
  12627. return 1;
  12628. }
  12629. break;
  12630. default:
  12631. if (num3 != 5)
  12632. {
  12633. if ((num3 == 6) || (num3 == 7))
  12634. {
  12635. if (A_1 != 5)
  12636. {
  12637. break;
  12638. }
  12639. return 1;
  12640. }
  12641. if (num3 == 8)
  12642. {
  12643. if (A_1 != 5)
  12644. {
  12645. break;
  12646. }
  12647. return 1;
  12648. }
  12649. if (num3 == 9)
  12650. {
  12651. num3 = A_1;
  12652. if (((num3 != 5) && (num3 != 6)) && (num3 != 14))
  12653. {
  12654. break;
  12655. }
  12656. return 1;
  12657. }
  12658. if (num3 == 10)
  12659. {
  12660. if (A_1 != 5)
  12661. {
  12662. break;
  12663. }
  12664. return 1;
  12665. }
  12666. if (num3 == 14)
  12667. {
  12668. num3 = A_1;
  12669. if (((num3 != 14) && (num3 != 11)) && (num3 != 5))
  12670. {
  12671. break;
  12672. }
  12673. return 1;
  12674. }
  12675. if ((num3 == 15) || (num3 == 11))
  12676. {
  12677. switch (A_1)
  12678. {
  12679. case 5:
  12680. case 6:
  12681. return 1;
  12682. }
  12683. break;
  12684. }
  12685. }
  12686. break;
  12687. }
  12688. }
  12689. return 0;
  12690. }
  12691.  
  12692. var sub_101A1(var A_0)
  12693. {
  12694. return sub_F6B7(l_88, A_0);
  12695. }
  12696.  
  12697. void sub_101B1()
  12698. {
  12699. for (var i = 0; i < SCRIPT::GET_NUMBER_OF_EVENTS(1); i++)
  12700. {
  12701. if (SCRIPT::GET_EVENT_AT_INDEX(1, i) == 165)
  12702. {
  12703. var num5;
  12704. SCRIPT::GET_EVENT_DATA(1, i, &num5, 2);
  12705. if ((num5 == 166) && (rPtr((&num5) + 1) == PLAYER::PLAYER_ID()))
  12706. {
  12707. sub_60D9(128);
  12708. }
  12709. }
  12710. }
  12711. }
  12712.  
  12713. void sub_10202()
  12714. {
  12715. if ((NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0) && (((NETWORK::GET_NUM_RESERVED_MISSION_PEDS(0) != 1) && (sub_10236(1, 0, 1) != 0)) && (NETWORK::0xD8FEC4F8(0) <= 1)))
  12716. {
  12717. NETWORK::RESERVE_NETWORK_MISSION_PEDS(1);
  12718. }
  12719. }
  12720.  
  12721. var sub_10236(var A_0, var A_1, var A_2)
  12722. {
  12723. return sub_1024A(0, A_0, 1, A_1, A_2);
  12724. }
  12725.  
  12726. var sub_1024A(var A_0, var A_1, var A_2, var A_3, var A_4)
  12727. {
  12728. if (GAMEPLAY::IS_BIT_SET(g_1375232, 0) != 0)
  12729. {
  12730. var num3;
  12731. var num4;
  12732. var var1 = A_2 & (A_3 == 0);
  12733. if ((var1 & (A_1 <= sub_103CC(A_0, 0))) != null)
  12734. {
  12735. return 1;
  12736. }
  12737. if (A_3 != null)
  12738. {
  12739. if (A_2 != null)
  12740. {
  12741. num3 = (A_1) - sub_103CC(A_0, 0);
  12742. }
  12743. else
  12744. {
  12745. num3 = A_1;
  12746. }
  12747. num4 = sub_1038C(A_0) - sub_10346(A_0);
  12748. }
  12749. else
  12750. {
  12751. if (A_2 != null)
  12752. {
  12753. num3 = (A_1) - sub_103CC(A_0, 0);
  12754. }
  12755. else
  12756. {
  12757. num3 = A_1;
  12758. }
  12759. num4 = sub_1038C(A_0) - sub_103CC(A_0, 1);
  12760. }
  12761. bool flag1 = A_4 == 0;
  12762. if (flag1 & (getElem(PLAYER::PLAYER_ID(), &g_1574052, 1136) != 3))
  12763. {
  12764. num4 -= sub_1030C(A_0);
  12765. }
  12766. if (num3 < num4)
  12767. {
  12768. return 1;
  12769. }
  12770. }
  12771. return 0;
  12772. }
  12773.  
  12774. var sub_1030C(var A_0)
  12775. {
  12776. switch (A_0)
  12777. {
  12778. case 0:
  12779. return 10;
  12780. case 1:
  12781. return 10;
  12782. case 2:
  12783. return 10;
  12784. }
  12785. return 0;
  12786. }
  12787.  
  12788. var sub_10346(var A_0)
  12789. {
  12790. switch (A_0)
  12791. {
  12792. case 0:
  12793. return rPtr((&g_1375232) + 1);
  12794. case 1:
  12795. return rPtr((&g_1375232) + 2);
  12796. case 2:
  12797. return rPtr((&g_1375232) + 3);
  12798. }
  12799. return 0;
  12800. }
  12801.  
  12802. var sub_1038C(var A_0)
  12803. {
  12804. switch (A_0)
  12805. {
  12806. case 0:
  12807. return g_1375240;
  12808. case 1:
  12809. return g_1375241;
  12810. case 2:
  12811. return g_1375242;
  12812. }
  12813. return 0;
  12814. }
  12815.  
  12816. var sub_103CC(var A_0, var A_1)
  12817. {
  12818. var num3 = PLAYER::PLAYER_ID();
  12819. switch (A_0)
  12820. {
  12821. case 0:
  12822. if (NETWORK::NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT() != 0)
  12823. {
  12824. return NETWORK::GET_NUM_RESERVED_MISSION_PEDS((A_1 == 0));
  12825. }
  12826. return rPtr(getElemPtr(num3, &g_2387077, 868) + 708);
  12827. case 1:
  12828. if (NETWORK::NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT() != 0)
  12829. {
  12830. return NETWORK::GET_NUM_RESERVED_MISSION_VEHICLES((A_1 == 0));
  12831. }
  12832. return rPtr(getElemPtr(num3, &g_2387077, 868) + 712);
  12833. case 2:
  12834. if (NETWORK::NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT() != 0)
  12835. {
  12836. return NETWORK::GET_NUM_RESERVED_MISSION_OBJECTS((A_1 == 0));
  12837. }
  12838. return rPtr(getElemPtr(num3, &g_2387077, 868) + 716);
  12839. }
  12840. return 0;
  12841. }
  12842.  
  12843. void sub_10463(var A_0)
  12844. {
  12845. if (sub_F6B7(l_88, A_0) != 0)
  12846. {
  12847. sub_5B4(&l_88, A_0);
  12848. }
  12849. }
  12850.  
  12851. void sub_1047E()
  12852. {
  12853. sub_2B3(0);
  12854. if (ENTITY::DOES_ENTITY_EXIST(l_127) != 0)
  12855. {
  12856. if (ENTITY::IS_ENTITY_DEAD(l_127) == 0)
  12857. {
  12858. sub_2B3(1);
  12859. }
  12860. else
  12861. {
  12862. sub_F6C6("Prostitue: not continuing, prostitue is dead");
  12863. }
  12864. }
  12865. else
  12866. {
  12867. sub_F6C6("Prostitue: not continuing, prostitue doesn't exist");
  12868. }
  12869. bool flag1 = PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) == 0;
  12870. if (flag1 | ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()))
  12871. {
  12872. sub_2B3(0);
  12873. sub_F6C6("Prostitue: not continuing, player isn't player or is dead");
  12874. }
  12875. }
  12876.  
  12877. void sub_104E0()
  12878. {
  12879. sub_105EF();
  12880. if ((PED::IS_PED_INJURED(l_127) == 0) && (ENTITY::IS_ENTITY_A_MISSION_ENTITY(l_127) != 0))
  12881. {
  12882. ENTITY::SET_PED_AS_NO_LONGER_NEEDED(&l_127);
  12883. AUDIO::STOP_CURRENT_PLAYING_AMBIENT_SPEECH(l_127);
  12884. }
  12885. l_85 = 0;
  12886. if (sub_F6B7(l_85, 64) != 0)
  12887. {
  12888. g_19605 = 0;
  12889. }
  12890. if (PED::IS_PED_INJURED(l_128) == 0)
  12891. {
  12892. AI::CLEAR_PED_TASKS(l_128);
  12893. }
  12894. l_128 = 0;
  12895. l_327 = 0;
  12896. if (sub_F6B7(l_85, 2048) != 0)
  12897. {
  12898. PLAYER::SET_PLAYER_CONTROL(PLAYER::PLAYER_ID(), 1, 0);
  12899. }
  12900. sub_5B4(&l_85, 2048);
  12901. sub_105DD();
  12902. if ((sub_10B44() != 0) && (PATHFIND::0x4B67D7EE(l_118) != 0))
  12903. {
  12904. PATHFIND::REMOVE_NAVMESH_BLOCKING_OBJECT(l_118);
  12905. }
  12906. l_129 = 0;
  12907. sub_105EF();
  12908. sub_105D5();
  12909. g_19606 = 0f;
  12910. STREAMING::CLEAR_FOCUS();
  12911. if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0)
  12912. {
  12913. PLAYER::SET_PLAYER_CAN_DO_DRIVE_BY(PLAYER::PLAYER_ID(), 1);
  12914. }
  12915. if ((ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0) && (sub_101A1(256) != 0))
  12916. {
  12917. PED::SET_PED_COMPONENT_VARIATION(PLAYER::PLAYER_PED_ID(), 6, l_119, l_120, 0);
  12918. }
  12919. var num1 = sub_F422("PROS_ACCEPT");
  12920. if ((num1 & (g_19604 == 0)) != 0)
  12921. {
  12922. UI::CLEAR_HELP(1);
  12923. }
  12924. SCRIPT::TERMINATE_THIS_THREAD();
  12925. }
  12926.  
  12927. void sub_105D5()
  12928. {
  12929. }
  12930.  
  12931. void sub_105DD()
  12932. {
  12933. wPtr(0, ((&g_2390986) + 549) + 10);
  12934. }
  12935.  
  12936. void sub_105EF()
  12937. {
  12938. }
  12939.  
  12940. void sub_105F7(var A_0)
  12941. {
  12942. if (PED::IS_PED_INJURED(l_127) == 0)
  12943. {
  12944. if ((PED::IS_PED_IN_ANY_VEHICLE(l_127, 0) != 0) && (AI::GET_SCRIPT_TASK_STATUS(l_127, 0xCE98FBB3) != 1))
  12945. {
  12946. AI::TASK_LEAVE_ANY_VEHICLE(l_127, 0, 0);
  12947. }
  12948. if (A_0 != null)
  12949. {
  12950. if (sub_10B44() != 0)
  12951. {
  12952. if (((ENTITY::IS_ENTITY_A_MISSION_ENTITY(l_127) != 0) && (NETWORK::0xEDA68956(l_127) != 0)) && (NETWORK::0xEA5176C0(NETWORK::NETWORK_GET_NETWORK_ID_FROM_ENTITY(l_127)) != 0))
  12953. {
  12954. PED::SET_PED_KEEP_TASK(l_127, 1);
  12955. }
  12956. }
  12957. else
  12958. {
  12959. PED::SET_PED_KEEP_TASK(l_127, 1);
  12960. }
  12961. }
  12962. }
  12963. }
  12964.  
  12965. void sub_10666()
  12966. {
  12967. if (sub_10B44() == 0)
  12968. {
  12969. bool flag1 = l_326 == 11;
  12970. if (flag1 | (l_326 == 13))
  12971. {
  12972. return;
  12973. }
  12974. }
  12975. if (ENTITY::IS_ENTITY_DEAD(l_127) == 0)
  12976. {
  12977. if (PED::IS_PED_FLEEING(l_127) == 0)
  12978. {
  12979. sub_2CDE(0);
  12980. l_325 = 1;
  12981. }
  12982. if (ENTITY::IS_ENTITY_DEAD(l_127) == 0)
  12983. {
  12984. if (sub_10B44() != 0)
  12985. {
  12986. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_127) != 0)
  12987. {
  12988. PED::RESET_PED_IN_VEHICLE_CONTEXT(l_127);
  12989. }
  12990. }
  12991. else
  12992. {
  12993. PED::RESET_PED_IN_VEHICLE_CONTEXT(l_127);
  12994. }
  12995. }
  12996. AUDIO::0x308ED0EC(l_127, 0);
  12997. }
  12998. var num1 = VEHICLE::IS_VEHICLE_DRIVEABLE(l_130, 0);
  12999. if ((num1 & (ENTITY::IS_ENTITY_DEAD(l_130) == 0)) != 0)
  13000. {
  13001. if (sub_10B44() != 0)
  13002. {
  13003. if (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(l_130) != 0)
  13004. {
  13005. VEHICLE::SET_VEHICLE_HANDBRAKE(l_130, 0);
  13006. VEHICLE::SET_VEHICLE_LIGHTS(l_130, 3);
  13007. VEHICLE::SET_VEHICLE_INTERIORLIGHT(l_130, 0);
  13008. }
  13009. }
  13010. else
  13011. {
  13012. VEHICLE::SET_VEHICLE_HANDBRAKE(l_130, 0);
  13013. VEHICLE::SET_VEHICLE_LIGHTS(l_130, 3);
  13014. VEHICLE::SET_VEHICLE_INTERIORLIGHT(l_130, 0);
  13015. }
  13016. }
  13017. sub_10B26(l_109);
  13018. sub_10B26(l_110);
  13019. sub_10B26(l_111);
  13020. sub_10B26(l_112);
  13021. sub_10B26(l_113);
  13022. sub_10B26(l_114);
  13023. sub_10B26(l_115);
  13024. if (ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID()) == 0)
  13025. {
  13026. AI::TASK_CLEAR_LOOK_AT(PLAYER::PLAYER_PED_ID());
  13027. if (sub_10B44() != 0)
  13028. {
  13029. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  13030. }
  13031. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(PLAYER::PLAYER_PED_ID(), 1);
  13032. PED::SET_PED_CAN_PLAY_AMBIENT_BASE_ANIMS(PLAYER::PLAYER_PED_ID(), 1);
  13033. }
  13034. if (sub_F6B7(l_85, 2048) != 0)
  13035. {
  13036. PLAYER::SET_PLAYER_CONTROL(PLAYER::PLAYER_ID(), 1, 0);
  13037. }
  13038. sub_5B4(&l_85, 2048);
  13039. CONTROLS::ENABLE_CONTROL_ACTION(2, 19);
  13040. CONTROLS::ENABLE_CONTROL_ACTION(2, 37);
  13041. sub_105DD();
  13042. l_327 = 0;
  13043. if (sub_F6B7(l_85, 4) != 0)
  13044. {
  13045. sub_5B4(&l_85, 4);
  13046. g_19604 = 0;
  13047. }
  13048. if ((sub_F6B7(l_85, 8) != 0) && (STREAMING::HAS_CLIP_SET_LOADED(sub_2B51()) != 0))
  13049. {
  13050. STREAMING::REMOVE_CLIP_SET(sub_2B51());
  13051. }
  13052. sub_10AE8();
  13053. sub_F374();
  13054. var num6 = sub_F422("PROS_ACCEPT");
  13055. var num7 = num6 | sub_F422("PROS_CAM_TOG");
  13056. var num8 = num7 | sub_F422("PROS_RESPONSE");
  13057. if ((num8 | sub_F422("PROS_CAM_OC")) != 0)
  13058. {
  13059. sub_5B4(&l_85, 0x100000);
  13060. UI::CLEAR_HELP(1);
  13061. }
  13062. sub_CBA7(0);
  13063. UI::DISPLAY_RADAR(1);
  13064. if ((sub_F6B7(l_85, 8) != 0) && (STREAMING::HAS_CLIP_SET_LOADED(sub_2B51()) != 0))
  13065. {
  13066. STREAMING::REMOVE_CLIP_SET(sub_2B51());
  13067. }
  13068. sub_3C4C("PROSTITUTES_SOLICIT_SCENE");
  13069. AUDIO::RELEASE_SCRIPT_AUDIO_BANK();
  13070. sub_3841(0);
  13071. CAM::SET_CINEMATIC_BUTTON_ACTIVE(1);
  13072. sub_108E7();
  13073. if ((((sub_10B44() != 0) && (sub_101A1(2) != 0)) && ((PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0) && (NETWORK::0xD7F934F4(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0))) && (NETWORK::NETWORK_HAS_CONTROL_OF_ENTITY(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) != 0))
  13074. {
  13075. VEHICLE::SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 0);
  13076. VEHICLE::SET_VEHICLE_DOORS_LOCKED(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 1);
  13077. }
  13078. sub_5A07(23, 0);
  13079. l_85 = 0;
  13080. l_87 = 0;
  13081. }
  13082.  
  13083. void sub_108E7()
  13084. {
  13085. if ((sub_10AC2() != 0) && (l_84 != 0))
  13086. {
  13087. var num3;
  13088. var num20;
  13089. initArray(&num3, 2);
  13090. initArray(&num20, 2);
  13091. strcpy("GameType", getElemPtr(0, &num3, 32), 32);
  13092. strcpy("Type", getElemPtr(1, &num3, 32), 32);
  13093. strcpy("SP", getElemPtr(0, &num20, 24), 24);
  13094. strcpy("????", getElemPtr(1, &num20, 24), 24);
  13095. if (sub_10989(275, &num20, &num3, 2, -1, 0, 0) != 0)
  13096. {
  13097. STATS::0x7524E27B(131, sub_10980(), 0f);
  13098. STATS::0x7524E27B(117, sub_10976(), 0f);
  13099. STATS::0x7524E27B(118, sub_1096C(), 0f);
  13100. }
  13101. }
  13102. }
  13103.  
  13104. var sub_1096C()
  13105. {
  13106. return l_83;
  13107. }
  13108.  
  13109. var sub_10976()
  13110. {
  13111. return l_82;
  13112. }
  13113.  
  13114. var sub_10980()
  13115. {
  13116. return 0;
  13117. }
  13118.  
  13119. var sub_10989(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6)
  13120. {
  13121. var num3;
  13122. if (NETWORK::NETWORK_IS_SIGNED_ONLINE() == 0)
  13123. {
  13124. }
  13125. bool flag1 = NETWORK::NETWORK_PLAYER_IS_CHEATER() == 0;
  13126. bool flag2 = flag1 & NETWORK::NETWORK_HAVE_ONLINE_PRIVILEGES();
  13127. if (!(flag2 & NETWORK::0xC6EA802E()))
  13128. {
  13129. if (NETWORK::NETWORK_PLAYER_IS_CHEATER() != 0)
  13130. {
  13131. }
  13132. if (NETWORK::NETWORK_HAVE_ONLINE_PRIVILEGES() == 0)
  13133. {
  13134. }
  13135. if (NETWORK::0xC6EA802E() == 0)
  13136. {
  13137. }
  13138. return 0;
  13139. }
  13140. int* numPtr1 = &num3 + 2;
  13141. initArray((numPtr1) + 1, 4);
  13142. num3 = A_0;
  13143. if (A_4 == -1)
  13144. {
  13145. if (NETWORK::0xF5F4BD95() != 0)
  13146. {
  13147. var num72;
  13148. var num85;
  13149. struct _s = sub_10AAB(PLAYER::PLAYER_ID());
  13150. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), rPtrOfs(_s, 24), rPtrOfs(_s, 28), rPtrOfs(_s, 32), rPtrOfs(_s, 36), rPtrOfs(_s, 40), rPtrOfs(_s, 44), rPtrOfs(_s, 48), 13, &num72);
  13151. if ((NETWORK::NETWORK_CLAN_PLAYER_IS_ACTIVE(&num72) != 0) && (NETWORK::NETWORK_CLAN_PLAYER_GET_DESC(&num85, 35, &num72) != 0))
  13152. {
  13153. wPtr(num85, (&num3) + 1);
  13154. }
  13155. }
  13156. }
  13157. else
  13158. {
  13159. wPtr(A_4, (&num3) + 1);
  13160. }
  13161. wPtr(A_3, (&num3) + 2);
  13162. var num71 = 0;
  13163. while (true)
  13164. {
  13165. if (num71 >= A_3)
  13166. {
  13167. break;
  13168. }
  13169. struct _s = getElemPtr(num71, A_2, 32);
  13170. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), rPtrOfs(_s, 24), rPtrOfs(_s, 28), 8, getElemPtr(num71, ((&num3) + 2) + 1, 64));
  13171. struct _s = getElemPtr(num71, A_1, 24);
  13172. sncpy(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), 6, 8, getElemPtr(num71, ((&num3) + 2) + 1, 64) + 32);
  13173. num71++;
  13174. }
  13175. if (A_5 != null)
  13176. {
  13177. struct _s = &num3;
  13178. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), rPtrOfs(_s, 24), rPtrOfs(_s, 28), rPtrOfs(_s, 32), rPtrOfs(_s, 36), rPtrOfs(_s, 40), rPtrOfs(_s, 44), rPtrOfs(_s, 48), rPtrOfs(_s, 52), rPtrOfs(_s, 56), rPtrOfs(_s, 60), rPtrOfs(_s, 64), rPtrOfs(_s, 68), rPtrOfs(_s, 72), rPtrOfs(_s, 76), rPtrOfs(_s, 80), rPtrOfs(_s, 84), rPtrOfs(_s, 88), rPtrOfs(_s, 92), rPtrOfs(_s, 96), rPtrOfs(_s, 100), rPtrOfs(_s, 104), rPtrOfs(_s, 108), rPtrOfs(_s, 112), rPtrOfs(_s, 116), rPtrOfs(_s, 120), rPtrOfs(_s, 124), rPtrOfs(_s, 128), rPtrOfs(_s, 132), rPtrOfs(_s, 136), rPtrOfs(_s, 140), rPtrOfs(_s, 144), rPtrOfs(_s, 148), rPtrOfs(_s, 152), rPtrOfs(_s, 156), rPtrOfs(_s, 160), rPtrOfs(_s, 164), rPtrOfs(_s, 168), rPtrOfs(_s, 172), rPtrOfs(_s, 176), rPtrOfs(_s, 180), rPtrOfs(_s, 184), rPtrOfs(_s, 188), rPtrOfs(_s, 192), rPtrOfs(_s, 196), rPtrOfs(_s, 200), rPtrOfs(_s, 204), rPtrOfs(_s, 208), rPtrOfs(_s, 212), rPtrOfs(_s, 216), rPtrOfs(_s, 220), rPtrOfs(_s, 224), rPtrOfs(_s, 228), rPtrOfs(_s, 232), rPtrOfs(_s, 236), rPtrOfs(_s, 240), rPtrOfs(_s, 244), rPtrOfs(_s, 248), rPtrOfs(_s, 252), rPtrOfs(_s, 256), rPtrOfs(_s, 260), rPtrOfs(_s, 264), rPtrOfs(_s, 268), 68, (&g_1835013) + 5);
  13179. }
  13180. if (A_6 == 0)
  13181. {
  13182. var num1 = NETWORK::NETWORK_IS_GAME_IN_PROGRESS();
  13183. if ((num1 & rPtr((&g_2398054) + 3)) != 0)
  13184. {
  13185. STATS::0x62C19A3D(&num3, (&g_1621273) + 8);
  13186. }
  13187. else
  13188. {
  13189. STATS::LEADERBOARDS2_WRITE_DATA(&num3);
  13190. }
  13191. }
  13192. return 1;
  13193. }
  13194.  
  13195. var sub_10AAB(var A_0)
  13196. {
  13197. var num3;
  13198. NETWORK::NETWORK_HANDLE_FROM_PLAYER(A_0, &num3, 13);
  13199. struct _s = &num3;
  13200. return buildStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 12), rPtrOfs(_s, 16), rPtrOfs(_s, 20), rPtrOfs(_s, 24), rPtrOfs(_s, 28), rPtrOfs(_s, 32), rPtrOfs(_s, 36), rPtrOfs(_s, 40), rPtrOfs(_s, 44), rPtrOfs(_s, 48));
  13201. }
  13202.  
  13203. var sub_10AC2()
  13204. {
  13205. var num1 = NETWORK::NETWORK_IS_SIGNED_ONLINE();
  13206. var num6 = num1 & NETWORK::NETWORK_IS_SIGNED_IN();
  13207. if ((num6 & NETWORK::NETWORK_IS_CLOUD_AVAILABLE()) != 0)
  13208. {
  13209. return 1;
  13210. }
  13211. return 0;
  13212. }
  13213.  
  13214. void sub_10AE8()
  13215. {
  13216. if (sub_F6B7(l_85, 128) != 0)
  13217. {
  13218. sub_E112(39, 0);
  13219. sub_E112(40, 0);
  13220. sub_E112(41, 0);
  13221. sub_E112(42, 0);
  13222. sub_E112(43, 0);
  13223. sub_5B4(&l_85, 128);
  13224. }
  13225. }
  13226.  
  13227. void sub_10B26(var A_0)
  13228. {
  13229. if ((sub_10B44() != 0) && (sub_6A02(A_0) != 0))
  13230. {
  13231. NETWORK::NETWORK_STOP_SYNCHRONISED_SCENE(A_0);
  13232. }
  13233. }
  13234.  
  13235. var sub_10B44()
  13236. {
  13237. return sub_101A1(1);
  13238. }
  13239.  
  13240. var sub_10B51(var A_0, var A_1, var A_2)
  13241. {
  13242. var num3 = NETWORK::NETWORK_GET_SCRIPT_STATUS();
  13243. while (true)
  13244. {
  13245. if (num3 == 2)
  13246. {
  13247. break;
  13248. }
  13249. bool flag1 = num3 == 3;
  13250. bool flag2 = flag1 | (num3 == 4);
  13251. bool flag3 = flag2 | (num3 == 5);
  13252. if (flag3 | (num3 == 6))
  13253. {
  13254. if (A_2 != 0)
  13255. {
  13256. return 0;
  13257. }
  13258. sub_10C66();
  13259. }
  13260. if (sub_10C5A() == 0)
  13261. {
  13262. if (A_0 == 0)
  13263. {
  13264. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0)
  13265. {
  13266. if (A_2 != 0)
  13267. {
  13268. return 0;
  13269. }
  13270. sub_10C66();
  13271. }
  13272. if (sub_10C4C() != 0)
  13273. {
  13274. if (A_2 != 0)
  13275. {
  13276. return 0;
  13277. }
  13278. sub_10C66();
  13279. }
  13280. }
  13281. else if (NETWORK::NETWORK_IS_IN_SESSION() == 0)
  13282. {
  13283. if (A_2 != 0)
  13284. {
  13285. return 0;
  13286. }
  13287. sub_10C66();
  13288. }
  13289. }
  13290. SYSTEM::WAIT(0);
  13291. num3 = NETWORK::NETWORK_GET_SCRIPT_STATUS();
  13292. }
  13293. if (A_1 > -1)
  13294. {
  13295. g_1332517 = num3;
  13296. }
  13297. if (A_0 == 0)
  13298. {
  13299. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0)
  13300. {
  13301. if (A_2 != 0)
  13302. {
  13303. return 0;
  13304. }
  13305. sub_10C66();
  13306. }
  13307. }
  13308. else if (NETWORK::NETWORK_IS_IN_SESSION() == 0)
  13309. {
  13310. if (A_2 != 0)
  13311. {
  13312. return 0;
  13313. }
  13314. sub_10C66();
  13315. }
  13316. return 1;
  13317. }
  13318.  
  13319. var sub_10C4C()
  13320. {
  13321. return rPtr((&g_2394815) + 10);
  13322. }
  13323.  
  13324. var sub_10C5A()
  13325. {
  13326. return g_1344076;
  13327. }
  13328.  
  13329. void sub_10C66()
  13330. {
  13331. SCRIPT::TERMINATE_THIS_THREAD();
  13332. }
  13333.  
  13334. void sub_10C72()
  13335. {
  13336. sub_60D9(1);
  13337. }
  13338.  
  13339. var sub_10C7F(var A_0, var A_1)
  13340. {
  13341. if ((A_1 != null) && (sub_F34C(A_0) != 0))
  13342. {
  13343. return 1;
  13344. }
  13345. bool flag1 = getElem(A_0, &g_1574052, 1136) == 2;
  13346. bool flag2 = flag1 | (getElem(A_0, &g_1574052, 1136) == 1);
  13347. bool flag3 = flag2 | (getElem(A_0, &g_1574052, 1136) == 0);
  13348. bool flag4 = flag3 | (getElem(A_0, &g_1574052, 1136) == 3);
  13349. if (flag4 | (getElem(A_0, &g_1574052, 1136) == 8))
  13350. {
  13351. return 1;
  13352. }
  13353. return 0;
  13354. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement