/**********************************************************************
This file is part of Crack dot Com's free source code release of Golgotha.
for information about compiling & licensing issues visit this URL
 If that doesn't help, contact Jonathan Clark at 
  golgotha_source@usa.net (Subject should have "GOLG" in it) 
***********************************************************************/

#include "selection.hh"
#include "memory/malloc.hh"
#include "g1_object.hh"

g1_selection_list::~g1_selection_list()
{
  if (list)
    i4_free(list);
}

g1_selection_list::g1_selection_list()
{
  list=0;
  list_size=0;
  t=0;
}

void g1_selection_list::add(g1_object_class *o)
{
  if (t==list_size)
  {
    list_size+=64;
    list=(g1_object_class **)i4_realloc(list, 
                                       list_size * sizeof(g1_object_class *),
                                       "selection list");
  }

  list[t++]=o;
  o->flags |= (~g1_object_class::SELECTED);
}

void g1_selection_list::remove(g1_object_class *o)
{
  for (w32 i=0; iflags &= (~g1_object_class::SELECTED);
      return ;
    }
  }
  i4_error("list remove : object not found");
}

void g1_selection_list::clear()
{
  for (w32 i=0; iflags &= (~g1_object_class::SELECTED);
  t=0;
}