/* floor.h
 */

#ifndef FLOOR_H
#define FLOOR_H

#include "list.H"
#include "main.H"
#include "elevator.H"

class Person;
class List;

class Floor {

public:

    void add_person( Person *pers );
    void remove_person( Person *pers );
    void signal_arrival_to_attendees( Elevator *elev );
    void request_elevator( Floor *floor );
    void schedule_next_appearance();
    int  index();
    void draw( float x, float y, float z );

    void print() { cout << this->index(); }
    
    void init( int index ) { floor_num = index; }

private:

    List attendees;		// persons waiting on this floor
    int floor_num;		// this floor index

    static int offsets[][2];	// offsets at which to place people on floor
    static int max_xoffset,  min_xoffset; // max and min in of x components
    static int num_offsets;					     
};

#endif
