Frame 1
stop();
Stage.showMenu = false;
this.onEnterFrame = function () {
var _local1 = this;
sofar = _local1.getBytesLoaded();
total = _local1.getBytesTotal();
Bar._width = int((sofar / total) * 100);
if (sofar == total) {
delete _local1.onEnterFrame;
nextFrame();
}
};
Frame 2
String.prototype.addCommas = function () {
var _local3 = this.length;
var _local2 = "";
var _local1 = 0;
while (_local1 <= _local3) {
_local2 = this.charAt(_local3 - _local1) + _local2;
if ((((_local1 % 3) == 0) && (_local1 > 0)) && (_local1 < _local3)) {
_local2 = "," + _local2;
}
_local1++;
}
return(_local2);
};
game_so = SharedObject.getLocal("neavePacman");
score = 0;
Frame 4
function initVars() {
pacDir = 3;
pacPos = 0;
pacX = 14;
pacY = 23;
nextX = pacX - 1;
nextY = pacY;
nextPacDir = 3;
ghKill = 100;
ghBlue = 0;
numEyes = 0;
Pacman.gotoAndStop(1);
pacStep = 4;
pacPosMax = 2;
pauseCount = 0;
with (Pacman) {
_x = OFFX + (12 * pacX);
_y = OFFY + (12 * pacY);
_rotation = 0;
}
tellTarget (Ghost[1]) {
ghPos = 1;
ghDir = 3;
ghX = 13;
ghY = 11;
ghNX = ghX - 1;
_y = (_root.OFFY + 132);
cOrig = 14483456 /* 0xDD0000 */;
};
tellTarget (Ghost[2]) {
ghDir = 0;
ghX = 13;
cOrig = 16751001 /* 0xFF9999 */;
};
tellTarget (Ghost[3]) {
ghDir = 2;
ghX = 11;
cOrig = 6750207 /* 0x66FFFF */;
};
tellTarget (Ghost[4]) {
ghDir = 2;
ghX = 15;
cOrig = 16750848 /* 0xFF9900 */;
};
g = 1;
while (g < 5) {
tellTarget (Ghost[g]) {
if (this.g > 1) {
ghPos = 0;
ghY = 14;
ghNX = ghX;
_y = (_root.OFFY + 174);
}
_x = ((_root.OFFX + (12 * ghX)) + 6);
gotoAndStop (1);
Eyes.gotoAndStop(1);
gNum = 0;
ghNY = ghY;
ghStep = 4;
ghPosMax = 2;
ghFast = true;
Shape._visible = true;
Shape.Hit._visible = true;
c = new Color(Shape);
c.setRGB(cOrig);
};
g++;
}
}
function setPacMove(d) {
var _local1 = d;
if (_local1 == 0) {
nextX = pacX;
nextY = pacY - 1;
Pacman._rotation = 90;
} else if (_local1 == 1) {
nextX = pacX + 1;
nextY = pacY;
Pacman._rotation = 180;
} else if (_local1 == 2) {
nextX = pacX;
nextY = pacY + 1;
Pacman._rotation = -90;
} else if (_local1 == 3) {
nextX = pacX - 1;
nextY = pacY;
Pacman._rotation = 0;
}
}
function setGhMove(d, g) {
with (Ghost[g]) {
if (d == 0) {
ghNX = ghX;
ghNY = ghY - 1;
} else if (d == 1) {
ghNX = ghX + 1;
ghNY = ghY;
} else if (d == 2) {
ghNX = ghX;
ghNY = ghY + 1;
} else if (d == 3) {
ghNX = ghX - 1;
ghNY = ghY;
}
}
}
function startBGSnd() {
var _local1 = _root;
tellTarget ("BGSnd") {
if (_local1.ghBlue > 2) {
if (_local1.numEyes) {
EyesGh.start(0, 100);
BlueGh.stop();
} else {
EyesGh.stop();
BlueGh.start(0, 100);
}
} else {
BlueGh.stop();
EyesGh.stop();
_local1["Back" + _local1.bgNum].start(0, 1000);
}
};
}
OFFX = 18;
OFFY = 18;
score = 0;
lastScore = 0;
lives = 3;
level = 0;
fruitNum = 1;
notMute = true;
newLev = true;
newGame = true;
newLife = false;
quttting = false;
quit = false;
Snd.ChSnd = true;
Pacman.Hit._visible = false;
ghPause = 40;
ghBVal = 162;
ghMove = new Array(4);
ghChoice = new Array(4);
ghBest = new Array(4);
var g = 1;
while (g < 5) {
Ghost.attachMovie("Ghost", g, g);
Ghost.attachMovie("GhKill", "K" + g, g + 4);
Ghost["K" + g].kval = "";
g++;
}
var i = 1;
while (i < 5) {
_root["Life" + i].gotoAndStop(1);
if (i >= lives) {
_root["Life" + i]._visible = false;
}
i++;
}
m = "#############################............##............##.####.#####.##.#####.####.##O####.#####.##.#####.####O##.####.#####.##.#####.####.##..........................##.####.##.########.##.####.##.####.##.########.##.####.##......##....##....##......#######.##### ## #####.############.##### ## #####.############.## ##.############.## ######## ##.############.## # # # ## ##.######L . # # # ## . R######.## ### #### ##.############.## ######## ##.############.## ##.############.## ######## ##.############.## ######## ##.#######............##............##.####.#####.##.#####.####.##.####.#####.##.#####.####.##O..##....... .......##..O####.##.##.########.##.##.######.##.##.########.##.##.####......##....##....##......##.##########.##.##########.##.##########.##.##########.##..........................#############################";
var i = -1;
while (i < 29) {
Maze.attachMovie("Empty", i, i + 1);
i++;
}
pos = 0;
var j = 0;
while (j < 31) {
var i = 0;
while (i < 28) {
Maze[i][j] = m.charAt(pos++);
pill = false;
if (Maze[i][j] == ".") {
pill = true;
Maze[i].attachMovie("Pill", "P" + j, pos);
}
if (Maze[i][j] == "O") {
pill = true;
Maze[i].attachMovie("Power", "P" + j, pos);
}
if (pill) {
with (Maze[i]["P" + j]) {
_x = OFFX + (12 * i);
_y = OFFY + (12 * j);
}
}
i++;
}
j++;
}
Instance of Symbol 30 MovieClip [Empty] "Maze" in Frame 4
onClipEvent (keyDown) {
with (_root) {
if (Key.getCode() == 38) {
nextPacDir = 0;
} else if (Key.getCode() == 39) {
nextPacDir = 1;
} else if (Key.getCode() == 40) {
nextPacDir = 2;
} else if (Key.getCode() == 37) {
nextPacDir = 3;
} else if (playing && ((Key.getCode() == 80) || (Key.getCode() == 112))) {
if (Ready._visible) {
Ready._visible = false;
Ready.gotoAndStop(1);
if (notMute) {
startBGSnd();
}
if (!stopped) {
Pacman.play();
}
play();
} else {
stop();
Ready.gotoAndStop("Paused");
Ready._visible = true;
stopAllSounds();
Pacman.stop();
}
} else if (playing && (((Key.getCode() == 81) || (Key.getCode() == 113)) || (Key.getCode() == 27))) {
quitting = true;
stop();
Ready.gotoAndStop("Quit");
Ready._visible = true;
stopAllSounds();
Pacman.stop();
} else if (quitting && ((Key.getCode() == 78) || (Key.getCode() == 110))) {
quitting = false;
Ready._visible = false;
Ready.gotoAndStop(1);
if (notMute) {
startBGSnd();
}
if (!stopped) {
Pacman.play();
}
play();
} else if (quitting && ((Key.getCode() == 89) || (Key.getCode() == 121))) {
quit = true;
play();
} else if ((playing && (!Ready._visible)) && ((Key.getCode() == 77) || (Key.getCode() == 109))) {
notMute = !notMute;
if (notMute) {
startBGSnd();
} else {
stopAllSounds();
}
} else if ((Key.getCode() == 76) || (Key.getCode() == 108)) {
toggleHighQuality();
}
}
}
Frame 5
stop();
stopAllSounds();
playing = false;
stopped = true;
Fruit.gotoAndStop(1);
if (newLev) {
newLev = false;
bgNum = 1;
pillEat = 0;
level++;
if (ghPause > 4) {
ghPause = ghPause - 4;
}
if (ghBVal > 2) {
ghBVal = ghBVal - 10;
}
if (fruitNum < 14) {
fruitNum++;
FrLev.gotoAndStop(fruitNum);
}
initVars();
if (!newGame) {
var g = 1;
while (g < 5) {
Ghost[g]._visible = false;
g++;
}
Pacman._visible = false;
BGSnd.gotoAndPlay("NewLev");
}
}
if (newLife) {
newLife = false;
Ready._visible = true;
lives--;
if (lives > 0) {
_root["Life" + lives]._visible = false;
initVars();
BGSnd.gotoAndPlay("NewLife");
} else {
Pacman._visible = false;
Ready.gotoAndStop("GameOver");
}
}
if (newGame) {
BGSnd.gotoAndPlay("NewGame");
}
Frame 6
ang = Math.abs(pacDir - nextPacDir) / 2;
if (ang == 1) {
pacDir = nextPacDir;
} else if (pacPos == 0) {
tempDir = pacDir;
pacDir = nextPacDir;
}
setPacMove(pacDir);
if (pacPos == 0) {
P = Maze[pacX]["P" + pacY];
if (P._visible) {
pacStep = 4;
pacPosMax = 2;
if (notMute) {
tellTarget ("Snd") {
if (ChSnd) {
gotoAndPlay ("Chomp1");
} else {
gotoAndPlay ("Chomp2");
}
ChSnd = !ChSnd;
};
}
P._visible = false;
pillEat++;
if (notMute) {
if (pillEat == 180) {
BGSnd.Back1.stop();
bgNum = 2;
BGSnd.Back2.start(0, 1000);
} else if (pillEat == 230) {
BGSnd.Back2.stop();
bgNum = 3;
BGSnd.Back3.start(0, 1000);
}
}
if (pillEat == 244) {
newLev = true;
gotoAndStop ("Restart");
}
score = score + 10;
if (Maze[pacX][pacY] == "O") {
score = score + 40;
if (notMute) {
BGSnd["Back" + bgNum].stop();
BGSnd.BlueGh.start(0, 100);
}
ghBlue = ghBval;
ghKill = 100;
var g = 1;
while (g < 5) {
tellTarget (Ghost[g]) {
if (Shape._visible) {
c.setRGB(13311);
gotoAndStop (2);
ghFast = false;
e = new Color(PPEyes);
e.setRGB(16777215);
}
};
g++;
}
}
} else if ((++pauseCount) % 2) {
pacStep = 4;
pacPosMax = 2;
} else {
pacStep = 6;
pacPosMax = 1;
}
if (Maze[pacX + 1][pacY] == "L") {
pacX = 28;
nextX = 27;
Pacman._x = OFFX + 336;
} else if (Maze[pacX - 1][pacY] == "R") {
pacX = -1;
nextX = 0;
Pacman._x = OFFX - 12;
}
if ((Maze[nextX][nextY] == "#") && (ang != 1)) {
pacDir = tempDir;
setPacMove(pacDir);
}
}
if (!((pacPos == 0) && (Maze[nextX][nextY] == "#"))) {
with (Pacman) {
if (nextX < pacX) {
_x = _x - pacStep;
pacPos--;
} else if (nextX > pacX) {
_x = _x + pacStep;
pacPos++;
} else if (nextY < pacY) {
_y = _y - pacStep;
pacPos--;
} else if (nextY > pacY) {
_y = _y + pacStep;
pacPos++;
}
}
if ((pacPos < 0) || (pacPos > pacPosMax)) {
if (pacPos > pacPosMax) {
pacPos = 0;
} else if (pacPos < 0) {
pacPos = pacPosMax;
}
pacX = nextX;
pacY = nextY;
}
if (stopped) {
stopped = false;
Pacman.play();
}
} else if (!stopped) {
stopped = true;
Pacman.gotoAndStop(1);
}
tellTarget ("Fruit") {
if (_currentframe == 1) {
if (!random(600)) {
gotoAndStop(_root.fruitNum);
}
} else if (fCount) {
if (hitTest(_root.Pacman.Hit)) {
gotoAndStop ("Show");
} else {
fCount--;
}
} else {
gotoAndStop (1);
}
};
if (ghBlue) {
ghBlue--;
}
unBlue = false;
var g = 1;
while (g < 5) {
with (Ghost[g]) {
if (ghBlue && (_currentframe == 2)) {
if (((((ghBlue == 50) || (ghBlue == 40)) || (ghBlue == 30)) || (ghBlue == 20)) || (ghBlue == 10)) {
c.setRGB(16777215);
e.setRGB(16711680);
} else if (((((ghBlue == 45) || (ghBlue == 35)) || (ghBlue == 25)) || (ghBlue == 15)) || (ghBlue == 5)) {
c.setRGB(13311);
e.setRGB(16777215);
} else if (ghBlue == 1) {
gotoAndStop(1);
c.setRGB(cOrig);
ghFast = true;
}
}
gTest = false;
if (ghPos == 0) {
if ((Maze[ghX + 1][ghY] == "L") && (ghDir == 3)) {
ghX = 29;
ghNX = 28;
_x = OFFX + 348;
} else if ((Maze[ghX - 1][ghY] == "R") && (ghDir == 1)) {
ghX = -2;
ghNX = -1;
_x = OFFX - 24;
} else if ((ghX > 0) && (ghX < 27)) {
var i = 0;
while (i < 4) {
ghMove[i] = 1;
i++;
}
oppDir = ((ghDir < 2) ? (ghDir + 2) : (ghDir - 2));
ghMove[oppDir] = 0;
if (Maze[ghX][ghY - 1] == "#") {
ghMove[0] = 0;
}
if (Maze[ghX + 1][ghY] == "#") {
ghMove[1] = 0;
}
if (Maze[ghX][ghY + 1] == "#") {
ghMove[2] = 0;
}
if (Maze[ghX - 1][ghY] == "#") {
ghMove[3] = 0;
}
pos = 0;
var i = 0;
while (i < 4) {
ghChoice[i] = -1;
if (ghMove[i]) {
ghChoice[pos++] = i;
}
i++;
}
bestXDir = -1;
bestYDir = -1;
if (Shape._visible && (_currentframe == 1)) {
testX = pacX;
testY = pacY;
} else {
testX = 13;
testY = 11;
}
if (testX < ghX) {
bestXDir = 3;
} else if (testX > ghX) {
bestXDir = 1;
}
if (testY < ghY) {
bestYDir = 0;
} else if (testY > ghY) {
bestYDir = 2;
}
best = 0;
var i = 0;
while (i < pos) {
if ((ghChoice[i] == bestXDir) || (ghChoice[i] == bestYDir)) {
ghBest[best++] = ghChoice[i];
}
i++;
}
if ((best == 0) || (Shape._visible && (!random(3)))) {
ghDir = ghChoice[random(pos)];
} else {
ghDir = ghBest[random(best)];
}
if (ghFast) {
ghStep = 4;
ghPosMax = 2;
} else {
ghStep = 2;
ghPosMax = 5;
}
gNum++;
if (ghX == 13) {
if ((ghY > 11) && (ghY < 15)) {
if (Shape._visible) {
gTest = true;
ghDir = 0;
if (gNum < 4) {
_y = _y - 2;
}
} else if (ghY == 13) {
unBlue = true;
numEyes--;
Shape._visible = true;
Shape.Hit._visible = true;
}
} else if (ghY == 11) {
if ((gNum == 1) && (g == 1)) {
_x = _x - 2;
}
if (gNum == 4) {
ghPos = 2;
if (ghFast) {
_x = _x + 2;
} else {
_x = _x - 2;
}
}
if (!Shape._visible) {
gTest = true;
ghDir = 2;
}
}
}
if ((ghY > 11) && (ghY < 15)) {
if ((ghX == 11) && (gNum == (ghPause + 2))) {
gTest = true;
ghDir = 1;
gNum = -1;
}
if ((ghX == 15) && (gNum == ((2 * ghPause) + 2))) {
gTest = true;
ghDir = 3;
gNum = -1;
}
}
}
}
setGhMove(ghDir, g);
if ((!((ghPos == 0) && (Maze[ghNX][ghNY] == "#"))) || (gTest)) {
if (ghNX < ghX) {
_x = _x - ghStep;
ghPos--;
} else if (ghNX > ghX) {
_x = _x + ghStep;
ghPos++;
} else if (ghNY < ghY) {
_y = _y - ghStep;
ghPos--;
} else if (ghNY > ghY) {
_y = _y + ghStep;
ghPos++;
}
Eyes.gotoAndStop(ghDir + 1);
if ((ghPos < 0) || (ghPos > ghPosMax)) {
if (ghPos > ghPosMax) {
ghPos = 0;
} else if (ghPos < 0) {
ghPos = ghPosMax;
}
ghX = ghNX;
ghY = ghNY;
}
}
if ((Shape.Hit._visible && (Pacman.Hit.hitTest(Shape.Hit))) && (!newLev)) {
if (_currentframe == 1) {
_root.stop();
playing = false;
Pacman.gotoAndPlay("Die");
} else {
BGSnd.BlueGh.stop();
ghKill = ghKill * 2;
score = score + ghKill;
ghFast = true;
if (ghPos > ghPosMax) {
ghPos = 0;
} else if (ghPos < 0) {
ghPos = ghPosMax;
}
if (notMute) {
Snd.gotoAndPlay("EatGhost");
}
gotoAndStop(1);
numEyes++;
Shape._visible = false;
Shape.Hit._visible = false;
c.setRGB(cOrig);
with (Ghost["K" + g]) {
_visible = true;
_x = Ghost[g]._x;
_y = Ghost[g]._y;
kval = ghKill;
play();
}
}
}
}
g++;
}
if (ghBlue && (notMute)) {
with (BGSnd) {
if (ghBlue == 1) {
BlueGh.stop();
EyesGh.stop();
eval ("Back" + bgNum).start(0, 1000);
} else if (unBlue && (!numEyes)) {
EyesGh.stop();
BlueGh.start(0, 100);
}
}
}
if (lastScore != score) {
s = Math.floor(score / 10000);
sTest = (s + 1) / 2;
if (((lives < 5) && (sTest == int(sTest))) && (Math.floor(lastScore / 10000) < s)) {
eval ("Life" + lives)._visible = true;
lives++;
if (notMute) {
BGSnd.ExLife.start(0, 6);
}
}
}
lastScore = score;
if (!playing) {
stop();
}
if (quit) {
gotoAndStop (2);
}
Frame 7
gotoAndPlay ("Loop");
Frame 9
stop();
name_txt.restrict = "A-Z 0-9.\\-";
name_txt.text = game_so.data.playerName;
Selection.setFocus(name_txt);
Selection.setSelection(name_txt.length, name_txt.length);
Symbol 16 MovieClip Frame 1
stop();
Symbol 19 MovieClip [Ghost] Frame 1
stop();
Symbol 29 MovieClip [GhKill] Frame 1
stop();
Symbol 29 MovieClip [GhKill] Frame 2
tellTarget ("/") {
playing = false;
Pacman._visible = false;
};
play();
Symbol 29 MovieClip [GhKill] Frame 12
tellTarget ("/") {
playing = true;
Pacman._visible = true;
gotoAndPlay ("Loop");
};
Symbol 29 MovieClip [GhKill] Frame 41
kval = "";
tellTarget ("_parent") {
if (fval) {
gotoAndStop (1);
}
};
Symbol 39 Button
on (release) {
_root.play();
}
Symbol 40 MovieClip Frame 1
_root.stop();
PercentLoaded = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100;
if (PercentLoaded != 100) {
setProperty(bar, _xscale , PercentLoaded);
} else {
gotoAndStop ("loaded");
}
Symbol 40 MovieClip Frame 2
gotoAndPlay (1);
Symbol 47 Button
on (release) {
play();
}
Symbol 74 MovieClip Frame 1
fCount = 200;
stop();
Symbol 74 MovieClip Frame 2
fval = 100;
Symbol 74 MovieClip Frame 3
fval = 300;
Symbol 74 MovieClip Frame 4
fval = 500;
Symbol 74 MovieClip Frame 5
fval = 500;
Symbol 74 MovieClip Frame 6
fval = 700;
Symbol 74 MovieClip Frame 7
fval = 700;
Symbol 74 MovieClip Frame 8
fval = 1000;
Symbol 74 MovieClip Frame 9
fval = 1000;
Symbol 74 MovieClip Frame 10
fval = 2000;
Symbol 74 MovieClip Frame 11
fval = 2000;
Symbol 74 MovieClip Frame 12
fval = 3000;
Symbol 74 MovieClip Frame 13
fval = 3000;
Symbol 74 MovieClip Frame 14
fval = 5000;
Symbol 74 MovieClip Frame 15
stop();
tellTarget ("/") {
if (notMute) {
Snd.gotoAndPlay("EatFruit");
}
};
_root.score = _root.score + fval;
F.kval = fval;
F.gotoAndPlay(2);
Symbol 89 MovieClip Frame 8
stop();
Symbol 92 MovieClip Frame 5
gotoAndPlay (1);
Symbol 92 MovieClip Frame 6
_root.BGSnd.stop();
stopAllSounds();
Symbol 92 MovieClip Frame 25
tellTarget ("/") {
BGSnd.gotoAndPlay("Killed");
for (var g in Ghost) {
Ghost[g]._visible = false;
}
};
Symbol 92 MovieClip Frame 27
_rotation = 0;
Symbol 92 MovieClip Frame 59
stop();
tellTarget ("/") {
newLife = true;
gotoAndPlay ("Restart");
};
Symbol 101 MovieClip Frame 5
if (_root.notMute) {
_root.BGSnd.NewLev.start();
}
Symbol 101 MovieClip Frame 33
stop();
Symbol 103 MovieClip Frame 26
stop();
_root.gotoAndPlay("Over");
Symbol 104 MovieClip Frame 1
stop();
Symbol 104 MovieClip Frame 4
with (_root) {
LevMov.lval = ((level < 10) ? ("0" + level) : (level));
}
Symbol 108 MovieClip Frame 1
stop();
Back1 = new Sound();
Back1.attachSound("BG1");
Back2 = new Sound();
Back2.attachSound("BG2");
Back3 = new Sound();
Back3.attachSound("BG3");
BlueGh = new Sound();
BlueGh.attachSound("BGGhost");
EyesGh = new Sound();
EyesGh.attachSound("BGEyes");
ExLife = new Sound();
ExLife.attachSound("ExLife");
NewLev = new Sound();
NewLev.attachSound("NewLev");
Symbol 108 MovieClip Frame 2
if (!_root.notMute) {
gotoAndPlay ("NewLev");
}
Symbol 108 MovieClip Frame 31
tellTarget ("/") {
if (!newGame) {
Ready.gotoAndStop("Level");
Ready._visible = true;
var j = 0;
while (j < 31) {
var i = 0;
while (i < 28) {
Maze[i]["P" + j]._visible = true;
i++;
}
j++;
}
}
newGame = false;
};
Symbol 108 MovieClip Frame 65
tellTarget ("/") {
g = 1;
while (g < 5) {
Ghost[g]._visible = true;
g++;
}
Pacman._visible = true;
Ready.gotoAndStop(1);
};
Symbol 108 MovieClip Frame 87
tellTarget ("/") {
Ready._visible = false;
playing = true;
nextPacDir = 3;
play();
if (notMute) {
BGSnd["Back" + bgNum].start(0, 1000);
}
};
stop();
Symbol 108 MovieClip Frame 88
if (!_root.notMute) {
stop();
}
Symbol 108 MovieClip Frame 90
stop();
Symbol 113 MovieClip Frame 1
stop();
Symbol 113 MovieClip Frame 3
stop();
Symbol 113 MovieClip Frame 5
stop();
Symbol 113 MovieClip Frame 18
stop();
_root.BGSnd.EyesGh.start(0, 100);
Symbol 113 MovieClip Frame 20
stop();
Symbol 115 Button
on (release) {
gotoAndStop (2);
}