5 Hashtable floors, rooms;
10 public roomMap( mainPanel mp ) {
11 f_list = new Vector();
12 floors = new Hashtable();
13 rooms = new Hashtable();
17 public void floors( citReply r ) {
21 floors = new Hashtable();
23 while( (line = r.getLine( i++ ) ) != null ) {
24 floor f = new floor( line );
25 floors.put( f.num, f );
26 floors.put( f.name, f );
27 f_list.addElement( f );
31 public void new_rooms( citReply rep ) {
35 while( (line = rep.getLine( i++ ) ) != null ) {
36 room r, rr = new room( line );
37 r = (room)rooms.get( rr.name() );
40 rooms.put( rr.name, rr );
47 public void old_rooms( citReply rep ) {
51 while( (line = rep.getLine( i++ )) != null ) {
52 room r = new room( line );
53 rooms.put( r.name(), r );
58 public void addToFloor( room r ) {
59 floor f = (floor)floors.get( r.fname );
64 public floor nextFloor() {
65 int c = f_list.indexOf( cur_floor );
69 cur_floor = (floor)f_list.elementAt( c );
70 } catch( Exception e ) {
71 cur_floor = (floor)f_list.firstElement();
74 setFloor( cur_floor );
78 public floor getFloor() {
79 if( cur_floor == null ) cur_floor = (floor)f_list.firstElement();
84 public floor getFloor( int num ) {
85 return getFloor( "" + num );
88 public floor getFloor( String name ) {
89 return (floor)floors.get( name );
92 public floor getFloor( room rm ) {
93 return getFloor( rm.fname );
96 public void setFloor( floor f ) {
99 mp.updateLists( f.name() );
102 public room nextNewRoom() {
103 floor c = getFloor();
106 for( Enumeration e = getFloor().rooms.elements(); e.hasMoreElements(); ) {
107 room r = (room)e.nextElement();
108 if( r.hasNew() ) return r;
111 } while( c != getFloor() );
113 System.out.println( "No more new rooms... refreshing list" );
115 citadel.me.networkEvent( "LKRN", new CallBack() {
116 public void run( citReply r ) {
118 room rm = getRoom( "Lobby" );
119 setFloor( getFloor( rm ) );
123 room r = getRoom( "Lobby" );
124 setFloor( getFloor( r ) );
129 public room getRoom( String name ) {
130 return (room)rooms.get(name);
133 public room forgotRoom( roomInfo ri ) {
134 room r = (room)rooms.remove( ri.name );
135 if( r == null ) return nextNewRoom();
136 floor f = getFloor( ri.rm );
137 if( f == null ) return nextNewRoom();
138 f.rooms.removeElement( ri.rm );
139 return nextNewRoom();