diff --git a/Source/gendung.cpp b/Source/gendung.cpp index be001b97d..a3cf0129c 100644 --- a/Source/gendung.cpp +++ b/Source/gendung.cpp @@ -32,7 +32,7 @@ BOOLEAN nTrapTable[2049]; BYTE leveltype; unsigned char currlevel; // idb char TransList[256]; -BYTE nSolidTable[2049]; +BOOLEAN nSolidTable[2049]; int level_frame_count[2048]; ScrollStruct ScrollInfo; void *pDungeonCels; diff --git a/Source/gendung.h b/Source/gendung.h index 83067f16b..798183b30 100644 --- a/Source/gendung.h +++ b/Source/gendung.h @@ -32,7 +32,7 @@ extern BOOLEAN nTrapTable[2049]; extern BYTE leveltype; extern unsigned char currlevel; // idb extern char TransList[256]; -extern BYTE nSolidTable[2049]; +extern BOOLEAN nSolidTable[2049]; extern int level_frame_count[2048]; extern ScrollStruct ScrollInfo; extern void *pDungeonCels; diff --git a/Source/items.cpp b/Source/items.cpp index 3b1caf384..d32788fdb 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -649,19 +649,22 @@ void __cdecl InitItemGFX() memset(UniqueItemFlag, 0, sizeof(UniqueItemFlag)); } -BOOLEAN __fastcall ItemPlace(int xp, int yp) +BOOL __fastcall ItemPlace(int xp, int yp) { - int v2; // ecx - int v3; // eax - BOOLEAN result; // al + if (dMonster[xp][yp]) + return FALSE; + if (dPlayer[xp][yp]) + return FALSE; + if (dItem[xp][yp]) + return FALSE; + if (dObject[xp][yp]) + return FALSE; + if (dFlags[xp][yp] & DFLAG_POPULATED) + return FALSE; + if (nSolidTable[dPiece[xp][yp]]) + return FALSE; - v2 = xp; - v3 = v2 * 112 + yp; - if (dMonster[0][v3] || dPlayer[v2][yp] || dItem[v2][yp] || dObject[v2][yp] || dFlags[v2][yp] & DFLAG_POPULATED) - result = 0; - else - result = nSolidTable[dPiece[0][v3]] == 0; - return result; + return TRUE; } void __cdecl AddInitItems() diff --git a/Source/items.h b/Source/items.h index e19e92f94..bd6341b14 100644 --- a/Source/items.h +++ b/Source/items.h @@ -15,7 +15,7 @@ extern int numitems; extern int gnNumGetRecords; void __cdecl InitItemGFX(); -BOOLEAN __fastcall ItemPlace(int xp, int yp); +BOOL __fastcall ItemPlace(int xp, int yp); void __cdecl AddInitItems(); void __cdecl InitItems(); void __fastcall CalcPlrItemVals(int p, BOOL Loadgfx);