Example #1
0
struct s_attributes *p_object_setup(struct s_object *object, struct s_method *virtual_table, struct s_attributes *attributes) {
    struct s_virtual_table *node;
    if ((node = (struct s_virtual_table *) d_malloc(sizeof(struct s_virtual_table)))) {
        node->virtual_table = virtual_table;
        node->type = attributes->type;
        f_list_append(&(object->virtual_tables), (struct s_list_node *)node, e_list_insert_head);
        f_list_append(&(object->attributes), (struct s_list_node *)attributes, e_list_insert_head);
    } else
        d_die(d_error_malloc);
    return attributes;
}
Example #2
0
struct s_list *f_keys_initialize(struct s_list *supplied, const char *file, char separator) {
	struct s_list *result = supplied;
	struct s_keys_entry *entry;
	char buffer[d_string_buffer_size], *pointer;
	FILE *stream;
	if (!result)
		f_list_init(&result);
	if ((stream = fopen(file, "r"))) {
		while (!feof(stream)) {
			memset(buffer, 0, d_string_buffer_size);
			if (fgets(buffer, d_string_buffer_size, stream))
				if ((pointer = strchr(buffer, separator))) {
					*pointer = '\0';
					pointer++;
					f_string_trim(buffer);
					f_string_trim(pointer);
					if ((f_string_strlen(buffer) > 0) && (f_string_strlen(pointer) > 0))
						if ((entry = (struct s_keys_entry *) d_malloc(sizeof(struct s_keys_entry)))) {
							strncpy(entry->key, buffer, d_string_buffer_size);
							strncpy(entry->value, pointer, d_string_buffer_size);
							f_list_append(result, (struct s_list_node *)entry, e_list_insert_head);
						}
				}
		}
		fclose(stream);
	}
	return result;
}
Example #3
0
d_define_method(emitter, record)(struct s_object *self, const char *id) {
	d_using(emitter);
	struct s_signal *signal;
	if ((signal = (struct s_signal *) d_malloc(sizeof(struct s_signal)))) {
		strncpy(signal->id, id, (d_emitter_name_size-1));
		f_list_append(emitter_attributes->signals, (struct s_list_node *)signal, e_list_insert_head);
	}
	return (void *)signal;
}
Example #4
0
d_define_method(container, add_drawable)(struct s_object *self, struct s_object *drawable, double position_x, double position_y) {
  d_using(container);
  struct s_container_drawable *current_container;
  if ((current_container = (struct s_container_drawable *)d_malloc(sizeof(struct s_container_drawable)))) {
    current_container->drawable = d_retain(drawable);
    current_container->position_x = position_x;
    current_container->position_y = position_y;
    f_list_append(&(container_attributes->entries), (struct s_list_node *)current_container, e_list_insert_tail);
  } else
    d_die(d_error_malloc);
  return self;
}
Example #5
0
d_define_method(environment, add_eventable)(struct s_object *self, struct s_object *eventable) {
	d_using(environment);
	f_list_append(&(environment_attributes->eventable), (struct s_list_node *)eventable, e_list_insert_head);
	return eventable;
}
Example #6
0
d_define_method(environment, add_drawable)(struct s_object *self, struct s_object *drawable, int layer, enum e_environment_surfaces surface) {
	d_using(environment);
	f_list_append(&(environment_attributes->drawable[surface][layer]), (struct s_list_node *)drawable, e_list_insert_head);
	return drawable;
}