[Tools][Expand/Collapse All]Note that automatic extraction of ActionScript 3 is still pretty much unsupported by swfchan. AS1/AS2 works okay most of the time.Frame 1 (131 B)
stop();
_root.map = 2;
_root.maploc = 1;
_root.skey = 0;
_root.key3 = 0;
_root.jankey = 0;
_root.fuse = 0;
_root.power = 0;
Frame 2 (21.49 KiB) ● ● ●
function preCalc() {
fov_div_rays = fovAngle / rays;
h_fov = fovAngle / 2;
lineWidth = imageWidth / rays;
fovAdjust = Math.atan((degToRad * 0.5) * 75) / Math.atan(degToRad * h_fov);
var i = 0;
while (i < rays) {
dist[i] = imageHeight / Math.cos(degToRad * ((i * fov_div_rays) - h_fov));
ang[i] = (viewAngle - h_fov) + (i * fov_div_rays);
if (ang[i] >= 360) {
ang[i] = ang[i] - 360;
} else if (ang[i] < 0) {
ang[i] = ang[i] + 360;
}
if ((270 < ang[i]) || (ang[i] < 90)) {
r[i] = true;
} else {
r[i] = false;
}
if ((0 < ang[i]) && (ang[i] < 180)) {
d[i] = true;
} else {
d[i] = false;
}
tAng1[i] = Math.tan(degToRad * ang[i]);
tAng2[i] = Math.tan(degToRad * (90 - ang[i]));
tAng3[i] = Math.tan(degToRad * (270 - ang[i]));
if ((i != 0) && (wmc["w" + i] == undefined)) {
wmc.w0.duplicateMovieClip("w" + i, 1 + i);
}
wmc["w" + i]._x = Math.round(i * lineWidth);
if (i < (rays - 1)) {
wmc["w" + i]._xscale = 100 * ((1 + Math.round((i + 1) * lineWidth)) - Math.round(i * lineWidth));
} else {
wmc["w" + i]._xscale = 100 * ((1 + imageWidth) - Math.round(i * lineWidth));
}
i++;
}
var del = rays;
while (wmc["w" + del] != undefined) {
wmc["w" + del].removeMovieClip();
del++;
}
midRay = Math.round(rays / 2);
cast2Rays(0, midRay);
cast2Rays(midRay - 1000, rays - 1);
objSort();
drawObjects();
frames = 0;
fpsTime = getTimer();
fps = "fps: -";
}
function cast2Rays(r1, r2) {
if (r1 >= 0) {
castRay(r1);
} else {
r1 = r1 + 1000;
}
if (r2 >= 0) {
castRay(r2);
} else {
r2 = r2 + 1000;
}
if ((rHit[r1] == rHit[r2]) && (hHit[r1] == hHit[r2])) {
var shadeR1 = (1 + (dis[r1] * 10));
var shadeDis = ((1 + (dis[r2] * 10)) - shadeR1);
var texPosR1 = texPos[r1];
var texPosDis = (texPos[r2] - texPosR1);
var tex = wmc["w" + r1].s.t._currentframe;
var distance = (dist[r1] / dis[r1]);
var disDis = ((dist[r2] / dis[r2]) - distance);
var di = dis[r1];
var diDis = (dis[r2] - di);
var steps = (r2 - r1);
var ipol = (1 + r1);
while (ipol < r2) {
var step = ((ipol - r1) / steps);
dis[ipol] = di + (diDis * step);
var mc = wmc["w" + ipol];
mc._height = distance + (disDis * step);
mc.gotoAndStop(Math.round(texPosR1 + (texPosDis * step)));
mc.s.gotoAndStop(Math.round(shadeR1 + (shadeDis * step)));
mc.s.t.gotoAndStop(tex);
ipol++;
}
} else if (3 < (r2 - r1)) {
var mid = Math.round((r1 + r2) / 2);
cast2Rays(r1 - 1000, mid);
cast2Rays(mid - 1000, r2 - 1000);
} else {
castRay(r1 + 1);
castRay(r1 + 2);
}
}
function castRay(i) {
if (r[i]) {
var xIsect1 = (xMap + 1);
var tanAngle = tAng1[i];
var yIsect1 = (y + (tanAngle * (xIsect1 - x)));
if (0 < tanAngle) {
var steps = (xIsect1 + Math.min(mapWidth - xIsect1, (mapHeight - yIsect1) / tanAngle));
} else {
var steps = (xIsect1 + Math.min(mapWidth - xIsect1, yIsect1 / (-tanAngle)));
}
while ((!m[xIsect1][Math.floor(yIsect1)]) && (xIsect1 < steps)) {
xIsect1++;
yIsect1 = yIsect1 + tanAngle;
}
} else {
var xIsect1 = (xMap - 0.01);
var tanAngle = tAng1[i];
var yIsect1 = (y + (tanAngle * (xIsect1 - x)));
if (tanAngle < 0) {
var steps = (xIsect1 - Math.min(xIsect1, (mapHeight - yIsect1) / (-tanAngle)));
} else {
var steps = (xIsect1 - Math.min(xIsect1, yIsect1 / tanAngle));
}
while ((!m[Math.floor(xIsect1)][Math.floor(yIsect1)]) && (steps < xIsect1)) {
xIsect1--;
yIsect1 = yIsect1 - tanAngle;
}
}
if (d[i]) {
var yIsect2 = (yMap + 1);
var tanAngle = tAng2[i];
var xIsect2 = (x + (tanAngle * (yIsect2 - y)));
if (0 < tanAngle) {
var steps = (yIsect2 + Math.min(mapHeight - yIsect2, (mapWidth - xIsect2) / tanAngle));
} else {
var steps = (yIsect2 + Math.min(mapHeight - yIsect2, xIsect2 / (-tanAngle)));
}
while ((!m[Math.floor(xIsect2)][yIsect2]) && (yIsect2 < steps)) {
yIsect2++;
xIsect2 = xIsect2 + tanAngle;
}
} else {
var yIsect2 = (yMap - 0.01);
var tanAngle = tAng3[i];
var xIsect2 = (x + (tanAngle * (yIsect2 - y)));
if (tanAngle < 0) {
var steps = (yIsect2 - Math.min(yIsect2, (mapWidth - xIsect2) / (-tanAngle)));
} else {
var steps = (yIsect2 - Math.min(yIsect2, xIsect2 / tanAngle));
}
while ((!m[Math.floor(xIsect2)][Math.floor(yIsect2)]) && (steps < yIsect2)) {
yIsect2--;
xIsect2 = xIsect2 - tanAngle;
}
}
var v1 = (x - xIsect1);
var v2 = (y - yIsect1);
var dis1 = Math.sqrt((v1 * v1) + (v2 * v2));
v1 = x - xIsect2;
v2 = y - yIsect2;
var dis2 = Math.sqrt((v1 * v1) + (v2 * v2));
if (dis1 < dis2) {
hHit[i] = false;
rHit[i] = Math.floor(xIsect1) + (Math.floor(yIsect1) * mapWidth);
dis[i] = dis1;
texPos[i] = 1 + Math.round((yIsect1 - Math.floor(yIsect1)) * 100);
var mc = wmc["w" + i];
mc._height = dist[i] / dis1;
mc.gotoAndStop(texPos[i]);
mc.s.gotoAndStop(Math.round(1 + (dis1 * 10)));
var tmpTex = m[Math.floor(xIsect1)][Math.floor(yIsect1)];
if (tmpTex < 0) {
tmpTex = tmpTex * -1;
if (r[i]) {
tmpTex = tmpTex + 19;
} else {
tmpTex = tmpTex + 59;
}
}
mc.s.t.gotoAndStop(tmpTex);
} else {
hHit[i] = true;
rHit[i] = Math.floor(xIsect2) + (Math.floor(yIsect2) * mapWidth);
dis[i] = dis2;
texPos[i] = 1 + Math.round((xIsect2 - Math.floor(xIsect2)) * 100);
var mc = wmc["w" + i];
mc._height = dist[i] / dis2;
mc.gotoAndStop(texPos[i]);
mc.s.gotoAndStop(Math.round(1 + (dis2 * 10)));
tmpTex = m[Math.floor(xIsect2)][Math.floor(yIsect2)];
if (tmpTex < 0) {
tmpTex = tmpTex * -1;
if (d[i]) {
tmpTex = tmpTex + 39;
}
}
mc.s.t.gotoAndStop(tmpTex);
}
}
function draw2DMap() {
attachMovie("viewPos", "viewPos", 300);
var i = 0;
while (i < mapWidth) {
var j = 0;
while (j < mapHeight) {
if (m[i][j] != null) {
attachMovie("2DmapBlock", "b" + (i + (j * mapWidth)), (301 + i) + (j * mapWidth));
_root["b" + (i + (j * mapWidth))]._x = i * 8;
_root["b" + (i + (j * mapWidth))]._y = (j * 8) + 20;
}
j++;
}
i++;
}
update2DMap();
}
function update2DMap() {
viewPos._x = x * 8;
viewPos._y = (y * 8) + 20;
viewPos._rotation = viewAngle;
}
function drawObjects() {
if (showObjects) {
var i = 0;
while (i < numOfObjects) {
var dx = (objects[i].x - x);
var dy = (objects[i].y - y);
var vAngle = viewAngle;
var objDis = objects[i].objDis;
var objAng = (radToDeg * Math.atan(Math.abs(dy / dx)));
var objWidth = objects[i].objWidth;
if ((dx < 0) && (0 < dy)) {
objAng = 180 - objAng;
} else if ((dx < 0) && (dy < 0)) {
objAng = objAng + 180;
} else if ((0 < dx) && (dy < 0)) {
objAng = 360 - objAng;
if (vAngle < 90) {
vAngle = vAngle + 360;
}
} else if (270 < vAngle) {
objAng = objAng + 360;
}
var ref = omc["obj" + i];
var amount = (((vAngle + h_fov) - objAng) / fovAngle);
var h = (dist[Math.round(Math.max(Math.min(amount * rays, rays - 1), 0))] / objDis);
leftImagePoint = (imageWidth - (imageWidth * amount)) - ((objWidth * 0.5) * h);
rightImagePoint = (imageWidth - (imageWidth * amount)) + ((objWidth * 0.5) * h);
if (((0.3 < objDis) && (!((leftImagePoint < 0) && (rightImagePoint < 0)))) && (!((320 < leftImagePoint) && (320 < rightImagePoint)))) {
cornerPointAngle = radToDeg * Math.atan((objWidth * 0.5) / objDis);
startRayTest = (((vAngle + h_fov) - objAng) + cornerPointAngle) / fovAngle;
endRayTest = (((vAngle + h_fov) - objAng) - cornerPointAngle) / fovAngle;
startRayTest = Math.floor(rays - Math.max(Math.min(startRayTest * rays, rays - 1), 1));
endRayTest = Math.ceil(rays - Math.max(Math.min(endRayTest * rays, rays - 1), 1));
var leftCover = -1;
var rightCover = (endRayTest + 1);
var j = 0;
while ((endRayTest - startRayTest) >= j) {
if (dis[startRayTest + j] < objDis) {
leftCover = startRayTest + j;
} else {
break;
}
j++;
}
var j = 0;
while ((endRayTest - startRayTest) >= j) {
if (dis[endRayTest - j] < objDis) {
rightCover = endRayTest - j;
} else {
break;
}
j++;
}
if (!((leftCover == endRayTest) || (rightCover == startRayTest))) {
if (leftCover >= 0) {
var tmpAng = ((objAng + cornerPointAngle) - ang[leftCover + 1]);
if (180 < tmpAng) {
tmpAng = tmpAng - 360;
} else if (tmpAng < -180) {
tmpAng = tmpAng + 360;
}
ref.dirShading.leftMask.gotoAndStop(Math.max(Math.min(Math.round((100 * tmpAng) / (cornerPointAngle * 2)), 100), 1));
} else {
ref.dirShading.leftMask.gotoAndStop(100);
}
if (rightCover < (endRayTest + 1)) {
var tmpAng = ((objAng + cornerPointAngle) - ang[rightCover]);
if (180 < tmpAng) {
tmpAng = tmpAng - 360;
} else if (tmpAng < -180) {
tmpAng = tmpAng + 360;
}
ref.dirShading.leftMask.rightMask.gotoAndStop(Math.max(Math.min(Math.round((100 * tmpAng) / (cornerPointAngle * 2)), 100), 1));
} else {
ref.dirShading.leftMask.rightMask.gotoAndStop(1);
}
ref.gotoAndStop(Math.round(1 + (objDis * 10)));
ref.dirShading.gotoAndStop(1 + Math.floor(objAng / 10));
ref.dirShading.leftMask.rightMask.objType.gotoAndStop(objects[i].objType);
ref._x = imageWidth - (imageWidth * amount);
ref._y = h / 2;
ref._height = h * objects[i].objHeight;
ref._xscale = (h * objWidth) * fovAdjust;
ref._visible = true;
} else {
ref._visible = false;
}
} else {
ref._visible = false;
}
i++;
}
}
}
function main() {
startTime = getTimer();
if (Key.isDown(38)) {
move = 0.12;
strafe = 0;
} else if (Key.isDown(40)) {
move = -0.12;
strafe = 0;
} else {
move = 0;
}
if (Key.isDown(37)) {
if (Key.isDown(16)) {
move = 0.12;
strafe = -90;
rotate = 0;
} else {
rotate = -6;
}
} else if (Key.isDown(39)) {
if (Key.isDown(16)) {
move = 0.12;
strafe = 90;
rotate = 0;
} else {
rotate = 6;
}
} else {
rotate = 0;
}
if (move) {
newXPos = x + (Math.cos(degToRad * (viewAngle + strafe)) * move);
newYPos = y + (Math.sin(degToRad * (viewAngle + strafe)) * move);
if ((!m[Math.floor(newXPos)][Math.floor(newYPos)]) && ((!showObjects) || (objects[numOfObjects - 1].walkRadius < Math.sqrt(Math.pow(objects[numOfObjects - 1].x - newXPos, 2) + Math.pow(objects[numOfObjects - 1].y - newYPos, 2))))) {
x = newXPos;
y = newYPos;
xMap = Math.floor(x);
yMap = Math.floor(y);
} else if ((!m[Math.floor(newXPos)][Math.floor(y)]) && ((!showObjects) || (objects[numOfObjects - 1].walkRadius < Math.sqrt(Math.pow(objects[numOfObjects - 1].x - newXPos, 2) + Math.pow(objects[numOfObjects - 1].y - y, 2))))) {
x = newXPos;
xMap = Math.floor(x);
} else if ((!m[Math.floor(x)][Math.floor(newYPos)]) && ((!showObjects) || (objects[numOfObjects - 1].walkRadius < Math.sqrt(Math.pow(objects[numOfObjects - 1].x - x, 2) + Math.pow(objects[numOfObjects - 1].y - newYPos, 2))))) {
y = newYPos;
yMap = Math.floor(y);
}
}
if (rotate) {
viewAngle = viewAngle + rotate;
if (viewAngle < 0) {
viewAngle = viewAngle + 360;
} else if (viewAngle >= 360) {
viewAngle = viewAngle - 360;
}
sky._x = (-viewAngle) * 3.55555555555556;
var i = 0;
while (i < rays) {
ang[i] = (viewAngle - h_fov) + (i * fov_div_rays);
if (ang[i] >= 360) {
ang[i] = ang[i] - 360;
} else if (ang[i] < 0) {
ang[i] = ang[i] + 360;
}
if ((270 < ang[i]) || (ang[i] < 90)) {
r[i] = true;
} else {
r[i] = false;
}
if ((0 < ang[i]) && (ang[i] < 180)) {
d[i] = true;
} else {
d[i] = false;
}
tAng1[i] = Math.tan(degToRad * ang[i]);
tAng2[i] = Math.tan(degToRad * (90 - ang[i]));
tAng3[i] = Math.tan(degToRad * (270 - ang[i]));
i++;
}
}
if (move || (rotate)) {
cast2Rays(0, midRay);
cast2Rays(midRay - 1000, rays - 1);
if (move) {
objSort();
}
drawObjects();
}
update2DMap();
frames++;
if (frames == 30) {
fps = "fps: " + (Math.round(300000 / (getTimer() - fpsTime)) / 10);
frames = 0;
fpsTime = getTimer();
}
}
function Obj(x, y, objType, objWidth, objHeight, walkRadius) {
objects.push(this);
numOfObjects = objects.length;
if (numOfObjects != 1) {
omc.obj0.duplicateMovieClip("obj" + (numOfObjects - 1), numOfObjects);
}
_root["obj" + (numOfObjects - 1)]._visible = false;
this.x = x;
this.y = y;
this.objWidth = objWidth;
this.objHeight = objHeight;
this.objType = objType;
this.walkRadius = walkRadius;
}
function objSort() {
function sort(a, l, r) {
var i = l;
var j = r;
var w;
var x = a[int((l + r) / 2)].objDis;
do {
while (x < a[i].objDis) {
i++;
}
while (a[j].objDis < x) {
j--;
}
if (j >= i) {
w = a[i];
a[i++] = a[j];
a[j--] = w;
}
} while (j >= i);
if (l < j) {
sort(a, l, j);
}
if (i < r) {
sort(a, i, r);
}
}
if (showObjects) {
var i = 0;
while (i < numOfObjects) {
var dx = (objects[i].x - x);
var dy = (objects[i].y - y);
objects[i].objDis = Math.sqrt((dx * dx) + (dy * dy));
i++;
}
sort(objects, 0, objects.length - 1);
}
}
function sort(a, l, r) {
var i = l;
var j = r;
var w;
var x = a[int((l + r) / 2)].objDis;
do {
while (x < a[i].objDis) {
i++;
}
while (a[j].objDis < x) {
j--;
}
if (j >= i) {
w = a[i];
a[i++] = a[j];
a[j--] = w;
}
} while (j >= i);
if (l < j) {
sort(a, l, j);
}
if (i < r) {
sort(a, i, r);
}
}
title = " ";
message = " ";
_quality = "LOW";
_focusrect = false;
ang = new Array();
dis = new Array();
dist = new Array();
d = new Array();
degToRad = (Math.PI/180);
fovAngle = 75;
fpsTime = 0;
frames = 0;
hHit = new Array();
imageHeight = 240;
imageWidth = 320;
m = new Array();
mapWidth = 14;
mapHeight = 16;
move = 0;
objects = new Array();
r = new Array();
radToDeg = 57.2957795130823;
rays = 125;
rHit = new Array();
rotate = 0;
showObjects = true;
tAng1 = new Array();
tAng2 = new Array();
tAng3 = new Array();
texPos = new Array();
sky._x = (-viewAngle) * 3.55555555555556;
if (_root.map == 1) {
x = 2.5;
xMap = Math.floor(x);
y = 5.5;
yMap = Math.floor(y);
viewAngle = 270;
}
if (_root.map == 2) {
x = 2.5;
y = 3.5;
viewAngle = 270;
}
if (_root.map == 3) {
x = 6.5;
y = 6.5;
viewAngle = 270;
}
if (_root.map == 4) {
x = 7.5;
y = 9.5;
viewAngle = 270;
}
if (_root.map == 5) {
x = 2.5;
y = 3.5;
viewAngle = 270;
}
if (_root.map == 6) {
x = 1.5;
y = 6.5;
viewAngle = 270;
}
if (_root.map == 7) {
x = 4.5;
y = 1.5;
viewAngle = 90;
}
if (_root.map == 8) {
x = 1.5;
y = 1.5;
viewAngle = 0;
}
if (_root.map == 9) {
x = 1.5;
y = 2.5;
viewAngle = 0;
}
if (_root.map == 10) {
x = 2.5;
y = 1.5;
viewAngle = 90;
}
if (_root.map == 11) {
x = 2.5;
y = 1.5;
viewAngle = 90;
}
if (_root.map == 12) {
x = 8.5;
y = 3.5;
viewAngle = 180;
}
if (_root.map == 13) {
x = 1.5;
y = 2.5;
viewAngle = 270;
}
if (_root.map == 14) {
x = 6.5;
y = 5.5;
viewAngle = 0;
}
xMap = Math.floor(x);
yMap = Math.floor(y);
var i = 0;
while (i < mapWidth) {
m[i] = new Array();
i++;
}
if (_root.map == 1) {
m[0][0] = 1;
m[1][0] = 1;
m[2][0] = 1;
m[3][0] = 1;
m[4][0] = 1;
m[0][1] = 1;
m[4][1] = 1;
m[0][2] = 1;
m[4][2] = 1;
m[5][2] = 2;
m[6][2] = 1;
m[7][2] = 1;
m[8][2] = 2;
m[9][2] = 1;
m[10][2] = 1;
m[11][2] = 2;
m[12][2] = 1;
m[13][2] = 1;
m[0][3] = 1;
m[13][3] = 1;
m[0][4] = 1;
m[4][4] = 1;
m[5][4] = 1;
m[6][4] = 1;
m[7][4] = 1;
m[8][4] = 1;
m[9][4] = 1;
m[10][4] = 1;
m[11][4] = 1;
m[13][4] = 1;
m[0][5] = 1;
m[4][5] = 1;
m[7][5] = 1;
m[13][5] = 1;
m[0][6] = 1;
m[1][6] = 1;
m[2][6] = 2;
m[3][6] = 1;
m[4][6] = 1;
m[7][6] = 1;
m[9][6] = 1;
m[11][6] = 1;
m[13][6] = 1;
m[3][7] = 1;
m[5][7] = 1;
m[6][7] = 1;
m[7][7] = 1;
m[13][7] = 1;
m[3][8] = 1;
m[5][8] = 1;
m[10][8] = 1;
m[13][8] = 1;
m[3][9] = 1;
m[5][9] = 1;
m[13][9] = 1;
m[3][10] = 1;
m[5][10] = 1;
m[7][10] = 1;
m[9][10] = 1;
m[11][10] = 1;
m[13][10] = 1;
m[3][11] = 1;
m[5][11] = 1;
m[13][11] = 1;
m[3][12] = 1;
m[5][12] = 1;
m[13][12] = 1;
m[3][13] = 1;
m[5][13] = 1;
m[6][13] = 1;
m[7][13] = 1;
m[8][13] = 1;
m[13][13] = 1;
m[3][14] = 1;
m[13][14] = 1;
m[3][15] = 1;
m[4][15] = 1;
m[5][15] = 1;
m[6][15] = 1;
m[7][15] = 1;
m[8][15] = 1;
m[9][15] = 1;
m[10][15] = 1;
m[11][15] = 1;
m[12][15] = 1;
m[13][15] = 1;
}
if (((((_root.map == 2) or (_root.map == 4)) or (_root.map == 8)) or (_root.map == 12)) or (_root.map == 14)) {
m[0][0] = 1;
m[1][0] = 4;
m[2][0] = 5;
m[3][0] = 1;
m[4][0] = 1;
m[0][1] = 2;
m[4][1] = 1;
m[5][1] = 2;
m[6][1] = 1;
m[7][1] = 2;
m[8][1] = 1;
m[9][1] = 1;
m[0][2] = 7;
m[9][2] = 1;
m[0][3] = 1;
m[4][3] = 1;
m[5][3] = 1;
m[6][3] = 1;
m[7][3] = 1;
m[9][3] = 2;
m[0][4] = 1;
m[1][4] = 3;
m[2][4] = 2;
m[3][4] = 3;
m[4][4] = 1;
m[5][4] = 2;
m[6][4] = 1;
m[7][4] = 1;
m[9][4] = 1;
m[4][5] = 3;
m[9][5] = 2;
m[4][6] = 1;
m[5][6] = 1;
m[6][6] = 1;
m[8][6] = 1;
m[9][6] = 1;
m[6][7] = 1;
m[8][7] = 2;
m[6][8] = 6;
m[8][8] = 1;
m[6][9] = 1;
m[8][9] = 1;
m[6][10] = 1;
m[7][10] = 2;
m[8][10] = 1;
}
if ((_root.map == 3) or (_root.map == 6)) {
m[0][0] = 1;
m[1][0] = 1;
m[2][0] = 1;
m[3][0] = 1;
m[4][0] = 1;
m[5][0] = 1;
m[6][0] = 1;
m[7][0] = 1;
m[8][0] = 1;
m[0][1] = 1;
m[8][1] = 1;
m[0][2] = 1;
m[2][2] = 1;
m[8][2] = 1;
m[0][3] = 1;
m[2][3] = 1;
m[8][3] = 1;
m[0][4] = 1;
m[2][4] = 1;
m[8][4] = 1;
m[0][5] = 1;
m[2][5] = 1;
m[8][5] = 1;
m[0][6] = 1;
m[2][6] = 1;
m[8][6] = 1;
m[0][7] = 1;
m[1][7] = 2;
m[2][7] = 1;
m[3][7] = 1;
m[4][7] = 1;
m[5][7] = 1;
m[6][7] = 2;
m[7][7] = 1;
m[8][7] = 1;
}
if (_root.map == 5) {
m[0][0] = 8;
m[1][0] = 8;
m[2][0] = 8;
m[3][0] = 8;
m[4][0] = 8;
m[5][0] = 8;
m[6][0] = 8;
m[0][1] = 8;
m[6][1] = 8;
m[0][2] = 8;
m[6][2] = 8;
m[0][3] = 8;
m[6][3] = 8;
m[0][4] = 8;
m[1][4] = 8;
m[2][4] = 2;
m[3][4] = 8;
m[4][4] = 8;
m[5][4] = 8;
m[6][4] = 8;
}
if ((_root.map == 7) or (_root.map == 10)) {
m[0][0] = 1;
m[1][0] = 1;
m[2][0] = 2;
m[3][0] = 1;
m[4][0] = 2;
m[5][0] = 1;
m[6][0] = 1;
m[7][0] = 1;
m[0][1] = 9;
m[7][1] = 1;
m[0][2] = 1;
m[1][2] = 1;
m[2][2] = 1;
m[3][2] = 1;
m[4][2] = 1;
m[5][2] = 1;
m[6][2] = 1;
m[7][2] = 1;
}
if (_root.map == 9) {
m[0][1] = 1;
m[1][1] = 1;
m[2][1] = 10;
m[3][1] = 1;
m[4][1] = 1;
m[0][2] = 2;
m[4][2] = 1;
m[0][3] = 4;
m[4][3] = 1;
m[0][4] = 1;
m[1][4] = 1;
m[2][4] = 5;
m[3][4] = 1;
m[4][4] = 1;
}
if (_root.map == 11) {
m[0][0] = 1;
m[1][0] = 1;
m[2][0] = 2;
m[3][0] = 1;
m[4][0] = 1;
m[0][1] = 1;
m[4][1] = 1;
m[0][2] = 11;
m[4][2] = 12;
m[0][3] = 1;
m[4][3] = 1;
m[0][4] = 1;
m[1][4] = 1;
m[2][4] = 11;
m[3][4] = 1;
m[4][4] = 1;
}
if (_root.map == 13) {
m[0][0] = 1;
m[1][0] = 1;
m[2][0] = 13;
m[3][0] = 1;
m[4][0] = 1;
m[0][1] = 14;
m[4][1] = 1;
m[0][2] = 1;
m[4][2] = 15;
m[0][3] = 1;
m[1][3] = 2;
m[2][3] = 1;
m[3][3] = 1;
m[4][3] = 1;
}
if (_root.map == 1) {
new Obj(1.25, 1.25, 3, 1, 1, 0.1);
new Obj(3.75, 1.25, 4, 1, 1, 0.1);
new Obj(12.75, 3.25, 3, 1, 1, 0.1);
}
if (((((_root.map == 2) or (_root.map == 4)) or (_root.map == 8)) or (_root.map == 12)) or (_root.map == 14)) {
new Obj(1.25, 1.25, 3, 1, 1, 0.1);
new Obj(3.75, 1.25, 4, 1, 1, 0.1);
new Obj(3.75, 3.25, 3, 1, 1, 0.1);
new Obj(8.75, 2.25, 3, 1, 1, 0.1);
new Obj(8.75, 5.85, 3, 1, 1, 0.1);
new Obj(5.25, 5.75, 4, 1, 1, 0.1);
}
if ((_root.map == 3) or (_root.map == 6)) {
new Obj(3.25, 1.15, 3, 1, 1, 0.1);
new Obj(3.25, 2, 3, 1, 1, 0.1);
new Obj(3.25, 6.75, 3, 1, 1, 0.1);
new Obj(7.75, 6.75, 3, 1, 1, 0.1);
new Obj(7.75, 1.15, 3, 1, 1, 0.1);
new Obj(4, 2.5, 2, 0.5, 0.5, 0.5);
new Obj(4.5, 3.5, 2, 0.5, 0.5, 0.5);
new Obj(4, 4.5, 2, 0.5, 0.5, 0.5);
new Obj(4.5, 5.5, 2, 0.5, 0.5, 0.5);
new Obj(4, 6, 2, 0.5, 0.5, 0.5);
new Obj(7, 2.5, 2, 0.5, 0.5, 0.5);
new Obj(7.5, 3.5, 2, 0.5, 0.5, 0.5);
new Obj(7, 4.5, 2, 0.5, 0.5, 0.5);
new Obj(7.5, 5.5, 2, 0.5, 0.5, 0.5);
new Obj(6, 2.5, 2, 0.5, 0.5, 0.5);
}
if (_root.map == 5) {
new Obj(3, 3, 5, 0.5, 0.5, 0);
new Obj(1.5, 2, 5, 0.5, 0.5, 0);
new Obj(4, 2, 5, 0.5, 0.5, 0);
new Obj(5, 1.5, 5, 0.5, 0.5, 0);
new Obj(4.5, 2, 5, 0.5, 0.5, 0);
new Obj(4.5, 3.5, 5, 0.5, 0.5, 0);
new Obj(5.5, 3, 6, 0.5, 0.5, 0);
}
if ((_root.map == 7) or (_root.map == 10)) {
}
if (_root.map == 9) {
new Obj(3.5, 3.5, 2, 0.5, 0.5, 0.5);
new Obj(3.75, 2.15, 3, 1, 1, 0.1);
}
if (_root.map == 11) {
new Obj(2.25, 2, 7, 0.5, 0.5, 0);
new Obj(2.75, 2, 7, 0.5, 0.5, 0);
new Obj(2, 2.5, 7, 0.5, 0.5, 0);
new Obj(3, 2.5, 7, 0.5, 0.5, 0);
new Obj(2.25, 3, 7, 0.5, 0.5, 0);
new Obj(2.75, 3, 7, 0.5, 0.5, 0);
}
if (_root.map == 13) {
new Obj(2, 1.25, 8, 0.75, 0.75, 0);
new Obj(1.75, 1.25, 9, 0.75, 0.75, 0);
new Obj(3.5, 1.5, 2, 0.5, 0.5, 0.5);
new Obj(3.75, 2.5, 10, 0.5, 0.5, 0);
}
preCalc();
Instance of Symbol 105 MovieClip "wmc" in Frame 2 (43 B)
onClipEvent (enterFrame) {
_root.main();
}
Instance of Symbol 206 MovieClip in Frame 2 (5.4 KiB) ● ●
onClipEvent (enterFrame) {
_parent.title = " ";
_parent.message = " ";
this.gotoAndStop(1);
if (_root.map == 1) {
if ((_parent.xMap == 2) and (_parent.yMap == 5)) {
this.gotoAndStop(2);
}
if ((_parent.xMap == 5) and (_parent.yMap == 3)) {
_parent.title = "Room 1";
_parent.message = "The door's locked...";
}
if ((_parent.xMap == 8) and (_parent.yMap == 3)) {
_parent.title = "Room 2";
_parent.message = "The door's locked...";
}
if ((_parent.xMap == 11) and (_parent.yMap == 3)) {
_parent.title = "Room 3";
_parent.message = "The door's locked...";
}
}
if (((((_root.map == 2) or (_root.map == 4)) or (_root.map == 8)) or (_root.map == 12)) or (_root.map == 14)) {
if (_parent.xMap < 4) {
_root.maploc = 1;
}
if ((3 < _parent.xMap) and (_parent.yMap == 2)) {
_root.maploc = 2;
}
if (_parent.xMap == 8) {
_root.maploc = 3;
}
if (_parent.yMap == 5) {
_root.maploc = 4;
}
if (5 < _parent.yMap) {
_root.maploc = 5;
}
if ((_parent.xMap == 1) and (_parent.yMap == 3)) {
_parent.title = "Window";
_parent.message = "It's dark outside.";
}
if ((_parent.xMap == 2) and (_parent.yMap == 3)) {
_parent.title = "Hotel Entrance";
_parent.message = "There's no way I'm going back out into that storm.";
}
if ((_parent.xMap == 3) and (_parent.yMap == 3)) {
_parent.title = "Window";
_parent.message = "It's dark outside.";
}
if ((_parent.xMap == 2) and (_parent.yMap == 1)) {
_parent.title = "Reception";
_parent.message = "The hatch is closed.";
}
if ((_parent.xMap == 1) and (_parent.yMap == 1)) {
_parent.title = "Staff Only";
_parent.message = "The door is locked.";
if (_root.skey == 1) {
_parent.item1.gotoAndStop(1);
this.gotoAndStop(9);
}
}
if ((_parent.xMap == 1) and (_parent.yMap == 2)) {
this.gotoAndStop(3);
}
if ((_parent.xMap == 5) and (_parent.yMap == 2)) {
_parent.title = "Room 1";
_parent.message = "The door is locked.";
}
if ((_parent.xMap == 7) and (_parent.yMap == 2)) {
_parent.title = "Room 2";
_parent.message = "The door is locked.";
}
if ((_parent.xMap == 8) and (_parent.yMap == 3)) {
_parent.title = "Room 3";
_parent.message = "The door is locked.";
if (_root.key3 == 1) {
_parent.item2.gotoAndStop(1);
this.gotoAndStop(16);
}
}
if ((_parent.xMap == 8) and (_parent.yMap == 5)) {
_parent.title = "Room 4";
_parent.message = "The door is locked.";
}
if ((_parent.xMap == 5) and (_parent.yMap == 5)) {
_parent.title = "Janitor's Closet";
_parent.message = "The door is locked.";
if (_root.jankey == 1) {
_parent.item3.gotoAndStop(1);
this.gotoAndStop(20);
}
}
if ((_parent.xMap == 7) and (_parent.yMap == 7)) {
_parent.title = "Room 5";
_parent.message = "The door is locked.";
}
if ((_parent.xMap == 7) and (_parent.yMap == 8)) {
_parent.title = "Elevator";
_parent.message = "There's no power.";
if (_root.power == 1) {
this.gotoAndStop(25);
}
}
if ((_parent.xMap == 7) and (_parent.yMap == 9)) {
this.gotoAndStop(2);
}
}
if ((_root.map == 3) or (_root.map == 6)) {
if (2 < _parent.xMap) {
_root.maploc = 6;
}
if (_parent.xMap < 3) {
_root.maploc = 7;
}
if ((_parent.xMap == 6) and (_parent.yMap == 6)) {
this.gotoAndStop(4);
}
if ((_parent.xMap == 1) and (_parent.yMap == 6)) {
this.gotoAndStop(5);
}
}
if (_root.map == 5) {
_root.maploc = 8;
_parent.title = "Kitchen";
_parent.message = "Looks like there was a nasty fire...";
if ((_parent.xMap == 2) and (_parent.yMap == 3)) {
this.gotoAndStop(6);
}
if ((_parent.xMap == 5) and (_parent.yMap == 2)) {
if (_root.skey == 0) {
this.gotoAndStop(7);
}
if (_root.skey == 1) {
this.gotoAndStop(8);
}
}
}
if ((_root.map == 7) or (_root.map == 10)) {
_root.maploc = 9;
if ((_parent.xMap == 4) and (_parent.yMap == 1)) {
this.gotoAndStop(10);
}
if ((_parent.xMap == 2) and (_parent.yMap == 1)) {
this.gotoAndStop(11);
}
if ((_parent.xMap == 1) and (_parent.yMap == 1)) {
if (_root.fuse == 0) {
this.gotoAndStop(12);
}
if (_root.fuse == 1) {
_parent.item4.gotoAndStop(1);
_root.power = 1;
this.gotoAndStop(24);
}
}
}
if (_root.map == 9) {
_root.maploc = 10;
if ((_parent.xMap == 1) and (_parent.yMap == 2)) {
this.gotoAndStop(13);
}
if ((_parent.xMap == 2) and (_parent.yMap == 2)) {
if (_root.key3 == 0) {
this.gotoAndStop(14);
}
if (_root.key3 == 1) {
this.gotoAndStop(15);
}
}
}
if (_root.map == 11) {
_root.maploc = 11;
_parent.title = "Room 3";
_parent.message = "What's going on here?";
if ((_parent.xMap == 2) and (_parent.yMap == 3)) {
_parent.title = "Symbol";
_parent.message = "It looks like dried blood...";
}
if ((_parent.xMap == 1) and (_parent.yMap == 2)) {
_parent.title = "Symbol";
_parent.message = "It looks like dried blood...";
}
if ((_parent.xMap == 3) and (_parent.yMap == 2)) {
if (_root.jankey == 0) {
this.gotoAndStop(18);
}
if (_root.jankey == 1) {
this.gotoAndStop(19);
}
}
if ((_parent.xMap == 2) and (_parent.yMap == 1)) {
this.gotoAndStop(17);
}
}
if (_root.map == 13) {
_root.maploc = 12;
if ((_parent.xMap == 3) and (_parent.yMap == 2)) {
if (_root.fuse == 0) {
this.gotoAndStop(21);
}
if (_root.fuse == 1) {
this.gotoAndStop(22);
}
}
if ((_parent.xMap == 1) and (_parent.yMap == 2)) {
this.gotoAndStop(23);
}
}
}
Frame 3 (8 B)
stop();
Frame 4 (8 B)
stop();
Instance of Symbol 10 MovieClip in Symbol 11 MovieClip [startScreen] Frame 1 (109 B)
onClipEvent (mouseDown) {
_parent.removeMovieClip();
}
onClipEvent (keyDown) {
_parent.removeMovieClip();
}
Symbol 39 Button (65 B)
on (release) {
getURL ("http://www.newgrounds.com", "_blank");
}
Symbol 41 MovieClip Frame 40 (8 B)
stop();
Symbol 53 Button (31 B)
on (release) {
startMovie();
}
Symbol 54 MovieClip Frame 1 (1.5 KiB) ●
function timerHandler() {
if (!loadingComplete) {
var loaded = (_root.getBytesLoaded() / _root.getBytesTotal());
bar._xscale = 100 * loaded;
if (loaded == 1) {
loadingComplete = true;
if (AUTO_PLAY) {
startMovie();
} else {
gotoAndStop (1);
}
return(undefined);
}
}
dt = getTimer() - time;
time = time + dt;
frameAccum = frameAccum + dt;
var i = 0;
while ((frameAccum >= FRAME_TIME) && (i < MAX_FRAME_SKIP)) {
advanceFrame(tankLogo, true, true);
advanceFrame(loadingText, false, true);
advanceFrame(barGfx, false, true);
if (loadingComplete) {
advanceFrame(this, false, false);
}
(frameAccum = frameAccum - FRAME_TIME);
i++;
}
updateAfterEvent();
}
function advanceFrame(clip, recurse, loop) {
if (!clip) {
return(undefined);
}
clip.stop();
if (clip._currentframe == clip._totalframes) {
if (loop) {
clip.gotoAndStop(1);
}
} else {
clip.nextFrame();
}
if (recurse) {
for (childName in clip) {
if (typeof(clip[childName]) == "movieclip") {
advanceFrame(clip[childName], recurse, loop);
}
}
}
}
function startMovie() {
clearInterval(intervalId);
_root.play();
}
_root.stop();
stop();
var FRAME_TIME = 33.3333333333333;
var AUTO_PLAY = false;
var MAX_FRAME_SKIP = 5;
var loadingComplete;
var intervalId;
var time;
var frameAccum;
loadingComplete = false;
intervalId = setInterval(this, "timerHandler", FRAME_TIME / 2);
frameAccum = 0;
time = getTimer();
timerHandler();
Symbol 54 MovieClip Frame 51 (8 B)
stop();
Instance of Symbol 87 MovieClip in Symbol 102 MovieClip Frame 7 (61 B)
onClipEvent (enterFrame) {
this.gotoAndStop(_root.maploc);
}
Symbol 140 Button (57 B)
on (release) {
_root.map = 3;
_parent.gotoAndPlay(2);
}
Symbol 145 Button (51 B)
on (release) {
_parent.mapbutton.gotoAndPlay(2);
}
Symbol 148 Button (57 B)
on (release) {
_root.map = 4;
_parent.gotoAndPlay(2);
}
Symbol 150 Button (57 B)
on (release) {
_root.map = 5;
_parent.gotoAndPlay(2);
}
Symbol 152 Button (57 B)
on (release) {
_root.map = 6;
_parent.gotoAndPlay(2);
}
Symbol 155 MovieClip Frame 1 (8 B)
stop();
Symbol 159 Button (64 B)
on (release) {
_parent.item1.gotoAndStop(2);
_root.skey = 1;
}
Symbol 164 Button (57 B)
on (release) {
_root.map = 7;
_parent.gotoAndPlay(2);
}
Symbol 166 Button (57 B)
on (release) {
_root.map = 8;
_parent.gotoAndPlay(2);
}
Symbol 168 Button (57 B)
on (release) {
_root.map = 9;
_parent.gotoAndPlay(2);
}
Symbol 172 Button (58 B)
on (release) {
_root.map = 10;
_parent.gotoAndPlay(2);
}
Symbol 175 Button (64 B)
on (release) {
_parent.item2.gotoAndStop(2);
_root.key3 = 1;
}
Symbol 180 Button (58 B)
on (release) {
_root.map = 11;
_parent.gotoAndPlay(2);
}
Symbol 182 Button (58 B)
on (release) {
_root.map = 12;
_parent.gotoAndPlay(2);
}
Symbol 185 Button (66 B)
on (release) {
_parent.item3.gotoAndStop(2);
_root.jankey = 1;
}
Symbol 190 Button (58 B)
on (release) {
_root.map = 13;
_parent.gotoAndPlay(2);
}
Symbol 196 Button (64 B)
on (release) {
_parent.item4.gotoAndStop(2);
_root.fuse = 1;
}
Symbol 200 Button (58 B)
on (release) {
_root.map = 14;
_parent.gotoAndPlay(2);
}
Symbol 205 Button (41 B)
on (release) {
_parent.gotoAndPlay(4);
}
Symbol 206 MovieClip Frame 1 (8 B)
stop();
Symbol 206 MovieClip Frame 2 (8 B)
stop();
Symbol 206 MovieClip Frame 3 (8 B)
stop();
Symbol 206 MovieClip Frame 4 (8 B)
stop();
Symbol 206 MovieClip Frame 5 (8 B)
stop();
Symbol 206 MovieClip Frame 6 (8 B)
stop();
Symbol 206 MovieClip Frame 7 (8 B)
stop();
Symbol 206 MovieClip Frame 8 (8 B)
stop();
Symbol 206 MovieClip Frame 9 (8 B)
stop();
Symbol 206 MovieClip Frame 10 (8 B)
stop();
Symbol 206 MovieClip Frame 11 (8 B)
stop();
Symbol 206 MovieClip Frame 12 (8 B)
stop();
Symbol 206 MovieClip Frame 13 (8 B)
stop();
Symbol 206 MovieClip Frame 14 (8 B)
stop();
Symbol 206 MovieClip Frame 15 (8 B)
stop();
Symbol 206 MovieClip Frame 16 (8 B)
stop();
Symbol 206 MovieClip Frame 17 (8 B)
stop();
Symbol 206 MovieClip Frame 18 (8 B)
stop();
Symbol 206 MovieClip Frame 19 (8 B)
stop();
Symbol 206 MovieClip Frame 20 (8 B)
stop();
Symbol 206 MovieClip Frame 21 (8 B)
stop();
Symbol 206 MovieClip Frame 22 (8 B)
stop();
Symbol 206 MovieClip Frame 23 (8 B)
stop();
Symbol 206 MovieClip Frame 24 (8 B)
stop();
Symbol 206 MovieClip Frame 25 (8 B)
stop();
Symbol 214 Button (67 B)
on (press) {
gotoAndStop (3);
}
on (release) {
gotoAndStop (2);
}
Symbol 215 MovieClip Frame 1 (8 B)
stop();
Symbol 215 MovieClip Frame 2 (8 B)
stop();
Symbol 215 MovieClip Frame 3 (8 B)
stop();
Instance of Symbol 87 MovieClip in Symbol 215 MovieClip Frame 3 (61 B)
onClipEvent (enterFrame) {
this.gotoAndStop(_root.maploc);
}
Symbol 218 MovieClip Frame 1 (8 B)
stop();
Symbol 218 MovieClip Frame 2 (8 B)
stop();
Symbol 221 MovieClip Frame 1 (8 B)
stop();
Symbol 221 MovieClip Frame 2 (8 B)
stop();
Symbol 227 Button (72 B)
on (release) {
getURL ("http://jscdragon.newgrounds.com/", "_blank");
}