Browse Source

uShape

pull/100/head
galaxyhaxz 7 years ago committed by Anders Jenbo
parent
commit
486596dafa
  1. 135
      Source/drlg_l4.cpp

135
Source/drlg_l4.cpp

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

Loading…
Cancel
Save