| 1008 | // switch, and display the transits in order sorted by influence. |
| 1009 | |
| 1010 | void ChartTransitInfluence(flag fProg) |
| 1011 | { |
| 1012 | int source[MAXINDAY], aspect[MAXINDAY], dest[MAXINDAY], ca[cAspect + 1], |
| 1013 | co[objMax], occurcount = 0, fProgress = us.fProgress, i, j, k, l, m, nSav; |
| 1014 | real power[MAXINDAY], rPowSum = 0.0, rT; |
| 1015 | char sz[cchSzDef], *pch; |
| 1016 | byte ignoreSav[objMax]; |
| 1017 | flag fDistance = us.fDistance && !us.fParallel, f; |
| 1018 | |
| 1019 | ClearB((pbyte)ca, sizeof(ca)); |
| 1020 | ClearB((pbyte)co, sizeof(co)); |
| 1021 | |
| 1022 | if (!FNoTimeOrSpace(ciTran)) { |
| 1023 | PrintSz("Transits at: "); |
| 1024 | i = DayOfWeek(MonT, DayT, YeaT); |
| 1025 | sprintf(sz, "%.3s %s %s (%cT Zone %s)\n", szDay[i], |
| 1026 | SzDate(MonT, DayT, YeaT, 3), SzTim(TimT), ChDst(DstT), |
| 1027 | SzZone(ZonT)); PrintSz(sz); |
| 1028 | } |
| 1029 | |
| 1030 | // Cast the natal and transiting charts as with a relationship chart. |
| 1031 | |
| 1032 | cp1 = cp0; |
| 1033 | CopyRgb(ignore, ignoreSav, sizeof(ignore)); |
| 1034 | for (i = 0; i <= is.nObj; i++) |
| 1035 | ignore[i] = ignore2[i]; |
| 1036 | ciCore = ciTran; |
| 1037 | if (us.fProgress = fProg) { |
| 1038 | is.JDp = MdytszToJulian(MM, DD, YY, TT, SS, ZZ); |
| 1039 | ciCore = ciMain; |
| 1040 | } |
| 1041 | CastChart(0); |
| 1042 | cp2 = cp0; |
| 1043 | CopyRgb(ignoreSav, ignore, sizeof(ignore)); |
| 1044 | |
| 1045 | // Do a relationship aspect grid to get the transits. Have to make and |
| 1046 | // restore two changes to get it right for this chart: (1) Make the natal |
| 1047 | // planets have zero velocity so applying vs. separating is only a function |
| 1048 | // of the transiter. (2) Tweak the main restrictions to allow for transiting |
| 1049 | // objects not restricted. |
| 1050 | |
| 1051 | for (i = 0; i <= is.nObj; i++) { |
| 1052 | ret[i] = cp1.dir[i]; |
| 1053 | cp1.dir[i] = 0.0; |
| 1054 | ignore[i] = ignore[i] && ignore2[i]; |
| 1055 | } |
| 1056 | f = FCreateGridRelation(fFalse); |
| 1057 | CopyRgb(ignoreSav, ignore, sizeof(ignore)); |
| 1058 | for (i = 0; i <= is.nObj; i++) |
| 1059 | cp1.dir[i] = ret[i]; |
| 1060 | if (!f) |
| 1061 | return; |
| 1062 | |
| 1063 | // Loop through the grid, and build up a list of the valid transits. |
| 1064 | |
| 1065 | for (i = 0; i <= is.nObj; i++) { |
| 1066 | if (FIgnore2(i)) |
| 1067 | continue; |
no test coverage detected