Frame 1
stop();
Frame 2
function onLoadConfig(bSuccess) {
if (bSuccess) {
_root.gotoAndStop("menu");
} else {
trace("error");
}
}
stop();
_root.clips._visible = false;
_root.sLink = "http://www.doublegames.com/ronin-solitaire.html";
_root.sMoreGames = "http://www.doublegames.com";
_root.gotoAndStop("menu");
Frame 4
stop();
Frame 5
CProcess.main();
Frame 6
gotoAndPlay ("game");
Symbol 12 MovieClip [c113] Frame 1
#initclip 67
Object.registerClass("c113", CCard);
#endinitclip
Symbol 16 MovieClip [c013] Frame 1
#initclip 12
Object.registerClass("c013", CCard);
#endinitclip
Symbol 19 MovieClip [c312] Frame 1
#initclip 13
Object.registerClass("c312", CCard);
#endinitclip
Symbol 22 MovieClip [c212] Frame 1
#initclip 14
Object.registerClass("c212", CCard);
#endinitclip
Symbol 25 MovieClip [c112] Frame 1
#initclip 15
Object.registerClass("c112", CCard);
#endinitclip
Symbol 28 MovieClip [c012] Frame 1
#initclip 16
Object.registerClass("c012", CCard);
#endinitclip
Symbol 31 MovieClip [c311] Frame 1
#initclip 17
Object.registerClass("c311", CCard);
#endinitclip
Symbol 34 MovieClip [c211] Frame 1
#initclip 18
Object.registerClass("c211", CCard);
#endinitclip
Symbol 37 MovieClip [c111] Frame 1
#initclip 19
Object.registerClass("c111", CCard);
#endinitclip
Symbol 40 MovieClip [c011] Frame 1
#initclip 20
Object.registerClass("c011", CCard);
#endinitclip
Symbol 43 MovieClip [c310] Frame 1
#initclip 21
Object.registerClass("c310", CCard);
#endinitclip
Symbol 46 MovieClip [c210] Frame 1
#initclip 22
Object.registerClass("c210", CCard);
#endinitclip
Symbol 49 MovieClip [c110] Frame 1
#initclip 23
Object.registerClass("c110", CCard);
#endinitclip
Symbol 54 MovieClip [c010] Frame 1
#initclip 24
Object.registerClass("c010", CCard);
#endinitclip
Symbol 57 MovieClip [c39] Frame 1
#initclip 25
Object.registerClass("c39", CCard);
#endinitclip
Symbol 60 MovieClip [c29] Frame 1
#initclip 26
Object.registerClass("c29", CCard);
#endinitclip
Symbol 63 MovieClip [c19] Frame 1
#initclip 27
Object.registerClass("c19", CCard);
#endinitclip
Symbol 66 MovieClip [c09] Frame 1
#initclip 28
Object.registerClass("c09", CCard);
#endinitclip
Symbol 69 MovieClip [c38] Frame 1
#initclip 29
Object.registerClass("c38", CCard);
#endinitclip
Symbol 72 MovieClip [c28] Frame 1
#initclip 30
Object.registerClass("c28", CCard);
#endinitclip
Symbol 75 MovieClip [c18] Frame 1
#initclip 31
Object.registerClass("c18", CCard);
#endinitclip
Symbol 78 MovieClip [c08] Frame 1
#initclip 32
Object.registerClass("c08", CCard);
#endinitclip
Symbol 81 MovieClip [c37] Frame 1
#initclip 33
Object.registerClass("c37", CCard);
#endinitclip
Symbol 84 MovieClip [c27] Frame 1
#initclip 34
Object.registerClass("c27", CCard);
#endinitclip
Symbol 87 MovieClip [c17] Frame 1
#initclip 35
Object.registerClass("c17", CCard);
#endinitclip
Symbol 90 MovieClip [c07] Frame 1
#initclip 36
Object.registerClass("c07", CCard);
#endinitclip
Symbol 93 MovieClip [c36] Frame 1
#initclip 37
Object.registerClass("c36", CCard);
#endinitclip
Symbol 96 MovieClip [c26] Frame 1
#initclip 38
Object.registerClass("c26", CCard);
#endinitclip
Symbol 99 MovieClip [c16] Frame 1
#initclip 39
Object.registerClass("c16", CCard);
#endinitclip
Symbol 102 MovieClip [c06] Frame 1
#initclip 40
Object.registerClass("c06", CCard);
#endinitclip
Symbol 105 MovieClip [c35] Frame 1
#initclip 41
Object.registerClass("c35", CCard);
#endinitclip
Symbol 108 MovieClip [c25] Frame 1
#initclip 42
Object.registerClass("c25", CCard);
#endinitclip
Symbol 111 MovieClip [c15] Frame 1
#initclip 43
Object.registerClass("c15", CCard);
#endinitclip
Symbol 114 MovieClip [c05] Frame 1
#initclip 44
Object.registerClass("c05", CCard);
#endinitclip
Symbol 117 MovieClip [c34] Frame 1
#initclip 45
Object.registerClass("c34", CCard);
#endinitclip
Symbol 120 MovieClip [c24] Frame 1
#initclip 46
Object.registerClass("c24", CCard);
#endinitclip
Symbol 123 MovieClip [c14] Frame 1
#initclip 47
Object.registerClass("c14", CCard);
#endinitclip
Symbol 126 MovieClip [c04] Frame 1
#initclip 48
Object.registerClass("c04", CCard);
#endinitclip
Symbol 129 MovieClip [c33] Frame 1
#initclip 49
Object.registerClass("c33", CCard);
#endinitclip
Symbol 132 MovieClip [c23] Frame 1
#initclip 50
Object.registerClass("c23", CCard);
#endinitclip
Symbol 135 MovieClip [c13] Frame 1
#initclip 51
Object.registerClass("c13", CCard);
#endinitclip
Symbol 138 MovieClip [c03] Frame 1
#initclip 52
Object.registerClass("c03", CCard);
#endinitclip
Symbol 142 MovieClip [c32] Frame 1
#initclip 53
Object.registerClass("c32", CCard);
#endinitclip
Symbol 145 MovieClip [c22] Frame 1
#initclip 54
Object.registerClass("c22", CCard);
#endinitclip
Symbol 149 MovieClip [c12] Frame 1
#initclip 55
Object.registerClass("c12", CCard);
#endinitclip
Symbol 152 MovieClip [c02] Frame 1
#initclip 56
Object.registerClass("c02", CCard);
#endinitclip
Symbol 156 MovieClip [c31] Frame 1
#initclip 57
Object.registerClass("c31", CCard);
#endinitclip
Symbol 159 MovieClip [c21] Frame 1
#initclip 58
Object.registerClass("c21", CCard);
#endinitclip
Symbol 163 MovieClip [c11] Frame 1
#initclip 59
Object.registerClass("c11", CCard);
#endinitclip
Symbol 166 MovieClip [c01] Frame 1
#initclip 60
Object.registerClass("c01", CCard);
#endinitclip
Symbol 170 MovieClip [c30] Frame 1
#initclip 61
Object.registerClass("c30", CCard);
#endinitclip
Symbol 173 MovieClip [c20] Frame 1
#initclip 62
Object.registerClass("c20", CCard);
#endinitclip
Symbol 177 MovieClip [c10] Frame 1
#initclip 63
Object.registerClass("c10", CCard);
#endinitclip
Symbol 180 MovieClip [c00] Frame 1
#initclip 64
Object.registerClass("c00", CCard);
#endinitclip
Symbol 181 MovieClip [CCard] Frame 1
#initclip 65
Object.registerClass("CCard", CCard);
#endinitclip
Symbol 196 Button
on (release) {
getURL ("http://www.doublegames.com/", "_blank");
}
Symbol 197 MovieClip [Preloader] Frame 1
#initclip 66
Object.registerClass("Preloader", cPreLoad);
#endinitclip
Symbol 442 MovieClip [__Packages.CCard] Frame 0
class CCard extends MovieClip
{
var bIgnore, mcCard, attachMovie, nValue, nSuit, getNextHighestDepth, _x, _y, fCB, fCB2, nStack, nId;
function CCard () {
super();
bIgnore = false;
nStartDClick = -1;
mcCard = attachMovie(("c" + nSuit) + nValue, "grCard", getNextHighestDepth());
}
function startFly(nXStart, nXEnd, nYStart, nYEnd, nSpeed) {
_x = nXStart;
_y = nYStart;
CProcess.start(mx.utils.Delegate.create(this, fly), [nXStart, nXEnd, nYStart, nYEnd, nSpeed], CProcess.keepId());
}
function fly(nXStart, nXEnd, nYStart, nYEnd, nSpeed) {
if ((_y < (nYEnd - 7)) || (_y > (nYEnd + 7))) {
_x = _x + ((nXEnd - nXStart) * nSpeed);
_y = _y + ((nYEnd - nYStart) * nSpeed);
} else {
_x = nXEnd;
_y = nYEnd;
fCB();
fCB2();
delete fCB;
delete fCB2;
return(0);
}
}
function onPress() {
if (CGame.bIgnoreUser) {
return(undefined);
}
CButtons.playSound("card_catch");
_root.mcGame.Undo.bDoUndo = false;
_root.mcGame.Redo.bDoRedo = false;
_root.mcGame.aStacks[nStack].startDragStack(nId);
}
function onRelease() {
if (CGame.bIgnoreUser) {
return(undefined);
}
if (nStartDClick != -1) {
if ((getTimer() - nStartDClick) < nDClickDelay) {
_root.mcGame.aStacks[nStack].bDoubleClick = true;
}
}
nStartDClick = getTimer();
_root.mcGame.aStacks[nStack].stopDragStack();
}
function onReleaseOutside() {
onRelease();
}
var nSpeed = 0.05;
var nStartDClick = -1;
var nDClickDelay = 250;
}
Symbol 443 MovieClip [__Packages.CProcess] Frame 0
class CProcess
{
function CProcess () {
}
static function main() {
var _local1 = 0;
while (_local1 < PROCESSES.length) {
var _local2 = PROCESSES[_local1][0].apply(null, PROCESSES[_local1][1]);
if (_local2 == KILL) {
PROCESSES.splice(_local1--, 1);
} else if (_local2 == HOLD) {
return(undefined);
}
_local1++;
}
}
static function start(ps, args, id, priority) {
id = ((id == undefined) ? -1 : (id));
if (priority == undefined) {
PROCESSES.push([ps, args, id]);
} else {
PROCESSES.splice(priority, 0, [ps, args, id]);
}
}
static function kill(ps, id) {
id = ((id == undefined) ? -1 : (id));
var _local1 = 0;
while (_local1 < PROCESSES.length) {
if (((PROCESSES[_local1][0] == ps) || ((PROCESSES[_local1][0].func == ps.func) && (ps.func != undefined))) && (PROCESSES[_local1][2] == id)) {
PROCESSES.splice(_local1--, 1);
}
_local1++;
}
}
static function killAll() {
PROCESSES = new Array();
}
static function is(ps, id) {
id = ((id == undefined) ? -1 : (id));
var _local1 = 0;
while (_local1 < PROCESSES.length) {
if (((PROCESSES[_local1][0] == ps) || ((PROCESSES[_local1][0].func == ps.func) && (ps.func != undefined))) && (PROCESSES[_local1][2] == id)) {
return(true);
}
_local1++;
}
return(false);
}
static function toString() {
return("[CProcess]");
}
static function keepId() {
return(lastId++);
}
static var PROCESSES = new Array();
static var lastId = 1;
static var KILL = 0;
static var HOLD = -1;
}
Symbol 444 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func, aArgs, bMerge) {
var _local2 = function () {
var _local2 = arguments.callee.target;
var _local3 = arguments.callee.func;
var _local4 = arguments.callee.bMerge;
if (_local4) {
var _local5 = mx.utils.Delegate.merge(arguments, arguments.callee.aArgs);
} else {
var _local5 = ((arguments.length > 0) ? arguments : (arguments.callee.aArgs));
}
return(_local3.apply(_local2, _local5));
};
_local2.type = "Delegate";
_local2.target = obj;
_local2.func = func;
_local2.aArgs = aArgs;
_local2.bMerge = bMerge;
return(_local2);
}
static function merge(aA, aB) {
var _local1 = 0;
while (_local1 < aB.length) {
aA.push(aB[_local1]);
_local1++;
}
return(aA);
}
static function clone(fDelegate) {
if ((fDelegate.target != undefined) && (fDelegate.func != undefined)) {
return(create(fDelegate.target, fDelegate.func, fDelegate.aArgs, fDelegate.bMerge));
}
return(fDelegate);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 445 MovieClip [__Packages.CGame] Frame 0
class CGame extends MovieClip
{
static var ranks, aRankScores, bIgnoreUser;
var oUser, bIsConcede, bLoadGame, mcUndo, mcRedo, btnDeal, btnConcede, btnMenu, btnRules, btnShuffle, getURL, btnCopy, sRank, mcRank, nTotalScore, nCurrentScore, sWins, Redo, Undo, wndDeal, attachMovie, getNextHighestDepth, wndConcede, wndToMenu, wndContinue, wndNagScreen, wndEndLevels, nShuffleQuantity, aNumbers, wndWin, nCardsCount, bUndo, aStacks, mcCard, deck, home0, nHomeCardValue, reserve;
function CGame () {
super();
oUser = {nId:0, nTotalScore:0, nLosses:0, nWins:0, sRank:"Candidate", nRank:1};
ranks = new Array("Candidate", "Drummer", "Senty", "Learner", "Higher Learner", "Street Fighter", "Senior", "Armour-Bearer", "Knight", "Pilgrim", "Sumo Fighter", "Sumo Champion", "Lama", "Master", "Dragon");
aRankScores = new Array(0, 400, 800, 1200, 1600, 2000, 2400, 2800, 3200, 3600, 4000, 4400, 4800, 5200, 5600);
bIsConcede = false;
bLoadGame = false;
initButtons();
deal();
}
function initButtons() {
mcUndo.gotoAndStop(2);
mcRedo.gotoAndStop(2);
btnDeal.onRelease = mx.utils.Delegate.create(this, dealWnd);
btnConcede.onRelease = mx.utils.Delegate.create(this, concedeWnd);
btnMenu.onRelease = mx.utils.Delegate.create(this, toMenuWnd);
btnRules.onRelease = mx.utils.Delegate.create(this, toRules);
btnShuffle.onRelease = mx.utils.Delegate.create(this, shuffle);
btnCopy.onRelease = mx.utils.Delegate.create(this, getURL, [_root.sMoreGames, "_blank"]);
}
function initUndoRedoButtons() {
mcUndo.btnUndo.onRelease = mx.utils.Delegate.create(this, doUndo);
mcRedo.btnRedo.onRelease = mx.utils.Delegate.create(this, doRedo);
}
function getUserData() {
cInstructions.bRules = false;
bLoadGame = false;
sRank = oUser.sRank;
mcRank.gotoAndStop(oUser.nRank);
nTotalScore = oUser.nTotalScore;
if (!bLoadGame) {
addScore(nDealScore);
nCurrentScore = nDealScore;
} else {
nCurrentScore = oUser.nCurrentScore;
}
for (var _local2 in oUser) {
trace((_local2 + " -> ") + oUser[_local2]);
}
sWins = (oUser.nWins + "/") + oUser.nLosses;
}
function setUserData() {
trace("setUserData");
oUser.nTotalScore = nTotalScore;
oUser.nCurrentScore = nCurrentScore;
}
function doUndo() {
if (bIgnoreUser) {
return(undefined);
}
CButtons.playSound("button");
Redo.bDoRedo = false;
Undo.doUndo();
}
function doRedo() {
if (bIgnoreUser) {
return(undefined);
}
CButtons.playSound("button");
Undo.bDoUndo = false;
Redo.doRedo();
}
function dealWnd() {
if (bIgnoreUser) {
return(undefined);
}
CButtons.playSound("button");
if (bIsConcede) {
deal();
return(undefined);
}
wndDeal = attachMovie("wndDeal", "wndDeal", getNextHighestDepth(), {_x:400, _y:300});
wndDeal.btnBack.onRelease = mx.utils.Delegate.create(this, closeWindow, [wndDeal]);
wndDeal.btnConcede.onRelease = mx.utils.Delegate.create(this, deal);
}
function concedeWnd() {
if (bIgnoreUser) {
return(undefined);
}
CButtons.playSound("button");
wndConcede = attachMovie("wndConcede", "wndConcede", getNextHighestDepth(), {_x:400, _y:300});
wndConcede.btnYes.onRelease = mx.utils.Delegate.create(this, concede);
wndConcede.btnNo.onRelease = mx.utils.Delegate.create(this, closeWindow, [wndConcede]);
}
function toMenuWnd() {
if (bIgnoreUser) {
return(undefined);
}
CButtons.playSound("button");
wndToMenu = attachMovie("wndToMenu", "wndToMenu", getNextHighestDepth(), {_x:400, _y:300});
wndToMenu.btnYes.onRelease = mx.utils.Delegate.create(this, gotoMenu);
wndToMenu.btnNo.onRelease = mx.utils.Delegate.create(this, closeWindow, [wndToMenu]);
}
function toRules() {
if (bIgnoreUser) {
return(undefined);
}
CButtons.playSound("button");
cInstructions.bRules = true;
setUserData();
_root.gotoAndStop("instr");
}
function continueWnd() {
wndContinue = attachMovie("wndContinue", "wndContinue", getNextHighestDepth(), {_x:400, _y:300});
wndContinue.btnNew.onRelease = mx.utils.Delegate.create(this, newGame);
}
function nagScreen() {
wndNagScreen = attachMovie("wndNagScreen", "wndNagScreen", getNextHighestDepth(), {_x:400, _y:300});
wndNagScreen.btnDownload.onRelease = mx.utils.Delegate.create(this, download);
wndNagScreen.btnMaybe.onRelease = mx.utils.Delegate.create(this, newGame);
}
function closeWindow(wnd) {
CButtons.playSound("button");
wnd.removeMovieClip();
}
function download() {
(getURL(_root.sLink, "_blank"));// not popped
newGame();
}
function endLevelsWnd() {
wndEndLevels = attachMovie("wndEndLevels", "wndEndLevels", getNextHighestDepth(), {_x:400, _y:300});
wndEndLevels.btnDownload.onRelease = mx.utils.Delegate.create(this, gotoMenu, [1]);
wndEndLevels.btnMaybe.onRelease = mx.utils.Delegate.create(this, gotoMenu);
}
function newGame() {
if (wndContinue._name != undefined) {
closeWindow(wndContinue);
}
if (wndNagScreen._name != undefined) {
closeWindow(wndNagScreen);
}
bLoadGame = false;
nShuffleQuantity = 3;
btnShuffle._visible = true;
sWins = (oUser.nWins + "/") + oUser.nLosses;
bIgnoreUser = true;
aNumbers = new Array();
var _local2 = 0;
while (_local2 < 52) {
aNumbers.push(_local2);
_local2++;
}
setDeck();
setHome();
setReserve();
}
function deal() {
bAutoFinish = false;
if (wndDeal._name != undefined) {
closeWindow(wndDeal);
concede();
}
if (wndWin._name != undefined) {
closeWindow(wndWin);
concede();
}
getUserData();
if (nRounds >= MAX_ROUNDS) {
endLevelsWnd();
return(undefined);
}
nCardsCount = 0;
bUndo = false;
aStacks = new Array();
bWin = false;
trace([nRounds, nNagScreen, nRounds % nNagScreen]);
if (((nRounds % nNagScreen) == 0) && (nRounds > 0)) {
if (nRounds < MAX_ROUNDS) {
nagScreen();
} else {
endLevelsWnd();
}
} else if (nRounds == 1) {
wndNagScreen = attachMovie("wndNagScreen1", "wndNagScreen", getNextHighestDepth(), {_x:400, _y:300});
wndNagScreen.btnDownload.onRelease = mx.utils.Delegate.create(this, download);
wndNagScreen.btnMaybe.onRelease = mx.utils.Delegate.create(this, newGame);
} else {
nShuffleQuantity = 3;
btnShuffle._visible = true;
sWins = (oUser.nWins + "/") + oUser.nLosses;
bIgnoreUser = true;
aNumbers = new Array();
var _local2 = 0;
while (_local2 < 52) {
aNumbers.push(_local2);
_local2++;
}
setDeck();
setHome();
setReserve();
}
nRounds++;
Undo = new CUndoRedo();
Redo = new CUndoRedo();
bIsConcede = false;
btnMenu.onRelease = mx.utils.Delegate.create(this, toMenuWnd);
}
function concede() {
btnShuffle._visible = false;
if (wndConcede._name != undefined) {
closeWindow(wndConcede);
}
if (bIsConcede) {
return(undefined);
}
CProcess.killAll();
mcCard.removeMovieClip();
var _local3;
var _local4;
_local3 = 0;
while (_local3 < 34) {
_root.mcGame["card" + _local3].removeMovieClip();
_local3++;
}
_root.deck_btn.removeMovieClip();
_local3 = 0;
while (_local3 < aStacks.length) {
_local4 = 0;
while (_local4 < aStacks[_local3].length) {
aStacks[_local3][_local4].removeMovieClip();
_local4++;
}
delete aStacks[_local3];
_local3++;
}
delete aStacks;
delete Undo;
delete Redo;
bIsConcede = true;
oUser.oGame = undefined;
btnMenu.onRelease = mx.utils.Delegate.create(this, gotoMenu);
if (!bWin) {
oUser.nLosses++;
}
setUserData();
}
function shuffle() {
CButtons.playSound("card_flip");
Undo = new CUndoRedo();
Redo = new CUndoRedo();
nShuffleQuantity--;
if (nShuffleQuantity == 0) {
btnShuffle._visible = false;
} else {
btnShuffle._visible = true;
}
var _local4 = new Array();
var _local3 = 0;
while (_local3 < deck.length) {
var _local2 = new Object();
_local2.suit = deck[_local3].nSuit;
_local2.value = deck[_local3].nValue;
_local4.push(_local2);
deck[_local3].removeMovieClip();
_local3++;
}
delete deck;
deck = new CStack(8);
aStacks[8] = deck;
var _local6 = _local4.length;
_local3 = 0;
while (_local3 < _local6) {
var _local2 = new Object();
var _local5 = random(_local4.length);
_local2.nSuit = _local4[_local5].suit;
_local2.nValue = _local4[_local5].value;
_local2.sStack = "deck";
if (_local2.nSuit < 2) {
_local2.nColor = 0;
} else {
_local2.nColor = 1;
}
mcCard = attachMovie("CCard", (("card_" + _local2.nSuit) + "_") + _local2.nValue, getNextHighestDepth(), _local2);
deck.addCards([mcCard]);
mcCard._visible = false;
_local4.splice(_local5, 1);
this["card" + _local3]._visible = true;
_local3++;
}
addScore(-30);
deck.deck_btn.swapDepths(getNextHighestDepth());
}
function addCard(aCards, i) {
aStacks[i].addCards(aCards);
}
function setStacks() {
if (nCardsCount == 4) {
bIgnoreUser = false;
return(undefined);
}
this["stack" + nCardsCount] = new CStack(nCardsCount);
aStacks[nCardsCount] = this["stack" + nCardsCount];
var _local2 = attachMovie("empty_card", "cardStack" + nCardsCount, getNextHighestDepth(), {_alpha:0});
aStacks[nCardsCount].addCards([_local2]);
_local2 = setCard("stack" + nCardsCount);
_local2.fCB = mx.utils.Delegate.create(this, addCard, [[_local2], nCardsCount]);
_local2.fCB2 = mx.utils.Delegate.create(this, setStacks);
_local2.startFly(255, 360 + (nCardsCount * 100), 435, 151, 0.25);
nCardsCount++;
}
function setHome() {
home0 = new CStack(4);
aStacks[4] = home0;
var _local5 = setCard("home0");
_local5.fCB = mx.utils.Delegate.create(this, addCard, [[_local5], 4]);
_local5.fCB2 = undefined;
_local5.startFly(255, 360, 435, 35, 0.25);
nHomeCardValue = _local5.nValue;
var _local4 = attachMovie("Bushido", "homecard0", getNextHighestDepth());
aStacks[4].addCards([_local4]);
_local4.cardPot.text = aCardPot[nHomeCardValue];
_local4.bushMast.gotoAndStop(_local5.nSuit);
var _local2 = 1;
var _local3 = 0;
while (_local3 < 4) {
if (_local5.nSuit == _local3) {
} else {
this["home" + _local2] = new CStack(4 + _local2);
aStacks[4 + _local2] = this["home" + _local2];
_local4 = attachMovie("Bushido", "homecard" + _local2, getNextHighestDepth(), {nSuit:_local3, nValue:nHomeCardValue});
_local4.cardPot.text = aCardPot[nHomeCardValue];
_local4.bushMast.gotoAndStop(_local3 + 1);
this["home" + _local2].addCards([_local4]);
_local2++;
}
_local3++;
}
}
function setDeck() {
CButtons.playSound("starting_level");
CButtons.playSound("card_passing");
deck = new CStack(8);
aStacks[8] = deck;
var _local2 = 0;
while (_local2 < 34) {
var _local3 = setCard("deck");
deck.addCards([_local3]);
_local3._visible = false;
attachMovie("card", "card" + _local2, getNextHighestDepth(), {_x:255 + (_local2 * 0.1), _y:435 - (_local2 * 0.1)});
_local2++;
}
deck.setDeckBtn();
}
function setReserve() {
if (nCardsCount == 13) {
nCardsCount = 0;
setStacks();
return(undefined);
}
if (nCardsCount == 0) {
reserve = new CStack(9);
aStacks[9] = reserve;
}
var _local2 = setCard("reserve");
_local2.fCB = mx.utils.Delegate.create(this, addCard, [[_local2], 9]);
_local2.fCB2 = mx.utils.Delegate.create(this, setReserve);
_local2.startFly(255, 255, 435, 50 + (nCardsCount * 15), 0.25);
nCardsCount++;
}
function setCard(sStack) {
var _local2 = new Object();
var _local3 = random(aNumbers.length);
var _local4 = aNumbers[_local3];
_local2.nSuit = Math.floor(_local4 / 13);
_local2.nValue = _local4 - (_local2.nSuit * 13);
if (_local2.nSuit < 2) {
_local2.nColor = 0;
} else {
_local2.nColor = 1;
}
_local2.sStack = sStack;
mcCard = attachMovie("CCard", (("card_" + _local2.nSuit) + "_") + _local2.nValue, getNextHighestDepth(), _local2);
aNumbers.splice(_local3, 1);
return(mcCard);
}
function checkForHit(aCards) {
var _local2 = 0;
while (_local2 < 4) {
var _local3 = aCards[0];
var _local5 = aStacks[_local2].getLastCard();
if (_local3.nStack == _local2) {
} else if (_local3.hitTest(_local5)) {
if (_local3.nColor != _local5.nColor) {
if (((_local3.nValue == (_local5.nValue - 1)) || ((_local3.nValue == 12) && (_local5.nValue == 0))) || (_local5.nValue == undefined)) {
if ((aCards.length != (aStacks[_local3.nStack].length - 1)) && (_local3.nStack < 4)) {
} else {
Undo.addUndo({f:mx.utils.Delegate.create(this, setCards, [aCards, _local3.nStack, _local3.nId])});
setCards(aCards, _local2);
return(undefined);
}
}
}
}
_local2++;
}
_local2 = 4;
while (_local2 < 8) {
var _local3 = aCards[0];
var _local5 = aStacks[_local2].getLastCard();
if (_local3.nStack == _local2) {
} else if (_local3.hitTest(_local5)) {
if (_local3.nSuit == _local5.nSuit) {
if ((aStacks[_local2].length > 1) || (_local2 == 4)) {
if ((_local3.nValue == (_local5.nValue + 1)) || ((_local3.nValue == 0) && (_local5.nValue == 12))) {
Undo.addUndo({f:mx.utils.Delegate.create(this, setCards, [aCards, _local3.nStack, _local3.nId])});
setCards(aCards, _local2);
return(undefined);
}
} else if (_local3.nValue == _local5.nValue) {
Undo.addUndo({f:mx.utils.Delegate.create(this, setCards, [aCards, _local3.nStack, _local3.nId])});
setCards(aCards, _local2);
return(undefined);
}
}
}
_local2++;
}
aStacks[aCards[0].nStack].comeBackStack();
}
function setCards(aCards, nStackTo, nCardId) {
if (Redo.bDoRedo) {
Undo.addUndo({f:mx.utils.Delegate.create(this, setCards, [aCards, aCards[0].nStack, aCards[0].nId])});
Undo.bDoUndo = false;
}
if (Undo.bDoUndo) {
Redo.addRedo({f:mx.utils.Delegate.create(this, setCards, [aCards, aCards[0].nStack, aCards[0].nId])});
Redo.bDoRedo = false;
}
if (aCards[0].nStack == 9) {
CButtons.playSound("card_drop");
}
if ((nStackTo > 3) && (nStackTo < 8)) {
addScore(nScoreHeap);
}
if ((aCards[0].nStack > 3) && (aCards[0].nStack < 8)) {
addScore(-1 * nScoreHeap);
}
aStacks[aCards[0].nStack].removeCards(aCards[0].nId);
aStacks[nStackTo].addCards(aCards, nCardId);
if (nStackTo < 8) {
checkForFreeStack();
}
if (nStackTo == 9) {
Undo.bDoNextUndo = true;
}
if (!bAutoFinish) {
if ((aStacks[8].length == 0) && (aStacks[9].length == 0)) {
trace("STARTAUTOFINISH");
bAutoFinish = true;
CProcess.start(mx.utils.Delegate.create(this, autofinish));
}
}
checkForWin();
}
function checkForFreeStack() {
if (reserve.length == 0) {
ignore();
return(undefined);
}
var _local5 = false;
var _local3 = 0;
while (_local3 < 4) {
if (aStacks[_local3].length == 1) {
if (!Undo.bDoUndo) {
if (Redo.bDoRedo) {
Redo.bDoNextRedo = true;
Redo.bDoRedo = false;
break;
}
Undo.addUndo({f:mx.utils.Delegate.create(this, setCards, [[reserve.getLastCard()], reserve.nId])});
var _local2 = reserve.getLastCard();
bIgnoreUser = true;
_local2.swapDepths(getNextHighestDepth());
_local2.fCB = mx.utils.Delegate.create(this, setCards, [[_local2], _local3]);
_local2.fCB2 = mx.utils.Delegate.create(this, ignore);
_local2.startFly(_local2._x, 360 + (_local3 * 100), _local2._y, 151, 0.2);
_local5 = true;
break;
}
Undo.bDoNextUndo = true;
}
_local3++;
}
if (!_local5) {
ignore();
}
}
function ignore() {
bIgnoreUser = false;
}
function onDoubleClick(mcCard) {
var _local3 = 4;
while (_local3 < 8) {
var _local4 = aStacks[_local3].getLastCard();
if (mcCard.nStack == _local3) {
} else if (mcCard.nSuit == _local4.nSuit) {
if ((aStacks[_local3].length > 1) || (_local3 == 4)) {
if ((mcCard.nValue == (_local4.nValue + 1)) || ((mcCard.nValue == 0) && (_local4.nValue == 12))) {
Undo.addUndo({f:mx.utils.Delegate.create(this, setCards, [[mcCard], mcCard.nStack, mcCard.nId])});
mcCard.swapDepths(getNextHighestDepth());
mcCard.fCB2 = mx.utils.Delegate.create(this, setCards, [[mcCard], _local3]);
mcCard.fCB = mx.utils.Delegate.create(this, ignore);
mcCard.startFly(mcCard._x, 361 + ((_local3 - 4) * 100), mcCard._y, 34, 0.2);
return(undefined);
}
} else if (mcCard.nValue == _local4.nValue) {
Undo.addUndo({f:mx.utils.Delegate.create(this, setCards, [[mcCard], mcCard.nStack, mcCard.nId])});
mcCard.swapDepths(getNextHighestDepth());
mcCard.fCB2 = mx.utils.Delegate.create(this, setCards, [[mcCard], _local3]);
mcCard.fCB = mx.utils.Delegate.create(this, ignore);
mcCard.startFly(mcCard._x, 361 + ((_local3 - 4) * 100), mcCard._y, 34, 0.2);
return(undefined);
}
}
_local3++;
}
aStacks[mcCard.nStack].comeBackStack();
}
function addScore(nScore) {
nCurrentScore = nCurrentScore + nScore;
nTotalScore = nTotalScore + nScore;
var _local3 = false;
var _local2 = aRankScores.length - 1;
while (_local2 > -1) {
if (nTotalScore >= aRankScores[_local2]) {
mcRank.gotoAndStop(_local2 + 1);
oUser.nRank = _local2 + 1;
oUser.sRank = ranks[_local2];
sRank = oUser.sRank;
_local3 = true;
break;
}
_local2--;
}
if (!_local3) {
mcRank.gotoAndStop(1);
oUser.nRank = 1;
oUser.sRank = ranks[0];
sRank = oUser.sRank;
}
}
function checkForWin() {
bWin = true;
var _local2 = 4;
while (_local2 < 8) {
if (aStacks[_local2].length < 14) {
bWin = false;
break;
}
_local2++;
}
if (bWin) {
CProcess.kill(mx.utils.Delegate.create(this, autofinish));
oUser.nWins++;
sWins = (oUser.nWins + "/") + oUser.nLosses;
addScore(nWinScore);
if (nShuffleQuantity == 3) {
addScore(200);
}
if (nShuffleQuantity == 2) {
addScore(100);
}
setUserData();
setWinWnd();
}
}
function setWinWnd() {
CButtons.playSound("win");
wndWin = attachMovie("wndWin", "wndWin", getNextHighestDepth(), {_x:400, _y:300});
wndWin.mcRank.gotoAndStop(oUser.nRank);
wndWin.sWins.text = (oUser.nWins + "/") + oUser.nLosses;
wndWin.sTotal.text = nTotalScore;
wndWin.btnNew.onRelease = mx.utils.Delegate.create(this, deal);
wndWin.btnMenu.onRelease = mx.utils.Delegate.create(this, gotoMenu);
}
function gotoMenu() {
if (bIgnoreUser) {
return(undefined);
}
if (arguments.length) {
(getURL(_root.sLink, "_blank"));// not popped
}
closeWindow(wndToMenu);
setUserData();
_root.gotoAndStop("menu");
}
function autofinish() {
if (bIgnoreUser) {
return(undefined);
}
var _local2 = 0;
while (_local2 < 4) {
var _local3 = aStacks[_local2].getLastCard();
onDoubleClick(_local3);
_local2++;
}
onDoubleClick(aStacks[8].getDeckLastCard());
onDoubleClick(aStacks[9].getLastCard());
}
static var nScoreHeap = 5;
static var nWinScore = 100;
static var nDealScore = -50;
static var nShuffleScore = -30;
var aCardPot = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"];
var bAutoFinish = false;
var bWin = false;
static var nNagScreen = 2;
static var MAX_ROUNDS = 10;
static var nRounds = 0;
}
Symbol 446 MovieClip [__Packages.CStack] Frame 0
class CStack extends Array
{
var nId, aDragStack, nCount, bDoubleClick, bFlag, splice, length, nLastId, push, nDragStartX, nDragStartY, deck_btn;
function CStack (i) {
super();
nId = i;
aDragStack = new Array();
nCount = 0;
bDoubleClick = false;
bFlag = false;
}
function addCards(aCards, nI) {
var _local3 = 0;
while (_local3 < aCards.length) {
aCards[_local3].nStack = nId;
switch (nId) {
case 0 :
case 1 :
case 2 :
case 3 :
aCards[_local3]._x = 360 + (nXSpace * nId);
var _local6 = ((getLastCard().nValue != undefined) ? (getLastCard()._y) : 151);
aCards[_local3]._y = _local6 + nYSpace;
break;
case 4 :
case 5 :
case 6 :
case 7 :
aCards[_local3]._x = 361 + (nXSpace * (nId - 4));
aCards[_local3]._y = 34;
break;
case 8 :
break;
case 9 :
aCards[_local3]._x = 255;
_local6 = ((getLastCard().nValue != undefined) ? (getLastCard()._y) : 50);
aCards[_local3]._y = _local6 + nYSpace;
}
if ((nId == 8) && (_root.mcGame.Undo.bDoUndo)) {
aCards[_local3].nId = nI;
splice(nI, 0, aCards[_local3]);
_local3 = nI;
while (_local3 < length) {
this[_local3].nId = _local3;
_local3++;
}
bFlag = true;
getDeckCards(3, nLastId);
} else {
aCards[_local3].nId = length;
push(aCards[_local3]);
}
aCards[_local3].swapDepths(_root.mcGame.getNextHighestDepth());
_local3++;
}
nLastId = getLastCard().nId;
if ((nI != undefined) && (nId == 8)) {
nLastId = nI - 1;
}
}
function addCardToDeck(mcCard, nI) {
splice(nI, 0, mcCard);
shiftDeckCards(nI, -1);
}
function removeCards(nI) {
if (nId == 8) {
splice(nI, 1);
shiftDeckCards(nI, 1);
} else {
splice(nI);
}
}
function getLastCard() {
return(this[length - 1]);
}
function startDragStack(nI) {
if ((nId > 3) && (nId < 8)) {
return(undefined);
}
nDragStartX = this[nI]._x;
nDragStartY = this[nI]._y;
aDragStack = new Array();
if (nId == 8) {
if (nI == (nLastId + 1)) {
aDragStack.push(this[nI]);
}
} else {
var _local3 = nI;
while (_local3 < length) {
aDragStack.push(this[_local3]);
_local3++;
}
}
var _local3 = 0;
while (_local3 < aDragStack.length) {
aDragStack[_local3].swapDepths(_root.mcGame.getNextHighestDepth());
_local3++;
}
aDragStack[0].startDrag();
if (aDragStack.length > 1) {
addProcess(dragStack);
}
}
function dragStack() {
var _local2 = 1;
while (_local2 < aDragStack.length) {
aDragStack[_local2]._x = aDragStack[0]._x;
aDragStack[_local2]._y = aDragStack[_local2 - 1]._y + nYSpace;
updateAfterEvent();
_local2++;
}
}
function stopDragStack() {
if ((nId > 3) && (nId < 8)) {
return(undefined);
}
if (aDragStack.length == 0) {
return(undefined);
}
CButtons.playSound("card_drop");
CGame.bIgnoreUser = true;
aDragStack[0].stopDrag();
killProcess(dragStack);
if (checkStack()) {
if (!bDoubleClick) {
_root.mcGame.checkForHit(aDragStack);
} else {
_root.mcGame.onDoubleClick(aDragStack[0]);
bDoubleClick = false;
}
} else {
comeBackStack();
}
aDragStack = new Array();
}
function checkStack() {
if (aDragStack.length == 1) {
return(true);
}
if ((nId < 4) && (aDragStack.length != (length - 1))) {
return(false);
}
if (nId != 9) {
return(true);
}
var _local3 = false;
var _local2 = 0;
while (_local2 < (aDragStack.length - 1)) {
if (aDragStack[_local2].nColor == aDragStack[_local2 + 1].nColor) {
return(false);
}
if ((aDragStack[_local2].nValue == (aDragStack[_local2 + 1].nValue - 1)) || ((aDragStack[_local2].nValue == 0) && (aDragStack[_local2 + 1].nValue == 12))) {
_local3 = true;
} else {
return(false);
}
_local2++;
}
if (_local3) {
return(true);
}
}
function comeBackStack() {
aDragStack[aDragStack.length - 1].fCB = mx.utils.Delegate.create(this, ignore);
if (aDragStack.length == 0) {
ignore();
}
var _local2 = 0;
while (_local2 < aDragStack.length) {
aDragStack[_local2].startFly(aDragStack[_local2]._x, nDragStartX, aDragStack[_local2]._y, nDragStartY + (_local2 * nYSpace), 0.5);
_local2++;
}
}
function ignore() {
CGame.bIgnoreUser = false;
}
function getDeckCards(n, nLast) {
if (length == 0) {
return(undefined);
}
CButtons.playSound("card_flip");
if (_root.mcGame.Redo.bDoRedo) {
_root.mcGame.Undo.addUndo({f:mx.utils.Delegate.create(this, getDeckCards, [n, nLastId])});
_root.mcGame.Undo.bDoUndo = false;
}
if (_root.mcGame.Undo.bDoUndo) {
if (!bFlag) {
_root.mcGame.Redo.addRedo({f:mx.utils.Delegate.create(this, getDeckCards, [n, nLastId])});
_root.mcGame.Redo.bDoRedo = false;
}
nLastId = nLast + n;
}
bFlag = false;
if ((nLastId < 0) || (nLastId >= length)) {
if (!_root.mcGame.Undo.bDoUndo) {
collectDeck();
return(undefined);
}
}
var _local3 = 0;
var _local5 = 0;
var _local7;
if ((nLastId < 2) && (length > 2)) {
nLastId = 2;
}
_local3 = length - 1;
while (_local3 >= 0) {
this[_local3]._visible = false;
this[_local3]._x = 360;
this[_local3]._y = 435;
if (_local3 <= (nLastId - 3)) {
_root.mcGame["card" + _local3]._visible = true;
} else {
_root.mcGame["card" + _local3]._visible = false;
if (_local3 <= nLastId) {
this[_local3]._visible = true;
if (length > nLastId) {
this[_local3]._x = 360 + ((nLastId - _local3) * 20);
this[_local3]._y = 435;
} else {
this[_local3]._x = 360 + ((((nLastId - _local3) - 1) - (nLastId - length)) * 20);
this[_local3]._y = 435;
this[_local3]._x = 360 + (((length - _local3) - 1) * 20);
this[_local3]._y = 435;
}
this[_local3].swapDepths(_root.mcGame.getNextHighestDepth());
}
}
_local3--;
}
nLastId = nLastId - 3;
if (nLastId < 0) {
nLastId = -1;
}
}
function comeBackDeck(n) {
var _local3 = 0;
while (_local3 < n) {
nLastId++;
var _local4 = this[nLastId];
_local4._visible = false;
_root.mcGame["card" + nLastId]._visible = true;
_local3++;
}
nLastId = nLastId + n;
nCount--;
_root.mcGame.Undo.bDoNextUndo = true;
}
function shiftDeckCards(nI, nDir) {
var _local2 = nI;
while (_local2 < length) {
this[_local2].nId = _local2;
_local2++;
}
if (nI < (length - 3)) {
_local2 = 0;
while (_local2 < 2) {
this[nI + (_local2 * nDir)]._x = this[nI + (_local2 * nDir)]._x + (20 * nDir);
_local2++;
}
}
this[nI + (2 * nDir)]._visible = true;
}
function collectDeck() {
var _local3 = 0;
while (_local3 < length) {
this[_local3]._visible = false;
_root.mcGame["card" + _local3]._visible = true;
_local3++;
}
nLastId = getLastCard().nId;
nCount = 0;
deck_btn.swapDepths(_root.mcGame.getNextHighestDepth());
}
function setDeckBtn() {
deck_btn = _root.mcGame.attachMovie("mc_deck_btn", "deck_btn", _root.mcGame.getNextHighestDepth());
deck_btn._x = 255;
deck_btn._y = 435;
deck_btn.btn.onRelease = function () {
_root.mcGame.Redo = new CUndoRedo();
_root.mcGame.deck.addUndo();
_root.mcGame.Undo.bDoUndo = false;
_root.mcGame.Redo.bDoRedo = false;
_root.mcGame.deck.getDeckCards(3);
};
}
function addUndo() {
var _local3 = 3;
var _local4 = Math.floor((length - nLastId) / 3);
_root.mcGame.Undo.addUndo({f:mx.utils.Delegate.create(this, getDeckCards, [_local3, nLastId])});
}
function addProcess(_fn, args, id) {
CProcess.start(mx.utils.Delegate.create(this, _fn), args, id);
}
function killProcess(_fn, id) {
CProcess.kill(mx.utils.Delegate.create(this, _fn), id);
}
function isProcess(_fn, id) {
return(CProcess.is(mx.utils.Delegate.create(this, _fn), id));
}
var nXSpace = 100;
var nYSpace = 15;
var nDeckCount = 0;
}
Symbol 447 MovieClip [__Packages.CButtons] Frame 0
class CButtons extends MovieClip
{
static var bSoundOn, waveEngine;
var mcSound, mcMusic, mcWindow, btnExit, attachMovie, getNextHighestDepth, wndExit, wndExit2;
function CButtons () {
super();
initSound();
bSoundOn = true;
initButtons();
}
function initSound() {
waveEngine = new WaveEngine(1);
}
function initButtons() {
mcSound.btnOn.onRelease = mx.utils.Delegate.create(this, musicOff, [waveEngine, mcSound]);
mcSound.btnOff.onRelease = mx.utils.Delegate.create(this, musicOn, [waveEngine, mcSound]);
mcMusic._visible = false;
mcWindow._visible = false;
btnExit._visible = false;
}
function musicOn(engine, mc) {
if (CGame.bIgnoreUser) {
return(undefined);
}
if (mc._name == "mcSound") {
bSoundOn = true;
}
mc.gotoAndStop(1);
engine.soundOn();
mc.btnOn.onRelease = mx.utils.Delegate.create(this, musicOff, [engine, mc]);
}
function musicOff(engine, mc) {
if (CGame.bIgnoreUser) {
return(undefined);
}
trace("mc._name=" + mc._name);
if (mc._name == "mcSound") {
bSoundOn = false;
}
mc.gotoAndStop(2);
engine.soundOff();
mc.btnOff.onRelease = mx.utils.Delegate.create(this, musicOn, [engine, mc]);
}
static function playSound(snd) {
trace(("playSound(" + snd) + ")");
if (bSoundOn) {
waveEngine.play(waveEngine.addStream(snd));
}
}
function exit() {
if (CGame.bIgnoreUser) {
return(undefined);
}
playSound("button");
if (_root._currentframe == 5) {
attachMovie("wndExit", "wndExit", getNextHighestDepth(), {_x:-350, _y:280});
wndExit.btnMenu.onRelease = mx.utils.Delegate.create(this, menu);
wndExit.btnExit.onRelease = mx.utils.Delegate.create(this, exitGame);
wndExit.btnBack.onRelease = mx.utils.Delegate.create(this, closeWindow, [wndExit]);
} else {
attachMovie("wndExit2", "wndExit2", getNextHighestDepth(), {_x:-350, _y:280});
wndExit2.btnYes.onRelease = mx.utils.Delegate.create(this, exitGame);
wndExit2.btnNo.onRelease = mx.utils.Delegate.create(this, closeWindow, [wndExit2]);
}
}
function menu() {
playSound("button");
_root.gotoAndStop("menu");
closeWindow(wndExit);
}
function exitGame() {
playSound("button");
fscommand ("quit");
}
function closeWindow(wnd) {
playSound("button");
wnd.removeMovieClip();
}
}
Symbol 448 MovieClip [__Packages.WaveEngine] Frame 0
class WaveEngine
{
var type, stack, debugOn, mute, _mc;
function WaveEngine (type, debugOn) {
this.type = ((type == undefined) ? 1 : (type));
stack = new Object();
this.debugOn = ((type == undefined) ? false : (debugOn));
mute = false;
init();
}
function init() {
_numClass++;
_mc = _root.createEmptyMovieClip((("WaveEngine_" + _numClass) + "_") + type, _root.getNextHighestDepth());
}
function soundOff() {
if (!mute) {
debug("soundOff()");
for (var _local2 in stack) {
stack[_local2]._oldVolume = stack[_local2].getVolume();
setVolume(_local2, 0);
}
mute = true;
}
}
function soundOn() {
if (mute) {
mute = false;
debug("soundOn()");
for (var _local3 in stack) {
var _local2 = ((stack[_local3]._oldVolume == undefined) ? 100 : (stack[_local3]._oldVolume));
setVolume(_local3, _local2);
}
}
}
function getSoundStatus() {
return(!mute);
}
function play(id, secondsOffset, loops, autoDelete) {
if ((id == undefined) || (stack[id] == undefined)) {
return(0);
}
if (type == 2) {
stopAll();
}
secondsOffset = ((secondsOffset == undefined) ? 0 : (secondsOffset));
loops = ((loops == undefined) ? 1 : (loops));
autoDelete = ((autoDelete == undefined) ? true : (autoDelete));
var _local3 = stack[id];
if (mute) {
_local3.setVolume(0);
} else {
_local3.setVolume(100);
}
if (type == 2) {
loops = 65536;
}
_local3.start(secondsOffset, loops);
debug(((((("play(" + _local3.__link) + ", ") + secondsOffset) + ", ") + loops) + ")");
}
function playAll(secondsOffset, loops, autoDelete) {
for (var _local5 in stack) {
play(_local5, secondsOffset, loops, autoDelete);
}
}
function addStream(link_name, autoDelete) {
if (link_name == undefined) {
return(0);
}
autoDelete = ((autoDelete == undefined) ? true : (autoDelete));
var _local4 = _mc.createEmptyMovieClip("attachS_" + (++_numSound), _mc.getNextHighestDepth());
var _local2 = new Sound(_local4);
_local2.attachSound(link_name);
_local2.__parent = this;
_local2.__link = link_name;
_local2.__num = _numSound;
_local2.__mc = _local4;
_local2.__autoDelete = autoDelete;
_local2.onSoundComplete = function () {
if (this.__autoDelete) {
this.__parent.deleteSound(this.__num);
}
};
debug(("addStream(" + link_name) + ")");
stack[_numSound] = _local2;
return(_local2.__num);
}
function deleteSound(id) {
if ((id == undefined) || (stack[id] == undefined)) {
return(0);
}
var _local2 = stack[id];
debug("Stack deletes a " + _local2.__link);
delete stack[id];
removeMovieClip(_local2.__mc);
}
function deleteAllSound() {
debug("deleteAllSound()");
for (var _local2 in stack) {
deleteSound(_local2);
}
}
function stop(id) {
if ((id == undefined) || (stack[id] == undefined)) {
return(0);
}
var _local3 = stack[id];
_local3.stop();
debug(("stop(" + _local3.__link) + ")");
if (_local3.__autoDelete) {
if ((id != _numSound) || (type != 2)) {
deleteSound(id);
}
}
}
function stopAll() {
debug("stopAll()");
for (var _local2 in stack) {
stop(_local2);
}
}
function setVolume(id, volume) {
if (((id == undefined) || (volume == undefined)) || (stack[id] == undefined)) {
return(0);
}
var _local2 = stack[id];
if (mute) {
_local2._oldVolume = volume;
return(0);
}
debug(((("setVolume(" + _local2.__link) + ", ") + volume) + ")");
if (_local2 != undefined) {
_local2.setVolume(volume);
}
}
function setAllVolume(volume) {
for (var _local2 in stack) {
setVolume(_local2, volume);
}
}
function debug(msg) {
if (debugOn) {
trace((type + " ") + msg);
}
}
function toString() {
return(("[class WaveEngine::" + ((type == 1) ? "Sound" : "Music")) + "]");
}
var _numSound = 0;
static var _numClass = 0;
}
Symbol 449 MovieClip [__Packages.CUndoRedo] Frame 0
class CUndoRedo extends Array
{
var bDoNextUndo, bDoNextRedo, bDoRedo, length, push, bDoUndo, pop;
function CUndoRedo () {
super();
bDoNextUndo = false;
bDoNextRedo = false;
bDoRedo = false;
}
function addUndo(oUndo) {
if (!_root.mcGame.Redo.bDoRedo) {
_root.mcGame.Redo = new CUndoRedo();
}
oUndo.nId = length;
push(oUndo);
if (_root.mcGame.Redo.isEmpty()) {
_root.mcGame.mcRedo.gotoAndStop(2);
} else {
_root.mcGame.mcRedo.gotoAndStop(1);
}
_root.mcGame.mcUndo.gotoAndStop(1);
_root.mcGame.initUndoRedoButtons();
}
function addRedo(oRedo) {
oRedo.nId = length;
push(oRedo);
if (_root.mcGame.Undo.isEmpty()) {
_root.mcGame.mcUndo.gotoAndStop(2);
} else {
_root.mcGame.mcUndo.gotoAndStop(1);
}
_root.mcGame.mcRedo.gotoAndStop(1);
_root.mcGame.initUndoRedoButtons();
}
function doUndo() {
if (length == 0) {
return(undefined);
}
_root.mcGame.Redo.bDoRedo = false;
bDoUndo = true;
trace("------DO UNDO------");
bDoNextUndo = false;
var _local3 = getLastUndo();
_local3.f();
pop();
if (bDoNextUndo) {
doUndo();
}
if (isEmpty()) {
_root.mcGame.mcUndo.gotoAndStop(2);
}
}
function doRedo() {
if (length == 0) {
return(undefined);
}
_root.mcGame.Undo.bDoUndo = false;
bDoRedo = true;
trace("------DO REDO------");
bDoNextRedo = false;
var _local3 = getLastUndo();
_local3.f();
pop();
if (bDoNextRedo) {
doRedo();
}
if (isEmpty()) {
_root.mcGame.mcRedo.gotoAndStop(2);
}
}
function getLastUndo() {
return(this[length - 1]);
}
function isEmpty() {
if (!length) {
return(true);
}
return(false);
}
}
Symbol 450 MovieClip [__Packages.cInstructions] Frame 0
class cInstructions extends MovieClip
{
static var bRules;
var btnPlay, line, bDragging, btnBack, btnWin, btnExit, btnWav, btnSND, btnMainMenu, mcScroll, getURL, btnCopy, _ymouse, instructions, holded, podtv, attachMovie, getNextHighestDepth;
function cInstructions () {
super();
if (bRules) {
btnPlay._visible = false;
}
line._visible = false;
bDragging = false;
btnBack.onRelease = mx.utils.Delegate.create(this, back);
btnWin.onRelease = mx.utils.Delegate.create(this, bWin);
btnExit.onRelease = mx.utils.Delegate.create(this, bExit);
btnWav.onRelease = mx.utils.Delegate.create(this, bWav);
btnSND.onRelease = mx.utils.Delegate.create(this, bSND);
btnPlay.onRelease = bPlay;
btnMainMenu.onRelease = bMainMenu;
mcScroll.onMouseMove = mx.utils.Delegate.create(this, Scroll);
mcScroll.btnScroll.onPress = mx.utils.Delegate.create(this, onPressScroll);
mcScroll.btnScroll.onRelease = mx.utils.Delegate.create(this, onRelaseScroll);
mcScroll.btnScroll.onReleaseOutside = mx.utils.Delegate.create(this, onRelaseScroll);
btnCopy.onRelease = mx.utils.Delegate.create(this, getURL, [_root.sMoreGames, "_blank"]);
}
function Scroll() {
if (bDragging) {
drag();
}
}
function drag() {
if ((_ymouse > line._y) && (_ymouse < (line._y + line._height))) {
mcScroll._y = _ymouse;
var _local3 = (_ymouse - line._y) / line._height;
instructions.scroll = int(_local3 * instructions.maxscroll);
if (instructions.scroll >= instructions.maxscroll) {
instructions.scroll = instructions.maxscroll;
}
} else if (_root._ymouse <= line._y) {
setPos(1);
} else if (_ymouse >= (line._y + line._height)) {
setPos(instructions.maxscroll);
}
}
function setPos(num) {
var _local2 = ((((num == 1) ? 0 : (num)) * line._height) / instructions.maxscroll) + line._y;
mcScroll._y = _local2;
instructions.scroll = num;
}
function onPressScroll() {
bDragging = true;
}
function onRelaseScroll() {
bDragging = false;
}
function back() {
CButtons.playSound("button");
if (!bRules) {
_root.gotoAndStop("menu");
} else {
_root.gotoAndPlay("game");
}
}
function bNo() {
holded.removeMovieClip();
podtv.removeMovieClip();
}
function bWin() {
if (_root.bScreen) {
fscommand ("fullscreen", false);
_root.bScreen = false;
} else {
fscommand ("fullscreen", true);
_root.bScreen = true;
}
}
function bExit2() {
fscommand ("quit");
}
function bExit() {
attachMovie("holded", "holded", getNextHighestDepth(), {_height:605, _width:805, _alpha:60});
attachMovie("podtv", "podtv", getNextHighestDepth(), {_x:262.6, _y:62.4});
holded.onRelease = NaN;
podtv.btnYes.onRelease = mx.utils.Delegate.create(this, bExit2);
podtv.btnNo.onRelease = mx.utils.Delegate.create(this, bNo);
}
function bSND() {
trace("SND)");
}
function bWav() {
trace("Wav)");
}
function bPlay() {
CButtons.playSound("button");
_root.gotoAndPlay("game");
}
function bMainMenu() {
_root.gotoAndStop(2);
}
}
Symbol 451 MovieClip [__Packages.cPreLoad] Frame 0
class cPreLoad extends MovieClip
{
var b, l, p, text, bar;
function cPreLoad () {
super();
b = _root.getBytesTotal();
}
function onEnterFrame() {
l = _root.getBytesLoaded();
p = (l / b) * 100;
text = Math.floor(p);
text = text + "%";
bar._xscale = p;
if (l >= b) {
if (nstart == 0) {
nstart = getTimer();
}
if ((getTimer() - nstart) >= 2500) {
_root.gotoAndStop("init");
}
}
}
var nstart = 0;
}
Symbol 452 MovieClip [__Packages.CMenu] Frame 0
class CMenu extends MovieClip
{
var btnWin, btnExit, btnWav, btnSND, btnPlay, btnInstructions, btnDownload, btnMore, btnExit2, btnUsers, getURL, btnCopy, holded, podtv, attachMovie, getNextHighestDepth, wndExit2;
function CMenu () {
super();
btnWin.onRelease = mx.utils.Delegate.create(this, bWin);
btnExit.onRelease = mx.utils.Delegate.create(this, bExit2);
btnWav.onRelease = mx.utils.Delegate.create(this, bWav);
btnSND.onRelease = mx.utils.Delegate.create(this, bSND);
btnPlay.onRelease = mx.utils.Delegate.create(this, bPlay);
btnInstructions.onRelease = mx.utils.Delegate.create(this, bInstructions);
btnDownload.onRelease = mx.utils.Delegate.create(this, bDownload);
btnMore.onRelease = mx.utils.Delegate.create(this, bMore);
btnExit2.onRelease = mx.utils.Delegate.create(this, bExit);
btnUsers.onRelease = mx.utils.Delegate.create(this, users);
btnCopy.onRelease = mx.utils.Delegate.create(this, getURL, [_root.sMoreGames, "_blank"]);
}
function bPlay() {
CButtons.playSound("button");
_root.gotoAndPlay("game");
}
function users() {
CButtons.playSound("button");
_root.gotoAndStop("logon");
}
function bInstructions() {
CButtons.playSound("button");
_root.gotoAndStop("instr");
}
function bHighScores() {
CButtons.playSound("button");
_root.gotoAndStop("scores");
}
function bDownload() {
CButtons.playSound("button");
(getURL(_root.sLink, "_blank"));// not popped
}
function bMore() {
trace("More))");
}
function bNo() {
holded.removeMovieClip();
podtv.removeMovieClip();
}
function bWin() {
if (_root.bScreen) {
fscommand ("fullscreen", false);
_root.bScreen = false;
} else {
fscommand ("fullscreen", true);
_root.bScreen = true;
}
}
function bExit2() {
CButtons.playSound("button");
attachMovie("wndExit2", "wndExit2", getNextHighestDepth(), {_x:0, _y:0});
wndExit2.btnYes.onRelease = mx.utils.Delegate.create(this, exitGame);
wndExit2.btnNo.onRelease = mx.utils.Delegate.create(this, closeWindow, [wndExit2]);
}
function exitGame() {
CButtons.playSound("button");
fscommand ("quit");
}
function closeWindow(wnd) {
CButtons.playSound("button");
wnd.removeMovieClip();
}
function bExit() {
attachMovie("holded", "holded", getNextHighestDepth(), {_height:605, _width:805, _alpha:60});
attachMovie("podtv", "podtv", getNextHighestDepth(), {_x:262.6, _y:62.4});
holded.onRelease = NaN;
podtv.btnYes.onRelease = mx.utils.Delegate.create(this, bExit2);
podtv.btnNo.onRelease = mx.utils.Delegate.create(this, bNo);
}
function bSND() {
trace("SND)");
}
function bWav() {
trace("Wav)");
}
}
Symbol 218 MovieClip [wndDeal] Frame 1
this.btn.useHandCursor = false;
Symbol 230 MovieClip [wndConcede] Frame 1
this.btn.useHandCursor = false;
Symbol 242 MovieClip [wndNagScreen] Frame 1
this.btn.useHandCursor = false;
Symbol 244 MovieClip [wndEndLevels] Frame 1
this.btn.useHandCursor = false;
Symbol 247 MovieClip [wndNagScreen1] Frame 1
this.btn.useHandCursor = false;
Symbol 263 MovieClip [BushidoMast] Frame 1
stop();
Symbol 263 MovieClip [BushidoMast] Frame 2
stop();
Symbol 263 MovieClip [BushidoMast] Frame 3
stop();
Symbol 263 MovieClip [BushidoMast] Frame 4
stop();
Symbol 263 MovieClip [BushidoMast] Frame 5
stop();
Symbol 299 MovieClip [mcRangs] Frame 1
stop();
Symbol 299 MovieClip [mcRangs] Frame 2
stop();
Symbol 299 MovieClip [mcRangs] Frame 3
stop();
Symbol 299 MovieClip [mcRangs] Frame 4
stop();
Symbol 299 MovieClip [mcRangs] Frame 5
stop();
Symbol 299 MovieClip [mcRangs] Frame 6
stop();
Symbol 299 MovieClip [mcRangs] Frame 7
stop();
Symbol 299 MovieClip [mcRangs] Frame 8
stop();
Symbol 299 MovieClip [mcRangs] Frame 9
stop();
Symbol 299 MovieClip [mcRangs] Frame 10
stop();
Symbol 299 MovieClip [mcRangs] Frame 11
stop();
Symbol 299 MovieClip [mcRangs] Frame 12
stop();
Symbol 299 MovieClip [mcRangs] Frame 13
stop();
Symbol 299 MovieClip [mcRangs] Frame 14
stop();
Symbol 299 MovieClip [mcRangs] Frame 15
stop();
Symbol 316 MovieClip [wndWin] Frame 1
this.btn.useHandCursor = false;
Symbol 318 MovieClip [wndToMenu] Frame 1
this.btn.useHandCursor = false;
Symbol 336 MovieClip [Menu] Frame 1
#initclip 69
Object.registerClass("Menu", CMenu);
#endinitclip
Symbol 347 MovieClip Frame 1
stop();
Symbol 347 MovieClip Frame 2
stop();
Symbol 354 MovieClip Frame 1
stop();
Symbol 354 MovieClip Frame 2
stop();
Symbol 361 MovieClip Frame 1
stop();
Symbol 361 MovieClip Frame 2
stop();
Symbol 362 MovieClip [Buttons] Frame 1
#initclip 68
Object.registerClass("Buttons", CButtons);
#endinitclip
Symbol 415 MovieClip Frame 1
stop();
Symbol 424 MovieClip Frame 1
stop();
Symbol 425 MovieClip [Game] Frame 1
#initclip 70
Object.registerClass("Game", CGame);
#endinitclip
Symbol 441 MovieClip [Instructions] Frame 1
#initclip 71
Object.registerClass("Instructions", cInstructions);
#endinitclip