Report sign/house in significant transits; back up user.properties outside dist/

This commit is contained in:
ml
2026-07-05 17:18:20 +02:00
parent 28558b4343
commit 1136e3257a
9 changed files with 197 additions and 50 deletions
+23 -4
View File
@@ -57,6 +57,22 @@ static const char *aspect_display_name(AspectType type) {
return names[type];
}
static const char *sign_display_name(ZodiacSign sign) {
static const char *const names[12] = {
"Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo",
"Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces",
};
return names[sign];
}
/* pos->house is 0 when reading_load_json had no sign/house data for this
* body (see parse_bodies() in reading_io.c) - a valid whole-sign house
* is always 1-12, so this is a safe "unknown, say nothing" sentinel. */
static void print_body_in_sign(const PlanetPosition *pos) {
if (pos->house < 1 || pos->house > 12) return;
printf(" in %s (house %d)", sign_display_name(pos->sign), pos->house);
}
static const char *day_level_name(DaySignificance level) {
switch (level) {
case DAY_QUIET: return "Quiet";
@@ -114,10 +130,13 @@ int main(int argc, char **argv) {
interp.top_item_count == 1 ? "" : "s");
for (int i = 0; i < interp.top_item_count; i++) {
const SignificantItem *item = &interp.top_items[i];
printf(" %d. Transiting %s %s natal %s (orb %.1f\xc2\xb0, score %.2f)\n", i + 1,
body_display_name(item->aspect.transiting_planet),
aspect_display_name(item->aspect.type),
body_display_name(item->aspect.natal_planet), item->aspect.orb, item->score);
const Aspect *a = &item->aspect;
printf(" %d. Transiting %s", i + 1, body_display_name(a->transiting_planet));
print_body_in_sign(&reading.transits.bodies[a->transiting_planet]);
printf(" %s natal %s", aspect_display_name(a->type), body_display_name(a->natal_planet));
print_body_in_sign(&reading.natal.bodies[a->natal_planet]);
printf(" (orb %.1f\xc2\xb0, score %.2f)\n", a->orb, item->score);
}
return 0;
}