From 4054ff66dfdceffa8be4251db31425c766f561a6 Mon Sep 17 00:00:00 2001 From: Robin Eklind Date: Wed, 31 Oct 2018 19:04:54 +0100 Subject: [PATCH] Theme_GoatShrine bin exact --- Source/themes.cpp | 40 +++++++++++----------------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/Source/themes.cpp b/Source/themes.cpp index c99223e54..8915a59cb 100644 --- a/Source/themes.cpp +++ b/Source/themes.cpp @@ -1066,41 +1066,23 @@ void __fastcall Theme_ArmorStand(int t) } // 6AAA3C: using guessed type int armorFlag; +// Theme_GoatShrine initializes the goat shrine theme. +// +// Parameters: +// - t: theme number (index into themes array). void __fastcall Theme_GoatShrine(int t) { - int v1; // edx - int v2; // esi - int v3; // ecx - int v4; // edi - int v5; // eax - char *v6; // ebx - _DWORD *v7; // [esp+4h] [ebp-8h] + int xx; + int yy; TFit_GoatShrine(t); AddObject(OBJ_GOATSHRINE, themex, themey); - v1 = themey; - v2 = themey - 1; - if (themey - 1 <= themey + 1) { - v3 = themex; - do { - v4 = v3 - 1; - if ((unsigned char)(__OFSUB__(v3 - 1, v3 + 1) ^ 1) | (v3 - 1 == v3 + 1)) { - v5 = v2 + 112 * v4; - v6 = (char *)dung_map + v5; - v7 = (_DWORD *)((char *)dPiece + 4 * v5); - do { - if (*v6 == themes[t].ttval && !nSolidTable[*v7] && (v4 != v3 || v2 != v1)) { - AddMonster(v4, v2, 1, themeVar1, 1); - v1 = themey; - v3 = themex; - } - v7 += 112; - ++v4; - v6 += 112; - } while (v4 <= v3 + 1); + for (yy = themey - 1; yy <= themey + 1; yy++) { + for (xx = themex - 1; xx <= themex + 1; xx++) { + if (dung_map[xx][yy] == themes[t].ttval && !nSolidTable[dPiece[xx][yy]] && (xx != themex || yy != themey)) { + AddMonster(xx, yy, DIR_SW, themeVar1, 1); } - ++v2; - } while (v2 <= v1 + 1); + } } }