Frame 1
_fglv = new LoadVars();
_fglv.gid = 260;
_fglv.url = _root._url;
_fglv.sendAndLoad("http://www.freegamesforyourwebsite.com/stats.php", _fglv, "POST");
delete _fglv;
var debug = false;
var gameID = 240;
var gameName = "bigtruckadventures2";
stop();
fscommand ("showmenu", "false");
prel.onEnterFrame = function () {
prel.procent.text = Math.floor((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
prel.gotoAndStop(prel.procent.text);
if (Number(prel.procent.text) > 99) {
play();
delete this.onEnterFrame;
}
};
Frame 2
stop();
Frame 3
if (!okToPlay) {
gotoAndStop (2);
}
Frame 4
function updateEngineSound() {
if (!engineRunning) {
return(false);
}
es = Math.min(80, engineSpeed + 1);
_root.engine["engineSound" + es].start(0, 2);
lastES = es;
_global.setTimeout(this, "updateEngineSound", _root.engine["engineSound" + es].duration);
}
function startEngine() {
engineRunning = true;
updateEngineSound();
}
function killEngine() {
engineRunning = false;
}
function angleNearZero(a) {
a = a % doublePI;
if (a > Math.PI) {
a = a - doublePI;
}
return(a);
}
lastStuntX = 0;
scroll_x = 0;
scroll_y = 800;
GameState = 0;
score = 0;
ticker = 0;
level_time = 0;
level_score = 0;
gameEndType = 1;
last_truck_grounded = false;
truck_grounded = false;
lastBonusTS = 0;
curCheckpoint = 2;
lostLifeSet = false;
pauseForInfo = false;
pauseUntilEnterKey = false;
showNormalMessagefadeCnt = 0;
game_running = false;
curLevel = 1;
WaitFor = 0;
Invincible = 0;
Lives = 5;
RoofHitCounter = 0;
upsideDown = false;
rollOverMessage._visible = false;
lastStuntX = 0;
scroll_x = 0;
scroll_y = 800;
GameState = 0;
boostCharge = 0;
boostRelease = 0;
boostDownLast = false;
braking = 1;
score = 0;
ticker = 0;
level_time = 0;
level_score = 0;
gameEndType = 1;
last_truck_grounded = false;
truck_grounded = false;
lastBonusTS = 0;
curCheckpoint = 2;
lostLifeSet = false;
pauseForInfo = false;
pauseUntilEnterKey = false;
showNormalMessagefadeCnt = 0;
game_running = false;
curLevel = 1;
WaitFor = 0;
Invincible = 0;
Lives = 5;
RoofHitCounter = 0;
upsideDown = false;
rollOverMessage._visible = false;
lvlVars = new LoadVars();
halfPI = (Math.PI/2);
doublePI = (Math.PI*2);
LevelEndCntr = 0;
gravity = 0.3;
tireRot = 0;
curEfx = 0;
maxEfx = 20;
soundEfx = ["soundefx-2x4.wav", "soundefx-bball.wav", "soundefx-boxthud.wav", "soundefx-boxthud2.wav", "soundefx-glass.wav", "soundefx-mill1.wav", "soundefx-mill2.wav", "soundefx-pig1.wav", "soundefx-pig2.wav", "soundefx-points.wav", "soundefx-start-game.wav", "soundefx-tire_sq1.wav", "soundefx-tire_sq2.wav", "soundefx-water.wav", "soundefx-windmill.wav", "soundefx-factory.wav", "soundefx-birds.wav", "soundefx-lose.wav", "soundefx-startover.wav", "soundefx-rollover.wav"];
if (!_global.graphicsOptSet) {
_global.graphicsOptSet = [false, true, true, true, true, true];
}
graphicsOptName = ["High Quality", "Parallax BG", "Medium Quality", "Hill Shading", "Dust", "Ground Covering"];
graphicsQuality = ["low", "medium", "high", "high"];
graphicsAutoDetail = false;
objects_in_truck = 0;
object_name = "";
cargoMessages = ["Your goal is to deliver the cargo to the checkpoint in the least time possible. Use the 'SHIFT' key to boost, but be careful- if you go too fast you will lose your cargo.Now get a move on, these boxes need delivering.", "Deliver this water to the checkpoint.", "Deliver this lumber to the checkpoint.", "Deliver these pigs to the checkpoint.", "Deliver these plants to the checkpoint.", "Deliver this water to the checkpoint.", "Deliver these glass windows to the checkpoint, take the bumps slow or they'll shatter.", "This is your final challenge: Deliver these basketballs to the checkpoint. They bounce out very easily so take it nice and slow.", "Congratulations! You have made it to the end and completed all of your deleveries."];
cargoNames = ["Boxes", "Gallons of Water", "Lumber", "Pigs", "Plants", "Gallons of Water", "Glass Windows", "Basket Balls", "Home"];
cargoCount = [4, 1, 6, 2, 3, 1, 3, 8, 0];
cargoDiv = [1, 500, 1, 1, 1, 500, 1, 0.2, 0];
cargoTime = [45, 75, 65, 50, 55, 75, 50, 75, 0];
var GroundHeight = new Array();
var SurfaceTile = new Array();
var SurfaceRot = new Array();
var SurfaceLayer = new Array();
var randomGrass = new Array();
var layerColors = [7311435, 8168529, 9552985];
sDownLast = 0;
sloMo = false;
sloMoCnt = 0;
KeyRight = 0;
KeyLeft = 0;
KeyForward = 0;
KeyReverse = 0;
screen_center_x = Stage.width / 2;
screen_center_y = Stage.height / 2;
ScrollOffX = 0;
ScrollOffY = 0;
lvlWidth = 600;
objX = new Array();
objY = new Array();
objType = new Array();
lr = 0;
control_rot = 0;
control_rotVel = 0;
boost = 1;
startBonusTime = 0;
startBonusY = 0;
startBonusX = 0;
maxBonusY = 10000;
bonusQueTimer = 15;
flashTheScreen = 0;
fadeInTheScreen = 0;
fadeOutTheScreen = 0;
levelScoreAtBeginning = 0;
start_rot = 0;
last_ob_angle = 0;
ob_angle = 0;
ob_angle_off = 0;
ob_sx = new Array(5);
ob_sy = new Array(5);
ob_sx[0] = 0;
ob_sy[0] = 0;
grounded = [0, 0, 0, 0, 0];
truck2wheelMassRatio = 1.4;
DirectionalDrag = 0.99;
springStiff = 6;
springDamp = 1.4;
RotationalDrag = 0.2;
rotationalDamp = 1.2;
truckAccel = 1;
tireSpacing = 34;
connectionsA = [0, 0, 0, 0];
connectionsB = [1, 2, 3, 4];
connectionDist = [tireSpacing, tireSpacing, tireSpacing, tireSpacing];
connectionDistStiff = [2, 2, 2, 2];
connectionDistDamp = [0.1, 0.1, 0.1, 0.1];
connectionRot = [Math.PI, 0, 3.92699081698724, 5.49778714378214];
connectionRotStiff = [2, 2, 2, 2];
connectionRotDamp = [0.1, 0.1, 0.1, 0.1];
curpoint = 0;
MinHitAt = 0;
HitNum = 0;
rotForBonus = 0;
var truckLevels = new Array();
if (!edit_enabled) {
truckLevels.push({lvlWidth:10144, GroundHeight:"00003j05J06g08:09@0:90:b0;G0;e0<<0<O0<_0<n0=<0=K0=Y0=h0>60>C0>N0>Z0>d0>o0?80?B0?K0?T0?]0?f0?o0@80@B0@K0@U0@_0@i0A30A=0AF0AO0AX0A`0Ah0An0B40B:0B?0BC0BG0BJ0BM0BO0BR0BT0BV0BW0BY0BZ0B[0B\\0B]0B]0B]0B\\0B[0BZ0BX0BW0BU0BT0BR0BQ0BP0BN0BN0BM0BL0BL0BK0BJ0BI0BH0BG0BE0BC0B@0B=0B;0B80B50B20Ao0Am0Ak0Ai0Ag0Ad0Ab0A`0A]0AZ0AW0AS0AP0AM0AJ0AG0AD0AA0A?0A<0A:0A80A60A40A30A10@n0@l0@i0@g0@d0@b0@_0@]0@\\0@[0@Z0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Y0@Z0@Z0@[0@[0@[0@\\0@\\0@\\0@\\0@\\0@\\0@\\0@\\0@\\0@\\0@\\0@\\0@]0@]0@]0@]0@\\0@\\0@\\0@\\0@\\0@[0@[0@Z0@Z0@Z0@[0@]0@_0@b0@f0@k0A00A50A;0AA0AG0AM0AT0AZ0A`0Ae0Ai0Am0B10B50B80B;0B>0BB0BE0BH0BK0BN0BP0BR0BU0BY0B\\0B^0Ba0Bc0Bd0Bf0Bh0Bj0Bk0Bm0C00C30C70C<0CA0CE0CJ0CO0CS0CW0C[0C`0Cd0Ci0Cm0D00D40D70D;0D?0DB0DF0DI0DL0DO0DQ0DS0DU0DW0DY0DZ0D\\0D]0D_0D`0Db0Dd0Df0Di0Dl0Do0E20E40E60E80E90E:0E:0E:0E;0E;0E;0E;0E;0E:0E:0E90E80E60E50E30E00Dn0Dk0Dh0Dd0Da0D]0DZ0DV0DR0DN0DJ0DF0DA0D<0D80D30Cn0Ci0Cd0C_0CZ0CT0CN0CI0CC0C>0C90C40Bo0Bj0Be0B`0B\\0BX0BT0BP0BL0BH0BE0BA0B>0B:0B60B20An0Ai0Ae0Ab0A_0A[0AW0AT0AP0AL0AH0AD0A@0A<0A80A30@n0@h0@a0@[0@V0@Q0@L0@G0@C0@>0@;0@80@60@50@30@20@20@10@00?o0?n0?l0?k0?i0?f0?d0?b0?`0?^0?]0?\\0?\\0?\\0?\\0?]0?`0?b0?d0?f0?g0?i0?j0?k0?l0?m0?m0?m0?m0?n0?n0?n0?n0?o0?o0@10@50@:0@@0@D0@E0@D0@B0@?0@<0@90@70@50@40@40@40@50@70@90@<0@?0@B0@F0@I0@M0@P0@S0@V0@Y0@[0@]0@^0@`0@a0@b0@d0@e0@g0@i0@l0@o0A20A60A;0A?0AE0AJ0AO0AU0A[0Aa0Ag0Am0B30B80B>0BC0BG0BK0BO0BR0BU0BW0BX0BX0BW0BV0BU0BS0BP0BN0BK0BH0BE0BB0B@0B>0B<0B;0B:0B90B90B90B90B90B:0B:0B;0B;0B;0B;0B;0B;0B;0B;0B;0B;0B<0B=0B>0B?0B@0BB0BC0BC0BC0BB0BA0B?0B<0B80B30An0Ah0Ab0A\\0AV0AP0AJ0AD0A?0A:0A60A20@o0@m0@k0@j0@i0@i0@i0@j0@k0@l0@m0@o0A00A10A20A20A20A20A10@o0@n0@l0@k0@i0@h0@f0@f0@e0@e0@f0@g0@i0@k0@n0A10A40A70A;0A?0AC0AG0AK0AO0AR0AU0AX0A[0A^0A`0Ab0Ac0Ae0Ag0Ah0Aj0Ak0Am0An0B00B20B40B50B70B80B90B:0B:0B90B80B70B50B20B00Al0Ai0Af0Ac0Aa0A_0A^0A]0A]0A]0A^0A_0A`0Ab0Ad0Af0Ah0Aj0Al0An0Ao0B00B00B10B10B00B00Ao0Am0Al0Aj0Ah0Ae0Ab0A^0A[0AW0AS0AN0AJ0AF0AC0A?0A<0A90A70A60A40A30A20A20A20A20A30A30A40A50A60A70A80A90A;0A<0A?0AA0AD0AG0AK0AO0AS0AX0A]0Ac0Ai0Ao0B50B<0BB0BI0BP0BV0B]0Bc0Bi0Bo0C50C:0C?0CC0CG0CK0CN0CQ0CS0CU0CW0CY0CZ0C[0C\\0C\\0C]0C]0C]0C]0C]0C]0C]0C^0C_0C_0Ca0Cb0Cd0Cf0Ci0Ck0Cn0D10D40D70D:0D<0D>0D@0DA0DB0DB0DB0DA0D@0D>0D<0D:0D80D60D50D30D20D10D10D10D10D20D30D30D40D40D30D20D00Cm0Ci0Ce0C`0CZ0CS0CL0CD0C=0C50Bm0Bf0B^0BW0BQ0BJ0BD0B>0B90B30An0Aj0Ae0Aa0A]0AZ0AW0AT0AR0AP0AO0AN0AL0AJ0AH0AF0AC0AA0A@0A>0A>0A>0A?0AA0AC0AF0AI0AK0AN0AO0AQ0AQ0AP0AO0AL0AI0AF0AB0A>0A;0A70A40A10@n0@k0@j0@h0@g0@g0@g0@h0@j0@m0A10A50A90A=0AA0AF0AJ0AO0AS0AW0A[0A_0Ac0Af0Ai0Am0B00B40B80B<0BA0BG0BN0BV0B_0Bg0Bn0C50C:0C>0C@0CC0CE0CF0CG0CH0CH0CI0CI0CI0CI0CJ0CJ0CJ0CK0CK0CL0CM0CO0CP0CR0CS0CU0CV0CX0CY0CZ0C[0C[0C\\0C]0C]0C^0C_0C`0Ca0Cb0Cd0Cf0Ch0Cj0Cm0D10D50D90D?0DD0DI0DN0DS0DX0D]0Db0Di0E00E80E@0EI0ES0E\\0Ef0Eo0F80F@0FH0FP0FX0F`0Fg0Fn0G50G;0GB0GH0GN0GT0GY0G^0Gc0Gg0Gk0Go0H20H40H70H90H;0H<0H=0H>0H?0H?0H@0HA0HB0HD0HF0HH0HK0HO0HT0HY0H^0Hc0Hh0Hl0I00I50I80I<0I?0IA0ID0IG0IJ0IM0IP0IS0IW0I[0I`0Ie0Ij0In0J30J70J;0J>0JB0JE0JH0JK0JN0JP0JR0JT0JV0JX0JY0J[0J]0J_0Ja0Jd0Jg0Jj0Jm0K10K40K70K;0K>0KB0KE0KH0KK0KN0KQ0KS0KV0KX0K[0K]0K_0Kb0Kd0Kf0Kh0Kj0Kk0Kl0Kn0Ko0L10L20L40L50L60L70L80L80L90L90L90L90L90L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L:0L90L:0L;0L;0L<0L<0L<0L<0L<0L<0L<0L<0L;0L;0L;0L:0L:0L90L80L80L70L60L50L40L30L20L00Ko0Kn0Kl0Kj0Ki0Kg0Kf0Kd0Kb0Ka0K_0K]0K\\0KZ0KY0KW0KV0KT0KS0KR0KP0KO0KN0KL0KK0KJ0KH0KG0KF0KD0KC0KA0K@0K?0K=0K<0K;0K:0K80K70K60K50K40K30K20K10K00K00Jo0Jn0Jm0Jm0Jl0Jk0Jj0Ji0Jh0Jg0Jf0Je0Jd0Jb0Ja0J`0J^0J]0J[0JZ0JX0JW0JU0JT0JR0JQ0JO0JN0JM0JK0JJ0JI0JH0JG0JF0JF0JE0JD0JD0JD0JD0JD0JD0JE0JE0JF0JG0JG0JH0JI0JJ0JK0JL0JM0JO0JO0JP0JQ0JR0JS0JS0JT0JT0JT0JT0JT0JT0JT0JT0JS0JS0JR0JR0JQ0JP0JO0JO0JN0JM0JL0JK0JJ0JI0JH0JH0JG0JF0JE0JD0JC0JB0JA0J@0J?0J>0J<0J;0J:0J90J80J70J60J60J50J40J40J40J30J30J30J30J30J20J20J20J10J10J00J00Io0In0Im0Il0Ik0Ij0Ii0Ih0Ig0If0Ie0Ie0Id0Ic0Ic0Ib0Ia0Ia0I`0I_0I_0I^0I]0I\\0I\\0I[0IZ0IZ0IY0IX0IX0IW0IW0IW0IV0IV0IV0IU0IU0IU0IT0IT0IT0IS0IS0IR0IQ0IP0IO0IN0IM0IL0IK0IJ0IH0IG0IF0IE0ID0IC0IB0IA0I@0I?0I?0I>0I=0I=0I<0I;0I;0I:0I90I90I80I70I70I60I50I50I40I30I30I20I10I10I00Ho0Hn0Hm0Hl0Hk0Hj0Hi0Hh0Hg0Hf0He0Hd0Hc0Hb0Ha0H`0H_0H^0H^0H]0H\\0H[0HZ0HX0HW0HV0HT0HS0HQ0HP0HN0HM0HK0HJ0HI0HH0HG0HF0HE0HE0HE0HE0HE0HE0HE0HE0HE0HD0HD0HC0HC0HB0HA0H@0H?0H=0H<0H:0H80H60H30H10Gn0Gk0Gi0Ge0Gb0G_0G[0GX0GT0GQ0GM0GI0GF0GB0G>0G;0G70G40G00Fm0Fj0Fg0Fd0Fa0F^0F\\0FZ0FX0FV0FT0FR0FQ0FO0FN0FM0FL0FK0FI0FH0FG0FF0FE0FD0FC0FB0F@0F?0F>0F=0F<0F;0F90F80F70F60F50F40F30F20F10F00Eo0En0Em0Em0El0Ek0Ej0Ei0Eh0Eg0Ef0Ee0Ed0Ec0Eb0E_0E\\0EX0ET0EO0EJ0EF0EA0E>0E;0E70E40E20E00Dn0Dm0Dk0Dj0Di0Dh0Dg0Df0Df0De0Dd0Dd0Dc0Dc0Db0Db0Da0Da0D`0D`0D_0D_0D_0D_0D^0D^0D^0D^0D]0D]0D]0D]0D]0D]0D]0D]0D]0D]0D\\0D\\0D\\0D[0DZ0DZ0DY0DY0DX0DX0DW0DW0DV0DV0DV0DU0DU0DT0DT0DT0DS0DS0DS0DR0DR0DR0DQ0DQ0DP0DO0DO0DN0DN0DM0DM0DL0DL0DL0DK0DK0DK0DM0DR0DW0D^0Dd0Dj0Do0E30E70E90E:0E90E90E80E80E:0E=0EA0EE0EI0EL0EN0EP0ES0EX0E^0Ef0El0F00F30F50F70F80F:0F<0F@0FC0FG0FJ0FK0FL0FM0FM0FN0FN0FN0FN0FQ0FV0F\\0Fc0Fh0Fk0Fk0Fj0Fh0Fg0Fg0Fi0Fl0Fo0G20G40G60G80G;0G=0G?0G=0G:0G60G50G50G80G=0GB0GG0GK0GM0GO0GO0GN0GN0GN0GO0GP0GP0GO0GN0GM0GL0GL0GL0GL0GL0GK0GJ0GI0GI0GI0GI0GI0GI0GI0GI0GH0GH0GG0GF0GE0GD0GB0G@0G>0G<0G:0G:0G90G80G80G70G50G30G00Fn0Fl0Fi0Fg0Fd0Fa0F^0F[0FX0FV0FU0FU0FV0FU0FT0FS0FQ0FP0FN0FL0FJ0FH0FF0FD0FB0F@0F>0F<0F:0F80F60F40F20F10F00En0En0Em0El0Ek0Ej0Ei0Ei0Eh0Eg0Ef0Ee0Ee0Ed0Ec0Ea0E`0E_0E]0E\\0EZ0EX0EU0ES0EQ0EN0EK0EI0EF0EC0E@0E=0E;0E80E50E30E00Dn0Dk0Di0Dg0De0Db0D`0D^0D]0D[0DY0DX0DV0DU0DT0DS0DR0DR0DQ0DP0DP0DO0DO0DN0DM0DL0DK0DJ0DI0DG0DE0DD0DB0D@0D>0D<0D:0D80D60D40D20D10Co0Cm0Ck0Ci0Cg0Ce0Cc0Ca0C`0C^0C]0C[0CZ0CY0CX0CW0CV0CV0CU0CT0CT0CS0CS0CR0CR0CQ0CP0CP0CO0CO0CN0CM0CL0CK0CJ0CI0CG0CF0CD0CC0CB0C@0C?0C>0C=0C<0C;0C:0C:0C90C80C80C70C60C50C40C30C10C00Bo0Bn0Bm0Bl0Bk0Bj0Bi0Bh0Bg0Bf0Be0Bc0Bb0Ba0B`0B^0B]0B\\0B[0B[0BZ0BY0BY0BX0BW0BW0BV0BU0BT0BS0BR0BP0BO0BM0BL0BJ0BI0BG0BF0BD0BC0BB0B@0B?0B>0B=0B<0B:0B90B80B70B70B60B50B40B40B30B20B20B10B10B00B00Ao0Ao0An0An0Am0Am0Al0Al0Ak0Aj0Aj0Ai0Ah0Ah0Ag0Af0Ae0Ae0Ad0Ac0Ab0Ab0Aa0A`0A_0A^0A]0A\\0A[0AZ0AY0AX0AW0AV0AV0AU0AU0AT0AT0AT0AT0AT0AT0AT0AT0AT0AT0AT0AT0AU0AV0AV0AW0AX0AY0AZ0A[0A\\0A]0A^0A_0A`0A`0A`0Aa0Aa0Aa0A`0A`0A`0A`0A`0A`0A`0A`0Aa0Aa0Ab0Ac0Ad0Ae0Ag0Ah0Ai0Ak0Al0An0B00B20B30B50B70B90B;0B=0B?0BA0BC0BE0BF0BH0BI0BJ0BK0BL0BM0BM0BM0BM0BM0BM0BM0BM0BL0BL0BK0BK0BJ0BJ0BJ0BJ0BJ0BJ0BJ0BJ0BK0BK0BL0BM0BN0BO0BP0BQ0BR0BT0BU0BW0BX0BZ0B[0B]0B_0Ba0Bc0Be0Bf0Bh0Bj0Bl0Bn0Bo0C10C30C40C50C70C80C80C90C:0C:0C;0C;0C;0C;0C:0C:0C:0C90C80C80C70C60C50C40C40C30C20C10C00Bo0Bn0Bm0Bl0Bk0Bj0Bi0Bh0Bg0Bf0Be0Bd0Bc0Bb0Ba0B`0B_0B^0B]0B\\0BZ0BY0BX0BW0BV0BU0BU0BT0BS0BR0BQ0BP0BP0BO0BN0BM0BL0BK0BJ0BH0BG0BF0BE0BD0BC0BA0B@0B?0B?0B>0B=0B<0B;0B;0B:0B:0B90B80B80B70B60B60B50B40B30B30B20B10B00B00Ao0An0Am0Am0Al0Ak0Ak0Ak0Ak0Aj0Aj0Aj0Aj0Aj0Aj0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Ak0Al0Al0Al0Al0Am0Am0An0An0Ao0B00B00B10B20B20B30B30B40B40B50B50B60B60B70B80B90B90B:0B;0B<0B=0B>0B?0B@0BA0BB0BC0BD0BE0BF0BF0BG0BH0BH0BH0BH0BH0BH0BH0BH0BG0BG0BG0BF0BF0BE0BE0BE0BE0BD0BD0BD0BD0BE0BE0BF0BG0BG0BH0BJ0BK0BL0BN0BP0BQ0BS0BU0BX0BZ0B\\0B^0B`0Bc0Be0Bg0Bi0Bj0Bl0Bm0Bo0C00C10C20C20C20C20C20C20C20C10C00C00Bo0Bn0Bn0Bn0Bn0Bn0Bn0Bo0C00C10C20C30C40C50C60C70C70C80C90C:0C:0C;0C;0C<0C<0C=0C=0C>0C>0C?0C?0C?0C@0C@0CA0CA0CA0CA0CB0CB0CB0CB0CC0CC0CC0CC0CC0CC0CC0CC0CC0CC0CC0CB0CB0CC0CC0CC0CC0CC0CD0CE0CF0CG0CH0CI0CK0CM0CO0CR0CT0CW0CY0C\\0C^0Ca0Cc0Ce0Ch0Cj0Ck0Cm0Co0D00D20D30D40D50D60D70D80D90D90D:0D;0D;0D<0D<0D=0D=0D>0D>0D?0D?0D?0D@0D@0D@0D@0D@0D@0D@0D@0D@0D?0D?0D>0D>0D=0D<0D;0D:0D90D70D60D50D40D30D20D10Co0Cn0Cm0Cl0Cj0Ch0Cg0Ce0Cc0Ca0C_0C\\0CZ0CX0CU0CS0CP0CN0CK0CI0CF0CD0CA0C?0C<0C:0C80C60C30C10C00Bn0Bl0Bj0Bh0Bg0Be0Bc0Ba0B`0B^0B\\0BZ0BX0BV0BU0BS0BQ0BO0BM0BK0BJ0BH0BF0BE0BC0BB0BA0B@0B?0B>0B>0B=0B<0B<0B;0B;0B:0B:0B90B80B70B60B50B30B20B00An0Al0Aj0Ah0Af0Ad0Aa0A_0A]0A[0AZ0AX0AW0AU0AT0AS0AR0AQ0AP0AO0AN0AM0AM0AL0AK0AK0AJ0AI0AI0AH0AH0AH0AG0AG0AG0AF0AF0AF0AE0AE0AE0AD0AD0AD0AC0AC0AC0AC0AC0AC0AC0AD0AD0AE0AF0AG0AH0AJ0AK0AM0AO0AQ0AS0AU0AW0AY0A\\0A^0Aa0Ac0Af0Ah0Ak0An0B10B30B60B90B<0B?0BA0BD0BG0BI0BL0BN0BQ0BS0BU0BW0BY0BZ0B\\0B^0B_0Ba0Bb0Bc0Bd0Be0Bf0Bg0Bh0Bi0Bi0Bj0Bj0Bj0Bj0Bj0Bj0Bj0Bi0Bi0Bh0Bg0Bf0Bd0Bc0Bb0B`0B_0B]0B\\0BZ0BX0BW0BU0BS0BQ0BP0BN0BL0BK0BI0BH0BF0BD0BC0BA0B@0B>0B=0B;0B90B80B60B50B30B10B00An0Al0Ak0Ai0Ah0Af0Ae0Ac0Ab0Aa0A`0A_0A^0A]0A\\0A[0A[0AZ0AZ0AY0AY0AY0AX0AX0AX0AX0AW0AW0AW0AV0AV0AV0AU0AT0AT0AS0AR0AR0AQ0AP0AP0AO0AN0AN0AM0AL0AK0AK0AJ0AI0AH0AG0AF0AE0AD0AC0AA0A@0A?0A=0A<0A;0A:0A90A80A70A60A60A50A50A50A40A40A40A30A30A20A20A20A10A10A10A10A10A10A10A10A10A10A00A00A00A00A00A00A00A00A00A00A00@o0@o0@o0@o0@o0@o0@n0@n0@n0@n0@n0@m0@m0@m0@m0@l0@l0@l0@l0@l0@k0@k0@k0@k0@k0@k0@l0@l0@m0@m0@n0@o0@o0A00A10A10A20A30A30A40A40A40A50A50A50A60A60A60A60A60A60A60A60A60A50A50A40A20A10@o0@m0@k0@i0@e0A`0BL0B`0B]0B\\0BZ0BY0BW0BT0BS0BO0BL0BH0BE0BB0B=0B90B40An0Aj0Ae0Aa0A^0A[0AX0AV0AT0AQ0AO0AL0AI0AF0AC0A?0A<0A80A50A10@n0@j0@g0@d0@a0@^0@[0@X0@V0@S0@Q0@N0@L0@I0@E0@A0@=0@90@50@10?m0?h0?c0?^0?Y0?T0?O0?I0?C0?=0?60>o0>h0>`0>X0>P0>G0>?0>60=n0=f0=_0=[0=W0=S0=Q0=O0=O0=O0=O0=P0=P0=Q0=R0=S0=T0=V0=X0=Y0=[0=]0=_0=a0=b0=d0=e0=f0=g0=h0=h0=h0=i0=i0=i0=i0=i0=i0=i0=i0=j0=j0=k0=l0=o0>40><0>O0>g0?;0?M0?W0?[0?[0?[0?Z0?Z0?Y0?Y0?X0?X0?W0?W0?W0?W0?W0?X0?X0?X0?X0?Y0?Y0?Z0?X0?Y0?Y0?Y0?Z0?[0?]0?_0?c0?k0@60@C0@X0@o0@o0@o0@o0@o0A00A00A00A00A00A00A00A00A00A10A10A10A20A20A30A40A40A50A60A=0AA0AO0Af0B40B?0BI0BQ0BV0BZ0B\\0B]0B^0B^0B^0B^0B^0B^0B^0B^0B^0B^0B_0B_0B_0B`0Ba0Be0Bk0C10C80C?0CD0CH0CJ0CK0CL0CL0CK0CK0CJ0CH0CF0CD0CA0C>0C;0C80C40C10Bm0Bj0Bg0Bd0Ba0B^0B[0BY0BV0BT0BR0BO0BM0BK0BI0BG0BE0BC0BA0B@0B>0B<0B:0B80B60B30B10Am0Ai0Ae0Aa0A\\0AW0AS0AN0AJ0AE0A@0A<0A70A20@m0@h0@b0@]0@X0@S0@N0@H0@C0@>0@90@40?n0?i0?d0?_0?Z0?U0?P0?K0?F0?A0?<0?70?20>m0>i0>d0>_0>[0>V0>R0>M0>I0>E0>@0><0>80>40=o0=k0=h0=d0=`0=]0=Y0=V0=S0=Q0=O0=M0=L0=L0=L0=M0=O0=R0=U0=Z0=_0=e0=k0>80>E0>R0>a0>m0?40?>0?F0?K0?T0?[0?h0@40@B0@L0@Y0@c0@j0A30A>0AF0AP0A\\0Ac0Al0B60B<0BB0BH0BN0BQ0BU0BY0B\\0B`0Bb0Bd0Be0Bh0Bj0Bm0Bo0C10C20C30C40C50C70C:0C<0C?0CB0CE0CH0CK0CM0CO0CQ0CT0CV0CX0CZ0C[0C]0C^0C`0Ca0Cc0Cd0Cg0Ci0Ck0Cm0Co0D10D30D50D70D:0D=0D@0DE0DI0DN0DT0DY0D_0Dd0Di0Dn0E20E60E:0E=0E@0EC0EF0EH0EJ0EL0EM0EM0EM0EM0EL0EJ0EH0EE0EB0E?0E;0E70E20Dm0Dh0Dc0DZ0DQ0DI0DA0D:0D40Cn0Ch0Cb0C\\0CV0CP0CJ0CD0C=0C70C20Bm0Bi0Bf0Bd0Ba0B`0B_0B^0B]0B]0B]0B]0B]0B]0B]0B]0B]0B\\0B\\0B[0BY0BV0BQ0BK0BD0B90An0Ad0A`0A]0AZ0AX0AV0AU0AU0AU0AU0AW0AX0AZ0A\\0A^0A`0Ab0Ac0Ad0Ae0Ae0Ad0Ab0A`0A^0AZ0AV0AR0AL0AF0A@0A80@o0@f0@]0@T0@K0@B0@:0@20?k0?e0?`0?[0?X0?U0?S0?Q0?P0?N0?N0?N0?N0?O0?O0?P0?Q0?Q0?Q0?R0?R0?R0?R0?R0?Y0?f0@40@?0@E0@I0@J0@J0@J0@J0@J0@L0@Q0@W0@`0@i0A30A;0A?0AC0AE0AF0AG0AH0AJ0AM0AP0AV0A\\0Ae0An0B70BA0BL0BV0B`0Bi0C20C:0CB0CI0CO0CU0C[0Ca0Cg0Cm0D20D80D=0DC0DH0DN0DS0DY0D^0Dc0Di0Dn0E40E:0EA0EG0EN0EU0E[0Eb0Eh0En0F50F;0F@0FF0FK0FP0FU0FZ0F_0Fc0Fg0Fk0Fo0G20G70G;0G@0GD0GH0GL0GP0GS0GW0G[0G_0Gd0Gh0Gl0H00H40H90H=0HA0HF0HJ0HO0HT0HY0H_0He0Hk0I10I70I=0IC0IJ0IP0IW0I^0Ie0Il0J30J90J@0JF0JL0JQ0JW0J]0Jd0Jj0K10K70K<0KA0KG0KK0KP0KU0KY0K\\0K`0Kc0Ke0Kh0Kj0Km0L00L30L60L90L=0L@0LD0LH0LL0LP0LT0LW0LZ0L]0L`0Lc0Lf0Li0Ll0Lo0M20M50M70M90M;0M=0M>0M?0M@0M@0MA0MA0MA0MA0MA0MA0MA0MA0MA0MA0MA0MA0MA0M@0M@0M@0M?0M?0M=0M<0M90M60M30Lo0Lj0Le0L`0L[0LV0LP0LJ0LD0L<0L40Kn0Kg0K`0K[0KR0KP0KN0KH0L=0LF0LT0L\\0Lg0Lh0Lj0Lk0Ll0Ll0Ln0Lo0M00M00M10M10M10M10M10M40M60M70M80M80M90M90M80M<0MA0ME0ME0MG0MH0MI0MI0MH0MH0MN0MS0M[0M_0M_0Me0Mg0Ml0Mo0N50N90N?0NE0NE0NK0NN0NN0NR0NR0NU0N[0N[0Na0Ng0Nj0Nn0O00O30O60O60O90O;0O>0OA0OD0OF0OI0OL0OQ0OV0OV0O[0Oa0Oa0Oe0Oi0Om0P10P50P80P;0P=0P?0P@0PA0PB0PC0PD0PF0PF0PG0PH0PH0PI0PI0PI0PI0PI0PI0PI0PI0PI0PI0PI0PI0PI0PI0PG0PD0PB0P@0P=0P;0P:0P80P60P30P10Om0Oj0Of0Oc0O`0O^0O[0OY0OV0OT0OR0OO0OL0OI0OE0OA0O<0O80O40No0Nl0Nh0Ne0Nb0N_0N\\0NY0NV0NR0NO0NK0NG0ND0NA0N>0N;0N80N60N30N10Mn0Mk0Mh0Md0M_0M[0MV0MQ0MM0MH0ME0MA0M=0M90M60M60M50Lo0Lk0Lk0Lk0Lk0Lk0Lk0Le0Le0L`0L`0L`0L`0L\\0L\\0LY0LW0LV0LV0LU0LT0LQ0LN0LL0LI0LF0LC0L?0L;0L80L60L40L20Ko0Km0Kk0Ki0Kf0Kd0Ka0K^0KZ0KW0KT0KQ0KO0KL0KJ0KG0KD0KA0K?0K=0K;0K90K70K50K30K10Jn0Jl0Jj0Jh0Je0Jb0J]0JY0JV0JT0JR0JO0JL0JI0JE0JA0J>0J<0J:0J70J50J30J20J00In0Ik0Ih0Ie0Ib0Ia0I`0I_0I]0I\\0IZ0IY0IX0IW0IV0IU0IU0IT0IT0IT0IT0IT0IS0IR0IR0IP0IO0IN0IN0IM0IM0IL0IL0IL0IL0IL0IL0IL0IL0IK0IJ0II0IG0ID0I?0I90I10Hi0Hb0H^0H]0H^0Ha0Hd0Hg0Hh0Hg0He0Hb0H]0HW0HN0HD0H:0H00Gg0G_0G[0GZ0GZ0G]0G_0Ga0Gd0Gi0H20HA0HO0H[0Hd0Hi0Hn0I50I;0I@0IC0IC0IC0IB0I@0I>0I;0I80I40Ho0Hh0H_0HU0HK0H?0H40Gg0G\\0GR0GK0GI0GI0GH0GI0GJ0GK0GK0GK0GJ0GH0GE0GA0G=0G80G20Fl0Ff0F_0FY0FT0FN0FJ0FG0FD0FB0FA0FA0FA0FA0FA0FA0F@0F?0F>0F<0F:0F80F50F20F00Em0Ej0Eg0Ee0Eb0E`0E_0E^0E_0Ea0Ee0Ei0Em0F20F70F<0FA0FE0FH0FI0FJ0FJ0FI0FG0FE0FB0F?0F<0F80F50F20Eo0El0Ej0Eh0Eg0Eg0Eg0Eg0Eg0Eh0Eh0Eh0Eh0Eh0Eg0Ef0Ef0Ee0Ed0Ec0Eb0Eb0Eb0Eb0Ec0Ed0Ee0Ef0Eh0Ei0Ej0Ek0El0Em0Em0El0Ek0Ei0Ef0Eb0E^0EY0ET0EN0EH0EB0E;0E50Do0Di0Dd0D_0DZ0DU0DQ0DM0DI0DF0DB0D?0D<0D80D50D10Cm0Ci0Cd0C`0C[0CV0CQ0CM0CH0CD0C@0C?0C:0C60C60C20C00C00Bn0Bl0Bl0Bl0Bn0C00C10C30C60C:0C?0CD0CH0CL0CQ0CV0C[0Ca0Cf0Ck0Co0D30D70D:0D=0D?0DB0DC0DE0DF0DH0DI0DI0DJ0DJ0DK0DK0DK0DK0DK0DJ0DG0DC0D>0D80D30Cn0Cj0Cg0Ce0Cd0Cd0Cc0Cc0Cc0Cc0Cc0Cc0Cb0Cb0Cb0Ca0Ca0Ca0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0C`0Ca0Ca0Ca0Ca0Ca0Cb0Cb0Cb0Cb0Cb0Cb0Cb0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cc0Cb0Cb0Cb0Ca0Ca0C`0C_0C^0C]0C\\0CZ0CX0CV0CT0CR0CP0CM0CK0CH0CE0CB0C?0C<0C90C60C30Bo0Bl0Bh0Bd0B`0B\\0BW0BS0BN0BI0BD0B?0B:0B50B00Ak0Ae0A`0A[0AU0AP0AK0AE0A@0A;0A60A00@k0@f0@a0@[0@V0@Q0@K0@F0@@0@;0@60@00?k0?f0?a0?[0?V0?P0?K0?E0?@0?:0?40>o0>j0>e0>`0>[0>V0>Q0>L0>G0>B0>=0>80>30=n0=i0=d0=_0=Z0=U0=O0=J0=E0=?0=:0=50=00<k0<f0<a0<\\0<W0<R0<M0<H0<C0<>0<80<30;m0;h0;b0;\\0;W0;Q0;K0;F0;@0;;0;60;00:k0:f0:`0:[0:V0:P0:K0:E0:?0:90:309l09e09^09V09O09G09?09608n08e08\\08S08J08B08908007g07_07V07N07F07>07606n06g06_06X06Q06J06C06=06606005j05d05^05X05R05M05H05C05>05905505004l04h04d04_04[04W04S04P04L04H04D04@04<04804303o03k03g03c03_03[03W03T03P03M03I03F03D03A03?03=03;03:03903803703703603603703803:03<03>03A03D03H03L03P03U03Z03`03e03l04204904?04F04N04U04\\04d04k05205905?05E05K05P05U05Y05]05`05c05f05h05i05j05k05k05k05j05h05f05d05a05]05Z05U05Q05M05H05D05?05;05705204n04j04f04b04]04W04Q04J04C04?04;04?04C0BJ0K?0N\\0JB0AN06H06H06H06F06C06@06=06906506105m05j05f05c05`05]05[05Y05W05V05V05U05U05V05V05W05X05Z05[05\\05^05_05a05c05e05f05h05j05l05n06006106306506706906:06<06>06?06A06B06D06F06H06J06L06O06Q06T06W06Z06]06a06e06i06m07207607;07@07E07J07P07U07[07`07f07l08108708<08B08G08M08R08W08\\08b08g08k09009509:09>09B09G09K09O09R09V09Z09]09`09d09g09j09m0:00:30:60:90:;0:>0:A0:C0:E0:H0:J0:L0:O0:Q0:T0:W0:Z0:^0:b0:f0:j0:o0;40;90;=0;B0;G0;L0;P0;U0;Z0;^0;c0;g0;l0<00<40<90<=0<@0<D0<G0<J0<M0<O0<R0<T0<W0<Z0<\\0<_0<a0<d0<f0<h0<k0<m0<o0=10=30=50=70=90=;0==0=?0=A0=C0=E0=H0=J0=L0=N0=P0=R0=T0=U0=W0=X0=Y0=[0=\\0=^0=_0=a0=b0=d0=f0=g0=i0=k0=l0=n0=o0>10>20>30>40>50>60>60>70>70>80>90>90>:0>:0>;0><0>=0>>0>?0>@0>A0>B0>C0>E0>F0>H0>I0>K0>M0>O0>Q0>S0>T0>V0>X0>Y0>[0>\\0>^0>_0>`0>a0>c0>d0>e0>e0>f0>h0>i0>j0>k0>l0>l0>n0?00?10?30?60?80?;0?@0?C0?B0?C0?G0?I0?G0?H0?L0?N0?K0?M0?M0?M0?J0?K0?I0?H0?I0?M0?O0?M0?N0?R0?T0?S0?T0?U0?U0?S0?R0?Q0?R0?S0?S0?T0?T0?T0?T0?T0?S0?R0?Q0?Q0?P0?P0?P0?P0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?O0?N0?N0?N0?N0?M0?L0?L0?K0?I0?H0?F0?D0?C0?@0?>0?<0?:0?70?50?30?10>o0>m0>l0>k0>j0>i0>h0>g0>g0>f0>e0>e0>d0>d0>d0>d0>d0>d0>d0>c0>c0>c0>c0>c0>c0>c0>d0>d0>d0>d0>d0>d0>e0>e0>e0>f0>f0>g0>h0>i0>j0>k0>l0>m0>n0?00?10?20?30?40?60?70?80?90?;0?<0?=0?>0?@0?A0?B0?C0?D0?F0?G0?H0?I0?K0?L0?M0?N0?P0?Q0?R0?S0?U0?V0?W0?Y0?Z0?\\0?]0?^0?`0?a0?c0?e0?f0?h0?i0?k0?m0?n0@00@20@30@50@70@80@:0@<0@=0@?0@@0@B0@C0@D0@E0@F0@G0@H0@I0@I0@I0@I0@I0@I0@H0@G0@F0@E0@D0@B0@@0@>0@;0@90@60@30?o0?h0?b0?]0?Y0?W0?W0?Y0?]0?b0?h0?o0@50@<0@A0@F0@J0@M0@O0@Q0@S0@S0@T0@T0@T0@S0@S0@Q0@P0@O0@M0@K0@I0@G0@E0@C0@B0@@0@?0@=0@<0@:0@80@60@40@20@00?n0?l0?k0?i0?h0?g0?f0?f0?e0?d0?c0?a0?`0?_0?^0?\\0?[0?Y0?X0?W0?V0?T0?S0?Q0?P0?N0?L0?K0?I0?G0?F0?D0?C0?A0?@0??0?=0?<0?;0?:0?90?80?80?70?60?60?50?50?50?50?50?60?70?80?90?:0?<0?>0?@0?B0?D0?G0?I0?L0?N0?Q0?T0?V0?Y0?[0?^0?`0?c0?e0?g0?h0?j0?l0?m0?n0@00@10@20@30@50@60@70@90@:0@<0@>0@@0@B0@D0@F0@H0@J0@K0@M0@O0@P0@Q0@S0@T0@T0@U0@V0@W0@X0@X0@Y0@Z0@Z0@Z0@[0@[0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Y0@Y0@X0@X0@W0@V0@U0@T0@S0@Q0@P0@L0@H0@B0@<0@70@10?l0?h0?e0?e0?e0?h0?l0@10@60@=0@C0@I0@N0@Q0@T0@U0@U0@U0@T0@T0@U0@U0@U0@V0@V0@W0@W0@X0@Y0@Y0@Y0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@Z0@X0@V0@T0@Q0@N0@J0@F0@A0@=0@80@30?n0?j0?e0?a0?]0?Z0?W0?T0?Q0?O0?M0?L0?J0?I0?H0?H0?G0?G0?G0?G0?G0?H0?I0?J0?K0?L0?N0?P0?Q0?T0?V0?Y0?]0?b0?g0?o0@70@@0@J0@S0@\\0@e0@m0A40A;0AA0AF0AK0AP0AT0AW0AZ0A\\0A^0A`0Aa0Ac0Ad0Af0Ah0Aj0Al0Ao0B10B30B50B70B90B;0B<0B=0B>0B>0B>0B?0B?0B?0B?0B?0B?0B?0B?0B?0B?0B@0BA0BB0BG0BQ0Ba0C=0CW0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DD0DK0DS0D[0Dc0Dk0E20E90E@0EF0EL0ER0EX0E]0Ec0Ei0Eo0F50F<0FC0FJ0FQ0FX0F_0Ff0Fm0G40G;0GA0GG0GM0GS0GY0G^0Gc0Gh0Gm0H20H70H;0H@0HD0HI0HN0HR0HW0H[0H_0Hc0Hg0Hk0Hn0I20I30I60I80I<0I?0IA0ID0IE0IG0IH0IJ0IK0IL0IM0IN0IO0IP0IP0IQ0IQ0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IR0IS0IS0IS0IS0IS0IT0IT0IT0IT0IT0IU0IU0IU0IU0IU0IU0IU0IU0IU0IU0IV0IV0IV0IV0IV0IV0IW0IW0IW0IX0IX0IX0IY0IY0IY0IY0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IZ0IY0IY0IY0IY0IX0IX0IX0IW0IW0IW0IV0IV0IV0IU0IU0IT0IT0IS0IS0IR0IR0IQ0IP0IP0IO0IN0IM0IK0IJ0IH0IG0IG0IG0IE0IE0IE0IC0IC0IC0IC0I@0I>0I;0I80I80I80I50I20I20I20Ho0Ho0Hl0Hl0Hl0Hl0Hh0Hh0He0Ha0Ha0Ha0Ha0Ha0H^0HZ0HZ0HW0HW0HW0HW0HW0HS0HS0HS0HS0HO0HL0HH0HH0HD0HD0HD0HD0HA0HA0H=0H=0H=0H90H50H50H50H50H20H10H00Gn0Gm0Gm0Gm0Gm0Gm0Gl0Gi0Gf0Ge0Gd0Gb0G_0G^0G^0G]0G[0GX0GV0GU0GS0GQ0GO0GN0GM0GK0GI0GH0GF0GC0G?0G=0G:0G50G10Fm0Fk0Fk0Fj0Fg0Fd0Fa0F\\0FY0F]0Fd0Fj0Fm0Fo0G40G80G<0GB0GG0GK0GP0GV0G\\0Gb0Gh0Gm0H10H30H50H50H50H40H30H20H00Gm0Gi0Ge0G`0G[0GU0GN0GH0GA0G90G00Ff0F^0FW0FP0FI0FB0F;0F40Em0Ee0E]0ET0EM0EG0EA0E:0E30Dm0Dh0Dc0D`0D`0Da0Dc0De0De0Db0D^0DY0DV0DS0DQ0DO0DM0DK0DI0DF0DD0DA0D>0D<0D90D70D50D30D10Cn0Ch0C`0CV0CN0CG0CA0C>0C=0C>0CA0CE0CI0CL0CO0CP0CQ0CP0CN0CL0CJ0CI0CH0CH0CH0CG0CE0CC0C@0C=0C:0C70C40C20C00Bo0Bm0Bl0Bk0Bj0Bh0Bi0C20C?0CK0CT0C\\0Cc0Ck0D20D60D80D90D90D90D90D80D60D40D00Cm0Cj0Cf0Cb0C^0CZ0CU0CN0CH0CA0C=0C60Bn0Bc0BY0BQ0BK0BD0B?0B;0B60B10B00B10B50B90B:0B30Ah0Ae0Ad0Ac0Ab0Aa0A`0A`0A_0A_0A_0A_0A_0A_0A^0A^0A^0A^0A^0A^0A^0A^0A]0A]0A]0A]0A^0A^0A_0A_0A_0A_0A`0A`0A`0A`0A`0A`0Aa0Aa0Ab0Ac0Ad0Ae0Ag0Ah0Aj0Al0An0B10B30B60B90B=0B@0BE0BI0BN0BT0BY0B_0Be0Bk0C10C70C>0CE0CL0CU0Ca0D60DU0E20E;0E80E50E50E70E60E20Dn0Dj0Di0Dj0Dn0E20E=0EQ0Eh0F<0FM0FV0FY0FW0FS0FP0FP0FQ0FU0FZ0F^0Fe0Fm0G50G=0GF0GN0GW0G`0Gi0H10H90HA0HG0HL0HR0HV0H[0H_0Hc0Hg0Hj0Hm0I00I20I50I60I80I90I:0I;0I;0I<0I<0I<0I<0I<0I<0I<0I;0I;0I:0I:0I90I80I70I60I40I10Ho0Hk0Hg0Hb0H]0HV0HP0HI0HA0H:0H30Gm0Gh0Ge0HI0Ha0Ho0I30I30I30I30I30I30I30I30I30I30I30I30I30I30I30I30I30I20I20I10I20I30I30I30I40I40I30I30I30I20I20I10I00Ho0Hn0Hm0Hl0Hk0Hj0Hh0Hg0He0Hd0Hb0Hb0Hb0Hb0Hb0Hb0Hb0Ha0H`0H^0H[0HY0HX0HW0HT0HQ0HP0HN0HK0HH0HD0HA0H?0H=0H;0H:0H80H70H40H10Gn0Gk0Gg0Gb0G^0GY0GU0GP0GL0GG0GB0G=0G70G10Fl0Ff0F`0FX0FP0FE0F:0En0Ed0E[0ET0EO0EK0EH0EG0EG0EH0EK0EO0ER0ET0EU0ET0ET0EU0EX0E]0Ec0Ej0F00F60F<0FA0FF0FI0FJ0FK0FK0FK0FI0FH0FF0FC0F@0F<0F70F30En0Ei0Ec0E]0EV0EP0EI0EB0E;0E40Dl0Df0D_0DZ0DV0DS0DR0DQ0DP0DN0DI0D@0D60Ck0Cb0C\\0CX0CS0CO0CK0CG0CD0CB0C?0C;0C80C50C20Bo0Bm0Bj0Bg0Be0Bd0Bd0Bc0Bc0Bc0Bc0Bc0Bb0Bb0Ba0Ba0Bb0Be0Bk0C10C70C;0C=0C>0C=0C;0C90C80C80C80C50C20Bm0Bg0B`0BY0BQ0BI0BA0B90B10Ah0A^0AT0AJ0AB0A;0A60A20@o0@m0@m0@m0@l0@i0@c0@Z0@R0@K0@F0@A0@>0@:0@80@50@30@10?o0?m0?k0?j0?i0?g0?f0?d0?c0?a0?_0?^0?]0?]0?]0?^0?a0?f0?l0@40@<0@@0@D0@H0@L0@O0@Q0@S0@T0@U0@U0@U0@U0@T0@S0@R0@P0@N0@L0@J0@G0@D0@A0@=0@:0@60@30?o0?k0?f0?a0?[0?U0?N0?F0?=0?50>l0>d0>]0>W0>R0>M0>J0>G0>D0>B0>@0>>0><0>:0>80>70>50>40>20>10>00=o0=n0=m0=l0=k0=j0=i0=i0=h0=h0=g0=g0=g0=f0=f0=f0=f0=f0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=e0=f0=f0=f0=g0=g0=g0=h0=h0=i0=j0=k0=l0=m0=o0>00>30>50>80><0>?0>C0>H0>L0>Q0>U0>Z0>_0>c0>h0>l0?00?40?80?;0??0?C0?G0?L0?R0?Y0?c0@00@>0@K0@W0@a0@i0A00A60A;0A@0AE0AJ0AN0AQ0AU0AX0A[0A_0Ab0Ae0Ah0Aj0Am0Ao0B20B40B70B90B<0B>0B@0BA0BC0BE0BF0BH0BJ0BL0BN0BO0BQ0BQ0BP0BO0BM0BL0BK0BL0BM0BO0BQ0BS0BT0BV0BW0BX0BY0BZ0BZ0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0B[0BZ0BY0BY0BX0BW0BV0BU0BT0BS0BS0BR0BR0BR0BR0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BQ0BR0BR0BS0BS0BT0BU0BU0BV0BV0BK0BN0BL0BK0BO0BI0BA0BL0BE0BD0BB0BE0BI0BI0BI0BI0BH0BE0BH0BJ0BK0BI0BF0BG0BC0B@0BE0BJ0BK0BE0BF0BE0BD0BC0BC0BC0BC0BD0BE0BG0BH0BJ0BK0BM0BO0BP0BR0BS0BU0BV0BW0BW0BX0BX0BX0BX0BY0BY0BZ0B[0B]0B`0Bc0Bg0Bj0Bm0Bo0C10C30C40C50C60C60C60C70C70C70C70C70C70C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C60C80C<0C?0C@0CA0C;0C60C<0C30C60C60C50C60C20C20C20C50C50C50C20C20C20C90C@0C@0C>0C>0C90C70C80C:0C=0C>0C>0C>0C80C80C50C40C30C50C80C90C80C50C30C50C<0C@0C?0CA0C?0C;0C60C70C60C;0C@0CA0CB0CC0CB0CB0CB0CA0CA0CB0CB0CF0CF0CH0CF0CD0CC0CB0CB0CB0C@0CA0CE0CH0CG0CA0C?0C;0C>0CA0CB0CA0C=0C:0C50C70C90C90C70C30Bo0C20C40C70C:0C<0C=0C<0C<0C<0C;0C@0CA0CH0CP0CO0CM0CK0CD0C@0C@0CC0CD0CC0CC0C<0C;0C:0C70C90C=0C@0C?0CC0CE0CG0CC0C?0C=0C>0C60C10Bo0C20C80C<0C:0C90C60C40C40C90C;0C<0C;0C;0C70C50C20C20C40C70C80C80C70C60C90C?0C@0CE0CA0CB0C@0C@0C=0C80C50C30C30C50C30C10C30C40C20Bo0Bm0Bn0Bo0C00C60C90C<0C=0C<0C<0C<0C=0C<0C<0C<0C<0C<0C<0C<0C<0C;0C;0C:0C:0C70C20Bo0C20C60C90C;0C<0C<0C:0C50C70C90C=0CA0CD0C>0C80C50C30C90C?0C?0C>0C80C00Bn0C00C30C20C20C20C20C20C20C20C20C20C30C50C60C80C90C:0C;0C<0C=0C>0C>0C?0C?0C@0C@0CA0CA0CA0CA0CA0CA0CA0CA0CA0CA0CA0CB0CB0CB0CB0CC0CC0CD0CE0CF0CG0CH0CI0CK0CL0CN0CO0CQ0CS0CT0CV0CX0CY0C[0C\\0C]0C^0C_0C`0Ca0Cb0Cb0Cb0Cb0Cb0Cb0Cb0Cb0Ca0Ca0Ca0C`0C`0C_0C_0C_0C_0C_0C_0C_0C_0C`0Ca0Cc0Cd0Cg0Cj0Cm0D10D40D80D:0D<0D=0D>0D>0D>0D>0D:0D;0D<0D;0D:0D;0D=0DA0DF0DJ0DJ0DD0DC0DE0DD0DE0DG0DH0DH0DI0DK0DK0DL0DL0DO0DN0DP0DR0DR0DS0DT0DV0DV0DV0DV0DV0DV0DV0DV0DV0DV0DV0DV0DV0DV0DW0DX0DX0DY0DY0DZ0D[0D\\0D]0D^0D^0D`0Da0Dc0Df0Dh0Dk0Dn0E10E40E60E80E:0E<0E?0EB0ED0EG0EJ0EM0EP0ER0EV0EY0E\\0E_0Eb0Ee0Ej0Em0F10F50F80F;0F>0FA0FC0FE0FG0FH0FI0FJ0FK0FL0FM0FN0FO0FP0FR0FS0FU0FW0FY0F[0F^0F`0Fb0Fd0Ff0Fh0Fi0Fl0Fn0G10G40G:0G?0GE0GJ0GO0GT0GX0G\\0G_0Gc0Gf0Gh0Gk0Gm0Go0H10H20H40H50H60H60H70H80H80H90H90H:0H<0H>0H?0HA0HC0HD0HF0HG0HI0HJ0HK0HM0HN0HO0HQ0HR0HT0HW0HY0H\\0H^0H`0Hc0He0Hg0Hi0Hk0Hl0Hn0I00I10I20I50I70I:0I=0I?0IA0IC0IE0IG0IH0IJ0IL0IO0IR0IU0IX0I[0I^0I`0Id0Ig0Ik0In0J20J50J70J:0J=0J?0JA0JD0JH0JK0JN0JQ0JT0JW0JY0J\\0J_0Jc0Jf0Jj0Jm0K00K30K50K90K=0KA0KE0KH0KL0KO0KQ0KV0KZ0K^0Kb0Ke0Ki0Kl0Ko0L20L40L60L:0L>0LA0LD0LG0LJ0LM0LO0LR0LT0LV0LX0LY0L[0L]0L^0L`0Lb0Ld0Lf0Lg0Li0Lj0Lk0Lm0Ln0M00M10M20M30M40M60M70M80M:0M;0M<0M=0M?0MA0MB0MD0MF0MG0MH0MJ0MK0ML0MN0MP0MR0MU0MV0MX0MZ0M\\0M]0M_0M`0Ma0Mc0Me0Mg0Mi0Mj0Ml0Mm0Mo0N00N10N20N40N50N60N70N80N90N:0N;0N<0N<0N=0N>0N?0N@0NA0NB0NB0NC0NC0NC0ND0ND0NE0NE0NE0NE0NF0NF0NF0NF0NF0NF0NG0NG0NG0NG0NG0NG0NH0NJ0NM0NO0NR0NU0NW0N[0N^0Na0Nd0Ng0Nj0Nl0No0No0O80O@0OA0OC0OF0OF0OD0OF0OK0OL0OO0OS0OU0OS0OX0O[0O\\0O_0O_0Ob0Oi0Oo0P30P70P;0P>0PA0PC0PF0PG0PJ0PL0PN0PP0PQ0PS0PT0PU0PV0PW0PX0PY0PY0P[0P\\0P]0P^0P_0Pa0Pb0Pc0Pc0Pd0Pe0Pf0Ph0Pi0Pj0Pk0Pl0Pn0Q00Q20Q40Q80Q;0Q?0QD0QJ0QO0QT0QY0Q_0Qe0Qk0R00R50R90R?0RD0RI0RP0RW0R]0Rc0Rh0S00S70S>0SE0SK0SQ0SX0S_0Sf0Sm0T30T80T=0TB0TG0TL0TQ0TV0TZ0T]0Ta0Tc0Tf0Th0Tj0Tl0Tn0To0U00U10U20U30U40U50U60U70U80U90U;0U=0U?0UA0UC0UF0UI0UM0UP0UT0UX0U\\0Ua0Ue0Ui0Um0V10V50V80V<0V?0VA0VC0VE0VF0VG0VG0VH0VH0VG0VG0VF0VF0VE0VD0VC0VB0VA0VA0V@0V?0V?0V>0V>0V>0V>0V>0V=0V=0V=0V=0V=0V=0V=0V=0V>0V>0V?0V?0V@0VA0VA0VB0VB0VC0VD0VD0VE0VF0VF0VG0VH0VI0VJ0VK0VL0VM0VO0VP0VR0VS0VU0VW0VY0V\\0V^0V`0Vc0Vf0Vi0Vk0Vn0W10W40W70W:0W=0W?0WB0WE0WG0WJ0WL0WN0WP0WR0WT0WU0WW0WX0WZ0W[0W\\0W^0W_0W`0Wa0Wb0Wb0Wc0Wd0We0Wg0Wh0Wj0Wl0Wn0X00X20X50X70X80X:0X<0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X>0X=0X;0X:0X90X80X60X40X10Wm0Wj0Wg0Wd0Wa0W_0W\\0WY0WW0WU0WQ0WO0WL0WH0WC0W@0W>0W<0W;0W;0W;0W=0W=0W@0WB0WE0WI0WM0WR0WU0WX0WY0WY0WZ0WZ0WZ0WZ0WZ0WZ0W[0W]0Wa0Wg0Wh0Wk0Wn0Wo0X00X10X10X10X10X10X40X:0XA0XG0XM0XP0XQ0XS0XU0XU0XV0XV0XV0XV0XV0XV0XU0XP0XK0XG0XD0XB0XB0XB0XB0XB0XB0X?0X;0X80X40X30X10Wo0Wm0Wl0Wk0Wk0Wj0Wj0Wj0Wj0Wj0Wk0Wk0Wl0Wn0X20X60X;0X?0X@0XA0XB0XC0XD0XE0XF0XG0XH0XI0XJ0XK0XL0XN0XO0XP0XQ0XS0XT0XU0XV0XW0XY0XZ0X[0X\\0X]0X^0X^0X_0X`0Xa0Xa0Xb0Xc0Xe0Xf0Xg0Xc0X`0X^0X]0X\\0X\\0X\\0X\\0X\\0X\\0X\\0X\\0X]0X]0X_0Xc0Xg0Xn0Y40Y90Y:0Y:0Y;0Y<0Y<0Y<0Y=0Y<0Y<0Y<0Y<0Y;0Y80Y30Xn0Xg0Xc0X_0X\\0XZ0XZ0XY0XY0XY0XY0XY0XZ0X\\0X^0Xb0Xf0Xk0Xo0Y20Y30Y40Y50Y70Y80Y90Y:0Y<0Y=0Y>0Y?0Y@0YA0YB0YC0YC0YD0YD0YD0YD0YC0YC0YB0YB0YA0Y@0Y?0Y>0Y<0Y;0Y:0Y90Y80Y70Y60Y60Y50Y50Y50Y50Y50Y50Y50Y60Y60Y70Y80Y90Y:0Y<0Y=0Y>0Y?0YA0YB0YC0YD0YF0YG0YH0YI0YJ0YK0YL0YM0YN0YO0YO0YP0YP0YQ0YQ0YR0YR0YS0YS0YT0YT0YU0YV0YW0YX0YY0YZ0Y\\0Y^0Y`0Yb0Ye0Yh0Yk0Yn0Z10Z50Z80Z<0Z?0ZG0ZQ0Z\\0Zh0[40[@0[N0[U0[]0[f0[k0\\30\\80\\<0\\A0\\D0\\I0\\L0\\P0\\S0\\U0\\W0\\X0\\Y0\\Y0\\Y0\\Y0\\Y0\\Y0\\X0\\X0\\W0\\V0\\U0\\R0\\O0\\L0\\K0\\G0\\D0\\?0\\<0\\60\\30[n0[j0[h0[c0[_0[\\0[V0[S0[M0[F0[A0[:0[30Zo0Zg0Za0Z[0ZW0ZS0ZP0ZO0ZO0ZO0ZP0ZR0ZS0ZU0ZX0ZZ0Z[0Z\\0Z]0Z^0Z^0Z^0Z]0Z\\0Z]0Z]0Z_0Z`0Zb0Zd0Ze0Zf0Zf0Zg0Zg0Zh0Zh0Zh0Zi0Zj0Zl0Zo0[30[80[=0[B0[F0[G0[I0[J0[K0[K0[L0[L0[M0[M0[M0[L0[L0[K0[K0[J0[I0[H0[G0[E0[D0[B0[A0[?0[=0[;0[:0[80[60[50[40[30[20[10[10[10[20[20[30[40[60[70[90[;0[=0[@0[B0[D0[G0[I0[L0[N0[R0[V0[[0[`0[e0[j0[o0\\50\\;0\\?0\\D0\\I0\\P0\\X0\\_0\\g0\\o0]70]?0]G0]N0]T0]X0][0]]0]]0]]0]]0]\\0]\\0][0]Z0]Y0]W0]U0]R0]L0]G0]C0]@0];0]70]10\\m0\\e0\\a0\\Y0\\T0\\Q0\\M0\\G0\\A0\\80\\10[m0[j0[g0[f0[e0[e0[e0[f0[j0[n0\\10\\50\\70\\90\\:0\\:0\\:0\\:0\\80\\60\\40\\10[n0[k0[h0[d0[a0[^0[Z0[X0[V0[U0[T0[U0[W0[X0[Y0[Y0[Y0[X0[W0[U0[S0[P0[M0[J0[G0[D0[A0[?0[>0[=0[=0[=0[>0[?0[@0[A0[B0[B0[C0[C0[C0[B0[A0[@0[>0[<0[;0[<0[>0[@0[C0[E0[I0[L0[Q0[V0[[0[`0[f0[k0[o0\\30\\70\\90\\;0\\<0\\>0\\>0\\>0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\?0\\>0\\=0\\;0\\80\\40\\10[m0[i0[e0[b0[`0[^0[]0[\\0[[0[[0[[0[[0[\\0[\\0[]0[]0[]0[]0[^0[^0[^0[^0[^0[^0[^0[`0[d0[h0[l0[o0\\10\\20\\30\\40\\40\\40\\50\\50\\50\\60\\70\\90\\;0\\=0\\A0\\D0\\F0\\H0\\H0\\I0\\I0\\I0\\I0\\I0\\I0\\I0\\H0\\G0\\F0\\C0\\@0\\=0\\:0\\80\\60\\40\\20[o0[m0[k0[i0[g0[e0[c0[a0[_0[^0[\\0[[0[Z0[Y0[Y0[X0[X0[X0[Y0[Y0[Z0[Z0[[0[]0[^0[_0[a0[c0[e0[g0[i0[k0[m0\\00\\20\\40\\70\\90\\;0\\>0\\@0\\B0\\E0\\G0\\J0\\M0\\O0\\R0\\U0\\X0\\\\0\\_0\\c0\\h0\\l0]10]60]<0]B0]I0]O0]W0]^0]f0]n0^60^?0^G0^P0^Y0^b0^k0_30_<0_D0_L0_S0_[0_b0_h0_m0`30`80`<0`@0`D0`G0`J0`M0`O0`Q0`S0`T0`U0`V0`W0`W0`X0`X0`Y0`Y0`Y0`Y0`Y0`Y0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`Z0`[0`[0`]0`^0`b0`g0`o0a70a@0aI0aP0aV0a[0a^0a`0ab0ac0ad0ad0ad0ad0ad0ad0ac0ac0ac0ac0ac0ac0ab0ab0aa0a`0a_0a]0a[0aY0aV0aS0aO0aK0aF0a@0a:0a40`m0`f0``0`Z0`U0`Q0`N0`L0`L0`L0`L0`L0`L0`L0`L0`M0`N0`O0`N0`N0`M0`M0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`L0`K0`K0`K0`J0`J0`I0`H0`G0`F0`D0`B0`A0`?0`=0`;0`90`70`50`30`10_o0_n0_l0_k0_i0_h0_g0_f0_e0_d0_c0_c0_b0_b0_a0_a0_a0_a0_a0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_`0_a0_a0_b0_b0_c0_d0_f0_g0_i0_j0_l0_o0`10`40`60`90`<0`?0`B0`F0`I0`L0`P0`S0`V0`Y0`\\0`_0`b0`d0`f0`h0`j0`l0`m0`n0`n0`o0`o0`o0`n0`n0`m0`k0`j0`h0`f0`d0`a0`_0`\\0`Y0`V0`S0`P0`M0`J0`G0`E0`B0`?0`=0`;0`90`70`50`40`30`20`10`00_o0_o0_n0_n0_n0_n0_m0_m0_m0_l0_l0_k0_j0_j0_i0_h0_g0_e0_d0_c0_a0_`0__0_]0_[0_Z0_X0_V0_U0_S0_Q0_P0_N0_M0_L0_K0_I0_I0_H0_G0_F0_E0_D0_C0_A0_A0_@0_?0_>0_=0_<0_<0_;0_;0_;0_;0_;0_;0_;0_;0_;0_;0_;0_;0_;0_;0_;0_<0_<0_=0_=0_>0_?0_@0_B0_C0_E0_G0_I0_K0_N0_P0_S0_U0_X0_Z0_\\0__0_`0_b0_c0_e0_f0_g0_h0_i0_k0_l0_m0_o0`00`20`40`60`80`:0`<0`>0`@0`B0`D0`F0`G0`I0`K0`M0`O0`Q0`S0`U0`W0`Y0`[0`]0`_0`b0`c0`e0`g0`h0`j0`k0`l0`l0`m0`m0`m0`m0`m0`m0`l0`k0`j0`j0`i0`h0`f0`e0`d0`b0`a0``0`^0`]0`[0`Z0`X0`V0`T0`R0`P0`N0`L0`I0`G0`D0`A0`>0`;0`80`50`20_n0_k0_g0_d0_`0_\\0_Y0_U0_R0_N0_J0_G0_C0_?0_<0_80_40_00^l0^g0^c0^_0^Z0^U0^Q0^L0^G0^C0^>0^:0^60^20]m0]i0]e0]b0]^0]Z0]W0]T0]P0]M0]J0]G0]D0]A0]>0];0]80]60]30]00\\m0\\j0\\h0\\e0\\b0\\`0\\]0\\[0\\X0\\V0\\T0\\Q0\\O0\\M0\\K0\\I0\\H0\\F0\\D0\\B0\\@0\\?0\\=0\\;0\\:0\\90\\70\\60\\50\\40\\30\\20\\10\\00[o0[n0[n0[m0[m0[l0[l0[l0[k0[k0[j0[i0[h0[g0[f0[e0[c0[a0[_0[]0[Z0[X0[U0[R0[P0[M0[J0[H0[E0[B0[@0[>0[<0[:0[80[60[50[40[30[20[20[20[30[30[40[50[60[70[80[:0[;0[=0[?0[A0[C0[E0[G0[J0[M0[O0[R0[U0[X0[[0[^0[b0[f0[j0[n0\\20\\60\\:0\\=0\\A0\\E0\\H0\\L0\\P0\\T0\\W0\\[0\\_0\\c0\\h0\\l0]00]40]80]<0]@0]D0]I0]M0]R0]V0][0]`0]e0]i0]n0^30^70^;0^?0^B0^E0^H0^K0^M0^O0^P0^Q0^R0^R0^R0^R0^Q0^P0^O0^N0^L0^J0^H0^F0^C0^A0^>0^;0^90^60^30^10]n0]l0]i0]f0]d0]a0]^0][0]X0]T0]P0]L0]H0]D0]@0]<0]80]50]10\\n0\\k0\\h0\\d0\\a0\\]0\\Y0\\T0\\P0\\J0\\E0\\@0\\:0\\50[o0[i0[c0[]0[W0[Q0[J0[C0[<0[50Zn0Zg0Z_0ZX0ZP0ZI0ZA0Z90Z20Yj0Yb0YZ0YQ0YI0Y@0Y70Xn0Xe0X\\0XR0XH0X>0X30Wi0W_0WT0WJ0W@0W60Vm0Vc0VY0VO0VE0V;0V00Ue0UZ0UO0UD0U90Tn0Tc0TX0TM0TB0T70Sl0Sa0SV0SL0SA0S70Rm0Rd0R\\0RU0RN0RI0RD0R?0R<0R90R70R50R50R50R50R50R60R70R80R:0R;0R=0R@0RC0RG0RL0RR0RX0R`0Ri0S30S>0SI0SU0Sb0Sn0T;0TH0TT0T`0Tk0U50U=0UD0UI0UN0UP0UQ0UP0UM0UJ0UE0U@0U;0U50U00Tl0Th0Td0Tb0Ta0T`0Ta0Tb0Td0Tg0Tk0U00U50U<0UC0UJ0UR0U[0Ud0Um0V70VA0VK0VV0V`0Vk0W50W@0WJ0WT0W]0Wf0Wo0X70X>0XD0XJ0XO0XS0XU0XW0XX0XY0XX0XV0XT0XR0XO0XK0XG0XC0X?0X;0X70X30X00Wm0Wk0Wi0Wh0Wi0Wj0Wk0Wl0Wn0X10X40X80X<0XA0XG0XL0XS0XY0X`0Xg0Xo0Y70Y?0YG0YO0YW0Y_0Yg0Yo0Z70Z>0ZE0ZL0ZS0ZY0Z_0Ze0Zj0Zo0[30[70[;0[>0[A0[D0[F0[G0[I0[I0[I0[I0[H0[F0[C0[@0[<0[70[20Zm0Zh0Zc0Z^0ZZ0ZV0ZS0ZO0ZO0ZP0ZQ0ZT0ZX0Z\\0Za0Ze0Zj0Zm0[00[20[30[50[50[60[70[70[70[70[60[60[60[60[50[50[50[40[40[40[40[30[30[30[20[20[10Zo0Zm0Zk0Zh0Ze0Za0Z^0Z[0ZX0ZU0ZR0ZP0ZM0ZK0ZI0ZG0ZD0ZB0Z@0Z=0Z:0Z70Z30Yo0Yj0Yf0Ya0Y\\0YW0YQ0YL0YG0YA0Y<0Y70Y10Xl0Xf0Xa0X[0XU0XN0XH0XA0X:0X30Wl0Wd0W]0WU0WN0WF0W?0W70W00Vh0Va0VY0VR0VK0VC0V<0V50Uo0Uh0Uc0U]0UX0UT0UQ0UN0UL0UK0UK0UL0UK0UI0UG0UD0UB0U@0U>0U<0U90U60U20To0Tl0Ti0Tg0Te0Tc0Tb0Ta0T`0T_0T^0T]0T\\0T\\0T\\0T\\0T\\0T\\0T\\0T\\0T\\0T\\0T]0T]0T^0T^0T`0Tc0Tg0Tl0U30U:0UA0UG0UK0UN0UO0UO0UP0UP0UP0UP0UQ0UU0UZ0U_0Ud0Uj0Uo0V30V50V70V80V90V90V90V90V90V90V90V:0V:0V:0V;0V;0V<0V<0V>0V@0VD0VI0VP0VV0VY0VZ0VZ0VY0VY0VY0VY0VZ0V\\0V^0V_0V`0Va0Va0Va0Va0Va0Va0Va0Va0Va0Vb0Vb0Vc0Vd0Vf0Vj0Vn0W20W70W:0W<0W=0W=0W=0W=0W>0W>0W>0W?0W?0W?0W?0W?0W?0W?0W?0W?0W>0W>0W>0W?0W?0W?0W>0W>0W>0W>0W?0W@0W@0WB0WD0WH0WM0WT0W[0W`0We0Wg0Wi0Wj0Wj0Wj0Wj0Wk0Wk0Wk0Wk0Wk0Wk0Wk0Wj0Wj0Wj0Wi0Wi0Wj0Wk0Wo0X30X90X?0XD0XH0XJ0XL0XL0XL0XK0XK0XJ0XK0XK0XL0XL0XL0XM0XN0XO0XO0XP0XR0XT0XX0X[0X_0Xb0Xd0Xg0Xj0Xm0Y10Y40Y70Y90Y;0Y;0Y<0Y;0Y:0Y:0Y:0Y<0Y?0YB0YF0YJ0YM0YO0YQ0YS0YS0YT0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YU0YT0YT0YT0YT0YT0YT0YT0YT0YT0YT0YS0YS0YS0YR0YR0YQ0YQ0YP0YO0YO0YN0YM0YL0YL0YK0YJ0YH0YG0YF0YD0YC0YA0Y?0Y<0Y:0Y80Y50Y30Y00Xn0Xk0Xi0Xg0Xf0Xd0Xc0Xb0Xa0Xa0X`0X`0X`0X`0X`0Xa0Xa0Xa0Xb0Xb0Xb0Xc0Xc0Xc0Xc0Xc0Xd0Xd0Xc0Xc0Xc0Xc0Xc0Xb0Xb0Xa0Xa0X`0X`0X`0X_0X_0X^0X^0X^0X^0X^0X^0X^0X^0X^0X]0X]0X\\0X[0XY0XW0XT0XQ0XN0XK0XH0XE0XB0X@0X=0X;0X80X50X20Wn0Wj0We0W`0W[0WW0WR0WN0WK0WI0WH0WH0WL0WP0WW0W_0Wh0X10X;0XD0XM0XT0X[0Xa0Xf0Xj0Xm0Y00Y20Y40Y60Y80Y90Y;0Y<0Y>0Y?0YA0YB0YD0YG0YI0YL0YP0YS0YW0Y[0Y_0Yb0Yg0Yk0Yo0Z40Z80Z=0ZA0ZF0ZJ0ZN0ZR0ZW0Z[0Z_0Zc0Zg0Zj0Zm0[00[10[20[00Zm0Zf0Z\\0ZM0Z80Y`0Y<0XM0WQ0VN0U10SK0QP0O?0LH0IE0E^0Aa0=[09>04X", objX:"533.333333333321,99668.0797101449,1433.33333333333,10523.3333333333,27780,42510,56346.6666666666,65950,77906.6666666667,87420,99271.847826087", objY:"1164.05797101449,2629.42028985507,1064.92753623188,1804.92753623188,1088.55072463768,1267.39130434783,1640.72463768116,1194.05797101449,2574.34782608696,3097.82608695652,2660.57971014493", objType:"0,1,2,3,4,5,6,7,8,9,10"});
}
stop();
(() * ());// not popped
while (i < 4) {
container.push({x:0, y:0});
i++;
}
var bonusQue = new Array();
var points = new Array();
i = 0;
while (i <= 4) {
ob_sx[i + 1] = Math.cos(connectionRot[i]) * connectionDist[i];
ob_sy[i + 1] = Math.sin(connectionRot[i]) * connectionDist[i];
points.push({pos:(Object = {x:0, y:0}), acc:(Object = {x:0, y:0}), vel:(Object = {x:0, y:0}), posNext:(Object = {x:0, y:0}), accNext:(Object = {x:0, y:0}), velNext:(Object = {x:0, y:0}), velCorrection:(Object = {x:0, y:0}), rotPos:0, rotAcc:0, rotVel:0, tempRot:0, tireRot:0, rotPosNext:0, rotAccNext:0, rotVelNext:0, rotNotAbsorbed:0, mass:1, surfaceBounciness:0.8, connectionNum:0, connections:(Array = []), connectionRef:(Array = []), connectionRot:(Array = []), xd:0, yd:0, dist:0, thisNum:i, aDist:0, angle:0, Radius:0, Friction:1, targRot:0, grounded:0, groundAngle:0, groundSurface:(Object = {x:0, y:0})});
i++;
}
points[0].Friction = 1.1;
points[0].Radius = 15;
points[1].Radius = 12;
points[2].Radius = 12;
points[1].targRot = Math.PI;
i = 0;
while (i < connectionsA.length) {
points[connectionsA[i]].connections.push(connectionsB[i]);
points[connectionsA[i]].connectionRef.push(i);
points[connectionsA[i]].connectionRot.push((connectionRot[i] + Math.PI) % (Math.PI*2));
points[connectionsA[i]].connectionNum++;
points[connectionsB[i]].connections.push(connectionsA[i]);
points[connectionsB[i]].connectionRef.push(i);
points[connectionsB[i]].connectionRot.push(connectionRot[i]);
points[connectionsB[i]].connectionNum++;
i++;
}
qualities = ["low", "medium", "high", "best"];
thisMS = 0;
lastMS = 0;
FrameRate = 0;
curQuality = 3;
ii = 0;
sloMo = false;
_root.createEmptyMovieClip("engine", 2000);
i = 1;
while (i <= 80) {
_root.engine["engineSound" + i] = new Sound();
_root.engine["engineSound" + i].attachSound(("Mixdown (" + i) + ").wav");
i++;
}
lastES = 1;
engineRunning = false;
engineSpeed = 0;
engineLoad = 0;
curEngineSound = 0;
lrB = 0;
truckPhysics = function (T) {
lrB = lrB + (((20 * Math.abs(lr)) - lrB) / 2);
engineSpeed = Math.abs(Math.round(_root.points[0].tireRot)) + Math.round(lrB);
if (sloMo) {
sloMoCnt++;
if (sloMoCnt == 12) {
sloMoCnt = 0;
} else {
return(undefined);
}
}
if (RoofHitCounter) {
RoofHitCounter--;
if (((RoofHitCounter == 30) && (_root.points[0].grounded)) && (_root.upsideDown)) {
showNormalMessage("You have rolled over. Start over from the last checkpoint.", true, true);
}
}
rightNow = new Date();
thisMS = rightNow.getTime();
FrameRate = 1000 / (thisMS - lastMS);
lastMS = thisMS;
boostCharge = boostCharge + 0.05;
boostCharge = Math.min(boostCharge, 10);
if (boostCharge == 10) {
boostMeter.chargedMessage._visible = (Math.round(thisMS / 300) % 2) == 1;
} else {
boostMeter.chargedMessage._visible = false;
}
boostMeter.meterMask._width = boostCharge * 10;
ii = 0;
while (ii <= 2) {
with (points[ii]) {
posNext.x = pos.x;
posNext.y = pos.y;
accNext.x = acc.x;
accNext.y = acc.y;
velNext.x = vel.x;
velNext.y = vel.y;
rotPosNext = rotPos;
rotAccNext = 0;
rotVelNext = rotVel;
velCorrection.x = 0;
velCorrection.y = 0;
}
ii++;
}
calculateForces(1);
i = 0;
while (i <= 2) {
with (points[i]) {
vel.x = velNext.x;
vel.y = velNext.y;
pos.x = posNext.x;
pos.y = posNext.y;
acc.x = accNext.x;
acc.y = accNext.y;
rotPos = rotPosNext;
rotAcc = 0;
rotVel = rotVelNext;
}
i++;
}
if (points[0].pos.x < objX[0]) {
i = 0;
while (i <= 2) {
with (points[i]) {
vel.x = 0;
pos.x++;
}
i++;
}
}
xv = points[1].pos.x - points[2].pos.x;
yv = points[1].pos.y - points[2].pos.y;
cur_truck_rot = Math.atan2(yv, xv);
body_bg._rotation = (body._rotation = (cur_truck_rot * 57.2957795) + 180);
};
calculateForces = function (T) {
ii = 0;
while (ii <= 2) {
with (points[ii]) {
accNext.x = 0;
accNext.y = 0;
if (((thisNum == 1) || (thisNum == 2)) && (grounded)) {
accNext.x = (Math.cos(groundAngle) * _root.lr) * (_root.truckAccel + boostRelease);
accNext.y = (Math.sin(groundAngle) * _root.lr) * (_root.truckAccel + boostRelease);
_root.points[0].x = _root.points[0].x + ((Math.cos(groundAngle) * _root.lr) * (_root.truckAccel + boostRelease));
_root.points[0].y = _root.points[0].y + ((Math.sin(groundAngle) * _root.lr) * (_root.truckAccel + boostRelease));
}
boostRelease = boostRelease * 0.95;
boostRelease = Math.max(0, boostRelease);
accNext.y = accNext.y + _root.gravity;
if (_root.points[0].grounded) {
velNext.x = _root.points[0].velNext.x;
velNext.y = _root.points[0].velNext.y;
}
velNext.x = velNext.x + (accNext.x * T);
velNext.y = velNext.y + (accNext.y * T);
velNext.x = velNext.x * _root.DirectionalDrag;
velNext.y = velNext.y * _root.DirectionalDrag;
if (grounded) {
TempAngle = Math.atan2(velNext.y, velNext.x) - halfPI;
TempVel = (Math.sin(groundAngle - TempAngle) * Math.sqrt((velNext.x * velNext.x) + (velNext.y * velNext.y))) / Friction;
if (TempVel > ((Math.random() * 50) + 3)) {
createEfx(1, posNext.x + (Math.cos(groundAngle + halfPI) * Radius), posNext.y + (Math.sin(groundAngle + halfPI) * Radius), 0, 0);
}
velNext.x = (Math.cos(groundAngle) * TempVel) * _root.braking;
velNext.y = (Math.sin(groundAngle) * TempVel) * _root.braking;
}
}
ii++;
}
xd1 = (_root.points[1].posNext.x + _root.points[1].velNext.x) - (_root.points[0].posNext.x + _root.points[0].velNext.x);
yd1 = (_root.points[1].posNext.y + _root.points[1].velNext.y) - (_root.points[0].posNext.y + _root.points[0].velNext.y);
xd2 = (_root.points[2].posNext.x + _root.points[2].velNext.x) - (_root.points[0].posNext.x + _root.points[0].velNext.x);
yd2 = (_root.points[2].posNext.y + _root.points[2].velNext.y) - (_root.points[0].posNext.y + _root.points[0].velNext.y);
_root.points[0].rotAccNext = getRotDist(avgAngle((Math.atan2(yd1, xd1) - Math.PI) - _root.points[1].rotPosNext, Math.atan2(yd2, xd2) - _root.points[2].rotPosNext), _root.points[0].rotPosNext) / _root.rotationalDamp;
_root.points[0].rotVelNext = _root.points[0].rotVelNext + _root.points[0].rotAccNext;
if ((!_root.points[1].grounded) && (!_root.points[2].grounded)) {
_root.points[0].rotVelNext = _root.points[0].rotVelNext + _root.control_rot;
}
_root.points[0].rotPosNext = _root.points[0].rotPosNext + _root.points[0].rotVelNext;
rotForBonus = rotForBonus + _root.points[0].rotVelNext;
_root.points[0].rotPosNext = _root.points[0].rotPosNext % doublePI;
_root.points[0].rotVelNext = _root.points[0].rotVelNext * _root.RotationalDrag;
ii = 1;
while (ii <= 2) {
with (points[ii]) {
xd = (_root.points[0].posNext.x + _root.points[0].velNext.x) + (Math.cos(_root.points[0].rotPosNext - targRot) * tireSpacing);
yd = (_root.points[0].posNext.y + _root.points[0].velNext.y) + (Math.sin(_root.points[0].rotPosNext - targRot) * tireSpacing);
accNext.x = (xd - (posNext.x + velNext.x)) / _root.springStiff;
accNext.y = (yd - (posNext.y + velNext.y)) / _root.springStiff;
}
ii++;
}
xd = (((_root.points[1].posNext.x + _root.points[1].velNext.x) - (Math.cos(_root.points[0].rotPosNext - _root.points[1].targRot) * tireSpacing)) + ((_root.points[2].posNext.x + _root.points[2].velNext.x) - (Math.cos(_root.points[0].rotPosNext - _root.points[2].targRot) * tireSpacing))) / 2;
yd = (((_root.points[1].posNext.y + _root.points[1].velNext.y) - (Math.sin(_root.points[0].rotPosNext - _root.points[1].targRot) * tireSpacing)) + ((_root.points[2].posNext.y + _root.points[2].velNext.y) - (Math.sin(_root.points[0].rotPosNext - _root.points[2].targRot) * tireSpacing))) / 2;
_root.points[0].accNext.x = (xd - (_root.points[0].posNext.x + _root.points[0].velNext.x)) / _root.springStiff;
_root.points[0].accNext.y = (yd - (_root.points[0].posNext.y + _root.points[0].velNext.y)) / _root.springStiff;
ii = 0;
while (ii <= 2) {
with (points[ii]) {
if (thisNum > 0) {
posNext.x = posNext.x + (velNext.x + (accNext.x * _root.truck2wheelMassRatio));
posNext.y = posNext.y + (velNext.y + (accNext.y * _root.truck2wheelMassRatio));
} else {
posNext.x = posNext.x + (velNext.x + (accNext.x * (1 / _root.truck2wheelMassRatio)));
posNext.y = posNext.y + (velNext.y + (accNext.y * (1 / _root.truck2wheelMassRatio)));
}
}
ii++;
}
ii = 1;
while (ii <= 2) {
with (points[ii]) {
xd = posNext.x - _root.points[0].posNext.x;
yd = posNext.y - _root.points[0].posNext.y;
dist = Math.sqrt((xd * xd) + (yd * yd));
if (dist > tireSpacing) {
posNext.x = _root.points[0].posNext.x + (Math.cos(Math.atan2(yd, xd)) * tireSpacing);
posNext.y = _root.points[0].posNext.y + (Math.sin(Math.atan2(yd, xd)) * tireSpacing);
}
if (dist < 5) {
posNext.x = _root.points[0].posNext.x + (Math.cos(Math.atan2(yd, xd)) * 5);
posNext.y = _root.points[0].posNext.y + (Math.sin(Math.atan2(yd, xd)) * 5);
}
}
ii++;
}
i = 1;
while (i <= 2) {
checkGroundhit(i);
i++;
}
_root.upsideDown = Math.abs(angleNearZero(_root.points[0].rotPos)) > 1.2;
if (_root.upsideDown) {
checkRoofhit();
}
if (_root.points[0].grounded && (_root.upsideDown)) {
ii = 1;
while (ii <= 2) {
with (points[ii]) {
xd = posNext.x - _root.points[0].posNext.x;
yd = posNext.y - _root.points[0].posNext.y;
posNext.x = _root.points[0].posNext.x + (Math.cos(Math.atan2(yd, xd)) * tireSpacing);
posNext.y = _root.points[0].posNext.y + (Math.sin(Math.atan2(yd, xd)) * tireSpacing);
}
ii++;
}
body.gotoAndStop(2);
start_rot = rotForBonus;
startBonusTime = thisMS;
startBonusX = _root.points[0].posNext.x;
maxBonusY = 10000;
}
ii = 1;
while (ii <= 2) {
with (points[ii]) {
f = (posNext.x / 10) - Math.floor(posNext.x / 10);
thisY = (GroundHeight[Math.floor(posNext.x / 10)] * (1 - f)) + (GroundHeight[Math.floor(posNext.x / 10) + 1] * f);
if (posNext.y > thisY) {
posNext.y = thisY - 1;
_root.playSFX(11);
}
}
ii++;
}
checkForBonus();
ii = 0;
while (ii <= 2) {
with (points[ii]) {
velNext.x = (posNext.x - pos.x) + velCorrection.x;
velNext.y = (posNext.y - pos.y) + velCorrection.y;
TempAngle = Math.atan2(velNext.y, velNext.x) - halfPI;
TempVel = Math.sin(groundAngle - TempAngle) * Math.sqrt((velNext.x * velNext.x) + (velNext.y * velNext.y));
tireRot = (TempVel / 69.1150383789754) * 180;
}
ii++;
}
};
simpleCollision = function (x1, y1, x2, y2, w) {
if (Math.sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2))) < w) {
return(true);
}
};
checkGroundhit = function (i) {
var _local3;
var _local17;
var _local16;
var _local13;
var _local14;
var _local6;
var _local4;
var _local5;
var _local7;
var _local11;
var _local8;
var _local10;
var _local15;
var _local12;
var _local9;
_local9 = false;
if (_root.points[i].grounded) {
_local8 = 10000;
max_angle = 0;
_local11 = 0;
_local3 = Math.floor(Math.min(_root.points[i].posNext.x - 23, _root.points[i].posNext.x + 23) / 10);
while (_local3 <= Math.ceil(Math.max(_root.points[i].posNext.x - 23, _root.points[i].posNext.x + 23) / 10)) {
_local4 = GroundHeight[_local3 - 1];
if (isNaN(_local4)) {
_local4 = 0;
}
_local5 = GroundHeight[_local3];
if (isNaN(_local5)) {
_local5 = 0;
}
_local7 = Math.atan2(_local5 - _local4, 10) + halfPI;
xOff = Math.cos(_local7) * _root.points[i].Radius;
yOff = Math.sin(_local7) * _root.points[i].Radius;
_local6 = linesIntersect(_root.points[i].posNext.x, _root.points[i].posNext.y, _root.points[i].posNext.x + xOff, _root.points[i].posNext.y + yOff, (_local3 - 1) * 10, _local4, _local3 * 10, _local5);
if (_local6) {
if (_local6 < _local8) {
max_angle = _local7;
_root.points[i].groundAngle = Math.atan2(_local5 - _local4, 10);
_local8 = _local6;
_local10 = _local3;
_local9 = true;
}
}
_local7 = Math.atan2(_local4 - _root.points[i].posNext.y, (_local3 * 10) - _root.points[i].posNext.x);
xOff = Math.cos(_local7) * _root.points[i].Radius;
yOff = Math.sin(_local7) * _root.points[i].Radius;
_local6 = linesIntersect(_root.points[i].posNext.x, _root.points[i].posNext.y, _root.points[i].posNext.x + xOff, _root.points[i].posNext.y + yOff, (_local3 - 1) * 10, _local4, _local3 * 10, _local5);
if (_local6) {
if (_local6 < _local8) {
max_angle = _local7;
_root.points[i].groundAngle = Math.atan2(_local5 - _local4, 10);
_local8 = _local6;
_local10 = _local3;
_local9 = true;
}
}
_local3++;
}
if (_local9) {
_local13 = _root.points[i].posNext.x;
_local14 = _root.points[i].posNext.y;
_root.points[i].posNext.x = _root.points[i].posNext.x - (Math.cos(max_angle) * (_root.points[i].Radius - _local8));
_root.points[i].posNext.y = _root.points[i].posNext.y - (Math.sin(max_angle) * (_root.points[i].Radius - _local8));
_root.points[i].velCorrection.x = _local13 - _root.points[i].posNext.x;
_root.points[i].velCorrection.y = _local14 - _root.points[i].posNext.y;
_root.points[i].grounded = true;
} else {
_root.points[i].HitAt = 0;
_root.points[i].grounded = false;
}
} else {
_local8 = 900;
max_angle = 0;
_local11 = 0;
_local12 = Math.atan2(_root.points[i].posNext.y - _root.points[i].pos.y, _root.points[i].posNext.x - _root.points[i].pos.x);
Tangle = -1;
while (Tangle <= 4.14159265358979) {
_local7 = (Tangle - halfPI) + _local12;
xOff = Math.cos(_local7) * _root.points[i].Radius;
yOff = Math.sin(_local7) * _root.points[i].Radius;
_local3 = Math.floor(Math.min(_root.points[i].pos.x + xOff, _root.points[i].posNext.x + xOff) / 10);
while (_local3 <= Math.ceil(Math.max(_root.points[i].pos.x + xOff, _root.points[i].posNext.x + xOff) / 10)) {
_local4 = GroundHeight[_local3 - 1];
if (isNaN(_local4)) {
_local4 = 0;
}
_local5 = GroundHeight[_local3];
if (isNaN(_local5)) {
_local5 = 0;
}
_local6 = linesIntersect(_root.points[i].pos.x + xOff, _root.points[i].pos.y + yOff, _root.points[i].posNext.x + xOff, _root.points[i].posNext.y + yOff, (_local3 - 1) * 10, _local4, _local3 * 10, _local5);
if (_local6) {
if (_local6 < _local8) {
max_angle = _local7;
_root.points[i].groundAngle = Math.atan2(_local5 - _local4, 10);
_local8 = _local6;
_local10 = _local3;
_local9 = true;
}
}
_local3++;
}
_local11++;
if (_local11 > 20) {
break;
}
Tangle = Tangle + 0.523598775598299;
}
if (_local9) {
_local13 = _root.points[i].pos.x - _root.points[i].posNext.x;
_local14 = _root.points[i].pos.y - _root.points[i].posNext.y;
_root.points[i].HitAt = _local8 / Math.sqrt((_local13 * _local13) + (_local14 * _local14));
_root.points[i].grounded = true;
} else {
_root.points[i].HitAt = 0;
_root.points[i].grounded = false;
}
}
return(_local9);
};
checkRoofhit = function () {
var _local2;
var _local6;
var _local9;
var _local13;
var _local14;
var _local5;
var _local3;
var _local4;
var _local7;
var _local12;
var _local8;
var _local11;
var _local16;
var _local15;
var _local10;
_local10 = false;
_local6 = _root.points[0].posNext.x + (Math.cos(_root.points[0].rotPosNext - halfPI) * 18);
_local9 = _root.points[0].posNext.y + (Math.sin(_root.points[0].rotPosNext - halfPI) * 18);
x2 = _root.points[0].pos.x + (Math.cos(_root.points[0].rotPosNext - halfPI) * 18);
y2 = _root.points[0].pos.y + (Math.sin(_root.points[0].rotPosNext - halfPI) * 18);
if (_root.points[0].grounded) {
_root.points[0].grounded = false;
_local8 = 10000;
max_angle = 0;
_local12 = 0;
if (((Math.random() > 0.7) && (_root.upsideDown)) && (graphicsOptSet[4])) {
createEfx(4, (_local6 + (Math.random() * 20)) - 10, _local9, (Math.random() * 4) - 2, (Math.random() * 4) - 4);
}
_local2 = Math.floor(Math.min(_local6 - 23, _local6 + 23) / 10);
while (_local2 <= Math.ceil(Math.max(_local6 - 23, _local6 + 23) / 10)) {
_local3 = GroundHeight[_local2 - 1];
if (isNaN(_local3)) {
_local3 = 0;
}
_local4 = GroundHeight[_local2];
if (isNaN(_local4)) {
_local4 = 0;
}
_local7 = Math.atan2(_local4 - _local3, 10) + halfPI;
xOff = Math.cos(_local7) * _root.points[0].Radius;
yOff = Math.sin(_local7) * _root.points[0].Radius;
_local5 = linesIntersect(_local6, _local9, _local6 + xOff, _local9 + yOff, (_local2 - 1) * 10, _local3, _local2 * 10, _local4);
if (_local5) {
if (_local5 < _local8) {
max_angle = _local7;
_root.points[0].groundAngle = Math.atan2(_local4 - _local3, 10);
_local8 = _local5;
_local11 = _local2;
_local10 = true;
}
}
_local7 = Math.atan2(_local3 - _local9, (_local2 * 10) - _local6);
xOff = Math.cos(_local7) * _root.points[0].Radius;
yOff = Math.sin(_local7) * _root.points[0].Radius;
_local5 = linesIntersect(_local6, _local9, _local6 + xOff, _local9 + yOff, (_local2 - 1) * 10, _local3, _local2 * 10, _local4);
if (_local5) {
if (_local5 < _local8) {
max_angle = _local7;
_root.points[0].groundAngle = Math.atan2(_local4 - _local3, 10);
_local8 = _local5;
_local11 = _local2;
_local10 = true;
}
}
_local2++;
}
if (_local10) {
_local13 = _root.points[0].posNext.x;
_local14 = _root.points[0].posNext.y;
_root.points[0].posNext.x = _root.points[0].posNext.x - (Math.cos(max_angle) * (_root.points[0].Radius - _local8));
_root.points[0].posNext.y = _root.points[0].posNext.y - (Math.sin(max_angle) * (_root.points[0].Radius - _local8));
_root.points[0].velCorrection.x = _local13 - _root.points[0].posNext.x;
_root.points[0].velCorrection.y = _local14 - _root.points[0].posNext.y;
_root.points[0].grounded = true;
}
} else {
_local8 = 900;
max_angle = 0;
_local12 = 0;
_local15 = Math.atan2(_local9 - y2, _local6 - x2);
Tangle = 0;
while (Tangle <= Math.PI) {
_local7 = (Tangle - halfPI) + _local15;
xOff = Math.cos(_local7) * _root.points[0].Radius;
yOff = Math.sin(_local7) * _root.points[0].Radius;
_local2 = Math.floor(Math.min(x2 + xOff, _local6 + xOff) / 10);
while (_local2 <= Math.ceil(Math.max(x2 + xOff, _local6 + xOff) / 10)) {
_local3 = GroundHeight[_local2 - 1];
if (isNaN(_local3)) {
_local3 = 0;
}
_local4 = GroundHeight[_local2];
if (isNaN(_local4)) {
_local4 = 0;
}
_local5 = linesIntersect(x2 + xOff, y2 + yOff, _local6 + xOff, _local9 + yOff, (_local2 - 1) * 10, _local3, _local2 * 10, _local4);
if (_local5) {
if (_local5 < _local8) {
max_angle = _local7;
_root.points[0].groundAngle = Math.atan2(_local4 - _local3, 10);
_local8 = _local5;
_local11 = _local2;
_local10 = true;
}
}
_local2++;
}
_local12++;
if (_local12 > 20) {
break;
}
Tangle = Tangle + (Math.PI/4);
}
if (_local10) {
flashTheScreen = 40;
_local2 = 0;
while (_local2 < 10) {
createEfx(1, _local6 + ((Math.random() * 20) - 10), _local9 + ((Math.random() * 8) - 6), (_root.points[0].velNext.x / 2) + ((Math.random() * 4) - 2), ((-_root.points[0].velNext.y) / 2) + ((Math.random() * 4) - 2));
_local2++;
}
_local13 = x2 - _local6;
_local14 = y2 - _local9;
_root.points[0].HitAt = _local8 / Math.sqrt((_local13 * _local13) + (_local14 * _local14));
_local5 = Math.sqrt((_root.points[0].vel.x * _root.points[0].vel.x) + (_root.points[0].vel.y * _root.points[0].vel.y));
if (_local5 > 12) {
_root.playSFX(19);
} else if (_local5 > (3 + (Math.random() * 3))) {
_root.playSFX(19, Math.min(100, 25 + (_local5 * 2)));
}
_local13 = _root.points[0].posNext.x;
_local14 = _root.points[0].posNext.y;
_root.points[0].posNext.x = (_root.points[0].pos.x * (1 - _root.points[0].HitAt)) + (_root.points[0].posNext.x * _root.points[0].HitAt);
_root.points[0].posNext.y = (_root.points[0].pos.y * (1 - _root.points[0].HitAt)) + (_root.points[0].posNext.y * _root.points[0].HitAt);
_root.points[0].velCorrection.x = _local13 - _root.points[0].posNext.x;
_root.points[0].velCorrection.y = _local14 - _root.points[0].posNext.y;
_root.points[0].grounded = true;
if (_root.upsideDown) {
RoofHitCounter = 90;
}
}
}
return(_local10);
};
checkForBonus = function () {
truck_grounded = _root.points[1].grounded || (_root.points[2].grounded);
return(undefined);
};
linesIntersect = function (x1a, y1a, x2a, y2a, x1b, y1b, x2b, y2b, debug) {
var _local6;
var _local5;
Aa = y2a - y1a;
Ba = x1a - x2a;
Ca = (Aa * x1a) + (Ba * y1a);
Ab = y2b - y1b;
Bb = x1b - x2b;
Cb = (Ab * x1b) + (Bb * y1b);
det = (Aa * Bb) - (Ab * Ba);
if (det == 0) {
return(0);
}
Tx = ((Bb * Ca) - (Ba * Cb)) / det;
Ty = ((Aa * Cb) - (Ab * Ca)) / det;
_local5 = Math.sqrt(((x1a - Tx) * (x1a - Tx)) + ((y1a - Ty) * (y1a - Ty)));
_local6 = Math.sqrt(((x1a - x2a) * (x1a - x2a)) + ((y1a - y2a) * (y1a - y2a)));
if (_local5 > _local6) {
return(false);
}
if (!((((Math.min(x1b, x2b) <= Tx) && (Tx <= Math.max(x1b, x2b))) && (Math.min(y1b, y2b) <= Ty)) && (Ty <= Math.max(y1b, y2b)))) {
return(false);
}
return(_local5);
};
linesIntersect2 = function (x1a, y1a, x2a, y2a, x1b, y1b, x2b, y2b, debug) {
d = Math.atan2(y2a - y1a, x2a - x1a);
var _local14;
var _local15;
var _local8 = y2a - y1a;
var _local11 = x1a - x2a;
var _local17 = (_local8 * x1a) + (_local11 * y1a);
var _local7 = y2b - y1b;
var _local10 = x1b - x2b;
var _local16 = (_local7 * x1b) + (_local10 * y1b);
var _local9 = (_local8 * _local10) - (_local7 * _local11);
if (_local9 == 0) {
return(false);
}
var _local2 = ((_local10 * _local17) - (_local11 * _local16)) / _local9;
var _local1 = ((_local8 * _local16) - (_local7 * _local17)) / _local9;
_local15 = Math.sqrt(((x1a - _local2) * (x1a - _local2)) + ((y1a - _local1) * (y1a - _local1)));
_local14 = Math.sqrt(((x1a - x2a) * (x1a - x2a)) + ((y1a - y2a) * (y1a - y2a)));
if (_local15 > _local14) {
return(false);
}
if (Math.sqrt(((x2a - _local2) * (x2a - _local2)) + ((y2a - _local1) * (y2a - _local1))) > _local14) {
return(false);
}
if (!((((Math.min(x1b, x2b) <= _local2) && (_local2 <= Math.max(x1b, x2b))) && (Math.min(y1b, y2b) <= _local1)) && (_local1 <= Math.max(y1b, y2b)))) {
return(false);
}
return(_local15);
};
underGround = function () {
x = _root.points[0].posNext.x + (Math.cos(_root.points[0].rotPosNext - halfPI) * 62);
y = _root.points[0].posNext.y + (Math.sin(_root.points[0].rotPosNext - halfPI) * 62);
f = (x / 10) - Math.floor(x / 10);
thisY = (GroundHeight[Math.floor(x / 10)] * (1 - f)) + (GroundHeight[Math.floor(x / 10) + 1] * f);
if (y > thisY) {
return(true);
}
};
getRotDist = function (A, B) {
if (A < 0) {
A = A + doublePI;
}
if (B < 0) {
B = B + doublePI;
}
A = A % doublePI;
B = B % doublePI;
d1 = A - B;
d2 = A - (B + doublePI);
d3 = (A + doublePI) - B;
if ((Math.abs(d1) < Math.abs(d2)) && (Math.abs(d1) < Math.abs(d3))) {
return(d1);
}
if (Math.abs(d2) < Math.abs(d3)) {
return(d2);
}
return(d3);
};
avgAngle = function (A, B) {
if (A < 0) {
A = A + doublePI;
}
if (B < 0) {
B = B + doublePI;
}
A = A % doublePI;
B = B % doublePI;
if ((A > Math.PI) && (B < Math.PI)) {
B = B + doublePI;
} else if ((B > Math.PI) && (A < Math.PI)) {
A = A + doublePI;
}
return(((A + B) / 2) % doublePI);
};
debugLine = function (x1, y1, x2, y2, color, alpha) {
if (!alpha) {
alpha = 100;
}
debug_line.lineStyle(1, color, 100, alpha);
debug_line.moveTo(x1 - scroll_x, y1 - scroll_y);
debug_line.lineTo(x2 - scroll_x, y2 - scroll_y);
};
debugLineNoScroll = function (x1, y1, x2, y2, color, alpha) {
if (!alpha) {
alpha = 100;
}
debug_line.lineStyle(1, color, 100, alpha);
debug_line.moveTo(x1, y1);
debug_line.lineTo(x2, y2);
};
initCargo = function (n) {
if ((n >= 0) && (n != 9)) {
if (!_root.lostLifeSet) {
if (n >= 1) {
showCheckPointScore(n - 1, _root.objects_in_truck_ac, level_time);
} else {
showNormalMessage(_root.cargoMessages[n], true);
}
}
_root.object_name = _root.cargoNames[n];
level_time = _root.cargoTime[n];
_root.lostLifeSet = false;
}
i = 0;
while (i < 8) {
if ((i >= _root.cargoCount[n]) || (n == -1)) {
_root["cargo" + i].activeCargo.gotoAndStop(9);
_root["cargo" + i].activeCargo.thisI = i;
_root["cargo" + i].activeCargo.needsInit = false;
} else {
_root["cargo" + i].activeCargo.gotoAndStop(n + 1);
_root["cargo" + i].activeCargo.thisI = i;
_root["cargo" + i].activeCargo.needsInit = true;
_root["cargo" + i].activeCargo.waitToInit = 5;
}
i++;
}
};
showCheckPointScore = function (checkPoint, cargoLeft, level_time) {
_root.pauseForInfo = true;
_root.checkPointScore._visible = true;
_root.checkPointScore.checkPoint = checkPoint;
_root.checkPointScore.cargoLeft = cargoLeft;
_root.checkPointScore.level_time = level_time;
_root.checkPointScore.addCounter = 100;
_root.checkPointScore.scoreStart = _root.level_score;
};
_root.cargo_counter = 0;
cargoPhysics = function (T) {
i = 0;
while (i < 4) {
container[i].x = points[0].pos.x + (Math.cos((containerAngle[i] + cur_truck_rot) + cur_bed_rot) * containerDist[i]);
container[i].y = points[0].pos.y + (Math.sin((containerAngle[i] + cur_truck_rot) + cur_bed_rot) * containerDist[i]);
i++;
}
i = 0;
while (i < _root.maxCargo) {
_root["cargo" + i].activeCargo.processPhysics();
_root["cargo" + i]._x = _root["cargo" + i].activeCargo.aX - _root.scroll_x;
_root["cargo" + i]._y = _root["cargo" + i].activeCargo.aY - _root.scroll_y;
i++;
}
if (_root.objects_in_truck == 0) {
_root.cargo_counter++;
if ((_root.cargo_counter > 30) && (curCheckpoint > 2)) {
showNormalMessage("You have lost all of your cargo. Start over from the last checkpoint.", true, true);
}
} else {
_root.cargo_counter = 0;
}
};
genericCheckGroundhit = function (X, Y, velX, velY, radius, bounciness) {
var _local1;
var _local5;
var _local4;
var _local3;
var _local7;
var _local13;
var _local8;
var _local14;
var _local16;
var _local11;
var _local17;
var _local12;
_local12 = false;
_local8 = 900;
max_angle = 0;
_local13 = 0;
_local16 = Math.atan2(velY, velX);
Tangle = -1;
while (Tangle <= 4.14159265358979) {
_local7 = (Tangle - halfPI) + _local16;
xOff = Math.cos(_local7) * radius;
yOff = Math.sin(_local7) * radius;
_local1 = Math.floor(Math.min(X + xOff, (X + velX) + xOff) / 10);
while (_local1 <= Math.ceil(Math.max(X + xOff, (X + velX) + xOff) / 10)) {
_local4 = GroundHeight[_local1 - 1];
if (isNaN(_local4)) {
_local4 = 0;
}
_local3 = GroundHeight[_local1];
if (isNaN(_local3)) {
_local3 = 0;
}
_local5 = linesIntersect(X + xOff, Y + yOff, (X + velX) + xOff, (Y + velY) + yOff, (_local1 - 1) * 10, _local4, _local1 * 10, _local3);
if (_local5) {
if (_local5 < _local8) {
max_angle = _local7;
_local11 = Math.atan2(_local3 - _local4, 10);
_local8 = _local5;
_local14 = _local1;
_local12 = true;
}
}
_local1++;
}
_local13++;
if (_local13 > 20) {
break;
}
Tangle = Tangle + 0.523598775598299;
}
if (_local12) {
_local5 = Math.sqrt((velX * velX) + (velY * velY));
_local17 = _local8 / _local5;
return([true, velX - ((Math.cos(_local11 + halfPI) * _local5) * bounciness), velY - ((Math.sin(_local11 + halfPI) * _local5) * bounciness), -(velX * _local17), -(velY * _local17)]);
}
_local17 = 0;
return([false, velX, velY]);
};
checkLineHit = function (X, Y, velX, velY, radius, bounciness, damp, lX1, lY1, lX2, lY2, adVelx, adVely) {
var _local27;
var _local5;
var _local32;
var _local31;
var _local7;
var _local19;
var _local17;
var _local25;
var _local24;
var _local26;
var _local20;
var _local21;
_local21 = false;
velOut = Math.sqrt((velX * velX) + (velY * velY));
var _local16 = velX - adVelx;
var _local15 = velY - adVely;
var _local18 = Math.sqrt((_local16 * _local16) + (_local15 * _local15));
var _local29 = Math.atan2(_local15, _local16);
_local17 = 900;
max_angle = 0;
_local19 = 0;
_local24 = Math.atan2(velY, velX);
var _local8 = 0;
if (_local18 > radius) {
var _local30 = Math.PI;
} else {
var _local30 = 2.51327412287183;
}
Tangle = -3.14159265358979;
while (Tangle <= Math.PI) {
_local7 = Tangle + _local24;
xOff = Math.cos(_local7) * radius;
yOff = Math.sin(_local7) * radius;
_local8 = _local8 + 16;
color = (_local8 * 256) + (255 - _local8);
if (_local18 > radius) {
var _local14 = velX - adVelx;
var _local13 = velY - adVely;
_local5 = linesIntersect2(X + xOff, Y + yOff, (X + _local14) + xOff, (Y + _local13) + yOff, lX1, lY1, lX2, lY2);
} else {
_local5 = linesIntersect2(X + _local16, Y + _local15, (X + _local16) + xOff, (Y + _local15) + yOff, lX1, lY1, lX2, lY2, debug);
}
if (_local5) {
if (_local5 < _local17) {
max_angle = _local7;
_local26 = Math.atan2(lY2 - lY1, lX2 - lX1);
if (_local18 > radius) {
dbx1 = X + xOff;
dby1 = Y + yOff;
dbx2 = (X + velX) + xOff;
dby2 = (Y + velY) + yOff;
} else {
dbx1 = X + velX;
dby1 = Y + velY;
dbx2 = (X + velX) + xOff;
dby2 = (Y + velY) + yOff;
}
_local17 = _local5;
_local25 = _local27;
_local21 = true;
}
}
_local19++;
if (_local19 > 20) {
break;
}
Tangle = Tangle + 0.523598775598299;
}
if (_local21) {
if (_local18 > radius) {
velOut3 = Math.sqrt((_local14 * _local14) + (_local13 * _local13));
hitAngle = Math.atan2(velY, velX);
_local20 = _local17 / velOut3;
return([true, adVelx - ((Math.cos(hitAngle) * velOut) * bounciness), adVely - ((Math.sin(hitAngle) * velOut) * bounciness), -(velX * _local20), -(velY * _local20), _local20]);
}
_local20 = 1 - (_local17 / radius);
hitAngle = (Math.atan2(lY2 - lY1, lX2 - lX1) + halfPI) + angleNearZero((Math.atan2(lY2 - lY1, lX2 - lX1) + halfPI) - _local29);
return([true, adVelx - ((Math.cos(hitAngle) * velOut) * bounciness), adVely - ((Math.sin(hitAngle) * velOut) * bounciness), (Math.cos(max_angle) * radius) * _local20, (Math.sin(max_angle) * radius) * _local20, _local20]);
}
_local20 = 0;
return([false, velX, velY]);
};
_root._quality = graphicsQuality[((_global.graphicsOptSet[0] ? 1 : 0) * 2) + (_global.graphicsOptSet[2] ? 1 : 0)];
avgY = 0;
lsx = 0;
lsy = 0;
LevelEnd._visible = false;
normalMessageMaxDown = 0;
objects_in_truck_ac = 0;
fadeLayer.beginFill(0);
fadeLayer.moveTo(0, 0);
fadeLayer.lineTo(480, 0);
fadeLayer.lineTo(480, 384);
fadeLayer.lineTo(0, 384);
fadeLayer.endFill();
Frame 5
stop();
fadeTitle = 101;
startGameBut.onRelease = function () {
gotoAndPlay ("Instructions");
};
freegamesBtn.onRelease = function () {
getURL ("http://www.freegamesforyourwebsite.com/click.php?gid=260&area=menu", "_blank");
};
highscoresBut.onRelease = function () {
gotoAndPlay ("HighScores");
};
optionsBut.onRelease = function () {
gotoAndPlay ("Options");
};
if (!titleSong) {
titleSong = new Sound(_root.createEmptyMovieClip("titleSongMC", 5000));
titleSong.attachSound("Feed Us.mp3");
}
if (titleSong.position == 0) {
titleSong.start(0, 999);
}
this.onEnterFrame = function () {
if (fadeTitle < 101) {
fadeTitle = fadeTitle - 5;
titleSong.setVolume(fadeTitle);
fade._alpha = 100 - fadeTitle;
if (fadeTitle == 0) {
titleSong.stop();
playSFX(10);
_root.startEngine();
gotoAndPlay ("gameMain");
}
} else if (fade._alpha > 0) {
fade._alpha = fade._alpha - 5;
}
};
Instance of Symbol 298 MovieClip in Frame 5
on (release) {
getURL ("http://www.freegamesforyourwebsite.com/click.php?gid=260&area=minilogo", "_blank");
}
Frame 6
stop();
continueBut.onRelease = function () {
fadeTitle = 100;
};
Frame 7
setOptBut.onRelease = function () {
gotoAndPlay (5);
};
gotoAndStop (7);
Frame 8
continueBut.onRelease = function () {
gotoAndPlay (5);
};
fogLink.onRelease = function () {
getURL ("http://www.freeonlinegames.com", "_BLANK");
};
ssLink.onRelease = function () {
getURL ("http://www.simplesolutionweb.com", "_BLANK");
};
jmLink.onRelease = function () {
getURL ("http://www.simplesolutionweb.com/joshmerritt", "_BLANK");
};
unspecialLink.onRelease = function () {
getURL ("http://www.myspace.com/unspecial", "_BLANK");
};
gotoAndStop (8);
Frame 9
continueBut.onRelease = function () {
gotoAndPlay (5);
};
gotoAndStop (9);
Instance of Symbol 369 MovieClip [TMP6pbk6uzm9i] "highScoreView" in Frame 9
//component parameters
onClipEvent (construct) {
gameID = 240;
}
Frame 10
function playSFX(num, vol, posX) {
if ((vol != 0) && (!vol)) {
vol = 100;
}
if (posX) {
v1 = Math.max(0, (400 - Math.abs(posX - (points[0].pos.x - 100))) / 4) * (vol / 100);
v2 = Math.max(0, (400 - Math.abs(posX - (points[0].pos.x + 100))) / 4) * (vol / 100);
} else {
v1 = (v2 = vol);
}
_root["sfxSound" + num].setTransform({ll:v1, lr:v1, rr:v2, rl:v2});
_root["sfxSound" + num].start();
}
function getGroundHeight(x) {
if (Math.floor(x / 10) < 0) {
return(0);
}
if (Math.floor(x / 10) >= lvlWidth) {
return(0);
}
gh1 = GroundHeight[Math.floor(x / 10)];
gh2 = GroundHeight[Math.floor(x / 10) + 1];
v = x - (Math.floor(x / 10) * 10);
if (isNaN(gh1) || (isNaN(gh2))) {
return(GroundHeight[0]);
}
return(((gh1 * (10 - v)) + (gh2 * v)) / 10);
}
function createEfx(n, x, y, vx, vy, xtra) {
curEfx++;
curEfx = curEfx % maxEfx;
efxLayer["Efx" + curEfx].setEfx(n);
efxLayer["Efx" + curEfx].cur_x = x;
efxLayer["Efx" + curEfx].cur_y = y;
efxLayer["Efx" + curEfx]._xscale = (efxLayer["Efx" + curEfx]._yscale = 100);
if (vx || (vy)) {
efxLayer["Efx" + curEfx].vel_x = vx;
efxLayer["Efx" + curEfx].vel_y = vy;
} else {
efxLayer["Efx" + curEfx].vel_x = 0;
efxLayer["Efx" + curEfx].vel_y = 0;
}
efxLayer["Efx" + curEfx].xtra = xtra;
}
function giveBonus(bonusName, bonusPoints) {
if ((thisMS - lastBonusTS) < 500) {
bonusQue.push({bonusName:bonusName, bonusPoints:bonusPoints});
bonusQueTimer = 15;
} else {
level_score = Math.max(0, level_score + bonusPoints);
if (bonusPoints > 0) {
createEfx(2, Stage.width / 2, Stage.height / 4, 0, -4, (bonusName + " ") + bonusPoints);
} else {
createEfx(3, Stage.width / 2, Stage.height / 4, 0, -4, (bonusName + " ") + bonusPoints);
}
}
lastBonusTS = thisMS;
flashTheScreen = 40;
}
function updateScroll() {
if (edit_enabled) {
return(undefined);
}
give = Stage.width / 6;
ScrollOffX = ScrollOffX - ((ScrollOffX - (points[0].vel.x * 7)) / 10);
ScrollOffY = ScrollOffY - ((ScrollOffY - (points[0].vel.y * 5)) / 10);
screen_center_x = Stage.width / 2;
screen_center_y = (Stage.height / 2) + 40;
scroll_x = (((points[1].pos.x + points[2].pos.x) / 2) - screen_center_x) + ScrollOffX;
scroll_y = (((points[1].pos.y + points[2].pos.y) / 2) - screen_center_y) + ScrollOffY;
lsx = scroll_x;
lsy = scroll_y;
}
function newLevel(lvlWidth) {
var _local3 = new Array(lvlWidth);
var _local2 = new Array(lvlWidth);
var _local4 = new Array(lvlWidth);
i = 1;
while (i <= lvlWidth) {
_local3[i] = 1000;
_local2[i] = 1;
if (Math.random() > 0.2) {
SurfaceTiles[i] = 1;
}
i++;
}
i = 0;
while (i <= 2) {
points[i].velNext.x = (points[i].vel.x = 0);
points[i].velNext.y = (points[i].vel.y = 0);
i++;
}
points[0].rotVel = (points[0].rotVelNext = 0);
}
function loadLevel(levelNumber) {
if (!levelLoaded) {
levelLoaded = true;
levelNumber--;
lvlWidth = truckLevels[levelNumber].lvlWidth;
objX = truckLevels[levelNumber].objX.split(",");
objY = truckLevels[levelNumber].objY.split(",");
objType = truckLevels[levelNumber].objType.split(",");
i = 0;
while (i < objX.length) {
objX[i] = Number(objX[i]);
objY[i] = Number(objY[i]);
objType[i] = Number(objType[i]);
initObj(i, objType[i]);
i++;
}
newLevel(lvlWidth);
lgh = 0;
avgY = 0;
i = 1;
while (i <= lvlWidth) {
GroundHeight[i] = convMD(truckLevels[levelNumber].GroundHeight.substr((i - 1) * 3, 3));
avgY = avgY + GroundHeight[i];
i++;
}
i = 1;
while (i <= lvlWidth) {
SurfaceLayer[i] = SurfaceLayer[i] / 20;
randomGrass[i] = Math.round(Math.random());
i++;
}
i = 1;
while (i <= lvlWidth) {
SurfaceRot[i - 1] = Math.atan2(GroundHeight[i] - lgh, 10) * 57.2957795;
n = Math.floor((Math.sqrt(100 + ((GroundHeight[i] - lgh) * (GroundHeight[i] - lgh))) - 10) / 2) + 1;
if (n == 1) {
SurfaceTile[i - 1] = (((Math.min(1, Math.ceil(SurfaceLayer[i])) + randomGrass[i]) * 20) + Math.floor(Math.random() * 9)) + 1;
} else {
SurfaceTile[i - 1] = (((Math.min(1, Math.ceil(SurfaceLayer[i])) + randomGrass[i]) * 20) + Math.floor(Math.random() * 9)) + 11;
}
lgh = GroundHeight[i];
i++;
}
avgY = avgY / lvlWidth;
}
moveTruckTo(objX[0]);
lastStuntX = 0;
game_running = true;
GameState = 2;
GoText._alpha = 100;
_root.points[0].rotPos = (_root.points[0].rotPosNext = (rotForBonus = (start_rot = 0)));
rightNow = new Date();
startBonusTime = rightNow.getTime() + 3000;
maxBonusY = 10000;
levelScoreAtBeginning = level_score;
fadeInTheScreen = 300;
_root.points[0].grounded = false;
body.gotoAndStop(1);
}
function updateObjects() {
i = 1;
while (i < objX.length) {
objects["obj" + i]._x = objX[i] - scroll_x;
objects["obj" + i]._y = objY[i] - scroll_y;
i++;
}
}
function initObj(objNum, objType) {
if (objType > 1) {
objects.obj1.duplicateMovieClip("obj" + objNum, objNum + 2);
}
if (objType > 0) {
objects["obj" + objNum].gotoAndStop(objType);
}
}
function convMD(s) {
return(((((s.charCodeAt(0) & 255) - 48) * 4096) + (((s.charCodeAt(1) & 255) - 48) * 64)) + ((s.charCodeAt(2) & 255) - 48));
}
function formatMinSec(s) {
sec = s % 60;
min = (s - sec) / 60;
if (String(sec).length == 1) {
return((min + ":0") + sec);
}
return((min + ":") + sec);
}
function showNormalMessage(m, pauseIt, lostLife) {
engineSpeed = 0;
engineLoad = 0;
normalMessage.messageText.text = m;
normalMessage._visible = true;
showNormalMessagefadeCnt = 100;
if (pauseIt) {
pauseUntilSpaceBar = true;
normalMessage.messageText.text = normalMessage.messageText.text + " Press SPACE BAR to continue";
normalMessage.messageText._y = 160 - normalMessage.messageText.textHeight;
normalMessageMaxDown = normalMessage.messageText.textHeight - 110;
}
if (lostLife) {
_root.playSFX(18);
initCargo(9);
lostLifeSet = true;
}
}
function moveTruckTo(x) {
diffX = x - points[0].pos.x;
diffY = (getGroundHeight(x) - 10) - points[0].pos.y;
i = 0;
while (i <= 2) {
with (points[i]) {
pos.x = pos.x + diffX;
pos.y = pos.y + diffY;
if (i == 1) {
pos.x = points[0].pos.x - tireSpacing;
pos.y = points[0].pos.y;
} else if (i == 2) {
pos.x = points[0].pos.x + tireSpacing;
pos.y = points[0].pos.y;
}
posNext.x = pos.x;
posNext.y = pos.y;
velNext.x = (vel.x = (velNext.y = (vel.y = 0)));
accNext.x = (acc.x = (accNext.y = (acc.y = 0)));
}
i++;
}
last_truck_grounded = truck_grounded;
}
lastStuntX = 0;
scroll_x = 0;
scroll_y = 800;
GameState = 0;
boostCharge = 0;
boostRelease = 0;
boostDownLast = false;
score = 0;
ticker = 0;
level_time = 0;
level_score = 0;
gameEndType = 1;
last_truck_grounded = false;
truck_grounded = false;
lastBonusTS = 0;
curCheckpoint = 2;
lostLifeSet = false;
pauseForInfo = false;
pauseUntilEnterKey = false;
showNormalMessagefadeCnt = 0;
game_running = false;
curLevel = 1;
WaitFor = 0;
Invincible = 0;
Lives = 5;
RoofHitCounter = 0;
upsideDown = false;
rollOverMessage._visible = false;
if (maxCargo != 8) {
maxCargo = 8;
i = 1;
while (i < 8) {
cargo0.duplicateMovieClip("cargo" + i, (i + 400) - maxCargo);
i++;
}
createEmptyMovieClip("phTruckbody", maxCargo + 403);
body.swapDepths(maxCargo + 403);
createEmptyMovieClip("phTruckTire1", maxCargo + 404);
tire1.swapDepths(maxCargo + 404);
createEmptyMovieClip("phTruckTire2", maxCargo + 405);
tire2.swapDepths(maxCargo + 405);
createEmptyMovieClip("phwheelShine1", maxCargo + 406);
wheelShine1.swapDepths(maxCargo + 406);
createEmptyMovieClip("phwheelShine2", maxCargo + 407);
wheelShine2.swapDepths(maxCargo + 407);
i = 1;
while (i <= maxEfx) {
efxLayer.Efx0.duplicateMovieClip("Efx" + i, (i + 410) + maxCargo);
i++;
}
createEmptyMovieClip("phobjects", maxCargo + 450);
objects.swapDepths(maxCargo + 450);
createEmptyMovieClip("phnormalMessage", maxCargo + 451);
normalMessage.swapDepths(maxCargo + 451);
createEmptyMovieClip("phcheckPointScore", maxCargo + 452);
checkPointScore.swapDepths(maxCargo + 452);
createEmptyMovieClip("phfadeLayer", maxCargo + 454);
fadeLayer.swapDepths(maxCargo + 454);
createEmptyMovieClip("phstatusArea", maxCargo + 455);
statusArea.swapDepths(maxCargo + 455);
createEmptyMovieClip("debug_line", maxCargo + 1000);
i = 0;
while (i < soundEfx.length) {
_root["sfxSound" + i] = new Sound(_root.createEmptyMovieClip("sfx" + i, (maxCargo + i) + 1002));
_root["sfxSound" + i].attachSound(soundEfx[i]);
i++;
}
}
this.onEnterFrame = function () {
objects_in_truck_ac = objects_in_truck;
objects_in_truck = 0;
switch (GameState) {
case 0 :
loadLevel(curLevel);
GameState = 2;
LevelEnd._visible = false;
GoText._alpha = 0;
statusArea.LivesDisplay.text = "x" + Lives;
RoofHitCounter = 0;
rollOverMessage._visible = false;
initCargo(-1);
statusArea.controls._visible = true;
break;
case 2 :
if (points[0].pos.x > objX[curCheckpoint]) {
moveTruckTo(points[0].pos.x);
killEngine();
initCargo(curCheckpoint - 2);
curCheckpoint++;
body.body_bg.steakbed._visible = (curCheckpoint != 4) && (curCheckpoint != 8);
}
if (fadeInTheScreen > 0) {
fadeInTheScreen = fadeInTheScreen - 5;
fadeLayer.clear();
if (fadeInTheScreen > 0) {
fv = 255 - Math.min(255, fadeInTheScreen);
fadeLayer.beginFill(((fv * 65536) + (fv * 256)) + fv, 100);
fadeLayer.moveTo(0, 0);
fadeLayer.lineTo(480, 0);
fadeLayer.lineTo(480, 384);
fadeLayer.lineTo(0, 384);
fadeLayer.endFill();
fadeLayer._visible = true;
} else {
fadeLayer.beginFill(0);
fadeLayer.moveTo(0, 0);
fadeLayer.lineTo(480, 0);
fadeLayer.lineTo(480, 384);
fadeLayer.lineTo(0, 384);
fadeLayer.endFill();
fadeLayer._visible = false;
}
}
if (pauseUntilSpaceBar || (pauseForInfo)) {
if (!pauseForInfo) {
normalMessage._y = normalMessage._y + ((normalMessageMaxDown - normalMessage._y) / 5);
normalMessage._visible = true;
}
if (Key.isDown(32) && (!pauseForInfo)) {
if (curCheckpoint > 10) {
killEngine();
GameState = 6;
_global.yourScore = level_score;
gotoAndPlay ("SubmitScoreFR");
} else if (lostLifeSet) {
Lives--;
if (Lives < 0) {
killEngine();
_root.playSFX(17);
GameState = 6;
_global.yourScore = level_score;
gotoAndStop ("GameOverFR");
}
statusArea.LivesDisplay.text = "x" + Lives;
body.gotoAndStop(1);
moveTruckTo(objX[curCheckpoint - 1]);
initCargo(curCheckpoint - 3);
} else {
_root.playSFX(10);
_root.startEngine();
}
boostCharge = 0;
pauseUntilSpaceBar = false;
}
} else {
if ((showNormalMessagefadeCnt > 0) && (fadeInTheScreen > 0)) {
normalMessage._visible = true;
} else if (showNormalMessagefadeCnt > 0) {
normalMessage._visible = true;
normalMessage._y = (-138 + (showNormalMessagefadeCnt * 1.38)) + normalMessageMaxDown;
showNormalMessagefadeCnt = showNormalMessagefadeCnt - 5;
} else {
normalMessage._visible = false;
normalMessage._y = -138;
}
if (GoText._alpha > 0) {
GoText._alpha = GoText._alpha - 5;
}
if (edit_enabled) {
edit_onEnterFrame();
}
if (!game_running) {
return(undefined);
}
if (((ticker % 30) == 29) && (level_time > 0)) {
level_time = level_time - 1;
}
ticker++;
if ((level_time == 0) && (curCheckpoint > 2)) {
showNormalMessage("You have run out of time. Start over from the last checkpoint.", true, true);
}
i = curCheckpoint - 1;
while (i <= curCheckpoint) {
dist = objX[i] - points[0].pos.x;
if (Math.abs(dist) < 1000) {
setVolume = "";
switch (i) {
case 2 :
case 8 :
case 9 :
if (sfxSound15.position == 0) {
sfxSound15.start(0, 5);
}
setVolume = "sfxSound15";
break;
case 3 :
if (sfxSound14.position == 0) {
sfxSound14.start(0, 5);
}
setVolume = "sfxSound14";
break;
case 4 :
if (sfxSound5.position == 0) {
sfxSound5.start(0, 20);
}
setVolume = "sfxSound5";
break;
case 6 :
if (sfxSound16.position == 0) {
sfxSound16.start(0, 20);
}
setVolume = "sfxSound16";
}
if (setVolume) {
v1 = Math.max(0, (400 - Math.abs(objX[i] - (points[0].pos.x - 100))) / 4);
v2 = Math.max(0, (400 - Math.abs(objX[i] - (points[0].pos.x + 100))) / 4);
_root[setVolume].setTransform({ll:v1, lr:v1, rr:v2, rl:v2});
}
}
i++;
}
brakes = 0;
sDownLast = Key.isDown(83);
if (Key.isDown(39)) {
control_rot = 0.022;
bed_rot = 0.2;
} else if (Key.isDown(37)) {
control_rot = -0.022;
bed_rot = -0.2;
} else {
control_rot = 0;
bed_rot = 0;
}
if (Key.isDown(38)) {
lr = 1;
statusArea.controls._visible = false;
} else if (Key.isDown(40)) {
lr = -1;
} else {
lr = 0;
}
if (Key.isDown(90)) {
if (Math.abs(lr)) {
braking = 1;
lr = lr * 0.5;
} else {
braking = 0.5;
}
} else {
braking = 1;
}
if ((Key.isDown(16) && (!boostDownLast)) && (truck_grounded)) {
boostDownLast = true;
boostRelease = boostCharge;
boostCharge = 0;
} else if (!Key.isDown(16)) {
boostDownLast = false;
}
cargoPhysics();
if (!(edit_enabled && (mouseIsDown))) {
truckPhysics(1);
}
tot_bed_rot_vel = rotVel + bed_rot_vel;
updateObjects();
updateScroll();
ground2._y = -(scroll_y / 1.008);
i = 0;
while (i < (Math.floor(Stage.width / 10) + 2)) {
if ((ground2["surface" + i].xoff - scroll_x) < -10) {
ground2["surface" + i].xoff = ground2["surface" + i].xoff + ((Math.floor(Stage.width / 10) + 2) * 10);
ground2["surface" + i].tileUpdated = true;
}
if ((ground2["surface" + i].xoff - scroll_x) > ((Math.floor(Stage.width / 10) + 1) * 10)) {
ground2["surface" + i].xoff = ground2["surface" + i].xoff - ((Math.floor(Stage.width / 10) + 2) * 10);
ground2["surface" + i].tileUpdated = true;
}
if (ground2["surface" + i].tileUpdated) {
ground2["surface" + i].tileUpdated = false;
x = (i * 10) - (scroll_x % 10);
last_y = y;
y = getGroundHeight(ground2["surface" + i].xoff);
nextY = getGroundHeight(ground2["surface" + i].xoff + 10) - y;
n = Math.floor(Math.floor(ground2["surface" + i].xoff / 10));
ground2["surface" + i]._y = y;
if (_global.graphicsOptSet[4]) {
ground2["surface" + i].tile._visible = true;
ground2["surface" + i].tile._rotation = SurfaceRot[n];
ground2["surface" + i].tile.gotoAndStop(SurfaceTile[n - 1]);
} else {
ground2["surface" + i].tile._visible = false;
}
bgDraw = ground2["surface" + i].bgDraw;
bgDraw.clear();
if (_global.graphicsOptSet[3]) {
j = 0;
while (j <= 2) {
Nj = 2 - j;
bgDraw.beginFill(layerColors[j]);
bgDraw.moveTo(0, Math.max(0, SurfaceLayer[n] - j) * (Nj * 50));
bgDraw.lineTo(11, nextY + (Math.max(0, SurfaceLayer[n + 1] - j) * (Nj * 50)));
if (j == 0) {
bgDraw.lineTo(11, 500);
bgDraw.lineTo(-1, 500);
} else {
bgDraw.lineTo(11, nextY + (Math.max(0, (SurfaceLayer[n + 1] - j) + 1) * ((Nj + 1) * 50)));
bgDraw.lineTo(0, Math.max(0, (SurfaceLayer[n] - j) + 1) * ((Nj + 1) * 50));
}
j++;
}
} else {
bgDraw.beginFill(layerColors[0]);
bgDraw.moveTo(0, 0);
bgDraw.lineTo(11, nextY + SurfaceLayer[n + 1]);
bgDraw.lineTo(11, 500);
bgDraw.lineTo(-1, 500);
}
bgDraw.endFill();
}
ground2["surface" + i]._x = ground2["surface" + i].xoff - scroll_x;
i++;
}
body_bg._x = (body._x = points[0].pos.x - scroll_x);
body_bg._y = (body._y = points[0].pos.y - scroll_y);
wheelShine1._x = (tire1._x = points[2].pos.x - scroll_x);
wheelShine1._y = (tire1._y = points[2].pos.y - scroll_y);
thisRot = Math.max(_root.points[1].tireRot, _root.points[2].tireRot);
tire1._rotation = (tire2._rotation = tire2._rotation + thisRot);
tire1.gotoAndStop(Math.floor(Math.abs(thisRot / 11.25)) + 1);
tire2.gotoAndStop(Math.floor(Math.abs(thisRot / 11.25)) + 1);
wheelShine2._x = (tire2._x = points[1].pos.x - scroll_x);
wheelShine2._y = (tire2._y = points[1].pos.y - scroll_y);
shocks.clear();
i = 1;
while (i <= 2) {
shocks.lineStyle(4, 3355443, 100);
shocks.moveTo(points[0].pos.x - scroll_x, points[0].pos.y - scroll_y);
shocks.lineTo(points[i].pos.x - scroll_x, points[i].pos.y - scroll_y);
i++;
}
statusArea.Time.text = formatMinSec(level_time);
statusArea.Score.text = level_score;
statusArea.CargoDisp.text = (objects_in_truck_ac + " ") + object_name;
statusArea.boostBar.BoostBarGRPHX._width = boostCharge * 10;
statusArea.boostBar.boostLabel._visible = boostCharge == 10;
}
break;
case 3 :
LevelEnd.pressUpToCont._visible = false;
LevelEnd._visible = true;
LevelEnd.TimeBonus.text = "Time Bonus: " + timeBonus;
statusArea.Score.text = level_score;
WaitFor = 120;
GameState++;
break;
case 4 :
WaitFor--;
if (WaitFor == 0) {
LevelEnd.pressUpToCont._visible = true;
}
if ((WaitFor <= 0) || ((WaitFor <= 60) && (Key.isDown(38)))) {
GameState++;
}
break;
case 5 :
curLevel++;
GameState = 0;
level_time = 0;
game_running = false;
if (curLevel != 11) {
break;
}
gameEndType = 1;
gotoAndStop (13);
}
};
gotoAndStop (10);
Frame 11
stop();
mcSubmitScore.Score = (yourScore.text = _global.yourScore);
unloadThese = ["cargo1", "cargo2", "cargo3", "cargo4", "cargo5", "cargo6", "cargo7", "body_bg", "tire1", "tire2", "wheelShine1", "wheelShine2", "body", "objects", "normalMessage", "checkPointScore", "statusArea"];
i = 0;
while (i < unloadThese.length) {
this[unloadThese[i]].unloadMovie();
i++;
}
continueBut.onRelease = function () {
getURL ("javascript:window.location.reload();");
};
playmoregamesBut.onRelease = function () {
getURL ("http://www.freegamesforyourwebsite.com/click.php?gid=260&area=gameover", "_blank");
};
Instance of Symbol 584 MovieClip [TMPd4lzhusf84] "mcSubmitScore" in Frame 11
//component parameters
onClipEvent (construct) {
btnMC = "submitScore";
gameID = 240;
}
Frame 12
stop();
btnSubmitScore.Score = (yourScore.text = _global.yourScore);
unloadThese = ["cargo1", "cargo2", "cargo3", "cargo4", "cargo5", "cargo6", "cargo7", "body_bg", "tire1", "tire2", "wheelShine1", "wheelShine2", "body", "objects", "normalMessage", "checkPointScore", "statusArea"];
i = 0;
while (i < unloadThese.length) {
_root[unloadThese[i]].unloadMovie();
i++;
}
continueBut.onRelease = function () {
getURL ("javascript:window.location.reload();");
};
playmoregamesBut.onRelease = function () {
getURL ("http://www.freegamesforyourwebsite.com/click.php?gid=260&area=gameover", "_blank");
};
Symbol 105 Button
on (release) {
getURL ("http://www.freegamesforyourwebsite.com/click.php?gid=260&area=loader", "_blank");
}
Symbol 166 MovieClip Frame 1
stop();
var tagctr = (random(55) + 1);
gotoAndStop(tagctr);
Symbol 167 MovieClip Frame 105
stop();
Symbol 173 MovieClip Frame 1
_root.earl223 = function (val) {
var _local3 = new Array("_", "Z", "y", "x", "W", "v", "u", "T", "s", "r", "Q", "P", "O", "n", "m", "L", "K", "j", "i", "H", "g", "F", "e", "d", "C", "B", "a");
var _local2 = "";
val1 = 0;
while (val1 < val.length) {
if (val.substr(val1, 1) == ":") {
_local2 = _local2 + ":";
} else if (Number(val.substr(val1, 2)) > 26) {
_local2 = _local2 + _local3[Number(val.substr(val1, 1))];
} else if (Number(val.substr(val1, 1)) == 0) {
_local2 = _local2 + "_";
} else {
_local2 = _local2 + _local3[Number(val.substr(val1, 2))];
val1++;
}
val1++;
}
return(_local2);
};
Symbol 180 MovieClip Frame 1
stop();
Instance of Symbol 193 MovieClip "mcNotice" in Symbol 230 MovieClip Frame 1
onClipEvent (load) {
_visible = false;
}
Symbol 230 MovieClip Frame 120
stop();
if ((_url.indexOf("freeonlinegames.com") >= 0) && (_url.indexOf("file:") == -1)) {
_root.okToPlay = true;
_root.play();
} else if (_root.debug) {
_root.okToPlay = true;
_root.play();
} else {
_root.mcTaglines._visible = false;
mcNotice._visible = true;
}
Symbol 231 MovieClip Frame 71
stop();
var fogsound = new Sound();
fogsound.onSoundComplete = function () {
_root.okToPlay = true;
_root.play();
};
fogsound.attachSound("fogaudio");
fogsound.start(0, 1);
Symbol 235 MovieClip Frame 1
stop();
Symbol 330 MovieClip Frame 1
this.onRelease = function () {
checked = !checked;
};
this.onEnterFrame = function () {
checkGraphic._visible = checked;
};
gotoAndStop (1);
Symbol 332 MovieClip Frame 1
_global.graphicsOptSet = [false, true, true, true, true, true];
graphicsOptName = ["Smooth Edges", "Parallax BG", "", "Hill Shading", "Dust", "Ground Covering"];
this.onEnterFrame = function () {
n = 0;
i = 0;
while (i < graphicsOptName.length) {
if (graphicsOptName[i] != "") {
_global.graphicsOptSet[i] = this["opt" + n].optCB.checked;
n++;
}
i++;
}
};
n = 0;
i = 0;
while (i < graphicsOptName.length) {
if (graphicsOptName[i] != "") {
if (n > 0) {
opt0.duplicateMovieClip("opt" + n, n + 1);
this["opt" + n]._y = opt0._y + (n * 36);
}
this["opt" + n].n = n;
this["opt" + n].optText.text = graphicsOptName[i];
this["opt" + n].optCB.checked = _global.graphicsOptSet[i];
n++;
}
i++;
}
Symbol 351 Button
on (press) {
sboard.dir = "up";
}
on (release) {
sboard.dir = "stop";
}
Symbol 352 Button
on (press) {
sboard.dir = "down";
}
on (release) {
sboard.dir = "stop";
}
Symbol 359 MovieClip Frame 1
stop();
Symbol 359 MovieClip Frame 2
stop();
Symbol 369 MovieClip [TMP6pbk6uzm9i] Frame 1
var arrScore = new Array();
mcScoreboard.sboard.dir = "stop";
mcScoreboard.sboard.mcScoreHolder.mcScore._visible = false;
mcLabel._visible = false;
var main = this;
xmlPlayer = new XML();
xmlPlayer.ignoreWhite = true;
xmlPlayer.onLoad = function (success) {
if (success) {
myPlayer = xmlPlayer.firstChild.childNodes;
ctr2 = 0;
while (ctr2 < myPlayer.length) {
thisPlayer = main.mcScoreboard.sboard.mcScoreHolder.mcScore.duplicateMovieClip("mcScore" + ctr2, ctr2);
thisPlayer._y = ctr2 * thisPlayer._height;
thisPlayer._visible = true;
if ((ctr2 % 2) > 0) {
thisPlayer.gotoAndStop(2);
}
thisPlayer.txtNumber.text = (ctr2 + 1) + ")";
thisPlayer.txtNickname.text = myPlayer[ctr2].attributes.player;
thisPlayer.txtScore.text = myPlayer[ctr2].attributes.score;
ctr2++;
}
main.mcScoreboard.mcLoading._visible = false;
main.mcScoreboard.sboard.mcScoreHolder.item = myPlayer.length;
main.mcScoreboard.sboard.mcScoreHolder.speedy = 0;
main.mcScoreboard.sboard.mcScoreHolder.desty = 0;
main.mcScoreboard.sboard.mcScoreHolder.onEnterFrame = function () {
if ((this.desty < 0) && (this._parent.dir == "up")) {
this.desty = this.desty + 10;
if (this.desty > 0) {
this.desty = 0;
}
}
if ((this.desty > (this._parent.mcBlock._height - (this.mcScore._height * this.item))) && (this._parent.dir == "down")) {
this.desty = this.desty - 10;
if (this.desty < (this._parent.mcBlock._height - (this.mcScore._height * this.item))) {
this.desty = this._parent.mcBlock._height - (this.mcScore._height * this.item);
}
}
this.speedy = (this.desty - this._y) + (this.speedy * 0.4);
this._y = this._y + this.speedy;
};
}
};
xmlPlayer.load(((("http://www.freeonlinegames.com/scoreboard/getTopPlayer.php?id=" + gameID) + "&rand=") + random(999999)) + "&filt=1");
Symbol 376 MovieClip Frame 1
var layerColors = [10531979, 11583901, 12966573];
i = 0;
while (i < (Math.floor(Stage.width / 10) + 2)) {
if (i != 0) {
p0.duplicateMovieClip("p" + i, i);
this["p" + i].cacheAsBitmap = true;
}
this["p" + i].xoff = i * 10;
this["p" + i].tileUpdated = true;
i++;
}
y = 0;
last_y = 0;
this.onEnterFrame = function () {
if (!_global.graphicsOptSet[1]) {
return(undefined);
}
_y = ((-_root.scroll_y) / 2);
i = 0;
while (i < (Math.floor(Stage.width / 10) + 2)) {
if ((this["p" + i].xoff - (_root.scroll_x / 2)) < -10) {
this["p" + i].xoff = this["p" + i].xoff + ((Math.floor(Stage.width / 10) + 2) * 10);
this["p" + i].tileUpdated = true;
}
if ((this["p" + i].xoff - (_root.scroll_x / 2)) > ((Math.floor(Stage.width / 10) + 1) * 10)) {
this["p" + i].xoff = this["p" + i].xoff - ((Math.floor(Stage.width / 10) + 2) * 10);
this["p" + i].tileUpdated = true;
}
if (this["p" + i].tileUpdated) {
if (_root.scroll_x) {
this["p" + i].tileUpdated = false;
}
x = (i * 10) - ((_root.scroll_x / 2) % 10);
last_y = y;
y = _root.getGroundHeight(this["p" + i].xoff * 2) / 2;
nextY = (_root.getGroundHeight((this["p" + i].xoff * 2) + 20) / 2) - y;
n = Math.floor(Math.floor((this["p" + i].xoff * 2) / 10));
this["p" + i]._y = y;
bgDraw = this["p" + i];
bgDraw.clear();
if (_global.graphicsOptSet[3]) {
j = 0;
while (j <= 2) {
Nj = 2 - j;
bgDraw.beginFill(layerColors[j]);
bgDraw.moveTo(0, Math.max(0, _root.SurfaceLayer[n] - j) * (Nj * 25));
bgDraw.lineTo(11, nextY + (Math.max(0, _root.SurfaceLayer[n + 2] - j) * (Nj * 25)));
if (j == 0) {
bgDraw.lineTo(11, 500);
bgDraw.lineTo(0, 500);
} else {
bgDraw.lineTo(11, nextY + (Math.max(0, (_root.SurfaceLayer[n + 2] - j) + 1) * ((Nj + 1) * 25)));
bgDraw.lineTo(0, Math.max(0, (_root.SurfaceLayer[n] - j) + 1) * ((Nj + 1) * 25));
}
j++;
}
} else {
bgDraw.beginFill(layerColors[0]);
bgDraw.moveTo(0, 0);
bgDraw.lineTo(11, nextY + _root.SurfaceLayer[n + 2]);
bgDraw.lineTo(11, 500);
bgDraw.lineTo(0, 500);
}
bgDraw.endFill();
}
this["p" + i]._x = this["p" + i].xoff - (_root.scroll_x / 2);
i++;
}
};
Symbol 442 MovieClip Frame 1
i = 0;
while (i < (Math.floor(Stage.width / 10) + 2)) {
if (i != 0) {
surface0.duplicateMovieClip("surface" + i, i);
}
_root.ground2["surface" + i].cacheAsBitmap = true;
_root.ground2["surface" + i].xoff = i * 10;
_root.ground2["surface" + i].tileUpdated = true;
i++;
}
Symbol 464 MovieClip Frame 1
function processPhysics() {
if (needsInit) {
xD = ((thisI & 1) * 25) + 28;
yD = (((thisI & 2) / 2) * 20) + 20;
needsInit = false;
angleOff = Math.atan2(yD, xD);
dOff = Math.sqrt((yD * yD) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
laX = aX;
laY = aY;
}
if ((yOff + yD) < 50) {
cargoWeight = 12;
a = Math.atan2((-sVy) + cargoWeight, -sVx) - _root.angleNearZero(_root.cur_truck_rot + Math.PI);
v = Math.sqrt((((-sVy) + cargoWeight) * ((-sVy) + cargoWeight)) + (sVx * sVx));
yV = (-(Math.sin(a) * v)) + (Math.random() - 0.5);
yOff = yOff + (yV * 0.8);
yOff = Math.max(0, yOff);
if ((lastyOff != 0) && (yOff == 0)) {
_root.playSFX(2 + Math.round(Math.random()), Math.min(100, 50 + (velY * 5)));
}
lastyOff = yOff;
yD2 = yOff + yD;
angleOff = Math.atan2(yD2, xD);
dOff = Math.sqrt((yD2 * yD2) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
velX = (aX - laX) * 0.9;
velY = (aY - laY) * 0.9;
sVx = aX - laX;
sVy = aY - laY;
laX = aX;
laY = aY;
_rotation = _root.body._rotation;
_root.objects_in_truck++;
} else {
velY = velY + 2;
aX = aX + velX;
aY = aY + velY;
velX = velX * 0.9;
velY = velY * 0.9;
}
}
angleOff = 0;
dOff = 0;
yOff = 0;
sVx = 0;
sVy = 0;
xD = 0;
yD = 0;
laX = 0;
laY = 0;
velX = 0;
velY = 0;
lastyOff = 0;
gotoAndStop (1);
Symbol 464 MovieClip Frame 2
function processPhysics() {
if (needsInit) {
i = 0;
while (i < 11) {
waterD.push({level:50, pressure:0});
i++;
}
needsInit = false;
}
angleOff = 0.701259922866277;
dOff = 58.8982172905089;
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
if (_root.points[0].acc.x && (_root.points[0].acc.y)) {
a = Math.atan2((-_root.points[0].acc.y) + 3, -_root.points[0].acc.x) - _root.angleNearZero(_root.cur_truck_rot + Math.PI);
xV = (Math.random() - 0.5) + ((Math.cos(a) * Math.sqrt(((_root.points[0].acc.x - 3) * (_root.points[0].acc.x - 3)) + (_root.points[0].acc.x * _root.points[0].acc.x))) * 10);
yV = (Math.random() - 0.5) + ((Math.sin(a) * Math.sqrt(((_root.points[0].acc.y - 3) * (_root.points[0].acc.y - 3)) + (_root.points[0].acc.y * _root.points[0].acc.y))) * 10);
} else {
xV = 0;
yV = 0;
}
velX = (aX - laX) * 0.9;
velY = (aY - laY) * 0.9;
laX = aX;
laY = aY;
_rotation = _root.body._rotation;
water.clear();
water.beginFill(6860247, 50);
water.lineStyle(1, 11851755, 75);
water.moveTo(0, 40);
i = 1;
while (i < 11) {
waterD[i - 1].level = waterD[i - 1].level - xV;
waterD[i].level = waterD[i].level + xV;
i++;
}
i = 0;
while (i < 11) {
waterD[i].level = waterD[i].level + (waterD[i].pressure / 2);
waterD[i].pressure = waterD[i].pressure / 2;
if (waterD[i].level > 60) {
xd = -60 + (i * 5);
yd = -waterD[i].level;
rot = Math.atan2(yd, xd) + (_rotation / 57.2957795);
dist = Math.sqrt((yd * yd) + (xd * xd));
_root.createEfx(5, _root.points[0].pos.x + (Math.cos(rot) * dist), _root.points[0].pos.y + (Math.sin(rot) * dist), _root.points[0].vel.x, _root.points[0].vel.y - (waterD[i].level - 60), waterD[i].level - 60);
if ((Math.random() * 60) > waterD[i].level) {
_root.playSFX(13);
}
waterD[i].level = 60;
}
_root.objects_in_truck = _root.objects_in_truck + waterD[i].level;
water.lineTo(i * 5, Math.min(50, 50 - waterD[i].level));
i++;
}
i = 1;
while (i < 11) {
diff = (waterD[i - 1].level - waterD[i].level) / 1.4;
waterD[i - 1].level = waterD[i - 1].level - diff;
waterD[i].level = waterD[i].level + diff;
waterD[i - 1].pressure = waterD[i - 1].pressure - (diff * 0.5);
waterD[i].pressure = waterD[i].pressure + (diff * 0.5);
i++;
}
_root.objects_in_truck = Math.round(_root.objects_in_truck);
water.lineTo(50, 40);
water.endFill();
}
angleOff = 0;
dOff = 0;
xD = 0;
yD = 0;
laX = 0;
laY = 0;
velX = 0;
velY = 0;
var waterD = new Array();
gotoAndStop (6);
Symbol 464 MovieClip Frame 3
function processPhysics() {
if (needsInit) {
xD = 24;
yD = thisI * 4;
needsInit = false;
angleOff = Math.atan2(yD, xD);
dOff = Math.sqrt((yD * yD) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
laX = aX;
laY = aY;
}
if ((yOff + yD) < 38) {
cargoWeight = 3;
a = Math.atan2((-sVy) + cargoWeight, -sVx) - _root.angleNearZero(_root.cur_truck_rot + Math.PI);
v = Math.sqrt((((-sVy) + cargoWeight) * ((-sVy) + cargoWeight)) + (sVx * sVx));
yV = (-(Math.sin(a) * v)) + (Math.random() - 0.5);
yOff = yOff + (yV * 0.7);
yOff = Math.max(0, yOff);
if ((lastyOff != 0) && (yOff == 0)) {
_root.playSFX(0, Math.min(100, Math.min(25 + (velY * 5), 70)));
}
lastyOff = yOff;
yD2 = yOff + yD;
angleOff = Math.atan2(yD2, xD);
dOff = Math.sqrt((yD2 * yD2) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
velX = (aX - laX) * 0.9;
velY = (aY - laY) * 0.9;
sVx = aX - laX;
sVy = aY - laY;
laX = aX;
laY = aY;
_rotation = _root.body._rotation;
_root.objects_in_truck++;
} else {
velY = velY + 1;
aX = aX + velX;
aY = aY + velY;
velX = velX * 0.9;
velY = velY * 0.9;
}
}
angleOff = 0;
dOff = 0;
yOff = 0;
xD = 0;
yD = 0;
sVx = 0;
sVy = 0;
laX = 0;
laY = 0;
velX = 0;
velY = 0;
gotoAndStop (3);
Symbol 464 MovieClip Frame 4
function processPhysics() {
if (needsInit) {
xD = ((thisI & 1) * 25) + 12.5;
yD = 0;
needsInit = false;
angleOff = Math.atan2(yD, xD);
dOff = Math.sqrt((yD * yD) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
laX = aX;
laY = aY;
}
if ((yOff + yD) < 40) {
cargoWeight = 3;
a = Math.atan2((-sVy) + cargoWeight, -sVx) - _root.angleNearZero(_root.cur_truck_rot + Math.PI);
v = Math.sqrt((((-sVy) + cargoWeight) * ((-sVy) + cargoWeight)) + (sVx * sVx));
yV = (-(Math.sin(a) * v)) + (Math.random() - 0.5);
yOff = yOff + (yV * 0.7);
yOff = Math.max(0, yOff);
if ((lastyOff != 0) && (yOff == 0)) {
_root.playSFX(7 + Math.round(Math.random()), Math.min(100, 50 + (velY * 5)));
}
lastyOff = yOff;
yD2 = yOff + yD;
angleOff = Math.atan2(yD2, xD);
dOff = Math.sqrt((yD2 * yD2) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
velX = (aX - laX) * 0.9;
velY = (aY - laY) * 0.9;
sVx = aX - laX;
sVy = aY - laY;
laX = aX;
laY = aY;
_rotation = _root.body._rotation;
_root.objects_in_truck++;
} else {
velY = velY + 1;
aX = aX + velX;
aY = aY + velY;
velX = velX * 0.9;
velY = velY * 0.9;
}
}
angleOff = 0;
dOff = 0;
yOff = 0;
xD = 0;
yD = 0;
sVx = 0;
sVy = 0;
laX = 0;
laY = 0;
velX = 0;
velY = 0;
gotoAndStop (4);
Symbol 464 MovieClip Frame 5
function processPhysics() {
if (needsInit) {
xD = (thisI * 16) + 8;
yD = 0;
needsInit = false;
i = 0;
while (i < 4) {
truckSegmentAngle[i] = 0;
truckSegmentWeight[i] = 0.2;
i++;
}
truckSegmentWeight[3] = (0.8 + (Math.random() * 0.2)) - 0.1;
angleOff = Math.atan2(yD, xD);
dOff = Math.sqrt((yD * yD) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
laX = aX;
laY = aY;
}
if ((yOff + yD) < 38) {
cargoWeight = 5;
a = Math.atan2((-sVy) + cargoWeight, -sVx) - _root.angleNearZero(_root.cur_truck_rot + Math.PI);
v = Math.sqrt((((-sVy) + cargoWeight) * ((-sVy) + cargoWeight)) + (sVx * sVx));
yV = (-(Math.sin(a) * v)) + (Math.random() - 0.5);
yOff = yOff + (yV * 0.7);
yOff = Math.max(0, yOff);
if ((lastyOff != 0) && (yOff == 0)) {
_root.playSFX(2 + Math.round(Math.random()), Math.min(100, 50 + (velY * 5)));
}
lastyOff = yOff;
yD2 = yOff + yD;
angleOff = Math.atan2(yD2, xD);
dOff = Math.sqrt((yD2 * yD2) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
velX = (aX - laX) * 0.9;
velY = (aY - laY) * 0.9;
sVx = aX - laX;
sVy = aY - laY;
laX = aX;
laY = aY;
_rotation = _root.body._rotation;
_root.objects_in_truck++;
} else {
velY = velY + 1;
aX = aX + velX;
aY = aY + velY;
velX = velX * 0.9;
velY = velY * 0.9;
}
treeVis.treeTrunk.clear();
treeVis.treeTrunk.lineStyle(2, 6697728, 100);
trunkX = 0;
trunkY = 0;
treeVis.treeTrunk.moveTo(trunkX, trunkY);
i = 0;
while (i < 4) {
thisVel = Math.sqrt((velY * velY) + (velX * velX)) * 0.01;
truckSegmentAngle[i] = truckSegmentAngle[i] - ((_root.angleNearZero((truckSegmentAngle[i] + _root.halfPI) - Math.atan2(velY, velX)) * thisVel) * truckSegmentWeight[i]);
if (i < 3) {
truckSegmentAngle[i] = ((truckSegmentAngle[i] * 2) + truckSegmentAngle[i + 1]) / 3;
}
truckSegmentAngle[i] = truckSegmentAngle[i] * 0.8;
trunkX = trunkX + (Math.cos(truckSegmentAngle[i] - _root.halfPI) * 8);
trunkY = trunkY + (Math.sin(truckSegmentAngle[i] - _root.halfPI) * 8);
treeVis.treeTrunk.lineTo(trunkX, trunkY);
i++;
}
treeVis.TreeTop._x = trunkX + treeVis.treeTrunk._x;
treeVis.TreeTop._y = trunkY + treeVis.treeTrunk._y;
treeVis.TreeTop._rotation = truckSegmentAngle[3] * 57.2957795;
}
angleOff = 0;
dOff = 0;
yOff = 0;
xD = 0;
yD = 0;
sVx = 0;
sVy = 0;
laX = 0;
laY = 0;
velX = 0;
velY = 0;
truckSegmentAngle = new Array();
truckSegmentWeight = new Array();
gotoAndStop (5);
Symbol 464 MovieClip Frame 6
function processPhysics() {
if (needsInit) {
i = 0;
while (i < 11) {
waterD.push({level:50, pressure:0});
i++;
}
needsInit = false;
}
angleOff = 0.701259922866277;
dOff = 58.8982172905089;
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
if (_root.points[0].acc.x && (_root.points[0].acc.y)) {
a = Math.atan2((-_root.points[0].acc.y) + 3, -_root.points[0].acc.x) - _root.angleNearZero(_root.cur_truck_rot + Math.PI);
xV = (Math.random() - 0.5) + ((Math.cos(a) * Math.sqrt(((_root.points[0].acc.x - 3) * (_root.points[0].acc.x - 3)) + (_root.points[0].acc.x * _root.points[0].acc.x))) * 10);
yV = (Math.random() - 0.5) + ((Math.sin(a) * Math.sqrt(((_root.points[0].acc.y - 3) * (_root.points[0].acc.y - 3)) + (_root.points[0].acc.y * _root.points[0].acc.y))) * 10);
} else {
xV = 0;
yV = 0;
}
velX = (aX - laX) * 0.9;
velY = (aY - laY) * 0.9;
laX = aX;
laY = aY;
_rotation = _root.body._rotation;
water.clear();
water.beginFill(6860247, 50);
water.lineStyle(1, 11851755, 75);
water.moveTo(0, 40);
i = 1;
while (i < 11) {
waterD[i - 1].level = waterD[i - 1].level - xV;
waterD[i].level = waterD[i].level + xV;
i++;
}
i = 0;
while (i < 11) {
waterD[i].level = waterD[i].level + (waterD[i].pressure / 2);
waterD[i].pressure = waterD[i].pressure / 2;
if (waterD[i].level > 50) {
xd = -50 + (i * 5);
yd = -waterD[i].level;
rot = Math.atan2(yd, xd) + (_rotation / 57.2957795);
dist = Math.sqrt((yd * yd) + (xd * xd));
_root.createEfx(5, _root.points[0].pos.x + (Math.cos(rot) * dist), _root.points[0].pos.y + (Math.sin(rot) * dist), _root.points[0].vel.x, _root.points[0].vel.y - (waterD[i].level - 50), waterD[i].level - 50);
if ((Math.random() * 60) > waterD[i].level) {
_root.playSFX(13);
}
waterD[i].level = 50;
}
_root.objects_in_truck = _root.objects_in_truck + waterD[i].level;
water.lineTo(i * 5, Math.min(50, 50 - waterD[i].level));
i++;
}
i = 1;
while (i < 11) {
diff = (waterD[i - 1].level - waterD[i].level) / 1.4;
waterD[i - 1].level = waterD[i - 1].level - diff;
waterD[i].level = waterD[i].level + diff;
waterD[i - 1].pressure = waterD[i - 1].pressure - (diff * 0.5);
waterD[i].pressure = waterD[i].pressure + (diff * 0.5);
i++;
}
_root.objects_in_truck = Math.round(_root.objects_in_truck);
water.lineTo(50, 40);
water.endFill();
}
angleOff = 0;
dOff = 0;
xD = 0;
yD = 0;
laX = 0;
laY = 0;
velX = 0;
velY = 0;
var waterD = new Array();
gotoAndStop (6);
Symbol 464 MovieClip Frame 7
function processPhysics() {
if (needsInit) {
invin = 30;
xD = 24;
yD = (3 - thisI) * 4;
needsInit = false;
firstTime = true;
angleOff = Math.atan2(yD, xD);
dOff = Math.sqrt((yD * yD) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
sVx = 0;
sVy = 0;
laX = aX;
laY = aY;
lastyV = -1000;
broken = false;
_visible = true;
}
if (broken) {
} else if ((yOff + yD) < 50) {
cargoWeight = 8;
a = Math.atan2((-sVy) + cargoWeight, -sVx) - _root.angleNearZero(_root.cur_truck_rot + Math.PI);
v = Math.sqrt((((-sVy) + cargoWeight) * ((-sVy) + cargoWeight)) + (sVx * sVx));
yV = (-(Math.sin(a) * v)) + (Math.random() - 0.5);
if (lastyV == -1000) {
lastyV = yV;
}
yOff = yOff + (yV * 0.4);
yOff = yOff + yV;
yOff = Math.max(0, yOff);
yD2 = yOff + yD;
angleOff = Math.atan2(yD2, xD);
dOff = Math.sqrt((yD2 * yD2) + (xD * xD));
aX = _root.points[0].pos.x + (Math.cos(angleOff + _root.cur_truck_rot) * dOff);
aY = _root.points[0].pos.y + (Math.sin(angleOff + _root.cur_truck_rot) * dOff);
velX = (aX - laX) * 0.9;
velY = (aY - laY) * 0.9;
sVx = aX - laX;
sVy = aY - laY;
laX = aX;
laY = aY;
_rotation = _root.body._rotation;
_root.objects_in_truck++;
if (invin > 0) {
invin--;
}
if ((invin == 0) && (Math.abs(lastyV - yV) > (6 + (Math.random() * 4)))) {
broken = true;
_visible = false;
x = 0;
while (x < 5) {
y = 0;
while (y < 4) {
xd = -50 + (x * 10);
yd = -40 + (y * 10);
rot = Math.atan2(yd, xd) + (_rotation / 57.2957795);
dist = Math.sqrt((yd * yd) + (xd * xd));
_root.createEfx(6, _root.points[0].pos.x + (Math.cos(rot) * dist), _root.points[0].pos.y + (Math.sin(rot) * dist), _root.points[0].vel.x + ((Math.random() * 3) - 1.5), _root.points[0].vel.y + ((Math.random() * 3) - 1.5));
_root.playSFX(4, 60);
y++;
}
x++;
}
}
lastyV = yV;
} else {
velY = velY + 1;
aX = aX + velX;
aY = aY + velY;
velX = velX * 0.9;
velY = velY * 0.9;
}
}
angleOff = 0;
dOff = 0;
yOff = 0;
xD = 0;
yD = 0;
sVx = 0;
sVy = 0;
laX = 0;
laY = 0;
velX = 0;
velY = 0;
lastyV = 0;
broken = false;
invin = 0;
gotoAndStop (7);
Symbol 464 MovieClip Frame 8
function processPhysics() {
if (needsInit && (waitToInit == 0)) {
aX = ((_root.container[0].x + _root.container[2].x) / 2) + (((thisI % 3) - 1) * 8);
aY = ((_root.container[0].y + _root.container[2].y) / 2) + ((Math.floor(thisI / 3) - 1) * 8);
velX = 0;
accX = 0;
velY = 0;
accY = 0;
inTruckLast = true;
needsInit = false;
} else if (waitToInit > 0) {
waitToInit--;
}
if (Math.round(aX - _root.scroll_x) > 500) {
return(undefined);
}
accY = _root.gravity;
velY = velY + accY;
velX = velX * 0.99;
velY = velY * 0.99;
var _local6 = Math.min(6, Math.sqrt((velX * velX) + (velY * velY)));
i = 1;
while (i < _root.maxCargo) {
if (i != thisI) {
var _local4 = _root["cargo" + i].activeCargo;
var _local2 = aX - _local4.aX;
var _local3 = aY - _local4.aY;
var _local5 = Math.sqrt((_local2 * _local2) + (_local3 * _local3));
if (_local5 < 6) {
angle = Math.atan2(_local3, _local2);
velX = velX + ((Math.cos(angle) * _local6) * 0.05);
velY = velY + ((Math.sin(angle) * _local6) * 0.05);
}
}
i++;
}
cgh[0] = _root.genericCheckGroundhit(aX, aY, velX, velY, 2, 1.4);
if (cgh[0][0]) {
_local6 = Math.sqrt((velX * velX) + (velY * velY));
if (_local6 > 2) {
_root.playSFX(1, Math.min(100, _local6 * 20), aX);
}
velX = cgh[0][1];
velY = cgh[0][2];
aX = aX - cgh[0][3];
aY = aY - cgh[0][4];
}
hit[0] = 0;
hit[1] = 0;
hit[2] = 0;
maxHitAt = 0;
maxHitI = -1;
totHit = 0;
i = 0;
while (i < 3) {
switch (i) {
case 0 :
cgh[i] = _root.checkLineHit(aX, aY, velX, velY, 3, 0.2, 1, _root.container[0].x, _root.container[0].y, _root.container[1].x, _root.container[1].y, _root.points[0].vel.x, _root.points[0].vel.y);
break;
case 1 :
cgh[i] = _root.checkLineHit(aX, aY, velX, velY, 3, 0.2, 1, _root.container[2].x, _root.container[2].y, _root.container[3].x, _root.container[3].y, _root.points[0].vel.x, _root.points[0].vel.y);
break;
case 2 :
cgh[i] = _root.checkLineHit(aX, aY, velX, velY, 3, 0.2, 1, _root.container[1].x, _root.container[1].y, _root.container[2].x, _root.container[2].y, _root.points[0].vel.x, _root.points[0].vel.y);
}
if (cgh[i][0]) {
totHit++;
aX = aX - cgh[i][3];
aY = aY - cgh[i][4];
}
if ((cgh[i][0] && (cgh[i][5] > maxHitAt)) && (!hit[i])) {
maxHitAt = cgh[i][5];
maxHitI = i;
hit[i] = 1;
}
i++;
}
if (totHit > 1) {
velX = _root.points[0].vel.x;
velY = _root.points[0].vel.y;
} else if (maxHitI != -1) {
velX = cgh[maxHitI][1];
velY = cgh[maxHitI][2];
}
aX = aX + velX;
aY = aY + velY;
var _local2 = _root.points[0].pos.x - aX;
var _local3 = _root.points[0].pos.y - aY;
dist = Math.sqrt((_local2 * _local2) + (_local3 * _local3));
angle = Math.atan2(_local3, _local2) - _root.cur_truck_rot;
_local2 = (Math.cos(angle) * dist) - _root.containerCONST.x1;
_local3 = (Math.sin(angle) * dist) - _root.containerCONST.y1;
if (inTruckLast) {
changed = false;
if (_local3 >= 0) {
if ((_local2 < 4) && (_local2 > -20)) {
_local2 = 4;
changed = true;
}
if ((_local2 > 47) && (_local2 < 71)) {
_local2 = 47;
changed = true;
}
}
if ((_local3 > 27) && (_local3 < 51)) {
_local3 = 27;
changed = true;
}
if (changed) {
xd2 = _local2 + _root.containerCONST.x1;
yd2 = _local3 + _root.containerCONST.y1;
dist = Math.sqrt((xd2 * xd2) + (yd2 * yd2));
angle = Math.atan2(-yd2, -xd2) + _root.cur_truck_rot;
aX = (Math.cos(angle) * dist) + _root.points[0].pos.x;
aY = (Math.sin(angle) * dist) + _root.points[0].pos.y;
}
}
if ((((_local2 >= 0) && (_local3 >= 0)) && (_local2 <= 51)) && (_local3 <= 31)) {
_root.objects_in_truck++;
inTruckLast = true;
} else {
inTruckLast = false;
}
}
aY = 0;
aX = 400 + (Math.random() * 600);
velX = 0;
velY = 0;
accX = 0;
accY = 0;
cgh = new Array();
cgh[0] = new Array();
cgh[1] = new Array();
cgh[2] = new Array();
hit = new Array();
inTruckLast = true;
waitToInit = 0;
gotoAndStop (8);
Symbol 464 MovieClip Frame 9
function processPhysics() {
}
gotoAndStop (9);
Symbol 494 MovieClip Frame 1
rotSpeed = (Math.random() * 30) - 15;
piece = Math.floor(Math.random() * 5) + 1;
this.onEnterFrame = function () {
_rotation = (_rotation + rotSpeed);
pieces.gotoAndStop(piece);
};
Symbol 495 MovieClip Frame 1
gotoAndStop (1);
Symbol 495 MovieClip Frame 31
gotoAndStop (1);
Symbol 495 MovieClip Frame 32
the_text.text = _parent.xtra;
Symbol 495 MovieClip Frame 61
_parent._xscale = (_parent._yscale = 100);
gotoAndStop (1);
Symbol 495 MovieClip Frame 62
the_text.text = _parent.xtra;
Symbol 495 MovieClip Frame 91
gotoAndStop (1);
Symbol 495 MovieClip Frame 121
gotoAndStop (1);
Symbol 495 MovieClip Frame 151
gotoAndStop (1);
Symbol 495 MovieClip Frame 181
gotoAndStop (1);
Symbol 496 MovieClip Frame 1
vel_x = 0;
vel_y = 0;
cur_x = 0;
cur_y = 0;
curEfx = 0;
efxScroll = [0, 1, 0, 0, 1, 1, 1];
setEfx = function (n) {
if (efxScroll[curEfx]) {
this._x = cur_x - _root.scroll_x;
this._y = cur_y - _root.scroll_y;
} else {
this._x = cur_x;
this._y = cur_y;
}
this._visible = false;
this._alpha = 100;
curEfx = n;
efxAnimations.gotoAndPlay(((n - 1) * 30) + 2);
};
this.onEnterFrame = function () {
switch (curEfx) {
case 1 :
cur_y = cur_y - 2;
break;
case 2 :
cur_y = cur_y - 2;
_xscale = (_xscale - 4);
_yscale = (_yscale - 4);
this._alpha = this._alpha - 3;
break;
case 5 :
case 6 :
vel_y = vel_y + 1;
}
vel_x = vel_x * 0.95;
vel_y = vel_y * 0.95;
cur_x = cur_x + vel_x;
cur_y = cur_y + vel_y;
if (efxScroll[curEfx]) {
this._x = cur_x - _root.scroll_x;
this._y = cur_y - _root.scroll_y;
} else {
this._x = cur_x;
this._y = cur_y;
}
this._visible = true;
};
Symbol 540 MovieClip Frame 129
gotoAndStop (129);
Symbol 543 MovieClip Frame 1
this.onEnterFrame = function () {
secondWorker.gotoAndStop(((this._currentframe + 30) % 59) + 1);
if ((Math.random() > 0.999) && (boss._currentframe == 129)) {
boss._visible = true;
boss.gotoAndPlay(1);
} else if (boss._currentframe == 129) {
boss._visible = false;
}
};
Symbol 571 MovieClip Frame 1
_visible = false;
this.onEnterFrame = function () {
if (!_visible) {
return(undefined);
}
multFact = (50 - Math.max(0, addCounter - 50)) / 50;
display.text = (((((((_root.cargoNames[checkPoint] + ": ") + cargoLeft) + "\nx Cargo Value: ") + Math.round(100 / _root.cargoCount[checkPoint])) + " \nx Time Left:") + level_time) + "\nPoints Gained: ") + Math.round(((multFact * cargoLeft) * ((100 / _root.cargoCount[checkPoint]) / _root.cargoDiv[checkPoint])) * level_time);
_root.Score.text = (_root.level_score = scoreStart + Math.round((((multFact * cargoLeft) * Math.round(100 / _root.cargoCount[checkPoint])) * level_time) / _root.cargoDiv[checkPoint]));
if ((_root.level_score > scoreStart) && (multFact < 0.999999999)) {
_root.playSFX(9);
}
addCounter--;
_alpha = Math.min(addCounter * 4, 100);
display._visible = _alpha == 100;
if (addCounter == 0) {
_alpha = 0;
_visible = false;
_root.pauseForInfo = false;
_root.showNormalMessage(_root.cargoMessages[checkPoint + 1], true);
}
};
Symbol 584 MovieClip [TMPd4lzhusf84] Frame 1
function earl223(val) {
var _local3 = new Array("_", "Z", "y", "x", "W", "v", "u", "T", "s", "r", "Q", "P", "O", "n", "m", "L", "K", "j", "i", "H", "g", "F", "e", "d", "C", "B", "a");
var _local2 = "";
val1 = 0;
while (val1 < val.length) {
if (val.substr(val1, 1) == ":") {
_local2 = _local2 + ":";
} else if (Number(val.substr(val1, 2)) > 26) {
_local2 = _local2 + _local3[Number(val.substr(val1, 1))];
} else if (Number(val.substr(val1, 1)) == 0) {
_local2 = _local2 + "_";
} else {
_local2 = _local2 + _local3[Number(val.substr(val1, 2))];
val1++;
}
val1++;
}
return(_local2);
}
mcButtonMain.mcButton.FOG.swapDepths(0);
mcButtonMain.mcButton.attachMovie(btnMC, "btnMC", 0);
mcButtonMain.mcButton.btnMC.onRelease = function () {
var _local2 = new LoadVars();
_local2.onLoad = function () {
getURL ("http://www.freeonlinegames.com/scoreboard.php?", "_blank");
};
_local2.score = Score;
_local2.score2 = earl223(String(Score));
_local2.gamer = gameID;
_local2.id = random(9999999);
_local2.toString();
_local2.sendAndLoad("http://www.freeonlinegames.com/scoreboard/score_c.php", _local2, "POST");
delete this.onRelease;
};