|
|
|
|
@ -1468,88 +1468,79 @@ void L4makeDungeon()
|
|
|
|
|
|
|
|
|
|
void uShape() |
|
|
|
|
{ |
|
|
|
|
int v0; // ecx
|
|
|
|
|
signed int v1; // esi
|
|
|
|
|
signed int v2; // eax
|
|
|
|
|
char v3; // dl
|
|
|
|
|
int v4; // eax
|
|
|
|
|
signed int v5; // esi
|
|
|
|
|
int v6; // ecx
|
|
|
|
|
int v7; // ecx
|
|
|
|
|
int *v8; // esi
|
|
|
|
|
signed int v9; // eax
|
|
|
|
|
char v10; // dl
|
|
|
|
|
int v11; // eax
|
|
|
|
|
signed int v12; // esi
|
|
|
|
|
char *v13; // edx
|
|
|
|
|
|
|
|
|
|
v0 = 19; |
|
|
|
|
do { |
|
|
|
|
v1 = 19; |
|
|
|
|
do { |
|
|
|
|
v2 = v1; |
|
|
|
|
v3 = dung[v1][v0]; |
|
|
|
|
if (v3 == 1 || (hallok[v0] = 0, v3 == 1)) { |
|
|
|
|
hallok[v0] = dung[v2][v0 + 1] == 1 && !dung[v2 + 1][v0 + 1]; |
|
|
|
|
v1 = 0; |
|
|
|
|
int j, i, rv; |
|
|
|
|
|
|
|
|
|
for(j = 19; j >= 0; j--) { |
|
|
|
|
for(i = 19; i >= 0; i--) { |
|
|
|
|
if(dung[i][j] != 1) { |
|
|
|
|
hallok[j] = FALSE; |
|
|
|
|
} |
|
|
|
|
--v1; |
|
|
|
|
} while (v1 >= 0); |
|
|
|
|
--v0; |
|
|
|
|
} while (v0 >= 0); |
|
|
|
|
v4 = random(0, 19) + 1; |
|
|
|
|
do { |
|
|
|
|
if (hallok[v4]) { |
|
|
|
|
v5 = 19; |
|
|
|
|
do { |
|
|
|
|
v6 = v4 + 20 * v5; |
|
|
|
|
if (dung[0][v6] == 1) { |
|
|
|
|
v5 = -1; |
|
|
|
|
v4 = 0; |
|
|
|
|
if(dung[i][j] == 1) { |
|
|
|
|
if(dung[i][j + 1] == 1 && dung[i + 1][j + 1] == 0) { |
|
|
|
|
hallok[j] = TRUE; |
|
|
|
|
} else { |
|
|
|
|
dung[0][v6] = 1; |
|
|
|
|
dung[0][v6 + 1] = 1; |
|
|
|
|
hallok[j] = FALSE; |
|
|
|
|
} |
|
|
|
|
--v5; |
|
|
|
|
} while (v5 >= 0); |
|
|
|
|
} else if (++v4 == 20) { |
|
|
|
|
v4 = 1; |
|
|
|
|
i = 0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} while (v4); |
|
|
|
|
v7 = 380; |
|
|
|
|
v8 = &hallok[19]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
rv = random(0, 19) + 1; |
|
|
|
|
do { |
|
|
|
|
v9 = 19; |
|
|
|
|
do { |
|
|
|
|
v10 = dung[0][v7 + v9]; |
|
|
|
|
if (v10 == 1 || (*v8 = 0, v10 == 1)) { |
|
|
|
|
*v8 = dung[1][v7 + v9] == 1 && !dung[1][v7 + 1 + v9]; |
|
|
|
|
v9 = 0; |
|
|
|
|
if(hallok[rv]) { |
|
|
|
|
for(i = 19; i >= 0; i--) { |
|
|
|
|
if(dung[i][rv] == 1) { |
|
|
|
|
i = -1; |
|
|
|
|
rv = 0; |
|
|
|
|
} else { |
|
|
|
|
dung[i][rv] = 1; |
|
|
|
|
dung[i][rv + 1] = 1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
--v9; |
|
|
|
|
} while (v9 >= 0); |
|
|
|
|
--v8; |
|
|
|
|
v7 -= 20; |
|
|
|
|
} while ((signed int)v8 >= (signed int)hallok); |
|
|
|
|
v11 = random(0, 19) + 1; |
|
|
|
|
} else { |
|
|
|
|
rv++; |
|
|
|
|
if(rv == 20) { |
|
|
|
|
rv = 1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} while(rv != 0); |
|
|
|
|
|
|
|
|
|
for(i = 19; i >= 0; i--) { |
|
|
|
|
for(j = 19; j >= 0; j--) { |
|
|
|
|
if(dung[i][j] != 1) { |
|
|
|
|
hallok[i] = FALSE; |
|
|
|
|
} |
|
|
|
|
if(dung[i][j] == 1) { |
|
|
|
|
if(dung[i + 1][j] == 1 && dung[i + 1][j + 1] == 0) { |
|
|
|
|
hallok[i] = TRUE; |
|
|
|
|
} else { |
|
|
|
|
hallok[i] = FALSE; |
|
|
|
|
} |
|
|
|
|
j = 0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
rv = random(0, 19) + 1; |
|
|
|
|
do { |
|
|
|
|
if (hallok[v11]) { |
|
|
|
|
v12 = 19; |
|
|
|
|
do { |
|
|
|
|
v13 = (char *)&dung[v11][v12]; |
|
|
|
|
if (*v13 == 1) { |
|
|
|
|
v12 = -1; |
|
|
|
|
v11 = 0; |
|
|
|
|
if(hallok[rv]) { |
|
|
|
|
for(j = 19; j >= 0; j--) { |
|
|
|
|
if(dung[rv][j] == 1) { |
|
|
|
|
j = -1; |
|
|
|
|
rv = 0; |
|
|
|
|
} else { |
|
|
|
|
*v13 = 1; |
|
|
|
|
dung[v11 + 1][v12] = 1; |
|
|
|
|
dung[rv][j] = 1; |
|
|
|
|
dung[rv + 1][j] = 1; |
|
|
|
|
} |
|
|
|
|
--v12; |
|
|
|
|
} while (v12 >= 0); |
|
|
|
|
} else if (++v11 == 20) { |
|
|
|
|
v11 = 1; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
rv++; |
|
|
|
|
if(rv == 20) { |
|
|
|
|
rv = 1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} while (v11); |
|
|
|
|
} while(rv != 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
long GetArea() |
|
|
|
|
|