summaryrefslogtreecommitdiff
path: root/src/d/d_save/d_save.cpp
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2021-01-03 03:35:54 -0500
committerPheenoh <pheenoh@gmail.com>2021-01-03 03:35:54 -0500
commit47c40cce41c4b44dacaaeb5589329bc2b015ee9e (patch)
treeb4e7664966e354faa9a9684e59619aff339f46bf /src/d/d_save/d_save.cpp
parent5abaebc40df02b65f791a16389a0c82590dbbda6 (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.cpp23
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) {