summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/atragmx.c30
-rw-r--r--src/ballistics.c8
2 files changed, 20 insertions, 18 deletions
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)