diff --git a/megamek/docs/history.txt b/megamek/docs/history.txt
index 907d4b8e7dc..07ef0825455 100644
--- a/megamek/docs/history.txt
+++ b/megamek/docs/history.txt
@@ -8,7 +8,7 @@ MEGAMEK VERSION HISTORY:
+ Fix #5086: Updated SRMAXHandler to ignore specialty armors
+ PR #6209: Implement RISC laser pulse module
+ Fix #6211: Added null check for lastUnitMember
-+ PR #6203: Dev Tool to Find duplicate boards
++ PR #6203, #6266: Dev Tools: to Find duplicate boards, log to console with environment variable mm.profile=dev
+ PR #6181: Rename TroopSpace to InfantryCompartment
+ Fix #6217: Too many gunners for aerospace in MekHQ
+ Fix #6069: Stops bays from loading BA and protomek ammunition
@@ -24,6 +24,8 @@ MEGAMEK VERSION HISTORY:
+ Fix #3018: Fixes Battle Armor Plasma Rifles not applying TacOps Optional Rules
+ Fix #3827: Fixes target's side's ECM not effecting sensor spottingFixes
+ Fix: Disable Simultaneous Movement due to numerous issues
++ PR #6250: Adds an automatic board tag for underwater bridges
++ Fix #6224, #6248: Aircraft that fly off are now nudged back onto the board to be targetable before actually leaving the map
0.50.01 (2024-11-10 1800 UTC)
+ PR #5962, #5964, #5966, #5974, #5931, #5983, #6154, #6159: Internal code changes (TWGameManager, extract processMovement, allow more classes for InputFilter, Victory, move test scenarios to testresources),
diff --git a/megamek/mmconf/log4j2.xml b/megamek/mmconf/log4j2.xml
index 7838144ad15..4b04808b0d7 100644
--- a/megamek/mmconf/log4j2.xml
+++ b/megamek/mmconf/log4j2.xml
@@ -5,7 +5,7 @@
-
+
@@ -17,28 +17,30 @@
+
-
+
-
+
-
+
-
+
-
+
+
diff --git a/megamek/src/megamek/server/totalwarfare/MovePathHandler.java b/megamek/src/megamek/server/totalwarfare/MovePathHandler.java
index bb0aaa246e8..e7ff875e51d 100644
--- a/megamek/src/megamek/server/totalwarfare/MovePathHandler.java
+++ b/megamek/src/megamek/server/totalwarfare/MovePathHandler.java
@@ -1561,6 +1561,7 @@ private void processSteps() {
a.setStraightMoves(a.getStraightMoves() + 1);
// make sure it didn't fly off the map
if (!getGame().getBoard().contains(curPos)) {
+ curPos = curPos.translated(step.getFacing(), -1); //Return its position to on-map so it can be targeted this turn
a.setCurrentVelocity(md.getFinalVelocity());
gameManager.processLeaveMap(md, true, Compute.roundsUntilReturn(getGame(), entity));
return;
diff --git a/megamek/src/megamek/utilities/BoardsTagger.java b/megamek/src/megamek/utilities/BoardsTagger.java
index 457b37c696a..9c7acb2ff81 100644
--- a/megamek/src/megamek/utilities/BoardsTagger.java
+++ b/megamek/src/megamek/utilities/BoardsTagger.java
@@ -92,7 +92,8 @@ public enum Tags {
TAG_ARMOREDBUILDING("ArmoredBuilding"),
TAG_IMPASSABLE("Impassable"),
TAG_ELEVATOR("Elevator"),
- TAG_MULTIPLETHEME("MultipleTheme");
+ TAG_MULTIPLETHEME("MultipleTheme"),
+ TAG_UNDERWATERBRIDGE("UnderWaterBridge");
private String tagName;
private static final Map internalTagMap;
@@ -233,6 +234,7 @@ private static void tagBoard(File boardFile) {
int impassable = 0;
int elevator = 0;
int multipleTheme = 0;
+ int underWaterBridge = 0;
for (int x = 0; x < board.getWidth(); x++) {
for (int y = 0; y < board.getHeight(); y++) {
@@ -291,6 +293,11 @@ private static void tagBoard(File boardFile) {
}
impassable += hex.containsTerrain(IMPASSABLE) ? 1 : 0;
elevator += hex.containsTerrain(ELEVATOR) ? 1 : 0;
+ if (hex.containsTerrain(WATER)
+ && hex.containsTerrain(BRIDGE)
+ && (hex.terrainLevel(BRIDGE_ELEV) < hex.terrainLevel(WATER))) {
+ underWaterBridge++;
+ }
}
}
@@ -359,6 +366,7 @@ private static void tagBoard(File boardFile) {
multipleTheme += snowTheme > 0 ? 1 : 0;
multipleTheme += volcanic > 0 ? 1 : 0;
matchingTags.put(Tags.TAG_MULTIPLETHEME, multipleTheme > 1);
+ matchingTags.put(Tags.TAG_UNDERWATERBRIDGE, underWaterBridge > 0);
// Remove (see below) any auto tags that might be present so that auto tags that
// no longer apply