diff --git a/config/HlaFedereplFOM.xml b/config/HlaFedereplFOM.xml
index 07872de..65eb7c0 100644
--- a/config/HlaFedereplFOM.xml
+++ b/config/HlaFedereplFOM.xml
@@ -323,6 +323,13 @@
GridPosition
Cell occupied after movement.
+
+ LocationHistory
+ GridPositionHistory
+
+ Ordered list of positions occupied by the entity, including the new destination.
+
+
EntityAte
@@ -585,7 +592,15 @@
-
+
+
+ GridPositionHistory
+ GridPosition
+ Dynamic
+ HLAvariableArray
+ Ordered history of grid positions occupied by an entity.
+
+
GridPosition
diff --git a/src/test/java/com/yetanalytics/ConfigParserTest.java b/src/test/java/com/yetanalytics/ConfigParserTest.java
index 8ae23db..4a36b1b 100644
--- a/src/test/java/com/yetanalytics/ConfigParserTest.java
+++ b/src/test/java/com/yetanalytics/ConfigParserTest.java
@@ -140,6 +140,35 @@ public void handlesFixedRecordFieldAccess() {
assertEquals(42, result);
}
+ @Test
+ public void handlesFixedRecordFieldAccessInsideArray() {
+ // Test array of fixed records
+ SimulationConfig simConfig = new SimulationConfig(null, null, null, null,
+ "config/HlaFedereplFOM.xml");
+ HLADecoderRegistry decoderRegistry = new HLADecoderRegistry(new HLA1516eEncoderFactory());
+ InjectionHandler ih = new InjectionHandler();
+ ih.setFomXml(new FOMXML(simConfig, decoderRegistry));
+ ih.setHLADecoderRegistry(decoderRegistry);
+
+ byte[] gridPosition = java.nio.ByteBuffer.allocate(Integer.BYTES * 2)
+ .order(java.nio.ByteOrder.BIG_ENDIAN)
+ .putInt(42)
+ .putInt(84)
+ .array();
+
+ byte[] arrayBytes = HLAEncodingTestSupport.variableArray(gridPosition);
+
+ Map paramMap = new java.util.HashMap<>();
+ paramMap.put("LocationHistory", arrayBytes);
+
+ InteractionInjectionContext injectionContext = new InteractionInjectionContext("EntityMoved", paramMap);
+ com.yetanalytics.hlaxapi.config.model.Target target = new com.yetanalytics.hlaxapi.config.model.Target(
+ java.util.List.of("LocationHistory", 0, "X"));
+
+ Object result = ih.handleThis(target, injectionContext);
+ assertEquals(42, result);
+ }
+
@Test
public void handlesFixedRecordGridPositionFieldAccess() {
SimulationConfig simConfig = new SimulationConfig(null, null, null, null,