From 8edafec02476f4ccff4ec295d66652582a083469 Mon Sep 17 00:00:00 2001 From: chelsea Date: Tue, 2 Dec 2025 22:44:26 -0600 Subject: [PATCH] Simplify trail prepass network and raise slope cost --- worldgen-c/bin/worldgen | Bin 140064 -> 140064 bytes worldgen-c/src/worldgen.c | 34 ++++++++++++++++------------------ 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/worldgen-c/bin/worldgen b/worldgen-c/bin/worldgen index d2fa6968768bcaaffe730cbdd7e7d14c7ff4e16b..c85bbe8aaa73a6234f5125fa3f98045306f3fa6c 100755 GIT binary patch delta 9776 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 delta 10202 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 Il*ar14_mG7S^xk5 diff --git a/worldgen-c/src/worldgen.c b/worldgen-c/src/worldgen.c index e27fecd..84a18c2 100644 --- a/worldgen-c/src/worldgen.c +++ b/worldgen-c/src/worldgen.c @@ -217,9 +217,9 @@ void worldgen_prepass(worldgen_ctx *ctx, int min_x, int max_x, int min_z, int ma ctx->trail_segment_count = 0; ctx->trail_segment_cap = 0; - const int step = 48; - const int max_points = 128; - const double min_spacing = 64.0; + const int step = 96; + const int max_points = 32; + const double min_spacing = 160.0; int cap = max_points; int count = 0; int *px = (int *)malloc((size_t)cap * sizeof(int)); @@ -271,8 +271,8 @@ void worldgen_prepass(worldgen_ctx *ctx, int min_x, int max_x, int min_z, int ma } /* Select hubs: pick top valued, then farthest from existing hubs */ - const int max_hubs = 3; - int hub_indices[3] = {0, 0, 0}; + const int max_hubs = 2; + int hub_indices[2] = {0, 0}; int hub_count = 0; int first = 0; for (int i = 1; i < count; ++i) { @@ -303,17 +303,15 @@ void worldgen_prepass(worldgen_ctx *ctx, int min_x, int max_x, int min_z, int ma } } - /* Connect hubs together */ - for (int i = 0; i < hub_count; ++i) { - for (int j = i + 1; j < hub_count; ++j) { - int *pts = NULL; - int path_count = 0; - if (build_trail_path(ctx, (double)px[hub_indices[i]], (double)pz[hub_indices[i]], - (double)px[hub_indices[j]], (double)pz[hub_indices[j]], &pts, &path_count) && pts && path_count >= 2) { - append_trail_segment(ctx, px[hub_indices[i]], pz[hub_indices[i]], px[hub_indices[j]], pz[hub_indices[j]], pts, path_count); - } else { - free(pts); - } + /* Connect hubs together (if two hubs exist) */ + if (hub_count == 2) { + int *pts = NULL; + int path_count = 0; + if (build_trail_path(ctx, (double)px[hub_indices[0]], (double)pz[hub_indices[0]], + (double)px[hub_indices[1]], (double)pz[hub_indices[1]], &pts, &path_count) && pts && path_count >= 2) { + append_trail_segment(ctx, px[hub_indices[0]], pz[hub_indices[0]], px[hub_indices[1]], pz[hub_indices[1]], pts, path_count); + } else { + free(pts); } } @@ -2622,9 +2620,9 @@ static int build_trail_path(worldgen_ctx *ctx, double ax, double az, double bx, if (used[ni]) continue; double next_height = heights[ni]; double slope = fabs(next_height - current_height); - if (slope > 3.5) continue; + if (slope > 3.0) continue; double base_cost = (neighbors[n][0] == 0 || neighbors[n][1] == 0) ? 1.0 : 1.41421356237; - double cost = base_cost * (1.0 + slope * 4.0); + double cost = base_cost * (1.0 + slope * 6.0); if (dist[current] + cost < dist[ni]) { dist[ni] = dist[current] + cost; prev[ni] = current;