jewalky

Untitled

Jan 27th, 2017
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.06 KB | None | 0 0
  1. class SlopedThing : Candelabra
  2. {
  3.     Default
  4.     {
  5.         +FLATSPRITE;
  6.         //+ROLLCENTER;
  7.     }
  8.    
  9.     private void SetToSlope(double dang)
  10.     {
  11.         vector3 fnormal = CurSector.floorplane.normal;
  12.         if (!CurSector.floorplane.isSlope())
  13.             fnormal = (0, 0, 1);
  14.         vector2 fnormalp1 = (fnormal.x != 0 || fnormal.y != 0) ? (fnormal.x, fnormal.y).Unit() : (0, 0);
  15.         vector2 fnormalp2 = ((fnormal.x, fnormal.y).Length(), fnormal.z);
  16.         double fang = atan2(fnormalp1.y, fnormalp1.x); // floor angle (not pitch!)
  17.         double fpitch = atan2(fnormalp2.x, fnormalp2.y); // floor pitch
  18.         double ddiff1 = cos(fang-(dang-90));
  19.         double ddiff2 = cos(fang-dang);
  20.         self.pitch = fpitch*ddiff2-90;
  21.         self.roll = -fpitch*ddiff1;
  22.         self.angle = dang;
  23.     }
  24.    
  25.     override void PostBeginPlay()
  26.     {
  27.         Super.PostBeginPlay();
  28.     }
  29.    
  30.     override void Tick()
  31.     {
  32.         double dang = (level.time*3)%360;
  33.         //dang = 45;
  34.         SetToSlope(dang);
  35.         Super.Tick();
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment