home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Puzzle / Clusterz / Clusterz.swf / scripts / ENGINE / GAME / OScoresTable.as < prev   
Encoding:
Text File  |  2008-09-12  |  3.0 KB  |  107 lines

  1. package ENGINE.GAME
  2. {
  3.    public class OScoresTable
  4.    {
  5.        
  6.       
  7.       public var iTable:Array;
  8.       
  9.       public var iMaxElements:int;
  10.       
  11.       public function OScoresTable(param1:int = 1, param2:int = 10)
  12.       {
  13.          var _loc3_:int = 0;
  14.          super();
  15.          this.iMaxElements = param2;
  16.          this.iTable = new Array();
  17.          _loc3_ = 0;
  18.          while(_loc3_ < param1)
  19.          {
  20.             this.iTable[_loc3_] = new Array();
  21.             _loc3_++;
  22.          }
  23.       }
  24.       
  25.       public function FindByName(param1:int, param2:String) : int
  26.       {
  27.          var _loc3_:int = 0;
  28.          _loc3_ = 0;
  29.          while(_loc3_ < this.iTable[param1].length)
  30.          {
  31.             if(this.iTable[param1][_loc3_].iName == param2)
  32.             {
  33.                return _loc3_;
  34.             }
  35.             _loc3_++;
  36.          }
  37.          return -1;
  38.       }
  39.       
  40.       public function Clear(param1:int) : void
  41.       {
  42.          this.iTable[param1] = new Array();
  43.       }
  44.       
  45.       public function GetRecord(param1:int) : int
  46.       {
  47.          if(!this.iTable[param1].length)
  48.          {
  49.             return 0;
  50.          }
  51.          return this.iTable[param1][0].iScore;
  52.       }
  53.       
  54.       public function AddScore(param1:String, param2:int, param3:int, param4:int, param5:Boolean = false) : Boolean
  55.       {
  56.          var _loc6_:Array = null;
  57.          var _loc7_:int = 0;
  58.          if((_loc6_ = this.iTable[param3]).length < this.iMaxElements || _loc6_[_loc6_.length - 1].iScore < param2)
  59.          {
  60.             if((_loc7_ = param5 ? -1 : this.FindByName(param3,param1)) >= 0)
  61.             {
  62.                if(param2 < _loc6_[_loc7_].iScore)
  63.                {
  64.                   return false;
  65.                }
  66.                _loc6_[_loc7_] = new OScoreParams(param1,param2,param4);
  67.                this.SortOn(param3);
  68.                return true;
  69.             }
  70.             if(_loc6_.length < this.iMaxElements)
  71.             {
  72.                _loc6_[_loc6_.length] = new OScoreParams(param1,param2,param4);
  73.                this.SortOn(param3);
  74.                return true;
  75.             }
  76.             if(_loc6_[_loc6_.length - 1].iScore > param2)
  77.             {
  78.                return false;
  79.             }
  80.             _loc6_[_loc6_.length - 1] = new OScoreParams(param1,param2,param4);
  81.             this.SortOn(param3);
  82.             return true;
  83.          }
  84.          return false;
  85.       }
  86.       
  87.       public function IsRecord(param1:int, param2:int) : Boolean
  88.       {
  89.          if(!this.iTable[param1].length)
  90.          {
  91.             return true;
  92.          }
  93.          return param2 >= this.iTable[param1][0].iScore;
  94.       }
  95.       
  96.       public function GetScore(param1:int, param2:int) : OScoreParams
  97.       {
  98.          return this.iTable[param1][param2];
  99.       }
  100.       
  101.       public function SortOn(param1:int) : void
  102.       {
  103.          this.iTable[param1] = this.iTable[param1].sortOn("iScore",Array.DESCENDING | Array.NUMERIC);
  104.       }
  105.    }
  106. }
  107.