Advertisement
Benji23245

Untitled

Oct 8th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.43 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. if (!auraobj)
  12. {
  13. WriteJump((void*)0x55E6F5, (void*)0x55E78A);
  14. auraobj = LoadObject(LoadObj_Data1, 2, Sonic_SuperAura_Load);
  15. }
  16. }
  17. else// if ((!(co2->gap5C[0] & 2)) || (co2->gap5C[0] & 2 && (co2->Speed.x <= 7.5 || CharObj1Ptrs[0]->Action == 8)))
  18. {
  19. WriteData((void*)0x55E7A8, SuperSplashData);
  20. WriteData((void*)0x55EEBF, SuperSplashScale);
  21. WriteJump((void*)0x55E6F5, SuperSplashAura);
  22. }
  23. if (co2->PhysicsData.MaxAccel == 8.0 && !auraobj)
  24. {
  25. co2->PhysicsData.MaxAccel = 3.5;
  26. co2->PhysicsData.GroundAccel = 0.05;
  27. co2->PhysicsData.field_68 = -0.4275;
  28. co2->PhysicsData.GroundDecel = -0.06;
  29. }
  30. WriteData((void*)0x55E95C, 0x90, 6);//nop the supersonic flag forever
  31. if (auraobj)
  32. {
  33. trailobj = LoadObject(LoadObj_Data1, 6, SonicDashTrail_Init);
  34. trailobj->Data1->CharIndex = 0;
  35. co2->PhysicsData.AirDecel = -0.015;
  36. WriteData((char*)0x496EF6, (char)0xEB);
  37. }
  38. else
  39. {
  40. WriteData((char*)0x496EF6, (char)0x74);
  41. }
  42. if (*(float**)0x55E6FA == &Boost_SuperTornado)
  43. {
  44. if (FOV < 120)
  45. {
  46. FOV += 5;
  47. }
  48. co1->Status |= Status_Ball;
  49. co1->Status |= Status_Attack;
  50. WriteData((void*)0x496EF8, 0x90, 3);
  51. WriteData((void*)0x494AF9, 0x90, 5);
  52. WriteData((void*)0x44FABF, 0x90, 6);//always ring attraction
  53. WriteData((float**)0x44FAFF, &ringdist);//attract rings from further
  54. WriteData((float*)0x44FBBA, ringdist);//attract rings from further 2
  55. WriteData((float**)0x44FBCE, &ringmaxspeed);
  56. WriteData((float*)0x44FBDD, ringmaxspeed);
  57. WriteData((float**)0x44FBC4, &ringaccel);
  58. WriteData((float**)0x44FC2A, &ringspeedmultiplier);
  59. if (co2->UnderwaterTime == 0)
  60. {
  61. WriteData((void*)0x4496E1, 0x90, 6);
  62. }
  63. else if (co2->Speed.x <= 7.5 || CharObj1Ptrs[0]->Action == 8)
  64. {
  65. WriteData((void*)0x4496E1, WalkOnWaterData);
  66. }
  67. }
  68. else
  69. {
  70. if (FOV > 70)
  71. {
  72. FOV -= 5;
  73. }
  74. if (co2->Speed.x <= 7.5 || CharObj1Ptrs[0]->Action == 8)
  75. {
  76. WriteData((void*)0x4496E1, WalkOnWaterData);
  77. }
  78. WriteData((void*)0x496EF8, SpindashData);
  79. WriteData((void*)0x44FABF, always_attract_rings_unNOP);
  80. WriteData((float**)0x44FAFF, (float*)0x7DD574);
  81. WriteData((float*)0x44FBBA, 50.0f);
  82. WriteData((float**)0x44FBC4, (float*)0x7E05C4);
  83. WriteData((float**)0x44FBCE, (float*)0x7DCCFC);
  84. WriteData((float*)0x44FBDD, 5.0f);
  85. WriteData((float**)0x44FC2A, (float*)0x7DCC98);
  86. }
  87. njSetPerspective(NJM_DEG_ANG(FOV));
  88. if (SpeedShoesCount == 0)
  89. {
  90. if ((co1->Status & Status_Ground) == Status_Ground)
  91. {
  92. was_on_ground = true;
  93. air_boost_used = false;
  94. 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)
  95. {
  96. if (ControllerPointers[0]->PressedButtons & Buttons_Z)
  97. {
  98. Z_was_pressed_on_ground = true;
  99. //PlaySound(766, 0, 0, 0);
  100. PlayVoice(1316);
  101. if (boostvoice == 0)
  102. {
  103. PlaySound(BoostVoices[rand() % 3], 0, 0, 0);
  104. boostvoice = 1;
  105. }
  106. 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)
  107. {
  108. CharObj1Ptrs[0]->Action = 2;
  109. }
  110. }
  111. 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)
  112. {
  113. co2->Speed.x = 9.0;
  114. }
  115. 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)
  116. {
  117. WriteData((float**)0x55E6FA, &Boost_SuperTornado);
  118. if (!auraobj) auraobj = LoadObject(LoadObj_Data1, 2, Sonic_SuperAura_Load);
  119. if (co2->Speed.x >= 8)
  120. {
  121. WriteData((short*)0x00495C27, (short)13);
  122. }
  123. else WriteData((short*)0x00495C27, (short)12);
  124. if (co2->Speed.x <= 6)
  125. {
  126. co2->PhysicsData.MaxAccel = 8.0;
  127. co2->PhysicsData.GroundAccel = 0.225;
  128. co2->PhysicsData.field_68 = 0;
  129. co2->PhysicsData.GroundDecel = 0.096;
  130. }
  131. else
  132. {
  133. co2->PhysicsData.MaxAccel = 8.0;
  134. co2->PhysicsData.GroundAccel = 0.15;
  135. co2->PhysicsData.field_68 = 0;
  136. co2->PhysicsData.GroundDecel = 0.096;
  137. }
  138. }
  139. if (Z_was_pressed_on_ground)
  140. {
  141. if (!(ControllerPointers[0]->HeldButtons & Buttons_Z) || co2->Speed.x < 3 || CharObj1Ptrs[0]->Action == 4 || CharObj1Ptrs[0]->Action == 6)
  142. {
  143. WriteData((short*)0x00495C27, (short)12);
  144. Z_was_pressed_on_ground = false;
  145. Z_was_pressed_in_air = false;
  146. DeleteObject_(auraobj);
  147. DeleteObject_(trailobj);
  148. auraobj = nullptr;
  149. trailobj = nullptr;
  150. WriteData((float**)0x55E6FA, &SuperTornado);
  151. co2->PhysicsData.MaxAccel = 3.5;
  152. co2->PhysicsData.GroundAccel = 0.05;
  153. co2->PhysicsData.field_68 = -0.4275;
  154. co2->PhysicsData.GroundDecel = -0.06;
  155. co1->Status &= ~Status_Ball;
  156. co1->Status &= ~Status_Attack;
  157. }
  158. }
  159. if (Z_was_pressed_in_air)
  160. {
  161. if (!(ControllerPointers[0]->HeldButtons & Buttons_Z) || co2->Speed.x < 3 || CharObj1Ptrs[0]->Action == 4 || CharObj1Ptrs[0]->Action == 6)
  162. {
  163. WriteData((short*)0x00495C27, (short)12);
  164. Z_was_pressed_in_air = false;
  165. was_on_ground = false;
  166. DeleteObject_(auraobj);
  167. DeleteObject_(trailobj);
  168. auraobj = nullptr;
  169. trailobj = nullptr;
  170. WriteData((float**)0x55E6FA, &SuperTornado);
  171. co2->PhysicsData.MaxAccel = 3.5;
  172. co2->PhysicsData.GroundAccel = 0.05;
  173. co2->PhysicsData.field_68 = -0.4275;
  174. co2->PhysicsData.GroundDecel = -0.06;
  175. co1->Status &= ~Status_Ball;
  176. co1->Status &= ~Status_Attack;
  177. }
  178. }
  179. }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement