tfe-1.0/area/
tfe-1.0/files/
tfe-1.0/logs/
tfe-1.0/logs/immortal/
tfe-1.0/logs/mob/
tfe-1.0/logs/object/
tfe-1.0/logs/player/
tfe-1.0/logs/room/
tfe-1.0/notes/clans/
tfe-1.0/player/
tfe-1.0/prev/
tfe-1.0/prev/area/
tfe-1.0/prev/player/
tfe-1.0/prev/rooms/
tfe-1.0/rooms/
tfe-1.0/src-gc/
tfe-1.0/src-msvc/
tfe-1.0/src-unix/
tfe-1.0/www/
tfe-1.0/www/html/
class Command_Data
{
 public:
  char*   string;
  bool   ordered;

  Command_Data( char* msg, bool bit ) {
    string = alloc_string( msg, MEM_PLAYER );
    ordered = bit;
    return;
    }

  ~Command_Data( ) {
    free_string( string, MEM_PLAYER );
    return;
    }
};


class Command_Queue
{
 private:
  int             size;
  command_data**  list;

 public:
  Command_Queue( ) {
    size = 0;
    list = NULL;
    } 

  friend int entries( command_queue& queue ) {
    return queue.size;
    }

  friend command_data* pop( command_queue& queue ) {
    if( queue.size == 0 )
      return NULL;
    command_data* cmd = queue.list[0];
    remove( queue.list, queue.size, 0 );
    return cmd;
    }

  friend void push( command_queue& queue, char* string, bool ordered ) {
    command_data* cmd = new command_data( string, ordered );
    insert( queue.list, queue.size, cmd, queue.size );       
    return;
    } 

  friend void clear( command_queue& queue ) {
    int i;
    for( i = 0; i < queue.size; i++ )
      delete queue.list[i];
    delete [] queue.list;
    queue.list = NULL;
    queue.size = 0;
    return;
    }
};