X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_bd%2Fbd_caveobject.c;h=d76179068a6aa7037e84c1436f4a6e782d473071;hb=01bf4018243f57cefbc0308e49f4dd2d40a0c054;hp=c02023976b1d6de13e15680aaa2b074dfc1648f1;hpb=74980a61aa0aff2c56f46f7dbef8346c59509f4f;p=rocksndiamonds.git diff --git a/src/game_bd/bd_caveobject.c b/src/game_bd/bd_caveobject.c index c0202397..d7617906 100644 --- a/src/game_bd/bd_caveobject.c +++ b/src/game_bd/bd_caveobject.c @@ -29,134 +29,6 @@ GdObjectLevels gd_levels_mask[] = 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) { @@ -441,7 +313,7 @@ GdObject *gd_object_new_from_string(char *str) { object.element = gd_get_element_from_string(elem0); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -455,7 +327,7 @@ GdObject *gd_object_new_from_string(char *str) { object.element = gd_get_element_from_string(elem0); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -469,7 +341,7 @@ GdObject *gd_object_new_from_string(char *str) object.type = GD_RECTANGLE; object.element = gd_get_element_from_string (elem0); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -488,14 +360,14 @@ GdObject *gd_object_new_from_string(char *str) object.element = gd_get_element_from_string (elem0); object.fill_element = gd_get_element_from_string (elem1); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } if (paramcount == 5) { object.element = object.fill_element = gd_get_element_from_string (elem0); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -515,7 +387,7 @@ GdObject *gd_object_new_from_string(char *str) object.type = GD_RASTER; object.element = gd_get_element_from_string (elem0); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -531,7 +403,7 @@ GdObject *gd_object_new_from_string(char *str) object.element = gd_get_element_from_string (elem0); object.fill_element = gd_get_element_from_string (elem1); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -546,7 +418,7 @@ GdObject *gd_object_new_from_string(char *str) object.fill_element = gd_get_element_from_string (elem0); object.element = gd_get_element_from_string (elem1); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -561,7 +433,7 @@ GdObject *gd_object_new_from_string(char *str) object.fill_element = gd_get_element_from_string (elem0); object.element = gd_get_element_from_string (elem1); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -591,7 +463,7 @@ GdObject *gd_object_new_from_string(char *str) object.element = gd_get_element_from_string (elem0); object.fill_element = gd_get_element_from_string (elem1); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } return NULL; @@ -615,10 +487,10 @@ GdObject *gd_object_new_from_string(char *str) return NULL; if (words) - g_strfreev(words); + freeStringArray(words); words = getSplitStringArray(param, " ", -1); - l = g_strv_length(words); + l = getStringArrayLength(words); if (l < 10 || l > 19) return NULL; @@ -647,7 +519,7 @@ GdObject *gd_object_new_from_string(char *str) if (l > 10 && l % 2 == 1) object.element = gd_get_element_from_string(words[l - 1]); - return g_memdup(&object, sizeof (GdObject)); + return getMemCopy(&object, sizeof (GdObject)); } /* COPY PASTE OBJECT */ @@ -678,7 +550,7 @@ GdObject *gd_object_new_from_string(char *str) else Warn("invalid setting for copypaste flip property: %s", flip); - return g_memdup(&object, sizeof(GdObject)); + return getMemCopy(&object, sizeof(GdObject)); } return NULL; @@ -966,7 +838,7 @@ static void mazegen(GRand *rand, boolean **maze, int width, int height, int x, i /* 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 */ @@ -1318,7 +1190,7 @@ static void draw_random_fill(GdCave *cave, const GdObject *object, int level) 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); } @@ -1449,7 +1321,7 @@ GdCave *gd_cave_new_rendered(const GdCave *data, const int level, const guint32 GdCave *cave; GdElement element; int x, y; - GList *iter; + List *iter; /* make a copy */ cave = gd_cave_new_from_cave(data); @@ -1553,7 +1425,7 @@ GdCave *gd_cave_new_rendered(const GdCave *data, const int level, const guint32 } /* 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; @@ -1603,6 +1475,6 @@ void gd_flatten_cave(GdCave *cave, const int level) 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; }