703 строки
15 KiB
JavaScript
703 строки
15 KiB
JavaScript
//====================================================================================
|
|
// Auto-generated code. Original source + changes are
|
|
// sphere flake bvh raytracer (c) 2005, thierry berger-perrin <tbptbp@gmail.com>
|
|
// (c) 2010, azakai (Emscripten)
|
|
// this code is released under the GNU Public License.
|
|
//
|
|
// Optimized using Closure Compiler
|
|
//====================================================================================
|
|
|
|
function l() {
|
|
return function() {
|
|
}
|
|
}
|
|
function m() {
|
|
}
|
|
FUNCTION_TABLE = [];
|
|
var o = [];
|
|
function q(a, b) {
|
|
if(!a) {
|
|
b = "Assertion failed: " + b;
|
|
print(b + ":\n" + Error().stack);
|
|
throw"Assertion: " + b;
|
|
}
|
|
}
|
|
ALLOC_NORMAL = 0;
|
|
ALLOC_STACK = 1;
|
|
ALLOC_STATIC = 2;
|
|
function r(a, b, c) {
|
|
function d(g) {
|
|
if(!g || g.length === undefined || typeof g === "function") {
|
|
return[g]
|
|
}
|
|
return g.map(d).reduce(function(i, j) {
|
|
return i.concat(j)
|
|
}, [])
|
|
}
|
|
b = b ? b : 0;
|
|
if(a === HEAP) {
|
|
return b
|
|
}
|
|
a = d(a);
|
|
c = [_malloc, aa, u][c ? c : ALLOC_STATIC](Math.max(a.length - b, 1));
|
|
for(var e = 0;e < a.length - b;e++) {
|
|
var h = a[b + e];
|
|
if(typeof h === "number" || typeof h === "boolean") {
|
|
IHEAP[c + e] = h;
|
|
FHEAP[c + e] = h
|
|
}else {
|
|
HEAP[c + e] = h
|
|
}
|
|
}
|
|
return c
|
|
}
|
|
function ba(a) {
|
|
a = {e:IHEAP, d:a};
|
|
for(var b = "", c = 0, d;;) {
|
|
if(a.d + c >= a.e.length) {
|
|
break
|
|
}
|
|
d = String.fromCharCode(a.e[a.d + c]);
|
|
if(d == "\u0000") {
|
|
break
|
|
}
|
|
b += d;
|
|
c += 1
|
|
}
|
|
return b
|
|
}
|
|
PAGE_SIZE = 4096;
|
|
if(!this.f) {
|
|
_malloc = u;
|
|
_free = l()
|
|
}
|
|
__Znwm = __Znam = __Znaj = __Znwj = _malloc;
|
|
__ZdaPv = __ZdlPv = _free;
|
|
function ia() {
|
|
HEAP = x("(null)");
|
|
this.TOTAL_MEMORY || (TOTAL_MEMORY = 52428800);
|
|
if(this.Int32Array) {
|
|
IHEAP = new Int32Array(TOTAL_MEMORY);
|
|
for(var a = 0;a < HEAP.length;a++) {
|
|
IHEAP[a] = HEAP[a]
|
|
}
|
|
}else {
|
|
IHEAP = HEAP
|
|
}
|
|
FHEAP = this.Float64Array ? new Float64Array(TOTAL_MEMORY) : HEAP;
|
|
STACK_ROOT = STACKTOP = Math.ceil(10 / PAGE_SIZE) * PAGE_SIZE;
|
|
this.TOTAL_STACK || (TOTAL_STACK = 1048576);
|
|
STACK_MAX = STACK_ROOT + TOTAL_STACK;
|
|
STATICTOP = Math.ceil(STACK_MAX / PAGE_SIZE) * PAGE_SIZE
|
|
}
|
|
function ja(a, b, c) {
|
|
for(var d = 0;d < c;d++) {
|
|
HEAP[a + d] = HEAP[b + d];
|
|
IHEAP[a + d] = IHEAP[b + d];
|
|
FHEAP[a + d] = FHEAP[b + d]
|
|
}
|
|
}
|
|
_llvm_memcpy_p0i8_p0i8_i32 = _llvm_memcpy_i64 = ja;
|
|
_llvm_memset_p0i8_i32 = function(a, b, c) {
|
|
for(var d = 0;d < c;d++) {
|
|
HEAP[a + d] = IHEAP[a + d] = FHEAP[a + d] = b
|
|
}
|
|
};
|
|
PRINTBUFFER = "";
|
|
function x(a) {
|
|
for(var b = [], c = 0;c < a.length;) {
|
|
b.push(a.charCodeAt(c));
|
|
c += 1
|
|
}
|
|
b.push(0);
|
|
return b
|
|
}
|
|
function aa(a) {
|
|
var b = STACKTOP;
|
|
q(a > 0);
|
|
STACKTOP += a;
|
|
STACKTOP = Math.ceil(STACKTOP / 4) * 4;
|
|
q(STACKTOP < STACK_ROOT + STACK_MAX);
|
|
return b
|
|
}
|
|
function u(a) {
|
|
var b = STATICTOP;
|
|
q(a > 0);
|
|
STATICTOP += a;
|
|
STATICTOP = Math.ceil(STATICTOP / 4) * 4;
|
|
return b
|
|
}
|
|
var ka = [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16];
|
|
this.__defineGetter__("_screen", function() {
|
|
delete _screen;
|
|
return _screen = r([0], 0, ALLOC_STATIC)
|
|
});
|
|
this.__defineGetter__("__ZStL8__ioinit", function() {
|
|
delete __ZStL8__ioinit;
|
|
return __ZStL8__ioinit = r([0], 0, ALLOC_STATIC)
|
|
});
|
|
var la = 0;
|
|
this.__defineGetter__("__ZL5light", function() {
|
|
delete __ZL5light;
|
|
return __ZL5light = r([0, 0, 0], 0, ALLOC_STATIC)
|
|
});
|
|
this.__defineGetter__("__ZL4pool", function() {
|
|
delete __ZL4pool;
|
|
return __ZL4pool = r([0], 0, ALLOC_STATIC)
|
|
});
|
|
this.__defineGetter__("__ZL3end", function() {
|
|
delete __ZL3end;
|
|
return __ZL3end = r([0], 0, ALLOC_STATIC)
|
|
});
|
|
this.__defineGetter__("__ZL4grid", function() {
|
|
delete __ZL4grid;
|
|
return __ZL4grid = r([[-1, -0.3333333333333333], [0.3333333333333333, -1], [-0.3333333333333333, 1], [1, 0.3333333333333333]], 0, ALLOC_STATIC)
|
|
});
|
|
m = function() {
|
|
B()
|
|
};
|
|
_sqrt = Math.sqrt;
|
|
__ZNSt8ios_base4InitC1Ev = function() {
|
|
__ZSt4cout = 1;
|
|
__ZSt4cerr = 2
|
|
};
|
|
___cxa_atexit = function(a) {
|
|
o.push(a)
|
|
};
|
|
__ZNSt8ios_base4InitD1Ev = function() {
|
|
__ZSt4cout = 1;
|
|
__ZSt4cerr = 2
|
|
};
|
|
_cos = Math.cos;
|
|
_sin = Math.sin;
|
|
_SDL_LockSurface = function(a) {
|
|
var b = SDL_SURFACES[a];
|
|
b.a = b.c.getImageData(0, 0, b.width, b.height);
|
|
for(var c = b.a.data.length, d = 0;d < c;d++) {
|
|
IHEAP[b.b + d] = b.a.data[d]
|
|
}
|
|
IHEAP[a + 5] = b.b
|
|
};
|
|
_SDL_UnlockSurface = function(a) {
|
|
a = SDL_SURFACES[a];
|
|
for(var b = a.a.data.length, c = 0;c < b;c++) {
|
|
a.a.data[c] = IHEAP[a.b + c]
|
|
}
|
|
for(c = 0;c < b / 4;c++) {
|
|
a.a.data[c * 4 + 3] = 255
|
|
}
|
|
a.c.putImageData(a.a, 0, 0);
|
|
a.a = null
|
|
};
|
|
_SDL_Flip = l();
|
|
_SDL_Init = function() {
|
|
SDL_SURFACES = {};
|
|
return 1
|
|
};
|
|
_SDL_SetVideoMode = function(a, b, c, d, e) {
|
|
c = _malloc(14);
|
|
SDL_SURFACES[c] = {width:a, height:b, canvas:e, c:e.getContext("2d"), g:c, b:_malloc(a * b * 4)};
|
|
return c
|
|
};
|
|
_SDL_Delay = l();
|
|
_SDL_Quit = function() {
|
|
return 1
|
|
};
|
|
function B() {
|
|
C(1, 65535)
|
|
}
|
|
FUNCTION_TABLE[0] = B;
|
|
FUNCTION_TABLE[1] = function(a, b) {
|
|
return b
|
|
};
|
|
FUNCTION_TABLE[2] = l();
|
|
function E(a, b) {
|
|
return FHEAP[a] < FHEAP[b] ? b : a
|
|
}
|
|
FUNCTION_TABLE[3] = E;
|
|
function F(a, b) {
|
|
return IHEAP[a] < IHEAP[b] ? b : a
|
|
}
|
|
FUNCTION_TABLE[4] = F;
|
|
var ma = 5;
|
|
FUNCTION_TABLE[5] = function() {
|
|
__ZNSt8ios_base4InitD1Ev(__ZStL8__ioinit)
|
|
};
|
|
function G(a, b, c, d) {
|
|
FHEAP[a] = b;
|
|
FHEAP[a + 1] = c;
|
|
FHEAP[a + 2] = d
|
|
}
|
|
FUNCTION_TABLE[6] = G;
|
|
function H(a, b, c) {
|
|
G(a, FHEAP[b] + FHEAP[c], FHEAP[b + 1] + FHEAP[c + 1], FHEAP[b + 2] + FHEAP[c + 2])
|
|
}
|
|
FUNCTION_TABLE[7] = H;
|
|
function I(a, b, c) {
|
|
G(a, FHEAP[b] - FHEAP[c], FHEAP[b + 1] - FHEAP[c + 1], FHEAP[b + 2] - FHEAP[c + 2])
|
|
}
|
|
FUNCTION_TABLE[8] = I;
|
|
function J(a, b) {
|
|
G(a, 0 - FHEAP[b], 0 - FHEAP[b + 1], 0 - FHEAP[b + 2])
|
|
}
|
|
FUNCTION_TABLE[9] = J;
|
|
function K(a, b, c) {
|
|
G(a, FHEAP[b] * c, FHEAP[b + 1] * c, FHEAP[b + 2] * c)
|
|
}
|
|
FUNCTION_TABLE[10] = K;
|
|
function L(a, b, c) {
|
|
G(a, FHEAP[b + 1] * FHEAP[c + 2] - FHEAP[b + 2] * FHEAP[c + 1], FHEAP[b + 2] * FHEAP[c] - FHEAP[b] * FHEAP[c + 2], FHEAP[b] * FHEAP[c + 1] - FHEAP[b + 1] * FHEAP[c])
|
|
}
|
|
FUNCTION_TABLE[11] = L;
|
|
function M(a, b) {
|
|
return FHEAP[a] * FHEAP[b] + FHEAP[a + 1] * FHEAP[b + 1] + FHEAP[a + 2] * FHEAP[b + 2]
|
|
}
|
|
FUNCTION_TABLE[12] = M;
|
|
function P(a, b) {
|
|
FHEAP[a] = FHEAP[b];
|
|
FHEAP[a + 1] = FHEAP[b + 1];
|
|
FHEAP[a + 2] = FHEAP[b + 2]
|
|
}
|
|
FUNCTION_TABLE[13] = P;
|
|
function Q(a, b, c) {
|
|
FHEAP[a] = FHEAP[b];
|
|
FHEAP[a + 1] = FHEAP[b + 1];
|
|
FHEAP[a + 2] = FHEAP[b + 2];
|
|
a = a + 3;
|
|
FHEAP[a] = FHEAP[c];
|
|
FHEAP[a + 1] = FHEAP[c + 1];
|
|
FHEAP[a + 2] = FHEAP[c + 2]
|
|
}
|
|
FUNCTION_TABLE[14] = Q;
|
|
function R(a) {
|
|
G(a, 0, 0, 0);
|
|
FHEAP[a + 3] = Infinity
|
|
}
|
|
FUNCTION_TABLE[15] = R;
|
|
FUNCTION_TABLE[16] = l();
|
|
function S(a, b, c) {
|
|
FHEAP[a] = FHEAP[b];
|
|
FHEAP[a + 1] = FHEAP[b + 1];
|
|
FHEAP[a + 2] = FHEAP[b + 2];
|
|
FHEAP[a + 3] = c
|
|
}
|
|
FUNCTION_TABLE[17] = S;
|
|
function T(a, b, c) {
|
|
var d = STACKTOP;
|
|
STACKTOP += 3;
|
|
var e = 1 / FHEAP[b + 3];
|
|
I(d, c, b);
|
|
K(a, d, e);
|
|
STACKTOP = d
|
|
}
|
|
FUNCTION_TABLE[18] = T;
|
|
FUNCTION_TABLE[19] = l();
|
|
function U(a, b, c, d) {
|
|
FHEAP[a] = FHEAP[b];
|
|
FHEAP[a + 1] = FHEAP[b + 1];
|
|
FHEAP[a + 2] = FHEAP[b + 2];
|
|
FHEAP[a + 3] = FHEAP[b + 3];
|
|
b = a + 4;
|
|
FHEAP[b] = FHEAP[c];
|
|
FHEAP[b + 1] = FHEAP[c + 1];
|
|
FHEAP[b + 2] = FHEAP[c + 2];
|
|
FHEAP[b + 3] = FHEAP[c + 3];
|
|
IHEAP[a + 8] = d
|
|
}
|
|
FUNCTION_TABLE[20] = U;
|
|
function V(a, b) {
|
|
var c = STACKTOP;
|
|
STACKTOP += 12;
|
|
var d = c + 3, e = c + 6, h = c + 9;
|
|
W(d, b);
|
|
if((FHEAP[d] * FHEAP[d] != 1 != 0 & FHEAP[d + 1] * FHEAP[d + 1] != 1 != 0 & FHEAP[d + 2] * FHEAP[d + 2] != 1) != 0) {
|
|
var g = a + 3;
|
|
FHEAP[g] = FHEAP[d];
|
|
FHEAP[g + 1] = FHEAP[d + 1];
|
|
FHEAP[g + 2] = FHEAP[d + 2];
|
|
if(FHEAP[d + 1] * FHEAP[d + 1] > FHEAP[d] * FHEAP[d]) {
|
|
if(FHEAP[d + 1] * FHEAP[d + 1] > FHEAP[d + 2] * FHEAP[d + 2]) {
|
|
FHEAP[a + 3 + 1] = 0 - FHEAP[a + 3 + 1]
|
|
}else {
|
|
FHEAP[a + 3 + 2] = 0 - FHEAP[a + 3 + 2]
|
|
}
|
|
}else {
|
|
if(FHEAP[d + 2] * FHEAP[d + 2] > FHEAP[d] * FHEAP[d]) {
|
|
FHEAP[a + 3 + 2] = 0 - FHEAP[a + 3 + 2]
|
|
}else {
|
|
FHEAP[a + 3] = 0 - FHEAP[a + 3]
|
|
}
|
|
}
|
|
}else {
|
|
G(c, FHEAP[d + 2], FHEAP[d], FHEAP[d + 1]);
|
|
g = a + 3;
|
|
FHEAP[g] = FHEAP[c];
|
|
FHEAP[g + 1] = FHEAP[c + 1];
|
|
FHEAP[g + 2] = FHEAP[c + 2]
|
|
}
|
|
FHEAP[a] = FHEAP[d];
|
|
FHEAP[a + 1] = FHEAP[d + 1];
|
|
FHEAP[a + 2] = FHEAP[d + 2];
|
|
d = a + 6;
|
|
L(e, a, a + 3);
|
|
FHEAP[d] = FHEAP[e];
|
|
FHEAP[d + 1] = FHEAP[e + 1];
|
|
FHEAP[d + 2] = FHEAP[e + 2];
|
|
e = a + 3;
|
|
L(h, a, a + 6);
|
|
FHEAP[e] = FHEAP[h];
|
|
FHEAP[e + 1] = FHEAP[h + 1];
|
|
FHEAP[e + 2] = FHEAP[h + 2];
|
|
STACKTOP = c
|
|
}
|
|
FUNCTION_TABLE[21] = V;
|
|
function X(a) {
|
|
return M(a, a)
|
|
}
|
|
FUNCTION_TABLE[22] = X;
|
|
function W(a, b) {
|
|
var c = 1 / _sqrt(X(b));
|
|
K(a, b, c)
|
|
}
|
|
FUNCTION_TABLE[23] = W;
|
|
function C(a, b) {
|
|
var c = STACKTOP;
|
|
STACKTOP += 3;
|
|
var d = a == 1;
|
|
a:do {
|
|
if(d) {
|
|
if(b != 65535) {
|
|
break a
|
|
}
|
|
__ZNSt8ios_base4InitC1Ev(__ZStL8__ioinit);
|
|
___cxa_atexit(ma, 0, la);
|
|
G(c, -0.5, -0.65, 0.9);
|
|
W(__ZL5light, c)
|
|
}
|
|
}while(0);
|
|
STACKTOP = c
|
|
}
|
|
FUNCTION_TABLE[24] = C;
|
|
function Y(a, b) {
|
|
var c = STACKTOP;
|
|
STACKTOP += 3;
|
|
var d, e, h;
|
|
I(c, a, b);
|
|
d = M(b + 3, c);
|
|
e = d * d - X(c) + FHEAP[a + 3] * FHEAP[a + 3];
|
|
if(e < 0) {
|
|
d = Infinity
|
|
}else {
|
|
h = _sqrt(e);
|
|
e = d + h;
|
|
d = d - h;
|
|
if(e < 0) {
|
|
d = Infinity
|
|
}else {
|
|
d = d = d > 0 ? d : e
|
|
}
|
|
}
|
|
d = d;
|
|
STACKTOP = c;
|
|
return d
|
|
}
|
|
FUNCTION_TABLE[25] = Y;
|
|
function Z(a, b) {
|
|
var c = STACKTOP;
|
|
STACKTOP += 9;
|
|
var d = c + 3, e, h, g = c + 6;
|
|
h = IHEAP[__ZL4pool];
|
|
a:for(;;) {
|
|
if(!(h < IHEAP[__ZL3end])) {
|
|
break a
|
|
}
|
|
e = Y(h, a) >= FHEAP[b + 3];
|
|
if(e != 0) {
|
|
h += 9 * IHEAP[h + 8]
|
|
}else {
|
|
e = Y(h + 4, a);
|
|
if(FHEAP[b + 3] > e) {
|
|
FHEAP[b + 3] = e;
|
|
K(c, a + 3, e);
|
|
H(d, a, c);
|
|
e = b;
|
|
T(g, h + 4, d);
|
|
FHEAP[e] = FHEAP[g];
|
|
FHEAP[e + 1] = FHEAP[g + 1];
|
|
FHEAP[e + 2] = FHEAP[g + 2]
|
|
}
|
|
h += 9
|
|
}
|
|
}
|
|
STACKTOP = c
|
|
}
|
|
FUNCTION_TABLE[26] = Z;
|
|
function na(a, b) {
|
|
var c, d, e, h;
|
|
e = IHEAP[__ZL4pool];
|
|
a:for(;;) {
|
|
if(!(e < IHEAP[__ZL3end])) {
|
|
c = 7;
|
|
break a
|
|
}
|
|
d = Y(e, a) >= FHEAP[b + 3];
|
|
if(d != 0) {
|
|
e += 9 * IHEAP[e + 8]
|
|
}else {
|
|
h = Y(e + 4, a);
|
|
if(FHEAP[b + 3] > h) {
|
|
c = 4;
|
|
break a
|
|
}
|
|
e += 9
|
|
}
|
|
}
|
|
if(c == 4) {
|
|
FHEAP[b + 3] = h
|
|
}
|
|
}
|
|
FUNCTION_TABLE[27] = na;
|
|
function oa(a, b) {
|
|
var c = STACKTOP;
|
|
STACKTOP += 29;
|
|
var d;
|
|
d = c + 3;
|
|
var e = c + 6, h = c + 9, g = c + 12, i = c + 15, j, k = c + 19, n = c + 25;
|
|
R(i);
|
|
Z(b, i);
|
|
j = FHEAP[i + 3] != Infinity ? 0 - M(i, __ZL5light) : 0;
|
|
if(j <= 0) {
|
|
d = 0
|
|
}else {
|
|
J(g, __ZL5light);
|
|
K(e, i, 1.0E-12);
|
|
K(c, b + 3, FHEAP[i + 3]);
|
|
H(d, b, c);
|
|
H(h, d, e);
|
|
Q(k, h, g);
|
|
R(n);
|
|
na(k, n);
|
|
d = d = FHEAP[n + 3] == Infinity ? j : 0
|
|
}
|
|
d = d;
|
|
STACKTOP = c;
|
|
return d
|
|
}
|
|
FUNCTION_TABLE[28] = oa;
|
|
function $(a, b, c, d, e, h) {
|
|
var g = STACKTOP;
|
|
STACKTOP += 67;
|
|
var i = g + 3, j = g + 6, k = g + 9, n = g + 12, s = g + 15, ca = g + 18, y = g + 21, v = g + 24, da = g + 27, ea = g + 30, fa = g + 33, ga = g + 36, ha = g + 39, t = g + 42, p = g + 43, D, z = g + 44, w = g + 48, A = g + 52, N = g + 61, O = g + 64;
|
|
a = a;
|
|
c = c;
|
|
S(w, d, h * 2);
|
|
S(z, d, h);
|
|
D = a;
|
|
if(D != 0) {
|
|
a = b > 1 ? c : 1;
|
|
U(D, w, z, a)
|
|
}
|
|
a = D + 9;
|
|
if(!(b <= 1)) {
|
|
IHEAP[p] = 1;
|
|
IHEAP[t] = Math.floor((c - 9) / 9);
|
|
c = IHEAP[F(t, p)];
|
|
V(A, e);
|
|
t = h / 3;
|
|
z = p = 0;
|
|
a:for(;;) {
|
|
if(!(z <= 5)) {
|
|
break a
|
|
}
|
|
w = _cos(p);
|
|
K(ga, A + 6, w);
|
|
w = _sin(p);
|
|
K(ea, A + 3, w);
|
|
K(da, e, -0.2);
|
|
H(fa, da, ea);
|
|
H(ha, fa, ga);
|
|
W(N, ha);
|
|
K(y, N, h + t);
|
|
H(v, d, y);
|
|
a = $(a, b - 1, c, v, N, t);
|
|
p += 1.0471975511965976;
|
|
z += 1
|
|
}
|
|
p -= 0.3490658503988659;
|
|
y = 0;
|
|
a:for(;;) {
|
|
if(!(y <= 2)) {
|
|
break a
|
|
}
|
|
v = _cos(p);
|
|
K(s, A + 6, v);
|
|
v = _sin(p);
|
|
K(k, A + 3, v);
|
|
K(j, e, 0.6);
|
|
H(n, j, k);
|
|
H(ca, n, s);
|
|
W(O, ca);
|
|
K(g, O, h + t);
|
|
H(i, d, g);
|
|
a = $(a, b - 1, c, i, O, t);
|
|
p += 2.0943951023931953;
|
|
y += 1
|
|
}
|
|
}
|
|
b = a;
|
|
STACKTOP = g;
|
|
return b
|
|
}
|
|
FUNCTION_TABLE[29] = $;
|
|
function pa(a, b, c) {
|
|
var d = STACKTOP;
|
|
STACKTOP += 35;
|
|
var e = d + 3, h;
|
|
h = d + 6;
|
|
var g = d + 9, i = d + 10, j = d + 11, k = d + 17, n = d + 29, s = d + 32;
|
|
FHEAP[g] = a;
|
|
FHEAP[i] = b;
|
|
G(h, 0, 0, -4.5);
|
|
P(j, h);
|
|
h = k;
|
|
b = 3;
|
|
a:for(;;) {
|
|
if(b == -1) {
|
|
break a
|
|
}
|
|
h += 3;
|
|
b -= 1
|
|
}
|
|
b = 0;
|
|
a:for(;;) {
|
|
if(!(b <= 3)) {
|
|
break a
|
|
}
|
|
h = b;
|
|
G(e, FHEAP[__ZL4grid + b * 2] * 0.5 + FHEAP[g] / -2, FHEAP[__ZL4grid + b * 2 + 1] * 0.5 + FHEAP[i] / -2, 0);
|
|
h = k + h * 3;
|
|
FHEAP[h] = FHEAP[e];
|
|
FHEAP[h + 1] = FHEAP[e + 1];
|
|
FHEAP[h + 2] = FHEAP[e + 2];
|
|
b += 1
|
|
}
|
|
G(n, 0, c, FHEAP[E(g, i)]);
|
|
_SDL_LockSurface(IHEAP[_screen]);
|
|
c = a;
|
|
a:for(;;) {
|
|
if(c == 0) {
|
|
break a
|
|
}
|
|
g = e = 0;
|
|
b:for(;;) {
|
|
if(!(g <= 3)) {
|
|
break b
|
|
}
|
|
H(d, n, k + g * 3);
|
|
i = j + 3;
|
|
W(s, d);
|
|
FHEAP[i] = FHEAP[s];
|
|
FHEAP[i + 1] = FHEAP[s + 1];
|
|
FHEAP[i + 2] = FHEAP[s + 2];
|
|
e = oa(IHEAP[__ZL4pool], j) + e;
|
|
g += 1
|
|
}
|
|
g = 0;
|
|
b:for(;;) {
|
|
if(!(g <= 2)) {
|
|
break b
|
|
}
|
|
IHEAP[IHEAP[IHEAP[_screen] + ka[5]] + Math.floor((a - FHEAP[n + 1]) * a * 4 + FHEAP[n] * 4) + g] = Math.floor(e * 64);
|
|
g += 1
|
|
}
|
|
FHEAP[n] += 1;
|
|
c -= 1
|
|
}
|
|
_SDL_UnlockSurface(IHEAP[_screen]);
|
|
STACKTOP = d
|
|
}
|
|
FUNCTION_TABLE[30] = pa;
|
|
function qa(a, b) {
|
|
var c = STACKTOP;
|
|
STACKTOP += 11;
|
|
var d = c + 3, e = c + 6, h, g, i, j = c + 9, k = c + 10;
|
|
if(a == 2) {
|
|
IHEAP[k] = 2;
|
|
g = Math.floor(Number(ba(IHEAP[b + 1])));
|
|
IHEAP[j] = g;
|
|
j = IHEAP[F(j, k)]
|
|
}else {
|
|
j = 6
|
|
}
|
|
j = j;
|
|
k = 9;
|
|
i = j;
|
|
a:for(;;) {
|
|
i -= 1;
|
|
g = i > 1;
|
|
if(g == 0) {
|
|
break a
|
|
}
|
|
k = (k + 1) * 9
|
|
}
|
|
k += 1;
|
|
h = k;
|
|
g = i = __Znaj(h * 68);
|
|
h = h - 1;
|
|
a:for(;;) {
|
|
if(h == -1) {
|
|
break a
|
|
}
|
|
g += 9;
|
|
h -= 1
|
|
}
|
|
IHEAP[__ZL4pool] = i;
|
|
IHEAP[__ZL3end] = IHEAP[__ZL4pool] + 9 * k;
|
|
G(d, 0.25, 1, -0.5);
|
|
W(e, d);
|
|
G(c, 0, 0, 0);
|
|
$(IHEAP[__ZL4pool], j, k, c, e, 1);
|
|
return; // XXX
|
|
_SDL_Init(32);
|
|
d = _SDL_SetVideoMode(512, 512, 32, 0);
|
|
IHEAP[_screen] = d;
|
|
d = 511;
|
|
a:for(;;) {
|
|
if(!(d >= 0)) {
|
|
break a
|
|
}
|
|
pa(512, 512, d);
|
|
d -= 1
|
|
}
|
|
STACKTOP = c;
|
|
return 0
|
|
}
|
|
FUNCTION_TABLE[31] = qa;
|
|
function ra(a) {
|
|
function b() {
|
|
for(var h = 0;h < 0;h++) {
|
|
d.push(0)
|
|
}
|
|
}
|
|
ia();
|
|
var c = a.length + 1, d = [r(x("/bin/this.program"), null)];
|
|
b();
|
|
for(var e = 0;e < c - 1;e += 1) {
|
|
d.push(r(x(a[e]), null));
|
|
b()
|
|
}
|
|
d = r(d, null);
|
|
m();
|
|
for(qa(c, d);o.length > 0;) {
|
|
a = o.pop();
|
|
if(typeof a === "number") {
|
|
a = FUNCTION_TABLE[a]
|
|
}
|
|
a()
|
|
}
|
|
}
|
|
|
|
run = ra;
|
|
__ZL10trace_lineiii = pa;
|
|
|