home *** CD-ROM | disk | FTP | other *** search
- class MazeGenerator
- {
- var mcContainer;
- var aVLines;
- var aHLines;
- var nDepth;
- var mcPieceSE;
- var mcPieceC1;
- var mcPieceT1;
- var mcPieceT2;
- var mcPieceC2;
- var mcPieceRJ;
- var mcPieceC3;
- var mcPieceB1;
- var mcPieceB2;
- var mcPieceC4;
- static var sLINKAGENAME_CORNER_UP = "mcPieceCornerUp";
- static var sLINKAGENAME_CORNER_DOWN = "mcPieceCornerDown";
- static var sLINKAGENAME_START = "mcPieceStart";
- static var sLINKAGENAME_LATERAL = "mcPieceLateral";
- static var sLINKAGENAME_RIGHTJCT = "mcPieceRightJct";
- static var sLINKAGE_PANEL_START = "SB_Panneau_Start";
- static var sLINKAGE_PANEL_FINISH = "SB_Panneau_Finish";
- static var nUPPER_Y = 60;
- static var nMIDDLE_Y = 200;
- static var nLOWER_Y = 340;
- static var nLEFT_X = 70;
- static var nMIDDLE_LX = 220;
- static var nMIDDLE_RX = 380;
- static var nRIGHT_X = 530;
- static var nFIRST_X = -100;
- static var nSECOND_X = 140;
- static var nTHIRD_X = 300;
- static var nFOURTH_X = 460;
- static var nFIRST_Y = 0;
- static var nSECOND_Y = 120;
- static var nTHIRD_Y = 280;
- static var sNAME_SE = "mcStart";
- static var sNAME_C1 = "mcCornerUpLeft";
- static var sNAME_T1 = "mcLateralTopLeft";
- static var sNAME_T2 = "mcLateralTopRight";
- static var sNAME_C2 = "mcCornerUpRight";
- static var sNAME_RJ = "mcRightJct";
- static var sNAME_C3 = "mcCornerDownLeft";
- static var sNAME_B1 = "mcLateralBottomLeft";
- static var sNAME_B2 = "mcLateralBottomRight";
- static var sNAME_C4 = "mcCornerDownRight";
- static var nINDEX_SE = 0;
- static var nINDEX_C1 = 1;
- static var nINDEX_T1 = 2;
- static var nINDEX_T2 = 3;
- static var nINDEX_C2 = 4;
- static var nINDEX_RJ = 5;
- static var nINDEX_C3 = 6;
- static var nINDEX_B1 = 7;
- static var nINDEX_B2 = 8;
- static var nINDEX_C4 = 9;
- static var nUSED_SE_PIECE = 0;
- static var nUSED_RJ_PIECE = 0;
- static var sSTATE_START = "Start";
- static var sSTATE_MIDWAY = "Midway";
- static var sSTATE_FINISH = "Finish";
- static var nSTART_PANEL_DEPTH = 1000000;
- static var nFINISH_PANEL_DEPTH = 1000001;
- static var nPANEL_X_SCALE = 151.2;
- static var nPANEL_Y_SCALE = 130.6;
- function MazeGenerator(_mcContainer)
- {
- this.mcContainer = _mcContainer;
- this.aVLines = [[],[],[],[],[],[],[],[],[],[]];
- this.aHLines = [[],[],[],[],[],[],[],[],[],[]];
- this.nDepth = 0;
- }
- function addTrack(_bVertical, _mcLine)
- {
- var _loc4_ = this.getTabIndexByName(_mcLine._parent._parent._name);
- if(_bVertical)
- {
- this.aVLines[_loc4_].push(_mcLine);
- }
- else
- {
- this.aHLines[_loc4_].push(_mcLine);
- }
- }
- function getTabIndexByName(_nName)
- {
- var _loc3_ = 0;
- switch(_nName)
- {
- case MazeGenerator.sNAME_SE:
- _loc3_ = MazeGenerator.nINDEX_SE;
- break;
- case MazeGenerator.sNAME_RJ:
- _loc3_ = MazeGenerator.nINDEX_RJ;
- break;
- case MazeGenerator.sNAME_C1:
- _loc3_ = MazeGenerator.nINDEX_C1;
- break;
- case MazeGenerator.sNAME_C2:
- _loc3_ = MazeGenerator.nINDEX_C2;
- break;
- case MazeGenerator.sNAME_C3:
- _loc3_ = MazeGenerator.nINDEX_C3;
- break;
- case MazeGenerator.sNAME_C4:
- _loc3_ = MazeGenerator.nINDEX_C4;
- break;
- case MazeGenerator.sNAME_B1:
- _loc3_ = MazeGenerator.nINDEX_B1;
- break;
- case MazeGenerator.sNAME_B2:
- _loc3_ = MazeGenerator.nINDEX_B2;
- break;
- case MazeGenerator.sNAME_T1:
- _loc3_ = MazeGenerator.nINDEX_T1;
- break;
- case MazeGenerator.sNAME_T2:
- _loc3_ = MazeGenerator.nINDEX_T2;
- }
- return _loc3_;
- }
- function getTabIndex(_nX, _nY)
- {
- var _loc4_ = 0;
- if(_nX >= MazeGenerator.nFIRST_X && _nX < MazeGenerator.nSECOND_X)
- {
- if(_nY >= MazeGenerator.nFIRST_Y && _nY < MazeGenerator.nSECOND_Y)
- {
- _loc4_ = MazeGenerator.nINDEX_C1;
- }
- else if(_nY >= MazeGenerator.nSECOND_Y && _nY < MazeGenerator.nTHIRD_Y)
- {
- _loc4_ = MazeGenerator.nINDEX_SE;
- }
- else
- {
- _loc4_ = MazeGenerator.nINDEX_C3;
- }
- }
- else if(_nX >= MazeGenerator.nSECOND_X && _nX < MazeGenerator.nTHIRD_X)
- {
- if(_nY >= MazeGenerator.nFIRST_Y && _nY < MazeGenerator.nSECOND_Y)
- {
- _loc4_ = MazeGenerator.nINDEX_T1;
- }
- else
- {
- _loc4_ = MazeGenerator.nINDEX_B1;
- }
- }
- else if(_nX >= MazeGenerator.nTHIRD_X && _nX < MazeGenerator.nFOURTH_X)
- {
- if(_nY >= MazeGenerator.nFIRST_Y && _nY < MazeGenerator.nSECOND_Y)
- {
- _loc4_ = MazeGenerator.nINDEX_T2;
- }
- else
- {
- _loc4_ = MazeGenerator.nINDEX_B2;
- }
- }
- else if(_nY >= MazeGenerator.nFIRST_Y && _nY < MazeGenerator.nSECOND_Y)
- {
- _loc4_ = MazeGenerator.nINDEX_C2;
- }
- else if(_nY >= MazeGenerator.nSECOND_Y && _nY < MazeGenerator.nTHIRD_Y)
- {
- _loc4_ = MazeGenerator.nINDEX_RJ;
- }
- else
- {
- _loc4_ = MazeGenerator.nINDEX_C4;
- }
- return _loc4_;
- }
- function generate()
- {
- this.generateStart();
- this.generateLaterals();
- this.generateCorners();
- this.generateRightJct();
- }
- function cleanUp()
- {
- this.mcPieceSE.removeMovieClip();
- this.mcPieceC1.removeMovieClip();
- this.mcPieceT1.removeMovieClip();
- this.mcPieceT2.removeMovieClip();
- this.mcPieceC2.removeMovieClip();
- this.mcPieceRJ.removeMovieClip();
- this.mcPieceC3.removeMovieClip();
- this.mcPieceB1.removeMovieClip();
- this.mcPieceB2.removeMovieClip();
- this.mcPieceC4.removeMovieClip();
- this.mcContainer.mcPanelStart.removeMovieClip();
- this.mcContainer.mcPanelFinish.removeMovieClip();
- }
- function isPieceFlipped(_nIndex)
- {
- var _loc3_ = false;
- if(_nIndex == MazeGenerator.nINDEX_B1 && this.mcPieceB1._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_B2 && this.mcPieceB2._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_C1 && this.mcPieceC1._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_C2 && this.mcPieceC2._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_C3 && this.mcPieceC3._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_C4 && this.mcPieceC4._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_RJ && this.mcPieceRJ._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_SE && this.mcPieceSE._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_T1 && this.mcPieceT1._xscale == -100)
- {
- _loc3_ = true;
- }
- else if(_nIndex == MazeGenerator.nINDEX_T2 && this.mcPieceT2._xscale == -100)
- {
- _loc3_ = true;
- }
- return _loc3_;
- }
- function generateStart()
- {
- var _loc2_ = 0;
- if(CTRLGame.getRef().Level == CTRLGame.nLEVEL1)
- {
- _loc2_ = Math.round(Math.random() * 1);
- }
- else if(MazeGenerator.nUSED_SE_PIECE == 0)
- {
- _loc2_ = 1;
- }
- else
- {
- _loc2_ = 0;
- }
- this.mcPieceSE = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_START,MazeGenerator.sNAME_SE,this.nDepth++);
- this.mcPieceSE.gotoAndStop(_loc2_ + 1);
- this.mcPieceSE._x = MazeGenerator.nLEFT_X;
- this.mcPieceSE._y = MazeGenerator.nMIDDLE_Y;
- MazeGenerator.nUSED_SE_PIECE = _loc2_;
- var _loc3_ = CTRLGame.getRef().addObjectViaDummy(this.mcPieceSE.piece.mcPanelStart);
- var _loc4_ = this.mcContainer.attachMovie(MazeGenerator.sLINKAGE_PANEL_START,"mcPanelStart",1000000);
- _loc4_._x = _loc3_.x;
- _loc4_._y = _loc3_.y;
- _loc4_._xscale = MazeGenerator.nPANEL_X_SCALE;
- _loc4_._yscale = MazeGenerator.nPANEL_Y_SCALE;
- _loc3_ = CTRLGame.getRef().addObjectViaDummy(this.mcPieceSE.piece.mcPanelFinish);
- var _loc5_ = this.mcContainer.attachMovie(MazeGenerator.sLINKAGE_PANEL_FINISH,"mcPanelFinish",1000001);
- _loc5_._x = _loc3_.x;
- _loc5_._y = _loc3_.y;
- _loc5_._xscale = MazeGenerator.nPANEL_X_SCALE;
- _loc5_._yscale = MazeGenerator.nPANEL_Y_SCALE;
- if(CTRLGame.getRef().Level == CTRLGame.nLEVEL1)
- {
- _loc4_.gotoAndStop(MazeGenerator.sSTATE_START);
- _loc5_.gotoAndStop(MazeGenerator.sSTATE_MIDWAY);
- }
- else
- {
- _loc4_.gotoAndStop(MazeGenerator.sSTATE_MIDWAY);
- _loc5_.gotoAndStop(MazeGenerator.sSTATE_FINISH);
- }
- }
- function generateLaterals()
- {
- var _loc2_ = [1,2,3,4];
- var _loc3_ = 0;
- var _loc4_ = false;
- _loc3_ = Math.round(Math.random() * (_loc2_.length - 1));
- this.mcPieceT1 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_LATERAL,MazeGenerator.sNAME_T1,this.nDepth++);
- this.mcPieceT1.gotoAndStop(_loc2_[_loc3_]);
- _loc4_ = !!Math.round(Math.random());
- if(_loc4_)
- {
- this.flipPiece(this.mcPieceT1);
- }
- this.mcPieceT1._x = MazeGenerator.nMIDDLE_LX;
- this.mcPieceT1._y = MazeGenerator.nUPPER_Y;
- _loc2_.splice(_loc3_,1);
- _loc3_ = Math.round(Math.random() * (_loc2_.length - 1));
- this.mcPieceT2 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_LATERAL,MazeGenerator.sNAME_T2,this.nDepth++);
- this.mcPieceT2.gotoAndStop(_loc2_[_loc3_]);
- _loc4_ = !!Math.round(Math.random());
- if(_loc4_)
- {
- this.flipPiece(this.mcPieceT2);
- }
- this.mcPieceT2._x = MazeGenerator.nMIDDLE_RX;
- this.mcPieceT2._y = MazeGenerator.nUPPER_Y;
- _loc2_.splice(_loc3_,1);
- _loc3_ = Math.round(Math.random() * (_loc2_.length - 1));
- this.mcPieceB1 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_LATERAL,MazeGenerator.sNAME_B1,this.nDepth++);
- this.mcPieceB1.gotoAndStop(_loc2_[_loc3_]);
- _loc4_ = !!Math.round(Math.random());
- if(_loc4_)
- {
- this.flipPiece(this.mcPieceB1);
- }
- this.mcPieceB1._x = MazeGenerator.nMIDDLE_LX;
- this.mcPieceB1._y = MazeGenerator.nLOWER_Y;
- _loc2_.splice(_loc3_,1);
- this.mcPieceB2 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_LATERAL,MazeGenerator.sNAME_B2,this.nDepth++);
- this.mcPieceB2.gotoAndStop(_loc2_[0]);
- _loc4_ = !!Math.round(Math.random());
- if(_loc4_)
- {
- this.flipPiece(this.mcPieceB2);
- }
- this.mcPieceB2._x = MazeGenerator.nMIDDLE_RX;
- this.mcPieceB2._y = MazeGenerator.nLOWER_Y;
- }
- function generateCorners()
- {
- var _loc2_ = [1,2];
- var _loc3_ = [1,2];
- var _loc4_ = 0;
- _loc4_ = Math.round(Math.random() * (_loc2_.length - 1));
- this.mcPieceC1 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_CORNER_UP,MazeGenerator.sNAME_C1,this.nDepth++);
- this.mcPieceC1.gotoAndStop(_loc2_[_loc4_]);
- this.mcPieceC1._x = MazeGenerator.nLEFT_X;
- this.mcPieceC1._y = MazeGenerator.nUPPER_Y;
- _loc2_.splice(_loc4_,1);
- this.mcPieceC2 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_CORNER_UP,MazeGenerator.sNAME_C2,this.nDepth++);
- this.mcPieceC2.gotoAndStop(_loc2_[0]);
- this.mcPieceC2._x = MazeGenerator.nRIGHT_X;
- this.mcPieceC2._y = MazeGenerator.nUPPER_Y;
- this.flipPiece(this.mcPieceC2);
- _loc4_ = Math.round(Math.random() * (_loc3_.length - 1));
- this.mcPieceC3 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_CORNER_DOWN,MazeGenerator.sNAME_C3,this.nDepth++);
- this.mcPieceC3.gotoAndStop(_loc3_[_loc4_]);
- this.mcPieceC3._x = MazeGenerator.nLEFT_X;
- this.mcPieceC3._y = MazeGenerator.nLOWER_Y;
- _loc3_.splice(_loc4_,1);
- _loc4_ = Math.round(Math.random() * (_loc3_.length - 1));
- this.mcPieceC4 = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_CORNER_DOWN,MazeGenerator.sNAME_C4,this.nDepth++);
- this.mcPieceC4.gotoAndStop(_loc3_[0]);
- this.mcPieceC4._x = MazeGenerator.nRIGHT_X;
- this.mcPieceC4._y = MazeGenerator.nLOWER_Y;
- this.flipPiece(this.mcPieceC4);
- }
- function generateRightJct()
- {
- var _loc2_ = 0;
- if(CTRLGame.getRef().Level == CTRLGame.nLEVEL1)
- {
- _loc2_ = Math.round(Math.random() * 1);
- }
- else if(MazeGenerator.nUSED_RJ_PIECE == 0)
- {
- _loc2_ = 1;
- }
- else
- {
- _loc2_ = 0;
- }
- var _loc3_ = !!Math.round(Math.random());
- this.mcPieceRJ = this.mcContainer.attachMovie(MazeGenerator.sLINKAGENAME_RIGHTJCT,MazeGenerator.sNAME_RJ,this.nDepth++);
- this.mcPieceRJ.gotoAndStop(_loc2_ + 1);
- if(_loc3_)
- {
- this.flipPiece(this.mcPieceRJ);
- }
- this.mcPieceRJ._x = MazeGenerator.nRIGHT_X;
- this.mcPieceRJ._y = MazeGenerator.nMIDDLE_Y;
- MazeGenerator.nUSED_RJ_PIECE = _loc2_;
- }
- function flipPiece(_mcPiece)
- {
- _mcPiece._xscale = -100;
- }
- function getVTracks(_nX, _nY)
- {
- var _loc4_ = this.getTabIndex(_nX,_nY);
- return this.aVLines[_loc4_];
- }
- function getHTracks(_nX, _nY)
- {
- var _loc4_ = this.getTabIndex(_nX,_nY);
- return this.aHLines[_loc4_];
- }
- }
-