diff --git a/CHANGELOG.md b/CHANGELOG.md
index 92621df52..6f0d398d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,34 @@
+# **36.0.0** *(2025-01-15)*
+
+ **Squad Map Markers:** Right-click on the map to open a context menu that lets you place markers, helping you strategize for future games.
+
+ **Auto-Copy Targets:** Enable this setting to automatically copy the calculations of the most recently placed or moved target to the clipboard, making it easy to share them in-game using Ctrl+V.
+
+ **Auto-Copy Next Flags:** Enable this setting to automatically copy the name of the next flag when clicking a flag in a RAAS/Invasion layer, making it easy to share in-game using Ctrl+V.
+
+ **Display Low & High Angles:** Enable this setting to display both low- and high-angle solutions on the marker for weapons that support both. (Thanks, Matador, for the suggestion. Fix #258)
+
+ **Flags Distance:** In AAS/RAAS/Invasion, a new setting allows you to show or hide the distance between flags.
+
+ HD maps (8k × 8k) are now tiled for better performance and efficiency.
+
+ Added various tooltips to settings.
+
+ Added various animations.
+
+ Fixed Yehorivka heightmaps being twice the size they should be. (Fix #259)
+
+ The heatmap is no longer redrawn each time the layer is changed on the same map.
+
+ Fixed flag numbers being off-center on rectangular flags.
+
+ Fixed seconds being displayed as meters in some languages.
+
+
+
+
+
+
# **35.0.0** *(2025-01-02)*
**Custom font size:** you can now change the size of the texts appearing on the map to your liking (Fixes [#254](https://github.com/sh4rkman/SquadCalc/issues/254))
diff --git a/src/js/squadMarker.js b/src/js/squadMarker.js
index 7e90e9bd4..364368842 100644
--- a/src/js/squadMarker.js
+++ b/src/js/squadMarker.js
@@ -5,7 +5,7 @@ import { targetIcon1, targetIconAnimated, targetIconDisabled, targetIconMinimal,
import SquadSimulation from "./squadSimulation.js";
import SquadFiringSolution from "./squadFiringSolution.js";
import i18next from "i18next";
-import { sendMarkerData, sendTargetData, sendFOBData } from "./squadCalcAPI.js";
+import { sendMarkerData, sendTargetData } from "./squadCalcAPI.js";
import { animateCSS } from "./animations.js";
@@ -1252,12 +1252,12 @@ export var squadStratMarker = squadMarker.extend({
// Report marker to squadcalc API
- sendFOBData({
- lat: this._latlng.lat,
- lng: this._latlng.lng,
- weapon: "FOB",
- map: App.minimap.activeMap.name,
- });
+ // sendFOBData({
+ // lat: this._latlng.lat,
+ // lng: this._latlng.lng,
+ // weapon: "FOB",
+ // map: App.minimap.activeMap.name,
+ // });
// Custom events handlers
//this.on("click", this._handleClick, this);
@@ -1290,6 +1290,24 @@ export var squadStratMarker = squadMarker.extend({
},
_handleContextMenu: function(e){
+
+ // Avoid other target keeping fading
+ clearTimeout(this.mouseOverTimeout);
+
+ // If they already faded, switch them back
+ this.map.activeTargetsMarkers.eachLayer((target) => {
+ target.on("mouseover", target._handleMouseOver, target);
+ target.on("mouseout", target._handleMouseOut, target);
+ target.setOpacity(1);
+ target.calcMarker1.openOn(this.map);
+ if (this.map.activeWeaponsMarkers.getLayers()[1]) target.calcMarker2.openOn(this.map);
+ target.updateSpread();
+ target.updateDamageRadius();
+ });
+
+ // Reset layer opacity
+ if (this.map.layer) this.map.layer._setOpacity(1);
+
this.delete(e);
},
@@ -1327,18 +1345,18 @@ export var squadStratMarker = squadMarker.extend({
this.map.on("mousemove", this.map._handleMouseMove);
}
-
+ this.isDragging = false;
this.posPopUp.close();
- this.map.updateTargets();
+ //this.map.updateTargets();
// Report marker to squadcalc API
- sendFOBData({
- lat: this._latlng.lat,
- lng: this._latlng.lng,
- weapon: "FOB",
- map: App.minimap.activeMap.name,
- });
+ // sendFOBData({
+ // lat: this._latlng.lat,
+ // lng: this._latlng.lng,
+ // weapon: "FOB",
+ // map: App.minimap.activeMap.name,
+ // });
},
@@ -1347,6 +1365,28 @@ export var squadStratMarker = squadMarker.extend({
this.constructionRange.addTo(this.map.markersGroup);
this.exclusionRange.addTo(this.map.markersGroup);
}
+
+ this.mouseOverTimeout = setTimeout(() => {
+
+ // Hide the layer
+ if (this.map.layer) this.map.layer._setOpacity(0.5);
+
+ // Hide other targets
+ if (!this.isDragging){
+ this.map.activeTargetsMarkers.eachLayer((target) => {
+ if (target != this) {
+ target.off("mouseover");
+ target.off("mouseout");
+ target.setOpacity(0.65);
+ target.calcMarker1.close();
+ target.calcMarker2.close();
+ target.disableSpreadRadii();
+ target.disableDamageRadii();
+ target.twentyFiveDamageRadius.setStyle({ opacity: 0 });
+ }
+ });
+ }
+ }, 500);
},
_handleMouseOut: function(){
@@ -1354,6 +1394,12 @@ export var squadStratMarker = squadMarker.extend({
this.constructionRange.removeFrom(this.map.markersGroup);
this.exclusionRange.removeFrom(this.map.markersGroup);
}
+
+ // Cancel the timeout if the user moves the mouse out before 1 second
+ clearTimeout(this.mouseOverTimeout);
+
+ // Show the layer
+ if (this.map.layer) this.map.layer._setOpacity(1);
}
});
\ No newline at end of file