From 8be843b5d1bf2f07577267186f54ee1b5bf7c58d Mon Sep 17 00:00:00 2001 From: Tim Diekmann Date: Thu, 16 Dec 2021 17:56:46 +0100 Subject: [PATCH 1/2] Fix behavior execution for Javascript runners --- .../package/state/packages/behavior_execution/package.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js b/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js index 8700b70028d..6f175d3ed75 100644 --- a/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js +++ b/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js @@ -171,14 +171,14 @@ const run_task = (experiment, sim, task_message, group_state, group_context) => const n_agents_in_group = group_state.n_agents(); for (var i_agent = 0; i_agent < n_agents_in_group; ++i_agent) { - - // Reuse `agent_state` and `agent_ctx` objects. - agent_state = group_state.get_agent(i_agent, agent_state); + // TODO: Reuse `agent_state` objects. When using the old `agent_state`, the indices for behaviors are borked + agent_state = group_state.get_agent(i_agent, null); + // Reuse `agent_ctx` objects. agent_ctx = group_context.get_agent(i_agent, agent_ctx); const behavior_ids = agent_state[behavior_ids_field_key]; const n_behaviors = behavior_ids.length; - for (var i_behavior = agent_state.behavior_index; i_behavior < n_behaviors; ++i_behavior) { + for (var i_behavior = 0; i_behavior < n_behaviors; ++i_behavior) { agent_state.behavior_index = i_behavior; const key = behavior_ids.get(i_behavior) @@ -198,7 +198,6 @@ const run_task = (experiment, sim, task_message, group_state, group_context) => behavior.fn(agent_state, agent_ctx); postprocess(agent_state); } - agent_state.behavior_index = i_behavior; } return { From db1b6c3e78ce999cf895d09bb6f912d008a7e134 Mon Sep 17 00:00:00 2001 From: Tim Diekmann Date: Fri, 17 Dec 2021 13:49:09 +0100 Subject: [PATCH 2/2] Apply suggestions from review --- .../package/state/packages/behavior_execution/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js b/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js index 6f175d3ed75..d0b35ece5f0 100644 --- a/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js +++ b/packages/engine/src/simulation/package/state/packages/behavior_execution/package.js @@ -178,7 +178,7 @@ const run_task = (experiment, sim, task_message, group_state, group_context) => const behavior_ids = agent_state[behavior_ids_field_key]; const n_behaviors = behavior_ids.length; - for (var i_behavior = 0; i_behavior < n_behaviors; ++i_behavior) { + for (var i_behavior = agent_state.behavior_index; i_behavior < n_behaviors; ++i_behavior) { agent_state.behavior_index = i_behavior; const key = behavior_ids.get(i_behavior)