public Room prison()
	{
		if((prisonRoom!=null)&&(!prisonRoom.amDestroyed()))
			return prisonRoom;

		Room myPrison=null;
		int x=0;
		if((text().length()>0)&&((x=text().indexOf("<P>"))>0))
			myPrison=CMLib.map().getRoom(text().substring(0,x));
		if(myPrison != null)
		{
			prisonRoom = (Room) myPrison.copyOf();
		}
		else
		{
			prisonRoom=CMClass.getLocale("StoneRoom");
			prisonRoom.addNonUninvokableEffect((Ability)copyOf());
			prisonRoom.setArea(CMLib.map().getFirstArea());
			prisonRoom.setDescription(L("You are standing on an immense, grey stone floor that stretches as far as you can see in all directions.  Rough winds plunging from the dark, starless sky tear savagely at your fragile body."));
			prisonRoom.setDisplayText(L("The Hall of Lost Souls"));
			prisonRoom.setRoomID("");
			final Ability A2=CMClass.getAbility("Prop_HereSpellCast");
			if(A2!=null)
				A2.setMiscText("Spell_Hungerless;Spell_Thirstless");
			if(A2!=null)
				prisonRoom.addNonUninvokableEffect(A2);
		}
		for(final int dir : Directions.CODES())
		{
			prisonRoom.setRawExit(dir,CMClass.getExit("Open"));
			prisonRoom.rawDoors()[dir]=prisonRoom;
		}
		return prisonRoom;
	}