private void changeRoomIFN() {
        int doorId = room.getSquareValue(coord);
        if (room.isDoorLocked(doorId)) {
            return;
        }
        else if(doorId == -1) {
            System.out.println("Door id not found at coord " + coord);
            return;
        }

        Room nextRoom = room.getNeighbor(doorId);
        if(nextRoom == null) {
            System.out.println("No neighbor room found from door " + doorId);
            return;
        }

        Coord newCoord = room.getStartingCoordFromDoor(doorId);
        if(newCoord == null) {
            System.out.println("The starting coords were not found from door " + doorId);
            return;
        }

        if (nextRoom.canWalkOnSquare(id, newCoord)) {
            room.freeSquare(coord);

            if (id == controllablePlayerId)
                room.unloadImg();

            room = nextRoom;

            if (id == controllablePlayerId)
                room.loadImg();

            setCoord(newCoord);

            setChangedRoom();
            notifyObservers();
        }
    }