Skip to content

Commit 6f0ca30

Browse files
Add stop/remove collision behavior back (#169)
* Adding collision behavior back * Removing uneccesary snippets * Rebased * precommit fixes * Pre-Commit fixes --------- Co-authored-by: Daphne Cornelisse <cor.daphne@gmail.com>
1 parent 685b3fd commit 6f0ca30

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

pufferlib/ocean/drive/drive.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,6 +1326,29 @@ void compute_agent_metrics(Drive *env, int agent_idx) {
13261326

13271327
agent->collision_state = collided;
13281328

1329+
if (collided == VEHICLE_COLLISION) {
1330+
if (env->collision_behavior == STOP_AGENT && !agent->stopped) {
1331+
agent->stopped = 1;
1332+
agent->vx = agent->vy = 0.0f;
1333+
} else if (env->collision_behavior == REMOVE_AGENT && !agent->removed) {
1334+
Entity *agent_collided = &env->entities[car_collided_with_index];
1335+
agent->removed = 1;
1336+
agent_collided->removed = 1;
1337+
agent->x = agent->y = -10000.0f;
1338+
agent_collided->x = agent_collided->y = -10000.0f;
1339+
}
1340+
}
1341+
if (collided == OFFROAD) {
1342+
agent->metrics_array[OFFROAD_IDX] = 1.0f;
1343+
if (env->offroad_behavior == STOP_AGENT && !agent->stopped) {
1344+
agent->stopped = 1;
1345+
agent->vx = agent->vy = 0.0f;
1346+
} else if (env->offroad_behavior == REMOVE_AGENT && !agent->removed) {
1347+
agent->removed = 1;
1348+
agent->x = agent->y = -10000.0f;
1349+
}
1350+
}
1351+
13291352
return;
13301353
}
13311354

0 commit comments

Comments
 (0)