From 7ad9c60cdb981d51756755dca4603e77611a0f61 Mon Sep 17 00:00:00 2001 From: hybrid Date: Mon, 10 Aug 2026 06:04:25 +0300 Subject: upd: tmp --- src/atragmx.c | 30 ++++++++++++++++-------------- src/ballistics.c | 8 ++++---- 2 files changed, 20 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/atragmx.c b/src/atragmx.c index c797505..1b39dbc 100644 --- a/src/atragmx.c +++ b/src/atragmx.c @@ -70,11 +70,12 @@ ATragMXSolution *ATragMXCalcSolution(ATragMXContext *ctx, ace_config *ace) { } ctx_range = { .n = 0, .range_factor = ctx->store_range_card ? 1.0936133 : 1, - .range_card.records = (size_t) (rangeCardEndRange / rangeCardIncrement), - .range_card.card = calloc(ctx_range.range_card.records, - sizeof(RangeCardRecord)), + .range_card.records = (size_t) (rangeCardEndRange / rangeCardIncrement), + .range_card.card = NULL, }; - + + ctx_range.range_card.card = calloc(ctx_range.range_card.records, + sizeof(RangeCardRecord)); Vec3 wind1 = { .x = cos(270 - ctx->atmosphere.wind_dir * 30) @@ -240,25 +241,25 @@ ATragMXSolution *ATragMXCalcSolution(ATragMXContext *ctx, ace_config *ace) { if (ctx_range.n < ctx_range.range_card.records) { - ctx_range.range_card.card->n = ctx_range.n; - ctx_range.range_card.card->range = ctx_range.range; + (ctx_range.range_card.card+ctx_range.n)->n = ctx_range.n; + (ctx_range.range_card.card+ctx_range.n)->range = ctx_range.range; - ctx_range.range_card.card->elevation + (ctx_range.range_card.card+ctx_range.n)->elevation = local_solution.elevation; - ctx_range.range_card.card->windage.w1 + (ctx_range.range_card.card+ctx_range.n)->windage.w1 = local_solution.windage.w1 * 60.0; - ctx_range.range_card.card->windage.w2 + (ctx_range.range_card.card+ctx_range.n)->windage.w2 = local_solution.windage.w2 * 60.0; - ctx_range.range_card.card->lead = sln->lead; + (ctx_range.range_card.card+ctx_range.n)->lead = sln->lead; - ctx_range.range_card.card->time_of_flight + (ctx_range.range_card.card+ctx_range.n)->time_of_flight = local_solution.time_of_flight; - ctx_range.range_card.card->bullet_speed = bullet.speed; - ctx_range.range_card.card->kinetic_energy = kinetic_energy; + (ctx_range.range_card.card+ctx_range.n)->bullet_speed = bullet.speed; + (ctx_range.range_card.card+ctx_range.n)->kinetic_energy = kinetic_energy; } ctx_range.n++; } @@ -312,6 +313,7 @@ ATragMXSolution *ATragMXCalcSolution(ATragMXContext *ctx, ace_config *ace) { sln->coriolis_vdrift = local_solution.v_coriolis * 60.0; sln->coriolis_hdrift = local_solution.h_coriolis * 60.0; sln->spin_drift = local_solution.spin_drift * 60.0; - + sln->range_card = &ctx_range.range_card; + return sln; } diff --git a/src/ballistics.c b/src/ballistics.c index d009cd4..918cc13 100644 --- a/src/ballistics.c +++ b/src/ballistics.c @@ -13,10 +13,10 @@ static inline double calculate_retard(DragFunction drag_function, double atmospheric_correction(double ballistic_coefficient, - double temperature, - double pressure, - double relative_humidity, - AtmosphereModel atmosphere_model) { + double temperature, + double pressure, + double relative_humidity, + AtmosphereModel atmosphere_model) { double air_density = calculate_air_density(temperature, pressure, relative_humidity); if (atmosphere_model == ICAO) -- cgit v1.3.1