Advertisement
Benji23245

Untitled

Oct 8th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.37 KB | None | 0 0
  1. //Sonic Boost WITH PRESSED (FINAL)
  2. if (co2 == NULL) return;
  3. if (GetCharacterObject(0) && GetCharacterID(0) == Characters_Sonic && MetalSonicFlag == 0)
  4. {
  5. if (GameState == 15)
  6. {
  7. if (co2->gap5C[0] & 2)
  8. {
  9. WriteJump((void*)0x55E7A8, (void*)0x55E7C0);
  10. WriteJump((void*)0x55EEBF, (void*)0x55EEDA);
  11. }
  12. else// if ((!(co2->gap5C[0] & 2)) || (co2->gap5C[0] & 2 && (co2->Speed.x <= 7.5 || CharObj1Ptrs[0]->Action == 8)))
  13. {
  14. WriteData((void*)0x55E7A8, SuperSplashData);
  15. WriteData((void*)0x55EEBF, SuperSplashScale);
  16. }
  17. if (co2->PhysicsData.MaxAccel == 8.0 && !auraobj)
  18. {
  19. co2->PhysicsData.MaxAccel = 3.5;
  20. co2->PhysicsData.GroundAccel = 0.05;
  21. co2->PhysicsData.field_68 = -0.4275;
  22. co2->PhysicsData.GroundDecel = -0.06;
  23. }
  24. WriteData((void*)0x55E95C, 0x90, 6);//nop the supersonic flag forever
  25. if (auraobj)
  26. {
  27. trailobj = LoadObject(LoadObj_Data1, 6, SonicDashTrail_Init);
  28. trailobj->Data1->CharIndex = 0;
  29. co2->PhysicsData.AirDecel = -0.015;
  30. WriteData((char*)0x496EF6, (char)0xEB);
  31. }
  32. else
  33. {
  34. WriteData((char*)0x496EF6, (char)0x74);
  35. }
  36. if (*(float**)0x55E6FA == &Boost_SuperTornado)
  37. {
  38. if (FOV < 120)
  39. {
  40. FOV += 5;
  41. }
  42. co1->Status |= Status_Ball;
  43. co1->Status |= Status_Attack;
  44. WriteData((void*)0x496EF8, 0x90, 3);
  45. WriteData((void*)0x494AF9, 0x90, 5);
  46. WriteData((void*)0x44FABF, 0x90, 6);//always ring attraction
  47. WriteData((float**)0x44FAFF, &ringdist);//attract rings from further
  48. WriteData((float*)0x44FBBA, ringdist);//attract rings from further 2
  49. WriteData((float**)0x44FBCE, &ringmaxspeed);
  50. WriteData((float*)0x44FBDD, ringmaxspeed);
  51. WriteData((float**)0x44FBC4, &ringaccel);
  52. WriteData((float**)0x44FC2A, &ringspeedmultiplier);
  53. if (co2->UnderwaterTime == 0)
  54. {
  55. WriteData((void*)0x4496E1, 0x90, 6);
  56. }
  57. else if (co2->Speed.x <= 7.5 || CharObj1Ptrs[0]->Action == 8)
  58. {
  59. WriteData((void*)0x4496E1, WalkOnWaterData);
  60. }
  61. }
  62. else
  63. {
  64. if (FOV > 70)
  65. {
  66. FOV -= 5;
  67. }
  68. if (co2->Speed.x <= 7.5 || CharObj1Ptrs[0]->Action == 8)
  69. {
  70. WriteData((void*)0x4496E1, WalkOnWaterData);
  71. }
  72. WriteData((void*)0x496EF8, SpindashData);
  73. WriteData((void*)0x44FABF, always_attract_rings_unNOP);
  74. WriteData((float**)0x44FAFF, (float*)0x7DD574);
  75. WriteData((float*)0x44FBBA, 50.0f);
  76. WriteData((float**)0x44FBC4, (float*)0x7E05C4);
  77. WriteData((float**)0x44FBCE, (float*)0x7DCCFC);
  78. WriteData((float*)0x44FBDD, 5.0f);
  79. WriteData((float**)0x44FC2A, (float*)0x7DCC98);
  80. }
  81. njSetPerspective(NJM_DEG_ANG(FOV));
  82. if (SpeedShoesCount == 0)
  83. {
  84. if ((co1->Status & Status_Ground) == Status_Ground)
  85. {
  86. was_on_ground = true;
  87. air_boost_used = false;
  88. if (CharObj1Ptrs[0]->Action != 4 && CharObj1Ptrs[0]->Action != 5 && CharObj1Ptrs[0]->Action != 6 && CharObj1Ptrs[0]->Action != 14 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 44 && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50 && CharObj1Ptrs[0]->Action != 15 && CharObj1Ptrs[0]->Action != 18 && CharObj1Ptrs[0]->Action != 21 && CharObj1Ptrs[0]->Action != 22 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 24 && CharObj1Ptrs[0]->Action != 25 && CharObj1Ptrs[0]->Action != 26 && CharObj1Ptrs[0]->Action != 27 && CharObj1Ptrs[0]->Action != 28 && CharObj1Ptrs[0]->Action != 29 && CharObj1Ptrs[0]->Action != 33 && CharObj1Ptrs[0]->Action != 34 && CharObj1Ptrs[0]->Action != 35 && CharObj1Ptrs[0]->Action != 36 && CharObj1Ptrs[0]->Action != 37 && CharObj1Ptrs[0]->Action != 38 && CharObj1Ptrs[0]->Action != 40 && CharObj1Ptrs[0]->Action != 41 && CharObj1Ptrs[0]->Action != 43 && CharObj1Ptrs[0]->Action != 45 && CharObj1Ptrs[0]->Action != 47 && CharObj1Ptrs[0]->Action != 55 && CharObj1Ptrs[0]->Action != 56 && CharObj1Ptrs[0]->Action != 57 && CharObj1Ptrs[0]->Action != 58 && CharObj1Ptrs[0]->Action != 59 && CharObj1Ptrs[0]->Action != 60 && CharObj1Ptrs[0]->Action != 61 && CharObj1Ptrs[0]->Action != 62 && CharObj1Ptrs[0]->Action != 65 && CharObj1Ptrs[0]->Action != 66 && CharObj1Ptrs[0]->Action != 67 && CharObj1Ptrs[0]->Action != 68 && CharObj1Ptrs[0]->Action != 69 && CharObj1Ptrs[0]->Action != 70 && CharObj1Ptrs[0]->Action != 72 && CharObj1Ptrs[0]->Action != 74 && CharObj1Ptrs[0]->Action != 83 && CharObj1Ptrs[0]->Action != 85 && CharObj1Ptrs[0]->Action != 87)
  89. {
  90. if (ControllerPointers[0]->PressedButtons & Buttons_Z)
  91. {
  92. Z_was_pressed_on_ground = true;
  93. //PlaySound(766, 0, 0, 0);
  94. PlayVoice(1316);
  95. if (boostvoice == 0)
  96. {
  97. PlaySound(BoostVoices[rand() % 3], 0, 0, 0);
  98. boostvoice = 1;
  99. }
  100. if (co2->AnimationThing.Index == 0 || co2->AnimationThing.Index == 1 || co2->AnimationThing.Index == 2 || co2->AnimationThing.Index == 3 || co2->AnimationThing.Index == 4 || co2->AnimationThing.Index == 5 || co2->AnimationThing.Index == 6 || co2->AnimationThing.Index == 7 || co2->AnimationThing.Index == 8)
  101. {
  102. CharObj1Ptrs[0]->Action = 2;
  103. }
  104. }
  105. if (ControllerPointers[0]->PressedButtons & Buttons_Z && co2->Speed.x <= 9.0 && CharObj1Ptrs[0]->Action != 4 && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50 && CharObj1Ptrs[0]->Action != 15 && CharObj1Ptrs[0]->Action != 18 && CharObj1Ptrs[0]->Action != 21 && CharObj1Ptrs[0]->Action != 22 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 24 && CharObj1Ptrs[0]->Action != 25 && CharObj1Ptrs[0]->Action != 26 && CharObj1Ptrs[0]->Action != 27 && CharObj1Ptrs[0]->Action != 28 && CharObj1Ptrs[0]->Action != 29 && CharObj1Ptrs[0]->Action != 33 && CharObj1Ptrs[0]->Action != 34 && CharObj1Ptrs[0]->Action != 35 && CharObj1Ptrs[0]->Action != 36 && CharObj1Ptrs[0]->Action != 37 && CharObj1Ptrs[0]->Action != 38 && CharObj1Ptrs[0]->Action != 40 && CharObj1Ptrs[0]->Action != 41 && CharObj1Ptrs[0]->Action != 43 && CharObj1Ptrs[0]->Action != 45 && CharObj1Ptrs[0]->Action != 47 && CharObj1Ptrs[0]->Action != 55 && CharObj1Ptrs[0]->Action != 56 && CharObj1Ptrs[0]->Action != 57 && CharObj1Ptrs[0]->Action != 58 && CharObj1Ptrs[0]->Action != 59 && CharObj1Ptrs[0]->Action != 60 && CharObj1Ptrs[0]->Action != 61 && CharObj1Ptrs[0]->Action != 62 && CharObj1Ptrs[0]->Action != 65 && CharObj1Ptrs[0]->Action != 66 && CharObj1Ptrs[0]->Action != 67 && CharObj1Ptrs[0]->Action != 68 && CharObj1Ptrs[0]->Action != 69 && CharObj1Ptrs[0]->Action != 70 && CharObj1Ptrs[0]->Action != 72 && CharObj1Ptrs[0]->Action != 74 && CharObj1Ptrs[0]->Action != 83 && CharObj1Ptrs[0]->Action != 85 && CharObj1Ptrs[0]->Action != 87)
  106. {
  107. co2->Speed.x = 9.0;
  108. }
  109. if (ControllerPointers[0]->HeldButtons & Buttons_Z && (Z_was_pressed_in_air || Z_was_pressed_on_ground) && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50)
  110. {
  111. WriteData((float**)0x55E6FA, &Boost_SuperTornado);
  112. if (!auraobj) auraobj = LoadObject(LoadObj_Data1, 2, Sonic_SuperAura_Load);
  113. if (co2->Speed.x >= 8)
  114. {
  115. WriteData((short*)0x00495C27, (short)13);
  116. }
  117. else WriteData((short*)0x00495C27, (short)12);
  118. if (co2->Speed.x <= 6)
  119. {
  120. co2->PhysicsData.MaxAccel = 8.0;
  121. co2->PhysicsData.GroundAccel = 0.225;
  122. co2->PhysicsData.field_68 = 0;
  123. co2->PhysicsData.GroundDecel = 0.096;
  124. }
  125. else
  126. {
  127. co2->PhysicsData.MaxAccel = 8.0;
  128. co2->PhysicsData.GroundAccel = 0.15;
  129. co2->PhysicsData.field_68 = 0;
  130. co2->PhysicsData.GroundDecel = 0.096;
  131. }
  132. }
  133. if (Z_was_pressed_on_ground)
  134. {
  135. if (!(ControllerPointers[0]->HeldButtons & Buttons_Z) || co2->Speed.x < 3 || CharObj1Ptrs[0]->Action == 4 || CharObj1Ptrs[0]->Action == 6)
  136. {
  137. WriteData((short*)0x00495C27, (short)12);
  138. Z_was_pressed_on_ground = false;
  139. Z_was_pressed_in_air = false;
  140. DeleteObject_(auraobj);
  141. DeleteObject_(trailobj);
  142. auraobj = nullptr;
  143. trailobj = nullptr;
  144. WriteData((float**)0x55E6FA, &SuperTornado);
  145. co2->PhysicsData.MaxAccel = 3.5;
  146. co2->PhysicsData.GroundAccel = 0.05;
  147. co2->PhysicsData.field_68 = -0.4275;
  148. co2->PhysicsData.GroundDecel = -0.06;
  149. co1->Status &= ~Status_Ball;
  150. co1->Status &= ~Status_Attack;
  151. }
  152. }
  153. if (Z_was_pressed_in_air)
  154. {
  155. if (!(ControllerPointers[0]->HeldButtons & Buttons_Z) || co2->Speed.x < 3 || CharObj1Ptrs[0]->Action == 4 || CharObj1Ptrs[0]->Action == 6)
  156. {
  157. WriteData((short*)0x00495C27, (short)12);
  158. Z_was_pressed_in_air = false;
  159. was_on_ground = false;
  160. DeleteObject_(auraobj);
  161. DeleteObject_(trailobj);
  162. auraobj = nullptr;
  163. trailobj = nullptr;
  164. WriteData((float**)0x55E6FA, &SuperTornado);
  165. co2->PhysicsData.MaxAccel = 3.5;
  166. co2->PhysicsData.GroundAccel = 0.05;
  167. co2->PhysicsData.field_68 = -0.4275;
  168. co2->PhysicsData.GroundDecel = -0.06;
  169. co1->Status &= ~Status_Ball;
  170. co1->Status &= ~Status_Attack;
  171. }
  172. }
  173. }
  174. }
  175. if ((co1->Status & Status_Ground) != Status_Ground && (co2->AnimationThing.Index != 0 || co2->AnimationThing.Index != 1 || co2->AnimationThing.Index != 2 || co2->AnimationThing.Index != 9 || co2->AnimationThing.Index != 10 || co2->AnimationThing.Index != 11 || co2->AnimationThing.Index != 12 || co2->AnimationThing.Index != 13 || co2->AnimationThing.Index != 31))
  176. {
  177. if (CharObj1Ptrs[0]->Action != 6 && CharObj1Ptrs[0]->Action != 14 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 44 && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50 && CharObj1Ptrs[0]->Action != 15 && CharObj1Ptrs[0]->Action != 18 && CharObj1Ptrs[0]->Action != 21 && CharObj1Ptrs[0]->Action != 22 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 24 && CharObj1Ptrs[0]->Action != 25 && CharObj1Ptrs[0]->Action != 26 && CharObj1Ptrs[0]->Action != 27 && CharObj1Ptrs[0]->Action != 28 && CharObj1Ptrs[0]->Action != 29 && CharObj1Ptrs[0]->Action != 33 && CharObj1Ptrs[0]->Action != 34 && CharObj1Ptrs[0]->Action != 35 && CharObj1Ptrs[0]->Action != 36 && CharObj1Ptrs[0]->Action != 37 && CharObj1Ptrs[0]->Action != 38 && CharObj1Ptrs[0]->Action != 40 && CharObj1Ptrs[0]->Action != 41 && CharObj1Ptrs[0]->Action != 43 && CharObj1Ptrs[0]->Action != 45 && CharObj1Ptrs[0]->Action != 47 && CharObj1Ptrs[0]->Action != 55 && CharObj1Ptrs[0]->Action != 56 && CharObj1Ptrs[0]->Action != 57 && CharObj1Ptrs[0]->Action != 58 && CharObj1Ptrs[0]->Action != 59 && CharObj1Ptrs[0]->Action != 60 && CharObj1Ptrs[0]->Action != 61 && CharObj1Ptrs[0]->Action != 62 && CharObj1Ptrs[0]->Action != 65 && CharObj1Ptrs[0]->Action != 66 && CharObj1Ptrs[0]->Action != 67 && CharObj1Ptrs[0]->Action != 68 && CharObj1Ptrs[0]->Action != 69 && CharObj1Ptrs[0]->Action != 70 && CharObj1Ptrs[0]->Action != 72 && CharObj1Ptrs[0]->Action != 74 && CharObj1Ptrs[0]->Action != 83 && CharObj1Ptrs[0]->Action != 85 && CharObj1Ptrs[0]->Action != 87)
  178. {
  179. if (ControllerPointers[0]->PressedButtons & Buttons_Z)
  180. {
  181. if (!air_boost_used)
  182. {
  183. PlayVoice(1316);
  184. if (boostvoice == 0)
  185. {
  186. PlaySound(BoostVoices[rand() % 3], 0, 0, 0);
  187. boostvoice = 1;
  188. }
  189. }
  190. Z_was_pressed_in_air = true;
  191. was_on_ground = false;
  192. }
  193. if (ControllerPointers[0]->PressedButtons & Buttons_Z && CharObj1Ptrs[0]->Action == 8 && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50 && CharObj1Ptrs[0]->Action != 15 && CharObj1Ptrs[0]->Action != 18 && CharObj1Ptrs[0]->Action != 21 && CharObj1Ptrs[0]->Action != 22 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 24 && CharObj1Ptrs[0]->Action != 25 && CharObj1Ptrs[0]->Action != 26 && CharObj1Ptrs[0]->Action != 27 && CharObj1Ptrs[0]->Action != 28 && CharObj1Ptrs[0]->Action != 29 && CharObj1Ptrs[0]->Action != 33 && CharObj1Ptrs[0]->Action != 34 && CharObj1Ptrs[0]->Action != 35 && CharObj1Ptrs[0]->Action != 36 && CharObj1Ptrs[0]->Action != 37 && CharObj1Ptrs[0]->Action != 38 && CharObj1Ptrs[0]->Action != 40 && CharObj1Ptrs[0]->Action != 41 && CharObj1Ptrs[0]->Action != 43 && CharObj1Ptrs[0]->Action != 45 && CharObj1Ptrs[0]->Action != 47 && CharObj1Ptrs[0]->Action != 55 && CharObj1Ptrs[0]->Action != 56 && CharObj1Ptrs[0]->Action != 57 && CharObj1Ptrs[0]->Action != 58 && CharObj1Ptrs[0]->Action != 59 && CharObj1Ptrs[0]->Action != 60 && CharObj1Ptrs[0]->Action != 61 && CharObj1Ptrs[0]->Action != 62 && CharObj1Ptrs[0]->Action != 65 && CharObj1Ptrs[0]->Action != 66 && CharObj1Ptrs[0]->Action != 67 && CharObj1Ptrs[0]->Action != 68 && CharObj1Ptrs[0]->Action != 69 && CharObj1Ptrs[0]->Action != 70 && CharObj1Ptrs[0]->Action != 72 && CharObj1Ptrs[0]->Action != 74 && CharObj1Ptrs[0]->Action != 83 && CharObj1Ptrs[0]->Action != 85 && CharObj1Ptrs[0]->Action != 87)
  194. {
  195. CharObj1Ptrs[0]->Action = 12;
  196. }
  197. if (!air_boost_used && ControllerPointers[0]->PressedButtons & Buttons_Z && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50 && CharObj1Ptrs[0]->Action != 15 && CharObj1Ptrs[0]->Action != 18 && CharObj1Ptrs[0]->Action != 21 && CharObj1Ptrs[0]->Action != 22 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 24 && CharObj1Ptrs[0]->Action != 25 && CharObj1Ptrs[0]->Action != 26 && CharObj1Ptrs[0]->Action != 27 && CharObj1Ptrs[0]->Action != 28 && CharObj1Ptrs[0]->Action != 29 && CharObj1Ptrs[0]->Action != 33 && CharObj1Ptrs[0]->Action != 34 && CharObj1Ptrs[0]->Action != 35 && CharObj1Ptrs[0]->Action != 36 && CharObj1Ptrs[0]->Action != 37 && CharObj1Ptrs[0]->Action != 38 && CharObj1Ptrs[0]->Action != 40 && CharObj1Ptrs[0]->Action != 41 && CharObj1Ptrs[0]->Action != 43 && CharObj1Ptrs[0]->Action != 45 && CharObj1Ptrs[0]->Action != 47 && CharObj1Ptrs[0]->Action != 55 && CharObj1Ptrs[0]->Action != 56 && CharObj1Ptrs[0]->Action != 57 && CharObj1Ptrs[0]->Action != 58 && CharObj1Ptrs[0]->Action != 59 && CharObj1Ptrs[0]->Action != 60 && CharObj1Ptrs[0]->Action != 61 && CharObj1Ptrs[0]->Action != 62 && CharObj1Ptrs[0]->Action != 65 && CharObj1Ptrs[0]->Action != 66 && CharObj1Ptrs[0]->Action != 67 && CharObj1Ptrs[0]->Action != 68 && CharObj1Ptrs[0]->Action != 69 && CharObj1Ptrs[0]->Action != 70 && CharObj1Ptrs[0]->Action != 72 && CharObj1Ptrs[0]->Action != 74 && CharObj1Ptrs[0]->Action != 83 && CharObj1Ptrs[0]->Action != 85 && CharObj1Ptrs[0]->Action != 87)
  198. {
  199. co2->AnimationThing.Index = 64;
  200. }
  201. if (!air_boost_used && ControllerPointers[0]->PressedButtons & Buttons_Z && co2->Speed.x <= 10.0 && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50 && CharObj1Ptrs[0]->Action != 15 && CharObj1Ptrs[0]->Action != 18 && CharObj1Ptrs[0]->Action != 21 && CharObj1Ptrs[0]->Action != 22 && CharObj1Ptrs[0]->Action != 23 && CharObj1Ptrs[0]->Action != 24 && CharObj1Ptrs[0]->Action != 25 && CharObj1Ptrs[0]->Action != 26 && CharObj1Ptrs[0]->Action != 27 && CharObj1Ptrs[0]->Action != 28 && CharObj1Ptrs[0]->Action != 29 && CharObj1Ptrs[0]->Action != 33 && CharObj1Ptrs[0]->Action != 34 && CharObj1Ptrs[0]->Action != 35 && CharObj1Ptrs[0]->Action != 36 && CharObj1Ptrs[0]->Action != 37 && CharObj1Ptrs[0]->Action != 38 && CharObj1Ptrs[0]->Action != 40 && CharObj1Ptrs[0]->Action != 41 && CharObj1Ptrs[0]->Action != 43 && CharObj1Ptrs[0]->Action != 45 && CharObj1Ptrs[0]->Action != 47 && CharObj1Ptrs[0]->Action != 55 && CharObj1Ptrs[0]->Action != 56 && CharObj1Ptrs[0]->Action != 57 && CharObj1Ptrs[0]->Action != 58 && CharObj1Ptrs[0]->Action != 59 && CharObj1Ptrs[0]->Action != 60 && CharObj1Ptrs[0]->Action != 61 && CharObj1Ptrs[0]->Action != 62 && CharObj1Ptrs[0]->Action != 65 && CharObj1Ptrs[0]->Action != 66 && CharObj1Ptrs[0]->Action != 67 && CharObj1Ptrs[0]->Action != 68 && CharObj1Ptrs[0]->Action != 69 && CharObj1Ptrs[0]->Action != 70 && CharObj1Ptrs[0]->Action != 72 && CharObj1Ptrs[0]->Action != 74 && CharObj1Ptrs[0]->Action != 83 && CharObj1Ptrs[0]->Action != 85 && CharObj1Ptrs[0]->Action != 87)
  202. {
  203. co2->Speed.x = 10.0;
  204. }
  205. if (!air_boost_used && Z_was_pressed_in_air && ControllerPointers[0]->HeldButtons & Buttons_Z && CharObj1Ptrs[0]->Action != 16 && CharObj1Ptrs[0]->Action != 86 && CharObj1Ptrs[0]->Action != 20 && CharObj1Ptrs[0]->Action != 50)
  206. {
  207. WriteData((float**)0x55E6FA, &Boost_SuperTornado);
  208. if (!auraobj) auraobj = LoadObject(LoadObj_Data1, 2, Sonic_SuperAura_Load);
  209. WriteData((short*)0x00495C27, (short)13);
  210. if (co2->Speed.x <= 6)
  211. {
  212. co2->PhysicsData.MaxAccel = 8.0;
  213. co2->PhysicsData.GroundAccel = 0.225;
  214. co2->PhysicsData.field_68 = 0;
  215. co2->PhysicsData.GroundDecel = 0.096;
  216. }
  217. else
  218. {
  219. co2->PhysicsData.MaxAccel = 8.0;
  220. co2->PhysicsData.GroundAccel = 0.15;
  221. co2->PhysicsData.field_68 = 0;
  222. co2->PhysicsData.GroundDecel = 0.096;
  223. }
  224. }
  225. if ((Z_was_pressed_on_ground && !(ControllerPointers[0]->HeldButtons & Buttons_Z)) || (Z_was_pressed_on_ground && (co2->Speed.x < 6.5 || CharObj1Ptrs[0]->Action == 6)))
  226. {
  227. WriteData((short*)0x00495C27, (short)12);
  228. Z_was_pressed_on_ground = false;
  229. DeleteObject_(auraobj);
  230. DeleteObject_(trailobj);
  231. auraobj = nullptr;
  232. trailobj = nullptr;
  233. WriteData((float**)0x55E6FA, &SuperTornado);
  234. co2->PhysicsData.MaxAccel = 3.5;
  235. co2->PhysicsData.GroundAccel = 0.05;
  236. co2->PhysicsData.field_68 = -0.4275;
  237. co2->PhysicsData.GroundDecel = -0.06;
  238. co1->Status &= ~Status_Ball;
  239. co1->Status &= ~Status_Attack;
  240. }
  241. if ((Z_was_pressed_in_air && !was_on_ground && (!(ControllerPointers[0]->HeldButtons & Buttons_Z) || co2->Speed.x < 8 || CharObj1Ptrs[0]->Action == 4 || CharObj1Ptrs[0]->Action == 6)))
  242. {
  243. WriteData((short*)0x00495C27, (short)12);
  244. Z_was_pressed_in_air = false;
  245. air_boost_used = true;
  246. DeleteObject_(auraobj);
  247. DeleteObject_(trailobj);
  248. auraobj = nullptr;
  249. trailobj = nullptr;
  250. WriteData((float**)0x55E6FA, &SuperTornado);
  251. co2->PhysicsData.MaxAccel = 3.5;
  252. co2->PhysicsData.GroundAccel = 0.05;
  253. co2->PhysicsData.field_68 = -0.4275;
  254. co2->PhysicsData.GroundDecel = -0.06;
  255. co1->Status &= ~Status_Ball;
  256. co1->Status &= ~Status_Attack;
  257. }
  258. if ((Z_was_pressed_in_air && was_on_ground && (!(ControllerPointers[0]->HeldButtons & Buttons_Z) || co2->Speed.x < 6.5 || CharObj1Ptrs[0]->Action == 4 || CharObj1Ptrs[0]->Action == 6)))
  259. {
  260. WriteData((short*)0x00495C27, (short)12);
  261. DeleteObject_(auraobj);
  262. DeleteObject_(trailobj);
  263. auraobj = nullptr;
  264. trailobj = nullptr;
  265. Z_was_pressed_in_air = false;
  266. was_on_ground = false;
  267. WriteData((float**)0x55E6FA, &SuperTornado);
  268. co2->PhysicsData.MaxAccel = 3.5;
  269. co2->PhysicsData.GroundAccel = 0.05;
  270. co2->PhysicsData.field_68 = -0.4275;
  271. co2->PhysicsData.GroundDecel = -0.06;
  272. co1->Status &= ~Status_Ball;
  273. co1->Status &= ~Status_Attack;
  274. }
  275. }
  276. }
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement