Advertisement
Guest User

Chop || Script Dumps || NGU

a guest
Jun 29th, 2014
1,048
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 265.32 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 chop.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_17 = "NULL";
  21. l_18 = 0f;
  22. l_22 = -0.0375f;
  23. l_23 = 0.17f;
  24. l_29 = -1;
  25. l_60 = "null";
  26. l_61 = -1;
  27. l_62 = -1;
  28. l_88 = 1;
  29. l_362 = 200f;
  30. l_383 = GAMEPLAY::GET_GAME_TIMER();
  31. l_384 = 10000;
  32. l_436 = -1;
  33. l_445 = 0x589D7B2F;
  34. l_446 = "std_ds_open_door_for_chop";
  35. l_447 = "creatures@rottweiler@in_vehicle@std_car";
  36. l_455 = GAMEPLAY::GET_GAME_TIMER();
  37. l_458 = GAMEPLAY::GET_GAME_TIMER();
  38. struct _s = getElemPtr(0, (&l_459) + 1, 12);
  39. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_385);
  40. if (SCRIPT::0x029D3841(SCRIPT::0x2BEE1F45()) > 1)
  41. {
  42. sub_B3D4();
  43. }
  44. if (sub_B3A7(63) == 0)
  45. {
  46. sub_B3D4();
  47. }
  48. bool flag1 = sub_B38F(5) == 0;
  49. if (flag1 & (sub_B38F(6) == 0))
  50. {
  51. sub_B3D4();
  52. }
  53. var num1 = sub_B38F(6);
  54. if (num1 != 0)
  55. {
  56. struct _s = &l_385;
  57. }
  58. if ((num1 & (sub_B300(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1, 0) == 5)) != 0)
  59. {
  60. sub_B3D4();
  61. }
  62. if (sub_B19C(1) == 0)
  63. {
  64. sub_B3D4();
  65. }
  66. if (g_19602 == 1)
  67. {
  68. sub_B3D4();
  69. }
  70. if (g_78536 == 1)
  71. {
  72. sub_B3D4();
  73. }
  74. if ((sub_AFF3(0) != 0) && (SCRIPT::0x029D3841(0xF9368356) == 0))
  75. {
  76. sub_B3D4();
  77. }
  78. if (PLAYER::0x4B37333C(3) != 0)
  79. {
  80. sub_B3D4();
  81. }
  82. bool flag2 = sub_AFCC() == 206;
  83. bool flag3 = flag2 | (sub_AFCC() == 207);
  84. bool flag4 = flag3 | (sub_AFCC() == 204);
  85. bool flag5 = flag4 | (sub_AFCC() == 205);
  86. if (flag5 | (sub_AFCC() == 203))
  87. {
  88. l_363 = 1;
  89. }
  90. else if (sub_AFCC() == 47)
  91. {
  92. l_364 = 1;
  93. }
  94. else
  95. {
  96. struct _s = &l_385;
  97. bool flag6 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 154.0731f, 765.5721f, 209.6901f, 1) <= 50f;
  98. if (!flag6)
  99. {
  100. struct _s = &l_385;
  101. }
  102. bool flag7 = flag6 | (GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -268.139f, 415.2881f, 109.7258f, 1) <= 50f);
  103. if (!flag7)
  104. {
  105. struct _s = &l_385;
  106. }
  107. if (flag7 | (GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 314.4171f, 965.207f, 208.4024f, 1) <= 50f))
  108. {
  109. sub_B3D4();
  110. }
  111. l_363 = 0;
  112. l_364 = 0;
  113. if (g_59840 == 1)
  114. {
  115. sub_B3D4();
  116. }
  117. }
  118. while (true)
  119. {
  120. if (1 == 0)
  121. {
  122. return;
  123. }
  124. if (sub_AB5A() == 0)
  125. {
  126. switch (l_25)
  127. {
  128. case 0:
  129. sub_A171();
  130. break;
  131. case 1:
  132. sub_24B();
  133. break;
  134. }
  135. }
  136. else
  137. {
  138. sub_B3D4();
  139. }
  140. SYSTEM::WAIT(0);
  141. }
  142. }
  143.  
  144. void sub_24B()
  145. {
  146. if ((PED::IS_PED_INJURED(PLAYER::PLAYER_PED_ID()) == 0) && (PED::IS_PED_INJURED(l_43) == 0))
  147. {
  148. sub_A10C();
  149. sub_A0E4();
  150. if (l_26 != 11)
  151. {
  152. sub_A0B6();
  153. sub_9DE3();
  154. sub_9399();
  155. sub_9351();
  156. sub_92A2();
  157. }
  158. sub_294();
  159. }
  160. }
  161.  
  162. void sub_294()
  163. {
  164. var num3;
  165. var num4;
  166. var num5;
  167. switch (l_26)
  168. {
  169. case 11:
  170. if (l_27 != 0)
  171. {
  172. if (l_27 == 1)
  173. {
  174. if (sub_91DB() != 0)
  175. {
  176. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@sleep_in_kennel@");
  177. var num1 = STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@sleep_in_kennel@");
  178. if ((num1 & sub_9282(l_43)) != 0)
  179. {
  180. AI::TASK_PLAY_ANIM(l_43, "creatures@rottweiler@amb@sleep_in_kennel@", "exit_kennel", 8f, -8f, -1, 0, 0, 0, 0, 0);
  181. sub_91CA("WHINE");
  182. l_27++;
  183. }
  184. }
  185. }
  186. else if ((l_27 == 2) && (AI::GET_SCRIPT_TASK_STATUS(l_43, 0x87B9A382) == 7))
  187. {
  188. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@sleep_in_kennel@");
  189. sub_91CA("PLAYFUL");
  190. sub_914D(1, 1);
  191. }
  192. return;
  193. }
  194. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@sleep_in_kennel@");
  195. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@sleep_in_kennel@") != 0)
  196. {
  197. if (sub_9282(l_43) != 0)
  198. {
  199. AI::TASK_PLAY_ANIM(l_43, "creatures@rottweiler@amb@sleep_in_kennel@", "sleep_in_kennel", 1000f, -8f, -1, 1, 0, 0, 0, 0);
  200. struct _s = (&l_367) + 5;
  201. sub_9228(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtr((&l_367) + 8), 0, 1);
  202. }
  203. l_376 = GAMEPLAY::GET_GAME_TIMER();
  204. l_27++;
  205. }
  206. return;
  207. case 1:
  208. {
  209. bool flag1 = l_378 == 0;
  210. if (flag1 & sub_8FD9(PLAYER::PLAYER_PED_ID(), 1))
  211. {
  212. sub_914D(18, 1);
  213. }
  214. else
  215. {
  216. sub_8F9C();
  217. sub_8F5A();
  218. sub_8E39();
  219. }
  220. return;
  221. }
  222. case 17:
  223. {
  224. sub_8F9C();
  225. sub_8F5A();
  226. if (l_27 != 0)
  227. {
  228. if (l_27 == 1)
  229. {
  230. var num19;
  231. var num18;
  232. bool flag2 = sub_8DE6(l_43, 0x87B9A382) == 0;
  233. if (!flag2)
  234. {
  235. num18 = ENTITY::IS_ENTITY_PLAYING_ANIM(l_43, getElem(0, &l_56, 4), "enter", 3);
  236. }
  237. bool flag3 = flag2 | (num18 & (ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(l_43, getElem(0, &l_56, 4), "enter") > 0.98f));
  238. if (!flag3)
  239. {
  240. num19 = ENTITY::IS_ENTITY_PLAYING_ANIM(l_43, getElem(1, &l_56, 4), l_60, 3);
  241. }
  242. if (flag3 | (num19 & (ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(l_43, getElem(1, &l_56, 4), l_60) > 0.98f)))
  243. {
  244. if (l_28 == 0)
  245. {
  246. if (l_55 == 1)
  247. {
  248. AI::TASK_PLAY_ANIM(l_43, getElem(1, &l_56, 4), "base", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  249. l_60 = "base";
  250. l_27++;
  251. }
  252. else
  253. {
  254. sub_8D55();
  255. if (GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 4) == 0)
  256. {
  257. l_27++;
  258. }
  259. }
  260. }
  261. else
  262. {
  263. if (l_28 != 5)
  264. {
  265. sub_8C08("CHOP_WAIT", 0);
  266. }
  267. AI::TASK_PLAY_ANIM(l_43, getElem(2, &l_56, 4), "exit", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  268. l_27 = 3;
  269. }
  270. }
  271. }
  272. else if (l_27 == 2)
  273. {
  274. var num20;
  275. bool flag4 = sub_8DE6(l_43, 0x87B9A382) == 0;
  276. if (!flag4)
  277. {
  278. num20 = ENTITY::IS_ENTITY_PLAYING_ANIM(l_43, getElem(1, &l_56, 4), l_60, 3);
  279. }
  280. if (flag4 | (num20 & (ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(l_43, getElem(1, &l_56, 4), l_60) > 0.98f)))
  281. {
  282. AI::TASK_PLAY_ANIM(l_43, getElem(2, &l_56, 4), "exit", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  283. l_27++;
  284. }
  285. }
  286. else if ((l_27 == 3) && (sub_8DE6(l_43, 0x87B9A382) == 0))
  287. {
  288. l_392 = 0;
  289. if (l_28 == 0)
  290. {
  291. sub_914D(1, 1);
  292. }
  293. else
  294. {
  295. sub_914D(l_28, 1);
  296. }
  297. }
  298. return;
  299. }
  300. STREAMING::REQUEST_ANIM_DICT(getElem(0, &l_56, 4));
  301. STREAMING::REQUEST_ANIM_DICT(getElem(1, &l_56, 4));
  302. STREAMING::REQUEST_ANIM_DICT(getElem(2, &l_56, 4));
  303. var num16 = STREAMING::HAS_ANIM_DICT_LOADED(getElem(0, &l_56, 4));
  304. var num17 = num16 & STREAMING::HAS_ANIM_DICT_LOADED(getElem(1, &l_56, 4));
  305. if ((num17 & STREAMING::HAS_ANIM_DICT_LOADED(getElem(2, &l_56, 4))) != 0)
  306. {
  307. AI::TASK_PLAY_ANIM(l_43, getElem(0, &l_56, 4), "enter", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  308. l_27++;
  309. }
  310. return;
  311. }
  312. case 18:
  313. sub_8F5A();
  314. if (l_27 == 0)
  315. {
  316. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@enter");
  317. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@idle_a");
  318. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@exit");
  319. AI::TASK_GO_TO_ENTITY(l_43, PLAYER::PLAYER_PED_ID(), 20000, 3f, 1f, 0x40000000, 0);
  320. l_27++;
  321. }
  322. else
  323. {
  324. if (l_27 != 1)
  325. {
  326. if ((l_27 == 2) && (sub_8BCD() != 0))
  327. {
  328. l_378 = 1;
  329. if (l_28 == 0)
  330. {
  331. sub_914D(1, 1);
  332. }
  333. else
  334. {
  335. sub_914D(l_28, 1);
  336. }
  337. }
  338. return;
  339. }
  340. if (l_28 != 0)
  341. {
  342. sub_914D(l_28, 1);
  343. return;
  344. }
  345. if (sub_8DE6(l_43, 0x4924437D) == 0)
  346. {
  347. var num21 = STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@world_dog_barking@enter");
  348. var num22 = num21 & STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@world_dog_barking@idle_a");
  349. if ((num22 & STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@world_dog_barking@exit")) != 0)
  350. {
  351. AI::OPEN_SEQUENCE_TASK(&l_89);
  352. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, PLAYER::PLAYER_PED_ID(), 0);
  353. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@amb@world_dog_barking@enter", "enter", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  354. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@amb@world_dog_barking@idle_a", "idle_a", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  355. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@amb@world_dog_barking@exit", "exit", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  356. AI::CLOSE_SEQUENCE_TASK(l_89);
  357. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  358. AI::CLEAR_SEQUENCE_TASK(&l_89);
  359. l_27++;
  360. }
  361. }
  362. }
  363. return;
  364. case 2:
  365. {
  366. sub_88B3();
  367. if (l_27 != 0)
  368. {
  369. if (l_27 == 1)
  370. {
  371. sub_4DFE();
  372. sub_36DF();
  373. sub_369C();
  374. sub_304C();
  375. sub_2E69();
  376. sub_2CAE();
  377. sub_8F9C();
  378. }
  379. return;
  380. }
  381. var num23 = sub_9282(l_43);
  382. if ((num23 & (PED::IS_PED_IN_ANY_VEHICLE(l_43, 0) == 0)) != 0)
  383. {
  384. AI::CLEAR_PED_TASKS(l_43);
  385. }
  386. sub_8855();
  387. sub_880B(0);
  388. sub_87B6(1);
  389. l_34 = -1;
  390. l_310 = GAMEPLAY::GET_GAME_TIMER();
  391. l_36 = GAMEPLAY::GET_GAME_TIMER();
  392. l_37 = GAMEPLAY::GET_GAME_TIMER() - 10000;
  393. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  394. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_50);
  395. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@melee@streamed_taunts@");
  396. l_27++;
  397. return;
  398. }
  399. case 3:
  400. {
  401. if (l_27 != 0)
  402. {
  403. if ((l_27 == 1) && (AI::GET_SCRIPT_TASK_STATUS(l_43, 0x2A89B8A7) == 7))
  404. {
  405. struct _s = &l_367;
  406. if (ENTITY::IS_ENTITY_AT_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2.5f, 2.5f, 4f, 0, 1, 0) != 0)
  407. {
  408. sub_914D(1, 1);
  409. }
  410. else
  411. {
  412. sub_914D(3, 1);
  413. }
  414. }
  415. return;
  416. }
  417. sub_91CA("WHINE");
  418. sub_8C08("CHOP_GOHOME", 0);
  419. sub_2C53(0);
  420. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@melee@streamed_taunts@");
  421. var num24 = sub_9282(PLAYER::PLAYER_PED_ID());
  422. if ((num24 & WEAPON::HAS_PED_GOT_WEAPON(PLAYER::PLAYER_PED_ID(), 0x23C9F95C, 0)) != 0)
  423. {
  424. WEAPON::REMOVE_WEAPON_FROM_PED(PLAYER::PLAYER_PED_ID(), 0x23C9F95C);
  425. }
  426. if (sub_8FD9(l_43, 1) != 0)
  427. {
  428. sub_914D(1, 1);
  429. }
  430. else
  431. {
  432. struct _s = &l_367;
  433. if (sub_2C1A(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1) >= 100f)
  434. {
  435. sub_914D(4, 1);
  436. return;
  437. }
  438. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  439. {
  440. PED::REMOVE_PED_FROM_GROUP(l_43);
  441. }
  442. AI::CLEAR_PED_TASKS(l_43);
  443. struct _s = &l_367;
  444. if (sub_2C1A(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1) < 20f)
  445. {
  446. struct _s = &l_367;
  447. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1f, 20000, 0.25f, 32, rPtr((&l_367) + 3));
  448. }
  449. else
  450. {
  451. struct _s = &l_367;
  452. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3f, 60000, 0.25f, 32, rPtr((&l_367) + 3));
  453. }
  454. l_27++;
  455. }
  456. return;
  457. }
  458. case 4:
  459. if (sub_8DE6(l_43, 0x6BA30179) == 0)
  460. {
  461. AI::TASK_SMART_FLEE_PED(l_43, PLAYER::PLAYER_PED_ID(), 100f, -1, 0, 0);
  462. }
  463. return;
  464. case 5:
  465. if (l_27 != 0)
  466. {
  467. if (l_27 == 1)
  468. {
  469. bool flag7;
  470. var num25;
  471. bool flag5 = sub_27B9() == 0;
  472. if (!flag5)
  473. {
  474. num25 = PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0);
  475. }
  476. bool flag6 = flag5 | (num25 & (sub_2646() == 0));
  477. if (!flag6)
  478. {
  479. flag7 = l_41 > -1;
  480. }
  481. bool flag8 = flag6 | (flag7 & ((GAMEPLAY::GET_GAME_TIMER() - l_41) > 30000));
  482. if (!flag8)
  483. {
  484. struct _s = &l_356;
  485. }
  486. if (flag8 | ENTITY::IS_ENTITY_AT_COORD(PLAYER::PLAYER_PED_ID(), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1f, 1f, 1f, 0, 1, 0))
  487. {
  488. l_27++;
  489. }
  490. else
  491. {
  492. struct _s = &l_359;
  493. if (ENTITY::IS_ENTITY_AT_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3f, 3f, 4f, 0, 1, 0) != 0)
  494. {
  495. sub_2580();
  496. if (l_41 == -1)
  497. {
  498. l_41 = GAMEPLAY::GET_GAME_TIMER();
  499. }
  500. }
  501. else
  502. {
  503. sub_246C();
  504. if (sub_8DE6(l_43, 0x2A89B8A7) != 0)
  505. {
  506. num3 = AI::GET_NAVMESH_ROUTE_DISTANCE_REMAINING(l_43, &num5, &num4);
  507. if (num3 == 2)
  508. {
  509. l_379++;
  510. }
  511. else if ((num3 == 3) && (l_379 != 0))
  512. {
  513. l_379 = 0;
  514. }
  515. if (l_379 > 9)
  516. {
  517. sub_2980();
  518. }
  519. }
  520. else
  521. {
  522. struct _s = &l_359;
  523. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3f, -1, 3f, 36, 0x471C4000);
  524. }
  525. }
  526. }
  527. }
  528. else if (l_27 == 2)
  529. {
  530. AI::CLEAR_PED_TASKS(l_43);
  531. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@indication@");
  532. sub_914D(2, 1);
  533. }
  534. break;
  535. }
  536. if (sub_2AD6() != 0)
  537. {
  538. if (sub_29D4() == 0)
  539. {
  540. sub_2980();
  541. break;
  542. }
  543. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  544. {
  545. PED::REMOVE_PED_FROM_GROUP(l_43);
  546. }
  547. AI::CLEAR_PED_TASKS(l_43);
  548. l_31 = GAMEPLAY::GET_GAME_TIMER();
  549. l_32 = 1000;
  550. l_379 = 0;
  551. l_41 = -1;
  552. sub_29C8();
  553. l_27++;
  554. }
  555. break;
  556. case 6:
  557. if (l_27 != 0)
  558. {
  559. if ((l_27 == 1) && (sub_9282(PLAYER::PLAYER_PED_ID()) != 0))
  560. {
  561. bool flag9 = sub_8DE6(l_43, 0x2E85A751) == 0;
  562. bool flag10 = flag9 & (PED::IS_PED_IN_COMBAT(l_43, 0) == 0);
  563. if (flag10 | PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1))
  564. {
  565. l_36 = GAMEPLAY::GET_GAME_TIMER();
  566. sub_914D(2, 1);
  567. }
  568. }
  569. }
  570. else
  571. {
  572. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  573. {
  574. PED::REMOVE_PED_FROM_GROUP(l_43);
  575. }
  576. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_43, 0);
  577. l_27++;
  578. }
  579. sub_88B3();
  580. return;
  581. case 7:
  582. if (l_27 != 0)
  583. {
  584. if ((l_27 == 1) && (sub_8BCD() != 0))
  585. {
  586. sub_8C08("CHOP_RETURN1", 0);
  587. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@tricks@");
  588. sub_2449();
  589. }
  590. return;
  591. }
  592. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@tricks@");
  593. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@tricks@") != 0)
  594. {
  595. AI::CLEAR_PED_TASKS(l_43);
  596. AI::OPEN_SEQUENCE_TASK(&l_89);
  597. if (PED::IS_PED_FACING_PED(l_43, PLAYER::PLAYER_PED_ID(), 10f) == 0)
  598. {
  599. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, PLAYER::PLAYER_PED_ID(), 0);
  600. }
  601. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "beg_enter", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  602. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "beg_loop", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  603. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "beg_loop", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  604. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "beg_exit", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  605. AI::CLOSE_SEQUENCE_TASK(l_89);
  606. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  607. AI::CLEAR_SEQUENCE_TASK(&l_89);
  608. sub_91CA("PLAYFUL");
  609. l_27++;
  610. }
  611. return;
  612. case 8:
  613. if (l_27 != 0)
  614. {
  615. if ((l_27 == 1) && (sub_8BCD() != 0))
  616. {
  617. sub_8C08("CHOP_RETURN1", 0);
  618. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@tricks@");
  619. sub_2449();
  620. }
  621. return;
  622. }
  623. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@tricks@");
  624. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@tricks@") != 0)
  625. {
  626. AI::CLEAR_PED_TASKS(l_43);
  627. AI::OPEN_SEQUENCE_TASK(&l_89);
  628. if (PED::IS_PED_FACING_PED(l_43, PLAYER::PLAYER_PED_ID(), 10f) == 0)
  629. {
  630. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, PLAYER::PLAYER_PED_ID(), 0);
  631. }
  632. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_enter", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  633. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_loop", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  634. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_loop", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  635. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_exit", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  636. AI::CLOSE_SEQUENCE_TASK(l_89);
  637. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  638. AI::CLEAR_SEQUENCE_TASK(&l_89);
  639. sub_91CA("PLAYFUL");
  640. l_27++;
  641. }
  642. return;
  643. case 9:
  644. if (l_27 != 0)
  645. {
  646. if ((l_27 == 1) && (sub_8BCD() != 0))
  647. {
  648. sub_8C08("CHOP_RETURN1", 0);
  649. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@tricks@");
  650. sub_2449();
  651. }
  652. return;
  653. }
  654. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@tricks@");
  655. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@tricks@") != 0)
  656. {
  657. AI::CLEAR_PED_TASKS(l_43);
  658. AI::OPEN_SEQUENCE_TASK(&l_89);
  659. if (PED::IS_PED_FACING_PED(l_43, PLAYER::PLAYER_PED_ID(), 10f) == 0)
  660. {
  661. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, PLAYER::PLAYER_PED_ID(), 0);
  662. }
  663. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_enter", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  664. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "paw_right_enter", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  665. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "paw_right_loop", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  666. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "paw_right_loop", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  667. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "paw_right_exit", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  668. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_exit", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  669. AI::CLOSE_SEQUENCE_TASK(l_89);
  670. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  671. AI::CLEAR_SEQUENCE_TASK(&l_89);
  672. sub_91CA("PLAYFUL");
  673. l_27++;
  674. }
  675. return;
  676. case 10:
  677. CONTROLS::DISABLE_CONTROL_ACTION(0, 215);
  678. CONTROLS::DISABLE_CONTROL_ACTION(0, 213);
  679. CONTROLS::DISABLE_CONTROL_ACTION(0, 214);
  680. CONTROLS::DISABLE_CONTROL_ACTION(0, 216);
  681. CONTROLS::DISABLE_CONTROL_ACTION(0, 31);
  682. CONTROLS::DISABLE_CONTROL_ACTION(0, 30);
  683. CONTROLS::DISABLE_CONTROL_ACTION(0, 22);
  684. CONTROLS::DISABLE_CONTROL_ACTION(0, 36);
  685. CONTROLS::DISABLE_CONTROL_ACTION(0, 42);
  686. CONTROLS::DISABLE_CONTROL_ACTION(0, 121);
  687. CONTROLS::DISABLE_CONTROL_ACTION(0, 120);
  688. CONTROLS::DISABLE_CONTROL_ACTION(0, 210);
  689. CONTROLS::DISABLE_CONTROL_ACTION(0, 211);
  690. CONTROLS::DISABLE_CONTROL_ACTION(0, 123);
  691. CONTROLS::DISABLE_CONTROL_ACTION(0, 24);
  692. CONTROLS::DISABLE_CONTROL_ACTION(0, 204);
  693. CONTROLS::DISABLE_CONTROL_ACTION(0, 209);
  694. CONTROLS::DISABLE_CONTROL_ACTION(0, 208);
  695. CONTROLS::DISABLE_CONTROL_ACTION(0, 37);
  696. CONTROLS::DISABLE_CONTROL_ACTION(0, 21);
  697. if (l_27 == 0)
  698. {
  699. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@tricks@");
  700. AI::CLEAR_PED_TASKS(PLAYER::PLAYER_PED_ID());
  701. AI::TASK_TURN_PED_TO_FACE_ENTITY(PLAYER::PLAYER_PED_ID(), l_43, 0);
  702. l_27++;
  703. }
  704. else
  705. {
  706. var num6;
  707. if (l_27 != 1)
  708. {
  709. if (l_27 == 2)
  710. {
  711. bool flag11 = AI::GET_SCRIPT_TASK_STATUS(l_43, 0x2A89B8A7) == 7;
  712. if (!flag11)
  713. {
  714. struct _s = &num6;
  715. }
  716. if (flag11 | (sub_2C1A(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0) < 0.3f))
  717. {
  718. if (PED::IS_PED_FACING_PED(l_43, PLAYER::PLAYER_PED_ID(), 15f) == 0)
  719. {
  720. AI::TASK_TURN_PED_TO_FACE_ENTITY(l_43, PLAYER::PLAYER_PED_ID(), 0);
  721. l_452 = 0;
  722. }
  723. else
  724. {
  725. l_452 = 1;
  726. }
  727. if (PED::IS_PED_FACING_PED(PLAYER::PLAYER_PED_ID(), l_43, 15f) == 0)
  728. {
  729. AI::TASK_TURN_PED_TO_FACE_ENTITY(PLAYER::PLAYER_PED_ID(), l_43, 0);
  730. l_453 = 0;
  731. }
  732. else
  733. {
  734. l_453 = 1;
  735. }
  736. l_27++;
  737. }
  738. }
  739. else if (l_27 == 3)
  740. {
  741. bool flag14;
  742. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@tricks@");
  743. bool flag12 = l_452 == 1;
  744. bool flag13 = flag12 | (AI::GET_SCRIPT_TASK_STATUS(l_43, 0xCBCE4595) == 7);
  745. if (flag13)
  746. {
  747. flag14 = l_453 == 1;
  748. }
  749. bool flag15 = flag13 & (flag14 | (AI::GET_SCRIPT_TASK_STATUS(PLAYER::PLAYER_PED_ID(), 0xCBCE4595) == 7));
  750. if (flag15 & STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@tricks@"))
  751. {
  752. AI::TASK_PLAY_ANIM(l_43, "creatures@rottweiler@tricks@", "petting_chop", 8f, -8f, -1, 8, 0, 0, 0, 0);
  753. AI::TASK_PLAY_ANIM(PLAYER::PLAYER_PED_ID(), "creatures@rottweiler@tricks@", "petting_franklin", 8f, -8f, -1, 8, 0, 0, 0, 0);
  754. sub_91CA("PLAYFUL");
  755. l_27++;
  756. }
  757. }
  758. else if ((l_27 == 4) && (AI::GET_SCRIPT_TASK_STATUS(l_43, 0x87B9A382) == 7))
  759. {
  760. sub_8C08("CHOP_RETURN1", 0);
  761. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@tricks@");
  762. sub_2449();
  763. }
  764. return;
  765. }
  766. if (AI::GET_SCRIPT_TASK_STATUS(PLAYER::PLAYER_PED_ID(), 0xCBCE4595) == 7)
  767. {
  768. AI::CLEAR_PED_TASKS(l_43);
  769. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::PLAYER_PED_ID(), 0f, 1f, 1f);
  770. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  771. struct _s = &num6;
  772. GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), (&num6) + 2);
  773. struct _s = &num6;
  774. if (sub_2C1A(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0) > 0.3f)
  775. {
  776. struct _s = &num6;
  777. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1f, 5000, 0x3E800000, 0, 0x471C4000);
  778. }
  779. l_27++;
  780. }
  781. }
  782. return;
  783. case 12:
  784. if (l_27 != 0)
  785. {
  786. if (l_27 == 1)
  787. {
  788. if (sub_2438() == 0)
  789. {
  790. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@tricks@");
  791. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@tricks@") != 0)
  792. {
  793. AI::CLEAR_PED_TASKS(l_43);
  794. AI::TASK_PLAY_ANIM(l_43, "creatures@rottweiler@tricks@", "sit_exit", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  795. sub_8C08("CHOP_WALK", 0);
  796. l_27++;
  797. }
  798. }
  799. }
  800. else if ((l_27 == 2) && (AI::GET_SCRIPT_TASK_STATUS(l_43, 0x87B9A382) == 7))
  801. {
  802. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@tricks@");
  803. l_36 = GAMEPLAY::GET_GAME_TIMER();
  804. sub_914D(2, 1);
  805. }
  806. return;
  807. }
  808. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  809. {
  810. PED::REMOVE_PED_FROM_GROUP(l_43);
  811. }
  812. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@tricks@");
  813. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@tricks@") != 0)
  814. {
  815. AI::CLEAR_PED_TASKS(l_43);
  816. AI::OPEN_SEQUENCE_TASK(&l_89);
  817. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, PLAYER::PLAYER_PED_ID(), 0);
  818. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_enter", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  819. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@tricks@", "sit_loop", 8f, -8f, -1, 4097, 0, 0, 0, 0);
  820. AI::CLOSE_SEQUENCE_TASK(l_89);
  821. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  822. AI::CLEAR_SEQUENCE_TASK(&l_89);
  823. l_27++;
  824. }
  825. return;
  826. case 13:
  827. {
  828. if (l_27 != 0)
  829. {
  830. if (l_27 == 1)
  831. {
  832. if (sub_8BCD() != 0)
  833. {
  834. if (GRAPHICS::DOES_PARTICLE_FX_LOOPED_EXIST(l_53) != 0)
  835. {
  836. GRAPHICS::STOP_PARTICLE_FX_LOOPED(l_53, 0);
  837. }
  838. if (sub_8FD9(l_43, 0) != 0)
  839. {
  840. sub_914D(1, 1);
  841. }
  842. else
  843. {
  844. sub_914D(2, 1);
  845. }
  846. }
  847. else if (GRAPHICS::DOES_PARTICLE_FX_LOOPED_EXIST(l_53) == 0)
  848. {
  849. bool flag16 = l_38 > -1;
  850. if (flag16 & ((GAMEPLAY::GET_GAME_TIMER() - l_38) > 4000))
  851. {
  852. l_53 = GRAPHICS::START_PARTICLE_FX_LOOPED_ON_ENTITY("ent_anim_dog_poo", l_43, 0f, -0.15f, -0.2f, 0f, 0f, 0f, 0x3F800000, 0, 0, 0);
  853. }
  854. }
  855. else if ((GAMEPLAY::GET_GAME_TIMER() - l_38) > 10000)
  856. {
  857. GRAPHICS::STOP_PARTICLE_FX_LOOPED(l_53, 0);
  858. l_38 = -1;
  859. }
  860. }
  861. return;
  862. }
  863. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  864. {
  865. PED::REMOVE_PED_FROM_GROUP(l_43);
  866. }
  867. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@move");
  868. STREAMING::REQUEST_PTFX_ASSET();
  869. var num26 = STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@move");
  870. if ((num26 & STREAMING::HAS_PTFX_ASSET_LOADED()) != 0)
  871. {
  872. AI::CLEAR_PED_TASKS(l_43);
  873. AI::OPEN_SEQUENCE_TASK(&l_89);
  874. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "dump_enter", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  875. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "dump_loop", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  876. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "dump_exit", 8f, -8f, -1, 4096, 0, 0, 0, 0);
  877. AI::CLOSE_SEQUENCE_TASK(l_89);
  878. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  879. AI::CLEAR_SEQUENCE_TASK(&l_89);
  880. sub_91CA("AGITATED");
  881. l_38 = GAMEPLAY::GET_GAME_TIMER();
  882. l_27++;
  883. }
  884. return;
  885. }
  886. case 14:
  887. if (l_27 != 0)
  888. {
  889. if (l_27 == 1)
  890. {
  891. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@move");
  892. if (sub_8DE6(l_43, 0x2A89B8A7) == 0)
  893. {
  894. struct _s = ENTITY::GET_ENTITY_COORDS(l_393, 1);
  895. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2f, 20000, 0.25f, 36, 0x471C4000);
  896. }
  897. struct _s = ENTITY::GET_ENTITY_COORDS(l_393, 1);
  898. if (sub_2C1A(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1) < 2f)
  899. {
  900. bool flag17 = GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 10) == 0;
  901. bool flag18 = flag17 & (UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0);
  902. if (flag18 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  903. {
  904. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 10);
  905. if (l_365 == 0)
  906. {
  907. sub_2421("CHOP_H_BEHAVE", -1);
  908. }
  909. else
  910. {
  911. sub_2421("CHOP_H_BEHAVA", -1);
  912. }
  913. }
  914. AI::CLEAR_PED_TASKS(l_43);
  915. var num27 = STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@move");
  916. if ((num27 & (ENTITY::GET_ENTITY_SPEED(l_43) < 1f)) != 0)
  917. {
  918. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  919. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_395);
  920. l_394 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 2);
  921. struct _s = &l_395;
  922. struct _s = ENTITY::GET_ENTITY_COORDS(l_393, 1);
  923. l_401 = sub_2407(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  924. if (l_394 == 0)
  925. {
  926. struct _s = &l_395;
  927. struct _s = OBJECT::0x87A42A12(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), l_401, -0.5f, 1f, 0f);
  928. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_398);
  929. }
  930. else
  931. {
  932. struct _s = &l_395;
  933. struct _s = OBJECT::0x87A42A12(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), l_401, 0.5f, 1f, 0f);
  934. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_398);
  935. }
  936. AI::OPEN_SEQUENCE_TASK(&l_89);
  937. struct _s = &l_398;
  938. AI::TASK_TURN_PED_TO_FACE_COORD(0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0);
  939. if (l_394 == 0)
  940. {
  941. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "pee_right_enter", 8f, -8f, -1, 0, 0, 0, 0, 0);
  942. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "pee_right_idle", 8f, -8f, -1, 0, 0, 0, 0, 0);
  943. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "pee_right_exit", 8f, -8f, -1, 0, 0, 0, 0, 0);
  944. }
  945. else
  946. {
  947. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "pee_left_enter", 8f, -8f, -1, 0, 0, 0, 0, 0);
  948. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "pee_left_idle", 8f, -8f, -1, 0, 0, 0, 0, 0);
  949. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "pee_left_exit", 8f, -8f, -1, 0, 0, 0, 0, 0);
  950. }
  951. AI::CLOSE_SEQUENCE_TASK(l_89);
  952. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  953. AI::CLEAR_SEQUENCE_TASK(&l_89);
  954. l_38 = GAMEPLAY::GET_GAME_TIMER();
  955. l_27++;
  956. }
  957. }
  958. }
  959. else if (l_27 == 2)
  960. {
  961. if (sub_8BCD() != 0)
  962. {
  963. if (GRAPHICS::DOES_PARTICLE_FX_LOOPED_EXIST(l_53) != 0)
  964. {
  965. GRAPHICS::STOP_PARTICLE_FX_LOOPED(l_53, 0);
  966. }
  967. sub_91CA("BARK");
  968. sub_914D(2, 1);
  969. }
  970. else if (GRAPHICS::DOES_PARTICLE_FX_LOOPED_EXIST(l_53) == 0)
  971. {
  972. bool flag19 = l_38 > -1;
  973. if (flag19 & ((GAMEPLAY::GET_GAME_TIMER() - l_38) > 7000))
  974. {
  975. if (l_394 == 0)
  976. {
  977. l_53 = GRAPHICS::START_PARTICLE_FX_LOOPED_ON_ENTITY("ent_anim_dog_peeing", l_43, 0.1f, -0.32f, -0.04f, 0f, 0f, 30f, 0x3F800000, 0, 0, 0);
  978. }
  979. else
  980. {
  981. l_53 = GRAPHICS::START_PARTICLE_FX_LOOPED_ON_ENTITY("ent_anim_dog_peeing", l_43, -0.1f, -0.32f, -0.04f, 0f, 0f, 150f, 0x3F800000, 0, 0, 0);
  982. }
  983. }
  984. }
  985. else if ((GAMEPLAY::GET_GAME_TIMER() - l_38) > 16000)
  986. {
  987. GRAPHICS::STOP_PARTICLE_FX_LOOPED(l_53, 0);
  988. l_38 = -1;
  989. }
  990. }
  991. return;
  992. }
  993. STREAMING::REQUEST_PTFX_ASSET();
  994. if (STREAMING::HAS_PTFX_ASSET_LOADED() != 0)
  995. {
  996. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  997. {
  998. PED::REMOVE_PED_FROM_GROUP(l_43);
  999. }
  1000. sub_91CA("AGITATED");
  1001. l_27++;
  1002. }
  1003. return;
  1004. case 15:
  1005. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) != 0)
  1006. {
  1007. sub_2C53(0);
  1008. l_36 = GAMEPLAY::GET_GAME_TIMER();
  1009. sub_914D(2, 1);
  1010. return;
  1011. }
  1012. if (l_27 != 0)
  1013. {
  1014. if (l_27 == 1)
  1015. {
  1016. if (ENTITY::DOES_ENTITY_EXIST(l_437) != 0)
  1017. {
  1018. if (ENTITY::IS_ENTITY_IN_WATER(l_437) == 0)
  1019. {
  1020. if ((GAMEPLAY::GET_GAME_TIMER() - l_444) > 500)
  1021. {
  1022. if (sub_1CA6() != 0)
  1023. {
  1024. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@move");
  1025. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@move") != 0)
  1026. {
  1027. AI::OPEN_SEQUENCE_TASK(&l_89);
  1028. if (l_443 == 0x23C9F95C)
  1029. {
  1030. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "fetch_pickup", 8f, -8f, -1, 49152, 0, 0, 0, 0);
  1031. }
  1032. AI::TASK_GO_TO_ENTITY(0, PLAYER::PLAYER_PED_ID(), 20000, 4f, 3f, 0x40000000, 0);
  1033. AI::CLOSE_SEQUENCE_TASK(l_89);
  1034. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  1035. AI::CLEAR_SEQUENCE_TASK(&l_89);
  1036. if (l_443 == 0x23C9F95C)
  1037. {
  1038. l_441 = 1;
  1039. }
  1040. l_27++;
  1041. }
  1042. }
  1043. else if (sub_8DE6(l_43, 0x4924437D) == 0)
  1044. {
  1045. AI::TASK_GO_TO_ENTITY(l_43, l_437, 30000, 0.5f, 3f, 0x40000000, 0);
  1046. l_380++;
  1047. l_379 = 0;
  1048. if (l_380 > 3)
  1049. {
  1050. AI::TASK_GO_TO_ENTITY(l_43, PLAYER::PLAYER_PED_ID(), 20000, 5f, 3f, 0x40000000, 0);
  1051. sub_2C53(1);
  1052. l_27++;
  1053. }
  1054. }
  1055. else
  1056. {
  1057. num3 = AI::GET_NAVMESH_ROUTE_DISTANCE_REMAINING(l_43, &num5, &num4);
  1058. if (num3 == 2)
  1059. {
  1060. l_381 = ENTITY::GET_ENTITY_HEIGHT_ABOVE_GROUND(l_437);
  1061. if (l_381 < 1f)
  1062. {
  1063. l_379++;
  1064. }
  1065. }
  1066. else if ((num3 == 3) && (l_442 == 0))
  1067. {
  1068. sub_91CA("BARK");
  1069. if (l_443 == 0x23C9F95C)
  1070. {
  1071. sub_8C08("CHOP_FETCH", 0);
  1072. }
  1073. l_442 = 1;
  1074. }
  1075. if (l_379 > 9)
  1076. {
  1077. AI::TASK_GO_TO_ENTITY(l_43, PLAYER::PLAYER_PED_ID(), 20000, 5f, 3f, 0x40000000, 0);
  1078. sub_2C53(1);
  1079. l_27++;
  1080. }
  1081. }
  1082. }
  1083. }
  1084. else
  1085. {
  1086. AI::TASK_GO_TO_ENTITY(l_43, PLAYER::PLAYER_PED_ID(), 20000, 5f, 3f, 0x40000000, 0);
  1087. l_27++;
  1088. }
  1089. }
  1090. else
  1091. {
  1092. AI::TASK_GO_TO_ENTITY(l_43, PLAYER::PLAYER_PED_ID(), 20000, 5f, 3f, 0x40000000, 0);
  1093. l_27++;
  1094. }
  1095. }
  1096. else if (l_27 == 2)
  1097. {
  1098. if (l_441 == 1)
  1099. {
  1100. var num28 = ENTITY::DOES_ENTITY_EXIST(l_437);
  1101. var num29 = num28 & ENTITY::IS_ENTITY_PLAYING_ANIM(l_43, "creatures@rottweiler@move", "fetch_pickup", 3);
  1102. if ((num29 & (ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(l_43, "creatures@rottweiler@move", "fetch_pickup") > 0.25f)) != 0)
  1103. {
  1104. ENTITY::ATTACH_ENTITY_TO_ENTITY(l_437, l_43, 28, 0.2042f, 0f, -0.0608f, 0f, 0f, 0f, 0, 0, 0, 0, 2, 1);
  1105. AUDIO::SET_AUDIO_FLAG("DisableBarks", 1);
  1106. l_27++;
  1107. }
  1108. }
  1109. else
  1110. {
  1111. l_27++;
  1112. }
  1113. }
  1114. else if (l_27 == 3)
  1115. {
  1116. if (sub_1C4A(PLAYER::PLAYER_PED_ID(), l_43, 1) < 5f)
  1117. {
  1118. if (l_443 == 0x23C9F95C)
  1119. {
  1120. if (l_441 == 1)
  1121. {
  1122. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@move");
  1123. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@move") != 0)
  1124. {
  1125. AI::OPEN_SEQUENCE_TASK(&l_89);
  1126. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, PLAYER::PLAYER_PED_ID(), 0);
  1127. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@move", "fetch_drop", 8f, -8f, -1, 16384, 0, 0, 0, 0);
  1128. AI::CLOSE_SEQUENCE_TASK(l_89);
  1129. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  1130. AI::CLEAR_SEQUENCE_TASK(&l_89);
  1131. sub_8C08("CHOP_RETURN1", 0);
  1132. AUDIO::SET_AUDIO_FLAG("DisableBarks", 0);
  1133. l_27++;
  1134. }
  1135. }
  1136. else
  1137. {
  1138. sub_91CA("BREATH_AGITATED");
  1139. sub_8C08("CHOP_RETURN2", 0);
  1140. sub_914D(2, 1);
  1141. }
  1142. }
  1143. else
  1144. {
  1145. sub_91CA("BARK_WHINE");
  1146. sub_2C53(1);
  1147. sub_914D(2, 1);
  1148. }
  1149. }
  1150. }
  1151. else if (l_27 == 4)
  1152. {
  1153. bool flag20 = sub_8DE6(l_43, 0xE763797) == 0;
  1154. if (flag20 & (ENTITY::DOES_ENTITY_EXIST(l_437) == 0))
  1155. {
  1156. if (sub_1BF0(0) != 0)
  1157. {
  1158. sub_880B(0);
  1159. }
  1160. else
  1161. {
  1162. sub_880B(1);
  1163. }
  1164. l_36 = GAMEPLAY::GET_GAME_TIMER();
  1165. sub_914D(2, 1);
  1166. }
  1167. else if (ENTITY::DOES_ENTITY_EXIST(l_437) != 0)
  1168. {
  1169. if (ENTITY::IS_ENTITY_ATTACHED(l_437) != 0)
  1170. {
  1171. var num30 = ENTITY::IS_ENTITY_PLAYING_ANIM(l_43, "creatures@rottweiler@move", "fetch_drop", 3);
  1172. if ((num30 & (ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(l_43, "creatures@rottweiler@move", "fetch_drop") > 0.4f)) != 0)
  1173. {
  1174. ENTITY::DETACH_ENTITY(l_437, 1, 1);
  1175. }
  1176. }
  1177. else
  1178. {
  1179. bool flag21 = sub_1C4A(PLAYER::PLAYER_PED_ID(), l_437, 1) < 1.5f;
  1180. bool flag22 = flag21 | (sub_1C4A(PLAYER::PLAYER_PED_ID(), l_437, 1) > 20f);
  1181. if (flag22 | PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0))
  1182. {
  1183. sub_2C53(1);
  1184. }
  1185. if (sub_8DE6(l_43, 0xE763797) == 0)
  1186. {
  1187. sub_8855();
  1188. }
  1189. }
  1190. }
  1191. }
  1192. }
  1193. else
  1194. {
  1195. sub_2C53(1);
  1196. if (GAMEPLAY::0x507BC6F7(PLAYER::PLAYER_PED_ID(), l_443, 50f, &l_438, &l_437, 0) != 0)
  1197. {
  1198. sub_1D01(294, 0, 0);
  1199. WEAPON::SET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), 0xA2719263, 1);
  1200. l_441 = 0;
  1201. l_442 = 0;
  1202. l_380 = 0;
  1203. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  1204. {
  1205. PED::REMOVE_PED_FROM_GROUP(l_43);
  1206. }
  1207. l_444 = GAMEPLAY::GET_GAME_TIMER();
  1208. l_27++;
  1209. }
  1210. }
  1211. sub_88B3();
  1212. return;
  1213. case 16:
  1214. if (l_27 != 0)
  1215. {
  1216. if ((l_27 == 1) && (ENTITY::IS_ENTITY_ATTACHED(PLAYER::PLAYER_PED_ID()) == 0))
  1217. {
  1218. var num12;
  1219. var num9 = 99999f;
  1220. for (var i = 0; i < 4; i++)
  1221. {
  1222. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  1223. struct _s = getElemPtr(i, &l_63, 12);
  1224. var num10 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  1225. if (num10 < num9)
  1226. {
  1227. num9 = num10;
  1228. num12 = i;
  1229. }
  1230. }
  1231. if (ENTITY::IS_ENTITY_ATTACHED(l_43) != 0)
  1232. {
  1233. ENTITY::DETACH_ENTITY(l_43, 1, 1);
  1234. }
  1235. struct _s = getElemPtr(num12, &l_63, 12);
  1236. sub_9228(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), getElem(num12, &l_76, 4), 0, 1);
  1237. PED::0x187B9070(l_43, 0, 0);
  1238. l_36 = GAMEPLAY::GET_GAME_TIMER();
  1239. sub_914D(2, 1);
  1240. }
  1241. return;
  1242. }
  1243. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@in_vehicle@std_car");
  1244. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@in_vehicle@std_car") != 0)
  1245. {
  1246. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  1247. {
  1248. PED::REMOVE_PED_FROM_GROUP(l_43);
  1249. }
  1250. ENTITY::ATTACH_ENTITY_TO_ENTITY(l_43, ENTITY::GET_ENTITY_ATTACHED_TO(PLAYER::PLAYER_PED_ID()), 0, 0f, 0f, -6.1f, 0f, 0f, 0f, 1, 0, 0, 0, 2, 1);
  1251. AI::TASK_PLAY_ANIM(l_43, "creatures@rottweiler@in_vehicle@std_car", "sit", 1000f, -1000f, -1, 9, 0, 0, 0, 0);
  1252. l_27++;
  1253. }
  1254. return;
  1255. default:
  1256. return;
  1257. }
  1258. sub_88B3();
  1259. }
  1260.  
  1261. var sub_1BF0(var A_0)
  1262. {
  1263. if (A_0 == 1)
  1264. {
  1265. if ((rPtr((&g_10433) + 1) > 3) && (GAMEPLAY::IS_BIT_SET(g_1686, 14) != 0))
  1266. {
  1267. return 1;
  1268. }
  1269. return 0;
  1270. }
  1271. if (SCRIPT::0x029D3841(0xD30D3AEF) > 0)
  1272. {
  1273. return 1;
  1274. }
  1275. if (rPtr((&g_10433) + 1) > 3)
  1276. {
  1277. return 1;
  1278. }
  1279. return 0;
  1280. }
  1281.  
  1282. var sub_1C4A(var A_0, var A_1, var A_2)
  1283. {
  1284. var num3;
  1285. var num6;
  1286. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  1287. {
  1288. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  1289. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  1290. }
  1291. else
  1292. {
  1293. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 0);
  1294. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  1295. }
  1296. if (ENTITY::IS_ENTITY_DEAD(A_1) == 0)
  1297. {
  1298. struct _s = ENTITY::GET_ENTITY_COORDS(A_1, 1);
  1299. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  1300. }
  1301. else
  1302. {
  1303. struct _s = ENTITY::GET_ENTITY_COORDS(A_1, 0);
  1304. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  1305. }
  1306. struct _s = &num3;
  1307. struct _s = &num6;
  1308. 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);
  1309. }
  1310.  
  1311. var sub_1CA6()
  1312. {
  1313. if (sub_1C4A(l_43, l_437, 1) < (0.5f + 0.25f))
  1314. {
  1315. var num3;
  1316. var num6;
  1317. struct _s = ENTITY::GET_ENTITY_COORDS(l_437, 1);
  1318. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  1319. var i9 = rPtr((&num3) + 1);
  1320. if ((GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(num3, i9, rPtr((&num3) + 2) + (1f), &num6) != 0) && (GAMEPLAY::ABSF(rPtr((&num3) + 2) - num6) < 0.1f))
  1321. {
  1322. return 1;
  1323. }
  1324. }
  1325. return 0;
  1326. }
  1327.  
  1328. void sub_1D01(var A_0, var A_1, var A_2)
  1329. {
  1330. bool flag1 = A_0 == 318;
  1331. if (!(flag1 | (A_0 > 318)))
  1332. {
  1333. sub_22CC(891 + A_0, 1, -1, 1);
  1334. }
  1335. var num3 = 1;
  1336. if (rPtr(getElemPtr(A_0, (&g_86838) + 7793, 48) + 20) == 1)
  1337. {
  1338. bool flag2 = rPtr(getElemPtr(A_0, (&g_86838) + 7793, 48) + 24) == 11;
  1339. if (flag2 | (rPtr(getElemPtr(A_0, (&g_86838) + 7793, 48) + 24) == 12))
  1340. {
  1341. num3 = 0;
  1342. }
  1343. }
  1344. else
  1345. {
  1346. wPtr(1, getElemPtr(A_0, (&g_86838) + 7793, 48) + 20);
  1347. wPtr(A_1, getElemPtr(A_0, (&g_86838) + 7793, 48) + 40);
  1348. wPtr(A_2, getElemPtr(A_0, (&g_86838) + 7793, 48) + 44);
  1349. if (A_0 == 287)
  1350. {
  1351. STATS::0x4AC39C6C(0x86267624, 50, 0);
  1352. }
  1353. if (A_0 == 286)
  1354. {
  1355. STATS::0x4AC39C6C(0x52AF42B, 50, 0);
  1356. }
  1357. if (A_0 == 299)
  1358. {
  1359. STATS::0x4AC39C6C(0xE99D3D10, 50, 0);
  1360. }
  1361. }
  1362. if (num3 != 0)
  1363. {
  1364. sub_1DE9();
  1365. }
  1366. }
  1367.  
  1368. void sub_1DE9()
  1369. {
  1370. var num3 = 0;
  1371. g_86617 = 0;
  1372. g_86618 = 0;
  1373. g_86619 = 0;
  1374. g_86620 = 0;
  1375. g_86621 = 0;
  1376. g_86622 = 0;
  1377. g_86623 = 0;
  1378. var num4 = 0f;
  1379. var num5 = 0f;
  1380. var num6 = 0f;
  1381. var num7 = 0f;
  1382. var num8 = 0f;
  1383. var num9 = 0f;
  1384. var num10 = 0f;
  1385. wPtr(0f, ((&g_86838) + 7793) + 3817);
  1386. Label_00A9:
  1387. if (num3 >= 318)
  1388. {
  1389. var num11;
  1390. if ((g_86600 > 0) && (g_86617 == g_86600))
  1391. {
  1392. num4 = 55f;
  1393. }
  1394. if ((g_86601 > 0) && (g_86618 == g_86601))
  1395. {
  1396. num5 = 10f;
  1397. }
  1398. if ((g_86602 > 0) && (g_86619 == g_86602))
  1399. {
  1400. num6 = 0f;
  1401. }
  1402. if ((g_86603 > 0) && (g_86620 == g_86603))
  1403. {
  1404. num7 = 10f;
  1405. }
  1406. if (g_86604 > 0)
  1407. {
  1408. bool flag1 = g_86621 == g_86604;
  1409. bool flag2 = flag1 | (((g_86604 * 10) / g_86621) < 41);
  1410. bool flag3 = flag2 | (g_86621 > g_86607);
  1411. if (flag3 | (g_86621 == g_86607))
  1412. {
  1413. if ((GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7793) + 3820), 14) == 0) && (g_86621 == g_86604))
  1414. {
  1415. STATS::0x4AC39C6C(0x817B5488, g_86604, 0);
  1416. GAMEPLAY::SET_BIT(((&g_86838) + 7793) + 3820, 14);
  1417. }
  1418. num8 = 5f;
  1419. }
  1420. }
  1421. if ((g_86605 > 0) && (g_86622 == g_86605))
  1422. {
  1423. num9 = 15f;
  1424. }
  1425. if ((g_86606 > 0) && (g_86623 == g_86606))
  1426. {
  1427. num10 = 5f;
  1428. }
  1429. wPtr((((((num4 + num5) + num6) + num7) + num8) + num9) + num10, ((&g_86838) + 7793) + 3817);
  1430. bool flag4 = g_86621 > g_86607;
  1431. if (flag4 | (g_86621 == g_86607))
  1432. {
  1433. num11 = g_86607;
  1434. }
  1435. else
  1436. {
  1437. num11 = g_86621;
  1438. }
  1439. STATS::STAT_SET_INT(0xC115F6B0, g_86617, 1);
  1440. STATS::STAT_SET_INT(0xE6FB1EBC, g_86600, 1);
  1441. STATS::STAT_SET_INT(0x4F5B53BA, g_86618, 1);
  1442. STATS::STAT_SET_INT(0x2053B0A0, g_86601, 1);
  1443. STATS::STAT_SET_INT(0x5D0E88A9, g_86619, 1);
  1444. STATS::STAT_SET_INT(0x214A068C, g_86602, 1);
  1445. STATS::STAT_SET_INT(0xCD2D71F9, g_86620, 1);
  1446. STATS::STAT_SET_INT(0xFEC8B0D8, g_86603, 1);
  1447. STATS::STAT_SET_INT(0x817B5488, num11, 1);
  1448. STATS::STAT_SET_INT(0xF32498EA, g_86607, 1);
  1449. STATS::STAT_SET_INT(0xF82362EF, g_86623 + g_86622, 1);
  1450. STATS::STAT_SET_INT(0x83A486E8, g_86606 + g_86605, 1);
  1451. g_86624 = (g_86617 * 100) / g_86600;
  1452. g_86626 = ((g_86619 + g_86618) * 100) / (g_86602 + g_86601);
  1453. g_86625 = ((g_86620 + num11) * 100) / (g_86603 + g_86607);
  1454. g_86627 = ((g_86622 + g_86623) * 100) / (g_86605 + g_86606);
  1455. STATS::STAT_SET_FLOAT(0x486CDCFF, rPtr(((&g_86838) + 7793) + 3817), 1);
  1456. STATS::STAT_SET_INT(0x6C11A0FD, g_86624, 1);
  1457. STATS::STAT_SET_INT(0xB82247AC, g_86625, 1);
  1458. STATS::STAT_SET_INT(0x1CA274FA, g_86626, 1);
  1459. if ((DATAFILE::0x5DCD0796() == 0) && (g_59842 == 0))
  1460. {
  1461. bool flag5 = sub_22C1() != 2;
  1462. if (flag5 & (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() == 0))
  1463. {
  1464. if (NETWORK::NETWORK_IS_CLOUD_AVAILABLE() != 0)
  1465. {
  1466. g_86615 = 0;
  1467. }
  1468. if (g_46771 == 0)
  1469. {
  1470. sub_2267();
  1471. }
  1472. }
  1473. }
  1474. }
  1475. else
  1476. {
  1477. if (rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 20) == 1)
  1478. {
  1479. switch (rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 24))
  1480. {
  1481. case 1:
  1482. g_86617++;
  1483. num4 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  1484. break;
  1485. case 3:
  1486. g_86618++;
  1487. num5 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  1488. break;
  1489. case 5:
  1490. g_86619++;
  1491. num6 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  1492. break;
  1493. case 7:
  1494. g_86620++;
  1495. num7 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  1496. break;
  1497. case 9:
  1498. g_86621++;
  1499. num8 += (rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16) * 4f);
  1500. break;
  1501. case 11:
  1502. g_86622++;
  1503. num9 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  1504. break;
  1505. case 13:
  1506. g_86623++;
  1507. num10 += rPtr(getElemPtr(num3, (&g_86838) + 7793, 48) + 16);
  1508. break;
  1509. }
  1510. }
  1511. num3++;
  1512. goto Label_00A9;
  1513. }
  1514. }
  1515.  
  1516. var sub_2267()
  1517. {
  1518. if (sub_22B1() != 0)
  1519. {
  1520. return 0;
  1521. }
  1522. if (rPtr((&g_80916) + 8) != 0)
  1523. {
  1524. if (rPtr((&g_80916) + 10) > 0)
  1525. {
  1526. return 0;
  1527. }
  1528. }
  1529. else if (rPtr((&g_80916) + 10) > 1)
  1530. {
  1531. return 0;
  1532. }
  1533. wPtr(rPtr((&g_80916) + 10) + 1, (&g_80916) + 10);
  1534. return 1;
  1535. }
  1536.  
  1537. var sub_22B1()
  1538. {
  1539. return GAMEPLAY::IS_BIT_SET(g_60090, 0);
  1540. }
  1541.  
  1542. var sub_22C1()
  1543. {
  1544. return g_19455;
  1545. }
  1546.  
  1547. var sub_22CC(var A_0, var A_1, var A_2, var A_3)
  1548. {
  1549. if (A_2 == -1)
  1550. {
  1551. A_2 = sub_23FB();
  1552. }
  1553. var num3 = 0;
  1554. bool flag1 = A_0 >= 0;
  1555. if (flag1 & (A_0 < 192))
  1556. {
  1557. var num4 = STATS::0xB5BF87B2((A_0) - 0, 0, 1, A_2);
  1558. var num5 = ((A_0) - 0) - (STATS::0xDFC25D66((A_0) - 0) * 64);
  1559. num3 = STATS::STAT_SET_BOOL_MASKED(num4, A_1, num5, A_3);
  1560. }
  1561. else
  1562. {
  1563. bool flag2 = A_0 >= 192;
  1564. if (flag2 & (A_0 < 384))
  1565. {
  1566. var num6 = STATS::0xB5BF87B2((A_0) - 192, 1, 1, A_2);
  1567. var num7 = ((A_0) - 192) - (STATS::0xDFC25D66((A_0) - 192) * 64);
  1568. num3 = STATS::STAT_SET_BOOL_MASKED(num6, A_1, num7, A_3);
  1569. }
  1570. else
  1571. {
  1572. bool flag3 = A_0 >= 513;
  1573. if (flag3 & (A_0 < 705))
  1574. {
  1575. var num8 = STATS::0xB5BF87B2((A_0) - 513, 0, 0, 0);
  1576. var num9 = ((A_0) - 513) - (STATS::0xDFC25D66((A_0) - 513) * 64);
  1577. num3 = STATS::STAT_SET_BOOL_MASKED(num8, A_1, num9, A_3);
  1578. }
  1579. else
  1580. {
  1581. bool flag4 = A_0 >= 705;
  1582. if (flag4 & (A_0 < 1281))
  1583. {
  1584. var num10 = STATS::0xB5BF87B2((A_0) - 705, 1, 0, 0);
  1585. var num11 = ((A_0) - 705) - (STATS::0xDFC25D66((A_0) - 705) * 64);
  1586. num3 = STATS::STAT_SET_BOOL_MASKED(num10, A_1, num11, A_3);
  1587. }
  1588. }
  1589. }
  1590. }
  1591. return num3;
  1592. }
  1593.  
  1594. var sub_23FB()
  1595. {
  1596. return g_1338478;
  1597. }
  1598.  
  1599. var sub_2407(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  1600. {
  1601. return GAMEPLAY::GET_HEADING_FROM_VECTOR_2D((A_3 - A_0), rPtr((&A_3) + 4) - rPtr((&A_0) + 4));
  1602. }
  1603.  
  1604. void sub_2421(var A_0, var A_1)
  1605. {
  1606. UI::0xB245FC10(A_0);
  1607. UI::0xB59B530D(0, 0, 1, A_1);
  1608. }
  1609.  
  1610. var sub_2438()
  1611. {
  1612. return (rPtr((&g_80929) + 290) > 0);
  1613. }
  1614.  
  1615. void sub_2449()
  1616. {
  1617. l_36 = GAMEPLAY::GET_GAME_TIMER();
  1618. if (l_49 == 0)
  1619. {
  1620. sub_914D(1, 1);
  1621. }
  1622. else
  1623. {
  1624. sub_914D(2, 1);
  1625. }
  1626. }
  1627.  
  1628. void sub_246C()
  1629. {
  1630. if ((GAMEPLAY::GET_GAME_TIMER() - l_31) > l_32)
  1631. {
  1632. struct _s = &l_359;
  1633. var num3 = sub_2C1A(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  1634. if (num3 < 10f)
  1635. {
  1636. sub_91CA("BARK_SEQ");
  1637. }
  1638. else
  1639. {
  1640. sub_91CA("BARK");
  1641. }
  1642. l_31 = GAMEPLAY::GET_GAME_TIMER();
  1643. if (num3 < 20f)
  1644. {
  1645. l_32 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(4000, 5000);
  1646. }
  1647. else if (num3 < 50f)
  1648. {
  1649. l_32 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(5000, 6000);
  1650. }
  1651. else
  1652. {
  1653. l_32 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(8000, 12000);
  1654. }
  1655. bool flag1 = UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0;
  1656. bool flag2 = flag1 & (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 1) == 0);
  1657. bool flag3 = flag2 & (sub_2539() == 0);
  1658. if (flag3 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  1659. {
  1660. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 1);
  1661. sub_2421("CHOP_H_HUNT", -1);
  1662. }
  1663. }
  1664. }
  1665.  
  1666. var sub_2539()
  1667. {
  1668. bool flag1;
  1669. var num1 = PLAYER::IS_PLAYER_TARGETTING_ENTITY(PLAYER::PLAYER_ID(), l_43);
  1670. if (num1 == 0)
  1671. {
  1672. flag1 = l_26 == 10;
  1673. }
  1674. if ((num1 | (flag1 & CONTROLS::IS_CONTROL_PRESSED(2, 25))) != 0)
  1675. {
  1676. var num3;
  1677. WEAPON::GET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), &num3, 1);
  1678. if (num3 == 0xA2719263)
  1679. {
  1680. return 1;
  1681. }
  1682. }
  1683. return 0;
  1684. }
  1685.  
  1686. void sub_2580()
  1687. {
  1688. if (sub_8DE6(l_43, 0xE763797) == 0)
  1689. {
  1690. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@indication@");
  1691. if (STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@indication@") != 0)
  1692. {
  1693. AI::CLEAR_PED_TASKS(l_43);
  1694. AI::OPEN_SEQUENCE_TASK(&l_89);
  1695. struct _s = &l_356;
  1696. AI::TASK_TURN_PED_TO_FACE_COORD(0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0);
  1697. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@indication@", sub_25F2(), 8f, -4f, -1, 1, 0, 0, 0, 0);
  1698. AI::CLOSE_SEQUENCE_TASK(l_89);
  1699. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  1700. AI::CLEAR_SEQUENCE_TASK(&l_89);
  1701. }
  1702. }
  1703. }
  1704.  
  1705. var sub_25F2()
  1706. {
  1707. var num3;
  1708. if (sub_9282(l_43) != 0)
  1709. {
  1710. var num4;
  1711. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  1712. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num4);
  1713. if ((rPtr((&num4) + 2) + 1f) < rPtr((&l_356) + 2))
  1714. {
  1715. num3 = "indicate_high";
  1716. }
  1717. else if ((rPtr((&num4) + 2) - 1f) > rPtr((&l_356) + 2))
  1718. {
  1719. num3 = "indicate_low";
  1720. }
  1721. else
  1722. {
  1723. num3 = "indicate_ahead";
  1724. }
  1725. }
  1726. return num3;
  1727. }
  1728.  
  1729. var sub_2646()
  1730. {
  1731. var num1 = PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0);
  1732. if ((num1 & VEHICLE::IS_VEHICLE_DRIVEABLE(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 0)) != 0)
  1733. {
  1734. var num6 = PED::IS_PED_ON_ANY_BIKE(PLAYER::PLAYER_PED_ID());
  1735. if ((num6 | sub_2687()) != 0)
  1736. {
  1737. return 1;
  1738. }
  1739. }
  1740. return 0;
  1741. }
  1742.  
  1743. var sub_2687()
  1744. {
  1745. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) != 0)
  1746. {
  1747. var num3 = ENTITY::GET_ENTITY_MODEL(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1));
  1748. bool flag1 = num3 == 0x44623884;
  1749. bool flag2 = flag1 | (num3 == 0xDFF0594C);
  1750. bool flag3 = flag2 | (num3 == 0x9CF21E0F);
  1751. bool flag4 = flag3 | (num3 == 0x5D0AAC8F);
  1752. bool flag5 = flag4 | (num3 == 0x8125BCF9);
  1753. bool flag6 = flag5 | (num3 == 0xFD231729);
  1754. bool flag7 = flag6 | (num3 == 0x7074F39D);
  1755. bool flag8 = flag7 | (num3 == 0xC3FBA120);
  1756. bool flag9 = flag8 | (num3 == 0x810369E2);
  1757. bool flag10 = flag9 | (num3 == 0x58E49664);
  1758. bool flag11 = flag10 | (num3 == 0x1A7FCEFA);
  1759. bool flag12 = flag11 | (num3 == 0x6A4BD8F6);
  1760. bool flag13 = flag12 | (num3 == 0x2EA68690);
  1761. bool flag14 = flag13 | (num3 == 0x61D6BA8C);
  1762. bool flag15 = flag14 | (num3 == 0x843B73DE);
  1763. bool flag16 = flag15 | (num3 == 0x562A97BD);
  1764. bool flag17 = flag16 | (num3 == GAMEPLAY::GET_HASH_KEY("bifta"));
  1765. bool flag18 = flag17 | (num3 == 0xB44F0582);
  1766. if (flag18 | (num3 == 0x1FD824AF))
  1767. {
  1768. return 1;
  1769. }
  1770. }
  1771. return 0;
  1772. }
  1773.  
  1774. var sub_27B9()
  1775. {
  1776. switch (l_308)
  1777. {
  1778. case 2:
  1779. if (sub_28FD(2) != 0)
  1780. {
  1781. break;
  1782. }
  1783. sub_8C08("CHOP_RETURN1", 1);
  1784. return 0;
  1785. case 1:
  1786. if (sub_28FD(1) != 0)
  1787. {
  1788. break;
  1789. }
  1790. sub_8C08("CHOP_RETURN1", 1);
  1791. return 0;
  1792. case 0:
  1793. if (sub_28FD(0) != 0)
  1794. {
  1795. break;
  1796. }
  1797. sub_8C08("CHOP_RETURN1", 1);
  1798. return 0;
  1799. case 3:
  1800. if (sub_28B2(l_355) == 0)
  1801. {
  1802. break;
  1803. }
  1804. sub_8C08("CHOP_RETURN1", 1);
  1805. return 0;
  1806. case 4:
  1807. if (sub_2867(l_355) != 0)
  1808. {
  1809. sub_8C08("CHOP_RETURN1", 1);
  1810. return 0;
  1811. }
  1812. break;
  1813. }
  1814. return 1;
  1815. }
  1816.  
  1817. var sub_2867(var A_0)
  1818. {
  1819. bool flag1 = A_0 < 0;
  1820. if (flag1 | (A_0 >= 50))
  1821. {
  1822. return 0;
  1823. }
  1824. if (A_0 <= 31)
  1825. {
  1826. return GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 124), A_0);
  1827. }
  1828. return GAMEPLAY::IS_BIT_SET(rPtr((((&g_86838) + 7661) + 124) + 1), (A_0) - 32);
  1829. }
  1830.  
  1831. var sub_28B2(var A_0)
  1832. {
  1833. bool flag1 = A_0 < 0;
  1834. if (flag1 | (A_0 >= 50))
  1835. {
  1836. return 0;
  1837. }
  1838. if (A_0 <= 31)
  1839. {
  1840. return GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 121), A_0);
  1841. }
  1842. return GAMEPLAY::IS_BIT_SET(rPtr((((&g_86838) + 7661) + 121) + 1), (A_0) - 32);
  1843. }
  1844.  
  1845. var sub_28FD(var A_0)
  1846. {
  1847. if (sub_296C() != 0)
  1848. {
  1849. sub_294F(A_0, l_355);
  1850. }
  1851. if (sub_293B() != 0)
  1852. {
  1853. if (sub_2930() != 0)
  1854. {
  1855. sub_29C8();
  1856. return 0;
  1857. }
  1858. sub_29C8();
  1859. }
  1860. return 1;
  1861. }
  1862.  
  1863. var sub_2930()
  1864. {
  1865. return g_19693;
  1866. }
  1867.  
  1868. var sub_293B()
  1869. {
  1870. if (g_19690 == 2)
  1871. {
  1872. return 1;
  1873. }
  1874. return 0;
  1875. }
  1876.  
  1877. void sub_294F(var A_0, var A_1)
  1878. {
  1879. if (g_19690 == 0)
  1880. {
  1881. g_19690 = 1;
  1882. g_19691 = A_0;
  1883. g_19692 = A_1;
  1884. }
  1885. }
  1886.  
  1887. var sub_296C()
  1888. {
  1889. if (g_19690 == 0)
  1890. {
  1891. return 1;
  1892. }
  1893. return 0;
  1894. }
  1895.  
  1896. void sub_2980()
  1897. {
  1898. var num3;
  1899. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  1900. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  1901. struct _s = &num3;
  1902. sub_29AF(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  1903. sub_91CA("WHINE");
  1904. sub_8C08("CHOP_NONEAR", 0);
  1905. sub_2449();
  1906. }
  1907.  
  1908. void sub_29AF(var A_0, var A_1, var A_2)
  1909. {
  1910. struct _s = &A_0;
  1911. struct _s = &A_0;
  1912. if (SYSTEM::VDIST(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) > 1f)
  1913. {
  1914. }
  1915. }
  1916.  
  1917. void sub_29C8()
  1918. {
  1919. g_19690 = 3;
  1920. }
  1921.  
  1922. var sub_29D4()
  1923. {
  1924. l_355 = -1;
  1925. setStruct(0f, 0f, 0f, 3, &l_356);
  1926. setStruct(0f, 0f, 0f, 3, &l_359);
  1927. sub_2A0D(0);
  1928. if (l_355 == -1)
  1929. {
  1930. sub_2A0D(1);
  1931. }
  1932. if (l_355 > -1)
  1933. {
  1934. return 1;
  1935. }
  1936. return 0;
  1937. }
  1938.  
  1939. void sub_2A0D(var A_0)
  1940. {
  1941. var num3 = 9999f;
  1942. var num4 = 0;
  1943. for (num4 = 0; num4 < 5; num4++)
  1944. {
  1945. bool flag1 = getElem(num4, &l_311, 4) > -1;
  1946. bool flag2 = flag1 & (getElem(num4, &l_317, 4) < num3);
  1947. if (flag2 & sub_2A8D(A_0, num4))
  1948. {
  1949. num3 = getElem(num4, &l_317, 4);
  1950. l_355 = getElem(num4, &l_311, 4);
  1951. l_308 = num4;
  1952. struct _s = getElemPtr(num4, &l_323, 12);
  1953. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_356);
  1954. struct _s = getElemPtr(num4, &l_339, 12);
  1955. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_359);
  1956. }
  1957. }
  1958. }
  1959.  
  1960. var sub_2A8D(var A_0, var A_1)
  1961. {
  1962. if (A_0 != 1)
  1963. {
  1964. bool flag1 = A_1 == 1;
  1965. if (flag1 & (ENTITY::GET_ENTITY_HEALTH(PLAYER::PLAYER_PED_ID()) >= 200))
  1966. {
  1967. return 0;
  1968. }
  1969. bool flag2 = A_1 == 0;
  1970. if (flag2 & (PED::GET_PED_ARMOUR(PLAYER::PLAYER_PED_ID()) >= 100))
  1971. {
  1972. return 0;
  1973. }
  1974. }
  1975. return 1;
  1976. }
  1977.  
  1978. var sub_2AD6()
  1979. {
  1980. if (l_309 == 5)
  1981. {
  1982. l_309 = 0;
  1983. }
  1984. switch (l_309)
  1985. {
  1986. case 0:
  1987. if (getElem(0, &l_311, 4) <= -1)
  1988. {
  1989. l_309 = 1;
  1990. break;
  1991. }
  1992. if (sub_296C() != 0)
  1993. {
  1994. sub_294F(0, getElem(0, &l_311, 4));
  1995. }
  1996. if (sub_293B() != 0)
  1997. {
  1998. if (sub_2930() != 0)
  1999. {
  2000. setElem(-1, 0, &l_311, 4);
  2001. }
  2002. sub_29C8();
  2003. l_309 = 1;
  2004. }
  2005. break;
  2006. case 1:
  2007. if (getElem(1, &l_311, 4) <= -1)
  2008. {
  2009. l_309 = 2;
  2010. break;
  2011. }
  2012. if (sub_296C() != 0)
  2013. {
  2014. sub_294F(1, getElem(1, &l_311, 4));
  2015. }
  2016. if (sub_293B() != 0)
  2017. {
  2018. if (sub_2930() != 0)
  2019. {
  2020. setElem(-1, 1, &l_311, 4);
  2021. }
  2022. sub_29C8();
  2023. l_309 = 2;
  2024. }
  2025. break;
  2026. case 2:
  2027. if (getElem(2, &l_311, 4) <= -1)
  2028. {
  2029. l_309 = 3;
  2030. break;
  2031. }
  2032. if (sub_296C() != 0)
  2033. {
  2034. sub_294F(2, getElem(2, &l_311, 4));
  2035. }
  2036. if (sub_293B() != 0)
  2037. {
  2038. if (sub_2930() != 0)
  2039. {
  2040. setElem(-1, 2, &l_311, 4);
  2041. }
  2042. sub_29C8();
  2043. l_309 = 3;
  2044. }
  2045. break;
  2046. case 3:
  2047. if ((getElem(3, &l_311, 4) > -1) && (sub_28B2(getElem(3, &l_311, 4)) != 0))
  2048. {
  2049. setElem(-1, 3, &l_311, 4);
  2050. }
  2051. if ((getElem(4, &l_311, 4) > -1) && (sub_2867(getElem(4, &l_311, 4)) != 0))
  2052. {
  2053. setElem(-1, 4, &l_311, 4);
  2054. }
  2055. l_309 = 5;
  2056. return 1;
  2057. }
  2058. return 0;
  2059. }
  2060.  
  2061. var sub_2C1A(var A_0, var A_1, var A_2, var A_3, var A_4)
  2062. {
  2063. var num3;
  2064. if (ENTITY::IS_ENTITY_DEAD(A_0) == 0)
  2065. {
  2066. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  2067. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  2068. }
  2069. else
  2070. {
  2071. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 0);
  2072. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  2073. }
  2074. struct _s = &num3;
  2075. struct _s = &A_1;
  2076. 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);
  2077. }
  2078.  
  2079. void sub_2C53(var A_0)
  2080. {
  2081. if (ENTITY::DOES_ENTITY_EXIST(l_437) != 0)
  2082. {
  2083. var num3;
  2084. struct _s = ENTITY::GET_ENTITY_COORDS(l_437, 1);
  2085. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  2086. if (ENTITY::IS_ENTITY_ATTACHED_TO_ANY_PED(l_437) != 0)
  2087. {
  2088. ENTITY::DETACH_ENTITY(l_437, 1, 1);
  2089. }
  2090. ENTITY::SET_ENTITY_AS_NO_LONGER_NEEDED(&l_437);
  2091. bool flag1 = A_0 == 1;
  2092. if (flag1 & (l_443 == 0x23C9F95C))
  2093. {
  2094. struct _s = &num3;
  2095. GAMEPLAY::CLEAR_AREA_OF_PROJECTILES(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0.1f, 0);
  2096. }
  2097. }
  2098. }
  2099.  
  2100. void sub_2CAE()
  2101. {
  2102. bool flag1 = sub_2E1C() != 1;
  2103. bool flag2 = flag1 & ((GAMEPLAY::GET_GAME_TIMER() - l_36) > 10000);
  2104. bool flag3 = flag2 & (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) == 0);
  2105. bool flag4 = flag3 & (l_81 == 0);
  2106. bool flag5 = flag4 & (l_443 != 0x23C9F95C);
  2107. if (flag5)
  2108. {
  2109. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  2110. }
  2111. bool flag6 = flag5 & (PED::0xFB18CB19(PLAYER::PLAYER_PED_ID(), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 100f) == 0);
  2112. if (flag6)
  2113. {
  2114. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  2115. }
  2116. if (flag6 & (PED::0xFB18CB19(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 100f) == 0))
  2117. {
  2118. STREAMING::REQUEST_PTFX_ASSET();
  2119. if (STREAMING::HAS_PTFX_ASSET_LOADED() != 0)
  2120. {
  2121. var num3;
  2122. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  2123. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  2124. struct _s = &num3;
  2125. struct _s = &l_50;
  2126. if (GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0) < 1f)
  2127. {
  2128. struct _s = &num3;
  2129. struct _s = &l_405;
  2130. if (GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0) > 20f)
  2131. {
  2132. sub_2DE1(&l_393, 0);
  2133. struct _s = &num3;
  2134. l_393 = OBJECT::GET_CLOSEST_OBJECT_OF_TYPE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 10f, 0xC09CB0B8, 1);
  2135. if (ENTITY::DOES_ENTITY_EXIST(l_393) != 0)
  2136. {
  2137. struct _s = ENTITY::GET_ENTITY_COORDS(l_393, 1);
  2138. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_405);
  2139. sub_914D(14, 1);
  2140. }
  2141. }
  2142. else
  2143. {
  2144. struct _s = &num3;
  2145. struct _s = &l_402;
  2146. if (GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0) > 20f)
  2147. {
  2148. struct _s = &num3;
  2149. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_402);
  2150. sub_914D(13, 1);
  2151. }
  2152. }
  2153. }
  2154. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  2155. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &l_50);
  2156. l_36 = GAMEPLAY::GET_GAME_TIMER();
  2157. }
  2158. }
  2159. }
  2160.  
  2161. void sub_2DE1(var A_0, var A_1)
  2162. {
  2163. if (ENTITY::DOES_ENTITY_EXIST(rPtr(A_0)) != 0)
  2164. {
  2165. if (ENTITY::IS_ENTITY_ATTACHED_TO_ANY_PED(rPtr(A_0)) != 0)
  2166. {
  2167. ENTITY::DETACH_ENTITY(rPtr(A_0), 1, 1);
  2168. }
  2169. if (A_1 == 0)
  2170. {
  2171. ENTITY::SET_OBJECT_AS_NO_LONGER_NEEDED(A_0);
  2172. }
  2173. else
  2174. {
  2175. OBJECT::0x2048A7DD(rPtr(A_0));
  2176. }
  2177. }
  2178. }
  2179.  
  2180. var sub_2E1C()
  2181. {
  2182. if (rPtr((((&g_86838) + 19515) + 254) + 5) != 0)
  2183. {
  2184. if (rPtr(((&g_86838) + 19515) + 254) > 66f)
  2185. {
  2186. return 1;
  2187. }
  2188. if (rPtr(((&g_86838) + 19515) + 254) > 33f)
  2189. {
  2190. return 0;
  2191. }
  2192. return 2;
  2193. }
  2194. return 2;
  2195. }
  2196.  
  2197. void sub_2E69()
  2198. {
  2199. bool flag1 = GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 7) == 0;
  2200. bool flag2 = flag1 & (UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0);
  2201. bool flag3 = flag2 & (sub_2539() == 0);
  2202. if (flag3 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  2203. {
  2204. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 7);
  2205. sub_2421("CHOP_H_BALL", -1);
  2206. }
  2207. var num1 = sub_9282(PLAYER::PLAYER_PED_ID());
  2208. var num6 = num1 & (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) == 0);
  2209. var num7 = num6 & sub_9282(l_43);
  2210. if ((num7 & (PED::IS_PED_IN_ANY_VEHICLE(l_43, 1) == 0)) != 0)
  2211. {
  2212. WEAPON::GET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), &l_443, 1);
  2213. bool flag4 = l_443 == 0x23C9F95C;
  2214. bool flag5 = flag4 | (l_443 == 0x93E220BD);
  2215. bool flag6 = flag5 | (l_443 == 0xFDBC8A50);
  2216. bool flag7 = flag6 | (l_443 == 0x2C3731D9);
  2217. bool flag8 = flag7 | (l_443 == 0x24B17070);
  2218. if (flag8 | (l_443 == 0x497FACC3))
  2219. {
  2220. if (PED::IS_PED_SHOOTING(PLAYER::PLAYER_PED_ID()) != 0)
  2221. {
  2222. sub_914D(15, 1);
  2223. }
  2224. else
  2225. {
  2226. bool flag9 = (GAMEPLAY::GET_GAME_TIMER() - l_37) > 10000;
  2227. bool flag10 = flag9 & (ENTITY::GET_ENTITY_SPEED(l_43) < 1f);
  2228. if (flag10 & (sub_1C4A(PLAYER::PLAYER_PED_ID(), l_43, 1) < 5f))
  2229. {
  2230. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@enter");
  2231. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@idle_a");
  2232. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@exit");
  2233. var num8 = STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@world_dog_barking@enter");
  2234. var num9 = num8 & STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@world_dog_barking@idle_a");
  2235. if ((num9 & STREAMING::HAS_ANIM_DICT_LOADED("creatures@rottweiler@amb@world_dog_barking@exit")) != 0)
  2236. {
  2237. AI::CLEAR_PED_TASKS(l_43);
  2238. AI::OPEN_SEQUENCE_TASK(&l_89);
  2239. AI::TASK_TURN_PED_TO_FACE_ENTITY(0, PLAYER::PLAYER_PED_ID(), 0);
  2240. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@amb@world_dog_barking@enter", "enter", 8f, -8f, -1, 0, 0, 0, 0, 0);
  2241. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@amb@world_dog_barking@idle_a", "idle_a", 8f, -8f, -1, 0, 0, 0, 0, 0);
  2242. AI::TASK_PLAY_ANIM(0, "creatures@rottweiler@amb@world_dog_barking@exit", "exit", 8f, -8f, -1, 0, 0, 0, 0, 0);
  2243. AI::CLOSE_SEQUENCE_TASK(l_89);
  2244. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  2245. AI::CLEAR_SEQUENCE_TASK(&l_89);
  2246. l_37 = GAMEPLAY::GET_GAME_TIMER();
  2247. }
  2248. }
  2249. }
  2250. }
  2251. }
  2252. }
  2253.  
  2254. void sub_304C()
  2255. {
  2256. var num1 = sub_2438();
  2257. if ((num1 & (sub_3090(4) == 0)) != 0)
  2258. {
  2259. var num6 = sub_9282(l_43);
  2260. var num7 = num6 & (l_81 == 0);
  2261. if ((num7 & PED::IS_PED_IN_GROUP(l_43)) != 0)
  2262. {
  2263. PED::REMOVE_PED_FROM_GROUP(l_43);
  2264. }
  2265. sub_914D(12, 1);
  2266. }
  2267. }
  2268.  
  2269. var sub_3090(var A_0)
  2270. {
  2271. if (sub_2438() != 0)
  2272. {
  2273. for (var i = 0; i < 44; i++)
  2274. {
  2275. if ((sub_3443(i) == A_0) && (sub_30CB(i) != 0))
  2276. {
  2277. return 1;
  2278. }
  2279. }
  2280. }
  2281. return 0;
  2282. }
  2283.  
  2284. var sub_30CB(var A_0)
  2285. {
  2286. return sub_30DB(A_0, 5, 1);
  2287. }
  2288.  
  2289. var sub_30DB(var A_0, var A_1, var A_2)
  2290. {
  2291. if (A_2 != null)
  2292. {
  2293. return GAMEPLAY::IS_BIT_SET(getElem(A_0, (&g_80929) + 1015, 4), A_1);
  2294. }
  2295. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  2296. {
  2297. if (sub_22C1() == 0)
  2298. {
  2299. return GAMEPLAY::IS_BIT_SET(sub_313A(sub_319A(A_0), -1), A_1);
  2300. }
  2301. }
  2302. else
  2303. {
  2304. return GAMEPLAY::IS_BIT_SET(getElem(A_0, (&g_86838) + 668, 4), A_1);
  2305. }
  2306. return 0;
  2307. }
  2308.  
  2309. var sub_313A(var A_0, var A_1)
  2310. {
  2311. var num4;
  2312. if (STATS::STAT_GET_INT(getElem(sub_3166(A_1), getElemPtr(A_0, &g_1363889, 24), 4), &num4, -1) != 0)
  2313. {
  2314. return num4;
  2315. }
  2316. return 0;
  2317. }
  2318.  
  2319. var sub_3166(var A_0)
  2320. {
  2321. var num3 = A_0;
  2322. if (num3 == -1)
  2323. {
  2324. var num4 = sub_23FB();
  2325. if (num4 > -1)
  2326. {
  2327. g_1363641 = 0;
  2328. num3 = num4;
  2329. }
  2330. else
  2331. {
  2332. num3 = 0;
  2333. g_1363641 = 1;
  2334. }
  2335. }
  2336. return num3;
  2337. }
  2338.  
  2339. var sub_319A(var A_0)
  2340. {
  2341. switch (A_0)
  2342. {
  2343. case 0:
  2344. return 813;
  2345. case 1:
  2346. return 814;
  2347. case 2:
  2348. return 815;
  2349. case 3:
  2350. return 816;
  2351. case 4:
  2352. return 817;
  2353. case 5:
  2354. return 818;
  2355. case 6:
  2356. return 819;
  2357. case 7:
  2358. return 820;
  2359. case 8:
  2360. return 821;
  2361. case 9:
  2362. return 822;
  2363. case 10:
  2364. return 823;
  2365. case 11:
  2366. return 824;
  2367. case 12:
  2368. return 825;
  2369. case 13:
  2370. return 826;
  2371. case 14:
  2372. return 827;
  2373. case 15:
  2374. return 829;
  2375. case 16:
  2376. return 830;
  2377. case 17:
  2378. return 831;
  2379. case 18:
  2380. return 832;
  2381. case 19:
  2382. return 833;
  2383. case 20:
  2384. return 834;
  2385. case 21:
  2386. return 835;
  2387. case 22:
  2388. return 836;
  2389. case 23:
  2390. return 837;
  2391. case 24:
  2392. return 838;
  2393. case 25:
  2394. return 839;
  2395. case 26:
  2396. return 840;
  2397. case 27:
  2398. return 841;
  2399. case 28:
  2400. return 842;
  2401. case 29:
  2402. return 843;
  2403. case 30:
  2404. return 844;
  2405. case 31:
  2406. return 845;
  2407. case 32:
  2408. return 846;
  2409. case 33:
  2410. return 847;
  2411. case 34:
  2412. return 848;
  2413. case 35:
  2414. return 849;
  2415. case 36:
  2416. return 850;
  2417. case 37:
  2418. return 851;
  2419. case 38:
  2420. return 852;
  2421. case 39:
  2422. return 853;
  2423. case 40:
  2424. return 857;
  2425. case 41:
  2426. return 858;
  2427. case 42:
  2428. return 859;
  2429. case 43:
  2430. return 860;
  2431. }
  2432. return 1288;
  2433. }
  2434.  
  2435. var sub_3443(var A_0)
  2436. {
  2437. switch ((A_0))
  2438. {
  2439. case -1:
  2440. return 5;
  2441. case 0:
  2442. return 0;
  2443. case 1:
  2444. return 0;
  2445. case 2:
  2446. return 0;
  2447. case 3:
  2448. return 0;
  2449. case 4:
  2450. return 0;
  2451. case 5:
  2452. return 0;
  2453. case 6:
  2454. return 0;
  2455. case 7:
  2456. return 1;
  2457. case 8:
  2458. return 1;
  2459. case 9:
  2460. return 1;
  2461. case 10:
  2462. return 1;
  2463. case 11:
  2464. return 1;
  2465. case 12:
  2466. return 1;
  2467. case 13:
  2468. return 1;
  2469. case 14:
  2470. return 1;
  2471. case 15:
  2472. return 1;
  2473. case 16:
  2474. return 1;
  2475. case 17:
  2476. return 1;
  2477. case 18:
  2478. return 1;
  2479. case 19:
  2480. return 1;
  2481. case 20:
  2482. return 1;
  2483. case 21:
  2484. return 1;
  2485. case 22:
  2486. return 2;
  2487. case 23:
  2488. return 2;
  2489. case 24:
  2490. return 2;
  2491. case 25:
  2492. return 2;
  2493. case 26:
  2494. return 2;
  2495. case 27:
  2496. return 2;
  2497. case 28:
  2498. return 3;
  2499. case 29:
  2500. return 3;
  2501. case 30:
  2502. return 3;
  2503. case 31:
  2504. return 3;
  2505. case 32:
  2506. return 3;
  2507. case 33:
  2508. return 3;
  2509. case 34:
  2510. return 3;
  2511. case 35:
  2512. return 3;
  2513. case 36:
  2514. return 3;
  2515. case 37:
  2516. return 3;
  2517. case 38:
  2518. return 3;
  2519. case 39:
  2520. return 4;
  2521. case 40:
  2522. return 4;
  2523. case 41:
  2524. return 4;
  2525. case 42:
  2526. return 4;
  2527. case 43:
  2528. return 4;
  2529. }
  2530. return 5;
  2531. }
  2532.  
  2533. void sub_369C()
  2534. {
  2535. if (PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) > 0)
  2536. {
  2537. if (l_34 == -1)
  2538. {
  2539. l_34 = GAMEPLAY::GET_GAME_TIMER();
  2540. l_35 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(4000, 6000);
  2541. }
  2542. if ((GAMEPLAY::GET_GAME_TIMER() - l_34) > l_35)
  2543. {
  2544. sub_91CA("SNARL");
  2545. l_34 = -1;
  2546. }
  2547. }
  2548. }
  2549.  
  2550. void sub_36DF()
  2551. {
  2552. if (sub_9282(PLAYER::PLAYER_PED_ID()) != 0)
  2553. {
  2554. bool flag1 = l_81 > 1;
  2555. if (flag1 & (l_81 < 8))
  2556. {
  2557. PED::SET_PED_RESET_FLAG(PLAYER::PLAYER_PED_ID(), 309, 1);
  2558. }
  2559. bool flag2 = l_87 == 1;
  2560. if (flag2 & (l_81 == 1))
  2561. {
  2562. PED::SET_PED_RESET_FLAG(PLAYER::PLAYER_PED_ID(), 313, 1);
  2563. }
  2564. }
  2565. switch (l_81)
  2566. {
  2567. case 0:
  2568. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) == 0)
  2569. {
  2570. if (l_445 != 0)
  2571. {
  2572. l_445 = 0;
  2573. }
  2574. l_307 = 0;
  2575. l_33 = -1;
  2576. if (sub_4D08() != 0)
  2577. {
  2578. sub_914D(3, 1);
  2579. }
  2580. break;
  2581. }
  2582. l_448 = GAMEPLAY::GET_GAME_TIMER();
  2583. l_39 = -1;
  2584. l_40 = -1;
  2585. sub_4D86();
  2586. PED::SET_PED_CONFIG_FLAG(PLAYER::PLAYER_PED_ID(), 32, 0);
  2587. l_81 = 1;
  2588. break;
  2589. case 1:
  2590. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) != 0)
  2591. {
  2592. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2593. {
  2594. if (sub_4C73() != 0)
  2595. {
  2596. if (VEHICLE::GET_PED_IN_VEHICLE_SEAT(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), -1) != PLAYER::PLAYER_PED_ID())
  2597. {
  2598. sub_914D(3, 1);
  2599. }
  2600. else
  2601. {
  2602. if (sub_9282(l_54) == 0)
  2603. {
  2604. l_54 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  2605. sub_4BAA();
  2606. sub_4B7E();
  2607. }
  2608. STREAMING::REQUEST_ANIM_DICT(l_447);
  2609. var num1 = STREAMING::HAS_ANIM_DICT_LOADED(l_447);
  2610. if ((num1 & sub_9282(l_54)) != 0)
  2611. {
  2612. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  2613. {
  2614. PED::REMOVE_PED_FROM_GROUP(l_43);
  2615. }
  2616. if (sub_4A28() != 0)
  2617. {
  2618. if (l_39 == -1)
  2619. {
  2620. l_39 = GAMEPLAY::GET_GAME_TIMER();
  2621. }
  2622. if (sub_4993() != 0)
  2623. {
  2624. sub_493B(1);
  2625. l_81 = 6;
  2626. }
  2627. else
  2628. {
  2629. sub_48ED();
  2630. }
  2631. }
  2632. else if (VEHICLE::0xAB0E79EB(PLAYER::PLAYER_PED_ID(), l_54, 0, 0, 0) != 0)
  2633. {
  2634. var num6 = VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88);
  2635. if ((num6 | (VEHICLE::GET_VEHICLE_DOOR_ANGLE_RATIO(l_54, 1) > 0.9f)) != 0)
  2636. {
  2637. l_81 = 4;
  2638. }
  2639. else
  2640. {
  2641. l_81 = 2;
  2642. }
  2643. }
  2644. else
  2645. {
  2646. sub_493B(1);
  2647. l_81 = 6;
  2648. }
  2649. }
  2650. }
  2651. }
  2652. else if (sub_2646() != 0)
  2653. {
  2654. l_81 = 14;
  2655. }
  2656. else
  2657. {
  2658. bool flag3 = UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0;
  2659. bool flag4 = flag3 & (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 3) == 0);
  2660. bool flag5 = flag4 & (sub_2539() == 0);
  2661. if (flag5 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  2662. {
  2663. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 3);
  2664. sub_2421("CHOP_H_NOVEH", -1);
  2665. }
  2666. sub_914D(3, 1);
  2667. }
  2668. }
  2669. else
  2670. {
  2671. if (sub_4C73() != 0)
  2672. {
  2673. STREAMING::REQUEST_ANIM_DICT("misschop_vehicleenter_exit");
  2674. sub_48ED();
  2675. }
  2676. bool flag6 = l_307 == 0;
  2677. if (flag6 & VEHICLE::IS_VEHICLE_DRIVEABLE(PED::SET_EXCLUSIVE_PHONE_RELATIONSHIPS(PLAYER::PLAYER_PED_ID()), 0))
  2678. {
  2679. PED::SET_PED_CONFIG_FLAG(l_43, 185, 0);
  2680. var num7 = VEHICLE::IS_THIS_MODEL_A_CAR(ENTITY::GET_ENTITY_MODEL(PED::SET_EXCLUSIVE_PHONE_RELATIONSHIPS(PLAYER::PLAYER_PED_ID())));
  2681. if ((num7 & (sub_2687() == 0)) != 0)
  2682. {
  2683. if (ENTITY::GET_ENTITY_MODEL(PED::SET_EXCLUSIVE_PHONE_RELATIONSHIPS(PLAYER::PLAYER_PED_ID())) != 0xC703DB5F)
  2684. {
  2685. bool flag7 = VEHICLE::GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(PED::SET_EXCLUSIVE_PHONE_RELATIONSHIPS(PLAYER::PLAYER_PED_ID())) >= 1;
  2686. if ((flag7 & VEHICLE::IS_VEHICLE_SEAT_FREE(PED::SET_EXCLUSIVE_PHONE_RELATIONSHIPS(PLAYER::PLAYER_PED_ID()), 0)) && (sub_48CB() == 0))
  2687. {
  2688. sub_8C08("CHOP_RIDE", 0);
  2689. }
  2690. }
  2691. }
  2692. else
  2693. {
  2694. var num8 = VEHICLE::IS_THIS_MODEL_A_BIKE(ENTITY::GET_ENTITY_MODEL(PED::SET_EXCLUSIVE_PHONE_RELATIONSHIPS(PLAYER::PLAYER_PED_ID())));
  2695. if ((num8 | sub_2687()) != 0)
  2696. {
  2697. sub_8C08("CHOP_FOLLOW", 0);
  2698. }
  2699. }
  2700. l_307 = 1;
  2701. }
  2702. }
  2703. break;
  2704. }
  2705. l_81 = 15;
  2706. break;
  2707. case 2:
  2708. sub_48B5();
  2709. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2710. {
  2711. STREAMING::REQUEST_ANIM_DICT("misschop_vehicleenter_exit");
  2712. if (STREAMING::HAS_ANIM_DICT_LOADED("misschop_vehicleenter_exit") != 0)
  2713. {
  2714. sub_4886();
  2715. l_81 = 3;
  2716. }
  2717. break;
  2718. }
  2719. l_81 = 15;
  2720. break;
  2721. case 3:
  2722. sub_48B5();
  2723. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2724. {
  2725. var num9 = sub_9282(l_54);
  2726. if ((num9 & sub_4849()) != 0)
  2727. {
  2728. if (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0)
  2729. {
  2730. VEHICLE::SET_VEHICLE_DOOR_OPEN(l_54, l_88, 0, 0);
  2731. }
  2732. l_39 = GAMEPLAY::GET_GAME_TIMER();
  2733. l_81 = 4;
  2734. }
  2735. break;
  2736. }
  2737. l_81 = 15;
  2738. break;
  2739. case 4:
  2740. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2741. {
  2742. STREAMING::REQUEST_ANIM_DICT(l_447);
  2743. if (sub_9282(l_54) != 0)
  2744. {
  2745. if (sub_4993() != 0)
  2746. {
  2747. bool flag8 = sub_8DE6(PLAYER::PLAYER_PED_ID(), 0x87B9A382) == 0;
  2748. if (flag8 & STREAMING::HAS_ANIM_DICT_LOADED(l_447))
  2749. {
  2750. sub_48B5();
  2751. sub_46D1(1, 1);
  2752. AI::CLEAR_PED_TASKS_IMMEDIATELY(l_43);
  2753. l_82 = PED::CREATE_SYNCHRONIZED_SCENE(0f, 0f, 0f, 0f, 0f, 0f, 2);
  2754. PED::ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(l_82, l_54, ENTITY::0xE4ECAC22(l_54, "seat_pside_f"));
  2755. AI::TASK_SYNCHRONIZED_SCENE(l_43, l_82, l_447, "get_in", 1000f, -8f, 4, 0, 0x447A0000, 0);
  2756. PED::0x187B9070(l_43, 0, 0);
  2757. l_81 = 5;
  2758. }
  2759. }
  2760. else
  2761. {
  2762. sub_48ED();
  2763. }
  2764. }
  2765. break;
  2766. }
  2767. l_81 = 15;
  2768. break;
  2769. case 5:
  2770. sub_48B5();
  2771. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2772. {
  2773. STREAMING::REQUEST_ANIM_DICT(l_447);
  2774. var num10 = STREAMING::HAS_ANIM_DICT_LOADED(l_447);
  2775. var num11 = num10 & PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82);
  2776. var num12 = num11 & (PED::GET_SYNCHRONIZED_SCENE_PHASE(l_82) > 0.99f);
  2777. if ((num12 & sub_9282(l_54)) != 0)
  2778. {
  2779. sub_46D1(0, 1);
  2780. sub_493B(0);
  2781. l_81 = 6;
  2782. }
  2783. break;
  2784. }
  2785. sub_45EC(2f, 0f, 0f, 1);
  2786. break;
  2787. case 6:
  2788. sub_48B5();
  2789. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2790. {
  2791. STREAMING::REQUEST_ANIM_DICT("misschop_vehicleenter_exit");
  2792. var num13 = STREAMING::HAS_ANIM_DICT_LOADED("misschop_vehicleenter_exit");
  2793. if ((num13 & sub_9282(l_54)) != 0)
  2794. {
  2795. bool flag9 = VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0;
  2796. bool flag10 = flag9 & (VEHICLE::GET_VEHICLE_DOOR_ANGLE_RATIO(l_54, 1) > 0.1f);
  2797. if (flag10 & (sub_4A28() == 0))
  2798. {
  2799. sub_4886();
  2800. }
  2801. l_81 = 7;
  2802. }
  2803. break;
  2804. }
  2805. sub_45EC(2f, 0f, 0f, 1);
  2806. break;
  2807. case 7:
  2808. sub_48B5();
  2809. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2810. {
  2811. var num14 = sub_9282(l_54);
  2812. if ((num14 & sub_4849()) != 0)
  2813. {
  2814. if (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0)
  2815. {
  2816. VEHICLE::SET_VEHICLE_DOOR_SHUT(l_54, l_88, 0);
  2817. }
  2818. l_81 = 8;
  2819. }
  2820. break;
  2821. }
  2822. sub_45EC(2f, 0f, 0f, 1);
  2823. break;
  2824. case 8:
  2825. sub_48B5();
  2826. sub_45CC(&l_44);
  2827. sub_2C53(1);
  2828. if (l_29 == -1)
  2829. {
  2830. l_29 = GAMEPLAY::GET_GAME_TIMER();
  2831. l_30 = 7000;
  2832. }
  2833. if (sub_9282(l_54) == 0)
  2834. {
  2835. sub_45EC(2f, 0f, 0f, 1);
  2836. break;
  2837. }
  2838. if (sub_4559() != 0)
  2839. {
  2840. sub_45EC(2f, 0f, 0f, 1);
  2841. }
  2842. else if (FIRE::IS_ENTITY_ON_FIRE(l_54) != 0)
  2843. {
  2844. sub_45EC(2f, 0f, 0f, 1);
  2845. }
  2846. else
  2847. {
  2848. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2849. {
  2850. if (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 189) != 0)
  2851. {
  2852. if (ENTITY::IS_ENTITY_UPSIDEDOWN(l_54) != 0)
  2853. {
  2854. sub_45EC(2f, 0f, 0f, 1);
  2855. }
  2856. else if (sub_4A28() != 0)
  2857. {
  2858. l_81 = 9;
  2859. }
  2860. else if (VEHICLE::0xAB0E79EB(PLAYER::PLAYER_PED_ID(), l_54, 0, 0, 0) != 0)
  2861. {
  2862. VEHICLE::0xCBC7D3C8(l_54, 10f, 1, 0);
  2863. if (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) != 0)
  2864. {
  2865. l_81 = 12;
  2866. }
  2867. else
  2868. {
  2869. l_81 = 10;
  2870. }
  2871. }
  2872. else if (VEHICLE::0xAB0E79EB(PLAYER::PLAYER_PED_ID(), l_54, -1, 0, 0) != 0)
  2873. {
  2874. VEHICLE::0xCBC7D3C8(l_54, 10f, 1, 0);
  2875. sub_45EC(-2f, 0f, 0f, 0);
  2876. }
  2877. else
  2878. {
  2879. VEHICLE::0xCBC7D3C8(l_54, 10f, 1, 0);
  2880. sub_45EC(0f, -4f, 0f, 0);
  2881. }
  2882. }
  2883. else
  2884. {
  2885. sub_44DE();
  2886. sub_4406();
  2887. sub_431E();
  2888. bool flag11 = UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0;
  2889. bool flag12 = flag11 & (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 2) == 0);
  2890. bool flag13 = flag12 & (sub_2539() == 0);
  2891. if (flag13 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  2892. {
  2893. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 2);
  2894. sub_2421("CHOP_H_CAR", -1);
  2895. }
  2896. }
  2897. break;
  2898. }
  2899. if (ENTITY::GET_ENTITY_SPEED(l_54) < 5f)
  2900. {
  2901. if (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0)
  2902. {
  2903. VEHICLE::SET_VEHICLE_DOOR_OPEN(l_54, l_88, 0, 0);
  2904. }
  2905. l_81 = 12;
  2906. }
  2907. }
  2908. break;
  2909. case 9:
  2910. {
  2911. sub_48B5();
  2912. var num15 = PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0);
  2913. if ((num15 & (sub_8DE6(PLAYER::PLAYER_PED_ID(), 0xCE98FBB3) == 0)) != 0)
  2914. {
  2915. AI::TASK_LEAVE_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0, 0);
  2916. }
  2917. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) == 0)
  2918. {
  2919. sub_45EC(2f, 0f, 0f, 1);
  2920. }
  2921. break;
  2922. }
  2923. case 10:
  2924. sub_48B5();
  2925. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2926. {
  2927. STREAMING::REQUEST_ANIM_DICT("misschop_vehicleenter_exit");
  2928. if (STREAMING::HAS_ANIM_DICT_LOADED("misschop_vehicleenter_exit") != 0)
  2929. {
  2930. sub_4886();
  2931. l_81 = 11;
  2932. }
  2933. break;
  2934. }
  2935. sub_45EC(2f, 0f, 0f, 1);
  2936. break;
  2937. case 11:
  2938. sub_48B5();
  2939. if (PED::IS_PED_SITTING_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID()) != 0)
  2940. {
  2941. var num16 = sub_9282(l_54);
  2942. if ((num16 & sub_4849()) != 0)
  2943. {
  2944. if (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0)
  2945. {
  2946. VEHICLE::SET_VEHICLE_DOOR_OPEN(l_54, l_88, 0, 0);
  2947. }
  2948. l_81 = 12;
  2949. }
  2950. break;
  2951. }
  2952. sub_45EC(2f, 0f, 0f, 1);
  2953. break;
  2954. case 12:
  2955. {
  2956. sub_48B5();
  2957. STREAMING::REQUEST_ANIM_DICT(l_447);
  2958. bool flag14 = sub_8DE6(PLAYER::PLAYER_PED_ID(), 0x87B9A382) == 0;
  2959. bool flag15 = flag14 & STREAMING::HAS_ANIM_DICT_LOADED(l_447);
  2960. if (flag15 & sub_9282(l_54))
  2961. {
  2962. AI::CLEAR_PED_TASKS_IMMEDIATELY(l_43);
  2963. l_82 = PED::CREATE_SYNCHRONIZED_SCENE(0f, 0f, 0f, 0f, 0f, 0f, 2);
  2964. PED::ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(l_82, l_54, ENTITY::0xE4ECAC22(l_54, "seat_pside_f"));
  2965. AI::TASK_SYNCHRONIZED_SCENE(l_43, l_82, l_447, "get_out", 1000f, -8f, 10, 0, 0x447A0000, 0);
  2966. PED::0x187B9070(l_43, 0, 0);
  2967. l_81 = 13;
  2968. }
  2969. break;
  2970. }
  2971. case 13:
  2972. {
  2973. var num19;
  2974. sub_48B5();
  2975. var num17 = PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0);
  2976. var num18 = num17 & ((GAMEPLAY::GET_GAME_TIMER() - l_449) > 1500);
  2977. if ((num18 & (sub_8DE6(PLAYER::PLAYER_PED_ID(), 0xCE98FBB3) == 0)) != 0)
  2978. {
  2979. AI::TASK_LEAVE_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0, 0);
  2980. }
  2981. bool flag16 = PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82) == 0;
  2982. if (!flag16)
  2983. {
  2984. num19 = PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82);
  2985. }
  2986. if (flag16 | (num19 & (PED::GET_SYNCHRONIZED_SCENE_PHASE(l_82) > 0.99f)))
  2987. {
  2988. AI::TASK_GO_STRAIGHT_TO_COORD_RELATIVE_TO_ENTITY(l_43, l_43, 0f, 5f, 0f, 1f, 20000);
  2989. l_81 = 15;
  2990. }
  2991. break;
  2992. }
  2993. case 14:
  2994. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)
  2995. {
  2996. sub_44DE();
  2997. bool flag17 = UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0;
  2998. bool flag18 = flag17 & (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 5) == 0);
  2999. bool flag19 = flag18 & (sub_2539() == 0);
  3000. if (flag19 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  3001. {
  3002. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 5);
  3003. sub_2421("CHOP_H_BIKE", -1);
  3004. }
  3005. break;
  3006. }
  3007. l_81 = 15;
  3008. break;
  3009. case 15:
  3010. sub_48B5();
  3011. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0)
  3012. {
  3013. if (sub_8DE6(PLAYER::PLAYER_PED_ID(), 0xCE98FBB3) == 0)
  3014. {
  3015. AI::TASK_LEAVE_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0, 0);
  3016. }
  3017. break;
  3018. }
  3019. sub_40C5();
  3020. sub_880B(0);
  3021. STREAMING::REMOVE_ANIM_DICT("misschop_vehicleenter_exit");
  3022. STREAMING::REMOVE_ANIM_DICT(l_447);
  3023. l_36 = GAMEPLAY::GET_GAME_TIMER();
  3024. sub_408E(&l_54);
  3025. l_54 = 0;
  3026. l_29 = -1;
  3027. AI::CLEAR_PED_TASKS(l_43);
  3028. ENTITY::SET_ENTITY_INVINCIBLE(l_43, 0);
  3029. PED::SET_PED_CONFIG_FLAG(l_43, 185, 1);
  3030. PED::SET_PED_CONFIG_FLAG(PLAYER::PLAYER_PED_ID(), 32, 1);
  3031. sub_914D(2, 1);
  3032. break;
  3033. }
  3034. }
  3035.  
  3036. void sub_408E(var A_0)
  3037. {
  3038. if (ENTITY::DOES_ENTITY_EXIST(rPtr(A_0)) != 0)
  3039. {
  3040. ENTITY::IS_ENTITY_DEAD(rPtr(A_0));
  3041. var num1 = ENTITY::IS_ENTITY_A_MISSION_ENTITY(rPtr(A_0));
  3042. if ((num1 & ENTITY::0xACFEB3F9(rPtr(A_0), 1)) != 0)
  3043. {
  3044. ENTITY::SET_VEHICLE_AS_NO_LONGER_NEEDED(A_0);
  3045. }
  3046. }
  3047. }
  3048.  
  3049. void sub_40C5()
  3050. {
  3051. bool flag1 = UI::DOES_BLIP_EXIST(l_44) == 0;
  3052. bool flag2 = flag1 & sub_9282(l_43);
  3053. if (flag2 & (PED::IS_PED_IN_ANY_VEHICLE(l_43, 1) == 0))
  3054. {
  3055. if (sub_B3A7(124) != 0)
  3056. {
  3057. sub_422C(238, 0, 0);
  3058. }
  3059. else
  3060. {
  3061. sub_422C(237, 0, 0);
  3062. }
  3063. l_44 = sub_411F(l_43, 0, 143);
  3064. UI::SET_BLIP_SPRITE(l_44, 273);
  3065. }
  3066. }
  3067.  
  3068. var sub_411F(var A_0, var A_1, var A_2)
  3069. {
  3070. var num3 = sub_4171(A_0, (A_1 == 0), 0);
  3071. bool flag1 = A_2 != 143;
  3072. bool flag2 = flag1 & UI::DOES_BLIP_EXIST(num3);
  3073. if (flag2 & UI::DOES_TEXT_LABEL_EXIST(getElemPtr(A_2, (&g_86838) + 23936, 116) + 12))
  3074. {
  3075. UI::SET_BLIP_NAME_FROM_TEXT_FILE(num3, getElemPtr(A_2, (&g_86838) + 23936, 116) + 12);
  3076. }
  3077. return num3;
  3078. }
  3079.  
  3080. var sub_4171(var A_0, var A_1, var A_2)
  3081. {
  3082. if (ENTITY::DOES_ENTITY_EXIST(A_0) == 0)
  3083. {
  3084. return 0;
  3085. }
  3086. var num3 = UI::ADD_BLIP_FOR_ENTITY(A_0);
  3087. if (ENTITY::IS_ENTITY_A_VEHICLE(A_0) != 0)
  3088. {
  3089. UI::SET_BLIP_SCALE(num3, sub_4215(NETWORK::NETWORK_IS_GAME_IN_PROGRESS(), 1f, 1f));
  3090. if (A_2 == 0)
  3091. {
  3092. UI::SET_BLIP_AS_FRIENDLY(num3, A_1);
  3093. }
  3094. else
  3095. {
  3096. UI::SET_BLIP_COLOUR(num3, 2);
  3097. }
  3098. }
  3099. else if (ENTITY::IS_ENTITY_A_PED(A_0) != 0)
  3100. {
  3101. UI::SET_BLIP_SCALE(num3, sub_4215(NETWORK::NETWORK_IS_GAME_IN_PROGRESS(), 0.7f, 0.7f));
  3102. UI::SET_BLIP_AS_FRIENDLY(num3, A_1);
  3103. }
  3104. else if (ENTITY::IS_ENTITY_AN_OBJECT(A_0) != 0)
  3105. {
  3106. UI::SET_BLIP_SCALE(num3, sub_4215(NETWORK::NETWORK_IS_GAME_IN_PROGRESS(), 0.7f, 0.7f));
  3107. }
  3108. return num3;
  3109. }
  3110.  
  3111. var sub_4215(var A_0, var A_1, var A_2)
  3112. {
  3113. if (A_0 != null)
  3114. {
  3115. return A_1;
  3116. }
  3117. return A_2;
  3118. }
  3119.  
  3120. void sub_422C(var A_0, var A_1, var A_2)
  3121. {
  3122. if (A_0 != 261)
  3123. {
  3124. var num3 = A_0;
  3125. if ((A_2 != 0) || (GAMEPLAY::IS_BIT_SET(rPtr(getElemPtr(num3, &g_19741, 92) + 44), 15) != A_1))
  3126. {
  3127. if (A_1 != GAMEPLAY::IS_BIT_SET(rPtr(getElemPtr(num3, &g_19741, 92) + 44), 0))
  3128. {
  3129. GAMEPLAY::SET_BIT(getElemPtr(num3, &g_19741, 92) + 44, 18);
  3130. if (g_19738 == 1)
  3131. {
  3132. g_19739 = 1;
  3133. }
  3134. g_19738 = 1;
  3135. }
  3136. if (A_1 != null)
  3137. {
  3138. GAMEPLAY::SET_BIT(getElemPtr(num3, &g_19741, 92) + 44, 0);
  3139. GAMEPLAY::SET_BIT(getElemPtr(num3, &g_19741, 92) + 44, 15);
  3140. GAMEPLAY::SET_BIT(getElemPtr(num3, &g_19741, 92) + 44, 3);
  3141. }
  3142. else
  3143. {
  3144. GAMEPLAY::CLEAR_BIT(getElemPtr(num3, &g_19741, 92) + 44, 0);
  3145. GAMEPLAY::CLEAR_BIT(getElemPtr(num3, &g_19741, 92) + 44, 15);
  3146. }
  3147. if ((GAMEPLAY::IS_BIT_SET(rPtr(getElemPtr(num3, &g_19741, 92) + 44), 0) == 0) && (UI::DOES_BLIP_EXIST(rPtr(getElemPtr(num3, &g_19741, 92) + 76)) != 0))
  3148. {
  3149. GAMEPLAY::SET_THIS_SCRIPT_CAN_REMOVE_BLIPS_CREATED_BY_ANY_SCRIPT(1);
  3150. UI::REMOVE_BLIP(getElemPtr(num3, &g_19741, 92) + 76);
  3151. GAMEPLAY::SET_THIS_SCRIPT_CAN_REMOVE_BLIPS_CREATED_BY_ANY_SCRIPT(0);
  3152. }
  3153. }
  3154. }
  3155. }
  3156.  
  3157. void sub_431E()
  3158. {
  3159. var num1 = sub_9282(l_43);
  3160. if ((num1 & sub_9282(l_54)) != 0)
  3161. {
  3162. if (l_448 > -1)
  3163. {
  3164. bool flag1 = (GAMEPLAY::GET_GAME_TIMER() - l_448) > 500;
  3165. bool flag2 = flag1 & (ENTITY::GET_ENTITY_SPEED(l_54) > 5f);
  3166. if (flag2 & ENTITY::HAS_ENTITY_COLLIDED_WITH_ANYTHING(l_54))
  3167. {
  3168. AI::TASK_PLAY_ANIM(l_43, l_447, "shunt_from_back", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  3169. PED::0x187B9070(l_43, 0, 0);
  3170. sub_91CA("GROWL");
  3171. l_448 = -1;
  3172. }
  3173. }
  3174. else
  3175. {
  3176. var num6;
  3177. bool flag3 = ENTITY::IS_ENTITY_PLAYING_ANIM(l_43, l_447, "shunt_from_back", 3) == 0;
  3178. if (!flag3)
  3179. {
  3180. num6 = ENTITY::IS_ENTITY_PLAYING_ANIM(l_43, l_447, "shunt_from_back", 3);
  3181. }
  3182. if (flag3 | (num6 & (ENTITY::GET_ENTITY_ANIM_CURRENT_TIME(l_43, l_447, "shunt_from_back") > 0.98f)))
  3183. {
  3184. AI::TASK_PLAY_ANIM(l_43, l_447, "sit", 8f, -8f, -1, 1, 0, 0, 0, 0);
  3185. PED::0x187B9070(l_43, 0, 0);
  3186. l_448 = GAMEPLAY::GET_GAME_TIMER();
  3187. }
  3188. }
  3189. }
  3190. }
  3191.  
  3192. void sub_4406()
  3193. {
  3194. bool flag1 = l_448 > -1;
  3195. if (flag1 & ((GAMEPLAY::GET_GAME_TIMER() - l_29) > l_30))
  3196. {
  3197. bool flag2 = AUDIO::GET_PLAYER_RADIO_STATION_GENRE() == 7;
  3198. bool flag3 = flag2 | (AUDIO::GET_PLAYER_RADIO_STATION_GENRE() == 8);
  3199. bool flag4 = flag3 | (AUDIO::GET_PLAYER_RADIO_STATION_GENRE() == 9);
  3200. if (flag4 | (AUDIO::GET_PLAYER_RADIO_STATION_GENRE() == 13))
  3201. {
  3202. sub_446B();
  3203. l_29 = GAMEPLAY::GET_GAME_TIMER();
  3204. l_30 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(6000, 8000);
  3205. }
  3206. }
  3207. }
  3208.  
  3209. void sub_446B()
  3210. {
  3211. var num1 = sub_9282(l_43);
  3212. if ((num1 & PED::IS_PED_IN_ANY_VEHICLE(l_43, 0)) != 0)
  3213. {
  3214. AI::OPEN_SEQUENCE_TASK(&l_89);
  3215. AI::TASK_PLAY_ANIM(0, l_447, "bark", 4f, -4f, -1, 0, 0, 0, 0, 0);
  3216. AI::TASK_PLAY_ANIM(0, l_447, "sit", 8f, -8f, -1, 1, 0, 0, 0, 0);
  3217. AI::CLOSE_SEQUENCE_TASK(l_89);
  3218. AI::TASK_PERFORM_SEQUENCE(l_43, l_89);
  3219. AI::CLEAR_SEQUENCE_TASK(&l_89);
  3220. PED::0x187B9070(l_43, 0, 0);
  3221. }
  3222. }
  3223.  
  3224. void sub_44DE()
  3225. {
  3226. bool flag1 = PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) == 0;
  3227. if (flag1 & (l_365 == 1))
  3228. {
  3229. if (l_33 == -1)
  3230. {
  3231. l_33 = GAMEPLAY::GET_GAME_TIMER();
  3232. }
  3233. bool flag2 = (GAMEPLAY::GET_GAME_TIMER() - l_33) > 10000;
  3234. bool flag3 = flag2 & (l_448 > -1);
  3235. if (flag3 & sub_2AD6())
  3236. {
  3237. if ((sub_29D4() != 0) && (sub_9282(l_43) != 0))
  3238. {
  3239. if (PED::IS_PED_IN_ANY_VEHICLE(l_43, 0) != 0)
  3240. {
  3241. sub_446B();
  3242. }
  3243. else
  3244. {
  3245. sub_91CA("BARK");
  3246. }
  3247. }
  3248. l_33 = GAMEPLAY::GET_GAME_TIMER();
  3249. }
  3250. }
  3251. }
  3252.  
  3253. var sub_4559()
  3254. {
  3255. if (sub_9282(l_54) != 0)
  3256. {
  3257. if (ENTITY::IS_ENTITY_IN_WATER(l_54) != 0)
  3258. {
  3259. var num3;
  3260. var num4;
  3261. struct _s = ENTITY::GET_ENTITY_COORDS(l_54, 1);
  3262. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num4);
  3263. if (l_42 == -1)
  3264. {
  3265. l_42 = GAMEPLAY::GET_GAME_TIMER();
  3266. }
  3267. struct _s = &num4;
  3268. if (WATER::GET_WATER_HEIGHT(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), &num3) != 0)
  3269. {
  3270. if ((num3 - rPtr((&num4) + 2)) > 1f)
  3271. {
  3272. return 1;
  3273. }
  3274. if ((GAMEPLAY::GET_GAME_TIMER() - l_42) > 3000)
  3275. {
  3276. sub_91CA("AGITATED");
  3277. l_42 = GAMEPLAY::GET_GAME_TIMER();
  3278. }
  3279. }
  3280. }
  3281. else
  3282. {
  3283. l_42 = -1;
  3284. }
  3285. }
  3286. return 0;
  3287. }
  3288.  
  3289. void sub_45CC(var A_0)
  3290. {
  3291. if (UI::DOES_BLIP_EXIST(rPtr(A_0)) != 0)
  3292. {
  3293. UI::SET_BLIP_ROUTE(rPtr(A_0), 0);
  3294. UI::REMOVE_BLIP(A_0);
  3295. }
  3296. }
  3297.  
  3298. void sub_45EC(var A_0, var A_1, var A_2, var A_3)
  3299. {
  3300. var num1 = sub_9282(PLAYER::PLAYER_PED_ID());
  3301. if ((num1 & sub_9282(l_43)) != 0)
  3302. {
  3303. if (sub_9282(l_54) != 0)
  3304. {
  3305. bool flag1 = A_3 == 1;
  3306. bool flag2 = flag1 & (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0);
  3307. if (flag2 & (VEHICLE::GET_VEHICLE_DOOR_ANGLE_RATIO(l_54, 1) < 0.9f))
  3308. {
  3309. VEHICLE::SET_VEHICLE_DOOR_OPEN(l_54, l_88, 0, 0);
  3310. }
  3311. if (PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82) != 0)
  3312. {
  3313. PED::DETACH_SYNCHRONIZED_SCENE(l_82);
  3314. }
  3315. AI::CLEAR_PED_TASKS_IMMEDIATELY(l_43);
  3316. struct _s = &A_0;
  3317. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_54, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  3318. sub_9228(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), ENTITY::GET_ENTITY_HEADING(l_43), 1, 0);
  3319. PED::0x187B9070(l_43, 0, 0);
  3320. sub_46D1(0, 0);
  3321. l_81 = 15;
  3322. }
  3323. else
  3324. {
  3325. if (PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82) != 0)
  3326. {
  3327. PED::DETACH_SYNCHRONIZED_SCENE(l_82);
  3328. }
  3329. AI::CLEAR_PED_TASKS_IMMEDIATELY(l_43);
  3330. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::PLAYER_PED_ID(), (A_0 + 1f), rPtr((&A_0) + 4), rPtr((&A_0) + 8));
  3331. sub_9228(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), ENTITY::GET_ENTITY_HEADING(l_43), 1, 0);
  3332. PED::0x187B9070(l_43, 0, 0);
  3333. sub_46D1(0, 0);
  3334. l_81 = 15;
  3335. }
  3336. }
  3337. }
  3338.  
  3339. void sub_46D1(var A_0, var A_1)
  3340. {
  3341. if (A_0 != 1)
  3342. {
  3343. if (CAM::DOES_CAM_EXIST(l_456) != 0)
  3344. {
  3345. if (A_1 == 1)
  3346. {
  3347. CAM::SET_GAMEPLAY_CAM_RELATIVE_PITCH(0f, 0x3F800000);
  3348. CAM::SET_GAMEPLAY_CAM_RELATIVE_HEADING(0f);
  3349. }
  3350. CAM::RENDER_SCRIPT_CAMS(0, 0, 3000, 1, 0);
  3351. CAM::DESTROY_ALL_CAMS(0);
  3352. }
  3353. }
  3354. else
  3355. {
  3356. bool flag1 = CAM::DOES_CAM_EXIST(l_456) == 0;
  3357. if (flag1 & sub_9282(l_54))
  3358. {
  3359. var num3;
  3360. var num6;
  3361. var num10;
  3362. var num13;
  3363. var num16;
  3364. switch (GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 4))
  3365. {
  3366. case 0:
  3367. setStruct(1.11573f, -1.40338f, 0.555789f, 3, &num3);
  3368. setStruct(0.5f, 0f, 0.3f, 3, &num6);
  3369. break;
  3370. case 1:
  3371. setStruct(-1.15872f, 1.75252f, 0.761228f, 3, &num3);
  3372. setStruct(0f, 0f, 0.3f, 3, &num6);
  3373. break;
  3374. case 2:
  3375. setStruct(-1.89975f, 0.339287f, 0.661881f, 3, &num3);
  3376. setStruct(0f, 0f, 0.3f, 3, &num6);
  3377. break;
  3378. default:
  3379. setStruct(1.38134f, -0.1248f, 0.580783f, 3, &num3);
  3380. setStruct(0f, 0f, 0.3f, 3, &num6);
  3381. break;
  3382. }
  3383. l_456 = CAM::CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", 1);
  3384. struct _s = ENTITY::0x7C6339DF(l_54, ENTITY::0xE4ECAC22(l_54, "seat_pside_f"));
  3385. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num10);
  3386. struct _s = &num10;
  3387. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_GIVEN_WORLD_COORDS(l_54, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  3388. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num13);
  3389. struct _s = &num3;
  3390. struct _s = &num13;
  3391. struct _s = vadd(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  3392. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num16);
  3393. struct _s = &num16;
  3394. CAM::ATTACH_CAM_TO_ENTITY(l_456, l_54, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  3395. struct _s = &num13;
  3396. struct _s = &num6;
  3397. struct _s = vadd(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  3398. CAM::POINT_CAM_AT_ENTITY(l_456, l_54, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  3399. CAM::SET_CAM_FOV(l_456, 50f);
  3400. CAM::SHAKE_CAM(l_456, "HAND_SHAKE", 0.3f);
  3401. CAM::RENDER_SCRIPT_CAMS(1, 0, 3000, 1, 0);
  3402. }
  3403. }
  3404. }
  3405.  
  3406. var sub_4849()
  3407. {
  3408. if (sub_9282(l_54) != 0)
  3409. {
  3410. bool flag1 = (GAMEPLAY::GET_GAME_TIMER() - l_449) > 500;
  3411. bool flag2 = flag1 | VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88);
  3412. if (flag2 | sub_4A28())
  3413. {
  3414. return 1;
  3415. }
  3416. }
  3417. return 0;
  3418. }
  3419.  
  3420. void sub_4886()
  3421. {
  3422. AI::TASK_PLAY_ANIM(PLAYER::PLAYER_PED_ID(), "misschop_vehicleenter_exit", l_446, 8f, -8f, -1, 40, 0, 0, 0, 0);
  3423. l_449 = GAMEPLAY::GET_GAME_TIMER();
  3424. }
  3425.  
  3426. void sub_48B5()
  3427. {
  3428. CONTROLS::DISABLE_CONTROL_ACTION(0, 68);
  3429. CONTROLS::DISABLE_CONTROL_ACTION(0, 23);
  3430. }
  3431.  
  3432. var sub_48CB()
  3433. {
  3434. bool flag1 = g_11728 != 0;
  3435. if (flag1 | AUDIO::IS_SCRIPTED_CONVERSATION_ONGOING())
  3436. {
  3437. return 1;
  3438. }
  3439. return 0;
  3440. }
  3441.  
  3442. void sub_48ED()
  3443. {
  3444. bool flag1 = sub_8DE6(l_43, 0x2A89B8A7) == 0;
  3445. if (flag1 & (sub_1C4A(PLAYER::PLAYER_PED_ID(), l_43, 1) > 1f))
  3446. {
  3447. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1), 2f, 0f, 0f);
  3448. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2f, 20000, 0x3E800000, 0, 0x471C4000);
  3449. }
  3450. }
  3451.  
  3452. void sub_493B(var A_0)
  3453. {
  3454. if (A_0 == 1)
  3455. {
  3456. CAM::SET_GAMEPLAY_CAM_RELATIVE_PITCH(0f, 0x3F800000);
  3457. CAM::SET_GAMEPLAY_CAM_RELATIVE_HEADING(0f);
  3458. }
  3459. sub_45CC(&l_44);
  3460. ENTITY::SET_ENTITY_INVINCIBLE(l_43, 1);
  3461. PED::SET_PED_INTO_VEHICLE(l_43, l_54, 0);
  3462. AI::TASK_PLAY_ANIM(l_43, l_447, "sit", 8f, -8f, -1, 1, 0, 0, 0, 0);
  3463. PED::0x187B9070(l_43, 0, 0);
  3464. }
  3465.  
  3466. var sub_4993()
  3467. {
  3468. var num1 = sub_9282(l_54);
  3469. if ((num1 & sub_9282(l_43)) != 0)
  3470. {
  3471. bool flag4;
  3472. if (l_40 == -1)
  3473. {
  3474. l_40 = SYSTEM::FLOOR((sub_1C4A(l_54, l_43, 1) * 1000f));
  3475. if (l_40 < 5000)
  3476. {
  3477. l_40 = 5000;
  3478. }
  3479. }
  3480. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(l_54, 2f, 0f, 0f);
  3481. bool flag1 = sub_2C1A(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0) < 1f;
  3482. bool flag2 = flag1 | CONTROLS::IS_CONTROL_PRESSED(0, 65);
  3483. bool flag3 = flag2 | CONTROLS::IS_CONTROL_PRESSED(0, 66);
  3484. if (!flag3)
  3485. {
  3486. flag4 = l_39 > -1;
  3487. }
  3488. if (flag3 | (flag4 & ((GAMEPLAY::GET_GAME_TIMER() - l_39) > l_40)))
  3489. {
  3490. return 1;
  3491. }
  3492. }
  3493. return 0;
  3494. }
  3495.  
  3496. var sub_4A28()
  3497. {
  3498. if (sub_9282(l_54) != 0)
  3499. {
  3500. var num3 = ENTITY::GET_ENTITY_MODEL(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1));
  3501. bool flag1 = num3 == 0x4C80EB0E;
  3502. bool flag2 = flag1 | (num3 == 0xCEEA3F4B);
  3503. bool flag3 = flag2 | (num3 == 0x4008EABB);
  3504. bool flag4 = flag3 | (num3 == 0x32B91AE8);
  3505. bool flag5 = flag4 | (num3 == 0xD577C962);
  3506. bool flag6 = flag5 | (num3 == 0x84718D34);
  3507. bool flag7 = flag6 | (num3 == 0x5A82F9AE);
  3508. bool flag8 = flag7 | (num3 == 0xD138A6BB);
  3509. bool flag9 = flag8 | (num3 == 0x1C534995);
  3510. bool flag10 = flag9 | (num3 == 0x21EEE87D);
  3511. bool flag11 = flag10 | (num3 == 0x885F3671);
  3512. bool flag12 = flag11 | (num3 == 0x809AA4CB);
  3513. bool flag13 = flag12 | (num3 == 0x7DE35E7D);
  3514. bool flag14 = flag13 | (num3 == 0xB822A1AA);
  3515. bool flag15 = flag14 | (num3 == 0x9A5B1DCC);
  3516. bool flag16 = flag15 | (num3 == 0x9A9FD3DF);
  3517. bool flag17 = flag16 | (num3 == 0x6827CF72);
  3518. bool flag18 = flag17 | (num3 == 0xF337AB36);
  3519. bool flag19 = flag18 | (num3 == 0x2E19879);
  3520. bool flag20 = flag19 | (num3 == 0xC7824E5E);
  3521. bool flag21 = flag20 | (num3 == 0xB12314E0);
  3522. if (flag21 | (num3 == 0xE5A2D6C6))
  3523. {
  3524. return 1;
  3525. }
  3526. }
  3527. return 0;
  3528. }
  3529.  
  3530. void sub_4B7E()
  3531. {
  3532. if (sub_9282(l_54) != 0)
  3533. {
  3534. if (ENTITY::GET_ENTITY_MODEL(l_54) == 0x84718D34)
  3535. {
  3536. l_88 = 0;
  3537. }
  3538. else
  3539. {
  3540. l_88 = 1;
  3541. }
  3542. }
  3543. }
  3544.  
  3545. void sub_4BAA()
  3546. {
  3547. if (sub_9282(l_54) != 0)
  3548. {
  3549. l_445 = VEHICLE::GET_VEHICLE_LAYOUT_HASH(l_54);
  3550. switch (l_445)
  3551. {
  3552. case 0x8ADF98D5:
  3553. case 0x36CE3DC4:
  3554. case 0x9269BEA0:
  3555. case 0x6967F0BC:
  3556. case 0x5DF7414D:
  3557. case 0x375F8F8C:
  3558. case 0xE25535CF:
  3559. case 0x9D0E8E8E:
  3560. l_447 = "creatures@rottweiler@in_vehicle@van";
  3561. l_446 = "van_ds_open_door_for_chop";
  3562. return;
  3563. case 0x84D77E93:
  3564. case 0x37254CF9:
  3565. case 0x41E72EC9:
  3566. case 0x205A6F50:
  3567. case 0x4163EC9:
  3568. case 0xD158A20D:
  3569. l_447 = "creatures@rottweiler@in_vehicle@low_car";
  3570. l_446 = "low_ds_open_door_for_chop";
  3571. return;
  3572. case 0x19E59D55:
  3573. case 0x6C40A6DC:
  3574. case 0x65FA4F90:
  3575. l_447 = "creatures@rottweiler@in_vehicle@4x4";
  3576. l_446 = "std_ds_open_door_for_chop";
  3577. return;
  3578. }
  3579. l_447 = "creatures@rottweiler@in_vehicle@std_car";
  3580. l_446 = "std_ds_open_door_for_chop";
  3581. }
  3582. }
  3583.  
  3584. var sub_4C73()
  3585. {
  3586. var num1 = PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0);
  3587. var num6 = num1 & VEHICLE::IS_VEHICLE_DRIVEABLE(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 0);
  3588. var num7 = num6 & (PED::IS_PED_ON_ANY_BIKE(PLAYER::PLAYER_PED_ID()) == 0);
  3589. var num8 = num7 & (PED::IS_PED_IN_ANY_PLANE(PLAYER::PLAYER_PED_ID()) == 0);
  3590. var num9 = num8 & (PED::IS_PED_IN_ANY_HELI(PLAYER::PLAYER_PED_ID()) == 0);
  3591. var num10 = num9 & (PED::IS_PED_IN_ANY_BOAT(PLAYER::PLAYER_PED_ID()) == 0);
  3592. var num11 = num10 & (VEHICLE::GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0)) >= 1);
  3593. var num12 = num11 & VEHICLE::IS_VEHICLE_SEAT_FREE(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0), 0);
  3594. if ((num12 & (sub_2687() == 0)) != 0)
  3595. {
  3596. return 1;
  3597. }
  3598. return 0;
  3599. }
  3600.  
  3601. var sub_4D08()
  3602. {
  3603. if (INTERIOR::IS_VALID_INTERIOR(INTERIOR::GET_INTERIOR_FROM_ENTITY(PLAYER::PLAYER_PED_ID())) != 0)
  3604. {
  3605. if (INTERIOR::GET_INTERIOR_FROM_ENTITY(PLAYER::PLAYER_PED_ID()) == INTERIOR::GET_INTERIOR_AT_COORDS(-14.5f, -1437.2f, 31.1f))
  3606. {
  3607. return 1;
  3608. }
  3609. if (INTERIOR::GET_INTERIOR_FROM_ENTITY(PLAYER::PLAYER_PED_ID()) == INTERIOR::GET_INTERIOR_AT_COORDS(7.6f, 537.3f, 176f))
  3610. {
  3611. return 1;
  3612. }
  3613. if (INTERIOR::GET_INTERIOR_FROM_ENTITY(PLAYER::PLAYER_PED_ID()) == INTERIOR::GET_INTERIOR_AT_COORDS(130.2632f, -1295.035f, 28.2695f))
  3614. {
  3615. return 1;
  3616. }
  3617. }
  3618. return 0;
  3619. }
  3620.  
  3621. void sub_4D86()
  3622. {
  3623. var num3;
  3624. var num6;
  3625. var num9;
  3626. var num12;
  3627. var num15;
  3628. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  3629. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  3630. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1), 2f, 0f, 0f);
  3631. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  3632. struct _s = &num6;
  3633. struct _s = &num3;
  3634. struct _s = vsub(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  3635. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num12);
  3636. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 1), -2f, 0f, 0f);
  3637. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num9);
  3638. struct _s = &num9;
  3639. struct _s = &num3;
  3640. struct _s = vsub(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  3641. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num15);
  3642. struct _s = &num12;
  3643. struct _s = &num15;
  3644. if (SYSTEM::VMAG(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) < SYSTEM::VMAG(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)))
  3645. {
  3646. l_87 = 1;
  3647. }
  3648. else
  3649. {
  3650. l_87 = 0;
  3651. }
  3652. }
  3653.  
  3654. void sub_4DFE()
  3655. {
  3656. bool flag1 = l_309 != 5;
  3657. bool flag2 = flag1 | ((GAMEPLAY::GET_GAME_TIMER() - l_310) < 1000);
  3658. if (!(flag2 | (l_365 == 0)))
  3659. {
  3660. var num3;
  3661. var num6;
  3662. sub_876D();
  3663. var num7 = 0;
  3664. num7 = 0;
  3665. while (true)
  3666. {
  3667. if (num7 >= 102)
  3668. {
  3669. break;
  3670. }
  3671. if (sub_86FC(num7) != 0)
  3672. {
  3673. struct _s = sub_77BB(num7, 1);
  3674. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  3675. struct _s = &num3;
  3676. if (sub_7791(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) == 0)
  3677. {
  3678. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  3679. struct _s = &num3;
  3680. num6 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  3681. bool flag3 = num6 < getElem(2, &l_317, 4);
  3682. if (flag3 & (num6 < l_362))
  3683. {
  3684. setElem(num7, 2, &l_311, 4);
  3685. setElem(num6, 2, &l_317, 4);
  3686. struct _s = sub_77BB(num7, 0);
  3687. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(2, &l_323, 12));
  3688. struct _s = &num3;
  3689. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(2, &l_339, 12));
  3690. }
  3691. }
  3692. }
  3693. num7++;
  3694. }
  3695. num7 = 0;
  3696. num7 = 0;
  3697. while (true)
  3698. {
  3699. if (num7 >= 76)
  3700. {
  3701. break;
  3702. }
  3703. if (sub_775C(num7) != 0)
  3704. {
  3705. struct _s = sub_6984(num7, 1);
  3706. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  3707. struct _s = &num3;
  3708. if (sub_7791(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) == 0)
  3709. {
  3710. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  3711. struct _s = &num3;
  3712. num6 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  3713. bool flag4 = num6 < getElem(1, &l_317, 4);
  3714. if (flag4 & (num6 < l_362))
  3715. {
  3716. setElem(num7, 1, &l_311, 4);
  3717. setElem(num6, 1, &l_317, 4);
  3718. struct _s = sub_6984(num7, 0);
  3719. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(1, &l_323, 12));
  3720. struct _s = &num3;
  3721. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(1, &l_339, 12));
  3722. }
  3723. }
  3724. }
  3725. num7++;
  3726. }
  3727. num7 = 0;
  3728. num7 = 0;
  3729. while (true)
  3730. {
  3731. if (num7 >= 45)
  3732. {
  3733. break;
  3734. }
  3735. if (sub_695B(num7) != 0)
  3736. {
  3737. struct _s = sub_61CD(num7, 1);
  3738. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  3739. struct _s = &num3;
  3740. if (sub_7791(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) == 0)
  3741. {
  3742. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  3743. struct _s = &num3;
  3744. num6 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  3745. bool flag5 = num6 < getElem(0, &l_317, 4);
  3746. if (flag5 & (num6 < l_362))
  3747. {
  3748. setElem(num7, 0, &l_311, 4);
  3749. setElem(num6, 0, &l_317, 4);
  3750. struct _s = sub_61CD(num7, 0);
  3751. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(0, &l_323, 12));
  3752. struct _s = &num3;
  3753. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(0, &l_339, 12));
  3754. }
  3755. }
  3756. }
  3757. num7++;
  3758. }
  3759. if (sub_61BA() != 0)
  3760. {
  3761. num7 = 0;
  3762. num7 = 0;
  3763. while (num7 < 50)
  3764. {
  3765. bool flag6 = sub_28B2(num7) == 0;
  3766. if (flag6 & sub_6167(num7))
  3767. {
  3768. struct _s = sub_5987(num7, 1);
  3769. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  3770. struct _s = &num3;
  3771. if (sub_7791(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) == 0)
  3772. {
  3773. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  3774. struct _s = &num3;
  3775. num6 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  3776. bool flag7 = num6 < getElem(3, &l_317, 4);
  3777. if (flag7 & (num6 < l_362))
  3778. {
  3779. setElem(num7, 3, &l_311, 4);
  3780. setElem(num6, 3, &l_317, 4);
  3781. struct _s = sub_5987(num7, 0);
  3782. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(3, &l_323, 12));
  3783. struct _s = &num3;
  3784. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(3, &l_339, 12));
  3785. }
  3786. }
  3787. }
  3788. num7++;
  3789. }
  3790. }
  3791. if (sub_5974() != 0)
  3792. {
  3793. num7 = 0;
  3794. for (num7 = 0; num7 < 50; num7++)
  3795. {
  3796. bool flag8 = sub_2867(num7) == 0;
  3797. if (flag8 & sub_5927(num7))
  3798. {
  3799. struct _s = sub_5111(num7, 1);
  3800. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  3801. struct _s = &num3;
  3802. if (sub_7791(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) == 0)
  3803. {
  3804. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  3805. struct _s = &num3;
  3806. num6 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  3807. bool flag9 = num6 < getElem(4, &l_317, 4);
  3808. if (flag9 & (num6 < l_362))
  3809. {
  3810. setElem(num7, 4, &l_311, 4);
  3811. setElem(num6, 4, &l_317, 4);
  3812. struct _s = sub_5111(num7, 0);
  3813. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(4, &l_323, 12));
  3814. struct _s = &num3;
  3815. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(4, &l_339, 12));
  3816. }
  3817. }
  3818. }
  3819. }
  3820. }
  3821. l_310 = GAMEPLAY::GET_GAME_TIMER();
  3822. }
  3823. }
  3824.  
  3825. var sub_5111(var A_0, var A_1)
  3826. {
  3827. switch (A_0)
  3828. {
  3829. case 0:
  3830. return buildStruct(-1219f, -3495.9f, 12.9448f);
  3831. case 1:
  3832. if (A_1 != 1)
  3833. {
  3834. return buildStruct(634.5865f, -3232.79f, -16.5774f);
  3835. }
  3836. return buildStruct(606.8925f, -3250.188f, 5.06951f);
  3837. case 2:
  3838. return buildStruct(1590.6f, -2810.174f, 3.4494f);
  3839. case 3:
  3840. if (A_1 != 1)
  3841. {
  3842. return buildStruct(338.4039f, -2762.106f, 42.6543f);
  3843. }
  3844. return buildStruct(327.99f, -2757.61f, 4.99f);
  3845. case 4:
  3846. if (A_1 == 1)
  3847. {
  3848. return buildStruct(1134.422f, -2607.024f, 14.77071f);
  3849. }
  3850. return buildStruct(1133.688f, -2605.073f, 14.9729f);
  3851. case 5:
  3852. if (A_1 == 1)
  3853. {
  3854. return buildStruct(368.9316f, -2118.533f, 15.40341f);
  3855. }
  3856. return buildStruct(369.945f, -2116.756f, 16.1688f);
  3857. case 6:
  3858. if (A_1 == 1)
  3859. {
  3860. return buildStruct(1741.82f, -1623.85f, 111.41f);
  3861. }
  3862. return buildStruct(1742.024f, -1618.777f, 111.7313f);
  3863. case 7:
  3864. return buildStruct(287.7294f, -1444.4f, 45.5095f);
  3865. case 8:
  3866. return buildStruct(17.5926f, -1213.207f, 28.3678f);
  3867. case 9:
  3868. if (A_1 != 1)
  3869. {
  3870. return buildStruct(-900.3597f, -1165.551f, 31.8047f);
  3871. }
  3872. return buildStruct(-910.0172f, -1147.44f, 1.06785f);
  3873. case 10:
  3874. if (A_1 != 1)
  3875. {
  3876. return buildStruct(1231.973f, -1102.308f, 34.4289f);
  3877. }
  3878. return buildStruct(1237.728f, -1099.15f, 37.52579f);
  3879. case 11:
  3880. if (A_1 != 1)
  3881. {
  3882. return buildStruct(81.2213f, 814.0283f, 213.2917f);
  3883. }
  3884. return buildStruct(87.69075f, 810.3736f, 210.1258f);
  3885. case 12:
  3886. return buildStruct(-1907.515f, 1388.69f, 217.9728f);
  3887. case 13:
  3888. if (A_1 != 1)
  3889. {
  3890. return buildStruct(469.8529f, -730.8f, 26.3985f);
  3891. }
  3892. return buildStruct(467.369f, -730.7552f, 26.36373f);
  3893. case 14:
  3894. return buildStruct(202.1081f, -569.7198f, 128.18f);
  3895. case 15:
  3896. return buildStruct(159.39f, -563.82f, 21f);
  3897. case 16:
  3898. if (A_1 != 1)
  3899. {
  3900. return buildStruct(-1182.538f, -525.5859f, 39.9114f);
  3901. }
  3902. return buildStruct(-1183.152f, -518.5386f, 38.53018f);
  3903. case 17:
  3904. return buildStruct(-228.0476f, -236.4184f, 49.1361f);
  3905. case 18:
  3906. return buildStruct(-407.7026f, -151.7918f, 63.5505f);
  3907. case 19:
  3908. if (A_1 != 1)
  3909. {
  3910. return buildStruct(-1175.488f, -65.4649f, 44.6563f);
  3911. }
  3912. return buildStruct(-1169.397f, -56.76701f, 44.45705f);
  3913. case 20:
  3914. if (A_1 != 1)
  3915. {
  3916. return buildStruct(1684.664f, 40.7142f, 153.4074f);
  3917. }
  3918. return buildStruct(1679.056f, 39.44059f, 160.7736f);
  3919. case 21:
  3920. if (A_1 != 1)
  3921. {
  3922. return buildStruct(1965.58f, 555.99f, 160.79f);
  3923. }
  3924. return buildStruct(1964.25f, 553.68f, 160.72f);
  3925. case 22:
  3926. if (A_1 != 1)
  3927. {
  3928. return buildStruct(22.4492f, 638.8155f, 189.6085f);
  3929. }
  3930. return buildStruct(24.21706f, 637.1212f, 206.3897f);
  3931. case 23:
  3932. return buildStruct(2901.204f, 796.1192f, 3.3556f);
  3933. case 24:
  3934. if (A_1 != 1)
  3935. {
  3936. return buildStruct(-1529.722f, 871.4257f, 180.6421f);
  3937. }
  3938. return buildStruct(-1531.895f, 870.3203f, 180.6775f);
  3939. case 25:
  3940. return buildStruct(-404.3191f, 1100.889f, 331.535f);
  3941. case 26:
  3942. return buildStruct(-2809.354f, 1449.643f, 99.928f);
  3943. case 27:
  3944. if (A_1 != 1)
  3945. {
  3946. return buildStruct(3144.045f, 2184.413f, -5.2961f);
  3947. }
  3948. return buildStruct(3144.045f, 2184.413f, -5.2961f);
  3949. case 28:
  3950. return buildStruct(815.7574f, 1850.879f, 120.1796f);
  3951. case 29:
  3952. return buildStruct(-1944.24f, 1941.07f, 162.8f);
  3953. case 30:
  3954. if (A_1 != 1)
  3955. {
  3956. return buildStruct(-1436.87f, 2130.22f, 26.78f);
  3957. }
  3958. return buildStruct(-1452.23f, 2127.41f, 42.84f);
  3959. case 31:
  3960. return buildStruct(1367.413f, 2180.632f, 96.6914f);
  3961. case 32:
  3962. if (A_1 != 1)
  3963. {
  3964. return buildStruct(172.1426f, 2220.131f, 89.7842f);
  3965. }
  3966. return buildStruct(170.1652f, 2217.637f, 89.30811f);
  3967. case 33:
  3968. return buildStruct(889.3209f, 2870.052f, 55.2834f);
  3969. case 34:
  3970. if (A_1 != 1)
  3971. {
  3972. return buildStruct(1963.55f, 2922.81f, 57.76f);
  3973. }
  3974. return buildStruct(1980.2f, 2914.79f, 45.48f);
  3975. case 35:
  3976. return buildStruct(-390.384f, 2963.26f, 18.2713f);
  3977. case 36:
  3978. return buildStruct(71.6642f, 3279.368f, 30.3918f);
  3979. case 37:
  3980. return buildStruct(1924.186f, 3471.256f, 50.3238f);
  3981. case 38:
  3982. return buildStruct(-583.1569f, 3580.375f, 266.2471f);
  3983. case 39:
  3984. if (A_1 != 1)
  3985. {
  3986. return buildStruct(2516.98f, 3789.35f, 53.79f);
  3987. }
  3988. return buildStruct(2514.302f, 3789.519f, 52.077f);
  3989. case 40:
  3990. if (A_1 != 1)
  3991. {
  3992. return buildStruct(1486.047f, 3857.217f, 22.2905f);
  3993. }
  3994. return buildStruct(1517.613f, 3803.926f, 30.95605f);
  3995. case 41:
  3996. if (A_1 != 1)
  3997. {
  3998. return buildStruct(-528.8246f, 4440.644f, 31.7384f);
  3999. }
  4000. return buildStruct(-530.2739f, 4474.358f, 59.45993f);
  4001. case 42:
  4002. if (A_1 != 1)
  4003. {
  4004. return buildStruct(3820.813f, 4441.683f, 1.8007f);
  4005. }
  4006. return buildStruct(3815.055f, 4447.343f, 2.06631f);
  4007. case 43:
  4008. if (A_1 != 1)
  4009. {
  4010. return buildStruct(-1943.055f, 4585.194f, 46.6362f);
  4011. }
  4012. return buildStruct(-1946.95f, 4584.36f, 56.06f);
  4013. case 44:
  4014. return buildStruct(2437.545f, 4779.959f, 33.5101f);
  4015. case 45:
  4016. return buildStruct(-1441.495f, 5414.888f, 23.3f);
  4017. case 46:
  4018. return buildStruct(2196.251f, 5599.034f, 52.7129f);
  4019. case 47:
  4020. if (A_1 != 1)
  4021. {
  4022. return buildStruct(-503.2193f, 5665.61f, 48.8487f);
  4023. }
  4024. return buildStruct(-503.95f, 5673.55f, 51.24f);
  4025. case 48:
  4026. if (A_1 != 1)
  4027. {
  4028. return buildStruct(-381.291f, 6086.949f, 38.6147f);
  4029. }
  4030. return buildStruct(-378.4192f, 6080.782f, 30.44296f);
  4031. case 49:
  4032. return buildStruct(440.9546f, 6459.642f, 27.7432f);
  4033. }
  4034. return buildStruct(0f, 0f, 0f);
  4035. }
  4036.  
  4037. var sub_5927(var A_0)
  4038. {
  4039. switch ((A_0))
  4040. {
  4041. case 2:
  4042. case 14:
  4043. case 17:
  4044. case 18:
  4045. case 25:
  4046. return 0;
  4047. case 16:
  4048. if (GAMEPLAY::IS_BIT_SET(g_19608, 7) != 0)
  4049. {
  4050. return 0;
  4051. }
  4052. break;
  4053. }
  4054. return 1;
  4055. }
  4056.  
  4057. var sub_5974()
  4058. {
  4059. return rPtr((((&g_86838) + 7661) + 124) + 2);
  4060. }
  4061.  
  4062. var sub_5987(var A_0, var A_1)
  4063. {
  4064. switch (A_0)
  4065. {
  4066. case 0:
  4067. if (A_1 != 1)
  4068. {
  4069. return buildStruct(1026.705f, -3026.052f, 13.3323f);
  4070. }
  4071. return buildStruct(1034.274f, -3026.275f, 4.90197f);
  4072. case 1:
  4073. if (A_1 == 1)
  4074. {
  4075. return buildStruct(-1040.979f, -2743.509f, 12.94983f);
  4076. }
  4077. return buildStruct(-1048.604f, -2734.218f, 12.8895f);
  4078. case 2:
  4079. if (A_1 == 1)
  4080. {
  4081. return buildStruct(-93.9012f, -2711.314f, 5.01752f);
  4082. }
  4083. return buildStruct(-81.1199f, -2726.511f, 7.74f);
  4084. case 3:
  4085. return buildStruct(-917.6909f, -2527.384f, 22.3218f);
  4086. case 4:
  4087. if (A_1 != 1)
  4088. {
  4089. return buildStruct(748.922f, -2298.114f, 19.624f);
  4090. }
  4091. return buildStruct(746.45f, -2310.32f, 26.03f);
  4092. case 5:
  4093. if (A_1 == 1)
  4094. {
  4095. return buildStruct(1509.742f, -2126.038f, 75.21973f);
  4096. }
  4097. return buildStruct(1509.099f, -2120.551f, 75.61f);
  4098. case 6:
  4099. return buildStruct(76.0032f, -1970.475f, 20.1302f);
  4100. case 7:
  4101. if (A_1 != 1)
  4102. {
  4103. return buildStruct(0.067f, -1734.027f, 30.606f);
  4104. }
  4105. return buildStruct(-1.82327f, -1732.614f, 28.29367f);
  4106. case 8:
  4107. if (A_1 != 1)
  4108. {
  4109. return buildStruct(-1380.491f, -1404.374f, 1.7273f);
  4110. }
  4111. return buildStruct(-1377.766f, -1409.837f, 4.63205f);
  4112. case 9:
  4113. return buildStruct(2864.808f, -1372.84f, 1.3151f);
  4114. case 10:
  4115. return buildStruct(-1035.812f, -1273.077f, 0.8919f);
  4116. case 11:
  4117. return buildStruct(-1821.136f, -1201.36f, 18.1698f);
  4118. case 12:
  4119. return buildStruct(643.0116f, -1035.65f, 35.8891f);
  4120. case 13:
  4121. return buildStruct(-119.0616f, -977.2228f, 303.23f);
  4122. case 14:
  4123. if (A_1 != 1)
  4124. {
  4125. return buildStruct(-1238.766f, -506.7138f, 37.6019f);
  4126. }
  4127. return buildStruct(-1243.104f, -507.8057f, 30.10775f);
  4128. case 15:
  4129. if (A_1 != 1)
  4130. {
  4131. return buildStruct(86.4f, -433.9f, 36f);
  4132. }
  4133. return buildStruct(83.79993f, -431.9302f, 36.55315f);
  4134. case 16:
  4135. return buildStruct(1095.953f, -210.4642f, 54.9477f);
  4136. case 17:
  4137. return buildStruct(-1724.522f, -196f, 57.2387f);
  4138. case 18:
  4139. return buildStruct(265.374f, -199.546f, 60.795f);
  4140. case 19:
  4141. if (A_1 != 1)
  4142. {
  4143. return buildStruct(-3021.4f, 38f, 10.2945f);
  4144. }
  4145. return buildStruct(-3020.475f, 36.55431f, 9.11777f);
  4146. case 20:
  4147. if (A_1 != 1)
  4148. {
  4149. return buildStruct(-347.3f, 54.865f, 53.921f);
  4150. }
  4151. return buildStruct(-347.5277f, 53.37161f, 52.97814f);
  4152. case 21:
  4153. return buildStruct(1052.248f, 167.611f, 87.7406f);
  4154. case 22:
  4155. return buildStruct(-2303.798f, 217.4301f, 166.6017f);
  4156. case 23:
  4157. return buildStruct(-138.9423f, 868.3885f, 231.6956f);
  4158. case 24:
  4159. if (A_1 != 1)
  4160. {
  4161. return buildStruct(682.4505f, 1204.928f, 344.3322f);
  4162. }
  4163. return buildStruct(688.1073f, 1204.671f, 323.3438f);
  4164. case 25:
  4165. return buildStruct(-1548.763f, 1380.173f, 125.3728f);
  4166. case 26:
  4167. if (A_1 != 1)
  4168. {
  4169. return buildStruct(-432.0034f, 1597.129f, 356.613f);
  4170. }
  4171. return buildStruct(-432.14f, 1598.46f, 355.73f);
  4172. case 27:
  4173. return buildStruct(3081.93f, 1648.29f, 2.42f);
  4174. case 28:
  4175. return buildStruct(-594.38f, 2092f, 130.57f);
  4176. case 29:
  4177. if (A_1 != 1)
  4178. {
  4179. return buildStruct(3063.583f, 2212.63f, 2.5863f);
  4180. }
  4181. return buildStruct(3069.213f, 2160.988f, 1.1327f);
  4182. case 30:
  4183. return buildStruct(180.21f, 2263.83f, 91.87f);
  4184. case 31:
  4185. if (A_1 != 1)
  4186. {
  4187. return buildStruct(929.6946f, 2444.115f, 48.43f);
  4188. }
  4189. return buildStruct(926.96f, 2445.36f, 49.09f);
  4190. case 32:
  4191. if (A_1 != 1)
  4192. {
  4193. return buildStruct(-2379.948f, 2656.953f, 1.4906f);
  4194. }
  4195. return buildStruct(-2380.212f, 2655.176f, 0.832f);
  4196. case 33:
  4197. return buildStruct(-861.38f, 2753.3f, 12.867f);
  4198. case 34:
  4199. return buildStruct(-289.0195f, 2848.853f, 53.331f);
  4200. case 35:
  4201. if (A_1 != 1)
  4202. {
  4203. return buildStruct(265.7415f, 2866.416f, 73.19f);
  4204. }
  4205. return buildStruct(288.8409f, 2871.912f, 42.6422f);
  4206. case 36:
  4207. if (A_1 != 1)
  4208. {
  4209. return buildStruct(1294.2f, 3001.9f, 57.7f);
  4210. }
  4211. return buildStruct(1297.378f, 2988.71f, 40.11787f);
  4212. case 37:
  4213. return buildStruct(1568.65f, 3572.8f, 32.294f);
  4214. case 38:
  4215. return buildStruct(-1608.62f, 4274.25f, 102.95f);
  4216. case 39:
  4217. if (A_1 != 1)
  4218. {
  4219. return buildStruct(-1.9585f, 4334.787f, 32.3702f);
  4220. }
  4221. return buildStruct(-3.51812f, 4332.451f, 31.21602f);
  4222. case 40:
  4223. return buildStruct(1336.737f, 4307.2f, 37.1325f);
  4224. case 41:
  4225. if (A_1 != 1)
  4226. {
  4227. return buildStruct(-1001.48f, 4851.322f, 273.6112f);
  4228. }
  4229. return buildStruct(-1007.103f, 4836.936f, 268.5488f);
  4230. case 42:
  4231. return buildStruct(1877.09f, 5078.98f, 50.49f);
  4232. case 43:
  4233. if (A_1 != 1)
  4234. {
  4235. return buildStruct(3436.453f, 5176.911f, 6.386f);
  4236. }
  4237. return buildStruct(3366.099f, 5182.461f, 0.68317f);
  4238. case 44:
  4239. if (A_1 != 1)
  4240. {
  4241. return buildStruct(-578.8057f, 5470.164f, 59.0295f);
  4242. }
  4243. return buildStruct(-576.12f, 5472.24f, 59.28f);
  4244. case 45:
  4245. return buildStruct(444.6518f, 5571.781f, 780.1888f);
  4246. case 46:
  4247. return buildStruct(-402.9948f, 6319.279f, 31.2256f);
  4248. case 47:
  4249. return buildStruct(1439.599f, 6335.208f, 22.9485f);
  4250. case 48:
  4251. if (A_1 != 1)
  4252. {
  4253. return buildStruct(1469.632f, 6552.174f, 13.6854f);
  4254. }
  4255. return buildStruct(1466.109f, 6552.266f, 12.95773f);
  4256. case 49:
  4257. if (A_1 != 1)
  4258. {
  4259. return buildStruct(66.7136f, 6663.198f, 30.7821f);
  4260. }
  4261. return buildStruct(66.19278f, 6668.888f, 30.80633f);
  4262. }
  4263. return buildStruct(0f, 0f, 0f);
  4264. }
  4265.  
  4266. var sub_6167(var A_0)
  4267. {
  4268. switch ((A_0))
  4269. {
  4270. case 3:
  4271. case 9:
  4272. case 10:
  4273. case 13:
  4274. case 27:
  4275. case 38:
  4276. return 0;
  4277. case 14:
  4278. if (GAMEPLAY::IS_BIT_SET(g_19608, 7) != 0)
  4279. {
  4280. return 0;
  4281. }
  4282. break;
  4283. }
  4284. return 1;
  4285. }
  4286.  
  4287. var sub_61BA()
  4288. {
  4289. return rPtr((((&g_86838) + 7661) + 121) + 2);
  4290. }
  4291.  
  4292. var sub_61CD(var A_0, var A_1)
  4293. {
  4294. switch (A_0)
  4295. {
  4296. case 0:
  4297. return buildStruct(473.1829f, -2643.184f, 4.7209f);
  4298. case 1:
  4299. if (A_1 != 1)
  4300. {
  4301. return buildStruct(289.2062f, -2091.221f, 16.0234f);
  4302. }
  4303. return buildStruct(291.41f, -2090.78f, 16.29f);
  4304. case 2:
  4305. if (A_1 == 1)
  4306. {
  4307. return buildStruct(1173.839f, -1499.781f, 33.84875f);
  4308. }
  4309. return buildStruct(1173.566f, -1495.763f, 34.1121f);
  4310. case 3:
  4311. if (A_1 == 1)
  4312. {
  4313. return buildStruct(-461.7139f, -1699.202f, 17.85122f);
  4314. }
  4315. return buildStruct(-462f, -1701f, 18.8f);
  4316. case 4:
  4317. return buildStruct(-1384.628f, -521.0416f, 30.084f);
  4318. case 5:
  4319. return buildStruct(-521.5692f, -601.7532f, 29.4482f);
  4320. case 6:
  4321. return buildStruct(-664.5f, 165.4552f, 58.3821f);
  4322. case 7:
  4323. return buildStruct(329.3609f, -190.5986f, 53.2262f);
  4324. case 8:
  4325. if (A_1 != 1)
  4326. {
  4327. return buildStruct(-478.7744f, -1051.079f, 40.93f);
  4328. }
  4329. return buildStruct(-477.44f, -1052.99f, 39.81f);
  4330. case 9:
  4331. return buildStruct(-1268.071f, -1917.408f, 4.8583f);
  4332. case 10:
  4333. return buildStruct(-1221.908f, -2771.762f, 13.0545f);
  4334. case 11:
  4335. return buildStruct(-3088.668f, 652.9629f, 0.989f);
  4336. case 12:
  4337. if (A_1 != 1)
  4338. {
  4339. return buildStruct(-627.2166f, 2035.032f, 157.5585f);
  4340. }
  4341. return buildStruct(-629.3048f, 2036.067f, 157.3307f);
  4342. case 13:
  4343. if (A_1 != 1)
  4344. {
  4345. return buildStruct(-2048.483f, 3406.162f, 31.1504f);
  4346. }
  4347. return buildStruct(-2071.903f, 3411.504f, 30.36414f);
  4348. case 14:
  4349. return buildStruct(-424.0321f, 4012.767f, 80.4744f);
  4350. case 15:
  4351. return buildStruct(1983.1f, 5174.5f, 47.6f);
  4352. case 16:
  4353. if (A_1 != 1)
  4354. {
  4355. return buildStruct(2340.17f, 2573.89f, 45.77f);
  4356. }
  4357. return buildStruct(2341.1f, 2576f, 45.7f);
  4358. case 17:
  4359. if (A_1 != 1)
  4360. {
  4361. return buildStruct(1663.96f, -24.1101f, 172.7747f);
  4362. }
  4363. return buildStruct(1663.9f, -25.91945f, 172.7747f);
  4364. case 18:
  4365. if (A_1 != 1)
  4366. {
  4367. return buildStruct(2617.729f, 1693.417f, 30.8743f);
  4368. }
  4369. return buildStruct(2614.451f, 1695.127f, 26.59907f);
  4370. case 19:
  4371. if (A_1 != 1)
  4372. {
  4373. return buildStruct(-187.0338f, 1555.677f, 321.2431f);
  4374. }
  4375. return buildStruct(-187.31f, 1545.16f, 314.07f);
  4376. case 20:
  4377. if (A_1 != 1)
  4378. {
  4379. return buildStruct(868.7573f, 2423.536f, 60.8942f);
  4380. }
  4381. return buildStruct(859.5025f, 2426.04f, 53.18517f);
  4382. case 21:
  4383. if (A_1 != 1)
  4384. {
  4385. return buildStruct(-1822.967f, 803.8147f, 138.2005f);
  4386. }
  4387. return buildStruct(-1822.075f, 805.7814f, 137.7265f);
  4388. case 22:
  4389. if (A_1 != 1)
  4390. {
  4391. return buildStruct(-1851.628f, 2053.836f, 139.9841f);
  4392. }
  4393. return buildStruct(-1852.922f, 2054.42f, 139.9841f);
  4394. case 23:
  4395. if (A_1 != 1)
  4396. {
  4397. return buildStruct(-1070.651f, 4898.934f, 213.2752f);
  4398. }
  4399. return buildStruct(-1075.515f, 4898.497f, 213.2767f);
  4400. case 24:
  4401. if (A_1 != 1)
  4402. {
  4403. return buildStruct(1300.1f, 4308.1f, 37.3f);
  4404. }
  4405. return buildStruct(1301.56f, 4306.6f, 36.39f);
  4406. case 25:
  4407. if (A_1 != 1)
  4408. {
  4409. return buildStruct(-437.94f, 5985.04f, 31.29f);
  4410. }
  4411. return buildStruct(-436.44f, 5983.5f, 30.49f);
  4412. case 26:
  4413. if (A_1 != 1)
  4414. {
  4415. return buildStruct(1838.577f, 3692.028f, 33.6172f);
  4416. }
  4417. return buildStruct(1840.569f, 3693.77f, 33.2668f);
  4418. case 27:
  4419. return buildStruct(533.1f, -23.8f, 70.6f);
  4420. case 28:
  4421. if (A_1 != 1)
  4422. {
  4423. return buildStruct(446.4f, -988.5f, 29.77f);
  4424. }
  4425. return buildStruct(445.83f, -986.48f, 29.69f);
  4426. case 29:
  4427. return buildStruct(-1119.498f, -847.3371f, 18.6886f);
  4428. case 30:
  4429. return buildStruct(391.2f, -1603.9f, 28.38f);
  4430. case 31:
  4431. return buildStruct(-890.8f, -2386.2f, 13.4f);
  4432. case 32:
  4433. if (A_1 != 1)
  4434. {
  4435. return buildStruct(284.7f, 954.2f, 210.1514f);
  4436. }
  4437. return buildStruct(282.75f, 953.05f, 209.95f);
  4438. case 33:
  4439. return buildStruct(-2003.115f, 544.7549f, 114.5077f);
  4440. case 34:
  4441. if (A_1 != 1)
  4442. {
  4443. return buildStruct(-386.8739f, 1142.42f, 321.5892f);
  4444. }
  4445. return buildStruct(-397.5786f, 1127.353f, 321.7291f);
  4446. case 35:
  4447. return buildStruct(-1521.811f, 1560.201f, 106.9392f);
  4448. case 36:
  4449. return buildStruct(1391.945f, 3616.655f, 37.9259f);
  4450. case 37:
  4451. if (A_1 != 1)
  4452. {
  4453. return buildStruct(40.5177f, -1910.727f, 20.9706f);
  4454. }
  4455. return buildStruct(45.37f, -1911.45f, 20.79f);
  4456. case 38:
  4457. if (A_1 != 1)
  4458. {
  4459. return buildStruct(70.3786f, 3755.605f, 38.7487f);
  4460. }
  4461. return buildStruct(68.14f, 3749.36f, 38.73f);
  4462. case 39:
  4463. return buildStruct(117.671f, -754.229f, 258.1322f);
  4464. case 40:
  4465. if (A_1 != 1)
  4466. {
  4467. return buildStruct(160.4134f, -1191.7f, 28.87f);
  4468. }
  4469. return buildStruct(156.35f, -1192.1f, 28.37f);
  4470. case 41:
  4471. return buildStruct(23.9296f, -633.9206f, 6.5084f);
  4472. case 42:
  4473. if (A_1 != 1)
  4474. {
  4475. return buildStruct(30.9162f, 6546.791f, 30.4058f);
  4476. }
  4477. return buildStruct(31.67f, 6542.78f, 30.44f);
  4478. case 43:
  4479. if (A_1 == null)
  4480. {
  4481. return buildStruct(1331.355f, 4392.887f, 44.012f);
  4482. }
  4483. return buildStruct(1333.057f, 4381.278f, 43.3703f);
  4484. case 44:
  4485. if (A_1 != 1)
  4486. {
  4487. return buildStruct(-1149.392f, 4938.771f, 221.3682f);
  4488. }
  4489. return buildStruct(-1147.31f, 4939.27f, 221.27f);
  4490. }
  4491. return buildStruct(0f, 0f, 0f);
  4492. }
  4493.  
  4494. var sub_695B(var A_0)
  4495. {
  4496. var num2 = A_0;
  4497. if (((num2 != 33) && (num2 != 39)) && (num2 != 41))
  4498. {
  4499. return 1;
  4500. }
  4501. return 0;
  4502. }
  4503.  
  4504. var sub_6984(var A_0, var A_1)
  4505. {
  4506. switch (A_0)
  4507. {
  4508. case 0:
  4509. return buildStruct(131.2f, 6920.1f, 20.8f);
  4510. case 1:
  4511. if (A_1 != 1)
  4512. {
  4513. return buildStruct(-1046.277f, 4918.739f, 211.5379f);
  4514. }
  4515. return buildStruct(-1048.569f, 4917.414f, 208.4216f);
  4516. case 2:
  4517. return buildStruct(-2358.46f, 3251.397f, 100.5504f);
  4518. case 3:
  4519. if (A_1 != 1)
  4520. {
  4521. return buildStruct(-249.9504f, 6331.219f, 32.7262f);
  4522. }
  4523. return buildStruct(-247.6219f, 6331.341f, 31.42602f);
  4524. case 4:
  4525. if (A_1 == 1)
  4526. {
  4527. return buildStruct(-140.9f, -2491.45f, 43.45f);
  4528. }
  4529. return buildStruct(-141.0976f, -2498.239f, 40.0124f);
  4530. case 5:
  4531. if (A_1 == 1)
  4532. {
  4533. return buildStruct(-2924.697f, 46.50282f, 10.60369f);
  4534. }
  4535. return buildStruct(-2925.7f, 47.4f, 11.6f);
  4536. case 6:
  4537. return buildStruct(-793.1981f, -726.4421f, 26.28f);
  4538. case 7:
  4539. if (A_1 != 1)
  4540. {
  4541. return buildStruct(123.5196f, -674.2917f, 41.4945f);
  4542. }
  4543. return buildStruct(124.0092f, -673.0096f, 41.02729f);
  4544. case 8:
  4545. if (A_1 == 1)
  4546. {
  4547. return buildStruct(1195.737f, -1481.694f, 33.8595f);
  4548. }
  4549. return buildStruct(1194.709f, -1482.472f, 33.9594f);
  4550. case 9:
  4551. if (A_1 == 1)
  4552. {
  4553. return buildStruct(-35.88743f, 1945.738f, 189.1868f);
  4554. }
  4555. return buildStruct(-35.5254f, 1947.289f, 189.186f);
  4556. case 10:
  4557. if (A_1 != null)
  4558. {
  4559. return buildStruct(753.4579f, 4174.996f, 39.8011f);
  4560. }
  4561. return buildStruct(751.72f, 4175.14f, 40.95f);
  4562. case 11:
  4563. if (A_1 == 1)
  4564. {
  4565. return buildStruct(1791.256f, 4592.383f, 36.68283f);
  4566. }
  4567. return buildStruct(1789.8f, 4592.4f, 36.78f);
  4568. case 12:
  4569. return buildStruct(341.311f, 2618.918f, 43.5124f);
  4570. case 13:
  4571. return buildStruct(442.3755f, -223.602f, 55.0215f);
  4572. case 14:
  4573. if (A_1 != 1)
  4574. {
  4575. return buildStruct(1286.5f, -1754.4f, 52f);
  4576. }
  4577. return buildStruct(1291.02f, -1760.94f, 51.05f);
  4578. case 15:
  4579. if (A_1 != 1)
  4580. {
  4581. return buildStruct(1658.621f, 6.7752f, 166.1676f);
  4582. }
  4583. return buildStruct(1659.438f, 5.4271f, 165.1176f);
  4584. case 16:
  4585. if (A_1 != 1)
  4586. {
  4587. return buildStruct(1647.399f, 4865.839f, 41f);
  4588. }
  4589. return buildStruct(1645.91f, 4866.72f, 40.98f);
  4590. case 17:
  4591. return buildStruct(-1144.589f, -2004.452f, 12.3803f);
  4592. case 18:
  4593. if (A_1 != 1)
  4594. {
  4595. return buildStruct(-1048.32f, -521.2f, 35.14f);
  4596. }
  4597. return buildStruct(-1047.3f, -520.6f, 35f);
  4598. case 19:
  4599. if (A_1 != 1)
  4600. {
  4601. return buildStruct(-1576.817f, -586.3887f, 34.8528f);
  4602. }
  4603. return buildStruct(-1576.046f, -587.8257f, 33.97909f);
  4604. case 20:
  4605. if (A_1 != 1)
  4606. {
  4607. return buildStruct(954.5f, -121.34f, 74.18f);
  4608. }
  4609. return buildStruct(953.44f, -123.42f, 73.35f);
  4610. case 21:
  4611. if (A_1 != 1)
  4612. {
  4613. return buildStruct(1135.401f, -663.7875f, 56.088f);
  4614. }
  4615. return buildStruct(1134.201f, -665.9413f, 56.08261f);
  4616. case 22:
  4617. if (A_1 != 1)
  4618. {
  4619. return buildStruct(-2195.029f, 250.4256f, 173.6017f);
  4620. }
  4621. return buildStruct(-2196.198f, 248.9123f, 173.612f);
  4622. case 23:
  4623. return buildStruct(29.2f, 3635.4f, 39.8f);
  4624. case 24:
  4625. if (A_1 != 1)
  4626. {
  4627. return buildStruct(1721.96f, 3300.464f, 40.3835f);
  4628. }
  4629. return buildStruct(1724.429f, 3299.023f, 40.2235f);
  4630. case 25:
  4631. if (A_1 != 1)
  4632. {
  4633. return buildStruct(2612.712f, 3662.564f, 101.1074f);
  4634. }
  4635. return buildStruct(2617.321f, 3659.452f, 100.3867f);
  4636. case 26:
  4637. return buildStruct(-459.9625f, 1101.076f, 328.0211f);
  4638. case 27:
  4639. if (A_1 != 1)
  4640. {
  4641. return buildStruct(2430.906f, 4995.561f, 45.2685f);
  4642. }
  4643. return buildStruct(2432.607f, 4994.333f, 45.25828f);
  4644. case 28:
  4645. if (A_1 != 1)
  4646. {
  4647. return buildStruct(3724.275f, 4523.615f, 21.1312f);
  4648. }
  4649. return buildStruct(3722.456f, 4521.837f, 20.39456f);
  4650. case 29:
  4651. if (A_1 != 1)
  4652. {
  4653. return buildStruct(-446.045f, 6000.882f, 31.9163f);
  4654. }
  4655. return buildStruct(-446.9024f, 5997.598f, 30.3407f);
  4656. case 30:
  4657. return buildStruct(3291.4f, 5192.5f, 18.4f);
  4658. case 31:
  4659. if (A_1 != 1)
  4660. {
  4661. return buildStruct(388.7f, -1434.3f, 29.8f);
  4662. }
  4663. return buildStruct(390.81f, -1436.07f, 28.45f);
  4664. case 32:
  4665. return buildStruct(-445.26f, -442.49f, 32.26f);
  4666. case 33:
  4667. if (A_1 == null)
  4668. {
  4669. return buildStruct(-1500.08f, 857.59f, 180.59f);
  4670. }
  4671. return buildStruct(-1501.46f, 858.17f, 180.59f);
  4672. case 34:
  4673. return buildStruct(2822.2f, -741.4f, 1.8f);
  4674. case 35:
  4675. if (A_1 != 1)
  4676. {
  4677. return buildStruct(-3165.613f, 1102.24f, 19.8928f);
  4678. }
  4679. return buildStruct(-3166.978f, 1102.622f, 19.80827f);
  4680. case 36:
  4681. if (A_1 != 1)
  4682. {
  4683. return buildStruct(1841.114f, 3675.253f, 34.086f);
  4684. }
  4685. return buildStruct(1842.882f, 3670.457f, 32.68f);
  4686. case 37:
  4687. if (A_1 != 1)
  4688. {
  4689. return buildStruct(1830.535f, 2603.828f, 45.7491f);
  4690. }
  4691. return buildStruct(1828.794f, 2605.504f, 44.61582f);
  4692. case 38:
  4693. if (A_1 != 1)
  4694. {
  4695. return buildStruct(-40.0528f, -1084.016f, 26.6224f);
  4696. }
  4697. return buildStruct(-32.61f, -1089.67f, 25.42f);
  4698. case 39:
  4699. if (A_1 != 1)
  4700. {
  4701. return buildStruct(1445.544f, 6334.057f, 23.975f);
  4702. }
  4703. return buildStruct(1439.012f, 6336.812f, 22.96477f);
  4704. case 40:
  4705. if (A_1 != 1)
  4706. {
  4707. return buildStruct(-784.4851f, -1351.364f, 8.1001f);
  4708. }
  4709. return buildStruct(-782.5126f, -1352.245f, 8.0001f);
  4710. case 41:
  4711. if (A_1 != 1)
  4712. {
  4713. return buildStruct(963.1673f, -1831.149f, 36.2055f);
  4714. }
  4715. return buildStruct(962.8806f, -1826.419f, 30.07195f);
  4716. case 42:
  4717. if (A_1 != 1)
  4718. {
  4719. return buildStruct(-1246.494f, -1533.677f, 4.5262f);
  4720. }
  4721. return buildStruct(-1246.155f, -1531.647f, 3.2962f);
  4722. case 43:
  4723. if (A_1 != 1)
  4724. {
  4725. return buildStruct(-761.1058f, 701.9452f, 145.05f);
  4726. }
  4727. return buildStruct(-765.5466f, 698.8101f, 143.3693f);
  4728. case 44:
  4729. if (A_1 != 1)
  4730. {
  4731. return buildStruct(-513.4391f, 30.9069f, 43.9018f);
  4732. }
  4733. return buildStruct(-512.1094f, 28.86313f, 43.6153f);
  4734. case 45:
  4735. if (A_1 != 1)
  4736. {
  4737. return buildStruct(780.3879f, 1295.705f, 361.6941f);
  4738. }
  4739. return buildStruct(781.3839f, 1292.073f, 359.2997f);
  4740. case 46:
  4741. return buildStruct(208.69f, 337.76f, 104.64f);
  4742. case 47:
  4743. if (A_1 != 1)
  4744. {
  4745. return buildStruct(-1890.24f, 2073.26f, 140.11f);
  4746. }
  4747. return buildStruct(-1889.99f, 2078.38f, 140f);
  4748. case 48:
  4749. return buildStruct(153.6156f, -3073.998f, 4.8962f);
  4750. case 49:
  4751. if (A_1 == null)
  4752. {
  4753. return buildStruct(-304.0894f, -1180.886f, 23.9493f);
  4754. }
  4755. return buildStruct(-306.2449f, -1180.538f, 22.711f);
  4756. case 50:
  4757. return buildStruct(-2006.987f, -556.4998f, 11.8813f);
  4758. case 51:
  4759. if (A_1 != 1)
  4760. {
  4761. return buildStruct(-588.1934f, -290.4782f, 43.7101f);
  4762. }
  4763. return buildStruct(-590.2079f, -289.8196f, 40.68631f);
  4764. case 52:
  4765. return buildStruct(-1795.826f, -855.7111f, 8.2048f);
  4766. case 53:
  4767. return buildStruct(-1557.108f, -1155.246f, 2.9158f);
  4768. case 54:
  4769. if (A_1 != 1)
  4770. {
  4771. return buildStruct(-1467.483f, -1387.507f, 3.1432f);
  4772. }
  4773. return buildStruct(-1470.71f, -1389.33f, 1.58f);
  4774. case 55:
  4775. return buildStruct(-684.8126f, -180.648f, 48.02f);
  4776. case 56:
  4777. if (A_1 != 1)
  4778. {
  4779. return buildStruct(-1307.062f, 641.4211f, 138.0582f);
  4780. }
  4781. return buildStruct(-1311.413f, 640.1154f, 136.9244f);
  4782. case 57:
  4783. return buildStruct(2493.686f, 4963.541f, 43.7358f);
  4784. case 58:
  4785. if (A_1 != 1)
  4786. {
  4787. return buildStruct(1392.609f, 3605.799f, 34.9939f);
  4788. }
  4789. return buildStruct(1392.76f, 3602.94f, 33.98f);
  4790. case 59:
  4791. if (A_1 != 1)
  4792. {
  4793. return buildStruct(-535.4436f, 5297.496f, 76.3891f);
  4794. }
  4795. return buildStruct(-527.33f, 5295.7f, 73.17f);
  4796. case 60:
  4797. if (A_1 != 1)
  4798. {
  4799. return buildStruct(-551.5837f, 5349.404f, 75.253f);
  4800. }
  4801. return buildStruct(-564.26f, 5353.13f, 69.23f);
  4802. case 61:
  4803. if (A_1 != 1)
  4804. {
  4805. return buildStruct(0.1911f, -1825.905f, 24.3295f);
  4806. }
  4807. return buildStruct(3.18f, -1827.1f, 24.22f);
  4808. case 62:
  4809. if (A_1 != 1)
  4810. {
  4811. return buildStruct(63.8867f, 3683.49f, 39.1543f);
  4812. }
  4813. return buildStruct(62.25f, 3681.06f, 38.84f);
  4814. case 63:
  4815. return buildStruct(155.384f, -741.179f, 258.6519f);
  4816. case 64:
  4817. if (A_1 != 1)
  4818. {
  4819. return buildStruct(124.265f, -1205.882f, 28.2951f);
  4820. }
  4821. return buildStruct(126.61f, -1206.29f, 28.3f);
  4822. case 65:
  4823. return buildStruct(27.449f, -625.31f, 15.462f);
  4824. case 66:
  4825. if (A_1 != 1)
  4826. {
  4827. return buildStruct(-129.0374f, -659.2689f, 41.0016f);
  4828. }
  4829. return buildStruct(-129.04f, -662.04f, 39.51f);
  4830. case 67:
  4831. if (A_1 == null)
  4832. {
  4833. return buildStruct(1138.63f, -1596.61f, 35.07f);
  4834. }
  4835. return buildStruct(1138.62f, -1598.56f, 33.69f);
  4836. case 68:
  4837. if (A_1 == null)
  4838. {
  4839. return buildStruct(1147.55f, -1527.83f, 36.01f);
  4840. }
  4841. return buildStruct(1149.68f, -1525.56f, 33.84f);
  4842. case 69:
  4843. if (A_1 == null)
  4844. {
  4845. return buildStruct(296.44f, -1450.75f, 30.4f);
  4846. }
  4847. return buildStruct(297.48f, -1448.79f, 28.97f);
  4848. case 70:
  4849. if (A_1 == null)
  4850. {
  4851. return buildStruct(322.27f, -1393.75f, 32.79f);
  4852. }
  4853. return buildStruct(324.21f, -1392.68f, 31.51f);
  4854. case 71:
  4855. if (A_1 == null)
  4856. {
  4857. return buildStruct(294.3f, -598.1f, 43.73f);
  4858. }
  4859. return buildStruct(293.2f, -597.92f, 42.28f);
  4860. case 72:
  4861. if (A_1 == null)
  4862. {
  4863. return buildStruct(357.07f, -590.63f, 29.08f);
  4864. }
  4865. return buildStruct(358f, -592.66f, 27.79f);
  4866. case 73:
  4867. if (A_1 == null)
  4868. {
  4869. return buildStruct(-496.4f, -324.7f, 34.75f);
  4870. }
  4871. return buildStruct(-495.45f, -326.18f, 33.5f);
  4872. case 74:
  4873. if (A_1 == null)
  4874. {
  4875. return buildStruct(-449.82f, -353.49f, 34.75f);
  4876. }
  4877. return buildStruct(-450.91f, -351.93f, 33.5f);
  4878. case 75:
  4879. return buildStruct(-2258.833f, 323.9413f, 184.9015f);
  4880. }
  4881. return buildStruct(0f, 0f, 0f);
  4882. }
  4883.  
  4884. var sub_775C(var A_0)
  4885. {
  4886. var num2 = A_0;
  4887. if ((((num2 != 2) && (num2 != 17)) && ((num2 != 55) && (num2 != 63))) && (num2 != 65))
  4888. {
  4889. return 1;
  4890. }
  4891. return 0;
  4892. }
  4893.  
  4894. var sub_7791(var A_0, var A_1, var A_2)
  4895. {
  4896. bool flag1 = A_0 == 0f;
  4897. bool flag2 = flag1 & (rPtr((&A_0) + 4) == 0f);
  4898. if (flag2 & (rPtr((&A_0) + 8) == 0f))
  4899. {
  4900. return 1;
  4901. }
  4902. return 0;
  4903. }
  4904.  
  4905. var sub_77BB(var A_0, var A_1)
  4906. {
  4907. switch (A_0)
  4908. {
  4909. case 0:
  4910. if (A_1 != 1)
  4911. {
  4912. return buildStruct(-1756.974f, 427.531f, 126.7f);
  4913. }
  4914. return buildStruct(-1760.36f, 428.6f, 126.31f);
  4915. case 1:
  4916. return buildStruct(-1595.742f, 2799.371f, 16.0205f);
  4917. case 2:
  4918. if (A_1 != 1)
  4919. {
  4920. return buildStruct(-200.0114f, 1481.697f, 289.4303f);
  4921. }
  4922. return buildStruct(-197.1486f, 1482.685f, 288.253f);
  4923. case 3:
  4924. return buildStruct(256.77f, 2841.047f, 42.6599f);
  4925. case 4:
  4926. return buildStruct(-1360.223f, 4435.751f, 27.7754f);
  4927. case 5:
  4928. return buildStruct(64.63f, 7051.253f, 15.8272f);
  4929. case 6:
  4930. return buildStruct(-456.2838f, 1593.799f, 358.0119f);
  4931. case 7:
  4932. if (A_1 != 1)
  4933. {
  4934. return buildStruct(-3111.614f, 749.2816f, 12.6285f);
  4935. }
  4936. return buildStruct(-3114.617f, 749.8445f, 11.59352f);
  4937. case 8:
  4938. return buildStruct(713.6797f, 4095.969f, 33.765f);
  4939. case 9:
  4940. return buildStruct(255.2671f, 2586.281f, 43.9619f);
  4941. case 10:
  4942. return buildStruct(-1292.64f, -3345.82f, 23.27f);
  4943. case 11:
  4944. return buildStruct(3111.531f, 2214.848f, -8.6457f);
  4945. case 12:
  4946. if (A_1 != 1)
  4947. {
  4948. return buildStruct(555f, -837.81f, 55.08f);
  4949. }
  4950. return buildStruct(555.82f, -839.05f, 39.84f);
  4951. case 13:
  4952. return buildStruct(-2360f, 3245f, 91.9f);
  4953. case 14:
  4954. return buildStruct(1691.152f, 2640.859f, 54.0693f);
  4955. case 15:
  4956. return buildStruct(1982.37f, 6203.64f, 41.15f);
  4957. case 16:
  4958. return buildStruct(-2979f, 1588f, 23.3f);
  4959. case 17:
  4960. return buildStruct(963.5308f, -1824.04f, 30.0708f);
  4961. case 18:
  4962. return buildStruct(-295.4187f, 6188.786f, 30.48932f);
  4963. case 19:
  4964. return buildStruct(-1778f, 124f, 67.9f);
  4965. case 20:
  4966. if (A_1 != 1)
  4967. {
  4968. return buildStruct(161.2925f, 3131.854f, 42.5892f);
  4969. }
  4970. return buildStruct(157.5759f, 3133.994f, 42.45733f);
  4971. case 21:
  4972. return buildStruct(-888f, 5406f, 30.5f);
  4973. case 22:
  4974. return buildStruct(-1840f, 793f, 138.7f);
  4975. case 23:
  4976. if (A_1 != 1)
  4977. {
  4978. return buildStruct(-495.9968f, -1747.231f, 18.5194f);
  4979. }
  4980. return buildStruct(-495.8039f, -1750.207f, 17.42509f);
  4981. case 24:
  4982. if (A_1 != 1)
  4983. {
  4984. return buildStruct(-1763.359f, -263.2062f, 47.1481f);
  4985. }
  4986. return buildStruct(-1764.695f, -265.5809f, 47.6187f);
  4987. case 25:
  4988. if (A_1 != 1)
  4989. {
  4990. return buildStruct(548.5943f, -1642.603f, 27.4425f);
  4991. }
  4992. return buildStruct(548.0715f, -1642.451f, 27.2033f);
  4993. case 26:
  4994. return buildStruct(736.0563f, 2595.556f, 72.9165f);
  4995. case 27:
  4996. if (A_1 != 1)
  4997. {
  4998. return buildStruct(699.2748f, -1181.671f, 33.2608f);
  4999. }
  5000. return buildStruct(701.0009f, -1179.702f, 23.28737f);
  5001. case 28:
  5002. if (A_1 != 1)
  5003. {
  5004. return buildStruct(-1149.437f, 4940.362f, 221.3282f);
  5005. }
  5006. return buildStruct(-1146.74f, 4938.93f, 221.27f);
  5007. case 29:
  5008. if (A_1 != 1)
  5009. {
  5010. return buildStruct(2513.535f, -442.8484f, 113.0888f);
  5011. }
  5012. return buildStruct(2543.91f, -432.76f, 93.12f);
  5013. case 30:
  5014. return buildStruct(-553.1764f, -2239.877f, 121.3704f);
  5015. case 31:
  5016. if (A_1 != 1)
  5017. {
  5018. return buildStruct(987.15f, -105.88f, 74.13f);
  5019. }
  5020. return buildStruct(987.16f, -108.02f, 73.3f);
  5021. case 32:
  5022. return buildStruct(-1048f, -836f, 10.5f);
  5023. case 33:
  5024. return buildStruct(312.6026f, 6606.896f, 27.8835f);
  5025. case 34:
  5026. return buildStruct(-37.21f, 2871.26f, 58.61f);
  5027. case 35:
  5028. if (A_1 != 1)
  5029. {
  5030. return buildStruct(59f, 3692f, 38.92f);
  5031. }
  5032. return buildStruct(61.91f, 3690.51f, 38.83f);
  5033. case 36:
  5034. if (A_1 != 1)
  5035. {
  5036. return buildStruct(2934.499f, 4617.067f, 47.736f);
  5037. }
  5038. return buildStruct(2933.33f, 4617.07f, 47.72f);
  5039. case 37:
  5040. return buildStruct(57.8219f, -1932.121f, 20.4939f);
  5041. case 38:
  5042. return buildStruct(378.26f, -334.3f, 45.63f);
  5043. case 39:
  5044. if (A_1 != 1)
  5045. {
  5046. return buildStruct(2676.045f, 2793.249f, 39.5934f);
  5047. }
  5048. return buildStruct(2673.662f, 2793.702f, 31.8124f);
  5049. case 40:
  5050. return buildStruct(-1582.278f, 770.3486f, 188.1942f);
  5051. case 41:
  5052. if (A_1 != 1)
  5053. {
  5054. return buildStruct(-1640.546f, -1034.129f, 4.6074f);
  5055. }
  5056. return buildStruct(-1641.139f, -1032.815f, 4.63165f);
  5057. case 42:
  5058. if (A_1 != 1)
  5059. {
  5060. return buildStruct(-159.7137f, -209.1721f, 48.938f);
  5061. }
  5062. return buildStruct(-151.09f, -214.36f, 44.73f);
  5063. case 43:
  5064. return buildStruct(-1276.986f, -2451.886f, 72.0481f);
  5065. case 44:
  5066. if (A_1 != 1)
  5067. {
  5068. return buildStruct(-402f, 1053f, 323f);
  5069. }
  5070. return buildStruct(-403.5827f, 1056.212f, 322.8414f);
  5071. case 45:
  5072. return buildStruct(2728.987f, 1576.382f, 65.5818f);
  5073. case 46:
  5074. if (A_1 != 1)
  5075. {
  5076. return buildStruct(-215.9002f, 6125.27f, 56.278f);
  5077. }
  5078. return buildStruct(-221.27f, 6133.62f, 30.48f);
  5079. case 47:
  5080. return buildStruct(2092.225f, 2492.302f, 89.4046f);
  5081. case 48:
  5082. return buildStruct(-1124.666f, -967.1614f, 5.6319f);
  5083. case 49:
  5084. if (A_1 != 1)
  5085. {
  5086. return buildStruct(-405f, 325f, 108.7f);
  5087. }
  5088. return buildStruct(-405.5299f, 323.4063f, 107.7227f);
  5089. case 50:
  5090. return buildStruct(-1087.31f, -2429.3f, 13f);
  5091. case 51:
  5092. return buildStruct(-1042.645f, 879.7763f, 160.2144f);
  5093. case 52:
  5094. if (A_1 != 1)
  5095. {
  5096. return buildStruct(-1078.35f, 682.2944f, 144.904f);
  5097. }
  5098. return buildStruct(-1081.229f, 678.9454f, 141.8056f);
  5099. case 53:
  5100. return buildStruct(-402.0679f, 1355.062f, 329.8384f);
  5101. case 54:
  5102. return buildStruct(153.3876f, 713.6584f, 207.2551f);
  5103. case 55:
  5104. return buildStruct(186.9f, 243.0269f, 140.55f);
  5105. case 56:
  5106. if (A_1 != 1)
  5107. {
  5108. return buildStruct(304f, -3259f, 5f);
  5109. }
  5110. return buildStruct(302.01f, -3254.45f, 4.8f);
  5111. case 57:
  5112. if (A_1 != 1)
  5113. {
  5114. return buildStruct(-397f, -1885f, 21.5f);
  5115. }
  5116. return buildStruct(-398.57f, -1883.96f, 20.54f);
  5117. case 58:
  5118. return buildStruct(780.7208f, -211.0616f, 65.1143f);
  5119. case 59:
  5120. return buildStruct(-1755.011f, 184.3929f, 63.3711f);
  5121. case 60:
  5122. if (A_1 != 1)
  5123. {
  5124. return buildStruct(786.0139f, 2164.951f, 52.0981f);
  5125. }
  5126. return buildStruct(788.84f, 2164.06f, 52.1f);
  5127. case 61:
  5128. return buildStruct(1707.228f, 4920.156f, 41.0637f);
  5129. case 62:
  5130. return buildStruct(-684.9417f, 5793.045f, 16.331f);
  5131. case 63:
  5132. return buildStruct(-2188f, 4251f, 48f);
  5133. case 64:
  5134. if (A_1 != 1)
  5135. {
  5136. return buildStruct(-1103f, 2715f, 19f);
  5137. }
  5138. return buildStruct(-1099.08f, 2711.35f, 18.11f);
  5139. case 65:
  5140. return buildStruct(581f, -2805f, 5.5f);
  5141. case 66:
  5142. if (A_1 != 1)
  5143. {
  5144. return buildStruct(-665.4316f, -2002.04f, 7.5968f);
  5145. }
  5146. return buildStruct(-663.95f, -1998.85f, 6.1f);
  5147. case 67:
  5148. return buildStruct(1442.905f, -1479.759f, 62.2245f);
  5149. case 68:
  5150. if (A_1 != 1)
  5151. {
  5152. return buildStruct(-356.5324f, -145.0359f, 41.7413f);
  5153. }
  5154. return buildStruct(-361.92f, -141.76f, 37.58f);
  5155. case 69:
  5156. return buildStruct(624.0116f, 558.6531f, 129.2455f);
  5157. case 70:
  5158. return buildStruct(2833f, 2807f, 56.3785f);
  5159. case 71:
  5160. if (A_1 != 1)
  5161. {
  5162. return buildStruct(94.0769f, 6356.961f, 30.3761f);
  5163. }
  5164. return buildStruct(92.14449f, 6360.182f, 30.37612f);
  5165. case 72:
  5166. return buildStruct(-2231.514f, 3477.792f, 29.3291f);
  5167. case 73:
  5168. return buildStruct(377f, 3582f, 32.5f);
  5169. case 74:
  5170. if (A_1 != 1)
  5171. {
  5172. return buildStruct(-2948f, 441f, 15f);
  5173. }
  5174. return buildStruct(-2947.47f, 445.6f, 14.29f);
  5175. case 75:
  5176. if (A_1 != 1)
  5177. {
  5178. return buildStruct(1296f, -3348f, 5.2f);
  5179. }
  5180. return buildStruct(1292.88f, -3341.78f, 4.9f);
  5181. case 76:
  5182. if (A_1 != 1)
  5183. {
  5184. return buildStruct(-1165.883f, -2051.026f, 13.2268f);
  5185. }
  5186. return buildStruct(-1165.46f, -2054.09f, 13.2f);
  5187. case 77:
  5188. if (A_1 != 1)
  5189. {
  5190. return buildStruct(1235f, -450f, 66.5f);
  5191. }
  5192. return buildStruct(1235.57f, -452.01f, 65.7f);
  5193. case 78:
  5194. return buildStruct(-467.0458f, -934.8019f, 46.9844f);
  5195. case 79:
  5196. return buildStruct(226.7f, -1761f, 28.5f);
  5197. case 80:
  5198. if (A_1 != 1)
  5199. {
  5200. return buildStruct(1221f, 1898f, 77.4f);
  5201. }
  5202. return buildStruct(1218.07f, 1898.69f, 76.87f);
  5203. case 81:
  5204. if (A_1 != 1)
  5205. {
  5206. return buildStruct(1535.829f, 3798.217f, 33.4563f);
  5207. }
  5208. return buildStruct(1545.99f, 3802.7f, 32.42f);
  5209. case 82:
  5210. return buildStruct(756.8601f, 6462.329f, 30.4229f);
  5211. case 83:
  5212. return buildStruct(-2319f, 4124f, 26f);
  5213. case 84:
  5214. return buildStruct(-3185f, 1053f, 20.2f);
  5215. case 85:
  5216. return buildStruct(818.9215f, -3188.167f, 4.9007f);
  5217. case 86:
  5218. if (A_1 != 1)
  5219. {
  5220. return buildStruct(-457.3656f, -2262.646f, 7.5212f);
  5221. }
  5222. return buildStruct(-451.05f, -2264.24f, 6.61f);
  5223. case 87:
  5224. if (A_1 != 1)
  5225. {
  5226. return buildStruct(1410.091f, -752.1061f, 66.2362f);
  5227. }
  5228. return buildStruct(1409.86f, -757.22f, 65.8f);
  5229. case 88:
  5230. return buildStruct(8.4875f, -441.2103f, 44.5639f);
  5231. case 89:
  5232. if (A_1 != 1)
  5233. {
  5234. return buildStruct(-937.0176f, 391.544f, 80.2377f);
  5235. }
  5236. return buildStruct(-935.04f, 387.39f, 76.62f);
  5237. case 90:
  5238. if (A_1 != 1)
  5239. {
  5240. return buildStruct(2746.554f, 3463.525f, 54.7144f);
  5241. }
  5242. return buildStruct(2748.49f, 3463.02f, 54.77f);
  5243. case 91:
  5244. return buildStruct(1898.896f, 4921.975f, 47.8088f);
  5245. case 92:
  5246. if (A_1 != 1)
  5247. {
  5248. return buildStruct(-315.9772f, 6307.385f, 31.4906f);
  5249. }
  5250. return buildStruct(-315.51f, 6310.89f, 31.37f);
  5251. case 93:
  5252. return buildStruct(-1171f, 4927f, 224f);
  5253. case 94:
  5254. return buildStruct(-281.1712f, 2528.012f, 73.6376f);
  5255. case 95:
  5256. if (A_1 != 1)
  5257. {
  5258. return buildStruct(68.453f, 3758.967f, 38.7395f);
  5259. }
  5260. return buildStruct(68.45f, 3756.27f, 38.74f);
  5261. case 96:
  5262. return buildStruct(25.2888f, -634.2637f, 6.5084f);
  5263. case 97:
  5264. if (A_1 != 1)
  5265. {
  5266. return buildStruct(-1145.283f, 4940.286f, 221.3038f);
  5267. }
  5268. return buildStruct(-1146.67f, 4939.11f, 221.27f);
  5269. case 98:
  5270. return buildStruct(441.64f, 5570.38f, 780.45f);
  5271. case 99:
  5272. if (A_1 == null)
  5273. {
  5274. return buildStruct(1357.209f, 4388.445f, 43.872f);
  5275. }
  5276. return buildStruct(1353.152f, 4377.223f, 43.3416f);
  5277. case 100:
  5278. return buildStruct(-102.0671f, -968.1538f, 295.5635f);
  5279. case 101:
  5280. return buildStruct(2492.69f, 4963.014f, 43.6478f);
  5281. }
  5282. return buildStruct(0f, 0f, 0f);
  5283. }
  5284.  
  5285. var sub_86FC(var A_0)
  5286. {
  5287. var num2 = A_0;
  5288. if (((((num2 != 1) && (num2 != 10)) && ((num2 != 11) && (num2 != 13))) && (((num2 != 14) && (num2 != 30)) && ((num2 != 34) && (num2 != 43)))) && ((((num2 != 45) && (num2 != 50)) && ((num2 != 55) && (num2 != 88))) && (((num2 != 96) && (num2 != 98)) && (num2 != 100))))
  5289. {
  5290. return 1;
  5291. }
  5292. return 0;
  5293. }
  5294.  
  5295. void sub_876D()
  5296. {
  5297. var num3 = 0;
  5298. num3 = 0;
  5299. while (true)
  5300. {
  5301. if (num3 >= 5)
  5302. {
  5303. break;
  5304. }
  5305. setElem(-1, num3, &l_311, 4);
  5306. setElem(999999f, num3, &l_317, 4);
  5307. setStruct(0f, 0f, 0f, 3, getElemPtr(num3, &l_323, 12));
  5308. setStruct(0f, 0f, 0f, 3, getElemPtr(num3, &l_339, 12));
  5309. num3++;
  5310. }
  5311. }
  5312.  
  5313. void sub_87B6(var A_0)
  5314. {
  5315. PED::SET_PED_MODEL_IS_SUPPRESSED(0x349F33E1, A_0);
  5316. PED::SET_PED_MODEL_IS_SUPPRESSED(0x9563221D, A_0);
  5317. PED::SET_PED_MODEL_IS_SUPPRESSED(0xCE5FF074, A_0);
  5318. PED::SET_PED_MODEL_IS_SUPPRESSED(0x644AC75E, A_0);
  5319. PED::SET_PED_MODEL_IS_SUPPRESSED(0xD86B5A95, A_0);
  5320. PED::SET_PED_MODEL_IS_SUPPRESSED(0x1250D7BA, A_0);
  5321. PED::SET_PED_MODEL_IS_SUPPRESSED(0xB11BAB56, A_0);
  5322. }
  5323.  
  5324. void sub_880B(var A_0)
  5325. {
  5326. bool flag1 = WEAPON::HAS_PED_GOT_WEAPON(PLAYER::PLAYER_PED_ID(), 0x23C9F95C, 0) == 0;
  5327. if (flag1 | (WEAPON::GET_AMMO_IN_PED_WEAPON(PLAYER::PLAYER_PED_ID(), 0x23C9F95C) == 0))
  5328. {
  5329. WEAPON::GIVE_WEAPON_TO_PED(PLAYER::PLAYER_PED_ID(), 0x23C9F95C, 1, A_0, A_0);
  5330. UI::0x83B608A0(0x23C9F95C);
  5331. }
  5332. }
  5333.  
  5334. void sub_8855()
  5335. {
  5336. if (PED::IS_PED_IN_GROUP(l_43) == 0)
  5337. {
  5338. PED::SET_PED_AS_GROUP_MEMBER(l_43, PED::GET_PED_GROUP_INDEX(PLAYER::PLAYER_PED_ID()));
  5339. }
  5340. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  5341. {
  5342. PED::SET_PED_NEVER_LEAVES_GROUP(l_43, 1);
  5343. PED::SET_GROUP_FORMATION_SPACING(sub_88A3(), 1f, 0.9f, 3f);
  5344. PED::0xD0D8BDBC(l_43, PED::GET_PED_GROUP_INDEX(PLAYER::PLAYER_PED_ID()), 1);
  5345. }
  5346. }
  5347.  
  5348. var sub_88A3()
  5349. {
  5350. return PLAYER::GET_PLAYER_GROUP(PLAYER::GET_PLAYER_INDEX());
  5351. }
  5352.  
  5353. void sub_88B3()
  5354. {
  5355. bool flag1 = PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) == 0;
  5356. if (flag1 & (ENTITY::IS_ENTITY_IN_WATER(PLAYER::PLAYER_PED_ID()) == 0))
  5357. {
  5358. bool flag2 = sub_8BBC(PLAYER::PLAYER_PED_ID(), l_43) > 10f;
  5359. if (flag2 | sub_8BA9("CHOP_H_WHIS"))
  5360. {
  5361. bool flag3 = (GAMEPLAY::GET_GAME_TIMER() - l_382) > 2000;
  5362. if (flag3 & CONTROLS::IS_CONTROL_JUST_PRESSED(2, 201))
  5363. {
  5364. l_382 = GAMEPLAY::GET_GAME_TIMER();
  5365. sub_899E(PLAYER::PLAYER_PED_ID(), "CALL_CHOP", 3);
  5366. if (sub_8BA9("CHOP_H_WHIS") != 0)
  5367. {
  5368. UI::CLEAR_HELP(1);
  5369. }
  5370. bool flag4 = l_26 == 15;
  5371. if (!(flag4 & (l_27 > 1)))
  5372. {
  5373. sub_2C53(0);
  5374. sub_914D(2, 1);
  5375. }
  5376. }
  5377. bool flag5 = GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 8) == 0;
  5378. bool flag6 = flag5 & (UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0);
  5379. bool flag7 = flag6 & (sub_2539() == 0);
  5380. if (flag7 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  5381. {
  5382. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 8);
  5383. sub_2421("CHOP_H_WHIS", -1);
  5384. }
  5385. }
  5386. }
  5387. }
  5388.  
  5389. void sub_899E(var A_0, var A_1, var A_2)
  5390. {
  5391. AUDIO::0x5C57B85D(A_0, A_1, sub_89B4(A_2));
  5392. }
  5393.  
  5394. var sub_89B4(var A_0)
  5395. {
  5396. switch (A_0)
  5397. {
  5398. case 0:
  5399. return "SPEECH_PARAMS_STANDARD";
  5400. case 1:
  5401. return "SPEECH_PARAMS_ALLOW_REPEAT";
  5402. case 2:
  5403. return "SPEECH_PARAMS_BEAT";
  5404. case 3:
  5405. return "SPEECH_PARAMS_FORCE";
  5406. case 4:
  5407. return "SPEECH_PARAMS_FORCE_FRONTEND";
  5408. case 5:
  5409. return "SPEECH_PARAMS_FORCE_NO_REPEAT_FRONTEND";
  5410. case 6:
  5411. return "SPEECH_PARAMS_FORCE_NORMAL";
  5412. case 7:
  5413. return "SPEECH_PARAMS_FORCE_NORMAL_CLEAR";
  5414. case 8:
  5415. return "SPEECH_PARAMS_FORCE_NORMAL_CRITICAL";
  5416. case 9:
  5417. return "SPEECH_PARAMS_FORCE_SHOUTED";
  5418. case 10:
  5419. return "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR";
  5420. case 11:
  5421. return "SPEECH_PARAMS_FORCE_SHOUTED_CRITICAL";
  5422. case 12:
  5423. return "SPEECH_PARAMS_FORCE_PRELOAD_ONLY";
  5424. case 13:
  5425. return "SPEECH_PARAMS_MEGAPHONE";
  5426. case 14:
  5427. return "SPEECH_PARAMS_HELI";
  5428. case 15:
  5429. return "SPEECH_PARAMS_FORCE_MEGAPHONE";
  5430. case 16:
  5431. return "SPEECH_PARAMS_FORCE_HELI";
  5432. case 17:
  5433. return "SPEECH_PARAMS_INTERRUPT";
  5434. case 18:
  5435. return "SPEECH_PARAMS_INTERRUPT_SHOUTED";
  5436. case 19:
  5437. return "SPEECH_PARAMS_INTERRUPT_SHOUTED_CLEAR";
  5438. case 20:
  5439. return "SPEECH_PARAMS_INTERRUPT_SHOUTED_CRITICAL";
  5440. case 21:
  5441. return "SPEECH_PARAMS_INTERRUPT_NO_FORCE";
  5442. case 22:
  5443. return "SPEECH_PARAMS_INTERRUPT_FRONTEND";
  5444. case 23:
  5445. return "SPEECH_PARAMS_INTERRUPT_NO_FORCE_FRONTEND";
  5446. case 24:
  5447. return "SPEECH_PARAMS_ADD_BLIP";
  5448. case 25:
  5449. return "SPEECH_PARAMS_ADD_BLIP_ALLOW_REPEAT";
  5450. case 26:
  5451. return "SPEECH_PARAMS_ADD_BLIP_FORCE";
  5452. case 27:
  5453. return "SPEECH_PARAMS_ADD_BLIP_SHOUTED";
  5454. case 28:
  5455. return "SPEECH_PARAMS_ADD_BLIP_SHOUTED_FORCE";
  5456. case 29:
  5457. return "SPEECH_PARAMS_ADD_BLIP_INTERRUPT";
  5458. case 30:
  5459. return "SPEECH_PARAMS_ADD_BLIP_INTERRUPT_FORCE";
  5460. case 31:
  5461. return "SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED";
  5462. case 32:
  5463. return "SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CLEAR";
  5464. case 33:
  5465. return "SPEECH_PARAMS_FORCE_PRELOAD_ONLY_SHOUTED_CRITICAL";
  5466. case 34:
  5467. return "SPEECH_PARAMS_SHOUTED";
  5468. case 35:
  5469. return "SPEECH_PARAMS_SHOUTED_CLEAR";
  5470. case 36:
  5471. return "SPEECH_PARAMS_SHOUTED_CRITICAL";
  5472. }
  5473. var num3 = 0;
  5474. return num3;
  5475. }
  5476.  
  5477. var sub_8BA9(var A_0)
  5478. {
  5479. UI::0x00E20F2D(A_0);
  5480. return UI::0xF63A13EC(0);
  5481. }
  5482.  
  5483. var sub_8BBC(var A_0, var A_1)
  5484. {
  5485. return sub_1C4A(A_0, A_1, 1);
  5486. }
  5487.  
  5488. var sub_8BCD()
  5489. {
  5490. bool flag1 = AI::GET_SCRIPT_TASK_STATUS(l_43, 0xE763797) == 7;
  5491. bool flag2 = flag1 | PED::IS_PED_RAGDOLL(l_43);
  5492. if (flag2 | ENTITY::HAS_ENTITY_BEEN_DAMAGED_BY_ANY_PED(l_43))
  5493. {
  5494. WEAPON::CLEAR_PED_LAST_WEAPON_DAMAGE(l_43);
  5495. return 1;
  5496. }
  5497. return 0;
  5498. }
  5499.  
  5500. void sub_8C08(var A_0, var A_1)
  5501. {
  5502. sub_8CBB(&l_142, 1, PLAYER::PLAYER_PED_ID(), "FRANKLIN", 0, 1);
  5503. sub_8C31(&l_142, "CHOP_AU", A_0, 3, A_1, 0);
  5504. }
  5505.  
  5506. void sub_8C31(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  5507. {
  5508. sub_8C65(A_0, 143, A_1, A_4, A_5, 0);
  5509. if (A_3 > 7)
  5510. {
  5511. A_3 = 7;
  5512. }
  5513. GAMEPLAY::SET_BIT(&g_10594, 0);
  5514. g_11731 = A_3;
  5515. strcpy(A_2, &g_11718, 24);
  5516. }
  5517.  
  5518. void sub_8C65(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  5519. {
  5520. struct _s = A_0;
  5521. 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);
  5522. g_1478 = A_1;
  5523. strcpy(A_2, &g_11778, 24);
  5524. g_12697 = A_5;
  5525. if (A_3 == 0)
  5526. {
  5527. g_12695 = 1;
  5528. g_12693 = 0;
  5529. }
  5530. else
  5531. {
  5532. g_12695 = 0;
  5533. g_12693 = 1;
  5534. }
  5535. if (A_4 == 0)
  5536. {
  5537. g_12696 = 1;
  5538. g_12694 = 0;
  5539. }
  5540. else
  5541. {
  5542. g_12696 = 0;
  5543. g_12694 = 1;
  5544. }
  5545. }
  5546.  
  5547. void sub_8CBB(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  5548. {
  5549. if (rPtr(getElemPtr(A_1, A_0, 40) + 28) == 1)
  5550. {
  5551. }
  5552. setElem(A_2, A_1, A_0, 40);
  5553. strcpy(A_3, getElemPtr(A_1, A_0, 40) + 4, 24);
  5554. wPtr(1, getElemPtr(A_1, A_0, 40) + 28);
  5555. wPtr(A_4, getElemPtr(A_1, A_0, 40) + 32);
  5556. wPtr(A_5, getElemPtr(A_1, A_0, 40) + 36);
  5557. if (g_59842 == 0)
  5558. {
  5559. if (PED::IS_PED_INJURED(A_2) == 0)
  5560. {
  5561. if (rPtr(getElemPtr(A_1, A_0, 40) + 32) == 0)
  5562. {
  5563. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(A_2, 0);
  5564. }
  5565. else
  5566. {
  5567. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(A_2, 1);
  5568. }
  5569. }
  5570. if (PED::IS_PED_INJURED(A_2) == 0)
  5571. {
  5572. if (rPtr(getElemPtr(A_1, A_0, 40) + 36) == 0)
  5573. {
  5574. PED::SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT(A_2, 0);
  5575. }
  5576. else
  5577. {
  5578. PED::SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT(A_2, 1);
  5579. }
  5580. }
  5581. }
  5582. }
  5583.  
  5584. void sub_8D55()
  5585. {
  5586. switch (GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 6))
  5587. {
  5588. case 0:
  5589. AI::TASK_PLAY_ANIM(l_43, getElem(1, &l_56, 4), "idle_a", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  5590. l_60 = "idle_a";
  5591. break;
  5592. case 1:
  5593. AI::TASK_PLAY_ANIM(l_43, getElem(1, &l_56, 4), "idle_c", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  5594. l_60 = "idle_c";
  5595. break;
  5596. default:
  5597. AI::TASK_PLAY_ANIM(l_43, getElem(1, &l_56, 4), "idle_b", 0x41000000, 0xC1000000, -1, 0, 0, 0, 0, 0);
  5598. l_60 = "idle_b";
  5599. break;
  5600. }
  5601. }
  5602.  
  5603. var sub_8DE6(var A_0, var A_1)
  5604. {
  5605. if (sub_8E19(A_0) != 0)
  5606. {
  5607. bool flag1 = AI::GET_SCRIPT_TASK_STATUS(A_0, A_1) == 1;
  5608. if (flag1 | (AI::GET_SCRIPT_TASK_STATUS(A_0, A_1) == 0))
  5609. {
  5610. return 1;
  5611. }
  5612. }
  5613. return 0;
  5614. }
  5615.  
  5616. var sub_8E19(var A_0)
  5617. {
  5618. if ((sub_9282(A_0) != 0) && (PED::IS_PED_INJURED(A_0) == 0))
  5619. {
  5620. return 1;
  5621. }
  5622. return 0;
  5623. }
  5624.  
  5625. void sub_8E39()
  5626. {
  5627. if (l_435 == 0)
  5628. {
  5629. var num3 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 8);
  5630. struct _s = getElemPtr(num3, &l_410, 12);
  5631. bool flag1 = ENTITY::IS_ENTITY_AT_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2f, 2f, 4f, 0, 1, 0) == 0;
  5632. if (flag1)
  5633. {
  5634. struct _s = getElemPtr(num3, &l_410, 12);
  5635. }
  5636. if (flag1 & (ENTITY::IS_ENTITY_AT_COORD(PLAYER::PLAYER_PED_ID(), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2f, 2f, 4f, 0, 1, 0) == 0))
  5637. {
  5638. struct _s = getElemPtr(num3, &l_410, 12);
  5639. AI::TASK_FOLLOW_NAV_MESH_TO_COORD(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1f, 20000, 0.25f, 8192, 0x471C4000);
  5640. l_435 = 1;
  5641. }
  5642. }
  5643. else if (sub_8DE6(l_43, 0x2A89B8A7) == 0)
  5644. {
  5645. var num4;
  5646. if (sub_2E1C() == 2)
  5647. {
  5648. num4 = 15;
  5649. }
  5650. else if (sub_2E1C() == 0)
  5651. {
  5652. num4 = 10;
  5653. }
  5654. else
  5655. {
  5656. num4 = -1;
  5657. }
  5658. var num5 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 100);
  5659. bool flag2 = num5 < num4;
  5660. if (flag2 & (l_392 == 0))
  5661. {
  5662. l_392 = 1;
  5663. sub_914D(13, 1);
  5664. }
  5665. else if (num5 < 50)
  5666. {
  5667. l_55 = 1;
  5668. setElem("creatures@rottweiler@amb@world_dog_barking@enter", 0, &l_56, 4);
  5669. setElem("creatures@rottweiler@amb@world_dog_barking@base", 1, &l_56, 4);
  5670. setElem("creatures@rottweiler@amb@world_dog_barking@exit", 2, &l_56, 4);
  5671. sub_914D(17, 1);
  5672. }
  5673. else
  5674. {
  5675. l_55 = 0;
  5676. setElem("creatures@rottweiler@amb@world_dog_sitting@enter", 0, &l_56, 4);
  5677. setElem("creatures@rottweiler@amb@world_dog_sitting@idle_a", 1, &l_56, 4);
  5678. setElem("creatures@rottweiler@amb@world_dog_sitting@exit", 2, &l_56, 4);
  5679. sub_914D(17, 1);
  5680. }
  5681. }
  5682. }
  5683.  
  5684. void sub_8F5A()
  5685. {
  5686. bool flag1 = (GAMEPLAY::GET_GAME_TIMER() - l_454) > 2000;
  5687. bool flag2 = flag1 & sub_9282(l_43);
  5688. if (flag2)
  5689. {
  5690. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  5691. }
  5692. if (flag2 & GAMEPLAY::IS_BULLET_IN_AREA(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 5f, 1))
  5693. {
  5694. sub_91CA("WHINE");
  5695. l_454 = GAMEPLAY::GET_GAME_TIMER();
  5696. }
  5697. }
  5698.  
  5699. void sub_8F9C()
  5700. {
  5701. bool flag1 = sub_2E1C() == 2;
  5702. if (flag1 & ((GAMEPLAY::GET_GAME_TIMER() - l_383) > l_384))
  5703. {
  5704. l_383 = GAMEPLAY::GET_GAME_TIMER();
  5705. l_384 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(10000, 15000);
  5706. sub_91CA("WHINE");
  5707. }
  5708. }
  5709.  
  5710. var sub_8FD9(var A_0, var A_1)
  5711. {
  5712. var num1 = sub_9282(l_43);
  5713. var num14 = num1 & sub_9282(PLAYER::PLAYER_PED_ID());
  5714. if (num14 != 0)
  5715. {
  5716. struct _s = &l_367;
  5717. }
  5718. if ((num14 & sub_9118(A_0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 30f)) != 0)
  5719. {
  5720. if (A_1 == 1)
  5721. {
  5722. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  5723. if (sub_905C(&l_90, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8)) != 0)
  5724. {
  5725. var num3;
  5726. var num6;
  5727. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  5728. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  5729. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  5730. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  5731. if (GAMEPLAY::ABSF(rPtr((&num3) + 2) - rPtr((&num6) + 2)) < 2.5f)
  5732. {
  5733. return 1;
  5734. }
  5735. }
  5736. }
  5737. else
  5738. {
  5739. return 1;
  5740. }
  5741. }
  5742. return 0;
  5743. }
  5744.  
  5745. var sub_905C(var A_0, var A_1, var A_2, var A_3)
  5746. {
  5747. if (rPtr((A_0) + 184) < 3)
  5748. {
  5749. }
  5750. var num3 = 0;
  5751. var num4 = 0;
  5752. var num5 = rPtr((A_0) + 184) - 1;
  5753. while (num4 < rPtr((A_0) + 184))
  5754. {
  5755. bool flag3;
  5756. bool flag1 = rPtr(getElemPtr(num4, A_0, 12) + 4) < rPtr((&A_1) + 4);
  5757. bool flag2 = flag1 & (rPtr(getElemPtr(num5, A_0, 12) + 4) >= rPtr((&A_1) + 4));
  5758. if (!flag2)
  5759. {
  5760. flag3 = rPtr(getElemPtr(num5, A_0, 12) + 4) < rPtr((&A_1) + 4);
  5761. }
  5762. if ((flag2 | (flag3 & (rPtr(getElemPtr(num4, A_0, 12) + 4) >= rPtr((&A_1) + 4)))) && ((getElem(num4, A_0, 12) + (((rPtr((&A_1) + 4) - rPtr(getElemPtr(num4, A_0, 12) + 4)) / (rPtr(getElemPtr(num5, A_0, 12) + 4) - rPtr(getElemPtr(num4, A_0, 12) + 4))) * (getElem(num5, A_0, 12) - getElem(num4, A_0, 12)))) < A_1))
  5763. {
  5764. num3 = (num3 == 0);
  5765. }
  5766. num5 = num4;
  5767. num4++;
  5768. }
  5769. return num3;
  5770. }
  5771.  
  5772. var sub_9118(var A_0, var A_1, var A_2, var A_3, var A_4)
  5773. {
  5774. var num3;
  5775. var num6;
  5776. struct _s = ENTITY::GET_ENTITY_COORDS(A_0, 1);
  5777. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num3);
  5778. struct _s = &A_1;
  5779. struct _s = &num3;
  5780. struct _s = vsub(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  5781. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num6);
  5782. var i16 = rPtr((&num6) + 1);
  5783. return (((num6 * num6) + (i16 * rPtr((&num6) + 1))) <= (A_4 * A_4));
  5784. }
  5785.  
  5786. void sub_914D(var A_0, var A_1)
  5787. {
  5788. l_81 = 0;
  5789. if (sub_9282(l_43) != 0)
  5790. {
  5791. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_43, 1);
  5792. WEAPON::CLEAR_PED_LAST_WEAPON_DAMAGE(l_43);
  5793. if (PED::IS_PED_IN_ANY_VEHICLE(l_43, 0) == 0)
  5794. {
  5795. if (A_1 == 1)
  5796. {
  5797. AI::CLEAR_PED_TASKS(l_43);
  5798. }
  5799. ENTITY::SET_ENTITY_INVINCIBLE(l_43, 0);
  5800. }
  5801. }
  5802. l_26 = A_0;
  5803. l_28 = 0;
  5804. l_27 = 0;
  5805. l_355 = -1;
  5806. setStruct(0f, 0f, 0f, 3, &l_356);
  5807. setStruct(0f, 0f, 0f, 3, &l_359);
  5808. l_309 = 5;
  5809. sub_29C8();
  5810. l_435 = 0;
  5811. l_409 = 0;
  5812. l_454 = GAMEPLAY::GET_GAME_TIMER();
  5813. AUDIO::SET_AUDIO_FLAG("DisableBarks", 0);
  5814. }
  5815.  
  5816. void sub_91CA(var A_0)
  5817. {
  5818. AUDIO::0x498849F3(l_43, 3, A_0);
  5819. }
  5820.  
  5821. var sub_91DB()
  5822. {
  5823. if (sub_8FD9(PLAYER::PLAYER_PED_ID(), 1) != 0)
  5824. {
  5825. if ((GAMEPLAY::GET_GAME_TIMER() - l_376) > l_377)
  5826. {
  5827. return 1;
  5828. }
  5829. struct _s = (&l_367) + 5;
  5830. if (sub_2C1A(PLAYER::PLAYER_PED_ID(), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1) < 8f)
  5831. {
  5832. sub_8C08("CHOP_KENNEL", 0);
  5833. return 1;
  5834. }
  5835. }
  5836. return 0;
  5837. }
  5838.  
  5839. var sub_9228(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5, var A_6)
  5840. {
  5841. var num3 = 0;
  5842. if (sub_9282(A_0) == 0)
  5843. {
  5844. return 0;
  5845. }
  5846. if (A_5 == 1)
  5847. {
  5848. var num4 = 0f;
  5849. struct _s = &A_1;
  5850. num3 = GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), &num4);
  5851. if (num3 != 0)
  5852. {
  5853. wPtr(num4, (&A_1) + 8);
  5854. }
  5855. }
  5856. struct _s = &A_1;
  5857. ENTITY::SET_ENTITY_COORDS(A_0, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1, 0, 0, A_6);
  5858. ENTITY::SET_ENTITY_HEADING(A_0, A_4);
  5859. if (A_5 != null)
  5860. {
  5861. return num3;
  5862. }
  5863. return 1;
  5864. }
  5865.  
  5866. var sub_9282(var A_0)
  5867. {
  5868. if ((ENTITY::DOES_ENTITY_EXIST(A_0) != 0) && (ENTITY::IS_ENTITY_DEAD(A_0) == 0))
  5869. {
  5870. return 1;
  5871. }
  5872. return 0;
  5873. }
  5874.  
  5875. void sub_92A2()
  5876. {
  5877. if ((GAMEPLAY::GET_GAME_TIMER() - l_458) > 60000)
  5878. {
  5879. l_458 = GAMEPLAY::GET_GAME_TIMER();
  5880. bool flag1 = l_26 == 2;
  5881. bool flag2 = flag1 | (l_26 == 5);
  5882. if (flag2 | (l_26 == 15))
  5883. {
  5884. if (sub_2E1C() == 1)
  5885. {
  5886. sub_92F5(115, 1);
  5887. }
  5888. else
  5889. {
  5890. sub_92F5(116, 1);
  5891. }
  5892. }
  5893. }
  5894. }
  5895.  
  5896. void sub_92F5(var A_0, var A_1)
  5897. {
  5898. if ((A_1 >= 1) && (rPtr(getElemPtr(A_0, &g_42515, 28) + 8) == 0))
  5899. {
  5900. if (getElem(A_0, &g_42515, 28) != 0)
  5901. {
  5902. var num3;
  5903. STATS::STAT_GET_INT(rPtr(getElemPtr(A_0, &g_42515, 28) + 4), &num3, -1);
  5904. num3++;
  5905. STATS::STAT_SET_INT(rPtr(getElemPtr(A_0, &g_42515, 28) + 4), num3, 1);
  5906. }
  5907. if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() != 0)
  5908. {
  5909. }
  5910. }
  5911. }
  5912.  
  5913. void sub_9351()
  5914. {
  5915. if ((GAMEPLAY::GET_GAME_TIMER() - l_455) > 500)
  5916. {
  5917. l_455 = GAMEPLAY::GET_GAME_TIMER();
  5918. bool flag1 = l_26 != 15;
  5919. if (flag1 & GAMEPLAY::0x507BC6F7(PLAYER::PLAYER_PED_ID(), 0x23C9F95C, 1.5f, &l_438, &l_437, 0))
  5920. {
  5921. sub_2C53(1);
  5922. }
  5923. }
  5924. }
  5925.  
  5926. void sub_9399()
  5927. {
  5928. var num1 = sub_9C0D();
  5929. var num7 = num1 & sub_9BB1();
  5930. var num8 = num7 & (sub_9B9C() == 0);
  5931. var num9 = num8 & (l_28 == 0);
  5932. var num10 = num9 & (l_26 != 6);
  5933. var num11 = num10 & sub_2539();
  5934. var num12 = num11 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0);
  5935. var num13 = num12 & (PED::IS_PED_IN_COMBAT(l_43, 0) == 0);
  5936. var num14 = num13 & (sub_4D08() == 0);
  5937. if ((num14 & (sub_2438() == 0)) == 0)
  5938. {
  5939. sub_98D0(1);
  5940. }
  5941. else
  5942. {
  5943. CONTROLS::DISABLE_CONTROL_ACTION(0, 19);
  5944. CONTROLS::DISABLE_CONTROL_ACTION(0, 42);
  5945. CONTROLS::DISABLE_CONTROL_ACTION(0, 209);
  5946. CONTROLS::DISABLE_CONTROL_ACTION(0, 208);
  5947. CONTROLS::DISABLE_CONTROL_ACTION(0, 37);
  5948. if (l_366 == 0)
  5949. {
  5950. sub_9A57(SYSTEM::FLOOR(rPtr(((&g_86838) + 19515) + 254)), 100, "CHOP_H_HAPPY", 1, -1, 2, -1f, -1f, 0, 1, 0, 0, 1);
  5951. }
  5952. else
  5953. {
  5954. sub_9A57(100, 100, "CHOP_H_HAPPY", 1, -1, 2, -1f, -1f, 0, 1, 0, 0, 1);
  5955. }
  5956. if (sub_992E() == 0)
  5957. {
  5958. UI::CLEAR_HELP(1);
  5959. if (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 0) == 0)
  5960. {
  5961. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 0);
  5962. }
  5963. if (l_365 == 0)
  5964. {
  5965. l_365 = sub_98A3();
  5966. }
  5967. if (l_365 == 1)
  5968. {
  5969. var num3 = sub_98BD();
  5970. if (num3 > 4)
  5971. {
  5972. num3 = 4;
  5973. }
  5974. bool flag8 = l_26 == 1;
  5975. bool flag9 = flag8 | (l_26 == 17);
  5976. bool flag10 = flag9 | (l_26 == 18);
  5977. bool flag11 = flag10 | (l_26 == 3);
  5978. if (flag11 | (l_26 == 4))
  5979. {
  5980. bool flag12 = sub_2E1C() == 2;
  5981. bool flag13 = flag12 & (l_366 == 0);
  5982. if (flag13 & (num3 > 0))
  5983. {
  5984. strcpy("CHOP_H_WAIT_H", &l_83, 16);
  5985. }
  5986. else
  5987. {
  5988. strcpy("CHOP_H_WAIT_", &l_83, 16);
  5989. }
  5990. saddi(num3, &l_83, 16);
  5991. }
  5992. else
  5993. {
  5994. bool flag14 = l_26 == 2;
  5995. if (flag14 | (l_26 == 15))
  5996. {
  5997. bool flag15 = sub_2E1C() == 2;
  5998. bool flag16 = flag15 & (l_366 == 0);
  5999. if (flag16 & (num3 > 0))
  6000. {
  6001. strcpy("CHOP_H_WALK_H", &l_83, 16);
  6002. }
  6003. else
  6004. {
  6005. strcpy("CHOP_H_WALK_", &l_83, 16);
  6006. }
  6007. saddi(num3, &l_83, 16);
  6008. }
  6009. }
  6010. sub_988D(&l_83);
  6011. }
  6012. else
  6013. {
  6014. bool flag17 = l_26 == 2;
  6015. if (flag17 | (l_26 == 15))
  6016. {
  6017. sub_988D("CHOP_H_HOME");
  6018. }
  6019. else
  6020. {
  6021. sub_988D("CHOP_H_NOAPP");
  6022. }
  6023. }
  6024. }
  6025. else
  6026. {
  6027. if (g_19601 == 0)
  6028. {
  6029. g_19601 = 1;
  6030. }
  6031. if (CAM::IS_GAMEPLAY_HINT_ACTIVE() != 0)
  6032. {
  6033. CAM::0xCAFEE798(1);
  6034. }
  6035. else
  6036. {
  6037. CAM::SET_GAMEPLAY_ENTITY_HINT(l_43, 0f, 0f, 0f, 1, -1, 1000, 1000, 0xB833D00);
  6038. }
  6039. CONTROLS::SET_INPUT_EXCLUSIVE(2, 194);
  6040. CONTROLS::SET_INPUT_EXCLUSIVE(2, 196);
  6041. CONTROLS::ENABLE_CONTROL_ACTION(0, 25);
  6042. CONTROLS::SET_INPUT_EXCLUSIVE(2, 191);
  6043. CONTROLS::SET_INPUT_EXCLUSIVE(2, 192);
  6044. CONTROLS::SET_INPUT_EXCLUSIVE(2, 190);
  6045. CONTROLS::SET_INPUT_EXCLUSIVE(2, 189);
  6046. var num15 = CONTROLS::IS_CONTROL_JUST_PRESSED(2, 194);
  6047. if ((num15 & sub_98F9()) != 0)
  6048. {
  6049. switch (l_26)
  6050. {
  6051. case 1:
  6052. case 3:
  6053. case 4:
  6054. l_49 = 1;
  6055. sub_98D0(0);
  6056. sub_91CA("PLAYFUL");
  6057. sub_8C08("CHOP_WALK", 0);
  6058. sub_914D(2, 1);
  6059. break;
  6060. case 2:
  6061. case 5:
  6062. case 15:
  6063. l_49 = 0;
  6064. sub_98D0(0);
  6065. sub_914D(3, 1);
  6066. break;
  6067. case 17:
  6068. case 18:
  6069. l_49 = 1;
  6070. sub_98D0(0);
  6071. sub_8C08("CHOP_WALK", 0);
  6072. l_28 = 2;
  6073. break;
  6074. }
  6075. bool flag1 = l_49 == 1;
  6076. if (flag1 & STATS::STAT_GET_INT(0x55C0DF48, &l_457, -1))
  6077. {
  6078. l_457++;
  6079. STATS::STAT_SET_INT(0x55C0DF48, l_457, 1);
  6080. }
  6081. }
  6082. if (l_365 == 1)
  6083. {
  6084. var num16 = CONTROLS::IS_CONTROL_JUST_PRESSED(2, 196);
  6085. if ((num16 & sub_98F9()) != 0)
  6086. {
  6087. bool flag2 = l_26 == 17;
  6088. if (flag2 | (l_26 == 18))
  6089. {
  6090. l_28 = 5;
  6091. }
  6092. else
  6093. {
  6094. sub_914D(5, 1);
  6095. }
  6096. }
  6097. bool flag3 = sub_2E1C() == 2;
  6098. if (flag3 & (l_366 == 0))
  6099. {
  6100. if ((sub_98BD() >= 1) && (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 191) != 0))
  6101. {
  6102. sub_8C08("CHOP_CANT", 0);
  6103. }
  6104. if ((sub_98BD() >= 2) && (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 192) != 0))
  6105. {
  6106. sub_8C08("CHOP_CANT", 0);
  6107. }
  6108. if ((sub_98BD() >= 3) && (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 190) != 0))
  6109. {
  6110. sub_8C08("CHOP_CANT", 0);
  6111. }
  6112. if ((sub_98BD() >= 4) && (CONTROLS::IS_CONTROL_JUST_PRESSED(2, 189) != 0))
  6113. {
  6114. sub_8C08("CHOP_CANT", 0);
  6115. }
  6116. }
  6117. else
  6118. {
  6119. if (sub_98BD() >= 1)
  6120. {
  6121. var num17 = CONTROLS::IS_CONTROL_JUST_PRESSED(2, 191);
  6122. if ((num17 & sub_98F9()) != 0)
  6123. {
  6124. sub_8C08("CHOP_SIT", 0);
  6125. bool flag4 = l_26 == 17;
  6126. if (flag4 | (l_26 == 18))
  6127. {
  6128. l_28 = 8;
  6129. }
  6130. else
  6131. {
  6132. sub_914D(8, 1);
  6133. }
  6134. }
  6135. }
  6136. if (sub_98BD() >= 2)
  6137. {
  6138. var num18 = CONTROLS::IS_CONTROL_JUST_PRESSED(2, 192);
  6139. if ((num18 & sub_98F9()) != 0)
  6140. {
  6141. sub_8C08("CHOP_PAW", 0);
  6142. bool flag5 = l_26 == 17;
  6143. if (flag5 | (l_26 == 18))
  6144. {
  6145. l_28 = 9;
  6146. }
  6147. else
  6148. {
  6149. sub_914D(9, 1);
  6150. }
  6151. }
  6152. }
  6153. if (sub_98BD() >= 3)
  6154. {
  6155. var num19 = CONTROLS::IS_CONTROL_JUST_PRESSED(2, 190);
  6156. if ((num19 & sub_98F9()) != 0)
  6157. {
  6158. sub_8C08("CHOP_BEG", 0);
  6159. bool flag6 = l_26 == 17;
  6160. if (flag6 | (l_26 == 18))
  6161. {
  6162. l_28 = 7;
  6163. }
  6164. else
  6165. {
  6166. sub_914D(7, 1);
  6167. }
  6168. }
  6169. }
  6170. if (sub_98BD() >= 4)
  6171. {
  6172. var num20 = CONTROLS::IS_CONTROL_JUST_PRESSED(2, 189);
  6173. if ((num20 & sub_98F9()) != 0)
  6174. {
  6175. sub_8C08("CHOP_PET", 0);
  6176. bool flag7 = l_26 == 17;
  6177. if (flag7 | (l_26 == 18))
  6178. {
  6179. l_28 = 10;
  6180. }
  6181. else
  6182. {
  6183. sub_914D(10, 1);
  6184. }
  6185. }
  6186. }
  6187. }
  6188. }
  6189. }
  6190. }
  6191. }
  6192.  
  6193. void sub_988D(var A_0)
  6194. {
  6195. UI::0xB245FC10(A_0);
  6196. UI::0xB59B530D(0, 1, 1, -1);
  6197. }
  6198.  
  6199. var sub_98A3()
  6200. {
  6201. if (rPtr(((&g_86838) + 19515) + 263) != 0)
  6202. {
  6203. return 1;
  6204. }
  6205. return 0;
  6206. }
  6207.  
  6208. var sub_98BD()
  6209. {
  6210. return rPtr((((&g_86838) + 19515) + 254) + 3);
  6211. }
  6212.  
  6213. void sub_98D0(var A_0)
  6214. {
  6215. if (sub_992E() != 0)
  6216. {
  6217. UI::CLEAR_HELP(1);
  6218. }
  6219. bool flag1 = A_0 == 1;
  6220. if (flag1 & CAM::IS_GAMEPLAY_HINT_ACTIVE())
  6221. {
  6222. CAM::STOP_GAMEPLAY_HINT(0);
  6223. }
  6224. }
  6225.  
  6226. var sub_98F9()
  6227. {
  6228. bool flag1 = l_26 == 8;
  6229. bool flag2 = flag1 | (l_26 == 7);
  6230. bool flag3 = flag2 | (l_26 == 9);
  6231. if (flag3 | (l_26 == 10))
  6232. {
  6233. return 0;
  6234. }
  6235. return 1;
  6236. }
  6237.  
  6238. var sub_992E()
  6239. {
  6240. if (UI::IS_HELP_MESSAGE_BEING_DISPLAYED() != 0)
  6241. {
  6242. var num1 = sub_8BA9("CHOP_H_WAIT_0");
  6243. var num6 = num1 | sub_8BA9("CHOP_H_WAIT_1");
  6244. var num7 = num6 | sub_8BA9("CHOP_H_WAIT_2");
  6245. var num8 = num7 | sub_8BA9("CHOP_H_WAIT_3");
  6246. var num9 = num8 | sub_8BA9("CHOP_H_WAIT_4");
  6247. var num10 = num9 | sub_8BA9("CHOP_H_WAIT_H1");
  6248. var num11 = num10 | sub_8BA9("CHOP_H_WAIT_H2");
  6249. var num12 = num11 | sub_8BA9("CHOP_H_WAIT_H3");
  6250. var num13 = num12 | sub_8BA9("CHOP_H_WAIT_H4");
  6251. var num14 = num13 | sub_8BA9("CHOP_H_HOME");
  6252. var num15 = num14 | sub_8BA9("CHOP_H_WALK_0");
  6253. var num16 = num15 | sub_8BA9("CHOP_H_WALK_1");
  6254. var num17 = num16 | sub_8BA9("CHOP_H_WALK_2");
  6255. var num18 = num17 | sub_8BA9("CHOP_H_WALK_3");
  6256. var num19 = num18 | sub_8BA9("CHOP_H_WALK_4");
  6257. var num20 = num19 | sub_8BA9("CHOP_H_WALK_H1");
  6258. var num21 = num20 | sub_8BA9("CHOP_H_WALK_H2");
  6259. var num22 = num21 | sub_8BA9("CHOP_H_WALK_H3");
  6260. var num23 = num22 | sub_8BA9("CHOP_H_WALK_H4");
  6261. if ((num23 | sub_8BA9("CHOP_H_NOAPP")) != 0)
  6262. {
  6263. return 1;
  6264. }
  6265. }
  6266. return 0;
  6267. }
  6268.  
  6269. void sub_9A57(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, var A_10, var A_11, var A_12)
  6270. {
  6271. var num3 = -1;
  6272. var num4 = 0;
  6273. while (true)
  6274. {
  6275. if (num4 > 3)
  6276. {
  6277. break;
  6278. }
  6279. if ((num3 == -1) && (sub_9B83(0, num4) == 0))
  6280. {
  6281. num3 = num4;
  6282. }
  6283. num4++;
  6284. }
  6285. if (num3 > -1)
  6286. {
  6287. wPtr(1, (&g_1356045) + 1);
  6288. sub_9B6A(0, num3);
  6289. setElem(A_0, num3, (&g_1356045) + 415, 4);
  6290. setElem(A_1, num3, ((&g_1356045) + 415) + 5, 4);
  6291. strcpy(A_2, getElemPtr(num3, ((&g_1356045) + 415) + 10, 64), 64);
  6292. setElem(A_3, num3, ((&g_1356045) + 415) + 80, 4);
  6293. setElem(A_4, num3, ((&g_1356045) + 415) + 75, 4);
  6294. setElem(A_5, num3, ((&g_1356045) + 415) + 90, 4);
  6295. setElem(A_6, num3, ((&g_1356045) + 415) + 95, 12);
  6296. wPtr(A_7, getElemPtr(num3, ((&g_1356045) + 415) + 95, 12) + 4);
  6297. setElem(A_8, num3, ((&g_1356045) + 415) + 108, 4);
  6298. setElem(A_9, num3, ((&g_1356045) + 415) + 113, 4);
  6299. setElem(A_10, num3, ((&g_1356045) + 415) + 132, 4);
  6300. setElem(A_11, num3, ((&g_1356045) + 415) + 137, 4);
  6301. setElem(A_12, num3, ((&g_1356045) + 415) + 142, 4);
  6302. wPtr(1, (&g_1356045) + 412);
  6303. }
  6304. }
  6305.  
  6306. void sub_9B6A(var A_0, var A_1)
  6307. {
  6308. GAMEPLAY::SET_BIT(getElemPtr(A_0, (&g_1356045) + 1885, 4), A_1);
  6309. }
  6310.  
  6311. var sub_9B83(var A_0, var A_1)
  6312. {
  6313. return GAMEPLAY::IS_BIT_SET(getElem(A_0, (&g_1356045) + 1885, 4), A_1);
  6314. }
  6315.  
  6316. var sub_9B9C()
  6317. {
  6318. return (GAMEPLAY::GET_GAME_TIMER() <= (rPtr((&g_13241) + 4621) + 100));
  6319. }
  6320.  
  6321. var sub_9BB1()
  6322. {
  6323. if (l_26 != 12)
  6324. {
  6325. bool flag2;
  6326. bool flag1 = l_26 == 13;
  6327. if (!flag1)
  6328. {
  6329. flag2 = l_26 == 14;
  6330. }
  6331. if (!(flag1 | (flag2 & sub_8DE6(l_43, 0xE763797))))
  6332. {
  6333. return 1;
  6334. }
  6335. bool flag3 = l_409 == 0;
  6336. if (flag3 & CONTROLS::IS_CONTROL_PRESSED(2, 195))
  6337. {
  6338. sub_8C08("CHOP_BUSY", 0);
  6339. l_409 = 1;
  6340. }
  6341. }
  6342. return 0;
  6343. }
  6344.  
  6345. var sub_9C0D()
  6346. {
  6347. if (sub_8BBC(PLAYER::PLAYER_PED_ID(), l_43) < 10f)
  6348. {
  6349. bool flag1 = l_26 == 15;
  6350. if (!(flag1 & (l_27 < 4)))
  6351. {
  6352. if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) != 0)
  6353. {
  6354. sub_9D5C(0);
  6355. sub_9D12(0);
  6356. return 0;
  6357. }
  6358. sub_9C86();
  6359. sub_9D5C(1);
  6360. sub_9D12(1);
  6361. return 1;
  6362. }
  6363. }
  6364. sub_9D5C(0);
  6365. sub_9D12(0);
  6366. if (sub_8BA9("CHOP_H_INTRO") != 0)
  6367. {
  6368. UI::CLEAR_HELP(1);
  6369. }
  6370. return 0;
  6371. }
  6372.  
  6373. void sub_9C86()
  6374. {
  6375. bool flag1 = GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 0) == 0;
  6376. bool flag2 = flag1 & (sub_8BA9("CHOP_H_INTRO") == 0);
  6377. bool flag3 = flag2 & (sub_9CF8() == 0);
  6378. if (flag3 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  6379. {
  6380. bool flag4 = l_26 == 1;
  6381. bool flag5 = flag4 | (l_26 == 17);
  6382. if ((flag5 | (l_26 == 18)) && (sub_8FD9(PLAYER::PLAYER_PED_ID(), 1) != 0))
  6383. {
  6384. UI::CLEAR_HELP(1);
  6385. sub_988D("CHOP_H_INTRO");
  6386. }
  6387. }
  6388. }
  6389.  
  6390. var sub_9CF8()
  6391. {
  6392. if (SCRIPT::0x029D3841(0xAB140056) > 0)
  6393. {
  6394. return 1;
  6395. }
  6396. return 0;
  6397. }
  6398.  
  6399. void sub_9D12(var A_0)
  6400. {
  6401. if (A_0 == 1)
  6402. {
  6403. if (sub_9282(l_43) != 0)
  6404. {
  6405. AI::TASK_LOOK_AT_ENTITY(PLAYER::PLAYER_PED_ID(), l_43, -1, 48, 2);
  6406. l_47 = 1;
  6407. }
  6408. }
  6409. else
  6410. {
  6411. bool flag1 = l_47 == 1;
  6412. if (flag1 & sub_9282(PLAYER::PLAYER_PED_ID()))
  6413. {
  6414. AI::TASK_CLEAR_LOOK_AT(PLAYER::PLAYER_PED_ID());
  6415. l_47 = 0;
  6416. }
  6417. }
  6418. }
  6419.  
  6420. void sub_9D5C(var A_0)
  6421. {
  6422. var num3;
  6423. WEAPON::GET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), &num3, 1);
  6424. bool flag1 = l_48 == 1;
  6425. if (flag1 & (num3 != 0xA2719263))
  6426. {
  6427. A_0 = 0;
  6428. }
  6429. if (A_0 == 1)
  6430. {
  6431. bool flag2 = l_48 == 0;
  6432. if (flag2 & (num3 == 0xA2719263))
  6433. {
  6434. PED::SET_PED_CAN_BE_TARGETTED(l_43, 1);
  6435. ENTITY::SET_ENTITY_IS_TARGET_PRIORITY(l_43, 1, 0);
  6436. PED::0x7DA12905(l_43, 1);
  6437. PED::SET_TIME_EXCLUSIVE_DISPLAY_TEXTURE(l_43, 1);
  6438. l_48 = 1;
  6439. }
  6440. }
  6441. else if (l_48 == 1)
  6442. {
  6443. PED::SET_PED_CAN_BE_TARGETTED(l_43, 0);
  6444. ENTITY::SET_ENTITY_IS_TARGET_PRIORITY(l_43, 0, 0);
  6445. PED::0x7DA12905(l_43, 0);
  6446. l_48 = 0;
  6447. }
  6448. }
  6449.  
  6450. void sub_9DE3()
  6451. {
  6452. bool flag1 = l_26 != 6;
  6453. bool flag2 = flag1 & (l_81 == 0);
  6454. if (flag2 & (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 1) == 0))
  6455. {
  6456. bool flag6;
  6457. bool flag3 = l_26 == 2;
  6458. bool flag4 = flag3 | (l_26 == 5);
  6459. bool flag5 = flag4 | (l_26 == 15);
  6460. if (!flag5)
  6461. {
  6462. flag6 = l_26 == 14;
  6463. }
  6464. if (flag5 | (flag6 & (sub_8DE6(l_43, 0xE763797) == 0)))
  6465. {
  6466. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  6467. bool flag7 = PED::0xFB18CB19(PLAYER::PLAYER_PED_ID(), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 100f) > 0;
  6468. if (!flag7)
  6469. {
  6470. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  6471. }
  6472. if (!(flag7 | (PED::0xFB18CB19(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 100f) > 0)))
  6473. {
  6474. bool flag16;
  6475. var num11;
  6476. WEAPON::GET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), &num11, 1);
  6477. bool flag15 = num11 != 0x23C9F95C;
  6478. if (flag15)
  6479. {
  6480. flag16 = l_26 == 15;
  6481. }
  6482. if (flag15 & !(flag16 & (l_27 == 1)))
  6483. {
  6484. var num12;
  6485. var num17 = PLAYER::GET_PLAYER_TARGET_ENTITY(PLAYER::PLAYER_ID(), &num12);
  6486. if (((num17 | PLAYER::0x8866D9D0(PLAYER::PLAYER_ID(), &num12)) != 0) && (ENTITY::IS_ENTITY_A_PED(num12) != 0))
  6487. {
  6488. var num13 = ENTITY::0xC46F74AC(num12);
  6489. bool flag17 = PED::IS_PED_INJURED(num13) == 0;
  6490. bool flag18 = flag17 & (num13 != l_43);
  6491. bool flag19 = flag18 & (PED::IS_PED_IN_ANY_VEHICLE(num13, 0) == 0);
  6492. if (flag19 & (sub_1C4A(PLAYER::PLAYER_PED_ID(), num13, 1) < 50f))
  6493. {
  6494. AI::TASK_COMBAT_PED(l_43, num13, 0, 16);
  6495. l_450++;
  6496. if (l_450 >= 3)
  6497. {
  6498. PLAYER::SET_WANTED_LEVEL_DIFFICULTY(PLAYER::PLAYER_ID(), 0f);
  6499. PLAYER::SET_PLAYER_WANTED_LEVEL_NO_DROP(PLAYER::PLAYER_ID(), 2, 0);
  6500. }
  6501. sub_8C08("CHOP_ATTACK1", 0);
  6502. bool flag20 = UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0;
  6503. bool flag21 = flag20 & (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 11) == 0);
  6504. bool flag22 = flag21 & (sub_2539() == 0);
  6505. if (flag22 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  6506. {
  6507. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 11);
  6508. sub_2421("CHOP_H_AIM", -1);
  6509. }
  6510. sub_2C53(0);
  6511. sub_914D(6, 0);
  6512. }
  6513. }
  6514. }
  6515. }
  6516. else
  6517. {
  6518. var num4;
  6519. var num10;
  6520. STREAMING::REQUEST_ANIM_DICT("creatures@rottweiler@melee@streamed_taunts@");
  6521. initArray(&num4, 5);
  6522. var num3 = 0;
  6523. while (true)
  6524. {
  6525. var num1;
  6526. if (num3 >= PED::GET_PED_NEARBY_PEDS(PLAYER::PLAYER_PED_ID(), &num4, -1))
  6527. {
  6528. break;
  6529. }
  6530. bool flag8 = sub_9282(num10) == 0;
  6531. bool flag9 = flag8 & sub_9282(getElem(num3, &num4, 4));
  6532. if (flag9)
  6533. {
  6534. num1 = PED::IS_PED_IN_COMBAT(getElem(num3, &num4, 4), PLAYER::PLAYER_PED_ID());
  6535. }
  6536. bool flag10 = flag9 & (num1 | PED::IS_PED_IN_COMBAT(getElem(num3, &num4, 4), l_43));
  6537. bool flag11 = flag10 & (PED::IS_PED_IN_ANY_VEHICLE(getElem(num3, &num4, 4), 0) == 0);
  6538. if (flag11 & (getElem(num3, &num4, 4) != l_43))
  6539. {
  6540. num10 = getElem(num3, &num4, 4);
  6541. }
  6542. num3++;
  6543. }
  6544. if (sub_9282(num10) != 0)
  6545. {
  6546. AI::TASK_COMBAT_PED(l_43, num10, 0, 16);
  6547. sub_8C08("CHOP_ATTACK2", 0);
  6548. bool flag12 = UI::IS_HELP_MESSAGE_BEING_DISPLAYED() == 0;
  6549. bool flag13 = flag12 & (GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 6) == 0);
  6550. bool flag14 = flag13 & (sub_2539() == 0);
  6551. if (flag14 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  6552. {
  6553. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 6);
  6554. sub_2421("CHOP_H_ATTACK", -1);
  6555. }
  6556. sub_2C53(0);
  6557. sub_914D(6, 0);
  6558. }
  6559. }
  6560. }
  6561. }
  6562. if ((GAMEPLAY::GET_GAME_TIMER() - l_451) > 60000)
  6563. {
  6564. l_451 = GAMEPLAY::GET_GAME_TIMER();
  6565. if (l_450 > 0)
  6566. {
  6567. l_450--;
  6568. }
  6569. }
  6570. }
  6571.  
  6572. void sub_A0B6()
  6573. {
  6574. bool flag1 = l_26 != 16;
  6575. bool flag2 = flag1 & (g_19462 == 1);
  6576. if (flag2 & ENTITY::IS_ENTITY_ATTACHED_TO_ANY_OBJECT(PLAYER::PLAYER_PED_ID()))
  6577. {
  6578. sub_914D(16, 1);
  6579. }
  6580. }
  6581.  
  6582. void sub_A0E4()
  6583. {
  6584. if ((l_408 == 0) && (sub_8FD9(PLAYER::PLAYER_PED_ID(), 1) != 0))
  6585. {
  6586. sub_8C08("CHOP_DUMP", 0);
  6587. l_408 = 1;
  6588. }
  6589. }
  6590.  
  6591. void sub_A10C()
  6592. {
  6593. bool flag1 = l_436 != sub_A15E();
  6594. if (flag1 & sub_9282(l_43))
  6595. {
  6596. if (sub_98A3() != 0)
  6597. {
  6598. l_436 = sub_A15E();
  6599. PED::SET_PED_COMPONENT_VARIATION(l_43, 3, 0, l_436, 0);
  6600. }
  6601. else if (l_436 != 4)
  6602. {
  6603. l_436 = 4;
  6604. PED::SET_PED_COMPONENT_VARIATION(l_43, 3, 0, l_436, 0);
  6605. }
  6606. }
  6607. }
  6608.  
  6609. var sub_A15E()
  6610. {
  6611. return rPtr((((&g_86838) + 19515) + 254) + 4);
  6612. }
  6613.  
  6614. void sub_A171()
  6615. {
  6616. g_19601 = 0;
  6617. STREAMING::REQUEST_MODEL(sub_AB4D());
  6618. if (STREAMING::HAS_MODEL_LOADED(sub_AB4D()) != 0)
  6619. {
  6620. if (sub_B38F(6) != 0)
  6621. {
  6622. wPtr(6, (&l_367) + 4);
  6623. setStruct(18.1531f, 535.2469f, 169.6324f, 3, &l_367);
  6624. wPtr(204.8112f, (&l_367) + 3);
  6625. setStruct(19.52771f, 537.436f, 170.143f, 3, (&l_367) + 5);
  6626. wPtr(151.3064f, (&l_367) + 8);
  6627. setStruct(19.45963f, 535.7817f, 169.6277f, 3, &l_389);
  6628. setStruct(17.36033f, 528.8973f, 169.6277f, 3, getElemPtr(0, &l_410, 12));
  6629. setStruct(19.46877f, 529.1785f, 169.6277f, 3, getElemPtr(1, &l_410, 12));
  6630. setStruct(20.82979f, 531.5168f, 169.6277f, 3, getElemPtr(2, &l_410, 12));
  6631. setStruct(22.83555f, 532.3281f, 169.6277f, 3, getElemPtr(3, &l_410, 12));
  6632. setStruct(20.79285f, 535.001f, 169.6277f, 3, getElemPtr(4, &l_410, 12));
  6633. setStruct(18.05178f, 535.6321f, 169.6277f, 3, getElemPtr(5, &l_410, 12));
  6634. setStruct(18.92047f, 534.0938f, 169.6277f, 3, getElemPtr(6, &l_410, 12));
  6635. setStruct(17.51333f, 533.4775f, 169.6277f, 3, getElemPtr(7, &l_410, 12));
  6636. sub_AB26(&l_90);
  6637. sub_AAF5(&l_90, 12.41124f, 535.5469f, 169.6277f);
  6638. sub_AAF5(&l_90, 19.04497f, 538.5729f, 169.6277f);
  6639. sub_AAF5(&l_90, 25.00015f, 534.4414f, 169.6277f);
  6640. sub_AAF5(&l_90, 28.0998f, 527.7639f, 169.4277f);
  6641. sub_AAF5(&l_90, 17.75896f, 523.3129f, 169.2277f);
  6642. sub_AA55(&l_90);
  6643. }
  6644. else
  6645. {
  6646. wPtr(5, (&l_367) + 4);
  6647. setStruct(-10.25168f, -1422.907f, 29.67775f, 3, &l_367);
  6648. wPtr(157.9037f, (&l_367) + 3);
  6649. setStruct(-9.73f, -1421.55f, 30.1f, 3, (&l_367) + 5);
  6650. wPtr(148.26f, (&l_367) + 8);
  6651. setStruct(-10.6379f, -1424.561f, 29.67365f, 3, &l_389);
  6652. setStruct(-10.03643f, -1423.529f, 29.67602f, 3, getElemPtr(0, &l_410, 12));
  6653. setStruct(-10.78779f, -1425.306f, 29.70937f, 3, getElemPtr(1, &l_410, 12));
  6654. setStruct(-12.7048f, -1424.748f, 29.72222f, 3, getElemPtr(2, &l_410, 12));
  6655. setStruct(-12.47465f, -1422.485f, 29.74699f, 3, getElemPtr(3, &l_410, 12));
  6656. setStruct(-14.26666f, -1424.855f, 29.71964f, 3, getElemPtr(4, &l_410, 12));
  6657. setStruct(-14.55816f, -1423.048f, 29.78372f, 3, getElemPtr(5, &l_410, 12));
  6658. setStruct(-16.13293f, -1424.489f, 29.76139f, 3, getElemPtr(6, &l_410, 12));
  6659. setStruct(-16.25662f, -1423.325f, 29.81294f, 3, getElemPtr(7, &l_410, 12));
  6660. sub_AB26(&l_90);
  6661. sub_AAF5(&l_90, -7.26821f, -1427.065f, 29.67468f);
  6662. sub_AAF5(&l_90, -7.39631f, -1418.851f, 29.5858f);
  6663. sub_AAF5(&l_90, -14.27201f, -1421.59f, 29.76819f);
  6664. sub_AAF5(&l_90, -22.85347f, -1423.173f, 29.74042f);
  6665. sub_AAF5(&l_90, -22.77974f, -1427.168f, 29.65953f);
  6666. sub_AA55(&l_90);
  6667. }
  6668. l_365 = sub_98A3();
  6669. sub_A673();
  6670. if (sub_2E1C() != 2)
  6671. {
  6672. l_408 = 1;
  6673. }
  6674. else
  6675. {
  6676. struct _s = &l_389;
  6677. GAMEPLAY::CLEAR_AREA_OF_OBJECTS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 2f, 2);
  6678. STREAMING::REQUEST_MODEL(0x84898EFE);
  6679. while (true)
  6680. {
  6681. if (STREAMING::HAS_MODEL_LOADED(0x84898EFE) != 0)
  6682. {
  6683. break;
  6684. }
  6685. SYSTEM::WAIT(0);
  6686. }
  6687. struct _s = &l_389;
  6688. l_388 = OBJECT::CREATE_OBJECT(0x84898EFE, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1, 1, 0);
  6689. STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(0x84898EFE);
  6690. l_408 = 0;
  6691. }
  6692. l_392 = 0;
  6693. if (GAMEPLAY::GET_RANDOM_INT_IN_RANGE(0, 2) == 0)
  6694. {
  6695. l_377 = -1;
  6696. }
  6697. else
  6698. {
  6699. l_377 = GAMEPLAY::GET_RANDOM_INT_IN_RANGE(20000, 30000);
  6700. }
  6701. if (l_363 == 1)
  6702. {
  6703. l_26 = 7;
  6704. l_49 = 1;
  6705. }
  6706. else if (l_364 == 1)
  6707. {
  6708. l_26 = 2;
  6709. }
  6710. else if (l_377 > -1)
  6711. {
  6712. l_26 = 11;
  6713. l_49 = 0;
  6714. }
  6715. else
  6716. {
  6717. l_26 = 1;
  6718. l_49 = 0;
  6719. }
  6720. l_61 = PATHFIND::ADD_NAVMESH_BLOCKING_OBJECT(11.23f, 515.4f, 168f, 9f, 21f, 4f, sub_A663(113f), 0, 7);
  6721. l_62 = PATHFIND::ADD_NAVMESH_BLOCKING_OBJECT(24f, 528f, 168f, 5f, 5f, 4f, sub_A663(113f), 0, 7);
  6722. setStruct(444.1685f, 5569.016f, 780.1895f, 3, getElemPtr(0, &l_63, 12));
  6723. setStruct(443.8968f, 5574.931f, 780.1895f, 3, getElemPtr(1, &l_63, 12));
  6724. setStruct(-739.1624f, 5596.784f, 40.6594f, 3, getElemPtr(2, &l_63, 12));
  6725. setStruct(-738.8002f, 5593.269f, 40.6594f, 3, getElemPtr(3, &l_63, 12));
  6726. setElem(270f, 0, &l_76, 4);
  6727. setElem(270f, 1, &l_76, 4);
  6728. setElem(95f, 2, &l_76, 4);
  6729. setElem(95f, 3, &l_76, 4);
  6730. sub_876D();
  6731. l_47 = 0;
  6732. l_378 = 0;
  6733. l_382 = GAMEPLAY::GET_GAME_TIMER();
  6734. var num3 = sub_98BD();
  6735. if (num3 > 4)
  6736. {
  6737. num3 = 4;
  6738. }
  6739. strcpy("CHOP_H_WAIT_", &l_83, 16);
  6740. saddi(num3, &l_83, 16);
  6741. l_25 = 1;
  6742. }
  6743. }
  6744.  
  6745. var sub_A663(var A_0)
  6746. {
  6747. return (A_0 * 0.01745329f);
  6748. }
  6749.  
  6750. void sub_A673()
  6751. {
  6752. if (l_363 == 1)
  6753. {
  6754. var num1 = sub_9282(g_80663);
  6755. if ((num1 & PED::IS_PED_MODEL(g_80663, sub_AB4D())) != 0)
  6756. {
  6757. l_43 = g_80663;
  6758. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(l_43, 1, 1);
  6759. AI::CLEAR_PED_TASKS(l_43);
  6760. sub_A10C();
  6761. while (sub_9CF8() != 0)
  6762. {
  6763. SYSTEM::WAIT(0);
  6764. }
  6765. }
  6766. }
  6767. else if (((l_364 == 1) && (sub_9282(PLAYER::PLAYER_PED_ID()) != 0)) && (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), 0) != 0))
  6768. {
  6769. l_54 = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), 0);
  6770. sub_4BAA();
  6771. sub_4B7E();
  6772. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  6773. sub_A951(&l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 0, 1);
  6774. if (sub_9282(l_43) != 0)
  6775. {
  6776. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_43, 1);
  6777. PED::0x58A80BD5(l_43, 1);
  6778. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(l_43, 0);
  6779. PED::SET_PED_CAN_PLAY_AMBIENT_BASE_ANIMS(l_43, 0);
  6780. sub_8855();
  6781. ENTITY::SET_ENTITY_INVINCIBLE(l_43, 1);
  6782. PED::SET_PED_INTO_VEHICLE(l_43, l_54, 0);
  6783. l_81 = 8;
  6784. sub_A10C();
  6785. PED::0x187B9070(l_43, 0, 0);
  6786. }
  6787. while (sub_9CF8() != 0)
  6788. {
  6789. var num6 = sub_9282(l_43);
  6790. if ((num6 & (sub_8DE6(l_43, 0x87B9A382) == 0)) != 0)
  6791. {
  6792. STREAMING::REQUEST_ANIM_DICT(l_447);
  6793. if (STREAMING::HAS_ANIM_DICT_LOADED(l_447) != 0)
  6794. {
  6795. AI::TASK_PLAY_ANIM(l_43, l_447, "sit", 8f, -8f, -1, 1, 0, 0, 0, 0);
  6796. }
  6797. }
  6798. SYSTEM::WAIT(0);
  6799. }
  6800. }
  6801. if (ENTITY::DOES_ENTITY_EXIST(l_43) == 0)
  6802. {
  6803. struct _s = &l_367;
  6804. sub_A951(&l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtr((&l_367) + 3), 1);
  6805. }
  6806. if (sub_9282(l_43) != 0)
  6807. {
  6808. PED::ADD_RELATIONSHIP_GROUP("rel_group_chop", &l_45);
  6809. l_46 = 1;
  6810. PED::SET_RELATIONSHIP_BETWEEN_GROUPS(1, 0x6F0783F5, l_45);
  6811. PED::SET_RELATIONSHIP_BETWEEN_GROUPS(1, l_45, 0x6F0783F5);
  6812. PED::SET_PED_RELATIONSHIP_GROUP_HASH(l_43, l_45);
  6813. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(l_43, 1);
  6814. PED::0x58A80BD5(l_43, 1);
  6815. PED::SET_PED_CONFIG_FLAG(l_43, 185, 1);
  6816. PED::SET_PED_CONFIG_FLAG(l_43, 26, 1);
  6817. PED::SET_PED_CONFIG_FLAG(l_43, 32, 0);
  6818. PED::SET_PED_CONFIG_FLAG(l_43, 29, 0);
  6819. PED::SET_PED_CONFIG_FLAG(l_43, 116, 0);
  6820. PED::SET_PED_CONFIG_FLAG(l_43, 118, 1);
  6821. PED::SET_PED_CONFIG_FLAG(l_43, 132, 1);
  6822. PED::SET_PED_CONFIG_FLAG(l_43, 268, 0);
  6823. PED::SET_PED_CONFIG_FLAG(l_43, 107, 1);
  6824. PED::SET_PED_CONFIG_FLAG(l_43, 281, 1);
  6825. PED::SET_PED_CONFIG_FLAG(l_43, 137, 1);
  6826. PED::SET_PED_CONFIG_FLAG(l_43, 146, 1);
  6827. PED::SET_PED_CONFIG_FLAG(l_43, 157, 0);
  6828. PED::SET_PED_CONFIG_FLAG(l_43, 45, 1);
  6829. PED::SET_PED_CONFIG_FLAG(l_43, 167, 1);
  6830. PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(l_43, 0);
  6831. PED::SET_PED_CAN_PLAY_AMBIENT_BASE_ANIMS(l_43, 0);
  6832. WEAPON::GIVE_WEAPON_TO_PED(l_43, 0xF9FBAEBE, 1, 1, 1);
  6833. PED::SET_PED_COMBAT_ATTRIBUTES(l_43, 5, 1);
  6834. PED::SET_PED_COMBAT_ATTRIBUTES(l_43, 0, 0);
  6835. PED::SET_PED_COMBAT_ATTRIBUTES(l_43, 46, 1);
  6836. PED::SET_PED_HEARING_RANGE(l_43, 100f);
  6837. PED::SET_PED_SEEING_RANGE(l_43, 100f);
  6838. PED::SET_PED_FLEE_ATTRIBUTES(l_43, 512, 1);
  6839. PED::SET_PED_SUFFERS_CRITICAL_HITS(l_43, 0);
  6840. PED::SET_PED_MAX_HEALTH(l_43, 800);
  6841. ENTITY::SET_ENTITY_HEALTH(l_43, 800);
  6842. ENTITY::SET_ENTITY_LOD_DIST(l_43, 200);
  6843. if (PED::IS_PED_IN_ANY_VEHICLE(l_43, 0) == 0)
  6844. {
  6845. sub_40C5();
  6846. }
  6847. sub_8CBB(&l_142, 3, l_43, "CHOP", 0, 1);
  6848. PED::SET_PED_CAN_BE_TARGETTED(l_43, 0);
  6849. ENTITY::SET_ENTITY_IS_TARGET_PRIORITY(l_43, 0, 0);
  6850. PED::0x7DA12905(l_43, 0);
  6851. l_48 = 0;
  6852. g_19600 = 0;
  6853. l_450 = 0;
  6854. l_451 = GAMEPLAY::GET_GAME_TIMER();
  6855. }
  6856. }
  6857.  
  6858. var sub_A951(var A_0, var A_1, var A_2, var A_3, var A_4, var A_5)
  6859. {
  6860. var num3 = sub_AB4D();
  6861. STREAMING::REQUEST_MODEL(num3);
  6862. if (STREAMING::HAS_MODEL_LOADED(num3) == 0)
  6863. {
  6864. return 0;
  6865. }
  6866. if (ENTITY::DOES_ENTITY_EXIST(rPtr(A_0)) != 0)
  6867. {
  6868. PED::DELETE_PED(A_0);
  6869. }
  6870. struct _s = &A_1;
  6871. wPtr(PED::CREATE_PED(26, num3, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_4, 0, 0), A_0);
  6872. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 0, 0, 0, 0);
  6873. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 1, 0, 0, 0);
  6874. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 2, 0, 0, 0);
  6875. if (rPtr(((&g_86838) + 19515) + 263) != 0)
  6876. {
  6877. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 3, 0, rPtr((((&g_86838) + 19515) + 254) + 4), 0);
  6878. }
  6879. else
  6880. {
  6881. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 3, 0, 4, 0);
  6882. }
  6883. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 4, 0, 0, 0);
  6884. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 5, 0, 0, 0);
  6885. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 6, 0, 0, 0);
  6886. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 7, 0, 0, 0);
  6887. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 8, 0, 0, 0);
  6888. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 9, 0, 0, 0);
  6889. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 10, 0, 0, 0);
  6890. PED::SET_PED_COMPONENT_VARIATION(rPtr(A_0), 11, 0, 0, 0);
  6891. PED::CLEAR_ALL_PED_PROPS(rPtr(A_0));
  6892. if (A_5 != null)
  6893. {
  6894. STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(num3);
  6895. }
  6896. return 1;
  6897. }
  6898.  
  6899. void sub_AA55(var A_0)
  6900. {
  6901. if (rPtr((A_0) + 204) == 0)
  6902. {
  6903. }
  6904. if (rPtr((A_0) + 184) < 3)
  6905. {
  6906. }
  6907. var num3 = 0;
  6908. while (true)
  6909. {
  6910. if (num3 >= rPtr((A_0) + 184))
  6911. {
  6912. break;
  6913. }
  6914. struct _s = (A_0) + 188;
  6915. struct _s = getElemPtr(num3, A_0, 12);
  6916. struct _s = vadd(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  6917. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, (A_0) + 188);
  6918. num3++;
  6919. }
  6920. struct _s = (A_0) + 188;
  6921. struct _s = ftov(SYSTEM::TO_FLOAT(num3));
  6922. struct _s = vdiv(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  6923. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, (A_0) + 188);
  6924. num3 = 0;
  6925. while (true)
  6926. {
  6927. if (num3 >= rPtr((A_0) + 184))
  6928. {
  6929. break;
  6930. }
  6931. struct _s = (A_0) + 188;
  6932. struct _s = getElemPtr(num3, A_0, 12);
  6933. var num4 = SYSTEM::VDIST2(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8));
  6934. if (num4 > rPtr((A_0) + 200))
  6935. {
  6936. wPtr(num4, (A_0) + 200);
  6937. }
  6938. num3++;
  6939. }
  6940. wPtr(SYSTEM::SQRT(rPtr((A_0) + 200)), (A_0) + 200);
  6941. wPtr(0, (A_0) + 204);
  6942. }
  6943.  
  6944. void sub_AAF5(var A_0, var A_1, var A_2, var A_3)
  6945. {
  6946. if (rPtr((A_0) + 204) == 0)
  6947. {
  6948. }
  6949. if (rPtr((A_0) + 184) >= 15)
  6950. {
  6951. }
  6952. struct _s = &A_1;
  6953. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, getElemPtr(rPtr((A_0) + 184), A_0, 12));
  6954. wPtr(rPtr((A_0) + 184) + 1, (A_0) + 184);
  6955. }
  6956.  
  6957. void sub_AB26(var A_0)
  6958. {
  6959. if (rPtr((A_0) + 204) != 0)
  6960. {
  6961. }
  6962. wPtr(0, (A_0) + 184);
  6963. setStruct(0f, 0f, 0f, 3, (A_0) + 188);
  6964. wPtr(0f, (A_0) + 200);
  6965. wPtr(1, (A_0) + 204);
  6966. }
  6967.  
  6968. var sub_AB4D()
  6969. {
  6970. return 0x14EC17EA;
  6971. }
  6972.  
  6973. var sub_AB5A()
  6974. {
  6975. if (l_25 > 0)
  6976. {
  6977. if (ENTITY::DOES_ENTITY_EXIST(l_43) == 0)
  6978. {
  6979. return 1;
  6980. }
  6981. var num1 = sub_AFF3(0);
  6982. if ((num1 & (g_19462 == 0)) != 0)
  6983. {
  6984. return 1;
  6985. }
  6986. if (sub_B19C(1) == 0)
  6987. {
  6988. return 1;
  6989. }
  6990. if (g_86831 == 1)
  6991. {
  6992. return 1;
  6993. }
  6994. bool flag1 = g_59840 == 1;
  6995. bool flag2 = flag1 & (g_19462 == 0);
  6996. bool flag3 = flag2 & (g_1690 == 0);
  6997. bool flag4 = flag3 & (g_19699 == 0);
  6998. bool flag5 = flag4 & (g_19700 == 0);
  6999. bool flag6 = flag5 & (g_19701 == 0);
  7000. bool flag7 = flag6 & (g_43953 == 0);
  7001. bool flag8 = flag7 & (sub_9CF8() == 0);
  7002. bool flag9 = flag8 & (sub_2438() == 0);
  7003. bool flag10 = flag9 & (g_81997 == 0);
  7004. bool flag11 = flag10 & sub_9282(PLAYER::PLAYER_PED_ID());
  7005. if (flag11 & (sub_AFC0() == 0))
  7006. {
  7007. return 1;
  7008. }
  7009. if (g_78536 == 1)
  7010. {
  7011. return 1;
  7012. }
  7013. if (ENTITY::IS_ENTITY_DEAD(l_43) != 0)
  7014. {
  7015. var num11 = PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID());
  7016. if ((num11 & ENTITY::HAS_ENTITY_BEEN_DAMAGED_BY_ENTITY(l_43, PLAYER::PLAYER_PED_ID(), 1)) != 0)
  7017. {
  7018. g_19600 = 1;
  7019. bool flag12 = GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 9) == 0;
  7020. if (flag12 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  7021. {
  7022. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 9);
  7023. sub_2421("CHOP_H_DEAD", -1);
  7024. }
  7025. }
  7026. else
  7027. {
  7028. bool flag13 = GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 12) == 0;
  7029. if (flag13 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  7030. {
  7031. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 12);
  7032. sub_2421("CHOP_H_DEAD2", -1);
  7033. }
  7034. }
  7035. return 1;
  7036. }
  7037. if (STREAMING::STOP_PLAYER_REMAIN_ARCADE() != 0)
  7038. {
  7039. sub_ADFD();
  7040. }
  7041. else
  7042. {
  7043. var num3;
  7044. bool flag14 = l_26 == 2;
  7045. bool flag15 = flag14 | (l_26 == 5);
  7046. if (flag15 | (l_26 == 15))
  7047. {
  7048. num3 = 200f;
  7049. }
  7050. else
  7051. {
  7052. num3 = 100f;
  7053. }
  7054. if (sub_1C4A(PLAYER::PLAYER_PED_ID(), l_43, 1) > num3)
  7055. {
  7056. bool flag16 = GAMEPLAY::IS_BIT_SET(rPtr(((&g_86838) + 7661) + 94), 4) == 0;
  7057. bool flag17 = flag16 & PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID());
  7058. if (flag17 & (STREAMING::STOP_PLAYER_REMAIN_ARCADE() == 0))
  7059. {
  7060. bool flag18 = l_26 == 1;
  7061. bool flag19 = flag18 | (l_26 == 17);
  7062. bool flag20 = flag19 | (l_26 == 11);
  7063. bool flag21 = flag20 | (l_26 == 4);
  7064. bool flag22 = flag21 | (l_26 == 3);
  7065. if (!(flag22 | (l_26 == 13)))
  7066. {
  7067. GAMEPLAY::SET_BIT(((&g_86838) + 7661) + 94, 4);
  7068. sub_2421("CHOP_H_RANGE", -1);
  7069. }
  7070. }
  7071. return 1;
  7072. }
  7073. }
  7074. bool flag23 = PED::IS_PED_IN_ANY_VEHICLE(l_43, 0) == 0;
  7075. if (flag23 & (ENTITY::GET_ENTITY_HEALTH(l_43) > 0))
  7076. {
  7077. if (ENTITY::IS_ENTITY_IN_WATER(l_43) != 0)
  7078. {
  7079. var num4;
  7080. var num7;
  7081. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 1);
  7082. setStruct(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 3, &num4);
  7083. struct _s = &num4;
  7084. if ((WATER::GET_WATER_HEIGHT(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), &num7) != 0) && ((num7 - rPtr((&num4) + 2)) > 0.1f))
  7085. {
  7086. ENTITY::SET_ENTITY_HEALTH(l_43, 0);
  7087. }
  7088. }
  7089. if (FIRE::IS_ENTITY_ON_FIRE(l_43) != 0)
  7090. {
  7091. ENTITY::SET_ENTITY_HEALTH(l_43, 0);
  7092. }
  7093. }
  7094. }
  7095. return 0;
  7096. }
  7097.  
  7098. void sub_ADFD()
  7099. {
  7100. if (UI::IS_HELP_MESSAGE_BEING_DISPLAYED() != 0)
  7101. {
  7102. var num1 = sub_8BA9("CHOP_H_INTRO");
  7103. var num6 = num1 | sub_8BA9("CHOP_H_WAIT_0");
  7104. var num7 = num6 | sub_8BA9("CHOP_H_WAIT_1");
  7105. var num8 = num7 | sub_8BA9("CHOP_H_WAIT_2");
  7106. var num9 = num8 | sub_8BA9("CHOP_H_WAIT_3");
  7107. var num10 = num9 | sub_8BA9("CHOP_H_WAIT_4");
  7108. var num11 = num10 | sub_8BA9("CHOP_H_WAIT_H1");
  7109. var num12 = num11 | sub_8BA9("CHOP_H_WAIT_H2");
  7110. var num13 = num12 | sub_8BA9("CHOP_H_WAIT_H3");
  7111. var num14 = num13 | sub_8BA9("CHOP_H_WAIT_H4");
  7112. var num15 = num14 | sub_8BA9("CHOP_H_HOME");
  7113. var num16 = num15 | sub_8BA9("CHOP_H_WALK_0");
  7114. var num17 = num16 | sub_8BA9("CHOP_H_WALK_1");
  7115. var num18 = num17 | sub_8BA9("CHOP_H_WALK_2");
  7116. var num19 = num18 | sub_8BA9("CHOP_H_WALK_3");
  7117. var num20 = num19 | sub_8BA9("CHOP_H_WALK_4");
  7118. var num21 = num20 | sub_8BA9("CHOP_H_WALK_H1");
  7119. var num22 = num21 | sub_8BA9("CHOP_H_WALK_H2");
  7120. var num23 = num22 | sub_8BA9("CHOP_H_WALK_H3");
  7121. var num24 = num23 | sub_8BA9("CHOP_H_WALK_H4");
  7122. var num25 = num24 | sub_8BA9("CHOP_H_HUNT");
  7123. var num26 = num25 | sub_8BA9("CHOP_H_NOVEH");
  7124. var num27 = num26 | sub_8BA9("CHOP_H_CAR");
  7125. var num28 = num27 | sub_8BA9("CHOP_H_BIKE");
  7126. var num29 = num28 | sub_8BA9("CHOP_H_ATTACK");
  7127. var num30 = num29 | sub_8BA9("CHOP_H_BALL");
  7128. var num31 = num30 | sub_8BA9("CHOP_H_WHIS");
  7129. var num32 = num31 | sub_8BA9("CHOP_H_NOAPP");
  7130. var num33 = num32 | sub_8BA9("CHOP_H_BEHAVE");
  7131. var num34 = num33 | sub_8BA9("CHOP_H_BEHAVA");
  7132. if ((num34 | sub_8BA9("CHOP_H_AIM")) != 0)
  7133. {
  7134. UI::CLEAR_HELP(1);
  7135. }
  7136. }
  7137. }
  7138.  
  7139. var sub_AFC0()
  7140. {
  7141. return g_78925;
  7142. }
  7143.  
  7144. var sub_AFCC()
  7145. {
  7146. if (STREAMING::STOP_PLAYER_REMAIN_ARCADE() != 0)
  7147. {
  7148. return g_79154;
  7149. }
  7150. if (sub_9CF8() != 0)
  7151. {
  7152. return g_79154;
  7153. }
  7154. return 318;
  7155. }
  7156.  
  7157. var sub_AFF3(var A_0)
  7158. {
  7159. if (g_29814 == 12)
  7160. {
  7161. return 0;
  7162. }
  7163. if (sub_B015(A_0) != 0)
  7164. {
  7165. return 0;
  7166. }
  7167. return 1;
  7168. }
  7169.  
  7170. var sub_B015(var A_0)
  7171. {
  7172. return sub_B026(A_0, g_29814);
  7173. }
  7174.  
  7175. var sub_B026(var A_0, var A_1)
  7176. {
  7177. if (A_1 == 12)
  7178. {
  7179. return 1;
  7180. }
  7181. if (A_0 != 12)
  7182. {
  7183. var num3 = A_0;
  7184. switch (num3)
  7185. {
  7186. case 13:
  7187. {
  7188. bool flag1 = A_1 == 8;
  7189. if (flag1 | (A_1 == 9))
  7190. {
  7191. return 0;
  7192. }
  7193. return 1;
  7194. }
  7195. case 0:
  7196. num3 = A_1;
  7197. if ((num3 != 5) && (num3 != 14))
  7198. {
  7199. break;
  7200. }
  7201. return 1;
  7202. case 2:
  7203. case 3:
  7204. num3 = A_1;
  7205. if (((num3 != 5) && (num3 != 6)) && ((num3 != 7) && (num3 != 14)))
  7206. {
  7207. break;
  7208. }
  7209. return 1;
  7210. case 4:
  7211. switch (A_1)
  7212. {
  7213. case 14:
  7214. return 1;
  7215. }
  7216. break;
  7217. default:
  7218. if (num3 != 5)
  7219. {
  7220. if ((num3 == 6) || (num3 == 7))
  7221. {
  7222. if (A_1 != 5)
  7223. {
  7224. break;
  7225. }
  7226. return 1;
  7227. }
  7228. if (num3 == 8)
  7229. {
  7230. if (A_1 != 5)
  7231. {
  7232. break;
  7233. }
  7234. return 1;
  7235. }
  7236. if (num3 == 9)
  7237. {
  7238. num3 = A_1;
  7239. if (((num3 != 5) && (num3 != 6)) && (num3 != 14))
  7240. {
  7241. break;
  7242. }
  7243. return 1;
  7244. }
  7245. if (num3 == 10)
  7246. {
  7247. if (A_1 != 5)
  7248. {
  7249. break;
  7250. }
  7251. return 1;
  7252. }
  7253. if (num3 == 14)
  7254. {
  7255. num3 = A_1;
  7256. if (((num3 != 14) && (num3 != 11)) && (num3 != 5))
  7257. {
  7258. break;
  7259. }
  7260. return 1;
  7261. }
  7262. if ((num3 == 15) || (num3 == 11))
  7263. {
  7264. switch (A_1)
  7265. {
  7266. case 5:
  7267. case 6:
  7268. return 1;
  7269. }
  7270. break;
  7271. }
  7272. }
  7273. break;
  7274. }
  7275. }
  7276. return 0;
  7277. }
  7278.  
  7279. var sub_B19C(var A_0)
  7280. {
  7281. sub_B1B8();
  7282. return (A_0 == rPtr((((&g_86838) + 1729) + 539) + 2659));
  7283. }
  7284.  
  7285. void sub_B1B8()
  7286. {
  7287. if (ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()) != 0)
  7288. {
  7289. if (sub_B2D6(rPtr((((&g_86838) + 1729) + 539) + 2659)) == ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()))
  7290. {
  7291. wPtr(rPtr((((&g_86838) + 1729) + 539) + 2659), (((&g_86838) + 1729) + 539) + 2661);
  7292. return;
  7293. }
  7294. var num3 = sub_B299(PLAYER::PLAYER_PED_ID());
  7295. if (sub_B28D(num3) != 0)
  7296. {
  7297. bool flag1 = rPtr((((&g_86838) + 1729) + 539) + 2659) != num3;
  7298. if (flag1 & sub_B28D(rPtr((((&g_86838) + 1729) + 539) + 2659)))
  7299. {
  7300. wPtr(rPtr((((&g_86838) + 1729) + 539) + 2659), (((&g_86838) + 1729) + 539) + 2660);
  7301. }
  7302. wPtr(num3, (((&g_86838) + 1729) + 539) + 2661);
  7303. wPtr(num3, (((&g_86838) + 1729) + 539) + 2659);
  7304. return;
  7305. }
  7306. }
  7307. wPtr(143, (((&g_86838) + 1729) + 539) + 2659);
  7308. }
  7309.  
  7310. var sub_B28D(var A_0)
  7311. {
  7312. return (A_0 < 3);
  7313. }
  7314.  
  7315. var sub_B299(var A_0)
  7316. {
  7317. if (ENTITY::DOES_ENTITY_EXIST(A_0) != 0)
  7318. {
  7319. var num4 = ENTITY::GET_ENTITY_MODEL(A_0);
  7320. for (var i = 0; i <= 2; i++)
  7321. {
  7322. if (sub_B2D6(i) == num4)
  7323. {
  7324. return i;
  7325. }
  7326. }
  7327. }
  7328. return 143;
  7329. }
  7330.  
  7331. var sub_B2D6(var A_0)
  7332. {
  7333. if (sub_B28D(A_0) != 0)
  7334. {
  7335. return getElem(A_0, (&g_86838) + 23936, 116);
  7336. }
  7337. return 0;
  7338. }
  7339.  
  7340. var sub_B300(var A_0, var A_1, var A_2, var A_3, var A_4)
  7341. {
  7342. var num5 = 1000000f;
  7343. var num6 = 10;
  7344. for (var i = 0; i <= (10 - 1); i++)
  7345. {
  7346. if (rPtr(getElemPtr(i, &g_76803, 40) + 28) != 261)
  7347. {
  7348. bool flag1 = rPtr(getElemPtr(i, &g_76803, 40) + 36) == A_3;
  7349. if (flag1 | (A_3 == 143))
  7350. {
  7351. var num1 = sub_B38F(i);
  7352. if ((num1 | (A_4 == 0)) != 0)
  7353. {
  7354. struct _s = &A_0;
  7355. struct _s = getElemPtr(i, &g_76803, 40) + 12;
  7356. var num4 = GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1);
  7357. if (num4 < num5)
  7358. {
  7359. num5 = num4;
  7360. num6 = i;
  7361. }
  7362. }
  7363. }
  7364. }
  7365. }
  7366. return num6;
  7367. }
  7368.  
  7369. var sub_B38F(var A_0)
  7370. {
  7371. return GAMEPLAY::IS_BIT_SET(getElem(A_0, (&g_86838) + 4932, 4), 0);
  7372. }
  7373.  
  7374. var sub_B3A7(var A_0)
  7375. {
  7376. bool flag1 = A_0 == 136;
  7377. if (flag1 | (A_0 == -1))
  7378. {
  7379. return 0;
  7380. }
  7381. return getElem(A_0, (((&g_86838) + 6711) + 99) + 57, 4);
  7382. }
  7383.  
  7384. void sub_B3D4()
  7385. {
  7386. if (SCRIPT::0x029D3841(SCRIPT::0x2BEE1F45()) <= 1)
  7387. {
  7388. g_19601 = 0;
  7389. sub_9D12(0);
  7390. if (CAM::IS_GAMEPLAY_HINT_ACTIVE() != 0)
  7391. {
  7392. CAM::STOP_GAMEPLAY_HINT(0);
  7393. }
  7394. sub_45CC(&l_44);
  7395. if ((sub_B3A7(63) != 0) && (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()) != 0))
  7396. {
  7397. if (sub_B3A7(124) != 0)
  7398. {
  7399. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  7400. if (GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 19.3f, 528.24f, 169.63f, 1) > 50f)
  7401. {
  7402. sub_422C(238, 1, 0);
  7403. }
  7404. }
  7405. else
  7406. {
  7407. struct _s = ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1);
  7408. if (GAMEPLAY::GET_DISTANCE_BETWEEN_COORDS(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), -11.15f, -1425.56f, 29.67f, 1) > 50f)
  7409. {
  7410. sub_422C(237, 1, 0);
  7411. }
  7412. }
  7413. }
  7414. sub_2C53(1);
  7415. sub_2DE1(&l_388, 0);
  7416. sub_2DE1(&l_393, 0);
  7417. if (GRAPHICS::DOES_PARTICLE_FX_LOOPED_EXIST(l_53) != 0)
  7418. {
  7419. GRAPHICS::STOP_PARTICLE_FX_LOOPED(l_53, 0);
  7420. }
  7421. STREAMING::REMOVE_PTFX_ASSET();
  7422. if (WEAPON::HAS_PED_GOT_WEAPON(PLAYER::PLAYER_PED_ID(), 0x23C9F95C, 0) != 0)
  7423. {
  7424. WEAPON::REMOVE_WEAPON_FROM_PED(PLAYER::PLAYER_PED_ID(), 0x23C9F95C);
  7425. }
  7426. if (sub_9282(PLAYER::PLAYER_PED_ID()) != 0)
  7427. {
  7428. PED::SET_PED_CONFIG_FLAG(PLAYER::PLAYER_PED_ID(), 32, 1);
  7429. }
  7430. if (ENTITY::DOES_ENTITY_EXIST(l_43) != 0)
  7431. {
  7432. if (sub_B99A() != 0)
  7433. {
  7434. sub_B95B(&l_43);
  7435. }
  7436. else
  7437. {
  7438. bool flag1 = ENTITY::IS_ENTITY_DEAD(l_43) == 0;
  7439. if (flag1 & sub_9282(PLAYER::PLAYER_PED_ID()))
  7440. {
  7441. if (PED::IS_PED_IN_GROUP(l_43) != 0)
  7442. {
  7443. PED::REMOVE_PED_FROM_GROUP(l_43);
  7444. }
  7445. var num1 = PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82);
  7446. if ((num1 | PED::IS_PED_IN_ANY_VEHICLE(l_43, 0)) != 0)
  7447. {
  7448. if (sub_9282(l_54) == 0)
  7449. {
  7450. if (sub_B808() == 1)
  7451. {
  7452. bool flag4 = l_26 == 2;
  7453. if (flag4 | (l_26 == 15))
  7454. {
  7455. AI::CLEAR_PED_TASKS_IMMEDIATELY(l_43);
  7456. struct _s = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(PLAYER::PLAYER_PED_ID(), 1.75f, 0f, 0f);
  7457. sub_9228(l_43, rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), ENTITY::GET_ENTITY_HEADING(l_43), 1, 1);
  7458. PED::0x187B9070(l_43, 0, 0);
  7459. }
  7460. }
  7461. }
  7462. else
  7463. {
  7464. var num3 = 0;
  7465. while (true)
  7466. {
  7467. if (num3 != 0)
  7468. {
  7469. break;
  7470. }
  7471. SYSTEM::WAIT(0);
  7472. bool flag2 = sub_B92D() == 0;
  7473. if (flag2 | sub_B821(l_54, 0x41280000, 1, 0x3F000000, 0))
  7474. {
  7475. num3 = 1;
  7476. }
  7477. }
  7478. if (sub_B92D() != 0)
  7479. {
  7480. if (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0)
  7481. {
  7482. VEHICLE::SET_VEHICLE_DOOR_OPEN(l_54, l_88, 0, 0);
  7483. }
  7484. STREAMING::REQUEST_ANIM_DICT(l_447);
  7485. while (STREAMING::HAS_ANIM_DICT_LOADED(l_447) == 0)
  7486. {
  7487. SYSTEM::WAIT(0);
  7488. }
  7489. }
  7490. if (sub_B92D() != 0)
  7491. {
  7492. l_82 = PED::CREATE_SYNCHRONIZED_SCENE(0f, 0f, 0f, 0f, 0f, 0f, 2);
  7493. PED::ATTACH_SYNCHRONIZED_SCENE_TO_ENTITY(l_82, l_54, ENTITY::0xE4ECAC22(l_54, "seat_pside_f"));
  7494. AI::CLEAR_PED_TASKS_IMMEDIATELY(l_43);
  7495. AI::TASK_SYNCHRONIZED_SCENE(l_43, l_82, l_447, "get_out", 1000f, -8f, 10, 0, 0x447A0000, 0);
  7496. PED::0x187B9070(l_43, 0, 0);
  7497. var num4 = 0;
  7498. while (true)
  7499. {
  7500. var num8;
  7501. if (num4 != 0)
  7502. {
  7503. break;
  7504. }
  7505. SYSTEM::WAIT(0);
  7506. bool flag3 = sub_B92D() == 0;
  7507. if (!flag3)
  7508. {
  7509. num8 = PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82);
  7510. }
  7511. if (flag3 | (num8 & (PED::GET_SYNCHRONIZED_SCENE_PHASE(l_82) > 0.99f)))
  7512. {
  7513. num4 = 1;
  7514. }
  7515. }
  7516. SYSTEM::WAIT(0);
  7517. var num9 = sub_B92D();
  7518. if ((num9 & (VEHICLE::IS_VEHICLE_DOOR_DAMAGED(l_54, l_88) == 0)) != 0)
  7519. {
  7520. VEHICLE::SET_VEHICLE_DOOR_SHUT(l_54, l_88, 0);
  7521. }
  7522. }
  7523. }
  7524. }
  7525. if (sub_9282(l_43) != 0)
  7526. {
  7527. PED::SET_PED_KEEP_TASK(l_43, 1);
  7528. AI::TASK_SMART_FLEE_PED(l_43, PLAYER::PLAYER_PED_ID(), 100f, -1, 0, 0);
  7529. }
  7530. }
  7531. sub_B7B9(&l_43, 1, 0, 1);
  7532. }
  7533. }
  7534. sub_408E(&l_54);
  7535. sub_87B6(0);
  7536. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@move");
  7537. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@enter");
  7538. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@base");
  7539. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@idle_a");
  7540. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@world_dog_barking@exit");
  7541. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@in_vehicle@4x4");
  7542. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@in_vehicle@low_car");
  7543. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@in_vehicle@std_car");
  7544. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@in_vehicle@van");
  7545. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@world_dog_sitting@enter");
  7546. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@world_dog_sitting@idle_a");
  7547. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@world_dog_sitting@exit");
  7548. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@tricks@");
  7549. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@amb@sleep_in_kennel@");
  7550. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@indication@");
  7551. STREAMING::REMOVE_ANIM_DICT("misschop_vehicleenter_exit");
  7552. STREAMING::REMOVE_ANIM_DICT("creatures@rottweiler@melee@streamed_taunts@");
  7553. sub_B79C(&l_142, 1);
  7554. sub_B79C(&l_142, 3);
  7555. sub_ADFD();
  7556. CAM::DESTROY_ALL_CAMS(0);
  7557. if (l_61 > -1)
  7558. {
  7559. PATHFIND::REMOVE_NAVMESH_BLOCKING_OBJECT(l_61);
  7560. }
  7561. if (l_62 > -1)
  7562. {
  7563. PATHFIND::REMOVE_NAVMESH_BLOCKING_OBJECT(l_62);
  7564. }
  7565. if (l_46 == 1)
  7566. {
  7567. PED::REMOVE_RELATIONSHIP_GROUP(l_45);
  7568. }
  7569. }
  7570. SCRIPT::TERMINATE_THIS_THREAD();
  7571. }
  7572.  
  7573. void sub_B79C(var A_0, var A_1)
  7574. {
  7575. if (rPtr(getElemPtr(A_1, A_0, 40) + 28) == 1)
  7576. {
  7577. wPtr(0, getElemPtr(A_1, A_0, 40) + 28);
  7578. }
  7579. }
  7580.  
  7581. void sub_B7B9(var A_0, var A_1, var A_2, var A_3)
  7582. {
  7583. if (ENTITY::DOES_ENTITY_EXIST(rPtr(A_0)) != 0)
  7584. {
  7585. if (PED::IS_PED_INJURED(rPtr(A_0)) == 0)
  7586. {
  7587. ENTITY::SET_ENTITY_LOAD_COLLISION_FLAG(rPtr(A_0), 0);
  7588. if (A_3 == 0)
  7589. {
  7590. AI::CLEAR_PED_SECONDARY_TASK(rPtr(A_0));
  7591. }
  7592. PED::SET_PED_KEEP_TASK(rPtr(A_0), A_1);
  7593. if (A_2 == 1)
  7594. {
  7595. PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(rPtr(A_0), 0);
  7596. }
  7597. }
  7598. ENTITY::SET_PED_AS_NO_LONGER_NEEDED(A_0);
  7599. }
  7600. }
  7601.  
  7602. var sub_B808()
  7603. {
  7604. sub_B1B8();
  7605. return rPtr((((&g_86838) + 1729) + 539) + 2659);
  7606. }
  7607.  
  7608. var sub_B821(var A_0, var A_1, var A_2, var A_3, var A_4)
  7609. {
  7610. CONTROLS::DISABLE_CONTROL_ACTION(0, 65);
  7611. CONTROLS::DISABLE_CONTROL_ACTION(0, 66);
  7612. CONTROLS::DISABLE_CONTROL_ACTION(0, 69);
  7613. CONTROLS::DISABLE_CONTROL_ACTION(0, 225);
  7614. CONTROLS::DISABLE_CONTROL_ACTION(0, 53);
  7615. CONTROLS::DISABLE_CONTROL_ACTION(0, 54);
  7616. CONTROLS::DISABLE_CONTROL_ACTION(0, 68);
  7617. CONTROLS::DISABLE_CONTROL_ACTION(0, 73);
  7618. CONTROLS::DISABLE_CONTROL_ACTION(0, 63);
  7619. CONTROLS::DISABLE_CONTROL_ACTION(0, 64);
  7620. CONTROLS::DISABLE_CONTROL_ACTION(0, 62);
  7621. CONTROLS::DISABLE_CONTROL_ACTION(0, 67);
  7622. CONTROLS::DISABLE_CONTROL_ACTION(0, 77);
  7623. CONTROLS::DISABLE_CONTROL_ACTION(0, 74);
  7624. CONTROLS::DISABLE_CONTROL_ACTION(0, 75);
  7625. CONTROLS::DISABLE_CONTROL_ACTION(0, 102);
  7626. CONTROLS::DISABLE_CONTROL_ACTION(0, 95);
  7627. CONTROLS::DISABLE_CONTROL_ACTION(0, 98);
  7628. CONTROLS::DISABLE_CONTROL_ACTION(0, 80);
  7629. CONTROLS::DISABLE_CONTROL_ACTION(0, 80);
  7630. CONTROLS::DISABLE_CONTROL_ACTION(0, 78);
  7631. CONTROLS::DISABLE_CONTROL_ACTION(0, 79);
  7632. CONTROLS::DISABLE_CONTROL_ACTION(0, 101);
  7633. CONTROLS::DISABLE_CONTROL_ACTION(0, 103);
  7634. CONTROLS::DISABLE_CONTROL_ACTION(0, 104);
  7635. CONTROLS::DISABLE_CONTROL_ACTION(0, 105);
  7636. CONTROLS::DISABLE_CONTROL_ACTION(0, 106);
  7637. CONTROLS::DISABLE_CONTROL_ACTION(0, 107);
  7638. if ((GAMEPLAY::GET_GAME_TIMER() - g_25) > 500)
  7639. {
  7640. VEHICLE::0xCBC7D3C8(A_0, A_1, A_2, A_4);
  7641. }
  7642. g_25 = GAMEPLAY::GET_GAME_TIMER();
  7643. if ((ENTITY::IS_ENTITY_DEAD(A_0) == 0) && (GAMEPLAY::ABSF(ENTITY::GET_ENTITY_SPEED(A_0)) <= A_3))
  7644. {
  7645. return 1;
  7646. }
  7647. return 0;
  7648. }
  7649.  
  7650. var sub_B92D()
  7651. {
  7652. var num1 = sub_9282(PLAYER::PLAYER_PED_ID());
  7653. var num6 = num1 & sub_9282(l_54);
  7654. if ((num6 & sub_9282(l_43)) != 0)
  7655. {
  7656. return 1;
  7657. }
  7658. return 0;
  7659. }
  7660.  
  7661. void sub_B95B(var A_0)
  7662. {
  7663. if (ENTITY::DOES_ENTITY_EXIST(rPtr(A_0)) != 0)
  7664. {
  7665. if (ENTITY::IS_ENTITY_DEAD(rPtr(A_0)) == 0)
  7666. {
  7667. ENTITY::SET_ENTITY_LOAD_COLLISION_FLAG(rPtr(A_0), 0);
  7668. }
  7669. if (ENTITY::IS_ENTITY_A_MISSION_ENTITY(rPtr(A_0)) == 0)
  7670. {
  7671. ENTITY::SET_ENTITY_AS_MISSION_ENTITY(rPtr(A_0), 1, 0);
  7672. }
  7673. PED::DELETE_PED(A_0);
  7674. }
  7675. }
  7676.  
  7677. var sub_B99A()
  7678. {
  7679. var num1 = STREAMING::STOP_PLAYER_REMAIN_ARCADE();
  7680. if ((num1 & sub_9282(l_43)) != 0)
  7681. {
  7682. var num6 = PED::IS_SYNCHRONIZED_SCENE_RUNNING(l_82);
  7683. if ((num6 | PED::IS_PED_IN_ANY_VEHICLE(l_43, 0)) != 0)
  7684. {
  7685. return 1;
  7686. }
  7687. }
  7688. if (g_19602 != 1)
  7689. {
  7690. if (sub_9282(l_43) != 0)
  7691. {
  7692. bool flag1 = l_26 == 11;
  7693. if (flag1 & ENTITY::IS_ENTITY_OCCLUDED(l_43))
  7694. {
  7695. return 1;
  7696. }
  7697. struct _s = ENTITY::GET_ENTITY_COORDS(l_43, 0);
  7698. if (sub_BA44(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), 1f, 0x42C80000) != 0)
  7699. {
  7700. return 0;
  7701. }
  7702. }
  7703. if (sub_AFF3(0) == 0)
  7704. {
  7705. return 0;
  7706. }
  7707. var num7 = sub_BA36(6);
  7708. if ((num7 | sub_BA36(2)) != 0)
  7709. {
  7710. return 0;
  7711. }
  7712. }
  7713. return 1;
  7714. }
  7715.  
  7716. var sub_BA36(var A_0)
  7717. {
  7718. return (g_29814 == A_0);
  7719. }
  7720.  
  7721. var sub_BA44(var A_0, var A_1, var A_2, var A_3, var A_4)
  7722. {
  7723. struct _s = &A_0;
  7724. if (CAM::IS_SPHERE_VISIBLE(rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_3) != 0)
  7725. {
  7726. struct _s = &A_0;
  7727. if (ENTITY::IS_ENTITY_AT_COORD(PLAYER::PLAYER_PED_ID(), rPtrOfs(_s, 0), rPtrOfs(_s, 4), rPtrOfs(_s, 8), A_4, A_4, A_4, 0, 0, 0) == 0)
  7728. {
  7729. return 0;
  7730. }
  7731. if (CAM::IS_SCREEN_FADED_OUT() != 0)
  7732. {
  7733. return 0;
  7734. }
  7735. return 1;
  7736. }
  7737. return 0;
  7738. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement