Frame 1
stop();
this.onEnterFrame = function () {
if (this.getBytesTotal() <= this.getBytesLoaded()) {
delete this.onEnterFrame;
gotoAndStop (2);
} else {
var _local2 = Math.floor((this.getBytesLoaded() / this.getBytesTotal()) * 100);
mcLoader.bar._xscale = _local2;
}
};
Frame 2
stop();
Symbol 40 MovieClip Frame 18
gotoAndPlay (10);
Symbol 40 MovieClip Frame 28
gotoAndPlay (20);
Symbol 40 MovieClip Frame 38
gotoAndPlay (30);
Symbol 40 MovieClip Frame 48
gotoAndPlay (40);
Symbol 51 MovieClip [mapitem] Frame 1
stop();
Symbol 61 Button
on (press) {
gotoAndPlay ("makemap");
}
on (keyPress "<Enter>") {
gotoAndPlay ("makemap");
}
Symbol 70 MovieClip Frame 1
stop();
Symbol 80 MovieClip Frame 1
stop();
Symbol 83 MovieClip Frame 1
stop();
Symbol 89 MovieClip Frame 16
gotoAndStop (1);
Symbol 91 Button
on (keyPress "<Up>") {
start_move(0);
}
on (keyPress "<Down>") {
start_move(1);
}
on (keyPress "<Left>") {
start_move(2);
}
on (keyPress "<Right>") {
start_move(3);
}
on (keyPress "<Enter>") {
use_hammer();
}
Symbol 94 MovieClip Frame 1
Symbol 94 MovieClip Frame 17
_parent.dec_time();
gotoAndPlay (1);
Symbol 95 Button
on (keyPress "<Up>") {
if (move_cnt >= 3) {
input_dir = 0;
}
}
on (keyPress "<Down>") {
if (move_cnt >= 3) {
input_dir = 1;
}
}
on (keyPress "<Left>") {
if (move_cnt >= 3) {
input_dir = 2;
}
}
on (keyPress "<Right>") {
if (move_cnt >= 3) {
input_dir = 3;
}
}
Symbol 97 MovieClip Frame 1
stop();
Symbol 99 Button
on (keyPress "<Enter>") {
gotoAndStop(_currentframe + 1);
}
Symbol 103 Button
on (press) {
_parent.play();
}
on (keyPress "<Enter>") {
_parent.play();
}
Symbol 104 MovieClip Frame 1
c = 0;
Symbol 104 MovieClip Frame 5
c++;
if (c < 6) {
gotoAndPlay (3);
}
Symbol 104 MovieClip Frame 6
stop();
Symbol 107 Button
on (press) {
gotoAndStop ("check");
}
on (keyPress "<Enter>") {
gotoAndStop ("check");
}
Symbol 114 Button
on (press) {
gotoAndStop ("view");
}
on (keyPress "<Enter>") {
gotoAndStop ("view");
}
Symbol 147 Button
on (press) {
getURL ("http://www.gamedesign.jp/");
}
Symbol 148 Button
on (press) {
getURL ("http://www.gamedesign.jp/");
}
on (keyPress "<Enter>") {
getURL ("http://www.gamedesign.jp/");
}
Symbol 149 MovieClip Frame 1
play();
Symbol 149 MovieClip Frame 20
stop();
score = _parent.stage;
Symbol 149 MovieClip Frame 26
CGIFile = "http://www.gamedesign.jp/cgi-bin/maze/hisc.cgi?" + Math.floor(Math.random() * 1000);
myLoadVars = new LoadVars();
myLoadVars.onLoad = function (success) {
rank_in = false;
i = 0;
while (i < 10) {
if (Number(myLoadVars["score" + i]) < score) {
rank_in = true;
}
i++;
}
if (rank_in == true) {
gotoAndStop ("entry");
} else {
gotoAndStop ("view");
}
};
myLoadVars.load(CGIFile);
stop();
Symbol 149 MovieClip Frame 33
stop();
Symbol 149 MovieClip Frame 40
this.stop();
CGIFile = "http://www.gamedesign.jp/cgi-bin/maze/hisc.cgi?" + Math.floor(Math.random() * 1000);
mySaveVars = new LoadVars();
mySaveVars.score = score;
mySaveVars.playername = playername;
myLoadVars = new LoadVars();
myLoadVars.onLoad = function (success) {
rankingdata = "";
i = 0;
while (i < 10) {
tname = "rname" + (i + 1);
eval (tname).text = myLoadVars["name" + i];
tname = "rscore" + (i + 1);
eval (tname).text = "STAGE " + myLoadVars["score" + i];
i++;
}
};
mySaveVars.sendAndLoad(CGIFile, myLoadVars, "POST");
Symbol 150 MovieClip Frame 2
DISP_W = 320;
DISP_H = 320;
CEL_W = 48;
CEL_H = 48;
XMAX = 32;
YMAX = 32;
vmap = new Array(YMAX);
i = 0;
while (i < YMAX) {
vmap[i] = new Array(XMAX);
i++;
}
hmap = new Array(YMAX);
i = 0;
while (i < YMAX) {
hmap[i] = new Array(XMAX);
i++;
}
wall_c = new Array(YMAX);
i = 0;
while (i < YMAX) {
wall_c[i] = new Array(XMAX);
i++;
}
nextnowall = new Array(YMAX);
i = 0;
while (i < YMAX) {
nextnowall[i] = new Array(XMAX);
i++;
}
imap = new Array(YMAX);
i = 0;
while (i < YMAX) {
imap[i] = new Array(XMAX);
i++;
}
DIR_UP = 0;
DIR_DOWN = 1;
DIR_LEFT = 2;
DIR_RIGHT = 3;
ITEM_KEY = 2;
ITEM_HAMMER = 3;
ITEM_TIME = 4;
ITEM_MAP = 5;
ITEM_DOOR = 6;
Symbol 150 MovieClip Frame 3
function put_chip(dx, dy) {
var x = dx;
if (x < 0) {
x = x + 8;
}
var y = dy;
if (y < 0) {
y = y + 8;
}
var cn = ((8 * (y % 8)) + (x % 8));
var mc = eval ("mcMap.mcChip" + cn);
mc._x = dx * CEL_W;
mc._y = dy * CEL_H;
var pat = 1;
if ((((dx >= 0) && (dx < XMAX)) && (dy >= 0)) && (dy < YMAX)) {
pat = (10 + (vmap[dy][dx] * 2)) + hmap[dy][dx];
}
mc.gotoAndStop(pat);
item = 1;
if ((((dx >= 0) && (dx < xmax)) && (dy >= 0)) && (dy < ymax)) {
item = imap[dy][dx];
}
mc.mcItem.gotoAndStop(item);
mc = eval ("mcMap2.mcChip" + cn);
mc._x = dx * CEL_W;
mc._y = dy * CEL_H;
if (pat == 1) {
mc.gotoAndStop(1);
} else {
mc.gotoAndStop(pat + 10);
}
mc = eval ("mcMap3.mcChip" + cn);
mc._x = dx * CEL_W;
mc._y = dy * CEL_H;
if (pat == 1) {
mc.gotoAndStop(1);
} else {
mc.gotoAndStop(pat + 20);
}
}
function start_move(d) {
chara_dir = d;
input_dir = -1;
move_cnt = 0;
switch (d) {
case 0 :
ax = 0;
ay = -1;
break;
case 1 :
ax = 0;
ay = 1;
break;
case 2 :
ax = -1;
ay = 0;
break;
case 3 :
ax = 1;
ay = 0;
break;
default :
ax = 0;
ay = 0;
}
mcChara.mcMan.gotoAndStop(1 + d);
f = 0;
switch (d) {
case DIR_UP :
if (hmap[chara_y][chara_x]) {
f = 1;
}
break;
case DIR_DOWN :
if (hmap[chara_y + 1][chara_x]) {
f = 1;
}
break;
case DIR_LEFT :
if (vmap[chara_y][chara_x]) {
f = 1;
}
break;
case DIR_RIGHT :
if (!vmap[chara_y][chara_x + 1]) {
break;
}
f = 1;
}
next_x = chara_x + ax;
next_y = chara_y + ay;
if (((((f == 0) && (next_x >= 0)) && (next_x < XMAX)) && (next_y >= 0)) && (next_y < YMAX)) {
if (imap[next_y][next_x] >= ITEM_DOOR) {
if (key_c > 0) {
key_c--;
key_txt = "x" + key_c;
get_item(goal_x, goal_y);
gotoAndPlay ("move");
} else {
gotoAndStop ("wait");
}
} else {
gotoAndPlay ("move");
}
} else {
gotoAndStop ("wait");
}
}
function get_item(dx, dy) {
var x = dx;
if (x < 0) {
x = x + 8;
}
var y = dy;
if (y < 0) {
y = y + 8;
}
var cn = ((8 * (y % 8)) + (x % 8));
if (imap[dy][dx] == 1) {
return(undefined);
}
var item = imap[dy][dx];
imap[dy][dx] = 1;
var mc = eval ("mcMap.mcChip" + cn);
mc.mcItem.gotoAndStop(1);
mcSmoke._x = mcChara._x;
mcSmoke._y = mcChara._y;
mcSmoke.gotoAndPlay(2);
if (item >= ITEM_DOOR) {
sndDoor.start();
} else {
sndItem.start();
}
switch (item) {
case ITEM_KEY :
key_c++;
key_txt = "x" + key_c;
return;
case ITEM_HAMMER :
hammer_c++;
hammer_txt = "x" + hammer_c;
return;
case ITEM_TIME :
rest_time = rest_time + 10;
time_txt = "Time:" + rest_time;
}
}
function use_hammer() {
if (hammer_c <= 0) {
return(undefined);
}
var dx = chara_x;
var dy = chara_y;
var sx = 0;
var sy = 0;
switch (chara_dir) {
case DIR_UP :
sy = sy - (CEL_H / 2);
hv = 0;
break;
case DIR_DOWN :
sy = sy + (CEL_H / 2);
hv = 0;
dy++;
break;
case DIR_LEFT :
sx = sx - (CEL_W / 2);
hv = 1;
break;
case DIR_RIGHT :
sx = sx + (CEL_W / 2);
hv = 1;
dx++;
}
if (hv == 0) {
if (dy <= 1) {
return(undefined);
}
if (dy >= (ymax - 1)) {
return(undefined);
}
if (hmap[dy][dx] == 0) {
return(undefined);
}
hmap[dy][dx] = 0;
} else {
if (dx <= 1) {
return(undefined);
}
if (dx >= (xmax - 1)) {
return(undefined);
}
if (vmap[dy][dx] == 0) {
return(undefined);
}
vmap[dy][dx] = 0;
}
put_chip(dx, dy);
hammer_c--;
hammer_txt = "x" + hammer_c;
sndHammer.start();
var mc = eval (mcSmoke);
mc._x = mcChara._x + sx;
mc._y = mcChara._y + sy;
mc.gotoAndPlay(2);
}
function dec_time() {
rest_time--;
if (rest_time <= 0) {
rest_time = 0;
}
time_txt = "Time:" + rest_time;
}
Symbol 150 MovieClip Frame 4
sndItem = new Sound();
sndItem.attachSound("se_item.wav");
sndHammer = new Sound();
sndHammer.attachSound("se_hammer.wav");
sndDoor = new Sound();
sndDoor.attachSound("se_door.wav");
Symbol 150 MovieClip Frame 6
stop();
mcMan.gotoAndPlay(40);
stage = 1;
lev = 0;
rest_time = 100;
time_txt = "Time:" + rest_time;
key_c = 0;
key_txt = "x" + key_c;
hammer_c = 0;
hammer_txt = "x" + hammer_c;
Symbol 150 MovieClip Frame 11
function no_wall(x, y) {
if ((x < 1) || (x >= (xmax - 1))) {
return(0);
}
if ((y < 1) || (y >= (ymax - 1))) {
return(0);
}
if (wall_c[y][x] == 0) {
return(1);
}
return(0);
}
function set_wall_c(x, y) {
if ((((x == 0) || (y == 0)) || (x > xmax)) || (y > ymax)) {
wall_c[y][x] = 4;
} else {
var _local3 = 0;
if (hmap[y][x]) {
_local3++;
}
if (vmap[y][x]) {
_local3++;
}
if (hmap[y][x - 1]) {
_local3++;
}
if (vmap[y - 1][x]) {
_local3++;
}
wall_c[y][x] = _local3;
}
}
function check_nextnowall(x, y) {
nextnowall[y][x] = 0;
if (no_wall(x, y + 1)) {
nextnowall[y][x] = 1;
} else if (no_wall(x, y - 1)) {
nextnowall[y][x] = 1;
} else if (no_wall(x - 1, y)) {
nextnowall[y][x] = 1;
} else if (no_wall(x + 1, y)) {
nextnowall[y][x] = 1;
}
}
function make_wall(x, y, dr) {
switch (dr) {
case DIR_LEFT :
x--;
break;
case DIR_UP :
y--;
}
if ((x < 0) || (x >= xmax)) {
return(undefined);
}
if ((y < 0) || (y >= ymax)) {
return(undefined);
}
if ((dr == DIR_LEFT) || (dr == DIR_RIGHT)) {
hmap[y][x] = 1;
} else {
vmap[y][x] = 1;
}
}
mcMan.gotoAndPlay(30);
switch (lev) {
case 0 :
size = 11;
break;
case 1 :
size = 16;
break;
case 2 :
size = 21;
break;
case 3 :
size = 26;
break;
default :
size = 31;
}
xmax = size;
ymax = size;
Symbol 150 MovieClip Frame 12
i = 0;
while (i < YMAX) {
j = 0;
while (j < XMAX) {
vmap[i][j] = 0;
hmap[i][j] = 0;
wall_c[i][j] = 0;
j++;
}
i++;
}
i = 1;
while (i < (ymax - 1)) {
vmap[i][1] = 1;
vmap[i][xmax - 1] = 1;
i++;
}
j = 1;
while (j < (xmax - 1)) {
hmap[1][j] = 1;
hmap[ymax - 1][j] = 1;
j++;
}
i = 0;
while (i < YMAX) {
j = 0;
while (j < XMAX) {
set_wall_c(j, i);
j++;
}
i++;
}
i = 0;
while (i < YMAX) {
j = 0;
while (j < XMAX) {
nextnowall[i][j] = 0;
j++;
}
i++;
}
i = 1;
while (i < ymax) {
j = 1;
while (j < xmax) {
check_nextnowall(j, i);
j++;
}
i++;
}
Symbol 150 MovieClip Frame 13
lx = new Array();
ly = new Array();
c = 0;
i = 1;
while (i < ymax) {
j = 1;
while (j < xmax) {
if (wall_c[i][j] == 2) {
if (nextnowall[i][j]) {
lx[c] = j;
ly[c] = i;
c++;
}
}
j++;
}
i++;
}
if (c == 0) {
gotoAndPlay(_currentframe + 2);
}
r = Math.floor(Math.random() * c);
ox = lx[r];
oy = ly[r];
while (true) {
c = 0;
var dlist = new Array(4);
if (no_wall(ox - 1, oy)) {
dlist[c] = DIR_LEFT;
c++;
}
if (no_wall(ox + 1, oy)) {
dlist[c] = DIR_RIGHT;
c++;
}
if (no_wall(ox, oy - 1)) {
dlist[c] = DIR_UP;
c++;
}
if (no_wall(ox, oy + 1)) {
dlist[c] = DIR_DOWN;
c++;
}
if (c == 0) {
break;
}
var dr = dlist[Math.floor(Math.random() * c)];
make_wall(ox, oy, dr);
wall_c[oy][ox]++;
switch (dr) {
case DIR_LEFT :
ox--;
break;
case DIR_RIGHT :
ox++;
break;
case DIR_UP :
oy--;
break;
case DIR_DOWN :
oy++;
}
wall_c[oy][ox]++;
check_nextnowall(ox, oy);
check_nextnowall(ox - 1, oy);
check_nextnowall(ox + 1, oy);
check_nextnowall(ox, oy - 1);
check_nextnowall(ox, oy + 1);
}
Symbol 150 MovieClip Frame 14
gotoAndPlay(_currentframe - 1);
Symbol 150 MovieClip Frame 15
r = Math.floor(Math.random() * 4);
switch (r) {
case 0 :
chara_x = 1;
chara_y = 1;
goal_x = xmax - 2;
goal_y = ymax - 1;
break;
case 1 :
chara_x = xmax - 2;
chara_y = 1;
goal_x = 1;
goal_y = ymax - 1;
break;
case 2 :
chara_x = 1;
chara_y = ymax - 2;
goal_x = xmax - 2;
goal_y = 0;
break;
default :
chara_x = xmax - 2;
chara_y = ymax - 2;
goal_x = 1;
goal_y = 0;
}
if (r < 2) {
chara_dir = DIR_DOWN;
hmap[goal_y][goal_x] = 0;
door_pos = 0;
} else {
chara_dir = DIR_DOWN;
hmap[goal_y + 1][goal_x] = 0;
door_pos = 1;
}
i = 0;
while (i < YMAX) {
j = 0;
while (j < XMAX) {
imap[i][j] = 1;
j++;
}
i++;
}
cc = 0;
i = 1;
while (i < (ymax - 1)) {
j = 1;
while (j < (xmax - 1)) {
c = 0;
if (hmap[i][j] == 1) {
c++;
}
if (hmap[i + 1][j] == 1) {
c++;
}
if (vmap[i][j] == 1) {
c++;
}
if (vmap[i][j + 1] == 1) {
c++;
}
if (c == 3) {
if ((i != chara_y) && (j != chara_x)) {
lx[cc] = j;
ly[cc] = i;
cc++;
}
}
j++;
}
i++;
}
i = 0;
while (i < cc) {
r = Math.floor(Math.random() * cc);
tmp = lx[i];
lx[i] = lx[r];
lx[r] = tmp;
tmp = ly[i];
ly[i] = ly[r];
ly[r] = tmp;
i++;
}
c = 0;
if (c < cc) {
imap[ly[c]][lx[c]] = ITEM_KEY;
c++;
}
if ((Math.random() * 5) < 1) {
if (c < cc) {
imap[ly[c]][lx[c]] = ITEM_KEY;
c++;
}
}
if (c < cc) {
imap[ly[c]][lx[c]] = ITEM_HAMMER;
c++;
}
if ((Math.random() * 5) < 1) {
if (c < cc) {
imap[ly[c]][lx[c]] = ITEM_HAMMER;
c++;
}
}
if (c < cc) {
imap[ly[c]][lx[c]] = ITEM_MAP;
c++;
}
clock_num = Math.floor((xmax * ymax) / 50);
i = 0;
while (i < clock_num) {
if (c < cc) {
imap[ly[c]][lx[c]] = ITEM_TIME;
c++;
}
i++;
}
imap[goal_y][goal_x] = ITEM_DOOR + door_pos;
Symbol 150 MovieClip Frame 20
mcChara._x = DISP_W / 2;
mcChara._y = DISP_H / 2;
mcChara.mcMan.gotoAndStop(1 + chara_dir);
walk_pat = 0;
mcMap._x = (mcChara._x - (chara_x * CEL_W)) - (CEL_W / 2);
mcMap._y = ((mcChara._y - (chara_y * CEL_H)) - (CEL_H / 2)) + 18;
mcMap2._x = mcMap._x;
mcMap2._y = mcMap._y;
mcMap3._x = mcMap._x;
mcMap3._y = mcMap._y;
ox = chara_x - 4;
oy = chara_y - 4;
i = 0;
while (i < 8) {
j = 0;
while (j < 8) {
dx = ox + j;
dy = oy + i;
put_chip(dx, dy);
j++;
}
i++;
}
mcStage.stage_txt = "STAGE " + stage;
mcStage.gotoAndPlay(2);
gotoAndStop ("wait");
Symbol 150 MovieClip Frame 25
play();
if (rest_time <= 0) {
gotoAndStop ("over");
}
Symbol 150 MovieClip Frame 26
gotoAndPlay(_currentframe - 1);
Symbol 150 MovieClip Frame 30
i = 0;
while (i < 2) {
n = (move_cnt * 2) + i;
dx = 0;
dy = 0;
switch (chara_dir) {
case 0 :
dx = (chara_x - 4) + n;
dy = chara_y - 5;
break;
case 1 :
dx = (chara_x - 4) + n;
dy = chara_y + 4;
break;
case 2 :
dx = chara_x - 5;
dy = (chara_y - 4) + n;
break;
case 3 :
dx = chara_x + 4;
dy = (chara_y - 4) + n;
}
put_chip(dx, dy);
i++;
}
move_cnt++;
mcMap._x = mcMap._x - (ax * 12);
mcMap._y = mcMap._y - (ay * 12);
mcMap2._x = mcMap._x;
mcMap2._y = mcMap._y;
mcMap3._x = mcMap._x;
mcMap3._y = mcMap._y;
mcChara.mcMan.gotoAndStop((10 + (chara_dir * 10)) + walk_pat);
walk_pat++;
if (walk_pat >= 8) {
walk_pat = 0;
}
if (rest_time <= 0) {
gotoAndStop ("over");
}
Symbol 150 MovieClip Frame 31
if ((move_cnt * 4) >= 16) {
chara_x = next_x;
chara_y = next_y;
item = imap[chara_y][chara_x];
if (item > 1) {
get_item(chara_x, chara_y);
}
if ((chara_x == goal_x) && (chara_y == goal_y)) {
gotoAndStop ("clear");
} else if (item == ITEM_MAP) {
mcChara.mcMan.gotoAndStop(1 + chara_dir);
gotoAndPlay ("map");
} else if (input_dir >= 0) {
start_move(input_dir);
} else {
mcChara.mcMan.gotoAndStop(1 + chara_dir);
gotoAndStop ("wait");
}
} else {
gotoAndPlay(_currentframe - 1);
}
Symbol 150 MovieClip Frame 36
mcView.clear();
Symbol 150 MovieClip Frame 37
stop();
mcView.lineStyle(2, 6648895, 100);
i = 1;
while (i < ymax) {
oy = (i * 10) + 1;
j = 1;
while (j < xmax) {
ox = j * 10;
if (hmap[i][j]) {
mcView.moveTo(ox, oy);
mcView.lineTo(ox + 10, oy);
}
if (vmap[i][j]) {
mcView.moveTo(ox, oy);
mcView.lineTo(ox, oy + 10);
}
j++;
}
i++;
}
mcView.lineStyle(2, 10460991, 100);
i = 1;
while (i < ymax) {
oy = i * 10;
j = 1;
while (j < xmax) {
ox = j * 10;
if (hmap[i][j]) {
mcView.moveTo(ox, oy);
mcView.lineTo(ox + 10, oy);
}
if (vmap[i][j]) {
mcView.moveTo(ox, oy);
mcView.lineTo(ox, oy + 10);
}
j++;
}
i++;
}
c = 0;
i = 0;
while (i < ymax) {
oy = i * 10;
j = 0;
while (j < xmax) {
ox = j * 10;
if (imap[i][j] > 1) {
mcName = "mc" + c;
mcView.attachMovie("mapitem", mcName, c);
mc = eval ("mcView." + mcName);
mc._x = ox;
mc._y = oy;
mc.gotoAndStop(imap[i][j]);
c++;
}
j++;
}
i++;
}
mcName = "mc" + c;
mcView.attachMovie("mapitem", mcName, c);
mc = eval ("mcView." + mcName);
mc._x = chara_x * 10;
mc._y = chara_y * 10;
mc.gotoAndStop(1);
mc.mcMan.gotoAndPlay(10 + (chara_dir * 10));
c++;
item_num = c;
per = 3200 / xmax;
mcView._xscale = per;
mcView._yscale = per;
Symbol 150 MovieClip Frame 38
i = 0;
while (i < item_num) {
mc = eval ("mcView.mc" + i);
mc.removeMovieClip();
i++;
}
gotoAndStop ("wait");
Symbol 150 MovieClip Frame 41
stop();
Symbol 150 MovieClip Frame 42
stage++;
lev++;
if (lev >= 5) {
lev = 0;
}
gotoAndPlay ("makemap");
Symbol 150 MovieClip Frame 47
stop();