emily99

FFC Extra Warping

May 24th, 2021 (edited)
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. ffc script WarpCustomReturn //start Warp
  2. {
  3.     //Dirs: -1 = Tile, 0 = Up, 1 = Down, 2 = Left, 3 = Right
  4.     //If d2 is set, and the warp is a sidewarp, it will use the FFC's x/y to split into 2 sidewarps
  5.     //d1 / d2 = 'dmap.screen', i.e. dm1scr1 = 1.0001
  6.     void run(int d1, int x, int y, int side, int wtype, int d2, int x2, int y2)
  7.     {
  8.         int dm = Floor(d1), scr = (d1 % 1) / 1L;
  9.         int dm2 = Floor(d2), scr2 = (d2 % 1) / 1L;
  10.         switch(side)
  11.         {
  12.             case DIR_UP:
  13.             {
  14.                 while(true)
  15.                 {
  16.                     if(Hero->Y <= 1.5 && Hero->InputUp)
  17.                     {
  18.                         if(d2 && Hero->X >= this->X)
  19.                             Hero->WarpEx({wtype, dm2, scr2, x2, y2, 0, 0, 0});
  20.                         else Hero->WarpEx({wtype, dm, scr, x, y, 0, 0, 0});
  21.                     }
  22.                     Waitframe();
  23.                 }
  24.             }
  25.             case DIR_DOWN:
  26.             {
  27.                 while(true)
  28.                 {
  29.                     if(Hero->Y >= 158.5 && Hero->InputDown)
  30.                     {
  31.                         if(d2 && Hero->X >= this->X)
  32.                             Hero->WarpEx({wtype, dm2, scr2, x2, y2, 0, 0, 0});
  33.                         else Hero->WarpEx({wtype, dm, scr, x, y, 0, 0, 0});
  34.                     }
  35.                     Waitframe();
  36.                 }
  37.             }
  38.             case DIR_LEFT:
  39.             {
  40.                 while(true)
  41.                 {
  42.                     if(Hero->X <= 1.5 && Hero->InputLeft)
  43.                     {
  44.                         if(d2 && Hero->Y >= this->Y)
  45.                             Hero->WarpEx({wtype, dm2, scr2, x2, y2, 0, 0, 0});
  46.                         else Hero->WarpEx({wtype, dm, scr, x, y, 0, 0, 0});
  47.                     }
  48.                     Waitframe();
  49.                 }
  50.             }
  51.             case DIR_RIGHT:
  52.             {
  53.                 while(true)
  54.                 {
  55.                     if(Hero->X >= 238.5 && Hero->InputRight)
  56.                     {
  57.                         if(d2 && Hero->Y >= this->Y)
  58.                             Hero->WarpEx({wtype, dm2, scr2, x2, y2, 0, 0, 0});
  59.                         else Hero->WarpEx({wtype, dm, scr, x, y, 0, 0, 0});
  60.                     }
  61.                     Waitframe();
  62.                 }
  63.             }
  64.             default: //Tile warp, at the FFC's location.
  65.             {
  66.                 while(true)
  67.                 {
  68.                     if(Abs(Hero->X-this->X) <= 14 && Abs(Hero->Y-this->Y) <= 14)
  69.                         Hero->WarpEx({wtype, dm, scr, x, y, 0, 0, 0});
  70.                     Waitframe();
  71.                 }
  72.             }
  73.         }
  74.     }
  75. }
  76. //end FFC warp
  77.  
Add Comment
Please, Sign In to add comment