Advertisement
kurt2467

BO2 MoveTo (SPRX)

Feb 23rd, 2016
523
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. /*BO2 1.19 - kurt2467 */
  2.  
  3. int SMALE[2] = { 0x2678DC, 0xD67E98 };
  4. void(*SetupMove_And_Link)(gentity_s *ent, vec3_t *moveToPos, float pTotalTime, float pAccelTime, float pDecelTime) = (void(*)(gentity_s*, vec3_t*, float, float, float))&SMALE;
  5.  
  6. void ScriptEntCmdGetCommandTimes(float *pfTotalTime, float *pfAccelTime, float *pfDecelTime)
  7. {
  8.     if (*pfTotalTime <= 0.0f)
  9.         printf("total time must be positive\n");
  10.     float fUnk1 = *(float*)0x26705C;
  11.     if (*pfTotalTime < fUnk1)
  12.         *(int*)pfTotalTime = 0x3A83126F;
  13.     if (*pfAccelTime < 0.0f)
  14.         printf("accel time must be nonnegative\n");
  15.     if (*pfDecelTime < 0.0f)
  16.         printf("decel time must be nonnegative\n");
  17.     float fAccelDecel = *pfAccelTime + *pfDecelTime;
  18.     if (fAccelDecel > *pfTotalTime)
  19.     {
  20.         float fMultiply = *pfTotalTime * 1.0000005f;
  21.         if (fAccelDecel > fMultiply)
  22.             printf("accel time plus decel time is greater than total time\n");
  23.         else
  24.             *pfTotalTime = fMultiply;
  25.     }
  26. }
  27.  
  28. void ScriptEntCmd_moveto(gentity_s *ent, vec3_t location, float fTotalTime)
  29. {
  30.     float fAccelTime, fDecelTime;
  31.     if (fTotalTime <= 1.0f)
  32.         return;
  33.     else
  34.     {
  35.         ScriptEntGetCommandTime(&fTotalTime, &fAccelTime, &fDecelTime);
  36.         SetupMove_And_Link(ent, &location, fTotalTime, fAccelTime, fDecelTime);
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement