void findAllDoors(std::vector<int>& outDoors, const sRoom& room) { outDoors.clear(); auto len = room.w * room.h; for (auto i = 0; i < len; ++i) { if (isDoor(room.tiles[i * 2])) { outDoors.push_back(i); } } }
shObjectIlk * shFeature::keyNeededForDoor () { if (!isDoor ()) return NULL; if ((mDoor.mFlags & kLock1) == kLock1) return &AllIlks[kObjKeycard1]; if ((mDoor.mFlags & kLock2) == kLock2) return &AllIlks[kObjKeycard2]; if ((mDoor.mFlags & kLock3) == kLock3) return &AllIlks[kObjKeycard3]; if ((mDoor.mFlags & kLock4) == kLock4) return &AllIlks[kObjKeycard4]; if ((mDoor.mFlags & kLockMaster) == kLockMaster) return &AllIlks[kObjMasterKeycard]; return NULL; }