-static struct EvalResult rect_apply_force(void *param, Gc *gc, struct Scope *scope, struct Expr args)
-{
- assert(gc);
- assert(scope);
- assert(param);
-
- Level *level = (Level*) param;
- const char *rect_id = CAR(args).atom->str;
- struct Expr vector_force_expr = CAR(CDR(args));
- const float force_x = (float) CAR(vector_force_expr).atom->num;
- const float force_y = (float) CDR(vector_force_expr).atom->num;
-
- print_expr_as_sexpr(args); printf("\n");
-
- Rigid_rect *rigid_rect = level_rigid_rect(level, rect_id);
- if (rigid_rect != NULL) {
- printf("Found rect `%s`\n", rect_id);
- printf("Applying force (%f, %f)\n", force_x, force_y);
- rigid_rect_apply_force(rigid_rect, vec(force_x, force_y));
- } else {
- fprintf(stderr, "Couldn't find rigid_rect `%s`", rect_id);
- }
-
- return eval_success(NIL(gc));
-}
-
-Console *create_console(Level *level,