jewalky

Untitled

Jan 27th, 2017
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.04 KB | None | 0 0
  1.  
  2. class SlopedThing : Candelabra
  3. {
  4.     Default
  5.     {
  6.         +FLATSPRITE;
  7.         //+ROLLCENTER;
  8.     }
  9.    
  10.     private void SetToSlope(double dang)
  11.     {
  12.         vector3 fnormal = CurSector.floorplane.normal;
  13.         if (!CurSector.floorplane.isSlope())
  14.             fnormal = (0, 0, 1);
  15.         vector2 fnormalp1 = (fnormal.x != 0 || fnormal.y != 0) ? (fnormal.x, fnormal.y).Unit() : (0, 0);
  16.         vector2 fnormalp2 = ((fnormal.x, fnormal.y).Length(), fnormal.z);
  17.         double fang = atan2(fnormalp1.y, fnormalp1.x); // floor angle (not pitch!)
  18.         double ddiff1 = cos(fang-(dang-90));
  19.         double ddiff2 = cos(fang-dang);
  20.         self.pitch = atan2(fnormalp2.x, fnormalp2.y)*ddiff2-90;
  21.         self.roll = -atan2(fnormalp2.x, fnormalp2.y)*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