diff --git a/Source/objects.cpp b/Source/objects.cpp index f5b6c88bd..960b43744 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -713,52 +713,27 @@ BOOL WallTrapLocOk(int xp, int yp) void AddL2Torches() { - int v0; // esi - int v1; // edi - char *v2; // ebx - //int v3; // eax - int(*v5)[112]; // [esp+Ch] [ebp-Ch] - int v6; // [esp+10h] [ebp-8h] - int(*v7)[112]; // [esp+14h] [ebp-4h] + int i, j, pn; - v0 = 0; - v7 = dPiece; - do { - v1 = 0; - v2 = &dObject[0][v0 - 1]; /* &dungeon[39][v0 + 39]; */ - v5 = v7; - do { - //_LOBYTE(v3) = WallTrapLocOk(v1, v0); - if (!WallTrapLocOk(v1, v0)) - goto LABEL_18; - v6 = (*v5)[0]; - if ((*v5)[0] == 1) { - if (random(145, 3)) - goto LABEL_18; - AddObject(OBJ_TORCHL2, v1, v0); - } - if (v6 == 5) { - if (random(145, 3)) - goto LABEL_18; - AddObject(OBJ_TORCHR2, v1, v0); - } - if (v6 == 37) { - if (random(145, 10) || *(v2 - 111)) - goto LABEL_18; - AddObject(OBJ_TORCHL, v1 - 1, v0); - } - if (v6 == 41) { - if (!random(145, 10) && !*v2) - AddObject(OBJ_TORCHR, v1, v0 - 1); - } - LABEL_18: - ++v5; - ++v1; - v2 += 112; - } while (v1 < 112); - v7 = (int(*)[112])((char *)v7 + 4); - ++v0; - } while ((signed int)v7 < (signed int)dPiece[1]); + for (j = 0; j < MAXDUNY; j++) { + for (i = 0; i < MAXDUNX; i++) { + if (!WallTrapLocOk(i, j)) + continue; + + pn = dPiece[i][j]; + if (pn == 1 && random(145, 3) == 0) + AddObject(OBJ_TORCHL2, i, j); + + if (pn == 5 && random(145, 3) == 0) + AddObject(OBJ_TORCHR2, i, j); + + if (pn == 37 && random(145, 10) == 0 && dObject[i - 1][j] == 0) + AddObject(OBJ_TORCHL, i - 1, j); + + if (pn == 41 && random(145, 10) == 0 && dObject[i][j - 1] == 0) + AddObject(OBJ_TORCHR, i, j - 1); + } + } } BOOL TorchLocOK(int xp, int yp)