GD_OBJECT_LEVEL5
};
-/* bdcff text description of object. caller should free string. */
-char *gd_object_get_bdcff(const GdObject *object)
-{
- GString *str;
- int j;
- const char *type;
-
- switch (object->type)
- {
- case GD_POINT:
- return g_strdup_printf("Point=%d %d %s",
- object->x1, object->y1,
- gd_elements[object->element].filename);
-
- case GD_LINE:
- return g_strdup_printf("Line=%d %d %d %d %s",
- object->x1, object->y1, object->x2, object->y2,
- gd_elements[object->element].filename);
-
- case GD_RECTANGLE:
- return g_strdup_printf("Rectangle=%d %d %d %d %s",
- object->x1, object->y1, object->x2, object->y2,
- gd_elements[object->element].filename);
-
- case GD_FILLED_RECTANGLE:
- /* if elements are not the same */
- if (object->fill_element != object->element)
- return g_strdup_printf("FillRect=%d %d %d %d %s %s",
- object->x1, object->y1, object->x2, object->y2,
- gd_elements[object->element].filename,
- gd_elements[object->fill_element].filename);
-
- /* they are the same */
- return g_strdup_printf("FillRect=%d %d %d %d %s",
- object->x1, object->y1, object->x2, object->y2,
- gd_elements[object->element].filename);
-
- case GD_RASTER:
- return g_strdup_printf("Raster=%d %d %d %d %d %d %s",
- object->x1, object->y1,
- (object->x2 - object->x1) / object->dx + 1,
- (object->y2 - object->y1) / object->dy + 1,
- object->dx, object->dy,
- gd_elements[object->element].filename);
-
- case GD_JOIN:
- return g_strdup_printf("Add=%d %d %s %s",
- object->dx, object->dy,
- gd_elements[object->element].filename,
- gd_elements[object->fill_element].filename);
-
- case GD_FLOODFILL_BORDER:
- return g_strdup_printf("BoundaryFill=%d %d %s %s",
- object->x1, object->y1,
- gd_elements[object->fill_element].filename,
- gd_elements[object->element].filename);
-
- case GD_FLOODFILL_REPLACE:
- return g_strdup_printf("FloodFill=%d %d %s %s",
- object->x1, object->y1,
- gd_elements[object->fill_element].filename,
- gd_elements[object->element].filename);
-
- case GD_MAZE:
- case GD_MAZE_UNICURSAL:
- case GD_MAZE_BRAID:
- switch (object->type)
- {
- case GD_MAZE: type = "perfect"; break;
- case GD_MAZE_UNICURSAL: type = "unicursal"; break;
- case GD_MAZE_BRAID: type = "braid"; break;
- default: break;
- }
-
- return g_strdup_printf("Maze=%d %d %d %d %d %d %d %d %d %d %d %d %s %s %s",
- object->x1, object->y1, object->x2, object->y2,
- object->dx, object->dy,
- object->horiz,
- object->seed[0],
- object->seed[1],
- object->seed[2],
- object->seed[3],
- object->seed[4],
- gd_elements[object->element].filename,
- gd_elements[object->fill_element].filename, type);
-
- case GD_RANDOM_FILL:
- str = g_string_new(NULL);
- /* seed and initial fill */
- g_string_append_printf(str, "%s=%d %d %d %d %d %d %d %d %d %s",
- object->c64_random ? "RandomFillC64" : "RandomFill",
- object->x1, object->y1, object->x2, object->y2,
- object->seed[0],
- object->seed[1],
- object->seed[2],
- object->seed[3],
- object->seed[4],
- gd_elements[object->fill_element].filename);
-
- for (j = 0; j < 4; j++)
- {
- if (object->random_fill_probability[j] != 0)
- g_string_append_printf(str, " %s %d",
- gd_elements[object->random_fill[j]].filename,
- object->random_fill_probability[j]);
- }
-
- if (object->element!=O_NONE)
- g_string_append_printf(str, " %s",
- gd_elements[object->element].filename);
-
- /* free string but do not free char *; return char *. */
- return g_string_free(str, FALSE);
-
- case GD_COPY_PASTE:
- return g_strdup_printf("CopyPaste=%d %d %d %d %d %d %s %s",
- object->x1, object->y1, object->x2, object->y2,
- object->dx, object->dy,
- object->mirror ? "mirror" : "nomirror",
- object->flip?"flip":"noflip");
-
- case NONE:
- break;
- }
-
- return NULL;
-}
-
/* create an INDIVIDUAL POINT CAVE OBJECT */
GdObject *gd_object_new_point(GdObjectLevels levels, int x, int y, GdElement elem)
{
{
object.element = gd_get_element_from_string(elem0);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
{
object.element = gd_get_element_from_string(elem0);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
object.type = GD_RECTANGLE;
object.element = gd_get_element_from_string (elem0);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
object.element = gd_get_element_from_string (elem0);
object.fill_element = gd_get_element_from_string (elem1);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
if (paramcount == 5)
{
object.element = object.fill_element = gd_get_element_from_string (elem0);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
object.type = GD_RASTER;
object.element = gd_get_element_from_string (elem0);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
object.element = gd_get_element_from_string (elem0);
object.fill_element = gd_get_element_from_string (elem1);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
object.fill_element = gd_get_element_from_string (elem0);
object.element = gd_get_element_from_string (elem1);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
object.fill_element = gd_get_element_from_string (elem0);
object.element = gd_get_element_from_string (elem1);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
object.element = gd_get_element_from_string (elem0);
object.fill_element = gd_get_element_from_string (elem1);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
return NULL;
return NULL;
if (words)
- g_strfreev(words);
+ freeStringArray(words);
- words = g_strsplit_set(param, " ", -1);
- l = g_strv_length(words);
+ words = getSplitStringArray(param, " ", -1);
+ l = getStringArrayLength(words);
if (l < 10 || l > 19)
return NULL;
if (l > 10 && l % 2 == 1)
object.element = gd_get_element_from_string(words[l - 1]);
- return g_memdup(&object, sizeof (GdObject));
+ return get_memcpy(&object, sizeof (GdObject));
}
/* COPY PASTE OBJECT */
else
Warn("invalid setting for copypaste flip property: %s", flip);
- return g_memdup(&object, sizeof(GdObject));
+ return get_memcpy(&object, sizeof(GdObject));
}
return NULL;
/* if no horizontal movement possible, choose vertical */
if (dir == 2 && (dirmask & 12) == 0)
dir = 0;
- else if (dir == 0 && (dirmask&3) == 0) /* and vice versa */
+ else if (dir == 0 && (dirmask & 3) == 0) /* and vice versa */
dir = 2;
dir += g_rand_int_range(rand, 0, 2); /* dir */
if (randm < object->random_fill_probability[3])
element = object->random_fill[3];
- if (object->element==O_NONE ||
+ if (object->element == O_NONE ||
gd_cave_get_rc(cave, x, y) == object->element)
gd_cave_store_rc(cave, x, y, element, object);
}
GdCave *cave;
GdElement element;
int x, y;
- GList *iter;
+ List *iter;
/* make a copy */
cave = gd_cave_new_from_cave(data);
}
/* render cave objects above random data or map */
- for (iter = data->objects; iter; iter = g_list_next(iter))
+ for (iter = data->objects; iter; iter = list_next(iter))
{
GdObject *object = (GdObject *)iter->data;
gd_cave_free(rendered);
/* forget objects */
- g_list_foreach(cave->objects, (GFunc) free, NULL);
+ list_foreach(cave->objects, (list_fn) free, NULL);
cave->objects = NULL;
}