Beispiel #1
0
t_item		*new_sphere(t_env *env)
{
	t_item	*item;

	item = new_t_item(env);
	item->sp = new_t_sphere(100, 0, 0, 3);
	item->next = NULL;
	itemadator(env, item);
	return (item);
}
Beispiel #2
0
Datei: pyl.c Projekt: gabfou/RT
t_item		*new_cyl(t_env *env)
{
	t_item	*item;

	item = new_t_item(env);
	item->cyl = t_cyl_creator(new_t_vec(0, 0, 0), new_t_vec(1, 0, 0), 3);
	item->next = NULL;
	itemadator(env, item);
	return (item);
}
Beispiel #3
0
int
give_to_client(t_cli *c, enum e_rsrc type, int quantity)
{
  t_item        *item;
  char const    *str;

  if (!c || !c->inventory || quantity <= 0                      ||
      !(str = get_rsrc_string_from_enum(type)))
    return (0);

  if (!(item = ht_get_entry(c->inventory, str, strlen(str))))
    {
      if (!(item = new_t_item(type, quantity)))
        return (TRACE("new_t_item() failed"), 0);
      if (!ht_add_entry(c->inventory, item, str, strlen(str)))
        return (TRACE("ht_add_entry() failed"), free(item), 0);
    }
  else
    item->amount += quantity;

  return (quantity);
}