diff options
| author | Pheenoh <pheenoh@gmail.com> | 2021-01-03 03:35:54 -0500 |
|---|---|---|
| committer | Pheenoh <pheenoh@gmail.com> | 2021-01-03 03:35:54 -0500 |
| commit | 47c40cce41c4b44dacaaeb5589329bc2b015ee9e (patch) | |
| tree | b4e7664966e354faa9a9684e59619aff339f46bf /src/d/d_save/d_save.cpp | |
| parent | 5abaebc40df02b65f791a16389a0c82590dbbda6 (diff) | |
dSv_info_c::isItem OK
Diffstat (limited to 'src/d/d_save/d_save.cpp')
| -rw-r--r-- | src/d/d_save/d_save.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/d/d_save/d_save.cpp b/src/d/d_save/d_save.cpp index 26e94b2c82..6a8f7cb801 100644 --- a/src/d/d_save/d_save.cpp +++ b/src/d/d_save/d_save.cpp @@ -1429,9 +1429,26 @@ void dSv_info_c::onItem(int i_no, int i_roomNo) { } } -asm BOOL dSv_info_c::isItem(int i_no, int i_roomNo) const { - nofralloc -#include "d/d_save/d_save/asm/func_80035590.s" +BOOL dSv_info_c::isItem(int i_no, int i_roomNo) const { + int value; + if ((i_no == -1) || (i_no == 0xFF)) { + return 0; + } + + if (i_no < 0x80) { + value = this->dungeon_bit.isItem(i_no); + } else if (i_no < 0xA0) { + value = this->memory.getTempFlagsConst().isItem(i_no - 0x80); + } else { + int zoneNo = dStage_roomControl_c_NS_getZoneNo(i_roomNo, i_no); + if (i_no < 0xC0) { + value = this->zones[zoneNo].getZoneBitConst().isItem(i_no - 0xA0); + } else { + value = this->zones[zoneNo].getZoneBitConst().isOneItem(i_no - 0xC0); + } + } + + return value; } void dSv_info_c::onActor(int i_id, int i_roomNo) { |
