def SetStartRoomDataForLevel(self, level_num: LevelNum, start_room: RoomNum, entrance_direction: Direction) -> None: level_offset = level_num * self.LEVEL_METADATA_OFFSET if start_room: self.level_metadata[level_offset + self.START_ROOM_OFFSET] = start_room if entrance_direction: self.level_metadata[ level_offset + self. ENTRANCE_DIRECTION_OFFSET] = entrance_direction.GetRomValue() if start_room and entrance_direction: formatted_gateway = (start_room + int(entrance_direction) + 0x80) % 0x100 self.level_metadata[level_offset + self.GATEWAY_OFFSET] = formatted_gateway