anchor.diff:  	if((chosenRoomNumber < 1) || (chosenRoomNumber != round(chosenRoomNumber)))
   		to_chat(user, "<span class='warning'>That is not a valid room number!</span>")
   		return
  -	if(ismob(loc))
  -		if(user == loc) //Not always the same as user
  +	if(!isturf(loc))
  +		if((loc == user) || (loc.loc == user) || (loc in user.GetAllContents(type))		//short circuit, first two checks are cheaper.
   			forceMove(get_turf(user))
   	if(!storageTurf) //Blame subsystems for not allowing this to be in Initialize
   		if(!GLOB.hhStorageTurf)
  
positive.code: 
  /obj/item/hilbertshotel/proc/promptAndCheckIn(mob/user)
  	var/chosenRoomNumber = input(user, "What number room will you be checking into?", "Room Number") as null|num
  	if(!chosenRoomNumber)
  		return
  	if(chosenRoomNumber > SHORT_REAL_LIMIT)
  		to_chat(user, "<span class='warning'>You have to check out the first [SHORT_REAL_LIMIT] rooms before you can go to a higher numbered one!</span>")
  
negative.code: 			GLOB.hhStorageTurf = locate(storageReservation.bottom_left_coords[1]+1, storageReservation.bottom_left_coords[2]+1, storageReservation.bottom_left_coords[3])
  		else
  			storageTurf = GLOB.hhStorageTurf
  	checked_in_ckeys |= user.ckey		//if anything below runtimes, guess you're outta luck!
  	if(tryActiveRoom(chosenRoomNumber, user))
  		return
  	if(tryStoredRoom(chosenRoomNumber, user))
  		return
  	sendToNewRoom(chosenRoomNumber, user)
  
  /obj/item/hilbertshotel/proc/tryActiveRoom(var/roomNumber, var/mob/user)
  	if(activeRooms["[roomNumber]"])
  