home *** CD-ROM | disk | FTP | other *** search
/ Champak 48 / cdrom_image.iso / Games / bobsleddin.swf / scripts / __Packages / Course.as < prev    next >
Encoding:
Text File  |  2007-09-28  |  4.5 KB  |  151 lines

  1. class Course extends Array
  2. {
  3.    var lastVector;
  4.    var defaultColor;
  5.    var outsideColor;
  6.    var flipped;
  7.    static var CLOSED = 1;
  8.    static var OPEN = 0;
  9.    function Course(startPoint)
  10.    {
  11.       super();
  12.       this.lastVector = startPoint;
  13.       this.defaultColor = new RGB(255,255,255);
  14.       this.outsideColor = new RGB(255,255,255);
  15.    }
  16.    function setOutsideColor(rgb)
  17.    {
  18.       this.outsideColor.r = rgb.r;
  19.       this.outsideColor.g = rgb.g;
  20.       this.outsideColor.b = rgb.b;
  21.    }
  22.    function setDefaultColor(color)
  23.    {
  24.       this.defaultColor.r = color.r;
  25.       this.defaultColor.g = color.g;
  26.       this.defaultColor.b = color.b;
  27.    }
  28.    function replaceDefaultColor(color)
  29.    {
  30.       this.defaultColor = color;
  31.    }
  32.    function appendCurve(cp0, cp1, p1, radius, propFlags, color, style)
  33.    {
  34.       var _loc2_ = new CourseBezier(this.lastVector,cp0,cp1,p1);
  35.       this.push(_loc2_);
  36.       this.lastVector = p1;
  37.       if(style)
  38.       {
  39.          _loc2_.style = style;
  40.       }
  41.       _loc2_.color = !color ? this.defaultColor : color;
  42.       _loc2_.radius = radius;
  43.       _loc2_.arcClosed = propFlags & Course.CLOSED;
  44.       return _loc2_;
  45.    }
  46.    function appendLine(p1, radius, propFlags, color, style)
  47.    {
  48.       var _loc2_ = new CourseLine(this.lastVector,p1);
  49.       this.push(_loc2_);
  50.       this.lastVector = p1;
  51.       if(style)
  52.       {
  53.          _loc2_.style = style;
  54.       }
  55.       _loc2_.color = !color ? this.defaultColor : color;
  56.       _loc2_.radius = radius;
  57.       _loc2_.arcClosed = propFlags & Course.CLOSED;
  58.       return _loc2_;
  59.    }
  60.    function getCourseSegment(world, i)
  61.    {
  62.       var _loc2_ = this[Math.floor(i)];
  63.       var _loc3_ = this[Math.floor(i) - 1];
  64.       var _loc6_ = this.getPoint(i);
  65.       if(_loc3_)
  66.       {
  67.          var _loc7_ = _loc3_.radius + (_loc2_.radius - _loc3_.radius) * (i % 1);
  68.          var _loc4_ = new CourseSector(world,_loc6_.x,_loc6_.y,_loc6_.z,_loc7_);
  69.          _loc4_.color = _loc3_.color != _loc2_.color ? new RGB(Math.round(_loc3_.color.r + (_loc2_.color.r - _loc3_.color.r) * (i % 1)),Math.round(_loc3_.color.g + (_loc2_.color.g - _loc3_.color.g) * (i % 1)),Math.round(_loc3_.color.b + (_loc2_.color.b - _loc3_.color.b) * (i % 1))) : _loc2_.color;
  70.          _loc4_.xScale = _loc3_.xScale + (_loc2_.xScale - _loc3_.xScale) * (i % 1);
  71.          _loc4_.yScale = _loc3_.yScale + (_loc2_.yScale - _loc3_.yScale) * (i % 1);
  72.       }
  73.       else
  74.       {
  75.          _loc4_ = new CourseSector(world,_loc6_.x,_loc6_.y,_loc6_.z,_loc2_.radius);
  76.          _loc4_.xScale = _loc2_.xScale;
  77.          _loc4_.yScale = _loc2_.yScale;
  78.          _loc4_.color = _loc2_.color;
  79.       }
  80.       _loc4_.outsideColor = this.outsideColor;
  81.       _loc4_.arcClosed = _loc2_.arcClosed;
  82.       _loc4_.worldIndex = i;
  83.       if(_loc2_.assetName != null)
  84.       {
  85.          _loc4_.assetName = _loc2_.assetName;
  86.       }
  87.       return _loc4_;
  88.    }
  89.    function getRadius(i)
  90.    {
  91.       var _loc3_ = this[Math.floor(i)];
  92.       var _loc2_ = this[Math.floor(i) - 1];
  93.       if(_loc2_)
  94.       {
  95.          return _loc2_.radius + (_loc3_.radius - _loc2_.radius) * (i % 1);
  96.       }
  97.       return _loc3_.radius;
  98.    }
  99.    function getYScale(i)
  100.    {
  101.       var _loc3_ = this[Math.floor(i)];
  102.       var _loc2_ = this[Math.floor(i) - 1];
  103.       if(_loc2_)
  104.       {
  105.          return _loc2_.yScale + (_loc3_.yScale - _loc2_.yScale) * (i % 1);
  106.       }
  107.       return _loc3_.yScale;
  108.    }
  109.    function getXScale(i)
  110.    {
  111.       var _loc3_ = this[Math.floor(i)];
  112.       var _loc2_ = this[Math.floor(i) - 1];
  113.       if(_loc2_)
  114.       {
  115.          return _loc2_.xScale + (_loc3_.xScale - _loc2_.xScale) * (i % 1);
  116.       }
  117.       return _loc3_.xScale;
  118.    }
  119.    function getRGB(i)
  120.    {
  121.       var _loc3_ = this[Math.floor(i)];
  122.       var _loc2_ = this[Math.floor(i) - 1];
  123.       if(_loc2_.color == _loc3_.color)
  124.       {
  125.          return _loc3_.color;
  126.       }
  127.       if(_loc2_)
  128.       {
  129.          return new RGB(Math.round(_loc2_.color.r + (_loc3_.color.r - _loc2_.color.r) * (i % 1)),Math.round(_loc2_.color.g + (_loc3_.color.g - _loc2_.color.g) * (i % 1)),Math.round(_loc2_.color.b + (_loc3_.color.b - _loc2_.color.b) * (i % 1)));
  130.       }
  131.       return _loc3_.color;
  132.    }
  133.    function getPoint(index)
  134.    {
  135.       var _loc2_ = this[Math.floor(index)].getPoint(index % 1);
  136.       if(this.flipped)
  137.       {
  138.          _loc2_.x *= -1;
  139.       }
  140.       return _loc2_;
  141.    }
  142.    function getAssetName(i)
  143.    {
  144.       return this[Math.floor(i)].assetName;
  145.    }
  146.    function toString()
  147.    {
  148.       return "Course";
  149.    }
  150. }
  151.