I did this before in one of my FPS's, its pretty simple.
If there is something that can stop your while loop just turn that off and the collision goes off, and then turn it back on and the collision comes back on.
Also I would suggest using lists for each room and just turning on the room you are in.
Best of luck and if you need any more help I could post a demo or something
-RavenOfCode