feat: added Worked All Italian Provinces award and FFMA
This commit is contained in:
+16
-9
@@ -1180,22 +1180,29 @@ export default function App() {
|
||||
// Effective antenna heading(s): the rotor azimuth, transformed by the
|
||||
// Ultrabeam pattern when one is active — reversed (180°) points opposite,
|
||||
// bidirectional radiates both ways, normal is the heading itself.
|
||||
// Headings are rounded to whole degrees: a rotor reports a jittering float, and
|
||||
// a fraction of a degree changes nothing on a compass or a beam lobe — but it
|
||||
// does invalidate every memo downstream and force the map to rebuild its whole
|
||||
// overlay on each reading.
|
||||
const rotorAz = useMemo<number | null>(() => (
|
||||
rotatorHeading.enabled && rotatorHeading.ok
|
||||
? Math.round((((rotatorHeading.azimuth % 360) + 360) % 360)) % 360
|
||||
: null
|
||||
), [rotatorHeading.enabled, rotatorHeading.ok, rotatorHeading.azimuth]);
|
||||
|
||||
const beamHeadings = useMemo<number[]>(() => {
|
||||
if (!(rotatorHeading.enabled && rotatorHeading.ok)) return [];
|
||||
const base = ((rotatorHeading.azimuth % 360) + 360) % 360;
|
||||
if (rotorAz == null) return [];
|
||||
if (ubStatus.enabled && ubStatus.connected) {
|
||||
if (ubStatus.direction === 1) return [(base + 180) % 360];
|
||||
if (ubStatus.direction === 2) return [base, (base + 180) % 360];
|
||||
if (ubStatus.direction === 1) return [(rotorAz + 180) % 360];
|
||||
if (ubStatus.direction === 2) return [rotorAz, (rotorAz + 180) % 360];
|
||||
}
|
||||
return [base];
|
||||
}, [rotatorHeading.enabled, rotatorHeading.ok, rotatorHeading.azimuth, ubStatus.enabled, ubStatus.connected, ubStatus.direction]);
|
||||
return [rotorAz];
|
||||
}, [rotorAz, ubStatus.enabled, ubStatus.connected, ubStatus.direction]);
|
||||
|
||||
// Mechanical boom (rotor) heading + Ultrabeam pattern — so the compass/map can
|
||||
// show where the antenna physically points (boom) vs where it radiates when
|
||||
// the Ultrabeam is reversed/bidirectional.
|
||||
const boomHeading = useMemo<number | null>(() => (
|
||||
rotatorHeading.enabled && rotatorHeading.ok ? ((rotatorHeading.azimuth % 360) + 360) % 360 : null
|
||||
), [rotatorHeading.enabled, rotatorHeading.ok, rotatorHeading.azimuth]);
|
||||
const boomHeading = rotorAz;
|
||||
const ubPattern = useMemo<'normal' | 'reverse' | 'bi' | null>(() => {
|
||||
if (!(ubStatus.enabled && ubStatus.connected)) return null;
|
||||
return ubStatus.direction === 1 ? 'reverse' : ubStatus.direction === 2 ? 'bi' : 'normal';
|
||||
|
||||
Reference in New Issue
Block a user